mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
merge heads
This commit is contained in:
commit
3f9598394b
7
.travis.yml
Normal file
7
.travis.yml
Normal file
@ -0,0 +1,7 @@
|
||||
language: python
|
||||
python:
|
||||
- "2.7"
|
||||
- "3.3"
|
||||
script: make test
|
||||
install:
|
||||
- python setup.py -q install
|
49
CHANGES
49
CHANGES
@ -1,6 +1,13 @@
|
||||
Release 1.2 (in development)
|
||||
============================
|
||||
|
||||
* PR#25: In inheritance diagrams, the first line of the class docstring
|
||||
is now the tooltip for the class.
|
||||
|
||||
* PR#47: Added :mod:`sphinx.ext.linkcode` extension.
|
||||
|
||||
* PR#75: Added ``--follow-links`` option to sphinx-apidoc.
|
||||
|
||||
* PR#45: The linkcheck builder now checks ``#anchor``\ s for existence.
|
||||
|
||||
* PR#28: Added Hungarian translation.
|
||||
@ -9,11 +16,49 @@ Release 1.2 (in development)
|
||||
|
||||
* PR#54: Added Norwegian bokmaal translation.
|
||||
|
||||
* PR#52: ``special_members`` flag to autodoc now behaves like ``members``.
|
||||
|
||||
* #955: Fix i18n transformation.
|
||||
|
||||
* Handle duplicate domain indices in texinfo.
|
||||
|
||||
* PR#74: Fix some Russian translation.
|
||||
|
||||
* Update to jQuery 1.7.1 and Underscore.js 1.3.1.
|
||||
|
||||
* #1015: Stop overriding jQuery contains() in the JavaScript.
|
||||
|
||||
Release 1.1.4 (in development)
|
||||
==============================
|
||||
* #1028: Fix line block output in the text builder.
|
||||
|
||||
* #1018: Fix "container" directive handling in the text builder.
|
||||
|
||||
* #1012: Update Estonian translation.
|
||||
|
||||
* #1010: Make pngmath images transparent by default; IE7+ should handle it.
|
||||
|
||||
* #440: Fix coarse timestamp resolution in some filesystem generate wrong outdated file-list.
|
||||
|
||||
* #1008: Fix test failures with Python 3.3.
|
||||
|
||||
* #1029: Fix intersphinx_mapping values are not stable if mapping have plural key/value set with Python 3.3.
|
||||
|
||||
* #920: Rescue PIL packaging issue that allow import Image without PIL namespace. Thanks to Marc Schlaich.
|
||||
|
||||
* #1024: Improve Makefile/make.bat error message if Sphinx is not found. Thanks to anatoly techtonik.
|
||||
|
||||
* #1037: Fix typos in Polish translation. Thanks to Jakub Wilk.
|
||||
|
||||
* #1038: Fix cpp domain parser fails to parse C+11 "static constexpr" declarations. Thanks to Jakub Wilk.
|
||||
|
||||
* #1043: Fix sphinx-quickstart asks again and again Y|N because input() return value with extra '\r' on Python-3.2.0 + Windows. Thanks to Régis Décamps.
|
||||
|
||||
* #1041: Fix cpp domain parser fails to parse a const type with a modifier.
|
||||
|
||||
* PR#88: Added the "Sphinx Developer's Guide" (:file:`doc/devguide.rst`)
|
||||
which outlines the basic development process of the Sphinx project.
|
||||
|
||||
* Added the Docutils-native XML and pseudo-XML builders. See
|
||||
:class:`XMLBuilder` and :class:`PseudoXMLBuilder`.
|
||||
|
||||
|
||||
Release 1.1.3 (Mar 10, 2012)
|
||||
|
15
EXAMPLES
15
EXAMPLES
@ -4,7 +4,7 @@ Projects using Sphinx
|
||||
This is an (incomplete) alphabetic list of projects that use Sphinx or
|
||||
are experimenting with using it for their documentation. If you like to
|
||||
be included, please mail to `the Google group
|
||||
<http://groups.google.com/group/sphinx-dev>`_.
|
||||
<http://groups.google.com/group/sphinx-users>`_.
|
||||
|
||||
I've grouped the list into sections to make it easier to find
|
||||
interesting examples.
|
||||
@ -70,6 +70,7 @@ Documentation using a customized version of the default theme
|
||||
* Chaco: http://code.enthought.com/projects/chaco/docs/html/
|
||||
* Djagios: http://djagios.org/
|
||||
* GetFEM++: http://home.gna.org/getfem/
|
||||
* Google or-tools: https://or-tools.googlecode.com/svn/trunk/documentation/user_manual/index.html
|
||||
* GPAW: https://wiki.fysik.dtu.dk/gpaw/
|
||||
* Grok: http://grok.zope.org/doc/current/
|
||||
* IFM: http://fluffybunny.memebot.com/ifm-docs/index.html
|
||||
@ -105,10 +106,11 @@ Documentation using the sphinxdoc theme
|
||||
http://www.tango-controls.org/static/PyTango/latest/doc/html/index.html
|
||||
* Reteisi: http://www.reteisi.org/contents.html
|
||||
* Satchmo: http://www.satchmoproject.com/docs/dev/
|
||||
* Sphinx: http://sphinx.pocoo.org/
|
||||
* Sphinx: http://sphinx-doc.org/
|
||||
* Sqlkit: http://sqlkit.argolinux.org/
|
||||
* Tau: http://www.tango-controls.org/static/tau/latest/doc/html/index.html
|
||||
* Total Open Station: http://tops.berlios.de/
|
||||
* Turbulenz: http://docs.turbulenz.com/
|
||||
* WebFaction: http://docs.webfaction.com/
|
||||
|
||||
|
||||
@ -128,6 +130,7 @@ Documentation using another builtin theme
|
||||
(agogo)
|
||||
* Sylli: http://sylli.sourceforge.net/ (nature)
|
||||
* libLAS: http://liblas.org/ (nature)
|
||||
* Valence: http://docs.valence.desire2learn.com/ (haiku)
|
||||
|
||||
|
||||
Documentation using a custom theme/integrated in a site
|
||||
@ -135,7 +138,8 @@ Documentation using a custom theme/integrated in a site
|
||||
|
||||
* Blender: http://www.blender.org/documentation/250PythonDoc/
|
||||
* Blinker: http://discorporate.us/projects/Blinker/docs/
|
||||
* Classy: classy: http://classy.pocoo.org/
|
||||
* Classy: http://classy.pocoo.org/
|
||||
* DEAP: http://deap.gel.ulaval.ca/doc/0.8/index.html
|
||||
* Django: http://docs.djangoproject.com/
|
||||
* e-cidadania: http://e-cidadania.readthedocs.org/en/latest/
|
||||
* Flask: http://flask.pocoo.org/docs/
|
||||
@ -143,13 +147,17 @@ Documentation using a custom theme/integrated in a site
|
||||
* Gameduino: http://excamera.com/sphinx/gameduino/
|
||||
* GeoServer: http://docs.geoserver.org/
|
||||
* Glashammer: http://glashammer.org/
|
||||
* Istihza (Turkish Python documentation project): http://www.istihza.com/py2/icindekiler_python.html
|
||||
* MathJax: http://docs.mathjax.org/en/latest/
|
||||
* MirrorBrain: http://mirrorbrain.org/docs/
|
||||
* nose: http://somethingaboutorange.com/mrl/projects/nose/
|
||||
* ObjectListView: http://objectlistview.sourceforge.net/python
|
||||
* Open ERP: http://doc.openerp.com/
|
||||
* OpenCV: http://docs.opencv.org/
|
||||
* OpenLayers: http://docs.openlayers.org/
|
||||
* PyEphem: http://rhodesmill.org/pyephem/
|
||||
* German Plone 4.0 user manual: http://www.hasecke.com/plone-benutzerhandbuch/4.0/
|
||||
* PSI4: http://sirius.chem.vt.edu/psi4manual/latest/index.html
|
||||
* Pylons: http://pylonshq.com/docs/en/0.9.7/
|
||||
* PyMOTW: http://www.doughellmann.com/PyMOTW/
|
||||
* pypol: http://pypol.altervista.org/ (celery)
|
||||
@ -161,6 +169,7 @@ Documentation using a custom theme/integrated in a site
|
||||
* SQLAlchemy: http://www.sqlalchemy.org/docs/
|
||||
* tinyTiM: http://tinytim.sourceforge.net/docs/2.0/
|
||||
* tipfy: http://www.tipfy.org/docs/
|
||||
* Ubuntu packaging guide: http://developer.ubuntu.com/packaging/html/
|
||||
* Werkzeug: http://werkzeug.pocoo.org/docs/
|
||||
* WFront: http://discorporate.us/projects/WFront/
|
||||
|
||||
|
@ -21,7 +21,7 @@ After installing::
|
||||
|
||||
Then, direct your browser to ``_build/html/index.html``.
|
||||
|
||||
Or read them online at <http://sphinx.pocoo.org/>.
|
||||
Or read them online at <http://sphinx-doc.org/>.
|
||||
|
||||
|
||||
Testing
|
||||
|
@ -14,11 +14,14 @@ the appropriate options to ``use_setuptools()``.
|
||||
This file can also be run as a script to install or upgrade setuptools.
|
||||
"""
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import time
|
||||
import fnmatch
|
||||
import tempfile
|
||||
import tarfile
|
||||
import optparse
|
||||
|
||||
from distutils import log
|
||||
|
||||
try:
|
||||
@ -46,7 +49,7 @@ except ImportError:
|
||||
args = [quote(arg) for arg in args]
|
||||
return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
|
||||
|
||||
DEFAULT_VERSION = "0.6.13"
|
||||
DEFAULT_VERSION = "0.6.30"
|
||||
DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
|
||||
SETUPTOOLS_FAKED_VERSION = "0.6c11"
|
||||
|
||||
@ -63,7 +66,7 @@ Description: xxx
|
||||
""" % SETUPTOOLS_FAKED_VERSION
|
||||
|
||||
|
||||
def _install(tarball):
|
||||
def _install(tarball, install_args=()):
|
||||
# extracting the tarball
|
||||
tmpdir = tempfile.mkdtemp()
|
||||
log.warn('Extracting in %s', tmpdir)
|
||||
@ -81,11 +84,14 @@ def _install(tarball):
|
||||
|
||||
# installing
|
||||
log.warn('Installing Distribute')
|
||||
if not _python_cmd('setup.py', 'install'):
|
||||
if not _python_cmd('setup.py', 'install', *install_args):
|
||||
log.warn('Something went wrong during the installation.')
|
||||
log.warn('See the error message above.')
|
||||
# exitcode will be 2
|
||||
return 2
|
||||
finally:
|
||||
os.chdir(old_wd)
|
||||
shutil.rmtree(tmpdir)
|
||||
|
||||
|
||||
def _build_egg(egg, tarball, to_dir):
|
||||
@ -110,6 +116,7 @@ def _build_egg(egg, tarball, to_dir):
|
||||
|
||||
finally:
|
||||
os.chdir(old_wd)
|
||||
shutil.rmtree(tmpdir)
|
||||
# returning the result
|
||||
log.warn(egg)
|
||||
if not os.path.exists(egg):
|
||||
@ -144,7 +151,7 @@ def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
|
||||
except ImportError:
|
||||
return _do_download(version, download_base, to_dir, download_delay)
|
||||
try:
|
||||
pkg_resources.require("distribute>="+version)
|
||||
pkg_resources.require("distribute>=" + version)
|
||||
return
|
||||
except pkg_resources.VersionConflict:
|
||||
e = sys.exc_info()[1]
|
||||
@ -167,6 +174,7 @@ def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
|
||||
if not no_fake:
|
||||
_create_fake_setuptools_pkg_info(to_dir)
|
||||
|
||||
|
||||
def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
|
||||
to_dir=os.curdir, delay=15):
|
||||
"""Download distribute from a specified location and return its filename
|
||||
@ -203,6 +211,7 @@ def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
|
||||
dst.close()
|
||||
return os.path.realpath(saveto)
|
||||
|
||||
|
||||
def _no_sandbox(function):
|
||||
def __no_sandbox(*args, **kw):
|
||||
try:
|
||||
@ -227,6 +236,7 @@ def _no_sandbox(function):
|
||||
|
||||
return __no_sandbox
|
||||
|
||||
|
||||
def _patch_file(path, content):
|
||||
"""Will backup the file then patch it"""
|
||||
existing_content = open(path).read()
|
||||
@ -245,15 +255,18 @@ def _patch_file(path, content):
|
||||
|
||||
_patch_file = _no_sandbox(_patch_file)
|
||||
|
||||
|
||||
def _same_content(path, content):
|
||||
return open(path).read() == content
|
||||
|
||||
|
||||
def _rename_path(path):
|
||||
new_name = path + '.OLD.%s' % time.time()
|
||||
log.warn('Renaming %s into %s', path, new_name)
|
||||
log.warn('Renaming %s to %s', path, new_name)
|
||||
os.rename(path, new_name)
|
||||
return new_name
|
||||
|
||||
|
||||
def _remove_flat_installation(placeholder):
|
||||
if not os.path.isdir(placeholder):
|
||||
log.warn('Unkown installation at %s', placeholder)
|
||||
@ -267,7 +280,7 @@ def _remove_flat_installation(placeholder):
|
||||
log.warn('Could not locate setuptools*.egg-info')
|
||||
return
|
||||
|
||||
log.warn('Removing elements out of the way...')
|
||||
log.warn('Moving elements out of the way...')
|
||||
pkg_info = os.path.join(placeholder, file)
|
||||
if os.path.isdir(pkg_info):
|
||||
patched = _patch_egg_dir(pkg_info)
|
||||
@ -289,11 +302,13 @@ def _remove_flat_installation(placeholder):
|
||||
|
||||
_remove_flat_installation = _no_sandbox(_remove_flat_installation)
|
||||
|
||||
|
||||
def _after_install(dist):
|
||||
log.warn('After install bootstrap.')
|
||||
placeholder = dist.get_command_obj('install').install_purelib
|
||||
_create_fake_setuptools_pkg_info(placeholder)
|
||||
|
||||
|
||||
def _create_fake_setuptools_pkg_info(placeholder):
|
||||
if not placeholder or not os.path.exists(placeholder):
|
||||
log.warn('Could not find the install location')
|
||||
@ -307,7 +322,11 @@ def _create_fake_setuptools_pkg_info(placeholder):
|
||||
return
|
||||
|
||||
log.warn('Creating %s', pkg_info)
|
||||
f = open(pkg_info, 'w')
|
||||
try:
|
||||
f = open(pkg_info, 'w')
|
||||
except EnvironmentError:
|
||||
log.warn("Don't have permissions to write %s, skipping", pkg_info)
|
||||
return
|
||||
try:
|
||||
f.write(SETUPTOOLS_PKG_INFO)
|
||||
finally:
|
||||
@ -321,7 +340,10 @@ def _create_fake_setuptools_pkg_info(placeholder):
|
||||
finally:
|
||||
f.close()
|
||||
|
||||
_create_fake_setuptools_pkg_info = _no_sandbox(_create_fake_setuptools_pkg_info)
|
||||
_create_fake_setuptools_pkg_info = _no_sandbox(
|
||||
_create_fake_setuptools_pkg_info
|
||||
)
|
||||
|
||||
|
||||
def _patch_egg_dir(path):
|
||||
# let's check if it's already patched
|
||||
@ -343,6 +365,7 @@ def _patch_egg_dir(path):
|
||||
|
||||
_patch_egg_dir = _no_sandbox(_patch_egg_dir)
|
||||
|
||||
|
||||
def _before_install():
|
||||
log.warn('Before install bootstrap.')
|
||||
_fake_setuptools()
|
||||
@ -351,7 +374,7 @@ def _before_install():
|
||||
def _under_prefix(location):
|
||||
if 'install' not in sys.argv:
|
||||
return True
|
||||
args = sys.argv[sys.argv.index('install')+1:]
|
||||
args = sys.argv[sys.argv.index('install') + 1:]
|
||||
for index, arg in enumerate(args):
|
||||
for option in ('--root', '--prefix'):
|
||||
if arg.startswith('%s=' % option):
|
||||
@ -359,7 +382,7 @@ def _under_prefix(location):
|
||||
return location.startswith(top_dir)
|
||||
elif arg == option:
|
||||
if len(args) > index:
|
||||
top_dir = args[index+1]
|
||||
top_dir = args[index + 1]
|
||||
return location.startswith(top_dir)
|
||||
if arg == '--user' and USER_SITE is not None:
|
||||
return location.startswith(USER_SITE)
|
||||
@ -376,11 +399,14 @@ def _fake_setuptools():
|
||||
return
|
||||
ws = pkg_resources.working_set
|
||||
try:
|
||||
setuptools_dist = ws.find(pkg_resources.Requirement.parse('setuptools',
|
||||
replacement=False))
|
||||
setuptools_dist = ws.find(
|
||||
pkg_resources.Requirement.parse('setuptools', replacement=False)
|
||||
)
|
||||
except TypeError:
|
||||
# old distribute API
|
||||
setuptools_dist = ws.find(pkg_resources.Requirement.parse('setuptools'))
|
||||
setuptools_dist = ws.find(
|
||||
pkg_resources.Requirement.parse('setuptools')
|
||||
)
|
||||
|
||||
if setuptools_dist is None:
|
||||
log.warn('No setuptools distribution found')
|
||||
@ -414,7 +440,7 @@ def _fake_setuptools():
|
||||
res = _patch_egg_dir(setuptools_location)
|
||||
if not res:
|
||||
return
|
||||
log.warn('Patched done.')
|
||||
log.warn('Patching complete.')
|
||||
_relaunch()
|
||||
|
||||
|
||||
@ -422,7 +448,9 @@ def _relaunch():
|
||||
log.warn('Relaunching...')
|
||||
# we have to relaunch the process
|
||||
# pip marker to avoid a relaunch bug
|
||||
if sys.argv[:3] == ['-c', 'install', '--single-version-externally-managed']:
|
||||
_cmd1 = ['-c', 'install', '--single-version-externally-managed']
|
||||
_cmd2 = ['-c', 'install', '--record']
|
||||
if sys.argv[:3] == _cmd1 or sys.argv[:3] == _cmd2:
|
||||
sys.argv[0] = 'setup.py'
|
||||
args = [sys.executable] + sys.argv
|
||||
sys.exit(subprocess.call(args))
|
||||
@ -448,7 +476,7 @@ def _extractall(self, path=".", members=None):
|
||||
# Extract directories with a safe mode.
|
||||
directories.append(tarinfo)
|
||||
tarinfo = copy.copy(tarinfo)
|
||||
tarinfo.mode = 448 # decimal for oct 0700
|
||||
tarinfo.mode = 448 # decimal for oct 0700
|
||||
self.extract(tarinfo, path)
|
||||
|
||||
# Reverse sort directories.
|
||||
@ -475,11 +503,39 @@ def _extractall(self, path=".", members=None):
|
||||
self._dbg(1, "tarfile: %s" % e)
|
||||
|
||||
|
||||
def main(argv, version=DEFAULT_VERSION):
|
||||
"""Install or upgrade setuptools and EasyInstall"""
|
||||
tarball = download_setuptools()
|
||||
_install(tarball)
|
||||
def _build_install_args(options):
|
||||
"""
|
||||
Build the arguments to 'python setup.py install' on the distribute package
|
||||
"""
|
||||
install_args = []
|
||||
if options.user_install:
|
||||
if sys.version_info < (2, 6):
|
||||
log.warn("--user requires Python 2.6 or later")
|
||||
raise SystemExit(1)
|
||||
install_args.append('--user')
|
||||
return install_args
|
||||
|
||||
def _parse_args():
|
||||
"""
|
||||
Parse the command line for options
|
||||
"""
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option(
|
||||
'--user', dest='user_install', action='store_true', default=False,
|
||||
help='install in user site package (requires Python 2.6 or later)')
|
||||
parser.add_option(
|
||||
'--download-base', dest='download_base', metavar="URL",
|
||||
default=DEFAULT_URL,
|
||||
help='alternative URL from where to download the distribute package')
|
||||
options, args = parser.parse_args()
|
||||
# positional arguments are ignored
|
||||
return options
|
||||
|
||||
def main(version=DEFAULT_VERSION):
|
||||
"""Install or upgrade setuptools and EasyInstall"""
|
||||
options = _parse_args()
|
||||
tarball = download_setuptools(download_base=options.download_base)
|
||||
return _install(tarball, _build_install_args(options))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
||||
sys.exit(main())
|
||||
|
13
doc/Makefile
13
doc/Makefile
@ -13,7 +13,8 @@ ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) \
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(O) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml text man pickle json htmlhelp \
|
||||
qthelp devhelp epub latex latexpdf changes linkcheck doctest
|
||||
qthelp devhelp epub latex latexpdf changes linkcheck doctest xml \
|
||||
pseudoxml
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@ -147,3 +148,13 @@ info:
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C _build/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in _build/texinfo."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) _build/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in _build/XML."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) _build/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in _build/pseudoxml."
|
||||
|
4
doc/_templates/index.html
vendored
4
doc/_templates/index.html
vendored
@ -62,9 +62,9 @@
|
||||
|
||||
<p>
|
||||
You can also download PDF versions of the Sphinx documentation:
|
||||
a <a href="http://sphinx.pocoo.org/sphinx.pdf">version</a> generated from
|
||||
a <a href="http://sphinx-doc.org/sphinx.pdf">version</a> generated from
|
||||
the LaTeX Sphinx produces, and
|
||||
a <a href="http://sphinx.pocoo.org/sphinx-rst2pdf.pdf">version</a> generated
|
||||
a <a href="http://sphinx-doc.org/sphinx-rst2pdf.pdf">version</a> generated
|
||||
by rst2pdf.
|
||||
</p>
|
||||
|
||||
|
6
doc/_templates/indexsidebar.html
vendored
6
doc/_templates/indexsidebar.html
vendored
@ -14,14 +14,14 @@
|
||||
<p>Get Sphinx from the <a href="http://pypi.python.org/pypi/Sphinx">Python Package
|
||||
Index</a>, or install it with:</p>
|
||||
<pre>easy_install -U Sphinx</pre>
|
||||
<p>Latest <a href="http://sphinx.pocoo.org/latest/">development version docs</a>
|
||||
<p>Latest <a href="http://sphinx-doc.org/latest/">development version docs</a>
|
||||
are also available.</p>
|
||||
{% endif %}
|
||||
|
||||
<h3>Questions? Suggestions?</h3>
|
||||
|
||||
<p>Join the <a href="http://groups.google.com/group/sphinx-dev">Google group</a>:</p>
|
||||
<form action="http://groups.google.com/group/sphinx-dev/boxsubscribe"
|
||||
<p>Join the <a href="http://groups.google.com/group/sphinx-users">Google group</a>:</p>
|
||||
<form action="http://groups.google.com/group/sphinx-users/boxsubscribe"
|
||||
style="padding-left: 1em">
|
||||
<input type="text" name="email" value="your@email"/>
|
||||
<input type="submit" name="sub" value="Subscribe" />
|
||||
|
@ -272,6 +272,29 @@ Note that a direct PDF builder using ReportLab is available in `rst2pdf
|
||||
|
||||
Its name is ``linkcheck``.
|
||||
|
||||
.. module:: sphinx.builders.xml
|
||||
.. class:: XMLBuilder
|
||||
|
||||
This builder produces Docutils-native XML files. The output can be
|
||||
transformed with standard XML tools such as XSLT processors into arbitrary
|
||||
final forms.
|
||||
|
||||
Its name is ``xml``.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
.. class:: PseudoXMLBuilder
|
||||
|
||||
This builder is used for debugging the Sphinx/Docutils "Reader to Transform
|
||||
to Writer" pipeline. It produces compact pretty-printed "pseudo-XML", files
|
||||
where nesting is indicated by indentation (no end-tags). External
|
||||
attributes for all elements are output, and internal attributes for any
|
||||
leftover "pending" elements are also given.
|
||||
|
||||
Its name is ``pseudoxml``.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
|
||||
Built-in Sphinx extensions that offer more builders are:
|
||||
|
||||
|
@ -23,14 +23,14 @@ modindex_common_prefix = ['sphinx.']
|
||||
html_static_path = ['_static']
|
||||
html_sidebars = {'index': ['indexsidebar.html', 'searchbox.html']}
|
||||
html_additional_pages = {'index': 'index.html'}
|
||||
html_use_opensearch = 'http://sphinx.pocoo.org'
|
||||
html_use_opensearch = 'http://sphinx-doc.org'
|
||||
|
||||
htmlhelp_basename = 'Sphinxdoc'
|
||||
|
||||
epub_theme = 'epub'
|
||||
epub_basename = 'sphinx'
|
||||
epub_author = 'Georg Brandl'
|
||||
epub_publisher = 'http://sphinx.pocoo.org/'
|
||||
epub_publisher = 'http://sphinx-doc.org/'
|
||||
epub_scheme = 'url'
|
||||
epub_identifier = epub_publisher
|
||||
epub_pre_files = [('index.html', 'Welcome')]
|
||||
|
@ -383,6 +383,7 @@ documentation on :ref:`intl` for details.
|
||||
* ``ko`` -- Korean
|
||||
* ``lt`` -- Lithuanian
|
||||
* ``lv`` -- Latvian
|
||||
* ``nb_NO`` -- Norwegian Bokmal
|
||||
* ``ne`` -- Nepali
|
||||
* ``nl`` -- Dutch
|
||||
* ``pl`` -- Polish
|
||||
@ -1341,6 +1342,16 @@ Options for the linkcheck builder
|
||||
.. versionadded:: 1.2
|
||||
|
||||
|
||||
Options for the XML builder
|
||||
---------------------------
|
||||
|
||||
.. confval:: xml_pretty
|
||||
|
||||
If True, pretty-print the XML. Default is ``True``.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
|
||||
.. rubric:: Footnotes
|
||||
|
||||
.. [1] A note on available globbing syntax: you can use the standard shell
|
||||
|
@ -22,6 +22,7 @@ Sphinx documentation contents
|
||||
|
||||
faq
|
||||
glossary
|
||||
devguide
|
||||
changes
|
||||
examples
|
||||
|
||||
|
214
doc/devguide.rst
Normal file
214
doc/devguide.rst
Normal file
@ -0,0 +1,214 @@
|
||||
Sphinx Developer's Guide
|
||||
========================
|
||||
|
||||
.. topic:: Abstract
|
||||
|
||||
This document describes the development process of Sphinx, a documentation
|
||||
system used by developers to document systems used by other developers to
|
||||
develop other systems that may also be documented using Sphinx.
|
||||
|
||||
The Sphinx source code is managed using `Mercurial`_ and is hosted on
|
||||
`BitBucket`_.
|
||||
|
||||
hg clone https://bitbucket.org/birkenfeld/sphinx
|
||||
|
||||
.. rubric:: Community
|
||||
|
||||
sphinx-users <sphinx-users@googlegroups.com>
|
||||
Mailing list for user support.
|
||||
|
||||
sphinx-dev <sphinx-dev@googlegroups.com>
|
||||
Mailing list for development related discussions.
|
||||
|
||||
#pocoo on irc.freenode.net
|
||||
IRC channel for development questions and user support.
|
||||
|
||||
This channel is shared with other Pocoo projects. Archived logs are
|
||||
available `here <http://dev.pocoo.org/irclogs/>`_.
|
||||
|
||||
.. _`BitBucket`: http://bitbucket.org
|
||||
.. _`Mercurial`: http://mercurial.selenic.com/
|
||||
|
||||
|
||||
Bug Reports and Feature Requests
|
||||
--------------------------------
|
||||
|
||||
If you have encountered a problem with Sphinx or have an idea for a new
|
||||
feature, please submit it to the `issue tracker`_ on BitBucket or discuss it
|
||||
on the sphinx-dev mailing list.
|
||||
|
||||
For bug reports, please include the output produced during the build process
|
||||
and also the log file Sphinx creates after it encounters an un-handled
|
||||
exception. The location of this file should be shown towards the end of the
|
||||
error message.
|
||||
|
||||
Including or providing a link to the source files involved may help us fix the
|
||||
issue. If possible, try to create a minimal project that produces the error
|
||||
and post that instead.
|
||||
|
||||
.. _`issue tracker`: http://bitbucket.org/birkenfeld/sphinx/issues
|
||||
|
||||
|
||||
Contributing to Sphinx
|
||||
----------------------
|
||||
|
||||
The recommended way for new contributors to submit code to Sphinx is to fork
|
||||
the Mercurial repository on BitBucket and then submit a pull request after
|
||||
committing the changes. The pull request will then need to be approved by one
|
||||
of the core developers before it is merged into the main repository.
|
||||
|
||||
|
||||
Getting Started
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
These are the basic steps needed to start developing on Sphinx.
|
||||
|
||||
#. Create an account on BitBucket.
|
||||
|
||||
#. Fork the main Sphinx repository (`birkenfeld/sphinx
|
||||
<https://bitbucket.org/birkenfeld/sphinx>`_) using the BitBucket interface.
|
||||
|
||||
#. Clone the forked repository to your machine. ::
|
||||
|
||||
hg clone https://bitbucket.org/USERNAME/sphinx-fork
|
||||
cd sphinx-fork
|
||||
|
||||
#. Checkout the appropriate branch.
|
||||
|
||||
For changes that should be included in the next minor release (namely bug
|
||||
fixes), use the ``stable`` branch. ::
|
||||
|
||||
hg checkout stable
|
||||
|
||||
For new features or other substantial changes that should wait until the
|
||||
next major release, use the ``default`` branch.
|
||||
|
||||
#. Setup your Python environment. ::
|
||||
|
||||
virtualenv ~/sphinxenv
|
||||
. ~/sphinxenv/bin/activate
|
||||
pip install -e .
|
||||
|
||||
#. Hack, hack, hack.
|
||||
|
||||
For tips on working with the code, see the `Coding Guide`_.
|
||||
|
||||
#. Test, test, test.
|
||||
|
||||
Run the unit tests::
|
||||
|
||||
pip install nose
|
||||
make test
|
||||
|
||||
Build the documentation and check the output for different builders::
|
||||
|
||||
cd docs
|
||||
make clean html text man info latexpdf
|
||||
|
||||
Run the unit tests under different Python environments using
|
||||
:program:`tox`::
|
||||
|
||||
pip install tox
|
||||
tox -v
|
||||
|
||||
Add a new unit test in the ``tests`` directory if you can.
|
||||
|
||||
For bug fixes, first add a test that fails without your changes and passes
|
||||
after they are applied.
|
||||
|
||||
#. Commit your changes. ::
|
||||
|
||||
hg commit -m 'Add useful new feature that does this.'
|
||||
|
||||
BitBucket recognizes `certain phrases`__ that can be used to automatically
|
||||
update the issue tracker.
|
||||
|
||||
For example::
|
||||
|
||||
hg commit -m 'Closes #42: Fix invalid markup in docstring of Foo.bar.'
|
||||
|
||||
would close issue #42.
|
||||
|
||||
__ https://confluence.atlassian.com/display/BITBUCKET/Automatically+Resolving+Issues+when+Users+Push+Code
|
||||
|
||||
#. Push changes to your forked repository on BitBucket. ::
|
||||
|
||||
hg push
|
||||
|
||||
#. Submit a pull request from your repository to ``birkenfeld/sphinx`` using
|
||||
the BitBucket interface.
|
||||
|
||||
#. Wait for a core developer to review your changes.
|
||||
|
||||
|
||||
Core Developers
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
The core developers of Sphinx have write access to the main repository. They
|
||||
can commit changes, accept/reject pull requests, and manage items on the issue
|
||||
tracker.
|
||||
|
||||
You do not need to be a core developer or have write access to be involved in
|
||||
the development of Sphinx. You can submit patches or create pull requests
|
||||
from forked repositories and have a core developer add the changes for you.
|
||||
|
||||
The following are some general guidelines for core developers:
|
||||
|
||||
* Questionable or extensive changes should be submitted as a pull request
|
||||
instead of being committed directly to the main repository. The pull
|
||||
request should be reviewed by another core developer before it is merged.
|
||||
|
||||
* Trivial changes can be committed directly but be sure to keep the repository
|
||||
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.
|
||||
|
||||
* Using Mercurial named branches other than ``default`` and ``stable`` is not
|
||||
encouraged.
|
||||
|
||||
|
||||
Coding Guide
|
||||
------------
|
||||
|
||||
* Try to use the same code style as used in the rest of the project. See the
|
||||
`Pocoo Styleguide`__ for more information.
|
||||
|
||||
__ http://flask.pocoo.org/docs/styleguide/
|
||||
|
||||
* For non-trivial changes, please update the :file:`CHANGES` file. If your
|
||||
changes alter existing behavior, please document this.
|
||||
|
||||
* New features should be documented. Include examples and use cases where
|
||||
appropriate. If possible, include a sample that is displayed in the
|
||||
generated output.
|
||||
|
||||
* When adding a new configuration variable, be sure to document it and update
|
||||
:file:`sphinx/quickstart.py`.
|
||||
|
||||
* Use the included :program:`utils/check_sources.py` script to check for
|
||||
common formatting issues (trailing whitespace, lengthy lines, etc).
|
||||
|
||||
* Add appropriate unit tests.
|
||||
|
||||
|
||||
Debugging Tips
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
* Delete the build cache before building documents if you make changes in the
|
||||
code by running the command ``make clean`` or using the
|
||||
:option:`sphinx-build -E` option.
|
||||
|
||||
* Use the :option:`sphinx-build -P` option to run Pdb on exceptions.
|
||||
|
||||
* Use ``node.pformat()`` and ``node.asdom().toxml()`` to generate a printable
|
||||
representation of the document structure.
|
||||
|
||||
* Set the configuration variable :confval:`keep_warnings` to True so warnings
|
||||
will be displayed in the generated output.
|
||||
|
||||
* Set the configuration variable :confval:`nitpicky` to True so that Sphinx
|
||||
will complain about references without a known target.
|
||||
|
||||
* Set the debugging options in the `Docutils configuration file
|
||||
<http://docutils.sourceforge.net/docs/user/config.html>`_.
|
@ -812,7 +812,15 @@ More domains
|
||||
------------
|
||||
|
||||
The sphinx-contrib_ repository contains more domains available as extensions;
|
||||
currently Ada, Erlang, HTTP, PHP, and Ruby domains.
|
||||
currently Ada, CoffeeScript_, Erlang_, HTTP_, Jinja_, PHP_, Ruby, and Scala_
|
||||
domains.
|
||||
|
||||
|
||||
.. _sphinx-contrib: https://bitbucket.org/birkenfeld/sphinx-contrib/
|
||||
|
||||
.. _CoffeeScript: http://pypi.python.org/pypi/sphinxcontrib-coffee
|
||||
.. _Erlang: http://pypi.python.org/pypi/sphinxcontrib-erlangdomain
|
||||
.. _HTTP: http://pypi.python.org/pypi/sphinxcontrib-httpdomain
|
||||
.. _Jinja: http://pypi.python.org/pypi/sphinxcontrib-jinjadomain
|
||||
.. _Scala: http://pypi.python.org/pypi/sphinxcontrib-scaladomain
|
||||
.. _PHP: http://pypi.python.org/pypi/sphinxcontrib-phpdomain
|
||||
|
@ -120,6 +120,9 @@ inserting them into the page source under a suitable :rst:dir:`py:module`,
|
||||
|
||||
.. versionadded:: 1.1
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
The option can now take arguments, i.e. the special members to document.
|
||||
|
||||
* For classes and exceptions, members inherited from base classes will be
|
||||
left out when documenting all members, unless you give the
|
||||
``inherited-members`` flag option, in addition to ``members``::
|
||||
@ -194,12 +197,13 @@ inserting them into the page source under a suitable :rst:dir:`py:module`,
|
||||
automethod
|
||||
autoattribute
|
||||
|
||||
These work exactly like :rst:dir:`autoclass` etc., but do not offer the options
|
||||
used for automatic member documentation.
|
||||
These work exactly like :rst:dir:`autoclass` etc., but do not offer the
|
||||
options used for automatic member documentation.
|
||||
|
||||
For module data members and class attributes, documentation can either be put
|
||||
into a special-formatted comment, or in a docstring *after* the definition.
|
||||
Comments need to be either on a line of their own *before* the definition, or
|
||||
into a comment with special formatting (using a ``#:`` to start the comment
|
||||
instead of just ``#``), or in a docstring *after* the definition. Comments
|
||||
need to be either on a line of their own *before* the definition, or
|
||||
immediately after the assignment *on the same line*. The latter form is
|
||||
restricted to one line only.
|
||||
|
||||
|
46
doc/ext/linkcode.rst
Normal file
46
doc/ext/linkcode.rst
Normal file
@ -0,0 +1,46 @@
|
||||
:mod:`sphinx.ext.linkcode` -- Add external links to source code
|
||||
===============================================================
|
||||
|
||||
.. module:: sphinx.ext.linkcode
|
||||
:synopsis: Add external links to source code.
|
||||
.. moduleauthor:: Pauli Virtanen
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
This extension looks at your object descriptions (``.. class::``,
|
||||
``.. function::`` etc.) and adds external links to code hosted
|
||||
somewhere on the web. The intent is similar to the
|
||||
``sphinx.ext.viewcode`` extension, but assumes the source code can be
|
||||
found somewhere on the Internet.
|
||||
|
||||
In your configuration, you need to specify a :confval:`linkcode_resolve`
|
||||
function that returns an URL based on the object.
|
||||
|
||||
.. confval:: linkcode_resolve
|
||||
|
||||
This is a function ``linkcode_resolve(domain, info)``,
|
||||
which should return the URL to source code corresponding to
|
||||
the object in given domain with given information.
|
||||
|
||||
The function should return ``None`` if no link is to be added.
|
||||
|
||||
The argument ``domain`` specifies the language domain the object is
|
||||
in. ``info`` is a dictionary with the following keys guaranteed to
|
||||
be present (dependent on the domain):
|
||||
|
||||
- ``py``: ``module`` (name of the module), ``fullname`` (name of the object)
|
||||
- ``c``: ``names`` (list of names for the object)
|
||||
- ``cpp``: ``names`` (list of names for the object)
|
||||
- ``javascript``: ``object`` (name of the object), ``fullname`` (name of the item)
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def linkcode_resolve(domain, info):
|
||||
if domain != 'py':
|
||||
return None
|
||||
if not info['module']:
|
||||
return None
|
||||
filename = info['module'].replace('.', '/')
|
||||
return "http://somesite/sourcerepo/%s.py" % filename
|
@ -148,19 +148,12 @@ built:
|
||||
.. confval:: pngmath_dvipng_args
|
||||
|
||||
Additional arguments to give to dvipng, as a list. The default value is
|
||||
``['-gamma 1.5', '-D 110']`` which makes the image a bit darker and larger
|
||||
then it is by default.
|
||||
``['-gamma', '1.5', '-D', '110', '-bg', 'Transparent']`` which makes the
|
||||
image a bit darker and larger then it is by default, and produces PNGs with a
|
||||
transparent background.
|
||||
|
||||
An arguments you might want to add here is e.g. ``'-bg Transparent'``,
|
||||
which produces PNGs with a transparent background. This is not enabled by
|
||||
default because some Internet Explorer versions don't like transparent PNGs.
|
||||
|
||||
.. note::
|
||||
|
||||
When you "add" an argument, you need to reproduce the default arguments if
|
||||
you want to keep them; that is, like this::
|
||||
|
||||
pngmath_dvipng_args = ['-gamma 1.5', '-D 110', '-bg Transparent']
|
||||
.. versionchanged:: 1.2
|
||||
Now includes ``-bg Transparent`` by default.
|
||||
|
||||
.. confval:: pngmath_use_preview
|
||||
|
||||
|
@ -53,6 +53,7 @@ These extensions are built in and can be activated by respective entries in the
|
||||
ext/todo
|
||||
ext/extlinks
|
||||
ext/viewcode
|
||||
ext/linkcode
|
||||
ext/oldcmarkup
|
||||
|
||||
|
||||
|
@ -50,19 +50,15 @@ See the :ref:`pertinent section in the FAQ list <usingwith>`.
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
Sphinx needs at least **Python 2.4** or **Python 3.1** to run, as well as the
|
||||
Sphinx needs at least **Python 2.5** or **Python 3.1** to run, as well as the
|
||||
docutils_ and Jinja2_ libraries. Sphinx should work with docutils version 0.7
|
||||
or some (not broken) SVN trunk snapshot. If you like to have source code
|
||||
highlighting support, you must also install the Pygments_ library.
|
||||
|
||||
If you use **Python 2.4** you also need uuid_.
|
||||
|
||||
.. _reStructuredText: http://docutils.sf.net/rst.html
|
||||
.. _docutils: http://docutils.sf.net/
|
||||
.. _Jinja2: http://jinja.pocoo.org/
|
||||
.. _Pygments: http://pygments.org/
|
||||
.. The given homepage is only a directory listing so I'm using the pypi site.
|
||||
.. _uuid: http://pypi.python.org/pypi/uuid/
|
||||
|
||||
|
||||
Usage
|
||||
|
@ -227,6 +227,17 @@ The :program:`sphinx-apidoc` script has several options:
|
||||
|
||||
This sets the maximum depth of the table of contents, if one is generated.
|
||||
|
||||
.. option:: -l, --follow-links
|
||||
|
||||
This option makes sphinx-apidoc follow symbolic links when recursing the
|
||||
filesystem to discover packages and modules. You may need it if you want
|
||||
to generate documentation from a source directory managed by
|
||||
`collective.recipe.omelette
|
||||
<http://pypi.python.org/pypi/collective.recipe.omelette/>`_.
|
||||
By default, symbolic links are skipped.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
.. option:: -T, --no-toc
|
||||
|
||||
This prevents the generation of a table-of-contents file ``modules.rst``.
|
||||
|
@ -182,13 +182,6 @@ Including content based on tags
|
||||
The format of the current builder (``html``, ``latex`` or ``text``) is always
|
||||
set as a tag.
|
||||
|
||||
.. note::
|
||||
|
||||
Due to docutils' specifics of parsing of directive content, you cannot put
|
||||
a section with the same level as the main document heading inside an
|
||||
``only`` directive. Such sections will appear to be ignored in the parsed
|
||||
document.
|
||||
|
||||
.. versionadded:: 0.6
|
||||
|
||||
|
||||
|
33
setup.py
33
setup.py
@ -46,26 +46,20 @@ A development egg can be found `here
|
||||
|
||||
requires = ['Pygments>=1.2', 'Jinja2>=2.3', 'docutils>=0.7']
|
||||
|
||||
if sys.version_info < (2, 4):
|
||||
print('ERROR: Sphinx requires at least Python 2.4 to run.')
|
||||
sys.exit(1)
|
||||
if sys.version_info[:3] >= (3, 3, 0):
|
||||
requires[2] = 'docutils>=0.10'
|
||||
|
||||
if sys.version_info < (2, 5):
|
||||
# Python 2.4's distutils doesn't automatically install an egg-info,
|
||||
# so an existing docutils install won't be detected -- in that case,
|
||||
# remove the dependency from setup.py
|
||||
try:
|
||||
import docutils
|
||||
if int(docutils.__version__[2]) < 4:
|
||||
raise ValueError('docutils not recent enough')
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
del requires[-1]
|
||||
|
||||
# The uuid module is new in the stdlib in 2.5
|
||||
requires.append('uuid>=1.30')
|
||||
print('ERROR: Sphinx requires at least Python 2.5 to run.')
|
||||
sys.exit(1)
|
||||
|
||||
# tell distribute to use 2to3 with our own fixers
|
||||
extra = {}
|
||||
if sys.version_info >= (3, 0):
|
||||
extra.update(
|
||||
use_2to3=True,
|
||||
use_2to3_fixers=['custom_fixers']
|
||||
)
|
||||
|
||||
# Provide a "compile_catalog" command that also creates the translated
|
||||
# JavaScript files if Babel is available.
|
||||
@ -164,7 +158,7 @@ else:
|
||||
setup(
|
||||
name='Sphinx',
|
||||
version=sphinx.__version__,
|
||||
url='http://sphinx.pocoo.org/',
|
||||
url='http://sphinx-doc.org/',
|
||||
download_url='http://pypi.python.org/pypi/Sphinx',
|
||||
license='BSD',
|
||||
author='Georg Brandl',
|
||||
@ -203,6 +197,5 @@ setup(
|
||||
},
|
||||
install_requires=requires,
|
||||
cmdclass=cmdclass,
|
||||
use_2to3=True,
|
||||
use_2to3_fixers=['custom_fixers'],
|
||||
**extra
|
||||
)
|
||||
|
@ -38,11 +38,20 @@ if '+' in __version__ or 'pre' in __version__:
|
||||
|
||||
def main(argv=sys.argv):
|
||||
"""Sphinx build "main" command-line entry."""
|
||||
if sys.version_info[:3] < (2, 4, 0):
|
||||
if sys.version_info[:3] < (2, 5, 0):
|
||||
sys.stderr.write('Error: Sphinx requires at least '
|
||||
'Python 2.4 to run.\n')
|
||||
'Python 2.5 to run.\n')
|
||||
return 1
|
||||
|
||||
if sys.version_info[:3] >= (3, 3, 0):
|
||||
try:
|
||||
import docutils
|
||||
x, y = docutils.__version__.split('.')[:2]
|
||||
if (int(x), int(y)) < (0, 10):
|
||||
sys.stderr.write('Error: Sphinx requires at least '
|
||||
'Docutils 0.10 for Python 3.3 and above.\n')
|
||||
return 1
|
||||
except Exception:
|
||||
pass
|
||||
try:
|
||||
from sphinx import cmdline
|
||||
except ImportError:
|
||||
|
@ -157,7 +157,8 @@ def recurse_tree(rootpath, excludes, opts):
|
||||
root_package = None
|
||||
|
||||
toplevels = []
|
||||
for root, subs, files in os.walk(rootpath):
|
||||
followlinks = getattr(opts, 'followlinks', False)
|
||||
for root, subs, files in os.walk(rootpath, followlinks=followlinks):
|
||||
if is_excluded(root, excludes):
|
||||
del subs[:]
|
||||
continue
|
||||
@ -246,6 +247,10 @@ Note: By default this script will not overwrite already created files.""")
|
||||
'(default: 4)', type='int', default=4)
|
||||
parser.add_option('-f', '--force', action='store_true', dest='force',
|
||||
help='Overwrite all files')
|
||||
parser.add_option('-l', '--follow-links', action='store_true',
|
||||
dest='followlinks', default=False,
|
||||
help='Follow symbolic links. Powerful when combined '
|
||||
'with collective.recipe.omelette.')
|
||||
parser.add_option('-n', '--dry-run', action='store_true', dest='dryrun',
|
||||
help='Run the script without creating files')
|
||||
parser.add_option('-T', '--no-toc', action='store_true', dest='notoc',
|
||||
|
@ -409,7 +409,7 @@ class Sphinx(object):
|
||||
if domain.name not in self.domains:
|
||||
raise ExtensionError('domain %s not yet registered' % domain.name)
|
||||
if not issubclass(domain, self.domains[domain.name]):
|
||||
raise ExtensionError('new domain not a subclass of registered '
|
||||
raise ExtensionError('new domain not a subclass of registered %s '
|
||||
'domain' % domain.name)
|
||||
self.domains[domain.name] = domain
|
||||
|
||||
|
@ -334,4 +334,6 @@ BUILTIN_BUILDERS = {
|
||||
'linkcheck': ('linkcheck', 'CheckExternalLinksBuilder'),
|
||||
'websupport': ('websupport', 'WebSupportBuilder'),
|
||||
'gettext': ('gettext', 'MessageCatalogBuilder'),
|
||||
'xml': ('xml', 'XMLBuilder'),
|
||||
'pseudoxml': ('xml', 'PseudoXMLBuilder'),
|
||||
}
|
||||
|
@ -610,7 +610,8 @@ class StandaloneHTMLBuilder(Builder):
|
||||
"""
|
||||
Builder.post_process_images(self, doctree)
|
||||
for node in doctree.traverse(nodes.image):
|
||||
if not node.has_key('scale') or \
|
||||
scale_keys = ('scale', 'width', 'height')
|
||||
if not any((key in node) for key in scale_keys) or \
|
||||
isinstance(node.parent, nodes.reference):
|
||||
# docutils does unfortunately not preserve the
|
||||
# ``target`` attribute on images, so we need to check
|
||||
|
@ -102,7 +102,8 @@ class CheckExternalLinksBuilder(Builder):
|
||||
|
||||
def check():
|
||||
# check for various conditions without bothering the network
|
||||
if len(uri) == 0 or uri[0] == '#' or uri[0:7] == 'mailto:' or uri[0:4] == 'ftp:':
|
||||
if len(uri) == 0 or uri[0] == '#' or \
|
||||
uri[0:7] == 'mailto:' or uri[0:4] == 'ftp:':
|
||||
return 'unchecked', ''
|
||||
elif not (uri[0:5] == 'http:' or uri[0:6] == 'https:'):
|
||||
return 'local', ''
|
||||
|
85
sphinx/builders/xml.py
Normal file
85
sphinx/builders/xml.py
Normal file
@ -0,0 +1,85 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
sphinx.builders.xml
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Docutils-native XML and pseudo-XML builders.
|
||||
|
||||
:copyright: Copyright 2007-2012 by the Sphinx team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
import codecs
|
||||
from os import path
|
||||
|
||||
from docutils.io import StringOutput
|
||||
|
||||
from sphinx.builders import Builder
|
||||
from sphinx.util.osutil import ensuredir, os_path
|
||||
from sphinx.writers.xml import XMLWriter, PseudoXMLWriter
|
||||
|
||||
class XMLBuilder(Builder):
|
||||
"""
|
||||
Builds Docutils-native XML.
|
||||
"""
|
||||
name = 'xml'
|
||||
format = 'xml'
|
||||
out_suffix = '.xml'
|
||||
|
||||
_writer_class = XMLWriter
|
||||
|
||||
def init(self):
|
||||
pass
|
||||
|
||||
def get_outdated_docs(self):
|
||||
for docname in self.env.found_docs:
|
||||
if docname not in self.env.all_docs:
|
||||
yield docname
|
||||
continue
|
||||
targetname = self.env.doc2path(docname, self.outdir,
|
||||
self.out_suffix)
|
||||
try:
|
||||
targetmtime = path.getmtime(targetname)
|
||||
except Exception:
|
||||
targetmtime = 0
|
||||
try:
|
||||
srcmtime = path.getmtime(self.env.doc2path(docname))
|
||||
if srcmtime > targetmtime:
|
||||
yield docname
|
||||
except EnvironmentError:
|
||||
# source doesn't exist anymore
|
||||
pass
|
||||
|
||||
def get_target_uri(self, docname, typ=None):
|
||||
return ''
|
||||
|
||||
def prepare_writing(self, docnames):
|
||||
self.writer = self._writer_class(self)
|
||||
|
||||
def write_doc(self, docname, doctree):
|
||||
destination = StringOutput(encoding='utf-8')
|
||||
self.writer.write(doctree, destination)
|
||||
outfilename = path.join(self.outdir, os_path(docname) + self.out_suffix)
|
||||
ensuredir(path.dirname(outfilename))
|
||||
try:
|
||||
f = codecs.open(outfilename, 'w', 'utf-8')
|
||||
try:
|
||||
f.write(self.writer.output)
|
||||
finally:
|
||||
f.close()
|
||||
except (IOError, OSError), err:
|
||||
self.warn("error writing file %s: %s" % (outfilename, err))
|
||||
|
||||
def finish(self):
|
||||
pass
|
||||
|
||||
|
||||
class PseudoXMLBuilder(XMLBuilder):
|
||||
"""
|
||||
Builds pseudo-XML for display purposes.
|
||||
"""
|
||||
name = 'pseudoxml'
|
||||
format = 'pseudoxml'
|
||||
out_suffix = '.pseudoxml'
|
||||
|
||||
_writer_class = PseudoXMLWriter
|
@ -231,7 +231,7 @@ def main(argv):
|
||||
'can be provided next time.')
|
||||
print >>error, (
|
||||
'Either send bugs to the mailing list at '
|
||||
'<http://groups.google.com/group/sphinx-dev/>,\n'
|
||||
'<http://groups.google.com/group/sphinx-users/>,\n'
|
||||
'or report them in the tracker at '
|
||||
'<http://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks!')
|
||||
return 1
|
||||
|
@ -184,6 +184,9 @@ class Config(object):
|
||||
|
||||
# gettext options
|
||||
gettext_compact = (True, 'gettext'),
|
||||
|
||||
# XML options
|
||||
xml_pretty = (True, 'env'),
|
||||
)
|
||||
|
||||
def __init__(self, dirname, filename, overrides, tags):
|
||||
|
@ -338,9 +338,46 @@ class Only(Directive):
|
||||
node.document = self.state.document
|
||||
set_source_info(self, node)
|
||||
node['expr'] = self.arguments[0]
|
||||
self.state.nested_parse(self.content, self.content_offset, node,
|
||||
match_titles=1)
|
||||
return [node]
|
||||
|
||||
# Same as util.nested_parse_with_titles but try to handle nested
|
||||
# sections which should be raised higher up the doctree.
|
||||
surrounding_title_styles = self.state.memo.title_styles
|
||||
surrounding_section_level = self.state.memo.section_level
|
||||
self.state.memo.title_styles = []
|
||||
self.state.memo.section_level = 0
|
||||
try:
|
||||
result = self.state.nested_parse(self.content, self.content_offset,
|
||||
node, match_titles=1)
|
||||
title_styles = self.state.memo.title_styles
|
||||
if (not surrounding_title_styles
|
||||
or not title_styles
|
||||
or title_styles[0] not in surrounding_title_styles
|
||||
or not self.state.parent):
|
||||
# No nested sections so no special handling needed.
|
||||
return [node]
|
||||
# Calculate the depths of the current and nested sections.
|
||||
current_depth = 0
|
||||
parent = self.state.parent
|
||||
while parent:
|
||||
current_depth += 1
|
||||
parent = parent.parent
|
||||
current_depth -= 2
|
||||
title_style = title_styles[0]
|
||||
nested_depth = len(surrounding_title_styles)
|
||||
if title_style in surrounding_title_styles:
|
||||
nested_depth = surrounding_title_styles.index(title_style)
|
||||
# Use these depths to determine where the nested sections should
|
||||
# be placed in the doctree.
|
||||
n_sects_to_raise = current_depth - nested_depth + 1
|
||||
parent = self.state.parent
|
||||
for i in xrange(n_sects_to_raise):
|
||||
if parent.parent:
|
||||
parent = parent.parent
|
||||
parent.append(node)
|
||||
return []
|
||||
finally:
|
||||
self.state.memo.title_styles = surrounding_title_styles
|
||||
self.state.memo.section_level = surrounding_section_level
|
||||
|
||||
|
||||
class Include(BaseInclude):
|
||||
|
@ -672,8 +672,9 @@ class DefinitionParser(object):
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
def _parse_builtin(self, modifier):
|
||||
path = [modifier]
|
||||
def _parse_builtin(self, modifiers):
|
||||
modifier = modifiers[-1]
|
||||
path = modifiers
|
||||
following = self._modifiers[modifier]
|
||||
while 1:
|
||||
self.skip_ws()
|
||||
@ -730,9 +731,10 @@ class DefinitionParser(object):
|
||||
# impossible for a template to follow, so what
|
||||
# we do is go to a different function that just
|
||||
# eats types
|
||||
if following is not None:
|
||||
return self._parse_builtin(modifier)
|
||||
modifiers.append(modifier)
|
||||
if following is not None:
|
||||
return self._parse_builtin(modifiers)
|
||||
self.skip_ws()
|
||||
else:
|
||||
self.backout()
|
||||
break
|
||||
@ -760,17 +762,33 @@ class DefinitionParser(object):
|
||||
self.skip_ws()
|
||||
if self.match(_string_re):
|
||||
return self.matched_text
|
||||
idx1 = self.definition.find(',', self.pos)
|
||||
idx2 = self.definition.find(')', self.pos)
|
||||
if idx1 < 0:
|
||||
idx = idx2
|
||||
elif idx2 < 0:
|
||||
idx = idx1
|
||||
else:
|
||||
idx = min(idx1, idx2)
|
||||
if idx < 0:
|
||||
self.fail('unexpected end in default expression')
|
||||
rv = self.definition[self.pos:idx]
|
||||
paren_stack_depth = 0
|
||||
max_pos = len(self.definition)
|
||||
rv_start = self.pos
|
||||
while 1:
|
||||
idx0 = self.definition.find('(', self.pos)
|
||||
idx1 = self.definition.find(',', self.pos)
|
||||
idx2 = self.definition.find(')', self.pos)
|
||||
if idx0 < 0:
|
||||
idx0 = max_pos
|
||||
if idx1 < 0:
|
||||
idx1 = max_pos
|
||||
if idx2 < 0:
|
||||
idx2 = max_pos
|
||||
idx = min(idx0, idx1, idx2)
|
||||
if idx >= max_pos:
|
||||
self.fail('unexpected end in default expression')
|
||||
if idx == idx0:
|
||||
paren_stack_depth += 1
|
||||
elif idx == idx2:
|
||||
paren_stack_depth -= 1
|
||||
if paren_stack_depth < 0:
|
||||
break
|
||||
elif paren_stack_depth == 0:
|
||||
break
|
||||
self.pos = idx+1
|
||||
|
||||
rv = self.definition[rv_start:idx]
|
||||
self.pos = idx
|
||||
return rv
|
||||
|
||||
@ -836,7 +854,7 @@ class DefinitionParser(object):
|
||||
visibility = 'public'
|
||||
if self.match(_visibility_re):
|
||||
visibility = self.matched_text
|
||||
static = self.skip_word('static')
|
||||
static = self.skip_word_and_ws('static')
|
||||
return visibility, static
|
||||
|
||||
def parse_type(self):
|
||||
|
@ -66,6 +66,7 @@ default_settings = {
|
||||
'doctitle_xform': False,
|
||||
'sectsubtitle_xform': False,
|
||||
'halt_level': 5,
|
||||
'file_insertion_enabled': True,
|
||||
}
|
||||
|
||||
# This is increased every time an environment attribute is added
|
||||
@ -193,6 +194,7 @@ class Locale(Transform):
|
||||
Replace translatable nodes with their translated doctree.
|
||||
"""
|
||||
default_priority = 0
|
||||
|
||||
def apply(self):
|
||||
env = self.document.settings.env
|
||||
settings, source = self.document.settings, self.document['source']
|
||||
@ -213,17 +215,63 @@ class Locale(Transform):
|
||||
parser = RSTParser()
|
||||
|
||||
for node, msg in extract_messages(self.document):
|
||||
patch = new_document(source, settings)
|
||||
msgstr = catalog.gettext(msg)
|
||||
# XXX add marker to untranslated parts
|
||||
if not msgstr or msgstr == msg: # as-of-yet untranslated
|
||||
continue
|
||||
|
||||
patch = new_document(source, settings)
|
||||
parser.parse(msgstr, patch)
|
||||
patch = patch[0]
|
||||
# XXX doctest and other block markup
|
||||
if not isinstance(patch, nodes.paragraph):
|
||||
continue # skip for now
|
||||
for child in patch.children: # update leaves
|
||||
|
||||
# auto-numbered foot note reference should use original 'ids'.
|
||||
is_autonumber_footnote_ref = lambda node: \
|
||||
isinstance(node, nodes.footnote_reference) \
|
||||
and node.get('auto') == 1
|
||||
old_foot_refs = node.traverse(is_autonumber_footnote_ref)
|
||||
new_foot_refs = patch.traverse(is_autonumber_footnote_ref)
|
||||
if len(old_foot_refs) != len(new_foot_refs):
|
||||
env.warn_node('inconsistent footnote references in '
|
||||
'translated message', node)
|
||||
for old, new in zip(old_foot_refs, new_foot_refs):
|
||||
new['ids'] = old['ids']
|
||||
self.document.autofootnote_refs.remove(old)
|
||||
self.document.note_autofootnote_ref(new)
|
||||
|
||||
# reference should use original 'refname'.
|
||||
# * reference target ".. _Python: ..." is not translatable.
|
||||
# * section refname is not translatable.
|
||||
# * inline reference "`Python <...>`_" has no 'refname'.
|
||||
is_refnamed_ref = lambda node: \
|
||||
isinstance(node, nodes.reference) \
|
||||
and 'refname' in node
|
||||
old_refs = node.traverse(is_refnamed_ref)
|
||||
new_refs = patch.traverse(is_refnamed_ref)
|
||||
applied_refname_map = {}
|
||||
if len(old_refs) != len(new_refs):
|
||||
env.warn_node('inconsistent references in '
|
||||
'translated message', node)
|
||||
for new in new_refs:
|
||||
if new['refname'] in applied_refname_map:
|
||||
# 2nd appearance of the reference
|
||||
new['refname'] = applied_refname_map[new['refname']]
|
||||
elif old_refs:
|
||||
# 1st appearance of the reference in old_refs
|
||||
old = old_refs.pop(0)
|
||||
refname = old['refname']
|
||||
new['refname'] = refname
|
||||
applied_refname_map[new['refname']] = refname
|
||||
else:
|
||||
# the reference is not found in old_refs
|
||||
applied_refname_map[new['refname']] = new['refname']
|
||||
|
||||
self.document.note_refname(new)
|
||||
|
||||
# update leaves
|
||||
for child in patch.children:
|
||||
child.parent = node
|
||||
node.children = patch.children
|
||||
|
||||
@ -782,7 +830,11 @@ class BuildEnvironment:
|
||||
app.emit('doctree-read', doctree)
|
||||
|
||||
# store time of build, for outdated files detection
|
||||
self.all_docs[docname] = time.time()
|
||||
# (Some filesystems have coarse timestamp resolution;
|
||||
# therefore time.time() can be older than filesystem's timestamp.
|
||||
# For example, FAT32 has 2sec timestamp resolution.)
|
||||
self.all_docs[docname] = max(
|
||||
time.time(), path.getmtime(self.doc2path(docname)))
|
||||
|
||||
if self.versioning_condition:
|
||||
# get old doctree
|
||||
@ -1759,4 +1811,3 @@ class BuildEnvironment:
|
||||
if 'orphan' in self.metadata[docname]:
|
||||
continue
|
||||
self.warn(docname, 'document isn\'t included in any toctree')
|
||||
|
||||
|
@ -489,20 +489,26 @@ class Documenter(object):
|
||||
If *want_all* is True, return all members. Else, only return those
|
||||
members given by *self.options.members* (which may also be none).
|
||||
"""
|
||||
analyzed_member_names = set()
|
||||
if self.analyzer:
|
||||
attr_docs = self.analyzer.find_attr_docs()
|
||||
namespace = '.'.join(self.objpath)
|
||||
for item in attr_docs.iteritems():
|
||||
if item[0][0] == namespace:
|
||||
analyzed_member_names.add(item[0][1])
|
||||
if not want_all:
|
||||
if not self.options.members:
|
||||
return False, []
|
||||
# specific members given
|
||||
ret = []
|
||||
members = []
|
||||
for mname in self.options.members:
|
||||
try:
|
||||
ret.append((mname, self.get_attr(self.object, mname)))
|
||||
members.append((mname, self.get_attr(self.object, mname)))
|
||||
except AttributeError:
|
||||
self.directive.warn('missing attribute %s in object %s'
|
||||
% (mname, self.fullname))
|
||||
return False, ret
|
||||
|
||||
if self.options.inherited_members:
|
||||
if mname not in analyzed_member_names:
|
||||
self.directive.warn('missing attribute %s in object %s'
|
||||
% (mname, self.fullname))
|
||||
elif self.options.inherited_members:
|
||||
# safe_getmembers() uses dir() which pulls in members from all
|
||||
# base classes
|
||||
members = safe_getmembers(self.object)
|
||||
@ -521,13 +527,10 @@ class Documenter(object):
|
||||
for mname in obj_dict.keys()]
|
||||
membernames = set(m[0] for m in members)
|
||||
# add instance attributes from the analyzer
|
||||
if self.analyzer:
|
||||
attr_docs = self.analyzer.find_attr_docs()
|
||||
namespace = '.'.join(self.objpath)
|
||||
for item in attr_docs.iteritems():
|
||||
if item[0][0] == namespace:
|
||||
if item[0][1] not in membernames:
|
||||
members.append((item[0][1], INSTANCEATTR))
|
||||
for aname in analyzed_member_names:
|
||||
if aname not in membernames and \
|
||||
(want_all or aname in self.options.members):
|
||||
members.append((aname, INSTANCEATTR))
|
||||
return False, sorted(members)
|
||||
|
||||
def filter_members(self, members, want_all):
|
||||
@ -573,7 +576,11 @@ class Documenter(object):
|
||||
if want_all and membername.startswith('__') and \
|
||||
membername.endswith('__') and len(membername) > 4:
|
||||
# special __methods__
|
||||
if self.options.special_members and membername != '__doc__':
|
||||
if self.options.special_members is ALL and \
|
||||
membername != '__doc__':
|
||||
keep = has_doc or self.options.undoc_members
|
||||
elif self.options.special_members and \
|
||||
membername in self.options.special_members:
|
||||
keep = has_doc or self.options.undoc_members
|
||||
elif want_all and membername.startswith('_'):
|
||||
# ignore members whose name starts with _ by default
|
||||
@ -748,7 +755,7 @@ class ModuleDocumenter(Documenter):
|
||||
'show-inheritance': bool_option, 'synopsis': identity,
|
||||
'platform': identity, 'deprecated': bool_option,
|
||||
'member-order': identity, 'exclude-members': members_set_option,
|
||||
'private-members': bool_option, 'special-members': bool_option,
|
||||
'private-members': bool_option, 'special-members': members_option,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
@ -862,7 +869,7 @@ class DocstringSignatureMixin(object):
|
||||
"""
|
||||
|
||||
def _find_signature(self, encoding=None):
|
||||
docstrings = Documenter.get_doc(self, encoding, 2)
|
||||
docstrings = Documenter.get_doc(self, encoding)
|
||||
if len(docstrings) != 1:
|
||||
return
|
||||
doclines = docstrings[0]
|
||||
@ -877,6 +884,9 @@ class DocstringSignatureMixin(object):
|
||||
# the base name must match ours
|
||||
if not self.objpath or base != self.objpath[-1]:
|
||||
return
|
||||
# re-prepare docstring to ignore indentation after signature
|
||||
docstrings = Documenter.get_doc(self, encoding, 2)
|
||||
doclines = docstrings[0]
|
||||
# ok, now jump over remaining empty lines and set the remaining
|
||||
# lines as the new doclines
|
||||
i = 1
|
||||
@ -949,7 +959,7 @@ class ClassDocumenter(ModuleLevelDocumenter):
|
||||
'noindex': bool_option, 'inherited-members': bool_option,
|
||||
'show-inheritance': bool_option, 'member-order': identity,
|
||||
'exclude-members': members_set_option,
|
||||
'private-members': bool_option, 'special-members': bool_option,
|
||||
'private-members': bool_option, 'special-members': members_option,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
@ -1098,7 +1108,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter):
|
||||
"""
|
||||
objtype = 'method'
|
||||
member_order = 50
|
||||
priority = 0
|
||||
priority = 1 # must be more than FunctionDocumenter
|
||||
|
||||
@classmethod
|
||||
def can_document_member(cls, member, membername, isattr, parent):
|
||||
|
@ -125,7 +125,7 @@ def render_dot(self, code, options, format, prefix='graphviz'):
|
||||
str(self.builder.config.graphviz_dot) + \
|
||||
str(self.builder.config.graphviz_dot_args)
|
||||
).encode('utf-8')
|
||||
|
||||
|
||||
fname = '%s-%s.%s' % (prefix, sha(hashkey).hexdigest(), format)
|
||||
if hasattr(self.builder, 'imgpath'):
|
||||
# HTML
|
||||
@ -229,10 +229,10 @@ def render_dot_html(self, node, code, options, prefix='graphviz',
|
||||
(fname, alt, imgcss))
|
||||
else:
|
||||
# has a map: get the name of the map and connect the parts
|
||||
mapname = mapname_re.match(imgmap[0]).group(1)
|
||||
mapname = mapname_re.match(imgmap[0].decode('utf-8')).group(1)
|
||||
self.body.append('<img src="%s" alt="%s" usemap="#%s" %s/>\n' %
|
||||
(fname, alt, mapname, imgcss))
|
||||
self.body.extend(imgmap)
|
||||
self.body.extend([item.decode('utf-8') for item in imgmap])
|
||||
if node.get('caption') and not inline:
|
||||
self.body.append('</p>\n<p class="caption">')
|
||||
self.body.append(self.encode(node['caption']))
|
||||
|
@ -168,7 +168,7 @@ class InheritanceGraph(object):
|
||||
for cls in classes:
|
||||
recurse(cls)
|
||||
|
||||
return all_classes.values()
|
||||
return all_classes
|
||||
|
||||
def class_name(self, cls, parts=0):
|
||||
"""Given a class object, return a fully-qualified name.
|
||||
@ -188,7 +188,7 @@ class InheritanceGraph(object):
|
||||
|
||||
def get_all_class_names(self):
|
||||
"""Get all of the class names involved in the graph."""
|
||||
return [fullname for (_, fullname, _) in self.class_info]
|
||||
return [fullname for (_, fullname, _) in self.class_info.values()]
|
||||
|
||||
# These are the default attrs for graphviz
|
||||
default_graph_attrs = {
|
||||
@ -199,8 +199,8 @@ class InheritanceGraph(object):
|
||||
'shape': 'box',
|
||||
'fontsize': 10,
|
||||
'height': 0.25,
|
||||
'fontname': 'Vera Sans, DejaVu Sans, Liberation Sans, '
|
||||
'Arial, Helvetica, sans',
|
||||
'fontname': '"Vera Sans, DejaVu Sans, Liberation Sans, '
|
||||
'Arial, Helvetica, sans"',
|
||||
'style': '"setlinewidth(0.5)"',
|
||||
}
|
||||
default_edge_attrs = {
|
||||
@ -241,12 +241,16 @@ class InheritanceGraph(object):
|
||||
res.append('digraph %s {\n' % name)
|
||||
res.append(self._format_graph_attrs(g_attrs))
|
||||
|
||||
for name, fullname, bases in self.class_info:
|
||||
for cls, (name, fullname, bases) in self.class_info.items():
|
||||
# Write the node
|
||||
this_node_attrs = n_attrs.copy()
|
||||
url = urls.get(fullname)
|
||||
if url is not None:
|
||||
this_node_attrs['URL'] = '"%s"' % url
|
||||
if fullname in urls:
|
||||
this_node_attrs['URL'] = '"%s"' % urls[fullname]
|
||||
# Use first line of docstring as tooltip, if available
|
||||
if cls.__doc__:
|
||||
doc = cls.__doc__.strip().split("\n")[0]
|
||||
if doc:
|
||||
this_node_attrs['tooltip'] = '"%s"' % doc
|
||||
res.append(' "%s" [%s];\n' %
|
||||
(name, self._format_node_attrs(this_node_attrs)))
|
||||
|
||||
|
@ -188,7 +188,17 @@ def load_mappings(app):
|
||||
if update:
|
||||
env.intersphinx_inventory = {}
|
||||
env.intersphinx_named_inventory = {}
|
||||
for name, _, invdata in cache.itervalues():
|
||||
# Duplicate values in different inventories will shadow each
|
||||
# other; which one will override which can vary between builds
|
||||
# since they are specified using an unordered dict. To make
|
||||
# it more consistent, we sort the named inventories and then
|
||||
# add the unnamed inventories last. This means that the
|
||||
# unnamed inventories will shadow the named ones but the named
|
||||
# ones can still be accessed when the name is specified.
|
||||
cached_vals = list(cache.itervalues())
|
||||
named_vals = sorted(v for v in cached_vals if v[0])
|
||||
unnamed_vals = [v for v in cached_vals if not v[0]]
|
||||
for name, _, invdata in named_vals + unnamed_vals:
|
||||
if name:
|
||||
env.intersphinx_named_inventory[name] = invdata
|
||||
for type, objects in invdata.iteritems():
|
||||
|
72
sphinx/ext/linkcode.py
Normal file
72
sphinx/ext/linkcode.py
Normal file
@ -0,0 +1,72 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
sphinx.ext.linkcode
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Add external links to module code in Python object descriptions.
|
||||
|
||||
:copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
from docutils import nodes
|
||||
|
||||
from sphinx import addnodes
|
||||
from sphinx.locale import _
|
||||
from sphinx.errors import SphinxError
|
||||
|
||||
class LinkcodeError(SphinxError):
|
||||
category = "linkcode error"
|
||||
|
||||
def doctree_read(app, doctree):
|
||||
env = app.builder.env
|
||||
|
||||
resolve_target = getattr(env.config, 'linkcode_resolve', None)
|
||||
if not callable(env.config.linkcode_resolve):
|
||||
raise LinkcodeError(
|
||||
"Function `linkcode_resolve` is not given in conf.py")
|
||||
|
||||
domain_keys = dict(
|
||||
py=['module', 'fullname'],
|
||||
c=['names'],
|
||||
cpp=['names'],
|
||||
js=['object', 'fullname'],
|
||||
)
|
||||
|
||||
for objnode in doctree.traverse(addnodes.desc):
|
||||
domain = objnode.get('domain')
|
||||
uris = set()
|
||||
for signode in objnode:
|
||||
if not isinstance(signode, addnodes.desc_signature):
|
||||
continue
|
||||
|
||||
# Convert signode to a specified format
|
||||
info = {}
|
||||
for key in domain_keys.get(domain, []):
|
||||
value = signode.get(key)
|
||||
if not value:
|
||||
value = ''
|
||||
info[key] = value
|
||||
if not info:
|
||||
continue
|
||||
|
||||
# Call user code to resolve the link
|
||||
uri = resolve_target(domain, info)
|
||||
if not uri:
|
||||
# no source
|
||||
continue
|
||||
|
||||
if uri in uris or not uri:
|
||||
# only one link per name, please
|
||||
continue
|
||||
uris.add(uri)
|
||||
|
||||
onlynode = addnodes.only(expr='html')
|
||||
onlynode += nodes.reference('', '', internal=False, refuri=uri)
|
||||
onlynode[0] += nodes.inline('', _('[source]'),
|
||||
classes=['viewcode-link'])
|
||||
signode += onlynode
|
||||
|
||||
def setup(app):
|
||||
app.connect('doctree-read', doctree_read)
|
||||
app.add_config_value('linkcode_resolve', None, '')
|
@ -16,7 +16,7 @@ from sphinx.util.compat import Directive
|
||||
_warned_oldcmarkup = False
|
||||
WARNING_MSG = 'using old C markup; please migrate to new-style markup ' \
|
||||
'(e.g. c:function instead of cfunction), see ' \
|
||||
'http://sphinx.pocoo.org/domains.html'
|
||||
'http://sphinx-doc.org/domains.html'
|
||||
|
||||
|
||||
class OldCDirective(Directive):
|
||||
|
@ -237,7 +237,8 @@ def setup(app):
|
||||
app.add_config_value('pngmath_latex', 'latex', 'html')
|
||||
app.add_config_value('pngmath_use_preview', False, 'html')
|
||||
app.add_config_value('pngmath_dvipng_args',
|
||||
['-gamma 1.5', '-D 110'], 'html')
|
||||
['-gamma', '1.5', '-D', '110', '-bg', 'Transparent'],
|
||||
'html')
|
||||
app.add_config_value('pngmath_latex_args', [], 'html')
|
||||
app.add_config_value('pngmath_latex_preamble', '', 'html')
|
||||
app.add_config_value('pngmath_add_tooltips', True, 'html')
|
||||
|
@ -143,6 +143,12 @@ class PygmentsBridge(object):
|
||||
# just replace all non-ASCII characters.
|
||||
src = src.encode('ascii', 'replace')
|
||||
|
||||
if (3, 0) <= sys.version_info < (3, 2):
|
||||
# Python 3.1 can't process '\r' as linesep.
|
||||
# `parser.suite("print('hello')\r\n")` cause error.
|
||||
if '\r\n' in src:
|
||||
src = src.replace('\r\n', '\n')
|
||||
|
||||
if parser is None:
|
||||
return True
|
||||
|
||||
@ -207,6 +213,8 @@ class PygmentsBridge(object):
|
||||
if self.dest == 'html':
|
||||
return hlsource
|
||||
else:
|
||||
if not isinstance(hlsource, unicode): # Py2 / Pygments < 1.6
|
||||
hlsource = hlsource.decode()
|
||||
return hlsource.translate(tex_hl_escape_map_new)
|
||||
except ErrorToken:
|
||||
# this is most probably not the selected language,
|
||||
|
Binary file not shown.
@ -639,10 +639,10 @@ msgstr "%(last_updated)s সর্বশেষ পরিবর্তন কর
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"<a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s দিয়ে "
|
||||
"<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s দিয়ে "
|
||||
"তৈরী।"
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -633,10 +633,10 @@ msgstr "Última actualització el %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Creat amb <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Creat amb <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -636,10 +636,10 @@ msgstr "Aktualizováno dne %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Vytvořeno pomocí <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Vytvořeno pomocí <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -628,10 +628,10 @@ msgstr "Sidst opdateret %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Bygget med <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Bygget med <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -629,10 +629,10 @@ msgstr "Zuletzt aktualisiert am %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Mit <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s "
|
||||
"Mit <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s "
|
||||
"erstellt."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -642,10 +642,10 @@ msgstr "Actualizado por última vez en %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Creado con <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Creado con <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
@ -1 +1 @@
|
||||
Documentation.addTranslations({"locale": "et", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Varja otsingutulemused", "Permalink to this definition": "P\u00fcsilink sellele definitsioonile", "Expand sidebar": "N\u00e4ita k\u00fclgriba", "Permalink to this headline": "P\u00fcsilink sellele pealkirjale", "Collapse sidebar": "Varja k\u00fclgriba"}});
|
||||
Documentation.addTranslations({"locale": "et", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Varja otsingutulemused", "Permalink to this definition": "P\u00fcsiviit sellele definitsioonile", "Expand sidebar": "N\u00e4ita k\u00fclgriba", "Permalink to this headline": "P\u00fcsiviit sellele pealkirjale", "Collapse sidebar": "Varja k\u00fclgriba"}});
|
Binary file not shown.
@ -1,15 +1,20 @@
|
||||
# Estonian translations for Sphinx.
|
||||
# Copyright (C) 2010 ORGANIZATION
|
||||
# This file is distributed under the same license as the Sphinx project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
# Sphinxi eesti keele tõlge.
|
||||
#
|
||||
# Copyright (C) 2011‒2012 Pocoo Team.
|
||||
#
|
||||
# This file is distributed under the same license as the Sphinx project.
|
||||
#
|
||||
# Aivar Annamaa <aivar.annamaa@gmail.com>, 2011
|
||||
# Ivar Smolin <okul at linux ee>, 2012
|
||||
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Sphinx 1.0pre/8b971dbc7d36\n"
|
||||
"Project-Id-Version: Sphinx 1.1.3"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2011-09-21 10:06+0200\n"
|
||||
"PO-Revision-Date: 2011-09-18 11:40+0200\n"
|
||||
"Last-Translator: Aivar Annamaa <aivar.annamaa@gmail.com>\n"
|
||||
"PO-Revision-Date: 2012-09-15 12:56+0300\n"
|
||||
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
|
||||
"Language-Team: \n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -18,7 +23,7 @@ msgstr ""
|
||||
"Generated-By: Babel 0.9.6\n"
|
||||
|
||||
#: sphinx/config.py:81
|
||||
#, fuzzy, python-format
|
||||
#, python-format
|
||||
msgid "%s %s documentation"
|
||||
msgstr "%s %s dokumentatsioon"
|
||||
|
||||
@ -26,22 +31,22 @@ msgstr "%s %s dokumentatsioon"
|
||||
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:203
|
||||
#, python-format
|
||||
msgid "%B %d, %Y"
|
||||
msgstr "%B %d, %Y"
|
||||
msgstr "%d. %B %Y"
|
||||
|
||||
#: sphinx/environment.py:1625
|
||||
#, python-format
|
||||
msgid "see %s"
|
||||
msgstr ""
|
||||
msgstr "vaata %s"
|
||||
|
||||
#: sphinx/environment.py:1628
|
||||
#, python-format
|
||||
msgid "see also %s"
|
||||
msgstr ""
|
||||
msgstr "vaata ka %s"
|
||||
|
||||
#: sphinx/roles.py:175
|
||||
#, fuzzy, python-format
|
||||
#, python-format
|
||||
msgid "Python Enhancement Proposals; PEP %s"
|
||||
msgstr "Python Enhancement Proposals!PEP %s"
|
||||
msgstr "Pythoni täiustusettepanekud, PEP %s"
|
||||
|
||||
#: sphinx/builders/changes.py:73
|
||||
msgid "Builtins"
|
||||
@ -54,7 +59,7 @@ msgstr "Mooduli tase"
|
||||
#: sphinx/builders/html.py:274
|
||||
#, python-format
|
||||
msgid "%b %d, %Y"
|
||||
msgstr "%b %d, %Y"
|
||||
msgstr "%d. %b %Y"
|
||||
|
||||
#: sphinx/builders/html.py:293 sphinx/themes/basic/defindex.html:30
|
||||
msgid "General Index"
|
||||
@ -73,8 +78,11 @@ msgid "previous"
|
||||
msgstr "eelmine"
|
||||
|
||||
#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
|
||||
# paistab olevat ristviitamiseks. ei oska öelda, kas siia sobiks paremini
|
||||
# 'Sektsioonis' või 'Teema' või midagi muud. sestap panin enamvähem lollikindla
|
||||
# 'Pealkirjas'. (okul)
|
||||
msgid " (in "
|
||||
msgstr " (in "
|
||||
msgstr " (pealkirjas "
|
||||
|
||||
#: sphinx/directives/other.py:136
|
||||
msgid "Section author: "
|
||||
@ -196,9 +204,9 @@ msgid "%s() (%s method)"
|
||||
msgstr "%s() (%s meetod)"
|
||||
|
||||
#: sphinx/domains/javascript.py:109
|
||||
#, fuzzy, python-format
|
||||
#, python-format
|
||||
msgid "%s() (class)"
|
||||
msgstr "%s (C++ klass)"
|
||||
msgstr "%s() (klass)"
|
||||
|
||||
#: sphinx/domains/javascript.py:111
|
||||
#, python-format
|
||||
@ -216,7 +224,7 @@ msgstr "Argumendid"
|
||||
|
||||
#: sphinx/domains/javascript.py:125
|
||||
msgid "Throws"
|
||||
msgstr "Throws"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
|
||||
msgid "data"
|
||||
@ -232,7 +240,7 @@ msgstr "Muutujad"
|
||||
|
||||
#: sphinx/domains/python.py:104
|
||||
msgid "Raises"
|
||||
msgstr "Raises"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/domains/python.py:255 sphinx/domains/python.py:312
|
||||
#: sphinx/domains/python.py:324 sphinx/domains/python.py:337
|
||||
@ -278,12 +286,12 @@ msgstr "%s() (%s staatiline meetod)"
|
||||
#: sphinx/domains/python.py:341
|
||||
#, python-format
|
||||
msgid "%s() (%s.%s class method)"
|
||||
msgstr "%s() (%s.%s klassi meetod)"
|
||||
msgstr "%s() (klassi %s.%s meetod)"
|
||||
|
||||
#: sphinx/domains/python.py:344
|
||||
#, python-format
|
||||
msgid "%s() (%s class method)"
|
||||
msgstr "%s() (%s klassi meetod)"
|
||||
msgstr "%s() (klassi %s meetod)"
|
||||
|
||||
#: sphinx/domains/python.py:354
|
||||
#, python-format
|
||||
@ -305,7 +313,7 @@ msgstr "moodulid"
|
||||
|
||||
#: sphinx/domains/python.py:537
|
||||
msgid "Deprecated"
|
||||
msgstr "Ebaasoovitav"
|
||||
msgstr "Iganenud"
|
||||
|
||||
#: sphinx/domains/python.py:562 sphinx/locale/__init__.py:179
|
||||
msgid "exception"
|
||||
@ -328,9 +336,8 @@ msgid "module"
|
||||
msgstr "moodul"
|
||||
|
||||
#: sphinx/domains/python.py:695
|
||||
#, fuzzy
|
||||
msgid " (deprecated)"
|
||||
msgstr "Ebaasoovitav"
|
||||
msgstr " (iganenud)"
|
||||
|
||||
#: sphinx/domains/rst.py:55
|
||||
#, python-format
|
||||
@ -362,11 +369,11 @@ msgstr "%s käsurea valik; %s"
|
||||
|
||||
#: sphinx/domains/std.py:393
|
||||
msgid "glossary term"
|
||||
msgstr "termin"
|
||||
msgstr "sõnastiku termin"
|
||||
|
||||
#: sphinx/domains/std.py:394
|
||||
msgid "grammar token"
|
||||
msgstr "grammatika märgend"
|
||||
msgstr "grammatika märk"
|
||||
|
||||
#: sphinx/domains/std.py:395
|
||||
msgid "reference label"
|
||||
@ -378,7 +385,7 @@ msgstr "keskkonnamuutuja"
|
||||
|
||||
#: sphinx/domains/std.py:397
|
||||
msgid "program option"
|
||||
msgstr "programmi seade"
|
||||
msgstr "programmi valik"
|
||||
|
||||
#: sphinx/domains/std.py:427 sphinx/themes/basic/genindex-single.html:32
|
||||
#: sphinx/themes/basic/genindex-split.html:11
|
||||
@ -395,26 +402,26 @@ msgstr "Mooduli indeks"
|
||||
|
||||
#: sphinx/domains/std.py:429 sphinx/themes/basic/defindex.html:25
|
||||
msgid "Search Page"
|
||||
msgstr "Otsingu lehekülg"
|
||||
msgstr "Otsinguleht"
|
||||
|
||||
#: sphinx/ext/autodoc.py:1002
|
||||
#, python-format
|
||||
msgid " Bases: %s"
|
||||
msgstr " Baasid: %s"
|
||||
msgstr " Pärineb: %s"
|
||||
|
||||
#: sphinx/ext/autodoc.py:1038
|
||||
#, python-format
|
||||
msgid "alias of :class:`%s`"
|
||||
msgstr "sünonüüm :class:`%s`"
|
||||
msgstr "klassi :class:`%s` sünonüüm"
|
||||
|
||||
#: sphinx/ext/todo.py:41
|
||||
msgid "Todo"
|
||||
msgstr "Tegemata"
|
||||
msgstr "Teha"
|
||||
|
||||
#: sphinx/ext/todo.py:109
|
||||
#, python-format
|
||||
msgid "(The <<original entry>> is located in %s, line %d.)"
|
||||
msgstr "(Algne kirje asub failis %s, real %d.)"
|
||||
msgstr "(<<Algne kirje>> asub failis %s real %d.)"
|
||||
|
||||
#: sphinx/ext/todo.py:117
|
||||
msgid "original entry"
|
||||
@ -498,7 +505,7 @@ msgstr "Muudetud versioonis %s"
|
||||
#: sphinx/locale/__init__.py:170
|
||||
#, python-format
|
||||
msgid "Deprecated since version %s"
|
||||
msgstr "Ebasoovitav alates versioonist %s"
|
||||
msgstr "Iganenud alates versioonist %s"
|
||||
|
||||
#: sphinx/locale/__init__.py:176
|
||||
msgid "keyword"
|
||||
@ -536,7 +543,7 @@ msgstr "Otsi"
|
||||
|
||||
#: sphinx/themes/agogo/layout.html:57 sphinx/themes/basic/searchbox.html:20
|
||||
msgid "Enter search terms or a module, class or function name."
|
||||
msgstr "Sisesta otsingusõna"
|
||||
msgstr "Sisesta otsingusõna või mooduli/klassi/funktsiooni nimi."
|
||||
|
||||
#: sphinx/themes/agogo/layout.html:78 sphinx/themes/basic/sourcelink.html:14
|
||||
msgid "Show Source"
|
||||
@ -609,17 +616,17 @@ msgstr "Info selle dokumentatsiooni kohta"
|
||||
|
||||
#: sphinx/themes/basic/layout.html:140
|
||||
msgid "Copyright"
|
||||
msgstr "Copyright"
|
||||
msgstr "Autoriõigused"
|
||||
|
||||
#: sphinx/themes/basic/layout.html:189
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Autoriõigused</a> %(copyright)s."
|
||||
|
||||
#: sphinx/themes/basic/layout.html:191
|
||||
#, python-format
|
||||
msgid "© Copyright %(copyright)s."
|
||||
msgstr "© Copyright %(copyright)s."
|
||||
msgstr "© Autoriõigused %(copyright)s."
|
||||
|
||||
#: sphinx/themes/basic/layout.html:195
|
||||
#, python-format
|
||||
@ -629,10 +636,10 @@ msgstr "Viimati uuendatud %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Loodud <a href=\"http://sphinx.pocoo.org/\">Sphinx-iga</a> (versioon: "
|
||||
"Loodud <a href=\"http://sphinx-doc.org/\">Sphinxiga</a> (versioon: "
|
||||
"%(sphinx_version)s)."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
@ -669,9 +676,9 @@ msgid ""
|
||||
" function will automatically search for all of the words. Pages\n"
|
||||
" containing fewer words won't appear in the result list."
|
||||
msgstr ""
|
||||
"Siin saad otsida käesolevast dokumentatsioonist. Sisesta otsisõned "
|
||||
"Siin saad otsida käesolevast dokumentatsioonist. Sisesta otsisõnad "
|
||||
"allolevasse lahtrisse ning klõpsa \"Otsi\". Tulemuseks antakse "
|
||||
"leheküljed, mis sisaldavad kõiki otsisõnesid."
|
||||
"leheküljed, mis sisaldavad kõiki otsisõnasid."
|
||||
|
||||
#: sphinx/themes/basic/search.html:36
|
||||
msgid "search"
|
||||
@ -683,7 +690,7 @@ msgstr "Otsingutulemused"
|
||||
|
||||
#: sphinx/themes/basic/search.html:42
|
||||
msgid "Your search did not match any results."
|
||||
msgstr "Otsing ei andnud tulemusi"
|
||||
msgstr "Otsing ei andnud tulemusi."
|
||||
|
||||
#: sphinx/themes/basic/searchbox.html:12
|
||||
msgid "Quick search"
|
||||
@ -691,13 +698,13 @@ msgstr "Kiirotsing"
|
||||
|
||||
#: sphinx/themes/basic/sourcelink.html:11
|
||||
msgid "This Page"
|
||||
msgstr "Käesolev lehekülg"
|
||||
msgstr "Käesolev leht"
|
||||
|
||||
#: sphinx/themes/basic/changes/frameset.html:5
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:12
|
||||
#, python-format
|
||||
msgid "Changes in Version %(version)s — %(docstitle)s"
|
||||
msgstr "Muudatused versioonis %(version)s — %(docstitle)s"
|
||||
msgstr "Muutused versioonis %(version)s — %(docstitle)s"
|
||||
|
||||
#: sphinx/themes/basic/changes/rstsource.html:5
|
||||
#, python-format
|
||||
@ -707,28 +714,28 @@ msgstr "%(filename)s — %(docstitle)s"
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:17
|
||||
#, python-format
|
||||
msgid "Automatically generated list of changes in version %(version)s"
|
||||
msgstr "Automaatselt genereeritud nimekiri versiooni %(version)s muudatustest"
|
||||
msgstr "Automaatselt genereeritud nimekiri versiooni %(version)s muutustest"
|
||||
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:18
|
||||
msgid "Library changes"
|
||||
msgstr "Teegi muudatused"
|
||||
msgstr "Teegi muutused"
|
||||
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:23
|
||||
msgid "C API changes"
|
||||
msgstr "C API muudatused"
|
||||
msgstr "C API muutused"
|
||||
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:25
|
||||
msgid "Other changes"
|
||||
msgstr "Ülejäänud muudatused"
|
||||
msgstr "Ülejäänud muutused"
|
||||
|
||||
#: sphinx/themes/basic/static/doctools.js:154 sphinx/writers/html.py:504
|
||||
#: sphinx/writers/html.py:510
|
||||
msgid "Permalink to this headline"
|
||||
msgstr "Püsilink sellele pealkirjale"
|
||||
msgstr "Püsiviit sellele pealkirjale"
|
||||
|
||||
#: sphinx/themes/basic/static/doctools.js:160 sphinx/writers/html.py:92
|
||||
msgid "Permalink to this definition"
|
||||
msgstr "Püsilink sellele definitsioonile"
|
||||
msgstr "Püsiviit sellele definitsioonile"
|
||||
|
||||
#: sphinx/themes/basic/static/doctools.js:189
|
||||
msgid "Hide Search Matches"
|
||||
|
Binary file not shown.
@ -635,10 +635,10 @@ msgstr ". %(last_updated)s آخرین بروز رسانی در"
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
". <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s "
|
||||
". <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s "
|
||||
"ایجاد شده با"
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -632,7 +632,7 @@ msgstr ""
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
|
||||
|
Binary file not shown.
@ -635,10 +635,10 @@ msgstr "Mis à jour le %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Créé avec <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Créé avec <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -630,10 +630,10 @@ msgstr "Zadnji put ažurirano %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Izrađeno sa <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Izrađeno sa <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
@ -1 +1 @@
|
||||
Documentation.addTranslations({"locale": "hu", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Keresési találatok elrejtése", "Permalink to this definition": "Hivatkozás erre a definícióra", "Expand sidebar": "Oldalsáv kinyitása", "Permalink to this headline": "Hivatkozás erre a fejezetcímre", "Collapse sidebar": "Oldalsáv összezárása"}});
|
||||
Documentation.addTranslations({"locale": "hu", "plural_expr": "0", "messages": {"Hide Search Matches": "Keres\u00e9si Tal\u00e1latok Elrejt\u00e9se", "Permalink to this definition": "Hivatkoz\u00e1s erre a defin\u00edci\u00f3ra", "Expand sidebar": "Oldals\u00e1v kinyit\u00e1sa", "Permalink to this headline": "Hivatkoz\u00e1s erre a fejezetc\u00edmre", "Collapse sidebar": "Oldals\u00e1v \u00f6sszez\u00e1r\u00e1sa"}});
|
Binary file not shown.
@ -438,10 +438,10 @@ msgstr "Utolsó frissítés %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"<a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"<a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s használatával készült."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -633,10 +633,10 @@ msgstr "Ultimo aggiornamento %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Creato con <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Creato con <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -630,10 +630,10 @@ msgstr "最終更新: %(last_updated)s"
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"このドキュメントは <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"このドキュメントは <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s で生成しました。"
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
@ -635,10 +635,10 @@ msgstr "최종 업데이트: %(last_updated)s"
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"이 문서는 <a href=\"http://sphinx.pocoo.org/\">Sphinx</a>%(sphinx_version)s로 "
|
||||
"이 문서는 <a href=\"http://sphinx-doc.org/\">Sphinx</a>%(sphinx_version)s로 "
|
||||
"제공됩니다."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -628,10 +628,10 @@ msgstr "Paskutinis atnaujinimas %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Sukurta naudojant <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Sukurta naudojant <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -628,10 +628,10 @@ msgstr "Pēdējas izmaiņas %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Sagatavots izmantojot <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Sagatavots izmantojot <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
1
sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
Normal file
1
sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
Normal file
@ -0,0 +1 @@
|
||||
Documentation.addTranslations({"locale": "nb_NO", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Skjul s\u00f8keresultat", "Permalink to this definition": "Permalink til denne definisjonen", "Expand sidebar": "Utvid sidepanelet", "Permalink to this headline": "Permalink til denne oversikten", "Collapse sidebar": "Skjul sidepanelet"}});
|
BIN
sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
Normal file
BIN
sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
Normal file
Binary file not shown.
@ -624,10 +624,10 @@ msgstr "Sist oppdatert %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Lagd med <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Lagd med <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
Binary file not shown.
@ -600,7 +600,7 @@ msgstr "नेभिगेसन "
|
||||
#: sphinx/themes/basic/layout.html:122
|
||||
#, python-format
|
||||
msgid "Search within %(docstitle)s"
|
||||
msgstr "भित्र-भित्रै खोज्नुहोस्"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/themes/basic/layout.html:131
|
||||
msgid "About these documents"
|
||||
@ -628,14 +628,14 @@ msgstr "यो भन्दा अगाडी %(last_updated)s मा अपड
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr "<a href=\"http://sphinx.pocoo.org/\">Sphinx</a> प्रयोग गरेर बनाइएको"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
#, python-format
|
||||
msgid "Search %(docstitle)s"
|
||||
msgstr "खोज्नुहोस्"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/themes/basic/relations.html:11
|
||||
msgid "Previous topic"
|
||||
|
Binary file not shown.
@ -632,10 +632,10 @@ msgstr "Laatste aanpassing op %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Aangemaakt met <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Aangemaakt met <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
@ -1 +0,0 @@
|
||||
Documentation.addTranslations({"locale": "no_NB", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Skjul S\u00f6kresultater", "Permalink to this definition": "Permalink til denne definisjonen", "Expand sidebar": "Utvid sidepanelet", "Permalink to this headline": "Permalink til denne overskriften", "Collapse sidebar": "Kollaps sidepanelet"}});
|
Binary file not shown.
Binary file not shown.
@ -556,7 +556,7 @@ msgstr "wszystkie rozdziały i podrozdziały"
|
||||
|
||||
#: sphinx/themes/basic/defindex.html:26
|
||||
msgid "search this documentation"
|
||||
msgstr "przyszukaj tę dokumentację"
|
||||
msgstr "przeszukaj tę dokumentację"
|
||||
|
||||
#: sphinx/themes/basic/defindex.html:28
|
||||
msgid "Global Module Index"
|
||||
@ -625,10 +625,10 @@ msgstr "Ostatnia modyfikacja %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Utworzone przy pomocy <a href=\"http://sphinx.pocoo.org/\">Sphinx</a>'a "
|
||||
"Utworzone przy pomocy <a href=\"http://sphinx-doc.org/\">Sphinx</a>'a "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
@ -656,7 +656,7 @@ msgstr "następny rozdział"
|
||||
msgid ""
|
||||
"Please activate JavaScript to enable the search\n"
|
||||
" functionality."
|
||||
msgstr "Aby umożliwić wuszukiwanie, proszę włączyć JavaScript."
|
||||
msgstr "Aby umożliwić wyszukiwanie, proszę włączyć JavaScript."
|
||||
|
||||
#: sphinx/themes/basic/search.html:29
|
||||
msgid ""
|
||||
@ -696,7 +696,7 @@ msgstr "Ta strona"
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:12
|
||||
#, python-format
|
||||
msgid "Changes in Version %(version)s — %(docstitle)s"
|
||||
msgstr "Zmiany w wesji %(version)s — %(docstitle)s"
|
||||
msgstr "Zmiany w wersji %(version)s — %(docstitle)s"
|
||||
|
||||
#: sphinx/themes/basic/changes/rstsource.html:5
|
||||
#, python-format
|
||||
|
Binary file not shown.
@ -628,10 +628,10 @@ msgstr "Última atualização em %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Criado com <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Criado com <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
@ -1 +1 @@
|
||||
Documentation.addTranslations({"locale": "ru", "plural_expr": "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2", "messages": {"Hide Search Matches": "\u0421\u043d\u044f\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Permalink to this definition": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Expand sidebar": "", "Permalink to this headline": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", "Collapse sidebar": ""}});
|
||||
Documentation.addTranslations({"locale": "ru", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "\u0421\u043d\u044f\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Permalink to this definition": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Expand sidebar": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0431\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c", "Permalink to this headline": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", "Collapse sidebar": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0431\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c"}});
|
Binary file not shown.
@ -1,21 +1,20 @@
|
||||
# Russian translations for Sphinx.
|
||||
# Copyright (C) 2008 ORGANIZATION
|
||||
# This file is distributed under the same license as the Sphinx project.
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Sphinx 0.6b1\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2011-09-21 10:06+0200\n"
|
||||
"PO-Revision-Date: 2011-09-21 10:14+0200\n"
|
||||
"Last-Translator: alexander smishlajev <alex@tycobka.lv>\n"
|
||||
"Language-Team: ru <LL@li.org>\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"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-08-12 21:48+0700\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"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: Babel 0.9.6\n"
|
||||
|
||||
#: sphinx/config.py:81
|
||||
#, python-format
|
||||
@ -24,21 +23,22 @@ msgstr ""
|
||||
|
||||
#: sphinx/environment.py:119 sphinx/writers/latex.py:190
|
||||
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:203
|
||||
#: sphinx/writers/latex.py:191 sphinx/environment.py:113
|
||||
#, python-format
|
||||
msgid "%B %d, %Y"
|
||||
msgstr "%d %B %Y"
|
||||
|
||||
#: sphinx/environment.py:1625
|
||||
#: sphinx/environment.py:1625 sphinx/environment.py:1638
|
||||
#, python-format
|
||||
msgid "see %s"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/environment.py:1628
|
||||
#: sphinx/environment.py:1628 sphinx/environment.py:1641
|
||||
#, python-format
|
||||
msgid "see also %s"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/roles.py:175
|
||||
#: sphinx/roles.py:175 sphinx/roles.py:176
|
||||
#, fuzzy, python-format
|
||||
msgid "Python Enhancement Proposals; PEP %s"
|
||||
msgstr "Python Enhancement Proposals; PEP %s"
|
||||
@ -51,24 +51,25 @@ msgstr "Встроенные функции"
|
||||
msgid "Module level"
|
||||
msgstr "Модуль"
|
||||
|
||||
#: sphinx/builders/html.py:274
|
||||
#: sphinx/builders/html.py:274 sphinx/builders/html.py:276
|
||||
#, python-format
|
||||
msgid "%b %d, %Y"
|
||||
msgstr "%d %b %Y"
|
||||
|
||||
#: sphinx/builders/html.py:293 sphinx/themes/basic/defindex.html:30
|
||||
#: sphinx/builders/html.py:295
|
||||
msgid "General Index"
|
||||
msgstr "Словарь-указатель"
|
||||
msgstr "Алфавитный указатель"
|
||||
|
||||
#: sphinx/builders/html.py:293
|
||||
#: sphinx/builders/html.py:293 sphinx/builders/html.py:295
|
||||
msgid "index"
|
||||
msgstr "словарь"
|
||||
msgstr "указатель"
|
||||
|
||||
#: sphinx/builders/html.py:353
|
||||
#: sphinx/builders/html.py:353 sphinx/builders/html.py:355
|
||||
msgid "next"
|
||||
msgstr "следующий"
|
||||
|
||||
#: sphinx/builders/html.py:362
|
||||
#: sphinx/builders/html.py:362 sphinx/builders/html.py:364
|
||||
msgid "previous"
|
||||
msgstr "предыдущий"
|
||||
|
||||
@ -76,24 +77,24 @@ msgstr "предыдущий"
|
||||
msgid " (in "
|
||||
msgstr " (в "
|
||||
|
||||
#: sphinx/directives/other.py:136
|
||||
#: sphinx/directives/other.py:136 sphinx/directives/other.py:138
|
||||
msgid "Section author: "
|
||||
msgstr "Автор секции: "
|
||||
msgstr "Автор раздела: "
|
||||
|
||||
#: sphinx/directives/other.py:138
|
||||
#: sphinx/directives/other.py:138 sphinx/directives/other.py:140
|
||||
msgid "Module author: "
|
||||
msgstr "Автор модуля: "
|
||||
|
||||
#: sphinx/directives/other.py:140
|
||||
#: sphinx/directives/other.py:140 sphinx/directives/other.py:142
|
||||
#, fuzzy
|
||||
msgid "Code author: "
|
||||
msgstr "Автор модуля: "
|
||||
|
||||
#: sphinx/directives/other.py:142
|
||||
#: sphinx/directives/other.py:142 sphinx/directives/other.py:144
|
||||
msgid "Author: "
|
||||
msgstr "Автор: "
|
||||
|
||||
#: sphinx/directives/other.py:215
|
||||
#: sphinx/directives/other.py:215 sphinx/directives/other.py:219
|
||||
msgid "See also"
|
||||
msgstr "См.также"
|
||||
|
||||
@ -162,22 +163,22 @@ msgstr "тип"
|
||||
msgid "variable"
|
||||
msgstr "Переменная"
|
||||
|
||||
#: sphinx/domains/cpp.py:904
|
||||
#: sphinx/domains/cpp.py:904 sphinx/domains/cpp.py:1020
|
||||
#, python-format
|
||||
msgid "%s (C++ class)"
|
||||
msgstr "%s (класс C++)"
|
||||
|
||||
#: sphinx/domains/cpp.py:919
|
||||
#: sphinx/domains/cpp.py:919 sphinx/domains/cpp.py:1043
|
||||
#, python-format
|
||||
msgid "%s (C++ type)"
|
||||
msgstr "%s (тип C++)"
|
||||
|
||||
#: sphinx/domains/cpp.py:938
|
||||
#: sphinx/domains/cpp.py:938 sphinx/domains/cpp.py:1063
|
||||
#, python-format
|
||||
msgid "%s (C++ member)"
|
||||
msgstr "%s (поле C++)"
|
||||
|
||||
#: sphinx/domains/cpp.py:990
|
||||
#: sphinx/domains/cpp.py:990 sphinx/domains/cpp.py:1119
|
||||
#, python-format
|
||||
msgid "%s (C++ function)"
|
||||
msgstr "%s (функция C++)"
|
||||
@ -188,11 +189,13 @@ msgid "class"
|
||||
msgstr "класс"
|
||||
|
||||
#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:254
|
||||
#: sphinx/domains/python.py:253
|
||||
#, python-format
|
||||
msgid "%s() (built-in function)"
|
||||
msgstr "%s() (встроенная функция)"
|
||||
|
||||
#: sphinx/domains/javascript.py:107 sphinx/domains/python.py:318
|
||||
#: sphinx/domains/python.py:317
|
||||
#, python-format
|
||||
msgid "%s() (%s method)"
|
||||
msgstr "%s() (метод %s)"
|
||||
@ -208,6 +211,7 @@ msgid "%s (global variable or constant)"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:356
|
||||
#: sphinx/domains/python.py:355
|
||||
#, python-format
|
||||
msgid "%s (%s attribute)"
|
||||
msgstr "%s (атрибут %s)"
|
||||
@ -240,56 +244,59 @@ msgstr "Исключение"
|
||||
|
||||
#: sphinx/domains/python.py:255 sphinx/domains/python.py:312
|
||||
#: sphinx/domains/python.py:324 sphinx/domains/python.py:337
|
||||
#: sphinx/domains/python.py:254 sphinx/domains/python.py:311
|
||||
#: sphinx/domains/python.py:323 sphinx/domains/python.py:336
|
||||
#, python-format
|
||||
msgid "%s() (in module %s)"
|
||||
msgstr "%s() (в модуле %s)"
|
||||
|
||||
#: sphinx/domains/python.py:258
|
||||
#: sphinx/domains/python.py:258 sphinx/domains/python.py:257
|
||||
#, python-format
|
||||
msgid "%s (built-in variable)"
|
||||
msgstr "%s (встроенная переменная)"
|
||||
|
||||
#: sphinx/domains/python.py:259 sphinx/domains/python.py:350
|
||||
#: sphinx/domains/python.py:258 sphinx/domains/python.py:349
|
||||
#, python-format
|
||||
msgid "%s (in module %s)"
|
||||
msgstr "%s (в модуле %s)"
|
||||
|
||||
#: sphinx/domains/python.py:275
|
||||
#: sphinx/domains/python.py:275 sphinx/domains/python.py:274
|
||||
#, python-format
|
||||
msgid "%s (built-in class)"
|
||||
msgstr "%s (встроенный класс)"
|
||||
|
||||
#: sphinx/domains/python.py:276
|
||||
#: sphinx/domains/python.py:276 sphinx/domains/python.py:275
|
||||
#, python-format
|
||||
msgid "%s (class in %s)"
|
||||
msgstr "%s (класс в %s)"
|
||||
|
||||
#: sphinx/domains/python.py:316
|
||||
#: sphinx/domains/python.py:316 sphinx/domains/python.py:315
|
||||
#, python-format
|
||||
msgid "%s() (%s.%s method)"
|
||||
msgstr "%s() (метод %s.%s)"
|
||||
|
||||
#: sphinx/domains/python.py:328
|
||||
#: sphinx/domains/python.py:328 sphinx/domains/python.py:327
|
||||
#, python-format
|
||||
msgid "%s() (%s.%s static method)"
|
||||
msgstr "%s() (статический метод %s.%s)"
|
||||
|
||||
#: sphinx/domains/python.py:331
|
||||
#: sphinx/domains/python.py:331 sphinx/domains/python.py:330
|
||||
#, python-format
|
||||
msgid "%s() (%s static method)"
|
||||
msgstr "%s() (статический метод %s)"
|
||||
|
||||
#: sphinx/domains/python.py:341
|
||||
#: sphinx/domains/python.py:341 sphinx/domains/python.py:340
|
||||
#, fuzzy, python-format
|
||||
msgid "%s() (%s.%s class method)"
|
||||
msgstr "%s() (метод %s.%s)"
|
||||
|
||||
#: sphinx/domains/python.py:344
|
||||
#: sphinx/domains/python.py:344 sphinx/domains/python.py:343
|
||||
#, fuzzy, python-format
|
||||
msgid "%s() (%s class method)"
|
||||
msgstr "%s() (метод %s)"
|
||||
|
||||
#: sphinx/domains/python.py:354
|
||||
#: sphinx/domains/python.py:354 sphinx/domains/python.py:353
|
||||
#, python-format
|
||||
msgid "%s (%s.%s attribute)"
|
||||
msgstr "%s (атрибут %s.%s)"
|
||||
@ -308,7 +315,7 @@ msgstr "Состав модуля"
|
||||
msgid "modules"
|
||||
msgstr "модули"
|
||||
|
||||
#: sphinx/domains/python.py:537
|
||||
#: sphinx/domains/python.py:537 sphinx/domains/python.py:538
|
||||
msgid "Deprecated"
|
||||
msgstr "Не рекомендуется"
|
||||
|
||||
@ -332,17 +339,17 @@ msgstr "статический метод"
|
||||
msgid "module"
|
||||
msgstr "модуль"
|
||||
|
||||
#: sphinx/domains/python.py:695
|
||||
#: sphinx/domains/python.py:695 sphinx/domains/python.py:696
|
||||
#, fuzzy
|
||||
msgid " (deprecated)"
|
||||
msgstr " (не рекомендуется)"
|
||||
|
||||
#: sphinx/domains/rst.py:55
|
||||
#: sphinx/domains/rst.py:55 sphinx/domains/rst.py:53
|
||||
#, python-format
|
||||
msgid "%s (directive)"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/domains/rst.py:57
|
||||
#: sphinx/domains/rst.py:57 sphinx/domains/rst.py:55
|
||||
#, python-format
|
||||
msgid "%s (role)"
|
||||
msgstr ""
|
||||
@ -391,6 +398,7 @@ msgstr ""
|
||||
#: sphinx/themes/basic/genindex.html:32 sphinx/themes/basic/genindex.html:35
|
||||
#: sphinx/themes/basic/genindex.html:68 sphinx/themes/basic/layout.html:134
|
||||
#: sphinx/writers/latex.py:179 sphinx/writers/texinfo.py:456
|
||||
#: sphinx/writers/latex.py:180
|
||||
msgid "Index"
|
||||
msgstr "Алфавитный указатель"
|
||||
|
||||
@ -402,36 +410,36 @@ msgstr "Состав модуля"
|
||||
msgid "Search Page"
|
||||
msgstr "Поиск"
|
||||
|
||||
#: sphinx/ext/autodoc.py:1002
|
||||
#: sphinx/ext/autodoc.py:1002 sphinx/ext/autodoc.py:1010
|
||||
#, python-format
|
||||
msgid " Bases: %s"
|
||||
msgstr " Базовые классы: %s"
|
||||
|
||||
#: sphinx/ext/autodoc.py:1038
|
||||
#: sphinx/ext/autodoc.py:1038 sphinx/ext/autodoc.py:1046
|
||||
#, python-format
|
||||
msgid "alias of :class:`%s`"
|
||||
msgstr "псевдоним класса :class:`%s`"
|
||||
|
||||
#: sphinx/ext/todo.py:41
|
||||
#: sphinx/ext/todo.py:41 sphinx/ext/todo.py:42
|
||||
msgid "Todo"
|
||||
msgstr "План"
|
||||
|
||||
#: sphinx/ext/todo.py:109
|
||||
#: sphinx/ext/todo.py:109 sphinx/ext/todo.py:110
|
||||
#, fuzzy, python-format
|
||||
msgid "(The <<original entry>> is located in %s, line %d.)"
|
||||
msgstr "(Исходный элемент находится в %s, в строке %d.)"
|
||||
|
||||
#: sphinx/ext/todo.py:117
|
||||
#: sphinx/ext/todo.py:117 sphinx/ext/todo.py:119
|
||||
msgid "original entry"
|
||||
msgstr ""
|
||||
|
||||
#: sphinx/ext/viewcode.py:70
|
||||
msgid "[source]"
|
||||
msgstr ""
|
||||
msgstr "[исходный код]"
|
||||
|
||||
#: sphinx/ext/viewcode.py:117
|
||||
msgid "[docs]"
|
||||
msgstr ""
|
||||
msgstr "[документация]"
|
||||
|
||||
#: sphinx/ext/viewcode.py:131
|
||||
#, fuzzy
|
||||
@ -441,15 +449,15 @@ msgstr "модуль"
|
||||
#: sphinx/ext/viewcode.py:137
|
||||
#, python-format
|
||||
msgid "<h1>Source code for %s</h1>"
|
||||
msgstr ""
|
||||
msgstr "<h1>Исходный код %s</h1>"
|
||||
|
||||
#: sphinx/ext/viewcode.py:164
|
||||
msgid "Overview: module code"
|
||||
msgstr ""
|
||||
msgstr "Обзор: исходный код модуля"
|
||||
|
||||
#: sphinx/ext/viewcode.py:165
|
||||
msgid "<h1>All modules for which code is available</h1>"
|
||||
msgstr ""
|
||||
msgstr "<h1>Все модули, в которых есть код</h1>"
|
||||
|
||||
#: sphinx/locale/__init__.py:155
|
||||
msgid "Attention"
|
||||
@ -481,7 +489,7 @@ msgstr "Примечание"
|
||||
|
||||
#: sphinx/locale/__init__.py:162
|
||||
msgid "See Also"
|
||||
msgstr "См.также"
|
||||
msgstr "См. также"
|
||||
|
||||
#: sphinx/locale/__init__.py:163
|
||||
msgid "Tip"
|
||||
@ -529,7 +537,7 @@ msgstr "базовая функция"
|
||||
#: sphinx/themes/agogo/layout.html:45 sphinx/themes/basic/globaltoc.html:10
|
||||
#: sphinx/themes/basic/localtoc.html:11
|
||||
msgid "Table Of Contents"
|
||||
msgstr "Содержание"
|
||||
msgstr "Оглавление"
|
||||
|
||||
#: sphinx/themes/agogo/layout.html:49 sphinx/themes/basic/layout.html:137
|
||||
#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:20
|
||||
@ -546,7 +554,7 @@ msgstr "Введите слова для поиска или имя модуля
|
||||
|
||||
#: sphinx/themes/agogo/layout.html:78 sphinx/themes/basic/sourcelink.html:14
|
||||
msgid "Show Source"
|
||||
msgstr "Показать исходный текст"
|
||||
msgstr "Исходный текст"
|
||||
|
||||
#: sphinx/themes/basic/defindex.html:11
|
||||
msgid "Overview"
|
||||
@ -558,7 +566,7 @@ 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"
|
||||
@ -566,7 +574,7 @@ msgstr "список всех разделов и подразделов"
|
||||
|
||||
#: sphinx/themes/basic/defindex.html:26
|
||||
msgid "search this documentation"
|
||||
msgstr "поиск во всем документе"
|
||||
msgstr "поиск в документации"
|
||||
|
||||
#: sphinx/themes/basic/defindex.html:28
|
||||
msgid "Global Module Index"
|
||||
@ -611,16 +619,16 @@ msgstr "Поиск в документе «%(docstitle)s»"
|
||||
|
||||
#: sphinx/themes/basic/layout.html:131
|
||||
msgid "About these documents"
|
||||
msgstr "Об этих документах…"
|
||||
msgstr "Об этих документах"
|
||||
|
||||
#: sphinx/themes/basic/layout.html:140
|
||||
msgid "Copyright"
|
||||
msgstr "Copyright"
|
||||
msgstr "Авторские права"
|
||||
|
||||
#: sphinx/themes/basic/layout.html:189
|
||||
#, python-format
|
||||
msgid "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Copyright</a> %(copyright)s."
|
||||
msgstr "© <a href=\"%(path)s\">Авторские права</a> %(copyright)s."
|
||||
|
||||
#: sphinx/themes/basic/layout.html:191
|
||||
#, python-format
|
||||
@ -630,15 +638,15 @@ msgstr "© Copyright %(copyright)s."
|
||||
#: sphinx/themes/basic/layout.html:195
|
||||
#, python-format
|
||||
msgid "Last updated on %(last_updated)s."
|
||||
msgstr "Дата последнего обновления: %(last_updated)s."
|
||||
msgstr "Обновлено: %(last_updated)s."
|
||||
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"При создании использован <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Создано с помощью <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
@ -666,7 +674,7 @@ msgstr "следующая глава"
|
||||
msgid ""
|
||||
"Please activate JavaScript to enable the search\n"
|
||||
" functionality."
|
||||
msgstr "Для выполнения поиска необходима поддержка JavaScript в браузере."
|
||||
msgstr "Для работы поиска включите JavaScript в браузере."
|
||||
|
||||
#: sphinx/themes/basic/search.html:29
|
||||
msgid ""
|
||||
@ -675,11 +683,10 @@ msgid ""
|
||||
" function will automatically search for all of the words. Pages\n"
|
||||
" containing fewer words won't appear in the result list."
|
||||
msgstr ""
|
||||
"Эта форма предназначена для поиска по всем разделам настоящей "
|
||||
"документации. Введите искомые слова в текстовое поле и нажмите кнопку "
|
||||
"«искать». Обратите внимание: найдены будут только те страницы, в которых "
|
||||
"упомянуты все указанные слова. Страницы, в которых встречается только "
|
||||
"часть этих слов, отобраны не будут."
|
||||
"Здесь можно делать поиск по всем разделам этой документации. Введите "
|
||||
" ключевые слова в текстовое поле и нажмите кнопку «искать». Внимание: будут "
|
||||
" найдены только те страницы, в которых есть все указанные слова. Страницы, "
|
||||
" где есть только часть этих слов, отобраны не будут."
|
||||
|
||||
#: sphinx/themes/basic/search.html:36
|
||||
msgid "search"
|
||||
@ -691,7 +698,7 @@ msgstr "Результаты поиска"
|
||||
|
||||
#: sphinx/themes/basic/search.html:42
|
||||
msgid "Your search did not match any results."
|
||||
msgstr "Результатов по вашему запросу не найдено."
|
||||
msgstr "Страниц по вашему запросу не найдено."
|
||||
|
||||
#: sphinx/themes/basic/searchbox.html:12
|
||||
msgid "Quick search"
|
||||
@ -723,18 +730,19 @@ msgstr "Изменения в библиотеке"
|
||||
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:23
|
||||
msgid "C API changes"
|
||||
msgstr "Изменения в C API"
|
||||
msgstr "Изменения в API C"
|
||||
|
||||
#: sphinx/themes/basic/changes/versionchanges.html:25
|
||||
msgid "Other changes"
|
||||
msgstr "Другие изменения"
|
||||
|
||||
#: sphinx/themes/basic/static/doctools.js:154 sphinx/writers/html.py:504
|
||||
#: sphinx/writers/html.py:510
|
||||
#: sphinx/writers/html.py:510 sphinx/writers/html.py:516
|
||||
msgid "Permalink to this headline"
|
||||
msgstr "Ссылка на этот заголовок"
|
||||
|
||||
#: sphinx/themes/basic/static/doctools.js:160 sphinx/writers/html.py:92
|
||||
#: sphinx/writers/html.py:94
|
||||
msgid "Permalink to this definition"
|
||||
msgstr "Ссылка на это определение"
|
||||
|
||||
@ -744,36 +752,55 @@ msgstr "Снять выделение"
|
||||
|
||||
#: sphinx/themes/default/static/sidebar.js:69
|
||||
msgid "Expand sidebar"
|
||||
msgstr ""
|
||||
msgstr "Развернуть боковую панель"
|
||||
|
||||
#: sphinx/themes/default/static/sidebar.js:82
|
||||
#: sphinx/themes/default/static/sidebar.js:110
|
||||
msgid "Collapse sidebar"
|
||||
msgstr ""
|
||||
msgstr "Свернуть боковую панель"
|
||||
|
||||
#: sphinx/themes/haiku/layout.html:26
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
msgstr "Содержание"
|
||||
|
||||
#: sphinx/writers/latex.py:177
|
||||
#: sphinx/writers/latex.py:177 sphinx/writers/latex.py:178
|
||||
msgid "Release"
|
||||
msgstr "Выпуск"
|
||||
|
||||
#: sphinx/writers/latex.py:594 sphinx/writers/manpage.py:182
|
||||
#: sphinx/writers/texinfo.py:589
|
||||
#: sphinx/writers/texinfo.py:589 sphinx/writers/latex.py:601
|
||||
msgid "Footnotes"
|
||||
msgstr ""
|
||||
msgstr "Сноски"
|
||||
|
||||
#: sphinx/writers/latex.py:676
|
||||
#: sphinx/writers/latex.py:676 sphinx/writers/latex.py:685
|
||||
msgid "continued from previous page"
|
||||
msgstr ""
|
||||
msgstr "продолжение с предыдущей страницы"
|
||||
|
||||
#: sphinx/writers/latex.py:681
|
||||
#: sphinx/writers/latex.py:681 sphinx/writers/latex.py:691
|
||||
#, fuzzy
|
||||
msgid "Continued on next page"
|
||||
msgstr "Полный алфавитный указатель на одной странице"
|
||||
msgstr "Продолжается на следующей странице"
|
||||
|
||||
#: sphinx/writers/text.py:437
|
||||
#: sphinx/writers/text.py:437 sphinx/writers/manpage.py:234
|
||||
#: sphinx/writers/text.py:439
|
||||
msgid "[image]"
|
||||
msgstr "[рисунок]"
|
||||
|
||||
#: sphinx/writers/manpage.py:233 sphinx/writers/text.py:438
|
||||
#, python-format
|
||||
msgid "[image: %s]"
|
||||
msgstr "[рисунок: %s]"
|
||||
|
||||
#: sphinx/ext/graphviz.py:302 sphinx/ext/graphviz.py:310
|
||||
#, python-format
|
||||
msgid "[graph: %s]"
|
||||
msgstr "[иллюстрация: %s]"
|
||||
|
||||
#: sphinx/ext/graphviz.py:304 sphinx/ext/graphviz.py:312
|
||||
msgid "[graph]"
|
||||
msgstr "[иллюстрация]"
|
||||
|
||||
#: sphinx/ext/intersphinx.py:224
|
||||
#, python-format
|
||||
msgid "(in %s v%s)"
|
||||
msgstr ""
|
||||
|
@ -1 +1 @@
|
||||
Documentation.addTranslations({"locale": "sk", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "Skr\u00fdt v\u00fdsledky vyhled\u00e1v\u00e1n\u00ed", "Permalink to this definition": "Trval\u00fd odkaz na tuto definici", "Expand sidebar": "", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis", "Collapse sidebar": ""}});
|
||||
Documentation.addTranslations({"locale": "sk", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "Skry\u0165 v\u00fdsledky vyh\u013ead\u00e1vania", "Permalink to this definition": "Trval\u00fd odkaz na t\u00fato defin\u00edciu", "Expand sidebar": "", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis", "Collapse sidebar": ""}});
|
Binary file not shown.
@ -635,10 +635,10 @@ msgstr "Aktualizované dňa %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Vytvorené pomocou <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Vytvorené pomocou <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
Binary file not shown.
@ -630,10 +630,10 @@ msgstr "Zadnjič posodobljeno %(last_updated)s."
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
"Narejeno s <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Narejeno s <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
|
||||
#: sphinx/themes/basic/opensearch.xml:4
|
||||
|
@ -628,7 +628,7 @@ msgstr ""
|
||||
#: sphinx/themes/basic/layout.html:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
|
||||
"%(sphinx_version)s."
|
||||
msgstr ""
|
||||
|
||||
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user