summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-06-15 18:36:22 +0200
committerGeorg Brandl <georg@python.org>2009-06-15 18:36:22 +0200
commite145da7f37734a0ead0aaa6e1f6700eb2a48b264 (patch)
tree7f39d190d8ae824c143139285d0e23c7d4a434d7
parent563b52257dcf3d182476cb86fffc25192a9c7973 (diff)
parentdf7742dd482e121ac6fbac2ac4435f698102355f (diff)
downloadsphinx-e145da7f37734a0ead0aaa6e1f6700eb2a48b264.tar.gz
merge with 0.6
-rw-r--r--CHANGES31
-rw-r--r--EXAMPLES6
-rw-r--r--doc/concepts.rst12
-rw-r--r--doc/conf.py7
-rw-r--r--doc/config.rst15
-rw-r--r--doc/ext/autosummary.rst218
-rw-r--r--doc/ext/doctest.rst6
-rw-r--r--doc/ext/extlinks.rst47
-rw-r--r--doc/extensions.rst1
-rw-r--r--doc/markup/code.rst6
-rw-r--r--doc/theming.rst1
-rw-r--r--sphinx/__init__.py4
-rw-r--r--sphinx/builder.py28
-rw-r--r--sphinx/builders/changes.py1
-rw-r--r--sphinx/builders/html.py31
-rw-r--r--sphinx/config.py2
-rw-r--r--sphinx/directives/code.py11
-rw-r--r--sphinx/directives/other.py2
-rw-r--r--sphinx/environment.py2
-rw-r--r--sphinx/ext/autodoc.py20
-rw-r--r--sphinx/ext/autosummary/__init__.py336
-rw-r--r--sphinx/ext/autosummary/generate.py389
-rw-r--r--sphinx/ext/autosummary/templates/autosummary/base.rst6
-rw-r--r--sphinx/ext/autosummary/templates/autosummary/class.rst30
-rw-r--r--sphinx/ext/autosummary/templates/autosummary/module.rst37
-rw-r--r--sphinx/ext/autosummary/templates/module39
-rw-r--r--sphinx/ext/extlinks.py54
-rw-r--r--sphinx/ext/todo.py2
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.po53
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.mobin7174 -> 8107 bytes
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.po415
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.mobin7208 -> 8010 bytes
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.po171
-rw-r--r--sphinx/locale/sphinx.pot52
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js1
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mobin0 -> 7906 bytes
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po620
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po50
-rw-r--r--sphinx/quickstart.py6
-rw-r--r--sphinx/roles.py25
-rw-r--r--sphinx/search.py36
-rw-r--r--sphinx/texinputs/sphinxhowto.cls (renamed from sphinx/texinputs/howto.cls)21
-rw-r--r--sphinx/texinputs/sphinxmanual.cls (renamed from sphinx/texinputs/manual.cls)24
-rw-r--r--sphinx/themes/basic/layout.html10
-rw-r--r--sphinx/themes/basic/static/basic.css2
-rw-r--r--sphinx/themes/basic/static/searchtools.js13
-rw-r--r--sphinx/themes/default/static/default.css_t9
-rw-r--r--sphinx/themes/default/theme.conf1
-rw-r--r--sphinx/util/__init__.py30
-rw-r--r--sphinx/writers/latex.py19
-rwxr-xr-xtests/coverage.py110
-rw-r--r--tests/root/includes.txt5
-rw-r--r--tests/test_autosummary.py34
-rw-r--r--tests/test_build.py2
-rw-r--r--tests/test_markup.py2
67 files changed, 2475 insertions, 1084 deletions
diff --git a/CHANGES b/CHANGES
index 069b3ce5..ce781119 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,32 @@
+Release 1.0 (in development)
+============================
+
+* Added ``titlesonly`` option to ``toctree`` directive.
+
+* Removed the deprecated ``sphinx.builder`` module.
+
+* #193: Added a ``visitedlinkcolor`` theme option to the default
+ theme.
+
+* Added the ``prepend`` and ``append`` options to the
+ ``literalinclude`` directive.
+
+* Added the ``latex_docclass`` config value and made the "twoside"
+ documentclass option overridable by "oneside".
+
+* Added the ``extlinks`` extension.
+
+* Allow searching for object names including the module name, like
+ ``sys.argv``.
+
+* Many improvements and fixes to the ``autosummary`` extension,
+ thanks to Pauli Virtanen.
+
+* Added ``html_show_copyright`` config value.
+
+* Added simplified Chinese locale.
+
+
Release 0.6.2 (in development)
==============================
@@ -63,7 +92,7 @@ Release 0.6.2 (in development)
* #134: Fix pending_xref leftover nodes when using the todolist
directive from the todo extension.
-
+
Release 0.6.1 (Mar 26, 2009)
============================
diff --git a/EXAMPLES b/EXAMPLES
index 11c6d06f..64628049 100644
--- a/EXAMPLES
+++ b/EXAMPLES
@@ -31,13 +31,16 @@ included, please mail to `the Google group
* mpmath: http://mpmath.googlecode.com/svn/trunk/doc/build/index.html
* MyHDL: http://www.myhdl.org/doc/0.6/
* NetworkX: http://networkx.lanl.gov/
+* NOC: http://trac.nocproject.org/trac/wiki/NocGuide
* NumPy: http://docs.scipy.org/doc/numpy/reference/
* ObjectListView: http://objectlistview.sourceforge.net/python
+* Open ERP: http://doc.openerp.com/
* OpenLayers: http://docs.openlayers.org/
* openWNS: http://docs.openwns.org/
* Paste: http://pythonpaste.org/script/
* Paver: http://www.blueskyonmars.com/projects/paver/
* Py on Windows: http://timgolden.me.uk/python-on-windows/
+* Pyccuracy: http://www.pyccuracy.org/
* PyCuda: http://documen.tician.de/pycuda/
* PyEphem: http://rhodesmill.org/pyephem/
* Pyevolve: http://pyevolve.sourceforge.net/
@@ -57,6 +60,7 @@ included, please mail to `the Google group
* Sage: http://sagemath.org/doc/
* Satchmo: http://www.satchmoproject.com/docs/svn/
* Scapy: http://www.secdev.org/projects/scapy/doc/
+* SciPy: http://docs.scipy.org/doc/scipy/reference/
* Selenium: http://seleniumhq.org/docs/
* Self: http://selflanguage.org/
* SimPy: http://simpy.sourceforge.net/
@@ -64,10 +68,12 @@ included, please mail to `the Google group
* Sprox: http://sprox.org/
* SQLAlchemy: http://www.sqlalchemy.org/docs/
* Sqlkit: http://sqlkit.argolinux.org/
+* sqlparse: http://python-sqlparse.googlecode.com/svn/docs/api/index.html
* SymPy: http://docs.sympy.org/
* tinyTiM: http://tinytim.sourceforge.net/docs/2.0/
* TurboGears: http://turbogears.org/2.0/docs/
* VOR: http://www.vor-cycling.be/
+* Werkzeug: http://werkzeug.pocoo.org/documentation/dev/
* WFront: http://discorporate.us/projects/WFront/
* WTForms: http://wtforms.simplecodes.com/docs/
* Zope 3: e.g. http://docs.carduner.net/z3c-tutorial/
diff --git a/doc/concepts.rst b/doc/concepts.rst
index e6d5fa02..27767211 100644
--- a/doc/concepts.rst
+++ b/doc/concepts.rst
@@ -89,6 +89,15 @@ tables of contents. The ``toctree`` directive is the central element.
Numbering then starts at the heading of ``foo``. Sub-toctrees are
automatically numbered (don't give the ``numbered`` flag to those).
+ If you want only the titles of documents in the tree to show up, not other
+ headings of the same level, you can use the ``titlesonly`` option::
+
+ .. toctree::
+ :titlesonly:
+
+ foo
+ bar
+
You can use "globbing" in toctree directives, by giving the ``glob`` flag
option. All entries are then matched against the list of available
documents, and matches are inserted into the list alphabetically. Example::
@@ -139,6 +148,9 @@ tables of contents. The ``toctree`` directive is the central element.
Added "numbered" and "hidden" options as well as external links and
support for "self" references.
+ .. versionchanged:: 1.0
+ Added "titlesonly" option.
+
Special names
-------------
diff --git a/doc/conf.py b/doc/conf.py
index e1a48aa2..e3952a0b 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -6,7 +6,10 @@ import sys, os, re
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.addons.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo']
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo',
+ 'sphinx.ext.autosummary']
+
+extlinks = {'issue': ('http://bugs.python.org/issue', 'issue ')}
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -71,7 +74,7 @@ latex_logo = '_static/sphinx.png'
# Additional stuff for the LaTeX preamble.
latex_elements = {
- 'fontpkg': '\\usepackage{palatino}'
+ 'fontpkg': '\\usepackage{palatino}',
}
# Put TODOs into the output.
diff --git a/doc/config.rst b/doc/config.rst
index 2e96a749..17e6b452 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -245,6 +245,7 @@ Project information
* ``ru`` -- Russian
* ``sl`` -- Slovenian
* ``uk_UA`` -- Ukrainian
+ * ``zh_CN`` -- Simplified Chinese
* ``zh_TW`` -- Traditional Chinese
.. confval:: today
@@ -514,6 +515,12 @@ that use Sphinx' HTMLWriter class.
to translate document trees to HTML. Default is ``None`` (use the builtin
translator).
+.. confval:: html_show_copyright
+
+ If true, "(C) Copyright ..." is shown in the HTML footer. Default is ``True``.
+
+ .. versionadded:: 1.0
+
.. confval:: html_show_sphinx
If true, "Created using Sphinx" is shown in the HTML footer. Default is
@@ -653,6 +660,14 @@ These options influence LaTeX output.
``'shorthandoff'``
``'printmodindex'``
+.. confval:: latex_docclass
+
+ A dictionary mapping ``'howto'`` and ``'manual'`` to names of real document
+ classes that will be used as the base for the two Sphinx classes. Default
+ is to use ``'article'`` for ``'howto'`` and ``'report'`` for ``'manual'``.
+
+ .. versionadded:: 1.0
+
.. confval:: latex_additional_files
A list of file names, relative to the configuration directory, to copy to the
diff --git a/doc/ext/autosummary.rst b/doc/ext/autosummary.rst
index a9255857..e9130b33 100644
--- a/doc/ext/autosummary.rst
+++ b/doc/ext/autosummary.rst
@@ -6,4 +6,220 @@
.. module:: sphinx.ext.autosummary
:synopsis: Generate autodoc summaries
-TBW.
+.. versionadded:: 0.6
+
+This extension generates function/method/attribute summary lists, similar to
+those output e.g. by Epydoc and other API doc generation tools. This is
+especially useful when your docstrings are long and detailed, and putting each
+one of them on a separate page makes them easier to read.
+
+The :mod:`sphinx.ext.autosummary` extension does this in two parts:
+
+1. There is an :dir:`autosummary` directive for generating summary listings that
+ contain links to the documented items, and short summary blurbs extracted
+ from their docstrings.
+
+2. The convenience script :program:`sphinx-autogen` or the new
+ :confval:`autosummary_generate` config value can be used to generate short
+ "stub" files for the entries listed in the :dir:`autosummary` directives.
+ These by default contain only the corresponding :mod:`sphinx.ext.autodoc`
+ directive.
+
+
+.. directive:: autosummary
+
+ Insert a table that contains links to documented items, and a short summary
+ blurb (the first sentence of the docstring) for each of them. The
+ :dir:`autosummary` directive can also optionally serve as a :dir:`toctree`
+ entry for the included items.
+
+ For example, ::
+
+ .. currentmodule:: sphinx
+
+ .. autosummary::
+
+ environment.BuildEnvironment
+ util.relative_uri
+
+ produces a table like this:
+
+ .. currentmodule:: sphinx
+
+ .. autosummary::
+
+ environment.BuildEnvironment
+ util.relative_uri
+
+ .. currentmodule:: sphinx.ext.autosummary
+
+ Autosummary preprocesses the docstrings and signatures with the same
+ :event:`autodoc-process-docstring` and :event:`autodoc-process-signature`
+ hooks as :mod:`~sphinx.ext.autodoc`.
+
+
+ **Options**
+
+ * If you want the :dir:`autosummary` table to also serve as a :dir:`toctree`
+ entry, use the ``toctree`` option, for example::
+
+ .. autosummary::
+ :toctree: DIRNAME
+
+ sphinx.environment.BuildEnvironment
+ sphinx.util.relative_uri
+
+ The ``toctree`` option also signals to the :program:`sphinx-autogen` script
+ that stub pages should be generated for the entries listed in this
+ directive. The option accepts a directory name as an argument;
+ :program:`sphinx-autogen` will by default place its output in this
+ directory. If no argument is given, output is placed in the same directory
+ as the file that contains the directive.
+
+ * If you don't want the :dir:`autosummary` to show function signatures in the
+ listing, include the ``nosignatures`` option::
+
+ .. autosummary::
+ :nosignatures:
+
+ sphinx.environment.BuildEnvironment
+ sphinx.util.relative_uri
+
+ * You can specify a custom template with the ``template`` option.
+ For example, ::
+
+ .. autosummary::
+ :template: mytemplate.rst
+
+ sphinx.environment.BuildEnvironment
+
+ would use the template :file:`mytemplate.rst` in your
+ :confval:`templates_path` to generate the pages for all entries
+ listed. See `Customizing templates`_ below.
+
+
+:program:`sphinx-autogen` -- generate autodoc stub pages
+--------------------------------------------------------
+
+The :program:`sphinx-autogen` script can be used to conveniently generate stub
+documentation pages for items included in :dir:`autosummary` listings.
+
+For example, the command ::
+
+ $ sphinx-autogen -o generated *.rst
+
+will read all :dir:`autosummary` tables in the :file:`*.rst` files that have the
+``:toctree:`` option set, and output corresponding stub pages in directory
+``generated`` for all documented items. The generated pages by default contain
+text of the form::
+
+ sphinx.util.relative_uri
+ ========================
+
+ .. autofunction:: sphinx.util.relative_uri
+
+If the ``-o`` option is not given, the script will place the output files in the
+directories specified in the ``:toctree:`` options.
+
+
+Generating stub pages automatically
+-----------------------------------
+
+If you do not want to create stub pages with :program:`sphinx-autogen`, you can
+also use this new config value:
+
+.. confval:: autosummary_generate
+
+ Boolean indicating whether to scan all found documents for autosummary
+ directives, and to generate stub pages for each.
+
+ Can also be a list of documents for which stub pages should be generated.
+
+ The new files will be placed in the directories specified in the
+ ``:toctree:`` options of the directives.
+
+
+Customizing templates
+---------------------
+
+You can customize the stub page templates, in a similar way as the HTML Jinja
+templates, see :ref:`templating`. (:class:`~sphinx.application.TemplateBridge`
+is not supported.)
+
+.. note::
+
+ If you find yourself spending much time tailoring the stub templates, this
+ may indicate that it's a better idea to write custom narrative documentation
+ instead.
+
+Autosummary uses the following template files:
+
+- :file:`autosummary/base.rst` -- fallback template
+- :file:`autosummary/module.rst` -- template for modules
+- :file:`autosummary/class.rst` -- template for classes
+- :file:`autosummary/function.rst` -- template for functions
+- :file:`autosummary/attribute.rst` -- template for class attributes
+- :file:`autosummary/method.rst` -- template for class methods
+
+The following variables available in the templates:
+
+.. data:: name
+
+ Name of the documented object, excluding the module and class parts.
+
+.. data:: objname
+
+ Name of the documented object, excluding the module parts.
+
+.. data:: fullname
+
+ Full name of the documented object, including module and class parts.
+
+.. data:: module
+
+ Name of the module the documented object belongs to.
+
+.. data:: class
+
+ Name of the class the documented object belongs to. Only available for
+ methods and attributes.
+
+.. data:: underline
+
+ A string containing ``len(full_name) * '='``.
+
+.. data:: members
+
+ List containing names of all members of the module or class. Only available
+ for modules and classes.
+
+.. data:: functions
+
+ List containing names of "public" functions in the module. Here, "public"
+ here means that the name does not start with an underscore. Only available
+ for modules.
+
+.. data:: classes
+
+ List containing names of "public" classes in the module. Only available for
+ modules.
+
+.. data:: exceptions
+
+ List containing names of "public" exceptions in the module. Only available
+ for modules.
+
+.. data:: methods
+
+ List containing names of "public" methods in the class. Only available for
+ classes.
+
+.. data:: methods
+
+ List containing names of "public" attributes in the class. Only available
+ for classes.
+
+.. note::
+
+ You can use the :dir:`autosummary` directive in the stub pages. However,
+ stub pages are not generated automatically recursively.
diff --git a/doc/ext/doctest.rst b/doc/ext/doctest.rst
index 19905dc7..6bd5efb6 100644
--- a/doc/ext/doctest.rst
+++ b/doc/ext/doctest.rst
@@ -173,9 +173,9 @@ There are also these config values for customizing the doctest extension:
Some more documentation text.
- (Note that no special ``::`` is needed to introduce the block; docutils
- recognizes it from the leading ``>>>``. Also, no additional indentation is
- necessary, though it doesn't hurt.)
+ (Note that no special ``::`` is used to introduce a doctest block; docutils
+ recognizes them from the leading ``>>>``. Also, no additional indentation is
+ used, though it doesn't hurt.)
If this value is left at its default value, the above snippet is interpreted
by the doctest builder exactly like the following::
diff --git a/doc/ext/extlinks.rst b/doc/ext/extlinks.rst
new file mode 100644
index 00000000..fb101ff3
--- /dev/null
+++ b/doc/ext/extlinks.rst
@@ -0,0 +1,47 @@
+:mod:`sphinx.ext.extlinks` -- Markup to shorten external links
+==============================================================
+
+.. module:: sphinx.ext.extlinks
+ :synopsis: Allow inserting external links with common base URLs easily.
+.. moduleauthor:: Georg Brandl
+
+.. versionadded:: 1.0
+
+
+This extension is meant to help with the common pattern of having many external
+links that point to URLs on one and the same site, e.g. links to bug trackers,
+version control web interfaces, or simply subpages in other websites. It does
+so by providing aliases to base URLs, so that you only need to give the subpage
+name when creating a link.
+
+Let's assume that you want to include many links to issues at the Sphinx
+tracker, at :samp:`http://bitbucket.org/birkenfeld/sphinx/issue/{num}`. Typing
+this URL again and again is tedious, so you can use :mod:`~sphinx.ext.extlinks`
+to avoid repeating yourself.
+
+The extension adds one new config value:
+
+.. confval:: extlinks
+
+ This config value must be a dictionary of external sites, mapping unique
+ short alias names to a base URL and a *prefix*. For example, to create an
+ alias for the above mentioned issues, you would add ::
+
+ extlinks = {'issue': ('http://bitbucket.org/birkenfeld/sphinx/issue/',
+ 'issue ')}
+
+ Now, you can use the alias name as a new role, e.g. ``:issue:`123```. This
+ then inserts a link to http://bitbucket.org/birkenfeld/sphinx/issue/123.
+
+ The link *caption* depends on the second item in the tuple, the *prefix*:
+
+ - If the prefix is ``None``, the link caption is the full URL.
+ - If the prefix is the empty string, the link caption is the partial URL
+ given in the role content (``123`` in this case.)
+ - If the prefix is a non-empty string, the link caption is the partial URL,
+ prepended by the prefix -- in the above example, the link caption would be
+ ``issue 123``.
+
+ You can also use the usual "explicit title" syntax supported by other roles
+ that generate links, i.e. ``:issue:`this issue <123>```. In this case, the
+ *prefix* is not relevant.
diff --git a/doc/extensions.rst b/doc/extensions.rst
index 5eb26c14..0bc9b5b7 100644
--- a/doc/extensions.rst
+++ b/doc/extensions.rst
@@ -51,6 +51,7 @@ These extensions are built in and can be activated by respective entries in the
ext/ifconfig
ext/coverage
ext/todo
+ ext/extlinks
Third-party extensions
diff --git a/doc/markup/code.rst b/doc/markup/code.rst
index 93cd127b..8c223297 100644
--- a/doc/markup/code.rst
+++ b/doc/markup/code.rst
@@ -143,11 +143,17 @@ Includes
string option, only lines that precede the first lines containing that string
are included.
+ You can prepend and/or append a line to the included code, using the
+ ``prepend`` and ``append`` option, respectively. This is useful e.g. for
+ highlighting PHP code that doesn't include the ``<?php``/``?>`` markers.
+
.. versionadded:: 0.4.3
The ``encoding`` option.
.. versionadded:: 0.6
The ``pyobject``, ``lines``, ``start-after`` and ``end-before`` options,
as well as support for absolute filenames.
+ .. versionadded:: 1.0
+ The ``prepend`` and ``append`` options.
.. rubric:: Footnotes
diff --git a/doc/theming.rst b/doc/theming.rst
index d1d3b27a..5b4b648c 100644
--- a/doc/theming.rst
+++ b/doc/theming.rst
@@ -86,6 +86,7 @@ Sphinx comes with a selection of themes to choose from:
- **bgcolor** (CSS color): Body background color.
- **textcolor** (CSS color): Body text color.
- **linkcolor** (CSS color): Body link color.
+ - **visitedlinkcolor** (CSS color): Body color for visited links.
- **headbgcolor** (CSS color): Background color for headings.
- **headtextcolor** (CSS color): Text color for headings.
- **headlinkcolor** (CSS color): Link color for headings.
diff --git a/sphinx/__init__.py b/sphinx/__init__.py
index 41344cd6..3c5fbf5b 100644
--- a/sphinx/__init__.py
+++ b/sphinx/__init__.py
@@ -13,8 +13,8 @@ import sys
from os import path
__revision__ = '$Revision$'
-__version__ = '0.6.1+'
-__released__ = '0.6.1'
+__version__ = '1.0'
+__released__ = '1.0 (hg)'
package_dir = path.abspath(path.dirname(__file__))
diff --git a/sphinx/builder.py b/sphinx/builder.py
deleted file mode 100644
index 13c56e18..00000000
--- a/sphinx/builder.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- sphinx.builder
- ~~~~~~~~~~~~~~
-
- .. warning::
-
- This module is only kept for API compatibility; new code should
- import these classes directly from the sphinx.builders package.
-
- :copyright: Copyright 2007-2009 by the Sphinx team, see AUTHORS.
- :license: BSD, see LICENSE for details.
-"""
-
-import warnings
-
-from sphinx.builders import Builder
-from sphinx.builders.text import TextBuilder
-from sphinx.builders.html import StandaloneHTMLBuilder, WebHTMLBuilder, \
- PickleHTMLBuilder, JSONHTMLBuilder
-from sphinx.builders.latex import LaTeXBuilder
-from sphinx.builders.changes import ChangesBuilder
-from sphinx.builders.htmlhelp import HTMLHelpBuilder
-from sphinx.builders.linkcheck import CheckExternalLinksBuilder
-
-warnings.warn('The sphinx.builder module is deprecated; please import '
- 'builders from the respective sphinx.builders submodules.',
- DeprecationWarning, stacklevel=2)
diff --git a/sphinx/builders/changes.py b/sphinx/builders/changes.py
index e07b06d8..ad0b8d19 100644
--- a/sphinx/builders/changes.py
+++ b/sphinx/builders/changes.py
@@ -94,6 +94,7 @@ class ChangesBuilder(Builder):
'libchanges': sorted(libchanges.iteritems()),
'apichanges': sorted(apichanges),
'otherchanges': sorted(otherchanges.iteritems()),
+ 'show_copyright': self.config.html_show_copyright,
'show_sphinx': self.config.html_show_sphinx,
}
f = codecs.open(path.join(self.outdir, 'index.html'), 'w', 'utf8')
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index c64f4ee5..1edfd723 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -22,7 +22,7 @@ except ImportError:
from docutils import nodes
from docutils.io import DocTreeInput, StringOutput
-from docutils.core import publish_parts
+from docutils.core import Publisher, publish_parts
from docutils.utils import new_document
from docutils.frontend import OptionParser
from docutils.readers.doctree import Reader as DoctreeReader
@@ -72,6 +72,9 @@ class StandaloneHTMLBuilder(Builder):
# This is a class attribute because it is mutated by Sphinx.add_javascript.
script_files = ['_static/jquery.js', '_static/doctools.js']
+ # cached publisher object for snippets
+ _publisher = None
+
def init(self):
# a hash of all config values that, if changed, cause a full rebuild
self.config_hash = ''
@@ -180,13 +183,24 @@ class StandaloneHTMLBuilder(Builder):
"""Utility: Render a lone doctree node."""
doc = new_document('<partial node>')
doc.append(node)
- return publish_parts(
- doc,
- source_class=DocTreeInput,
- reader=DoctreeReader(),
- writer=HTMLWriter(self),
- settings_overrides={'output_encoding': 'unicode'}
- )
+
+ if self._publisher is None:
+ self._publisher = Publisher(
+ source_class = DocTreeInput,
+ destination_class=StringOutput)
+ self._publisher.set_components('standalone',
+ 'restructuredtext', 'pseudoxml')
+
+ pub = self._publisher
+
+ pub.reader = DoctreeReader()
+ pub.writer = HTMLWriter(self)
+ pub.process_programmatic_settings(
+ None, {'output_encoding': 'unicode'}, None)
+ pub.set_source(doc, None)
+ pub.set_destination(None, None)
+ pub.publish()
+ return pub.writer.parts
def prepare_writing(self, docnames):
from sphinx.search import IndexBuilder
@@ -244,6 +258,7 @@ class StandaloneHTMLBuilder(Builder):
use_opensearch = self.config.html_use_opensearch,
docstitle = self.config.html_title,
shorttitle = self.config.html_short_title,
+ show_copyright = self.config.html_show_copyright,
show_sphinx = self.config.html_show_sphinx,
has_source = self.config.html_copy_source,
show_source = self.config.html_show_sourcelink,
diff --git a/sphinx/config.py b/sphinx/config.py
index b9586c2d..aa09bd2b 100644
--- a/sphinx/config.py
+++ b/sphinx/config.py
@@ -82,6 +82,7 @@ class Config(object):
html_use_opensearch = ('', 'html'),
html_file_suffix = (None, 'html'),
html_link_suffix = (None, 'html'),
+ html_show_copyright = (True, 'html'),
html_show_sphinx = (True, 'html'),
html_context = ({}, 'html'),
@@ -103,6 +104,7 @@ class Config(object):
latex_font_size = ('10pt', None),
latex_elements = ({}, None),
latex_additional_files = ([], None),
+ latex_docclass = ({}, None),
# now deprecated - use latex_elements
latex_preamble = ('', None),
)
diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py
index 645bc784..2c70ada8 100644
--- a/sphinx/directives/code.py
+++ b/sphinx/directives/code.py
@@ -87,6 +87,8 @@ class LiteralInclude(Directive):
'lines': directives.unchanged_required,
'start-after': directives.unchanged_required,
'end-before': directives.unchanged_required,
+ 'prepend': directives.unchanged_required,
+ 'append': directives.unchanged_required,
}
def run(self):
@@ -144,7 +146,9 @@ class LiteralInclude(Directive):
lines = [lines[i] for i in linelist]
startafter = self.options.get('start-after')
- endbefore = self.options.get('end-before')
+ endbefore = self.options.get('end-before')
+ prepend = self.options.get('prepend')
+ append = self.options.get('append')
if startafter is not None or endbefore is not None:
use = not startafter
res = []
@@ -158,6 +162,11 @@ class LiteralInclude(Directive):
res.append(line)
lines = res
+ if prepend:
+ lines.insert(0, prepend + '\n')
+ if append:
+ lines.append(append + '\n')
+
text = ''.join(lines)
retnode = nodes.literal_block(text, text, source=fn)
retnode.line = 1
diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py
index 80c88f5f..400a160e 100644
--- a/sphinx/directives/other.py
+++ b/sphinx/directives/other.py
@@ -33,6 +33,7 @@ class TocTree(Directive):
'glob': directives.flag,
'hidden': directives.flag,
'numbered': directives.flag,
+ 'titlesonly': directives.flag,
}
def run(self):
@@ -97,6 +98,7 @@ class TocTree(Directive):
subnode['glob'] = glob
subnode['hidden'] = 'hidden' in self.options
subnode['numbered'] = 'numbered' in self.options
+ subnode['titlesonly'] = 'titlesonly' in self.options
ret.append(subnode)
return ret
diff --git a/sphinx/environment.py b/sphinx/environment.py
index 974f4c5c..cbbb7e7f 100644
--- a/sphinx/environment.py
+++ b/sphinx/environment.py
@@ -1132,6 +1132,8 @@ class BuildEnvironment:
return entries
maxdepth = maxdepth or toctree.get('maxdepth', -1)
+ if not titles_only and toctree.get('titlesonly', False):
+ titles_only = True
# NOTE: previously, this was separate=True, but that leads to artificial
# separation when two or more toctree entries form a logical unit, so
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 11031424..519c40f7 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -361,6 +361,16 @@ class Documenter(object):
"""
return None
+ def format_name(self):
+ """
+ Format the name of *self.object*. This normally should be something
+ that can be parsed by the generated directive, but doesn't need to be
+ (Sphinx will display it unparsed then).
+ """
+ # normally the name doesn't contain the module (except for module
+ # directives of course)
+ return '.'.join(self.objpath) or self.modname
+
def format_signature(self):
"""
Format the signature (arguments and return annotation) of the object.
@@ -372,8 +382,7 @@ class Documenter(object):
else:
# try to introspect the signature
args = self.format_args()
- if args is None:
- return ''
+
retann = self.retann
result = self.env.app.emit_firstresult(
@@ -390,11 +399,8 @@ class Documenter(object):
def add_directive_header(self, sig):
"""Add the directive header and options to the generated content."""
directive = getattr(self, 'directivetype', self.objtype)
- # the name to put into the generated directive -- doesn't contain
- # the module (except for module directive of course)
- name_in_directive = '.'.join(self.objpath) or self.modname
- self.add_line(u'.. %s:: %s%s' % (directive, name_in_directive, sig),
- '<autodoc>')
+ name = self.format_name()
+ self.add_line(u'.. %s:: %s%s' % (directive, name, sig), '<autodoc>')
if self.options.noindex:
self.add_line(u' :noindex:', '<autodoc>')
if self.objpath:
diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py
index 3d260fd2..dc641674 100644
--- a/sphinx/ext/autosummary/__init__.py
+++ b/sphinx/ext/autosummary/__init__.py
@@ -101,13 +101,63 @@ def autosummary_toc_visit_html(self, node):
"""Hide autosummary toctree list in HTML output."""
raise nodes.SkipNode
-def autosummary_toc_visit_latex(self, node):
- """Show autosummary toctree (= put the referenced pages here) in Latex."""
+def autosummary_noop(self, node):
pass
-def autosummary_noop(self, node):
+
+# -- autosummary_table node ----------------------------------------------------
+
+class autosummary_table(nodes.comment):
pass
+def autosummary_table_visit_html(self, node):
+ """Make the first column of the table non-breaking."""
+ try:
+ tbody = node[0][0][-1]
+ for row in tbody:
+ col1_entry = row[0]
+ par = col1_entry[0]
+ for j, subnode in enumerate(list(par)):
+ if isinstance(subnode, nodes.Text):
+ new_text = unicode(subnode.astext())
+ new_text = new_text.replace(u" ", u"\u00a0")
+ par[j] = nodes.Text(new_text)
+ except IndexError:
+ pass
+
+
+# -- autodoc integration -------------------------------------------------------
+
+try:
+ ismemberdescriptor = inspect.ismemberdescriptor
+ isgetsetdescriptor = inspect.isgetsetdescriptor
+except AttributeError:
+ def ismemberdescriptor(obj):
+ return False
+ isgetsetdescriptor = ismemberdescriptor
+
+def get_documenter(obj):
+ """
+ Get an autodoc.Documenter class suitable for documenting the given object
+ """
+ import sphinx.ext.autodoc as autodoc
+
+ if inspect.isclass(obj):
+ if issubclass(obj, Exception):
+ return autodoc.ExceptionDocumenter
+ return autodoc.ClassDocumenter
+ elif inspect.ismodule(obj):
+ return autodoc.ModuleDocumenter
+ elif inspect.ismethod(obj) or inspect.ismethoddescriptor(obj):
+ return autodoc.MethodDocumenter
+ elif (ismemberdescriptor(obj) or isgetsetdescriptor(obj)
+ or inspect.isdatadescriptor(obj)):
+ return autodoc.AttributeDocumenter
+ elif inspect.isroutine(obj):
+ return autodoc.FunctionDocumenter
+ else:
+ return autodoc.DataDocumenter
+
# -- .. autosummary:: ----------------------------------------------------------
@@ -125,35 +175,38 @@ class Autosummary(Directive):
option_spec = {
'toctree': directives.unchanged,
'nosignatures': directives.flag,
+ 'template': directives.unchanged,
}
- def run(self):
- names = []
- names += [x.strip() for x in self.content if x.strip()]
+ def warn(self, msg):
+ self.warnings.append(self.state.document.reporter.warning(
+ msg, line=self.lineno))
- table, warnings, real_names = get_autosummary(
- names, self.state, 'nosignatures' in self.options)
- node = table
+ def run(self):
+ self.env = env = self.state.document.settings.env
+ self.genopt = {}
+ self.warnings = []
- env = self.state.document.settings.env
- suffix = env.config.source_suffix
- all_docnames = env.found_docs.copy()
- dirname = posixpath.dirname(env.docname)
+ names = [x.strip().split()[0] for x in self.content
+ if x.strip() and re.search(r'^[~a-zA-Z_]', x.strip()[0])]
+ items = self.get_items(names)
+ nodes = self.get_table(items)
if 'toctree' in self.options:
+ suffix = env.config.source_suffix
+ all_docnames = env.found_docs.copy()
+ dirname = posixpath.dirname(env.docname)
+
tree_prefix = self.options['toctree'].strip()
docnames = []
- for name in names:
- name = real_names.get(name, name)
-
- docname = posixpath.join(tree_prefix, name)
+ for name, sig, summary, real_name in items:
+ docname = posixpath.join(tree_prefix, real_name)
if docname.endswith(suffix):
docname = docname[:-len(suffix)]
docname = posixpath.normpath(posixpath.join(dirname, docname))
if docname not in env.found_docs:
- warnings.append(self.state.document.reporter.warning(
- 'toctree references unknown document %r' % docname,
- line=self.lineno))
+ self.warn('toctree references unknown document %r'
+ % docname)
docnames.append(docname)
tocnode = addnodes.toctree()
@@ -163,63 +216,167 @@ class Autosummary(Directive):
tocnode['glob'] = None
tocnode = autosummary_toc('', '', tocnode)
- return warnings + [node] + [tocnode]
- else:
- return warnings + [node]
+ nodes.append(tocnode)
+ return self.warnings + nodes
-def get_autosummary(names, state, no_signatures=False):
- """
- Generate a proper table node for autosummary:: directive.
+ def get_items(self, names):
+ """
+ Try to import the given names, and return a list of
+ ``[(name, signature, summary_string, real_name), ...]``.
+ """
+ env = self.state.document.settings.env
+
+ prefixes = ['']
+ if env.currmodule:
+ prefixes.insert(0, env.currmodule)
+
+ items = []
+
+ max_item_chars = 50
+
+ for name in names:
+ display_name = name
+ if name.startswith('~'):
+ name = name[1:]
+ display_name = name.split('.')[-1]
+
+ try:
+ obj, real_name = import_by_name(name, prefixes=prefixes)
+ except ImportError:
+ self.warn('failed to import %s' % name)
+ items.append((name, '', '', name))
+ continue
+
+ # NB. using real_name here is important, since Documenters
+ # handle module prefixes slightly differently
+ documenter = get_documenter(obj)(self, real_name)
+ if not documenter.parse_name():
+ self.warn('failed to parse name %s' % real_name)
+ items.append((display_name, '', '', real_name))
+ continue
+ if not documenter.import_object():
+ self.warn('failed to import object %s' % real_name)
+ items.append((display_name, '', '', real_name))
+ continue
+
+ # -- Grab the signature
+
+ sig = documenter.format_signature()
+ if not sig:
+ sig = ''
+ else:
+ max_chars = max(10, max_item_chars - len(display_name))
+ sig = mangle_signature(sig, max_chars=max_chars)
+ sig = sig.replace('*', r'\*')
- *names* is a list of names of Python objects to be imported and added to the
- table. *document* is the Docutils document object.
+ # -- Grab the summary
+ doc = list(documenter.process_doc(documenter.get_doc()))
+
+ while doc and not doc[0].strip():
+ doc.pop(0)
+ m = re.search(r"^([A-Z][^A-Z]*?\.\s)", " ".join(doc).strip())
+ if m:
+ summary = m.group(1).strip()
+ elif doc:
+ summary = doc[0].strip()
+ else:
+ summary = ''
+
+ items.append((display_name, sig, summary, real_name))
+
+ return items
+
+ def get_table(self, items):
+ """
+ Generate a proper list of table nodes for autosummary:: directive.
+
+ *items* is a list produced by :meth:`get_items`.
+ """
+ table_spec = addnodes.tabular_col_spec()
+ table_spec['spec'] = 'LL'
+
+ table = autosummary_table('')
+ real_table = nodes.table('')
+ table.append(real_table)
+ group = nodes.tgroup('', cols=2)
+ real_table.append(group)
+ group.append(nodes.colspec('', colwidth=10))
+ group.append(nodes.colspec('', colwidth=90))
+ body = nodes.tbody('')
+ group.append(body)
+
+ def append_row(*column_texts):
+ row = nodes.row('')
+ for text in column_texts:
+ node = nodes.paragraph('')
+ vl = ViewList()
+ vl.append(text, '<autosummary>')
+ self.state.nested_parse(vl, 0, node)
+ try:
+ if isinstance(node[0], nodes.paragraph):
+ node = node[0]
+ except IndexError:
+ pass
+ row.append(nodes.entry('', node))
+ body.append(row)
+
+ for name, sig, summary, real_name in items:
+ qualifier = 'obj'
+ if 'nosignatures' not in self.options:
+ col1 = ':%s:`%s <%s>`\ %s' % (qualifier, name, real_name, sig)
+ else:
+ col1 = ':%s:`%s <%s>`' % (qualifier, name, real_name)
+ col2 = summary
+ append_row(col1, col2)
+
+ return [table_spec, table]
+
+def mangle_signature(sig, max_chars=30):
+ """Reformat a function signature to a more compact form."""
+ sig = re.sub(r"^\((.*)\)$", r"\1", sig) + ", "
+ r = re.compile(r"(?P<name>[a-zA-Z0-9_*]+)(?P<default>=.*?)?, ")
+ items = r.findall(sig)
+
+ args = [name for name, default in items if not default]
+ opts = [name for name, default in items if default]
+
+ sig = limited_join(", ", args, max_chars=max_chars-2)
+ if opts:
+ if not sig:
+ sig = "[%s]" % limited_join(", ", opts, max_chars=max_chars-4)
+ elif len(sig) < max_chars - 4 - 2 - 3:
+ sig += "[, %s]" % limited_join(", ", opts,
+ max_chars=max_chars-len(sig)-4-2)
+
+ return u"(%s)" % sig
+
+def limited_join(sep, items, max_chars=30, overflow_marker="..."):
"""
- document = state.document
-
- real_names = {}
- warnings = []
-
- prefixes = ['']
- prefixes.insert(0, document.settings.env.currmodule)
-
- table = nodes.table('')
- group = nodes.tgroup('', cols=2)
- table.append(group)
- group.append(nodes.colspec('', colwidth=30))
- group.append(nodes.colspec('', colwidth=70))
- body = nodes.tbody('')
- group.append(body)
-
- def append_row(*column_texts):
- row = nodes.row('')
- for text in column_texts:
- node = nodes.paragraph('')
- vl = ViewList()
- vl.append(text, '<autosummary>')
- state.nested_parse(vl, 0, node)
- row.append(nodes.entry('', node))
- body.append(row)
-
- for name in names:
- try:
- obj, real_name = import_by_name(name, prefixes=prefixes)
- except ImportError:
- warnings.append(document.reporter.warning(
- 'failed to import %s' % name))
- append_row(':obj:`%s`' % name, '')
- continue
+ Join a number of strings to one, limiting the length to *max_chars*.
- real_names[name] = real_name
+ If the string overflows this limit, replace the last fitting item by
+ *overflow_marker*.
+
+ Returns: joined_string
+ """
+ full_str = sep.join(items)
+ if len(full_str) < max_chars:
+ return full_str
+
+ n_chars = 0
+ n_items = 0
+ for j, item in enumerate(items):
+ n_chars += len(item) + len(sep)
+ if n_chars < max_chars - len(overflow_marker):
+ n_items += 1
+ else:
+ break
- title = ''
- qualifier = 'obj'
- col1 = ':'+qualifier+':`%s <%s>`' % (name, real_name)
- col2 = title
- append_row(col1, col2)
+ return sep.join(list(items[:n_items]) + [overflow_marker])
- return table, warnings, real_names
+# -- Importing items -----------------------------------------------------------
def import_by_name(name, prefixes=[None]):
"""
@@ -241,14 +398,16 @@ def import_by_name(name, prefixes=[None]):
def _import_by_name(name):
"""Import a Python object given its full name."""
try:
- # try first interpret `name` as MODNAME.OBJ
name_parts = name.split('.')
- try:
- modname = '.'.join(name_parts[:-1])
- __import__(modname)
- return getattr(sys.modules[modname], name_parts[-1])
- except (ImportError, IndexError, AttributeError):
- pass
+
+ # try first interpret `name` as MODNAME.OBJ
+ modname = '.'.join(name_parts[:-1])
+ if modname:
+ try:
+ __import__(modname)
+ return getattr(sys.modules[modname], name_parts[-1])
+ except (ImportError, IndexError, AttributeError):
+ pass
# ... then as MODNAME, MODNAME.OBJ1, MODNAME.OBJ1.OBJ2, ...
last_j = 0
@@ -301,16 +460,25 @@ def autolink_role(typ, rawtext, etext, lineno, inliner,
def process_generate_options(app):
genfiles = app.config.autosummary_generate
+
+ ext = app.config.source_suffix
+
+ if genfiles and not hasattr(genfiles, '__len__'):
+ env = app.builder.env
+ genfiles = [x + ext for x in env.found_docs
+ if os.path.isfile(env.doc2path(x))]
+
if not genfiles:
return
+
from sphinx.ext.autosummary.generate import generate_autosummary_docs
- ext = app.config.source_suffix
- genfiles = [path.join(app.srcdir, genfile +
- (not genfile.endswith(ext) and ext or ''))
+ genfiles = [genfile + (not genfile.endswith(ext) and ext or '')
for genfile in genfiles]
- generate_autosummary_docs(genfiles, warn=app.warn, info=app.info,
- suffix=ext)
+
+ generate_autosummary_docs(genfiles, builder=app.builder,
+ warn=app.warn, info=app.info, suffix=ext,
+ base_path=app.srcdir)
def setup(app):
@@ -318,7 +486,11 @@ def setup(app):
app.setup_extension('sphinx.ext.autodoc')
app.add_node(autosummary_toc,
html=(autosummary_toc_visit_html, autosummary_noop),
- latex=(autosummary_toc_visit_latex, autosummary_noop),
+ latex=(autosummary_noop, autosummary_noop),
+ text=(autosummary_noop, autosummary_noop))
+ app.add_node(autosummary_table,
+ html=(autosummary_table_visit_html, autosummary_noop),
+ latex=(autosummary_noop, autosummary_noop),
text=(autosummary_noop, autosummary_noop))
app.add_directive('autosummary', Autosummary)
app.add_role('autolink', autolink_role)
diff --git a/sphinx/ext/autosummary/generate.py b/sphinx/ext/autosummary/generate.py
index 0a1e0406..5b51b775 100644
--- a/sphinx/ext/autosummary/generate.py
+++ b/sphinx/ext/autosummary/generate.py
@@ -20,49 +20,98 @@
import os
import re
import sys
-import getopt
+import optparse
import inspect
+import pydoc
-from jinja2 import Environment, PackageLoader
+from jinja2 import FileSystemLoader, TemplateNotFound
+from jinja2.sandbox import SandboxedEnvironment
-from sphinx.ext.autosummary import import_by_name
+from sphinx.ext.autosummary import import_by_name, get_documenter
from sphinx.util import ensuredir
+from sphinx.jinja2glue import BuiltinTemplateLoader
-# create our own templating environment, for module template only
-env = Environment(loader=PackageLoader('sphinx.ext.autosummary', 'templates'))
+def main(argv=sys.argv):
+ usage = """%prog [OPTIONS] SOURCEFILE ..."""
+ p = optparse.OptionParser(usage.strip())
+ p.add_option("-o", "--output-dir", action="store", type="string",
+ dest="output_dir", default=None,
+ help="Directory to place all output in")
+ p.add_option("-s", "--suffix", action="store", type="string",
+ dest="suffix", default="rst",
+ help="Default suffix for files (default: %default)")
+ p.add_option("-t", "--templates", action="store", type="string",
+ dest="templates", default=None,
+ help="Custom template directory (default: %default)")
+ options, args = p.parse_args(argv[1:])
+
+ if len(args) < 1:
+ p.error('no input files given')
+ generate_autosummary_docs(args, options.output_dir,
+ "." + options.suffix,
+ template_dir=options.templates)
def _simple_info(msg):
print msg
def _simple_warn(msg):
- print >>sys.stderr, 'WARNING: ' + msg
+ print >> sys.stderr, 'WARNING: ' + msg
+
+# -- Generating output ---------------------------------------------------------
+
+def generate_autosummary_docs(sources, output_dir=None, suffix='.rst',
+ warn=_simple_warn, info=_simple_info,
+ base_path=None, builder=None, template_dir=None):
+
+ showed_sources = list(sorted(sources))
+ if len(showed_sources) > 20:
+ showed_sources = showed_sources[:10] + ['...'] + showed_sources[-10:]
+ info('[autosummary] generating autosummary for: %s' %
+ ', '.join(showed_sources))
-def generate_autosummary_docs(sources, output_dir=None, suffix=None,
- warn=_simple_warn, info=_simple_info):
- info('generating autosummary for: %s' % ', '.join(sources))
if output_dir:
- info('writing to %s' % output_dir)
+ info('[autosummary] writing to %s' % output_dir)
+
+ if base_path is not None:
+ sources = [os.path.join(base_path, filename) for filename in sources]
+
+ # create our own templating environment
+ template_dirs = [os.path.join(os.path.dirname(__file__), 'templates')]
+ if builder is not None:
+ # allow the user to override the templates
+ template_loader = BuiltinTemplateLoader()
+ template_loader.init(builder, dirs=template_dirs)
+ else:
+ if template_dir:
+ template_dirs.insert(0, template_dir)
+ template_loader = FileSystemLoader(template_dirs)
+ template_env = SandboxedEnvironment(loader=template_loader)
+
# read
- names = {}
- for name, loc in get_documented(sources).items():
- for (filename, sec_title, keyword, toctree) in loc:
- if toctree is not None:
- path = os.path.join(os.path.dirname(filename), toctree)
- names[name] = os.path.abspath(path)
+ items = find_autosummary_in_files(sources)
+
+ # remove possible duplicates
+ items = dict([(item, True) for item in items]).keys()
# write
- for name, path in sorted(names.items()):
- path = output_dir or path
+ for name, path, template_name in sorted(items):
+ if path is None:
+ # The corresponding autosummary:: directive did not have
+ # a :toctree: option
+ continue
+
+ path = output_dir or os.path.abspath(path)
ensuredir(path)
try:
obj, name = import_by_name(name)
except ImportError, e:
- warn('failed to import %r: %s' % (name, e))
+ warn('[autosummary] failed to import %r: %s' % (name, e))
continue
- fn = os.path.join(path, name + (suffix or '.rst'))
+ fn = os.path.join(path, name + suffix)
+
# skip it if it exists
if os.path.isfile(fn):
continue
@@ -70,169 +119,175 @@ def generate_autosummary_docs(sources, output_dir=None, suffix=None,
f = open(fn, 'w')
try:
- if inspect.ismodule(obj):
- # XXX replace this with autodoc's API?
- tmpl = env.get_template('module')
- functions = [getattr(obj, item).__name__
- for item in dir(obj)
- if inspect.isfunction(getattr(obj, item))]
- classes = [getattr(obj, item).__name__
- for item in dir(obj)
- if inspect.isclass(getattr(obj, item))
- and not issubclass(getattr(obj, item), Exception)]
- exceptions = [getattr(obj, item).__name__
- for item in dir(obj)
- if inspect.isclass(getattr(obj, item))
- and issubclass(getattr(obj, item), Exception)]
- rendered = tmpl.render(name=name,
- underline='='*len(name),
- functions=functions,
- classes=classes,
- exceptions=exceptions,
- len_functions=len(functions),
- len_classes=len(classes),
- len_exceptions=len(exceptions))
- f.write(rendered)
- else:
- f.write('%s\n%s\n\n' % (name, '='*len(name)))
-
- if inspect.isclass(obj):
- if issubclass(obj, Exception):
- f.write(format_modulemember(name, 'autoexception'))
- else:
- f.write(format_modulemember(name, 'autoclass'))
- elif inspect.ismethod(obj) or inspect.ismethoddescriptor(obj):
- f.write(format_classmember(name, 'automethod'))
- elif callable(obj):
- f.write(format_modulemember(name, 'autofunction'))
- elif hasattr(obj, '__get__'):
- f.write(format_classmember(name, 'autoattribute'))
- else:
- f.write(format_modulemember(name, 'autofunction'))
- finally:
- f.close()
+ doc = get_documenter(obj)
+ if template_name is not None:
+ template = template_env.get_template(template_name)
+ else:
+ try:
+ template = template_env.get_template('autosummary/%s.rst'
+ % doc.objtype)
+ except TemplateNotFound:
+ template = template_env.get_template('autosummary/base.rst')
+
+ def get_members(obj, typ, include_public=[]):
+ items = [
+ name for name in dir(obj)
+ if get_documenter(getattr(obj, name)).objtype == typ
+ ]
+ public = [x for x in items
+ if x in include_public or not x.startswith('_')]
+ return public, items
+
+ info = {}
+
+ if doc.objtype == 'module':
+ info['members'] = dir(obj)
+ info['functions'], info['all_functions'] = \
+ get_members(obj, 'function')
+ info['classes'], info['all_classes'] = \
+ get_members(obj, 'class')
+ info['exceptions'], info['all_exceptions'] = \
+ get_members(obj, 'exception')
+ elif doc.objtype == 'class':
+ info['members'] = dir(obj)
+ info['methods'], info['all_methods'] = \
+ get_members(obj, 'method', ['__init__'])
+ info['attributes'], info['all_attributes'] = \
+ get_members(obj, 'attribute')
+
+ parts = name.split('.')
+ if doc.objtype in ('method', 'attribute'):
+ mod_name = '.'.join(parts[:-2])
+ cls_name = parts[-2]
+ obj_name = '.'.join(parts[-2:])
+ info['class'] = cls_name
+ else:
+ mod_name, obj_name = '.'.join(parts[:-1]), parts[-1]
-def format_modulemember(name, directive):
- parts = name.split('.')
- mod, name = '.'.join(parts[:-1]), parts[-1]
- return '.. currentmodule:: %s\n\n.. %s:: %s\n' % (mod, directive, name)
+ info['fullname'] = name
+ info['module'] = mod_name
+ info['objname'] = obj_name
+ info['name'] = parts[-1]
+ info['objtype'] = doc.objtype
+ info['underline'] = len(name) * '='
-def format_classmember(name, directive):
- parts = name.split('.')
- mod, name = '.'.join(parts[:-2]), '.'.join(parts[-2:])
- return '.. currentmodule:: %s\n\n.. %s:: %s\n' % (mod, directive, name)
+ rendered = template.render(**info)
+ f.write(rendered)
+ finally:
+ f.close()
-title_underline_re = re.compile('^[-=*_^#]{3,}\s*$')
-autodoc_re = re.compile(r'.. auto(function|method|attribute|class|exception'
- '|module)::\s*([A-Za-z0-9_.]+)\s*$')
-autosummary_re = re.compile(r'^\.\.\s+autosummary::\s*')
-module_re = re.compile(r'^\.\.\s+(current)?module::\s*([a-zA-Z0-9_.]+)\s*$')
-autosummary_item_re = re.compile(r'^\s+([_a-zA-Z][a-zA-Z0-9_.]*)\s*')
-toctree_arg_re = re.compile(r'^\s+:toctree:\s*(.*?)\s*$')
+# -- Finding documented entries in files ---------------------------------------
-def get_documented(filenames):
+def find_autosummary_in_files(filenames):
"""
- Find out what items are documented in the given filenames.
-
- Returns a dict of list of (filename, title, keyword, toctree) Keys are
- documented names of objects. The value is a list of locations where the
- object was documented. Each location is a tuple of filename, the current
- section title, the name of the directive, and the value of the :toctree:
- argument (if present) of the directive.
+ Find out what items are documented in source/*.rst.
+ See `find_autosummary_in_lines`.
"""
-
- documented = {}
-
+ documented = []
for filename in filenames:
- current_title = []
- last_line = None
- toctree = None
- current_module = None
- in_autosummary = False
-
f = open(filename, 'r')
- for line in f:
- try:
- if in_autosummary:
- m = toctree_arg_re.match(line)
- if m:
- toctree = m.group(1)
- continue
-
- if line.strip().startswith(':'):
- continue # skip options
-
- m = autosummary_item_re.match(line)
-
- if m:
- name = m.group(1).strip()
- if current_module and \
- not name.startswith(current_module + '.'):
- name = '%s.%s' % (current_module, name)
- documented.setdefault(name, []).append(
- (filename, current_title, 'autosummary', toctree))
- continue
- if line.strip() == '':
- continue
- in_autosummary = False
-
- m = autosummary_re.match(line)
- if m:
- in_autosummary = True
- continue
-
- m = autodoc_re.search(line)
- if m:
- name = m.group(2).strip()
- # XXX look in newer generate.py
- if current_module and \
- not name.startswith(current_module + '.'):
- name = '%s.%s' % (current_module, name)
- if m.group(1) == 'module':
- current_module = name
- documented.setdefault(name, []).append(
- (filename, current_title, 'auto' + m.group(1), None))
- continue
-
- m = title_underline_re.match(line)
- if m and last_line:
- current_title = last_line.strip()
- continue
-
- m = module_re.match(line)
- if m:
- current_module = m.group(2)
- continue
- finally:
- last_line = line
+ lines = f.read().splitlines()
+ documented.extend(find_autosummary_in_lines(lines, filename=filename))
+ f.close()
return documented
-
-def main(argv=sys.argv):
- usage = 'usage: %s [-o output_dir] [-s suffix] sourcefile ...' % sys.argv[0]
+def find_autosummary_in_docstring(name, module=None, filename=None):
+ """
+ Find out what items are documented in the given object's docstring.
+ See `find_autosummary_in_lines`.
+ """
try:
- opts, args = getopt.getopt(argv[1:], 'o:s:')
- except getopt.error:
- print >>sys.stderr, usage
- return 1
-
- output_dir = None
- suffix = None
- for opt, val in opts:
- if opt == '-o':
- output_dir = val
- elif opt == '-s':
- suffix = val
+ obj, real_name = import_by_name(name)
+ lines = pydoc.getdoc(obj).splitlines()
+ return find_autosummary_in_lines(lines, module=name, filename=filename)
+ except AttributeError:
+ pass
+ except ImportError, e:
+ print "Failed to import '%s': %s" % (name, e)
+ return []
+
+def find_autosummary_in_lines(lines, module=None, filename=None):
+ """
+ Find out what items appear in autosummary:: directives in the given lines.
+
+ Returns a list of (name, toctree, template) where *name* is a name
+ of an object and *toctree* the :toctree: path of the corresponding
+ autosummary directive (relative to the root of the file name), and
+ *template* the value of the :template: option. *toctree* and
+ *template* ``None`` if the directive does not have the
+ corresponding options set.
+ """
+ autosummary_re = re.compile(r'^\.\.\s+autosummary::\s*')
+ automodule_re = re.compile(r'.. automodule::\s*([A-Za-z0-9_.]+)\s*$')
+ module_re = re.compile(r'^\.\.\s+(current)?module::\s*([a-zA-Z0-9_.]+)\s*$')
+ autosummary_item_re = re.compile(r'^\s+([_a-zA-Z][a-zA-Z0-9_.]*)\s*.*?')
+ toctree_arg_re = re.compile(r'^\s+:toctree:\s*(.*?)\s*$')
+ template_arg_re = re.compile(r'^\s+:template:\s*(.*?)\s*$')
+
+ documented = []
+
+ toctree = None
+ template = None
+ current_module = module
+ in_autosummary = False
+
+ for line in lines:
+ if in_autosummary:
+ m = toctree_arg_re.match(line)
+ if m:
+ toctree = m.group(1)
+ if filename:
+ toctree = os.path.join(os.path.dirname(filename),
+ toctree)
+ continue
+
+ m = template_arg_re.match(line)
+ if m:
+ template = m.group(1).strip()
+ continue
+
+ if line.strip().startswith(':'):
+ continue # skip options
+
+ m = autosummary_item_re.match(line)
+ if m:
+ name = m.group(1).strip()
+ if current_module and \
+ not name.startswith(current_module + '.'):
+ name = "%s.%s" % (current_module, name)
+ documented.append((name, toctree, template))
+ continue
+
+ if not line.strip():
+ continue
+
+ in_autosummary = False
+
+ m = autosummary_re.match(line)
+ if m:
+ in_autosummary = True
+ toctree = None
+ template = None
+ continue
- if len(args) < 1:
- print >>sys.stderr, usage
- return 1
+ m = automodule_re.search(line)
+ if m:
+ current_module = m.group(1).strip()
+ # recurse into the automodule docstring
+ documented.extend(find_autosummary_in_docstring(
+ current_module, filename=filename))
+ continue
+
+ m = module_re.match(line)
+ if m:
+ current_module = m.group(2)
+ continue
- generate_autosummary_docs(args, output_dir, suffix)
+ return documented
if __name__ == '__main__':
- main(sys.argv)
+ main()
diff --git a/sphinx/ext/autosummary/templates/autosummary/base.rst b/sphinx/ext/autosummary/templates/autosummary/base.rst
new file mode 100644
index 00000000..21a0ccd8
--- /dev/null
+++ b/sphinx/ext/autosummary/templates/autosummary/base.rst
@@ -0,0 +1,6 @@
+{{ fullname }}
+{{ underline }}
+
+.. currentmodule:: {{ module }}
+
+.. auto{{ objtype }}:: {{ objname }}
diff --git a/sphinx/ext/autosummary/templates/autosummary/class.rst b/sphinx/ext/autosummary/templates/autosummary/class.rst
new file mode 100644
index 00000000..40494dad
--- /dev/null
+++ b/sphinx/ext/autosummary/templates/autosummary/class.rst
@@ -0,0 +1,30 @@
+{{ fullname }}
+{{ underline }}
+
+.. currentmodule:: {{ module }}
+
+.. autoclass:: {{ objname }}
+
+ {% block methods %}
+ .. automethod:: __init__
+
+ {% if methods %}
+ .. rubric:: Methods
+
+ .. autosummary::
+ {% for item in methods %}
+ ~{{ name }}.{{ item }}
+ {%- endfor %}
+ {% endif %}
+ {% endblock %}
+
+ {% block attributes %}
+ {% if attributes %}
+ .. rubric:: Attributes
+
+ .. autosummary::
+ {% for item in attributes %}
+ ~{{ name }}.{{ item }}
+ {%- endfor %}
+ {% endif %}
+ {% endblock %}
diff --git a/sphinx/ext/autosummary/templates/autosummary/module.rst b/sphinx/ext/autosummary/templates/autosummary/module.rst
new file mode 100644
index 00000000..cc76c9e0
--- /dev/null
+++ b/sphinx/ext/autosummary/templates/autosummary/module.rst
@@ -0,0 +1,37 @@
+{{ fullname }}
+{{ underline }}
+
+.. automodule:: {{ fullname }}
+
+ {% block functions %}
+ {% if functions %}
+ .. rubric:: Functions
+
+ .. autosummary::
+ {% for item in functions %}
+ {{ item }}
+ {%- endfor %}
+ {% endif %}
+ {% endblock %}
+
+ {% block classes %}
+ {% if classes %}
+ .. rubric:: Classes
+
+ .. autosummary::
+ {% for item in classes %}
+ {{ item }}
+ {%- endfor %}
+ {% endif %}
+ {% endblock %}
+
+ {% block exceptions %}
+ {% if exceptions %}
+ .. rubric:: Exceptions
+
+ .. autosummary::
+ {% for item in classes %}
+ {{ item }}
+ {%- endfor %}
+ {% endif %}
+ {% endblock %}
diff --git a/sphinx/ext/autosummary/templates/module b/sphinx/ext/autosummary/templates/module
deleted file mode 100644
index 0cbc8266..00000000
--- a/sphinx/ext/autosummary/templates/module
+++ /dev/null
@@ -1,39 +0,0 @@
-:mod:`{{name}}`
-======{{ underline }}=
-
-
-.. automodule:: {{name}}
-
-{% if len_functions > 0 %}
-Functions
-----------
-{% for item in functions %}
-.. autofunction:: {{item}}
-{% endfor %}
-{% endif %}
-
-{% if len_classes > 0 %}
-Classes
---------
-{% for item in classes %}
-.. autoclass:: {{item}}
- :show-inheritance:
- :members:
- :inherited-members:
- :undoc-members:
-
-{% endfor %}
-{% endif %}
-
-{% if len_exceptions > 0 %}
-Exceptions
-------------
-{% for item in exceptions %}
-.. autoclass:: {{item}}
- :show-inheritance:
- :members:
- :inherited-members:
- :undoc-members:
-
-{% endfor %}
-{% endif %}
diff --git a/sphinx/ext/extlinks.py b/sphinx/ext/extlinks.py
new file mode 100644
index 00000000..8e68681b
--- /dev/null
+++ b/sphinx/ext/extlinks.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+"""
+ sphinx.ext.extlinks
+ ~~~~~~~~~~~~~~~~~~~
+
+ Extension to save typing and prevent hard-coding of base URLs in the reST
+ files.
+
+ This adds a new config value called ``extlinks`` that is created like this::
+
+ extlinks = {'exmpl': ('http://example.com/', prefix), ...}
+
+ Now you can use e.g. :exmpl:`foo` in your documents. This will create a
+ link to ``http://example.com/foo``. The link caption depends on the
+ *prefix* value given:
+
+ - If it is ``None``, the caption will be the full URL.
+ - If it is a string (empty or not), the caption will be the prefix prepended
+ to the role content.
+
+ You can also give an explicit caption, e.g. :exmpl:`Foo <foo>`.
+
+ :copyright: Copyright 2007-2009 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from docutils import nodes, utils
+
+from sphinx.util import split_explicit_title
+
+
+def make_link_role(base_url, prefix):
+ def role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
+ text = utils.unescape(text)
+ has_explicit_title, title, url = split_explicit_title(text)
+ # NOTE: not using urlparse.urljoin() here, to allow something like
+ # base_url = 'bugs.python.org/issue' and url = '1024'
+ full_url = base_url + url
+ if not has_explicit_title:
+ if prefix is None:
+ title = full_url
+ else:
+ title = prefix + url
+ pnode = nodes.reference(title, title, refuri=full_url)
+ return [pnode], []
+ return role
+
+def setup_link_roles(app):
+ for name, (base_url, prefix) in app.config.extlinks.iteritems():
+ app.add_role(name, make_link_role(base_url, prefix))
+
+def setup(app):
+ app.add_config_value('extlinks', {}, 'env')
+ app.connect('builder-inited', setup_link_roles)
diff --git a/sphinx/ext/todo.py b/sphinx/ext/todo.py
index e2a1bb4a..2bea562a 100644
--- a/sphinx/ext/todo.py
+++ b/sphinx/ext/todo.py
@@ -93,7 +93,7 @@ def process_todo_nodes(app, doctree, fromdocname):
content = []
for todo_info in env.todo_all_todos:
- para = nodes.paragraph()
+ para = nodes.paragraph(classes=['todo-source'])
filename = env.doc2path(todo_info['docname'], base=None)
description = (
_('(The original entry is located in %s, line %d and '
diff --git a/sphinx/locale/cs/LC_MESSAGES/sphinx.po b/sphinx/locale/cs/LC_MESSAGES/sphinx.po
index 1f138ef0..fc2bcff7 100644
--- a/sphinx/locale/cs/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/cs/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-11-27 18:39+0100\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Pavel Kosina <pavel.kosina@gmail.com>\n"
"Language-Team: Pavel Kosina <pavel.kosina@gmail.com>\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d.%m.%Y"
@@ -28,11 +28,11 @@ msgstr "%d.%m.%Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Index"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Rejstřík modulů "
@@ -58,34 +58,34 @@ msgstr "Vestavěné funkce "
msgid "Module level"
msgstr "Úroveň modulů"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d.%m.%Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Rejstřík indexů"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "index"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Celkový rejstřík modulů"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "moduly"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "další"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "předchozí"
@@ -234,12 +234,12 @@ msgstr "Autor: "
msgid "See also"
msgstr "Viz také"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -451,22 +451,22 @@ msgstr "Hledání"
msgid "Copyright"
msgstr "Veškerá práva vyhrazena"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Aktualizováno dne %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -507,7 +507,7 @@ msgid "search"
msgstr "hledej"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Výsledky hledání"
@@ -564,15 +564,15 @@ msgstr "Hledám"
msgid "Preparing search..."
msgstr "Připravuji vyhledávání...."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr "modul, v"
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", v"
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -580,20 +580,20 @@ msgstr ""
"Nenalezli jsme žádný dokument. Ujistěte se prosím, že všechna slova jsou "
"správně a že jste vybral dostatek kategorií."
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Vyhledávání skončilo, nalezeno %s stran."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Vydání"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Plný index na jedné stránce"
diff --git a/sphinx/locale/de/LC_MESSAGES/sphinx.po b/sphinx/locale/de/LC_MESSAGES/sphinx.po
index 136dc39a..acd1446c 100644
--- a/sphinx/locale/de/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/de/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-08-07 21:40+0200\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Horst Gutmann <zerok@zerokspot.com>\n"
"Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d. %m. %Y"
@@ -26,11 +26,11 @@ msgstr "%d. %m. %Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Stichwortverzeichnis"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Modulindex"
@@ -56,34 +56,34 @@ msgstr "Builtins"
msgid "Module level"
msgstr "Modulebene"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d. %m. %Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Allgemeiner Index"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "Index"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Globaler Modulindex"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "Module"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "weiter"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "zurück"
@@ -231,12 +231,12 @@ msgstr "Autor: "
msgid "See also"
msgstr "Siehe auch"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr " Basisklassen: %s"
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr "Alias von :class:`%s`"
@@ -447,22 +447,22 @@ msgstr "Suche"
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Zuletzt aktualisiert am %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -504,7 +504,7 @@ msgid "search"
msgstr "suchen"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Suchergebnisse"
@@ -561,15 +561,15 @@ msgstr "Suchen..."
msgid "Preparing search..."
msgstr "Suche wird vorbereitet..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr "Modul, in "
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", in "
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -577,20 +577,20 @@ msgstr ""
"Es wurden keine Dokumente gefunden. Haben Sie alle Suchworte richtig "
"geschrieben und genügend Kategorien ausgewählt?"
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Suche beendet, %s Seite(n) mit Ergebnissen wurden gefunden."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Release"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Gesamtes Stichwortverzeichnis auf einer Seite"
diff --git a/sphinx/locale/es/LC_MESSAGES/sphinx.po b/sphinx/locale/es/LC_MESSAGES/sphinx.po
index ceee4ac8..f88b5e3d 100644
--- a/sphinx/locale/es/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/es/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: guillem@torroja.dmt.upm.es\n"
"POT-Creation-Date: 2008-09-11 23:58+0200\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Guillem Borrell <guillem@torroja.dmt.upm.es>\n"
"Language-Team: es <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, fuzzy, python-format
msgid "%B %d, %Y"
msgstr "%d de %B de %Y"
@@ -27,11 +27,11 @@ msgstr "%d de %B de %Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Índice"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Índice de Módulos"
@@ -59,34 +59,34 @@ msgstr "Funciones de base"
msgid "Module level"
msgstr "Módulos"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b, %Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Índice General"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "índice"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Índice Global de Módulos"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "módulos"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "siguiente"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "anterior"
@@ -236,12 +236,12 @@ msgstr "Autor:"
msgid "See also"
msgstr "Ver también"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -454,22 +454,22 @@ msgstr "Búsqueda"
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\\\"%(path)s\\\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Actualizado por última vez en %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -511,7 +511,7 @@ msgid "search"
msgstr "buscar"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Resultados de la búsqueda"
@@ -569,16 +569,16 @@ msgstr "Buscando"
msgid "Preparing search..."
msgstr "Preparando la búsqueda"
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
#, fuzzy
msgid "module, in "
msgstr "módulo"
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -587,23 +587,23 @@ msgstr ""
"todas las palabras correctamente y que ha seleccionado suficientes "
"categorías"
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr ""
"Búsqueda finalizada, se han encontrado %s página(s) que concuerdan con su"
" consulta"
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
#, fuzzy
msgid "Release"
msgstr "Versión"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Índice completo en una página"
diff --git a/sphinx/locale/fi/LC_MESSAGES/sphinx.po b/sphinx/locale/fi/LC_MESSAGES/sphinx.po
index 4bfebbde..48691deb 100644
--- a/sphinx/locale/fi/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fi/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.6\n"
"Report-Msgid-Bugs-To: sphinx@awot.fi\n"
"POT-Creation-Date: 2009-01-24 18:39+0000\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Jukka Inkeri <sphinx@awot.fi>\n"
"Language-Team: fi <sphinx@awot.fi>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d.%m.%Y"
@@ -27,11 +27,11 @@ msgstr "%d.%m.%Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Sisällysluettelo"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Moduuli sisällysluettelo"
@@ -57,34 +57,34 @@ msgstr ""
msgid "Module level"
msgstr "Moduulitaso"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d.%m.%Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Yleinen sisällysluettelo"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "hakemisto"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Yleinen moduulien sisällysluettelo"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "moduulit"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr ">"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "<"
@@ -232,12 +232,12 @@ msgstr "Tekijä: "
msgid "See also"
msgstr "Katso myös"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -448,22 +448,22 @@ msgstr "Etsi"
msgid "Copyright"
msgstr ""
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -498,7 +498,7 @@ msgid "search"
msgstr "etsi"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Etsinnän tulos"
@@ -555,34 +555,34 @@ msgstr "Etsitään"
msgid "Preparing search..."
msgstr "Valmistellaan etsintää..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
msgstr "Ei löytynyt yhtään. Tarkista hakuehdot, sanahaku, ei sen osia"
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Etsintä tehty, löydetty %s sivu(a)."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr ""
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Hakemisto yhtenä luettelona"
@@ -596,6 +596,3 @@ msgstr "Ympäristö"
msgid "[image]"
msgstr ""
-#~ msgid "Ympäristö: %s"
-#~ msgstr ""
-
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.po b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
index 8274c76c..6b05c906 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: larlet@gmail.com\n"
"POT-Creation-Date: 2008-08-08 12:39+0000\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Sébastien Douche <sdouche@gmail.com>\n"
"Language-Team: French Translation Team <sphinx-dev@googlegroups.com>\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d %B %Y"
@@ -28,11 +28,11 @@ msgstr "%d %B %Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Index"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Index du module"
@@ -58,34 +58,34 @@ msgstr "Fonctions de base"
msgid "Module level"
msgstr "Module"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b %Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Index général"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "index"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Index général des modules"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "modules"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "suivant"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "précédent"
@@ -234,12 +234,12 @@ msgstr "Auteur : "
msgid "See also"
msgstr "Voir aussi"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -451,22 +451,22 @@ msgstr "Recherche"
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Mis à jour le %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -511,7 +511,7 @@ msgid "search"
msgstr "rechercher"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Résultats de la recherche"
@@ -568,15 +568,15 @@ msgstr "En cours de recherche"
msgid "Preparing search..."
msgstr "Préparation de la recherche..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr "module, dans"
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", dans"
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -585,20 +585,20 @@ msgstr ""
"des termes de recherche et que vous avez sélectionné suffisamment de "
"catégories."
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "La recherche est terminée, %s page(s) correspond(ent) à la requête."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Version"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Index complet sur une seule page"
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.po b/sphinx/locale/it/LC_MESSAGES/sphinx.po
index cdfa9b96..bd31d241 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-11-27 18:39+0100\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Sandro Dentella <sandro@e-den.it>\n"
"Language-Team: <sphinx-dev@googlegroups.com>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d %B %Y"
@@ -26,11 +26,11 @@ msgstr "%d %B %Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Indice"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Indice dei Moduli"
@@ -56,34 +56,34 @@ msgstr "Builtin"
msgid "Module level"
msgstr "Modulo"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d/%b/%Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Indice generale"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "indice"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Indice dei moduli"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "moduli"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "successivo"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "precedente"
@@ -231,12 +231,12 @@ msgstr "Autore: "
msgid "See also"
msgstr "Vedi anche"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr "alias per :class:`%s`"
@@ -447,22 +447,22 @@ msgstr "Cerca"
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Ultimo Aggiornamento on %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -505,7 +505,7 @@ msgid "search"
msgstr "cerca"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Risultati della ricerca"
@@ -562,15 +562,15 @@ msgstr "Ricerca in corso"
msgid "Preparing search..."
msgstr "Preparazione della ricerca"
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr "modulo, in"
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", in "
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -579,20 +579,20 @@ msgstr ""
"dei termini di ricerca e di avere selezionato un numero sufficiente di "
"categorie"
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Ricerca terminata, trovate %s pagine corrispondenti alla ricerca."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Release"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Indice completo in una pagina"
diff --git a/sphinx/locale/ja/LC_MESSAGES/sphinx.po b/sphinx/locale/ja/LC_MESSAGES/sphinx.po
index 49c8a9d8..32001b01 100644
--- a/sphinx/locale/ja/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ja/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-09-11 23:58+0200\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Yasushi MASUDA <whosaysni@gmail.com>\n"
"Language-Team: ja <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%Y 年 %m 月 %d 日"
@@ -27,11 +27,11 @@ msgstr "%Y 年 %m 月 %d 日"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "索引"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "モジュール索引"
@@ -57,34 +57,34 @@ msgstr "組み込み"
msgid "Module level"
msgstr "モジュールレベル"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%Y 年 %m 月 %d 日"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "総合索引"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "索引"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "モジュール総索引"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "モジュール"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "次へ"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "前へ"
@@ -233,12 +233,12 @@ msgstr "作者: "
msgid "See also"
msgstr "参考"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -450,22 +450,22 @@ msgstr "検索"
msgid "Copyright"
msgstr "著作権"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "最終更新: %(last_updated)s"
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -503,7 +503,7 @@ msgid "search"
msgstr "検索"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "検索結果"
@@ -560,35 +560,35 @@ msgstr "検索中"
msgid "Preparing search..."
msgstr "検索の準備中..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
#, fuzzy
msgid "module, in "
msgstr "モジュール"
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
msgstr "検索条件に一致するドキュメントはありませんでした。検索したい言葉を正しいつづりで入力しているか確認してください。また、正しいカテゴリの検索を行っているか確認してください。"
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "検索が終了し、条件に一致するページが %s 個みつかりました。"
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "リリース"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "総索引"
diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.po b/sphinx/locale/nl/LC_MESSAGES/sphinx.po
index d450aa70..df5722b9 100644
--- a/sphinx/locale/nl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-09-11 23:58+0200\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: nl <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d. %B %Y"
@@ -26,11 +26,11 @@ msgstr "%d. %B %Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Index"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Module-index"
@@ -56,34 +56,34 @@ msgstr "Builtins"
msgid "Module level"
msgstr "Moduleniveau"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d.%b.%Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Algemene index"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "Index"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Globale Module-index"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "modules"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "volgende"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "vorige"
@@ -232,12 +232,12 @@ msgstr "Auteur: "
msgid "See also"
msgstr "Zie ook"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -449,22 +449,22 @@ msgstr "Zoeken"
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Laatste aanpassing op %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -508,7 +508,7 @@ msgid "search"
msgstr "zoeken"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Zoekresultaten"
@@ -565,16 +565,16 @@ msgstr "Zoeken"
msgid "Preparing search..."
msgstr "Het zoeken wordt voorbereid"
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
#, fuzzy
msgid "module, in "
msgstr "module"
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -582,20 +582,20 @@ msgstr ""
"Uw zoekopdracht leverde geen resultaten op. Controleer of alle "
"woordencorrect gespeld zijn en dat u genoeg categoriën hebt geselecteerd."
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Zoeken voltooid, %s pagina(s) gevonden."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Release"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Volledige index op een pagina"
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.js b/sphinx/locale/pl/LC_MESSAGES/sphinx.js
index ce79a179..a913d3d6 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "pl", "plural_expr": "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"module, in ": "modu\u0142", "Preparing search...": "Przygotowanie wyszukiwania...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Nie znaleziono \u017cadnych pasuj\u0105cych dokument\u00f3w. Upewnij si\u0119, \u017ce wszystkie s\u0142owa s\u0105 poprawnie wpisane i \u017ce wybra\u0142e\u015b wystarczaj\u0105c\u0105liczb\u0119 kategorii.", "Search finished, found %s page(s) matching the search query.": "Przeszukiwanie zako\u0144czone, znaleziono %s pasuj\u0105cych stron.", ", in ": "", "Permalink to this headline": "Sta\u0142y odno\u015bnik do tego nag\u0142\u00f3wka", "Searching": "Wyszukiwanie", "Permalink to this definition": "Sta\u0142y odno\u015bnik do tej definicji", "Hide Search Matches": "Ukryj wyniki wyszukiwania", "Search Results": "Wyniki wyszukiwania"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "pl", "plural_expr": "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"module, in ": "modu\u0142, w ", "Preparing search...": "Przygotowanie wyszukiwania...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Nie znaleziono \u017cadnych pasuj\u0105cych dokument\u00f3w. Upewnij si\u0119, \u017ce wszystkie s\u0142owa s\u0105 poprawnie wpisane i \u017ce wybra\u0142e\u015b wystarczaj\u0105c\u0105liczb\u0119 kategorii.", "Search finished, found %s page(s) matching the search query.": "Przeszukiwanie zako\u0144czone, znaleziono %s pasuj\u0105cych stron.", ", in ": ", w ", "Permalink to this headline": "Sta\u0142y odno\u015bnik do tego nag\u0142\u00f3wka", "Searching": "Wyszukiwanie", "Permalink to this definition": "Sta\u0142y odno\u015bnik do tej definicji", "Hide Search Matches": "Ukryj wyniki wyszukiwania", "Search Results": "Wyniki wyszukiwania"}}); \ No newline at end of file
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.mo b/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
index c53656a0..31e424d8 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.po b/sphinx/locale/pl/LC_MESSAGES/sphinx.po
index 2b15a793..09832079 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.po
@@ -1,257 +1,269 @@
-
msgid ""
msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-08-10 11:43+0000\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 11:25+0100\n"
"Last-Translator: Michał Kandulski <Michal.Kandulski@poczta.onet.pl>\n"
"Language-Team: \n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && "
-"(n%100<10 || n%100>=20) ? 1 : 2)\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.4\n"
+"Generated-By: Babel 0.9.3\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104
+#: sphinx/writers/latex.py:170
#, python-format
msgid "%B %d, %Y"
msgstr "%B %d %Y"
-#: sphinx/environment.py:323 sphinx/themes/basic/genindex-single.html:2
-#: sphinx/themes/basic/genindex-split.html:2
-#: sphinx/themes/basic/genindex-split.html:5
-#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
-#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/environment.py:300
+#: sphinx/templates/genindex-single.html:2
+#: sphinx/templates/genindex-split.html:2
+#: sphinx/templates/genindex-split.html:5
+#: sphinx/templates/genindex.html:2
+#: sphinx/templates/genindex.html:5
+#: sphinx/templates/genindex.html:48
+#: sphinx/templates/layout.html:126
+#: sphinx/writers/latex.py:176
msgid "Index"
msgstr "Indeks"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:301
+#: sphinx/writers/latex.py:175
msgid "Module Index"
msgstr "Indeks modułów"
-#: sphinx/environment.py:325 sphinx/themes/basic/defindex.html:16
+#: sphinx/environment.py:302
+#: sphinx/templates/defindex.html:16
msgid "Search Page"
msgstr "Wyszukiwanie"
-#: sphinx/roles.py:55 sphinx/directives/desc.py:747
+#: sphinx/roles.py:53
+#: sphinx/directives/desc.py:580
#, python-format
msgid "environment variable; %s"
msgstr "zmienna środowiskowa; %s"
-#: sphinx/roles.py:62
+#: sphinx/roles.py:60
#, python-format
msgid "Python Enhancement Proposals!PEP %s"
msgstr "Python Enhancement Proposals!PEP %s"
-#: sphinx/builders/changes.py:71
+#: sphinx/builders/changes.py:64
msgid "Builtins"
msgstr "Wbudowane"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:66
msgid "Module level"
msgstr "Poziom modułu"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:118
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d %Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:137
+#: sphinx/templates/defindex.html:21
msgid "General Index"
msgstr "Indeks ogólny"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:137
msgid "index"
msgstr "indeks"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
-#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
-#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
+#: sphinx/builders/html.py:139
+#: sphinx/builders/htmlhelp.py:182
+#: sphinx/builders/qthelp.py:131
+#: sphinx/templates/defindex.html:19
+#: sphinx/templates/modindex.html:2
+#: sphinx/templates/modindex.html:13
msgid "Global Module Index"
msgstr "Indeks modułów"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:139
msgid "modules"
msgstr "moduły"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:179
msgid "next"
msgstr "dalej"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:186
msgid "previous"
msgstr "wstecz"
-#: sphinx/builders/latex.py:162
+#: sphinx/builders/latex.py:155
+#: sphinx/builders/pdf.py:162
msgid " (in "
-msgstr ""
-
-#: sphinx/directives/desc.py:97
-msgid "Raises"
-msgstr "Wyrzuca"
-
-#: sphinx/directives/desc.py:101
-msgid "Variable"
-msgstr "Zmienna"
-
-#: sphinx/directives/desc.py:104
-msgid "Returns"
-msgstr "Zwraca"
-
-#: sphinx/directives/desc.py:113
-msgid "Return type"
-msgstr "Typ zwracany"
+msgstr " (w "
-#: sphinx/directives/desc.py:186
-#, fuzzy
-msgid "Parameter"
-msgstr "Parametry"
-
-#: sphinx/directives/desc.py:190
-msgid "Parameters"
-msgstr "Parametry"
-
-#: sphinx/directives/desc.py:418
+#: sphinx/directives/desc.py:25
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (funkcja wbudowana)"
-#: sphinx/directives/desc.py:419 sphinx/directives/desc.py:476
-#: sphinx/directives/desc.py:488
+#: sphinx/directives/desc.py:26
+#: sphinx/directives/desc.py:42
+#: sphinx/directives/desc.py:54
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (w module %s)"
-#: sphinx/directives/desc.py:422
+#: sphinx/directives/desc.py:29
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (zmienna wbudowana)"
-#: sphinx/directives/desc.py:423 sphinx/directives/desc.py:514
+#: sphinx/directives/desc.py:30
+#: sphinx/directives/desc.py:78
#, python-format
msgid "%s (in module %s)"
msgstr "%s (w module %s)"
-#: sphinx/directives/desc.py:439
-#, fuzzy, python-format
+#: sphinx/directives/desc.py:33
+#, python-format
msgid "%s (built-in class)"
-msgstr "%s (zmienna wbudowana)"
+msgstr "%s (klasa wbudowana)"
-#: sphinx/directives/desc.py:440
+#: sphinx/directives/desc.py:34
#, python-format
msgid "%s (class in %s)"
msgstr "%s (w klasie %s)"
-#: sphinx/directives/desc.py:480
+#: sphinx/directives/desc.py:46
#, python-format
msgid "%s() (%s.%s method)"
msgstr "%s() (%s.%s metoda)"
-#: sphinx/directives/desc.py:482
+#: sphinx/directives/desc.py:48
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metoda)"
-#: sphinx/directives/desc.py:492
+#: sphinx/directives/desc.py:58
#, python-format
msgid "%s() (%s.%s static method)"
msgstr "%s() (%s.%s statyczna metoda)"
-#: sphinx/directives/desc.py:495
+#: sphinx/directives/desc.py:60
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statyczna metoda)"
-#: sphinx/directives/desc.py:518
+#: sphinx/directives/desc.py:82
#, python-format
msgid "%s (%s.%s attribute)"
msgstr "%s (%s.%s atrybut)"
-#: sphinx/directives/desc.py:520
+#: sphinx/directives/desc.py:84
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s atrybut)"
-#: sphinx/directives/desc.py:609
+#: sphinx/directives/desc.py:86
#, python-format
msgid "%s (C function)"
msgstr "%s (funkcja C)"
-#: sphinx/directives/desc.py:611
+#: sphinx/directives/desc.py:88
#, python-format
msgid "%s (C member)"
msgstr "%s (pole C)"
-#: sphinx/directives/desc.py:613
+#: sphinx/directives/desc.py:90
#, python-format
msgid "%s (C macro)"
msgstr "%s (makro C)"
-#: sphinx/directives/desc.py:615
+#: sphinx/directives/desc.py:92
#, python-format
msgid "%s (C type)"
msgstr "%s (typ C)"
-#: sphinx/directives/desc.py:617
+#: sphinx/directives/desc.py:94
#, python-format
msgid "%s (C variable)"
msgstr "%s (zmienna C)"
-#: sphinx/directives/desc.py:665
-#, fuzzy, python-format
+#: sphinx/directives/desc.py:112
+msgid "Raises"
+msgstr "Wyrzuca"
+
+#: sphinx/directives/desc.py:116
+msgid "Variable"
+msgstr "Zmienna"
+
+#: sphinx/directives/desc.py:119
+msgid "Returns"
+msgstr "Zwraca"
+
+#: sphinx/directives/desc.py:128
+msgid "Return type"
+msgstr "Typ zwracany"
+
+#: sphinx/directives/desc.py:213
+msgid "Parameter"
+msgstr "Parametr"
+
+#: sphinx/directives/desc.py:217
+msgid "Parameters"
+msgstr "Parametry"
+
+#: sphinx/directives/desc.py:465
+#, python-format
msgid "%scommand line option; %s"
msgstr "%sopcja linii komend; %s"
-#: sphinx/directives/other.py:138
+#: sphinx/directives/other.py:101
msgid "Platforms: "
msgstr "Platformy: "
-#: sphinx/directives/other.py:144
+#: sphinx/directives/other.py:106
#, python-format
msgid "%s (module)"
msgstr "%s (moduł)"
-#: sphinx/directives/other.py:193
+#: sphinx/directives/other.py:146
msgid "Section author: "
msgstr "Autor rozdziału: "
-#: sphinx/directives/other.py:195
+#: sphinx/directives/other.py:148
msgid "Module author: "
msgstr "Autor modułu: "
-#: sphinx/directives/other.py:197
+#: sphinx/directives/other.py:150
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:317
+#: sphinx/directives/other.py:249
msgid "See also"
msgstr "Zobacz także"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:442
#, python-format
msgid " Bases: %s"
-msgstr ""
+msgstr " Klasy bazowe: %s"
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:566
+#: sphinx/ext/autodoc.py:583
#, python-format
msgid "alias of :class:`%s`"
-msgstr ""
+msgstr "alias klasy :class:`%s`"
-#: sphinx/ext/todo.py:41
+#: sphinx/ext/todo.py:31
msgid "Todo"
-msgstr ""
+msgstr "Do zrobienia"
-#: sphinx/ext/todo.py:99
+#: sphinx/ext/todo.py:75
#, python-format
msgid "(The original entry is located in %s, line %d and can be found "
-msgstr ""
+msgstr "(Oryginalny wpis znajduje się w pliku %s, w linii %d i może być odnaleziony "
-#: sphinx/ext/todo.py:105
+#: sphinx/ext/todo.py:81
msgid "here"
-msgstr ""
+msgstr "tutaj"
#: sphinx/locale/__init__.py:15
msgid "Attention"
@@ -336,158 +348,197 @@ msgstr "instrukcja"
msgid "built-in function"
msgstr "funkcja wbudowana"
-#: sphinx/themes/basic/defindex.html:2
+#: sphinx/static/doctools.js:139
+#: sphinx/writers/html.py:425
+msgid "Permalink to this headline"
+msgstr "Stały odnośnik do tego nagłówka"
+
+#: sphinx/static/doctools.js:145
+#: sphinx/writers/html.py:80
+msgid "Permalink to this definition"
+msgstr "Stały odnośnik do tej definicji"
+
+#: sphinx/static/doctools.js:174
+msgid "Hide Search Matches"
+msgstr "Ukryj wyniki wyszukiwania"
+
+#: sphinx/static/searchtools.js:274
+msgid "Searching"
+msgstr "Wyszukiwanie"
+
+#: sphinx/static/searchtools.js:279
+msgid "Preparing search..."
+msgstr "Przygotowanie wyszukiwania..."
+
+#: sphinx/static/searchtools.js:338
+msgid "module, in "
+msgstr "moduł, w "
+
+#: sphinx/static/searchtools.js:347
+msgid ", in "
+msgstr ", w "
+
+#: sphinx/static/searchtools.js:453
+#: sphinx/templates/search.html:25
+msgid "Search Results"
+msgstr "Wyniki wyszukiwania"
+
+#: sphinx/static/searchtools.js:455
+msgid "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
+msgstr "Nie znaleziono żadnych pasujących dokumentów. Upewnij się, że wszystkie słowa są poprawnie wpisane i że wybrałeś wystarczającąliczbę kategorii."
+
+#: sphinx/static/searchtools.js:457
+#, python-format
+msgid "Search finished, found %s page(s) matching the search query."
+msgstr "Przeszukiwanie zakończone, znaleziono %s pasujących stron."
+
+#: sphinx/templates/defindex.html:2
msgid "Overview"
msgstr "Przegląd"
-#: sphinx/themes/basic/defindex.html:11
+#: sphinx/templates/defindex.html:11
msgid "Indices and tables:"
msgstr "Indeksy i tablice:"
-#: sphinx/themes/basic/defindex.html:14
+#: sphinx/templates/defindex.html:14
msgid "Complete Table of Contents"
msgstr "Kompletny spis treści"
-#: sphinx/themes/basic/defindex.html:15
+#: sphinx/templates/defindex.html:15
msgid "lists all sections and subsections"
msgstr "wymień wszystkie rozdziały i podrozdziały"
-#: sphinx/themes/basic/defindex.html:17
+#: sphinx/templates/defindex.html:17
msgid "search this documentation"
msgstr "wyszukaj w dokumentacji"
-#: sphinx/themes/basic/defindex.html:20
+#: sphinx/templates/defindex.html:20
msgid "quick access to all modules"
msgstr "szybki dostęp do wszystkich modułów"
-#: sphinx/themes/basic/defindex.html:22
+#: sphinx/templates/defindex.html:22
msgid "all functions, classes, terms"
msgstr "wszystkie funkcje, klasy, terminy"
-#: sphinx/themes/basic/genindex-single.html:5
+#: sphinx/templates/genindex-single.html:5
#, python-format
msgid "Index &ndash; %(key)s"
msgstr "Indeks &ndash; %(key)s"
-#: sphinx/themes/basic/genindex-single.html:44
-#: sphinx/themes/basic/genindex-split.html:14
-#: sphinx/themes/basic/genindex-split.html:27
-#: sphinx/themes/basic/genindex.html:54
+#: sphinx/templates/genindex-single.html:44
+#: sphinx/templates/genindex-split.html:14
+#: sphinx/templates/genindex-split.html:27
+#: sphinx/templates/genindex.html:54
msgid "Full index on one page"
msgstr "Cały indeks na jednej stronie"
-#: sphinx/themes/basic/genindex-split.html:7
+#: sphinx/templates/genindex-split.html:7
msgid "Index pages by letter"
msgstr "Strony indeksu alfabetycznie"
-#: sphinx/themes/basic/genindex-split.html:15
+#: sphinx/templates/genindex-split.html:15
msgid "can be huge"
msgstr "może być ogromny"
-#: sphinx/themes/basic/layout.html:10
+#: sphinx/templates/layout.html:9
msgid "Navigation"
msgstr "Nawigacja"
-#: sphinx/themes/basic/layout.html:42
+#: sphinx/templates/layout.html:40
msgid "Table Of Contents"
msgstr "Spis treści"
-#: sphinx/themes/basic/layout.html:48
+#: sphinx/templates/layout.html:46
msgid "Previous topic"
msgstr "Poprzedni temat"
-#: sphinx/themes/basic/layout.html:50
+#: sphinx/templates/layout.html:48
msgid "previous chapter"
msgstr "poprzedni rozdział"
-#: sphinx/themes/basic/layout.html:53
+#: sphinx/templates/layout.html:51
msgid "Next topic"
msgstr "Następny temat"
-#: sphinx/themes/basic/layout.html:55
+#: sphinx/templates/layout.html:53
msgid "next chapter"
msgstr "następny rozdział"
-#: sphinx/themes/basic/layout.html:60
+#: sphinx/templates/layout.html:58
msgid "This Page"
msgstr "Ta strona"
-#: sphinx/themes/basic/layout.html:63
+#: sphinx/templates/layout.html:61
msgid "Show Source"
msgstr "Pokaż źródło"
-#: sphinx/themes/basic/layout.html:73
+#: sphinx/templates/layout.html:71
msgid "Quick search"
msgstr "Szybkie wyszukiwanie"
-#: sphinx/themes/basic/layout.html:76
+#: sphinx/templates/layout.html:74
msgid "Go"
msgstr "Szukaj"
-#: sphinx/themes/basic/layout.html:81
-#, fuzzy
+#: sphinx/templates/layout.html:78
msgid "Enter search terms or a module, class or function name."
-msgstr "Wprowadź nazwę modułu, klasy lub funkcji."
+msgstr "Wprowadź szukany termin lub nazwę modułu, klasy lub funkcji."
-#: sphinx/themes/basic/layout.html:119
+#: sphinx/templates/layout.html:115
#, python-format
msgid "Search within %(docstitle)s"
msgstr "Szukaj pośród %(docstitle)s"
-#: sphinx/themes/basic/layout.html:128
+#: sphinx/templates/layout.html:124
msgid "About these documents"
msgstr "O tych dokumentach"
-#: sphinx/themes/basic/layout.html:134 sphinx/themes/basic/search.html:2
-#: sphinx/themes/basic/search.html:5
+#: sphinx/templates/layout.html:127
+#: sphinx/templates/search.html:2
+#: sphinx/templates/search.html:5
msgid "Search"
msgstr "Szukaj"
-#: sphinx/themes/basic/layout.html:137
+#: sphinx/templates/layout.html:129
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/templates/layout.html:174
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/templates/layout.html:176
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/templates/layout.html:179
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Ostatnia modyfikacja %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/templates/layout.html:182
#, python-format
-msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
-"%(sphinx_version)s."
-msgstr ""
-"Utworzone przy pomocy <a href=\"http://sphinx.pocoo.org/\">Sphinx</a>'a "
-"%(sphinx_version)s."
+msgid "Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s."
+msgstr "Utworzone przy pomocy <a href=\"http://sphinx.pocoo.org/\">Sphinx</a>'a %(sphinx_version)s."
-#: sphinx/themes/basic/modindex.html:36
+#: sphinx/templates/modindex.html:36
msgid "Deprecated"
msgstr "Niezalecane"
-#: sphinx/themes/basic/opensearch.xml:4
+#: sphinx/templates/opensearch.xml:4
#, python-format
msgid "Search %(docstitle)s"
msgstr "Przeszukaj %(docstitle)s"
-#: sphinx/themes/basic/search.html:9
+#: sphinx/templates/search.html:9
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
+msgstr "Aby umożliwić wuszukiwanie, proszę włączyć JavaScript."
-#: sphinx/themes/basic/search.html:14
-#, fuzzy
+#: sphinx/templates/search.html:14
msgid ""
"From here you can search these documents. Enter your search\n"
" words into the box below and click \"search\". Note that the search\n"
@@ -496,113 +547,55 @@ msgid ""
msgstr ""
"Stąd możesz przeszukać dokumentację. Wprowadź szukane\n"
" słowa w poniższym okienku i kliknij \"Szukaj\". Zwróć uwagę, że\n"
-" funkcja szukająca będzie automatycznie szukała wszystkich słów. "
-"Strony nie zawierające wszystkich słów nie znajdą się na wynikowej "
-"liście."
+" funkcja szukająca będzie automatycznie szukała wszystkich słów. Strony\n"
+" nie zawierające wszystkich wpisanych słów nie znajdą się na wynikowej liście."
-#: sphinx/themes/basic/search.html:21
+#: sphinx/templates/search.html:21
msgid "search"
msgstr "Szukaj"
-#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
-msgid "Search Results"
-msgstr "Wyniki wyszukiwania"
-
-#: sphinx/themes/basic/search.html:27
+#: sphinx/templates/search.html:27
msgid "Your search did not match any results."
msgstr "Nie znaleziono żadnych pasujących stron."
-#: sphinx/themes/basic/changes/frameset.html:5
-#: sphinx/themes/basic/changes/versionchanges.html:12
+#: sphinx/templates/changes/frameset.html:5
+#: sphinx/templates/changes/versionchanges.html:12
#, python-format
msgid "Changes in Version %(version)s &mdash; %(docstitle)s"
msgstr "Zmiany w wesji %(version)s &mdash; %(docstitle)s"
-#: sphinx/themes/basic/changes/rstsource.html:5
+#: sphinx/templates/changes/rstsource.html:5
#, python-format
msgid "%(filename)s &mdash; %(docstitle)s"
msgstr "%(filename)s &mdash; %(docstitle)s"
-#: sphinx/themes/basic/changes/versionchanges.html:17
+#: sphinx/templates/changes/versionchanges.html:17
#, python-format
msgid "Automatically generated list of changes in version %(version)s"
msgstr "Automatycznie wygenerowana lista zmian w wersji %(version)s"
-#: sphinx/themes/basic/changes/versionchanges.html:18
+#: sphinx/templates/changes/versionchanges.html:18
msgid "Library changes"
msgstr "Zmiany w bibliotekach"
-#: sphinx/themes/basic/changes/versionchanges.html:23
+#: sphinx/templates/changes/versionchanges.html:23
msgid "C API changes"
msgstr "Zmiany w C API"
-#: sphinx/themes/basic/changes/versionchanges.html:25
+#: sphinx/templates/changes/versionchanges.html:25
msgid "Other changes"
msgstr "Inne zmiany"
-#: sphinx/themes/basic/static/doctools.js:139 sphinx/writers/html.py:473
-#: sphinx/writers/html.py:478
-msgid "Permalink to this headline"
-msgstr "Stały odnośnik do tego nagłówka"
-
-#: sphinx/themes/basic/static/doctools.js:145 sphinx/writers/html.py:80
-msgid "Permalink to this definition"
-msgstr "Stały odnośnik do tej definicji"
-
-#: sphinx/themes/basic/static/doctools.js:174
-msgid "Hide Search Matches"
-msgstr "Ukryj wyniki wyszukiwania"
-
-#: sphinx/themes/basic/static/searchtools.js:274
-msgid "Searching"
-msgstr "Wyszukiwanie"
-
-#: sphinx/themes/basic/static/searchtools.js:279
-msgid "Preparing search..."
-msgstr "Przygotowanie wyszukiwania..."
-
-#: sphinx/themes/basic/static/searchtools.js:338
-#, fuzzy
-msgid "module, in "
-msgstr "moduł"
-
-#: sphinx/themes/basic/static/searchtools.js:347
-msgid ", in "
-msgstr ""
-
-#: sphinx/themes/basic/static/searchtools.js:455
-msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-"Nie znaleziono żadnych pasujących dokumentów. Upewnij się, że wszystkie "
-"słowa są poprawnie wpisane i że wybrałeś wystarczającąliczbę kategorii."
-
-#: sphinx/themes/basic/static/searchtools.js:457
-#, python-format
-msgid "Search finished, found %s page(s) matching the search query."
-msgstr "Przeszukiwanie zakończone, znaleziono %s pasujących stron."
-
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:173
msgid "Release"
msgstr "Wydanie"
-#: sphinx/writers/latex.py:637
-msgid "continued from previous page"
-msgstr ""
-
-#: sphinx/writers/latex.py:641
-#, fuzzy
-msgid "Continued on next page"
-msgstr "Cały indeks na jednej stronie"
-
#: sphinx/writers/text.py:166
#, python-format
msgid "Platform: %s"
msgstr "Platforma: %s"
-#: sphinx/writers/text.py:428
+#: sphinx/writers/text.py:427
msgid "[image]"
msgstr "[obrazek]"
diff --git a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
index 8f5b3989..9d5b7cd4 100644
--- a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: roger.demetrescu@gmail.com\n"
"POT-Creation-Date: 2008-11-09 19:46+0100\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Roger Demetrescu <roger.demetrescu@gmail.com>\n"
"Language-Team: pt_BR <roger.demetrescu@gmail.com>\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d/%m/%Y"
@@ -27,11 +27,11 @@ msgstr "%d/%m/%Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Índice"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Índice do Módulo"
@@ -57,34 +57,34 @@ msgstr "Internos"
msgid "Module level"
msgstr "Módulo"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d/%m/%Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Índice Geral"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "índice"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Índice Global de Módulos"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "módulos"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "próximo"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "anterior"
@@ -233,12 +233,12 @@ msgstr "Autor: "
msgid "See also"
msgstr "Veja também"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -450,22 +450,22 @@ msgstr "Pesquisar"
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Última atualização em %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -509,7 +509,7 @@ msgid "search"
msgstr "pesquisar"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Resultados da Pesquisa"
@@ -566,15 +566,15 @@ msgstr "Pesquisando"
msgid "Preparing search..."
msgstr "Preparando pesquisa..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr "módulo, em "
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", em "
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -583,22 +583,22 @@ msgstr ""
" todas as palavras foram digitadas corretamente e de que você tenha "
"selecionado o mínimo de categorias."
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr ""
"Pesquisa finalizada, foram encontrada(s) %s página(s) que conferem com o "
"critério de pesquisa."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Versão"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Índice completo em uma página"
diff --git a/sphinx/locale/ru/LC_MESSAGES/sphinx.po b/sphinx/locale/ru/LC_MESSAGES/sphinx.po
index a1e2e3fc..72c9629e 100644
--- a/sphinx/locale/ru/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ru/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.6b1\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2009-01-24 18:39+0000\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+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 && "
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d %B %Y"
@@ -27,11 +27,11 @@ msgstr "%d %B %Y"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Алфавитный указатель"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Состав модуля"
@@ -57,34 +57,34 @@ msgstr "Встроенные функции"
msgid "Module level"
msgstr "Модуль"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b %Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Словарь-указатель"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "словарь"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Алфавитный указатель модулей"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "модули"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "следующий"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "предыдущий"
@@ -232,12 +232,12 @@ msgstr "Автор: "
msgid "See also"
msgstr "См.также"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr " Базовые классы: %s"
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr "псевдоним класса :class:`%s`"
@@ -448,22 +448,22 @@ msgstr "Поиск"
msgid "Copyright"
msgstr "Copyright"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Дата последнего обновления: %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -505,7 +505,7 @@ msgid "search"
msgstr "искать"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Результаты поиска"
@@ -562,15 +562,15 @@ msgstr "Поиск"
msgid "Preparing search..."
msgstr "Подготовка к поиску..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr ", модуль в "
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", в "
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -578,20 +578,20 @@ msgstr ""
"Нет документов, соответствующих вашему запросу. Проверьте, правильно ли "
"выбраны категории и нет ли опечаток в запросе."
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Поиск окончен, найдено страниц: %s."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Выпуск"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Полный алфавитный указатель на одной странице"
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.js b/sphinx/locale/sl/LC_MESSAGES/sphinx.js
index e00eb23b..a0936a57 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "sl", "plural_expr": "0", "messages": {"module, in ": "modul, v ", "Preparing search...": "Pripravljam iskanje...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Za va\u0161e iskanje ni rezultatov. Prosimo preglejte ali so vse besede pravilno \u010drkovane in ali ste izbrali dovolj kategorij.", "Search finished, found %s page(s) matching the search query.": "Iskanje kon\u010dano, najdeno %s strani, ki ustrezajo iskalnemu nizu.", ", in ": ", v ", "Permalink to this headline": "Povezava na naslov", "Searching": "I\u0161\u010dem", "Permalink to this definition": "Povezava na to definicijo", "Hide Search Matches": "Skrij Resultate Iskanja", "Search Results": "Rezultati Iskanja"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "sl", "plural_expr": "0", "messages": {"Search Results": "Rezultati Iskanja", "Preparing search...": "Pripravljam iskanje...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Za va\u0161e iskanje ni rezultatov. Prosimo preglejte ali so vse besede pravilno \u010drkovane in ali ste izbrali dovolj kategorij.", "Search finished, found %s page(s) matching the search query.": "Iskanje kon\u010dano, najdeno %s strani, ki ustrezajo iskalnemu nizu.", ", in ": ", v ", "Permalink to this headline": "Povezava na naslov", "Searching": "I\u0161\u010dem", "Permalink to this definition": "Povezava na to definicijo", "module, in ": "modul, v ", "Hide Search Matches": "Skrij resultate iskanja"}}); \ No newline at end of file
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.mo b/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
index e7d1e830..c8e1e0a4 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.po b/sphinx/locale/sl/LC_MESSAGES/sphinx.po
index d33cec31..5b6a9cfd 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.po
@@ -1,11 +1,10 @@
-
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-09-11 23:58+0200\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
-"Last-Translator: Rok Garbas <rok.garbas@gmail.com>\n"
+"PO-Revision-Date: 2009-05-29 19:16+0100\n"
+"Last-Translator: Domen Kožar <domen@dev.si>\n"
"Language-Team: Rok Garbas <rok.garbas@gmail.com>\n"
"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
@@ -13,32 +12,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104
+#: sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%d %B, %Y"
-#: sphinx/environment.py:323 sphinx/themes/basic/genindex-single.html:2
+#: sphinx/environment.py:323
+#: sphinx/themes/basic/genindex-single.html:2
#: sphinx/themes/basic/genindex-split.html:2
#: sphinx/themes/basic/genindex-split.html:5
-#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
-#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/themes/basic/genindex.html:2
+#: sphinx/themes/basic/genindex.html:5
+#: sphinx/themes/basic/genindex.html:48
+#: sphinx/themes/basic/layout.html:131
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Abecedni seznam"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324
+#: sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Seznam modulov"
-#: sphinx/environment.py:325 sphinx/themes/basic/defindex.html:16
+#: sphinx/environment.py:325
+#: sphinx/themes/basic/defindex.html:16
msgid "Search Page"
-msgstr "Iskalna stran"
+msgstr "Iskalnik"
-#: sphinx/roles.py:55 sphinx/directives/desc.py:747
+#: sphinx/roles.py:55
+#: sphinx/directives/desc.py:747
#, python-format
msgid "environment variable; %s"
-msgstr "globalna spremenljivka; %s"
+msgstr "okoljska spremenljivka; %s"
#: sphinx/roles.py:62
#, python-format
@@ -53,44 +59,48 @@ msgstr "Vgrajeni deli"
msgid "Module level"
msgstr "Nivo modula"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b, %Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238
+#: sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Splošni abecedni seznam"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "abecedni seznam"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
-#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
-#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
+#: sphinx/builders/html.py:240
+#: sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/qthelp.py:132
+#: sphinx/themes/basic/defindex.html:19
+#: sphinx/themes/basic/modindex.html:2
+#: sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
-msgstr "Splošen Seznam Modulov"
+msgstr "Splošen seznam modulov"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "Moduli"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "naprej"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "nazaj"
#: sphinx/builders/latex.py:162
msgid " (in "
-msgstr "(v "
+msgstr " (v "
#: sphinx/directives/desc.py:97
msgid "Raises"
-msgstr "Javi"
+msgstr "Sproži izjemo"
#: sphinx/directives/desc.py:101
msgid "Variable"
@@ -105,9 +115,8 @@ msgid "Return type"
msgstr "Vrne tip"
#: sphinx/directives/desc.py:186
-#, fuzzy
msgid "Parameter"
-msgstr "Parametri"
+msgstr "Parameter"
#: sphinx/directives/desc.py:190
msgid "Parameters"
@@ -118,7 +127,8 @@ msgstr "Parametri"
msgid "%s() (built-in function)"
msgstr "%s() (vgrajene funkcije)"
-#: sphinx/directives/desc.py:419 sphinx/directives/desc.py:476
+#: sphinx/directives/desc.py:419
+#: sphinx/directives/desc.py:476
#: sphinx/directives/desc.py:488
#, python-format
msgid "%s() (in module %s)"
@@ -129,7 +139,8 @@ msgstr "%s() (v modulu %s)"
msgid "%s (built-in variable)"
msgstr "%s (vgrajene spremenljivke)"
-#: sphinx/directives/desc.py:423 sphinx/directives/desc.py:514
+#: sphinx/directives/desc.py:423
+#: sphinx/directives/desc.py:514
#, python-format
msgid "%s (in module %s)"
msgstr "%s (v modulu %s)"
@@ -202,11 +213,11 @@ msgstr "%s (C spremenljivka)"
#: sphinx/directives/desc.py:665
#, python-format
msgid "%scommand line option; %s"
-msgstr "%sopcija komandne linije; %s"
+msgstr "%scommand line parameter; %s"
#: sphinx/directives/other.py:138
msgid "Platforms: "
-msgstr "Platforma:"
+msgstr "Platforme:"
#: sphinx/directives/other.py:144
#, python-format
@@ -227,26 +238,26 @@ msgstr "Avtor:"
#: sphinx/directives/other.py:317
msgid "See also"
-msgstr "Poglej tudi"
+msgstr "Poglej Tudi"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
-msgstr ""
+msgstr " Osnove: %s"
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
-msgstr ""
+msgstr "vzdevek za :class:`%s`"
#: sphinx/ext/todo.py:41
msgid "Todo"
-msgstr "Naredi"
+msgstr "Todo"
#: sphinx/ext/todo.py:99
#, python-format
msgid "(The original entry is located in %s, line %d and can be found "
-msgstr "(Originalen vnos se nahajana v %s, vrstica %d in jo je moč poiskati "
+msgstr "(Originalen vnos se nahaja v %s, v vrstici %d, in ga je moč poiskati "
#: sphinx/ext/todo.py:105
msgid "here"
@@ -262,7 +273,7 @@ msgstr "Previdno"
#: sphinx/locale/__init__.py:17
msgid "Danger"
-msgstr "Navarno"
+msgstr "Nevarno"
#: sphinx/locale/__init__.py:18
msgid "Error"
@@ -300,7 +311,7 @@ msgstr "Novo v verziji %s"
#: sphinx/locale/__init__.py:29
#, python-format
msgid "Changed in version %s"
-msgstr "Spemenjeno v verziji %s"
+msgstr "Spremenjeno v verziji %s"
#: sphinx/locale/__init__.py:30
#, python-format
@@ -313,7 +324,7 @@ msgstr "modul"
#: sphinx/locale/__init__.py:35
msgid "keyword"
-msgstr "kllučna beseda"
+msgstr "ključna beseda"
#: sphinx/locale/__init__.py:36
msgid "operator"
@@ -341,7 +352,7 @@ msgstr "Pregled"
#: sphinx/themes/basic/defindex.html:11
msgid "Indices and tables:"
-msgstr "Kazalo in tabele:"
+msgstr "Kazalo in seznami:"
#: sphinx/themes/basic/defindex.html:14
msgid "Complete Table of Contents"
@@ -353,7 +364,7 @@ msgstr "prikazi vse sekcije in podsekcije"
#: sphinx/themes/basic/defindex.html:17
msgid "search this documentation"
-msgstr "isči po dokumentaciji"
+msgstr "išči po dokumentaciji"
#: sphinx/themes/basic/defindex.html:20
msgid "quick access to all modules"
@@ -361,7 +372,7 @@ msgstr "hiter dostop do vseh modulov"
#: sphinx/themes/basic/defindex.html:22
msgid "all functions, classes, terms"
-msgstr "vse funkcije, rezredi, termini"
+msgstr "vse funkcije, razredi, izrazi"
#: sphinx/themes/basic/genindex-single.html:5
#, python-format
@@ -409,7 +420,7 @@ msgstr "naslednje poglavje"
#: sphinx/themes/basic/layout.html:60
msgid "This Page"
-msgstr "Ta stran"
+msgstr "Trenutna stran"
#: sphinx/themes/basic/layout.html:63
msgid "Show Source"
@@ -424,9 +435,8 @@ msgid "Go"
msgstr "Potrdi"
#: sphinx/themes/basic/layout.html:81
-#, fuzzy
msgid "Enter search terms or a module, class or function name."
-msgstr "Vnesi ime mudla, razreda ali funkcije."
+msgstr "Vnesi ime modula, razreda ali funkcije."
#: sphinx/themes/basic/layout.html:119
#, python-format
@@ -435,9 +445,10 @@ msgstr "Išči med %(docstitle)s"
#: sphinx/themes/basic/layout.html:128
msgid "About these documents"
-msgstr "O teh dokumentih"
+msgstr "O dokumentih"
-#: sphinx/themes/basic/layout.html:134 sphinx/themes/basic/search.html:2
+#: sphinx/themes/basic/layout.html:134
+#: sphinx/themes/basic/search.html:2
#: sphinx/themes/basic/search.html:5
msgid "Search"
msgstr "Išči"
@@ -446,29 +457,25 @@ msgstr "Išči"
msgid "Copyright"
msgstr "Vse pravice pridržane"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Vse pravice pridržane</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Vse pravice pridržane %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
-msgstr "Zadnjič posodobljeno na %(last_updated)s."
+msgstr "Zadnjič posodobljeno %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
-msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
-"%(sphinx_version)s."
-msgstr ""
-"Narejeno s <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgid "Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s."
+msgstr "Narejeno s <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/modindex.html:36
msgid "Deprecated"
@@ -484,16 +491,17 @@ msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
+"Prosimo omogočite JavaScript\n"
+" za delovanje iskalnika."
#: sphinx/themes/basic/search.html:14
-#, fuzzy
msgid ""
"From here you can search these documents. Enter your search\n"
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
msgstr ""
-"O tukaj lahko isčete dokumente. Vnesite iskalni\n"
+"Tukaj lahko iščete dokumente. Vnesite iskalni\n"
" niz v polje spodaj in pritisnite \"išči\". Sproženo iskanje\n"
" bo iskalo po vseh besedah v iskalnem nizu. Strani, ki ne\n"
" vsebujejo vseh besed ne bodo prikazane na seznamu rezultatov."
@@ -503,7 +511,7 @@ msgid "search"
msgstr "išči"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Rezultati Iskanja"
@@ -539,18 +547,20 @@ msgstr "C API spremembe"
msgid "Other changes"
msgstr "Ostale spremembe"
-#: sphinx/themes/basic/static/doctools.js:139 sphinx/writers/html.py:473
+#: sphinx/themes/basic/static/doctools.js:139
+#: sphinx/writers/html.py:473
#: sphinx/writers/html.py:478
msgid "Permalink to this headline"
msgstr "Povezava na naslov"
-#: sphinx/themes/basic/static/doctools.js:145 sphinx/writers/html.py:80
+#: sphinx/themes/basic/static/doctools.js:145
+#: sphinx/writers/html.py:80
msgid "Permalink to this definition"
msgstr "Povezava na to definicijo"
#: sphinx/themes/basic/static/doctools.js:174
msgid "Hide Search Matches"
-msgstr "Skrij Resultate Iskanja"
+msgstr "Skrij resultate iskanja"
#: sphinx/themes/basic/static/searchtools.js:274
msgid "Searching"
@@ -560,39 +570,34 @@ msgstr "Iščem"
msgid "Preparing search..."
msgstr "Pripravljam iskanje..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr "modul, v "
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", v "
-#: sphinx/themes/basic/static/searchtools.js:455
-msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-"Za vaše iskanje ni rezultatov. Prosimo preglejte ali so vse besede "
-"pravilno črkovane in ali ste izbrali dovolj kategorij."
+#: sphinx/themes/basic/static/searchtools.js:464
+msgid "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
+msgstr "Za vaše iskanje ni rezultatov. Prosimo preglejte ali so vse besede pravilno črkovane in ali ste izbrali dovolj kategorij."
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Iskanje končano, najdeno %s strani, ki ustrezajo iskalnemu nizu."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Izdaja"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
-msgstr ""
+msgstr "nadaljevanje prejšnje strani"
-#: sphinx/writers/latex.py:641
-#, fuzzy
+#: sphinx/writers/latex.py:643
msgid "Continued on next page"
-msgstr "Poln indeks na eni strani"
+msgstr "Nadaljevanje na naslednji strani"
#: sphinx/writers/text.py:166
#, python-format
diff --git a/sphinx/locale/sphinx.pot b/sphinx/locale/sphinx.pot
index 68a03a50..9ac89224 100644
--- a/sphinx/locale/sphinx.pot
+++ b/sphinx/locale/sphinx.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.6.1+\n"
+"Project-Id-Version: Sphinx 1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2009-05-22 18:18+0200\n"
+"POT-Creation-Date: 2009-05-22 18:51+0200\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"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr ""
@@ -27,11 +27,11 @@ msgstr ""
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr ""
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr ""
@@ -57,34 +57,34 @@ msgstr ""
msgid "Module level"
msgstr ""
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr ""
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr ""
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr ""
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr ""
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr ""
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr ""
@@ -232,12 +232,12 @@ msgstr ""
msgid "See also"
msgstr ""
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -448,22 +448,22 @@ msgstr ""
msgid "Copyright"
msgstr ""
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -498,7 +498,7 @@ msgid "search"
msgstr ""
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr ""
@@ -555,34 +555,34 @@ msgstr ""
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr ""
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr ""
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
msgid "Continued on next page"
msgstr ""
diff --git a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
index 38f838ca..2e8861ba 100644
--- a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.6\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-12-28 23:40+0100\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Petro Sasnyk <petro@sasnyk.name>\n"
"Language-Team: uk_UA <LL@li.org>\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr ""
@@ -28,11 +28,11 @@ msgstr ""
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "Індекс"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "Індекс модулів"
@@ -58,34 +58,34 @@ msgstr "Вбудовані елементи"
msgid "Module level"
msgstr "Рівень модуля"
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "Загальний індекс"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "індекс"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr "Загальний індекс модулів"
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "модулі"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "наступний"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "попередній"
@@ -233,12 +233,12 @@ msgstr "Автор: "
msgid "See also"
msgstr "Дивись також"
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr " Базовий: %s"
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr "синонім :class:`%s`"
@@ -449,22 +449,22 @@ msgstr "Пошук"
msgid "Copyright"
msgstr "Авторські права"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr "&copy; Copyright %(copyright)s."
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "Востаннє оновлено %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -508,7 +508,7 @@ msgid "search"
msgstr "пошук"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "Результати пошуку"
@@ -565,15 +565,15 @@ msgstr "Шукаю"
msgid "Preparing search..."
msgstr "Підготовка до пошуку..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr "модуль, в "
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ", в "
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
@@ -581,20 +581,20 @@ msgstr ""
"Ваш пошук не виявив жодного співпадіння. Будь-ласка переконайтеся що всі "
"слова набрані правильно і ви обрали достатньо категорій."
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr "Пошук закінчено, знайдено %s сторінок які співпали з пошуковим запитом."
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "Реліз"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
#, fuzzy
msgid "Continued on next page"
msgstr "Повний індекс на одній сторінці"
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js
new file mode 100644
index 00000000..911a8f26
--- /dev/null
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js
@@ -0,0 +1 @@
+Documentation.addTranslations({"locale": "zh_CN", "plural_expr": "0", "messages": {"module, in ": "\u6a21\u5757\uff0c\u4f4d\u4e8e", "Preparing search...": "\u51c6\u5907\u641c\u7d22...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u4f60\u7684\u641c\u7d22\u6ca1\u6709\u5339\u914d\u5230\u4efb\u4f55\u6587\u6863\u3002\u8bf7\u786e\u8ba4\u4f60\u6240\u641c\u7d22\u7684\u5173\u952e\u5b57.", "Search finished, found %s page(s) matching the search query.": "\u641c\u7d22\u5b8c\u6210\uff0c \u627e\u5230\u4e86 %s \u9875\u5339\u914d\u6240\u641c\u7d22\u7684\u5173\u952e\u5b57", ", in ": ", \u4f4d\u4e8e", "Permalink to this headline": "\u6c38\u4e45\u94fe\u63a5\u81f3\u6807\u9898", "Searching": "\u641c\u7d22\u4e2d", "Permalink to this definition": "\u6c38\u4e45\u94fe\u63a5\u81f3\u76ee\u6807", "Hide Search Matches": "\u9690\u85cf\u641c\u7d22\u7ed3\u679c", "Search Results": "\u641c\u7d22\u7ed3\u679c"}}); \ No newline at end of file
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
new file mode 100644
index 00000000..8d8fbefa
--- /dev/null
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..39ec72d2
--- /dev/null
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
@@ -0,0 +1,620 @@
+# Chinese (Simplified Chinese) translations for Sphinx.
+# Copyright (C) 2009 Tower Joo
+# This file is distributed under the same license as the Sphinx project.
+# Tower Joo<zhutao.iscas@gmail.com>, 2009.
+# My homepage is at http://sites.google.com/site/towerjooeng
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Sphinx 0.6\n"
+"Report-Msgid-Bugs-To: zhutao.iscas@gmail.com\n"
+"POT-Creation-Date: 2009-03-09 19:46+0120\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
+"Last-Translator: Tower Joo<zhutao.iscas@gmail.com>\n"
+"Language-Team: cn <LL@li.org>\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.4\n"
+
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
+#, python-format
+msgid "%B %d, %Y"
+msgstr "%Y 年 %m 月 %d 日"
+
+#: sphinx/environment.py:323 sphinx/themes/basic/genindex-single.html:2
+#: sphinx/themes/basic/genindex-split.html:2
+#: sphinx/themes/basic/genindex-split.html:5
+#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
+#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
+#: sphinx/writers/latex.py:190
+msgid "Index"
+msgstr "索引"
+
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
+msgid "Module Index"
+msgstr "模块索引"
+
+#: sphinx/environment.py:325 sphinx/themes/basic/defindex.html:16
+msgid "Search Page"
+msgstr "搜索页面"
+
+#: sphinx/roles.py:55 sphinx/directives/desc.py:747
+#, python-format
+msgid "environment variable; %s"
+msgstr "环境变量; %s"
+
+#: sphinx/roles.py:62
+#, python-format
+msgid "Python Enhancement Proposals!PEP %s"
+msgstr "Python 建议文件!PEP %s"
+
+#: sphinx/builders/changes.py:71
+msgid "Builtins"
+msgstr "内置"
+
+#: sphinx/builders/changes.py:73
+msgid "Module level"
+msgstr "模块级别"
+
+#: sphinx/builders/html.py:219
+#, python-format
+msgid "%b %d, %Y"
+msgstr "%Y 年 %m 月 %d 日"
+
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
+msgid "General Index"
+msgstr "总目录"
+
+#: sphinx/builders/html.py:238
+msgid "index"
+msgstr "索引"
+
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
+#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
+msgid "Global Module Index"
+msgstr "全局模块索引"
+
+#: sphinx/builders/html.py:241
+msgid "modules"
+msgstr "模块"
+
+#: sphinx/builders/html.py:296
+msgid "next"
+msgstr "下一页"
+
+#: sphinx/builders/html.py:305
+msgid "previous"
+msgstr "上一页"
+
+#: sphinx/builders/latex.py:162
+msgid " (in "
+msgstr ""
+
+#: sphinx/directives/desc.py:97
+msgid "Raises"
+msgstr "引发"
+
+#: sphinx/directives/desc.py:101
+msgid "Variable"
+msgstr "变量"
+
+#: sphinx/directives/desc.py:104
+msgid "Returns"
+msgstr "返回"
+
+#: sphinx/directives/desc.py:113
+msgid "Return type"
+msgstr "返回类型"
+
+#: sphinx/directives/desc.py:186
+#, fuzzy
+msgid "Parameter"
+msgstr "参数"
+
+#: sphinx/directives/desc.py:190
+msgid "Parameters"
+msgstr "参数"
+
+#: sphinx/directives/desc.py:418
+#, python-format
+msgid "%s() (built-in function)"
+msgstr "%s() (內置函数)"
+
+#: sphinx/directives/desc.py:419 sphinx/directives/desc.py:476
+#: sphinx/directives/desc.py:488
+#, python-format
+msgid "%s() (in module %s)"
+msgstr "%s() (在 %s 模块中)"
+
+#: sphinx/directives/desc.py:422
+#, python-format
+msgid "%s (built-in variable)"
+msgstr "%s (內置变量)"
+
+#: sphinx/directives/desc.py:423 sphinx/directives/desc.py:514
+#, python-format
+msgid "%s (in module %s)"
+msgstr "%s() (在 %s 模块中)"
+
+#: sphinx/directives/desc.py:439
+#, python-format
+msgid "%s (built-in class)"
+msgstr "%s (內置类)"
+
+#: sphinx/directives/desc.py:440
+#, python-format
+msgid "%s (class in %s)"
+msgstr ""
+
+#: sphinx/directives/desc.py:480
+#, python-format
+msgid "%s() (%s.%s method)"
+msgstr "%s() (%s.%s 方法)"
+
+#: sphinx/directives/desc.py:482
+#, python-format
+msgid "%s() (%s method)"
+msgstr "%s() (%s 方法)"
+
+#: sphinx/directives/desc.py:492
+#, python-format
+msgid "%s() (%s.%s static method)"
+msgstr "%s() (%s.%s 静态方法)"
+
+#: sphinx/directives/desc.py:495
+#, python-format
+msgid "%s() (%s static method)"
+msgstr "%s() (%s 静态方法)"
+
+#: sphinx/directives/desc.py:518
+#, python-format
+msgid "%s (%s.%s attribute)"
+msgstr "%s (%s.%s 属性)"
+
+#: sphinx/directives/desc.py:520
+#, python-format
+msgid "%s (%s attribute)"
+msgstr "%s (%s 属性)"
+
+#: sphinx/directives/desc.py:609
+#, python-format
+msgid "%s (C function)"
+msgstr "%s (C 函数)"
+
+#: sphinx/directives/desc.py:611
+#, python-format
+msgid "%s (C member)"
+msgstr "%s (C 成员)"
+
+#: sphinx/directives/desc.py:613
+#, python-format
+msgid "%s (C macro)"
+msgstr "%s (C 宏)"
+
+#: sphinx/directives/desc.py:615
+#, python-format
+msgid "%s (C type)"
+msgstr "%s (C 类型)"
+
+#: sphinx/directives/desc.py:617
+#, python-format
+msgid "%s (C variable)"
+msgstr "%s (C 变量)"
+
+#: sphinx/directives/desc.py:665
+#, python-format
+msgid "%scommand line option; %s"
+msgstr "%s命令行选项; %s"
+
+#: sphinx/directives/other.py:138
+msgid "Platforms: "
+msgstr "平台"
+
+#: sphinx/directives/other.py:144
+#, python-format
+msgid "%s (module)"
+msgstr "%s (模块)"
+
+#: sphinx/directives/other.py:193
+msgid "Section author: "
+msgstr "Section 作者:"
+
+#: sphinx/directives/other.py:195
+msgid "Module author: "
+msgstr "模块作者:"
+
+#: sphinx/directives/other.py:197
+msgid "Author: "
+msgstr "作者:"
+
+#: sphinx/directives/other.py:317
+msgid "See also"
+msgstr "也可以参考"
+
+#: sphinx/ext/autodoc.py:888
+#, python-format
+msgid " Bases: %s"
+msgstr ""
+
+#: sphinx/ext/autodoc.py:919
+#, python-format
+msgid "alias of :class:`%s`"
+msgstr ""
+
+#: sphinx/ext/todo.py:41
+msgid "Todo"
+msgstr "待处理"
+
+#: sphinx/ext/todo.py:99
+#, python-format
+msgid "(The original entry is located in %s, line %d and can be found "
+msgstr "(最初的入口位于%s 的第%d行"
+
+#: sphinx/ext/todo.py:105
+msgid "here"
+msgstr "这里"
+
+#: sphinx/locale/__init__.py:15
+msgid "Attention"
+msgstr "注意"
+
+#: sphinx/locale/__init__.py:16
+msgid "Caution"
+msgstr "警告"
+
+#: sphinx/locale/__init__.py:17
+msgid "Danger"
+msgstr "危险"
+
+#: sphinx/locale/__init__.py:18
+msgid "Error"
+msgstr "错误"
+
+#: sphinx/locale/__init__.py:19
+msgid "Hint"
+msgstr "提示"
+
+#: sphinx/locale/__init__.py:20
+msgid "Important"
+msgstr "重要"
+
+#: sphinx/locale/__init__.py:21
+msgid "Note"
+msgstr "注解"
+
+#: sphinx/locale/__init__.py:22
+msgid "See Also"
+msgstr "也可以参考"
+
+#: sphinx/locale/__init__.py:23
+msgid "Tip"
+msgstr "小技巧"
+
+#: sphinx/locale/__init__.py:24
+msgid "Warning"
+msgstr "警告"
+
+#: sphinx/locale/__init__.py:28
+#, python-format
+msgid "New in version %s"
+msgstr "%s 新版功能"
+
+#: sphinx/locale/__init__.py:29
+#, python-format
+msgid "Changed in version %s"
+msgstr "在 %s 版更改"
+
+#: sphinx/locale/__init__.py:30
+#, python-format
+msgid "Deprecated since version %s"
+msgstr "%s 版后已移除"
+
+#: sphinx/locale/__init__.py:34
+msgid "module"
+msgstr "模块"
+
+#: sphinx/locale/__init__.py:35
+msgid "keyword"
+msgstr "关键字"
+
+#: sphinx/locale/__init__.py:36
+msgid "operator"
+msgstr "操作数"
+
+#: sphinx/locale/__init__.py:37
+msgid "object"
+msgstr "对象"
+
+#: sphinx/locale/__init__.py:38
+msgid "exception"
+msgstr "例外"
+
+#: sphinx/locale/__init__.py:39
+msgid "statement"
+msgstr "语句"
+
+#: sphinx/locale/__init__.py:40
+msgid "built-in function"
+msgstr "內置函数"
+
+#: sphinx/themes/basic/defindex.html:2
+msgid "Overview"
+msgstr "概述"
+
+#: sphinx/themes/basic/defindex.html:11
+msgid "Indices and tables:"
+msgstr "索引和表格"
+
+#: sphinx/themes/basic/defindex.html:14
+msgid "Complete Table of Contents"
+msgstr "完整的内容表"
+
+#: sphinx/themes/basic/defindex.html:15
+msgid "lists all sections and subsections"
+msgstr "列出所有的章节和部分"
+
+#: sphinx/themes/basic/defindex.html:17
+msgid "search this documentation"
+msgstr "搜索文档"
+
+#: sphinx/themes/basic/defindex.html:20
+msgid "quick access to all modules"
+msgstr "快速查看所有的模块"
+
+#: sphinx/themes/basic/defindex.html:22
+msgid "all functions, classes, terms"
+msgstr "所的函数,类,术语"
+
+#: sphinx/themes/basic/genindex-single.html:5
+#, python-format
+msgid "Index &ndash; %(key)s"
+msgstr "索引 &ndash; %(key)s"
+
+#: sphinx/themes/basic/genindex-single.html:44
+#: sphinx/themes/basic/genindex-split.html:14
+#: sphinx/themes/basic/genindex-split.html:27
+#: sphinx/themes/basic/genindex.html:54
+msgid "Full index on one page"
+msgstr "一页的全部索引"
+
+#: sphinx/themes/basic/genindex-split.html:7
+msgid "Index pages by letter"
+msgstr "按照字母的索引页"
+
+#: sphinx/themes/basic/genindex-split.html:15
+msgid "can be huge"
+msgstr "可能会很多"
+
+#: sphinx/themes/basic/layout.html:10
+msgid "Navigation"
+msgstr "导航"
+
+#: sphinx/themes/basic/layout.html:42
+msgid "Table Of Contents"
+msgstr "內容目录"
+
+#: sphinx/themes/basic/layout.html:48
+msgid "Previous topic"
+msgstr "上一个主题"
+
+#: sphinx/themes/basic/layout.html:50
+msgid "previous chapter"
+msgstr "上一章"
+
+#: sphinx/themes/basic/layout.html:53
+msgid "Next topic"
+msgstr "下一个主题"
+
+#: sphinx/themes/basic/layout.html:55
+msgid "next chapter"
+msgstr "下一章"
+
+#: sphinx/themes/basic/layout.html:60
+msgid "This Page"
+msgstr "本页"
+
+#: sphinx/themes/basic/layout.html:63
+msgid "Show Source"
+msgstr "显示源代码"
+
+#: sphinx/themes/basic/layout.html:73
+msgid "Quick search"
+msgstr "快速搜索"
+
+#: sphinx/themes/basic/layout.html:76
+msgid "Go"
+msgstr "搜索"
+
+#: sphinx/themes/basic/layout.html:81
+msgid "Enter search terms or a module, class or function name."
+msgstr "输入相关的模块,术语,类或者函数名称进行搜索"
+
+#: sphinx/themes/basic/layout.html:119
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "在 %(docstitle)s 中搜索"
+
+#: sphinx/themes/basic/layout.html:128
+msgid "About these documents"
+msgstr "关于这些文档"
+
+#: sphinx/themes/basic/layout.html:134 sphinx/themes/basic/search.html:2
+#: sphinx/themes/basic/search.html:5
+msgid "Search"
+msgstr "搜索"
+
+#: sphinx/themes/basic/layout.html:137
+msgid "Copyright"
+msgstr "版权所有"
+
+#: sphinx/themes/basic/layout.html:184
+#, python-format
+msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&copy; <a href=\"%(path)s\">版权所有</a> % (copyright)s."
+
+#: sphinx/themes/basic/layout.html:186
+#, python-format
+msgid "&copy; Copyright %(copyright)s."
+msgstr "&copy; 版权所有 %(copyright)s."
+
+#: sphinx/themes/basic/layout.html:190
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "最后更新日期是 %(last_updated)s."
+
+#: sphinx/themes/basic/layout.html:193
+#, python-format
+msgid ""
+"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"%(sphinx_version)s."
+msgstr "使用 <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s."
+
+#: sphinx/themes/basic/modindex.html:36
+msgid "Deprecated"
+msgstr "已移除"
+
+#: sphinx/themes/basic/opensearch.xml:4
+#, python-format
+msgid "Search %(docstitle)s"
+msgstr "搜索 %(docstitle)s"
+
+#: sphinx/themes/basic/search.html:9
+msgid ""
+"Please activate JavaScript to enable the search\n"
+" functionality."
+msgstr ""
+
+#: sphinx/themes/basic/search.html:14
+msgid ""
+"From here you can search these documents. Enter your search\n"
+" words into the box below and click \"search\". Note that the search\n"
+" 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:21
+msgid "search"
+msgstr "搜索"
+
+#: sphinx/themes/basic/search.html:25
+#: sphinx/themes/basic/static/searchtools.js:462
+msgid "Search Results"
+msgstr "搜索结果"
+
+#: sphinx/themes/basic/search.html:27
+msgid "Your search did not match any results."
+msgstr "你的搜索没有找到任何的结果."
+
+#: sphinx/themes/basic/changes/frameset.html:5
+#: sphinx/themes/basic/changes/versionchanges.html:12
+#, python-format
+msgid "Changes in Version %(version)s &mdash; %(docstitle)s"
+msgstr "更改发生在版本 %(version)s &mdash; %(docstitle)s"
+
+#: sphinx/themes/basic/changes/rstsource.html:5
+#, python-format
+msgid "%(filename)s &mdash; %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/changes/versionchanges.html:17
+#, python-format
+msgid "Automatically generated list of changes in version %(version)s"
+msgstr "自动生成的版本 %(version)s中的更改列表"
+
+#: sphinx/themes/basic/changes/versionchanges.html:18
+msgid "Library changes"
+msgstr "库更改"
+
+#: sphinx/themes/basic/changes/versionchanges.html:23
+msgid "C API changes"
+msgstr "C API 更改"
+
+#: sphinx/themes/basic/changes/versionchanges.html:25
+msgid "Other changes"
+msgstr "其他更改"
+
+#: sphinx/themes/basic/static/doctools.js:139 sphinx/writers/html.py:473
+#: sphinx/writers/html.py:478
+msgid "Permalink to this headline"
+msgstr "永久链接至标题"
+
+#: sphinx/themes/basic/static/doctools.js:145 sphinx/writers/html.py:80
+msgid "Permalink to this definition"
+msgstr "永久链接至目标"
+
+#: sphinx/themes/basic/static/doctools.js:174
+msgid "Hide Search Matches"
+msgstr "隐藏搜索结果"
+
+#: sphinx/themes/basic/static/searchtools.js:274
+msgid "Searching"
+msgstr "搜索中"
+
+#: sphinx/themes/basic/static/searchtools.js:279
+msgid "Preparing search..."
+msgstr "准备搜索..."
+
+#: sphinx/themes/basic/static/searchtools.js:347
+msgid "module, in "
+msgstr "模块,位于"
+
+#: sphinx/themes/basic/static/searchtools.js:356
+msgid ", in "
+msgstr ", 位于"
+
+#: sphinx/themes/basic/static/searchtools.js:464
+msgid ""
+"Your search did not match any documents. Please make sure that all words "
+"are spelled correctly and that you've selected enough categories."
+msgstr "你的搜索没有匹配到任何文档。请确认你所搜索的关键字."
+
+#: sphinx/themes/basic/static/searchtools.js:466
+#, python-format
+msgid "Search finished, found %s page(s) matching the search query."
+msgstr "搜索完成, 找到了 %s 页匹配所搜索的关键字"
+
+#: sphinx/writers/latex.py:187
+msgid "Release"
+msgstr "发布"
+
+#: sphinx/writers/latex.py:639
+msgid "continued from previous page"
+msgstr ""
+
+#: sphinx/writers/latex.py:643
+#, fuzzy
+msgid "Continued on next page"
+msgstr "一页的全部索引"
+
+#: sphinx/writers/text.py:166
+#, python-format
+msgid "Platform: %s"
+msgstr "平台:%s"
+
+#: sphinx/writers/text.py:428
+msgid "[image]"
+msgstr "[图片]"
+
+#~ msgid "Suggest Change"
+#~ msgstr "建议更改"
+
+#~ msgid "Keyword search"
+#~ msgstr "关键字搜索"
+
+#~ msgid "Most popular modules:"
+#~ msgstr "最流行的模块"
+
+#~ msgid "Show modules only available on these platforms"
+#~ msgstr "显示只在这些平台上可用的模块"
+
+#~ msgid ""
+#~ "<strong>Note:</strong> You requested an "
+#~ "out-of-date URL from this server. "
+#~ "We've tried to redirect you to the"
+#~ " new location of this page, but "
+#~ "it may not be the right one."
+#~ msgstr "<strong>注意:</strong> 你向服务器请求了一个过时的链接。 我们试图将你重定向到本页的新位置,但是它可能并非你所期望的位置"
+
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
index d50cd4aa..85621c55 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Sphinx 0.5\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2008-11-09 19:46+0100\n"
-"PO-Revision-Date: 2009-05-22 18:19+0200\n"
+"PO-Revision-Date: 2009-05-22 18:51+0200\n"
"Last-Translator: Fred Lin <gasolin@gmail.com>\n"
"Language-Team: tw <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
-#: sphinx/environment.py:104 sphinx/writers/latex.py:182
+#: sphinx/environment.py:104 sphinx/writers/latex.py:184
#, python-format
msgid "%B %d, %Y"
msgstr "%Y 年 %m 月 %d 日"
@@ -27,11 +27,11 @@ msgstr "%Y 年 %m 月 %d 日"
#: sphinx/themes/basic/genindex-split.html:5
#: sphinx/themes/basic/genindex.html:2 sphinx/themes/basic/genindex.html:5
#: sphinx/themes/basic/genindex.html:48 sphinx/themes/basic/layout.html:131
-#: sphinx/writers/latex.py:188
+#: sphinx/writers/latex.py:190
msgid "Index"
msgstr "索引"
-#: sphinx/environment.py:324 sphinx/writers/latex.py:187
+#: sphinx/environment.py:324 sphinx/writers/latex.py:189
msgid "Module Index"
msgstr "模組索引"
@@ -57,34 +57,34 @@ msgstr ""
msgid "Module level"
msgstr ""
-#: sphinx/builders/html.py:205
+#: sphinx/builders/html.py:219
#, python-format
msgid "%b %d, %Y"
msgstr "%Y 年 %m 月 %d 日"
-#: sphinx/builders/html.py:224 sphinx/themes/basic/defindex.html:21
+#: sphinx/builders/html.py:238 sphinx/themes/basic/defindex.html:21
msgid "General Index"
msgstr "總索引"
-#: sphinx/builders/html.py:224
+#: sphinx/builders/html.py:238
msgid "index"
msgstr "索引"
-#: sphinx/builders/html.py:226 sphinx/builders/htmlhelp.py:184
+#: sphinx/builders/html.py:240 sphinx/builders/htmlhelp.py:184
#: sphinx/builders/qthelp.py:132 sphinx/themes/basic/defindex.html:19
#: sphinx/themes/basic/modindex.html:2 sphinx/themes/basic/modindex.html:13
msgid "Global Module Index"
msgstr ""
-#: sphinx/builders/html.py:227
+#: sphinx/builders/html.py:241
msgid "modules"
msgstr "模組"
-#: sphinx/builders/html.py:281
+#: sphinx/builders/html.py:296
msgid "next"
msgstr "下一頁"
-#: sphinx/builders/html.py:290
+#: sphinx/builders/html.py:305
msgid "previous"
msgstr "上一頁"
@@ -233,12 +233,12 @@ msgstr "作者:"
msgid "See also"
msgstr ""
-#: sphinx/ext/autodoc.py:889
+#: sphinx/ext/autodoc.py:888
#, python-format
msgid " Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc.py:920
+#: sphinx/ext/autodoc.py:919
#, python-format
msgid "alias of :class:`%s`"
msgstr ""
@@ -450,22 +450,22 @@ msgstr "搜尋"
msgid "Copyright"
msgstr "版權所有"
-#: sphinx/themes/basic/layout.html:183
+#: sphinx/themes/basic/layout.html:184
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:185
+#: sphinx/themes/basic/layout.html:186
#, python-format
msgid "&copy; Copyright %(copyright)s."
msgstr ""
-#: sphinx/themes/basic/layout.html:188
+#: sphinx/themes/basic/layout.html:190
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr "最後更新日期是 %(last_updated)s."
-#: sphinx/themes/basic/layout.html:191
+#: sphinx/themes/basic/layout.html:193
#, python-format
msgid ""
"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
@@ -500,7 +500,7 @@ msgid "search"
msgstr "搜尋"
#: sphinx/themes/basic/search.html:25
-#: sphinx/themes/basic/static/searchtools.js:453
+#: sphinx/themes/basic/static/searchtools.js:462
msgid "Search Results"
msgstr "搜尋結果"
@@ -557,34 +557,34 @@ msgstr "搜尋中"
msgid "Preparing search..."
msgstr "準備搜尋..."
-#: sphinx/themes/basic/static/searchtools.js:338
+#: sphinx/themes/basic/static/searchtools.js:347
msgid "module, in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:347
+#: sphinx/themes/basic/static/searchtools.js:356
msgid ", in "
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:455
+#: sphinx/themes/basic/static/searchtools.js:464
msgid ""
"Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:457
+#: sphinx/themes/basic/static/searchtools.js:466
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
msgstr ""
-#: sphinx/writers/latex.py:185
+#: sphinx/writers/latex.py:187
msgid "Release"
msgstr "釋出"
-#: sphinx/writers/latex.py:637
+#: sphinx/writers/latex.py:639
msgid "continued from previous page"
msgstr ""
-#: sphinx/writers/latex.py:641
+#: sphinx/writers/latex.py:643
msgid "Continued on next page"
msgstr ""
diff --git a/sphinx/quickstart.py b/sphinx/quickstart.py
index 575a9683..bf91c5a0 100644
--- a/sphinx/quickstart.py
+++ b/sphinx/quickstart.py
@@ -174,6 +174,12 @@ html_static_path = ['%(dot)sstatic']
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
diff --git a/sphinx/roles.py b/sphinx/roles.py
index cf04c095..af574b98 100644
--- a/sphinx/roles.py
+++ b/sphinx/roles.py
@@ -15,7 +15,7 @@ from docutils import nodes, utils
from docutils.parsers.rst import roles
from sphinx import addnodes
-from sphinx.util import ws_re, caption_ref_re
+from sphinx.util import ws_re, split_explicit_title
generic_docroles = {
@@ -133,28 +133,15 @@ def xfileref_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
modname=env.currmodule, classname=env.currclass)
# we may need the line number for warnings
pnode.line = lineno
- # the link title may differ from the target, but by default
- # they are the same
- title = target = text
- titleistarget = True
# look if explicit title and target are given with `foo <bar>` syntax
- brace = text.find('<')
- if brace != -1:
- titleistarget = False
+ has_explicit_title, title, target = split_explicit_title(text)
+ if has_explicit_title:
pnode['refcaption'] = True
- m = caption_ref_re.match(text)
- if m:
- target = m.group(2)
- title = m.group(1)
- else:
- # fallback: everything after '<' is the target
- target = text[brace+1:]
- title = text[:brace]
# special target for Python object cross-references
if typ in ('data', 'exc', 'func', 'class', 'const', 'attr',
'meth', 'mod', 'obj'):
# fix-up parentheses in link title
- if titleistarget:
+ if not has_explicit_title:
title = title.lstrip('.') # only has a meaning for the target
target = target.lstrip('~') # only has a meaning for the title
title = _fix_parens(typ, title, env)
@@ -176,7 +163,7 @@ def xfileref_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
# some other special cases for the target
elif typ == 'option':
program = env.currprogram
- if titleistarget:
+ if not has_explicit_title:
if ' ' in title and not (title.startswith('/') or
title.startswith('-')):
program, target = re.split(' (?=-|--|/)', title, 1)
@@ -195,7 +182,7 @@ def xfileref_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
target = ws_re.sub('', target).lower()
elif typ == 'cfunc':
# fix-up parens for C functions too
- if titleistarget:
+ if not has_explicit_title:
title = _fix_parens(typ, title, env)
# remove parentheses from the target too
if target.endswith('()'):
diff --git a/sphinx/search.py b/sphinx/search.py
index f6e3ef3f..499c4aa9 100644
--- a/sphinx/search.py
+++ b/sphinx/search.py
@@ -14,8 +14,14 @@ from cStringIO import StringIO
from docutils.nodes import comment, Text, NodeVisitor, SkipNode
-from sphinx.util.stemmer import PorterStemmer
from sphinx.util import jsdump, rpartition
+try:
+ # http://bitbucket.org/methane/porterstemmer/
+ from porterstemmer import Stemmer as CStemmer
+ CSTEMMER = True
+except ImportError:
+ from sphinx.util.stemmer import PorterStemmer
+ CSTEMMER = False
word_re = re.compile(r'\w+(?u)')
@@ -62,15 +68,23 @@ class _JavaScriptIndex(object):
js_index = _JavaScriptIndex()
-class Stemmer(PorterStemmer):
- """
- All those porter stemmer implementations look hideous.
- make at least the stem method nicer.
- """
+if CSTEMMER:
+ class Stemmer(CStemmer):
+
+ def stem(self, word):
+ return self(word.lower())
+
+else:
+ class Stemmer(PorterStemmer):
+ """
+ All those porter stemmer implementations look hideous.
+ make at least the stem method nicer.
+ """
+
+ def stem(self, word):
+ word = word.lower()
+ return PorterStemmer.stem(self, word, 0, len(word) - 1)
- def stem(self, word):
- word = word.lower()
- return PorterStemmer.stem(self, word, 0, len(word) - 1)
class WordCollector(NodeVisitor):
@@ -198,11 +212,11 @@ class IndexBuilder(object):
visitor = WordCollector(doctree)
doctree.walk(visitor)
- def add_term(word, prefix='', stem=self._stemmer.stem):
+ def add_term(word, stem=self._stemmer.stem):
word = stem(word)
if len(word) < 3 or word in stopwords or word.isdigit():
return
- self._mapping.setdefault(prefix + word, set()).add(filename)
+ self._mapping.setdefault(word, set()).add(filename)
for word in word_re.findall(title):
add_term(word)
diff --git a/sphinx/texinputs/howto.cls b/sphinx/texinputs/sphinxhowto.cls
index 87d207d1..204d7063 100644
--- a/sphinx/texinputs/howto.cls
+++ b/sphinx/texinputs/sphinxhowto.cls
@@ -1,14 +1,25 @@
%
-% howto.cls for Sphinx
+% sphinxhowto.cls for Sphinx (http://sphinx.pocoo.org/)
%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{howto}[2008/10/18 Document class (Sphinx HOWTO)]
+\ProvidesClass{sphinxhowto}[2009/06/02 Document class (Sphinx HOWTO)]
-% Pass all given class options to the parent class.
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+% 'oneside' option overriding the 'twoside' default
+\newif\if@oneside
+\DeclareOption{oneside}{\@onesidetrue}
+% Pass remaining document options to the parent class.
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}}
\ProcessOptions\relax
-\LoadClass[twoside]{article}
+
+% Default to two-side document
+\if@oneside
+% nothing to do (oneside is the default)
+\else
+\PassOptionsToClass{twoside}{\sphinxdocclass}
+\fi
+
+\LoadClass{\sphinxdocclass}
% Set some sane defaults for section numbering depth and TOC depth. You can
% reset these counters in your preamble.
diff --git a/sphinx/texinputs/manual.cls b/sphinx/texinputs/sphinxmanual.cls
index f94ee6d6..da805cdc 100644
--- a/sphinx/texinputs/manual.cls
+++ b/sphinx/texinputs/sphinxmanual.cls
@@ -1,14 +1,28 @@
%
-% manual.cls for Sphinx
+% sphinxmanual.cls for Sphinx (http://sphinx.pocoo.org/)
%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{manual}[2008/10/18 Document class (Sphinx manual)]
+\ProvidesClass{sphinxmanual}[2009/06/02 Document class (Sphinx manual)]
-% Pass all given class options to the parent class.
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
+% chapters starting at odd pages (overridden by 'openany' document option)
+\PassOptionsToClass{openright}{\sphinxdocclass}
+
+% 'oneside' option overriding the 'twoside' default
+\newif\if@oneside
+\DeclareOption{oneside}{\@onesidetrue}
+% Pass remaining document options to the parent class.
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}}
\ProcessOptions\relax
-\LoadClass[twoside,openright]{report}
+
+% Defaults two-side document
+\if@oneside
+% nothing to do (oneside is the default)
+\else
+\PassOptionsToClass{twoside}{\sphinxdocclass}
+\fi
+
+\LoadClass{\sphinxdocclass}
% Set some sane defaults for section numbering depth and TOC depth. You can
% reset these counters in your preamble.
diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html
index dd2e2d51..5aaaeff2 100644
--- a/sphinx/themes/basic/layout.html
+++ b/sphinx/themes/basic/layout.html
@@ -179,10 +179,12 @@
{%- block footer %}
<div class="footer">
- {%- if hasdoc('copyright') %}
- {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
- {%- else %}
- {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
+ {%- if show_copyright %}
+ {%- if hasdoc('copyright') %}
+ {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
+ {%- else %}
+ {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
+ {%- endif %}
{%- endif %}
{%- if last_updated %}
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
diff --git a/sphinx/themes/basic/static/basic.css b/sphinx/themes/basic/static/basic.css
index 68cae4fc..faebf312 100644
--- a/sphinx/themes/basic/static/basic.css
+++ b/sphinx/themes/basic/static/basic.css
@@ -252,7 +252,7 @@ table.docutils {
}
table.docutils td, table.docutils th {
- padding: 1px 8px 1px 0;
+ padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
diff --git a/sphinx/themes/basic/static/searchtools.js b/sphinx/themes/basic/static/searchtools.js
index e0226258..36acb12e 100644
--- a/sphinx/themes/basic/static/searchtools.js
+++ b/sphinx/themes/basic/static/searchtools.js
@@ -287,8 +287,13 @@ var Search = {
},
query : function(query) {
- // stem the searchterms and add them to the
- // correct list
+ var stopwords = ['and', 'then', 'into', 'it', 'as', 'are', 'in',
+ 'if', 'for', 'no', 'there', 'their', 'was', 'is',
+ 'be', 'to', 'that', 'but', 'they', 'not', 'such',
+ 'with', 'by', 'a', 'on', 'these', 'of', 'will',
+ 'this', 'near', 'the', 'or', 'at'];
+
+ // stem the searchterms and add them to the correct list
var stemmer = new PorterStemmer();
var searchterms = [];
var excluded = [];
@@ -296,6 +301,10 @@ var Search = {
var tmp = query.split(/\s+/);
var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
for (var i = 0; i < tmp.length; i++) {
+ if (stopwords.indexOf(tmp[i]) != -1 || tmp[i].match(/^\d+$/)) {
+ // skip this word
+ continue;
+ }
// stem the word
var word = stemmer.stemWord(tmp[i]).toLowerCase();
// select the correct list
diff --git a/sphinx/themes/default/static/default.css_t b/sphinx/themes/default/static/default.css_t
index a363167a..fbfd64a8 100644
--- a/sphinx/themes/default/static/default.css_t
+++ b/sphinx/themes/default/static/default.css_t
@@ -147,6 +147,11 @@ a {
text-decoration: none;
}
+a:visited {
+ color: {{ theme_visitedlinkcolor }};
+ text-decoration: none;
+}
+
a:hover {
text-decoration: underline;
}
@@ -241,3 +246,7 @@ tt {
padding: 0 1px 0 1px;
font-size: 0.95em;
}
+
+th {
+ background-color: #ede;
+}
diff --git a/sphinx/themes/default/theme.conf b/sphinx/themes/default/theme.conf
index 812330f8..5035fae5 100644
--- a/sphinx/themes/default/theme.conf
+++ b/sphinx/themes/default/theme.conf
@@ -21,6 +21,7 @@ headbgcolor = #f2f2f2
headtextcolor = #20435c
headlinkcolor = #c60f0f
linkcolor = #355f7c
+visitedlinkcolor = #355f7c
codebgcolor = #eeffcc
codetextcolor = #333333
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index 7d00964f..3465403d 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -419,34 +419,48 @@ def copy_static_entry(source, target, builder, context={}):
shutil.copytree(source, target)
+def split_explicit_title(text):
+ """Split role content into title and target, if given."""
+ brace = text.find('<')
+ if brace != -1:
+ m = caption_ref_re.match(text)
+ if m:
+ target = m.group(2)
+ title = m.group(1)
+ else:
+ # fallback: everything after '<' is the target
+ target = text[brace+1:]
+ title = text[:brace]
+ return True, title, target
+ else:
+ return False, text, text
+
# monkey-patch Node.traverse to get more speed
# traverse() is called so many times during a build that it saves
# on average 20-25% overall build time!
-def _all_traverse(self):
+def _all_traverse(self, result):
"""Version of Node.traverse() that doesn't need a condition."""
- result = []
result.append(self)
for child in self.children:
- result.extend(child._all_traverse())
+ child._all_traverse(result)
return result
-def _fast_traverse(self, cls):
+def _fast_traverse(self, cls, result):
"""Version of Node.traverse() that only supports instance checks."""
- result = []
if isinstance(self, cls):
result.append(self)
for child in self.children:
- result.extend(child._fast_traverse(cls))
+ child._fast_traverse(cls, result)
return result
def _new_traverse(self, condition=None,
include_self=1, descend=1, siblings=0, ascend=0):
if include_self and descend and not siblings and not ascend:
if condition is None:
- return self._all_traverse()
+ return self._all_traverse([])
elif isinstance(condition, (types.ClassType, type)):
- return self._fast_traverse(condition)
+ return self._fast_traverse(condition, [])
return self._old_traverse(condition, include_self,
descend, siblings, ascend)
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index 2ef92e24..51e043c1 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -28,8 +28,10 @@ from sphinx.util.texescape import tex_escape_map
from sphinx.util.smartypants import educateQuotesLatex
HEADER = r'''%% Generated by Sphinx.
-\documentclass[%(papersize)s,%(pointsize)s%(classoptions)s]{%(docclass)s}
+\def\sphinxdocclass{%(docclass)s}
+\documentclass[%(papersize)s,%(pointsize)s%(classoptions)s]{%(wrapperclass)s}
%(inputenc)s
+%(utf8extra)s
%(fontenc)s
%(babel)s
%(fontpkg)s
@@ -134,11 +136,11 @@ class LaTeXTranslator(nodes.NodeVisitor):
ignore_missing_images = False
default_elements = {
- 'docclass': 'manual',
'papersize': 'letterpaper',
'pointsize': '10pt',
'classoptions': '',
'inputenc': '\\usepackage[utf8]{inputenc}',
+ 'utf8extra': '\\DeclareUnicodeCharacter{00A0}{\\nobreakspace}',
'fontenc': '\\usepackage[T1]{fontenc}',
'babel': '\\usepackage{babel}',
'fontpkg': '\\usepackage{times}',
@@ -173,7 +175,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.elements = self.default_elements.copy()
self.elements.update({
- 'docclass': document.settings.docclass,
+ 'wrapperclass': 'sphinx' + document.settings.docclass,
'papersize': papersize,
'pointsize': builder.config.latex_font_size,
# if empty, the title is set to the first section title
@@ -187,6 +189,11 @@ class LaTeXTranslator(nodes.NodeVisitor):
'modindexname': _('Module Index'),
'indexname': _('Index'),
})
+ if document.settings.docclass == 'howto':
+ docclass = builder.config.latex_docclass.get('howto', 'article')
+ else:
+ docclass = builder.config.latex_docclass.get('manual', 'report')
+ self.elements['docclass'] = docclass
if builder.config.latex_logo:
self.elements['logo'] = '\\includegraphics{%s}\\par' % \
path.basename(builder.config.latex_logo)
@@ -221,13 +228,13 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.footnotestack = []
self.curfilestack = []
self.handled_abbrs = set()
- if self.elements['docclass'] == 'manual':
+ if document.settings.docclass == 'howto':
+ self.top_sectionlevel = 2
+ else:
if builder.config.latex_use_parts:
self.top_sectionlevel = 0
else:
self.top_sectionlevel = 1
- else:
- self.top_sectionlevel = 2
self.next_section_target = None
# flags
self.verbatim = None
diff --git a/tests/coverage.py b/tests/coverage.py
index 148e573c..117fd4f2 100755
--- a/tests/coverage.py
+++ b/tests/coverage.py
@@ -106,20 +106,20 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
self.excluded = excluded
self.suite_spots = suite_spots
self.excluding_suite = 0
-
+
def doRecursive(self, node):
for n in node.getChildNodes():
self.dispatch(n)
visitStmt = visitModule = doRecursive
-
+
def doCode(self, node):
if hasattr(node, 'decorators') and node.decorators:
self.dispatch(node.decorators)
self.recordAndDispatch(node.code)
else:
self.doSuite(node, node.code)
-
+
visitFunction = visitClass = doCode
def getFirstLine(self, node):
@@ -139,14 +139,14 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
for n in node.getChildNodes():
lineno = max(lineno, self.getLastLine(n))
return lineno
-
+
def doStatement(self, node):
self.recordLine(self.getFirstLine(node))
visitAssert = visitAssign = visitAssTuple = visitPrint = \
visitPrintnl = visitRaise = visitSubscript = visitDecorators = \
doStatement
-
+
def visitPass(self, node):
# Pass statements have weird interactions with docstrings. If this
# pass statement is part of one of those pairs, claim that the statement
@@ -155,10 +155,10 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
if l:
lines = self.suite_spots.get(l, [l,l])
self.statements[lines[1]] = 1
-
+
def visitDiscard(self, node):
# Discard nodes are statements that execute an expression, but then
- # discard the results. This includes function calls, so we can't
+ # discard the results. This includes function calls, so we can't
# ignore them all. But if the expression is a constant, the statement
# won't be "executed", so don't count it now.
if node.expr.__class__.__name__ != 'Const':
@@ -172,7 +172,7 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
return self.recordLine(self.getFirstLine(node))
else:
return 0
-
+
def recordLine(self, lineno):
# Returns a bool, whether the line is included or excluded.
if lineno:
@@ -196,9 +196,9 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
self.statements[lineno] = 1
return 1
return 0
-
+
default = recordNodeLine
-
+
def recordAndDispatch(self, node):
self.recordNodeLine(node)
self.dispatch(node)
@@ -209,7 +209,7 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
self.excluding_suite = 1
self.recordAndDispatch(body)
self.excluding_suite = exsuite
-
+
def doPlainWordSuite(self, prevsuite, suite):
# Finding the exclude lines for else's is tricky, because they aren't
# present in the compiler parse tree. Look at the previous suite,
@@ -223,11 +223,11 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
break
else:
self.doSuite(None, suite)
-
+
def doElse(self, prevsuite, node):
if node.else_:
self.doPlainWordSuite(prevsuite, node.else_)
-
+
def visitFor(self, node):
self.doSuite(node, node.body)
self.doElse(node.body, node)
@@ -257,14 +257,14 @@ class StatementFindingAstVisitor(compiler.visitor.ASTVisitor):
else:
self.doSuite(a, h)
self.doElse(node.handlers[-1][2], node)
-
+
def visitTryFinally(self, node):
self.doSuite(node, node.body)
self.doPlainWordSuite(node.body, node.final)
-
+
def visitWith(self, node):
self.doSuite(node, node.body)
-
+
def visitGlobal(self, node):
# "global" statements don't execute like others (they don't call the
# trace function), so don't record their line numbers.
@@ -285,7 +285,7 @@ class coverage:
# A dictionary with an entry for (Python source file name, line number
# in that file) if that line has been executed.
c = {}
-
+
# A map from canonical Python source file name to a dictionary in
# which there's an entry for each line number that has been
# executed.
@@ -313,19 +313,19 @@ class coverage:
self.relative_dir = self.abs_file(os.curdir)+os.sep
self.exclude('# *pragma[: ]*[nN][oO] *[cC][oO][vV][eE][rR]')
- # t(f, x, y). This method is passed to sys.settrace as a trace function.
- # See [van Rossum 2001-07-20b, 9.2] for an explanation of sys.settrace and
+ # t(f, x, y). This method is passed to sys.settrace as a trace function.
+ # See [van Rossum 2001-07-20b, 9.2] for an explanation of sys.settrace and
# the arguments and return value of the trace function.
# See [van Rossum 2001-07-20a, 3.2] for a description of frame and code
# objects.
-
+
def t(self, f, w, unused): #pragma: no cover
if w == 'line':
self.c[(f.f_code.co_filename, f.f_lineno)] = 1
#-for c in self.cstack:
#- c[(f.f_code.co_filename, f.f_lineno)] = 1
return self.t
-
+
def help(self, error=None): #pragma: no cover
if error:
print error
@@ -377,14 +377,14 @@ class coverage:
args_needed = (settings.get('execute')
or settings.get('annotate')
or settings.get('report'))
- action = (settings.get('erase')
+ action = (settings.get('erase')
or settings.get('collect')
or args_needed)
if not action:
help_fn("You must specify at least one of -e, -x, -c, -r, or -a.")
if not args_needed and args:
help_fn("Unexpected arguments: %s" % " ".join(args))
-
+
self.parallel_mode = settings.get('parallel-mode')
self.get_ready()
@@ -402,7 +402,7 @@ class coverage:
self.collect()
if not args:
args = self.cexecuted.keys()
-
+
ignore_errors = settings.get('ignore-errors')
show_missing = settings.get('show-missing')
directory = settings.get('directory=')
@@ -412,7 +412,7 @@ class coverage:
omit = [self.abs_file(p) for p in omit.split(',')]
else:
omit = []
-
+
if settings.get('report'):
self.report(args, show_missing, ignore_errors, omit_prefixes=omit)
if settings.get('annotate'):
@@ -422,7 +422,7 @@ class coverage:
self.usecache = usecache
if cache_file and not self.cache:
self.cache_default = cache_file
-
+
def get_ready(self, parallel_mode=False):
if self.usecache and not self.cache:
self.cache = os.environ.get(self.cache_env, self.cache_default)
@@ -430,7 +430,7 @@ class coverage:
self.cache += "." + gethostname() + "." + str(os.getpid())
self.restore()
self.analysis_cache = {}
-
+
def start(self, parallel_mode=False):
self.get_ready()
if self.nesting == 0: #pragma: no cover
@@ -438,7 +438,7 @@ class coverage:
if hasattr(threading, 'settrace'):
threading.settrace(self.t)
self.nesting += 1
-
+
def stop(self):
self.nesting -= 1
if self.nesting == 0: #pragma: no cover
@@ -462,7 +462,7 @@ class coverage:
def begin_recursive(self):
self.cstack.append(self.c)
self.xstack.append(self.exclude_re)
-
+
def end_recursive(self):
self.c = self.cstack.pop()
self.exclude_re = self.xstack.pop()
@@ -568,7 +568,7 @@ class coverage:
self.canonical_filename_cache[filename] = cf
return self.canonical_filename_cache[filename]
- # canonicalize_filenames(). Copy results from "c" to "cexecuted",
+ # canonicalize_filenames(). Copy results from "c" to "cexecuted",
# canonicalizing filenames on the way. Clear the "c" map.
def canonicalize_filenames(self):
@@ -598,7 +598,7 @@ class coverage:
# in the source code, (3) a list of lines of excluded statements,
# and (4), a map of line numbers to multi-line line number ranges, for
# statements that cross lines.
-
+
def analyze_morf(self, morf):
if self.analysis_cache.has_key(morf):
return self.analysis_cache[morf]
@@ -636,26 +636,26 @@ class coverage:
if len(tree) == 3 and type(tree[2]) == type(1):
return tree[2]
tree = tree[1]
-
+
def last_line_of_tree(self, tree):
while True:
if len(tree) == 3 and type(tree[2]) == type(1):
return tree[2]
tree = tree[-1]
-
+
def find_docstring_pass_pair(self, tree, spots):
for i in range(1, len(tree)):
if self.is_string_constant(tree[i]) and self.is_pass_stmt(tree[i+1]):
first_line = self.first_line_of_tree(tree[i])
last_line = self.last_line_of_tree(tree[i+1])
self.record_multiline(spots, first_line, last_line)
-
+
def is_string_constant(self, tree):
try:
return tree[0] == symbol.stmt and tree[1][1][1][0] == symbol.expr_stmt
except:
return False
-
+
def is_pass_stmt(self, tree):
try:
return tree[0] == symbol.stmt and tree[1][1][1][0] == symbol.pass_stmt
@@ -665,7 +665,7 @@ class coverage:
def record_multiline(self, spots, i, j):
for l in range(i, j+1):
spots[l] = (i, j)
-
+
def get_suite_spots(self, tree, spots):
""" Analyze a parse tree to find suite introducers which span a number
of lines.
@@ -707,7 +707,7 @@ class coverage:
# treat them differently, especially in the common case of a
# function with a doc string and a single pass statement.
self.find_docstring_pass_pair(tree[i], spots)
-
+
elif tree[i][0] == symbol.simple_stmt:
first_line = self.first_line_of_tree(tree[i])
last_line = self.last_line_of_tree(tree[i])
@@ -732,7 +732,7 @@ class coverage:
tree = parser.suite(text+'\n\n').totuple(1)
self.get_suite_spots(tree, suite_spots)
#print "Suite spots:", suite_spots
-
+
# Use the compiler module to parse the text and find the executable
# statements. We add newlines to be impervious to final partial lines.
statements = {}
@@ -842,7 +842,7 @@ class coverage:
else:
globbed.append(morf)
morfs = globbed
-
+
morfs = self.filter_by_prefix(morfs, omit_prefixes)
morfs.sort(self.morf_name_compare)
@@ -909,7 +909,7 @@ class coverage:
except:
if not ignore_errors:
raise
-
+
def annotate_file(self, filename, statements, excluded, missing, directory=None):
source = open(filename, 'r')
if directory:
@@ -937,7 +937,7 @@ class coverage:
if self.blank_re.match(line):
dest.write(' ')
elif self.else_re.match(line):
- # Special logic for lines containing only 'else:'.
+ # Special logic for lines containing only 'else:'.
# See [GDR 2001-12-04b, 3.2].
if i >= len(statements) and j >= len(missing):
dest.write('! ')
@@ -961,40 +961,40 @@ class coverage:
the_coverage = coverage()
# Module functions call methods in the singleton object.
-def use_cache(*args, **kw):
+def use_cache(*args, **kw):
return the_coverage.use_cache(*args, **kw)
-def start(*args, **kw):
+def start(*args, **kw):
return the_coverage.start(*args, **kw)
-def stop(*args, **kw):
+def stop(*args, **kw):
return the_coverage.stop(*args, **kw)
-def erase(*args, **kw):
+def erase(*args, **kw):
return the_coverage.erase(*args, **kw)
-def begin_recursive(*args, **kw):
+def begin_recursive(*args, **kw):
return the_coverage.begin_recursive(*args, **kw)
-def end_recursive(*args, **kw):
+def end_recursive(*args, **kw):
return the_coverage.end_recursive(*args, **kw)
-def exclude(*args, **kw):
+def exclude(*args, **kw):
return the_coverage.exclude(*args, **kw)
-def analysis(*args, **kw):
+def analysis(*args, **kw):
return the_coverage.analysis(*args, **kw)
-def analysis2(*args, **kw):
+def analysis2(*args, **kw):
return the_coverage.analysis2(*args, **kw)
-def report(*args, **kw):
+def report(*args, **kw):
return the_coverage.report(*args, **kw)
-def annotate(*args, **kw):
+def annotate(*args, **kw):
return the_coverage.annotate(*args, **kw)
-def annotate_file(*args, **kw):
+def annotate_file(*args, **kw):
return the_coverage.annotate_file(*args, **kw)
# Save coverage data when Python exits. (The atexit module wasn't
@@ -1008,7 +1008,7 @@ except ImportError:
def main():
the_coverage.command_line(sys.argv[1:])
-
+
# Command-line interface.
if __name__ == '__main__':
main()
@@ -1072,7 +1072,7 @@ if __name__ == '__main__':
# Thanks, Allen.
#
# 2005-12-02 NMB Call threading.settrace so that all threads are measured.
-# Thanks Martin Fuzzey. Add a file argument to report so that reports can be
+# Thanks Martin Fuzzey. Add a file argument to report so that reports can be
# captured to a different destination.
#
# 2005-12-03 NMB coverage.py can now measure itself.
diff --git a/tests/root/includes.txt b/tests/root/includes.txt
index 0976bf4a..da36503b 100644
--- a/tests/root/includes.txt
+++ b/tests/root/includes.txt
@@ -44,6 +44,11 @@ Literalinclude options
:start-after: coding: utf-8
:end-before: class Foo
+.. cssclass:: inc-preappend
+.. literalinclude:: literal.inc
+ :prepend: START CODE
+ :append: END CODE
+
Test if dedenting before parsing works.
.. highlight:: python
diff --git a/tests/test_autosummary.py b/tests/test_autosummary.py
new file mode 100644
index 00000000..276b9355
--- /dev/null
+++ b/tests/test_autosummary.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+"""
+ test_autosummary
+ ~~~~~~~~~~~~~~~~
+
+ Test the autosummary extension.
+
+ :copyright: Copyright 2007-2009 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import string
+
+from util import *
+
+from sphinx.ext.autosummary import mangle_signature
+
+
+def test_mangle_signature():
+ TEST = """
+ () :: ()
+ (a, b, c, d, e) :: (a, b, c, d, e)
+ (a, b, c=1, d=2, e=3) :: (a, b[, c, d, e])
+ (a, b, aaa=1, bbb=1, ccc=1, eee=1, fff=1, ggg=1, hhh=1, iii=1, jjj=1)\
+ :: (a, b[, aaa, bbb, ccc, ...])
+ (a, b, c=(), d=<foo>) :: (a, b[, c, d])
+ (a, b, c='foobar()', d=123) :: (a, b[, c, d])
+ """
+
+ TEST = [map(string.strip, x.split("::")) for x in TEST.split("\n")
+ if '::' in x]
+ for inp, outp in TEST:
+ res = mangle_signature(inp).strip().replace(u"\u00a0", " ")
+ assert res == outp, (u"'%s' -> '%s' != '%s'" % (inp, res, outp))
diff --git a/tests/test_build.py b/tests/test_build.py
index 4c25c146..6668e245 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -134,6 +134,8 @@ if pygments:
r'^class Foo:\n pass\nclass Bar:\n$',
".//div[@class='inc-startend highlight-text']/div/pre":
ur'^foo = u"Including Unicode characters: üöä"\n$',
+ ".//div[@class='inc-preappend highlight-text']/div/pre":
+ r'(?m)^START CODE$',
".//div[@class='inc-pyobj-dedent highlight-python']/div/pre/span":
r'def',
})
diff --git a/tests/test_markup.py b/tests/test_markup.py
index d65b798e..03c421a1 100644
--- a/tests/test_markup.py
+++ b/tests/test_markup.py
@@ -112,7 +112,7 @@ def test_inline():
def test_latex_escaping():
# correct escaping in normal mode
yield (verify, u'Γ\\\\∞$', None,
- ur'\(\Gamma\)\textbackslash{}\(\infty\)\$')
+ ur'\(\Gamma\)\textbackslash{}\(\infty\)\$')
# in verbatim code fragments
yield (verify, u'::\n\n @Γ\\∞$[]', None,
u'\\begin{Verbatim}[commandchars=@\\[\\]]\n'