summaryrefslogtreecommitdiff
path: root/sphinx
diff options
context:
space:
mode:
authorshimizukawa <shimizukawa@gmail.com>2012-12-10 10:18:32 +0900
committershimizukawa <shimizukawa@gmail.com>2012-12-10 10:18:32 +0900
commitd45dcfbd7e5add4495a7e31ee53e672ee180d534 (patch)
treee3ccbee28f06bfccb66ab2c54cb3b1648409e704 /sphinx
parent207e12471f451fee53a95ca6918c93abfef3a632 (diff)
parent5818df7941b73abecdb1b399fee7956ea283d698 (diff)
downloadsphinx-d45dcfbd7e5add4495a7e31ee53e672ee180d534.tar.gz
merge heads
Diffstat (limited to 'sphinx')
-rw-r--r--sphinx/__init__.py15
-rw-r--r--sphinx/apidoc.py7
-rw-r--r--sphinx/application.py2
-rw-r--r--sphinx/builders/__init__.py2
-rw-r--r--sphinx/builders/html.py3
-rw-r--r--sphinx/builders/linkcheck.py3
-rw-r--r--sphinx/builders/xml.py85
-rw-r--r--sphinx/cmdline.py2
-rw-r--r--sphinx/config.py3
-rw-r--r--sphinx/directives/other.py43
-rw-r--r--sphinx/domains/cpp.py50
-rw-r--r--sphinx/environment.py59
-rw-r--r--sphinx/ext/autodoc.py48
-rw-r--r--sphinx/ext/graphviz.py6
-rw-r--r--sphinx/ext/inheritance_diagram.py20
-rw-r--r--sphinx/ext/intersphinx.py12
-rw-r--r--sphinx/ext/linkcode.py72
-rw-r--r--sphinx/ext/oldcmarkup.py2
-rw-r--r--sphinx/ext/pngmath.py3
-rw-r--r--sphinx/highlighting.py8
-rw-r--r--sphinx/locale/bn/LC_MESSAGES/sphinx.mobin12147 -> 12143 bytes
-rw-r--r--sphinx/locale/bn/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/ca/LC_MESSAGES/sphinx.mobin9093 -> 9089 bytes
-rw-r--r--sphinx/locale/ca/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.mobin8687 -> 8683 bytes
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/da/LC_MESSAGES/sphinx.mobin9357 -> 9353 bytes
-rw-r--r--sphinx/locale/da/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.mobin9672 -> 9668 bytes
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.mobin7603 -> 7599 bytes
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.mobin9137 -> 9425 bytes
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.po103
-rw-r--r--sphinx/locale/fa/LC_MESSAGES/sphinx.mobin8588 -> 8584 bytes
-rw-r--r--sphinx/locale/fa/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.mobin8836 -> 8832 bytes
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.po2
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.mobin10024 -> 9482 bytes
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/hr/LC_MESSAGES/sphinx.mobin8859 -> 8855 bytes
-rw-r--r--sphinx/locale/hr/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.mobin8164 -> 8194 bytes
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.mobin9100 -> 9096 bytes
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.mobin10077 -> 10185 bytes
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/ko/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/lt/LC_MESSAGES/sphinx.mobin9845 -> 9841 bytes
-rw-r--r--sphinx/locale/lt/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/lv/LC_MESSAGES/sphinx.mobin9651 -> 9647 bytes
-rw-r--r--sphinx/locale/lv/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js1
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mobin0 -> 9141 bytes
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po (renamed from sphinx/locale/no_NB/LC_MESSAGES/sphinx.po)4
-rw-r--r--sphinx/locale/ne/LC_MESSAGES/sphinx.mobin12378 -> 12306 bytes
-rw-r--r--sphinx/locale/ne/LC_MESSAGES/sphinx.po8
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.mobin9096 -> 9092 bytes
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/no_NB/LC_MESSAGES/sphinx.js1
-rw-r--r--sphinx/locale/no_NB/LC_MESSAGES/sphinx.mobin9981 -> 0 bytes
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.mobin9551 -> 9547 bytes
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.po10
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mobin9663 -> 9659 bytes
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.mobin10794 -> 11033 bytes
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.po199
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.mobin8143 -> 8885 bytes
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.mobin8883 -> 8879 bytes
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/sphinx.pot2
-rw-r--r--sphinx/locale/sv/LC_MESSAGES/sphinx.mobin9153 -> 9149 bytes
-rw-r--r--sphinx/locale/sv/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/tr/LC_MESSAGES/sphinx.mobin9718 -> 9714 bytes
-rw-r--r--sphinx/locale/tr/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mobin10486 -> 10482 bytes
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mobin8592 -> 8588 bytes
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po4
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mobin8398 -> 8394 bytes
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po2
-rw-r--r--sphinx/quickstart.py88
-rw-r--r--sphinx/search/__init__.py2
-rw-r--r--sphinx/texinputs/Makefile4
-rw-r--r--sphinx/texinputs/sphinx.sty86
-rw-r--r--sphinx/texinputs/sphinxhowto.cls2
-rw-r--r--sphinx/texinputs/sphinxmanual.cls2
-rw-r--r--sphinx/themes/agogo/theme.conf2
-rw-r--r--sphinx/themes/basic/layout.html2
-rw-r--r--sphinx/themes/basic/static/doctools.js12
-rw-r--r--sphinx/themes/basic/static/searchtools.js_t4
-rw-r--r--sphinx/util/__init__.py13
-rw-r--r--sphinx/util/inspect.py5
-rw-r--r--sphinx/util/nodes.py9
-rw-r--r--sphinx/util/osutil.py15
-rw-r--r--sphinx/util/pycompat.py24
-rw-r--r--sphinx/writers/html.py5
-rw-r--r--sphinx/writers/latex.py21
-rw-r--r--sphinx/writers/manpage.py11
-rw-r--r--sphinx/writers/texinfo.py44
-rw-r--r--sphinx/writers/text.py16
-rw-r--r--sphinx/writers/xml.py58
108 files changed, 960 insertions, 342 deletions
diff --git a/sphinx/__init__.py b/sphinx/__init__.py
index e1ffc2ed..4538eb4c 100644
--- a/sphinx/__init__.py
+++ b/sphinx/__init__.py
@@ -38,11 +38,20 @@ if '+' in __version__ or 'pre' in __version__:
def main(argv=sys.argv):
"""Sphinx build "main" command-line entry."""
- if sys.version_info[:3] < (2, 4, 0):
+ if sys.version_info[:3] < (2, 5, 0):
sys.stderr.write('Error: Sphinx requires at least '
- 'Python 2.4 to run.\n')
+ 'Python 2.5 to run.\n')
return 1
-
+ if sys.version_info[:3] >= (3, 3, 0):
+ try:
+ import docutils
+ x, y = docutils.__version__.split('.')[:2]
+ if (int(x), int(y)) < (0, 10):
+ sys.stderr.write('Error: Sphinx requires at least '
+ 'Docutils 0.10 for Python 3.3 and above.\n')
+ return 1
+ except Exception:
+ pass
try:
from sphinx import cmdline
except ImportError:
diff --git a/sphinx/apidoc.py b/sphinx/apidoc.py
index ec1a8a33..78ba8877 100644
--- a/sphinx/apidoc.py
+++ b/sphinx/apidoc.py
@@ -157,7 +157,8 @@ def recurse_tree(rootpath, excludes, opts):
root_package = None
toplevels = []
- for root, subs, files in os.walk(rootpath):
+ followlinks = getattr(opts, 'followlinks', False)
+ for root, subs, files in os.walk(rootpath, followlinks=followlinks):
if is_excluded(root, excludes):
del subs[:]
continue
@@ -246,6 +247,10 @@ Note: By default this script will not overwrite already created files.""")
'(default: 4)', type='int', default=4)
parser.add_option('-f', '--force', action='store_true', dest='force',
help='Overwrite all files')
+ parser.add_option('-l', '--follow-links', action='store_true',
+ dest='followlinks', default=False,
+ help='Follow symbolic links. Powerful when combined '
+ 'with collective.recipe.omelette.')
parser.add_option('-n', '--dry-run', action='store_true', dest='dryrun',
help='Run the script without creating files')
parser.add_option('-T', '--no-toc', action='store_true', dest='notoc',
diff --git a/sphinx/application.py b/sphinx/application.py
index bfb39a70..291b2931 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -409,7 +409,7 @@ class Sphinx(object):
if domain.name not in self.domains:
raise ExtensionError('domain %s not yet registered' % domain.name)
if not issubclass(domain, self.domains[domain.name]):
- raise ExtensionError('new domain not a subclass of registered '
+ raise ExtensionError('new domain not a subclass of registered %s '
'domain' % domain.name)
self.domains[domain.name] = domain
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index 5240a1c7..4355b801 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -334,4 +334,6 @@ BUILTIN_BUILDERS = {
'linkcheck': ('linkcheck', 'CheckExternalLinksBuilder'),
'websupport': ('websupport', 'WebSupportBuilder'),
'gettext': ('gettext', 'MessageCatalogBuilder'),
+ 'xml': ('xml', 'XMLBuilder'),
+ 'pseudoxml': ('xml', 'PseudoXMLBuilder'),
}
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index 81840374..f5218673 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -610,7 +610,8 @@ class StandaloneHTMLBuilder(Builder):
"""
Builder.post_process_images(self, doctree)
for node in doctree.traverse(nodes.image):
- if not node.has_key('scale') or \
+ scale_keys = ('scale', 'width', 'height')
+ if not any((key in node) for key in scale_keys) or \
isinstance(node.parent, nodes.reference):
# docutils does unfortunately not preserve the
# ``target`` attribute on images, so we need to check
diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py
index a8adcdac..bcf42741 100644
--- a/sphinx/builders/linkcheck.py
+++ b/sphinx/builders/linkcheck.py
@@ -102,7 +102,8 @@ class CheckExternalLinksBuilder(Builder):
def check():
# check for various conditions without bothering the network
- if len(uri) == 0 or uri[0] == '#' or uri[0:7] == 'mailto:' or uri[0:4] == 'ftp:':
+ if len(uri) == 0 or uri[0] == '#' or \
+ uri[0:7] == 'mailto:' or uri[0:4] == 'ftp:':
return 'unchecked', ''
elif not (uri[0:5] == 'http:' or uri[0:6] == 'https:'):
return 'local', ''
diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py
new file mode 100644
index 00000000..74c1fc06
--- /dev/null
+++ b/sphinx/builders/xml.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+"""
+ sphinx.builders.xml
+ ~~~~~~~~~~~~~~~~~~~
+
+ Docutils-native XML and pseudo-XML builders.
+
+ :copyright: Copyright 2007-2012 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import codecs
+from os import path
+
+from docutils.io import StringOutput
+
+from sphinx.builders import Builder
+from sphinx.util.osutil import ensuredir, os_path
+from sphinx.writers.xml import XMLWriter, PseudoXMLWriter
+
+class XMLBuilder(Builder):
+ """
+ Builds Docutils-native XML.
+ """
+ name = 'xml'
+ format = 'xml'
+ out_suffix = '.xml'
+
+ _writer_class = XMLWriter
+
+ def init(self):
+ pass
+
+ def get_outdated_docs(self):
+ for docname in self.env.found_docs:
+ if docname not in self.env.all_docs:
+ yield docname
+ continue
+ targetname = self.env.doc2path(docname, self.outdir,
+ self.out_suffix)
+ try:
+ targetmtime = path.getmtime(targetname)
+ except Exception:
+ targetmtime = 0
+ try:
+ srcmtime = path.getmtime(self.env.doc2path(docname))
+ if srcmtime > targetmtime:
+ yield docname
+ except EnvironmentError:
+ # source doesn't exist anymore
+ pass
+
+ def get_target_uri(self, docname, typ=None):
+ return ''
+
+ def prepare_writing(self, docnames):
+ self.writer = self._writer_class(self)
+
+ def write_doc(self, docname, doctree):
+ destination = StringOutput(encoding='utf-8')
+ self.writer.write(doctree, destination)
+ outfilename = path.join(self.outdir, os_path(docname) + self.out_suffix)
+ ensuredir(path.dirname(outfilename))
+ try:
+ f = codecs.open(outfilename, 'w', 'utf-8')
+ try:
+ f.write(self.writer.output)
+ finally:
+ f.close()
+ except (IOError, OSError), err:
+ self.warn("error writing file %s: %s" % (outfilename, err))
+
+ def finish(self):
+ pass
+
+
+class PseudoXMLBuilder(XMLBuilder):
+ """
+ Builds pseudo-XML for display purposes.
+ """
+ name = 'pseudoxml'
+ format = 'pseudoxml'
+ out_suffix = '.pseudoxml'
+
+ _writer_class = PseudoXMLWriter
diff --git a/sphinx/cmdline.py b/sphinx/cmdline.py
index e9d70765..eb05d176 100644
--- a/sphinx/cmdline.py
+++ b/sphinx/cmdline.py
@@ -231,7 +231,7 @@ def main(argv):
'can be provided next time.')
print >>error, (
'Either send bugs to the mailing list at '
- '<http://groups.google.com/group/sphinx-dev/>,\n'
+ '<http://groups.google.com/group/sphinx-users/>,\n'
'or report them in the tracker at '
'<http://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks!')
return 1
diff --git a/sphinx/config.py b/sphinx/config.py
index c020992b..3599ccfc 100644
--- a/sphinx/config.py
+++ b/sphinx/config.py
@@ -184,6 +184,9 @@ class Config(object):
# gettext options
gettext_compact = (True, 'gettext'),
+
+ # XML options
+ xml_pretty = (True, 'env'),
)
def __init__(self, dirname, filename, overrides, tags):
diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py
index aa4142d6..506d4be9 100644
--- a/sphinx/directives/other.py
+++ b/sphinx/directives/other.py
@@ -338,9 +338,46 @@ class Only(Directive):
node.document = self.state.document
set_source_info(self, node)
node['expr'] = self.arguments[0]
- self.state.nested_parse(self.content, self.content_offset, node,
- match_titles=1)
- return [node]
+
+ # Same as util.nested_parse_with_titles but try to handle nested
+ # sections which should be raised higher up the doctree.
+ surrounding_title_styles = self.state.memo.title_styles
+ surrounding_section_level = self.state.memo.section_level
+ self.state.memo.title_styles = []
+ self.state.memo.section_level = 0
+ try:
+ result = self.state.nested_parse(self.content, self.content_offset,
+ node, match_titles=1)
+ title_styles = self.state.memo.title_styles
+ if (not surrounding_title_styles
+ or not title_styles
+ or title_styles[0] not in surrounding_title_styles
+ or not self.state.parent):
+ # No nested sections so no special handling needed.
+ return [node]
+ # Calculate the depths of the current and nested sections.
+ current_depth = 0
+ parent = self.state.parent
+ while parent:
+ current_depth += 1
+ parent = parent.parent
+ current_depth -= 2
+ title_style = title_styles[0]
+ nested_depth = len(surrounding_title_styles)
+ if title_style in surrounding_title_styles:
+ nested_depth = surrounding_title_styles.index(title_style)
+ # Use these depths to determine where the nested sections should
+ # be placed in the doctree.
+ n_sects_to_raise = current_depth - nested_depth + 1
+ parent = self.state.parent
+ for i in xrange(n_sects_to_raise):
+ if parent.parent:
+ parent = parent.parent
+ parent.append(node)
+ return []
+ finally:
+ self.state.memo.title_styles = surrounding_title_styles
+ self.state.memo.section_level = surrounding_section_level
class Include(BaseInclude):
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py
index a6392c1c..e4204aab 100644
--- a/sphinx/domains/cpp.py
+++ b/sphinx/domains/cpp.py
@@ -672,8 +672,9 @@ class DefinitionParser(object):
except ValueError:
return False
- def _parse_builtin(self, modifier):
- path = [modifier]
+ def _parse_builtin(self, modifiers):
+ modifier = modifiers[-1]
+ path = modifiers
following = self._modifiers[modifier]
while 1:
self.skip_ws()
@@ -730,9 +731,10 @@ class DefinitionParser(object):
# impossible for a template to follow, so what
# we do is go to a different function that just
# eats types
- if following is not None:
- return self._parse_builtin(modifier)
modifiers.append(modifier)
+ if following is not None:
+ return self._parse_builtin(modifiers)
+ self.skip_ws()
else:
self.backout()
break
@@ -760,17 +762,33 @@ class DefinitionParser(object):
self.skip_ws()
if self.match(_string_re):
return self.matched_text
- idx1 = self.definition.find(',', self.pos)
- idx2 = self.definition.find(')', self.pos)
- if idx1 < 0:
- idx = idx2
- elif idx2 < 0:
- idx = idx1
- else:
- idx = min(idx1, idx2)
- if idx < 0:
- self.fail('unexpected end in default expression')
- rv = self.definition[self.pos:idx]
+ paren_stack_depth = 0
+ max_pos = len(self.definition)
+ rv_start = self.pos
+ while 1:
+ idx0 = self.definition.find('(', self.pos)
+ idx1 = self.definition.find(',', self.pos)
+ idx2 = self.definition.find(')', self.pos)
+ if idx0 < 0:
+ idx0 = max_pos
+ if idx1 < 0:
+ idx1 = max_pos
+ if idx2 < 0:
+ idx2 = max_pos
+ idx = min(idx0, idx1, idx2)
+ if idx >= max_pos:
+ self.fail('unexpected end in default expression')
+ if idx == idx0:
+ paren_stack_depth += 1
+ elif idx == idx2:
+ paren_stack_depth -= 1
+ if paren_stack_depth < 0:
+ break
+ elif paren_stack_depth == 0:
+ break
+ self.pos = idx+1
+
+ rv = self.definition[rv_start:idx]
self.pos = idx
return rv
@@ -836,7 +854,7 @@ class DefinitionParser(object):
visibility = 'public'
if self.match(_visibility_re):
visibility = self.matched_text
- static = self.skip_word('static')
+ static = self.skip_word_and_ws('static')
return visibility, static
def parse_type(self):
diff --git a/sphinx/environment.py b/sphinx/environment.py
index ec302390..cada082d 100644
--- a/sphinx/environment.py
+++ b/sphinx/environment.py
@@ -66,6 +66,7 @@ default_settings = {
'doctitle_xform': False,
'sectsubtitle_xform': False,
'halt_level': 5,
+ 'file_insertion_enabled': True,
}
# This is increased every time an environment attribute is added
@@ -193,6 +194,7 @@ class Locale(Transform):
Replace translatable nodes with their translated doctree.
"""
default_priority = 0
+
def apply(self):
env = self.document.settings.env
settings, source = self.document.settings, self.document['source']
@@ -213,17 +215,63 @@ class Locale(Transform):
parser = RSTParser()
for node, msg in extract_messages(self.document):
- patch = new_document(source, settings)
msgstr = catalog.gettext(msg)
# XXX add marker to untranslated parts
if not msgstr or msgstr == msg: # as-of-yet untranslated
continue
+
+ patch = new_document(source, settings)
parser.parse(msgstr, patch)
patch = patch[0]
# XXX doctest and other block markup
if not isinstance(patch, nodes.paragraph):
continue # skip for now
- for child in patch.children: # update leaves
+
+ # auto-numbered foot note reference should use original 'ids'.
+ is_autonumber_footnote_ref = lambda node: \
+ isinstance(node, nodes.footnote_reference) \
+ and node.get('auto') == 1
+ old_foot_refs = node.traverse(is_autonumber_footnote_ref)
+ new_foot_refs = patch.traverse(is_autonumber_footnote_ref)
+ if len(old_foot_refs) != len(new_foot_refs):
+ env.warn_node('inconsistent footnote references in '
+ 'translated message', node)
+ for old, new in zip(old_foot_refs, new_foot_refs):
+ new['ids'] = old['ids']
+ self.document.autofootnote_refs.remove(old)
+ self.document.note_autofootnote_ref(new)
+
+ # reference should use original 'refname'.
+ # * reference target ".. _Python: ..." is not translatable.
+ # * section refname is not translatable.
+ # * inline reference "`Python <...>`_" has no 'refname'.
+ is_refnamed_ref = lambda node: \
+ isinstance(node, nodes.reference) \
+ and 'refname' in node
+ old_refs = node.traverse(is_refnamed_ref)
+ new_refs = patch.traverse(is_refnamed_ref)
+ applied_refname_map = {}
+ if len(old_refs) != len(new_refs):
+ env.warn_node('inconsistent references in '
+ 'translated message', node)
+ for new in new_refs:
+ if new['refname'] in applied_refname_map:
+ # 2nd appearance of the reference
+ new['refname'] = applied_refname_map[new['refname']]
+ elif old_refs:
+ # 1st appearance of the reference in old_refs
+ old = old_refs.pop(0)
+ refname = old['refname']
+ new['refname'] = refname
+ applied_refname_map[new['refname']] = refname
+ else:
+ # the reference is not found in old_refs
+ applied_refname_map[new['refname']] = new['refname']
+
+ self.document.note_refname(new)
+
+ # update leaves
+ for child in patch.children:
child.parent = node
node.children = patch.children
@@ -782,7 +830,11 @@ class BuildEnvironment:
app.emit('doctree-read', doctree)
# store time of build, for outdated files detection
- self.all_docs[docname] = time.time()
+ # (Some filesystems have coarse timestamp resolution;
+ # therefore time.time() can be older than filesystem's timestamp.
+ # For example, FAT32 has 2sec timestamp resolution.)
+ self.all_docs[docname] = max(
+ time.time(), path.getmtime(self.doc2path(docname)))
if self.versioning_condition:
# get old doctree
@@ -1759,4 +1811,3 @@ class BuildEnvironment:
if 'orphan' in self.metadata[docname]:
continue
self.warn(docname, 'document isn\'t included in any toctree')
-
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 9c6575f5..691fef7a 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -489,20 +489,26 @@ class Documenter(object):
If *want_all* is True, return all members. Else, only return those
members given by *self.options.members* (which may also be none).
"""
+ analyzed_member_names = set()
+ if self.analyzer:
+ attr_docs = self.analyzer.find_attr_docs()
+ namespace = '.'.join(self.objpath)
+ for item in attr_docs.iteritems():
+ if item[0][0] == namespace:
+ analyzed_member_names.add(item[0][1])
if not want_all:
if not self.options.members:
return False, []
# specific members given
- ret = []
+ members = []
for mname in self.options.members:
try:
- ret.append((mname, self.get_attr(self.object, mname)))
+ members.append((mname, self.get_attr(self.object, mname)))
except AttributeError:
- self.directive.warn('missing attribute %s in object %s'
- % (mname, self.fullname))
- return False, ret
-
- if self.options.inherited_members:
+ if mname not in analyzed_member_names:
+ self.directive.warn('missing attribute %s in object %s'
+ % (mname, self.fullname))
+ elif self.options.inherited_members:
# safe_getmembers() uses dir() which pulls in members from all
# base classes
members = safe_getmembers(self.object)
@@ -521,13 +527,10 @@ class Documenter(object):
for mname in obj_dict.keys()]
membernames = set(m[0] for m in members)
# add instance attributes from the analyzer
- if self.analyzer:
- attr_docs = self.analyzer.find_attr_docs()
- namespace = '.'.join(self.objpath)
- for item in attr_docs.iteritems():
- if item[0][0] == namespace:
- if item[0][1] not in membernames:
- members.append((item[0][1], INSTANCEATTR))
+ for aname in analyzed_member_names:
+ if aname not in membernames and \
+ (want_all or aname in self.options.members):
+ members.append((aname, INSTANCEATTR))
return False, sorted(members)
def filter_members(self, members, want_all):
@@ -573,7 +576,11 @@ class Documenter(object):
if want_all and membername.startswith('__') and \
membername.endswith('__') and len(membername) > 4:
# special __methods__
- if self.options.special_members and membername != '__doc__':
+ if self.options.special_members is ALL and \
+ membername != '__doc__':
+ keep = has_doc or self.options.undoc_members
+ elif self.options.special_members and \
+ membername in self.options.special_members:
keep = has_doc or self.options.undoc_members
elif want_all and membername.startswith('_'):
# ignore members whose name starts with _ by default
@@ -748,7 +755,7 @@ class ModuleDocumenter(Documenter):
'show-inheritance': bool_option, 'synopsis': identity,
'platform': identity, 'deprecated': bool_option,
'member-order': identity, 'exclude-members': members_set_option,
- 'private-members': bool_option, 'special-members': bool_option,
+ 'private-members': bool_option, 'special-members': members_option,
}
@classmethod
@@ -862,7 +869,7 @@ class DocstringSignatureMixin(object):
"""
def _find_signature(self, encoding=None):
- docstrings = Documenter.get_doc(self, encoding, 2)
+ docstrings = Documenter.get_doc(self, encoding)
if len(docstrings) != 1:
return
doclines = docstrings[0]
@@ -877,6 +884,9 @@ class DocstringSignatureMixin(object):
# the base name must match ours
if not self.objpath or base != self.objpath[-1]:
return
+ # re-prepare docstring to ignore indentation after signature
+ docstrings = Documenter.get_doc(self, encoding, 2)
+ doclines = docstrings[0]
# ok, now jump over remaining empty lines and set the remaining
# lines as the new doclines
i = 1
@@ -949,7 +959,7 @@ class ClassDocumenter(ModuleLevelDocumenter):
'noindex': bool_option, 'inherited-members': bool_option,
'show-inheritance': bool_option, 'member-order': identity,
'exclude-members': members_set_option,
- 'private-members': bool_option, 'special-members': bool_option,
+ 'private-members': bool_option, 'special-members': members_option,
}
@classmethod
@@ -1098,7 +1108,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter):
"""
objtype = 'method'
member_order = 50
- priority = 0
+ priority = 1 # must be more than FunctionDocumenter
@classmethod
def can_document_member(cls, member, membername, isattr, parent):
diff --git a/sphinx/ext/graphviz.py b/sphinx/ext/graphviz.py
index 28938140..593c76e3 100644
--- a/sphinx/ext/graphviz.py
+++ b/sphinx/ext/graphviz.py
@@ -125,7 +125,7 @@ def render_dot(self, code, options, format, prefix='graphviz'):
str(self.builder.config.graphviz_dot) + \
str(self.builder.config.graphviz_dot_args)
).encode('utf-8')
-
+
fname = '%s-%s.%s' % (prefix, sha(hashkey).hexdigest(), format)
if hasattr(self.builder, 'imgpath'):
# HTML
@@ -229,10 +229,10 @@ def render_dot_html(self, node, code, options, prefix='graphviz',
(fname, alt, imgcss))
else:
# has a map: get the name of the map and connect the parts
- mapname = mapname_re.match(imgmap[0]).group(1)
+ mapname = mapname_re.match(imgmap[0].decode('utf-8')).group(1)
self.body.append('<img src="%s" alt="%s" usemap="#%s" %s/>\n' %
(fname, alt, mapname, imgcss))
- self.body.extend(imgmap)
+ self.body.extend([item.decode('utf-8') for item in imgmap])
if node.get('caption') and not inline:
self.body.append('</p>\n<p class="caption">')
self.body.append(self.encode(node['caption']))
diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py
index be7a6766..570a2103 100644
--- a/sphinx/ext/inheritance_diagram.py
+++ b/sphinx/ext/inheritance_diagram.py
@@ -168,7 +168,7 @@ class InheritanceGraph(object):
for cls in classes:
recurse(cls)
- return all_classes.values()
+ return all_classes
def class_name(self, cls, parts=0):
"""Given a class object, return a fully-qualified name.
@@ -188,7 +188,7 @@ class InheritanceGraph(object):
def get_all_class_names(self):
"""Get all of the class names involved in the graph."""
- return [fullname for (_, fullname, _) in self.class_info]
+ return [fullname for (_, fullname, _) in self.class_info.values()]
# These are the default attrs for graphviz
default_graph_attrs = {
@@ -199,8 +199,8 @@ class InheritanceGraph(object):
'shape': 'box',
'fontsize': 10,
'height': 0.25,
- 'fontname': 'Vera Sans, DejaVu Sans, Liberation Sans, '
- 'Arial, Helvetica, sans',
+ 'fontname': '"Vera Sans, DejaVu Sans, Liberation Sans, '
+ 'Arial, Helvetica, sans"',
'style': '"setlinewidth(0.5)"',
}
default_edge_attrs = {
@@ -241,12 +241,16 @@ class InheritanceGraph(object):
res.append('digraph %s {\n' % name)
res.append(self._format_graph_attrs(g_attrs))
- for name, fullname, bases in self.class_info:
+ for cls, (name, fullname, bases) in self.class_info.items():
# Write the node
this_node_attrs = n_attrs.copy()
- url = urls.get(fullname)
- if url is not None:
- this_node_attrs['URL'] = '"%s"' % url
+ if fullname in urls:
+ this_node_attrs['URL'] = '"%s"' % urls[fullname]
+ # Use first line of docstring as tooltip, if available
+ if cls.__doc__:
+ doc = cls.__doc__.strip().split("\n")[0]
+ if doc:
+ this_node_attrs['tooltip'] = '"%s"' % doc
res.append(' "%s" [%s];\n' %
(name, self._format_node_attrs(this_node_attrs)))
diff --git a/sphinx/ext/intersphinx.py b/sphinx/ext/intersphinx.py
index 9551e3cd..d0c812b3 100644
--- a/sphinx/ext/intersphinx.py
+++ b/sphinx/ext/intersphinx.py
@@ -188,7 +188,17 @@ def load_mappings(app):
if update:
env.intersphinx_inventory = {}
env.intersphinx_named_inventory = {}
- for name, _, invdata in cache.itervalues():
+ # Duplicate values in different inventories will shadow each
+ # other; which one will override which can vary between builds
+ # since they are specified using an unordered dict. To make
+ # it more consistent, we sort the named inventories and then
+ # add the unnamed inventories last. This means that the
+ # unnamed inventories will shadow the named ones but the named
+ # ones can still be accessed when the name is specified.
+ cached_vals = list(cache.itervalues())
+ named_vals = sorted(v for v in cached_vals if v[0])
+ unnamed_vals = [v for v in cached_vals if not v[0]]
+ for name, _, invdata in named_vals + unnamed_vals:
if name:
env.intersphinx_named_inventory[name] = invdata
for type, objects in invdata.iteritems():
diff --git a/sphinx/ext/linkcode.py b/sphinx/ext/linkcode.py
new file mode 100644
index 00000000..be834001
--- /dev/null
+++ b/sphinx/ext/linkcode.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+"""
+ sphinx.ext.linkcode
+ ~~~~~~~~~~~~~~~~~~~
+
+ Add external links to module code in Python object descriptions.
+
+ :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.locale import _
+from sphinx.errors import SphinxError
+
+class LinkcodeError(SphinxError):
+ category = "linkcode error"
+
+def doctree_read(app, doctree):
+ env = app.builder.env
+
+ resolve_target = getattr(env.config, 'linkcode_resolve', None)
+ if not callable(env.config.linkcode_resolve):
+ raise LinkcodeError(
+ "Function `linkcode_resolve` is not given in conf.py")
+
+ domain_keys = dict(
+ py=['module', 'fullname'],
+ c=['names'],
+ cpp=['names'],
+ js=['object', 'fullname'],
+ )
+
+ for objnode in doctree.traverse(addnodes.desc):
+ domain = objnode.get('domain')
+ uris = set()
+ for signode in objnode:
+ if not isinstance(signode, addnodes.desc_signature):
+ continue
+
+ # Convert signode to a specified format
+ info = {}
+ for key in domain_keys.get(domain, []):
+ value = signode.get(key)
+ if not value:
+ value = ''
+ info[key] = value
+ if not info:
+ continue
+
+ # Call user code to resolve the link
+ uri = resolve_target(domain, info)
+ if not uri:
+ # no source
+ continue
+
+ if uri in uris or not uri:
+ # only one link per name, please
+ continue
+ uris.add(uri)
+
+ onlynode = addnodes.only(expr='html')
+ onlynode += nodes.reference('', '', internal=False, refuri=uri)
+ onlynode[0] += nodes.inline('', _('[source]'),
+ classes=['viewcode-link'])
+ signode += onlynode
+
+def setup(app):
+ app.connect('doctree-read', doctree_read)
+ app.add_config_value('linkcode_resolve', None, '')
diff --git a/sphinx/ext/oldcmarkup.py b/sphinx/ext/oldcmarkup.py
index 9dad85f4..a6eeee32 100644
--- a/sphinx/ext/oldcmarkup.py
+++ b/sphinx/ext/oldcmarkup.py
@@ -16,7 +16,7 @@ from sphinx.util.compat import Directive
_warned_oldcmarkup = False
WARNING_MSG = 'using old C markup; please migrate to new-style markup ' \
'(e.g. c:function instead of cfunction), see ' \
- 'http://sphinx.pocoo.org/domains.html'
+ 'http://sphinx-doc.org/domains.html'
class OldCDirective(Directive):
diff --git a/sphinx/ext/pngmath.py b/sphinx/ext/pngmath.py
index 78c331a6..549dfb83 100644
--- a/sphinx/ext/pngmath.py
+++ b/sphinx/ext/pngmath.py
@@ -237,7 +237,8 @@ def setup(app):
app.add_config_value('pngmath_latex', 'latex', 'html')
app.add_config_value('pngmath_use_preview', False, 'html')
app.add_config_value('pngmath_dvipng_args',
- ['-gamma 1.5', '-D 110'], 'html')
+ ['-gamma', '1.5', '-D', '110', '-bg', 'Transparent'],
+ 'html')
app.add_config_value('pngmath_latex_args', [], 'html')
app.add_config_value('pngmath_latex_preamble', '', 'html')
app.add_config_value('pngmath_add_tooltips', True, 'html')
diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py
index 2f61c1ef..ec1eca92 100644
--- a/sphinx/highlighting.py
+++ b/sphinx/highlighting.py
@@ -143,6 +143,12 @@ class PygmentsBridge(object):
# just replace all non-ASCII characters.
src = src.encode('ascii', 'replace')
+ if (3, 0) <= sys.version_info < (3, 2):
+ # Python 3.1 can't process '\r' as linesep.
+ # `parser.suite("print('hello')\r\n")` cause error.
+ if '\r\n' in src:
+ src = src.replace('\r\n', '\n')
+
if parser is None:
return True
@@ -207,6 +213,8 @@ class PygmentsBridge(object):
if self.dest == 'html':
return hlsource
else:
+ if not isinstance(hlsource, unicode): # Py2 / Pygments < 1.6
+ hlsource = hlsource.decode()
return hlsource.translate(tex_hl_escape_map_new)
except ErrorToken:
# this is most probably not the selected language,
diff --git a/sphinx/locale/bn/LC_MESSAGES/sphinx.mo b/sphinx/locale/bn/LC_MESSAGES/sphinx.mo
index cb06ba98..b5da72d2 100644
--- a/sphinx/locale/bn/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/bn/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/bn/LC_MESSAGES/sphinx.po b/sphinx/locale/bn/LC_MESSAGES/sphinx.po
index 49549939..69bd75e5 100644
--- a/sphinx/locale/bn/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/bn/LC_MESSAGES/sphinx.po
@@ -639,10 +639,10 @@ msgstr "%(last_updated)s সর্বশেষ পরিবর্তন কর
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"<a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s দিয়ে "
+"<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s দিয়ে "
"তৈরী।"
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/ca/LC_MESSAGES/sphinx.mo b/sphinx/locale/ca/LC_MESSAGES/sphinx.mo
index fc373e47..bdcc3aa4 100644
--- a/sphinx/locale/ca/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ca/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ca/LC_MESSAGES/sphinx.po b/sphinx/locale/ca/LC_MESSAGES/sphinx.po
index c876228e..c1d5a1b3 100644
--- a/sphinx/locale/ca/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ca/LC_MESSAGES/sphinx.po
@@ -633,10 +633,10 @@ msgstr "Última actualització el %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Creat amb <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Creat amb <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/cs/LC_MESSAGES/sphinx.mo b/sphinx/locale/cs/LC_MESSAGES/sphinx.mo
index ba0798db..58037693 100644
--- a/sphinx/locale/cs/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/cs/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/cs/LC_MESSAGES/sphinx.po b/sphinx/locale/cs/LC_MESSAGES/sphinx.po
index 9ed728ed..d42601bb 100644
--- a/sphinx/locale/cs/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/cs/LC_MESSAGES/sphinx.po
@@ -636,10 +636,10 @@ msgstr "Aktualizováno dne %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Vytvořeno pomocí <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Vytvořeno pomocí <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/da/LC_MESSAGES/sphinx.mo b/sphinx/locale/da/LC_MESSAGES/sphinx.mo
index d0006ee2..9c838221 100644
--- a/sphinx/locale/da/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/da/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/da/LC_MESSAGES/sphinx.po b/sphinx/locale/da/LC_MESSAGES/sphinx.po
index df991aec..cf74a389 100644
--- a/sphinx/locale/da/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/da/LC_MESSAGES/sphinx.po
@@ -628,10 +628,10 @@ msgstr "Sidst opdateret %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Bygget med <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Bygget med <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/de/LC_MESSAGES/sphinx.mo b/sphinx/locale/de/LC_MESSAGES/sphinx.mo
index ce12882d..07748898 100644
--- a/sphinx/locale/de/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/de/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/de/LC_MESSAGES/sphinx.po b/sphinx/locale/de/LC_MESSAGES/sphinx.po
index 50ba7490..50db2fba 100644
--- a/sphinx/locale/de/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/de/LC_MESSAGES/sphinx.po
@@ -629,10 +629,10 @@ msgstr "Zuletzt aktualisiert am %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Mit <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s "
+"Mit <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s "
"erstellt."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/es/LC_MESSAGES/sphinx.mo b/sphinx/locale/es/LC_MESSAGES/sphinx.mo
index 87b44fe6..825cfedb 100644
--- a/sphinx/locale/es/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/es/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/es/LC_MESSAGES/sphinx.po b/sphinx/locale/es/LC_MESSAGES/sphinx.po
index fbcba7d9..fda55ec7 100644
--- a/sphinx/locale/es/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/es/LC_MESSAGES/sphinx.po
@@ -642,10 +642,10 @@ msgstr "Actualizado por última vez en %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Creado con <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Creado con <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/et/LC_MESSAGES/sphinx.js b/sphinx/locale/et/LC_MESSAGES/sphinx.js
index 5f51a53a..abf00ee5 100644
--- a/sphinx/locale/et/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/et/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "et", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Varja otsingutulemused", "Permalink to this definition": "P\u00fcsilink sellele definitsioonile", "Expand sidebar": "N\u00e4ita k\u00fclgriba", "Permalink to this headline": "P\u00fcsilink sellele pealkirjale", "Collapse sidebar": "Varja k\u00fclgriba"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "et", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Varja otsingutulemused", "Permalink to this definition": "P\u00fcsiviit sellele definitsioonile", "Expand sidebar": "N\u00e4ita k\u00fclgriba", "Permalink to this headline": "P\u00fcsiviit sellele pealkirjale", "Collapse sidebar": "Varja k\u00fclgriba"}}); \ No newline at end of file
diff --git a/sphinx/locale/et/LC_MESSAGES/sphinx.mo b/sphinx/locale/et/LC_MESSAGES/sphinx.mo
index 14b911c0..176d513e 100644
--- a/sphinx/locale/et/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/et/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/et/LC_MESSAGES/sphinx.po b/sphinx/locale/et/LC_MESSAGES/sphinx.po
index a687f297..3d2e56f4 100644
--- a/sphinx/locale/et/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/et/LC_MESSAGES/sphinx.po
@@ -1,15 +1,20 @@
# Estonian translations for Sphinx.
-# Copyright (C) 2010 ORGANIZATION
+# Sphinxi eesti keele tõlge.
+#
+# Copyright (C) 2011‒2012 Pocoo Team.
+#
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
+# Aivar Annamaa <aivar.annamaa@gmail.com>, 2011
+# Ivar Smolin <okul at linux ee>, 2012
+
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.0pre/8b971dbc7d36\n"
+"Project-Id-Version: Sphinx 1.1.3"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2011-09-21 10:06+0200\n"
-"PO-Revision-Date: 2011-09-18 11:40+0200\n"
-"Last-Translator: Aivar Annamaa <aivar.annamaa@gmail.com>\n"
+"PO-Revision-Date: 2012-09-15 12:56+0300\n"
+"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
"Language-Team: \n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
@@ -18,7 +23,7 @@ msgstr ""
"Generated-By: Babel 0.9.6\n"
#: sphinx/config.py:81
-#, fuzzy, python-format
+#, python-format
msgid "%s %s documentation"
msgstr "%s %s dokumentatsioon"
@@ -26,22 +31,22 @@ msgstr "%s %s dokumentatsioon"
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:203
#, python-format
msgid "%B %d, %Y"
-msgstr "%B %d, %Y"
+msgstr "%d. %B %Y"
#: sphinx/environment.py:1625
#, python-format
msgid "see %s"
-msgstr ""
+msgstr "vaata %s"
#: sphinx/environment.py:1628
#, python-format
msgid "see also %s"
-msgstr ""
+msgstr "vaata ka %s"
#: sphinx/roles.py:175
-#, fuzzy, python-format
+#, python-format
msgid "Python Enhancement Proposals; PEP %s"
-msgstr "Python Enhancement Proposals!PEP %s"
+msgstr "Pythoni täiustusettepanekud, PEP %s"
#: sphinx/builders/changes.py:73
msgid "Builtins"
@@ -54,7 +59,7 @@ msgstr "Mooduli tase"
#: sphinx/builders/html.py:274
#, python-format
msgid "%b %d, %Y"
-msgstr "%b %d, %Y"
+msgstr "%d. %b %Y"
#: sphinx/builders/html.py:293 sphinx/themes/basic/defindex.html:30
msgid "General Index"
@@ -73,8 +78,11 @@ msgid "previous"
msgstr "eelmine"
#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
+# paistab olevat ristviitamiseks. ei oska öelda, kas siia sobiks paremini
+# 'Sektsioonis' või 'Teema' või midagi muud. sestap panin enamvähem lollikindla
+# 'Pealkirjas'. (okul)
msgid " (in "
-msgstr " (in "
+msgstr " (pealkirjas "
#: sphinx/directives/other.py:136
msgid "Section author: "
@@ -196,9 +204,9 @@ msgid "%s() (%s method)"
msgstr "%s() (%s meetod)"
#: sphinx/domains/javascript.py:109
-#, fuzzy, python-format
+#, python-format
msgid "%s() (class)"
-msgstr "%s (C++ klass)"
+msgstr "%s() (klass)"
#: sphinx/domains/javascript.py:111
#, python-format
@@ -216,7 +224,7 @@ msgstr "Argumendid"
#: sphinx/domains/javascript.py:125
msgid "Throws"
-msgstr "Throws"
+msgstr ""
#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
msgid "data"
@@ -232,7 +240,7 @@ msgstr "Muutujad"
#: sphinx/domains/python.py:104
msgid "Raises"
-msgstr "Raises"
+msgstr ""
#: sphinx/domains/python.py:255 sphinx/domains/python.py:312
#: sphinx/domains/python.py:324 sphinx/domains/python.py:337
@@ -278,12 +286,12 @@ msgstr "%s() (%s staatiline meetod)"
#: sphinx/domains/python.py:341
#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s klassi meetod)"
+msgstr "%s() (klassi %s.%s meetod)"
#: sphinx/domains/python.py:344
#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s klassi meetod)"
+msgstr "%s() (klassi %s meetod)"
#: sphinx/domains/python.py:354
#, python-format
@@ -305,7 +313,7 @@ msgstr "moodulid"
#: sphinx/domains/python.py:537
msgid "Deprecated"
-msgstr "Ebaasoovitav"
+msgstr "Iganenud"
#: sphinx/domains/python.py:562 sphinx/locale/__init__.py:179
msgid "exception"
@@ -328,9 +336,8 @@ msgid "module"
msgstr "moodul"
#: sphinx/domains/python.py:695
-#, fuzzy
msgid " (deprecated)"
-msgstr "Ebaasoovitav"
+msgstr " (iganenud)"
#: sphinx/domains/rst.py:55
#, python-format
@@ -362,11 +369,11 @@ msgstr "%s käsurea valik; %s"
#: sphinx/domains/std.py:393
msgid "glossary term"
-msgstr "termin"
+msgstr "sõnastiku termin"
#: sphinx/domains/std.py:394
msgid "grammar token"
-msgstr "grammatika märgend"
+msgstr "grammatika märk"
#: sphinx/domains/std.py:395
msgid "reference label"
@@ -378,7 +385,7 @@ msgstr "keskkonnamuutuja"
#: sphinx/domains/std.py:397
msgid "program option"
-msgstr "programmi seade"
+msgstr "programmi valik"
#: sphinx/domains/std.py:427 sphinx/themes/basic/genindex-single.html:32
#: sphinx/themes/basic/genindex-split.html:11
@@ -395,26 +402,26 @@ msgstr "Mooduli indeks"
#: sphinx/domains/std.py:429 sphinx/themes/basic/defindex.html:25
msgid "Search Page"
-msgstr "Otsingu lehekülg"
+msgstr "Otsinguleht"
#: sphinx/ext/autodoc.py:1002
#, python-format
msgid " Bases: %s"
-msgstr " Baasid: %s"
+msgstr " Pärineb: %s"
#: sphinx/ext/autodoc.py:1038
#, python-format
msgid "alias of :class:`%s`"
-msgstr "sünonüüm :class:`%s`"
+msgstr "klassi :class:`%s` sünonüüm"
#: sphinx/ext/todo.py:41
msgid "Todo"
-msgstr "Tegemata"
+msgstr "Teha"
#: sphinx/ext/todo.py:109
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(Algne kirje asub failis %s, real %d.)"
+msgstr "(<<Algne kirje>> asub failis %s real %d.)"
#: sphinx/ext/todo.py:117
msgid "original entry"
@@ -498,7 +505,7 @@ msgstr "Muudetud versioonis %s"
#: sphinx/locale/__init__.py:170
#, python-format
msgid "Deprecated since version %s"
-msgstr "Ebasoovitav alates versioonist %s"
+msgstr "Iganenud alates versioonist %s"
#: sphinx/locale/__init__.py:176
msgid "keyword"
@@ -536,7 +543,7 @@ msgstr "Otsi"
#: sphinx/themes/agogo/layout.html:57 sphinx/themes/basic/searchbox.html:20
msgid "Enter search terms or a module, class or function name."
-msgstr "Sisesta otsingusõna"
+msgstr "Sisesta otsingusõna või mooduli/klassi/funktsiooni nimi."
#: sphinx/themes/agogo/layout.html:78 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
@@ -609,17 +616,17 @@ msgstr "Info selle dokumentatsiooni kohta"
#: sphinx/themes/basic/layout.html:140
msgid "Copyright"
-msgstr "Copyright"
+msgstr "Autoriõigused"
#: sphinx/themes/basic/layout.html:189
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&copy; <a href=\"%(path)s\">Autoriõigused</a> %(copyright)s."
#: sphinx/themes/basic/layout.html:191
#, python-format
msgid "&copy; Copyright %(copyright)s."
-msgstr "&copy; Copyright %(copyright)s."
+msgstr "&copy; Autoriõigused %(copyright)s."
#: sphinx/themes/basic/layout.html:195
#, python-format
@@ -629,10 +636,10 @@ msgstr "Viimati uuendatud %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Loodud <a href=\"http://sphinx.pocoo.org/\">Sphinx-iga</a> (versioon: "
+"Loodud <a href=\"http://sphinx-doc.org/\">Sphinxiga</a> (versioon: "
"%(sphinx_version)s)."
#: sphinx/themes/basic/opensearch.xml:4
@@ -669,9 +676,9 @@ msgid ""
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
msgstr ""
-"Siin saad otsida käesolevast dokumentatsioonist. Sisesta otsisõned "
+"Siin saad otsida käesolevast dokumentatsioonist. Sisesta otsisõnad "
"allolevasse lahtrisse ning klõpsa \"Otsi\". Tulemuseks antakse "
-"leheküljed, mis sisaldavad kõiki otsisõnesid."
+"leheküljed, mis sisaldavad kõiki otsisõnasid."
#: sphinx/themes/basic/search.html:36
msgid "search"
@@ -683,7 +690,7 @@ msgstr "Otsingutulemused"
#: sphinx/themes/basic/search.html:42
msgid "Your search did not match any results."
-msgstr "Otsing ei andnud tulemusi"
+msgstr "Otsing ei andnud tulemusi."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -691,13 +698,13 @@ msgstr "Kiirotsing"
#: sphinx/themes/basic/sourcelink.html:11
msgid "This Page"
-msgstr "Käesolev lehekülg"
+msgstr "Käesolev leht"
#: sphinx/themes/basic/changes/frameset.html:5
#: sphinx/themes/basic/changes/versionchanges.html:12
#, python-format
msgid "Changes in Version %(version)s &mdash; %(docstitle)s"
-msgstr "Muudatused versioonis %(version)s &mdash; %(docstitle)s"
+msgstr "Muutused versioonis %(version)s &mdash; %(docstitle)s"
#: sphinx/themes/basic/changes/rstsource.html:5
#, python-format
@@ -707,28 +714,28 @@ msgstr "%(filename)s &mdash; %(docstitle)s"
#: sphinx/themes/basic/changes/versionchanges.html:17
#, python-format
msgid "Automatically generated list of changes in version %(version)s"
-msgstr "Automaatselt genereeritud nimekiri versiooni %(version)s muudatustest"
+msgstr "Automaatselt genereeritud nimekiri versiooni %(version)s muutustest"
#: sphinx/themes/basic/changes/versionchanges.html:18
msgid "Library changes"
-msgstr "Teegi muudatused"
+msgstr "Teegi muutused"
#: sphinx/themes/basic/changes/versionchanges.html:23
msgid "C API changes"
-msgstr "C API muudatused"
+msgstr "C API muutused"
#: sphinx/themes/basic/changes/versionchanges.html:25
msgid "Other changes"
-msgstr "Ülejäänud muudatused"
+msgstr "Ülejäänud muutused"
#: sphinx/themes/basic/static/doctools.js:154 sphinx/writers/html.py:504
#: sphinx/writers/html.py:510
msgid "Permalink to this headline"
-msgstr "Püsilink sellele pealkirjale"
+msgstr "Püsiviit sellele pealkirjale"
#: sphinx/themes/basic/static/doctools.js:160 sphinx/writers/html.py:92
msgid "Permalink to this definition"
-msgstr "Püsilink sellele definitsioonile"
+msgstr "Püsiviit sellele definitsioonile"
#: sphinx/themes/basic/static/doctools.js:189
msgid "Hide Search Matches"
diff --git a/sphinx/locale/fa/LC_MESSAGES/sphinx.mo b/sphinx/locale/fa/LC_MESSAGES/sphinx.mo
index fe705e76..a4900c71 100644
--- a/sphinx/locale/fa/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/fa/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/fa/LC_MESSAGES/sphinx.po b/sphinx/locale/fa/LC_MESSAGES/sphinx.po
index 92caf31a..5a149d1c 100644
--- a/sphinx/locale/fa/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fa/LC_MESSAGES/sphinx.po
@@ -635,10 +635,10 @@ msgstr ". %(last_updated)s آخرین بروز رسانی در"
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-". <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s "
+". <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s "
"ایجاد شده با"
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/fi/LC_MESSAGES/sphinx.mo b/sphinx/locale/fi/LC_MESSAGES/sphinx.mo
index 497088c8..992d6dc2 100644
--- a/sphinx/locale/fi/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/fi/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/fi/LC_MESSAGES/sphinx.po b/sphinx/locale/fi/LC_MESSAGES/sphinx.po
index 4a329546..a59dbade 100644
--- a/sphinx/locale/fi/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fi/LC_MESSAGES/sphinx.po
@@ -632,7 +632,7 @@ msgstr ""
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.mo b/sphinx/locale/fr/LC_MESSAGES/sphinx.mo
index 1027a790..bc971703 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.po b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
index 7f51effd..3bae7632 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
@@ -635,10 +635,10 @@ msgstr "Mis à jour le %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Créé avec <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Créé avec <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/hr/LC_MESSAGES/sphinx.mo b/sphinx/locale/hr/LC_MESSAGES/sphinx.mo
index a9bdb145..31dbb290 100644
--- a/sphinx/locale/hr/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/hr/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/hr/LC_MESSAGES/sphinx.po b/sphinx/locale/hr/LC_MESSAGES/sphinx.po
index 15e70346..e063212d 100644
--- a/sphinx/locale/hr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hr/LC_MESSAGES/sphinx.po
@@ -630,10 +630,10 @@ msgstr "Zadnji put ažurirano %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Izrađeno sa <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Izrađeno sa <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/hu/LC_MESSAGES/sphinx.js b/sphinx/locale/hu/LC_MESSAGES/sphinx.js
index 2d347242..856311d1 100644
--- a/sphinx/locale/hu/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/hu/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "hu", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Keresési találatok elrejtése", "Permalink to this definition": "Hivatkozás erre a definícióra", "Expand sidebar": "Oldalsáv kinyitása", "Permalink to this headline": "Hivatkozás erre a fejezetcímre", "Collapse sidebar": "Oldalsáv összezárása"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "hu", "plural_expr": "0", "messages": {"Hide Search Matches": "Keres\u00e9si Tal\u00e1latok Elrejt\u00e9se", "Permalink to this definition": "Hivatkoz\u00e1s erre a defin\u00edci\u00f3ra", "Expand sidebar": "Oldals\u00e1v kinyit\u00e1sa", "Permalink to this headline": "Hivatkoz\u00e1s erre a fejezetc\u00edmre", "Collapse sidebar": "Oldals\u00e1v \u00f6sszez\u00e1r\u00e1sa"}}); \ No newline at end of file
diff --git a/sphinx/locale/hu/LC_MESSAGES/sphinx.mo b/sphinx/locale/hu/LC_MESSAGES/sphinx.mo
index 63c64bcb..6f79306c 100644
--- a/sphinx/locale/hu/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/hu/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/hu/LC_MESSAGES/sphinx.po b/sphinx/locale/hu/LC_MESSAGES/sphinx.po
index 8f01bdce..1a51d3bf 100644
--- a/sphinx/locale/hu/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hu/LC_MESSAGES/sphinx.po
@@ -438,10 +438,10 @@ msgstr "Utolsó frissítés %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"<a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"<a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s használatával készült."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.mo b/sphinx/locale/it/LC_MESSAGES/sphinx.mo
index a4213c8e..04dfdec2 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.po b/sphinx/locale/it/LC_MESSAGES/sphinx.po
index ccfab24e..1877c786 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.po
@@ -633,10 +633,10 @@ msgstr "Ultimo aggiornamento %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Creato con <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Creato con <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/ja/LC_MESSAGES/sphinx.mo b/sphinx/locale/ja/LC_MESSAGES/sphinx.mo
index c2bf5ac2..aadbb401 100644
--- a/sphinx/locale/ja/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ja/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ja/LC_MESSAGES/sphinx.po b/sphinx/locale/ja/LC_MESSAGES/sphinx.po
index 1e3b1e76..a0b473ff 100644
--- a/sphinx/locale/ja/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ja/LC_MESSAGES/sphinx.po
@@ -630,10 +630,10 @@ msgstr "最終更新: %(last_updated)s"
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"このドキュメントは <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"このドキュメントは <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s で生成しました。"
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/ko/LC_MESSAGES/sphinx.po b/sphinx/locale/ko/LC_MESSAGES/sphinx.po
index 8c0dd3d8..5bee2ab7 100644
--- a/sphinx/locale/ko/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ko/LC_MESSAGES/sphinx.po
@@ -635,10 +635,10 @@ msgstr "최종 업데이트: %(last_updated)s"
#: sphinx/themes/basic/layout.html:198
#, fuzzy, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"이 문서는 <a href=\"http://sphinx.pocoo.org/\">Sphinx</a>%(sphinx_version)s로 "
+"이 문서는 <a href=\"http://sphinx-doc.org/\">Sphinx</a>%(sphinx_version)s로 "
"제공됩니다."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/lt/LC_MESSAGES/sphinx.mo b/sphinx/locale/lt/LC_MESSAGES/sphinx.mo
index 9efc6d77..d9444da4 100644
--- a/sphinx/locale/lt/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/lt/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/lt/LC_MESSAGES/sphinx.po b/sphinx/locale/lt/LC_MESSAGES/sphinx.po
index b331d52a..fdffdcad 100644
--- a/sphinx/locale/lt/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/lt/LC_MESSAGES/sphinx.po
@@ -628,10 +628,10 @@ msgstr "Paskutinis atnaujinimas %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Sukurta naudojant <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Sukurta naudojant <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/lv/LC_MESSAGES/sphinx.mo b/sphinx/locale/lv/LC_MESSAGES/sphinx.mo
index e6e713a5..c173f6f5 100644
--- a/sphinx/locale/lv/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/lv/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/lv/LC_MESSAGES/sphinx.po b/sphinx/locale/lv/LC_MESSAGES/sphinx.po
index ec19bbee..381aa4b5 100644
--- a/sphinx/locale/lv/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/lv/LC_MESSAGES/sphinx.po
@@ -628,10 +628,10 @@ msgstr "Pēdējas izmaiņas %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Sagatavots izmantojot <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Sagatavots izmantojot <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
new file mode 100644
index 00000000..9f309922
--- /dev/null
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
@@ -0,0 +1 @@
+Documentation.addTranslations({"locale": "nb_NO", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Skjul s\u00f8keresultat", "Permalink to this definition": "Permalink til denne definisjonen", "Expand sidebar": "Utvid sidepanelet", "Permalink to this headline": "Permalink til denne oversikten", "Collapse sidebar": "Skjul sidepanelet"}}); \ No newline at end of file
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
new file mode 100644
index 00000000..88a53439
--- /dev/null
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/no_NB/LC_MESSAGES/sphinx.po b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
index 2c7dd857..05893a88 100644
--- a/sphinx/locale/no_NB/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
@@ -624,10 +624,10 @@ msgstr "Sist oppdatert %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Lagd med <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Lagd med <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/ne/LC_MESSAGES/sphinx.mo b/sphinx/locale/ne/LC_MESSAGES/sphinx.mo
index 05be753d..0e357663 100644
--- a/sphinx/locale/ne/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ne/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ne/LC_MESSAGES/sphinx.po b/sphinx/locale/ne/LC_MESSAGES/sphinx.po
index 5cb11e20..3ded0ab0 100644
--- a/sphinx/locale/ne/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ne/LC_MESSAGES/sphinx.po
@@ -600,7 +600,7 @@ msgstr "नेभिगेसन "
#: sphinx/themes/basic/layout.html:122
#, python-format
msgid "Search within %(docstitle)s"
-msgstr "भित्र-भित्रै खोज्नुहोस्"
+msgstr ""
#: sphinx/themes/basic/layout.html:131
msgid "About these documents"
@@ -628,14 +628,14 @@ msgstr "यो भन्दा अगाडी %(last_updated)s मा अपड
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr "<a href=\"http://sphinx.pocoo.org/\">Sphinx</a> प्रयोग गरेर बनाइएको"
+msgstr ""
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
msgid "Search %(docstitle)s"
-msgstr "खोज्नुहोस्"
+msgstr ""
#: sphinx/themes/basic/relations.html:11
msgid "Previous topic"
diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.mo b/sphinx/locale/nl/LC_MESSAGES/sphinx.mo
index 05ee5662..4b43d500 100644
--- a/sphinx/locale/nl/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.po b/sphinx/locale/nl/LC_MESSAGES/sphinx.po
index 473baadc..77de479d 100644
--- a/sphinx/locale/nl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.po
@@ -632,10 +632,10 @@ msgstr "Laatste aanpassing op %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Aangemaakt met <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Aangemaakt met <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/no_NB/LC_MESSAGES/sphinx.js b/sphinx/locale/no_NB/LC_MESSAGES/sphinx.js
deleted file mode 100644
index d00991b2..00000000
--- a/sphinx/locale/no_NB/LC_MESSAGES/sphinx.js
+++ /dev/null
@@ -1 +0,0 @@
-Documentation.addTranslations({"locale": "no_NB", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Skjul S\u00f6kresultater", "Permalink to this definition": "Permalink til denne definisjonen", "Expand sidebar": "Utvid sidepanelet", "Permalink to this headline": "Permalink til denne overskriften", "Collapse sidebar": "Kollaps sidepanelet"}}); \ No newline at end of file
diff --git a/sphinx/locale/no_NB/LC_MESSAGES/sphinx.mo b/sphinx/locale/no_NB/LC_MESSAGES/sphinx.mo
deleted file mode 100644
index eba1f773..00000000
--- a/sphinx/locale/no_NB/LC_MESSAGES/sphinx.mo
+++ /dev/null
Binary files differ
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.mo b/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
index bdceda43..505c59e1 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 957d23e9..f6379d34 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.po
@@ -556,7 +556,7 @@ msgstr "wszystkie rozdziały i podrozdziały"
#: sphinx/themes/basic/defindex.html:26
msgid "search this documentation"
-msgstr "przyszukaj tę dokumentację"
+msgstr "przeszukaj tę dokumentację"
#: sphinx/themes/basic/defindex.html:28
msgid "Global Module Index"
@@ -625,10 +625,10 @@ msgstr "Ostatnia modyfikacja %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Utworzone przy pomocy <a href=\"http://sphinx.pocoo.org/\">Sphinx</a>'a "
+"Utworzone przy pomocy <a href=\"http://sphinx-doc.org/\">Sphinx</a>'a "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
@@ -656,7 +656,7 @@ msgstr "następny rozdział"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr "Aby umożliwić wuszukiwanie, proszę włączyć JavaScript."
+msgstr "Aby umożliwić wyszukiwanie, proszę włączyć JavaScript."
#: sphinx/themes/basic/search.html:29
msgid ""
@@ -696,7 +696,7 @@ msgstr "Ta strona"
#: sphinx/themes/basic/changes/versionchanges.html:12
#, python-format
msgid "Changes in Version %(version)s &mdash; %(docstitle)s"
-msgstr "Zmiany w wesji %(version)s &mdash; %(docstitle)s"
+msgstr "Zmiany w wersji %(version)s &mdash; %(docstitle)s"
#: sphinx/themes/basic/changes/rstsource.html:5
#, python-format
diff --git a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo
index 3016d5ef..824ba048 100644
--- a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
index b41b5ad1..bb483766 100644
--- a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
@@ -628,10 +628,10 @@ msgstr "Última atualização em %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Criado com <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Criado com <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/ru/LC_MESSAGES/sphinx.js b/sphinx/locale/ru/LC_MESSAGES/sphinx.js
index ca0376ac..294b82f9 100644
--- a/sphinx/locale/ru/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/ru/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "ru", "plural_expr": "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2", "messages": {"Hide Search Matches": "\u0421\u043d\u044f\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Permalink to this definition": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Expand sidebar": "", "Permalink to this headline": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", "Collapse sidebar": ""}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "ru", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "\u0421\u043d\u044f\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Permalink to this definition": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Expand sidebar": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0431\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c", "Permalink to this headline": "\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", "Collapse sidebar": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0431\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c"}}); \ No newline at end of file
diff --git a/sphinx/locale/ru/LC_MESSAGES/sphinx.mo b/sphinx/locale/ru/LC_MESSAGES/sphinx.mo
index 593350d3..04fcf36f 100644
--- a/sphinx/locale/ru/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ru/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ru/LC_MESSAGES/sphinx.po b/sphinx/locale/ru/LC_MESSAGES/sphinx.po
index b6374d81..2e10a31f 100644
--- a/sphinx/locale/ru/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ru/LC_MESSAGES/sphinx.po
@@ -1,21 +1,20 @@
-# Russian translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
-# This file is distributed under the same license as the Sphinx project.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.6b1\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2011-09-21 10:06+0200\n"
-"PO-Revision-Date: 2011-09-21 10:14+0200\n"
-"Last-Translator: alexander smishlajev <alex@tycobka.lv>\n"
-"Language-Team: ru <LL@li.org>\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-08-12 21:48+0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 0.9.6\n"
#: sphinx/config.py:81
#, python-format
@@ -24,21 +23,22 @@ msgstr ""
#: sphinx/environment.py:119 sphinx/writers/latex.py:190
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:203
+#: sphinx/writers/latex.py:191 sphinx/environment.py:113
#, python-format
msgid "%B %d, %Y"
msgstr "%d %B %Y"
-#: sphinx/environment.py:1625
+#: sphinx/environment.py:1625 sphinx/environment.py:1638
#, python-format
msgid "see %s"
msgstr ""
-#: sphinx/environment.py:1628
+#: sphinx/environment.py:1628 sphinx/environment.py:1641
#, python-format
msgid "see also %s"
msgstr ""
-#: sphinx/roles.py:175
+#: sphinx/roles.py:175 sphinx/roles.py:176
#, fuzzy, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
@@ -51,24 +51,25 @@ msgstr "Встроенные функции"
msgid "Module level"
msgstr "Модуль"
-#: sphinx/builders/html.py:274
+#: sphinx/builders/html.py:274 sphinx/builders/html.py:276
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b %Y"
#: sphinx/builders/html.py:293 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html.py:295
msgid "General Index"
-msgstr "Словарь-указатель"
+msgstr "Алфавитный указатель"
-#: sphinx/builders/html.py:293
+#: sphinx/builders/html.py:293 sphinx/builders/html.py:295
msgid "index"
-msgstr "словарь"
+msgstr "указатель"
-#: sphinx/builders/html.py:353
+#: sphinx/builders/html.py:353 sphinx/builders/html.py:355
msgid "next"
msgstr "следующий"
-#: sphinx/builders/html.py:362
+#: sphinx/builders/html.py:362 sphinx/builders/html.py:364
msgid "previous"
msgstr "предыдущий"
@@ -76,24 +77,24 @@ msgstr "предыдущий"
msgid " (in "
msgstr " (в "
-#: sphinx/directives/other.py:136
+#: sphinx/directives/other.py:136 sphinx/directives/other.py:138
msgid "Section author: "
-msgstr "Автор секции: "
+msgstr "Автор раздела: "
-#: sphinx/directives/other.py:138
+#: sphinx/directives/other.py:138 sphinx/directives/other.py:140
msgid "Module author: "
msgstr "Автор модуля: "
-#: sphinx/directives/other.py:140
+#: sphinx/directives/other.py:140 sphinx/directives/other.py:142
#, fuzzy
msgid "Code author: "
msgstr "Автор модуля: "
-#: sphinx/directives/other.py:142
+#: sphinx/directives/other.py:142 sphinx/directives/other.py:144
msgid "Author: "
msgstr "Автор: "
-#: sphinx/directives/other.py:215
+#: sphinx/directives/other.py:215 sphinx/directives/other.py:219
msgid "See also"
msgstr "См.также"
@@ -162,22 +163,22 @@ msgstr "тип"
msgid "variable"
msgstr "Переменная"
-#: sphinx/domains/cpp.py:904
+#: sphinx/domains/cpp.py:904 sphinx/domains/cpp.py:1020
#, python-format
msgid "%s (C++ class)"
msgstr "%s (класс C++)"
-#: sphinx/domains/cpp.py:919
+#: sphinx/domains/cpp.py:919 sphinx/domains/cpp.py:1043
#, python-format
msgid "%s (C++ type)"
msgstr "%s (тип C++)"
-#: sphinx/domains/cpp.py:938
+#: sphinx/domains/cpp.py:938 sphinx/domains/cpp.py:1063
#, python-format
msgid "%s (C++ member)"
msgstr "%s (поле C++)"
-#: sphinx/domains/cpp.py:990
+#: sphinx/domains/cpp.py:990 sphinx/domains/cpp.py:1119
#, python-format
msgid "%s (C++ function)"
msgstr "%s (функция C++)"
@@ -188,11 +189,13 @@ msgid "class"
msgstr "класс"
#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:254
+#: sphinx/domains/python.py:253
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (встроенная функция)"
#: sphinx/domains/javascript.py:107 sphinx/domains/python.py:318
+#: sphinx/domains/python.py:317
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (метод %s)"
@@ -208,6 +211,7 @@ msgid "%s (global variable or constant)"
msgstr ""
#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:356
+#: sphinx/domains/python.py:355
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (атрибут %s)"
@@ -240,56 +244,59 @@ msgstr "Исключение"
#: sphinx/domains/python.py:255 sphinx/domains/python.py:312
#: sphinx/domains/python.py:324 sphinx/domains/python.py:337
+#: sphinx/domains/python.py:254 sphinx/domains/python.py:311
+#: sphinx/domains/python.py:323 sphinx/domains/python.py:336
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (в модуле %s)"
-#: sphinx/domains/python.py:258
+#: sphinx/domains/python.py:258 sphinx/domains/python.py:257
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (встроенная переменная)"
#: sphinx/domains/python.py:259 sphinx/domains/python.py:350
+#: sphinx/domains/python.py:258 sphinx/domains/python.py:349
#, python-format
msgid "%s (in module %s)"
msgstr "%s (в модуле %s)"
-#: sphinx/domains/python.py:275
+#: sphinx/domains/python.py:275 sphinx/domains/python.py:274
#, python-format
msgid "%s (built-in class)"
msgstr "%s (встроенный класс)"
-#: sphinx/domains/python.py:276
+#: sphinx/domains/python.py:276 sphinx/domains/python.py:275
#, python-format
msgid "%s (class in %s)"
msgstr "%s (класс в %s)"
-#: sphinx/domains/python.py:316
+#: sphinx/domains/python.py:316 sphinx/domains/python.py:315
#, python-format
msgid "%s() (%s.%s method)"
msgstr "%s() (метод %s.%s)"
-#: sphinx/domains/python.py:328
+#: sphinx/domains/python.py:328 sphinx/domains/python.py:327
#, python-format
msgid "%s() (%s.%s static method)"
msgstr "%s() (статический метод %s.%s)"
-#: sphinx/domains/python.py:331
+#: sphinx/domains/python.py:331 sphinx/domains/python.py:330
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (статический метод %s)"
-#: sphinx/domains/python.py:341
+#: sphinx/domains/python.py:341 sphinx/domains/python.py:340
#, fuzzy, python-format
msgid "%s() (%s.%s class method)"
msgstr "%s() (метод %s.%s)"
-#: sphinx/domains/python.py:344
+#: sphinx/domains/python.py:344 sphinx/domains/python.py:343
#, fuzzy, python-format
msgid "%s() (%s class method)"
msgstr "%s() (метод %s)"
-#: sphinx/domains/python.py:354
+#: sphinx/domains/python.py:354 sphinx/domains/python.py:353
#, python-format
msgid "%s (%s.%s attribute)"
msgstr "%s (атрибут %s.%s)"
@@ -308,7 +315,7 @@ msgstr "Состав модуля"
msgid "modules"
msgstr "модули"
-#: sphinx/domains/python.py:537
+#: sphinx/domains/python.py:537 sphinx/domains/python.py:538
msgid "Deprecated"
msgstr "Не рекомендуется"
@@ -332,17 +339,17 @@ msgstr "статический метод"
msgid "module"
msgstr "модуль"
-#: sphinx/domains/python.py:695
+#: sphinx/domains/python.py:695 sphinx/domains/python.py:696
#, fuzzy
msgid " (deprecated)"
msgstr " (не рекомендуется)"
-#: sphinx/domains/rst.py:55
+#: sphinx/domains/rst.py:55 sphinx/domains/rst.py:53
#, python-format
msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/rst.py:57
+#: sphinx/domains/rst.py:57 sphinx/domains/rst.py:55
#, python-format
msgid "%s (role)"
msgstr ""
@@ -391,6 +398,7 @@ msgstr ""
#: sphinx/themes/basic/genindex.html:32 sphinx/themes/basic/genindex.html:35
#: sphinx/themes/basic/genindex.html:68 sphinx/themes/basic/layout.html:134
#: sphinx/writers/latex.py:179 sphinx/writers/texinfo.py:456
+#: sphinx/writers/latex.py:180
msgid "Index"
msgstr "Алфавитный указатель"
@@ -402,36 +410,36 @@ msgstr "Состав модуля"
msgid "Search Page"
msgstr "Поиск"
-#: sphinx/ext/autodoc.py:1002
+#: sphinx/ext/autodoc.py:1002 sphinx/ext/autodoc.py:1010
#, python-format
msgid " Bases: %s"
msgstr " Базовые классы: %s"
-#: sphinx/ext/autodoc.py:1038
+#: sphinx/ext/autodoc.py:1038 sphinx/ext/autodoc.py:1046
#, python-format
msgid "alias of :class:`%s`"
msgstr "псевдоним класса :class:`%s`"
-#: sphinx/ext/todo.py:41
+#: sphinx/ext/todo.py:41 sphinx/ext/todo.py:42
msgid "Todo"
msgstr "План"
-#: sphinx/ext/todo.py:109
+#: sphinx/ext/todo.py:109 sphinx/ext/todo.py:110
#, fuzzy, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(Исходный элемент находится в %s, в строке %d.)"
-#: sphinx/ext/todo.py:117
+#: sphinx/ext/todo.py:117 sphinx/ext/todo.py:119
msgid "original entry"
msgstr ""
#: sphinx/ext/viewcode.py:70
msgid "[source]"
-msgstr ""
+msgstr "[исходный код]"
#: sphinx/ext/viewcode.py:117
msgid "[docs]"
-msgstr ""
+msgstr "[документация]"
#: sphinx/ext/viewcode.py:131
#, fuzzy
@@ -441,15 +449,15 @@ msgstr "модуль"
#: sphinx/ext/viewcode.py:137
#, python-format
msgid "<h1>Source code for %s</h1>"
-msgstr ""
+msgstr "<h1>Исходный код %s</h1>"
#: sphinx/ext/viewcode.py:164
msgid "Overview: module code"
-msgstr ""
+msgstr "Обзор: исходный код модуля"
#: sphinx/ext/viewcode.py:165
msgid "<h1>All modules for which code is available</h1>"
-msgstr ""
+msgstr "<h1>Все модули, в которых есть код</h1>"
#: sphinx/locale/__init__.py:155
msgid "Attention"
@@ -481,7 +489,7 @@ msgstr "Примечание"
#: sphinx/locale/__init__.py:162
msgid "See Also"
-msgstr "См.также"
+msgstr "См. также"
#: sphinx/locale/__init__.py:163
msgid "Tip"
@@ -529,7 +537,7 @@ msgstr "базовая функция"
#: sphinx/themes/agogo/layout.html:45 sphinx/themes/basic/globaltoc.html:10
#: sphinx/themes/basic/localtoc.html:11
msgid "Table Of Contents"
-msgstr "Содержание"
+msgstr "Оглавление"
#: sphinx/themes/agogo/layout.html:49 sphinx/themes/basic/layout.html:137
#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:20
@@ -546,7 +554,7 @@ msgstr "Введите слова для поиска или имя модуля
#: sphinx/themes/agogo/layout.html:78 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
-msgstr "Показать исходный текст"
+msgstr "Исходный текст"
#: sphinx/themes/basic/defindex.html:11
msgid "Overview"
@@ -558,7 +566,7 @@ msgstr "Таблицы и указатели:"
#: sphinx/themes/basic/defindex.html:23
msgid "Complete Table of Contents"
-msgstr "Подробное оглавление"
+msgstr "Полное оглавление"
#: sphinx/themes/basic/defindex.html:24
msgid "lists all sections and subsections"
@@ -566,7 +574,7 @@ msgstr "список всех разделов и подразделов"
#: sphinx/themes/basic/defindex.html:26
msgid "search this documentation"
-msgstr "поиск во всем документе"
+msgstr "поиск в документации"
#: sphinx/themes/basic/defindex.html:28
msgid "Global Module Index"
@@ -611,16 +619,16 @@ msgstr "Поиск в документе «%(docstitle)s»"
#: sphinx/themes/basic/layout.html:131
msgid "About these documents"
-msgstr "Об этих документах…"
+msgstr "Об этих документах"
#: sphinx/themes/basic/layout.html:140
msgid "Copyright"
-msgstr "Copyright"
+msgstr "Авторские права"
#: sphinx/themes/basic/layout.html:189
#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-msgstr "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr "&copy; <a href=\"%(path)s\">Авторские права</a> %(copyright)s."
#: sphinx/themes/basic/layout.html:191
#, python-format
@@ -630,15 +638,15 @@ msgstr "&copy; Copyright %(copyright)s."
#: sphinx/themes/basic/layout.html:195
#, python-format
msgid "Last updated on %(last_updated)s."
-msgstr "Дата последнего обновления: %(last_updated)s."
+msgstr "Обновлено: %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"При создании использован <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Создано с помощью <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
@@ -666,7 +674,7 @@ msgstr "следующая глава"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr "Для выполнения поиска необходима поддержка JavaScript в браузере."
+msgstr "Для работы поиска включите JavaScript в браузере."
#: sphinx/themes/basic/search.html:29
msgid ""
@@ -675,11 +683,10 @@ msgid ""
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
msgstr ""
-"Эта форма предназначена для поиска по всем разделам настоящей "
-"документации. Введите искомые слова в текстовое поле и нажмите кнопку "
-"«искать». Обратите внимание: найдены будут только те страницы, в которых "
-"упомянуты все указанные слова. Страницы, в которых встречается только "
-"часть этих слов, отобраны не будут."
+"Здесь можно делать поиск по всем разделам этой документации. Введите "
+" ключевые слова в текстовое поле и нажмите кнопку «искать». Внимание: будут "
+" найдены только те страницы, в которых есть все указанные слова. Страницы, "
+" где есть только часть этих слов, отобраны не будут."
#: sphinx/themes/basic/search.html:36
msgid "search"
@@ -691,7 +698,7 @@ msgstr "Результаты поиска"
#: sphinx/themes/basic/search.html:42
msgid "Your search did not match any results."
-msgstr "Результатов по вашему запросу не найдено."
+msgstr "Страниц по вашему запросу не найдено."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -723,18 +730,19 @@ msgstr "Изменения в библиотеке"
#: sphinx/themes/basic/changes/versionchanges.html:23
msgid "C API changes"
-msgstr "Изменения в C API"
+msgstr "Изменения в API C"
#: sphinx/themes/basic/changes/versionchanges.html:25
msgid "Other changes"
msgstr "Другие изменения"
#: sphinx/themes/basic/static/doctools.js:154 sphinx/writers/html.py:504
-#: sphinx/writers/html.py:510
+#: sphinx/writers/html.py:510 sphinx/writers/html.py:516
msgid "Permalink to this headline"
msgstr "Ссылка на этот заголовок"
#: sphinx/themes/basic/static/doctools.js:160 sphinx/writers/html.py:92
+#: sphinx/writers/html.py:94
msgid "Permalink to this definition"
msgstr "Ссылка на это определение"
@@ -744,36 +752,55 @@ msgstr "Снять выделение"
#: sphinx/themes/default/static/sidebar.js:69
msgid "Expand sidebar"
-msgstr ""
+msgstr "Развернуть боковую панель"
#: sphinx/themes/default/static/sidebar.js:82
#: sphinx/themes/default/static/sidebar.js:110
msgid "Collapse sidebar"
-msgstr ""
+msgstr "Свернуть боковую панель"
#: sphinx/themes/haiku/layout.html:26
msgid "Contents"
-msgstr ""
+msgstr "Содержание"
-#: sphinx/writers/latex.py:177
+#: sphinx/writers/latex.py:177 sphinx/writers/latex.py:178
msgid "Release"
msgstr "Выпуск"
#: sphinx/writers/latex.py:594 sphinx/writers/manpage.py:182
-#: sphinx/writers/texinfo.py:589
+#: sphinx/writers/texinfo.py:589 sphinx/writers/latex.py:601
msgid "Footnotes"
-msgstr ""
+msgstr "Сноски"
-#: sphinx/writers/latex.py:676
+#: sphinx/writers/latex.py:676 sphinx/writers/latex.py:685
msgid "continued from previous page"
-msgstr ""
+msgstr "продолжение с предыдущей страницы"
-#: sphinx/writers/latex.py:681
+#: sphinx/writers/latex.py:681 sphinx/writers/latex.py:691
#, fuzzy
msgid "Continued on next page"
-msgstr "Полный алфавитный указатель на одной странице"
+msgstr "Продолжается на следующей странице"
-#: sphinx/writers/text.py:437
+#: sphinx/writers/text.py:437 sphinx/writers/manpage.py:234
+#: sphinx/writers/text.py:439
msgid "[image]"
msgstr "[рисунок]"
+#: sphinx/writers/manpage.py:233 sphinx/writers/text.py:438
+#, python-format
+msgid "[image: %s]"
+msgstr "[рисунок: %s]"
+
+#: sphinx/ext/graphviz.py:302 sphinx/ext/graphviz.py:310
+#, python-format
+msgid "[graph: %s]"
+msgstr "[иллюстрация: %s]"
+
+#: sphinx/ext/graphviz.py:304 sphinx/ext/graphviz.py:312
+msgid "[graph]"
+msgstr "[иллюстрация]"
+
+#: sphinx/ext/intersphinx.py:224
+#, python-format
+msgid "(in %s v%s)"
+msgstr ""
diff --git a/sphinx/locale/sk/LC_MESSAGES/sphinx.js b/sphinx/locale/sk/LC_MESSAGES/sphinx.js
index 2d210b54..9c2d6a75 100644
--- a/sphinx/locale/sk/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/sk/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "sk", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "Skr\u00fdt v\u00fdsledky vyhled\u00e1v\u00e1n\u00ed", "Permalink to this definition": "Trval\u00fd odkaz na tuto definici", "Expand sidebar": "", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis", "Collapse sidebar": ""}});
+Documentation.addTranslations({"locale": "sk", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "Skry\u0165 v\u00fdsledky vyh\u013ead\u00e1vania", "Permalink to this definition": "Trval\u00fd odkaz na t\u00fato defin\u00edciu", "Expand sidebar": "", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis", "Collapse sidebar": ""}}); \ No newline at end of file
diff --git a/sphinx/locale/sk/LC_MESSAGES/sphinx.mo b/sphinx/locale/sk/LC_MESSAGES/sphinx.mo
index 8a4ac3a8..375159dc 100644
--- a/sphinx/locale/sk/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sk/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sk/LC_MESSAGES/sphinx.po b/sphinx/locale/sk/LC_MESSAGES/sphinx.po
index 77f12023..fdc5e137 100644
--- a/sphinx/locale/sk/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sk/LC_MESSAGES/sphinx.po
@@ -635,10 +635,10 @@ msgstr "Aktualizované dňa %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Vytvorené pomocou <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Vytvorené pomocou <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.mo b/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
index 79f7f4eb..a4fe3d63 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 6f6e49ac..297d1cdb 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.po
@@ -630,10 +630,10 @@ msgstr "Zadnjič posodobljeno %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Narejeno s <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Narejeno s <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/sphinx.pot b/sphinx/locale/sphinx.pot
index 9ddde4c2..b1d816f7 100644
--- a/sphinx/locale/sphinx.pot
+++ b/sphinx/locale/sphinx.pot
@@ -628,7 +628,7 @@ msgstr ""
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
diff --git a/sphinx/locale/sv/LC_MESSAGES/sphinx.mo b/sphinx/locale/sv/LC_MESSAGES/sphinx.mo
index 11b18023..40280d85 100644
--- a/sphinx/locale/sv/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sv/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sv/LC_MESSAGES/sphinx.po b/sphinx/locale/sv/LC_MESSAGES/sphinx.po
index 9967bdd7..6d0ed166 100644
--- a/sphinx/locale/sv/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sv/LC_MESSAGES/sphinx.po
@@ -625,10 +625,10 @@ msgstr "Senast uppdaterad %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Skapad med <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Skapad med <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/tr/LC_MESSAGES/sphinx.mo b/sphinx/locale/tr/LC_MESSAGES/sphinx.mo
index 812b7cd9..2bf9e7a3 100644
--- a/sphinx/locale/tr/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/tr/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/tr/LC_MESSAGES/sphinx.po b/sphinx/locale/tr/LC_MESSAGES/sphinx.po
index bf5fd568..cd8d7395 100644
--- a/sphinx/locale/tr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/tr/LC_MESSAGES/sphinx.po
@@ -628,10 +628,10 @@ msgstr "Son güncelleme: %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"<a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s ile "
+"<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s ile "
"oluşturulmuştur."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo
index 4bc58ee1..5fa633d3 100644
--- a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
index 32ce1dc4..a5141fad 100644
--- a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
@@ -635,10 +635,10 @@ msgstr "Востаннє оновлено %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
-"Створено з використанням <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Створено з використанням <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
index 3d9dac2b..eb5b0763 100644
--- a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
index cb7b3e6f..079bab5e 100644
--- a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
@@ -636,9 +636,9 @@ msgstr "最后更新日期是 %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr "使用 <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> %(sphinx_version)s."
+msgstr "使用 <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
index 9dd86da5..98c5d6e8 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
index 2a4fbef0..5d178af1 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
@@ -638,7 +638,7 @@ msgstr "最後更新日期是 %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
-"Created using <a href=\"http://sphinx.pocoo.org/\">Sphinx</a> "
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
msgstr ""
diff --git a/sphinx/quickstart.py b/sphinx/quickstart.py
index c8dd2579..dd2df0df 100644
--- a/sphinx/quickstart.py
+++ b/sphinx/quickstart.py
@@ -377,6 +377,21 @@ SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = %(rbuilddir)s
+ifeq ($(shell $(SPHINXBUILD) 2> /dev/null; echo $$?), 127)
+define MSG
+
+
+The 'sphinx-build' command was not found. Make sure you have Sphinx
+installed, then set the SPHINXBUILD environment variable to point
+to the full path of the 'sphinx-build' executable. Alternatively you
+may add the Sphinx directory to PATH.
+
+If you don't have Sphinx installed, grab it from
+http://sphinx-doc.org/
+endef
+$(error $(MSG))
+endif
+
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
@@ -401,12 +416,15 @@ help:
\t@echo " epub to make an epub"
\t@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
\t@echo " latexpdf to make LaTeX files and run them through pdflatex"
+\t@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
\t@echo " text to make text files"
\t@echo " man to make manual pages"
\t@echo " texinfo to make Texinfo files"
\t@echo " info to make Texinfo files and run them through makeinfo"
\t@echo " gettext to make PO message catalogs"
\t@echo " changes to make an overview of all changed/added/deprecated items"
+\t@echo " xml to make Docutils-native XML files"
+\t@echo " pseudoxml to make pseudoxml-XML files for display purposes"
\t@echo " linkcheck to check all external links for integrity"
\t@echo " doctest to run all doctests embedded in the documentation \
(if enabled)"
@@ -482,6 +500,12 @@ latexpdf:
\t$(MAKE) -C $(BUILDDIR)/latex all-pdf
\t@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+latexpdfja:
+\t$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+\t@echo "Running LaTeX files through platex and dvipdfmx..."
+\t$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+\t@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
text:
\t$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
\t@echo
@@ -525,6 +549,16 @@ doctest:
\t$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
\t@echo "Testing of doctests in the sources finished, look at the " \\
\t "results in $(BUILDDIR)/doctest/output.txt."
+
+xml:
+\t$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+\t@echo
+\t@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+pseudoxml:
+\t$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+\t@echo
+\t@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
'''
BATCHFILE = '''\
@@ -563,6 +597,8 @@ if "%%1" == "help" (
\techo. texinfo to make Texinfo files
\techo. gettext to make PO message catalogs
\techo. changes to make an overview over all changed/added/deprecated items
+\techo. xml to make Docutils-native XML files
+\techo. pseudoxml to make pseudoxml-XML files for display purposes
\techo. linkcheck to check all external links for integrity
\techo. doctest to run all doctests embedded in the documentation if enabled
\tgoto end
@@ -574,6 +610,20 @@ if "%%1" == "clean" (
\tgoto end
)
+
+%%SPHINXBUILD%% 2> nul
+if errorlevel 9009 (
+\techo.
+\techo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+\techo.installed, then set the SPHINXBUILD environment variable to point
+\techo.to the full path of the 'sphinx-build' executable. Alternatively you
+\techo.may add the Sphinx directory to PATH.
+\techo.
+\techo.If you don't have Sphinx installed, grab it from
+\techo.http://sphinx-doc.org/
+\texit /b 1
+)
+
if "%%1" == "html" (
\t%%SPHINXBUILD%% -b html %%ALLSPHINXOPTS%% %%BUILDDIR%%/html
\tif errorlevel 1 exit /b 1
@@ -659,6 +709,26 @@ if "%%1" == "latex" (
\tgoto end
)
+if "%%1" == "latexpdf" (
+\t%%SPHINXBUILD%% -b latex %%ALLSPHINXOPTS%% %%BUILDDIR%%/latex
+\tcd %%BUILDDIR%%/latex
+\tmake all-pdf
+\tcd %%BUILDDIR%%/..
+\techo.
+\techo.Build finished; the PDF files are in %%BUILDDIR%%/latex.
+\tgoto end
+)
+
+if "%%1" == "latexpdfja" (
+\t%%SPHINXBUILD%% -b latex %%ALLSPHINXOPTS%% %%BUILDDIR%%/latex
+\tcd %%BUILDDIR%%/latex
+\tmake all-pdf-ja
+\tcd %%BUILDDIR%%/..
+\techo.
+\techo.Build finished; the PDF files are in %%BUILDDIR%%/latex.
+\tgoto end
+)
+
if "%%1" == "text" (
\t%%SPHINXBUILD%% -b text %%ALLSPHINXOPTS%% %%BUILDDIR%%/text
\tif errorlevel 1 exit /b 1
@@ -717,6 +787,22 @@ results in %%BUILDDIR%%/doctest/output.txt.
\tgoto end
)
+if "%%1" == "xml" (
+\t%%SPHINXBUILD%% -b xml %%ALLSPHINXOPTS%% %%BUILDDIR%%/xml
+\tif errorlevel 1 exit /b 1
+\techo.
+\techo.Build finished. The XML files are in %%BUILDDIR%%/xml.
+\tgoto end
+)
+
+if "%%1" == "pseudoxml" (
+\t%%SPHINXBUILD%% -b pseudoxml %%ALLSPHINXOPTS%% %%BUILDDIR%%/pseudoxml
+\tif errorlevel 1 exit /b 1
+\techo.
+\techo.Build finished. The pseudo-XML files are in %%BUILDDIR%%/pseudoxml.
+\tgoto end
+)
+
:end
'''
@@ -768,7 +854,7 @@ def do_prompt(d, key, text, default=None, validator=nonempty):
prompt = purple(PROMPT_PREFIX + '%s [%s]: ' % (text, default))
else:
prompt = purple(PROMPT_PREFIX + text + ': ')
- x = term_input(prompt)
+ x = term_input(prompt).strip()
if default and not x:
x = default
if not isinstance(x, unicode):
diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
index 6e9610a4..a3ff4bb4 100644
--- a/sphinx/search/__init__.py
+++ b/sphinx/search/__init__.py
@@ -283,5 +283,5 @@ class IndexBuilder(object):
def context_for_searchtool(self):
return dict(
search_language_stemming_code = self.lang.js_stemmer_code,
- search_language_stop_words = jsdump.dumps(self.lang.stopwords),
+ search_language_stop_words = jsdump.dumps(sorted(self.lang.stopwords)),
)
diff --git a/sphinx/texinputs/Makefile b/sphinx/texinputs/Makefile
index 76e7c3e2..6b87ad88 100644
--- a/sphinx/texinputs/Makefile
+++ b/sphinx/texinputs/Makefile
@@ -16,11 +16,11 @@ all-ps: all-dvi
for f in *.dvi; do dvips $$f; done
all-pdf-ja:
- for f in *.pdf *.png *.gif *.jpg *.jpeg; do ebb $$f; done
+ for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
- for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
+ -for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
for f in *.dvi; do dvipdfmx $$f; done
diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty
index 08adec9e..c9d3e100 100644
--- a/sphinx/texinputs/sphinx.sty
+++ b/sphinx/texinputs/sphinx.sty
@@ -8,8 +8,9 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)]
+\@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}}
+
\RequirePackage{textcomp}
-\RequirePackage{fancyhdr}
\RequirePackage{fancybox}
\RequirePackage{titlesec}
\RequirePackage{tabulary}
@@ -45,6 +46,13 @@
%\renewcommand{\paperwidth}{8.5in} % typical squarish manual
%\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python''
+% use pdfoutput for pTeX and dvipdfmx
+\ifx\kanjiskip\undefined\else
+ \ifx\Gin@driver{dvipdfmx.def}\undefined\else
+ \newcount\pdfoutput\pdfoutput=0
+ \fi
+\fi
+
% For graphicx, check if we are compiling under latex or pdflatex.
\ifx\pdftexversion\undefined
\usepackage{graphicx}
@@ -111,6 +119,10 @@
\fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
+ % define chaptermark with \@chappos when \@chappos is available for Japanese
+ \ifx\@chappos\undefined\else
+ \def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}
+ \fi
}
% Update the plain style so we get the page number & footer line,
% but not a chapter or section title. This is to keep the first
@@ -243,7 +255,7 @@
\addtolength{\py@noticelength}{-2\fboxsep}
\addtolength{\py@noticelength}{-2\fboxrule}
%\setlength{\shadowsize}{3pt}
- \Sbox
+ \noindent\Sbox
\minipage{\py@noticelength}
}
\newcommand{\py@endheavybox}{
@@ -254,12 +266,12 @@
\newcommand{\py@lightbox}{{%
\setlength\parskip{0pt}\par
- \rule[0ex]{\linewidth}{0.5pt}%
- \par\vspace{-0.5ex}%
+ \noindent\rule[0ex]{\linewidth}{0.5pt}%
+ \par\noindent\vspace{-0.5ex}%
}}
\newcommand{\py@endlightbox}{{%
\setlength{\parskip}{0pt}%
- \par\rule[0.5ex]{\linewidth}{0.5pt}%
+ \par\noindent\rule[0.5ex]{\linewidth}{0.5pt}%
\par\vspace{-0.5ex}%
}}
@@ -405,20 +417,38 @@
% Fix the index environment to add an entry to the Table of
% Contents; this is much nicer than just having to jump to the end of the book
% and flip around, especially with multiple indexes.
+% The memoir class already does this, so we don't duplicate it in that case.
%
% A similiar fix must be done to the bibliography environment, although
% dependant on document class. In particular, the '\addcontentsline' command
% should use 'chapter' for a report and 'section' for an article.
% See sphinxmanual.cls and sphinxhowto.cls for specific fixes.
%
-\let\py@OldTheindex=\theindex
-\renewcommand{\theindex}{
- \cleardoublepage
- \phantomsection
- \py@OldTheindex
- \addcontentsline{toc}{chapter}{\indexname}
+\@ifclassloaded{memoir}{}{
+ \let\py@OldTheindex=\theindex
+ \renewcommand{\theindex}{
+ \cleardoublepage
+ \phantomsection
+ \py@OldTheindex
+ \addcontentsline{toc}{chapter}{\indexname}
+ }
}
+% to make pdf with correct encoded bookmarks in Japanese
+% this should precede the hyperref package
+\ifx\kanjiskip\undefined\else
+ \usepackage{atbegshi}
+ \ifx\ucs\undefined
+ \ifnum 42146=\euc"A4A2
+ \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}
+ \else
+ \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}
+ \fi
+ \else
+ \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}}
+ \fi
+\fi
+
% Include hyperref last.
\RequirePackage[colorlinks,breaklinks,
linkcolor=InnerLinkColor,filecolor=OuterLinkColor,
@@ -476,3 +506,37 @@
\@gobble
}
\def\FN@sf@gobble@twobracket[#1]#2{}
+
+% adjust the margins for footer,
+% this works with the jsclasses only (Japanese standard document classes)
+\ifx\@jsc@uplatextrue\undefined\else
+ \hypersetup{setpagesize=false}
+ \setlength\footskip{2\baselineskip}
+ \addtolength{\textheight}{-2\baselineskip}
+\fi
+
+% fix the double index and bibliography on the table of contents
+% in jsclasses (Japanese standard document classes)
+\ifx\@jsc@uplatextrue\undefined\else
+ \renewcommand{\theindex}{
+ \cleardoublepage
+ \phantomsection
+ \py@OldTheindex
+ }
+ \renewcommand{\thebibliography}[1]{
+ \cleardoublepage
+ \phantomsection
+ \py@OldThebibliography{1}
+ }
+\fi
+
+% do not use \@chappos in Appendix in pTeX
+\ifx\kanjiskip\undefined\else
+ \renewcommand{\appendix}{\par
+ \setcounter{chapter}{0}
+ \setcounter{section}{0}
+ \gdef\@chapapp{\appendixname}
+ \gdef\@chappos{}
+ \gdef\thechapter{\@Alph\c@chapter}
+ }
+\fi
diff --git a/sphinx/texinputs/sphinxhowto.cls b/sphinx/texinputs/sphinxhowto.cls
index f4e3d2f4..9625870e 100644
--- a/sphinx/texinputs/sphinxhowto.cls
+++ b/sphinx/texinputs/sphinxhowto.cls
@@ -1,5 +1,5 @@
%
-% sphinxhowto.cls for Sphinx (http://sphinx.pocoo.org/)
+% sphinxhowto.cls for Sphinx (http://sphinx-doc.org/)
%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
diff --git a/sphinx/texinputs/sphinxmanual.cls b/sphinx/texinputs/sphinxmanual.cls
index 57fad1a9..a04cea5b 100644
--- a/sphinx/texinputs/sphinxmanual.cls
+++ b/sphinx/texinputs/sphinxmanual.cls
@@ -1,5 +1,5 @@
%
-% sphinxmanual.cls for Sphinx (http://sphinx.pocoo.org/)
+% sphinxmanual.cls for Sphinx (http://sphinx-doc.org/)
%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
diff --git a/sphinx/themes/agogo/theme.conf b/sphinx/themes/agogo/theme.conf
index 3fc88580..3052aca3 100644
--- a/sphinx/themes/agogo/theme.conf
+++ b/sphinx/themes/agogo/theme.conf
@@ -10,7 +10,7 @@ pagewidth = 70em
documentwidth = 50em
sidebarwidth = 20em
bgcolor = #eeeeec
-headerbg = url(bgtop.png) top left repeat-x
+headerbg = #555573 url(bgtop.png) top left repeat-x
footerbg = url(bgfooter.png) top left repeat-x
linkcolor = #ce5c00
headercolor1 = #204a87
diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html
index 9fb989cb..612dc38f 100644
--- a/sphinx/themes/basic/layout.html
+++ b/sphinx/themes/basic/layout.html
@@ -195,7 +195,7 @@
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
{%- endif %}
{%- if show_sphinx %}
- {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
+ {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx-doc.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
{%- endif %}
</div>
{%- endblock %}
diff --git a/sphinx/themes/basic/static/doctools.js b/sphinx/themes/basic/static/doctools.js
index d4619fdf..38feb6c5 100644
--- a/sphinx/themes/basic/static/doctools.js
+++ b/sphinx/themes/basic/static/doctools.js
@@ -62,18 +62,6 @@ jQuery.getQueryParameters = function(s) {
};
/**
- * small function to check if an array contains
- * a given item.
- */
-jQuery.contains = function(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] == item)
- return true;
- }
- return false;
-};
-
-/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
diff --git a/sphinx/themes/basic/static/searchtools.js_t b/sphinx/themes/basic/static/searchtools.js_t
index 45989c6a..8e8acb8e 100644
--- a/sphinx/themes/basic/static/searchtools.js_t
+++ b/sphinx/themes/basic/static/searchtools.js_t
@@ -150,7 +150,7 @@ var Search = {
hlterms.push(tmp[i].toLowerCase());
}
// only add if not already in the list
- if (!$.contains(toAppend, word))
+ if (!$u.contains(toAppend, word))
toAppend.push(word);
};
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
@@ -217,7 +217,7 @@ var Search = {
// search result.
for (var i = 0; i < excluded.length; i++) {
if (terms[excluded[i]] == file ||
- $.contains(terms[excluded[i]] || [], file)) {
+ $u.contains(terms[excluded[i]] || [], file)) {
valid = false;
break;
}
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index 6cb83aec..5d0c2811 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -197,13 +197,18 @@ def get_module_source(modname):
except Exception, err:
raise PycodeError('error importing %r' % modname, err)
mod = sys.modules[modname]
- if hasattr(mod, '__loader__'):
+ filename = getattr(mod, '__file__', None)
+ loader = getattr(mod, '__loader__', None)
+ if loader and getattr(loader, 'get_filename', None):
+ try:
+ filename = loader.get_filename(modname)
+ except Exception, err:
+ raise PycodeError('error getting filename for %r' % filename, err)
+ if filename is None and loader:
try:
- source = mod.__loader__.get_source(modname)
+ return 'string', loader.get_source(modname)
except Exception, err:
raise PycodeError('error getting source for %r' % modname, err)
- return 'string', source
- filename = getattr(mod, '__file__', None)
if filename is None:
raise PycodeError('no source found for module %r' % modname)
filename = path.normpath(path.abspath(filename))
diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py
index b5c3db59..ba3fa968 100644
--- a/sphinx/util/inspect.py
+++ b/sphinx/util/inspect.py
@@ -45,7 +45,10 @@ if sys.version_info >= (2, 5):
del func_defaults[i]
except IndexError:
pass
- return inspect.ArgSpec(args, varargs, varkw, func_defaults)
+ if sys.version_info >= (2, 6):
+ return inspect.ArgSpec(args, varargs, varkw, func_defaults)
+ else:
+ return (args, varargs, varkw, func_defaults)
else:
getargspec = inspect.getargspec
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
index dbedb7f2..62796bec 100644
--- a/sphinx/util/nodes.py
+++ b/sphinx/util/nodes.py
@@ -43,6 +43,15 @@ IGNORED_NODES = (
def extract_messages(doctree):
"""Extract translatable messages from a document tree."""
for node in doctree.traverse(nodes.TextElement):
+ # workaround: nodes.term doesn't have source, line and rawsource
+ # (fixed in Docutils r7495)
+ if isinstance(node, nodes.term) and not node.source:
+ definition_list_item = node.parent
+ if definition_list_item.line is not None:
+ node.source = definition_list_item.source
+ node.line = definition_list_item.line - 1
+ node.rawsource = definition_list_item.\
+ rawsource.split("\n", 2)[0]
if not node.source:
continue # built-in message
if isinstance(node, IGNORED_NODES):
diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py
index 8dc3b9d3..17619ee1 100644
--- a/sphinx/util/osutil.py
+++ b/sphinx/util/osutil.py
@@ -40,12 +40,20 @@ def relative_uri(base, to):
return to
b2 = base.split(SEP)
t2 = to.split(SEP)
- # remove common segments
- for x, y in zip(b2, t2):
+ # remove common segments (except the last segment)
+ for x, y in zip(b2[:-1], t2[:-1]):
if x != y:
break
b2.pop(0)
t2.pop(0)
+ if b2 == t2:
+ # Special case: relative_uri('f/index.html','f/index.html')
+ # returns '', not 'index.html'
+ return ''
+ if len(b2) == 1 and t2 == ['']:
+ # Special case: relative_uri('f/index.html','f/') should
+ # return './', not ''
+ return '.' + SEP
return ('..' + SEP) * (len(b2)-1) + SEP.join(t2)
@@ -136,8 +144,9 @@ else:
def safe_relpath(path, start=None):
+ from sphinx.util.pycompat import relpath
try:
- return os.path.relpath(path, start)
+ return relpath(path, start)
except ValueError:
return path
diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py
index 9e081b02..c2c6fe8b 100644
--- a/sphinx/util/pycompat.py
+++ b/sphinx/util/pycompat.py
@@ -82,6 +82,10 @@ if sys.version_info >= (2, 6):
except ImportError:
from itertools import izip_longest as zip_longest
+ import os
+ relpath = os.path.relpath
+ del os
+
else:
# Python < 2.6
from itertools import izip, repeat, chain
@@ -114,6 +118,26 @@ else:
except IndexError:
pass
+ from os.path import curdir
+ def relpath(path, start=curdir):
+ """Return a relative version of a path"""
+ from os.path import sep, abspath, commonprefix, join, pardir
+
+ if not path:
+ raise ValueError("no path specified")
+
+ start_list = abspath(start).split(sep)
+ path_list = abspath(path).split(sep)
+
+ # Work out how much of the filepath is shared by start and path.
+ i = len(commonprefix([start_list, path_list]))
+
+ rel_list = [pardir] * (len(start_list)-i) + path_list[i:]
+ if not rel_list:
+ return curdir
+ return join(*rel_list)
+ del curdir
+
# ------------------------------------------------------------------------------
# Missing builtins and codecs in Python < 2.5
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index 2051e38e..d714ed4f 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -23,7 +23,10 @@ from sphinx.util.smartypants import sphinx_smarty_pants
try:
from PIL import Image # check for the Python Imaging Library
except ImportError:
- Image = None
+ try:
+ import Image
+ except ImportError:
+ Image = None
class HTMLWriter(Writer):
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index f2ebad36..aadf4401 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -100,7 +100,9 @@ class LaTeXWriter(writers.Writer):
class ExtBabel(Babel):
def get_shorthandoff(self):
shortlang = self.language.split('_')[0]
- if shortlang in ('de', 'sl', 'pt', 'es', 'nl', 'pl', 'it'):
+ if shortlang in ('de', 'ngerman', 'sl', 'slovene', 'pt', 'portuges',
+ 'es', 'spanish', 'nl', 'dutch', 'pl', 'polish', 'it',
+ 'italian'):
return '\\shorthandoff{"}'
return ''
@@ -133,6 +135,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
'papersize': 'letterpaper',
'pointsize': '10pt',
'classoptions': '',
+ 'extraclassoptions': '',
'inputenc': '\\usepackage[utf8]{inputenc}',
'utf8extra': '\\DeclareUnicodeCharacter{00A0}{\\nobreakspace}',
'fontenc': '\\usepackage[T1]{fontenc}',
@@ -204,17 +207,19 @@ class LaTeXTranslator(nodes.NodeVisitor):
# pTeX (Japanese TeX) for support
if builder.config.language == 'ja':
- self.elements['classoptions'] = ',dvipdfm'
- # found elements of babel, but this should be above sphinx.sty.
- # because pTeX (Japanese TeX) cannot handle this count.
- self.elements['babel'] = r'\newcount\pdfoutput\pdfoutput=0'
- # to make the pdf with correct encoded hyperref bookmarks
- self.elements['preamble'] += \
- r'\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}'
+ # use dvipdfmx as default class option in Japanese
+ self.elements['classoptions'] = ',dvipdfmx'
+ # disable babel which has not publishing quality in Japanese
+ self.elements['babel'] = ''
+ # disable fncychap in Japanese documents
+ self.elements['fncychap'] = ''
else:
self.elements['classoptions'] += ',english'
# allow the user to override them all
self.elements.update(builder.config.latex_elements)
+ if self.elements['extraclassoptions']:
+ self.elements['classoptions'] += ',' + \
+ self.elements['extraclassoptions']
self.highlighter = highlighting.PygmentsBridge('latex',
builder.config.pygments_style, builder.config.trim_doctest_flags)
diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
index 81f2988b..e074691e 100644
--- a/sphinx/writers/manpage.py
+++ b/sphinx/writers/manpage.py
@@ -72,6 +72,11 @@ class ManualPageTranslator(BaseTranslator):
# since self.append_header() is never called, need to do this here
self.body.append(MACRO_DEF)
+ # Overwrite admonition label translations with our own
+ for label, translation in admonitionlabels.items():
+ self.language.labels[label] = self.deunicode(translation)
+
+
# overwritten -- added quotes around all .TH arguments
def header(self):
tmpl = (".TH \"%(title_upper)s\" \"%(manual_section)s\""
@@ -193,12 +198,6 @@ class ManualPageTranslator(BaseTranslator):
def depart_seealso(self, node):
self.depart_admonition(node)
- # overwritten -- use our own label translations
- def visit_admonition(self, node, name=None):
- if name:
- self.body.append('.IP %s\n' %
- self.deunicode(admonitionlabels.get(name, name)))
-
def visit_productionlist(self, node):
self.ensure_eol()
names = []
diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py
index 5799e023..198d1e06 100644
--- a/sphinx/writers/texinfo.py
+++ b/sphinx/writers/texinfo.py
@@ -233,30 +233,31 @@ class TexinfoTranslator(nodes.NodeVisitor):
"""Generates a unique id for each section.
Assigns the attribute ``node_name`` to each section."""
+
+ def add_node_name(name):
+ node_id = self.escape_id(name)
+ nth, suffix = 1, ''
+ while node_id + suffix in self.written_ids or \
+ node_id + suffix in self.node_names:
+ nth += 1
+ suffix = '<%s>' % nth
+ node_id += suffix
+ self.written_ids.add(node_id)
+ self.node_names[node_id] = name
+ return node_id
+
# must have a "Top" node
self.document['node_name'] = 'Top'
- self.node_names['Top'] = 'Top'
- self.written_ids.update(('Top', 'top'))
+ add_node_name('Top')
+ add_node_name('top')
# each index is a node
- for name, content in self.indices:
- self.node_names[name] = name
- self.written_ids.add(name)
+ self.indices = [(add_node_name(name), content)
+ for name, content in self.indices]
# each section is also a node
for section in self.document.traverse(nodes.section):
title = section.next_node(nodes.Titular)
name = (title and title.astext()) or '<untitled>'
- node_id = self.escape_id(name) or '<untitled>'
- assert node_id and name
- nth, suffix = 1, ''
- while node_id + suffix in self.written_ids:
- nth += 1
- suffix = '<%s>' % nth
- node_id += suffix
- assert node_id not in self.node_names
- assert node_id not in self.written_ids
- section['node_name'] = node_id
- self.node_names[node_id] = name
- self.written_ids.add(node_id)
+ section['node_name'] = add_node_name(name)
def collect_node_menus(self):
"""Collect the menu entries for each "node" section."""
@@ -371,7 +372,11 @@ class TexinfoTranslator(nodes.NodeVisitor):
for entry in entries:
name = self.node_names[entry]
# special formatting for entries that are divided by an em-dash
- parts = reg.split(name, 1)
+ try:
+ parts = reg.split(name, 1)
+ except TypeError:
+ # could be a gettext proxy
+ parts = [name]
if len(parts) == 2:
name, desc = parts
else:
@@ -450,8 +455,7 @@ class TexinfoTranslator(nodes.NodeVisitor):
self.builder.docnames)
if not content:
continue
- node_name = self.escape_id(indexcls.localname)
- self.indices.append((node_name,
+ self.indices.append((indexcls.localname,
generate(content, collapsed)))
self.indices.append((_('Index'), '\n@printindex ge\n'))
diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py
index e5ab070c..e62c05f4 100644
--- a/sphinx/writers/text.py
+++ b/sphinx/writers/text.py
@@ -71,6 +71,7 @@ class TextTranslator(nodes.NodeVisitor):
self.stateindent = [0]
self.list_counter = []
self.sectionlevel = 0
+ self.lineblocklevel = 0
self.table = None
def add_text(self, text):
@@ -593,14 +594,18 @@ class TextTranslator(nodes.NodeVisitor):
self.end_state(wrap=False)
def visit_line_block(self, node):
- self.new_state(0)
+ self.new_state()
+ self.lineblocklevel += 1
def depart_line_block(self, node):
- self.end_state(wrap=False)
+ self.lineblocklevel -= 1
+ self.end_state(wrap=False, end=None)
+ if not self.lineblocklevel:
+ self.add_text('\n')
def visit_line(self, node):
pass
def depart_line(self, node):
- pass
+ self.add_text('\n')
def visit_block_quote(self, node):
self.new_state()
@@ -709,6 +714,11 @@ class TextTranslator(nodes.NodeVisitor):
def depart_inline(self, node):
pass
+ def visit_container(self, node):
+ pass
+ def depart_container(self, node):
+ pass
+
def visit_problematic(self, node):
self.add_text('>>')
def depart_problematic(self, node):
diff --git a/sphinx/writers/xml.py b/sphinx/writers/xml.py
new file mode 100644
index 00000000..02becb73
--- /dev/null
+++ b/sphinx/writers/xml.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+"""
+ sphinx.writers.xml
+ ~~~~~~~~~~~~~~~~~~
+
+ Docutils-native XML and pseudo-XML writers.
+
+ :copyright: Copyright 2007-2012 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from docutils import writers
+from docutils.writers.docutils_xml import Writer as BaseXMLWriter
+from docutils.writers.docutils_xml import XMLTranslator as BaseXMLTranslator
+
+
+class XMLWriter(BaseXMLWriter):
+
+ def __init__(self, builder):
+ BaseXMLWriter.__init__(self)
+ self.builder = builder
+
+ def translate(self, *args, **kwargs):
+ self.document.settings.newlines = \
+ self.document.settings.indents = \
+ self.builder.env.config.xml_pretty
+ self.document.settings.xml_declaration = True
+ self.document.settings.doctype_declaration = True
+ return BaseXMLWriter.translate(self)
+
+
+class XMLTranslator(BaseXMLTranslator):
+ def __init__(self, builder, doc):
+ BaseXMLTranslator.__init__(self, doc)
+ self.builder = builder
+
+
+class PseudoXMLWriter(writers.Writer):
+
+ supported = ('pprint', 'pformat', 'pseudoxml')
+ """Formats this writer supports."""
+
+ config_section = 'pseudoxml writer'
+ config_section_dependencies = ('writers',)
+
+ output = None
+ """Final translated form of `document`."""
+
+ def __init__(self, builder):
+ writers.Writer.__init__(self)
+ self.builder = builder
+
+ def translate(self):
+ self.output = self.document.pformat()
+
+ def supports(self, format):
+ """This writer supports all format-specific elements."""
+ return True