summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavid ham <david.ham@imperial.ac.uk>2014-03-28 14:38:52 +0000
committerdavid ham <david.ham@imperial.ac.uk>2014-03-28 14:38:52 +0000
commit27972a77f065787cd86664f57566cab4762a8469 (patch)
tree7756acfb342bc134cca65f72e5baa8484a3570d8
parent71d18ceddbea78189fd58a21cdb098e98833b251 (diff)
parent9ee16137537e42356e3186a0f9f4cca04f124e57 (diff)
downloadsphinx-27972a77f065787cd86664f57566cab4762a8469.tar.gz
merge
-rw-r--r--CHANGES281
-rw-r--r--EXAMPLES25
-rw-r--r--MANIFEST.in7
-rw-r--r--distribute_setup.py541
-rw-r--r--doc/Makefile160
-rw-r--r--doc/_static/bookcover.pngbin0 -> 31844 bytes
-rw-r--r--doc/_templates/index.html19
-rw-r--r--doc/_templates/indexsidebar.html5
-rw-r--r--doc/_themes/sphinx13/layout.html4
-rw-r--r--doc/_themes/sphinx13/static/sphinx13.css2
-rw-r--r--doc/builders.rst10
-rw-r--r--doc/conf.py2
-rw-r--r--doc/config.rst59
-rw-r--r--doc/contents.rst1
-rw-r--r--doc/develop.rst66
-rw-r--r--doc/devguide.rst44
-rw-r--r--doc/domains.rst168
-rw-r--r--doc/ext/autodoc.rst46
-rw-r--r--doc/ext/refcounting.rst7
-rw-r--r--doc/extdev/appapi.rst (renamed from doc/ext/appapi.rst)156
-rw-r--r--doc/extdev/builderapi.rst (renamed from doc/ext/builderapi.rst)4
-rw-r--r--doc/extdev/domainapi.rst14
-rw-r--r--doc/extdev/envapi.rst54
-rw-r--r--doc/extdev/index.rst33
-rw-r--r--doc/extdev/markupapi.rst139
-rw-r--r--doc/extdev/nodes.rst57
-rw-r--r--doc/extdev/tutorial.rst (renamed from doc/ext/tutorial.rst)79
-rw-r--r--doc/extensions.rst39
-rw-r--r--doc/faq.rst16
-rw-r--r--doc/install.rst15
-rw-r--r--doc/intl.rst44
-rw-r--r--doc/intro.rst8
-rw-r--r--doc/invocation.rst19
-rw-r--r--doc/man/sphinx-apidoc.rst33
-rw-r--r--doc/man/sphinx-build.rst19
-rw-r--r--doc/markup/code.rst7
-rw-r--r--doc/markup/misc.rst12
-rw-r--r--doc/markup/toctree.rst13
-rw-r--r--doc/rest.rst2
-rw-r--r--doc/templating.rst3
-rw-r--r--doc/theming.rst31
-rw-r--r--doc/tutorial.rst40
-rw-r--r--ez_setup.py370
-rw-r--r--setup.py9
-rwxr-xr-xsphinx-apidoc.py2
-rwxr-xr-xsphinx-autogen.py2
-rwxr-xr-xsphinx-build.py9
-rwxr-xr-xsphinx-quickstart.py2
-rw-r--r--sphinx/__init__.py16
-rw-r--r--sphinx/addnodes.py2
-rw-r--r--sphinx/apidoc.py148
-rw-r--r--sphinx/application.py55
-rw-r--r--sphinx/builders/__init__.py9
-rw-r--r--sphinx/builders/changes.py2
-rw-r--r--sphinx/builders/devhelp.py2
-rw-r--r--sphinx/builders/epub.py2
-rw-r--r--sphinx/builders/gettext.py16
-rw-r--r--sphinx/builders/html.py24
-rw-r--r--sphinx/builders/htmlhelp.py4
-rw-r--r--sphinx/builders/latex.py2
-rw-r--r--sphinx/builders/linkcheck.py92
-rw-r--r--sphinx/builders/manpage.py2
-rw-r--r--sphinx/builders/qthelp.py2
-rw-r--r--sphinx/builders/texinfo.py2
-rw-r--r--sphinx/builders/text.py3
-rw-r--r--sphinx/builders/websupport.py2
-rw-r--r--sphinx/builders/xml.py2
-rw-r--r--sphinx/cmdline.py68
-rw-r--r--sphinx/config.py7
-rw-r--r--sphinx/directives/__init__.py21
-rw-r--r--sphinx/directives/code.py2
-rw-r--r--sphinx/directives/other.py8
-rw-r--r--sphinx/domains/__init__.py2
-rw-r--r--sphinx/domains/c.py26
-rw-r--r--sphinx/domains/cpp.py81
-rw-r--r--sphinx/domains/javascript.py2
-rw-r--r--sphinx/domains/python.py9
-rw-r--r--sphinx/domains/rst.py2
-rw-r--r--sphinx/domains/std.py74
-rw-r--r--sphinx/environment.py50
-rw-r--r--sphinx/errors.py2
-rw-r--r--sphinx/ext/__init__.py2
-rw-r--r--sphinx/ext/autodoc.py101
-rw-r--r--sphinx/ext/autosummary/__init__.py17
-rw-r--r--sphinx/ext/autosummary/generate.py19
-rw-r--r--sphinx/ext/coverage.py2
-rw-r--r--sphinx/ext/doctest.py2
-rw-r--r--sphinx/ext/extlinks.py2
-rw-r--r--sphinx/ext/graphviz.py5
-rw-r--r--sphinx/ext/ifconfig.py2
-rw-r--r--sphinx/ext/inheritance_diagram.py27
-rw-r--r--sphinx/ext/intersphinx.py12
-rw-r--r--sphinx/ext/jsmath.py2
-rw-r--r--sphinx/ext/linkcode.py2
-rw-r--r--sphinx/ext/mathbase.py8
-rw-r--r--sphinx/ext/mathjax.py2
-rw-r--r--sphinx/ext/pngmath.py19
-rw-r--r--sphinx/ext/refcounting.py101
-rw-r--r--sphinx/ext/todo.py2
-rw-r--r--sphinx/ext/viewcode.py24
-rw-r--r--sphinx/highlighting.py32
-rw-r--r--sphinx/jinja2glue.py22
-rw-r--r--sphinx/locale/.tx/config33
-rw-r--r--sphinx/locale/__init__.py4
-rw-r--r--sphinx/locale/bn/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/bn/LC_MESSAGES/sphinx.mobin13002 -> 13655 bytes
-rw-r--r--sphinx/locale/bn/LC_MESSAGES/sphinx.po110
-rw-r--r--sphinx/locale/ca/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/ca/LC_MESSAGES/sphinx.mobin10000 -> 10509 bytes
-rw-r--r--sphinx/locale/ca/LC_MESSAGES/sphinx.po88
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.mobin9554 -> 10669 bytes
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.po240
-rw-r--r--sphinx/locale/da/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/da/LC_MESSAGES/sphinx.mobin10209 -> 10397 bytes
-rw-r--r--sphinx/locale/da/LC_MESSAGES/sphinx.po67
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.mobin10730 -> 10728 bytes
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.po52
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.mobin11063 -> 11060 bytes
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.po66
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.mobin10249 -> 10455 bytes
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.po62
-rw-r--r--sphinx/locale/eu/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/eu/LC_MESSAGES/sphinx.mobin10438 -> 10590 bytes
-rw-r--r--sphinx/locale/eu/LC_MESSAGES/sphinx.po59
-rw-r--r--sphinx/locale/fa/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/fa/LC_MESSAGES/sphinx.mobin9425 -> 11070 bytes
-rw-r--r--sphinx/locale/fa/LC_MESSAGES/sphinx.po120
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.mobin9846 -> 10138 bytes
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.po60
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.mobin10325 -> 10965 bytes
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.po156
-rw-r--r--sphinx/locale/he/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/he/LC_MESSAGES/sphinx.mobin10599 -> 10952 bytes
-rw-r--r--sphinx/locale/he/LC_MESSAGES/sphinx.po57
-rw-r--r--sphinx/locale/hr/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/hr/LC_MESSAGES/sphinx.mobin9705 -> 10509 bytes
-rw-r--r--sphinx/locale/hr/LC_MESSAGES/sphinx.po99
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.mobin11024 -> 11025 bytes
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.po52
-rw-r--r--sphinx/locale/id/LC_MESSAGES/sphinx.js1
-rw-r--r--sphinx/locale/id/LC_MESSAGES/sphinx.mobin0 -> 10388 bytes
-rw-r--r--sphinx/locale/id/LC_MESSAGES/sphinx.po837
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.mobin9944 -> 10839 bytes
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.po177
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.mobin11014 -> 11311 bytes
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.po89
-rw-r--r--sphinx/locale/ko/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/ko/LC_MESSAGES/sphinx.mobin7989 -> 10379 bytes
-rw-r--r--sphinx/locale/ko/LC_MESSAGES/sphinx.po128
-rw-r--r--sphinx/locale/lt/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/lt/LC_MESSAGES/sphinx.mobin10675 -> 10832 bytes
-rw-r--r--sphinx/locale/lt/LC_MESSAGES/sphinx.po66
-rw-r--r--sphinx/locale/lv/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/lv/LC_MESSAGES/sphinx.mobin10580 -> 10729 bytes
-rw-r--r--sphinx/locale/lv/LC_MESSAGES/sphinx.po58
-rw-r--r--sphinx/locale/mk/LC_MESSAGES/sphinx.js1
-rw-r--r--sphinx/locale/mk/LC_MESSAGES/sphinx.mobin0 -> 10649 bytes
-rw-r--r--sphinx/locale/mk/LC_MESSAGES/sphinx.po836
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mobin10001 -> 10226 bytes
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po52
-rw-r--r--sphinx/locale/ne/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/ne/LC_MESSAGES/sphinx.mobin13056 -> 13198 bytes
-rw-r--r--sphinx/locale/ne/LC_MESSAGES/sphinx.po57
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.mobin9940 -> 10468 bytes
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.po87
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.mobin10734 -> 10732 bytes
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.po56
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mobin10856 -> 10900 bytes
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po69
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.mobin11735 -> 13351 bytes
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.po157
-rw-r--r--sphinx/locale/si/LC_MESSAGES/sphinx.js1
-rw-r--r--sphinx/locale/si/LC_MESSAGES/sphinx.mobin0 -> 11158 bytes
-rw-r--r--sphinx/locale/si/LC_MESSAGES/sphinx.po836
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.mobin9752 -> 10677 bytes
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.po304
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.mobin9726 -> 10447 bytes
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.po91
-rw-r--r--sphinx/locale/sv/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/sv/LC_MESSAGES/sphinx.mobin10008 -> 10254 bytes
-rw-r--r--sphinx/locale/sv/LC_MESSAGES/sphinx.po59
-rw-r--r--sphinx/locale/tr/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/tr/LC_MESSAGES/sphinx.mobin10796 -> 10794 bytes
-rw-r--r--sphinx/locale/tr/LC_MESSAGES/sphinx.po53
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mobin11327 -> 12080 bytes
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po98
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mobin9978 -> 9966 bytes
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po48
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mobin9306 -> 10273 bytes
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po100
-rw-r--r--sphinx/make_mode.py259
-rw-r--r--sphinx/pycode/Grammar-py2.txt (renamed from sphinx/pycode/Grammar.txt)80
-rw-r--r--sphinx/pycode/Grammar-py3.txt126
-rw-r--r--sphinx/pycode/__init__.py6
-rw-r--r--sphinx/pycode/nodes.py2
-rw-r--r--sphinx/pycode/pgen2/driver.py7
-rw-r--r--sphinx/pycode/pgen2/grammar.py1
-rwxr-xr-xsphinx/pycode/pgen2/token.py3
-rw-r--r--sphinx/pygments_styles.py2
-rw-r--r--sphinx/quickstart.py117
-rw-r--r--sphinx/roles.py2
-rw-r--r--sphinx/search/__init__.py19
-rw-r--r--sphinx/search/en.py2
-rw-r--r--sphinx/search/ja.py6
-rw-r--r--sphinx/setup_command.py24
-rw-r--r--sphinx/texinputs/sphinx.sty22
-rw-r--r--sphinx/texinputs/sphinxmanual.cls3
-rw-r--r--sphinx/texinputs/tabulary.sty9
-rw-r--r--sphinx/themes/agogo/layout.html2
-rw-r--r--sphinx/themes/agogo/static/agogo.css_t2
-rw-r--r--sphinx/themes/basic/defindex.html2
-rw-r--r--sphinx/themes/basic/domainindex.html2
-rw-r--r--sphinx/themes/basic/genindex-single.html2
-rw-r--r--sphinx/themes/basic/genindex-split.html2
-rw-r--r--sphinx/themes/basic/genindex.html2
-rw-r--r--sphinx/themes/basic/globaltoc.html2
-rw-r--r--sphinx/themes/basic/layout.html2
-rw-r--r--sphinx/themes/basic/localtoc.html2
-rw-r--r--sphinx/themes/basic/page.html2
-rw-r--r--sphinx/themes/basic/relations.html2
-rw-r--r--sphinx/themes/basic/search.html2
-rw-r--r--sphinx/themes/basic/searchbox.html4
-rw-r--r--sphinx/themes/basic/searchresults.html2
-rw-r--r--sphinx/themes/basic/sourcelink.html2
-rw-r--r--sphinx/themes/basic/static/basic.css_t7
-rw-r--r--sphinx/themes/basic/static/doctools.js5
-rw-r--r--sphinx/themes/basic/static/jquery.js6
-rw-r--r--sphinx/themes/basic/static/searchtools.js_t8
-rw-r--r--sphinx/themes/basic/static/websupport.js2
-rw-r--r--sphinx/themes/default/layout.html2
-rw-r--r--sphinx/themes/default/static/default.css_t2
-rw-r--r--sphinx/themes/default/static/sidebar.js_t4
-rw-r--r--sphinx/themes/epub/epub-cover.html2
-rw-r--r--sphinx/themes/epub/layout.html2
-rw-r--r--sphinx/themes/epub/static/epub.css84
-rw-r--r--sphinx/themes/haiku/layout.html4
-rw-r--r--sphinx/themes/haiku/static/haiku.css_t4
-rw-r--r--sphinx/themes/nature/static/nature.css_t2
-rw-r--r--sphinx/themes/pyramid/static/epub.css2
-rw-r--r--sphinx/themes/pyramid/static/pyramid.css_t2
-rw-r--r--sphinx/themes/scrolls/layout.html2
-rw-r--r--sphinx/themes/scrolls/static/print.css12
-rw-r--r--sphinx/themes/scrolls/static/scrolls.css_t2
-rw-r--r--sphinx/themes/sphinxdoc/layout.html2
-rw-r--r--sphinx/themes/sphinxdoc/static/sphinxdoc.css_t2
-rw-r--r--sphinx/themes/traditional/static/traditional.css_t6
-rw-r--r--sphinx/theming.py49
-rw-r--r--sphinx/transforms.py40
-rw-r--r--sphinx/util/__init__.py62
-rw-r--r--sphinx/util/compat.py2
-rw-r--r--sphinx/util/console.py2
-rw-r--r--sphinx/util/docfields.py12
-rw-r--r--sphinx/util/docstrings.py2
-rw-r--r--sphinx/util/inspect.py59
-rw-r--r--sphinx/util/jsdump.py2
-rw-r--r--sphinx/util/jsonimpl.py2
-rw-r--r--sphinx/util/matching.py2
-rw-r--r--sphinx/util/nodes.py19
-rw-r--r--sphinx/util/osutil.py24
-rw-r--r--sphinx/util/png.py2
-rw-r--r--sphinx/util/pycompat.py14
-rw-r--r--sphinx/util/tags.py2
-rw-r--r--sphinx/util/texescape.py2
-rw-r--r--sphinx/util/websupport.py2
-rw-r--r--sphinx/versioning.py2
-rw-r--r--sphinx/websupport/__init__.py2
-rw-r--r--sphinx/websupport/errors.py2
-rw-r--r--sphinx/websupport/search/__init__.py2
-rw-r--r--sphinx/websupport/search/nullsearch.py2
-rw-r--r--sphinx/websupport/search/whooshsearch.py2
-rw-r--r--sphinx/websupport/search/xapiansearch.py2
-rw-r--r--sphinx/websupport/storage/__init__.py2
-rw-r--r--sphinx/websupport/storage/differ.py2
-rw-r--r--sphinx/websupport/storage/sqlalchemy_db.py2
-rw-r--r--sphinx/websupport/storage/sqlalchemystorage.py2
-rw-r--r--sphinx/writers/__init__.py2
-rw-r--r--sphinx/writers/html.py51
-rw-r--r--sphinx/writers/latex.py125
-rw-r--r--sphinx/writers/manpage.py22
-rw-r--r--sphinx/writers/texinfo.py16
-rw-r--r--sphinx/writers/text.py23
-rw-r--r--sphinx/writers/websupport.py2
-rw-r--r--sphinx/writers/xml.py2
-rwxr-xr-xtests/path.py2
-rw-r--r--tests/root/conf.py1
-rw-r--r--tests/root/markup.txt5
-rw-r--r--tests/root/objects.txt26
-rw-r--r--tests/root/robots.txt2
-rw-r--r--tests/roots/test-autosummary/conf.py5
-rw-r--r--tests/roots/test-autosummary/contents.rst6
-rw-r--r--tests/roots/test-autosummary/dummy_module.py21
-rw-r--r--tests/roots/test-intl/figure_caption.po6
-rw-r--r--tests/roots/test-intl/figure_caption.txt14
-rw-r--r--tests/roots/test-intl/label_target.po14
-rw-r--r--tests/roots/test-intl/label_target.txt15
-rw-r--r--tests/roots/test-intl/refs_python_domain.po25
-rw-r--r--tests/roots/test-intl/refs_python_domain.txt15
-rw-r--r--tests/roots/test-intl/rubric.po29
-rw-r--r--tests/roots/test-intl/rubric.txt14
-rw-r--r--tests/roots/test-setup/doc/conf.py5
-rw-r--r--tests/roots/test-setup/doc/contents.txt5
-rw-r--r--tests/roots/test-setup/setup.cfg5
-rw-r--r--tests/roots/test-setup/setup.py9
-rw-r--r--tests/roots/test-templating/_templates/autosummary/class.rst8
-rw-r--r--tests/roots/test-templating/_templates/layout.html6
-rw-r--r--tests/roots/test-templating/autosummary_templating.txt13
-rw-r--r--tests/roots/test-templating/conf.py11
-rw-r--r--tests/roots/test-templating/contents.txt7
-rwxr-xr-xtests/run.py2
-rw-r--r--tests/test_application.py4
-rw-r--r--tests/test_autodoc.py67
-rw-r--r--tests/test_autosummary.py66
-rw-r--r--tests/test_build.py15
-rw-r--r--tests/test_build_gettext.py2
-rw-r--r--tests/test_build_html.py34
-rw-r--r--tests/test_build_latex.py4
-rw-r--r--tests/test_build_texinfo.py6
-rw-r--r--tests/test_build_text.py8
-rw-r--r--tests/test_config.py2
-rw-r--r--tests/test_coverage.py2
-rw-r--r--tests/test_cpp_domain.py26
-rw-r--r--tests/test_doctest.py2
-rw-r--r--tests/test_docutilsconf.py2
-rw-r--r--tests/test_env.py2
-rw-r--r--tests/test_footnote.py2
-rw-r--r--tests/test_highlighting.py2
-rw-r--r--tests/test_i18n.py2
-rw-r--r--tests/test_intersphinx.py2
-rw-r--r--tests/test_intl.py67
-rw-r--r--tests/test_linkcode.py9
-rw-r--r--tests/test_markup.py4
-rw-r--r--tests/test_metadata.py8
-rw-r--r--tests/test_only_directive.py2
-rw-r--r--tests/test_quickstart.py13
-rw-r--r--tests/test_rst_domain.py2
-rw-r--r--tests/test_search.py2
-rw-r--r--tests/test_searchadapters.py2
-rw-r--r--tests/test_setup_command.py94
-rw-r--r--tests/test_templating.py36
-rw-r--r--tests/test_theming.py2
-rw-r--r--tests/test_versioning.py2
-rw-r--r--tests/test_websupport.py2
-rw-r--r--tests/util.py2
-rwxr-xr-xutils/check_sources.py4
-rwxr-xr-xutils/convert.py2
-rw-r--r--utils/release-checklist21
365 files changed, 8160 insertions, 3561 deletions
diff --git a/CHANGES b/CHANGES
index 511133cd..0f9fbd0b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,12 +1,235 @@
-Release 1.2 (in development)
-============================
+Release 1.2.3 (in development)
+==============================
+
+Bugs fixed
+----------
+
+* #636: Keep straight single quotes in literal blocks in the LaTeX build.
+* #1419: Generated i18n sphinx.js files are missing message catalog entries
+ from '.js_t' and '.html'. The issue was introduced from Sphinx-1.1
+* #1363: Fix i18n: missing python domain's cross-references with currentmodule
+ directive or currentclass directive.
+
+
+Release 1.2.2 (released Mar 2, 2014)
+====================================
+
+Bugs fixed
+----------
+
+* PR#211: When checking for existence of the :confval:`html_logo` file, check
+ the full relative path and not the basename.
+* PR#212: Fix traceback with autodoc and ``__init__`` methods without docstring.
+* PR#213: Fix a missing import in the setup command.
+* #1357: Option names documented by :rst:dir:`option` are now again allowed to
+ not start with a dash or slash, and referencing them will work correctly.
+* #1358: Fix handling of image paths outside of the source directory when using
+ the "wildcard" style reference.
+* #1374: Fix for autosummary generating overly-long summaries if first line
+ doesn't end with a period.
+* #1383: Fix Python 2.5 compatibility of sphinx-apidoc.
+* #1391: Actually prevent using "pngmath" and "mathjax" extensions at the same
+ time in sphinx-quickstart.
+* #1386: Fix bug preventing more than one theme being added by the entry point
+ mechanism.
+* #1370: Ignore "toctree" nodes in text writer, instead of raising.
+* #1364: Fix 'make gettext' fails when the '.. todolist::' directive is present.
+* #1367: Fix a change of PR#96 that break sphinx.util.docfields.Field.make_field
+ interface/behavior for `item` argument usage.
+
+Documentation
+-------------
+
+* Extended the :ref:`documentation about building extensions <dev-extensions>`.
+
+
+Release 1.2.1 (released Jan 19, 2014)
+=====================================
+
+Bugs fixed
+----------
+
+* #1335: Fix autosummary template overloading with exclamation prefix like
+ ``{% extends "!autosummary/class.rst" %}`` cause infinite recursive function
+ call. This was caused by PR#181.
+* #1337: Fix autodoc with ``autoclass_content="both"`` uses useless
+ ``object.__init__`` docstring when class does not have ``__init__``.
+ This was caused by a change for #1138.
+* #1340: Can't search alphabetical words on the HTML quick search generated
+ with language='ja'.
+* #1319: Do not crash if the :confval:`html_logo` file does not exist.
+* #603: Do not use the HTML-ized title for building the search index (that
+ resulted in "literal" being found on every page with a literal in the
+ title).
+* #751: Allow production lists longer than a page in LaTeX by using longtable.
+* #764: Always look for stopwords lowercased in JS search.
+* #814: autodoc: Guard against strange type objects that don't have
+ ``__bases__``.
+* #932: autodoc: Do not crash if ``__doc__`` is not a string.
+* #933: Do not crash if an :rst:role:`option` value is malformed (contains
+ spaces but no option name).
+* #908: On Python 3, handle error messages from LaTeX correctly in the pngmath
+ extension.
+* #943: In autosummary, recognize "first sentences" to pull from the docstring
+ if they contain uppercase letters.
+* #923: Take the entire LaTeX document into account when caching
+ pngmath-generated images. This rebuilds them correctly when
+ :confval:`pngmath_latex_preamble` changes.
+* #901: Emit a warning when using docutils' new "math" markup without a Sphinx
+ math extension active.
+* #845: In code blocks, when the selected lexer fails, display line numbers
+ nevertheless if configured.
+* #929: Support parsed-literal blocks in LaTeX output correctly.
+* #949: Update the tabulary.sty packed with Sphinx.
+* #1050: Add anonymous labels into ``objects.inv`` to be referenced via
+ :mod:`~sphinx.ext.intersphinx`.
+* #1095: Fix print-media stylesheet being included always in the "scrolls"
+ theme.
+* #1085: Fix current classname not getting set if class description has
+ ``:noindex:`` set.
+* #1181: Report option errors in autodoc directives more gracefully.
+* #1155: Fix autodocumenting C-defined methods as attributes in Python 3.
+* #1233: Allow finding both Python classes and exceptions with the "class" and
+ "exc" roles in intersphinx.
+* #1198: Allow "image" for the "figwidth" option of the :rst:dir:`figure`
+ directive as documented by docutils.
+* #1152: Fix pycode parsing errors of Python 3 code by including two grammar
+ versions for Python 2 and 3, and loading the appropriate version for the
+ running Python version.
+* #1017: Be helpful and tell the user when the argument to :rst:dir:`option`
+ does not match the required format.
+* #1345: Fix two bugs with :confval:`nitpick_ignore`; now you don't have to
+ remove the store environment for changes to have effect.
+* #1072: In the JS search, fix issues searching for upper-cased words by
+ lowercasing words before stemming.
+* #1299: Make behavior of the :rst:dir:`math` directive more consistent and
+ avoid producing empty environments in LaTeX output.
+* #1308: Strip HTML tags from the content of "raw" nodes before feeding it
+ to the search indexer.
+* #1249: Fix duplicate LaTeX page numbering for manual documents.
+* #1292: In the linkchecker, retry HEAD requests when denied by HTTP 405.
+ Also make the redirect code apparent and tweak the output a bit to be
+ more obvious.
+* #1285: Avoid name clashes between C domain objects and section titles.
+* #848: Always take the newest code in incremental rebuilds with the
+ :mod:`sphinx.ext.viewcode` extension.
+* #979, #1266: Fix exclude handling in ``sphinx-apidoc``.
+* #1302: Fix regression in :mod:`sphinx.ext.inheritance_diagram` when
+ documenting classes that can't be pickled.
+* #1316: Remove hard-coded ``font-face`` resources from epub theme.
+* #1329: Fix traceback with empty translation msgstr in .po files.
+* #1300: Fix references not working in translated documents in some instances.
+* #1283: Fix a bug in the detection of changed files that would try to access
+ doctrees of deleted documents.
+* #1330: Fix :confval:`exclude_patterns` behavior with subdirectories in the
+ :confval:`html_static_path`.
+* #1323: Fix emitting empty ``<ul>`` tags in the HTML writer, which is not
+ valid HTML.
+* #1147: Don't emit a sidebar search box in the "singlehtml" builder.
+
+Documentation
+-------------
+
+* #1325: Added a "Intersphinx" tutorial section. (:file:`doc/tutorial.rst`)
+
+
+Release 1.2 (released Dec 10, 2013)
+===================================
+
+Features added
+--------------
+
+* Added ``sphinx.version_info`` tuple for programmatic checking of the Sphinx
+ version.
+
+Incompatible changes
+--------------------
+
+* Removed the ``sphinx.ext.refcounting`` extension -- it is very specific to
+ CPython and has no place in the main distribution.
+
+Bugs fixed
+----------
+
+* Restore ``versionmodified`` CSS class for versionadded/changed and deprecated
+ directives.
+
+* PR#181: Fix `html_theme_path=['.']` is a trigger of rebuild all documents
+ always (This change keeps the current "theme changes cause a rebuild"
+ feature).
+
+* #1296: Fix invalid charset in HTML help generated HTML files for default
+ locale.
+
+* PR#190: Fix gettext does not extract figure caption and rubric title inside
+ other blocks. Thanks to Michael Schlenker.
+
+* PR#176: Make sure setup_command test can always import Sphinx. Thanks to
+ Dmitry Shachnev.
+
+* #1311: Fix test_linkcode.test_html fails with C locale and Python 3.
+
+* #1269: Fix ResourceWarnings with Python 3.2 or later.
+
+* #1138: Fix: When ``autodoc_docstring_signature = True`` and
+ ``autoclass_content = 'init'`` or ``'both'``, __init__ line should be
+ removed from class documentation.
+
+
+Release 1.2 beta3 (released Oct 3, 2013)
+========================================
+
+Features added
+--------------
+
+* The Sphinx error log files will now include a list of the loaded extensions
+ for help in debugging.
+
+Incompatible changes
+--------------------
+
+* PR#154: Remove "sphinx" prefix from LaTeX class name except 'sphinxmanual'
+ and 'sphinxhowto'. Now you can use your custom document class without
+ 'sphinx' prefix. Thanks to Erik B.
+
+Bugs fixed
+----------
+
+* #1265: Fix i18n: crash when translating a section name that is pointed to from
+ a named target.
+* A wrong condition broke the search feature on first page that is usually
+ index.rst. This issue was introduced in 1.2b1.
+* #703: When Sphinx can't decode filenames with non-ASCII characters, Sphinx now
+ catches UnicodeError and will continue if possible instead of raising the
+ exception.
+
+
+Release 1.2 beta2 (released Sep 17, 2013)
+=========================================
Features added
--------------
+* ``apidoc`` now ignores "_private" modules by default, and has an option ``-P``
+ to include them.
+* ``apidoc`` now has an option to not generate headings for packages and
+ modules, for the case that the module docstring already includes a reST
+ heading.
+* PR#161: ``apidoc`` can now write each module to a standalone page instead of
+ combining all modules in a package on one page.
* Builders: rebuild i18n target document when catalog updated.
-* Support docutils.conf 'writers' and 'html4css1 writer' section by html writer.
- latex, manpage and texinfo writers also support 'writers' section.
+* Support docutils.conf 'writers' and 'html4css1 writer' section in the HTML
+ writer. The latex, manpage and texinfo writers also support their respective
+ 'writers' sections.
+* The new :confval:`html_extra_path` config value allows to specify directories
+ with files that should be copied directly to the HTML output directory.
+* Autodoc directives for module data and attributes now support an
+ ``annotation`` option, so that the default display of the data/attribute
+ value can be overridden.
+* PR#136: Autodoc directives now support an ``imported-members`` option to
+ include members imported from different modules.
+* New locales: Macedonian, Sinhala, Indonesian.
+* Theme package collection by using setuptools plugin mechanism.
Incompatible changes
--------------------
@@ -17,35 +240,51 @@ Incompatible changes
Bugs fixed
----------
-* #1173: Newest Jinja2 2.7 breaks Python version compatibilities because the
- Jinja2 2.7 drops support for Python 2.5, 3.1, 3.2. Thanks to Alexander Dupuy.
-* #1160: Citation target missing cause AssertionError.
-* #1157: Combination of 'globaltoc.html' and hidden toctree cause exception.
-* Fix: 'make gettext' cause UnicodeDecodeError when templates contain utf-8
- encoded string.
-* #1162, PR#139: singlehtml builder doesn't copy images to _images/.
+* PR#132: Updated jQuery version to 1.8.3.
* PR#141, #982: Avoid crash when writing PNG file using Python 3. Thanks to
Marcin Wojdyr.
* PR#145: In parallel builds, sphinx drops second document file to write.
Thanks to tychoish.
+* PR#151: Some styling updates to tables in LaTeX.
+* PR#153: The "extensions" config value can now be overridden.
+* PR#155: Added support for some C++11 function qualifiers.
+* Fix: 'make gettext' caused UnicodeDecodeError when templates contain utf-8
+ encoded strings.
+* #828: use inspect.getfullargspec() to be able to document functions with
+ keyword-only arguments on Python 3.
+* #1090: Fix i18n: multiple cross references (term, ref, doc) in the same line
+ return the same link.
+* #1157: Combination of 'globaltoc.html' and hidden toctree caused exception.
+* #1159: fix wrong generation of objects inventory for Python modules, and
+ add a workaround in intersphinx to fix handling of affected inventories.
+* #1160: Citation target missing caused an AssertionError.
+* #1162, PR#139: singlehtml builder didn't copy images to _images/.
+* #1173: Adjust setup.py dependencies because Jinja2 2.7 discontinued
+ compatibility with Python < 3.3 and Python < 2.6. Thanks to Alexander Dupuy.
+* #1185: Don't crash when a Python module has a wrong or no encoding declared,
+ and non-ASCII characters are included.
* #1188: sphinx-quickstart raises UnicodeEncodeError if "Project version"
includes non-ASCII characters.
-* #1189: "Title underline is short" WARNING is given when using fullwidth
+* #1189: "Title underline is too short" WARNING is given when using fullwidth
characters to "Project name" on quickstart.
-* #1190: Output TeX/texinfo/man filename has no basename (only extention)
- when using multibyte characters to "Project name" on quickstart.
-* #1090: Fix i18n: multiple cross references (term, ref, doc) in the same line
- return the same link.
+* #1190: Output TeX/texinfo/man filename has no basename (only extension)
+ when using non-ASCII characters in the "Project name" on quickstart.
+* #1192: Fix escaping problem for hyperlinks in the manpage writer.
* #1193: Fix i18n: multiple link references in the same line return the same
link.
* #1176: Fix i18n: footnote reference number missing for auto numbered named
footnote and auto symbol footnote.
-* PR#146,#1172: Fix ZeroDivisionError in Parallel Builds. Thanks to tychoish.
+* PR#146,#1172: Fix ZeroDivisionError in parallel builds. Thanks to tychoish.
+* #1204: Fix wrong generation of links to local intersphinx targets.
* #1206: Fix i18n: gettext did not translate admonition directive's title.
-* #1232: Sphinx generates broken ePub on Windows.
+* #1232: Sphinx generated broken ePub files on Windows.
+* #1259: Guard the debug output call when emitting events; to prevent the
+ repr() implementation of arbitrary objects causing build failures.
+* #1142: Fix NFC/NFD normalizing problem of rst filename on Mac OS X.
+* #1234: Ignoring the string consists only of white-space characters.
-Release 1.2 (beta1 released Mar 31, 2013)
+Release 1.2 beta1 (released Mar 31, 2013)
=========================================
Incompatible changes
@@ -139,6 +378,8 @@ Features added
reference documentation in doc directory provides a ``sphinx.pot`` file with
message strings from ``doc/_templates/*.html`` when using ``make gettext``.
+ - PR#61,#703: Add support for non-ASCII filename handling.
+
* Other builders:
- Added the Docutils-native XML and pseudo-XML builders. See
@@ -915,4 +1156,4 @@ Previous versions
The changelog for versions before 1.0 can be found in the file ``CHANGES.old``
in the source distribution or `at BitBucket
-<http://bitbucket.org/birkenfeld/sphinx/raw/tip/CHANGES.old>`__.
+<https://bitbucket.org/birkenfeld/sphinx/raw/tip/CHANGES.old>`__.
diff --git a/EXAMPLES b/EXAMPLES
index 66b9dbec..5a2468d1 100644
--- a/EXAMPLES
+++ b/EXAMPLES
@@ -4,7 +4,7 @@ Projects using Sphinx
This is an (incomplete) alphabetic list of projects that use Sphinx or
are experimenting with using it for their documentation. If you like to
be included, please mail to `the Google group
-<http://groups.google.com/group/sphinx-users>`_.
+<https://groups.google.com/group/sphinx-users>`_.
I've grouped the list into sections to make it easier to find
interesting examples.
@@ -15,12 +15,12 @@ Documentation using the default theme
* APSW: http://apidoc.apsw.googlecode.com/hg/index.html
* ASE: https://wiki.fysik.dtu.dk/ase/
* boostmpi: http://documen.tician.de/boostmpi/
-* Calibre: http://calibre-ebook.com/user_manual/
+* Calibre: http://manual.calibre-ebook.com/
* CodePy: http://documen.tician.de/codepy/
* Cython: http://docs.cython.org/
* C\\C++ Python language binding project: http://language-binding.net/index.html
* Cormoran: http://cormoran.nhopkg.org/docs/
-* Director: http://packages.python.org/director/
+* Director: http://pythonhosted.org/director/
* Dirigible: http://www.projectdirigible.com/documentation/
* Elemental: http://elemental.googlecode.com/hg/doc/build/html/index.html
* F2py: http://f2py.sourceforge.net/docs/
@@ -42,6 +42,7 @@ Documentation using the default theme
* openWNS: http://docs.openwns.org/
* Paste: http://pythonpaste.org/script/
* Paver: http://paver.github.com/paver/
+* Pioneers and Prominent Men of Utah: http://pioneers.rstebbing.com/
* Pyccuracy: https://github.com/heynemann/pyccuracy/wiki/
* PyCuda: http://documen.tician.de/pycuda/
* Pyevolve: http://pyevolve.sourceforge.net/
@@ -88,6 +89,7 @@ Documentation using a customized version of the default theme
* simuPOP: http://simupop.sourceforge.net/manual_release/build/userGuide.html
* Sprox: http://sprox.org/
* TurboGears: http://turbogears.org/2.0/docs/
+* Varnish: https://www.varnish-cache.org/docs/
* Zentyal: http://doc.zentyal.org/
* Zope: http://docs.zope.org/zope2/index.html
* zc.async: http://packages.python.org/zc.async/1.5.0/
@@ -126,6 +128,7 @@ Documentation using another builtin theme
* Distribute: http://packages.python.org/distribute/ (nature)
* Jinja: http://jinja.pocoo.org/ (scrolls)
* jsFiddle: http://doc.jsfiddle.net/ (nature)
+* libLAS: http://liblas.org/ (nature)
* MPipe: http://vmlaker.github.io/mpipe/ (sphinx13)
* pip: http://pip.openplans.org/ (nature)
* Programmieren mit PyGTK und Glade (German):
@@ -135,7 +138,7 @@ Documentation using another builtin theme
* sqlparse: http://python-sqlparse.googlecode.com/svn/docs/api/index.html
(agogo)
* Sylli: http://sylli.sourceforge.net/ (nature)
-* libLAS: http://liblas.org/ (nature)
+* Tuleap Open ALM: https://tuleap.net/doc/en/ (nature)
* Valence: http://docs.valence.desire2learn.com/ (haiku)
@@ -144,6 +147,7 @@ Documentation using a custom theme/integrated in a site
* Blender: http://www.blender.org/documentation/250PythonDoc/
* Blinker: http://discorporate.us/projects/Blinker/docs/
+* Ceph: http://ceph.com/docs/master/
* Classy: http://classy.pocoo.org/
* DEAP: http://deap.gel.ulaval.ca/doc/0.8/index.html
* Django: http://docs.djangoproject.com/
@@ -164,11 +168,12 @@ Documentation using a custom theme/integrated in a site
* OpenCV: http://docs.opencv.org/
* OpenLayers: http://docs.openlayers.org/
* PyEphem: http://rhodesmill.org/pyephem/
-* German Plone 4.0 user manual: http://www.hasecke.com/plone-benutzerhandbuch/4.0/
+* German Plone user manual: http://www.hasecke.com/plone-benutzerhandbuch/
* PSI4: http://sirius.chem.vt.edu/psi4manual/latest/index.html
* Pylons: http://pylonshq.com/docs/en/0.9.7/
* PyMOTW: http://www.doughellmann.com/PyMOTW/
* pypol: http://pypol.altervista.org/ (celery)
+* QGIS: http://qgis.org/
* qooxdoo: http://manual.qooxdoo.org/current
* Roundup: http://www.roundup-tracker.org/
* Selenium: http://seleniumhq.org/docs/
@@ -177,7 +182,7 @@ Documentation using a custom theme/integrated in a site
* SQLAlchemy: http://www.sqlalchemy.org/docs/
* tinyTiM: http://tinytim.sourceforge.net/docs/2.0/
* tipfy: http://www.tipfy.org/docs/
-* Ubuntu packaging guide: http://developer.ubuntu.com/packaging/html/
+* Ubuntu packaging guide: http://packaging.ubuntu.com/html/
* Werkzeug: http://werkzeug.pocoo.org/docs/
* WFront: http://discorporate.us/projects/WFront/
@@ -191,6 +196,7 @@ Homepages and other non-documentation sites
* lunarsite: http://lunaryorn.de/
* Red Hot Chili Python: http://redhotchilipython.com/
* The Wine Cellar Book: http://www.thewinecellarbook.com/doc/en/
+* Uni. Berkeley Advanced Control Systems course: http://www.me.berkeley.edu/ME233/sp14/
* VOR: http://www.vor-cycling.be/
@@ -210,6 +216,12 @@ Books produced using Sphinx
http://www.amazon.co.jp/dp/4048689525/
* "Python Professional Programming" (in Japanese):
http://www.amazon.co.jp/dp/4798032948/
+* "Die Wahrheit des Sehens. Der DEKALOG von Krzysztof Kieślowski":
+ http://www.hasecke.eu/Dekalog/
+* The "Varnish Book":
+ https://www.varnish-software.com/static/book/
+* "Learning Sphinx" (in Japanese):
+ http://www.oreilly.co.jp/books/9784873116488/
Thesis using Sphinx
@@ -218,4 +230,3 @@ Thesis using Sphinx
* "A Web-Based System for Comparative Analysis of OpenStreetMap Data
by the Use of CouchDB":
http://gisforge.no-ip.org/files/MasterThesis_MarkusMayr_0542042.pdf
-
diff --git a/MANIFEST.in b/MANIFEST.in
index cf308103..5db26b81 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,4 @@
-include README
+include README.rst
include LICENSE
include AUTHORS
include CHANGES
@@ -7,7 +7,7 @@ include TODO
include babel.cfg
include Makefile
-include distribute_setup.py
+include ez_setup.py
include sphinx-autogen.py
include sphinx-build.py
include sphinx-quickstart.py
@@ -20,7 +20,8 @@ recursive-include sphinx/ext/autosummary/templates *
recursive-include tests *
recursive-include utils *
recursive-include custom_fixers *
-include sphinx/pycode/Grammar.txt
+include sphinx/pycode/Grammar-py2.txt
+include sphinx/pycode/Grammar-py3.txt
recursive-include doc *
prune doc/_build
diff --git a/distribute_setup.py b/distribute_setup.py
deleted file mode 100644
index cebd80b1..00000000
--- a/distribute_setup.py
+++ /dev/null
@@ -1,541 +0,0 @@
-#!python
-"""Bootstrap distribute installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
- from distribute_setup import use_setuptools
- use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import os
-import shutil
-import sys
-import time
-import fnmatch
-import tempfile
-import tarfile
-import optparse
-
-from distutils import log
-
-try:
- from site import USER_SITE
-except ImportError:
- USER_SITE = None
-
-try:
- import subprocess
-
- def _python_cmd(*args):
- args = (sys.executable,) + args
- return subprocess.call(args) == 0
-
-except ImportError:
- # will be used for python 2.3
- def _python_cmd(*args):
- args = (sys.executable,) + args
- # quoting arguments if windows
- if sys.platform == 'win32':
- def quote(arg):
- if ' ' in arg:
- return '"%s"' % arg
- return arg
- args = [quote(arg) for arg in args]
- return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
-
-DEFAULT_VERSION = "0.6.30"
-DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
-SETUPTOOLS_FAKED_VERSION = "0.6c11"
-
-SETUPTOOLS_PKG_INFO = """\
-Metadata-Version: 1.0
-Name: setuptools
-Version: %s
-Summary: xxxx
-Home-page: xxx
-Author: xxx
-Author-email: xxx
-License: xxx
-Description: xxx
-""" % SETUPTOOLS_FAKED_VERSION
-
-
-def _install(tarball, install_args=()):
- # extracting the tarball
- tmpdir = tempfile.mkdtemp()
- log.warn('Extracting in %s', tmpdir)
- old_wd = os.getcwd()
- try:
- os.chdir(tmpdir)
- tar = tarfile.open(tarball)
- _extractall(tar)
- tar.close()
-
- # going in the directory
- subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
- os.chdir(subdir)
- log.warn('Now working in %s', subdir)
-
- # installing
- log.warn('Installing Distribute')
- if not _python_cmd('setup.py', 'install', *install_args):
- log.warn('Something went wrong during the installation.')
- log.warn('See the error message above.')
- # exitcode will be 2
- return 2
- finally:
- os.chdir(old_wd)
- shutil.rmtree(tmpdir)
-
-
-def _build_egg(egg, tarball, to_dir):
- # extracting the tarball
- tmpdir = tempfile.mkdtemp()
- log.warn('Extracting in %s', tmpdir)
- old_wd = os.getcwd()
- try:
- os.chdir(tmpdir)
- tar = tarfile.open(tarball)
- _extractall(tar)
- tar.close()
-
- # going in the directory
- subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
- os.chdir(subdir)
- log.warn('Now working in %s', subdir)
-
- # building an egg
- log.warn('Building a Distribute egg in %s', to_dir)
- _python_cmd('setup.py', '-q', 'bdist_egg', '--dist-dir', to_dir)
-
- finally:
- os.chdir(old_wd)
- shutil.rmtree(tmpdir)
- # returning the result
- log.warn(egg)
- if not os.path.exists(egg):
- raise IOError('Could not build the egg.')
-
-
-def _do_download(version, download_base, to_dir, download_delay):
- egg = os.path.join(to_dir, 'distribute-%s-py%d.%d.egg'
- % (version, sys.version_info[0], sys.version_info[1]))
- if not os.path.exists(egg):
- tarball = download_setuptools(version, download_base,
- to_dir, download_delay)
- _build_egg(egg, tarball, to_dir)
- sys.path.insert(0, egg)
- import setuptools
- setuptools.bootstrap_install_from = egg
-
-
-def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
- to_dir=os.curdir, download_delay=15, no_fake=True):
- # making sure we use the absolute path
- to_dir = os.path.abspath(to_dir)
- was_imported = 'pkg_resources' in sys.modules or \
- 'setuptools' in sys.modules
- try:
- try:
- import pkg_resources
- if not hasattr(pkg_resources, '_distribute'):
- if not no_fake:
- _fake_setuptools()
- raise ImportError
- except ImportError:
- return _do_download(version, download_base, to_dir, download_delay)
- try:
- pkg_resources.require("distribute>=" + version)
- return
- except pkg_resources.VersionConflict:
- e = sys.exc_info()[1]
- if was_imported:
- sys.stderr.write(
- "The required version of distribute (>=%s) is not available,\n"
- "and can't be installed while this script is running. Please\n"
- "install a more recent version first, using\n"
- "'easy_install -U distribute'."
- "\n\n(Currently using %r)\n" % (version, e.args[0]))
- sys.exit(2)
- else:
- del pkg_resources, sys.modules['pkg_resources'] # reload ok
- return _do_download(version, download_base, to_dir,
- download_delay)
- except pkg_resources.DistributionNotFound:
- return _do_download(version, download_base, to_dir,
- download_delay)
- finally:
- if not no_fake:
- _create_fake_setuptools_pkg_info(to_dir)
-
-
-def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
- to_dir=os.curdir, delay=15):
- """Download distribute from a specified location and return its filename
-
- `version` should be a valid distribute version number that is available
- as an egg for download under the `download_base` URL (which should end
- with a '/'). `to_dir` is the directory where the egg will be downloaded.
- `delay` is the number of seconds to pause before an actual download
- attempt.
- """
- # making sure we use the absolute path
- to_dir = os.path.abspath(to_dir)
- try:
- from urllib.request import urlopen
- except ImportError:
- from urllib2 import urlopen
- tgz_name = "distribute-%s.tar.gz" % version
- url = download_base + tgz_name
- saveto = os.path.join(to_dir, tgz_name)
- src = dst = None
- if not os.path.exists(saveto): # Avoid repeated downloads
- try:
- log.warn("Downloading %s", url)
- src = urlopen(url)
- # Read/write all in one block, so we don't create a corrupt file
- # if the download is interrupted.
- data = src.read()
- dst = open(saveto, "wb")
- dst.write(data)
- finally:
- if src:
- src.close()
- if dst:
- dst.close()
- return os.path.realpath(saveto)
-
-
-def _no_sandbox(function):
- def __no_sandbox(*args, **kw):
- try:
- from setuptools.sandbox import DirectorySandbox
- if not hasattr(DirectorySandbox, '_old'):
- def violation(*args):
- pass
- DirectorySandbox._old = DirectorySandbox._violation
- DirectorySandbox._violation = violation
- patched = True
- else:
- patched = False
- except ImportError:
- patched = False
-
- try:
- return function(*args, **kw)
- finally:
- if patched:
- DirectorySandbox._violation = DirectorySandbox._old
- del DirectorySandbox._old
-
- return __no_sandbox
-
-
-def _patch_file(path, content):
- """Will backup the file then patch it"""
- existing_content = open(path).read()
- if existing_content == content:
- # already patched
- log.warn('Already patched.')
- return False
- log.warn('Patching...')
- _rename_path(path)
- f = open(path, 'w')
- try:
- f.write(content)
- finally:
- f.close()
- return True
-
-_patch_file = _no_sandbox(_patch_file)
-
-
-def _same_content(path, content):
- return open(path).read() == content
-
-
-def _rename_path(path):
- new_name = path + '.OLD.%s' % time.time()
- log.warn('Renaming %s to %s', path, new_name)
- os.rename(path, new_name)
- return new_name
-
-
-def _remove_flat_installation(placeholder):
- if not os.path.isdir(placeholder):
- log.warn('Unkown installation at %s', placeholder)
- return False
- found = False
- for file in os.listdir(placeholder):
- if fnmatch.fnmatch(file, 'setuptools*.egg-info'):
- found = True
- break
- if not found:
- log.warn('Could not locate setuptools*.egg-info')
- return
-
- log.warn('Moving elements out of the way...')
- pkg_info = os.path.join(placeholder, file)
- if os.path.isdir(pkg_info):
- patched = _patch_egg_dir(pkg_info)
- else:
- patched = _patch_file(pkg_info, SETUPTOOLS_PKG_INFO)
-
- if not patched:
- log.warn('%s already patched.', pkg_info)
- return False
- # now let's move the files out of the way
- for element in ('setuptools', 'pkg_resources.py', 'site.py'):
- element = os.path.join(placeholder, element)
- if os.path.exists(element):
- _rename_path(element)
- else:
- log.warn('Could not find the %s element of the '
- 'Setuptools distribution', element)
- return True
-
-_remove_flat_installation = _no_sandbox(_remove_flat_installation)
-
-
-def _after_install(dist):
- log.warn('After install bootstrap.')
- placeholder = dist.get_command_obj('install').install_purelib
- _create_fake_setuptools_pkg_info(placeholder)
-
-
-def _create_fake_setuptools_pkg_info(placeholder):
- if not placeholder or not os.path.exists(placeholder):
- log.warn('Could not find the install location')
- return
- pyver = '%s.%s' % (sys.version_info[0], sys.version_info[1])
- setuptools_file = 'setuptools-%s-py%s.egg-info' % \
- (SETUPTOOLS_FAKED_VERSION, pyver)
- pkg_info = os.path.join(placeholder, setuptools_file)
- if os.path.exists(pkg_info):
- log.warn('%s already exists', pkg_info)
- return
-
- log.warn('Creating %s', pkg_info)
- try:
- f = open(pkg_info, 'w')
- except EnvironmentError:
- log.warn("Don't have permissions to write %s, skipping", pkg_info)
- return
- try:
- f.write(SETUPTOOLS_PKG_INFO)
- finally:
- f.close()
-
- pth_file = os.path.join(placeholder, 'setuptools.pth')
- log.warn('Creating %s', pth_file)
- f = open(pth_file, 'w')
- try:
- f.write(os.path.join(os.curdir, setuptools_file))
- finally:
- f.close()
-
-_create_fake_setuptools_pkg_info = _no_sandbox(
- _create_fake_setuptools_pkg_info
-)
-
-
-def _patch_egg_dir(path):
- # let's check if it's already patched
- pkg_info = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
- if os.path.exists(pkg_info):
- if _same_content(pkg_info, SETUPTOOLS_PKG_INFO):
- log.warn('%s already patched.', pkg_info)
- return False
- _rename_path(path)
- os.mkdir(path)
- os.mkdir(os.path.join(path, 'EGG-INFO'))
- pkg_info = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
- f = open(pkg_info, 'w')
- try:
- f.write(SETUPTOOLS_PKG_INFO)
- finally:
- f.close()
- return True
-
-_patch_egg_dir = _no_sandbox(_patch_egg_dir)
-
-
-def _before_install():
- log.warn('Before install bootstrap.')
- _fake_setuptools()
-
-
-def _under_prefix(location):
- if 'install' not in sys.argv:
- return True
- args = sys.argv[sys.argv.index('install') + 1:]
- for index, arg in enumerate(args):
- for option in ('--root', '--prefix'):
- if arg.startswith('%s=' % option):
- top_dir = arg.split('root=')[-1]
- return location.startswith(top_dir)
- elif arg == option:
- if len(args) > index:
- top_dir = args[index + 1]
- return location.startswith(top_dir)
- if arg == '--user' and USER_SITE is not None:
- return location.startswith(USER_SITE)
- return True
-
-
-def _fake_setuptools():
- log.warn('Scanning installed packages')
- try:
- import pkg_resources
- except ImportError:
- # we're cool
- log.warn('Setuptools or Distribute does not seem to be installed.')
- return
- ws = pkg_resources.working_set
- try:
- setuptools_dist = ws.find(
- pkg_resources.Requirement.parse('setuptools', replacement=False)
- )
- except TypeError:
- # old distribute API
- setuptools_dist = ws.find(
- pkg_resources.Requirement.parse('setuptools')
- )
-
- if setuptools_dist is None:
- log.warn('No setuptools distribution found')
- return
- # detecting if it was already faked
- setuptools_location = setuptools_dist.location
- log.warn('Setuptools installation detected at %s', setuptools_location)
-
- # if --root or --preix was provided, and if
- # setuptools is not located in them, we don't patch it
- if not _under_prefix(setuptools_location):
- log.warn('Not patching, --root or --prefix is installing Distribute'
- ' in another location')
- return
-
- # let's see if its an egg
- if not setuptools_location.endswith('.egg'):
- log.warn('Non-egg installation')
- res = _remove_flat_installation(setuptools_location)
- if not res:
- return
- else:
- log.warn('Egg installation')
- pkg_info = os.path.join(setuptools_location, 'EGG-INFO', 'PKG-INFO')
- if (os.path.exists(pkg_info) and
- _same_content(pkg_info, SETUPTOOLS_PKG_INFO)):
- log.warn('Already patched.')
- return
- log.warn('Patching...')
- # let's create a fake egg replacing setuptools one
- res = _patch_egg_dir(setuptools_location)
- if not res:
- return
- log.warn('Patching complete.')
- _relaunch()
-
-
-def _relaunch():
- log.warn('Relaunching...')
- # we have to relaunch the process
- # pip marker to avoid a relaunch bug
- _cmd1 = ['-c', 'install', '--single-version-externally-managed']
- _cmd2 = ['-c', 'install', '--record']
- if sys.argv[:3] == _cmd1 or sys.argv[:3] == _cmd2:
- sys.argv[0] = 'setup.py'
- args = [sys.executable] + sys.argv
- sys.exit(subprocess.call(args))
-
-
-def _extractall(self, path=".", members=None):
- """Extract all members from the archive to the current working
- directory and set owner, modification time and permissions on
- directories afterwards. `path' specifies a different directory
- to extract to. `members' is optional and must be a subset of the
- list returned by getmembers().
- """
- import copy
- import operator
- from tarfile import ExtractError
- directories = []
-
- if members is None:
- members = self
-
- for tarinfo in members:
- if tarinfo.isdir():
- # Extract directories with a safe mode.
- directories.append(tarinfo)
- tarinfo = copy.copy(tarinfo)
- tarinfo.mode = 448 # decimal for oct 0700
- self.extract(tarinfo, path)
-
- # Reverse sort directories.
- if sys.version_info < (2, 4):
- def sorter(dir1, dir2):
- return cmp(dir1.name, dir2.name)
- directories.sort(sorter)
- directories.reverse()
- else:
- directories.sort(key=operator.attrgetter('name'), reverse=True)
-
- # Set correct owner, mtime and filemode on directories.
- for tarinfo in directories:
- dirpath = os.path.join(path, tarinfo.name)
- try:
- self.chown(tarinfo, dirpath)
- self.utime(tarinfo, dirpath)
- self.chmod(tarinfo, dirpath)
- except ExtractError:
- e = sys.exc_info()[1]
- if self.errorlevel > 1:
- raise
- else:
- self._dbg(1, "tarfile: %s" % e)
-
-
-def _build_install_args(options):
- """
- Build the arguments to 'python setup.py install' on the distribute package
- """
- install_args = []
- if options.user_install:
- if sys.version_info < (2, 6):
- log.warn("--user requires Python 2.6 or later")
- raise SystemExit(1)
- install_args.append('--user')
- return install_args
-
-def _parse_args():
- """
- Parse the command line for options
- """
- parser = optparse.OptionParser()
- parser.add_option(
- '--user', dest='user_install', action='store_true', default=False,
- help='install in user site package (requires Python 2.6 or later)')
- parser.add_option(
- '--download-base', dest='download_base', metavar="URL",
- default=DEFAULT_URL,
- help='alternative URL from where to download the distribute package')
- options, args = parser.parse_args()
- # positional arguments are ignored
- return options
-
-def main(version=DEFAULT_VERSION):
- """Install or upgrade setuptools and EasyInstall"""
- options = _parse_args()
- tarball = download_setuptools(download_base=options.download_base)
- return _install(tarball, _build_install_args(options))
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/doc/Makefile b/doc/Makefile
index 831c12c5..55909649 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -4,157 +4,15 @@
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = python ../sphinx-build.py
-PAPER =
-
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) \
- $(SPHINXOPTS) $(O) .
-I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(O) .
-
-.PHONY: help clean html dirhtml singlehtml text man pickle json htmlhelp \
- qthelp devhelp epub latex latexpdf changes linkcheck doctest xml \
- pseudoxml
+SPHINXPROJ = sphinx
+SOURCEDIR = .
+BUILDDIR = _build
+# Has to be explicit, otherwise we don't get "make" without targets right.
help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files called index.html in directories"
- @echo " singlehtml to make one big HTML file"
- @echo " text to make text files"
- @echo " man to make manual pages"
- @echo " pickle to make pickle files"
- @echo " json to make json files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make Qt help files and project"
- @echo " devhelp to make Devhelp files and project"
- @echo " epub to make an epub file"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " latexpdf to make LaTeX files and run pdflatex"
- @echo " texinfo to make Texinfo files"
- @echo " info to make Texinfo files and run them through makeinfo"
- @echo " gettext to make PO message catalogs"
- @echo " changes to make an overview over all changed/added/deprecated items"
- @echo " linkcheck to check all external links for integrity"
-
-clean:
- rm -rf _build/*
-
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
- @echo
- @echo "Build finished. The HTML pages are in _build/html."
-
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) _build/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in _build/dirhtml."
-
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) _build/singlehtml
- @echo
- @echo "Build finished. The HTML page is in _build/singlehtml."
-
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) _build/text
- @echo
- @echo "Build finished."
-
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) _build/man
- @echo
- @echo "Build finished."
-
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
- @echo
- @echo "Build finished."
-
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json
- @echo
- @echo "Build finished."
-
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in _build/htmlhelp."
-
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) _build/qthelp
- @echo
- @echo "Build finished; now you can run qcollectiongenerator with the" \
- ".qhcp project file in build/qthelp."
- @echo "# qcollectiongenerator _build/qthelp/Sphinx.qhcp"
- @echo "To view the help collection:"
- @echo "# assistant -collectionFile _build/qthelp/Sphinx.qhc"
-
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) _build/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/sphinx"
- @echo "# ln -s _build/devhelp $$HOME/.local/share/devhelp/sphinx"
- @echo "# devhelp"
-
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) _build/epub
- @echo
- @echo "Build finished. The epub file is in _build/epub."
-
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
- @echo
- @echo "Build finished; the LaTeX files are in _build/latex."
- @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
- "run these through (pdf)latex."
-
-latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
- @echo "Running LaTeX files through pdflatex..."
- make -C _build/latex all-pdf
- @echo "pdflatex finished; the PDF files are in _build/latex."
-
-gettext:
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) _build/locale
- @echo
- @echo "Build finished. The message catalogs are in _build/locale."
-
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
- @echo
- @echo "The overview file is in _build/changes."
-
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in _build/linkcheck/output.txt."
-
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest
-
-texinfo:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) _build/texinfo
- @echo
- @echo "Build finished. The Texinfo files are in _build/texinfo."
- @echo "Run \`make' in that directory to run these through makeinfo" \
- "(use \`make info' here to do that automatically)."
-
-info:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) _build/texinfo
- @echo "Running Texinfo files through makeinfo..."
- make -C _build/texinfo info
- @echo "makeinfo finished; the Info files are in _build/texinfo."
-
-xml:
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) _build/xml
- @echo
- @echo "Build finished. The XML files are in _build/XML."
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-pseudoxml:
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) _build/pseudoxml
- @echo
- @echo "Build finished. The pseudo-XML files are in _build/pseudoxml."
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%:
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/doc/_static/bookcover.png b/doc/_static/bookcover.png
new file mode 100644
index 00000000..1c91f91f
--- /dev/null
+++ b/doc/_static/bookcover.png
Binary files differ
diff --git a/doc/_templates/index.html b/doc/_templates/index.html
index d1955cac..e6ef9178 100644
--- a/doc/_templates/index.html
+++ b/doc/_templates/index.html
@@ -21,7 +21,7 @@
</p>
<ul>
<li>{%trans%}<b>Output formats:</b> HTML (including Windows HTML Help), LaTeX (for
- printable PDF versions), Texinfo, manual pages, plain text{%endtrans%}</li>
+ printable PDF versions), ePub, Texinfo, manual pages, plain text{%endtrans%}</li>
<li>{%trans%}<b>Extensive cross-references:</b> semantic markup and automatic links
for functions, classes, citations, glossary terms and similar pieces of
information{%endtrans%}</li>
@@ -81,7 +81,20 @@
create a customized documentation using Sphinx written by the matplotlib
developers.{%endtrans%}</p>
- <p>{%trans%}There is a <a href="http://sphinx-users.jp/doc10/">Japanese translation</a>
- of this documentation, thanks to Yoshiki Shibukawa.{%endtrans%}</p>
+ <p>{%trans%}There is a <a href="http://docs.sphinx-users.jp/">Japanese translation</a>
+ of this documentation, thanks to the Japanese Sphinx user group.{%endtrans%}</p>
+ <p>{%trans%}A Japanese book about Sphinx has been published by O'Reilly:
+ <a href="http://www.oreilly.co.jp/books/9784873116488/">Sphinxをはじめよう /
+ Learning Sphinx</a>.{%endtrans%}</p>
+ <!-- <p><img src="{{ pathto("_static/bookcover.png", 1) }}"/></p> -->
+
+
+ <h2>{%trans%}Hosting{%endtrans%}</h2>
+
+ <p>{%trans%}Need a place to host your Sphinx docs?
+ <a href="http://readthedocs.org">readthedocs.org</a> hosts a lot of Sphinx docs
+ already, and integrates well with projects' source control. It also features a
+ powerful built-in search that exceeds the possibilities of Sphinx' JavaScript-based
+ offline search.{%endtrans%}</p>
{% endblock %}
diff --git a/doc/_templates/indexsidebar.html b/doc/_templates/indexsidebar.html
index 7805b942..4a350ae4 100644
--- a/doc/_templates/indexsidebar.html
+++ b/doc/_templates/indexsidebar.html
@@ -1,5 +1,6 @@
<p class="logo">A <a href="http://pocoo.org/">
- <img src="{{ pathto("_static/pocoo.png", 1) }}" /></a> {%trans%}project{%endtrans%}</a></p>
+ <img src="{{ pathto("_static/pocoo.png", 1) }}" alt="Pocoo" /></a>
+ {%trans%}project{%endtrans%}</p>
<h3>Download</h3>
{% if version.endswith('(hg)') %}
@@ -27,6 +28,6 @@ are also available.{%endtrans%}</p>
onfocus="$(this).val('');"/>
<input type="submit" name="sub" value="Subscribe" style="font-size: 90%; width: 70px"/>
</form>
-<p>{%trans%}or come to the <tt>#pocoo</tt> channel on FreeNode.{%endtrans%}</p>
+<p>{%trans%}or come to the <tt>#sphinx-doc</tt> channel on FreeNode.{%endtrans%}</p>
<p>{%trans%}You can also open an issue at the
<a href="http://www.bitbucket.org/birkenfeld/sphinx/issues/">tracker</a>.{%endtrans%}</p>
diff --git a/doc/_themes/sphinx13/layout.html b/doc/_themes/sphinx13/layout.html
index 69dd37f7..57378c1a 100644
--- a/doc/_themes/sphinx13/layout.html
+++ b/doc/_themes/sphinx13/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the sphinxdoc theme.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
@@ -15,7 +15,7 @@
{% block extrahead %}
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,700'
- rel='stylesheet' type='text/css'>
+ rel='stylesheet' type='text/css' />
{{ super() }}
{%- if not embedded %}
<style type="text/css">
diff --git a/doc/_themes/sphinx13/static/sphinx13.css b/doc/_themes/sphinx13/static/sphinx13.css
index bb81b67b..0b31c6b1 100644
--- a/doc/_themes/sphinx13/static/sphinx13.css
+++ b/doc/_themes/sphinx13/static/sphinx13.css
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- sphinx13 theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/doc/builders.rst b/doc/builders.rst
index 1297a08e..00f4e223 100644
--- a/doc/builders.rst
+++ b/doc/builders.rst
@@ -64,13 +64,13 @@ The builder's "name" must be given to the **-b** command-line option of
Its name is ``qthelp``.
- .. _Qt help: http://doc.trolltech.com/4.6/qthelp-framework.html
+ .. _Qt help: http://qt-project.org/doc/qt-4.8/qthelp-framework.html
.. module:: sphinx.builders.devhelp
.. class:: DevhelpBuilder
This builder produces the same output as the standalone HTML builder, but
- also generates `GNOME Devhelp <http://live.gnome.org/devhelp>`__
+ also generates `GNOME Devhelp <https://wiki.gnome.org/Apps/Devhelp>`__
support file that allows the GNOME Devhelp reader to view them.
Its name is ``devhelp``.
@@ -110,8 +110,8 @@ The builder's "name" must be given to the **-b** command-line option of
Note that a direct PDF builder using ReportLab is available in `rst2pdf
<http://rst2pdf.googlecode.com>`_ version 0.12 or greater. You need to add
``'rst2pdf.pdfbuilder'`` to your :confval:`extensions` to enable it, its name is
-``pdf``. Refer to the `rst2pdf manual
-<http://lateral.netmanagers.com.ar/static/manual.pdf>`_ for details.
+``pdf``. Refer to the `rst2pdf manual <http://ralsina.me/static/manual.pdf>`_
+for details.
.. module:: sphinx.builders.text
.. class:: TextBuilder
@@ -179,7 +179,7 @@ Note that a direct PDF builder using ReportLab is available in `rst2pdf
globalcontext_filename = 'globalcontext.phpdump'
searchindex_filename = 'searchindex.phpdump'
- .. _PHP serialization: http://pypi.python.org/pypi/phpserialize
+ .. _PHP serialization: https://pypi.python.org/pypi/phpserialize
.. attribute:: implementation
diff --git a/doc/conf.py b/doc/conf.py
index 08149fba..9640e2ed 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -13,7 +13,7 @@ templates_path = ['_templates']
exclude_patterns = ['_build']
project = 'Sphinx'
-copyright = '2007-2013, Georg Brandl'
+copyright = '2007-2014, Georg Brandl and the Sphinx team'
version = sphinx.__released__
release = version
show_authors = True
diff --git a/doc/config.rst b/doc/config.rst
index 24334f36..192fc202 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -40,6 +40,8 @@ Important points to note:
delete them from the namespace with ``del`` if appropriate. Modules are
removed automatically, so you don't need to ``del`` your imports after use.
+.. _conf-tags:
+
* There is a special object named ``tags`` available in the config file.
It can be used to query and change the tags (see :ref:`tags`). Use
``tags.has('tag')`` to query, ``tags.add('tag')`` and ``tags.remove('tag')``
@@ -236,7 +238,8 @@ General configuration
A list of ``(type, target)`` tuples (by default empty) that should be ignored
when generating warnings in "nitpicky mode". Note that ``type`` should
- include the domain name. An example entry would be ``('py:func', 'int')``.
+ include the domain name if present. Example entries would be ``('py:func',
+ 'int')`` or ``('envvar', 'LD_LIBRARY_PATH')``.
.. versionadded:: 1.1
@@ -379,17 +382,20 @@ documentation on :ref:`intl` for details.
* ``fr`` -- French
* ``hr`` -- Croatian
* ``hu`` -- Hungarian
+ * ``id`` -- Indonesian
* ``it`` -- Italian
* ``ja`` -- Japanese
* ``ko`` -- Korean
* ``lt`` -- Lithuanian
* ``lv`` -- Latvian
+ * ``mk`` -- Macedonian
* ``nb_NO`` -- Norwegian Bokmal
* ``ne`` -- Nepali
* ``nl`` -- Dutch
* ``pl`` -- Polish
* ``pt_BR`` -- Brazilian Portuguese
* ``ru`` -- Russian
+ * ``si`` -- Sinhala
* ``sk`` -- Slovak
* ``sl`` -- Slovenian
* ``sv`` -- Swedish
@@ -469,8 +475,8 @@ that use Sphinx' HTMLWriter class.
The "title" for HTML documentation generated with Sphinx' own templates.
This is appended to the ``<title>`` tag of individual pages, and used in the
navigation bar as the "topmost" element. It defaults to :samp:`'{<project>}
- v{<revision>} documentation'`, where the placeholders are replaced by the
- config values of the same name.
+ v{<revision>} documentation'` (with the values coming from the config
+ values).
.. confval:: html_short_title
@@ -490,29 +496,33 @@ that use Sphinx' HTMLWriter class.
.. confval:: html_logo
- If given, this must be the name of an image file that is the logo of the
- docs. It is placed at the top of the sidebar; its width should therefore not
- exceed 200 pixels. Default: ``None``.
+ If given, this must be the name of an image file (path relative to the
+ :term:`configuration directory`) that is the logo of the docs. It is placed
+ at the top of the sidebar; its width should therefore not exceed 200 pixels.
+ Default: ``None``.
.. versionadded:: 0.4.1
The image file will be copied to the ``_static`` directory of the output
- HTML, so an already existing file with that name will be overwritten.
+ HTML, but only if the file does not already exist there.
.. confval:: html_favicon
- If given, this must be the name of an image file (within the static path, see
- below) that is the favicon of the docs. Modern browsers use this as icon for
- tabs, windows and bookmarks. It should be a Windows-style icon file
- (``.ico``), which is 16x16 or 32x32 pixels large. Default: ``None``.
+ If given, this must be the name of an image file (path relative to the
+ :term:`configuration directory`) that is the favicon of the docs. Modern browsers use this
+ as icon for tabs, windows and bookmarks. It should be a Windows-style icon
+ file (``.ico``), which is 16x16 or 32x32 pixels large. Default: ``None``.
.. versionadded:: 0.4
+ The image file will be copied to the ``_static`` directory of the output
+ HTML, but only if the file does not already exist there.
.. confval:: html_static_path
- A list of paths that contain custom static files (such as style sheets or
- script files). Relative paths are taken as relative to the configuration
- directory. They are copied to the output directory after the theme's static
- files, so a file named :file:`default.css` will overwrite the theme's
+ A list of paths that contain custom static files (such as style
+ sheets or script files). Relative paths are taken as relative to
+ the configuration directory. They are copied to the output's
+ :file:`_static` directory after the theme's static files, so a file
+ named :file:`default.css` will overwrite the theme's
:file:`default.css`.
.. versionchanged:: 0.4
@@ -521,6 +531,19 @@ that use Sphinx' HTMLWriter class.
.. versionchanged:: 1.0
The entries in :confval:`html_static_path` can now be single files.
+.. confval:: html_extra_path
+
+ A list of paths that contain extra files not directly related to
+ the documentation, such as :file:`robots.txt` or :file:`.htaccess`.
+ Relative paths are taken as relative to the configuration
+ directory. They are copied to the output directory. They will
+ overwrite any existing file of the same name.
+
+ As these files are not meant to be built, they are automatically added to
+ :confval:`exclude_patterns`.
+
+ .. versionadded:: 1.2
+
.. confval:: html_last_updated_fmt
If this is not the empty string, a 'Last updated on:' timestamp is inserted
@@ -999,11 +1022,17 @@ These options influence LaTeX output.
"sphinx" package in order to define Sphinx' custom LaTeX commands.
"howto" documents will not get appendices. Also, howtos will have a simpler
title page.
+
* *toctree_only*: Must be ``True`` or ``False``. If ``True``, the *startdoc*
document itself is not included in the output, only the documents
referenced by it via TOC trees. With this option, you can put extra stuff
in the master document that shows up in the HTML, but not the LaTeX output.
+ .. versionadded:: 1.2
+ In the past including your own document class required you to prepend the
+ document class name with the string "sphinx". This is not necessary
+ anymore.
+
.. versionadded:: 0.3
The 6th item ``toctree_only``. Tuples with 5 items are still accepted.
diff --git a/doc/contents.rst b/doc/contents.rst
index 5e0ae6c1..d3fd3c8e 100644
--- a/doc/contents.rst
+++ b/doc/contents.rst
@@ -18,6 +18,7 @@ Sphinx documentation contents
theming
templating
extensions
+ extdev/index
websupport
faq
diff --git a/doc/develop.rst b/doc/develop.rst
index 4181cde8..aad3ff1e 100644
--- a/doc/develop.rst
+++ b/doc/develop.rst
@@ -6,47 +6,61 @@ Sphinx development
Sphinx is a maintained by a group of volunteers. We value every contribution!
* The code can be found in a Mercurial repository, at
- http://bitbucket.org/birkenfeld/sphinx/.
+ https://bitbucket.org/birkenfeld/sphinx/.
* Issues and feature requests should be raised in the `tracker
- <http://bitbucket.org/birkenfeld/sphinx/issues/>`_.
+ <https://bitbucket.org/birkenfeld/sphinx/issues/>`_.
* The mailing list for development is at `Google Groups
- <http://groups.google.com/group/sphinx-dev/>`_.
+ <https://groups.google.com/group/sphinx-dev/>`_.
+* There is also the #sphinx-doc IRC channel on `freenode
+ <http://freenode.net/>`_.
For more about our development process and methods, see the :doc:`devguide`.
Extensions
==========
+To learn how to write your own extension, see :ref:`dev-extensions`.
+
The `sphinx-contrib <http://bitbucket.org/birkenfeld/sphinx-contrib/>`_
repository contains many contributed extensions. Some of them have their own
releases on PyPI, others you can install from a checkout.
This is the current list of contributed extensions in that repository:
-- aafig: render embeded ASCII art as nice images using aafigure_.
+- aafig: render embedded ASCII art as nice images using aafigure_.
- actdiag: embed activity diagrams by using actdiag_
- adadomain: an extension for Ada support (Sphinx 1.0 needed)
- ansi: parse ANSI color sequences inside documents
-- autorun: Execute code in a runblock directive.
+- autorun: Execute code in a ``runblock`` directive.
- blockdiag: embed block diagrams by using blockdiag_
- cheeseshop: easily link to PyPI packages
- clearquest: create tables from ClearQuest_ queries.
+- cmakedomain_: a domain for CMake_
- coffeedomain: a domain for (auto)documenting CoffeeScript source code.
- context: a builder for ConTeXt.
- doxylink: Link to external Doxygen-generated HTML documentation
+- domaintools_: A tool for easy domain creation.
- email: obfuscate email addresses
- erlangdomain: an extension for Erlang support (Sphinx 1.0 needed)
- exceltable: embed Excel spreadsheets into documents using exceltable_
- feed: an extension for creating syndication feeds and time-based overviews
from your site content
+- findanything_: an extension to add Sublime Text 2-like findanything panels
+ to your documentation to find pages, sections and index entries while typing
- gnuplot: produces images using gnuplot_ language.
-- googleanalytics: track html visitors statistics
+- googleanalytics: track web visitor statistics by using `Google Analytics`_
- googlechart: embed charts by using `Google Chart`_
- googlemaps: embed maps by using `Google Maps`_
- httpdomain: a domain for documenting RESTful HTTP APIs.
- hyphenator: client-side hyphenation of HTML using hyphenator_
+- inlinesyntaxhighlight_: inline syntax highlighting
+- lassodomain: a domain for documenting Lasso_ source code
- lilypond: an extension inserting music scripts from Lilypond_ in PNG format.
+- makedomain_: a domain for `GNU Make`_
+- matlabdomain: document MATLAB_ code.
+- mockautodoc: mock imports.
- mscgen: embed mscgen-formatted MSC (Message Sequence Chart)s.
+- napoleon: supports `Google style`_ and `NumPy style`_ docstrings.
- nicoviceo: embed videos from nicovideo
- nwdiag: embed network diagrams by using nwdiag_
- omegat: support tools to collaborate with OmegaT_ (Sphinx 1.1 needed)
@@ -54,16 +68,18 @@ This is the current list of contributed extensions in that repository:
- paverutils: an alternate integration of Sphinx with Paver_.
- phpdomain: an extension for PHP support
- plantuml: embed UML diagram by using PlantUML_
+- py_directive: Execute python code in a ``py`` directive and return a math node.
- rawfiles: copy raw files, like a CNAME.
- requirements: declare requirements wherever you need (e.g. in test
docstrings), mark statuses and collect them in a single list
+- restbuilder: a builder for reST (reStructuredText) files.
- rubydomain: an extension for Ruby support (Sphinx 1.0 needed)
- sadisplay: display SqlAlchemy model sadisplay_
-- sdedit: an extension inserting sequence diagram by using Quick Sequence.
+- sdedit: an extension inserting sequence diagram by using Quick Sequence
Diagram Editor (sdedit_)
- seqdiag: embed sequence diagrams by using seqdiag_
- slide: embed presentation slides on slideshare_ and other sites.
-- swf: embed flash files
+- swf_: embed flash files
- sword: an extension inserting Bible verses from Sword_.
- tikz: draw pictures with the `TikZ/PGF LaTeX package`_.
- traclinks: create TracLinks_ to a Trac_ instance from within Sphinx
@@ -80,24 +96,38 @@ own extensions.
.. _gnuplot: http://www.gnuplot.info/
.. _paver: http://www.blueskyonmars.com/projects/paver/
.. _Sword: http://www.crosswire.org/sword/
-.. _Lilypond: http://lilypond.org/web/
+.. _Lilypond: http://lilypond.org/
.. _sdedit: http://sdedit.sourceforge.net/
.. _Trac: http://trac.edgewall.org
.. _TracLinks: http://trac.edgewall.org/wiki/TracLinks
.. _OmegaT: http://www.omegat.org/
.. _PlantUML: http://plantuml.sourceforge.net/
.. _PyEnchant: http://www.rfk.id.au/software/pyenchant/
-.. _sadisplay: http://bitbucket.org/estin/sadisplay/wiki/Home
-.. _blockdiag: http://blockdiag.com/
-.. _seqdiag: http://blockdiag.com/
-.. _actdiag: http://blockdiag.com/
-.. _nwdiag: http://blockdiag.com/
-.. _Google Chart: http://code.google.com/intl/ja/apis/chart/
-.. _Google Maps: http://maps.google.com/
+.. _sadisplay: https://bitbucket.org/estin/sadisplay/wiki/Home
+.. _blockdiag: http://blockdiag.com/en/
+.. _seqdiag: http://blockdiag.com/en/
+.. _actdiag: http://blockdiag.com/en/
+.. _nwdiag: http://blockdiag.com/en/
+.. _Google Analytics: http://www.google.com/analytics/
+.. _Google Chart: https://developers.google.com/chart/
+.. _Google Maps: https://maps.google.com/
+.. _Google style: http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
+.. _NumPy style: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt
.. _hyphenator: http://code.google.com/p/hyphenator/
-.. _exceltable: http://packages.python.org/sphinxcontrib-exceltable/
+.. _exceltable: http://pythonhosted.org/sphinxcontrib-exceltable/
.. _YouTube: http://www.youtube.com/
-.. _ClearQuest: http://www-01.ibm.com/software/awdtools/clearquest/
+.. _ClearQuest: http://www-03.ibm.com/software/products/en/clearquest
.. _Zope interfaces: http://docs.zope.org/zope.interface/README.html
.. _slideshare: http://www.slideshare.net/
.. _TikZ/PGF LaTeX package: http://sourceforge.net/projects/pgf/
+.. _MATLAB: http://www.mathworks.com/products/matlab/
+.. _swf: http://bitbucket.org/klorenz/sphinxcontrib-swf
+.. _findanything: http://bitbucket.org/klorenz/sphinxcontrib-findanything
+.. _cmakedomain: http://bitbucket.org/klorenz/sphinxcontrib-cmakedomain
+.. _GNU Make: http://www.gnu.org/software/make/
+.. _makedomain: http://bitbucket.org/klorenz/sphinxcontrib-makedomain
+.. _inlinesyntaxhighlight: http://sphinxcontrib-inlinesyntaxhighlight.readthedocs.org
+.. _CMake: http://cmake.org
+.. _domaintools: http://bitbucket.org/klorenz/sphinxcontrib-domaintools
+.. _restbuilder: https://pypi.python.org/pypi/sphinxcontrib-restbuilder
+.. _Lasso: http://www.lassosoft.com/
diff --git a/doc/devguide.rst b/doc/devguide.rst
index cc3c8248..fccdd3fa 100644
--- a/doc/devguide.rst
+++ b/doc/devguide.rst
@@ -20,13 +20,10 @@ sphinx-users <sphinx-users@googlegroups.com>
sphinx-dev <sphinx-dev@googlegroups.com>
Mailing list for development related discussions.
-#pocoo on irc.freenode.net
+#sphinx-doc on irc.freenode.net
IRC channel for development questions and user support.
- This channel is shared with other Pocoo projects. Archived logs are
- available `here <http://dev.pocoo.org/irclogs/>`_.
-
-.. _`BitBucket`: http://bitbucket.org
+.. _`BitBucket`: https://bitbucket.org/
.. _`Mercurial`: http://mercurial.selenic.com/
@@ -46,7 +43,7 @@ Including or providing a link to the source files involved may help us fix the
issue. If possible, try to create a minimal project that produces the error
and post that instead.
-.. _`issue tracker`: http://bitbucket.org/birkenfeld/sphinx/issues
+.. _`issue tracker`: https://bitbucket.org/birkenfeld/sphinx/issues
Contributing to Sphinx
@@ -83,7 +80,7 @@ These are the basic steps needed to start developing on Sphinx.
For new features or other substantial changes that should wait until the
next major release, use the ``default`` branch.
-#. Setup your Python environment. ::
+#. Optional: setup a virtual environment. ::
virtualenv ~/sphinxenv
. ~/sphinxenv/bin/activate
@@ -93,32 +90,33 @@ These are the basic steps needed to start developing on Sphinx.
For tips on working with the code, see the `Coding Guide`_.
-#. Test, test, test.
+#. Test, test, test. Possible steps:
- Run the unit tests::
+ * Run the unit tests::
- pip install nose
+ pip install nose mock
make test
- Build the documentation and check the output for different builders::
+ * Build the documentation and check the output for different builders::
- cd docs
- make clean html text man info latexpdf
+ cd doc
+ make clean html latexpdf
- Run the unit tests under different Python environments using
- :program:`tox`::
+ * Run the unit tests under different Python environments using
+ :program:`tox`::
pip install tox
tox -v
- Add a new unit test in the ``tests`` directory if you can.
+ * Add a new unit test in the ``tests`` directory if you can.
- For bug fixes, first add a test that fails without your changes and passes
- after they are applied.
+ * For bug fixes, first add a test that fails without your changes and passes
+ after they are applied.
-#. Commit your changes. ::
+#. Please add a bullet point to :file:`CHANGES` if the fix or feature is not trivial
+ (small doc updates, typo fixes). Then commit::
- hg commit -m 'Add useful new feature that does this.'
+ hg commit -m '#42: Add useful new feature that does this.'
BitBucket recognizes `certain phrases`__ that can be used to automatically
update the issue tracker.
@@ -129,7 +127,7 @@ These are the basic steps needed to start developing on Sphinx.
would close issue #42.
- __ https://confluence.atlassian.com/display/BITBUCKET/Automatically+Resolving+Issues+when+Users+Push+Code
+ __ https://confluence.atlassian.com/display/BITBUCKET/Resolve+issues+automatically+when+users+push+code
#. Push changes to your forked repository on BitBucket. ::
@@ -193,7 +191,7 @@ identifier and put ``sphinx.po`` in there. Don't forget to update the possible
values for :confval:`language` in ``doc/config.rst``.
The Sphinx core messages can also be translated on `Transifex
-<http://transifex.com>`_. There exists a client tool named ``tx`` in the Python
+<https://www.transifex.com/>`_. There exists a client tool named ``tx`` in the Python
package "transifex_client", which can be used to pull translations in ``.po``
format from Transifex. To do this, go to ``sphinx/locale`` and then run
``tx pull -f -l LANG`` where LANG is an existing language identifier. It is
@@ -217,7 +215,7 @@ Coding Guide
generated output.
* When adding a new configuration variable, be sure to document it and update
- :file:`sphinx/quickstart.py`.
+ :file:`sphinx/quickstart.py` if it's important enough.
* Use the included :program:`utils/check_sources.py` script to check for
common formatting issues (trailing whitespace, lengthy lines, etc).
diff --git a/doc/domains.rst b/doc/domains.rst
index bd99a4c5..4b5a9032 100644
--- a/doc/domains.rst
+++ b/doc/domains.rst
@@ -168,28 +168,27 @@ The following directives are provided for module and class contents:
Describes an exception class. The signature can, but need not include
parentheses with constructor arguments.
-.. rst:directive:: .. py:function:: name(signature)
+.. rst:directive:: .. py:function:: name(parameters)
Describes a module-level function. The signature should include the
- parameters, enclosing optional parameters in brackets. Default values can be
- given if it enhances clarity; see :ref:`signatures`. For example::
+ parameters as given in the Python function definition, see :ref:`signatures`.
+ For example::
- .. py:function:: Timer.repeat([repeat=3[, number=1000000]])
+ .. py:function:: Timer.repeat(repeat=3, number=1000000)
- Object methods are not documented using this directive. Bound object methods
- placed in the module namespace as part of the public interface of the module
- are documented using this, as they are equivalent to normal functions for
- most purposes.
+ For methods you should use :rst:dir:`py:method`.
The description should include information about the parameters required and
how they are used (especially whether mutable objects passed as parameters
- are modified), side effects, and possible exceptions. A small example may be
- provided.
+ are modified), side effects, and possible exceptions. This information can
+ optionally be given in a structured form, see :ref:`info-field-lists`. A
+ small example may be provided.
-.. rst:directive:: .. py:class:: name[(signature)]
+.. rst:directive:: .. py:class:: name
+ .. py:class:: name(parameters)
- Describes a class. The signature can include parentheses with parameters
- which will be shown as the constructor arguments. See also
+ Describes a class. The signature can optionally include parentheses with
+ parameters which will be shown as the constructor arguments. See also
:ref:`signatures`.
Methods and attributes belonging to the class should be placed in this
@@ -197,6 +196,7 @@ The following directives are provided for module and class contents:
contain the class name so that cross-references still work. Example::
.. py:class:: Foo
+
.. py:method:: quux()
-- or --
@@ -213,30 +213,30 @@ The following directives are provided for module and class contents:
information about the type of the data to be expected and whether it may be
changed directly.
-.. rst:directive:: .. py:method:: name(signature)
+.. rst:directive:: .. py:method:: name(parameters)
Describes an object method. The parameters should not include the ``self``
parameter. The description should include similar information to that
- described for ``function``. See also :ref:`signatures`.
+ described for ``function``. See also :ref:`signatures` and
+ :ref:`info-field-lists`.
-.. rst:directive:: .. py:staticmethod:: name(signature)
+.. rst:directive:: .. py:staticmethod:: name(parameters)
Like :rst:dir:`py:method`, but indicates that the method is a static method.
.. versionadded:: 0.4
-.. rst:directive:: .. py:classmethod:: name(signature)
+.. rst:directive:: .. py:classmethod:: name(parameters)
Like :rst:dir:`py:method`, but indicates that the method is a class method.
.. versionadded:: 0.6
.. rst:directive:: .. py:decorator:: name
- .. py:decorator:: name(signature)
+ .. py:decorator:: name(parameters)
- Describes a decorator function. The signature should *not* represent the
- signature of the actual function, but the usage as a decorator. For example,
- given the functions
+ Describes a decorator function. The signature should represent the usage as
+ a decorator. For example, given the functions
.. code-block:: python
@@ -260,6 +260,8 @@ The following directives are provided for module and class contents:
Set name of the decorated function to *name*.
+ (as opposed to ``.. py:decorator:: removename(func)``.)
+
There is no ``py:deco`` role to link to a decorator that is marked up with
this directive; rather, use the :rst:role:`py:func` role.
@@ -277,23 +279,24 @@ Python Signatures
~~~~~~~~~~~~~~~~~
Signatures of functions, methods and class constructors can be given like they
-would be written in Python, with the exception that optional parameters can be
-indicated by brackets::
-
- .. py:function:: compile(source[, filename[, symbol]])
-
-It is customary to put the opening bracket before the comma. In addition to
-this "nested" bracket style, a "flat" style can also be used, due to the fact
-that most optional parameters can be given independently::
-
- .. py:function:: compile(source[, filename, symbol])
+would be written in Python.
Default values for optional arguments can be given (but if they contain commas,
they will confuse the signature parser). Python 3-style argument annotations
can also be given as well as return type annotations::
- .. py:function:: compile(source : string[, filename, symbol]) -> ast object
+ .. py:function:: compile(source : string, filename, symbol='file') -> ast object
+For functions with optional parameters that don't have default values (typically
+functions implemented in C extension modules without keyword argument support),
+you can use brackets to specify the optional parts:
+
+ .. py:function:: compile(source[, filename[, symbol]])
+
+It is customary to put the opening bracket before the comma.
+
+
+.. _info-field-lists:
Info field lists
~~~~~~~~~~~~~~~~
@@ -316,35 +319,41 @@ The field names must consist of one of these keywords and an argument (except
for ``returns`` and ``rtype``, which do not need an argument). This is best
explained by an example::
- .. py:function:: format_exception(etype, value, tb[, limit=None])
+ .. py:function:: send_message(sender, recipient, message_body, [priority=1])
- Format the exception with a traceback.
+ Send a message to a recipient
- :param etype: exception type
- :param value: exception value
- :param tb: traceback object
- :param limit: maximum number of stack frames to show
- :type limit: integer or None
- :rtype: list of strings
+ :param str sender: The person sending the message
+ :param str recipient: The recipient of the message
+ :param str message_body: The body of the message
+ :param priority: The priority of the message, can be a number 1-5
+ :type priority: integer or None
+ :return: the message id
+ :rtype: int
+ :raises ValueError: if the message_body exceeds 160 characters
+ :raises TypeError: if the message_body is not a basestring
This will render like this:
- .. py:function:: format_exception(etype, value, tb[, limit=None])
+ .. py:function:: send_message(sender, recipient, message_body, [priority=1])
:noindex:
- Format the exception with a traceback.
+ Send a message to a recipient
- :param etype: exception type
- :param value: exception value
- :param tb: traceback object
- :param limit: maximum number of stack frames to show
- :type limit: integer or None
- :rtype: list of strings
+ :param str sender: The person sending the message
+ :param str recipient: The recipient of the message
+ :param str message_body: The body of the message
+ :param priority: The priority of the message, can be a number 1-5
+ :type priority: integer or None
+ :return: the message id
+ :rtype: int
+ :raises ValueError: if the message_body exceeds 160 characters
+ :raises TypeError: if the message_body is not a basestring
It is also possible to combine parameter type and description, if the type is a
single word, like this::
- :param integer limit: maximum number of stack frames to show
+ :param int priority: The priority of the message, can be a number 1-5
.. _python-roles:
@@ -373,8 +382,8 @@ a matching identifier is found:
.. rst:role:: py:const
- Reference a "defined" constant. This may be a C-language ``#define`` or a
- Python variable that is not intended to be changed.
+ Reference a "defined" constant. This may be a Python variable that is not
+ intended to be changed.
.. rst:role:: py:class
@@ -462,8 +471,8 @@ The C domain (name **c**) is suited for documentation of C API.
Describes a "simple" C macro. Simple macros are macros which are used for
code expansion, but which do not take arguments so cannot be described as
- functions. This is not to be used for simple constant definitions. Examples
- of its use in the Python documentation include :c:macro:`PyObject_HEAD` and
+ functions. This is a simple C-language ``#define``. Examples of its use in
+ the Python documentation include :c:macro:`PyObject_HEAD` and
:c:macro:`Py_BEGIN_ALLOW_THREADS`.
.. rst:directive:: .. c:type:: name
@@ -623,16 +632,20 @@ There is a set of directives allowing documenting command-line programs:
.. rst:directive:: .. option:: name args, name args, ...
- Describes a command line option or switch. Option argument names should be
- enclosed in angle brackets. Example::
+ Describes a command line argument or switch. Option argument names should be
+ enclosed in angle brackets. Examples::
+
+ .. option:: dest_dir
+
+ Destination directory.
.. option:: -m <module>, --module <module>
Run a module as a script.
- The directive will create a cross-reference target named after the *first*
- option, referencable by :rst:role:`option` (in the example case, you'd use
- something like ``:option:`-m```).
+ The directive will create cross-reference targets for the given options,
+ referencable by :rst:role:`option` (in the example case, you'd use something
+ like ``:option:`dest_dir```, ``:option:`-m```, or ``:option:`--module```).
.. rst:directive:: .. envvar:: name
@@ -703,24 +716,24 @@ The JavaScript domain (name **js**) provides the following directives:
.. js:function:: $.getJSON(href, callback[, errback])
:param string href: An URI to the location of the resource.
- :param callback: Get's called with the object.
+ :param callback: Gets called with the object.
:param errback:
- Get's called in case the request fails. And a lot of other
- text so we need multiple lines
+ Gets called in case the request fails. And a lot of other
+ text so we need multiple lines.
:throws SomeError: For whatever reason in that case.
- :returns: Something
+ :returns: Something.
This is rendered as:
.. js:function:: $.getJSON(href, callback[, errback])
:param string href: An URI to the location of the resource.
- :param callback: Get's called with the object.
+ :param callback: Gets called with the object.
:param errback:
- Get's called in case the request fails. And a lot of other
+ Gets called in case the request fails. And a lot of other
text so we need multiple lines.
:throws SomeError: For whatever reason in that case.
- :returns: Something
+ :returns: Something.
.. rst:directive:: .. js:class:: name
@@ -812,15 +825,24 @@ More domains
------------
The sphinx-contrib_ repository contains more domains available as extensions;
-currently Ada, CoffeeScript_, Erlang_, HTTP_, Jinja_, PHP_, Ruby, and Scala_
-domains.
+currently Ada_, CoffeeScript_, Erlang_, HTTP_, Lasso_, MATLAB_, PHP_, and Ruby_
+domains. Also available are domains for `Common Lisp`_, dqn_, Go_, Jinja_,
+Operation_, and Scala_.
.. _sphinx-contrib: https://bitbucket.org/birkenfeld/sphinx-contrib/
-.. _CoffeeScript: http://pypi.python.org/pypi/sphinxcontrib-coffee
-.. _Erlang: http://pypi.python.org/pypi/sphinxcontrib-erlangdomain
-.. _HTTP: http://pypi.python.org/pypi/sphinxcontrib-httpdomain
-.. _Jinja: http://pypi.python.org/pypi/sphinxcontrib-jinjadomain
-.. _Scala: http://pypi.python.org/pypi/sphinxcontrib-scaladomain
-.. _PHP: http://pypi.python.org/pypi/sphinxcontrib-phpdomain
+.. _Ada: https://pypi.python.org/pypi/sphinxcontrib-adadomain
+.. _CoffeeScript: https://pypi.python.org/pypi/sphinxcontrib-coffee
+.. _Common Lisp: https://pypi.python.org/pypi/sphinxcontrib-cldomain
+.. _dqn: https://pypi.python.org/pypi/sphinxcontrib-dqndomain
+.. _Erlang: https://pypi.python.org/pypi/sphinxcontrib-erlangdomain
+.. _Go: https://pypi.python.org/pypi/sphinxcontrib-golangdomain
+.. _HTTP: https://pypi.python.org/pypi/sphinxcontrib-httpdomain
+.. _Jinja: https://pypi.python.org/pypi/sphinxcontrib-jinjadomain
+.. _Lasso: https://pypi.python.org/pypi/sphinxcontrib-lassodomain
+.. _MATLAB: https://pypi.python.org/pypi/sphinxcontrib-matlabdomain
+.. _Operation: https://pypi.python.org/pypi/sphinxcontrib-operationdomain
+.. _PHP: https://pypi.python.org/pypi/sphinxcontrib-phpdomain
+.. _Ruby: https://bitbucket.org/birkenfeld/sphinx-contrib/src/default/rubydomain
+.. _Scala: https://pypi.python.org/pypi/sphinxcontrib-scaladomain
diff --git a/doc/ext/autodoc.rst b/doc/ext/autodoc.rst
index 7f9a6c61..7f646985 100644
--- a/doc/ext/autodoc.rst
+++ b/doc/ext/autodoc.rst
@@ -19,6 +19,15 @@ documentation from docstrings in a semi-automatic way.
package must be in one of the directories on :data:`sys.path` -- adapt your
:data:`sys.path` in the configuration file accordingly.
+.. warning::
+
+ :mod:`~sphinx.ext.autodoc` **imports** the modules to be documented. If any
+ modules have side effects on import, these will be executed by ``autodoc``
+ when ``sphinx-build`` is run.
+
+ If you document scripts (as opposed to library modules), make sure their main
+ routine is protected by a ``if __name__ == '__main__'`` condition.
+
For this to work, the docstrings must of course be written in correct
reStructuredText. You can then use all of the usual Sphinx markup in the
docstrings, and it will end up correctly in the documentation. Together with
@@ -184,12 +193,16 @@ inserting them into the page source under a suitable :rst:dir:`py:module`,
.. versionadded:: 0.6
- .. note::
+ * In an :rst:dir:`automodule` directive with the ``members`` option set, only
+ module members whose ``__module__`` attribute is equal to the module name
+ as given to ``automodule`` will be documented. This is to prevent
+ documentation of imported classes or functions. Set the
+ ``imported-members`` option if you want to prevent this behavior and
+ document all available members. Note that attributes from imported modules
+ will not be documented, because attribute documentation is discovered by
+ parsing the source file of the current module.
- In an :rst:dir:`automodule` directive with the ``members`` option set, only
- module members whose ``__module__`` attribute is equal to the module name
- as given to ``automodule`` will be documented. This is to prevent
- documentation of imported classes or functions.
+ .. versionadded:: 1.2
.. rst:directive:: autofunction
@@ -197,8 +210,23 @@ inserting them into the page source under a suitable :rst:dir:`py:module`,
automethod
autoattribute
- These work exactly like :rst:dir:`autoclass` etc., but do not offer the
- options used for automatic member documentation.
+ These work exactly like :rst:dir:`autoclass` etc.,
+ but do not offer the options used for automatic member documentation.
+
+ :rst:dir:`autodata` and :rst:dir:`autoattribute` support
+ the ``annotation`` option.
+ Without this option, the representation of the object
+ will be shown in the documentation.
+ When the option is given without arguments,
+ only the name of the object will be printed::
+
+ .. autodata:: CD_DRIVE
+ :annotation:
+
+ You can tell sphinx what should be printed after the name::
+
+ .. autodata:: CD_DRIVE
+ :annotation: = your CD device name
For module data members and class attributes, documentation can either be put
into a comment with special formatting (using a ``#:`` to start the comment
@@ -234,6 +262,10 @@ inserting them into the page source under a suitable :rst:dir:`py:module`,
.. versionchanged:: 1.1
Comment docs are now allowed on the same line after an assignment.
+ .. versionchanged:: 1.2
+ :rst:dir:`autodata` and :rst:dir:`autoattribute` have
+ an ``annotation`` option
+
.. note::
If you document decorated functions or methods, keep in mind that autodoc
diff --git a/doc/ext/refcounting.rst b/doc/ext/refcounting.rst
deleted file mode 100644
index e2f33871..00000000
--- a/doc/ext/refcounting.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-:mod:`sphinx.ext.refcounting` -- Keep track of reference counting behavior
-==========================================================================
-
-.. module:: sphinx.ext.refcounting
- :synopsis: Keep track of reference counting behavior.
-
-.. todo:: Write this section.
diff --git a/doc/ext/appapi.rst b/doc/extdev/appapi.rst
index 1f5c063c..0321f5e5 100644
--- a/doc/ext/appapi.rst
+++ b/doc/extdev/appapi.rst
@@ -1,14 +1,27 @@
.. highlight:: rest
-Extension API
-=============
+Application API
+===============
+
+.. module:: sphinx.application
+ :synopsis: Application class and extensibility interface.
-.. currentmodule:: sphinx.application
Each Sphinx extension is a Python module with at least a :func:`setup` function.
This function is called at initialization time with one argument, the
-application object representing the Sphinx process. This application object has
-the following public API:
+application object representing the Sphinx process.
+
+.. class:: Sphinx
+
+ This application object has the public API described in the following.
+
+Extension setup
+---------------
+
+These methods are usually called in an extension's ``setup()`` function.
+
+Examples of using the Sphinx extension API can be seen in the :mod:`sphinx.ext`
+package.
.. method:: Sphinx.setup_extension(name)
@@ -293,6 +306,14 @@ the following public API:
.. versionadded:: 1.1
+.. method:: Sphinx.require_sphinx(version)
+
+ Compare *version* (which must be a ``major.minor`` version string,
+ e.g. ``'1.1'``) with the version of the running Sphinx, and abort the build
+ when it is too old.
+
+ .. versionadded:: 1.0
+
.. method:: Sphinx.connect(event, callback)
Register *callback* to be called when *event* is emitted. For details on
@@ -306,6 +327,16 @@ the following public API:
Unregister callback *listener_id*.
+
+.. exception:: ExtensionError
+
+ All these methods raise this exception if something went wrong with the
+ extension API.
+
+
+Emitting events
+---------------
+
.. method:: Sphinx.emit(event, *arguments)
Emit *event* and pass *arguments* to the callback functions. Return the
@@ -319,22 +350,27 @@ the following public API:
.. versionadded:: 0.5
-.. method:: Sphinx.require_sphinx(version)
- Compare *version* (which must be a ``major.minor`` version string,
- e.g. ``'1.1'``) with the version of the running Sphinx, and abort the build
- when it is too old.
+Producing messages / logging
+----------------------------
- .. versionadded:: 1.0
+The application object also provides support for emitting leveled messages.
+.. note::
-.. exception:: ExtensionError
+ There is no "error" call: in Sphinx, errors are defined as things that stop
+ the build; just raise an exception (:exc:`sphinx.errors.SphinxError` or a
+ custom subclass) to do that.
- All these functions raise this exception if something went wrong with the
- extension API.
+.. automethod:: Sphinx.warn
-Examples of using the Sphinx extension API can be seen in the :mod:`sphinx.ext`
-package.
+.. automethod:: Sphinx.info
+
+.. automethod:: Sphinx.verbose
+
+.. automethod:: Sphinx.debug
+
+.. automethod:: Sphinx.debug2
.. _events:
@@ -343,7 +379,18 @@ Sphinx core events
------------------
These events are known to the core. The arguments shown are given to the
-registered event handlers.
+registered event handlers. Use :meth:`.connect` in an extension's ``setup``
+function (note that ``conf.py`` can also have a ``setup`` function) to connect
+handlers to the events. Example:
+
+.. code-block:: python
+
+ def source_read_handler(app, docname, source):
+ print('do something here...')
+
+ def setup(app):
+ app.connect('source-read', source_read_handler)
+
.. event:: builder-inited (app)
@@ -462,26 +509,87 @@ registered event handlers.
.. versionadded:: 0.5
+Checking the Sphinx version
+---------------------------
+
+.. currentmodule:: sphinx
+
+Use this to adapt your extension to API changes in Sphinx.
+
+.. data:: version_info
+
+ A tuple of five elements; for Sphinx version 1.2.1 beta 3 this would be
+ ``(1, 2, 1, 'beta', 3)``.
+
+ .. versionadded:: 1.2
+ Before version 1.2, check the string ``sphinx.__version__``.
+
+
+The Config object
+-----------------
+
+.. module:: sphinx.config
+
+.. class:: Config
+
+ The config object makes the values of all config values available as
+ attributes.
+
+ It is available as the ``config`` attribute on the application and
+ environment objects. For example, to get the value of :confval:`language`,
+ use either ``app.config.language`` or ``env.config.language``.
+
+
.. _template-bridge:
The template bridge
-------------------
+.. currentmodule:: sphinx.application
+
.. autoclass:: TemplateBridge
:members:
-.. _domain-api:
+.. _exceptions:
-Domain API
+Exceptions
----------
-.. module:: sphinx.domains
+.. module:: sphinx.errors
-.. autoclass:: Domain
- :members:
+.. exception:: SphinxError
-.. autoclass:: ObjType
+ This is the base class for "nice" exceptions. When such an exception is
+ raised, Sphinx will abort the build and present the exception category and
+ message to the user.
-.. autoclass:: Index
- :members:
+ Extensions are encouraged to derive from this exception for their custom
+ errors.
+
+ Exceptions *not* derived from :exc:`SphinxError` are treated as unexpected
+ and shown to the user with a part of the traceback (and the full traceback
+ saved in a temporary file).
+
+ .. attribute:: category
+
+ Description of the exception "category", used in converting the exception
+ to a string ("category: message"). Should be set accordingly in
+ subclasses.
+
+.. exception:: ConfigError
+
+ Used for erroneous values or nonsensical combinations of configuration
+ values.
+
+.. exception:: ExtensionError
+
+ Used for errors in setting up extensions.
+
+.. exception:: ThemeError
+
+ Used for errors to do with themes.
+
+.. exception:: VersionRequirementError
+
+ Raised when the docs require a higher Sphinx version than the current one.
diff --git a/doc/ext/builderapi.rst b/doc/extdev/builderapi.rst
index 3ace2687..cd8688a3 100644
--- a/doc/ext/builderapi.rst
+++ b/doc/extdev/builderapi.rst
@@ -1,7 +1,7 @@
.. _writing-builders:
-Writing new builders
-====================
+Builder API
+===========
.. todo:: Expand this.
diff --git a/doc/extdev/domainapi.rst b/doc/extdev/domainapi.rst
new file mode 100644
index 00000000..d6ecf063
--- /dev/null
+++ b/doc/extdev/domainapi.rst
@@ -0,0 +1,14 @@
+.. _domain-api:
+
+Domain API
+----------
+
+.. module:: sphinx.domains
+
+.. autoclass:: Domain
+ :members:
+
+.. autoclass:: ObjType
+
+.. autoclass:: Index
+ :members:
diff --git a/doc/extdev/envapi.rst b/doc/extdev/envapi.rst
new file mode 100644
index 00000000..84ad3e0d
--- /dev/null
+++ b/doc/extdev/envapi.rst
@@ -0,0 +1,54 @@
+Build environment API
+=====================
+
+.. module:: sphinx.environment
+
+.. class:: BuildEnvironment
+
+ **Attributes**
+
+ .. attribute:: app
+
+ Reference to the :class:`.Sphinx` (application) object.
+
+ .. attribute:: config
+
+ Reference to the :class:`.Config` object.
+
+ .. attribute:: srcdir
+
+ Source directory (the directory containing ``conf.py``).
+
+ .. attribute:: doctreedir
+
+ Directory for storing pickled doctrees.
+
+ .. attribute:: found_docs
+
+ A set of all existing docnames.
+
+ .. attribute:: metadata
+
+ Dictionary mapping docnames to "metadata" (see :ref:`metadata`).
+
+ .. attribute:: titles
+
+ Dictionary mapping docnames to the docutils node for their main title.
+
+ .. autoattribute:: docname
+
+ **Utility methods**
+
+ .. automethod:: warn
+
+ .. automethod:: warn_node
+
+ .. automethod:: doc2path
+
+ .. automethod:: relfn2path
+
+ .. automethod:: note_dependency
+
+ .. automethod:: new_serialno
+
+ .. automethod:: note_reread
diff --git a/doc/extdev/index.rst b/doc/extdev/index.rst
new file mode 100644
index 00000000..b76928c0
--- /dev/null
+++ b/doc/extdev/index.rst
@@ -0,0 +1,33 @@
+.. _dev-extensions:
+
+Developing extensions for Sphinx
+================================
+
+Since many projects will need special features in their documentation, Sphinx is
+designed to be extensible on several levels.
+
+This is what you can do in an extension: First, you can add new
+:term:`builder`\s to support new output formats or actions on the parsed
+documents. Then, it is possible to register custom reStructuredText roles and
+directives, extending the markup. And finally, there are so-called "hook
+points" at strategic places throughout the build process, where an extension can
+register a hook and run specialized code.
+
+An extension is simply a Python module. When an extension is loaded, Sphinx
+imports this module and executes its ``setup()`` function, which in turn
+notifies Sphinx of everything the extension offers -- see the extension tutorial
+for examples.
+
+The configuration file itself can be treated as an extension if it contains a
+``setup()`` function. All other extensions to load must be listed in the
+:confval:`extensions` configuration value.
+
+.. toctree::
+
+ tutorial
+ appapi
+ envapi
+ builderapi
+ markupapi
+ domainapi
+ nodes
diff --git a/doc/extdev/markupapi.rst b/doc/extdev/markupapi.rst
new file mode 100644
index 00000000..577a39e0
--- /dev/null
+++ b/doc/extdev/markupapi.rst
@@ -0,0 +1,139 @@
+Docutils markup API
+===================
+
+This section describes the API for adding ReST markup elements (roles and
+directives).
+
+Roles
+-----
+
+
+Directives
+----------
+
+Directives are handled by classes derived from
+``docutils.parsers.rst.Directive``. They have to be registered by an extension
+using :meth:`.Sphinx.add_directive` or :meth:`.Sphinx.add_directive_to_domain`.
+
+.. module:: docutils.parsers.rst
+
+.. class:: Directive
+
+ The markup syntax of the new directive is determined by the follow five class
+ attributes:
+
+ .. autoattribute:: required_arguments
+ .. autoattribute:: optional_arguments
+ .. autoattribute:: final_argument_whitespace
+ .. autoattribute:: option_spec
+
+ Option validator functions take a single parameter, the option argument
+ (or ``None`` if not given), and should validate it or convert it to the
+ proper form. They raise :exc:`ValueError` or :exc:`TypeError` to indicate
+ failure.
+
+ There are several predefined and possibly useful validators in the
+ :mod:`docutils.parsers.rst.directives` module.
+
+ .. autoattribute:: has_content
+
+ New directives must implement the :meth:`run` method:
+
+ .. method:: run()
+
+ This method must process the directive arguments, options and content, and
+ return a list of Docutils/Sphinx nodes that will be inserted into the
+ document tree at the point where the directive was encountered.
+
+ Instance attributes that are always set on the directive are:
+
+ .. attribute:: name
+
+ The directive name (useful when registering the same directive class under
+ multiple names).
+
+ .. attribute:: arguments
+
+ The arguments given to the directive, as a list.
+
+ .. attribute:: options
+
+ The options given to the directive, as a dictionary mapping option names
+ to validated/converted values.
+
+ .. attribute:: content
+
+ The directive content, if given, as a :class:`.ViewList`.
+
+ .. attribute:: lineno
+
+ The absolute line number on which the directive appeared. This is not
+ always a useful value; use :attr:`srcline` instead.
+
+ .. attribute:: src
+
+ The source file of the directive.
+
+ .. attribute:: srcline
+
+ The line number in the source file on which the directive appeared.
+
+ .. attribute:: content_offset
+
+ Internal offset of the directive content. Used when calling
+ ``nested_parse`` (see below).
+
+ .. attribute:: block_text
+
+ The string containing the entire directive.
+
+ .. attribute:: state
+ state_machine
+
+ The state and state machine which controls the parsing. Used for
+ ``nested_parse``.
+
+
+ViewLists
+^^^^^^^^^
+
+Docutils represents document source lines in a class
+``docutils.statemachine.ViewList``. This is a list with extended functionality
+-- for one, slicing creates views of the original list, and also the list
+contains information about the source line numbers.
+
+The :attr:`Directive.content` attribute is a ViewList. If you generate content
+to be parsed as ReST, you have to create a ViewList yourself. Important for
+content generation are the following points:
+
+* The constructor takes a list of strings (lines) and a source (document) name.
+
+* The ``.append()`` method takes a line and a source name as well.
+
+
+Parsing directive content as ReST
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Many directives will contain more markup that must be parsed. To do this, use
+one of the following APIs from the :meth:`Directive.run` method:
+
+* ``self.state.nested_parse``
+* :func:`sphinx.util.nodes.nested_parse_with_titles` -- this allows titles in
+ the parsed content.
+
+Both APIs parse the content into a given node. They are used like this::
+
+ node = docutils.nodes.paragraph()
+ # either
+ nested_parse_with_titles(self.state, self.result, node)
+ # or
+ self.state.nested_parse(self.result, 0, node)
+
+If you don't need the wrapping node, you can use any concrete node type and
+return ``node.children`` from the Directive.
+
+
+.. seealso::
+
+ `Creating directives <http://docutils.sf.net/docs/howto/rst-directives.html>`_
+ HOWTO of the Docutils documentation
diff --git a/doc/extdev/nodes.rst b/doc/extdev/nodes.rst
new file mode 100644
index 00000000..e67fa3da
--- /dev/null
+++ b/doc/extdev/nodes.rst
@@ -0,0 +1,57 @@
+.. _nodes:
+
+Doctree node classes added by Sphinx
+====================================
+
+.. module:: sphinx.addnodes
+
+Nodes for domain-specific object descriptions
+---------------------------------------------
+
+.. autoclass:: desc
+.. autoclass:: desc_signature
+.. autoclass:: desc_addname
+.. autoclass:: desc_type
+.. autoclass:: desc_returns
+.. autoclass:: desc_name
+.. autoclass:: desc_parameterlist
+.. autoclass:: desc_parameter
+.. autoclass:: desc_optional
+.. autoclass:: desc_annotation
+.. autoclass:: desc_content
+
+New admonition-like constructs
+------------------------------
+
+.. autoclass:: versionmodified
+.. autoclass:: seealso
+
+Other paragraph-level nodes
+-------------------------------
+
+.. autoclass:: compact_paragraph
+
+New inline nodes
+----------------
+
+.. autoclass:: index
+.. autoclass:: pending_xref
+.. autoclass:: literal_emphasis
+.. autoclass:: abbreviation
+.. autoclass:: download_reference
+
+Special nodes
+-------------
+
+.. autoclass:: only
+.. autoclass:: meta
+.. autoclass:: highlightlang
+
+You should not need to generate the nodes below in extensions.
+
+.. autoclass:: glossary
+.. autoclass:: toctree
+.. autoclass:: start_of_file
+.. autoclass:: productionlist
+.. autoclass:: production
+.. autoclass:: termsep
diff --git a/doc/ext/tutorial.rst b/doc/extdev/tutorial.rst
index c09be29a..a03d6e08 100644
--- a/doc/ext/tutorial.rst
+++ b/doc/extdev/tutorial.rst
@@ -12,6 +12,50 @@ include todo entries in the documentation, and collecting these in a central
place. (A similar "todo" extension is distributed with Sphinx.)
+Important objects
+-----------------
+
+There are several key objects whose API you will use while writing an
+extension. These are:
+
+**Application**
+ The application object (usually called ``app``) is an instance of
+ :class:`.Sphinx`. It controls the most high-level functionality, such as the
+ setup of extensions, event dispatching and producing output (logging).
+
+ If you have the environment object, the application is available as
+ ``env.app``.
+
+**Environment**
+ The build environment object (usually called ``env``) is an instance of
+ :class:`.BuildEnvironment`. It is responsible for parsing the source
+ documents stores all metadata about the document collection and is serialized
+ after each build.
+
+ Its API provides methods to do with access to metadata, resolving references,
+ etc. It can also be used by extensions to cache information that should
+ persist for incremental rebuilds.
+
+ If you have the application or builder object, the environment is available
+ as ``app.env`` or ``builder.env``.
+
+**Builder**
+ The builder object (usually called ``builder``) is an instance of a specific
+ subclass of :class:`.Builder`. Each builder class knows how to convert the
+ parsed documents into an output format, or otherwise process them (e.g. check
+ external links).
+
+ If you have the application object, the environment is available as
+ ``app.builder``.
+
+**Config**
+ The config object (usually called ``config``) provides the values of
+ configuration values set in :file:`conf.py` as attributes. It is an instance
+ of :class:`.Config`.
+
+ The config is available as ``app.config`` or ``env.config``.
+
+
Build Phases
------------
@@ -29,11 +73,15 @@ in which a Sphinx project is built: this works in several phases.
In Phase 1, all source files (and on subsequent builds, those that are new or
changed) are read and parsed. This is the phase where directives and roles
- are encountered by the docutils, and the corresponding functions are called.
- The output of this phase is a *doctree* for each source files, that is a tree
- of docutils nodes. For document elements that aren't fully known until all
+ are encountered by the docutils, and the corresponding code is executed. The
+ output of this phase is a *doctree* for each source files, that is a tree of
+ docutils nodes. For document elements that aren't fully known until all
existing files are read, temporary nodes are created.
+ There are nodes provided by docutils, which are documented `in the docutils
+ documentation <http://docutils.sourceforge.net/docs/ref/doctree.html>`__.
+ Additional nodes are provided by Sphinx and :ref:`documented here <nodes>`.
+
During reading, the build environment is updated with all meta- and cross
reference data of the read documents, such as labels, the names of headings,
described Python objects and index entries. This will later be used to
@@ -165,21 +213,26 @@ docutils classes defined in :mod:`docutils.nodes`. ``todo`` inherits from
``Admonition`` because it should be handled like a note or warning, ``todolist``
is just a "general" node.
+.. note::
+
+ Many extensions will not have to create their own node classes and work fine
+ with the nodes already provided by `docutils
+ <http://docutils.sourceforge.net/docs/ref/doctree.html>`__ and :ref:`Sphinx
+ <nodes>`.
+
The Directive Classes
---------------------
A directive class is a class deriving usually from
-``docutils.parsers.rst.Directive``. Since the class-based directive interface
-doesn't exist yet in Docutils 0.4, Sphinx has another base class called
-``sphinx.util.compat.Directive`` that you can derive your directive from, and it
-will work with both Docutils 0.4 and 0.5 upwards. The directive interface is
-covered in detail in the `docutils documentation`_; the important thing is that the
-class has a method ``run`` that returns a list of nodes.
+:class:`docutils.parsers.rst.Directive`. The directive interface is also
+covered in detail in the `docutils documentation`_; the important thing is that
+the class has attributes that configure the allowed markup and a method ``run``
+that returns a list of nodes.
The ``todolist`` directive is quite simple::
- from sphinx.util.compat import Directive
+ from docutils.parsers.rst import Directive
class TodolistDirective(Directive):
@@ -224,9 +277,9 @@ to the build environment instance using ``self.state.document.settings.env``.
Then, to act as a link target (from the todolist), the todo directive needs to
return a target node in addition to the todo node. The target ID (in HTML, this
-will be the anchor name) is generated by using ``env.new_serialno`` which is
-returns a new integer directive on each call and therefore leads to unique
-target names. The target node is instantiated without any text (the first two
+will be the anchor name) is generated by using ``env.new_serialno`` which
+returns a new unique integer on each call and therefore leads to unique target
+names. The target node is instantiated without any text (the first two
arguments).
An admonition is created using a standard docutils function (wrapped in Sphinx
diff --git a/doc/extensions.rst b/doc/extensions.rst
index 07bc7fe4..b2adbc1a 100644
--- a/doc/extensions.rst
+++ b/doc/extensions.rst
@@ -3,34 +3,12 @@
Sphinx Extensions
=================
-.. module:: sphinx.application
- :synopsis: Application class and extensibility interface.
-
-Since many projects will need special features in their documentation, Sphinx is
-designed to be extensible on several levels.
-
-This is what you can do in an extension: First, you can add new
-:term:`builder`\s to support new output formats or actions on the parsed
-documents. Then, it is possible to register custom reStructuredText roles and
-directives, extending the markup. And finally, there are so-called "hook
-points" at strategic places throughout the build process, where an extension can
-register a hook and run specialized code.
-
-An extension is simply a Python module. When an extension is loaded, Sphinx
-imports this module and executes its ``setup()`` function, which in turn
-notifies Sphinx of everything the extension offers -- see the extension tutorial
-for examples.
-
-The configuration file itself can be treated as an extension if it contains a
-``setup()`` function. All other extensions to load must be listed in the
-:confval:`extensions` configuration value.
-
-.. toctree::
-
- ext/tutorial
- ext/appapi
- ext/builderapi
+Since many projects will need special features in their documentation, Sphinx
+allows to add "extensions" to the build process, each of which can modify almost
+any aspect of document processing.
+This chapter describes the extensions bundled with Sphinx. For the API
+documentation on writing your own extension, see :ref:`dev-extensions`.
Builtin Sphinx extensions
-------------------------
@@ -47,7 +25,6 @@ These extensions are built in and can be activated by respective entries in the
ext/math
ext/graphviz
ext/inheritance
- ext/refcounting
ext/ifconfig
ext/coverage
ext/todo
@@ -69,10 +46,10 @@ maintains a list of those.
If you write an extension that you think others will find useful or you think
should be included as a part of Sphinx, please write to the project mailing
-list (`join here <http://groups.google.com/group/sphinx-dev>`_).
+list (`join here <https://groups.google.com/group/sphinx-dev>`_).
-.. _Wiki at BitBucket: https://www.bitbucket.org/birkenfeld/sphinx/wiki/Home
-.. _Sphinx Contrib: https://www.bitbucket.org/birkenfeld/sphinx-contrib
+.. _Wiki at BitBucket: https://bitbucket.org/birkenfeld/sphinx/wiki/Home
+.. _Sphinx Contrib: https://bitbucket.org/birkenfeld/sphinx-contrib
Where to put your own extensions?
diff --git a/doc/faq.rst b/doc/faq.rst
index ff74be1c..7aa35d1f 100644
--- a/doc/faq.rst
+++ b/doc/faq.rst
@@ -37,7 +37,7 @@ How do I...
come through cleanly.
... create HTML slides from Sphinx documents?
- See the "Hieroglyph" package at http://github.com/nyergler/hieroglyph.
+ See the "Hieroglyph" package at https://github.com/nyergler/hieroglyph.
For many more extensions and other contributed stuff, see the sphinx-contrib_
repository.
@@ -50,7 +50,7 @@ Using Sphinx with...
--------------------
Read the Docs
- http://readthedocs.org is a documentation hosting service based around Sphinx.
+ https://readthedocs.org is a documentation hosting service based around Sphinx.
They will host sphinx documentation, along with supporting a number of other
features including version support, PDF generation, and more. The `Getting
Started <http://read-the-docs.readthedocs.org/en/latest/getting_started.html>`_
@@ -62,7 +62,7 @@ Epydoc
Doxygen
Michael Jones is developing a reST/Sphinx bridge to doxygen called `breathe
- <http://github.com/michaeljones/breathe/tree/master>`_.
+ <https://github.com/michaeljones/breathe/tree/master>`_.
SCons
Glenn Hutchings has written a SCons build script to build Sphinx
@@ -70,9 +70,9 @@ SCons
PyPI
Jannis Leidel wrote a `setuptools command
- <http://pypi.python.org/pypi/Sphinx-PyPI-upload>`_ that automatically uploads
+ <https://pypi.python.org/pypi/Sphinx-PyPI-upload>`_ that automatically uploads
Sphinx documentation to the PyPI package documentation area at
- http://packages.python.org/.
+ http://pythonhosted.org/.
GitHub Pages
Directories starting with underscores are ignored by default which breaks
@@ -139,7 +139,7 @@ The following list gives some hints for the creation of epub files:
are often cut at the right margin. The default Courier font (or variant) is
quite wide and you can only display up to 60 characters on a line. If you
replace it with a narrower font, you can get more characters on a line. You
- may even use `FontForge <http://fontforge.sourceforge.net/>`_ and create
+ may even use `FontForge <http://fontforge.org/>`_ and create
narrow variants of some free font. In my case I get up to 70 characters on a
line.
@@ -168,8 +168,8 @@ The following list gives some hints for the creation of epub files:
.. _Epubcheck: http://code.google.com/p/epubcheck/
.. _Calibre: http://calibre-ebook.com/
-.. _FBreader: http://www.fbreader.org/
-.. _Bookworm: http://bookworm.oreilly.com/
+.. _FBreader: http://fbreader.org/
+.. _Bookworm: http://oreilly.com/bookworm/index.html
.. _texinfo-faq:
diff --git a/doc/install.rst b/doc/install.rst
index b1e0e5b6..bf653872 100644
--- a/doc/install.rst
+++ b/doc/install.rst
@@ -7,7 +7,7 @@ Since Sphinx is written in the Python language, you need to install Python
(the required version is at least 2.5) and Sphinx.
Sphinx packages are available on the `Python Package Index
-<http://pypi.python.org/pypi/Sphinx>`_.
+<https://pypi.python.org/pypi/Sphinx>`_.
You can also download a snapshot from the Mercurial development repository:
@@ -118,24 +118,25 @@ Install the easy_install command
Python has a very useful :command:`easy_install` command which can download and
install 3rd-party libraries with a single command. This is provided by the
-"distribute" project: http://pypi.python.org/pypi/distribute.
+"setuptools" project: https://pypi.python.org/pypi/setuptools.
-To install distribute, download http://distribute.org/distribute_setup.py and
+To install setuptools, download
+https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py and
save it somewhere. After download, invoke the command prompt, go to the
-directory with distribute_setup.py and run this command:
+directory with ez_setup.py and run this command:
.. code-block:: bat
- C:\> python distribute_setup.py
+ C:\> python ez_setup.py
-Now distribute and its :command:`easy_install` command is installed. From there
+Now setuptools and its :command:`easy_install` command is installed. From there
we can go to the Sphinx install.
Installing Sphinx with easy_install
-----------------------------------
-If you finished the installation of distribute, type this line in the command
+If you finished the installation of setuptools, type this line in the command
prompt:
.. code-block:: bat
diff --git a/doc/intl.rst b/doc/intl.rst
index 5f969d51..3363dc50 100644
--- a/doc/intl.rst
+++ b/doc/intl.rst
@@ -71,7 +71,7 @@ Translating with sphinx-intl
----------------------------
Quick guide
-^^^^^^^^^^^^
+^^^^^^^^^^^
`sphinx-intl`_ is a useful tool to work with Sphinx translation flow.
This section describe a easy way to translate with sphinx-intl.
@@ -81,8 +81,8 @@ This section describe a easy way to translate with sphinx-intl.
#. Add configurations to your `conf.py`::
- locale_dirs = ['locale/'] #path is example but recommended.
- gettext_compact = False #optional.
+ locale_dirs = ['locale/'] # path is example but recommended.
+ gettext_compact = False # optional.
This case-study assumes that :confval:`locale_dirs` is set to 'locale/' and
:confval:`gettext_compact` is set to `False` (the Sphinx document is
@@ -108,19 +108,18 @@ This section describe a easy way to translate with sphinx-intl.
#. Build mo files and make translated document.
- You need :confval:`language` parameter in ``conf.py`` or you may also
+ You need a :confval:`language` parameter in ``conf.py`` or you may also
specify the parameter on the command line::
$ sphinx-intl build
$ make -e SPHINXOPTS="-D language='de'" html
-
-Congratulations!! You got the translated document in ``_build/html``
+Congratulations! You got the translated documentation in the ``_build/html``
directory.
Translating
-^^^^^^^^^^^^
+^^^^^^^^^^^
Translate po file under ``./locale/de/LC_MESSAGES`` directory.
The case of builders.po file for sphinx document:
@@ -146,16 +145,17 @@ syntax:
"FILL HERE BY TARGET LANGUAGE FILL HERE BY TARGET LANGUAGE FILL HERE "
"BY TARGET LANGUAGE :ref:`EXTENSIONS <extensions>` FILL HERE."
-Please be careful not to break reST notation.
+Please be careful not to break reST notation. Most po-editors will help you
+with that.
Update your po files by new pot files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-If the document is updated, it is necessary to generate updated pot files
+If a document is updated, it is necessary to generate updated pot files
and to apply differences to translated po files.
In order to apply the updating difference of a pot file to po file,
-using :command:`sphinx-intl update` command.
+use the :command:`sphinx-intl update` command.
.. code-block:: bash
@@ -165,6 +165,10 @@ using :command:`sphinx-intl update` command.
Using Transifex service for team translation
--------------------------------------------
+Transifex_ is one of several services that allow collaborative translation via a
+web interface. It has a nifty Python-based command line client that makes it
+easy to fetch and push translations.
+
.. TODO: why use transifex?
@@ -181,9 +185,9 @@ Using Transifex service for team translation
#. Create your transifex_ account and create new project for your document
- Currently, transifex does not allow for a translation project to
- have more than one version of document, so you'd better include a
- version number in your project name.
+ Currently, transifex does not allow for a translation project to have more
+ than one version of the document, so you'd better include a version number in
+ your project name.
For example:
@@ -193,8 +197,8 @@ Using Transifex service for team translation
#. Create config files for tx command
- This process will create ``.tx/config`` in the current directory, as
- well as ``~/.transifexrc`` file that includes auth information.
+ This process will create ``.tx/config`` in the current directory, as well as
+ a ``~/.transifexrc`` file that includes auth information.
.. code-block:: bash
@@ -253,11 +257,11 @@ Using Transifex service for team translation
That's all!
-.. tip:: Translating on local and Transifex
+.. tip:: Translating locally and on Transifex
If you want to push all language's po files, you can be done by using
:command:`tx push -t` command.
- Watch out! this operation overwrites translations in transifex.
+ Watch out! This operation overwrites translations in transifex.
In other words, if you have updated each in the service and local po files,
it would take much time and effort to integrate them.
@@ -270,7 +274,7 @@ Contributing to Sphinx reference translation
The recommended way for new contributors to translate Sphinx reference
is to join the translation team on Transifex.
-There is `sphinx translation page`_ for Sphinx-1.2 document.
+There is `sphinx translation page`_ for Sphinx-1.2 documentation.
1. Login to transifex_ service.
2. Go to `sphinx translation page`_.
@@ -290,5 +294,5 @@ There is `sphinx translation page`_ for Sphinx-1.2 document.
.. _`transifex-client`: https://pypi.python.org/pypi/transifex-client
.. _`sphinx-intl`: https://pypi.python.org/pypi/sphinx-intl
.. _Transifex: https://www.transifex.com/
-.. _`sphinx translation page`: https://www.transifex.com/projects/p/sphinx-doc-1_2_0/
+.. _`sphinx translation page`: https://www.transifex.com/projects/p/sphinx-doc-1_2_0/
.. _`Transifex Client v0.8 &mdash; Transifex documentation`: http://help.transifex.com/features/client/index.html
diff --git a/doc/intro.rst b/doc/intro.rst
index 4d052c81..66d0c58d 100644
--- a/doc/intro.rst
+++ b/doc/intro.rst
@@ -16,6 +16,10 @@ Though there is support for that kind of docs as well (which is intended to be
freely mixed with hand-written content), if you need pure API docs have a look
at `Epydoc <http://epydoc.sf.net/>`_, which also understands reST.
+For a great "introduction" to writing docs in general -- the whys and hows, see
+also `Write the docs <http://write-the-docs.readthedocs.org/>`_, written by Eric
+Holscher.
+
Conversion from other systems
-----------------------------
@@ -24,7 +28,7 @@ This section is intended to collect helpful hints for those wanting to migrate
to reStructuredText/Sphinx from other documentation systems.
* Gerard Flanagan has written a script to convert pure HTML to reST; it can be
- found at the `Python Package Index <http://pypi.python.org/pypi/html2rest>`_.
+ found at the `Python Package Index <https://pypi.python.org/pypi/html2rest>`_.
* For converting the old Python docs to Sphinx, a converter was written which
can be found at `the Python SVN repository
@@ -35,7 +39,7 @@ to reStructuredText/Sphinx from other documentation systems.
markup; it is at `Google Code <http://code.google.com/p/db2rst/>`_.
* Christophe de Vienne wrote a tool to convert from Open/LibreOffice documents
- to Sphinx: `odt2sphinx <http://pypi.python.org/pypi/odt2sphinx/>`_.
+ to Sphinx: `odt2sphinx <https://pypi.python.org/pypi/odt2sphinx/>`_.
* To convert different markups, `Pandoc <http://johnmacfarlane.net/pandoc/>`_ is
a very helpful tool.
diff --git a/doc/invocation.rst b/doc/invocation.rst
index c6125ecc..654921be 100644
--- a/doc/invocation.rst
+++ b/doc/invocation.rst
@@ -140,7 +140,8 @@ The :program:`sphinx-build` script has several options:
.. option:: -n
Run in nit-picky mode. Currently, this generates warnings for all missing
- references.
+ references. See the config value :confval:`nitpick_ignore` for a way to
+ exclude some references as "known missing".
.. option:: -N
@@ -149,8 +150,8 @@ The :program:`sphinx-build` script has several options:
.. option:: -v
- Increase verbosity. This option can be given up to three times to get more
- debug output. It implies :option:`-T`.
+ Increase verbosity (loglevel). This option can be given up to three times
+ to get more debug logging output. It implies :option:`-T`.
.. versionadded:: 1.2
@@ -237,6 +238,16 @@ where *packagedir* is the path to the package to document, and *outputdir* is
the directory where the generated sources are placed. Any *pathnames* given
are paths to be excluded ignored during generation.
+.. warning::
+
+ ``sphinx-apidoc`` generates reST files that use :mod:`sphinx.ext.autodoc` to
+ document all found modules. If any modules have side effects on import,
+ these will be executed by ``autodoc`` when ``sphinx-build`` is run.
+
+ If you document scripts (as opposed to library modules), make sure their main
+ routine is protected by a ``if __name__ == '__main__'`` condition.
+
+
The :program:`sphinx-apidoc` script has several options:
.. program:: sphinx-apidoc
@@ -269,7 +280,7 @@ The :program:`sphinx-apidoc` script has several options:
filesystem to discover packages and modules. You may need it if you want
to generate documentation from a source directory managed by
`collective.recipe.omelette
- <http://pypi.python.org/pypi/collective.recipe.omelette/>`_.
+ <https://pypi.python.org/pypi/collective.recipe.omelette/>`_.
By default, symbolic links are skipped.
.. versionadded:: 1.2
diff --git a/doc/man/sphinx-apidoc.rst b/doc/man/sphinx-apidoc.rst
index e48102de..a01d2a82 100644
--- a/doc/man/sphinx-apidoc.rst
+++ b/doc/man/sphinx-apidoc.rst
@@ -19,20 +19,33 @@ other automatic API documentation tools.
*sourcedir* must point to a Python package. Any *pathnames* given are paths to
be excluded from the generation.
+.. warning::
+
+ ``sphinx-apidoc`` generates source files that use :mod:`sphinx.ext.autodoc`
+ to document all found modules. If any modules have side effects on import,
+ these will be executed by ``autodoc`` when ``sphinx-build`` is run.
+
+ If you document scripts (as opposed to library modules), make sure their main
+ routine is protected by a ``if __name__ == '__main__'`` condition.
+
Options
-------
--o <outputdir> Directory to place the output files. If it does not exist,
- it is created.
--f, --force Usually, apidoc does not overwrite files, unless this option
- is given.
--n, --dry-run If given, apidoc does not create any files.
--s <suffix> Suffix for the source files generated, default is ``rst``.
--d <maxdepth> Maximum depth for the generated table of contents file.
--T, --no-toc Do not create a table of contents file.
--F, --full If given, a full Sphinx project is generated (``conf.py``,
- ``Makefile`` etc.) using sphinx-quickstart.
+-o <outputdir> Directory to place the output files. If it does not exist,
+ it is created.
+-f, --force Usually, apidoc does not overwrite files, unless this option
+ is given.
+-l, --follow-links Follow symbolic links.
+-n, --dry-run If given, apidoc does not create any files.
+-s <suffix> Suffix for the source files generated, default is ``rst``.
+-d <maxdepth> Maximum depth for the generated table of contents file.
+-T, --no-toc Do not create a table of contents file.
+-F, --full If given, a full Sphinx project is generated (``conf.py``,
+ ``Makefile`` etc.) using sphinx-quickstart.
+-e, --separate Put each module file in its own page.
+-E, --no-headings Don't create headings for the modules/packages
+-P, --private Include "_private" modules
These options are used with ``-F``:
diff --git a/doc/man/sphinx-build.rst b/doc/man/sphinx-build.rst
index 0a5d4abb..aa1d71c6 100644
--- a/doc/man/sphinx-build.rst
+++ b/doc/man/sphinx-build.rst
@@ -32,6 +32,13 @@ List of available builders:
html
HTML file generation. This is the default builder.
+dirhtml
+ HTML file generation with every HTML file named "index.html" in a separate
+ directory.
+
+singlehtml
+ HTML file generation with all content in a single HTML file.
+
htmlhelp
Generates files for CHM (compiled help files) generation.
@@ -51,9 +58,15 @@ texinfo
Generates Texinfo output that can be processed by :program:`makeinfo` to
generate an Info document.
+epub
+ Generates an ePub e-book version of the HTML output.
+
text
Generates a plain-text version of the documentation.
+gettext
+ Generates Gettext message catalogs for content translation.
+
changes
Generates HTML files listing changed/added/deprecated items for
the current version of the documented project.
@@ -81,20 +94,24 @@ Options
output for new and changed files is generated.
-E Ignore cached files, forces to re-read all source files
from disk.
+-d <path> Path to cached files; defaults to <outdir>/.doctrees.
+-j <N> Build in parallel with N processes where possible.
-c <path> Locate the conf.py file in the specified path instead of
<sourcedir>.
-C Specify that no conf.py file at all is to be used.
Configuration can only be set with the -D option.
-D <setting=value> Override a setting from the configuration file.
--d <path> Path to cached files; defaults to <outdir>/.doctrees.
+-t <tag> Define *tag* for use in "only" blocks.
-A <name=value> Pass a value into the HTML templates (only for HTML builders).
-n Run in nit-picky mode, warn about all missing references.
+-v Increase verbosity (can be repeated).
-N Prevent colored output.
-q Quiet operation, just print warnings and errors on stderr.
-Q Very quiet operation, don't print anything except for errors.
-w <file> Write warnings and errors into the given file, in addition
to stderr.
-W Turn warnings into errors.
+-T Show full traceback on exception.
-P Run Pdb on exception.
diff --git a/doc/markup/code.rst b/doc/markup/code.rst
index c0e7e8eb..957774f0 100644
--- a/doc/markup/code.rst
+++ b/doc/markup/code.rst
@@ -60,10 +60,11 @@ installed) and handled in a smart way:
certain well-recognizable languages)
* ``rest``
* ``c``
- * ... and any other lexer name that Pygments supports.
+ * ... and any other `lexer alias that Pygments supports
+ <http://pygments.org/docs/lexers/>`_.
-* If highlighting with the selected language fails, the block is not highlighted
- in any way.
+* If highlighting with the selected language fails (i.e. Pygments emits an
+ "Error" token), the block is not highlighted in any way.
Line numbers
^^^^^^^^^^^^
diff --git a/doc/markup/misc.rst b/doc/markup/misc.rst
index 10ba491e..b2e9051f 100644
--- a/doc/markup/misc.rst
+++ b/doc/markup/misc.rst
@@ -176,8 +176,9 @@ Including content based on tags
.. only:: html and draft
Undefined tags are false, defined tags (via the ``-t`` command-line option or
- within :file:`conf.py`) are true. Boolean expressions, also using
- parentheses (like ``html and (latex or draft)``) are supported.
+ within :file:`conf.py`, see :ref:`here <conf-tags>`) are true. Boolean
+ expressions, also using parentheses (like ``html and (latex or draft)``) are
+ supported.
The *format* and the *name* of the current builder (``html``, ``latex`` or
``text``) are always set as a tag [#]_. To make the distinction between
@@ -185,6 +186,9 @@ Including content based on tags
``builder_``, e.g. the epub builder defines the tags ``html``, ``epub``,
``format_html`` and ``builder_epub``.
+ These standard tags are set *after* the configuration file is read, so they
+ are not available there.
+
.. versionadded:: 0.6
.. versionchanged:: 1.2
Added the name of the builder and the prefixes.
@@ -212,9 +216,9 @@ following directive exists:
``p{width}`` construct, or tabulary's automatic specifiers:
+-----+------------------------------------------+
- |``L``| ragged-left column with automatic width |
+ |``L``| flush left column with automatic width |
+-----+------------------------------------------+
- |``R``| ragged-right column with automatic width |
+ |``R``| flush right column with automatic width |
+-----+------------------------------------------+
|``C``| centered column with automatic width |
+-----+------------------------------------------+
diff --git a/doc/markup/toctree.rst b/doc/markup/toctree.rst
index c17fb9b0..1d5d667a 100644
--- a/doc/markup/toctree.rst
+++ b/doc/markup/toctree.rst
@@ -68,8 +68,8 @@ tables of contents. The ``toctree`` directive is the central element.
**Section numbering**
- If you want to have section numbers even in HTML output, give the toctree a
- ``numbered`` option. For example::
+ If you want to have section numbers even in HTML output, give the
+ **toplevel** toctree a ``numbered`` option. For example::
.. toctree::
:numbered:
@@ -141,9 +141,12 @@ tables of contents. The ``toctree`` directive is the central element.
In the end, all documents in the :term:`source directory` (or subdirectories)
must occur in some ``toctree`` directive; Sphinx will emit a warning if it
finds a file that is not included, because that means that this file will not
- be reachable through standard navigation. Use :confval:`unused_docs` to
- explicitly exclude documents from building, and :confval:`exclude_trees` to
- exclude whole directories.
+ be reachable through standard navigation.
+
+ Use :confval:`exclude_patterns` to explicitly exclude documents or
+ directories from building completely. Use :ref:`the "orphan" metadata
+ <metadata>` to let a document be built, but notify Sphinx that it is not
+ reachable via a toctree.
The "master document" (selected by :confval:`master_doc`) is the "root" of
the TOC tree hierarchy. It can be used as the documentation's main page, or
diff --git a/doc/rest.rst b/doc/rest.rst
index ccfdf11d..b35ebc91 100644
--- a/doc/rest.rst
+++ b/doc/rest.rst
@@ -373,6 +373,8 @@ For instance, if the file name ``gnu.*`` was given and two files :file:`gnu.pdf`
and :file:`gnu.png` existed in the source tree, the LaTeX builder would choose
the former, while the HTML builder would prefer the latter.
+Note that image file names should not contain spaces.
+
.. versionchanged:: 0.4
Added the support for file names ending in an asterisk.
diff --git a/doc/templating.rst b/doc/templating.rst
index b9dfc683..b9561b69 100644
--- a/doc/templating.rst
+++ b/doc/templating.rst
@@ -251,7 +251,8 @@ in the future.
.. data:: docstitle
- The title of the documentation (the value of :confval:`html_title`).
+ The title of the documentation (the value of :confval:`html_title`), except
+ when the "single-file" builder is used, when it is set to ``None``.
.. data:: embedded
diff --git a/doc/theming.rst b/doc/theming.rst
index 0375bc71..73ec9f27 100644
--- a/doc/theming.rst
+++ b/doc/theming.rst
@@ -34,7 +34,7 @@ That would give you the default theme, but with a sidebar on the right side and
a black background for the relation bar (the bar with the navigation links at
the page's top and bottom).
-If the theme does not come with Sphinx, it can be in two forms: either a
+If the theme does not come with Sphinx, it can be in two static forms: either a
directory (containing :file:`theme.conf` and other needed files), or a zip file
with the same contents. Either of them must be put where Sphinx can find it;
for this there is the config value :confval:`html_theme_path`. It gives a list
@@ -46,6 +46,35 @@ file :file:`blue.zip`, you can put it right in the directory containing
html_theme = "blue"
html_theme_path = ["."]
+The third form provides your theme path dynamically to Sphinx if the
+``setuptools`` package is installed. You can provide an entry point section
+called ``sphinx_themes`` in your setup.py file and write a ``get_path`` function
+that has to return the directory with themes in it::
+
+ // in your 'setup.py'
+
+ setup(
+ ...
+ entry_points = {
+ 'sphinx_themes': [
+ 'path = your_package:get_path',
+ ]
+ },
+ ...
+ )
+
+ // in 'your_package.py'
+
+ from os import path
+ package_dir = path.abspath(path.dirname(__file__))
+ template_path = path.join(package_dir, 'themes')
+
+ def get_path():
+ return template_path
+
+.. versionadded:: 1.2
+ 'sphinx_themes' entry_points feature.
+
.. _builtin-themes:
diff --git a/doc/tutorial.rst b/doc/tutorial.rst
index 9fea11db..cae4c8db 100644
--- a/doc/tutorial.rst
+++ b/doc/tutorial.rst
@@ -245,14 +245,52 @@ autodoc needs to import your modules in order to extract the docstrings.
Therefore, you must add the appropriate path to :py:data:`sys.path` in your
:file:`conf.py`.
+.. warning::
+
+ :mod:`~sphinx.ext.autodoc` **imports** the modules to be documented. If any
+ modules have side effects on import, these will be executed by ``autodoc``
+ when ``sphinx-build`` is run.
+
+ If you document scripts (as opposed to library modules), make sure their main
+ routine is protected by a ``if __name__ == '__main__'`` condition.
+
|more| See :mod:`sphinx.ext.autodoc` for the complete description of the
features of autodoc.
+Intersphinx
+-----------
+
+Many Sphinx documents including the `Python documentation`_ are published on the
+internet. When you want to make links to such documents from your
+documentation, you can do it with :mod:`sphinx.ext.intersphinx`.
+
+.. _Python documentation: http://docs.python.org/3
+
+In order to use intersphinx, you need to activate it in :file:`conf.py` by
+putting the string ``'sphinx.ext.intersphinx'`` into the :confval:`extensions`
+list and set up the :confval:`intersphinx_mapping` config value.
+
+For example, to link to ``io.open()`` in the Python library manual, you need to
+setup your :confval:`intersphinx_mapping` like::
+
+ intersphinx_mapping = {'python': ('http://docs.python.org/3', None)}
+
+And now, you can write a cross-reference like ``:py:func:`io.open```. Any
+cross-reference that has no matching target in the current documentation set,
+will be looked up in the documentation sets configured in
+:confval:`intersphinx_mapping` (this needs access to the URL in order to
+download the list of valid targets). Intersphinx also works for some other
+:ref:`domains' <domains>` roles including ``:ref:``, however it doesn't work for
+``:doc:`` as that is non-domain role.
+
+|more| See :mod:`sphinx.ext.intersphinx` for the complete description of the
+features of intersphinx.
+
More topics to be covered
-------------------------
-- Other extensions (math, intersphinx, viewcode, doctest)
+- Other extensions (math, viewcode, doctest)
- Static files
- Selecting a theme
- Templating
diff --git a/ez_setup.py b/ez_setup.py
new file mode 100644
index 00000000..b02f3f17
--- /dev/null
+++ b/ez_setup.py
@@ -0,0 +1,370 @@
+#!python
+"""Bootstrap setuptools installation
+
+If you want to use setuptools in your package's setup.py, just include this
+file in the same directory with it, and add this to the top of your setup.py::
+
+ from ez_setup import use_setuptools
+ use_setuptools()
+
+If you want to require a specific version of setuptools, set a download
+mirror, or use an alternate download directory, you can do so by supplying
+the appropriate options to ``use_setuptools()``.
+
+This file can also be run as a script to install or upgrade setuptools.
+"""
+import os
+import shutil
+import sys
+import tempfile
+import tarfile
+import optparse
+import subprocess
+import platform
+
+from distutils import log
+
+try:
+ from site import USER_SITE
+except ImportError:
+ USER_SITE = None
+
+DEFAULT_VERSION = "1.1.6"
+DEFAULT_URL = "https://pypi.python.org/packages/source/s/setuptools/"
+
+def _python_cmd(*args):
+ args = (sys.executable,) + args
+ return subprocess.call(args) == 0
+
+def _check_call_py24(cmd, *args, **kwargs):
+ res = subprocess.call(cmd, *args, **kwargs)
+ class CalledProcessError(Exception):
+ pass
+ if not res == 0:
+ msg = "Command '%s' return non-zero exit status %d" % (cmd, res)
+ raise CalledProcessError(msg)
+vars(subprocess).setdefault('check_call', _check_call_py24)
+
+def _install(tarball, install_args=()):
+ # extracting the tarball
+ tmpdir = tempfile.mkdtemp()
+ log.warn('Extracting in %s', tmpdir)
+ old_wd = os.getcwd()
+ try:
+ os.chdir(tmpdir)
+ tar = tarfile.open(tarball)
+ _extractall(tar)
+ tar.close()
+
+ # going in the directory
+ subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
+ os.chdir(subdir)
+ log.warn('Now working in %s', subdir)
+
+ # installing
+ log.warn('Installing Setuptools')
+ if not _python_cmd('setup.py', 'install', *install_args):
+ log.warn('Something went wrong during the installation.')
+ log.warn('See the error message above.')
+ # exitcode will be 2
+ return 2
+ finally:
+ os.chdir(old_wd)
+ shutil.rmtree(tmpdir)
+
+
+def _build_egg(egg, tarball, to_dir):
+ # extracting the tarball
+ tmpdir = tempfile.mkdtemp()
+ log.warn('Extracting in %s', tmpdir)
+ old_wd = os.getcwd()
+ try:
+ os.chdir(tmpdir)
+ tar = tarfile.open(tarball)
+ _extractall(tar)
+ tar.close()
+
+ # going in the directory
+ subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
+ os.chdir(subdir)
+ log.warn('Now working in %s', subdir)
+
+ # building an egg
+ log.warn('Building a Setuptools egg in %s', to_dir)
+ _python_cmd('setup.py', '-q', 'bdist_egg', '--dist-dir', to_dir)
+
+ finally:
+ os.chdir(old_wd)
+ shutil.rmtree(tmpdir)
+ # returning the result
+ log.warn(egg)
+ if not os.path.exists(egg):
+ raise IOError('Could not build the egg.')
+
+
+def _do_download(version, download_base, to_dir, download_delay):
+ egg = os.path.join(to_dir, 'setuptools-%s-py%d.%d.egg'
+ % (version, sys.version_info[0], sys.version_info[1]))
+ if not os.path.exists(egg):
+ tarball = download_setuptools(version, download_base,
+ to_dir, download_delay)
+ _build_egg(egg, tarball, to_dir)
+ sys.path.insert(0, egg)
+
+ # Remove previously-imported pkg_resources if present (see
+ # https://bitbucket.org/pypa/setuptools/pull-request/7/ for details).
+ if 'pkg_resources' in sys.modules:
+ del sys.modules['pkg_resources']
+
+ import setuptools
+ setuptools.bootstrap_install_from = egg
+
+
+def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
+ to_dir=os.curdir, download_delay=15):
+ # making sure we use the absolute path
+ to_dir = os.path.abspath(to_dir)
+ was_imported = 'pkg_resources' in sys.modules or \
+ 'setuptools' in sys.modules
+ try:
+ import pkg_resources
+ except ImportError:
+ return _do_download(version, download_base, to_dir, download_delay)
+ try:
+ pkg_resources.require("setuptools>=" + version)
+ return
+ except pkg_resources.VersionConflict:
+ e = sys.exc_info()[1]
+ if was_imported:
+ sys.stderr.write(
+ "The required version of setuptools (>=%s) is not available,\n"
+ "and can't be installed while this script is running. Please\n"
+ "install a more recent version first, using\n"
+ "'easy_install -U setuptools'."
+ "\n\n(Currently using %r)\n" % (version, e.args[0]))
+ sys.exit(2)
+ else:
+ del pkg_resources, sys.modules['pkg_resources'] # reload ok
+ return _do_download(version, download_base, to_dir,
+ download_delay)
+ except pkg_resources.DistributionNotFound:
+ return _do_download(version, download_base, to_dir,
+ download_delay)
+
+def download_file_powershell(url, target):
+ """
+ Download the file at url to target using Powershell (which will validate
+ trust). Raise an exception if the command cannot complete.
+ """
+ target = os.path.abspath(target)
+ cmd = [
+ 'powershell',
+ '-Command',
+ "(new-object System.Net.WebClient).DownloadFile(%(url)r, %(target)r)" % vars(),
+ ]
+ subprocess.check_call(cmd)
+
+def has_powershell():
+ if platform.system() != 'Windows':
+ return False
+ cmd = ['powershell', '-Command', 'echo test']
+ devnull = open(os.path.devnull, 'wb')
+ try:
+ try:
+ subprocess.check_call(cmd, stdout=devnull, stderr=devnull)
+ except:
+ return False
+ finally:
+ devnull.close()
+ return True
+
+download_file_powershell.viable = has_powershell
+
+def download_file_curl(url, target):
+ cmd = ['curl', url, '--silent', '--output', target]
+ subprocess.check_call(cmd)
+
+def has_curl():
+ cmd = ['curl', '--version']
+ devnull = open(os.path.devnull, 'wb')
+ try:
+ try:
+ subprocess.check_call(cmd, stdout=devnull, stderr=devnull)
+ except:
+ return False
+ finally:
+ devnull.close()
+ return True
+
+download_file_curl.viable = has_curl
+
+def download_file_wget(url, target):
+ cmd = ['wget', url, '--quiet', '--output-document', target]
+ subprocess.check_call(cmd)
+
+def has_wget():
+ cmd = ['wget', '--version']
+ devnull = open(os.path.devnull, 'wb')
+ try:
+ try:
+ subprocess.check_call(cmd, stdout=devnull, stderr=devnull)
+ except:
+ return False
+ finally:
+ devnull.close()
+ return True
+
+download_file_wget.viable = has_wget
+
+def download_file_insecure(url, target):
+ """
+ Use Python to download the file, even though it cannot authenticate the
+ connection.
+ """
+ try:
+ from urllib.request import urlopen
+ except ImportError:
+ from urllib2 import urlopen
+ src = dst = None
+ try:
+ src = urlopen(url)
+ # Read/write all in one block, so we don't create a corrupt file
+ # if the download is interrupted.
+ data = src.read()
+ dst = open(target, "wb")
+ dst.write(data)
+ finally:
+ if src:
+ src.close()
+ if dst:
+ dst.close()
+
+download_file_insecure.viable = lambda: True
+
+def get_best_downloader():
+ downloaders = [
+ download_file_powershell,
+ download_file_curl,
+ download_file_wget,
+ download_file_insecure,
+ ]
+
+ for dl in downloaders:
+ if dl.viable():
+ return dl
+
+def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
+ to_dir=os.curdir, delay=15,
+ downloader_factory=get_best_downloader):
+ """Download setuptools from a specified location and return its filename
+
+ `version` should be a valid setuptools version number that is available
+ as an egg for download under the `download_base` URL (which should end
+ with a '/'). `to_dir` is the directory where the egg will be downloaded.
+ `delay` is the number of seconds to pause before an actual download
+ attempt.
+
+ ``downloader_factory`` should be a function taking no arguments and
+ returning a function for downloading a URL to a target.
+ """
+ # making sure we use the absolute path
+ to_dir = os.path.abspath(to_dir)
+ tgz_name = "setuptools-%s.tar.gz" % version
+ url = download_base + tgz_name
+ saveto = os.path.join(to_dir, tgz_name)
+ if not os.path.exists(saveto): # Avoid repeated downloads
+ log.warn("Downloading %s", url)
+ downloader = downloader_factory()
+ downloader(url, saveto)
+ return os.path.realpath(saveto)
+
+
+def _extractall(self, path=".", members=None):
+ """Extract all members from the archive to the current working
+ directory and set owner, modification time and permissions on
+ directories afterwards. `path' specifies a different directory
+ to extract to. `members' is optional and must be a subset of the
+ list returned by getmembers().
+ """
+ import copy
+ import operator
+ from tarfile import ExtractError
+ directories = []
+
+ if members is None:
+ members = self
+
+ for tarinfo in members:
+ if tarinfo.isdir():
+ # Extract directories with a safe mode.
+ directories.append(tarinfo)
+ tarinfo = copy.copy(tarinfo)
+ tarinfo.mode = 448 # decimal for oct 0700
+ self.extract(tarinfo, path)
+
+ # Reverse sort directories.
+ if sys.version_info < (2, 4):
+ def sorter(dir1, dir2):
+ return cmp(dir1.name, dir2.name)
+ directories.sort(sorter)
+ directories.reverse()
+ else:
+ directories.sort(key=operator.attrgetter('name'), reverse=True)
+
+ # Set correct owner, mtime and filemode on directories.
+ for tarinfo in directories:
+ dirpath = os.path.join(path, tarinfo.name)
+ try:
+ self.chown(tarinfo, dirpath)
+ self.utime(tarinfo, dirpath)
+ self.chmod(tarinfo, dirpath)
+ except ExtractError:
+ e = sys.exc_info()[1]
+ if self.errorlevel > 1:
+ raise
+ else:
+ self._dbg(1, "tarfile: %s" % e)
+
+
+def _build_install_args(options):
+ """
+ Build the arguments to 'python setup.py install' on the setuptools package
+ """
+ install_args = []
+ if options.user_install:
+ if sys.version_info < (2, 6):
+ log.warn("--user requires Python 2.6 or later")
+ raise SystemExit(1)
+ install_args.append('--user')
+ return install_args
+
+def _parse_args():
+ """
+ Parse the command line for options
+ """
+ parser = optparse.OptionParser()
+ parser.add_option(
+ '--user', dest='user_install', action='store_true', default=False,
+ help='install in user site package (requires Python 2.6 or later)')
+ parser.add_option(
+ '--download-base', dest='download_base', metavar="URL",
+ default=DEFAULT_URL,
+ help='alternative URL from where to download the setuptools package')
+ parser.add_option(
+ '--insecure', dest='downloader_factory', action='store_const',
+ const=lambda: download_file_insecure, default=get_best_downloader,
+ help='Use internal, non-validating downloader'
+ )
+ options, args = parser.parse_args()
+ # positional arguments are ignored
+ return options
+
+def main(version=DEFAULT_VERSION):
+ """Install or upgrade setuptools and EasyInstall"""
+ options = _parse_args()
+ tarball = download_setuptools(download_base=options.download_base,
+ downloader_factory=options.downloader_factory)
+ return _install(tarball, _build_install_args(options))
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/setup.py b/setup.py
index e066ec78..d35c886f 100644
--- a/setup.py
+++ b/setup.py
@@ -2,8 +2,8 @@
try:
from setuptools import setup, find_packages
except ImportError:
- import distribute_setup
- distribute_setup.use_setuptools()
+ import ez_setup
+ ez_setup.use_setuptools()
from setuptools import setup, find_packages
import os
@@ -39,9 +39,6 @@ Among its features are the following:
* Various extensions are available, e.g. for automatic testing of snippets
and inclusion of appropriately formatted docstrings
* Setuptools integration
-
-A development egg can be found `here
-<http://bitbucket.org/birkenfeld/sphinx/get/tip.gz#egg=Sphinx-dev>`_.
'''
requires = ['Pygments>=1.2', 'docutils>=0.7']
@@ -139,7 +136,7 @@ else:
jscatalog = {}
for message in catalog:
- if any(x[0].endswith('.js') for x in message.locations):
+ if any(x[0].endswith(('.js', '.js_t', '.html')) for x in message.locations):
msgid = message.id
if isinstance(msgid, (list, tuple)):
msgid = msgid[0]
diff --git a/sphinx-apidoc.py b/sphinx-apidoc.py
index 31e57487..02bf8b88 100755
--- a/sphinx-apidoc.py
+++ b/sphinx-apidoc.py
@@ -4,7 +4,7 @@
Sphinx - Python documentation toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx-autogen.py b/sphinx-autogen.py
index baf3ed65..ba3f0f45 100755
--- a/sphinx-autogen.py
+++ b/sphinx-autogen.py
@@ -4,7 +4,7 @@
Sphinx - Python documentation toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx-build.py b/sphinx-build.py
index 6737d072..a4eb1a43 100755
--- a/sphinx-build.py
+++ b/sphinx-build.py
@@ -4,12 +4,15 @@
Sphinx - Python documentation toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import sys
if __name__ == '__main__':
- from sphinx import main
- sys.exit(main(sys.argv))
+ from sphinx import main, make_main
+ if sys.argv[1:2] == ['-M']:
+ sys.exit(make_main(sys.argv))
+ else:
+ sys.exit(main(sys.argv))
diff --git a/sphinx-quickstart.py b/sphinx-quickstart.py
index 0ae67adf..5d2b01df 100755
--- a/sphinx-quickstart.py
+++ b/sphinx-quickstart.py
@@ -4,7 +4,7 @@
Sphinx - Python documentation toolchain
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/__init__.py b/sphinx/__init__.py
index c091a677..bb2ccee2 100644
--- a/sphinx/__init__.py
+++ b/sphinx/__init__.py
@@ -5,7 +5,7 @@
The Sphinx documentation toolchain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -15,8 +15,12 @@
import sys
from os import path
-__version__ = '1.2b1'
-__released__ = '1.2b1' # used when Sphinx builds its own docs
+__version__ = '1.2.2+'
+__released__ = '1.2.2' # used when Sphinx builds its own docs
+# version info for better programmatic use
+# possible values for 3rd element: 'alpha', 'beta', 'rc', 'final'
+# 'final' has 0 as the last element
+version_info = (1, 2, 2, 'final', 0)
package_dir = path.abspath(path.dirname(__file__))
@@ -76,5 +80,11 @@ def main(argv=sys.argv):
return cmdline.main(argv)
+def make_main(argv=sys.argv):
+ """Sphinx build "make mode" entry."""
+ from sphinx import make_mode
+ return make_mode.run_make_mode(argv[2:])
+
+
if __name__ == '__main__':
sys.exit(main(sys.argv))
diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py
index d8dca2ce..365efa79 100644
--- a/sphinx/addnodes.py
+++ b/sphinx/addnodes.py
@@ -5,7 +5,7 @@
Additional docutils nodes.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/apidoc.py b/sphinx/apidoc.py
index 500332c3..6c423185 100644
--- a/sphinx/apidoc.py
+++ b/sphinx/apidoc.py
@@ -11,7 +11,7 @@
Copyright 2008 Société des arts technologiques (SAT),
http://www.sat.qc.ca/
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os
@@ -19,6 +19,8 @@ import sys
import optparse
from os import path
+from sphinx.util.osutil import walk
+
# automodule options
if 'SPHINX_APIDOC_OPTIONS' in os.environ:
OPTIONS = os.environ['SPHINX_APIDOC_OPTIONS'].split(',')
@@ -65,7 +67,7 @@ def write_file(name, text, opts):
def format_heading(level, text):
"""Create a heading of <level> [1, 2 or 3 supported]."""
- underlining = ['=', '-', '~', ][level-1] * len(text)
+ underlining = ['=', '-', '~', ][level - 1] * len(text)
return '%s\n%s\n\n' % (text, underlining)
@@ -79,7 +81,10 @@ def format_directive(module, package=None):
def create_module_file(package, module, opts):
"""Build the text of the file and write the file."""
- text = format_heading(1, '%s Module' % module)
+ if not opts.noheadings:
+ text = format_heading(1, '%s module' % module)
+ else:
+ text = ''
#text += format_heading(2, ':mod:`%s` Module' % module)
text += format_directive(module, package)
write_file(makename(package, module), text, opts)
@@ -87,25 +92,9 @@ def create_module_file(package, module, opts):
def create_package_file(root, master_package, subroot, py_files, opts, subs):
"""Build the text of the file and write the file."""
- package = path.split(root)[-1]
- text = format_heading(1, '%s Package' % package)
- # add each module in the package
- for py_file in py_files:
- if shall_skip(path.join(root, py_file)):
- continue
- is_package = py_file == INITPY
- py_file = path.splitext(py_file)[0]
- py_path = makename(subroot, py_file)
- if is_package:
- heading = ':mod:`%s` Package' % package
- else:
- heading = ':mod:`%s` Module' % py_file
- text += format_heading(2, heading)
- text += format_directive(is_package and subroot or py_path,
- master_package)
- text += '\n'
+ text = format_heading(1, '%s package' % makename(master_package, subroot))
- # build a list of directories that are packages (contain an INITPY file)
+ # build a list of directories that are szvpackages (contain an INITPY file)
subs = [sub for sub in subs if path.isfile(path.join(root, sub, INITPY))]
# if there are some package directories, add a TOC for theses subpackages
if subs:
@@ -115,6 +104,38 @@ def create_package_file(root, master_package, subroot, py_files, opts, subs):
text += ' %s.%s\n' % (makename(master_package, subroot), sub)
text += '\n'
+ submods = [path.splitext(sub)[0] for sub in py_files
+ if not shall_skip(path.join(root, sub), opts)
+ and sub != INITPY]
+ if submods:
+ text += format_heading(2, 'Submodules')
+ if opts.separatemodules:
+ text += '.. toctree::\n\n'
+ for submod in submods:
+ modfile = makename(master_package, makename(subroot, submod))
+ text += ' %s\n' % modfile
+
+ # generate separate file for this module
+ if not opts.noheadings:
+ filetext = format_heading(1, '%s module' % modfile)
+ else:
+ filetext = ''
+ filetext += format_directive(makename(subroot, submod),
+ master_package)
+ write_file(modfile, filetext, opts)
+ else:
+ for submod in submods:
+ modfile = makename(master_package, makename(subroot, submod))
+ if not opts.noheadings:
+ text += format_heading(2, '%s module' % modfile)
+ text += format_directive(makename(subroot, submod),
+ master_package)
+ text += '\n'
+ text += '\n'
+
+ text += format_heading(2, 'Module contents')
+ text += format_directive(subroot, master_package)
+
write_file(makename(master_package, subroot), text, opts)
@@ -136,10 +157,17 @@ def create_modules_toc_file(modules, opts, name='modules'):
write_file(name, text, opts)
-def shall_skip(module):
+def shall_skip(module, opts):
"""Check if we want to skip this module."""
# skip it if there is nothing (or just \n or \r\n) in the file
- return path.getsize(module) <= 2
+ if path.getsize(module) <= 2:
+ return True
+ # skip if it has a "private" name and this is selected
+ filename = path.basename(module)
+ if filename != '__init__.py' and filename.startswith('_') and \
+ not opts.includeprivate:
+ return True
+ return False
def recurse_tree(rootpath, excludes, opts):
@@ -147,9 +175,6 @@ def recurse_tree(rootpath, excludes, opts):
Look for every file in the directory tree and create the corresponding
ReST files.
"""
- # use absolute path for root, as relative paths like '../../foo' cause
- # 'if "/." in root ...' to filter out *all* modules otherwise
- rootpath = path.normpath(path.abspath(rootpath))
# check if the base directory is a package and get its name
if INITPY in os.listdir(rootpath):
root_package = rootpath.split(path.sep)[-1]
@@ -159,13 +184,12 @@ def recurse_tree(rootpath, excludes, opts):
toplevels = []
followlinks = getattr(opts, 'followlinks', False)
- for root, subs, files in os.walk(rootpath, followlinks=followlinks):
- if is_excluded(root, excludes):
- del subs[:]
- continue
- # document only Python module files
+ includeprivate = getattr(opts, 'includeprivate', False)
+ for root, subs, files in walk(rootpath, followlinks=followlinks):
+ # document only Python module files (that aren't excluded)
py_files = sorted(f for f in files
- if path.splitext(f)[1] in PY_SUFFIXES)
+ if path.splitext(f)[1] in PY_SUFFIXES and
+ not is_excluded(path.join(root, f), excludes))
is_pkg = INITPY in py_files
if is_pkg:
py_files.remove(INITPY)
@@ -174,13 +198,19 @@ def recurse_tree(rootpath, excludes, opts):
# only accept non-package at toplevel
del subs[:]
continue
- # remove hidden ('.') and private ('_') directories
- subs[:] = sorted(sub for sub in subs if sub[0] not in ['.', '_'])
+ # remove hidden ('.') and private ('_') directories, as well as
+ # excluded dirs
+ if includeprivate:
+ exclude_prefixes = ('.',)
+ else:
+ exclude_prefixes = ('.', '_')
+ subs[:] = sorted(sub for sub in subs if not sub.startswith(exclude_prefixes)
+ and not is_excluded(path.join(root, sub), excludes))
if is_pkg:
# we are in a package with something to document
if subs or len(py_files) > 1 or not \
- shall_skip(path.join(root, INITPY)):
+ shall_skip(path.join(root, INITPY), opts):
subpackage = root[len(rootpath):].lstrip(path.sep).\
replace(path.sep, '.')
create_package_file(root, root_package, subpackage,
@@ -190,7 +220,7 @@ def recurse_tree(rootpath, excludes, opts):
# if we are at the root level, we don't require it to be a package
assert root == rootpath and root_package is None
for py_file in py_files:
- if not shall_skip(path.join(rootpath, py_file)):
+ if not shall_skip(path.join(rootpath, py_file), opts):
module = path.splitext(py_file)[0]
create_module_file(root_package, module, opts)
toplevels.append(module)
@@ -199,47 +229,35 @@ def recurse_tree(rootpath, excludes, opts):
def normalize_excludes(rootpath, excludes):
- """
- Normalize the excluded directory list:
- * must be either an absolute path or start with rootpath,
- * otherwise it is joined with rootpath
- * with trailing slash
- """
- f_excludes = []
- for exclude in excludes:
- if not path.isabs(exclude) and not exclude.startswith(rootpath):
- exclude = path.join(rootpath, exclude)
- f_excludes.append(path.normpath(exclude) + path.sep)
- return f_excludes
+ """Normalize the excluded directory list."""
+ return [path.normpath(path.abspath(exclude)) for exclude in excludes]
def is_excluded(root, excludes):
- """
- Check if the directory is in the exclude list.
+ """Check if the directory is in the exclude list.
Note: by having trailing slashes, we avoid common prefix issues, like
e.g. an exlude "foo" also accidentally excluding "foobar".
"""
- sep = path.sep
- if not root.endswith(sep):
- root += sep
+ root = path.normpath(root)
for exclude in excludes:
- if root.startswith(exclude):
+ if root == exclude:
return True
return False
def main(argv=sys.argv):
- """
- Parse and check the command line arguments.
- """
+ """Parse and check the command line arguments."""
parser = optparse.OptionParser(
usage="""\
-usage: %prog [options] -o <output_path> <module_path> [exclude_paths, ...]
+usage: %prog [options] -o <output_path> <module_path> [exclude_path, ...]
Look recursively in <module_path> for Python modules and packages and create
one reST file with automodule directives per package in the <output_path>.
+The <exclude_path>s can be files and/or directories that will be excluded
+from generation.
+
Note: By default this script will not overwrite already created files.""")
parser.add_option('-o', '--output-dir', action='store', dest='destdir',
@@ -248,15 +266,26 @@ Note: By default this script will not overwrite already created files.""")
help='Maximum depth of submodules to show in the TOC '
'(default: 4)', type='int', default=4)
parser.add_option('-f', '--force', action='store_true', dest='force',
- help='Overwrite all files')
+ help='Overwrite existing 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('-e', '--separate', action='store_true',
+ dest='separatemodules',
+ help='Put documentation for each module on its own page')
+ parser.add_option('-P', '--private', action='store_true',
+ dest='includeprivate',
+ help='Include "_private" modules')
parser.add_option('-T', '--no-toc', action='store_true', dest='notoc',
help='Don\'t create a table of contents file')
+ parser.add_option('-E', '--no-headings', action='store_true',
+ dest='noheadings',
+ help='Don\'t create headings for the module/package '
+ 'packages (e.g. when the docstrings already contain '
+ 'them)')
parser.add_option('-s', '--suffix', action='store', dest='suffix',
help='file suffix (default: rst)', default='rst')
parser.add_option('-F', '--full', action='store_true', dest='full',
@@ -290,6 +319,7 @@ Note: By default this script will not overwrite already created files.""")
if not path.isdir(opts.destdir):
if not opts.dryrun:
os.makedirs(opts.destdir)
+ rootpath = path.normpath(path.abspath(rootpath))
excludes = normalize_excludes(rootpath, excludes)
modules = recurse_tree(rootpath, excludes, opts)
if opts.full:
diff --git a/sphinx/application.py b/sphinx/application.py
index 18a25bd7..9030adf9 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -7,7 +7,7 @@
Gracefully adapted from the TextPress system by Armin.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -152,10 +152,11 @@ class Sphinx(object):
self.translator, has_translation = locale.init(locale_dirs,
self.config.language)
if self.config.language is not None:
- if has_translation:
+ if has_translation or self.config.language == 'en':
+ # "en" never needs to be translated
self.info('done')
else:
- self.info('locale not available')
+ self.info('not available for built-in messages')
def _init_env(self, freshenv):
if freshenv:
@@ -234,6 +235,19 @@ class Sphinx(object):
wfile.flush()
def warn(self, message, location=None, prefix='WARNING: '):
+ """Emit a warning.
+
+ If *location* is given, it should either be a tuple of (docname, lineno)
+ or a string describing the location of the warning as well as possible.
+
+ *prefix* usually should not be changed.
+
+ .. note::
+
+ For warnings emitted during parsing, you should use
+ :meth:`.BuildEnvironment.warn` since that will collect all
+ warnings during parsing for later output.
+ """
if isinstance(location, tuple):
docname, lineno = location
if docname:
@@ -248,9 +262,22 @@ class Sphinx(object):
self._log(warntext, self._warning, True)
def info(self, message='', nonl=False):
+ """Emit an informational message.
+
+ If *nonl* is true, don't emit a newline at the end (which implies that
+ more info output will follow soon.)
+ """
self._log(message, self._status, nonl)
def verbose(self, message, *args, **kwargs):
+ """Emit a verbose informational message.
+
+ The message will only be emitted for verbosity levels >= 1 (i.e. at
+ least one ``-v`` option was given).
+
+ The message can contain %-style interpolation placeholders, which is
+ formatted with either the ``*args`` or ``**kwargs`` when output.
+ """
if self.verbosity < 1:
return
if args or kwargs:
@@ -258,6 +285,14 @@ class Sphinx(object):
self._log(message, self._status)
def debug(self, message, *args, **kwargs):
+ """Emit a debug-level informational message.
+
+ The message will only be emitted for verbosity levels >= 2 (i.e. at
+ least two ``-v`` options were given).
+
+ The message can contain %-style interpolation placeholders, which is
+ formatted with either the ``*args`` or ``**kwargs`` when output.
+ """
if self.verbosity < 2:
return
if args or kwargs:
@@ -265,6 +300,14 @@ class Sphinx(object):
self._log(darkgray(message), self._status)
def debug2(self, message, *args, **kwargs):
+ """Emit a lowlevel debug-level informational message.
+
+ The message will only be emitted for verbosity level 3 (i.e. three
+ ``-v`` options were given).
+
+ The message can contain %-style interpolation placeholders, which is
+ formatted with either the ``*args`` or ``**kwargs`` when output.
+ """
if self.verbosity < 3:
return
if args or kwargs:
@@ -346,7 +389,11 @@ class Sphinx(object):
event.pop(listener_id, None)
def emit(self, event, *args):
- self.debug2('[app] emitting event: %r%s', event, repr(args)[:100])
+ try:
+ self.debug2('[app] emitting event: %r%s', event, repr(args)[:100])
+ except Exception: # not every object likes to be repr()'d (think
+ # random stuff coming via autodoc)
+ pass
results = []
if event in self._listeners:
for _, callback in self._listeners[event].iteritems():
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index c153d121..44c76faf 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -5,7 +5,7 @@
Builder superclass for all builders.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -265,6 +265,12 @@ class Builder(object):
self.info(bold('no targets are out of date.'))
return
+ # filter "docnames" (list of outdated files) by the updated
+ # found_docs of the environment; this will remove docs that
+ # have since been removed
+ if docnames and docnames != ['__all__']:
+ docnames = set(docnames) & self.env.found_docs
+
# another indirection to support builders that don't build
# files individually
self.write(docnames, list(updated_docnames), method)
@@ -289,6 +295,7 @@ class Builder(object):
docnames = set(build_docnames) | set(updated_docnames)
else:
docnames = set(build_docnames)
+ self.app.debug('docnames to write: %s', ', '.join(sorted(docnames)))
# add all toctree-containing files that may have changed
for docname in list(docnames):
diff --git a/sphinx/builders/changes.py b/sphinx/builders/changes.py
index 05e7166e..3a52c713 100644
--- a/sphinx/builders/changes.py
+++ b/sphinx/builders/changes.py
@@ -5,7 +5,7 @@
Changelog builder.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/builders/devhelp.py b/sphinx/builders/devhelp.py
index 81d2e6ce..61482fd0 100644
--- a/sphinx/builders/devhelp.py
+++ b/sphinx/builders/devhelp.py
@@ -7,7 +7,7 @@
.. _Devhelp: http://live.gnome.org/devhelp
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from __future__ import absolute_import
diff --git a/sphinx/builders/epub.py b/sphinx/builders/epub.py
index 1dfcc704..a73679c0 100644
--- a/sphinx/builders/epub.py
+++ b/sphinx/builders/epub.py
@@ -6,7 +6,7 @@
Build epub files.
Originally derived from qthelp.py.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py
index 2bee3e64..250bef8c 100644
--- a/sphinx/builders/gettext.py
+++ b/sphinx/builders/gettext.py
@@ -5,10 +5,12 @@
The MessageCatalogBuilder class.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
+from __future__ import with_statement
+
from os import path, walk
from codecs import open
from time import time
@@ -53,6 +55,10 @@ class Catalog(object):
self.metadata = {} # msgid -> file, line, uid
def add(self, msg, origin):
+ if not hasattr(origin, 'uid'):
+ # Nodes that are replicated like todo don't have a uid,
+ # however i18n is also unnecessary.
+ return
if msg not in self.metadata: # faster lookup in hash
self.messages.append(msg)
self.metadata[msg] = []
@@ -108,14 +114,15 @@ class I18nBuilder(Builder):
catalog.add(m, node)
+# determine tzoffset once to remain unaffected by DST change during build
timestamp = time()
+tzdelta = datetime.fromtimestamp(timestamp) - \
+ datetime.utcfromtimestamp(timestamp)
class LocalTimeZone(tzinfo):
def __init__(self, *args, **kw):
super(LocalTimeZone, self).__init__(*args, **kw)
- tzdelta = datetime.fromtimestamp(timestamp) - \
- datetime.utcfromtimestamp(timestamp)
self.tzdelta = tzdelta
def utcoffset(self, dt):
@@ -159,7 +166,8 @@ class MessageCatalogBuilder(I18nBuilder):
for template in self.status_iterator(files,
'reading templates... ', purple, len(files)):
- context = open(template, 'r', encoding='utf-8').read()
+ with open(template, 'r', encoding='utf-8') as f:
+ context = f.read()
for line, meth, msg in extract_translations(context):
origin = MsgOrigin(template, line)
self.catalogs['sphinx'].add(msg, origin)
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index ca8a4acd..9c039e3a 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -5,7 +5,7 @@
Several HTML builders.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -480,6 +480,7 @@ class StandaloneHTMLBuilder(Builder):
self.copy_image_files()
self.copy_download_files()
self.copy_static_files()
+ self.copy_extra_files()
self.write_buildinfo()
# dump the search index
@@ -596,17 +597,33 @@ class StandaloneHTMLBuilder(Builder):
if self.config.html_logo:
logobase = path.basename(self.config.html_logo)
logotarget = path.join(self.outdir, '_static', logobase)
- if not path.isfile(logotarget):
+ if not path.isfile(path.join(self.confdir, self.config.html_logo)):
+ self.warn('logo file %r does not exist' % self.config.html_logo)
+ elif not path.isfile(logotarget):
copyfile(path.join(self.confdir, self.config.html_logo),
logotarget)
if self.config.html_favicon:
iconbase = path.basename(self.config.html_favicon)
icontarget = path.join(self.outdir, '_static', iconbase)
- if not path.isfile(icontarget):
+ if not path.isfile(path.join(self.confdir, self.config.html_favicon)):
+ self.warn('favicon file %r does not exist' % self.config.html_favicon)
+ elif not path.isfile(icontarget):
copyfile(path.join(self.confdir, self.config.html_favicon),
icontarget)
self.info('done')
+ def copy_extra_files(self):
+ # copy html_extra_path files
+ self.info(bold('copying extra files... '), nonl=True)
+ extraentries = [path.join(self.confdir, epath)
+ for epath in self.config.html_extra_path]
+ for entry in extraentries:
+ if not path.exists(entry):
+ self.warn('html_extra_path entry %r does not exist' % entry)
+ continue
+ copy_static_entry(entry, self.outdir, self)
+ self.info('done')
+
def write_buildinfo(self):
# write build info file
fp = open(path.join(self.outdir, '.buildinfo'), 'w')
@@ -962,6 +979,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
self.copy_image_files()
self.copy_download_files()
self.copy_static_files()
+ self.copy_extra_files()
self.write_buildinfo()
self.dump_inventory()
diff --git a/sphinx/builders/htmlhelp.py b/sphinx/builders/htmlhelp.py
index 605012f8..77fcd438 100644
--- a/sphinx/builders/htmlhelp.py
+++ b/sphinx/builders/htmlhelp.py
@@ -6,7 +6,7 @@
Build HTML help support files.
Parts adapted from Python's Doc/tools/prechm.py.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -173,7 +173,7 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder):
embedded = True
lcid = 0x409
- encoding = 'iso8859_1'
+ encoding = 'cp1252'
def init(self):
StandaloneHTMLBuilder.init(self)
diff --git a/sphinx/builders/latex.py b/sphinx/builders/latex.py
index 490188f2..f5453305 100644
--- a/sphinx/builders/latex.py
+++ b/sphinx/builders/latex.py
@@ -5,7 +5,7 @@
LaTeX builder.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py
index c567401c..652b7b55 100644
--- a/sphinx/builders/linkcheck.py
+++ b/sphinx/builders/linkcheck.py
@@ -5,7 +5,7 @@
The CheckExternalLinksBuilder class.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -15,17 +15,30 @@ import Queue
import socket
import threading
from os import path
-from urllib2 import build_opener, unquote, Request
+from urllib2 import build_opener, unquote, Request, \
+ HTTPError, HTTPRedirectHandler
from HTMLParser import HTMLParser, HTMLParseError
from docutils import nodes
from sphinx.builders import Builder
-from sphinx.util.console import purple, red, darkgreen, darkgray
+from sphinx.util.console import purple, red, darkgreen, darkgray, \
+ darkred, turquoise
+
+
+class RedirectHandler(HTTPRedirectHandler):
+ """A RedirectHandler that records the redirect code we got."""
+
+ def redirect_request(self, req, fp, code, msg, headers, newurl):
+ new_req = HTTPRedirectHandler.redirect_request(self, req, fp, code,
+ msg, headers, newurl)
+ req.redirect_code = code
+ return new_req
# create an opener that will simulate a browser user-agent
-opener = build_opener()
-opener.addheaders = [('User-agent', 'Mozilla/5.0')]
+opener = build_opener(RedirectHandler)
+opener.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux x86_64; rv:25.0) '
+ 'Gecko/20100101 Firefox/25.0')]
class HeadRequest(Request):
@@ -104,18 +117,18 @@ class CheckExternalLinksBuilder(Builder):
# 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:':
- return 'unchecked', ''
+ return 'unchecked', '', 0
elif not (uri[0:5] == 'http:' or uri[0:6] == 'https:'):
- return 'local', ''
+ return 'local', '', 0
elif uri in self.good:
- return 'working', ''
+ return 'working', '', 0
elif uri in self.broken:
- return 'broken', self.broken[uri]
+ return 'broken', self.broken[uri], 0
elif uri in self.redirected:
- return 'redirected', self.redirected[uri]
+ return 'redirected', self.redirected[uri][0], self.redirected[uri][1]
for rex in self.to_ignore:
if rex.match(uri):
- return 'ignored', ''
+ return 'ignored', '', 0
if '#' in uri:
req_url, hash = uri.split('#', 1)
@@ -127,61 +140,82 @@ class CheckExternalLinksBuilder(Builder):
try:
if hash and self.app.config.linkcheck_anchors:
# Read the whole document and see if #hash exists
- f = opener.open(Request(req_url), **kwargs)
+ req = Request(req_url)
+ f = opener.open(req, **kwargs)
found = check_anchor(f, unquote(hash))
f.close()
if not found:
raise Exception("Anchor '%s' not found" % hash)
else:
- f = opener.open(HeadRequest(req_url), **kwargs)
- f.close()
+ try:
+ # try a HEAD request, which should be easier on
+ # the server and the network
+ req = HeadRequest(req_url)
+ f = opener.open(req, **kwargs)
+ f.close()
+ except HTTPError, err:
+ if err.code != 405:
+ raise
+ # retry with GET if that fails, some servers
+ # don't like HEAD requests and reply with 405
+ req = Request(req_url)
+ f = opener.open(req, **kwargs)
+ f.close()
except Exception, err:
self.broken[uri] = str(err)
- return 'broken', str(err)
+ return 'broken', str(err), 0
if f.url.rstrip('/') == req_url.rstrip('/'):
self.good.add(uri)
- return 'working', 'new'
+ return 'working', 'new', 0
else:
new_url = f.url
if hash:
new_url += '#' + hash
-
- self.redirected[uri] = new_url
- return 'redirected', new_url
+ code = getattr(req, 'redirect_code', 0)
+ self.redirected[uri] = (new_url, code)
+ return 'redirected', new_url, code
while True:
uri, docname, lineno = self.wqueue.get()
if uri is None:
break
- status, info = check()
- self.rqueue.put((uri, docname, lineno, status, info))
+ status, info, code = check()
+ self.rqueue.put((uri, docname, lineno, status, info, code))
def process_result(self, result):
- uri, docname, lineno, status, info = result
+ uri, docname, lineno, status, info, code = result
if status == 'unchecked':
return
if status == 'working' and info != 'new':
return
if lineno:
- self.info('(line %3d) ' % lineno, nonl=1)
+ self.info('(line %4d) ' % lineno, nonl=1)
if status == 'ignored':
- self.info(uri + ' - ' + darkgray('ignored'))
+ self.info(darkgray('-ignored- ') + uri)
elif status == 'local':
- self.info(uri + ' - ' + darkgray('local'))
+ self.info(darkgray('-local- ') + uri)
self.write_entry('local', docname, lineno, uri)
elif status == 'working':
- self.info(uri + ' - ' + darkgreen('working'))
+ self.info(darkgreen('ok ') + uri)
elif status == 'broken':
- self.info(uri + ' - ' + red('broken: ') + info)
+ self.info(red('broken ') + uri + red(' - ' + info))
self.write_entry('broken', docname, lineno, uri + ': ' + info)
if self.app.quiet:
self.warn('broken link: %s' % uri,
'%s:%s' % (self.env.doc2path(docname), lineno))
elif status == 'redirected':
- self.info(uri + ' - ' + purple('redirected') + ' to ' + info)
- self.write_entry('redirected', docname, lineno, uri + ' to ' + info)
+ text, color = {
+ 301: ('permanently', darkred),
+ 302: ('with Found', purple),
+ 303: ('with See Other', purple),
+ 307: ('temporarily', turquoise),
+ 0: ('with unknown code', purple),
+ }[code]
+ self.write_entry('redirected ' + text, docname, lineno,
+ uri + ' to ' + info)
+ self.info(color('redirect ') + uri + color(' - ' + text + ' to ' + info))
def get_target_uri(self, docname, typ=None):
return ''
diff --git a/sphinx/builders/manpage.py b/sphinx/builders/manpage.py
index 7783f8b8..4de82a75 100644
--- a/sphinx/builders/manpage.py
+++ b/sphinx/builders/manpage.py
@@ -5,7 +5,7 @@
Manual pages builder.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/builders/qthelp.py b/sphinx/builders/qthelp.py
index ce07315d..1d462841 100644
--- a/sphinx/builders/qthelp.py
+++ b/sphinx/builders/qthelp.py
@@ -5,7 +5,7 @@
Build input files for the Qt collection generator.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/builders/texinfo.py b/sphinx/builders/texinfo.py
index 9510c150..39499e66 100644
--- a/sphinx/builders/texinfo.py
+++ b/sphinx/builders/texinfo.py
@@ -5,7 +5,7 @@
Texinfo builder.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/builders/text.py b/sphinx/builders/text.py
index 4b73167b..0aeeb5f4 100644
--- a/sphinx/builders/text.py
+++ b/sphinx/builders/text.py
@@ -5,7 +5,7 @@
Plain-text Sphinx builder.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -54,6 +54,7 @@ class TextBuilder(Builder):
self.writer = TextWriter(self)
def write_doc(self, docname, doctree):
+ self.current_docname = docname
destination = StringOutput(encoding='utf-8')
self.writer.write(doctree, destination)
outfilename = path.join(self.outdir, os_path(docname) + self.out_suffix)
diff --git a/sphinx/builders/websupport.py b/sphinx/builders/websupport.py
index f3396a36..6cf98102 100644
--- a/sphinx/builders/websupport.py
+++ b/sphinx/builders/websupport.py
@@ -5,7 +5,7 @@
Builder for the web support package.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py
index 19147fb1..9a9aec96 100644
--- a/sphinx/builders/xml.py
+++ b/sphinx/builders/xml.py
@@ -5,7 +5,7 @@
Docutils-native XML and pseudo-XML builders.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/cmdline.py b/sphinx/cmdline.py
index aee75418..ec24d902 100644
--- a/sphinx/cmdline.py
+++ b/sphinx/cmdline.py
@@ -5,7 +5,7 @@
sphinx-build command-line handling.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -22,17 +22,10 @@ from sphinx.errors import SphinxError
from sphinx.application import Sphinx
from sphinx.util import Tee, format_exception_cut_frames, save_traceback
from sphinx.util.console import red, nocolor, color_terminal
-from sphinx.util.osutil import fs_encoding
+from sphinx.util.osutil import abspath, fs_encoding
from sphinx.util.pycompat import terminal_safe, bytes
-def abspath(pathdir):
- pathdir = path.abspath(pathdir)
- if isinstance(pathdir, bytes):
- pathdir = pathdir.decode(fs_encoding)
- return pathdir
-
-
def usage(argv, msg=None):
if msg:
print >>sys.stderr, msg
@@ -49,6 +42,7 @@ General options
-d <path> path for the cached environment and doctree files
(default: outdir/.doctrees)
-j <N> build in parallel with N processes where possible
+-M <builder> "make" mode -- used by Makefile, like "sphinx-build -M html"
Build configuration options
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -89,19 +83,28 @@ def main(argv):
# Windows' poor cmd box doesn't understand ANSI sequences
nocolor()
+ # parse options
try:
opts, args = getopt.getopt(argv[1:], 'ab:t:d:c:CD:A:nNEqQWw:PThvj:',
['help', 'version'])
- allopts = set(opt[0] for opt in opts)
- if '-h' in allopts or '--help' in allopts:
- usage(argv)
- print >>sys.stderr
- print >>sys.stderr, 'For more information, see '\
- '<http://sphinx-doc.org/>.'
- return 0
- if '--version' in allopts:
- print 'Sphinx (sphinx-build) %s' % __version__
- return 0
+ except getopt.error, err:
+ usage(argv, 'Error: %s' % err)
+ return 1
+
+ # handle basic options
+ allopts = set(opt[0] for opt in opts)
+ # help and version options
+ if '-h' in allopts or '--help' in allopts:
+ usage(argv)
+ print >>sys.stderr
+ print >>sys.stderr, 'For more information, see <http://sphinx-doc.org/>.'
+ return 0
+ if '--version' in allopts:
+ print 'Sphinx (sphinx-build) %s' % __version__
+ return 0
+
+ # get paths (first and second positional argument)
+ try:
srcdir = confdir = abspath(args[0])
if not path.isdir(srcdir):
print >>sys.stderr, 'Error: Cannot find source directory `%s\'.' % (
@@ -110,16 +113,19 @@ def main(argv):
if not path.isfile(path.join(srcdir, 'conf.py')) and \
'-c' not in allopts and '-C' not in allopts:
print >>sys.stderr, ('Error: Source directory doesn\'t '
- 'contain conf.py file.')
+ 'contain a conf.py file.')
return 1
outdir = abspath(args[1])
- except getopt.error, err:
- usage(argv, 'Error: %s' % err)
- return 1
except IndexError:
usage(argv, 'Error: Insufficient arguments.')
return 1
+ except UnicodeError:
+ print >>sys.stderr, (
+ 'Error: Multibyte filename not supported on this filesystem '
+ 'encoding (%r).' % fs_encoding)
+ return 1
+ # handle remaining filename arguments
filenames = args[2:]
err = 0
for filename in filenames:
@@ -240,6 +246,7 @@ def main(argv):
print >>status, 'Making output directory...'
os.makedirs(outdir)
+ app = None
try:
app = Sphinx(srcdir, confdir, outdir, doctreedir, buildername,
confoverrides, status, warning, freshenv,
@@ -266,10 +273,17 @@ def main(argv):
elif isinstance(err, SphinxError):
print >>error, red('%s:' % err.category)
print >>error, terminal_safe(unicode(err))
+ elif isinstance(err, UnicodeError):
+ print >>error, red('Encoding error:')
+ print >>error, terminal_safe(unicode(err))
+ tbpath = save_traceback(app)
+ print >>error, red('The full traceback has been saved '
+ 'in %s, if you want to report the '
+ 'issue to the developers.' % tbpath)
else:
print >>error, red('Exception occurred:')
print >>error, format_exception_cut_frames().rstrip()
- tbpath = save_traceback()
+ tbpath = save_traceback(app)
print >>error, red('The full traceback has been saved '
'in %s, if you want to report the '
'issue to the developers.' % tbpath)
@@ -277,8 +291,6 @@ def main(argv):
'error, so that a better error message '
'can be provided next time.')
print >>error, (
- 'Either send bugs to the mailing list at '
- '<http://groups.google.com/group/sphinx-users/>,\n'
- 'or report them in the tracker at '
- '<http://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks!')
+ 'A bug report can be filed in the tracker at '
+ '<https://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks!')
return 1
diff --git a/sphinx/config.py b/sphinx/config.py
index a5901211..a4fc234a 100644
--- a/sphinx/config.py
+++ b/sphinx/config.py
@@ -5,7 +5,7 @@
Build configuration file handling.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -72,7 +72,7 @@ class Config(object):
primary_domain = ('py', 'env'),
needs_sphinx = (None, None),
nitpicky = (False, 'env'),
- nitpick_ignore = ([], 'env'),
+ nitpick_ignore = ([], 'html'),
# HTML options
html_theme = ('default', 'html'),
@@ -86,6 +86,7 @@ class Config(object):
html_logo = (None, 'html'),
html_favicon = (None, 'html'),
html_static_path = ([], 'html'),
+ html_extra_path = ([], 'html'),
# the real default is locale-dependent
html_last_updated_fmt = (None, 'html'),
html_use_smartypants = (True, 'html'),
@@ -213,6 +214,8 @@ class Config(object):
self.overrides = overrides
self.values = Config.config_values.copy()
config = {}
+ if "extensions" in overrides:
+ config["extensions"] = overrides["extensions"]
if dirname is not None:
config_file = path.join(dirname, filename)
config['__file__'] = config_file
diff --git a/sphinx/directives/__init__.py b/sphinx/directives/__init__.py
index 388522dc..250a013e 100644
--- a/sphinx/directives/__init__.py
+++ b/sphinx/directives/__init__.py
@@ -5,14 +5,13 @@
Handlers for additional ReST directives.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re
from docutils.parsers.rst import Directive, directives
-from docutils.parsers.rst.directives import images
from sphinx import addnodes
from sphinx.util.docfields import DocFieldTransformer
@@ -22,15 +21,6 @@ from sphinx.directives.code import *
from sphinx.directives.other import *
-# allow units for the figure's "figwidth"
-try:
- images.Figure.option_spec['figwidth'] = \
- directives.length_or_percentage_or_unitless
-except AttributeError:
- images.figure.options['figwidth'] = \
- directives.length_or_percentage_or_unitless
-
-
# RE to strip backslash escapes
nl_escape_re = re.compile(r'\\\n')
strip_backslash_re = re.compile(r'\\(.)')
@@ -149,11 +139,12 @@ class ObjectDescription(Directive):
signode.clear()
signode += addnodes.desc_name(sig, sig)
continue # we don't want an index entry here
- if not noindex and name not in self.names:
- # only add target and index entry if this is the first
- # description of the object with this name in this desc block
+ if name not in self.names:
self.names.append(name)
- self.add_target_and_index(name, sig, signode)
+ if not noindex:
+ # only add target and index entry if this is the first
+ # description of the object with this name in this desc block
+ self.add_target_and_index(name, sig, signode)
contentnode = addnodes.desc_content()
node.append(contentnode)
diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py
index 4d43e5ff..9bfac5a6 100644
--- a/sphinx/directives/code.py
+++ b/sphinx/directives/code.py
@@ -3,7 +3,7 @@
sphinx.directives.code
~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py
index e8955d16..d28c00fb 100644
--- a/sphinx/directives/other.py
+++ b/sphinx/directives/other.py
@@ -3,7 +3,7 @@
sphinx.directives.other
~~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -208,9 +208,11 @@ class VersionChange(Directive):
content.line = node[0].line
content += node[0].children
node[0].replace_self(nodes.paragraph('', '', content))
- node[0].insert(0, nodes.inline('', '%s: ' % text))
+ node[0].insert(0, nodes.inline('', '%s: ' % text,
+ classes=['versionmodified']))
else:
- para = nodes.paragraph('', '', nodes.inline('', '%s.' % text))
+ para = nodes.paragraph('', '',
+ nodes.inline('', '%s.' % text, classes=['versionmodified']))
node.append(para)
env = self.state.document.settings.env
# XXX should record node.source as well
diff --git a/sphinx/domains/__init__.py b/sphinx/domains/__init__.py
index 2a0e985f..200fd515 100644
--- a/sphinx/domains/__init__.py
+++ b/sphinx/domains/__init__.py
@@ -6,7 +6,7 @@
Support for domains, which are groupings of description directives
and roles describing e.g. constructs of one programming language.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/domains/c.py b/sphinx/domains/c.py
index f9f2e664..fb38cfe8 100644
--- a/sphinx/domains/c.py
+++ b/sphinx/domains/c.py
@@ -5,7 +5,7 @@
The C language domain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -59,7 +59,12 @@ class CObject(ObjectDescription):
# These C types aren't described anywhere, so don't try to create
# a cross-reference to them
- stopwords = set(('const', 'void', 'char', 'int', 'long', 'FILE', 'struct'))
+ stopwords = set((
+ 'const', 'void', 'char', 'wchar_t', 'int', 'short',
+ 'long', 'float', 'double', 'unsigned', 'signed', 'FILE',
+ 'clock_t', 'time_t', 'ptrdiff_t', 'size_t', 'ssize_t',
+ 'struct', '_Bool',
+ ))
def _parse_type(self, node, ctype):
# add cross-ref nodes for all words
@@ -151,10 +156,12 @@ class CObject(ObjectDescription):
return ''
def add_target_and_index(self, name, sig, signode):
- # note target
- if name not in self.state.document.ids:
- signode['names'].append(name)
- signode['ids'].append(name)
+ # for C API items we add a prefix since names are usually not qualified
+ # by a module name and so easily clash with e.g. section titles
+ targetname = 'c.' + name
+ if targetname not in self.state.document.ids:
+ signode['names'].append(targetname)
+ signode['ids'].append(targetname)
signode['first'] = (not self.names)
self.state.document.note_explicit_target(signode)
inv = self.env.domaindata['c']['objects']
@@ -167,7 +174,8 @@ class CObject(ObjectDescription):
indextext = self.get_index_text(name)
if indextext:
- self.indexnode['entries'].append(('single', indextext, name, ''))
+ self.indexnode['entries'].append(('single', indextext,
+ targetname, ''))
def before_content(self):
self.typename_set = False
@@ -237,9 +245,9 @@ class CDomain(Domain):
if target not in self.data['objects']:
return None
obj = self.data['objects'][target]
- return make_refnode(builder, fromdocname, obj[0], target,
+ return make_refnode(builder, fromdocname, obj[0], 'c.' + target,
contnode, target)
def get_objects(self):
for refname, (docname, type) in self.data['objects'].iteritems():
- yield (refname, refname, type, docname, refname, 1)
+ yield (refname, refname, type, docname, 'c.' + refname, 1)
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py
index 9307d3a4..cb64a60d 100644
--- a/sphinx/domains/cpp.py
+++ b/sphinx/domains/cpp.py
@@ -5,7 +5,7 @@
The C++ language domain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -448,15 +448,21 @@ class MemberObjDefExpr(NamedDefExpr):
class FuncDefExpr(NamedDefExpr):
def __init__(self, name, visibility, static, explicit, constexpr, rv,
- signature, const, noexcept, pure_virtual):
+ signature, **kwargs):
NamedDefExpr.__init__(self, name, visibility, static)
self.rv = rv
self.signature = signature
self.explicit = explicit
self.constexpr = constexpr
- self.const = const
- self.noexcept = noexcept
- self.pure_virtual = pure_virtual
+ self.const = kwargs.get('const', False)
+ self.volatile = kwargs.get('volatile', False)
+ self.noexcept = kwargs.get('noexcept', False)
+ self.override = kwargs.get('override', False)
+ self.rvalue_this = kwargs.get('rvalue_this', False)
+ self.lvalue_this = kwargs.get('lvalue_this', False)
+ self.pure_virtual = kwargs.get('pure_virtual', False)
+ self.delete = kwargs.get('delete', False)
+ self.default = kwargs.get('default', False)
def get_id(self):
return u'%s%s%s%s' % (
@@ -479,10 +485,22 @@ class FuncDefExpr(NamedDefExpr):
map(unicode, self.signature))))
if self.const:
buf.append(u'const')
+ if self.volatile:
+ buf.append(u'volatile')
+ if self.rvalue_this:
+ buf.append(u'&&')
+ if self.lvalue_this:
+ buf.append(u'&')
if self.noexcept:
buf.append(u'noexcept')
+ if self.override:
+ buf.append(u'override')
if self.pure_virtual:
buf.append(u'= 0')
+ if self.default:
+ buf.append(u'= default')
+ if self.delete:
+ buf.append(u'= delete')
return u' '.join(buf)
@@ -519,6 +537,7 @@ class DefinitionParser(object):
'mutable': None,
'const': None,
'typename': None,
+ 'struct': None,
'unsigned': set(('char', 'short', 'int', 'long')),
'signed': set(('char', 'short', 'int', 'long')),
'short': set(('int',)),
@@ -835,20 +854,46 @@ class DefinitionParser(object):
args.append(ArgumentDefExpr(argtype, argname,
type_suffixes, default))
self.skip_ws()
- const = self.skip_word_and_ws('const')
- noexcept = self.skip_word_and_ws('noexcept')
+ attributes = dict(
+ signature=args,
+ const=self.skip_word_and_ws('const'),
+ volatile=self.skip_word_and_ws('volatile'),
+ noexcept=self.skip_word_and_ws('noexcept'),
+ override=self.skip_word_and_ws('override'),
+ pure_virtual=False,
+ lvalue_this=False,
+ rvalue_this=False,
+ delete=False,
+ default=False)
+
+ if self.skip_string('&&'):
+ attributes['rvalue_this'] = True
+ if self.skip_string('&'):
+ attributes['lvalue_this'] = True
+
+ if attributes['lvalue_this'] and attributes['rvalue_this']:
+ self.fail('rvalue reference for *this specifier must be one of'
+ '"&&" or "&"')
+
if self.skip_string('='):
self.skip_ws()
- if not (self.skip_string('0') or \
- self.skip_word('NULL') or \
- self.skip_word('nullptr')):
- self.fail('pure virtual functions must be defined with '
- 'either 0, NULL or nullptr, other macros are '
- 'not allowed')
- pure_virtual = True
- else:
- pure_virtual = False
- return args, const, noexcept, pure_virtual
+ if self.skip_string('0'):
+ attributes['pure_virtual'] = True
+ return attributes
+ if self.skip_word('NULL') or self.skip_word('nullptr'):
+ attributes['pure_virtual'] = True
+ return attributes
+ if self.skip_word('delete'):
+ attributes['delete'] = True
+ return attributes
+ if self.skip_word('default'):
+ attributes['default'] = True
+ return attributes
+
+ self.fail('functions must be defined with '
+ 'either 0, NULL, nullptr, default or delete, other'
+ 'macros are not allowed')
+ return attributes
def _parse_visibility_static(self):
visibility = 'public'
@@ -900,7 +945,7 @@ class DefinitionParser(object):
else:
name = self._parse_type()
return FuncDefExpr(name, visibility, static, explicit, constexpr, rv,
- *self._parse_signature())
+ **self._parse_signature())
def parse_class(self):
visibility, static = self._parse_visibility_static()
diff --git a/sphinx/domains/javascript.py b/sphinx/domains/javascript.py
index 862077b5..9b7777f4 100644
--- a/sphinx/domains/javascript.py
+++ b/sphinx/domains/javascript.py
@@ -5,7 +5,7 @@
The JavaScript domain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py
index 89b7fded..8943198f 100644
--- a/sphinx/domains/python.py
+++ b/sphinx/domains/python.py
@@ -5,7 +5,7 @@
The Python domain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -559,8 +559,8 @@ class PythonDomain(Domain):
object_types = {
'function': ObjType(l_('function'), 'func', 'obj'),
'data': ObjType(l_('data'), 'data', 'obj'),
- 'class': ObjType(l_('class'), 'class', 'obj'),
- 'exception': ObjType(l_('exception'), 'exc', 'obj'),
+ 'class': ObjType(l_('class'), 'class', 'exc', 'obj'),
+ 'exception': ObjType(l_('exception'), 'exc', 'class', 'obj'),
'method': ObjType(l_('method'), 'meth', 'obj'),
'classmethod': ObjType(l_('class method'), 'meth', 'obj'),
'staticmethod': ObjType(l_('static method'), 'meth', 'obj'),
@@ -706,4 +706,5 @@ class PythonDomain(Domain):
for modname, info in self.data['modules'].iteritems():
yield (modname, modname, 'module', info[0], 'module-' + modname, 0)
for refname, (docname, type) in self.data['objects'].iteritems():
- yield (refname, refname, type, docname, refname, 1)
+ if type != 'module': # modules are already handled
+ yield (refname, refname, type, docname, refname, 1)
diff --git a/sphinx/domains/rst.py b/sphinx/domains/rst.py
index 73e7e48e..c51c85fe 100644
--- a/sphinx/domains/rst.py
+++ b/sphinx/domains/rst.py
@@ -5,7 +5,7 @@
The reStructuredText domain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py
index ae67bf0e..43341e42 100644
--- a/sphinx/domains/std.py
+++ b/sphinx/domains/std.py
@@ -5,7 +5,7 @@
The standard domain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -27,8 +27,7 @@ from sphinx.util.compat import Directive
# RE for option descriptions
-option_desc_re = re.compile(
- r'((?:/|-|--)[-_a-zA-Z0-9]+)(\s*.*?)(?=,\s+(?:/|-|--)|$)')
+option_desc_re = re.compile(r'((?:/|-|--)?[-_a-zA-Z0-9]+)(\s*.*)')
class GenericObject(ObjectDescription):
@@ -130,14 +129,23 @@ class Target(Directive):
class Cmdoption(ObjectDescription):
"""
- Description of a command-line option (.. cmdoption).
+ Description of a command-line option (.. option).
"""
def handle_signature(self, sig, signode):
"""Transform an option description into RST nodes."""
count = 0
firstname = ''
- for m in option_desc_re.finditer(sig):
+ for potential_option in sig.split(', '):
+ potential_option = potential_option.strip()
+ m = option_desc_re.match(potential_option)
+ if not m:
+ self.env.warn(
+ self.env.docname,
+ 'Malformed option description %r, should '
+ 'look like "opt", "-opt args", "--opt args" or '
+ '"/opt args"' % potential_option, self.lineno)
+ continue
optname, args = m.groups()
if count:
signode += addnodes.desc_addname(', ', ', ')
@@ -145,25 +153,33 @@ class Cmdoption(ObjectDescription):
signode += addnodes.desc_addname(args, args)
if not count:
firstname = optname
+ signode['allnames'] = [optname]
+ else:
+ signode['allnames'].append(optname)
count += 1
if not firstname:
raise ValueError
return firstname
- def add_target_and_index(self, name, sig, signode):
- targetname = name.replace('/', '-')
+ def add_target_and_index(self, firstname, sig, signode):
currprogram = self.env.temp_data.get('std:program')
- if currprogram:
- targetname = '-' + currprogram + targetname
- targetname = 'cmdoption' + targetname
- signode['ids'].append(targetname)
- self.state.document.note_explicit_target(signode)
- self.indexnode['entries'].append(
- ('pair', _('%scommand line option; %s') %
- ((currprogram and currprogram + ' ' or ''), sig),
- targetname, ''))
- self.env.domaindata['std']['progoptions'][currprogram, name] = \
- self.env.docname, targetname
+ for optname in signode.get('allnames', []):
+ targetname = optname.replace('/', '-')
+ if not targetname.startswith('-'):
+ targetname = '-arg-' + targetname
+ if currprogram:
+ targetname = '-' + currprogram + targetname
+ targetname = 'cmdoption' + targetname
+ signode['ids'].append(targetname)
+ self.state.document.note_explicit_target(signode)
+ self.env.domaindata['std']['progoptions'][currprogram, optname] = \
+ self.env.docname, targetname
+ # create only one index entry for the whole option
+ if optname == firstname:
+ self.indexnode['entries'].append(
+ ('pair', _('%scommand line option; %s') %
+ ((currprogram and currprogram + ' ' or ''), sig),
+ targetname, ''))
class Program(Directive):
@@ -190,17 +206,26 @@ class Program(Directive):
class OptionXRefRole(XRefRole):
innernodeclass = addnodes.literal_emphasis
+ def _split(self, text, refnode, env):
+ try:
+ program, target = re.split(' (?=-|--|/)', text, 1)
+ except ValueError:
+ env.warn_node('Malformed :option: %r, does not contain option '
+ 'marker - or -- or /' % text, refnode)
+ return None, text
+ else:
+ program = ws_re.sub('-', program)
+ return program, target
+
def process_link(self, env, refnode, has_explicit_title, title, target):
program = env.temp_data.get('std:program')
if not has_explicit_title:
if ' ' in title and not (title.startswith('/') or
title.startswith('-')):
- program, target = re.split(' (?=-|--|/)', title, 1)
- program = ws_re.sub('-', program)
+ program, target = self._split(title, refnode, env)
target = target.strip()
elif ' ' in target:
- program, target = re.split(' (?=-|--|/)', target, 1)
- program = ws_re.sub('-', program)
+ program, target = self._split(target, refnode, env)
refnode['refprogram'] = program
return title, target
@@ -603,6 +628,11 @@ class StandardDomain(Domain):
self.object_types[type].attrs['searchprio'])
for name, info in self.data['labels'].iteritems():
yield (name, info[2], 'label', info[0], info[1], -1)
+ # add anonymous-only labels as well
+ non_anon_labels = set(self.data['labels'])
+ for name, info in self.data['anonlabels'].iteritems():
+ if name not in non_anon_labels:
+ yield (name, name, 'label', info[0], info[1], -1)
def get_type_name(self, type, primary=False):
# never prepend "Default"
diff --git a/sphinx/environment.py b/sphinx/environment.py
index 35799bea..5beb93b5 100644
--- a/sphinx/environment.py
+++ b/sphinx/environment.py
@@ -5,7 +5,7 @@
Global creation environment.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -177,9 +177,6 @@ class BuildEnvironment:
# this is to invalidate old pickles
self.version = ENV_VERSION
- # make this a set for faster testing
- self._nitpick_ignore = set(self.config.nitpick_ignore)
-
# All "docnames" here are /-separated and relative and exclude
# the source suffix.
@@ -249,10 +246,17 @@ class BuildEnvironment:
self.versioning_condition = condition
def warn(self, docname, msg, lineno=None):
+ """Emit a warning.
+
+ This differs from using ``app.warn()`` in that the warning may not
+ be emitted instantly, but collected for emitting all warnings after
+ the update of the environment.
+ """
# strange argument order is due to backwards compatibility
self._warnfunc(msg, (docname, lineno))
def warn_node(self, msg, node):
+ """Like :meth:`warn`, but with source information taken from *node*."""
self._warnfunc(msg, '%s:%s' % get_source_line(node))
def clear_doc(self, docname):
@@ -335,6 +339,7 @@ class BuildEnvironment:
"""
matchers = compile_matchers(
config.exclude_patterns[:] +
+ config.html_extra_path +
config.exclude_trees +
[d + config.source_suffix for d in config.unused_docs] +
['**/' + d for d in config.exclude_dirnames] +
@@ -439,6 +444,9 @@ class BuildEnvironment:
self.find_files(config)
self.config = config
+ # this cache also needs to be updated every time
+ self._nitpick_ignore = set(self.config.nitpick_ignore)
+
added, changed, removed = self.get_outdated_files(config_changed)
# allow user intervention as well
@@ -613,11 +621,8 @@ class BuildEnvironment:
pub.process_programmatic_settings(None, self.settings, None)
pub.set_source(None, src_path.encode(fs_encoding))
pub.set_destination(None, None)
- try:
- pub.publish()
- doctree = pub.document
- except UnicodeError, err:
- raise SphinxError(str(err))
+ pub.publish()
+ doctree = pub.document
# post-processing
self.filter_messages(doctree)
@@ -695,7 +700,7 @@ class BuildEnvironment:
@property
def docname(self):
- """Backwards compatible alias."""
+ """Returns the docname of the document currently being parsed."""
return self.temp_data['docname']
@property
@@ -709,16 +714,28 @@ class BuildEnvironment:
return self.temp_data.get('py:class')
def new_serialno(self, category=''):
- """Return a serial number, e.g. for index entry targets."""
+ """Return a serial number, e.g. for index entry targets.
+
+ The number is guaranteed to be unique in the current document.
+ """
key = category + 'serialno'
cur = self.temp_data.get(key, 0)
self.temp_data[key] = cur + 1
return cur
def note_dependency(self, filename):
+ """Add *filename* as a dependency of the current document.
+
+ This means that the document will be rebuilt if this file changes.
+
+ *filename* should be absolute or relative to the source directory.
+ """
self.dependencies.setdefault(self.docname, set()).add(filename)
def note_reread(self):
+ """Add the current document to the list of documents that will
+ automatically be re-read at the next build.
+ """
self.reread_always.add(self.docname)
def note_versionchange(self, type, version, node, lineno):
@@ -737,7 +754,6 @@ class BuildEnvironment:
self.app.debug('%s [filtered system message]', node.astext())
node.parent.remove(node)
-
def process_dependencies(self, docname, doctree):
"""Process docutils-generated dependency info."""
cwd = os.getcwd()
@@ -783,7 +799,8 @@ class BuildEnvironment:
node['uri'] = rel_imgpath
if rel_imgpath.endswith(os.extsep + '*'):
for filename in glob(full_imgpath):
- new_imgpath = relative_path(self.srcdir, filename)
+ new_imgpath = relative_path(path.join(self.srcdir, 'dummy'),
+ filename)
if filename.lower().endswith('.pdf'):
candidates['application/pdf'] = new_imgpath
elif filename.lower().endswith('.svg'):
@@ -1384,6 +1401,9 @@ class BuildEnvironment:
dtype = domain and '%s:%s' % (domain.name, typ) or typ
if (dtype, target) in self._nitpick_ignore:
warn = False
+ # for "std" types also try without domain name
+ if domain.name == 'std' and (typ, target) in self._nitpick_ignore:
+ warn = False
if not warn:
return
if domain and typ in domain.dangling_warnings:
@@ -1488,6 +1508,10 @@ class BuildEnvironment:
new = {}
def add_entry(word, subword, link=True, dic=new):
+ # Force the word to be unicode if it's a ASCII bytestring.
+ # This will solve problems with unicode normalization later.
+ # For instance the RFC role will add bytestrings at the moment
+ word = unicode(word)
entry = dic.get(word)
if not entry:
dic[word] = entry = [[], {}]
diff --git a/sphinx/errors.py b/sphinx/errors.py
index aee21218..4d737e51 100644
--- a/sphinx/errors.py
+++ b/sphinx/errors.py
@@ -6,7 +6,7 @@
Contains SphinxError and a few subclasses (in an extra module to avoid
circular import problems).
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/__init__.py b/sphinx/ext/__init__.py
index fcdf6c7d..5a807ba7 100644
--- a/sphinx/ext/__init__.py
+++ b/sphinx/ext/__init__.py
@@ -5,6 +5,6 @@
Contains Sphinx features not activated by default.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 53c7a250..6b673f5d 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -7,7 +7,7 @@
the doctree, thus avoiding duplication between docstrings and documentation
for those who like elaborate docstrings.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -28,7 +28,7 @@ from sphinx.application import ExtensionError
from sphinx.util.nodes import nested_parse_with_titles
from sphinx.util.compat import Directive
from sphinx.util.inspect import getargspec, isdescriptor, safe_getmembers, \
- safe_getattr, safe_repr
+ safe_getattr, safe_repr, is_builtin_class_method
from sphinx.util.pycompat import base_exception, class_types
from sphinx.util.docstrings import prepare_docstring
@@ -85,6 +85,15 @@ def members_set_option(arg):
return ALL
return set(x.strip() for x in arg.split(','))
+SUPPRESS = object()
+
+def annotation_option(arg):
+ if arg is None:
+ # suppress showing the representation of the object
+ return SUPPRESS
+ else:
+ return arg
+
def bool_option(arg):
"""Used to convert flag options to auto directives. (Instead of
directives.flag(), which returns None).
@@ -364,6 +373,9 @@ class Documenter(object):
"""Check if *self.object* is really defined in the module given by
*self.modname*.
"""
+ if self.options.imported_members:
+ return True
+
modname = self.get_attr(self.object, '__module__', None)
if modname and modname != self.modname:
return False
@@ -438,9 +450,10 @@ class Documenter(object):
# into lines
if isinstance(docstring, unicode):
return [prepare_docstring(docstring, ignore)]
- elif docstring:
+ elif isinstance(docstring, str): # this will not trigger on Py3
return [prepare_docstring(force_decode(docstring, encoding),
ignore)]
+ # ... else it is something strange, let's ignore it
return []
def process_doc(self, docstrings):
@@ -770,6 +783,7 @@ class ModuleDocumenter(Documenter):
'platform': identity, 'deprecated': bool_option,
'member-order': identity, 'exclude-members': members_set_option,
'private-members': bool_option, 'special-members': members_option,
+ 'imported-members': bool_option,
}
@classmethod
@@ -958,6 +972,10 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter):
try:
argspec = getargspec(self.object)
except TypeError:
+ if (is_builtin_class_method(self.object, '__new__') and
+ is_builtin_class_method(self.object, '__init__')):
+ raise TypeError('%r is a builtin class' % self.object)
+
# if a class should be documented as function (yay duck
# typing) we try to use the constructor signature as function
# signature without the first argument.
@@ -1010,8 +1028,9 @@ class ClassDocumenter(ModuleLevelDocumenter):
initmeth = self.get_attr(self.object, '__init__', None)
# classes without __init__ method, default __init__ or
# __init__ written in C?
- if initmeth is None or initmeth is object.__init__ or not \
- (inspect.ismethod(initmeth) or inspect.isfunction(initmeth)):
+ if initmeth is None or \
+ is_builtin_class_method(self.object, '__init__') or \
+ not(inspect.ismethod(initmeth) or inspect.isfunction(initmeth)):
return None
try:
argspec = getargspec(initmeth)
@@ -1048,7 +1067,7 @@ class ClassDocumenter(ModuleLevelDocumenter):
# add inheritance info, if wanted
if not self.doc_as_attr and self.options.show_inheritance:
self.add_line(u'', '<autodoc>')
- if len(self.object.__bases__):
+ if hasattr(self.object, '__bases__') and len(self.object.__bases__):
bases = [b.__module__ == '__builtin__' and
u':class:`%s`' % b.__name__ or
u':class:`%s.%s`' % (b.__module__, b.__name__)
@@ -1067,10 +1086,22 @@ class ClassDocumenter(ModuleLevelDocumenter):
# for classes, what the "docstring" is can be controlled via a
# config value; the default is only the class docstring
if content in ('both', 'init'):
- initdocstring = self.get_attr(
- self.get_attr(self.object, '__init__', None), '__doc__')
+ # get __init__ method document from __init__.__doc__
+ if self.env.config.autodoc_docstring_signature:
+ # only act if the feature is enabled
+ init_doc = MethodDocumenter(self.directive, '__init__')
+ init_doc.object = self.get_attr(self.object, '__init__', None)
+ init_doc.objpath = ['__init__']
+ init_doc._find_signature() # this effects to get_doc() result
+ initdocstring = '\n'.join(
+ ['\n'.join(l) for l in init_doc.get_doc(encoding)])
+ else:
+ initdocstring = self.get_attr(
+ self.get_attr(self.object, '__init__', None), '__doc__')
# for new-style classes, no __init__ means default __init__
- if initdocstring == object.__init__.__doc__:
+ if (initdocstring is not None and
+ (initdocstring == object.__init__.__doc__ or # for pypy
+ initdocstring.strip() == object.__init__.__doc__)): #for !pypy
initdocstring = None
if initdocstring:
if content == 'init':
@@ -1124,6 +1155,8 @@ class DataDocumenter(ModuleLevelDocumenter):
objtype = 'data'
member_order = 40
priority = -10
+ option_spec = dict(ModuleLevelDocumenter.option_spec)
+ option_spec["annotation"] = annotation_option
@classmethod
def can_document_member(cls, member, membername, isattr, parent):
@@ -1131,12 +1164,18 @@ class DataDocumenter(ModuleLevelDocumenter):
def add_directive_header(self, sig):
ModuleLevelDocumenter.add_directive_header(self, sig)
- try:
- objrepr = safe_repr(self.object)
- except ValueError:
+ if not self.options.annotation:
+ try:
+ objrepr = safe_repr(self.object)
+ except ValueError:
+ pass
+ else:
+ self.add_line(u' :annotation: = ' + objrepr, '<autodoc>')
+ elif self.options.annotation is SUPPRESS:
pass
else:
- self.add_line(u' :annotation: = ' + objrepr, '<autodoc>')
+ self.add_line(u' :annotation: %s' % self.options.annotation,
+ '<autodoc>')
def document_members(self, all_members=False):
pass
@@ -1208,6 +1247,8 @@ class AttributeDocumenter(DocstringStripSignatureMixin,ClassLevelDocumenter):
"""
objtype = 'attribute'
member_order = 60
+ option_spec = dict(ModuleLevelDocumenter.option_spec)
+ option_spec["annotation"] = annotation_option
# must be higher than the MethodDocumenter, else it will recognize
# some non-data descriptors as methods
@@ -1219,7 +1260,8 @@ class AttributeDocumenter(DocstringStripSignatureMixin,ClassLevelDocumenter):
def can_document_member(cls, member, membername, isattr, parent):
isdatadesc = isdescriptor(member) and not \
isinstance(member, cls.method_types) and not \
- type(member).__name__ in ("type", "method_descriptor")
+ type(member).__name__ in ("type", "method_descriptor",
+ "instancemethod")
return isdatadesc or (not isinstance(parent, ModuleDocumenter)
and not inspect.isroutine(member)
and not isinstance(member, class_types))
@@ -1243,13 +1285,19 @@ class AttributeDocumenter(DocstringStripSignatureMixin,ClassLevelDocumenter):
def add_directive_header(self, sig):
ClassLevelDocumenter.add_directive_header(self, sig)
- if not self._datadescriptor:
- try:
- objrepr = safe_repr(self.object)
- except ValueError:
- pass
- else:
- self.add_line(u' :annotation: = ' + objrepr, '<autodoc>')
+ if not self.options.annotation:
+ if not self._datadescriptor:
+ try:
+ objrepr = safe_repr(self.object)
+ except ValueError:
+ pass
+ else:
+ self.add_line(u' :annotation: = ' + objrepr, '<autodoc>')
+ elif self.options.annotation is SUPPRESS:
+ pass
+ else:
+ self.add_line(u' :annotation: %s' % self.options.annotation,
+ '<autodoc>')
def add_content(self, more_content, no_docstring=False):
if not self._datadescriptor:
@@ -1353,8 +1401,15 @@ class AutoDirective(Directive):
not negated:
self.options[flag] = None
# process the options with the selected documenter's option_spec
- self.genopt = Options(assemble_option_dict(
- self.options.items(), doc_class.option_spec))
+ try:
+ self.genopt = Options(assemble_option_dict(
+ self.options.items(), doc_class.option_spec))
+ except (KeyError, ValueError, TypeError), err:
+ # an option is either unknown or has a wrong type
+ msg = self.reporter.error('An option to %s is either unknown or '
+ 'has an invalid value: %s' % (self.name, err),
+ line=self.lineno)
+ return [msg]
# generate the output
documenter = doc_class(self, self.arguments[0])
documenter.generate(more_content=self.content)
diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py
index f5c5a884..0206b30c 100644
--- a/sphinx/ext/autosummary/__init__.py
+++ b/sphinx/ext/autosummary/__init__.py
@@ -49,7 +49,7 @@
resolved to a Python object, and otherwise it becomes simple emphasis.
This can be used as the default role to make links 'smart'.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -199,15 +199,12 @@ class Autosummary(Directive):
nodes = self.get_table(items)
if 'toctree' in self.options:
- suffix = env.config.source_suffix
dirname = posixpath.dirname(env.docname)
tree_prefix = self.options['toctree'].strip()
docnames = []
for name, sig, summary, real_name in items:
docname = posixpath.join(tree_prefix, real_name)
- if docname.endswith(suffix):
- docname = docname[:-len(suffix)]
docname = posixpath.normpath(posixpath.join(dirname, docname))
if docname not in env.found_docs:
self.warn('toctree references unknown document %r'
@@ -278,7 +275,17 @@ class Autosummary(Directive):
while doc and not doc[0].strip():
doc.pop(0)
- m = re.search(r"^([A-Z][^A-Z]*?\.\s)", " ".join(doc).strip())
+
+ # If there's a blank line, then we can assume the first sentence /
+ # paragraph has ended, so anything after shouldn't be part of the
+ # summary
+ for i, piece in enumerate(doc):
+ if not piece.strip():
+ doc = doc[:i]
+ break
+
+ # Try to find the "first sentence", which may span multiple lines
+ m = re.search(r"^([A-Z].*?\.)(?:\s|$)", " ".join(doc).strip())
if m:
summary = m.group(1).strip()
elif doc:
diff --git a/sphinx/ext/autosummary/generate.py b/sphinx/ext/autosummary/generate.py
index 0640a332..c4f150a0 100644
--- a/sphinx/ext/autosummary/generate.py
+++ b/sphinx/ext/autosummary/generate.py
@@ -14,7 +14,7 @@
generate:
sphinx-autogen -o source/generated source/*.rst
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -33,6 +33,21 @@ from sphinx.jinja2glue import BuiltinTemplateLoader
from sphinx.util.osutil import ensuredir
from sphinx.util.inspect import safe_getattr
+# Add documenters to AutoDirective registry
+from sphinx.ext.autodoc import add_documenter, \
+ ModuleDocumenter, ClassDocumenter, ExceptionDocumenter, DataDocumenter, \
+ FunctionDocumenter, MethodDocumenter, AttributeDocumenter, \
+ InstanceAttributeDocumenter
+add_documenter(ModuleDocumenter)
+add_documenter(ClassDocumenter)
+add_documenter(ExceptionDocumenter)
+add_documenter(DataDocumenter)
+add_documenter(FunctionDocumenter)
+add_documenter(MethodDocumenter)
+add_documenter(AttributeDocumenter)
+add_documenter(InstanceAttributeDocumenter)
+
+
def main(argv=sys.argv):
usage = """%prog [OPTIONS] SOURCEFILE ..."""
p = optparse.OptionParser(usage.strip())
@@ -101,7 +116,7 @@ def generate_autosummary_docs(sources, output_dir=None, suffix='.rst',
new_files = []
# write
- for name, path, template_name in sorted(items):
+ for name, path, template_name in sorted(items, key=str):
if path is None:
# The corresponding autosummary:: directive did not have
# a :toctree: option
diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py
index 0e8bc4b2..52be1bdb 100644
--- a/sphinx/ext/coverage.py
+++ b/sphinx/ext/coverage.py
@@ -6,7 +6,7 @@
Check Python modules and C API for coverage. Mostly written by Josip
Dzolonga for the Google Highly Open Participation contest.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py
index cd6cbf22..70beb9bf 100644
--- a/sphinx/ext/doctest.py
+++ b/sphinx/ext/doctest.py
@@ -6,7 +6,7 @@
Mimic doctest by automatically executing code snippets and checking
their results.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/extlinks.py b/sphinx/ext/extlinks.py
index aea1de17..18da573e 100644
--- a/sphinx/ext/extlinks.py
+++ b/sphinx/ext/extlinks.py
@@ -20,7 +20,7 @@
You can also give an explicit caption, e.g. :exmpl:`Foo <foo>`.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/graphviz.py b/sphinx/ext/graphviz.py
index 800e9ca8..028560b1 100644
--- a/sphinx/ext/graphviz.py
+++ b/sphinx/ext/graphviz.py
@@ -6,7 +6,7 @@
Allow graphviz-formatted graphs to be included in Sphinx-generated
documents inline.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -178,6 +178,9 @@ def render_dot(self, code, options, format, prefix='graphviz'):
if p.returncode != 0:
raise GraphvizError('dot exited with error:\n[stderr]\n%s\n'
'[stdout]\n%s' % (stderr, stdout))
+ if not path.isfile(outfn):
+ raise GraphvizError('dot did not produce an output file:\n[stderr]\n%s\n'
+ '[stdout]\n%s' % (stderr, stdout))
return relfn, outfn
diff --git a/sphinx/ext/ifconfig.py b/sphinx/ext/ifconfig.py
index 2e219614..3362e56a 100644
--- a/sphinx/ext/ifconfig.py
+++ b/sphinx/ext/ifconfig.py
@@ -16,7 +16,7 @@
namespace of the project configuration (that is, all variables from
``conf.py`` are available.)
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py
index 6499e078..d10b89cc 100644
--- a/sphinx/ext/inheritance_diagram.py
+++ b/sphinx/ext/inheritance_diagram.py
@@ -32,7 +32,7 @@ r"""
The graph is inserted as a PNG+image map into HTML and a PDF in
LaTeX.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -154,8 +154,18 @@ class InheritanceGraph(object):
nodename = self.class_name(cls, parts)
fullname = self.class_name(cls, 0)
+ # Use first line of docstring as tooltip, if available
+ tooltip = None
+ try:
+ if cls.__doc__:
+ doc = cls.__doc__.strip().split("\n")[0]
+ if doc:
+ tooltip = '"%s"' % doc.replace('"', '\\"')
+ except Exception: # might raise AttributeError for strange classes
+ pass
+
baselist = []
- all_classes[cls] = (nodename, fullname, baselist)
+ all_classes[cls] = (nodename, fullname, baselist, tooltip)
for base in cls.__bases__:
if not show_builtins and base in builtins:
continue
@@ -168,7 +178,7 @@ class InheritanceGraph(object):
for cls in classes:
recurse(cls)
- return all_classes
+ return all_classes.values()
def class_name(self, cls, parts=0):
"""Given a class object, return a fully-qualified name.
@@ -188,7 +198,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.values()]
+ return [fullname for (_, fullname, _, _) in self.class_info]
# These are the default attrs for graphviz
default_graph_attrs = {
@@ -241,16 +251,13 @@ class InheritanceGraph(object):
res.append('digraph %s {\n' % name)
res.append(self._format_graph_attrs(g_attrs))
- for cls, (name, fullname, bases) in self.class_info.items():
+ for name, fullname, bases, tooltip in sorted(self.class_info):
# Write the node
this_node_attrs = n_attrs.copy()
if fullname in urls:
this_node_attrs['URL'] = '"%s"' % urls[fullname]
- # 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
+ if tooltip:
+ this_node_attrs['tooltip'] = tooltip
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 2d8b9d1f..c3adf563 100644
--- a/sphinx/ext/intersphinx.py
+++ b/sphinx/ext/intersphinx.py
@@ -20,7 +20,7 @@
also be specified individually, e.g. if the docs should be buildable
without Internet access.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -33,6 +33,7 @@ from os import path
import re
from docutils import nodes
+from docutils.utils import relative_path
from sphinx.locale import _
from sphinx.builders.html import INVENTORY_FILENAME
@@ -106,6 +107,12 @@ def read_inventory_v2(f, uri, join, bufsize=16*1024):
if not m:
continue
name, type, prio, location, dispname = m.groups()
+ if type == 'py:module' and type in invdata and \
+ name in invdata[type]: # due to a bug in 1.1 and below,
+ # two inventory entries are created
+ # for Python modules, and the first
+ # one is correct
+ continue
if location.endswith(u'$'):
location = location[:-1] + name
location = join(uri, location)
@@ -230,6 +237,9 @@ def missing_reference(app, env, node, contnode):
if objtype not in inventory or target not in inventory[objtype]:
continue
proj, version, uri, dispname = inventory[objtype][target]
+ if '://' not in uri and node.get('refdoc'):
+ # get correct path in case of subdirectories
+ uri = path.join(relative_path(node['refdoc'], env.srcdir), uri)
newnode = nodes.reference('', '', internal=False, refuri=uri,
reftitle=_('(in %s v%s)') % (proj, version))
if node.get('refexplicit'):
diff --git a/sphinx/ext/jsmath.py b/sphinx/ext/jsmath.py
index 2b9d5d28..8907576f 100644
--- a/sphinx/ext/jsmath.py
+++ b/sphinx/ext/jsmath.py
@@ -6,7 +6,7 @@
Set up everything for use of JSMath to display math in HTML
via JavaScript.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/linkcode.py b/sphinx/ext/linkcode.py
index ee7a603d..77bd9f28 100644
--- a/sphinx/ext/linkcode.py
+++ b/sphinx/ext/linkcode.py
@@ -5,7 +5,7 @@
Add external links to module code in Python object descriptions.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/mathbase.py b/sphinx/ext/mathbase.py
index 3955e4bc..6aaffca8 100644
--- a/sphinx/ext/mathbase.py
+++ b/sphinx/ext/mathbase.py
@@ -5,7 +5,7 @@
Set up math support in source files and LaTeX/text output.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -30,11 +30,15 @@ def wrap_displaymath(math, label):
parts = math.split('\n\n')
ret = []
for i, part in enumerate(parts):
+ if not part.strip():
+ continue
if label is not None and i == 0:
ret.append('\\begin{split}%s\\end{split}' % part +
(label and '\\label{'+label+'}' or ''))
else:
ret.append('\\begin{split}%s\\end{split}\\notag' % part)
+ if not ret:
+ return ''
return '\\begin{gather}\n' + '\\\\'.join(ret) + '\n\\end{gather}'
@@ -84,7 +88,7 @@ class MathDirective(Directive):
def latex_visit_math(self, node):
- self.body.append('$' + node['latex'] + '$')
+ self.body.append('\\(' + node['latex'] + '\\)')
raise nodes.SkipNode
def latex_visit_displaymath(self, node):
diff --git a/sphinx/ext/mathjax.py b/sphinx/ext/mathjax.py
index abcbe491..ee278667 100644
--- a/sphinx/ext/mathjax.py
+++ b/sphinx/ext/mathjax.py
@@ -7,7 +7,7 @@
Sphinx's HTML writer -- requires the MathJax JavaScript library on your
webserver/computer.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/pngmath.py b/sphinx/ext/pngmath.py
index 3938dab1..b6546301 100644
--- a/sphinx/ext/pngmath.py
+++ b/sphinx/ext/pngmath.py
@@ -5,7 +5,7 @@
Render math in HTML via dvipng.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -26,7 +26,7 @@ from docutils import nodes
from sphinx.errors import SphinxError
from sphinx.util.png import read_png_depth, write_png_depth
from sphinx.util.osutil import ensuredir, ENOENT
-from sphinx.util.pycompat import b
+from sphinx.util.pycompat import b, sys_encoding
from sphinx.ext.mathbase import setup_math as mathbase_setup, wrap_displaymath
class MathExtError(SphinxError):
@@ -34,9 +34,9 @@ class MathExtError(SphinxError):
def __init__(self, msg, stderr=None, stdout=None):
if stderr:
- msg += '\n[stderr]\n' + stderr
+ msg += '\n[stderr]\n' + stderr.decode(sys_encoding, 'replace')
if stdout:
- msg += '\n[stdout]\n' + stdout
+ msg += '\n[stdout]\n' + stdout.decode(sys_encoding, 'replace')
SphinxError.__init__(self, msg)
@@ -82,8 +82,10 @@ def render_math(self, math):
may not fail since that indicates a problem in the math source.
"""
use_preview = self.builder.config.pngmath_use_preview
+ latex = DOC_HEAD + self.builder.config.pngmath_latex_preamble
+ latex += (use_preview and DOC_BODY_PREVIEW or DOC_BODY) % math
- shasum = "%s.png" % sha(math.encode('utf-8')).hexdigest()
+ shasum = "%s.png" % sha(latex.encode('utf-8')).hexdigest()
relfn = posixpath.join(self.builder.imgpath, 'math', shasum)
outfn = path.join(self.builder.outdir, '_images', 'math', shasum)
if path.isfile(outfn):
@@ -95,9 +97,6 @@ def render_math(self, math):
hasattr(self.builder, '_mathpng_warned_dvipng'):
return None, None
- latex = DOC_HEAD + self.builder.config.pngmath_latex_preamble
- latex += (use_preview and DOC_BODY_PREVIEW or DOC_BODY) % math
-
# use only one tempdir per build -- the use of a directory is cleaner
# than using temporary files, since we can clean up everything at once
# just removing the whole directory (see cleanup_tempdir)
@@ -192,11 +191,11 @@ def html_visit_math(self, node):
try:
fname, depth = render_math(self, '$'+node['latex']+'$')
except MathExtError, exc:
- msg = unicode(str(exc), 'utf-8', 'replace')
+ msg = unicode(exc)
sm = nodes.system_message(msg, type='WARNING', level=2,
backrefs=[], source=node['latex'])
sm.walkabout(self)
- self.builder.warn('display latex %r: ' % node['latex'] + str(exc))
+ self.builder.warn('display latex %r: ' % node['latex'] + msg)
raise nodes.SkipNode
if fname is None:
# something failed -- use text-only as a bad substitute
diff --git a/sphinx/ext/refcounting.py b/sphinx/ext/refcounting.py
deleted file mode 100644
index 918e64f3..00000000
--- a/sphinx/ext/refcounting.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- sphinx.ext.refcounting
- ~~~~~~~~~~~~~~~~~~~~~~
-
- Supports reference count annotations for C API functions. Based on
- refcount.py and anno-api.py in the old Python documentation tools.
-
- Usage: Set the `refcount_file` config value to the path to the reference
- count data file.
-
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
- :license: BSD, see LICENSE for details.
-"""
-
-from os import path
-from docutils import nodes
-
-from sphinx import addnodes
-from sphinx.locale import _
-
-
-# refcount annotation
-class refcount(nodes.emphasis): pass
-
-
-class RCEntry:
- def __init__(self, name):
- self.name = name
- self.args = []
- self.result_type = ''
- self.result_refs = None
-
-
-class Refcounts(dict):
- @classmethod
- def fromfile(cls, filename):
- d = cls()
- fp = open(filename, 'r')
- try:
- for line in fp:
- line = line.strip()
- if line[:1] in ("", "#"):
- # blank lines and comments
- continue
- parts = line.split(":", 4)
- if len(parts) != 5:
- raise ValueError("Wrong field count in %r" % line)
- function, type, arg, refcount, comment = parts
- # Get the entry, creating it if needed:
- try:
- entry = d[function]
- except KeyError:
- entry = d[function] = RCEntry(function)
- if not refcount or refcount == "null":
- refcount = None
- else:
- refcount = int(refcount)
- # Update the entry with the new parameter or the result
- # information.
- if arg:
- entry.args.append((arg, type, refcount))
- else:
- entry.result_type = type
- entry.result_refs = refcount
- finally:
- fp.close()
- return d
-
- def add_refcount_annotations(self, app, doctree):
- for node in doctree.traverse(addnodes.desc_content):
- par = node.parent
- if par['domain'] != 'c' or par['objtype'] != 'function':
- continue
- if not par[0].has_key('names') or not par[0]['names']:
- continue
- entry = self.get(par[0]['names'][0])
- if not entry:
- continue
- elif entry.result_type not in ("PyObject*", "PyVarObject*"):
- continue
- if entry.result_refs is None:
- rc = _('Return value: Always NULL.')
- elif entry.result_refs:
- rc = _('Return value: New reference.')
- else:
- rc = _('Return value: Borrowed reference.')
- node.insert(0, refcount(rc, rc))
-
-
-def init_refcounts(app):
- if app.config.refcount_file:
- refcounts = Refcounts.fromfile(
- path.join(app.srcdir, app.config.refcount_file))
- app.connect('doctree-read', refcounts.add_refcount_annotations)
-
-
-def setup(app):
- app.add_node(refcount)
- app.add_config_value('refcount_file', '', True)
- app.connect('builder-inited', init_refcounts)
diff --git a/sphinx/ext/todo.py b/sphinx/ext/todo.py
index de5d2b9f..9f521fb4 100644
--- a/sphinx/ext/todo.py
+++ b/sphinx/ext/todo.py
@@ -8,7 +8,7 @@
all todos of your project and lists them along with a backlink to the
original location.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py
index 962b543b..74a00463 100644
--- a/sphinx/ext/viewcode.py
+++ b/sphinx/ext/viewcode.py
@@ -5,7 +5,7 @@
Add links to module code in Python object descriptions.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -24,17 +24,17 @@ def doctree_read(app, doctree):
def has_tag(modname, fullname, docname):
entry = env._viewcode_modules.get(modname, None)
- if entry is None:
- try:
- analyzer = ModuleAnalyzer.for_module(modname)
- except Exception:
- env._viewcode_modules[modname] = False
- return
+ try:
+ analyzer = ModuleAnalyzer.for_module(modname)
+ except Exception:
+ env._viewcode_modules[modname] = False
+ return
+ if not isinstance(analyzer.code, unicode):
+ code = analyzer.code.decode(analyzer.encoding)
+ else:
+ code = analyzer.code
+ if entry is None or entry[0] != code:
analyzer.find_tags()
- if not isinstance(analyzer.code, unicode):
- code = analyzer.code.decode(analyzer.encoding)
- else:
- code = analyzer.code
entry = code, analyzer.tags, {}
env._viewcode_modules[modname] = entry
elif entry is False:
@@ -142,7 +142,7 @@ def collect_pages(app):
if not modnames:
return
- app.builder.info(' _modules/index')
+ app.builder.info(' _modules/index', nonl=True)
html = ['\n']
# the stack logic is needed for using nested lists for submodules
stack = ['']
diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py
index df422321..600a7cf0 100644
--- a/sphinx/highlighting.py
+++ b/sphinx/highlighting.py
@@ -5,7 +5,7 @@
Highlight code blocks using Pygments.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -63,6 +63,12 @@ _LATEX_STYLES = r'''
\newcommand\PYGZcb{\char`\}}
'''
+# used if Pygments is available
+# use textcomp quote to get a true single quote
+_LATEX_ADD_STYLES = r'''
+\renewcommand\PYGZsq{\textquotesingle}
+'''
+
parsing_exceptions = (SyntaxError, UnicodeEncodeError)
if sys.version_info < (2, 5):
# Python <= 2.4 raises MemoryError when parsing an
@@ -175,7 +181,7 @@ class PygmentsBridge(object):
if self.try_parse(source):
lexer = lexers['python']
else:
- return self.unhighlighted(source)
+ lexer = lexers['none']
else:
lexer = lexers['python']
elif lang in ('python3', 'py3') and source.startswith('>>>'):
@@ -185,7 +191,7 @@ class PygmentsBridge(object):
try:
lexer = guess_lexer(source)
except Exception:
- return self.unhighlighted(source)
+ lexer = lexers['none']
else:
if lang in lexers:
lexer = lexers[lang]
@@ -195,7 +201,7 @@ class PygmentsBridge(object):
except ClassNotFound:
if warn:
warn('Pygments lexer name %r is not known' % lang)
- return self.unhighlighted(source)
+ lexer = lexers['none']
else:
raise
else:
@@ -207,19 +213,19 @@ class PygmentsBridge(object):
source = doctest.doctestopt_re.sub('', source)
# highlight via Pygments
+ formatter = self.get_formatter(**kwargs)
try:
- formatter = self.get_formatter(**kwargs)
hlsource = highlight(source, lexer, formatter)
- 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,
# so let it pass unhighlighted
- return self.unhighlighted(source)
+ hlsource = highlight(source, lexers['none'], formatter)
+ 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)
def get_stylesheet(self):
if not pygments:
@@ -231,4 +237,4 @@ class PygmentsBridge(object):
if self.dest == 'html':
return formatter.get_style_defs('.highlight')
else:
- return formatter.get_style_defs()
+ return formatter.get_style_defs() + _LATEX_ADD_STYLES
diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py
index 20d92a32..f4a5a815 100644
--- a/sphinx/jinja2glue.py
+++ b/sphinx/jinja2glue.py
@@ -5,7 +5,7 @@
Glue code for the jinja2 templating engine.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -91,25 +91,29 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
# create a chain of paths to search
if theme:
# the theme's own dir and its bases' dirs
- chain = theme.get_dirchain()
+ pathchain = theme.get_dirchain()
# then the theme parent paths
- chain.extend(theme.themepath)
+ loaderchain = pathchain + theme.themepath
elif dirs:
- chain = list(dirs)
+ pathchain = list(dirs)
+ loaderchain = list(dirs)
else:
- chain = []
+ pathchain = []
+ loaderchain = []
# prepend explicit template paths
self.templatepathlen = len(builder.config.templates_path)
if builder.config.templates_path:
- chain[0:0] = [path.join(builder.confdir, tp)
- for tp in builder.config.templates_path]
+ cfg_templates_path = [path.join(builder.confdir, tp)
+ for tp in builder.config.templates_path]
+ pathchain[0:0] = cfg_templates_path
+ loaderchain[0:0] = cfg_templates_path
# store it for use in newest_template_mtime
- self.pathchain = chain
+ self.pathchain = pathchain
# make the paths into loaders
- self.loaders = map(SphinxFileSystemLoader, chain)
+ self.loaders = map(SphinxFileSystemLoader, loaderchain)
use_i18n = builder.app.translator is not None
extensions = use_i18n and ['jinja2.ext.i18n'] or []
diff --git a/sphinx/locale/.tx/config b/sphinx/locale/.tx/config
index ead6c9fd..06c5142d 100644
--- a/sphinx/locale/.tx/config
+++ b/sphinx/locale/.tx/config
@@ -2,38 +2,7 @@
host = https://www.transifex.com
[sphinx-1.sphinx-pot]
+file_filter = <lang>/LC_MESSAGES/sphinx.po
source_file = sphinx.pot
source_lang = en
-trans.bn = bn/LC_MESSAGES/sphinx.po
-trans.ca = ca/LC_MESSAGES/sphinx.po
-trans.cs = cs/LC_MESSAGES/sphinx.po
-trans.da = da/LC_MESSAGES/sphinx.po
-trans.de = de/LC_MESSAGES/sphinx.po
-trans.es = es/LC_MESSAGES/sphinx.po
-trans.et = et/LC_MESSAGES/sphinx.po
-trans.eu = eu/LC_MESSAGES/sphinx.po
-trans.fa = fa/LC_MESSAGES/sphinx.po
-trans.fi = fi/LC_MESSAGES/sphinx.po
-trans.fr = fr/LC_MESSAGES/sphinx.po
-trans.he = he/LC_MESSAGES/sphinx.po
-trans.hr = hr/LC_MESSAGES/sphinx.po
-trans.hu = hu/LC_MESSAGES/sphinx.po
-trans.it = it/LC_MESSAGES/sphinx.po
-trans.ja = ja/LC_MESSAGES/sphinx.po
-trans.ko = ko/LC_MESSAGES/sphinx.po
-trans.lt = lt/LC_MESSAGES/sphinx.po
-trans.lv = lv/LC_MESSAGES/sphinx.po
-trans.nb_NO = nb_NO/LC_MESSAGES/sphinx.po
-trans.ne = ne/LC_MESSAGES/sphinx.po
-trans.nl = nl/LC_MESSAGES/sphinx.po
-trans.pl = pl/LC_MESSAGES/sphinx.po
-trans.pt_BR = pt_BR/LC_MESSAGES/sphinx.po
-trans.ru = ru/LC_MESSAGES/sphinx.po
-trans.sk = sk/LC_MESSAGES/sphinx.po
-trans.sl = sl/LC_MESSAGES/sphinx.po
-trans.sv = sv/LC_MESSAGES/sphinx.po
-trans.tr = tr/LC_MESSAGES/sphinx.po
-trans.uk_UA = uk_UA/LC_MESSAGES/sphinx.po
-trans.zh_CN = zh_CN/LC_MESSAGES/sphinx.po
-trans.zh_TW = zh_TW/LC_MESSAGES/sphinx.po
diff --git a/sphinx/locale/__init__.py b/sphinx/locale/__init__.py
index 96da67d6..b76aab1f 100644
--- a/sphinx/locale/__init__.py
+++ b/sphinx/locale/__init__.py
@@ -5,7 +5,7 @@
Locale utilities.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -215,7 +215,7 @@ def init(locale_dirs, language, catalog='sphinx'):
except Exception:
# Language couldn't be found in the specified path
pass
- # guarantee translations[catalog] exists
+ # guarantee translators[catalog] exists
if translator is None:
translator = gettext.NullTranslations()
has_translation = False
diff --git a/sphinx/locale/bn/LC_MESSAGES/sphinx.js b/sphinx/locale/bn/LC_MESSAGES/sphinx.js
index a404b060..e0f7654f 100644
--- a/sphinx/locale/bn/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/bn/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "bn", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09ae\u09cd\u09af\u09be\u099a\u0997\u09c1\u09b2\u09c7\u09be \u09b2\u09c1\u0995\u09be\u09a8", "Permalink to this definition": "\u098f\u0987 \u09b8\u0982\u099c\u09cd\u099e\u09be\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995", "Permalink to this headline": "\u098f\u0987 \u09b6\u09bf\u09b0\u09c7\u09be\u09a8\u09be\u09ae\u09c7\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "bn", "plural_expr": "(n != 1)", "messages": {"Next topic": "\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u099f\u09aa\u09bf\u0995", "Index": "\u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "\u0995\u09aa\u09bf\u09b0\u09be\u0987\u099f", "C API changes": "C API \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8", "quick access to all modules": "\u09b8\u0995\u09b2 \u09ae\u09a1\u09bf\u0989\u09b2\u09c7 \u09a6\u09cd\u09b0\u09c1\u09a4 \u09aa\u09cd\u09b0\u09ac\u09c7\u09b6", "&copy; Copyright %(copyright)s.": "&copy; \u0995\u09aa\u09bf\u09b0\u09be\u0987\u099f %(copyright)s.", "Global Module Index": "\u0997\u09cd\u09b2\u09c7\u09be\u09ac\u09be\u09b2 \u09ae\u09a1\u09bf\u0989\u09b2 \u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "\u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8 &ndash; %(key)s", "General Index": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3 \u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8", "next chapter": "\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u0985\u09a7\u09cd\u09af\u09be\u09df", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u0985\u09a7\u09cd\u09af\u09be\u09df", "Permalink to this headline": "\u098f\u0987 \u09b6\u09bf\u09b0\u09c7\u09be\u09a8\u09be\u09ae\u09c7\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995", "About these documents": "\u098f\u0987 \u09a1\u0995\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995\u09c7", "Preparing search...": "", ", in ": "", "Navigation": "\u09a8\u09c7\u09ad\u09bf\u0997\u09c7\u09b6\u09a8", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "\u09aa\u09c2\u09b0\u09cd\u09a3\u09be\u0999\u09cd\u0997 \u09b8\u09c2\u099a\u09c0\u09aa\u09a4\u09cd\u09b0", "Contents": "", "can be huge": "\u0996\u09c1\u09ac \u09ac\u09dc \u09b9\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7", "Changes in Version %(version)s &mdash; %(docstitle)s": "%(version)s &mdash; %(docstitle)s-\u098f \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u09b8\u09ae\u09c2\u09b9", "Other changes": "\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8", "Hide Search Matches": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09ae\u09cd\u09af\u09be\u099a\u0997\u09c1\u09b2\u09c7\u09be \u09b2\u09c1\u0995\u09be\u09a8", "Quick search": "\u09a6\u09cd\u09b0\u09c1\u09a4 \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8", "Show Source": "\u09b8\u09c7\u09be\u09b0\u09cd\u09b8 \u09a6\u09c7\u0996\u09c1\u09a8", "Search": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8", "This Page": "\u098f\u0987 \u09aa\u09be\u09a4\u09be", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u098f\u0996\u09be\u09a8 \u09a5\u09c7\u0995\u09c7 \u098f\u0987 \u09a8\u09a5\u09bf\u0997\u09c1\u09b2\u09c7\u09be\u09a4\u09c7 \u0986\u09aa\u09a8\u09bf \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09ac\u09c7\u09a8\u0964 \n \u0986\u09aa\u09a8\u09be\u09b0 \u0995\u09be\u0999\u09cd\u0995\u09cd\u09b7\u09bf\u09a4 \u09b6\u09ac\u09cd\u09a6\u09b8\u09ae\u09c2\u09b9 \u09a8\u09bf\u099a\u09c7\u09b0 \u09ac\u09be\u0995\u09cd\u09b8\u09c7 \u09b2\u09bf\u0996\u09c1\u09a8 \u098f\u09ac\u0982 \"\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\" \u09ac\u09be\u099f\u09a8\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8\u0964\n \u0989\u09b2\u09cd\u09b2\u09c7\u0996\u09cd\u09af, \u09b8\u0995\u09b2 \u09b6\u09ac\u09cd\u09a6\u09b8\u09ae\u09c2\u09b9\u09c7\u09b0 \u0989\u09aa\u09b8\u09cd\u09a5\u09bf\u09a4\u09bf \u09a8\u09bf\u09df\u09c7 \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09be \u09b9\u09ac\u09c7\u0964 \u09af\u09c7\u09b8\u09ac \u09aa\u09be\u09a4\u09be\u09df \u09b8\u0995\u09b2\n \u09b6\u09ac\u09cd\u09a6 \u09a8\u09c7\u0987 \u09b8\u09c7\u0997\u09c1\u09b2\u09c7\u09be \u09ac\u09be\u09a6 \u09a6\u09c7\u09df\u09be \u09b9\u09ac\u09c7\u0964", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u09a6\u09bf\u09df\u09c7 \u09a4\u09c8\u09b0\u09c0\u0964", "last updated": "", "Collapse sidebar": "", "Go": "\u09af\u09be\u09a8", "Table Of Contents": "\u09b8\u09c2\u099a\u09c0\u09aa\u09a4\u09cd\u09b0", "Search within %(docstitle)s": "%(docstitle)s \u098f\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u0996\u09c1\u0981\u099c\u09c1\u09a8", "all functions, classes, terms": "\u09b8\u0995\u09b2 \u09ab\u09be\u0982\u09b6\u09a8, \u0995\u09cd\u09b2\u09be\u09b8, \u099f\u09be\u09b0\u09cd\u09ae", "Please activate JavaScript to enable the search\n functionality.": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09be\u09b0 \u099c\u09a8\u09cd\u09af \u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9\u09aa\u09c2\u09b0\u09cd\u09ac\u0995 \u099c\u09be\u09ad\u09be\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09cd\u099f \n \u09b8\u0995\u09cd\u09b0\u09bf\u09df \u0995\u09b0\u09c1\u09a8\u0964", "Indices and tables:": "\u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8 \u0993 \u099f\u09c7\u09ac\u09bf\u09b2 \u09b8\u09ae\u09c2\u09b9:", "lists all sections and subsections": "\u09b8\u0995\u09b2 \u0985\u09a8\u09c1\u099a\u09cd\u099b\u09c7\u09a6 \u09b8\u09ae\u09c2\u09b9\u09c7\u09b0 \u09a4\u09be\u09b2\u09bf\u0995\u09be", "Index pages by letter": "\u09ac\u09b0\u09cd\u09a3\u09be\u09a8\u09c1\u09b8\u09be\u09b0\u09c7 \u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8 \u09aa\u09be\u09a4\u09be", "search": "\u0996\u09c1\u0981\u099c\u09c1\u09a8", "Permalink to this definition": "\u098f\u0987 \u09b8\u0982\u099c\u09cd\u099e\u09be\u09b0 \u09aa\u09be\u09b0\u09cd\u09ae\u09be\u09b2\u09bf\u0999\u09cd\u0995", "Previous topic": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099f\u09aa\u09bf\u0995", "Overview": "\u09ad\u09c1\u09ae\u09bf\u0995\u09be", "Last updated on %(last_updated)s.": "%(last_updated)s \u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u09df\u09c7\u099b\u09c7\u0964", "Searching": "", "search this documentation": "\u098f\u0987 \u09b8\u09b9\u09be\u09df\u09bf\u0995\u09be\u09a4\u09c7 \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be \u0995\u09b0\u09c1\u09a8", "Automatically generated list of changes in version %(version)s": "\u09b8\u09cd\u09ac\u09df\u0982\u0995\u09cd\u09b0\u09bf\u09df\u09ad\u09be\u09ac\u09c7 \u09a4\u09c8\u09b0\u09c0 %(version)s-\u098f \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u09b8\u09ae\u09c2\u09b9\u09c7\u09b0 \u09a4\u09be\u09b2\u09bf\u0995\u09be\u0964", "Full index on one page": "\u098f\u0995 \u09aa\u09be\u09a4\u09be\u09df \u09b8\u09ae\u09cd\u09aa\u09c2\u09b0\u09cd\u09a3 \u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8", "Enter search terms or a module, class or function name.": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u099f\u09be\u09b0\u09cd\u09ae, \u09ae\u09a1\u09bf\u0989\u09b2, \u0995\u09cd\u09b2\u09be\u09b8 \u0985\u09a5\u09ac\u09be \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09a8\u09be\u09ae \u09a6\u09bf\u09a8\u0964", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">\u0995\u09aa\u09bf\u09b0\u09be\u0987\u099f</a> %(copyright)s.", "Library changes": "\u09b2\u09be\u0987\u09ac\u09cd\u09b0\u09c7\u09b0\u09bf\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8", "Search Page": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09aa\u09be\u09a4\u09be", "Search Results": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8\u09c7\u09b0 \u09ab\u09b2\u09be\u09ab\u09b2"}}); \ No newline at end of file
diff --git a/sphinx/locale/bn/LC_MESSAGES/sphinx.mo b/sphinx/locale/bn/LC_MESSAGES/sphinx.mo
index 80c3d0a6..3a605446 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 966664a0..62d9b239 100644
--- a/sphinx/locale/bn/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/bn/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Bengali translations for Sphinx.
-# Copyright (C) 2009 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.0pre/[?1034h2e1ab15e035e\n"
-"Report-Msgid-Bugs-To: nasim.haque@gmail.com\n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-09-21 10:08+0200\n"
-"Last-Translator: Nasimul Haque <nasim.haque@gmail.com>\n"
-"Language-Team: Nasimul Haque <nasim.haque@gmail.com>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:10+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Bengali (http://www.transifex.com/projects/p/sphinx-1/language/bn/)\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"
+"Language: bn\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -23,14 +25,14 @@ msgid "%s %s documentation"
msgstr ""
#: sphinx/environment.py:1510
-#, fuzzy, python-format
+#, python-format
msgid "see %s"
-msgstr "আরও %s"
+msgstr ""
#: sphinx/environment.py:1513
-#, fuzzy, python-format
+#, python-format
msgid "see also %s"
-msgstr "আরও দেখুন %s"
+msgstr ""
#: sphinx/environment.py:1570
msgid "Symbols"
@@ -89,9 +91,8 @@ msgid "Module author: "
msgstr "মডিউল লেখক:"
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "মডিউল লেখক:"
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -102,7 +103,8 @@ msgstr "লেখক:"
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "প্যারামিটার"
@@ -147,24 +149,20 @@ msgid "function"
msgstr "ফাংশন"
#: sphinx/domains/c.py:204 sphinx/domains/cpp.py:1208
-#, fuzzy
msgid "member"
-msgstr "C মেম্বার"
+msgstr ""
#: sphinx/domains/c.py:205
-#, fuzzy
msgid "macro"
-msgstr "C ম্যাক্রো"
+msgstr ""
#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
-#, fuzzy
msgid "type"
-msgstr "C টাইপ"
+msgstr ""
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "C ভ্যারিয়েবল"
+msgstr ""
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
@@ -221,9 +219,8 @@ msgid "%s (%s attribute)"
msgstr "%s (%s এ্যট্রিবিউট)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "প্যারামিটার"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -234,9 +231,8 @@ msgid "attribute"
msgstr "এ্যট্রিবিউট"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "ভ্যারিয়েবল"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -304,9 +300,8 @@ msgid "%s (module)"
msgstr "%s (মডিউল)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "মডিউল ইনডেক্স"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -337,9 +332,8 @@ msgid "module"
msgstr "মডিউল"
#: sphinx/domains/python.py:696
-#, fuzzy
msgid " (deprecated)"
-msgstr "ডেপ্রিকেটেড"
+msgstr ""
#: sphinx/domains/rst.py:53
#, python-format
@@ -347,18 +341,17 @@ msgid "%s (directive)"
msgstr ""
#: sphinx/domains/rst.py:55
-#, fuzzy, python-format
+#, python-format
msgid "%s (role)"
-msgstr "%s (মডিউল)"
+msgstr ""
#: sphinx/domains/rst.py:104
msgid "directive"
msgstr ""
#: sphinx/domains/rst.py:105
-#, fuzzy
msgid "role"
-msgstr "মডিউল"
+msgstr ""
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
@@ -453,9 +446,9 @@ msgid "Todo"
msgstr "অসমাপ্ত কাজ"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(%s, %d লাইনে মূল অন্তর্ভুক্তিটি রয়েছে.)"
+msgstr ""
#: sphinx/ext/todo.py:119
msgid "original entry"
@@ -466,9 +459,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "মডিউল"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -682,9 +674,7 @@ msgstr "%(last_updated)s সর্বশেষ পরিবর্তন কর
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"<a href=\"http://sphinx-doc.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
@@ -711,9 +701,7 @@ msgstr "পরবর্তী অধ্যায়"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"অনুসন্ধান করার জন্য অনুগ্রহপূর্বক জাভাস্ক্রিপ্ট \n"
-" সক্রিয় করুন।"
+msgstr "অনুসন্ধান করার জন্য অনুগ্রহপূর্বক জাভাস্ক্রিপ্ট \n সক্রিয় করুন।"
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -721,28 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"এখান থেকে এই নথিগুলোতে আপনি অনুসন্ধান করতে পারবেন। \n"
-" আপনার কাঙ্ক্ষিত শব্দসমূহ নিচের বাক্সে লিখুন এবং \"অনুসন্ধান\" বাটনে "
-"ক্লিক করুন।\n"
-" উল্লেখ্য, সকল শব্দসমূহের উপস্থিতি নিয়ে অনুসন্ধান করা হবে। যেসব পাতায় "
-"সকল\n"
-" শব্দ নেই সেগুলো বাদ দেয়া হবে।"
+msgstr "এখান থেকে এই নথিগুলোতে আপনি অনুসন্ধান করতে পারবেন। \n আপনার কাঙ্ক্ষিত শব্দসমূহ নিচের বাক্সে লিখুন এবং \"অনুসন্ধান\" বাটনে ক্লিক করুন।\n উল্লেখ্য, সকল শব্দসমূহের উপস্থিতি নিয়ে অনুসন্ধান করা হবে। যেসব পাতায় সকল\n শব্দ নেই সেগুলো বাদ দেয়া হবে।"
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "খুঁজুন"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "অনুসন্ধানের ফলাফল"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -842,11 +827,10 @@ msgid "Continued on next page"
msgstr "পরবর্তী পাতাতে চলমান"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[ছবি: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[ছবি]"
-
diff --git a/sphinx/locale/ca/LC_MESSAGES/sphinx.js b/sphinx/locale/ca/LC_MESSAGES/sphinx.js
index 2cd088e2..8a204db6 100644
--- a/sphinx/locale/ca/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/ca/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "ca", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Oculta Resultats de Cerca", "Permalink to this definition": "Link permanent a aquesta definici\u00f3", "Permalink to this headline": "Link permanent a aquest t\u00edtol"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "ca", "plural_expr": "(n != 1)", "messages": {"Next topic": "Tema seg\u00fcent", "Index": "\u00cdndex", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Copyright", "C API changes": "Canvis a la API de C", "quick access to all modules": "acc\u00e9s r\u00e0pid a tots els m\u00f2duls", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "\u00cdndex Global de M\u00f2duls", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "\u00cdndes &ndash; %(key)s", "General Index": "\u00cdndex General", "next chapter": "cap\u00edtol seg\u00fcent", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "cap\u00edtol anterior", "Permalink to this headline": "Link permanent a aquest t\u00edtol", "About these documents": "Quant a aquests documents", "Preparing search...": "", ", in ": "", "Navigation": "Navegaci\u00f3", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "Taula de Contingut Completa", "Contents": "", "can be huge": "pot ser gegant", "Changes in Version %(version)s &mdash; %(docstitle)s": "Canvis a la Versi\u00f3 %(version)s &mdash; %(docstitle)s", "Other changes": "Altres canvis", "Hide Search Matches": "Oculta Resultats de Cerca", "Quick search": "Cerca r\u00e0pida", "Show Source": "Mostra Codi Font", "Search": "Cerca", "This Page": "Aquesta P\u00e0gina", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Des d'aqu\u00ed pots fer cerques en aquests documents. Entra les \nparaules de la teva cerca i clica el bot\u00f3 \"cerca\". Tingues en compte\nque la cerca inclour\u00e0 totes les paraules que posis. Les p\u00e0gines que no\ntenen totes les paraules no sortir\u00e0n.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Creat amb <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "", "Go": "Ves a", "Table Of Contents": "Taula de Contingut", "Search within %(docstitle)s": "Cerca dins de %(docstitle)s", "all functions, classes, terms": "totes les funcions, classes, termes", "Please activate JavaScript to enable the search\n functionality.": "Activa JavaScript per utilitzar la funcionalitat\nde cerca.", "Indices and tables:": "\u00cdndexs i taules:", "lists all sections and subsections": "llista totes les seccions i subseccions", "Index pages by letter": "P\u00e0gines d'\u00edndex per lletra", "search": "cerca", "Permalink to this definition": "Link permanent a aquesta definici\u00f3", "Previous topic": "Tema anterior", "Overview": "Resum", "Last updated on %(last_updated)s.": "\u00daltima actualitzaci\u00f3 el %(last_updated)s.", "Searching": "", "search this documentation": "cerca aquesta documentaci\u00f3", "Automatically generated list of changes in version %(version)s": "Llista de canvis de la versi\u00f3 %(version)s generada autom\u00e0ticament", "Full index on one page": "\u00cdndex complet en una p\u00e0gina", "Enter search terms or a module, class or function name.": "Entra paraules de cerca o el nom d'un m\u00f2dul, classe o funci\u00f3.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\\\"%(path)s\\\">Copyright</a> %(copyright)s.", "Library changes": "Canvis a la llibreria", "Search Page": "P\u00e0gina de Cerca", "Search Results": "Resultats de la Cerca"}}); \ No newline at end of file
diff --git a/sphinx/locale/ca/LC_MESSAGES/sphinx.mo b/sphinx/locale/ca/LC_MESSAGES/sphinx.mo
index 7b98a23c..7b5c3dbe 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 b127355c..97d8fb76 100644
--- a/sphinx/locale/ca/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ca/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Catalan translations for Sphinx.
-# Copyright (C) 2009 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.0\n"
-"Report-Msgid-Bugs-To: pau.fernandez@upc.edu\n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Pau Fernández <pau.fernandez@upc.edu>\n"
-"Language-Team: ca <LL@li.org>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:11+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Catalan (http://www.transifex.com/projects/p/sphinx-1/language/ca/)\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"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -89,9 +91,8 @@ msgid "Module author: "
msgstr "Autor del mòdul: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Autor del mòdul: "
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -102,7 +103,8 @@ msgstr "Autor: "
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Paràmetres"
@@ -217,9 +219,8 @@ msgid "%s (%s attribute)"
msgstr "%s (atribut %s)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Paràmetres"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -230,9 +231,8 @@ msgid "attribute"
msgstr "atribut"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Variable"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -280,14 +280,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (mètode estàtic %s)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (mètode %s.%s)"
+msgstr ""
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (mètode %s)"
+msgstr ""
#: sphinx/domains/python.py:353
#, python-format
@@ -300,9 +300,8 @@ msgid "%s (module)"
msgstr "%s (mòdul)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Índex de Mòduls"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -460,9 +459,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "mòdul code"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -584,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "documentació"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -677,9 +674,7 @@ msgstr "Última actualització el %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Creat amb <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Creat amb <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -706,9 +701,7 @@ msgstr "capítol següent"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Activa JavaScript per utilitzar la funcionalitat\n"
-"de cerca."
+msgstr "Activa JavaScript per utilitzar la funcionalitat\nde cerca."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -716,26 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Des d'aquí pots fer cerques en aquests documents. Entra les \n"
-"paraules de la teva cerca i clica el botó \"cerca\". Tingues en compte\n"
-"que la cerca inclourà totes les paraules que posis. Les pàgines que no\n"
-"tenen totes les paraules no sortiràn."
+msgstr "Des d'aquí pots fer cerques en aquests documents. Entra les \nparaules de la teva cerca i clica el botó \"cerca\". Tingues en compte\nque la cerca inclourà totes les paraules que posis. Les pàgines que no\ntenen totes les paraules no sortiràn."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "cerca"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Resultats de la Cerca"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -788,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "Oculta Resultats de Cerca"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "cerca"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -836,11 +827,10 @@ msgid "Continued on next page"
msgstr "Continua a la pàgina següent"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[imatge: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[imatge]"
-
diff --git a/sphinx/locale/cs/LC_MESSAGES/sphinx.js b/sphinx/locale/cs/LC_MESSAGES/sphinx.js
index 23f60207..0f069df4 100644
--- a/sphinx/locale/cs/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/cs/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "cs", "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", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "cs", "plural_expr": "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "messages": {"Next topic": "Dal\u0161\u00ed t\u00e9ma", "Index": "Rejst\u0159\u00edk", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "V\u00edtejte! Toto je", "Copyright": "Ve\u0161ker\u00e1 pr\u00e1va vyhrazena", "C API changes": "Zm\u011bny API", "quick access to all modules": "rychl\u00fd p\u0159\u00edstup ke v\u0161em modul\u016fm", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Celkov\u00fd rejst\u0159\u00edk modul\u016f", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Vyhled\u00e1v\u00e1n\u00ed nenalezlo \u017e\u00e1dn\u00fd odpov\u00eddaj\u00edc\u00ed dokument. Ujist\u011bte se, \u017ee jste v\u0161echna slova zapsal/a spr\u00e1vn\u011b a \u017ee jste vybral/a dostatek kategori\u00ed.", "Index &ndash; %(key)s": "Rejst\u0159\u00edk &ndash; %(key)s", "General Index": "Obecn\u00fd rejst\u0159\u00edk", "next chapter": "dal\u0161\u00ed kapitola", "Search finished, found %s page(s) matching the search query.": "Vyhled\u00e1v\u00e1n\u00ed dokon\u010deno, str\u00e1nky odpov\u00eddaj\u00edc\u00ed hledan\u00e9mu v\u00fdrazu: %s.", "previous chapter": "p\u0159edchoz\u00ed kapitola", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis", "About these documents": "O t\u011bchto dokumentech", "Preparing search...": "Vyhled\u00e1v\u00e1n\u00ed se p\u0159ipravuje...", ", in ": ", v ", "Navigation": "Navigace", "Expand sidebar": "Rozbalit bo\u010dn\u00ed li\u0161tu", "the documentation for": "dokumentace pro", "Complete Table of Contents": "Celkov\u00fd obsah", "Contents": "Obsah", "can be huge": "m\u016f\u017ee b\u00fdt obrovsk\u00fd", "Changes in Version %(version)s &mdash; %(docstitle)s": "Zm\u011bny ve verzi %(version)s &mdash; %(docstitle)s", "Other changes": "Ostatn\u00ed zm\u011bny", "Hide Search Matches": "Skr\u00fdt v\u00fdsledky vyhled\u00e1v\u00e1n\u00ed", "Quick search": "Rychl\u00e9 vyhled\u00e1v\u00e1n\u00ed", "Show Source": "Uk\u00e1zat zdroj", "Search": "Vyhled\u00e1v\u00e1n\u00ed", "This Page": "Tato str\u00e1nka", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Toto je vyhled\u00e1vac\u00ed str\u00e1nka. Zadejte kl\u00ed\u010dov\u00e1 slova a klikn\u011bte na \"hledat\". \nVyhled\u00e1v\u00e1n\u00ed automaticky hled\u00e1 v\u0161echna slova, nebudou tedy nalezeny str\u00e1nky obsahuj\u00edc\u00ed jen n\u011bkter\u00e9 z nich.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Vytvo\u0159eno pomoc\u00ed <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "naposledy aktualizov\u00e1no", "Collapse sidebar": "Sbalit bo\u010dn\u00ed li\u0161tu", "Go": "OK", "Table Of Contents": "Obsah", "Search within %(docstitle)s": "Prohledat %(docstitle)s", "all functions, classes, terms": "v\u0161echny funkce, t\u0159\u00eddy, term\u00edny", "Please activate JavaScript to enable the search\n functionality.": "Pro podporu vyhled\u00e1v\u00e1n\u00ed aktivujte JavaScript.", "Indices and tables:": "Rejst\u0159\u00edky a tabulky:", "lists all sections and subsections": "seznam v\u0161ech sekc\u00ed a podsekc\u00ed", "Index pages by letter": "Rejst\u0159\u00edk podle p\u00edsmene", "search": "hledat", "Permalink to this definition": "Trval\u00fd odkaz na tuto definici", "Previous topic": "P\u0159echoz\u00ed t\u00e9ma", "Overview": "P\u0159ehled", "Last updated on %(last_updated)s.": "Aktualizov\u00e1no dne %(last_updated)s.", "Searching": "Prob\u00edh\u00e1 vyhled\u00e1n\u00ed", "search this documentation": "prohledat tuto dokumentaci", "Automatically generated list of changes in version %(version)s": "Automaticky generovan\u00fd seznam zm\u011bn ve verzi %(version)s", "Full index on one page": "Cel\u00fd rejst\u0159\u00edk na jedn\u00e9 str\u00e1nce", "Enter search terms or a module, class or function name.": "Zadejte hledan\u00e9 term\u00edny nebo jm\u00e9no modulu, t\u0159\u00eddy \u010di funkce.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Zm\u011bny v knihovn\u00e1ch", "Search Page": "Vyhled\u00e1vac\u00ed str\u00e1nka", "Search Results": "V\u00fdsledky vyhled\u00e1v\u00e1n\u00ed"}}); \ No newline at end of file
diff --git a/sphinx/locale/cs/LC_MESSAGES/sphinx.mo b/sphinx/locale/cs/LC_MESSAGES/sphinx.mo
index 088c6897..79f22853 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 71b80c53..76b26189 100644
--- a/sphinx/locale/cs/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/cs/LC_MESSAGES/sphinx.po
@@ -1,41 +1,42 @@
-# Czech translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.5\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Pavel Kosina <pavel.kosina@gmail.com>\n"
-"Language-Team: Pavel Kosina <pavel.kosina@gmail.com>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"PO-Revision-Date: 2013-12-26 13:32+0000\n"
+"Last-Translator: pm13 <petr.marhoun@gmail.com>\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/sphinx-1/language/cs/)\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"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: sphinx/config.py:81
-#, fuzzy, python-format
+#, python-format
msgid "%s %s documentation"
-msgstr "%s %s dokumentaci"
+msgstr "Dokumentace pro %s %s"
#: sphinx/environment.py:1510
-#, fuzzy, python-format
+#, python-format
msgid "see %s"
msgstr "viz %s"
#: sphinx/environment.py:1513
-#, fuzzy, python-format
+#, python-format
msgid "see also %s"
msgstr "viz také %s"
#: sphinx/environment.py:1570
msgid "Symbols"
-msgstr ""
+msgstr "Symboly"
#: sphinx/roles.py:175
#, python-format
@@ -54,7 +55,7 @@ msgstr "Vestavěné funkce"
#: sphinx/builders/changes.py:75
msgid "Module level"
-msgstr "Úroveň modulů"
+msgstr "Úroveň modulu"
#: sphinx/builders/html.py:290
#, python-format
@@ -63,11 +64,11 @@ msgstr "%d.%m.%Y"
#: sphinx/builders/html.py:309 sphinx/themes/basic/defindex.html:30
msgid "General Index"
-msgstr "Rejstřík indexů"
+msgstr "Obecný rejstřík"
#: sphinx/builders/html.py:309
msgid "index"
-msgstr "index"
+msgstr "rejstřík"
#: sphinx/builders/html.py:369
msgid "next"
@@ -79,7 +80,7 @@ msgstr "předchozí"
#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
msgid " (in "
-msgstr "(v"
+msgstr " (v "
#: sphinx/directives/other.py:138
msgid "Section author: "
@@ -90,9 +91,8 @@ msgid "Module author: "
msgstr "Autor modulu: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Autor modulu: "
+msgstr "Autor kódu:"
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -101,9 +101,10 @@ msgstr "Autor: "
#: sphinx/domains/__init__.py:244
#, python-format
msgid "%s %s"
-msgstr ""
+msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametry"
@@ -125,7 +126,7 @@ msgstr "%s (C funkce)"
#: sphinx/domains/c.py:143
#, python-format
msgid "%s (C member)"
-msgstr "%s (člen C)"
+msgstr "%s (C člen)"
#: sphinx/domains/c.py:145
#, python-format
@@ -153,20 +154,19 @@ msgstr "člen"
#: sphinx/domains/c.py:205
msgid "macro"
-msgstr ""
+msgstr "makro"
#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
msgid "type"
msgstr "typ"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Proměnná"
+msgstr "proměnná"
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
-msgstr ""
+msgstr "Vyvolá"
#: sphinx/domains/cpp.py:1038
#, python-format
@@ -181,7 +181,7 @@ msgstr "%s (C++ typ)"
#: sphinx/domains/cpp.py:1081
#, python-format
msgid "%s (C++ member)"
-msgstr "%s (člen C++)"
+msgstr "%s (C++ člen)"
#: sphinx/domains/cpp.py:1137
#, python-format
@@ -211,30 +211,28 @@ msgstr "%s() (třída)"
#: sphinx/domains/javascript.py:111
#, python-format
msgid "%s (global variable or constant)"
-msgstr ""
+msgstr "%s (globální proměnná nebo konstanta)"
#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:355
#, python-format
msgid "%s (%s attribute)"
-msgstr "%s() (atribut %s)"
+msgstr "%s (atribut %s)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Parametry"
+msgstr "Argumenty"
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
-msgstr ""
+msgstr "data"
#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
msgid "attribute"
msgstr "atribut"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Proměnná"
+msgstr "Proměnné"
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -249,22 +247,22 @@ msgstr "%s() (v modulu %s)"
#: sphinx/domains/python.py:257
#, python-format
msgid "%s (built-in variable)"
-msgstr "%s() (vestavěná proměnná)"
+msgstr "%s (vestavěná proměnná)"
#: sphinx/domains/python.py:258 sphinx/domains/python.py:349
#, python-format
msgid "%s (in module %s)"
-msgstr "%s() (v modulu %s)"
+msgstr "%s (v modulu %s)"
#: sphinx/domains/python.py:274
#, python-format
msgid "%s (built-in class)"
-msgstr "%s () (vestavěná proměnná)"
+msgstr "%s (vestavěná třída)"
#: sphinx/domains/python.py:275
#, python-format
msgid "%s (class in %s)"
-msgstr "%s() (třída v %s)"
+msgstr "%s (třída v %s)"
#: sphinx/domains/python.py:315
#, python-format
@@ -282,29 +280,28 @@ msgid "%s() (%s static method)"
msgstr "%s() (statická metoda %s)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (metoda %s.%s)"
+msgstr "%s() (třídní metoda %s.%s)"
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (metoda %s)"
+msgstr "%s() (třídní metoda %s)"
#: sphinx/domains/python.py:353
#, python-format
msgid "%s (%s.%s attribute)"
-msgstr "%s() (atribut %s.%s)"
+msgstr "%s (atribut %s.%s)"
#: sphinx/domains/python.py:434
#, python-format
msgid "%s (module)"
-msgstr "%s (module)"
+msgstr "%s (modul)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Rejstřík modulů"
+msgstr "Rejstřík modulů Pythonu"
#: sphinx/domains/python.py:492
msgid "modules"
@@ -320,11 +317,11 @@ msgstr "výjimka"
#: sphinx/domains/python.py:564
msgid "method"
-msgstr ""
+msgstr "metoda"
#: sphinx/domains/python.py:565
msgid "class method"
-msgstr ""
+msgstr "třídní metoda"
#: sphinx/domains/python.py:566
msgid "static method"
@@ -341,50 +338,50 @@ msgstr " (zastaralé)"
#: sphinx/domains/rst.py:53
#, python-format
msgid "%s (directive)"
-msgstr ""
+msgstr "%s (direktiva)"
#: sphinx/domains/rst.py:55
#, python-format
msgid "%s (role)"
-msgstr ""
+msgstr "%s (role)"
#: sphinx/domains/rst.py:104
msgid "directive"
-msgstr ""
+msgstr "direktiva"
#: sphinx/domains/rst.py:105
msgid "role"
-msgstr ""
+msgstr "role"
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
msgid "environment variable; %s"
-msgstr "promměná prostředí, %s"
+msgstr "proměnná prostředí; %s"
#: sphinx/domains/std.py:162
#, python-format
msgid "%scommand line option; %s"
-msgstr "%s parametry příkazového řádku; %s"
+msgstr "%svolba příkazového řádku; %s"
#: sphinx/domains/std.py:414
msgid "glossary term"
-msgstr ""
+msgstr "termín v glosáři"
#: sphinx/domains/std.py:415
msgid "grammar token"
-msgstr ""
+msgstr "token gramatiky"
#: sphinx/domains/std.py:416
msgid "reference label"
-msgstr ""
+msgstr "referenční návěstí"
#: sphinx/domains/std.py:418
msgid "environment variable"
-msgstr "promměná prostředí"
+msgstr "proměnná prostředí"
#: sphinx/domains/std.py:419
msgid "program option"
-msgstr ""
+msgstr "volba programu"
#: sphinx/domains/std.py:449 sphinx/themes/basic/genindex-single.html:32
#: sphinx/themes/basic/genindex-single.html:57
@@ -394,11 +391,11 @@ msgstr ""
#: sphinx/themes/basic/genindex.html:68 sphinx/themes/basic/layout.html:134
#: sphinx/writers/latex.py:191 sphinx/writers/texinfo.py:475
msgid "Index"
-msgstr "Index"
+msgstr "Rejstřík"
#: sphinx/domains/std.py:450
msgid "Module Index"
-msgstr "Rejstřík modulů "
+msgstr "Rejstřík modulů"
#: sphinx/domains/std.py:451 sphinx/themes/basic/defindex.html:25
msgid "Search Page"
@@ -407,77 +404,76 @@ msgstr "Vyhledávací stránka"
#: sphinx/ext/autodoc.py:1042
#, python-format
msgid " Bases: %s"
-msgstr ""
+msgstr " Nadtřídy: %s"
#: sphinx/ext/autodoc.py:1078
#, python-format
msgid "alias of :class:`%s`"
-msgstr ""
+msgstr "alias třídy :class:`%s`"
#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
#, python-format
msgid "[graph: %s]"
-msgstr ""
+msgstr "[graf: %s]"
#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
msgid "[graph]"
-msgstr ""
+msgstr "[graf]"
#: sphinx/ext/intersphinx.py:234
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "(v %s v%s)"
#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
msgid "[source]"
-msgstr ""
+msgstr "[zdroj]"
#: sphinx/ext/refcounting.py:83
msgid "Return value: Always NULL."
-msgstr ""
+msgstr "Navrácená hodnota: Vždy NULL."
#: sphinx/ext/refcounting.py:85
msgid "Return value: New reference."
-msgstr ""
+msgstr "Navrácená hodnota: Nová reference."
#: sphinx/ext/refcounting.py:87
msgid "Return value: Borrowed reference."
-msgstr ""
+msgstr "Navrácená hodnota: Vypůjčená reference."
#: sphinx/ext/todo.py:42
msgid "Todo"
msgstr "Todo"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(<<Původní záznam>> je v %s, řádka %d.)"
+msgstr "(<<original entry>> se nachází v %s, řádka %d.)"
#: sphinx/ext/todo.py:119
msgid "original entry"
-msgstr ""
+msgstr "původní záznam"
#: sphinx/ext/viewcode.py:117
msgid "[docs]"
-msgstr ""
+msgstr "[dokumentace]"
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "modul"
+msgstr "Kód modulu"
#: sphinx/ext/viewcode.py:137
#, python-format
msgid "<h1>Source code for %s</h1>"
-msgstr ""
+msgstr "<h1>Zdrojový kód pro %s</h1>"
#: sphinx/ext/viewcode.py:164
msgid "Overview: module code"
-msgstr ""
+msgstr "Přehled: kód modulu"
#: sphinx/ext/viewcode.py:165
msgid "<h1>All modules for which code is available</h1>"
-msgstr ""
+msgstr "<h1>Všechny moduly s dostupným kódem</h1>"
#: sphinx/locale/__init__.py:155
msgid "Attention"
@@ -563,16 +559,15 @@ msgstr "Obsah"
#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
#: sphinx/themes/basic/searchresults.html:10
msgid "Search"
-msgstr "Hledání"
+msgstr "Vyhledávání"
#: sphinx/themes/agogo/layout.html:53 sphinx/themes/basic/searchbox.html:15
msgid "Go"
-msgstr "hledej"
+msgstr "OK"
#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
-#, fuzzy
msgid "Enter search terms or a module, class or function name."
-msgstr "Zadej jméno modulu, třídy nebo funkce."
+msgstr "Zadejte hledané termíny nebo jméno modulu, třídy či funkce."
#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
@@ -584,16 +579,15 @@ msgstr "Přehled"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Vítejte! Toto je"
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "dokumentaci"
+msgstr "dokumentace pro"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "naposledy aktualizováno"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
@@ -609,7 +603,7 @@ msgstr "seznam všech sekcí a podsekcí"
#: sphinx/themes/basic/defindex.html:26
msgid "search this documentation"
-msgstr "prohledej tuto dokumentaci"
+msgstr "prohledat tuto dokumentaci"
#: sphinx/themes/basic/defindex.html:28
msgid "Global Module Index"
@@ -626,18 +620,18 @@ msgstr "všechny funkce, třídy, termíny"
#: sphinx/themes/basic/genindex-single.html:35
#, python-format
msgid "Index &ndash; %(key)s"
-msgstr "Index &ndash; %(key)s"
+msgstr "Rejstřík &ndash; %(key)s"
#: sphinx/themes/basic/genindex-single.html:63
#: sphinx/themes/basic/genindex-split.html:24
#: sphinx/themes/basic/genindex-split.html:38
#: sphinx/themes/basic/genindex.html:74
msgid "Full index on one page"
-msgstr "Plný index na jedné stránce"
+msgstr "Celý rejstřík na jedné stránce"
#: sphinx/themes/basic/genindex-split.html:16
msgid "Index pages by letter"
-msgstr "Index podle písmene"
+msgstr "Rejstřík podle písmene"
#: sphinx/themes/basic/genindex-split.html:25
msgid "can be huge"
@@ -650,7 +644,7 @@ msgstr "Navigace"
#: sphinx/themes/basic/layout.html:122
#, python-format
msgid "Search within %(docstitle)s"
-msgstr "Hledání uvnitř %(docstitle)s"
+msgstr "Prohledat %(docstitle)s"
#: sphinx/themes/basic/layout.html:131
msgid "About these documents"
@@ -680,9 +674,7 @@ msgstr "Aktualizováno dne %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Vytvořeno pomocí <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Vytvořeno pomocí <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -709,7 +701,7 @@ msgstr "další kapitola"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
+msgstr "Pro podporu vyhledávání aktivujte JavaScript."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -717,27 +709,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Toto je vyhledávací stránka. Zadejte klíčová slova a klikněte na "
-"\"hledej\". \n"
-"Vyhledávání hledá automaticky všechna slova. Nebudou tedy nalezeny "
-"stránky, obsahující méně slov."
+msgstr "Toto je vyhledávací stránka. Zadejte klíčová slova a klikněte na \"hledat\". \nVyhledávání automaticky hledá všechna slova, nebudou tedy nalezeny stránky obsahující jen některé z nich."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
-msgstr "hledej"
+msgstr "hledat"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
-msgstr "Výsledky hledání"
+msgstr "Výsledky vyhledávání"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Vyhledávání nenalezlo žádný odpovídající dokument. Ujistěte se, že jste všechna slova zapsal/a správně a že jste vybral/a dostatek kategorií."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -789,35 +780,34 @@ msgid "Hide Search Matches"
msgstr "Skrýt výsledky vyhledávání"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "hledej"
+msgstr "Probíhá vyhledání"
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
-msgstr ""
+msgstr "Vyhledávání se připravuje..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
+msgstr "Vyhledávání dokončeno, stránky odpovídající hledanému výrazu: %s."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
-msgstr ""
+msgstr ", v "
#: sphinx/themes/default/static/sidebar.js_t:83
msgid "Expand sidebar"
-msgstr ""
+msgstr "Rozbalit boční lištu"
#: sphinx/themes/default/static/sidebar.js_t:96
#: sphinx/themes/default/static/sidebar.js_t:124
msgid "Collapse sidebar"
-msgstr ""
+msgstr "Sbalit boční lištu"
#: sphinx/themes/haiku/layout.html:26
msgid "Contents"
-msgstr ""
+msgstr "Obsah"
#: sphinx/writers/latex.py:189
msgid "Release"
@@ -826,23 +816,21 @@ msgstr "Vydání"
#: sphinx/writers/latex.py:620 sphinx/writers/manpage.py:181
#: sphinx/writers/texinfo.py:612
msgid "Footnotes"
-msgstr ""
+msgstr "Poznámky pod čarou"
#: sphinx/writers/latex.py:704
msgid "continued from previous page"
-msgstr ""
+msgstr "pokračujte na předchozí stránce"
#: sphinx/writers/latex.py:710
-#, fuzzy
msgid "Continued on next page"
-msgstr "Plný index na jedné stránce"
+msgstr "Pokračujte na další stránce"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
msgstr "[obrázek: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[obrázek]"
-
diff --git a/sphinx/locale/da/LC_MESSAGES/sphinx.js b/sphinx/locale/da/LC_MESSAGES/sphinx.js
index 0a93add3..83c5ffc9 100644
--- a/sphinx/locale/da/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/da/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "da", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Skjul s\u00f8geresultater", "Permalink to this definition": "Permalink til denne definition", "Permalink to this headline": "Permalink til denne overskrift"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "da", "plural_expr": "(n != 1)", "messages": {"Next topic": "N\u00e6ste emne", "Index": "Indeks", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Ophavsret", "C API changes": "\u00c6ndringer i C-API", "quick access to all modules": "hurtig adgang til alle moduler", "&copy; Copyright %(copyright)s.": "&copy; Ophavsret %(copyright)s.", "Global Module Index": "Globalt modulindeks", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Indeks &ndash; %(key)s", "General Index": "Generelt indeks", "next chapter": "n\u00e6ste kapitel", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "forrige kapitel", "Permalink to this headline": "Permalink til denne overskrift", "About these documents": "Om disse dokumenter", "Preparing search...": "", ", in ": "", "Navigation": "Navigation", "Expand sidebar": "Udfold sidebj\u00e6lke", "the documentation for": "", "Complete Table of Contents": "Fuldst\u00e6ndig indholdsfortegnelse", "Contents": "Indhold", "can be huge": "kan v\u00e6re enormt", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u00c6ndringer i version %(version)s &mdash; %(docstitle)s", "Other changes": "Andre \u00e6ndringer", "Hide Search Matches": "Skjul s\u00f8geresultater", "Quick search": "Hurtig s\u00f8gning", "Show Source": "Vis kilde", "Search": "S\u00f8g", "This Page": "Denne side", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Her fra kan du s\u00f8ge i disse dokumenter. Indtast dine s\u00f8geord\n i boksen nedenfor og klik p\u00e5 \"s\u00f8g\". Bem\u00e6rk at s\u00f8gefunktionen\n automatisk vil s\u00f8ge p\u00e5 alle ordene. Sider, der indeholder\n f\u00e6rre ord, vil ikke indg\u00e5 i resultaterne.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Bygget med <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "Sammenfold sidebj\u00e6lke", "Go": "S\u00f8g", "Table Of Contents": "Indholdsfortegnelse", "Search within %(docstitle)s": "S\u00f8g i %(docstitle)s", "all functions, classes, terms": "alle funktioner, klasser, begreber", "Please activate JavaScript to enable the search\n functionality.": "Aktiv\u00e9r venligst JavaScript for at aktivere\n s\u00f8gefunktionalitet.", "Indices and tables:": "Indeks og tabeller:", "lists all sections and subsections": "viser alle afsnit og underafsnit", "Index pages by letter": "Indeks\u00e9r sider efter bogstav", "search": "s\u00f8g", "Permalink to this definition": "Permalink til denne definition", "Previous topic": "Forrige emne", "Overview": "Oversigt", "Last updated on %(last_updated)s.": "Sidst opdateret %(last_updated)s.", "Searching": "", "search this documentation": "s\u00f8g i denne dokumentation", "Automatically generated list of changes in version %(version)s": "Automatisk oprettet liste af \u00e6ndringer i version %(version)s", "Full index on one page": "Fuldt indeks p\u00e5 \u00e9n side", "Enter search terms or a module, class or function name.": "Indtast s\u00f8geord eller navnet p\u00e5 et modul, en klasse eller en funktion.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Ophavsret</a> %(copyright)s.", "Library changes": "Biblioteks\u00e6ndringer", "Search Page": "S\u00f8geside", "Search Results": "S\u00f8geresultater"}}); \ No newline at end of file
diff --git a/sphinx/locale/da/LC_MESSAGES/sphinx.mo b/sphinx/locale/da/LC_MESSAGES/sphinx.mo
index 6a3b8218..cd529d32 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 8a2c9fa5..df4a8850 100644
--- a/sphinx/locale/da/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/da/LC_MESSAGES/sphinx.po
@@ -1,26 +1,28 @@
-# Danish translations for Sphinx.
-# Copyright (C) 2009, 2011 The Sphinx Team
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
-# Ask Hjorth Larsen <asklarsen@gmail.com>, 2010, 2011.
+#
+# Translators:
+# askhl <asklarsen@gmail.com>, 2010-2011
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.0pre/[?1034h2e1ab15e035e\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
-"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:13+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/sphinx-1/language/da/)\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"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
-#, fuzzy, python-format
+#, python-format
msgid "%s %s documentation"
-msgstr "%s %s dokumentation"
+msgstr ""
#: sphinx/environment.py:1510
#, python-format
@@ -101,7 +103,8 @@ msgstr "Forfatter: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametre"
@@ -579,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "dokumentation"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -672,9 +674,7 @@ msgstr "Sidst opdateret %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Bygget med <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Bygget med <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -701,9 +701,7 @@ msgstr "næste kapitel"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Aktivér venligst JavaScript for at aktivere\n"
-" søgefunktionalitet."
+msgstr "Aktivér venligst JavaScript for at aktivere\n søgefunktionalitet."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -711,26 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Her fra kan du søge i disse dokumenter. Indtast dine søgeord\n"
-" i boksen nedenfor og klik på \"søg\". Bemærk at søgefunktionen\n"
-" automatisk vil søge på alle ordene. Sider, der indeholder\n"
-" færre ord, vil ikke indgå i resultaterne."
+msgstr "Her fra kan du søge i disse dokumenter. Indtast dine søgeord\n i boksen nedenfor og klik på \"søg\". Bemærk at søgefunktionen\n automatisk vil søge på alle ordene. Sider, der indeholder\n færre ord, vil ikke indgå i resultaterne."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "søg"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Søgeresultater"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -783,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "Skjul søgeresultater"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "søg"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -831,11 +827,10 @@ msgid "Continued on next page"
msgstr "Fortsættes på næste side"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[billede: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[billede]"
-
diff --git a/sphinx/locale/de/LC_MESSAGES/sphinx.js b/sphinx/locale/de/LC_MESSAGES/sphinx.js
index 94e9df0d..06a63408 100644
--- a/sphinx/locale/de/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/de/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "de", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Suchergebnisse ausblenden", "Permalink to this definition": "Permalink zu dieser Definition", "Permalink to this headline": "Permalink zu dieser \u00dcberschrift"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "de", "plural_expr": "(n != 1)", "messages": {"Next topic": "N\u00e4chstes Thema", "Index": "Stichwortverzeichnis", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Willkommen! Dies ist", "Copyright": "Copyright", "C API changes": "C API-\u00c4nderungen", "quick access to all modules": "Schneller Zugriff auf alle Module", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Globaler Modulindex", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Ihre Suche ergab keine Treffer. Bitte stellen Sie sicher, dass alle W\u00f6rter richtig geschrieben sind und gen\u00fcgend Kategorien ausgew\u00e4hlt sind.", "Index &ndash; %(key)s": "Stichwortverzeichnis &ndash; %(key)s", "General Index": "Stichwortverzeichnis", "next chapter": "n\u00e4chstes Kapitel", "Search finished, found %s page(s) matching the search query.": "Die Suche ist fertig, es wurde(n) %s Seite(n) mit Treffern gefunden.", "previous chapter": "vorheriges Kapitel", "Permalink to this headline": "Permalink zu dieser \u00dcberschrift", "About these documents": "\u00dcber diese Dokumentation", "Preparing search...": "Suche wird vorbereitet...", ", in ": ", in ", "Navigation": "Navigation", "Expand sidebar": "Sidebar ausklappen", "the documentation for": "die Dokumentation f\u00fcr", "Complete Table of Contents": "Vollst\u00e4ndiges Inhaltsverzeichnis", "Contents": "Inhalt", "can be huge": "kann gro\u00df sein", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u00c4nderungen in Version %(version)s &mdash; %(docstitle)s", "Other changes": "Andere \u00c4nderungen", "Hide Search Matches": "Suchergebnisse ausblenden", "Quick search": "Schnellsuche", "Show Source": "Quelltext anzeigen", "Search": "Suche", "This Page": "Diese Seite", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Von hier aus k\u00f6nnen Sie die Dokumentation durchsuchen. Geben Sie Ihre Suchbegriffe in das untenstehende Feld ein und klicken Sie auf \"Suchen\". Bitte beachten Sie, dass die Suchfunktion automatisch nach all diesen Worten suchen wird. Seiten, die nicht alle Worte enthalten, werden nicht in der Ergebnisliste erscheinen.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Mit <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s erstellt.", "last updated": "zuletzt aktualisiert", "Collapse sidebar": "Sidebar einklappen", "Go": "Los", "Table Of Contents": "Inhalt", "Search within %(docstitle)s": "Suche in %(docstitle)s", "all functions, classes, terms": "Alle Funktionen, Klassen, Begriffe", "Please activate JavaScript to enable the search\n functionality.": "Bitte aktivieren Sie JavaScript, wenn Sie die Suchfunktion nutzen wollen.", "Indices and tables:": "Indizes und Tabellen:", "lists all sections and subsections": "Liste aller Kapitel und Unterkapitel", "Index pages by letter": "Stichwortverzeichnis nach Anfangsbuchstabe", "search": "suchen", "Permalink to this definition": "Permalink zu dieser Definition", "Previous topic": "Vorheriges Thema", "Overview": "\u00dcbersicht", "Last updated on %(last_updated)s.": "Zuletzt aktualisiert am %(last_updated)s.", "Searching": "Suchen", "search this documentation": "Durchsuche diese Dokumentation", "Automatically generated list of changes in version %(version)s": "Automatisch generierte Liste der \u00c4nderungen in Version %(version)s", "Full index on one page": "Gesamtes Stichwortverzeichnis auf einer Seite", "Enter search terms or a module, class or function name.": "Geben Sie Suchbegriffe oder einen Modul-, Klassen- oder Funktionsnamen ein.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Bibliotheks-\u00c4nderungen", "Search Page": "Suche", "Search Results": "Suchergebnisse"}}); \ No newline at end of file
diff --git a/sphinx/locale/de/LC_MESSAGES/sphinx.mo b/sphinx/locale/de/LC_MESSAGES/sphinx.mo
index 720a7447..72167089 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 0557ceea..e57f4c71 100644
--- a/sphinx/locale/de/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/de/LC_MESSAGES/sphinx.po
@@ -1,23 +1,23 @@
-# German translations for Sphinx.
+# Translations template for Sphinx.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
# Translators:
-# Georg Brandl <g.brandl@gmx.net>, 2013.
+# birkenfeld <g.brandl@gmx.net>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
"PO-Revision-Date: 2013-04-02 15:49+0000\n"
"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
-"Language-Team: German "
-"(http://www.transifex.com/projects/p/sphinx-1/language/de/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Language-Team: German (http://www.transifex.com/projects/p/sphinx-1/language/de/)\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"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -103,7 +103,8 @@ msgstr "Autor: "
msgid "%s %s"
msgstr "%s-%s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parameter"
@@ -566,9 +567,7 @@ msgstr "Los"
#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
msgid "Enter search terms or a module, class or function name."
-msgstr ""
-"Geben Sie Suchbegriffe oder einen Modul-, Klassen- oder Funktionsnamen "
-"ein."
+msgstr "Geben Sie Suchbegriffe oder einen Modul-, Klassen- oder Funktionsnamen ein."
#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
@@ -675,9 +674,7 @@ msgstr "Zuletzt aktualisiert am %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Mit <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s "
-"erstellt."
+msgstr "Mit <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s erstellt."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -712,30 +709,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Von hier aus können Sie die Dokumentation durchsuchen. Geben Sie Ihre "
-"Suchbegriffe in das untenstehende Feld ein und klicken Sie auf "
-"\"Suchen\". Bitte beachten Sie, dass die Suchfunktion automatisch nach "
-"all diesen Worten suchen wird. Seiten, die nicht alle Worte enthalten, "
-"werden nicht in der Ergebnisliste erscheinen."
+msgstr "Von hier aus können Sie die Dokumentation durchsuchen. Geben Sie Ihre Suchbegriffe in das untenstehende Feld ein und klicken Sie auf \"Suchen\". Bitte beachten Sie, dass die Suchfunktion automatisch nach all diesen Worten suchen wird. Seiten, die nicht alle Worte enthalten, werden nicht in der Ergebnisliste erscheinen."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "suchen"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Suchergebnisse"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-"Ihre Suche ergab keine Treffer. Bitte stellen Sie sicher, dass alle "
-"Wörter richtig geschrieben sind und genügend Kategorien ausgewählt sind."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Ihre Suche ergab keine Treffer. Bitte stellen Sie sicher, dass alle Wörter richtig geschrieben sind und genügend Kategorien ausgewählt sind."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -841,4 +834,3 @@ msgstr "[Bild: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[Bild]"
-
diff --git a/sphinx/locale/es/LC_MESSAGES/sphinx.js b/sphinx/locale/es/LC_MESSAGES/sphinx.js
index de44820d..cd09807c 100644
--- a/sphinx/locale/es/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/es/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "es", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Ocultar coincidencias de la b\u00fasqueda", "Permalink to this definition": "Enlazar permanentemente con esta definici\u00f3n", "Permalink to this headline": "Enlazar permanentemente con este t\u00edtulo"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "es", "plural_expr": "(n != 1)", "messages": {"Next topic": "Pr\u00f3ximo tema", "Index": "\u00cdndice", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "\u00a1Bienvenido! Este es", "Copyright": "Copyright", "C API changes": "Cambios en la API C", "quick access to all modules": "acceso r\u00e1pido a todos los m\u00f3dulos", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "\u00cdndice Global de M\u00f3dulos", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Su b\u00fasqueda no coincide con ning\u00fan documentos. Por favor, aseg\u00farese de que todas las palabras est\u00e9n correctamente escritas y que usted all\u00e1 seleccionado las suficientes categor\u00edas.", "Index &ndash; %(key)s": "\u00cdndice &ndash; %(key)s", "General Index": "\u00cdndice General", "next chapter": "pr\u00f3ximo cap\u00edtulo", "Search finished, found %s page(s) matching the search query.": "B\u00fasqueda finalizada, encontr\u00f3 %s p\u00e1gina(s) acorde con la consulta de b\u00fasqueda.", "previous chapter": "cap\u00edtulo anterior", "Permalink to this headline": "Enlazar permanentemente con este t\u00edtulo", "About these documents": "Sobre este documento", "Preparing search...": "Preparando b\u00fasqueda...", ", in ": ", en ", "Navigation": "Navegaci\u00f3n", "Expand sidebar": "Expandir barra lateral", "the documentation for": "la documentaci\u00f3n para", "Complete Table of Contents": "\u00cdndice de contenidos completo", "Contents": "Contenidos", "can be huge": "puede ser muy grande", "Changes in Version %(version)s &mdash; %(docstitle)s": "Cambios en la versi\u00f3n %(version)s &mdash; %(docstitle)s", "Other changes": "Otros cambios", "Hide Search Matches": "Ocultar coincidencias de la b\u00fasqueda", "Quick search": "B\u00fasqueda r\u00e1pida", "Show Source": "Mostrar el c\u00f3digo", "Search": "B\u00fasqueda", "This Page": "Esta p\u00e1gina", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Este es el di\u00e1logo de b\u00fasqueda. Introduce los t\u00e9rminos en el\n di\u00e1logo siguiente y pulsa \"buscar\". Note que el asistente buscar\u00e1 \n autom\u00e1ticamente todas las palabras. Las p\u00e1ginas que contengan \n menos palabras no aparecer\u00e1n en la lista de resultados.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Creado con <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "actualizado por \u00faltima vez el", "Collapse sidebar": "Contraer barra lateral", "Go": "Ir a", "Table Of Contents": "Tabla de Contenidos", "Search within %(docstitle)s": "Buscar en %(docstitle)s", "all functions, classes, terms": "todas las funciones, clases, t\u00e9rminos", "Please activate JavaScript to enable the search\n functionality.": "Por favor, active JavaScript para habilitar la funcionalidad\n de b\u00fasqueda.", "Indices and tables:": "\u00cdndices y tablas:", "lists all sections and subsections": "muestra todas las secciones y subsecciones", "Index pages by letter": "\u00cdndice alfab\u00e9tico de p\u00e1ginas", "search": "buscar", "Permalink to this definition": "Enlazar permanentemente con esta definici\u00f3n", "Previous topic": "Tema anterior", "Overview": "Resumen", "Last updated on %(last_updated)s.": "Actualizado por \u00faltima vez en %(last_updated)s.", "Searching": "Buscando", "search this documentation": "buscar en esta documentaci\u00f3n", "Automatically generated list of changes in version %(version)s": "Lista de cambios generada autom\u00e1ticamente en la versi\u00f3n %(version)s", "Full index on one page": "\u00cdndice completo en una p\u00e1gina", "Enter search terms or a module, class or function name.": "Introduzca los t\u00e9rminos de b\u00fasqueda o un nombre de m\u00f3dulo, clase o funci\u00f3n.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\\\"%(path)s\\\">Copyright</a> %(copyright)s.", "Library changes": "Cambios en la biblioteca", "Search Page": "P\u00e1gina de B\u00fasqueda", "Search Results": "Resultados de la b\u00fasqueda"}}); \ No newline at end of file
diff --git a/sphinx/locale/es/LC_MESSAGES/sphinx.mo b/sphinx/locale/es/LC_MESSAGES/sphinx.mo
index e533305b..16c24927 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 aa69fab3..2b7e24cb 100644
--- a/sphinx/locale/es/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/es/LC_MESSAGES/sphinx.po
@@ -1,24 +1,24 @@
-# Spanish translations for Sphinx.
+# Translations template for Sphinx.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
# Translators:
-# Guillem Borrell <guillem@torroja.dmt.upm.es>, 2011.
-# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2013.
+# Guillem Borrell <guillem@torroja.dmt.upm.es>, 2011
+# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2013-04-04 23:05+0000\n"
+"PO-Revision-Date: 2013-04-06 14:38+0000\n"
"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>\n"
-"Language-Team: Spanish "
-"(http://www.transifex.com/projects/p/sphinx-1/language/es/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/sphinx-1/language/es/)\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"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -104,7 +104,8 @@ msgstr "Autor: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parámetros"
@@ -448,7 +449,7 @@ msgstr "Por hacer"
#: sphinx/ext/todo.py:110
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(El <<entrada original>> se encuentra en %s, en la línea %d.)"
+msgstr "(El <<entrada original>> se encuentra en %s, en la línea %d.)"
#: sphinx/ext/todo.py:119
msgid "original entry"
@@ -567,9 +568,7 @@ msgstr "Ir a"
#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
msgid "Enter search terms or a module, class or function name."
-msgstr ""
-"Introduzca los términos de búsqueda o un nombre de módulo, clase o "
-"función."
+msgstr "Introduzca los términos de búsqueda o un nombre de módulo, clase o función."
#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
@@ -676,9 +675,7 @@ msgstr "Actualizado por última vez en %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Creado con <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Creado con <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -705,9 +702,7 @@ msgstr "próximo capítulo"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Por favor, active JavaScript para habilitar la funcionalidad\n"
-" de búsqueda."
+msgstr "Por favor, active JavaScript para habilitar la funcionalidad\n de búsqueda."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -715,30 +710,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Este es el diálogo de búsqueda. Introduce los términos en el\n"
-" diálogo siguiente y pulsa \"buscar\". Note que el asistente buscará \n"
-" automáticamente todas las palabras. Las páginas que contengan \n"
-" menos palabras no aparecerán en la lista de resultados."
+msgstr "Este es el diálogo de búsqueda. Introduce los términos en el\n diálogo siguiente y pulsa \"buscar\". Note que el asistente buscará \n automáticamente todas las palabras. Las páginas que contengan \n menos palabras no aparecerán en la lista de resultados."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "buscar"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Resultados de la búsqueda"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-"Su búsqueda no coincide con ningún documentos. Por favor, asegúrese de "
-"que todas las palabras estén correctamente escritas y que usted allá "
-"seleccionado las suficientes categorías."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Su búsqueda no coincide con ningún documentos. Por favor, asegúrese de que todas las palabras estén correctamente escritas y que usted allá seleccionado las suficientes categorías."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -800,9 +791,7 @@ msgstr "Preparando búsqueda..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
-"Búsqueda finalizada, encontró %s página(s) acorde con la consulta de "
-"búsqueda."
+msgstr "Búsqueda finalizada, encontró %s página(s) acorde con la consulta de búsqueda."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
@@ -846,4 +835,3 @@ msgstr "[imagen: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[imagen]"
-
diff --git a/sphinx/locale/et/LC_MESSAGES/sphinx.js b/sphinx/locale/et/LC_MESSAGES/sphinx.js
index 98e728c4..886a0cb6 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\u00fcsiviit sellele definitsioonile", "Permalink to this headline": "P\u00fcsiviit sellele pealkirjale"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "et", "plural_expr": "(n != 1)", "messages": {"Next topic": "J\u00e4rgmine teema", "Index": "Indeks", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Autori\u00f5igused", "C API changes": "C API muutused", "quick access to all modules": "kiire ligip\u00e4\u00e4s k\u00f5igile moodulitele", "&copy; Copyright %(copyright)s.": "&copy; Autori\u00f5igused %(copyright)s.", "Global Module Index": "Globaalne moodulite indeks", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Indeks &ndash; %(key)s", "General Index": "\u00dcldindeks", "next chapter": "j\u00e4rgmine peat\u00fckk", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "eelmine peat\u00fckk", "Permalink to this headline": "P\u00fcsiviit sellele pealkirjale", "About these documents": "Info selle dokumentatsiooni kohta", "Preparing search...": "", ", in ": "", "Navigation": "Navigatsioon", "Expand sidebar": "N\u00e4ita k\u00fclgriba", "the documentation for": "", "Complete Table of Contents": "T\u00e4ielik sisukord", "Contents": "Sisukord", "can be huge": "v\u00f5ib olla v\u00e4ga suur", "Changes in Version %(version)s &mdash; %(docstitle)s": "Muutused versioonis %(version)s &mdash; %(docstitle)s", "Other changes": "\u00dclej\u00e4\u00e4nud muutused", "Hide Search Matches": "Varja otsingutulemused", "Quick search": "Kiirotsing", "Show Source": "N\u00e4ita l\u00e4htekoodi", "Search": "Otsing", "This Page": "K\u00e4esolev leht", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Siin saad otsida k\u00e4esolevast dokumentatsioonist. Sisesta otsis\u00f5nad allolevasse lahtrisse ning kl\u00f5psa \"Otsi\". Tulemuseks antakse lehek\u00fcljed, mis sisaldavad k\u00f5iki otsis\u00f5nasid.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Loodud <a href=\"http://sphinx-doc.org/\">Sphinxiga</a> (versioon: %(sphinx_version)s).", "last updated": "viimati uuendatud", "Collapse sidebar": "Varja k\u00fclgriba", "Go": "Otsi", "Table Of Contents": "Sisukord", "Search within %(docstitle)s": "Otsi %(docstitle)s piires", "all functions, classes, terms": "k\u00f5ik funktsioonid, klassid ja terminid", "Please activate JavaScript to enable the search\n functionality.": "Otsingu v\u00f5imaldamiseks tuleb aktiveerida JavaScript.", "Indices and tables:": "Indeksid ja tabelid", "lists all sections and subsections": "toob v\u00e4lja k\u00f5iks sektsioonid ja alamsektsioonid", "Index pages by letter": "Indeksi lehek\u00fcljed algust\u00e4he kaupa", "search": "otsi", "Permalink to this definition": "P\u00fcsiviit sellele definitsioonile", "Previous topic": "Eelmine teema", "Overview": "\u00dclevaade", "Last updated on %(last_updated)s.": "Viimati uuendatud %(last_updated)s.", "Searching": "Otsimine", "search this documentation": "otsi sellest dokumentatsioonist", "Automatically generated list of changes in version %(version)s": "Automaatselt genereeritud nimekiri versiooni %(version)s muutustest", "Full index on one page": "T\u00e4isindeks \u00fchel lehel", "Enter search terms or a module, class or function name.": "Sisesta otsingus\u00f5na v\u00f5i mooduli/klassi/funktsiooni nimi.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Autori\u00f5igused</a> %(copyright)s.", "Library changes": "Teegi muutused", "Search Page": "Otsinguleht", "Search Results": "Otsingutulemused"}}); \ 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 e87aee88..bb205018 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 48d4c1cc..2908841d 100644
--- a/sphinx/locale/et/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/et/LC_MESSAGES/sphinx.po
@@ -1,23 +1,25 @@
-# Estonian translations for Sphinx.
-# Sphinxi eesti keele tõlge.
-#
-# Copyright (C) 2011‒2012 Pocoo Team.
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
+#
+# Translators:
# Aivar Annamaa <aivar.annamaa@gmail.com>, 2011
# Ivar Smolin <okul at linux ee>, 2012
+# Ivar Smolin <okul@linux.ee>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.1.3Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2012-09-15 12:56+0300\n"
+"PO-Revision-Date: 2013-07-08 07:23+0000\n"
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
-"Language-Team: \n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Language-Team: Estonian (http://www.transifex.com/projects/p/sphinx-1/language/et/)\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"
+"Language: et\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -103,7 +105,8 @@ msgstr "Autor: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parameetrid"
@@ -420,9 +423,9 @@ msgid "[graph]"
msgstr ""
#: sphinx/ext/intersphinx.py:234
-#, fuzzy, python-format
+#, python-format
msgid "(in %s v%s)"
-msgstr "(in %s v%s)"
+msgstr ""
#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
msgid "[source]"
@@ -581,13 +584,12 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "dokumentatsioon"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "viimati uuendatud"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
@@ -674,9 +676,7 @@ msgstr "Viimati uuendatud %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Loodud <a href=\"http://sphinx-doc.org/\">Sphinxiga</a> (versioon: "
-"%(sphinx_version)s)."
+msgstr "Loodud <a href=\"http://sphinx-doc.org/\">Sphinxiga</a> (versioon: %(sphinx_version)s)."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -711,25 +711,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Siin saad otsida käesolevast dokumentatsioonist. Sisesta otsisõnad "
-"allolevasse lahtrisse ning klõpsa \"Otsi\". Tulemuseks antakse "
-"leheküljed, mis sisaldavad kõiki otsisõnasid."
+msgstr "Siin saad otsida käesolevast dokumentatsioonist. Sisesta otsisõnad allolevasse lahtrisse ning klõpsa \"Otsi\". Tulemuseks antakse leheküljed, mis sisaldavad kõiki otsisõnasid."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "otsi"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Otsingutulemused"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -782,9 +782,8 @@ msgid "Hide Search Matches"
msgstr "Varja otsingutulemused"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "otsi"
+msgstr "Otsimine"
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -830,11 +829,10 @@ msgid "Continued on next page"
msgstr "Jätkub järgmisel lehel"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[pilt: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[pilt]"
-
diff --git a/sphinx/locale/eu/LC_MESSAGES/sphinx.js b/sphinx/locale/eu/LC_MESSAGES/sphinx.js
index 01933984..e4bfd8bb 100644
--- a/sphinx/locale/eu/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/eu/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "eu", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Bilaketa bat-etortzeak ezkutatu", "Permalink to this definition": "Definizio honetarako esteka iraunkorra", "Permalink to this headline": "Goiburu honetarako esteka iraunkorra"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "eu", "plural_expr": "(n != 1)", "messages": {"Next topic": "Hurrengo gaia", "Index": "Indizea", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Copyright", "C API changes": "C API aldaketak", "quick access to all modules": "modulu guztietara atzipen azkarra", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Modulu indize globala", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Indizea &ndash; %(key)s", "General Index": "Indize orokorra", "next chapter": "hurrengo kapitulua", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "aurreko kapitulua", "Permalink to this headline": "Goiburu honetarako esteka iraunkorra", "About these documents": "Dokumentu hauen inguruan", "Preparing search...": "", ", in ": "", "Navigation": "Nabigazioa", "Expand sidebar": "Alboko barra luzatu", "the documentation for": "", "Complete Table of Contents": "Eduki taula osoa", "Contents": "Edukiak", "can be huge": "handia izan daiteke", "Changes in Version %(version)s &mdash; %(docstitle)s": "%(version)s bertsioko aldaketak &mdash; %(docstitle)s", "Other changes": "Beste aldaketak", "Hide Search Matches": "Bilaketa bat-etortzeak ezkutatu", "Quick search": "Bilaketa azkarra", "Show Source": "Iturburua ikusi", "Search": "Bilatu", "This Page": "Orri hau", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Honekin dokumentu hauetan bilatu dezakezu. Sartu zure bilaketa hitzak\nondoko kutxan eta \"bilatu\" sakatu. Kontutan eduki bilaketa funtzioak\nhitz guztiak bilatuko dituela. Hitz gutxiago dituzten orriak ez dira \nemaitzen zerrendan agertuko.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s erabiliz sortutakoa.", "last updated": "", "Collapse sidebar": "Alboko barra tolestu", "Go": "Joan", "Table Of Contents": "Eduki taula", "Search within %(docstitle)s": "Bilatu %(docstitle)s(e)n", "all functions, classes, terms": "funtzio, klase, termino guztiak", "Please activate JavaScript to enable the search\n functionality.": "Mesedez, gaitu JavaScript-a bilaketa erabili ahal izateko.", "Indices and tables:": "Indizeak eta taulak:", "lists all sections and subsections": "atal eta azpiatal guztiak zerrendatu", "Index pages by letter": "Indize orriak hizkika", "search": "bilatu", "Permalink to this definition": "Definizio honetarako esteka iraunkorra", "Previous topic": "Aurreko gaia", "Overview": "Gainbegirada", "Last updated on %(last_updated)s.": "Azken aldaketa: %(last_updated)s.", "Searching": "", "search this documentation": "dokumentazio honetan bilatu", "Automatically generated list of changes in version %(version)s": "Automatikoki sortutako %(version)s bertsioaren aldaketen zerrenda", "Full index on one page": "Indize guztia orri batean", "Enter search terms or a module, class or function name.": "Sartu bilaketa terminoa edo modulu, klase edo funtzioaren izena.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Liburutegi aldaketak", "Search Page": "Bilaketa orria", "Search Results": "Bilaketa emaitzak"}}); \ No newline at end of file
diff --git a/sphinx/locale/eu/LC_MESSAGES/sphinx.mo b/sphinx/locale/eu/LC_MESSAGES/sphinx.mo
index 76cd0765..7c83471d 100644
--- a/sphinx/locale/eu/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/eu/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/eu/LC_MESSAGES/sphinx.po b/sphinx/locale/eu/LC_MESSAGES/sphinx.po
index 263cdbeb..e72f3b75 100644
--- a/sphinx/locale/eu/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/eu/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Basque translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# Ales Zabala Alava <shagi@gisa-elkartea.org>, 2011.
-#
+#
+# Translators:
+# Ales Zabala Alava <shagi@gisa-elkartea.org>, 2011
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.1pre/9523af9ba9aa+\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2013-02-07 11:51+0100\n"
-"Last-Translator: Ales Zabala Alava (Shagi) <shagi@gisa-elkartea.org>\n"
-"Language-Team: Basque\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:18+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Basque (http://www.transifex.com/projects/p/sphinx-1/language/eu/)\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"
+"Language: eu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -101,7 +103,8 @@ msgstr "Egilea:"
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametroak"
@@ -579,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "dokumentazioa"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -672,9 +674,7 @@ msgstr "Azken aldaketa: %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s erabiliz"
-" sortutakoa."
+msgstr "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s erabiliz sortutakoa."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -709,26 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Honekin dokumentu hauetan bilatu dezakezu. Sartu zure bilaketa hitzak\n"
-"ondoko kutxan eta \"bilatu\" sakatu. Kontutan eduki bilaketa funtzioak\n"
-"hitz guztiak bilatuko dituela. Hitz gutxiago dituzten orriak ez dira \n"
-"emaitzen zerrendan agertuko."
+msgstr "Honekin dokumentu hauetan bilatu dezakezu. Sartu zure bilaketa hitzak\nondoko kutxan eta \"bilatu\" sakatu. Kontutan eduki bilaketa funtzioak\nhitz guztiak bilatuko dituela. Hitz gutxiago dituzten orriak ez dira \nemaitzen zerrendan agertuko."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "bilatu"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Bilaketa emaitzak"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -781,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "Bilaketa bat-etortzeak ezkutatu"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "bilatu"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -829,11 +827,10 @@ msgid "Continued on next page"
msgstr "Hurrengo orrian jarraitzen du"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[irudia: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[irudia]"
-
diff --git a/sphinx/locale/fa/LC_MESSAGES/sphinx.js b/sphinx/locale/fa/LC_MESSAGES/sphinx.js
index d8ec65e0..c732a969 100644
--- a/sphinx/locale/fa/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/fa/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "fa", "plural_expr": "(n > 1)", "messages": {"Hide Search Matches": "\u0639\u062f\u0645 \u0646\u0645\u0627\u06cc\u0634 \u0646\u062a\u0627\u06cc\u062c \u06cc\u0627\u0641\u062a \u0634\u062f\u0647", "Permalink to this definition": "\u0644\u06cc\u0646\u06a9 \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0639\u0631\u06cc\u0641", "Permalink to this headline": "\u0644\u06cc\u0646\u06a9 \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u0633\u0631 \u0645\u0642\u0627\u0644\u0647"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "fa", "plural_expr": "0", "messages": {"Next topic": "\u0645\u0648\u0636\u0648\u0639 \u0628\u0639\u062f\u06cc", "Index": "\u0641\u0647\u0631\u0633\u062a", "%(filename)s &mdash; %(docstitle)s": "", "Welcome! This is": "", "Copyright": "\u06a9\u067e\u06cc \u0631\u0627\u06cc\u062a", "C API changes": "C API \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a", "quick access to all modules": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0633\u0631\u06cc\u0639 \u0628\u0647 \u062a\u0645\u0627\u0645\u06cc \u0645\u062a\u062f\u0647\u0627", "&copy; Copyright %(copyright)s.": "", "Global Module Index": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0644\u06cc \u0645\u0627\u0698\u0648\u0644 \u0647\u0627", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "\u0641\u0647\u0631\u0633\u062a &ndash; %(key)s", "General Index": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0644\u06cc", "next chapter": "\u0641\u0635\u0644 \u0628\u0639\u062f\u06cc", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\u0641\u0635\u0644 \u0642\u0628\u0644\u06cc", "Permalink to this headline": "\u0644\u06cc\u0646\u06a9 \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u0633\u0631 \u0645\u0642\u0627\u0644\u0647", "About these documents": "\u062f\u0631\u0628\u0627\u0631\u0647 \u0627\u06cc\u0646 \u0645\u0633\u062a\u0646\u062f\u0627\u062a", "Preparing search...": "", ", in ": "", "Navigation": "\u0646\u0627\u0648\u0628\u0631\u06cc", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0645\u0644 \u0645\u0637\u0627\u0644\u0628", "Contents": "", "can be huge": "", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0646\u0633\u062e\u0647 %(version)s &mdash; %(docstitle)s", "Other changes": "\u062f\u06af\u0631 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a", "Hide Search Matches": "\u0639\u062f\u0645 \u0646\u0645\u0627\u06cc\u0634 \u0646\u062a\u0627\u06cc\u062c \u06cc\u0627\u0641\u062a \u0634\u062f\u0647", "Quick search": "\u062c\u0633\u062a\u062c\u0648 \u0633\u0631\u06cc\u0639", "Show Source": "\u0646\u0645\u0627\u06cc\u0634 \u0633\u0648\u0631\u0633", "Search": "\u062c\u0633\u062a\u062c\u0648", "This Page": "\u0635\u0641\u062d\u0647 \u0641\u0639\u0644\u06cc", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": ". <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0628\u0627", "last updated": "", "Collapse sidebar": "", "Go": "\u0628\u0631\u0648", "Table Of Contents": "\u0641\u0647\u0631\u0633\u062a \u0639\u0646\u0627\u0648\u06cc\u0646", "Search within %(docstitle)s": "\u062c\u0633\u062a\u062c\u0648 \u062f\u0631 %(docstitle)s", "all functions, classes, terms": "\u062a\u0645\u0627\u0645\u06cc \u062a\u0648\u0627\u0628\u0639 \u060c \u06a9\u0644\u0627\u0633 \u0647\u0627 \u060c \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a", "Please activate JavaScript to enable the search\n functionality.": "", "Indices and tables:": "\u0627\u06cc\u0646\u062f\u06a9\u0633 \u0647\u0627 \u0648 \u062c\u062f\u0627\u0648\u0644:", "lists all sections and subsections": "\u0641\u0647\u0631\u0633\u062a \u062a\u0645\u0627\u0645\u06cc \u0628\u062e\u0634 \u0647\u0627 \u0648 \u0632\u06cc\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u0647\u0627", "Index pages by letter": "\u0641\u0647\u0631\u0633\u062a \u0635\u0641\u062d\u0627\u062a \u0628\u0631 \u0627\u0633\u0627\u0633 \u062d\u0631\u0648\u0641", "search": "\u062c\u0633\u062a\u062c\u0648", "Permalink to this definition": "\u0644\u06cc\u0646\u06a9 \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0639\u0631\u06cc\u0641", "Previous topic": "\u0645\u0648\u0636\u0648\u0639 \u0642\u0628\u0644\u06cc", "Overview": "\u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0645\u0627\u0644\u06cc", "Last updated on %(last_updated)s.": ". %(last_updated)s \u0622\u062e\u0631\u06cc\u0646 \u0628\u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0631", "Searching": "", "search this documentation": "\u062c\u0633\u062a\u062c\u0648 \u062f\u0631 \u0627\u06cc\u0646 \u0627\u0633\u0646\u0627\u062f", "Automatically generated list of changes in version %(version)s": "\u0644\u06cc\u0633\u062a \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0646\u0633\u062e\u0647 %(version)s", "Full index on one page": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0645\u0644 \u062f\u0631 \u06cc\u06a9 \u0635\u0641\u062d\u0647", "Enter search terms or a module, class or function name.": "", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "", "Library changes": "\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u06cc\u06cc", "Search Page": "\u0635\u0641\u062d\u0647 \u062c\u0633\u062a\u062c\u0648", "Search Results": "\u0646\u062a\u0627\u06cc\u062c \u062c\u0633\u062a\u062c\u0648"}}); \ No newline at end of file
diff --git a/sphinx/locale/fa/LC_MESSAGES/sphinx.mo b/sphinx/locale/fa/LC_MESSAGES/sphinx.mo
index c1bc66e5..206d80fb 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 c197513e..b0332c01 100644
--- a/sphinx/locale/fa/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fa/LC_MESSAGES/sphinx.po
@@ -1,20 +1,22 @@
-# Farsi translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.0.3\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Omid Raha <omidraha.com@gmail.com>\n"
-"Language-Team: Omid Raha <omidraha.com@gmail.com>\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"PO-Revision-Date: 2013-04-02 15:19+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/sphinx-1/language/fa/)\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"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: sphinx/config.py:81
#, python-format
@@ -27,9 +29,9 @@ msgid "see %s"
msgstr ""
#: sphinx/environment.py:1513
-#, fuzzy, python-format
+#, python-format
msgid "see also %s"
-msgstr "همچنین ملاحظه نمائید %s"
+msgstr ""
#: sphinx/environment.py:1570
msgid "Symbols"
@@ -88,9 +90,8 @@ msgid "Module author: "
msgstr "نویسنده این ماژول:"
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "نویسنده این ماژول:"
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -101,7 +102,8 @@ msgstr ":نویسنده"
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "پارامترها"
@@ -142,14 +144,12 @@ msgstr "%s (C متغیر)"
#: sphinx/domains/c.py:203 sphinx/domains/cpp.py:1207
#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
-#, fuzzy
msgid "function"
-msgstr "تابع"
+msgstr ""
#: sphinx/domains/c.py:204 sphinx/domains/cpp.py:1208
-#, fuzzy
msgid "member"
-msgstr "عضو"
+msgstr ""
#: sphinx/domains/c.py:205
msgid "macro"
@@ -160,33 +160,32 @@ msgid "type"
msgstr ""
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "متغیر"
+msgstr ""
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
msgstr ""
#: sphinx/domains/cpp.py:1038
-#, fuzzy, python-format
+#, python-format
msgid "%s (C++ class)"
-msgstr "%s (C++ کلاس در)"
+msgstr ""
#: sphinx/domains/cpp.py:1061
-#, fuzzy, python-format
+#, python-format
msgid "%s (C++ type)"
-msgstr "%s (C++ نوع)"
+msgstr ""
#: sphinx/domains/cpp.py:1081
-#, fuzzy, python-format
+#, python-format
msgid "%s (C++ member)"
-msgstr "%s (C++ عضو)"
+msgstr ""
#: sphinx/domains/cpp.py:1137
-#, fuzzy, python-format
+#, python-format
msgid "%s (C++ function)"
-msgstr "%s (C++ تابع)"
+msgstr ""
#: sphinx/domains/cpp.py:1206 sphinx/domains/javascript.py:165
#: sphinx/domains/python.py:562
@@ -204,9 +203,9 @@ msgid "%s() (%s method)"
msgstr "%s() (%s متد)"
#: sphinx/domains/javascript.py:109
-#, fuzzy, python-format
+#, python-format
msgid "%s() (class)"
-msgstr "%s() (کلاس در)"
+msgstr ""
#: sphinx/domains/javascript.py:111
#, python-format
@@ -219,9 +218,8 @@ msgid "%s (%s attribute)"
msgstr "%s (%s مشخصه)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "پارامترها"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -232,9 +230,8 @@ msgid "attribute"
msgstr ""
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "متغیر"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -282,14 +279,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s متد استاتیک)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s متد)"
+msgstr ""
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s متد)"
+msgstr ""
#: sphinx/domains/python.py:353
#, python-format
@@ -302,9 +299,8 @@ msgid "%s (module)"
msgstr "%s (ماژول)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "فهرست ماژول ها"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -335,9 +331,8 @@ msgid "module"
msgstr "ماژول"
#: sphinx/domains/python.py:696
-#, fuzzy
msgid " (deprecated)"
-msgstr " (منسوخ شده)"
+msgstr ""
#: sphinx/domains/rst.py:53
#, python-format
@@ -380,9 +375,8 @@ msgid "reference label"
msgstr ""
#: sphinx/domains/std.py:418
-#, fuzzy
msgid "environment variable"
-msgstr "متغیرهای عمومی؛"
+msgstr ""
#: sphinx/domains/std.py:419
msgid "program option"
@@ -464,9 +458,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "ماژول"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -572,9 +565,8 @@ msgid "Go"
msgstr "برو"
#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
-#, fuzzy
msgid "Enter search terms or a module, class or function name."
-msgstr "نام یک ماژول ، کلاس و یا تابع را وارد نمائید"
+msgstr ""
#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
@@ -589,9 +581,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "جستجو در این اسناد"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -682,9 +673,7 @@ msgstr ". %(last_updated)s آخرین بروز رسانی در"
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-". <a href=\"http://sphinx-doc.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
@@ -714,32 +703,30 @@ msgid ""
msgstr ""
#: sphinx/themes/basic/search.html:32
-#, fuzzy
msgid ""
"From here you can search these documents. Enter your search\n"
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
msgstr ""
-"در اینجا شما می توانید مستندات را جستجو نمائید ، کلماتی را در کادر جستجو "
-"وارد کنید و سپس بر روی دکمه جستجو کلیک نمائید ، توجه کنید که تابع جستجو "
-"گر امر جستجو را بطور خودکار برای تمامی کلمات دنبال خواهد کرد .صفحاتی که "
-"شامل کلمات کمتری هستند ، در لیست جستجو نمایش داده نخواهند شد."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "جستجو"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "نتایج جستجو"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -792,9 +779,8 @@ msgid "Hide Search Matches"
msgstr "عدم نمایش نتایج یافت شده"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "جستجو"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -836,9 +822,8 @@ msgid "continued from previous page"
msgstr ""
#: sphinx/writers/latex.py:710
-#, fuzzy
msgid "Continued on next page"
-msgstr "فهرست کامل در یک صفحه"
+msgstr ""
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
#, python-format
@@ -848,4 +833,3 @@ msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr ""
-
diff --git a/sphinx/locale/fi/LC_MESSAGES/sphinx.js b/sphinx/locale/fi/LC_MESSAGES/sphinx.js
index 718be998..c85994d8 100644
--- a/sphinx/locale/fi/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/fi/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "fi", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Piilota l\u00f6ydetyt", "Permalink to this definition": "", "Permalink to this headline": ""}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "fi", "plural_expr": "(n != 1)", "messages": {"Next topic": ">>", "Index": "Sis\u00e4llysluettelo", "%(filename)s &mdash; %(docstitle)s": "", "Welcome! This is": "", "Copyright": "", "C API changes": "", "quick access to all modules": "", "&copy; Copyright %(copyright)s.": "", "Global Module Index": "Yleinen moduulien sis\u00e4llysluettelo", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "", "General Index": "Yleinen sis\u00e4llysluettelo", "next chapter": ">>", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "<<", "Permalink to this headline": "", "About these documents": "Tietoja t\u00e4st\u00e4 documentist\u00e4", "Preparing search...": "", ", in ": "", "Navigation": "Navikointi", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "", "Contents": "", "can be huge": "voi olla iso", "Changes in Version %(version)s &mdash; %(docstitle)s": "Muutos versiosta %(version)s &mdash; %(docstitle)s", "Other changes": "", "Hide Search Matches": "Piilota l\u00f6ydetyt", "Quick search": "Pikahaku", "Show Source": "N\u00e4yt\u00e4 l\u00e4hdekoodina", "Search": "Etsi", "This Page": "T\u00e4m\u00e4 sivu", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Anna hakusanat kokonaan, osasanoilla ei haeta.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", "last updated": "", "Collapse sidebar": "", "Go": "Siirry", "Table Of Contents": "Sis\u00e4llysluettelo", "Search within %(docstitle)s": "", "all functions, classes, terms": "", "Please activate JavaScript to enable the search\n functionality.": "Javascript pit\u00e4\u00e4 olla sallittu, jotta etsint\u00e4 toimii.", "Indices and tables:": "", "lists all sections and subsections": "", "Index pages by letter": "Hakemisto aakkostus sivuttain", "search": "etsi", "Permalink to this definition": "", "Previous topic": "<<", "Overview": "Yhteenveto", "Last updated on %(last_updated)s.": "", "Searching": "", "search this documentation": "", "Automatically generated list of changes in version %(version)s": "Automaattisesti luotu muutoshistoria alkaen versiosta %(version)s", "Full index on one page": "Hakemisto yhten\u00e4 luettelona", "Enter search terms or a module, class or function name.": "Anna etsitt\u00e4v\u00e4 termi tai moduuli, luokka tai funktio", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "", "Library changes": "", "Search Page": "Etsi sivu", "Search Results": "Etsinn\u00e4n tulos"}}); \ No newline at end of file
diff --git a/sphinx/locale/fi/LC_MESSAGES/sphinx.mo b/sphinx/locale/fi/LC_MESSAGES/sphinx.mo
index 64c64487..c7a92b51 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 732e45c5..02ed293e 100644
--- a/sphinx/locale/fi/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fi/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Finnish translations for Sphinx.
-# Copyright (C) 2009 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.6\n"
-"Report-Msgid-Bugs-To: sphinx@awot.fi\n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Jukka Inkeri <sphinx@awot.fi>\n"
-"Language-Team: fi <sphinx@awot.fi>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:20+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/sphinx-1/language/fi/)\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"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -28,9 +30,9 @@ msgid "see %s"
msgstr ""
#: sphinx/environment.py:1513
-#, fuzzy, python-format
+#, python-format
msgid "see also %s"
-msgstr "katso myös %s"
+msgstr ""
#: sphinx/environment.py:1570
msgid "Symbols"
@@ -89,9 +91,8 @@ msgid "Module author: "
msgstr "Moduulin kirjoittaja: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Moduulin kirjoittaja: "
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -102,7 +103,8 @@ msgstr "Tekijä: "
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr ""
@@ -143,9 +145,8 @@ msgstr ""
#: sphinx/domains/c.py:203 sphinx/domains/cpp.py:1207
#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
-#, fuzzy
msgid "function"
-msgstr "Varoitus"
+msgstr ""
#: sphinx/domains/c.py:204 sphinx/domains/cpp.py:1208
msgid "member"
@@ -299,9 +300,8 @@ msgid "%s (module)"
msgstr "%s (moduuli)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Moduuli sisällysluettelo"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -459,9 +459,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "moduuli"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -712,20 +711,23 @@ msgid ""
" containing fewer words won't appear in the result list."
msgstr "Anna hakusanat kokonaan, osasanoilla ei haeta."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "etsi"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Etsinnän tulos"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -778,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "Piilota löydetyt"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "etsi"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -833,4 +834,3 @@ msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr ""
-
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.js b/sphinx/locale/fr/LC_MESSAGES/sphinx.js
index ed38a28d..03be9dbd 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "fr", "plural_expr": "(n > 1)", "messages": {"Hide Search Matches": "Cacher les r\u00e9sultats de la recherche", "Permalink to this definition": "Lien permanent vers cette d\u00e9finition", "Permalink to this headline": "Lien permanent vers ce titre"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "fr", "plural_expr": "(n > 1)", "messages": {"Next topic": "Sujet suivant", "Index": "Index", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Bienvenue ! ceci est", "Copyright": "Copyright", "C API changes": "Modifications de l'API C", "quick access to all modules": "acc\u00e8s rapide \u00e0 l'ensemble des modules", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Index g\u00e9n\u00e9ral des modules", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Votre recherche ne correspond \u00e0 aucuns documents, Veuillez v\u00e9rifier que les mots sont correctement orthographi\u00e9s et que vous avez s\u00e9lectionn\u00e9 assez de cat\u00e9gories.", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "Index g\u00e9n\u00e9ral", "next chapter": "Chapitre suivant", "Search finished, found %s page(s) matching the search query.": "La recherche est finie, %s page(s) trouv\u00e9e(s) qui corresponde(nt) \u00e0 la recherche.", "previous chapter": "Chapitre pr\u00e9c\u00e9dent", "Permalink to this headline": "Lien permanent vers ce titre", "About these documents": "\u00c0 propos de ces documents", "Preparing search...": "Pr\u00e9paration \u00e0 la recherche...", ", in ": ", dans", "Navigation": "Navigation", "Expand sidebar": "Agrandir la barre lat\u00e9rale", "the documentation for": "la documentation pour", "Complete Table of Contents": "Table des mati\u00e8res compl\u00e8te", "Contents": "Contenu", "can be huge": "peut \u00eatre \u00e9norme", "Changes in Version %(version)s &mdash; %(docstitle)s": "Modifications dans la version %(version)s &mdash; %(docstitle)s", "Other changes": "Autres modifications", "Hide Search Matches": "Cacher les r\u00e9sultats de la recherche", "Quick search": "Recherche rapide", "Show Source": "Montrer la source", "Search": "Recherche", "This Page": "Cette page", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Vous pouvez effectuer une recherche au sein des documents. Saisissez les termes\nde votre recherche dans le champs ci-dessous et cliquez sur \"rechercher\". Notez que la fonctionnalit\u00e9 de recherche\nva automatiquement chercher parmi l'ensemble les mots. Les pages\ncontenant moins de mots n'appara\u00eetront pas dans la liste des r\u00e9sultats.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Cr\u00e9\u00e9 avec <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "derni\u00e8re modification", "Collapse sidebar": "R\u00e9duire la barre lat\u00e9rale", "Go": "Go", "Table Of Contents": "Table des Mati\u00e8res", "Search within %(docstitle)s": "Recherchez dans %(docstitle)s", "all functions, classes, terms": "toutes les fonctions, classes, termes", "Please activate JavaScript to enable the search\n functionality.": "Veuillez activer le JavaScript pour que la recherche fonctionne.", "Indices and tables:": "Indices et Tables :", "lists all sections and subsections": "lister l'ensemble des sections et sous-sections", "Index pages by letter": "Indexer les pages par lettre", "search": "rechercher", "Permalink to this definition": "Lien permanent vers cette d\u00e9finition", "Previous topic": "Sujet pr\u00e9c\u00e9dent", "Overview": "R\u00e9sum\u00e9", "Last updated on %(last_updated)s.": "Mis \u00e0 jour le %(last_updated)s.", "Searching": "Recherche en cours", "search this documentation": "rechercher dans cette documentation", "Automatically generated list of changes in version %(version)s": "Liste auto-g\u00e9n\u00e9r\u00e9e des modifications due \u00e0 la version %(version)s", "Full index on one page": "Index complet sur une seule page", "Enter search terms or a module, class or function name.": "Saisissez un mot clef ou un nom de module, classe ou fonction.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Modifications de la biblioth\u00e8que", "Search Page": "Page de recherche", "Search Results": "R\u00e9sultats de la recherche"}}); \ No newline at end of file
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.mo b/sphinx/locale/fr/LC_MESSAGES/sphinx.mo
index 22933ce4..e8894924 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 5ffbe0b2..cbff436e 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
@@ -1,29 +1,33 @@
-# French translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# David Larlet <larlet@gmail.com>, 2008.
-# Sebastien Douche <sdouche@gmail.com>, 2008.
-# Jean-Daniel Browne <jeandaniel.browne@gmail.com>, 2010.
-# Florent Gallaire <fgallaire@gmail.com>, 2010.
-#
+#
+# Translators:
+# Christophe kryskool <christophe.chauvet@gmail.com>, 2013
+# Larlet davidbgk <larlet@gmail.com>, 2008
+# fgallaire <fgallaire@gmail.com>, 2010
+# Jean-Daniel Browne <jeandaniel.browne@gmail.com>, 2010
+# Naereen <lbesson@ens-cachan.fr>, 2013
+# Sebastien Douche <sdouche@gmail.com>, 2008
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.5\n"
-"Report-Msgid-Bugs-To: larlet@gmail.com\n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Sébastien Douche <sdouche@gmail.com>\n"
-"Language-Team: French Translation Team <sphinx-dev@googlegroups.com>\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"PO-Revision-Date: 2013-06-18 08:03+0000\n"
+"Last-Translator: Naereen <lbesson@ens-cachan.fr>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/sphinx-1/language/fr/)\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"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: sphinx/config.py:81
-#, fuzzy, python-format
+#, python-format
msgid "%s %s documentation"
-msgstr "%s %s documentation"
+msgstr "documentation %s %s"
#: sphinx/environment.py:1510
#, python-format
@@ -37,7 +41,7 @@ msgstr "voir aussi %s"
#: sphinx/environment.py:1570
msgid "Symbols"
-msgstr ""
+msgstr "Symboles"
#: sphinx/roles.py:175
#, python-format
@@ -92,9 +96,8 @@ msgid "Module author: "
msgstr "Auteur du module : "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Auteur du module : "
+msgstr "Auteur du code :"
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -103,9 +106,10 @@ msgstr "Auteur : "
#: sphinx/domains/__init__.py:244
#, python-format
msgid "%s %s"
-msgstr ""
+msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Paramètres"
@@ -155,20 +159,19 @@ msgstr "membre"
#: sphinx/domains/c.py:205
msgid "macro"
-msgstr ""
+msgstr "macro"
#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
msgid "type"
msgstr "type"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Variable"
+msgstr "variable"
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
-msgstr "Lance"
+msgstr "Déclenche"
#: sphinx/domains/cpp.py:1038
#, python-format
@@ -221,9 +224,8 @@ msgid "%s (%s attribute)"
msgstr "%s (attribut %s)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Paramètres"
+msgstr "Arguments"
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -234,9 +236,8 @@ msgid "attribute"
msgstr "attribut"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Variable"
+msgstr "Variables"
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -284,12 +285,12 @@ msgid "%s() (%s static method)"
msgstr "%s() (méthode statique %s)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
msgstr "%s() (méthode de classe %s.%s)"
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (méthode de classe %s)"
@@ -342,20 +343,20 @@ msgstr " (obsolète)"
#: sphinx/domains/rst.py:53
#, python-format
msgid "%s (directive)"
-msgstr ""
+msgstr "%s (directive)"
#: sphinx/domains/rst.py:55
#, python-format
msgid "%s (role)"
-msgstr ""
+msgstr "%s (role)"
#: sphinx/domains/rst.py:104
msgid "directive"
-msgstr ""
+msgstr "directive"
#: sphinx/domains/rst.py:105
msgid "role"
-msgstr ""
+msgstr "role"
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
@@ -365,7 +366,7 @@ msgstr "variable d'environnement; %s"
#: sphinx/domains/std.py:162
#, python-format
msgid "%scommand line option; %s"
-msgstr "%soption de ligne de commande; %s"
+msgstr "%s option de ligne de commande; %s"
#: sphinx/domains/std.py:414
msgid "glossary term"
@@ -408,7 +409,7 @@ msgstr "Page de recherche"
#: sphinx/ext/autodoc.py:1042
#, python-format
msgid " Bases: %s"
-msgstr ""
+msgstr "Bases: %s"
#: sphinx/ext/autodoc.py:1078
#, python-format
@@ -418,32 +419,32 @@ msgstr "alias de :class:`%s`"
#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
#, python-format
msgid "[graph: %s]"
-msgstr ""
+msgstr "[graph: %s]"
#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
msgid "[graph]"
-msgstr ""
+msgstr "[graph]"
#: sphinx/ext/intersphinx.py:234
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "(disponible dans %s v%s)"
#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
msgid "[source]"
-msgstr ""
+msgstr "[source]"
#: sphinx/ext/refcounting.py:83
msgid "Return value: Always NULL."
-msgstr ""
+msgstr "Valeur de retour : toujours NULL."
#: sphinx/ext/refcounting.py:85
msgid "Return value: New reference."
-msgstr ""
+msgstr "Valeur de retour : nouvelle référence"
#: sphinx/ext/refcounting.py:87
msgid "Return value: Borrowed reference."
-msgstr ""
+msgstr "Valeur de retour : référence empruntée"
#: sphinx/ext/todo.py:42
msgid "Todo"
@@ -456,11 +457,11 @@ msgstr "(L'<<entrée orginale>> se trouve dans %s, à la ligne %d.)"
#: sphinx/ext/todo.py:119
msgid "original entry"
-msgstr "entrée orginale"
+msgstr "entrée originale"
#: sphinx/ext/viewcode.py:117
msgid "[docs]"
-msgstr ""
+msgstr "[docs]"
#: sphinx/ext/viewcode.py:131
msgid "Module code"
@@ -557,7 +558,7 @@ msgstr "fonction de base"
#: sphinx/themes/agogo/layout.html:46 sphinx/themes/basic/globaltoc.html:10
#: sphinx/themes/basic/localtoc.html:11 sphinx/themes/scrolls/layout.html:35
msgid "Table Of Contents"
-msgstr "Table des matières"
+msgstr "Table des Matières"
#: sphinx/themes/agogo/layout.html:50 sphinx/themes/basic/layout.html:137
#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
@@ -583,20 +584,19 @@ msgstr "Résumé"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Bienvenue ! ceci est"
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "documentation"
+msgstr "la documentation pour"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "dernière modification"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
-msgstr "Indices et tables :"
+msgstr "Indices et Tables :"
#: sphinx/themes/basic/defindex.html:23
msgid "Complete Table of Contents"
@@ -679,9 +679,7 @@ msgstr "Mis à jour le %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Créé avec <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Créé avec <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -708,7 +706,7 @@ msgstr "Chapitre suivant"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr "Activez le JavaScript pour que la recherche fonctionne."
+msgstr "Veuillez activer le JavaScript pour que la recherche fonctionne."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -716,30 +714,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Vous pouvez effectuer une recherche au sein des documents. Saisissez les "
-"termes\n"
-" de votre recherche dans le champs ci-dessous et cliquez sur "
-"\"rechercher\". Notez que la fonctionnalité de recherche\n"
-" va automatiquement chercher parmi l'ensemble les mots. Les pages\n"
-" contenant moins de mots n'apparaîtront pas dans la liste des "
-"résultats."
-
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+msgstr "Vous pouvez effectuer une recherche au sein des documents. Saisissez les termes\nde votre recherche dans le champs ci-dessous et cliquez sur \"rechercher\". Notez que la fonctionnalité de recherche\nva automatiquement chercher parmi l'ensemble les mots. Les pages\ncontenant moins de mots n'apparaîtront pas dans la liste des résultats."
+
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "rechercher"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Résultats de la recherche"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Votre recherche ne correspond à aucuns documents, Veuillez vérifier que les mots sont correctement orthographiés et que vous avez sélectionné assez de catégories."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -763,7 +757,7 @@ 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 "Liste auto-générée des modifications dans la version %(version)s"
+msgstr "Liste auto-générée des modifications due à la version %(version)s"
#: sphinx/themes/basic/changes/versionchanges.html:18
msgid "Library changes"
@@ -791,31 +785,30 @@ msgid "Hide Search Matches"
msgstr "Cacher les résultats de la recherche"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "rechercher"
+msgstr "Recherche en cours"
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
-msgstr ""
+msgstr "Préparation à la recherche..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
+msgstr "La recherche est finie, %s page(s) trouvée(s) qui corresponde(nt) à la recherche."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
-msgstr ""
+msgstr ", dans"
#: sphinx/themes/default/static/sidebar.js_t:83
msgid "Expand sidebar"
-msgstr "Agrandir le menu"
+msgstr "Agrandir la barre latérale"
#: sphinx/themes/default/static/sidebar.js_t:96
#: sphinx/themes/default/static/sidebar.js_t:124
msgid "Collapse sidebar"
-msgstr "Réduire le menu"
+msgstr "Réduire la barre latérale"
#: sphinx/themes/haiku/layout.html:26
msgid "Contents"
@@ -839,11 +832,10 @@ msgid "Continued on next page"
msgstr "Suite sur la page suivante"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[image : %s]"
+msgstr "[image: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[image]"
-
diff --git a/sphinx/locale/he/LC_MESSAGES/sphinx.js b/sphinx/locale/he/LC_MESSAGES/sphinx.js
index caf3e576..0d47c042 100644
--- a/sphinx/locale/he/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/he/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "he", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "\u05d4\u05e1\u05ea\u05e8 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d7\u05d9\u05e4\u05d5\u05e9", "Permalink to this definition": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05e7\u05d1\u05d5\u05e2 \u05dc\u05d4\u05d2\u05d3\u05e8\u05d4 \u05d6\u05d5", "Permalink to this headline": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05e7\u05d1\u05d5\u05e2 \u05dc\u05db\u05d5\u05ea\u05e8\u05ea \u05d6\u05d5"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "he", "plural_expr": "(n != 1)", "messages": {"Next topic": "\u05e0\u05d5\u05e9\u05d0 \u05d4\u05d1\u05d0", "Index": "\u05d0\u05d9\u05e0\u05d3\u05e7\u05e1", "%(filename)s &mdash; %(docstitle)s": "", "Welcome! This is": "", "Copyright": "\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea", "C API changes": "", "quick access to all modules": "\u05d2\u05d9\u05e9\u05d4 \u05de\u05d4\u05d9\u05e8\u05d4 \u05dc\u05db\u05dc \u05d4\u05de\u05d5\u05d3\u05d5\u05dc\u05d9\u05dd", "&copy; Copyright %(copyright)s.": "&copy; \u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea %(copyright)s.", "Global Module Index": "\u05d0\u05d9\u05e0\u05d3\u05e7\u05e1 \u05de\u05d5\u05d3\u05d5\u05dc\u05d9\u05dd \u05d2\u05dc\u05d5\u05d1\u05dc\u05d9", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "", "General Index": "", "next chapter": "\u05e4\u05e8\u05e7 \u05d4\u05d1\u05d0", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\u05e4\u05e8\u05e7 \u05e7\u05d5\u05d3\u05dd", "Permalink to this headline": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05e7\u05d1\u05d5\u05e2 \u05dc\u05db\u05d5\u05ea\u05e8\u05ea \u05d6\u05d5", "About these documents": "\u05e2\u05dc \u05de\u05e1\u05de\u05db\u05d9\u05dd \u05d0\u05dc\u05d5", "Preparing search...": "", ", in ": "", "Navigation": "\u05e0\u05d9\u05d5\u05d5\u05d8", "Expand sidebar": "\u05d4\u05e8\u05d7\u05d1 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3", "the documentation for": "", "Complete Table of Contents": "\u05ea\u05d5\u05db\u05df \u05e2\u05e0\u05d9\u05d9\u05e0\u05d9\u05dd \u05de\u05dc\u05d0", "Contents": "\u05ea\u05d5\u05db\u05df", "can be huge": "\u05e2\u05e9\u05d5\u05d9 \u05dc\u05d4\u05d9\u05d5\u05ea \u05e2\u05e6\u05d5\u05dd", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05d1\u05d2\u05e8\u05e1\u05d4 %(version)s &mdash; %(docstitle)s", "Other changes": "\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05d0\u05d7\u05e8\u05d9\u05dd", "Hide Search Matches": "\u05d4\u05e1\u05ea\u05e8 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d7\u05d9\u05e4\u05d5\u05e9", "Quick search": "\u05d7\u05d9\u05e4\u05d5\u05e9 \u05de\u05d4\u05d9\u05e8", "Show Source": "\u05d4\u05e6\u05d2 \u05de\u05e7\u05d5\u05e8", "Search": "\u05d7\u05d9\u05e4\u05d5\u05e9", "This Page": "\u05e2\u05de\u05d5\u05d3 \u05d6\u05d4", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", "last updated": "", "Collapse sidebar": "\u05db\u05d5\u05d5\u05e5 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3", "Go": "\u05dc\u05da", "Table Of Contents": "\u05ea\u05d5\u05db\u05df \u05e2\u05e0\u05d9\u05d9\u05e0\u05d9\u05dd", "Search within %(docstitle)s": "\u05d7\u05e4\u05e9 \u05d1\u05ea\u05d5\u05da %(docstitle)s", "all functions, classes, terms": "\u05db\u05dc \u05d4\u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d5\u05ea, \u05d4\u05de\u05d7\u05dc\u05e7\u05d5\u05ea, \u05d4\u05de\u05d5\u05e9\u05d2\u05d9\u05dd", "Please activate JavaScript to enable the search\n functionality.": "\u05d0\u05e0\u05d0 \u05d4\u05e4\u05e2\u05dc \u05d2'\u05d0\u05d5\u05d0\u05e1\u05e7\u05e8\u05d9\u05e4\u05d8 \u05e2\"\u05de \u05dc\u05d0\u05e4\u05e9\u05e8 \u05d0\u05ea\n \u05d4\u05d7\u05d9\u05e4\u05d5\u05e9.", "Indices and tables:": "", "lists all sections and subsections": "", "Index pages by letter": "\u05e2\u05de\u05d5\u05d3\u05d9 \u05d0\u05d9\u05e0\u05d3\u05e7\u05e1 \u05dc\u05e4\u05d9 \u05d0\u05d5\u05ea\u05d9\u05d5\u05ea", "search": "\u05d7\u05d9\u05e4\u05d5\u05e9", "Permalink to this definition": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05e7\u05d1\u05d5\u05e2 \u05dc\u05d4\u05d2\u05d3\u05e8\u05d4 \u05d6\u05d5", "Previous topic": "\u05e0\u05d5\u05e9\u05d0 \u05e7\u05d5\u05d3\u05dd", "Overview": "\u05e1\u05e7\u05d9\u05e8\u05d4 \u05db\u05dc\u05dc\u05d9\u05ea", "Last updated on %(last_updated)s.": "\u05e2\u05d5\u05d3\u05db\u05df \u05dc\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05d1 %(last_updated)s.", "Searching": "", "search this documentation": "\u05d7\u05e4\u05e9 \u05d1\u05ea\u05d9\u05e2\u05d5\u05d3 \u05d6\u05d4", "Automatically generated list of changes in version %(version)s": "\u05d9\u05e6\u05e8 \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05ea \u05e8\u05e9\u05d9\u05de\u05d4 \u05e9\u05dc \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05d1\u05d2\u05e8\u05e1\u05d4 %(version)s", "Full index on one page": "\u05d0\u05d9\u05e0\u05d3\u05e7\u05e1 \u05de\u05dc\u05d0 \u05d1\u05e2\u05de\u05d5\u05d3 \u05d0\u05d7\u05d3", "Enter search terms or a module, class or function name.": "\u05d4\u05db\u05e0\u05e1 \u05de\u05d5\u05e9\u05d2\u05d9\u05dd \u05dc\u05d7\u05d9\u05e4\u05d5\u05e9 \u05d0\u05d5 \u05e9\u05dd \u05de\u05d5\u05d3\u05d5\u05dc, \u05de\u05d7\u05dc\u05e7\u05d4 \u05d0\u05d5 \u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d4.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea</a> %(copyright)s.", "Library changes": "", "Search Page": "\u05d3\u05e3 \u05d7\u05d9\u05e4\u05d5\u05e9", "Search Results": "\u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d4\u05d7\u05d9\u05e4\u05d5\u05e9"}}); \ No newline at end of file
diff --git a/sphinx/locale/he/LC_MESSAGES/sphinx.mo b/sphinx/locale/he/LC_MESSAGES/sphinx.mo
index 87b0ffdd..150cd9df 100644
--- a/sphinx/locale/he/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/he/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/he/LC_MESSAGES/sphinx.po b/sphinx/locale/he/LC_MESSAGES/sphinx.po
index 2acb8e57..291b11e5 100644
--- a/sphinx/locale/he/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/he/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Hebrew translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.1pre/9523af9ba9aa+\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2013-02-18 17:56+0200\n"
-"Last-Translator: alonisser <alon@noal.org.il>\n"
-"Language-Team: \n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:22+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Hebrew (http://www.transifex.com/projects/p/sphinx-1/language/he/)\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"
+"Language: he\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -101,7 +103,8 @@ msgstr "מחבר:"
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "פרמטרים"
@@ -579,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "תיעוד"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -668,13 +670,11 @@ msgid "Last updated on %(last_updated)s."
msgstr "עודכן לאחרונה ב %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
-#, fuzzy, python-format
+#, python-format
msgid ""
"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."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -701,9 +701,7 @@ msgstr "פרק הבא"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"אנא הפעל ג'אואסקריפט ע\"מ לאפשר את\n"
-" החיפוש."
+msgstr "אנא הפעל ג'אואסקריפט ע\"מ לאפשר את\n החיפוש."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -713,20 +711,23 @@ msgid ""
" containing fewer words won't appear in the result list."
msgstr ""
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "חיפוש"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "תוצאות החיפוש"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -779,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "הסתר תוצאות חיפוש"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "חיפוש"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -827,11 +827,10 @@ msgid "Continued on next page"
msgstr "המשך בעמוד הבא"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[תמונה: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[תמונה]"
-
diff --git a/sphinx/locale/hr/LC_MESSAGES/sphinx.js b/sphinx/locale/hr/LC_MESSAGES/sphinx.js
index 2141234b..3d3cdd14 100644
--- a/sphinx/locale/hr/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/hr/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "hr", "plural_expr": "0", "messages": {"Hide Search Matches": "Sakrij rezultate pretrage", "Permalink to this definition": "Link na tu definiciju", "Permalink to this headline": "Link na taj naslov"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "hr", "plural_expr": "n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2", "messages": {"Next topic": "Slijede\u0107a tema", "Index": "Abecedni popis", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Sva prava zadr\u017eana", "C API changes": "C API changes", "quick access to all modules": "brz dostup do svih modulov", "&copy; Copyright %(copyright)s.": "&copy; Sva prava zadr\u017eana %(copyright)s.", "Global Module Index": "Op\u0107eniti popis modula", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "Opceniti abecedni indeks", "next chapter": "slijede\u0107e poglavje", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "Prija\u0161nje poglavje", "Permalink to this headline": "Link na taj naslov", "About these documents": "O ovim dokumentima", "Preparing search...": "", ", in ": "", "Navigation": "Navigacija", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "Potpuna tabela sadr\u017eaja", "Contents": "", "can be huge": "mo\u017ee biti veliko", "Changes in Version %(version)s &mdash; %(docstitle)s": "Changes in Version %(version)s &mdash; %(docstitle)s", "Other changes": "Ostale promjene", "Hide Search Matches": "Sakrij rezultate pretrage", "Quick search": "Brzo pretra\u017eivanje", "Show Source": "Prika\u017ei izvorni kod", "Search": "Tra\u017ei", "This Page": "Trenutna stranica", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Izra\u0111eno sa <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "", "Go": "Naprijed", "Table Of Contents": "Pregled sadr\u017eaja", "Search within %(docstitle)s": "Tra\u017ei izme\u0111u %(docstitle)s", "all functions, classes, terms": "sve funkcije, razredi, izrazi", "Please activate JavaScript to enable the search\n functionality.": "Molimo omogu\u0107ite JavaScript\n za djelovanje tra\u017eilice.", "Indices and tables:": "Kazala i tabele:", "lists all sections and subsections": "prika\u017ei sve sekcije i podsekcije", "Index pages by letter": "Indeksiraj stranice po slovu", "search": "tra\u017ei", "Permalink to this definition": "Link na tu definiciju", "Previous topic": "Prija\u0161nja tema", "Overview": "Pregled", "Last updated on %(last_updated)s.": "Zadnji put a\u017eurirano %(last_updated)s.", "Searching": "", "search this documentation": "tra\u017ei po dokumentaciji", "Automatically generated list of changes in version %(version)s": "Automatically generated list of changes in version %(version)s", "Full index on one page": "Potpun indeks na jednoj strani", "Enter search terms or a module, class or function name.": "Unesi ime modula, razreda ili funkcije.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Sva prava zadr\u017eana</a> %(copyright)s.", "Library changes": "Library changes", "Search Page": "Tra\u017eilica", "Search Results": "Rezultati pretrage"}}); \ No newline at end of file
diff --git a/sphinx/locale/hr/LC_MESSAGES/sphinx.mo b/sphinx/locale/hr/LC_MESSAGES/sphinx.mo
index 549b03c3..547f7f3e 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 9f89da01..856fcb84 100644
--- a/sphinx/locale/hr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hr/LC_MESSAGES/sphinx.po
@@ -1,20 +1,22 @@
-# Croatian translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Bojan Mihelač <bmihelac@mihelac.org>\n"
-"Language-Team: Bojan Mihelač <bmihelac@mihelac.org>\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"PO-Revision-Date: 2013-04-02 15:23+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Croatian (http://www.transifex.com/projects/p/sphinx-1/language/hr/)\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"
+"Language: hr\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#: sphinx/config.py:81
#, python-format
@@ -22,14 +24,14 @@ msgid "%s %s documentation"
msgstr ""
#: sphinx/environment.py:1510
-#, fuzzy, python-format
+#, python-format
msgid "see %s"
-msgstr "pogledaj %s"
+msgstr ""
#: sphinx/environment.py:1513
-#, fuzzy, python-format
+#, python-format
msgid "see also %s"
-msgstr "pogledaj i %s"
+msgstr ""
#: sphinx/environment.py:1570
msgid "Symbols"
@@ -88,9 +90,8 @@ msgid "Module author: "
msgstr "Autor modula: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Autor modula: "
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -101,7 +102,8 @@ msgstr "Autor:"
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametri"
@@ -158,9 +160,8 @@ msgid "type"
msgstr "tip"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Varijabla"
+msgstr ""
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
@@ -217,9 +218,8 @@ msgid "%s (%s attribute)"
msgstr "%s (%s atribut)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Parametri"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -230,9 +230,8 @@ msgid "attribute"
msgstr "atribut"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Varijabla"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -280,14 +279,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s statična metoda)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s metoda)"
+msgstr ""
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s metoda)"
+msgstr ""
#: sphinx/domains/python.py:353
#, python-format
@@ -300,9 +299,8 @@ msgid "%s (module)"
msgstr "%s (modul)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Popis modula"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -447,9 +445,9 @@ msgid "Todo"
msgstr "Todo"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(<<Originalan unos>> se nalazi u %s, u retku %d.)"
+msgstr ""
#: sphinx/ext/todo.py:119
msgid "original entry"
@@ -460,9 +458,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "modul"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -584,9 +581,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "traži po dokumentaciji"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -677,9 +673,7 @@ msgstr "Zadnji put ažurirano %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Izrađeno sa <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Izrađeno sa <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -706,9 +700,7 @@ msgstr "slijedeće poglavje"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Molimo omogućite JavaScript\n"
-" za djelovanje tražilice."
+msgstr "Molimo omogućite JavaScript\n za djelovanje tražilice."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -716,26 +708,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"From here you can search these documents. Enter your search\n"
-" words into the box below and click \"search\". Note that the search\n"
-" function will automatically search for all of the words. Pages\n"
-" containing fewer words won't appear in the result list."
+msgstr "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "traži"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Rezultati pretrage"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -788,9 +779,8 @@ msgid "Hide Search Matches"
msgstr "Sakrij rezultate pretrage"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "traži"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -836,11 +826,10 @@ msgid "Continued on next page"
msgstr "nastavak na slijedećoj stranici"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[slika: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[slika]"
-
diff --git a/sphinx/locale/hu/LC_MESSAGES/sphinx.js b/sphinx/locale/hu/LC_MESSAGES/sphinx.js
index 7d29147e..bf9c3f6c 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\u00e9si Tal\u00e1latok Elrejt\u00e9se", "Permalink to this definition": "Hivatkoz\u00e1s erre a defin\u00edci\u00f3ra", "Permalink to this headline": "Hivatkoz\u00e1s erre a fejezetc\u00edmre"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "hu", "plural_expr": "(n != 1)", "messages": {"Next topic": "K\u00f6vetkez\u0151 t\u00e9mak\u00f6r", "Index": "T\u00e1rgymutat\u00f3", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Minden jog fenntartva", "C API changes": "C API v\u00e1ltoz\u00e1sok", "quick access to all modules": "gyors hozz\u00e1f\u00e9r\u00e9s az \u00f6sszes modulhoz", "&copy; Copyright %(copyright)s.": "&copy; Minden jog fenntartva %(copyright)s.", "Global Module Index": "Teljes modul t\u00e1rgymutat\u00f3", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "T\u00e1rgymutat\u00f3 &ndash; %(key)s", "General Index": "\u00c1ltal\u00e1nos t\u00e1rgymutat\u00f3", "next chapter": "k\u00f6vetkez\u0151 fejezet", "Search finished, found %s page(s) matching the search query.": "A keres\u00e9s befejez\u0151d\u00f6tt, %s oldal egyezik a keres\u00e9si fel\u00e9teleknek.", "previous chapter": "el\u0151z\u0151 fejezet", "Permalink to this headline": "Hivatkoz\u00e1s erre a fejezetc\u00edmre", "About these documents": "N\u00e9vjegy ezekr\u0151l a dokumentumokr\u00f3l", "Preparing search...": "Felk\u00e9sz\u00fcl\u00e9s a keres\u00e9sre...", ", in ": "", "Navigation": "Navig\u00e1ci\u00f3", "Expand sidebar": "Oldals\u00e1v kinyit\u00e1sa", "the documentation for": "", "Complete Table of Contents": "Teljes tartalomjegyz\u00e9k", "Contents": "Tartalom", "can be huge": "nagy lehet", "Changes in Version %(version)s &mdash; %(docstitle)s": "V\u00e1ltoz\u00e1sok a(z) %(version)s v\u00e1ltozatban &mdash; %(docstitle)s", "Other changes": "Egy\u00e9b v\u00e1ltoz\u00e1sok", "Hide Search Matches": "Keres\u00e9si Tal\u00e1latok Elrejt\u00e9se", "Quick search": "Gyorskeres\u00e9s", "Show Source": "Forr\u00e1s megtekint\u00e9se", "Search": "Keres\u00e9s", "This Page": "Ez az Oldal", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Err\u0151l az oldalr\u00f3l ind\u00edthatja keres\u00e9seit. \u00cdrja be a kulcsszavakat\n az al\u00e1bbi sz\u00f6vegdobozba, majd kattintson a \"keres\u00e9s\" gombra.\n \u00dcgyeljen arra, hogy a keres\u00e9s megadott kulcsszavak mindegyik\u00e9t\n figyelembe veszi, \u00edgy azok az oldalak, melyek nem tartalmazz\u00e1k az\n \u00f6sszes kifejez\u00e9st, nem jelennek meg a tal\u00e1lati list\u00e1ban.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s haszn\u00e1lat\u00e1val k\u00e9sz\u00fclt.", "last updated": "utolj\u00e1ra friss\u00edtve", "Collapse sidebar": "Oldals\u00e1v \u00f6sszez\u00e1r\u00e1sa", "Go": "Ok", "Table Of Contents": "Tartalomjegyz\u00e9k", "Search within %(docstitle)s": "Keres\u00e9s k\u00f6zt\u00fck: %(docstitle)s", "all functions, classes, terms": "\u00f6sszes funkci\u00f3, oszt\u00e1ly \u00e9s kifejez\u00e9s", "Please activate JavaScript to enable the search\n functionality.": "K\u00e9rem enged\u00e9lyezze a JavaScriptet a keres\u0151 funkci\u00f3\n haszn\u00e1lat\u00e1hoz.", "Indices and tables:": "T\u00e1rgymutat\u00f3 \u00e9s t\u00e1bl\u00e1zatok", "lists all sections and subsections": "kilist\u00e1zza az \u00f6sszes fejezetet \u00e9s alfejezetet", "Index pages by letter": "Oldalak ABC sorrendben", "search": "keres\u00e9s", "Permalink to this definition": "Hivatkoz\u00e1s erre a defin\u00edci\u00f3ra", "Previous topic": "El\u0151z\u0151 t\u00e9mak\u00f6r", "Overview": "\u00c1ttekint\u00e9s", "Last updated on %(last_updated)s.": "Utols\u00f3 friss\u00edt\u00e9s %(last_updated)s.", "Searching": "Keres\u00e9s folyamatban", "search this documentation": "keres\u00e9s ebben a dokument\u00e1ci\u00f3ban", "Automatically generated list of changes in version %(version)s": "Automatikusan gener\u00e1lt v\u00e1ltoz\u00e1slista a(z) %(version)s v\u00e1ltozathoz", "Full index on one page": "Teljes t\u00e1rgymutat\u00f3 egy oldalon", "Enter search terms or a module, class or function name.": "Adjon meg egy keresend\u0151 kifejez\u00e9st, modul, oszt\u00e1ly vagy funkci\u00f3 nevet.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Minden jog fenntartva</a> %(copyright)s.", "Library changes": "K\u00f6nyvt\u00e1r v\u00e1ltoz\u00e1sok", "Search Page": "Keres\u00e9s", "Search Results": "Keres\u00e9si Eredm\u00e9nyek"}}); \ 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 06e54445..9cc9b5e2 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 c6b2b04a..010e2cea 100644
--- a/sphinx/locale/hu/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hu/LC_MESSAGES/sphinx.po
@@ -1,24 +1,24 @@
-# Hungarian translations for Sphinx.
+# Translations template for Sphinx.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
# Translators:
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-# <szunyog@gmail.com>, 2013.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
+# Tibor Toth <szunyog@gmail.com>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
"PO-Revision-Date: 2013-04-02 16:08+0000\n"
-"Last-Translator: szunyog <szunyog@gmail.com>\n"
-"Language-Team: Hungarian "
-"(http://www.transifex.com/projects/p/sphinx-1/language/hu/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Last-Translator: Tibor Toth <szunyog@gmail.com>\n"
+"Language-Team: Hungarian (http://www.transifex.com/projects/p/sphinx-1/language/hu/)\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"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -104,7 +104,8 @@ msgstr "Szerző: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Paraméterek"
@@ -674,9 +675,7 @@ msgstr "Utolsó frissítés %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s "
-"használatával készült."
+msgstr "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s használatával készült."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -703,9 +702,7 @@ msgstr "következő fejezet"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Kérem engedélyezze a JavaScriptet a kereső funkció\n"
-" használatához."
+msgstr "Kérem engedélyezze a JavaScriptet a kereső funkció\n használatához."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -713,27 +710,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Erről az oldalról indíthatja kereséseit. Írja be a kulcsszavakat\n"
-" az alábbi szövegdobozba, majd kattintson a \"keresés\" gombra.\n"
-" Ügyeljen arra, hogy a keresés megadott kulcsszavak mindegyikét\n"
-" figyelembe veszi, így azok az oldalak, melyek nem tartalmazzák az\n"
-" összes kifejezést, nem jelennek meg a találati listában."
+msgstr "Erről az oldalról indíthatja kereséseit. Írja be a kulcsszavakat\n az alábbi szövegdobozba, majd kattintson a \"keresés\" gombra.\n Ügyeljen arra, hogy a keresés megadott kulcsszavak mindegyikét\n figyelembe veszi, így azok az oldalak, melyek nem tartalmazzák az\n összes kifejezést, nem jelennek meg a találati listában."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "keresés"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Keresési Eredmények"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -840,4 +835,3 @@ msgstr "[image: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[image]"
-
diff --git a/sphinx/locale/id/LC_MESSAGES/sphinx.js b/sphinx/locale/id/LC_MESSAGES/sphinx.js
new file mode 100644
index 00000000..5175201e
--- /dev/null
+++ b/sphinx/locale/id/LC_MESSAGES/sphinx.js
@@ -0,0 +1 @@
+Documentation.addTranslations({"locale": "id", "plural_expr": "0", "messages": {"Next topic": "Topik berikutnya", "Index": "Indeks", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Selamat Datang! Ini adalah", "Copyright": "Copyright", "C API changes": "Perubahan API C", "quick access to all modules": "akses cepat semua modul", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Index Modul Global", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Tidak ada dokumen yang cocok dengan pencarian anda. Pastikan semua kata ditulis dengan benar dan sudah memilih cukup kategori.", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "Indeks Umum", "next chapter": "bab berikutnya", "Search finished, found %s page(s) matching the search query.": "Pencarian selesai, menemukan %s halaman yang cocok dengan kueri pencarian.", "previous chapter": "bab sebelum", "Permalink to this headline": "Link permanent untuk headline ini", "About these documents": "Tentang dokumen ini", "Preparing search...": "Penyiapkan pencarian...", ", in ": ", di", "Navigation": "Navigasi", "Expand sidebar": "Buka sidebar", "the documentation for": "dokumentasi untuk", "Complete Table of Contents": "Daftar Isi Lengkap", "Contents": "Konten", "can be huge": "dapat menjadi besar", "Changes in Version %(version)s &mdash; %(docstitle)s": "Perubahan pada Versi %(version)s &mdash; %(docstitle)s", "Other changes": "Perubahan lain", "Hide Search Matches": "Sembunyikan Hasil Pencarian", "Quick search": "Pencarian cepat", "Show Source": "Lihat Sumber", "Search": "Pencarian", "This Page": "Halaman Ini", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Dari sini dapat dilakukan pencarian pada dokumentasi. Masukkan\n kata yang dicari pada kotak dibawah dan klik \"search\". Catatan untuk fungsi pencarian\n akan secara otomatis mencari semua kata. Halaman\n yang berisi kata yang sedikat tidak dimunculkan pada daftar hasil.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Dibuat menggunakan <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "terakhir diperbarui", "Collapse sidebar": "Tutup sidebar", "Go": "Go", "Table Of Contents": "Daftar Isi", "Search within %(docstitle)s": "Pencarian dalam %(docstitle)s", "all functions, classes, terms": "semua fungsi, class, term", "Please activate JavaScript to enable the search\n functionality.": "Tolong aktifkan JavaScript untuk melakukan pencarian.\n ", "Indices and tables:": "Index dan tabel:", "lists all sections and subsections": "daftar semua seksi dan subseksi", "Index pages by letter": "Index halaman berdasarkan huruf", "search": "pencarian", "Permalink to this definition": "Link permanent untuk definisi ini", "Previous topic": "Topik sebelum", "Overview": "Tinjauan", "Last updated on %(last_updated)s.": "Terakhir diperbarui pada %(last_updated)s.", "Searching": "Pencarian", "search this documentation": "pencarian pada dokumentasi ini", "Automatically generated list of changes in version %(version)s": "Daftar perubahan dibuat otomatis untuk versi %(version)s", "Full index on one page": "Index penuh dalam satu halaman", "Enter search terms or a module, class or function name.": "Masukkan term pencarian atau nama modul, class atau fungsi.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Perubahan library", "Search Page": "Pencarian Halaman", "Search Results": "Hasil Pencarian"}}); \ No newline at end of file
diff --git a/sphinx/locale/id/LC_MESSAGES/sphinx.mo b/sphinx/locale/id/LC_MESSAGES/sphinx.mo
new file mode 100644
index 00000000..dfbaacf4
--- /dev/null
+++ b/sphinx/locale/id/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/id/LC_MESSAGES/sphinx.po b/sphinx/locale/id/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..2daae801
--- /dev/null
+++ b/sphinx/locale/id/LC_MESSAGES/sphinx.po
@@ -0,0 +1,837 @@
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the Sphinx project.
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
+# Sakti Dwi Cahyono <54krpl@gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2013-04-02 10:33+0200\n"
+"PO-Revision-Date: 2013-04-17 00:31+0000\n"
+"Last-Translator: Sakti Dwi Cahyono <54krpl@gmail.com>\n"
+"Language-Team: Indonesian (http://www.transifex.com/projects/p/sphinx-1/language/id/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+"Language: id\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: sphinx/config.py:81
+#, python-format
+msgid "%s %s documentation"
+msgstr "dokumentasi %s %s"
+
+#: sphinx/environment.py:1510
+#, python-format
+msgid "see %s"
+msgstr "lihat %s"
+
+#: sphinx/environment.py:1513
+#, python-format
+msgid "see also %s"
+msgstr "lihat juga %s"
+
+#: sphinx/environment.py:1570
+msgid "Symbols"
+msgstr "Simbol"
+
+#: sphinx/roles.py:175
+#, python-format
+msgid "Python Enhancement Proposals; PEP %s"
+msgstr "Python Enhancement Proposals; PEP %s"
+
+#: sphinx/transforms.py:52 sphinx/writers/latex.py:202
+#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:217
+#, python-format
+msgid "%B %d, %Y"
+msgstr "%d %B %Y"
+
+#: sphinx/builders/changes.py:73
+msgid "Builtins"
+msgstr "Modul Internal"
+
+#: sphinx/builders/changes.py:75
+msgid "Module level"
+msgstr "Level Modul"
+
+#: sphinx/builders/html.py:290
+#, python-format
+msgid "%b %d, %Y"
+msgstr "%d %b, %Y"
+
+#: sphinx/builders/html.py:309 sphinx/themes/basic/defindex.html:30
+msgid "General Index"
+msgstr "Indeks Umum"
+
+#: sphinx/builders/html.py:309
+msgid "index"
+msgstr "index"
+
+#: sphinx/builders/html.py:369
+msgid "next"
+msgstr "berikut"
+
+#: sphinx/builders/html.py:378
+msgid "previous"
+msgstr "sebelum"
+
+#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
+msgid " (in "
+msgstr " (dalam "
+
+#: sphinx/directives/other.py:138
+msgid "Section author: "
+msgstr "Penyusun bagian:"
+
+#: sphinx/directives/other.py:140
+msgid "Module author: "
+msgstr "Penyusun modul: "
+
+#: sphinx/directives/other.py:142
+msgid "Code author: "
+msgstr "Penulis kode:"
+
+#: sphinx/directives/other.py:144
+msgid "Author: "
+msgstr "Penyusun: "
+
+#: sphinx/domains/__init__.py:244
+#, python-format
+msgid "%s %s"
+msgstr "%s %s"
+
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
+msgid "Parameters"
+msgstr "Parameter"
+
+#: sphinx/domains/c.py:54 sphinx/domains/cpp.py:945
+#: sphinx/domains/javascript.py:128 sphinx/domains/python.py:107
+msgid "Returns"
+msgstr "Kembali"
+
+#: sphinx/domains/c.py:56 sphinx/domains/javascript.py:130
+#: sphinx/domains/python.py:109
+msgid "Return type"
+msgstr "Return type"
+
+#: sphinx/domains/c.py:141
+#, python-format
+msgid "%s (C function)"
+msgstr "%s (fungsi C)"
+
+#: sphinx/domains/c.py:143
+#, python-format
+msgid "%s (C member)"
+msgstr "%s (anggota C)"
+
+#: sphinx/domains/c.py:145
+#, python-format
+msgid "%s (C macro)"
+msgstr "%s (macro C)"
+
+#: sphinx/domains/c.py:147
+#, python-format
+msgid "%s (C type)"
+msgstr "%s (tipe C)"
+
+#: sphinx/domains/c.py:149
+#, python-format
+msgid "%s (C variable)"
+msgstr "%s (variabel C)"
+
+#: sphinx/domains/c.py:203 sphinx/domains/cpp.py:1207
+#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
+msgid "function"
+msgstr "fungsi"
+
+#: sphinx/domains/c.py:204 sphinx/domains/cpp.py:1208
+msgid "member"
+msgstr "anggota"
+
+#: sphinx/domains/c.py:205
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
+msgid "type"
+msgstr "tipe"
+
+#: sphinx/domains/c.py:207
+msgid "variable"
+msgstr "variabel"
+
+#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
+msgid "Throws"
+msgstr "Throws"
+
+#: sphinx/domains/cpp.py:1038
+#, python-format
+msgid "%s (C++ class)"
+msgstr "%s (class C++)"
+
+#: sphinx/domains/cpp.py:1061
+#, python-format
+msgid "%s (C++ type)"
+msgstr "%s (tipe C++)"
+
+#: sphinx/domains/cpp.py:1081
+#, python-format
+msgid "%s (C++ member)"
+msgstr "%s (anggota C++)"
+
+#: sphinx/domains/cpp.py:1137
+#, python-format
+msgid "%s (C++ function)"
+msgstr "%s (fungsi C++)"
+
+#: sphinx/domains/cpp.py:1206 sphinx/domains/javascript.py:165
+#: sphinx/domains/python.py:562
+msgid "class"
+msgstr "class"
+
+#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:253
+#, python-format
+msgid "%s() (built-in function)"
+msgstr "%s() (fungsi built-in)"
+
+#: sphinx/domains/javascript.py:107 sphinx/domains/python.py:317
+#, python-format
+msgid "%s() (%s method)"
+msgstr "%s() (method %s)"
+
+#: sphinx/domains/javascript.py:109
+#, python-format
+msgid "%s() (class)"
+msgstr "%s() (class)"
+
+#: sphinx/domains/javascript.py:111
+#, python-format
+msgid "%s (global variable or constant)"
+msgstr "%s (variabel global atau konstan)"
+
+#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:355
+#, python-format
+msgid "%s (%s attribute)"
+msgstr "%s (atribut %s)"
+
+#: sphinx/domains/javascript.py:122
+msgid "Arguments"
+msgstr "Argumen"
+
+#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
+msgid "data"
+msgstr "data"
+
+#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
+msgid "attribute"
+msgstr "atribut"
+
+#: sphinx/domains/python.py:100
+msgid "Variables"
+msgstr "Variabel"
+
+#: sphinx/domains/python.py:104
+msgid "Raises"
+msgstr "Raises"
+
+#: 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() (di modul %s)"
+
+#: sphinx/domains/python.py:257
+#, python-format
+msgid "%s (built-in variable)"
+msgstr "%s (variabel built-in)"
+
+#: sphinx/domains/python.py:258 sphinx/domains/python.py:349
+#, python-format
+msgid "%s (in module %s)"
+msgstr "%s (di modul %s)"
+
+#: sphinx/domains/python.py:274
+#, python-format
+msgid "%s (built-in class)"
+msgstr "%s (class built-in)"
+
+#: sphinx/domains/python.py:275
+#, python-format
+msgid "%s (class in %s)"
+msgstr "%s (class di %s)"
+
+#: sphinx/domains/python.py:315
+#, python-format
+msgid "%s() (%s.%s method)"
+msgstr "%s() (method %s.%s)"
+
+#: sphinx/domains/python.py:327
+#, python-format
+msgid "%s() (%s.%s static method)"
+msgstr "%s() (method static %s.%s)"
+
+#: sphinx/domains/python.py:330
+#, python-format
+msgid "%s() (%s static method)"
+msgstr "%s() (method static %s)"
+
+#: sphinx/domains/python.py:340
+#, python-format
+msgid "%s() (%s.%s class method)"
+msgstr "%s() (method class %s.%s)"
+
+#: sphinx/domains/python.py:343
+#, python-format
+msgid "%s() (%s class method)"
+msgstr "%s() (method class %s)"
+
+#: sphinx/domains/python.py:353
+#, python-format
+msgid "%s (%s.%s attribute)"
+msgstr "%s (atribut %s.%s)"
+
+#: sphinx/domains/python.py:434
+#, python-format
+msgid "%s (module)"
+msgstr "%s (module)"
+
+#: sphinx/domains/python.py:491
+msgid "Python Module Index"
+msgstr "Indeks Modul Python"
+
+#: sphinx/domains/python.py:492
+msgid "modules"
+msgstr "modul"
+
+#: sphinx/domains/python.py:538
+msgid "Deprecated"
+msgstr "Akan ditinggalkan"
+
+#: sphinx/domains/python.py:563 sphinx/locale/__init__.py:179
+msgid "exception"
+msgstr "eksepsi"
+
+#: sphinx/domains/python.py:564
+msgid "method"
+msgstr "method"
+
+#: sphinx/domains/python.py:565
+msgid "class method"
+msgstr "method class"
+
+#: sphinx/domains/python.py:566
+msgid "static method"
+msgstr "method static"
+
+#: sphinx/domains/python.py:568 sphinx/locale/__init__.py:175
+msgid "module"
+msgstr "modul"
+
+#: sphinx/domains/python.py:696
+msgid " (deprecated)"
+msgstr " (obsolet)"
+
+#: sphinx/domains/rst.py:53
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktif)"
+
+#: sphinx/domains/rst.py:55
+#, python-format
+msgid "%s (role)"
+msgstr "%s (role)"
+
+#: sphinx/domains/rst.py:104
+msgid "directive"
+msgstr "direktif"
+
+#: sphinx/domains/rst.py:105
+msgid "role"
+msgstr "role"
+
+#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
+#, python-format
+msgid "environment variable; %s"
+msgstr "variabel environment; %s"
+
+#: sphinx/domains/std.py:162
+#, python-format
+msgid "%scommand line option; %s"
+msgstr "%sopsi command line; %s"
+
+#: sphinx/domains/std.py:414
+msgid "glossary term"
+msgstr "daftar istilah"
+
+#: sphinx/domains/std.py:415
+msgid "grammar token"
+msgstr "token grammar"
+
+#: sphinx/domains/std.py:416
+msgid "reference label"
+msgstr "label referensi"
+
+#: sphinx/domains/std.py:418
+msgid "environment variable"
+msgstr "variabel environment"
+
+#: sphinx/domains/std.py:419
+msgid "program option"
+msgstr "opsi program"
+
+#: sphinx/domains/std.py:449 sphinx/themes/basic/genindex-single.html:32
+#: sphinx/themes/basic/genindex-single.html:57
+#: sphinx/themes/basic/genindex-split.html:11
+#: sphinx/themes/basic/genindex-split.html:14
+#: 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:191 sphinx/writers/texinfo.py:475
+msgid "Index"
+msgstr "Indeks"
+
+#: sphinx/domains/std.py:450
+msgid "Module Index"
+msgstr "Indeks Modul"
+
+#: sphinx/domains/std.py:451 sphinx/themes/basic/defindex.html:25
+msgid "Search Page"
+msgstr "Pencarian Halaman"
+
+#: sphinx/ext/autodoc.py:1042
+#, python-format
+msgid " Bases: %s"
+msgstr " Bases: %s"
+
+#: sphinx/ext/autodoc.py:1078
+#, python-format
+msgid "alias of :class:`%s`"
+msgstr "alias dari :class:`%s`"
+
+#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
+#, python-format
+msgid "[graph: %s]"
+msgstr "[graph: %s]"
+
+#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
+msgid "[graph]"
+msgstr "[graph]"
+
+#: sphinx/ext/intersphinx.py:234
+#, python-format
+msgid "(in %s v%s)"
+msgstr "(di %s v%s)"
+
+#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
+msgid "[source]"
+msgstr "[sumber]"
+
+#: sphinx/ext/refcounting.py:83
+msgid "Return value: Always NULL."
+msgstr "Nilai return: Selalu NULL."
+
+#: sphinx/ext/refcounting.py:85
+msgid "Return value: New reference."
+msgstr "Nilai return: Referensi baru."
+
+#: sphinx/ext/refcounting.py:87
+msgid "Return value: Borrowed reference."
+msgstr "Nilai return: Referensi pinjaman."
+
+#: sphinx/ext/todo.py:42
+msgid "Todo"
+msgstr "Todo"
+
+#: sphinx/ext/todo.py:110
+#, python-format
+msgid "(The <<original entry>> is located in %s, line %d.)"
+msgstr "(<<original entry>> terletak pada %s, baris ke %d.)"
+
+#: sphinx/ext/todo.py:119
+msgid "original entry"
+msgstr "entri asli"
+
+#: sphinx/ext/viewcode.py:117
+msgid "[docs]"
+msgstr "[docs]"
+
+#: sphinx/ext/viewcode.py:131
+msgid "Module code"
+msgstr "Kode modul"
+
+#: sphinx/ext/viewcode.py:137
+#, python-format
+msgid "<h1>Source code for %s</h1>"
+msgstr "<h1>Kode sumber untuk %s</h1>"
+
+#: sphinx/ext/viewcode.py:164
+msgid "Overview: module code"
+msgstr "Tinjauan: kode modul"
+
+#: sphinx/ext/viewcode.py:165
+msgid "<h1>All modules for which code is available</h1>"
+msgstr "<h1>Semua modul dimana kode tersedia</h1>"
+
+#: sphinx/locale/__init__.py:155
+msgid "Attention"
+msgstr "Pehatian"
+
+#: sphinx/locale/__init__.py:156
+msgid "Caution"
+msgstr "Hati-hati"
+
+#: sphinx/locale/__init__.py:157
+msgid "Danger"
+msgstr "Bahaya"
+
+#: sphinx/locale/__init__.py:158
+msgid "Error"
+msgstr "Kesalahan"
+
+#: sphinx/locale/__init__.py:159
+msgid "Hint"
+msgstr "Hint"
+
+#: sphinx/locale/__init__.py:160
+msgid "Important"
+msgstr "Penting"
+
+#: sphinx/locale/__init__.py:161
+msgid "Note"
+msgstr "Catatan"
+
+#: sphinx/locale/__init__.py:162
+msgid "See also"
+msgstr "lihat juga"
+
+#: sphinx/locale/__init__.py:163
+msgid "Tip"
+msgstr "Tip"
+
+#: sphinx/locale/__init__.py:164
+msgid "Warning"
+msgstr "Peringatan"
+
+#: sphinx/locale/__init__.py:168
+#, python-format
+msgid "New in version %s"
+msgstr "Baru pada versi %s"
+
+#: sphinx/locale/__init__.py:169
+#, python-format
+msgid "Changed in version %s"
+msgstr "Berubah pada versi %s"
+
+#: sphinx/locale/__init__.py:170
+#, python-format
+msgid "Deprecated since version %s"
+msgstr "Ditinggalkan sejak versi %s"
+
+#: sphinx/locale/__init__.py:176
+msgid "keyword"
+msgstr "keyword"
+
+#: sphinx/locale/__init__.py:177
+msgid "operator"
+msgstr "operator"
+
+#: sphinx/locale/__init__.py:178
+msgid "object"
+msgstr "object"
+
+#: sphinx/locale/__init__.py:180
+msgid "statement"
+msgstr "statement"
+
+#: sphinx/locale/__init__.py:181
+msgid "built-in function"
+msgstr "fungsi built-in"
+
+#: sphinx/themes/agogo/layout.html:46 sphinx/themes/basic/globaltoc.html:10
+#: sphinx/themes/basic/localtoc.html:11 sphinx/themes/scrolls/layout.html:35
+msgid "Table Of Contents"
+msgstr "Daftar Isi"
+
+#: sphinx/themes/agogo/layout.html:50 sphinx/themes/basic/layout.html:137
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
+#: sphinx/themes/basic/searchresults.html:10
+msgid "Search"
+msgstr "Pencarian"
+
+#: sphinx/themes/agogo/layout.html:53 sphinx/themes/basic/searchbox.html:15
+msgid "Go"
+msgstr "Go"
+
+#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
+msgid "Enter search terms or a module, class or function name."
+msgstr "Masukkan term pencarian atau nama modul, class atau fungsi."
+
+#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
+msgid "Show Source"
+msgstr "Lihat Sumber"
+
+#: sphinx/themes/basic/defindex.html:11
+msgid "Overview"
+msgstr "Tinjauan"
+
+#: sphinx/themes/basic/defindex.html:15
+msgid "Welcome! This is"
+msgstr "Selamat Datang! Ini adalah"
+
+#: sphinx/themes/basic/defindex.html:16
+msgid "the documentation for"
+msgstr "dokumentasi untuk"
+
+#: sphinx/themes/basic/defindex.html:17
+msgid "last updated"
+msgstr "terakhir diperbarui"
+
+#: sphinx/themes/basic/defindex.html:20
+msgid "Indices and tables:"
+msgstr "Index dan tabel:"
+
+#: sphinx/themes/basic/defindex.html:23
+msgid "Complete Table of Contents"
+msgstr "Daftar Isi Lengkap"
+
+#: sphinx/themes/basic/defindex.html:24
+msgid "lists all sections and subsections"
+msgstr "daftar semua seksi dan subseksi"
+
+#: sphinx/themes/basic/defindex.html:26
+msgid "search this documentation"
+msgstr "pencarian pada dokumentasi ini"
+
+#: sphinx/themes/basic/defindex.html:28
+msgid "Global Module Index"
+msgstr "Index Modul Global"
+
+#: sphinx/themes/basic/defindex.html:29
+msgid "quick access to all modules"
+msgstr "akses cepat semua modul"
+
+#: sphinx/themes/basic/defindex.html:31
+msgid "all functions, classes, terms"
+msgstr "semua fungsi, class, term"
+
+#: sphinx/themes/basic/genindex-single.html:35
+#, python-format
+msgid "Index &ndash; %(key)s"
+msgstr "Index &ndash; %(key)s"
+
+#: sphinx/themes/basic/genindex-single.html:63
+#: sphinx/themes/basic/genindex-split.html:24
+#: sphinx/themes/basic/genindex-split.html:38
+#: sphinx/themes/basic/genindex.html:74
+msgid "Full index on one page"
+msgstr "Index penuh dalam satu halaman"
+
+#: sphinx/themes/basic/genindex-split.html:16
+msgid "Index pages by letter"
+msgstr "Index halaman berdasarkan huruf"
+
+#: sphinx/themes/basic/genindex-split.html:25
+msgid "can be huge"
+msgstr "dapat menjadi besar"
+
+#: sphinx/themes/basic/layout.html:29
+msgid "Navigation"
+msgstr "Navigasi"
+
+#: sphinx/themes/basic/layout.html:122
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr "Pencarian dalam %(docstitle)s"
+
+#: sphinx/themes/basic/layout.html:131
+msgid "About these documents"
+msgstr "Tentang dokumen ini"
+
+#: sphinx/themes/basic/layout.html:140
+msgid "Copyright"
+msgstr "Copyright"
+
+#: 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."
+
+#: sphinx/themes/basic/layout.html:191
+#, python-format
+msgid "&copy; Copyright %(copyright)s."
+msgstr "&copy; Copyright %(copyright)s."
+
+#: sphinx/themes/basic/layout.html:195
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr "Terakhir diperbarui pada %(last_updated)s."
+
+#: sphinx/themes/basic/layout.html:198
+#, python-format
+msgid ""
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
+"%(sphinx_version)s."
+msgstr "Dibuat menggunakan <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
+
+#: sphinx/themes/basic/opensearch.xml:4
+#, python-format
+msgid "Search %(docstitle)s"
+msgstr "Pencarian %(docstitle)s"
+
+#: sphinx/themes/basic/relations.html:11
+msgid "Previous topic"
+msgstr "Topik sebelum"
+
+#: sphinx/themes/basic/relations.html:13
+msgid "previous chapter"
+msgstr "bab sebelum"
+
+#: sphinx/themes/basic/relations.html:16
+msgid "Next topic"
+msgstr "Topik berikutnya"
+
+#: sphinx/themes/basic/relations.html:18
+msgid "next chapter"
+msgstr "bab berikutnya"
+
+#: sphinx/themes/basic/search.html:27
+msgid ""
+"Please activate JavaScript to enable the search\n"
+" functionality."
+msgstr "Tolong aktifkan JavaScript untuk melakukan pencarian.\n "
+
+#: sphinx/themes/basic/search.html:32
+msgid ""
+"From here you can search these documents. Enter your search\n"
+" words into the box below and click \"search\". Note that the search\n"
+" function will automatically search for all of the words. Pages\n"
+" containing fewer words won't appear in the result list."
+msgstr "Dari sini dapat dilakukan pencarian pada dokumentasi. Masukkan\n kata yang dicari pada kotak dibawah dan klik \"search\". Catatan untuk fungsi pencarian\n akan secara otomatis mencari semua kata. Halaman\n yang berisi kata yang sedikat tidak dimunculkan pada daftar hasil."
+
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
+msgid "search"
+msgstr "pencarian"
+
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/static/searchtools.js_t:281
+msgid "Search Results"
+msgstr "Hasil Pencarian"
+
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/static/searchtools.js_t:283
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Tidak ada dokumen yang cocok dengan pencarian anda. Pastikan semua kata ditulis dengan benar dan sudah memilih cukup kategori."
+
+#: sphinx/themes/basic/searchbox.html:12
+msgid "Quick search"
+msgstr "Pencarian cepat"
+
+#: sphinx/themes/basic/sourcelink.html:11
+msgid "This Page"
+msgstr "Halaman Ini"
+
+#: 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 "Perubahan pada Versi %(version)s &mdash; %(docstitle)s"
+
+#: sphinx/themes/basic/changes/rstsource.html:5
+#, python-format
+msgid "%(filename)s &mdash; %(docstitle)s"
+msgstr "%(filename)s &mdash; %(docstitle)s"
+
+#: sphinx/themes/basic/changes/versionchanges.html:17
+#, python-format
+msgid "Automatically generated list of changes in version %(version)s"
+msgstr "Daftar perubahan dibuat otomatis untuk versi %(version)s"
+
+#: sphinx/themes/basic/changes/versionchanges.html:18
+msgid "Library changes"
+msgstr "Perubahan library"
+
+#: sphinx/themes/basic/changes/versionchanges.html:23
+msgid "C API changes"
+msgstr "Perubahan API C"
+
+#: sphinx/themes/basic/changes/versionchanges.html:25
+msgid "Other changes"
+msgstr "Perubahan lain"
+
+#: sphinx/themes/basic/static/doctools.js:142 sphinx/writers/html.py:510
+#: sphinx/writers/html.py:516
+msgid "Permalink to this headline"
+msgstr "Link permanent untuk headline ini"
+
+#: sphinx/themes/basic/static/doctools.js:148 sphinx/writers/html.py:97
+msgid "Permalink to this definition"
+msgstr "Link permanent untuk definisi ini"
+
+#: sphinx/themes/basic/static/doctools.js:177
+msgid "Hide Search Matches"
+msgstr "Sembunyikan Hasil Pencarian"
+
+#: sphinx/themes/basic/static/searchtools.js_t:119
+msgid "Searching"
+msgstr "Pencarian"
+
+#: sphinx/themes/basic/static/searchtools.js_t:124
+msgid "Preparing search..."
+msgstr "Penyiapkan pencarian..."
+
+#: sphinx/themes/basic/static/searchtools.js_t:285
+#, python-format
+msgid "Search finished, found %s page(s) matching the search query."
+msgstr "Pencarian selesai, menemukan %s halaman yang cocok dengan kueri pencarian."
+
+#: sphinx/themes/basic/static/searchtools.js_t:337
+msgid ", in "
+msgstr ", di"
+
+#: sphinx/themes/default/static/sidebar.js_t:83
+msgid "Expand sidebar"
+msgstr "Buka sidebar"
+
+#: sphinx/themes/default/static/sidebar.js_t:96
+#: sphinx/themes/default/static/sidebar.js_t:124
+msgid "Collapse sidebar"
+msgstr "Tutup sidebar"
+
+#: sphinx/themes/haiku/layout.html:26
+msgid "Contents"
+msgstr "Konten"
+
+#: sphinx/writers/latex.py:189
+msgid "Release"
+msgstr "Rilis"
+
+#: sphinx/writers/latex.py:620 sphinx/writers/manpage.py:181
+#: sphinx/writers/texinfo.py:612
+msgid "Footnotes"
+msgstr "Catatan kaki"
+
+#: sphinx/writers/latex.py:704
+msgid "continued from previous page"
+msgstr "lanjutan dari halaman sebelumnya"
+
+#: sphinx/writers/latex.py:710
+msgid "Continued on next page"
+msgstr "Lanjut ke halaman berikutnya"
+
+#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
+#, python-format
+msgid "[image: %s]"
+msgstr "[gambar: %s]"
+
+#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
+msgid "[image]"
+msgstr "[gambar]"
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.js b/sphinx/locale/it/LC_MESSAGES/sphinx.js
index 806f4255..98bee3f7 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "it", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Nascondi i risultati della ricerca", "Permalink to this definition": "link permanente per questa definizione", "Permalink to this headline": "link permanente per questa intestazione"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "it", "plural_expr": "(n != 1)", "messages": {"Next topic": "Argomento successivo", "Index": "Indice", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Benvenuto! Questa \u00e8", "Copyright": "Copyright", "C API changes": "Modifiche nelle API C", "quick access to all modules": "accesso veloce ai moduli", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Indice dei moduli", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "La tua ricerca non corrisponde a nessun documento. Verifica che tutte le parole siano scritte correttamente e di aver scelto un numero sufficiente di categorie.", "Index &ndash; %(key)s": "Indice &ndash; %(key)s", "General Index": "Indice generale", "next chapter": "capitolo successivo", "Search finished, found %s page(s) matching the search query.": "Ricerca completata, trovata/e %s pagina/e corrispondenti.", "previous chapter": "capitolo precedente", "Permalink to this headline": "link permanente per questa intestazione", "About these documents": "A proposito di questi documenti", "Preparing search...": "Preparo la ricerca...", ", in ": ", in", "Navigation": "Navigazione", "Expand sidebar": "Espandi la barra laterale", "the documentation for": "la documentazione per", "Complete Table of Contents": "Tabella dei contenuti completa", "Contents": "Contenuti", "can be huge": "pu\u00f2 essere enorme", "Changes in Version %(version)s &mdash; %(docstitle)s": "Modifiche nella Versione %(version)s &mdash; %(docstitle)s", "Other changes": "Altre modifiche", "Hide Search Matches": "Nascondi i risultati della ricerca", "Quick search": "Ricerca veloce", "Show Source": "Mostra sorgente", "Search": "Cerca", "This Page": "Questa pagina", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Puoi effettuare una ricerca in questi documenti. Immetti le parole chiave \n della tua ricerca nel riquadro sottostante \"cerca\". Nota che la funzione\n di ricerca cerca automaticamente per tutte le parole. Le pagine\n che contendono meno parole non compariranno nei risultati di ricerca.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Creato con <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "ultimo aggiornamento", "Collapse sidebar": "Comprimi la barra laterale", "Go": "Vai", "Table Of Contents": "Tabella dei contenuti", "Search within %(docstitle)s": "Cerca in %(docstitle)s", "all functions, classes, terms": "tutte le funzioni, classi e moduli", "Please activate JavaScript to enable the search\n functionality.": "Attiva JavaScript per abilitare la funzione\u23ce\ndi ricerca.", "Indices and tables:": "Indici e tabelle:", "lists all sections and subsections": "elenca l'insieme delle sezioni e sottosezioni", "Index pages by letter": "Indice delle pagine per lettera", "search": "cerca", "Permalink to this definition": "link permanente per questa definizione", "Previous topic": "Argomento precedente", "Overview": "Sintesi", "Last updated on %(last_updated)s.": "Ultimo aggiornamento %(last_updated)s.", "Searching": "Cerca", "search this documentation": "cerca in questa documentazione", "Automatically generated list of changes in version %(version)s": "Lista delle modifiche generata automaticamente nella versione %(version)s", "Full index on one page": "Indice completo in una pagina", "Enter search terms or a module, class or function name.": "Inserisci un termine di ricerca un modulo, classe o nome di funzione", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Modifiche nella libreria", "Search Page": "Cerca", "Search Results": "Risultati della ricerca"}}); \ No newline at end of file
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.mo b/sphinx/locale/it/LC_MESSAGES/sphinx.mo
index 8cdb9cbf..63a3b92e 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 492649e3..f2d1b886 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.po
@@ -1,23 +1,28 @@
-# Italian translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# Sandro Dentella <sandro@e-den.it>, 2008.
+#
+# Translators:
+# pcav <cavallini@faunalia.it>, 2013
+# rolandpuntaier <roland.puntaier@chello.at>, 2013
+# Sandro Dentella <sandro@e-den.it>, 2008
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.5\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Sandro Dentella <sandro@e-den.it>\n"
-"Language-Team: <sphinx-dev@googlegroups.com>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-09-19 07:52+0000\n"
+"Last-Translator: rolandpuntaier <roland.puntaier@chello.at>\n"
+"Language-Team: Italian (http://www.transifex.com/projects/p/sphinx-1/language/it/)\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"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
-#, fuzzy, python-format
+#, python-format
msgid "%s %s documentation"
msgstr "%s %s documentazione"
@@ -33,7 +38,7 @@ msgstr "vedi anche %s"
#: sphinx/environment.py:1570
msgid "Symbols"
-msgstr ""
+msgstr "Simboli"
#: sphinx/roles.py:175
#, python-format
@@ -48,11 +53,11 @@ msgstr "%d %B %Y"
#: sphinx/builders/changes.py:73
msgid "Builtins"
-msgstr "Builtin"
+msgstr "Builtins"
#: sphinx/builders/changes.py:75
msgid "Module level"
-msgstr "Modulo"
+msgstr "Al livello del modulo"
#: sphinx/builders/html.py:290
#, python-format
@@ -88,9 +93,8 @@ msgid "Module author: "
msgstr "Autore del modulo: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Autore del modulo: "
+msgstr "Autore del codice: "
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -99,9 +103,10 @@ msgstr "Autore: "
#: sphinx/domains/__init__.py:244
#, python-format
msgid "%s %s"
-msgstr ""
+msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametri"
@@ -151,20 +156,19 @@ msgstr "membro"
#: sphinx/domains/c.py:205
msgid "macro"
-msgstr ""
+msgstr "macro"
#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
msgid "type"
msgstr "tipo"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Variabile"
+msgstr "variabile"
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
-msgstr ""
+msgstr "Solleva"
#: sphinx/domains/cpp.py:1038
#, python-format
@@ -189,7 +193,7 @@ msgstr "%s (funzione C++)"
#: sphinx/domains/cpp.py:1206 sphinx/domains/javascript.py:165
#: sphinx/domains/python.py:562
msgid "class"
-msgstr ""
+msgstr "classe"
#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:253
#, python-format
@@ -209,7 +213,7 @@ msgstr "%s() (classe)"
#: sphinx/domains/javascript.py:111
#, python-format
msgid "%s (global variable or constant)"
-msgstr ""
+msgstr "%s (variabile globale o costante)"
#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:355
#, python-format
@@ -217,22 +221,20 @@ msgid "%s (%s attribute)"
msgstr "%s (%s attributo)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
msgstr "Parametri"
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
-msgstr ""
+msgstr "dati"
#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
msgid "attribute"
msgstr "attributo"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Variabile"
+msgstr "Variabili"
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -280,14 +282,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s metodo statico)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s metodo)"
+msgstr "%s() (%s.%s metodo della classe)"
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s metodo)"
+msgstr "%s() (%s metodo della classe)"
#: sphinx/domains/python.py:353
#, python-format
@@ -300,9 +302,8 @@ msgid "%s (module)"
msgstr "%s (modulo)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Indice dei Moduli"
+msgstr "Indice del modulo Python"
#: sphinx/domains/python.py:492
msgid "modules"
@@ -318,11 +319,11 @@ msgstr "eccezione"
#: sphinx/domains/python.py:564
msgid "method"
-msgstr ""
+msgstr "metodo"
#: sphinx/domains/python.py:565
msgid "class method"
-msgstr ""
+msgstr "metodo della classe"
#: sphinx/domains/python.py:566
msgid "static method"
@@ -339,20 +340,20 @@ msgstr " (deprecato)"
#: sphinx/domains/rst.py:53
#, python-format
msgid "%s (directive)"
-msgstr ""
+msgstr "%s (direttiva)"
#: sphinx/domains/rst.py:55
#, python-format
msgid "%s (role)"
-msgstr ""
+msgstr "%s (ruolo)"
#: sphinx/domains/rst.py:104
msgid "directive"
-msgstr ""
+msgstr "direttiva"
#: sphinx/domains/rst.py:105
msgid "role"
-msgstr ""
+msgstr "ruolo"
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
@@ -366,15 +367,15 @@ msgstr "%sopzione di linea di comando; %s"
#: sphinx/domains/std.py:414
msgid "glossary term"
-msgstr ""
+msgstr "voce del glossario"
#: sphinx/domains/std.py:415
msgid "grammar token"
-msgstr ""
+msgstr "elemento grammaticale"
#: sphinx/domains/std.py:416
msgid "reference label"
-msgstr ""
+msgstr "etichetta di riferimento"
#: sphinx/domains/std.py:418
msgid "environment variable"
@@ -382,7 +383,7 @@ msgstr "variabile d'ambiente"
#: sphinx/domains/std.py:419
msgid "program option"
-msgstr ""
+msgstr "opzione del programma"
#: sphinx/domains/std.py:449 sphinx/themes/basic/genindex-single.html:32
#: sphinx/themes/basic/genindex-single.html:57
@@ -405,7 +406,7 @@ msgstr "Cerca"
#: sphinx/ext/autodoc.py:1042
#, python-format
msgid " Bases: %s"
-msgstr ""
+msgstr "Basi: %s"
#: sphinx/ext/autodoc.py:1078
#, python-format
@@ -415,32 +416,32 @@ msgstr "alias per :class:`%s`"
#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
#, python-format
msgid "[graph: %s]"
-msgstr ""
+msgstr "[grafico: %s]"
#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
msgid "[graph]"
-msgstr ""
+msgstr "[grafico]"
#: sphinx/ext/intersphinx.py:234
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "(in %s v%s)"
#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
msgid "[source]"
-msgstr ""
+msgstr "[sorgente]"
#: sphinx/ext/refcounting.py:83
msgid "Return value: Always NULL."
-msgstr ""
+msgstr "Restituisci il valore: Sempre NULL"
#: sphinx/ext/refcounting.py:85
msgid "Return value: New reference."
-msgstr ""
+msgstr "Restituisci il valore: Nuovo riferimento"
#: sphinx/ext/refcounting.py:87
msgid "Return value: Borrowed reference."
-msgstr ""
+msgstr "Restituisci il valore: riferimento in prestito"
#: sphinx/ext/todo.py:42
msgid "Todo"
@@ -457,25 +458,24 @@ msgstr "riga originale"
#: sphinx/ext/viewcode.py:117
msgid "[docs]"
-msgstr ""
+msgstr "[documenti]"
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "modulo"
+msgstr "Codice del modulo"
#: sphinx/ext/viewcode.py:137
#, python-format
msgid "<h1>Source code for %s</h1>"
-msgstr ""
+msgstr "<h1>Codice sorgente per %s</h1>"
#: sphinx/ext/viewcode.py:164
msgid "Overview: module code"
-msgstr ""
+msgstr "Vista generale: codice del modulo"
#: sphinx/ext/viewcode.py:165
msgid "<h1>All modules for which code is available</h1>"
-msgstr ""
+msgstr "<h1>Tutti i moduli di cui è disponibile il codice</h1>"
#: sphinx/locale/__init__.py:155
msgid "Attention"
@@ -581,16 +581,15 @@ msgstr "Sintesi"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Benvenuto! Questa è"
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "documentazione"
+msgstr "la documentazione per"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "ultimo aggiornamento"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
@@ -677,9 +676,7 @@ msgstr "Ultimo aggiornamento %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Creato con <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Creato con <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -706,7 +703,7 @@ msgstr "capitolo successivo"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
+msgstr "Attiva JavaScript per abilitare la funzione⏎\ndi ricerca."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -714,29 +711,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Puoi effettuare una ricerca in questi documenti. Immetti le parole chiave"
-" \n"
-" della tua ricerca nel riquadro sottostante \"cerca\". Nota che la "
-"funzione\n"
-" di ricerca cerca automaticamente per tutte le parole. Le pagine\n"
-" che contendono meno parole non compariranno nei risultati di ricerca."
-
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+msgstr "Puoi effettuare una ricerca in questi documenti. Immetti le parole chiave \n della tua ricerca nel riquadro sottostante \"cerca\". Nota che la funzione\n di ricerca cerca automaticamente per tutte le parole. Le pagine\n che contendono meno parole non compariranno nei risultati di ricerca."
+
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "cerca"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Risultati della ricerca"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "La tua ricerca non corrisponde a nessun documento. Verifica che tutte le parole siano scritte correttamente e di aver scelto un numero sufficiente di categorie."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -788,35 +782,34 @@ msgid "Hide Search Matches"
msgstr "Nascondi i risultati della ricerca"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "cerca"
+msgstr "Cerca"
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
-msgstr ""
+msgstr "Preparo la ricerca..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
+msgstr "Ricerca completata, trovata/e %s pagina/e corrispondenti."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
-msgstr ""
+msgstr ", in"
#: sphinx/themes/default/static/sidebar.js_t:83
msgid "Expand sidebar"
-msgstr ""
+msgstr "Espandi la barra laterale"
#: sphinx/themes/default/static/sidebar.js_t:96
#: sphinx/themes/default/static/sidebar.js_t:124
msgid "Collapse sidebar"
-msgstr ""
+msgstr "Comprimi la barra laterale"
#: sphinx/themes/haiku/layout.html:26
msgid "Contents"
-msgstr ""
+msgstr "Contenuti"
#: sphinx/writers/latex.py:189
msgid "Release"
@@ -825,23 +818,21 @@ msgstr "Release"
#: sphinx/writers/latex.py:620 sphinx/writers/manpage.py:181
#: sphinx/writers/texinfo.py:612
msgid "Footnotes"
-msgstr ""
+msgstr "Note a piè di pagina"
#: sphinx/writers/latex.py:704
msgid "continued from previous page"
-msgstr ""
+msgstr "continua dalla pagina precedente"
#: sphinx/writers/latex.py:710
-#, fuzzy
msgid "Continued on next page"
-msgstr "Indice completo in una pagina"
+msgstr "Continua alla pagina successiva"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
msgstr "[immagine: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[immagine]"
-
diff --git a/sphinx/locale/ja/LC_MESSAGES/sphinx.js b/sphinx/locale/ja/LC_MESSAGES/sphinx.js
index 1d4f2971..b5a2ab56 100644
--- a/sphinx/locale/ja/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/ja/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "ja", "plural_expr": "0", "messages": {"Hide Search Matches": "\u691c\u7d22\u7d50\u679c\u3092\u96a0\u3059", "Permalink to this definition": "\u3053\u306e\u5b9a\u7fa9\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Permalink to this headline": "\u3053\u306e\u30d8\u30c3\u30c9\u30e9\u30a4\u30f3\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "ja", "plural_expr": "0", "messages": {"Next topic": "\u6b21\u306e\u30c8\u30d4\u30c3\u30af\u3078", "Index": "\u7d22\u5f15", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Welcome! This is", "Copyright": "\u8457\u4f5c\u6a29", "C API changes": "C API \u306b\u95a2\u3059\u308b\u5909\u66f4", "quick access to all modules": "\u5168\u30e2\u30b8\u30e5\u30fc\u30eb\u65e9\u898b\u8868", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "\u30e2\u30b8\u30e5\u30fc\u30eb\u7dcf\u7d22\u5f15", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u691c\u7d22\u3057\u305f\u6587\u5b57\u5217\u306f\u3069\u306e\u6587\u66f8\u306b\u3082\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3059\u3079\u3066\u306e\u5358\u8a9e\u304c\u6b63\u78ba\u306b\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u304b\u3001\u3042\u308b\u3044\u306f\u3001\u5341\u5206\u306a\u30ab\u30c6\u30b4\u30ea\u30fc\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Index &ndash; %(key)s": "\u7d22\u5f15 &ndash; %(key)s", "General Index": "\u7dcf\u5408\u7d22\u5f15", "next chapter": "\u6b21\u306e\u7ae0\u3078", "Search finished, found %s page(s) matching the search query.": "\u691c\u7d22\u304c\u5b8c\u4e86\u3057\u3001 %s \u30da\u30fc\u30b8\u898b\u3064\u3051\u307e\u3057\u305f\u3002", "previous chapter": "\u524d\u306e\u7ae0\u3078", "Permalink to this headline": "\u3053\u306e\u30d8\u30c3\u30c9\u30e9\u30a4\u30f3\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "About these documents": "\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u3064\u3044\u3066", "Preparing search...": "\u691c\u7d22\u3092\u6e96\u5099\u3057\u3066\u3044\u307e\u3059...", ", in ": ", in ", "Navigation": "\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3", "Expand sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u5c55\u958b", "the documentation for": "the documentation for", "Complete Table of Contents": "\u7dcf\u5408\u76ee\u6b21", "Contents": "\u30b3\u30f3\u30c6\u30f3\u30c4", "can be huge": "\u5927\u304d\u3044\u5834\u5408\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u30d0\u30fc\u30b8\u30e7\u30f3 %(version)s \u306e\u5909\u66f4\u70b9 &mdash; %(docstitle)s", "Other changes": "\u305d\u306e\u591a\u306e\u5909\u66f4", "Hide Search Matches": "\u691c\u7d22\u7d50\u679c\u3092\u96a0\u3059", "Quick search": "\u30af\u30a4\u30c3\u30af\u691c\u7d22", "Show Source": "\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8868\u793a", "Search": "\u691c\u7d22", "This Page": "\u3053\u306e\u30da\u30fc\u30b8", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u3053\u306e\u30da\u30fc\u30b8\u304b\u3089\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u691c\u7d22\u3067\u304d\u307e\u3059\u3002\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u4e0b\u306e\u30dc\u30c3\u30af\u30b9\u306b\u5165\u529b\u3057\u3066\u3001\u300c\u691c\u7d22\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5165\u529b\u3055\u308c\u305f\u5168\u3066\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u542b\u3080\u30da\u30fc\u30b8\u304c\u691c\u7d22\u3055\u308c\u307e\u3059\u3002\u4e00\u90e8\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3057\u304b\u542b\u307e\u306a\u3044\u30da\u30fc\u30b8\u306f\u691c\u7d22\u7d50\u679c\u306b\u8868\u793a\u3055\u308c\u306a\u3044\u306e\u3067\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u3067\u751f\u6210\u3057\u307e\u3057\u305f\u3002", "last updated": "\u6700\u7d42\u66f4\u65b0", "Collapse sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u305f\u305f\u3080", "Go": "\u691c\u7d22", "Table Of Contents": "\u76ee\u6b21", "Search within %(docstitle)s": "%(docstitle)s \u5185\u3092\u691c\u7d22", "all functions, classes, terms": "\u95a2\u6570\u3001\u30af\u30e9\u30b9\u304a\u3088\u3073\u7528\u8a9e\u7dcf\u89a7", "Please activate JavaScript to enable the search\n functionality.": "\u691c\u7d22\u6a5f\u80fd\u3092\u4f7f\u3046\u306b\u306f JavaScript \u3092\u6709\u52b9\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Indices and tables:": "\u7d22\u5f15\u3068\u8868\u4e00\u89a7:", "lists all sections and subsections": "\u7ae0\uff0f\u7bc0\u4e00\u89a7", "Index pages by letter": "\u982d\u6587\u5b57\u5225\u7d22\u5f15", "search": "\u691c\u7d22", "Permalink to this definition": "\u3053\u306e\u5b9a\u7fa9\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Previous topic": "\u524d\u306e\u30c8\u30d4\u30c3\u30af\u3078", "Overview": "\u6982\u8981", "Last updated on %(last_updated)s.": "\u6700\u7d42\u66f4\u65b0: %(last_updated)s", "Searching": "\u691c\u7d22\u4e2d", "search this documentation": "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u691c\u7d22", "Automatically generated list of changes in version %(version)s": "\u30d0\u30fc\u30b8\u30e7\u30f3 %(version)s \u306e\u5909\u66f4\u70b9\uff08\u3053\u306e\u30ea\u30b9\u30c8\u306f\u81ea\u52d5\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\uff09", "Full index on one page": "\u7dcf\u7d22\u5f15", "Enter search terms or a module, class or function name.": "\u30e2\u30b8\u30e5\u30fc\u30eb\u3001\u30af\u30e9\u30b9\u3001\u307e\u305f\u306f\u95a2\u6570\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u95a2\u3059\u308b\u5909\u66f4", "Search Page": "\u691c\u7d22\u30da\u30fc\u30b8", "Search Results": "\u691c\u7d22\u7d50\u679c"}}); \ No newline at end of file
diff --git a/sphinx/locale/ja/LC_MESSAGES/sphinx.mo b/sphinx/locale/ja/LC_MESSAGES/sphinx.mo
index 6ae0821c..82b838b0 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 1f46ed04..7906d68b 100644
--- a/sphinx/locale/ja/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ja/LC_MESSAGES/sphinx.po
@@ -1,28 +1,32 @@
-# Japanese translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# Yasushi Masuda <whosaysni@gmail.com>, 2008.
-# Kouhei Sutou <kou@clear-code.com>, 2011.
-# Akitoshi Ohta <fire.kuma8@gmail.com>, 2011.
-#
+#
+# Translators:
+# shirou - しろう, 2013
+# Akitoshi Ohta <fire.kuma8@gmail.com>, 2011
+# Kouhei Sutou <kou@clear-code.com>, 2011
+# Takayuki Shimizukawa <shimizukawa@gmail.com>, 2013
+# whosaysni <whosaysni@gmail.com>, 2008
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.1pre\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-08-27 17:50+0900\n"
-"Last-Translator: Akitoshi Ohta <fire.kuma8@gmail.com>\n"
-"Language-Team: Japanese\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"PO-Revision-Date: 2013-11-20 09:59+0000\n"
+"Last-Translator: Takayuki Shimizukawa <shimizukawa@gmail.com>\n"
+"Language-Team: Japanese (http://www.transifex.com/projects/p/sphinx-1/language/ja/)\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"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: sphinx/config.py:81
#, python-format
msgid "%s %s documentation"
-msgstr ""
+msgstr "%s %s ドキュメント"
#: sphinx/environment.py:1510
#, python-format
@@ -36,7 +40,7 @@ msgstr "%sも参照"
#: sphinx/environment.py:1570
msgid "Symbols"
-msgstr ""
+msgstr "シンボル"
#: sphinx/roles.py:175
#, python-format
@@ -80,7 +84,7 @@ msgstr "前へ"
#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
msgid " (in "
-msgstr ""
+msgstr " (in "
#: sphinx/directives/other.py:138
msgid "Section author: "
@@ -101,9 +105,10 @@ msgstr "作者: "
#: sphinx/domains/__init__.py:244
#, python-format
msgid "%s %s"
-msgstr ""
+msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "パラメタ"
@@ -413,16 +418,16 @@ msgstr ":class:`%s` のエイリアス"
#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
#, python-format
msgid "[graph: %s]"
-msgstr ""
+msgstr "[グラフ: %s]"
#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
msgid "[graph]"
-msgstr ""
+msgstr "[グラフ]"
#: sphinx/ext/intersphinx.py:234
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "(in %s v%s)"
#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
msgid "[source]"
@@ -430,15 +435,15 @@ msgstr "[ソース]"
#: sphinx/ext/refcounting.py:83
msgid "Return value: Always NULL."
-msgstr ""
+msgstr "返り値: 常にNULL。"
#: sphinx/ext/refcounting.py:85
msgid "Return value: New reference."
-msgstr ""
+msgstr "返り値: 新たな参照"
#: sphinx/ext/refcounting.py:87
msgid "Return value: Borrowed reference."
-msgstr ""
+msgstr "返り値: 借用参照"
#: sphinx/ext/todo.py:42
msgid "Todo"
@@ -578,16 +583,15 @@ msgstr "概要"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Welcome! This is"
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "ドキュメントを検索"
+msgstr "the documentation for"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "最終更新"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
@@ -674,9 +678,7 @@ msgstr "最終更新: %(last_updated)s"
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"このドキュメントは <a href=\"http://sphinx-doc.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
@@ -713,21 +715,24 @@ msgid ""
" containing fewer words won't appear in the result list."
msgstr "このページからドキュメントを検索できます。キーワードを下のボックスに入力して、「検索」をクリックしてください。入力された全てのキーワードを含むページが検索されます。一部のキーワードしか含まないページは検索結果に表示されないので注意してください。"
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "検索"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "検索結果"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "検索した文字列はどの文書にも見つかりませんでした。すべての単語が正確に記述されているか、あるいは、十分なカテゴリーが選択されているか確認してください。"
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -779,22 +784,21 @@ msgid "Hide Search Matches"
msgstr "検索結果を隠す"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "検索"
+msgstr "検索中"
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
-msgstr ""
+msgstr "検索を準備しています..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
+msgstr "検索が完了し、 %s ページ見つけました。"
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
-msgstr ""
+msgstr ", in "
#: sphinx/themes/default/static/sidebar.js_t:83
msgid "Expand sidebar"
@@ -827,11 +831,10 @@ msgid "Continued on next page"
msgstr "次のページに続く"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
msgstr "[画像: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[画像]"
-
diff --git a/sphinx/locale/ko/LC_MESSAGES/sphinx.js b/sphinx/locale/ko/LC_MESSAGES/sphinx.js
index 21ce80f3..a4339d8c 100644
--- a/sphinx/locale/ko/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/ko/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "ko", "plural_expr": "0", "messages": {"Hide Search Matches": "\uac80\uc0c9 \uacb0\uacfc \uc228\uae30\uae30", "Permalink to this definition": "\uc815\uc758 \uc8fc\uc18c", "Permalink to this headline": "\uc81c\ubaa9 \uc8fc\uc18c"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "ko", "plural_expr": "0", "messages": {"Next topic": "\ub2e4\uc74c \ud56d\ubaa9", "Index": "\uc0c9\uc778", "%(filename)s &mdash; %(docstitle)s": "", "Welcome! This is": "", "Copyright": "\uc800\uc791\uad8c", "C API changes": "C API\uc5d0 \ub300\ud55c \ubcc0\uacbd", "quick access to all modules": "\ubaa8\ub4e0 \ubaa8\ub4c8 \uc870\uacac\ud45c", "&copy; Copyright %(copyright)s.": "", "Global Module Index": "\ubaa8\ub4c8 \ucd1d \uc0c9\uc778", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "", "General Index": "\uc804\uccb4 \uc0c9\uc778", "next chapter": "\ub2e4\uc74c \uc7a5", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\uc774\uc804 \uc7a5", "Permalink to this headline": "\uc81c\ubaa9 \uc8fc\uc18c", "About these documents": "\uc774 \ubb38\uc11c \uc815\ubcf4", "Preparing search...": "", ", in ": "", "Navigation": "\ud0d0\uc0c9", "Expand sidebar": "\uc0ac\uc774\ub4dc\ubc14 \uc5f4\uae30", "the documentation for": "", "Complete Table of Contents": "\uc885\ud569 \ubaa9\ucc28", "Contents": "\ub0b4\uc6a9", "can be huge": "\ud070 \uacbd\uc6b0\uac00 \uc788\uc73c\ubbc0\ub85c \uc8fc\uc758", "Changes in Version %(version)s &mdash; %(docstitle)s": "", "Other changes": "\ub2e4\ub978 \ubcc0\uacbd \uc0ac\ud56d", "Hide Search Matches": "\uac80\uc0c9 \uacb0\uacfc \uc228\uae30\uae30", "Quick search": "\ube60\ub978 \uac80\uc0c9", "Show Source": "\uc18c\uc2a4 \ucf54\ub4dc\ub97c \ubcf4\ub824\uba74", "Search": "\uac80\uc0c9", "This Page": "\ud604\uc7ac \ubb38\uc11c", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", "last updated": "", "Collapse sidebar": "\uc0ac\uc774\ub4dc\ubc14 \ub2eb\uae30", "Go": "\ubc14\ub85c \uac00\uae30", "Table Of Contents": "\ubaa9\ucc28", "Search within %(docstitle)s": "%(docstitle)s\uc5d0\uc11c \ucc3e\uae30", "all functions, classes, terms": "\ud568\uc218, \ud074\ub798\uc2a4 \ubc0f \uc6a9\uc5b4 \uac1c\uad00", "Please activate JavaScript to enable the search\n functionality.": "", "Indices and tables:": "\uc0c9\uc778 \ubc0f \ud45c \ubaa9\ub85d:", "lists all sections and subsections": "\uc601\uc5ed\ubcc4 \ubaa9\ucc28", "Index pages by letter": "\uc54c\ud30c\ubcb3\ubcc4 \uc0c9\uc778", "search": "\uac80\uc0c9", "Permalink to this definition": "\uc815\uc758 \uc8fc\uc18c", "Previous topic": "\uc774\uc804 \ud56d\ubaa9", "Overview": "\uac1c\uc694", "Last updated on %(last_updated)s.": "\ucd5c\uc885 \uc5c5\ub370\uc774\ud2b8: %(last_updated)s", "Searching": "", "search this documentation": "\ubb38\uc11c \uac80\uc0c9", "Automatically generated list of changes in version %(version)s": "\ubc84\uc804 %(version)s\uc758 \ubcc0\uacbd \uc0ac\ud56d (\uc774 \ubaa9\ub85d\uc740 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud569\ub2c8\ub2e4)", "Full index on one page": "\uc77c\ubc18 \uc0c9\uc778", "Enter search terms or a module, class or function name.": "\ubaa8\ub4c8, \ud074\ub798\uc2a4 \ub610\ub294 \ud568\uc218 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "", "Library changes": "\ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0 \ub300\ud55c \ubcc0\uacbd", "Search Page": "\uac80\uc0c9 \ud398\uc774\uc9c0", "Search Results": "\uac80\uc0c9 \uacb0\uacfc"}}); \ No newline at end of file
diff --git a/sphinx/locale/ko/LC_MESSAGES/sphinx.mo b/sphinx/locale/ko/LC_MESSAGES/sphinx.mo
index 0ba76ae6..97f5f935 100644
--- a/sphinx/locale/ko/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ko/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ko/LC_MESSAGES/sphinx.po b/sphinx/locale/ko/LC_MESSAGES/sphinx.po
index 60ca5be7..f0ded795 100644
--- a/sphinx/locale/ko/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ko/LC_MESSAGES/sphinx.po
@@ -1,21 +1,22 @@
-# Koreantranslations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# Channy Yun <channy@mozilla.or.kr>
-#
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.1pre\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-06-09 21:25+0900\n"
-"Last-Translator: Channy Yun <channy@mozilla.or.kr>\n"
-"Language-Team: Korean\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"PO-Revision-Date: 2013-04-02 15:26+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Korean (http://www.transifex.com/projects/p/sphinx-1/language/ko/)\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"
+"Language: ko\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: sphinx/config.py:81
#, python-format
@@ -81,31 +82,28 @@ msgid " (in "
msgstr ""
#: sphinx/directives/other.py:138
-#, fuzzy
msgid "Section author: "
-msgstr "항목 저자:"
+msgstr ""
#: sphinx/directives/other.py:140
-#, fuzzy
msgid "Module author: "
-msgstr "모듈 개발자:"
+msgstr ""
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "코드 개발자:"
+msgstr ""
#: sphinx/directives/other.py:144
-#, fuzzy
msgid "Author: "
-msgstr "저자:"
+msgstr ""
#: sphinx/domains/__init__.py:244
#, python-format
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "매개 변수"
@@ -266,14 +264,14 @@ msgid "%s (class in %s)"
msgstr "%s (%s 종류)"
#: sphinx/domains/python.py:315
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s method)"
-msgstr "%s() (%s. %s 메서드)"
+msgstr ""
#: sphinx/domains/python.py:327
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s static method)"
-msgstr "%s() (%s. %s의 정적 메서드)"
+msgstr ""
#: sphinx/domains/python.py:330
#, python-format
@@ -281,9 +279,9 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s의 정적 메서드)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s. %s 클래스 메서드)"
+msgstr ""
#: sphinx/domains/python.py:343
#, python-format
@@ -291,9 +289,9 @@ msgid "%s() (%s class method)"
msgstr "%s() (%s 클래스 메서드)"
#: sphinx/domains/python.py:353
-#, fuzzy, python-format
+#, python-format
msgid "%s (%s.%s attribute)"
-msgstr "%s (%s. %s의 속성)"
+msgstr ""
#: sphinx/domains/python.py:434
#, python-format
@@ -333,9 +331,8 @@ msgid "module"
msgstr "모듈"
#: sphinx/domains/python.py:696
-#, fuzzy
msgid " (deprecated)"
-msgstr "(폐지)"
+msgstr ""
#: sphinx/domains/rst.py:53
#, python-format
@@ -404,14 +401,14 @@ msgid "Search Page"
msgstr "검색 페이지"
#: sphinx/ext/autodoc.py:1042
-#, fuzzy, python-format
+#, python-format
msgid " Bases: %s"
-msgstr "기본 클래스: %s"
+msgstr ""
#: sphinx/ext/autodoc.py:1078
-#, fuzzy, python-format
+#, python-format
msgid "alias of :class:`%s`"
-msgstr ": class:`%s`의 별칭"
+msgstr ""
#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
#, python-format
@@ -448,9 +445,9 @@ msgid "Todo"
msgstr "과제"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(<<원래 항목>> 는 %s %d 번째)"
+msgstr ""
#: sphinx/ext/todo.py:119
msgid "original entry"
@@ -465,18 +462,17 @@ msgid "Module code"
msgstr "모듈 코드"
#: sphinx/ext/viewcode.py:137
-#, fuzzy, python-format
+#, python-format
msgid "<h1>Source code for %s</h1>"
-msgstr "<h1>%s의 소스 코드</ h1>"
+msgstr ""
#: sphinx/ext/viewcode.py:164
msgid "Overview: module code"
msgstr "설명: 모듈 코드"
#: sphinx/ext/viewcode.py:165
-#, fuzzy
msgid "<h1>All modules for which code is available</h1>"
-msgstr "<h1>코드가 제공되는 모든 모듈 </ h1>"
+msgstr ""
#: sphinx/locale/__init__.py:155
msgid "Attention"
@@ -585,9 +581,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "문서 검색"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -622,9 +617,9 @@ msgid "all functions, classes, terms"
msgstr "함수, 클래스 및 용어 개관"
#: sphinx/themes/basic/genindex-single.html:35
-#, fuzzy, python-format
+#, python-format
msgid "Index &ndash; %(key)s"
-msgstr "색인-%(key)s"
+msgstr ""
#: sphinx/themes/basic/genindex-single.html:63
#: sphinx/themes/basic/genindex-split.html:24
@@ -659,14 +654,14 @@ msgid "Copyright"
msgstr "저작권"
#: sphinx/themes/basic/layout.html:189
-#, fuzzy, python-format
+#, python-format
msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
-msgstr "&copy;<a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr ""
#: sphinx/themes/basic/layout.html:191
-#, fuzzy, python-format
+#, python-format
msgid "&copy; Copyright %(copyright)s."
-msgstr "&copy;Copyright %(copyright)s."
+msgstr ""
#: sphinx/themes/basic/layout.html:195
#, python-format
@@ -674,13 +669,11 @@ msgid "Last updated on %(last_updated)s."
msgstr "최종 업데이트: %(last_updated)s"
#: sphinx/themes/basic/layout.html:198
-#, fuzzy, python-format
+#, python-format
msgid ""
"Created using <a href=\"http://sphinx-doc.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
@@ -704,37 +697,36 @@ msgid "next chapter"
msgstr "다음 장"
#: sphinx/themes/basic/search.html:27
-#, fuzzy
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr "검색 기능을 사용하려면 JavaScript를 활성화하십시오."
+msgstr ""
#: sphinx/themes/basic/search.html:32
-#, fuzzy
msgid ""
"From here you can search these documents. Enter your search\n"
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
msgstr ""
-"이 문서에서 문서를 검색할 수 있습니다. 키워드를 아래 입력란에 입력하고 '검색'을 클릭하세요. 입력된 모든 키워드를 포함하는 "
-"페이지가 검색됩니다. 일부 키워드 밖에 없는 페이지는 검색 결과에 표시되지 않으므로 주의하십시오. "
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "검색"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "검색 결과"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -747,14 +739,14 @@ msgstr "현재 문서"
#: sphinx/themes/basic/changes/frameset.html:5
#: sphinx/themes/basic/changes/versionchanges.html:12
-#, fuzzy, python-format
+#, python-format
msgid "Changes in Version %(version)s &mdash; %(docstitle)s"
-msgstr "버전 %(version)s의 변경 사항-%(docstitle)s"
+msgstr ""
#: sphinx/themes/basic/changes/rstsource.html:5
-#, fuzzy, python-format
+#, python-format
msgid "%(filename)s &mdash; %(docstitle)s"
-msgstr "%(filename)s &mdash; %(docstitle)s"
+msgstr ""
#: sphinx/themes/basic/changes/versionchanges.html:17
#, python-format
@@ -787,9 +779,8 @@ msgid "Hide Search Matches"
msgstr "검색 결과 숨기기"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "검색"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -835,11 +826,10 @@ msgid "Continued on next page"
msgstr "일반 색인"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[그림: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[그림]"
-
diff --git a/sphinx/locale/lt/LC_MESSAGES/sphinx.js b/sphinx/locale/lt/LC_MESSAGES/sphinx.js
index b2190ad2..bae97ae7 100644
--- a/sphinx/locale/lt/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/lt/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "lt", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "Pasl\u0117pti paie\u0161kos rezultatus", "Permalink to this definition": "Nuoroda \u012f \u0161\u012f apibr\u0117\u017eim\u0105", "Permalink to this headline": "Nuoroda \u012f \u0161i\u0105 antra\u0161t\u0119"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "lt", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Next topic": "Kita tema", "Index": "Indeksas", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Autoriaus teis\u0117s", "C API changes": "C API pakeitimai", "quick access to all modules": "greitas vis\u0173 moduli\u0173 pasiekimas", "&copy; Copyright %(copyright)s.": "&copy; Autoriaus teis\u0117s %(copyright)s.", "Global Module Index": "Globalus Modulio Indeksas", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Indeksas &ndash; %(key)s", "General Index": "Bendras indeksas", "next chapter": "kita dalis", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "praeita dalis", "Permalink to this headline": "Nuoroda \u012f \u0161i\u0105 antra\u0161t\u0119", "About these documents": "Apie \u0161iuos dokumentus", "Preparing search...": "", ", in ": "", "Navigation": "Navigacija", "Expand sidebar": "I\u0161pl\u0117sti \u0161onin\u0119 juost\u0105", "the documentation for": "", "Complete Table of Contents": "Pilnas Turinys", "Contents": "Turinys", "can be huge": "gali b\u016bti didelis", "Changes in Version %(version)s &mdash; %(docstitle)s": "Pasikeitimai versijoje %(version)s &mdash; %(docstitle)s", "Other changes": "Kiti pakeitimai", "Hide Search Matches": "Pasl\u0117pti paie\u0161kos rezultatus", "Quick search": "Greitoji paie\u0161ka", "Show Source": "Rodyti pirmin\u012f kod\u0105", "Search": "Paie\u0161ka", "This Page": "\u0160is puslapis", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u010cia j\u016bs galite ie\u0161koti \u0161iuose dokumentuose. \u012eveskite savo paie\u0161kos\n \u017eod\u017eius \u012f lauk\u0105 apa\u010dioje ir paspauskite \"ie\u0161koti\". Pasteb\u0117sime, kad paie\u0161kos\n funkcija automati\u0161kai ie\u0161kos vis\u0173 \u017eod\u017ei\u0173. Puslapiai,\n kuriuose yra ma\u017eiau \u017eod\u017ei\u0173 nepasirodys tarp paie\u0161kos rezultat\u0173.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Sukurta naudojant <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "Pasl\u0117pti \u0161onin\u0119 juost\u0105", "Go": "Pirmyn", "Table Of Contents": "Turinys", "Search within %(docstitle)s": "Ie\u0161koti tarp %(docstitle)s", "all functions, classes, terms": "visos funkcijos, klas\u0117s ir terminai", "Please activate JavaScript to enable the search\n functionality.": "Pra\u0161ome aktyvuoti JavaScript, kad veikt\u0173 paie\u0161kos\n funkcionalumas.", "Indices and tables:": "Indeksai ir lentel\u0117s:", "lists all sections and subsections": "sura\u0161yti visus skyrius ir poskyrius", "Index pages by letter": "Indekso puslapiai pagal raid\u0119", "search": "ie\u0161koti", "Permalink to this definition": "Nuoroda \u012f \u0161\u012f apibr\u0117\u017eim\u0105", "Previous topic": "Praeita tema", "Overview": "Ap\u017evalga", "Last updated on %(last_updated)s.": "Paskutinis atnaujinimas %(last_updated)s.", "Searching": "", "search this documentation": "ie\u0161koti \u0161iame dokumente", "Automatically generated list of changes in version %(version)s": "Automati\u0161kai sugeneruotas pakeitim\u0173 %(version)s versijoje s\u0105ra\u0161as", "Full index on one page": "Pilnas indeksas viename puslapyje", "Enter search terms or a module, class or function name.": "\u012eveskite paie\u0161kos termin\u0105 arba modulio, klas\u0117s ar funkcijos vard\u0105.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Autoriaus teis\u0117s</a> %(copyright)s.", "Library changes": "Bibliotekos pakeitimai", "Search Page": "Paie\u0161kos puslapis", "Search Results": "Paie\u0161kos rezultatai"}}); \ No newline at end of file
diff --git a/sphinx/locale/lt/LC_MESSAGES/sphinx.mo b/sphinx/locale/lt/LC_MESSAGES/sphinx.mo
index 01c7ed63..f544b217 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 0724f3dd..e9a7e361 100644
--- a/sphinx/locale/lt/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/lt/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Lithuanian translations for Sphinx.
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# DALIUS DOBRAVOLSKAS <DALIUS@SANDBOX.LT>, 2010.
-#
+#
+# Translators:
+# DALIUS DOBRAVOLSKAS <DALIUS@SANDBOX.LT>, 2010
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.0pre/8b971dbc7d36\n"
-"Report-Msgid-Bugs-To: dalius@sandbox.lt\n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Dalius Dobravolskas <dalius@sandbox.lt>\n"
-"Language-Team: lt <LL@li.org>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"(n%100<10 || n%100>=20) ? 1 : 2)\n"
+"PO-Revision-Date: 2013-04-02 15:26+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Lithuanian (http://www.transifex.com/projects/p/sphinx-1/language/lt/)\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"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: sphinx/config.py:81
#, python-format
@@ -101,7 +103,8 @@ msgstr "Autorius: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametrai"
@@ -579,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "ieškoti šiame dokumente"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -672,9 +674,7 @@ msgstr "Paskutinis atnaujinimas %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Sukurta naudojant <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Sukurta naudojant <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -701,9 +701,7 @@ msgstr "kita dalis"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Prašome aktyvuoti JavaScript, kad veiktų paieškos\n"
-" funkcionalumas."
+msgstr "Prašome aktyvuoti JavaScript, kad veiktų paieškos\n funkcionalumas."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -711,27 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Čia jūs galite ieškoti šiuose dokumentuose. Įveskite savo paieškos\n"
-" žodžius į lauką apačioje ir paspauskite \"ieškoti\". Pastebėsime, kad"
-" paieškos\n"
-" funkcija automatiškai ieškos visų žodžių. Puslapiai,\n"
-" kuriuose yra mažiau žodžių nepasirodys tarp paieškos rezultatų."
+msgstr "Čia jūs galite ieškoti šiuose dokumentuose. Įveskite savo paieškos\n žodžius į lauką apačioje ir paspauskite \"ieškoti\". Pastebėsime, kad paieškos\n funkcija automatiškai ieškos visų žodžių. Puslapiai,\n kuriuose yra mažiau žodžių nepasirodys tarp paieškos rezultatų."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "ieškoti"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Paieškos rezultatai"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -784,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "Paslėpti paieškos rezultatus"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "ieškoti"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -832,11 +827,10 @@ msgid "Continued on next page"
msgstr "Tęsinys kitame puslapyje"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[paveiksliukas: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[paveiksliukas]"
-
diff --git a/sphinx/locale/lv/LC_MESSAGES/sphinx.js b/sphinx/locale/lv/LC_MESSAGES/sphinx.js
index 336e53dd..669d6f03 100644
--- a/sphinx/locale/lv/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/lv/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "lv", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "Pasl\u0113pt atlases v\u0101rdus", "Permalink to this definition": "Past\u0101v\u012bga nor\u0101de uz \u0161o defin\u012bciju", "Permalink to this headline": "Past\u0101v\u012bga nor\u0101de \u0161o virsrakstu"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "lv", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)", "messages": {"Next topic": "n\u0101ko\u0161a t\u0113ma", "Index": "Indekss", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Copyright", "C API changes": "Izmai\u0146as iek\u0161 C API", "quick access to all modules": "\u0101tra piek\u013cuve visiem moduliem", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Visp\u0101r\u0113js modu\u013cu indekss", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Indekss &ndash; %(key)s", "General Index": "Visp\u0101r\u0113js indekss", "next chapter": "n\u0101ko\u0161a sada\u013ca", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "iepriek\u0161\u0113ja sada\u013ca", "Permalink to this headline": "Past\u0101v\u012bga nor\u0101de \u0161o virsrakstu", "About these documents": "Par \u0161iem dokumentiem", "Preparing search...": "", ", in ": "", "Navigation": "Navig\u0101cija", "Expand sidebar": "Izplest s\u0101njoslu", "the documentation for": "", "Complete Table of Contents": "Pilns saturs", "Contents": "Saturs", "can be huge": "var b\u016bt milz\u012bgs", "Changes in Version %(version)s &mdash; %(docstitle)s": "Izmai\u0146as versij\u0101 %(version)s &mdash; %(docstitle)s", "Other changes": "Citas izmai\u0146as", "Hide Search Matches": "Pasl\u0113pt atlases v\u0101rdus", "Quick search": "\u0100tra mekl\u0113\u0161ana", "Show Source": "R\u0101d\u012bt izejas tekstu", "Search": "Mekl\u0113t", "This Page": "\u0160\u012b lappuse", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u0160eit J\u016bs varat mekl\u0113t \u0161ajos dokumentos. Nor\u0101diet mekl\u0113jamus v\u0101rdus\n ievada lauka un uzklik\u0161\u0137iniet pogu \"mekl\u0113t\". L\u016bdzu iev\u0113rojiet,\n ka mekl\u0113\u0161anas programma atrad\u012bs tikai tos dokumentus, kuros ir\n visi ievad\u012btie v\u0101rdi. Dokumenti, kuros ir tikai da\u013ca no ievad\u012btiem\n v\u0101rdiem, netiks atlas\u012bti.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Sagatavots izmantojot <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "Sav\u0113rst s\u0101njoslu", "Go": "Izpild\u012bt", "Table Of Contents": "Saturs", "Search within %(docstitle)s": "Mekl\u0113t iek\u0161 %(docstitle)s", "all functions, classes, terms": "visas funkcijas, klases un termini", "Please activate JavaScript to enable the search\n functionality.": "Lai iesp\u0113jotu mekl\u0113\u0161anu, l\u016bdzu aktiviz\u0113t JavaScript.", "Indices and tables:": "Indeksi un tabulas:", "lists all sections and subsections": "r\u0101da visas sekcijas un apak\u0161sekcijas", "Index pages by letter": "Lappu\u0161u indekss p\u0113c burtiem", "search": "mekl\u0113t", "Permalink to this definition": "Past\u0101v\u012bga nor\u0101de uz \u0161o defin\u012bciju", "Previous topic": "iepriek\u0161\u0113ja t\u0113ma", "Overview": "Apskats", "Last updated on %(last_updated)s.": "P\u0113d\u0113jas izmai\u0146as %(last_updated)s.", "Searching": "", "search this documentation": "mekl\u0113t \u0161aj\u0101 dokument\u0101cij\u0101", "Automatically generated list of changes in version %(version)s": "Autom\u0101tiski sagatavots izmai\u0146u saraksts versijai %(version)s", "Full index on one page": "Pilns indekss vien\u0101 lappus\u0113", "Enter search terms or a module, class or function name.": "Ievadiet mekl\u0113jamus terminus vai modu\u013ca, klases vai funkcijas v\u0101rdu.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Bibliot\u0113kas izmai\u0146as", "Search Page": "Atlases lapa", "Search Results": "Atlases rezult\u0101ti"}}); \ No newline at end of file
diff --git a/sphinx/locale/lv/LC_MESSAGES/sphinx.mo b/sphinx/locale/lv/LC_MESSAGES/sphinx.mo
index 1d573a12..45134769 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 e9054d08..09c12b2a 100644
--- a/sphinx/locale/lv/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/lv/LC_MESSAGES/sphinx.po
@@ -1,20 +1,22 @@
-# Latvian translations for Sphinx.
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.0.7\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-05-10 16:40+0200\n"
-"Last-Translator: alexander smishlajev <alex@gorka.lv>\n"
-"Language-Team: lv <LL@li.org>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"(n%100<10 || n%100>=20) ? 1 : 2)\n"
+"PO-Revision-Date: 2013-04-02 15:27+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Latvian (http://www.transifex.com/projects/p/sphinx-1/language/lv/)\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"
+"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#: sphinx/config.py:81
#, python-format
@@ -100,7 +102,8 @@ msgstr "Autors: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametri"
@@ -200,9 +203,9 @@ msgid "%s() (%s method)"
msgstr "%s() (%s metods)"
#: sphinx/domains/javascript.py:109
-#, fuzzy, python-format
+#, python-format
msgid "%s() (class)"
-msgstr "%s() (klase)"
+msgstr ""
#: sphinx/domains/javascript.py:111
#, python-format
@@ -578,9 +581,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "meklēt šajā dokumentācijā"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -671,9 +673,7 @@ msgstr "Pēdējas izmaiņas %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Sagatavots izmantojot <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Sagatavots izmantojot <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -708,27 +708,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Šeit Jūs varat meklēt šajos dokumentos. Norādiet meklējamus vārdus\n"
-" ievada lauka un uzklikšķiniet pogu \"meklēt\". Lūdzu ievērojiet,\n"
-" ka meklēšanas programma atradīs tikai tos dokumentus, kuros ir\n"
-" visi ievadītie vārdi. Dokumenti, kuros ir tikai daļa no ievadītiem\n"
-" vārdiem, netiks atlasīti."
+msgstr "Šeit Jūs varat meklēt šajos dokumentos. Norādiet meklējamus vārdus\n ievada lauka un uzklikšķiniet pogu \"meklēt\". Lūdzu ievērojiet,\n ka meklēšanas programma atradīs tikai tos dokumentus, kuros ir\n visi ievadītie vārdi. Dokumenti, kuros ir tikai daļa no ievadītiem\n vārdiem, netiks atlasīti."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "meklēt"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Atlases rezultāti"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -781,9 +779,8 @@ msgid "Hide Search Matches"
msgstr "Paslēpt atlases vārdus"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "meklēt"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -836,4 +833,3 @@ msgstr "[attēls: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[attēls]"
-
diff --git a/sphinx/locale/mk/LC_MESSAGES/sphinx.js b/sphinx/locale/mk/LC_MESSAGES/sphinx.js
new file mode 100644
index 00000000..8328cb61
--- /dev/null
+++ b/sphinx/locale/mk/LC_MESSAGES/sphinx.js
@@ -0,0 +1 @@
+Documentation.addTranslations({"locale": "mk", "plural_expr": "(n % 10 == 1 && n % 100 != 11) ? 0 : 1", "messages": {"Next topic": "", "Index": "", "%(filename)s &mdash; %(docstitle)s": "", "Welcome! This is": "", "Copyright": "", "C API changes": "", "quick access to all modules": "", "&copy; Copyright %(copyright)s.": "", "Global Module Index": "", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "", "General Index": "\u0413\u043b\u0430\u0432\u043d\u0430 \u0441\u043e\u0434\u0440\u0436\u0438\u043d\u0430", "next chapter": "", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "", "Permalink to this headline": "", "About these documents": "", "Preparing search...": "", ", in ": "", "Navigation": "", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "", "Contents": "", "can be huge": "", "Changes in Version %(version)s &mdash; %(docstitle)s": "", "Other changes": "", "Hide Search Matches": "", "Quick search": "", "Show Source": "", "Search": "", "This Page": "", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", "last updated": "", "Collapse sidebar": "", "Go": "", "Table Of Contents": "", "Search within %(docstitle)s": "", "all functions, classes, terms": "", "Please activate JavaScript to enable the search\n functionality.": "", "Indices and tables:": "", "lists all sections and subsections": "", "Index pages by letter": "", "search": "", "Permalink to this definition": "", "Previous topic": "", "Overview": "", "Last updated on %(last_updated)s.": "", "Searching": "", "search this documentation": "", "Automatically generated list of changes in version %(version)s": "", "Full index on one page": "", "Enter search terms or a module, class or function name.": "", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "", "Library changes": "", "Search Page": "", "Search Results": ""}}); \ No newline at end of file
diff --git a/sphinx/locale/mk/LC_MESSAGES/sphinx.mo b/sphinx/locale/mk/LC_MESSAGES/sphinx.mo
new file mode 100644
index 00000000..f085a2ac
--- /dev/null
+++ b/sphinx/locale/mk/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/mk/LC_MESSAGES/sphinx.po b/sphinx/locale/mk/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..9c3b54ed
--- /dev/null
+++ b/sphinx/locale/mk/LC_MESSAGES/sphinx.po
@@ -0,0 +1,836 @@
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the Sphinx project.
+#
+# Translators:
+# vvangelovski <vvangelovski@gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2013-04-02 10:33+0200\n"
+"PO-Revision-Date: 2013-04-03 10:57+0000\n"
+"Last-Translator: vvangelovski <vvangelovski@gmail.com>\n"
+"Language-Team: Macedonian (http://www.transifex.com/projects/p/sphinx-1/language/mk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+"Language: mk\n"
+"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
+
+#: sphinx/config.py:81
+#, python-format
+msgid "%s %s documentation"
+msgstr "%s %s документација"
+
+#: sphinx/environment.py:1510
+#, python-format
+msgid "see %s"
+msgstr "погледни %s"
+
+#: sphinx/environment.py:1513
+#, python-format
+msgid "see also %s"
+msgstr "погледни %s"
+
+#: sphinx/environment.py:1570
+msgid "Symbols"
+msgstr "Симболи"
+
+#: sphinx/roles.py:175
+#, python-format
+msgid "Python Enhancement Proposals; PEP %s"
+msgstr "Предлог за подобрување на Python; PEP %s"
+
+#: sphinx/transforms.py:52 sphinx/writers/latex.py:202
+#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:217
+#, python-format
+msgid "%B %d, %Y"
+msgstr "%d %B, %Y"
+
+#: sphinx/builders/changes.py:73
+msgid "Builtins"
+msgstr "Вградени"
+
+#: sphinx/builders/changes.py:75
+msgid "Module level"
+msgstr "Ниво на модул"
+
+#: sphinx/builders/html.py:290
+#, python-format
+msgid "%b %d, %Y"
+msgstr "%d %b, %Y"
+
+#: sphinx/builders/html.py:309 sphinx/themes/basic/defindex.html:30
+msgid "General Index"
+msgstr "Главна содржина"
+
+#: sphinx/builders/html.py:309
+msgid "index"
+msgstr "содржина"
+
+#: sphinx/builders/html.py:369
+msgid "next"
+msgstr "следна"
+
+#: sphinx/builders/html.py:378
+msgid "previous"
+msgstr "претходна"
+
+#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
+msgid " (in "
+msgstr " (во "
+
+#: sphinx/directives/other.py:138
+msgid "Section author: "
+msgstr "Автор на секцијата:"
+
+#: sphinx/directives/other.py:140
+msgid "Module author: "
+msgstr "Автор на модул:"
+
+#: sphinx/directives/other.py:142
+msgid "Code author: "
+msgstr "Автор на код:"
+
+#: sphinx/directives/other.py:144
+msgid "Author: "
+msgstr "Автор: "
+
+#: sphinx/domains/__init__.py:244
+#, python-format
+msgid "%s %s"
+msgstr "%s %s"
+
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
+msgid "Parameters"
+msgstr "Параметри"
+
+#: sphinx/domains/c.py:54 sphinx/domains/cpp.py:945
+#: sphinx/domains/javascript.py:128 sphinx/domains/python.py:107
+msgid "Returns"
+msgstr "Враќа"
+
+#: sphinx/domains/c.py:56 sphinx/domains/javascript.py:130
+#: sphinx/domains/python.py:109
+msgid "Return type"
+msgstr "Повратен тип"
+
+#: sphinx/domains/c.py:141
+#, python-format
+msgid "%s (C function)"
+msgstr "%s (C функција)"
+
+#: sphinx/domains/c.py:143
+#, python-format
+msgid "%s (C member)"
+msgstr "%s (C член)"
+
+#: sphinx/domains/c.py:145
+#, python-format
+msgid "%s (C macro)"
+msgstr "%s (C макро)"
+
+#: sphinx/domains/c.py:147
+#, python-format
+msgid "%s (C type)"
+msgstr "%s (C тип)"
+
+#: sphinx/domains/c.py:149
+#, python-format
+msgid "%s (C variable)"
+msgstr "%s (C променлива)"
+
+#: sphinx/domains/c.py:203 sphinx/domains/cpp.py:1207
+#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
+msgid "function"
+msgstr "функција"
+
+#: sphinx/domains/c.py:204 sphinx/domains/cpp.py:1208
+msgid "member"
+msgstr "член"
+
+#: sphinx/domains/c.py:205
+msgid "macro"
+msgstr "макро"
+
+#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
+msgid "type"
+msgstr "тип"
+
+#: sphinx/domains/c.py:207
+msgid "variable"
+msgstr "променлива"
+
+#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
+msgid "Throws"
+msgstr "Фрла"
+
+#: sphinx/domains/cpp.py:1038
+#, python-format
+msgid "%s (C++ class)"
+msgstr "%s (C++ класа)"
+
+#: sphinx/domains/cpp.py:1061
+#, python-format
+msgid "%s (C++ type)"
+msgstr "%s (C++ тип)"
+
+#: sphinx/domains/cpp.py:1081
+#, python-format
+msgid "%s (C++ member)"
+msgstr "%s (C++ член)"
+
+#: sphinx/domains/cpp.py:1137
+#, python-format
+msgid "%s (C++ function)"
+msgstr "%s (C++ функција)"
+
+#: sphinx/domains/cpp.py:1206 sphinx/domains/javascript.py:165
+#: sphinx/domains/python.py:562
+msgid "class"
+msgstr "класа"
+
+#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:253
+#, python-format
+msgid "%s() (built-in function)"
+msgstr "%s() (вградена функција)"
+
+#: sphinx/domains/javascript.py:107 sphinx/domains/python.py:317
+#, python-format
+msgid "%s() (%s method)"
+msgstr "%s() (%s метод)"
+
+#: sphinx/domains/javascript.py:109
+#, python-format
+msgid "%s() (class)"
+msgstr "%s() (класа)"
+
+#: sphinx/domains/javascript.py:111
+#, python-format
+msgid "%s (global variable or constant)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:355
+#, python-format
+msgid "%s (%s attribute)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:122
+msgid "Arguments"
+msgstr ""
+
+#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
+msgid "data"
+msgstr ""
+
+#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/python.py:100
+msgid "Variables"
+msgstr ""
+
+#: sphinx/domains/python.py:104
+msgid "Raises"
+msgstr ""
+
+#: 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 ""
+
+#: sphinx/domains/python.py:257
+#, python-format
+msgid "%s (built-in variable)"
+msgstr ""
+
+#: sphinx/domains/python.py:258 sphinx/domains/python.py:349
+#, python-format
+msgid "%s (in module %s)"
+msgstr ""
+
+#: sphinx/domains/python.py:274
+#, python-format
+msgid "%s (built-in class)"
+msgstr ""
+
+#: sphinx/domains/python.py:275
+#, python-format
+msgid "%s (class in %s)"
+msgstr ""
+
+#: sphinx/domains/python.py:315
+#, python-format
+msgid "%s() (%s.%s method)"
+msgstr ""
+
+#: sphinx/domains/python.py:327
+#, python-format
+msgid "%s() (%s.%s static method)"
+msgstr ""
+
+#: sphinx/domains/python.py:330
+#, python-format
+msgid "%s() (%s static method)"
+msgstr ""
+
+#: sphinx/domains/python.py:340
+#, python-format
+msgid "%s() (%s.%s class method)"
+msgstr ""
+
+#: sphinx/domains/python.py:343
+#, python-format
+msgid "%s() (%s class method)"
+msgstr ""
+
+#: sphinx/domains/python.py:353
+#, python-format
+msgid "%s (%s.%s attribute)"
+msgstr ""
+
+#: sphinx/domains/python.py:434
+#, python-format
+msgid "%s (module)"
+msgstr ""
+
+#: sphinx/domains/python.py:491
+msgid "Python Module Index"
+msgstr ""
+
+#: sphinx/domains/python.py:492
+msgid "modules"
+msgstr ""
+
+#: sphinx/domains/python.py:538
+msgid "Deprecated"
+msgstr ""
+
+#: sphinx/domains/python.py:563 sphinx/locale/__init__.py:179
+msgid "exception"
+msgstr ""
+
+#: sphinx/domains/python.py:564
+msgid "method"
+msgstr ""
+
+#: sphinx/domains/python.py:565
+msgid "class method"
+msgstr ""
+
+#: sphinx/domains/python.py:566
+msgid "static method"
+msgstr ""
+
+#: sphinx/domains/python.py:568 sphinx/locale/__init__.py:175
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/python.py:696
+msgid " (deprecated)"
+msgstr ""
+
+#: sphinx/domains/rst.py:53
+#, python-format
+msgid "%s (directive)"
+msgstr ""
+
+#: sphinx/domains/rst.py:55
+#, python-format
+msgid "%s (role)"
+msgstr ""
+
+#: sphinx/domains/rst.py:104
+msgid "directive"
+msgstr ""
+
+#: sphinx/domains/rst.py:105
+msgid "role"
+msgstr ""
+
+#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
+#, python-format
+msgid "environment variable; %s"
+msgstr ""
+
+#: sphinx/domains/std.py:162
+#, python-format
+msgid "%scommand line option; %s"
+msgstr ""
+
+#: sphinx/domains/std.py:414
+msgid "glossary term"
+msgstr ""
+
+#: sphinx/domains/std.py:415
+msgid "grammar token"
+msgstr ""
+
+#: sphinx/domains/std.py:416
+msgid "reference label"
+msgstr ""
+
+#: sphinx/domains/std.py:418
+msgid "environment variable"
+msgstr ""
+
+#: sphinx/domains/std.py:419
+msgid "program option"
+msgstr ""
+
+#: sphinx/domains/std.py:449 sphinx/themes/basic/genindex-single.html:32
+#: sphinx/themes/basic/genindex-single.html:57
+#: sphinx/themes/basic/genindex-split.html:11
+#: sphinx/themes/basic/genindex-split.html:14
+#: 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:191 sphinx/writers/texinfo.py:475
+msgid "Index"
+msgstr ""
+
+#: sphinx/domains/std.py:450
+msgid "Module Index"
+msgstr ""
+
+#: sphinx/domains/std.py:451 sphinx/themes/basic/defindex.html:25
+msgid "Search Page"
+msgstr ""
+
+#: sphinx/ext/autodoc.py:1042
+#, python-format
+msgid " Bases: %s"
+msgstr ""
+
+#: sphinx/ext/autodoc.py:1078
+#, python-format
+msgid "alias of :class:`%s`"
+msgstr ""
+
+#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
+#, python-format
+msgid "[graph: %s]"
+msgstr ""
+
+#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
+msgid "[graph]"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:234
+#, python-format
+msgid "(in %s v%s)"
+msgstr ""
+
+#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
+msgid "[source]"
+msgstr ""
+
+#: sphinx/ext/refcounting.py:83
+msgid "Return value: Always NULL."
+msgstr ""
+
+#: sphinx/ext/refcounting.py:85
+msgid "Return value: New reference."
+msgstr ""
+
+#: sphinx/ext/refcounting.py:87
+msgid "Return value: Borrowed reference."
+msgstr ""
+
+#: sphinx/ext/todo.py:42
+msgid "Todo"
+msgstr ""
+
+#: sphinx/ext/todo.py:110
+#, python-format
+msgid "(The <<original entry>> is located in %s, line %d.)"
+msgstr ""
+
+#: sphinx/ext/todo.py:119
+msgid "original entry"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:117
+msgid "[docs]"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:131
+msgid "Module code"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:137
+#, python-format
+msgid "<h1>Source code for %s</h1>"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:164
+msgid "Overview: module code"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:165
+msgid "<h1>All modules for which code is available</h1>"
+msgstr ""
+
+#: sphinx/locale/__init__.py:155
+msgid "Attention"
+msgstr ""
+
+#: sphinx/locale/__init__.py:156
+msgid "Caution"
+msgstr ""
+
+#: sphinx/locale/__init__.py:157
+msgid "Danger"
+msgstr ""
+
+#: sphinx/locale/__init__.py:158
+msgid "Error"
+msgstr ""
+
+#: sphinx/locale/__init__.py:159
+msgid "Hint"
+msgstr ""
+
+#: sphinx/locale/__init__.py:160
+msgid "Important"
+msgstr ""
+
+#: sphinx/locale/__init__.py:161
+msgid "Note"
+msgstr ""
+
+#: sphinx/locale/__init__.py:162
+msgid "See also"
+msgstr ""
+
+#: sphinx/locale/__init__.py:163
+msgid "Tip"
+msgstr ""
+
+#: sphinx/locale/__init__.py:164
+msgid "Warning"
+msgstr ""
+
+#: sphinx/locale/__init__.py:168
+#, python-format
+msgid "New in version %s"
+msgstr ""
+
+#: sphinx/locale/__init__.py:169
+#, python-format
+msgid "Changed in version %s"
+msgstr ""
+
+#: sphinx/locale/__init__.py:170
+#, python-format
+msgid "Deprecated since version %s"
+msgstr ""
+
+#: sphinx/locale/__init__.py:176
+msgid "keyword"
+msgstr ""
+
+#: sphinx/locale/__init__.py:177
+msgid "operator"
+msgstr ""
+
+#: sphinx/locale/__init__.py:178
+msgid "object"
+msgstr ""
+
+#: sphinx/locale/__init__.py:180
+msgid "statement"
+msgstr ""
+
+#: sphinx/locale/__init__.py:181
+msgid "built-in function"
+msgstr ""
+
+#: sphinx/themes/agogo/layout.html:46 sphinx/themes/basic/globaltoc.html:10
+#: sphinx/themes/basic/localtoc.html:11 sphinx/themes/scrolls/layout.html:35
+msgid "Table Of Contents"
+msgstr ""
+
+#: sphinx/themes/agogo/layout.html:50 sphinx/themes/basic/layout.html:137
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
+#: sphinx/themes/basic/searchresults.html:10
+msgid "Search"
+msgstr ""
+
+#: sphinx/themes/agogo/layout.html:53 sphinx/themes/basic/searchbox.html:15
+msgid "Go"
+msgstr ""
+
+#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
+msgid "Enter search terms or a module, class or function name."
+msgstr ""
+
+#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
+msgid "Show Source"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:11
+msgid "Overview"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:15
+msgid "Welcome! This is"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:16
+msgid "the documentation for"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:17
+msgid "last updated"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:20
+msgid "Indices and tables:"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:23
+msgid "Complete Table of Contents"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:24
+msgid "lists all sections and subsections"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:26
+msgid "search this documentation"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:28
+msgid "Global Module Index"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:29
+msgid "quick access to all modules"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:31
+msgid "all functions, classes, terms"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-single.html:35
+#, python-format
+msgid "Index &ndash; %(key)s"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-single.html:63
+#: sphinx/themes/basic/genindex-split.html:24
+#: sphinx/themes/basic/genindex-split.html:38
+#: sphinx/themes/basic/genindex.html:74
+msgid "Full index on one page"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-split.html:16
+msgid "Index pages by letter"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-split.html:25
+msgid "can be huge"
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:29
+msgid "Navigation"
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:122
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:131
+msgid "About these documents"
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:140
+msgid "Copyright"
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:189
+#, python-format
+msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:191
+#, python-format
+msgid "&copy; Copyright %(copyright)s."
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:195
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:198
+#, python-format
+msgid ""
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
+"%(sphinx_version)s."
+msgstr ""
+
+#: sphinx/themes/basic/opensearch.xml:4
+#, python-format
+msgid "Search %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/relations.html:11
+msgid "Previous topic"
+msgstr ""
+
+#: sphinx/themes/basic/relations.html:13
+msgid "previous chapter"
+msgstr ""
+
+#: sphinx/themes/basic/relations.html:16
+msgid "Next topic"
+msgstr ""
+
+#: sphinx/themes/basic/relations.html:18
+msgid "next chapter"
+msgstr ""
+
+#: sphinx/themes/basic/search.html:27
+msgid ""
+"Please activate JavaScript to enable the search\n"
+" functionality."
+msgstr ""
+
+#: sphinx/themes/basic/search.html:32
+msgid ""
+"From here you can search these documents. Enter your search\n"
+" words into the box below and click \"search\". Note that the search\n"
+" function will automatically search for all of the words. Pages\n"
+" containing fewer words won't appear in the result list."
+msgstr ""
+
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
+msgid "search"
+msgstr ""
+
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/static/searchtools.js_t:281
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/static/searchtools.js_t:283
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
+#: sphinx/themes/basic/searchbox.html:12
+msgid "Quick search"
+msgstr ""
+
+#: sphinx/themes/basic/sourcelink.html:11
+msgid "This Page"
+msgstr ""
+
+#: sphinx/themes/basic/changes/frameset.html:5
+#: sphinx/themes/basic/changes/versionchanges.html:12
+#, python-format
+msgid "Changes in Version %(version)s &mdash; %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/changes/rstsource.html:5
+#, python-format
+msgid "%(filename)s &mdash; %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/changes/versionchanges.html:17
+#, python-format
+msgid "Automatically generated list of changes in version %(version)s"
+msgstr ""
+
+#: sphinx/themes/basic/changes/versionchanges.html:18
+msgid "Library changes"
+msgstr ""
+
+#: sphinx/themes/basic/changes/versionchanges.html:23
+msgid "C API changes"
+msgstr ""
+
+#: sphinx/themes/basic/changes/versionchanges.html:25
+msgid "Other changes"
+msgstr ""
+
+#: sphinx/themes/basic/static/doctools.js:142 sphinx/writers/html.py:510
+#: sphinx/writers/html.py:516
+msgid "Permalink to this headline"
+msgstr ""
+
+#: sphinx/themes/basic/static/doctools.js:148 sphinx/writers/html.py:97
+msgid "Permalink to this definition"
+msgstr ""
+
+#: sphinx/themes/basic/static/doctools.js:177
+msgid "Hide Search Matches"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js_t:119
+msgid "Searching"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js_t:124
+msgid "Preparing search..."
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js_t:285
+#, python-format
+msgid "Search finished, found %s page(s) matching the search query."
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js_t:337
+msgid ", in "
+msgstr ""
+
+#: sphinx/themes/default/static/sidebar.js_t:83
+msgid "Expand sidebar"
+msgstr ""
+
+#: sphinx/themes/default/static/sidebar.js_t:96
+#: sphinx/themes/default/static/sidebar.js_t:124
+msgid "Collapse sidebar"
+msgstr ""
+
+#: sphinx/themes/haiku/layout.html:26
+msgid "Contents"
+msgstr ""
+
+#: sphinx/writers/latex.py:189
+msgid "Release"
+msgstr ""
+
+#: sphinx/writers/latex.py:620 sphinx/writers/manpage.py:181
+#: sphinx/writers/texinfo.py:612
+msgid "Footnotes"
+msgstr ""
+
+#: sphinx/writers/latex.py:704
+msgid "continued from previous page"
+msgstr ""
+
+#: sphinx/writers/latex.py:710
+msgid "Continued on next page"
+msgstr ""
+
+#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
+#, python-format
+msgid "[image: %s]"
+msgstr ""
+
+#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
+msgid "[image]"
+msgstr ""
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
index 38040cff..ae01bb81 100644
--- a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
@@ -1 +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", "Permalink to this headline": "Permalink til denne oversikten"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "nb_NO", "plural_expr": "(n != 1)", "messages": {"Next topic": "Neste emne", "Index": "Index", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Copyright", "C API changes": "Endringer i C API", "quick access to all modules": "snarvei til alle moduler", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Global Modulindex", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "Hovedindex", "next chapter": "neste kapittel", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "Forrige kapittel", "Permalink to this headline": "Permalink til denne oversikten", "About these documents": "Om disse dokumenter", "Preparing search...": "", ", in ": "", "Navigation": "Navigering", "Expand sidebar": "Utvid sidepanelet", "the documentation for": "", "Complete Table of Contents": "Komplett Innholdsfortegnelse", "Contents": "Innhold", "can be huge": "kan bli stor", "Changes in Version %(version)s &mdash; %(docstitle)s": "Endringer i version %(version)s &mdash; %(docstitle)s", "Other changes": "Andre endringer", "Hide Search Matches": "Skjul s\u00f8keresultat", "Quick search": "Hurtigs\u00f8k", "Show Source": "Vis kildekode", "Search": "S\u00f8k", "This Page": "Denne siden", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "her kan du s\u00f8ke blant disse dokumentene. Angi s\u00f8keord nedfor og klikk \"s\u00f8k\".\n S\u00f8ket m\u00e5 treffe p\u00e5 samtlige s\u00f8keord.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Lagd med <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "Skjul sidepanelet", "Go": "G\u00e5", "Table Of Contents": "Innholdsfortegnelse", "Search within %(docstitle)s": "S\u00f8k blant %(docstitle)s", "all functions, classes, terms": "alla funksjoner, klasser, vilk\u00e5r", "Please activate JavaScript to enable the search\n functionality.": "Vennligst aktiver JavaScript for \u00e5 aktivere s\u00f8k.", "Indices and tables:": "Index og tabeller", "lists all sections and subsections": "liste over alle paragrafer og underparagrafer", "Index pages by letter": "Innholdsfortegnelse per bokstav", "search": "s\u00f8k", "Permalink to this definition": "Permalink til denne definisjonen", "Previous topic": "Forrige tittel", "Overview": "Oversikt", "Last updated on %(last_updated)s.": "Sist oppdatert %(last_updated)s.", "Searching": "", "search this documentation": "s\u00f8k i dette dokumentet", "Automatically generated list of changes in version %(version)s": "Automatisk generert liste over endringer i versjon %(version)s", "Full index on one page": "Hele innholdsfortegnelsen p\u00e5 en side", "Enter search terms or a module, class or function name.": "Angi s\u00f8keord eller modul-, klasse- eller funksjonsnavn.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Endringer i biblioteket", "Search Page": "S\u00f8keside", "Search Results": "S\u00f8keresultat"}}); \ No newline at end of file
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
index 654bb81d..11e40453 100644
--- a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
index 66af0d10..aa3d0479 100644
--- a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
@@ -1,20 +1,22 @@
-# Norvegian translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-09-21 10:14+0200\n"
-"Last-Translator: Espen Høgbakk <espen@hogbakk.no>\n"
-"Language-Team: \n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:28+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/sphinx-1/language/nb_NO/)\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"
+"Language: nb_NO\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -100,7 +102,8 @@ msgstr "Forfatter: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametere"
@@ -578,9 +581,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "søk i dette dokumentet"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -706,25 +708,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"her kan du søke blant disse dokumentene. Angi søkeord nedfor og klikk "
-"\"søk\".\n"
-" Søket må treffe på samtlige søkeord."
+msgstr "her kan du søke blant disse dokumentene. Angi søkeord nedfor og klikk \"søk\".\n Søket må treffe på samtlige søkeord."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "søk"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Søkeresultat"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -777,9 +779,8 @@ msgid "Hide Search Matches"
msgstr "Skjul søkeresultat"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "søk"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -825,11 +826,10 @@ msgid "Continued on next page"
msgstr "Fortsetter på neste side"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[bilde: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[bilde]"
-
diff --git a/sphinx/locale/ne/LC_MESSAGES/sphinx.js b/sphinx/locale/ne/LC_MESSAGES/sphinx.js
index 0860676a..00df2986 100644
--- a/sphinx/locale/ne/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/ne/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "ne", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "\u0916\u094b\u091c\u0947\u0915\u094b \u0928\u0924\u093f\u091c\u093e\u0939\u0930\u0941 \u0932\u0941\u0915\u093e\u0909\u0928\u0941\u0939\u094b\u0938\u094d", "Permalink to this definition": "\u092f\u094b \u0905\u0930\u094d\u0925\u0915\u094b \u0932\u093e\u0917\u093f \u092a\u0930\u094d\u092e\u093e\u0932\u093f\u0928\u094d\u0915", "Permalink to this headline": "\u092f\u094b \u0936\u093f\u0930\u094d\u0937\u0915\u0915\u094b \u0932\u093e\u0917\u093f \u092a\u0930\u094d\u092e\u093e\u0932\u093f\u0928\u094d\u0915 \u0964 "}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "ne", "plural_expr": "(n != 1)", "messages": {"Next topic": "\u092a\u091b\u093f\u0932\u094d\u0932\u094b \u0935\u093f\u0937\u092f", "Index": "\u0905\u0928\u0941\u0938\u0941\u091a\u0940", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "\u0915\u092a\u093f\u0930\u093e\u0907\u091f ", "C API changes": "C API \u0915\u093e \u092a\u0930\u093f\u0935\u0930\u094d\u0924\u0928\u0939\u0930\u0941 ", "quick access to all modules": "\u0938\u092c\u0948 \u092e\u094b\u0926\u0941\u0932\u0947\u0938\u092e\u093e \u091b\u093f\u091f\u0948 \u091c\u093e\u0928\u0941\u0939\u094b\u0938\u094d", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "\u0917\u094d\u0932\u094b\u092c\u0932 \u092e\u0921\u0941\u0932 \u0905\u0928\u0941\u0938\u0941\u091a\u0940", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "\u0938\u093e\u092e\u093e\u0928\u094d\u092f \u0905\u0928\u0941\u0938\u0941\u091a\u0940", "next chapter": "\u092a\u091b\u093f\u0932\u094d\u0932\u094b \u0916\u0928\u094d\u0921", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\u0905\u0918\u093f\u0932\u094d\u0932\u094b \u0916\u0928\u094d\u0921", "Permalink to this headline": "\u092f\u094b \u0936\u093f\u0930\u094d\u0937\u0915\u0915\u094b \u0932\u093e\u0917\u093f \u092a\u0930\u094d\u092e\u093e\u0932\u093f\u0928\u094d\u0915 \u0964 ", "About these documents": "\u092f\u0940 \u0921\u0915\u0941\u092e\u0947\u0928\u094d\u091f\u0939\u0930\u0941\u0915\u094b \u092c\u093e\u0930\u0947\u092e\u093e", "Preparing search...": "", ", in ": "", "Navigation": "\u0928\u0947\u092d\u093f\u0917\u0947\u0938\u0928 ", "Expand sidebar": "\u0938\u093e\u0907\u0921\u092c\u0930 \u0920\u0941\u0932\u094b \u092c\u0928\u093e\u0909\u0928\u0941\u0939\u094b\u0938\u094d", "the documentation for": "", "Complete Table of Contents": "\u092a\u0941\u0930\u093e \u0935\u093f\u0937\u092f\u0938\u0942\u091a\u0940", "Contents": "\u0935\u093f\u0937\u092f\u0938\u0942\u091a\u0940", "can be huge": "\u0927\u0947\u0930\u0948 \u0920\u0941\u0932\u094b \u0939\u0941\u0928 \u0938\u0915\u094d\u091b", "Changes in Version %(version)s &mdash; %(docstitle)s": "%(version)s &mdash; %(docstitle)s \u092e\u093e \u092d\u090f\u0915\u093e \u092b\u0930\u0915\u0939\u0930\u0941 ", "Other changes": "\u0905\u0930\u0941 \u092a\u0930\u093f\u0935\u0930\u094d\u0924\u0928\u0939\u0930\u0941 ", "Hide Search Matches": "\u0916\u094b\u091c\u0947\u0915\u094b \u0928\u0924\u093f\u091c\u093e\u0939\u0930\u0941 \u0932\u0941\u0915\u093e\u0909\u0928\u0941\u0939\u094b\u0938\u094d", "Quick search": "\u091b\u093f\u091f\u094d\u091f\u094b \u0916\u094b\u091c\u094d\u0928\u0941\u0939\u094b\u0938\u094d", "Show Source": "\u0938\u094d\u0930\u094b\u0924 \u0926\u0947\u0916\u093e\u0909\u0928\u0941\u0939\u094b\u0938\u094d ", "Search": "\u0916\u094b\u091c\u094d\u0928\u0941\u0939\u094b\u0938\u094d ", "This Page": "\u092f\u094b \u092a\u093e\u0928\u093e", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u092f\u0939\u093e\u0901\u092c\u093e\u091f \u0924\u092a\u093e\u0908\u0902\u0932\u0947 \u092f\u0940 \u0921\u094d\u0915\u0941\u092e\u0947\u0928\u094d\u091f\u0939\u0930\u0941 \u0916\u094b\u091c\u094d\u0928\u0938\u0915\u094d\u0928\u0941 \u0939\u0941\u0928\u094d\u091b \u0964 \u0916\u094b\u091c\u094d\u0928 \u0936\u092c\u094d\u0926\u0939\u0930\u0941\n\u0924\u0932\u0915\u094b \u092c\u0915\u094d\u0938\u092e\u093e \u0932\u0947\u0916\u094d\u200d\u0928\u0941\u0939\u094b\u0938 \u0930 \"\u0916\u094b\u091c\u094d\u0928\u0941\u0939\u094b\u0938\u094d\"\u0925\u093f\u091a\u094d\u0928\u0941\u0939\u094b\u0938 \u0964 \u0916\u094b\u091c\u094d\u0928\u0941\u0939\u094b\u0938\u094d\n\u092b\u0928\u094d\u0915\u094d\u0938\u0928\u0932\u0947 \u0906\u092b\u0948 \u0938\u092c\u0948 \u0936\u092c\u094d\u0926\u0939\u0930\u0941 \u0916\u094b\u091c\u094d\u091b \u0964 \n\u0925\u094b\u0930\u0948 \u0936\u092c\u094d\u0926\u0939\u0930\u0941 \u092d\u090f\u0915\u094b \u092a\u093e\u0928\u093e\u0939\u0930\u0941 \u0928\u0924\u093f\u091c\u093e\u092e\u093e \u0926\u0947\u0916\u093f\u0928\u094d\u0928 \u0964 ", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", "last updated": "", "Collapse sidebar": "\u0938\u093e\u0907\u0921\u092c\u0930 \u0938\u093e\u0928\u094b \u092c\u0928\u093e\u0909\u0928\u0941\u0939\u094b\u0938\u094d", "Go": "\u091c\u093e\u0928\u0941\u0939\u094b\u0938\u094d", "Table Of Contents": "\u0935\u093f\u0937\u092f\u0938\u0942\u091a\u0940", "Search within %(docstitle)s": "", "all functions, classes, terms": "\u0938\u092c\u0948 \u092b\u0928\u094d\u0915\u094d\u0938\u0928\u0938\u094d, \u0915\u0915\u094d\u0937\u093e\u0939\u0930\u0942 \u0930 \u091f\u0930\u094d\u092e\u0938\u094d", "Please activate JavaScript to enable the search\n functionality.": "\u0916\u094b\u091c\u094d\u0928\u0947 \u0915\u093e\u0930\u094d\u092f \u0906\u0917\u093e\u0921\u0940 \u092c\u0922\u093e\u0909\u0928\u0915\u094b \u0932\u093e\u0917\u093f \u091c\u093e\u092d\u093e\u0938\u094d\u0915\u0943\u092a\u094d\u091f \u091a\u0932\u093e\u0908\u0926\u093f\u0928\u0941\u0939\u094b\u0938 ", "Indices and tables:": "\u0907\u0928\u094d\u0921\u0940\u0938\u0940\u0938\u094d\u0938 \u0930 \u0924\u0932\u093f\u0915\u093e", "lists all sections and subsections": "\u0938\u092c\u0948 \u0938\u0947\u0915\u094d\u0938\u0928 \u0930 \u0938\u0935\u0938\u0947\u0915\u094d\u0938\u0928 \u0926\u0947\u0916\u093e\u0909\u0928\u0941\u0939\u094b\u0938\u094d", "Index pages by letter": "\u0905\u0915\u094d\u0937\u0930 \u0905\u0928\u0941\u0938\u093e\u0930 \u0905\u0928\u0941\u0938\u0941\u091a\u0940\u0915\u093e \u092a\u093e\u0928\u093e", "search": "\u0916\u094b\u091c\u094d\u0928\u0941\u0939\u094b\u0938\u094d", "Permalink to this definition": "\u092f\u094b \u0905\u0930\u094d\u0925\u0915\u094b \u0932\u093e\u0917\u093f \u092a\u0930\u094d\u092e\u093e\u0932\u093f\u0928\u094d\u0915", "Previous topic": "\u0905\u0918\u093f\u0932\u094d\u0932\u094b \u0935\u093f\u0937\u092f ", "Overview": "\u092a\u0941\u0928\u0930\u093e\u0935\u0932\u094b\u0915\u0928 ", "Last updated on %(last_updated)s.": "\u092f\u094b \u092d\u0928\u094d\u0926\u093e \u0905\u0917\u093e\u0921\u0940 %(last_updated)s \u092e\u093e \u0905\u092a\u0921\u0947\u091f \u092d\u090f\u0915\u094b", "Searching": "", "search this documentation": "\u092f\u094b \u0921\u0915\u0941\u092e\u0947\u0928\u094d\u091f \u0916\u094b\u091c\u094d\u0928\u0941\u0939\u094b\u0938\u094d", "Automatically generated list of changes in version %(version)s": "\u092d\u0930\u094d\u0938\u0928 %(version)s \u092e\u093e \u092d\u090f\u0915\u093e \u092b\u0930\u0915 \u0939\u0930\u0941 \u0906\u092b\u0948 \u091c\u0947\u0928\u0947\u0930\u0947\u091f \u092d\u090f ", "Full index on one page": "\u092a\u0941\u0930\u093e \u0905\u0928\u0941\u0938\u0941\u091a\u0940 \u090f\u0915\u0948 \u092a\u093e\u0928\u093e\u092e\u093e", "Enter search terms or a module, class or function name.": "\u0916\u094b\u091c\u094d\u0928\u0947 \u091f\u0930\u094d\u092e\u0938\u094d \u0905\u0925\u0935\u093e \u090f\u0915 \u092e\u0921\u0941\u0932\u094d, \u0915\u0915\u094d\u0937\u093e \u0905\u0925\u0935\u093e \u092b\u0928\u094d\u0915\u094d\u0938\u0928\u0915\u094b \u0928\u093e\u092e \u0932\u0947\u0916\u094d\u0928\u0941\u0939\u094b\u0938 ", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "\u0932\u093e\u0908\u092c\u094d\u0930\u0947\u0930\u0940\u0915\u093e \u092a\u0930\u093f\u0935\u0930\u094d\u0924\u0928\u0939\u0930\u0941", "Search Page": "\u092a\u093e\u0928\u093e\u092e\u093e \u0916\u094b\u091c\u094d\u0928\u0941\u0939\u094b\u0938\u094d", "Search Results": "\u0916\u094b\u091c\u0947\u0915\u094b \u0928\u0924\u093f\u091c\u093e"}}); \ No newline at end of file
diff --git a/sphinx/locale/ne/LC_MESSAGES/sphinx.mo b/sphinx/locale/ne/LC_MESSAGES/sphinx.mo
index d5143055..cff7db8b 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 66d13722..c478735d 100644
--- a/sphinx/locale/ne/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ne/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Nepali (Nepal) translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 1.1pre/47a94f723e80+\n"
-"Report-Msgid-Bugs-To: sharma.arati11@gmail.com\n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-09-21 10:13+0200\n"
-"Last-Translator: Tika Karki <tikaraj.karki@olenepal.org>\n"
-"Language-Team: ne_NP <LL@li.org>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:33+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Nepali (http://www.transifex.com/projects/p/sphinx-1/language/ne/)\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"
+"Language: ne\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -101,7 +103,8 @@ msgstr "लेखक"
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parameters"
@@ -579,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "यो डकुमेन्ट खोज्नुहोस्"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -707,26 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"यहाँबाट तपाईंले यी ड्कुमेन्टहरु खोज्नसक्नु हुन्छ । खोज्न शब्दहरु\n"
-"तलको बक्समा लेख्‍नुहोस र \"खोज्नुहोस्\"थिच्नुहोस । खोज्नुहोस्\n"
-"फन्क्सनले आफै सबै शब्दहरु खोज्छ । \n"
-"थोरै शब्दहरु भएको पानाहरु नतिजामा देखिन्न । "
+msgstr "यहाँबाट तपाईंले यी ड्कुमेन्टहरु खोज्नसक्नु हुन्छ । खोज्न शब्दहरु\nतलको बक्समा लेख्‍नुहोस र \"खोज्नुहोस्\"थिच्नुहोस । खोज्नुहोस्\nफन्क्सनले आफै सबै शब्दहरु खोज्छ । \nथोरै शब्दहरु भएको पानाहरु नतिजामा देखिन्न । "
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "खोज्नुहोस्"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "खोजेको नतिजा"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -779,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "खोजेको नतिजाहरु लुकाउनुहोस्"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "खोज्नुहोस्"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -827,11 +827,10 @@ msgid "Continued on next page"
msgstr "अर्को पानासँग जोडीएको"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[चित्र: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[चित्र]"
-
diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.js b/sphinx/locale/nl/LC_MESSAGES/sphinx.js
index 6ec25ffb..fcd84b5b 100644
--- a/sphinx/locale/nl/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "nl", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "Zoekresultaten verbergen", "Permalink to this definition": "Permalink naar deze definitie", "Permalink to this headline": "Permalink naar deze titel"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "nl", "plural_expr": "(n != 1)", "messages": {"Next topic": "Volgend onderwerp", "Index": "Index", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Copyright", "C API changes": "Veranderingen in de C-API", "quick access to all modules": "sneltoegang naar alle modules", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Globale Module-index", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "Algemene index", "next chapter": "volgend hoofdstuk", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "Vorig hoofdstuk", "Permalink to this headline": "Permalink naar deze titel", "About these documents": "Over deze documenten", "Preparing search...": "", ", in ": "", "Navigation": "Navigatie", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "Volledige inhoudsopgave", "Contents": "Inhoud", "can be huge": "kan heel groot zijn", "Changes in Version %(version)s &mdash; %(docstitle)s": "Veranderingen in versie %(version)s &mdash; %(docstitle)s", "Other changes": "Andere veranderingen", "Hide Search Matches": "Zoekresultaten verbergen", "Quick search": "Snel zoeken", "Show Source": "Broncode weergeven", "Search": "Zoeken", "This Page": "Deze pagina", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Hier kan u de documenten doorzoeken. Geef enkele trefwoorden\n in het veld hieronder en klik \"zoeken\". Merk op dat de zoekfunctie\n steeds naar alle woorden zoekt. Pagina's die minder woorden bevatten\n zullen niet tussen de resultaten verschijnen.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Aangemaakt met <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "", "Go": "Ga", "Table Of Contents": "Inhoudsopgave", "Search within %(docstitle)s": "Zoeken in %(docstitle)s", "all functions, classes, terms": "alle functies, klasses en begrippen", "Please activate JavaScript to enable the search\n functionality.": "Activeer JavaSscript om de zoekfunctionaliteit in te schakelen.", "Indices and tables:": "Indices en tabellen:", "lists all sections and subsections": "geeft alle secties en subsecties weer", "Index pages by letter": "Index pagineerd per letter", "search": "zoeken", "Permalink to this definition": "Permalink naar deze definitie", "Previous topic": "Vorig onderwerp", "Overview": "Overzicht", "Last updated on %(last_updated)s.": "Laatste aanpassing op %(last_updated)s.", "Searching": "", "search this documentation": "zoeken in deze documentatie", "Automatically generated list of changes in version %(version)s": "Automatisch gegenereerde lijst van veranderingen in versie %(version)s", "Full index on one page": "Volledige index op een pagina", "Enter search terms or a module, class or function name.": "Geef zoekterm of de naam van een module, klasse of functie.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Veranderingen in de bibliotheek", "Search Page": "Zoekpagina", "Search Results": "Zoekresultaten"}}); \ No newline at end of file
diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.mo b/sphinx/locale/nl/LC_MESSAGES/sphinx.mo
index a8f5b83c..af90b8c9 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 9a4885b3..f851cfa1 100644
--- a/sphinx/locale/nl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.po
@@ -1,20 +1,23 @@
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.5\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Marijn van der Zee <marijn.vanderzee@gmail.com>\n"
-"Language-Team: nl <LL@li.org>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:33+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Dutch (http://www.transifex.com/projects/p/sphinx-1/language/nl/)\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"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -88,9 +91,8 @@ msgid "Module author: "
msgstr "Auteur van deze module: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Auteur van deze module: "
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -101,7 +103,8 @@ msgstr "Auteur: "
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parameters"
@@ -216,9 +219,8 @@ msgid "%s (%s attribute)"
msgstr "%s (%s attribuut)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Parameters"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -229,9 +231,8 @@ msgid "attribute"
msgstr "attribuut"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Variabele"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -279,14 +280,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s statische methode)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s methode)"
+msgstr ""
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s methode)"
+msgstr ""
#: sphinx/domains/python.py:353
#, python-format
@@ -299,9 +300,8 @@ msgid "%s (module)"
msgstr "%s (module)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Module-index"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -341,18 +341,17 @@ msgid "%s (directive)"
msgstr ""
#: sphinx/domains/rst.py:55
-#, fuzzy, python-format
+#, python-format
msgid "%s (role)"
-msgstr "%s (rolle)"
+msgstr ""
#: sphinx/domains/rst.py:104
msgid "directive"
msgstr ""
#: sphinx/domains/rst.py:105
-#, fuzzy
msgid "role"
-msgstr "rolle"
+msgstr ""
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
@@ -583,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "documentatie"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -676,9 +674,7 @@ msgstr "Laatste aanpassing op %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Aangemaakt met <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Aangemaakt met <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -713,28 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Hier kan u de documenten doorzoeken. Geef enkele trefwoorden\n"
-" in het veld hieronder en klik \"zoeken\". Merk op dat de zoekfunctie"
-"\n"
-" steeds naar alle woorden zoekt. Pagina's die minder woorden bevatten"
-"\n"
-" zullen niet tussen de resultaten verschijnen."
+msgstr "Hier kan u de documenten doorzoeken. Geef enkele trefwoorden\n in het veld hieronder en klik \"zoeken\". Merk op dat de zoekfunctie\n steeds naar alle woorden zoekt. Pagina's die minder woorden bevatten\n zullen niet tussen de resultaten verschijnen."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "zoeken"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Zoekresultaten"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -787,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "Zoekresultaten verbergen"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "zoeken"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -835,11 +827,10 @@ msgid "Continued on next page"
msgstr "Vervolgd op volgende pagina"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[afbeelding: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[afbeelding]"
-
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.js b/sphinx/locale/pl/LC_MESSAGES/sphinx.js
index b9b6c07e..494394d2 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "pl", "plural_expr": "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Hide Search Matches": "Ukryj wyniki wyszukiwania", "Permalink to this definition": "Sta\u0142y odno\u015bnik do tej definicji", "Permalink to this headline": "Sta\u0142y odno\u015bnik do tego nag\u0142\u00f3wka"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "pl", "plural_expr": "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Next topic": "Nast\u0119pny temat", "Index": "Indeks", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Witaj! To jest", "Copyright": "Copyright", "C API changes": "Zmiany w C API", "quick access to all modules": "szybki dost\u0119p do wszystkich modu\u0142\u00f3w", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Globalny indeks modu\u0142\u00f3w", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Twoje wyszukiwanie nie da\u0142o \u017cadnych wynik\u00f3w. Upewnij si\u0119, \u017ce wszystkie s\u0142owa s\u0105 wpisane prawid\u0142owo i \u017ce wybra\u0142e\u015b dostateczn\u0105 ilo\u015b\u0107 kategorii.", "Index &ndash; %(key)s": "Indeks &ndash; %(key)s", "General Index": "Indeks og\u00f3lny", "next chapter": "nast\u0119pny rozdzia\u0142", "Search finished, found %s page(s) matching the search query.": "Wyszukiwanie zako\u0144czone. Ilo\u015b\u0107 znalezionych stron pasuj\u0105cych do zapytania: %s.", "previous chapter": "poprzedni rozdzia\u0142", "Permalink to this headline": "Sta\u0142y odno\u015bnik do tego nag\u0142\u00f3wka", "About these documents": "O tych dokumentach", "Preparing search...": "Inicjalizacja wyszukiwania...", ", in ": ", w ", "Navigation": "Nawigacja", "Expand sidebar": "Rozwi\u0144 pasek boczny", "the documentation for": "dokumentacja do", "Complete Table of Contents": "Kompletny spis tre\u015bci", "Contents": "Tre\u015b\u0107", "can be huge": "mo\u017ce by\u0107 ogromny", "Changes in Version %(version)s &mdash; %(docstitle)s": "Zmiany w wersji %(version)s &mdash; %(docstitle)s", "Other changes": "Inne zmiany", "Hide Search Matches": "Ukryj wyniki wyszukiwania", "Quick search": "Szybkie wyszukiwanie", "Show Source": "Poka\u017c \u017ar\u00f3d\u0142o", "Search": "Szukaj", "This Page": "Ta strona", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "St\u0105d mo\u017cesz przeszuka\u0107 dokumentacj\u0119. Wprowad\u017a szukane\n s\u0142owa w poni\u017cszym okienku i kliknij \"Szukaj\". Zwr\u00f3\u0107 uwag\u0119, \u017ce\n funkcja szukaj\u0105ca b\u0119dzie automatycznie szuka\u0142a wszystkich s\u0142\u00f3w. Strony\n nie zawieraj\u0105ce wszystkich wpisanych s\u0142\u00f3w nie znajd\u0105 si\u0119 na wynikowej li\u015bcie.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Utworzone przy pomocy <a href=\"http://sphinx-doc.org/\">Sphinx</a>'a %(sphinx_version)s.", "last updated": "ostatnio aktualizowana", "Collapse sidebar": "Zwi\u0144 pasek boczny", "Go": "Szukaj", "Table Of Contents": "Spis tre\u015bci", "Search within %(docstitle)s": "Szukaj po\u015br\u00f3d %(docstitle)s", "all functions, classes, terms": "wszystkie funkcje, klasy, terminy", "Please activate JavaScript to enable the search\n functionality.": "Aby umo\u017cliwi\u0107 wyszukiwanie, prosz\u0119 w\u0142\u0105czy\u0107 JavaScript.", "Indices and tables:": "Indeksy i tablice:", "lists all sections and subsections": "wszystkie rozdzia\u0142y i podrozdzia\u0142y", "Index pages by letter": "Strony indeksu alfabetycznie", "search": "szukaj", "Permalink to this definition": "Sta\u0142y odno\u015bnik do tej definicji", "Previous topic": "Poprzedni temat", "Overview": "Przegl\u0105d", "Last updated on %(last_updated)s.": "Ostatnia modyfikacja %(last_updated)s.", "Searching": "Wyszukiwanie", "search this documentation": "przeszukaj t\u0119 dokumentacj\u0119", "Automatically generated list of changes in version %(version)s": "Automatycznie wygenerowana lista zmian w wersji %(version)s", "Full index on one page": "Ca\u0142y indeks na jednej stronie", "Enter search terms or a module, class or function name.": "Wprowad\u017a szukany termin lub nazw\u0119 modu\u0142u, klasy lub funkcji.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Zmiany w bibliotekach", "Search Page": "Wyszukiwanie", "Search Results": "Wyniki wyszukiwania"}}); \ No newline at end of file
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.mo b/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
index 4abdafc3..9900ce96 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 be12cda1..de122c48 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.po
@@ -1,24 +1,23 @@
-# Polish translations for Sphinx.
+# Translations template for Sphinx.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
# Translators:
-# <tawezik@gmail.com>, 2013.
+# Tawez <tawezik@gmail.com>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
"PO-Revision-Date: 2013-04-04 22:38+0000\n"
"Last-Translator: Tawez <tawezik@gmail.com>\n"
-"Language-Team: Polish "
-"(http://www.transifex.com/projects/p/sphinx-1/language/pl/)\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && "
-"(n%100<10 || n%100>=20) ? 1 : 2)\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/sphinx-1/language/pl/)\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"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: sphinx/config.py:81
#, python-format
@@ -104,7 +103,8 @@ msgstr "Autor: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametry"
@@ -674,9 +674,7 @@ msgstr "Ostatnia modyfikacja %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Utworzone przy pomocy <a href=\"http://sphinx-doc.org/\">Sphinx</a>'a "
-"%(sphinx_version)s."
+msgstr "Utworzone przy pomocy <a href=\"http://sphinx-doc.org/\">Sphinx</a>'a %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -711,31 +709,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Stąd możesz przeszukać dokumentację. Wprowadź szukane\n"
-" słowa w poniższym okienku i kliknij \"Szukaj\". Zwróć uwagę, że\n"
-" funkcja szukająca będzie automatycznie szukała wszystkich słów. "
-"Strony\n"
-" nie zawierające wszystkich wpisanych słów nie znajdą się na wynikowej"
-" liście."
-
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+msgstr "Stąd możesz przeszukać dokumentację. Wprowadź szukane\n słowa w poniższym okienku i kliknij \"Szukaj\". Zwróć uwagę, że\n funkcja szukająca będzie automatycznie szukała wszystkich słów. Strony\n nie zawierające wszystkich wpisanych słów nie znajdą się na wynikowej liście."
+
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "szukaj"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Wyniki wyszukiwania"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-"Twoje wyszukiwanie nie dało żadnych wyników. Upewnij się, że wszystkie "
-"słowa są wpisane prawidłowo i że wybrałeś dostateczną ilość kategorii."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Twoje wyszukiwanie nie dało żadnych wyników. Upewnij się, że wszystkie słowa są wpisane prawidłowo i że wybrałeś dostateczną ilość kategorii."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -797,9 +790,7 @@ msgstr "Inicjalizacja wyszukiwania..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
-"Wyszukiwanie zakończone. Ilość znalezionych stron pasujących do "
-"zapytania: %s."
+msgstr "Wyszukiwanie zakończone. Ilość znalezionych stron pasujących do zapytania: %s."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
@@ -843,4 +834,3 @@ msgstr "[obraz: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[obraz]"
-
diff --git a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js
index 0a86c481..12cb0237 100644
--- a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "pt_BR", "plural_expr": "(n > 1)", "messages": {"Hide Search Matches": "Esconder Resultados da Pesquisa", "Permalink to this definition": "Link permanente para esta defini\u00e7\u00e3o", "Permalink to this headline": "Link permanente para este t\u00edtulo"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "pt_BR", "plural_expr": "(n > 1)", "messages": {"Next topic": "Pr\u00f3ximo t\u00f3pico", "Index": "\u00cdndice", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Bem Vindo(a)! \u00c9 isso a\u00ed", "Copyright": "Copyright", "C API changes": "Altera\u00e7\u00f5es na API C", "quick access to all modules": "acesso r\u00e1pido para todos os m\u00f3dulos", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "\u00cdndice Global de M\u00f3dulos", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Sua pesquisa n\u00e3o encontrou nenhum documento. Por favor, confirme que todas as palavras est\u00e3o grafadas corretamente e que voc\u00ea selecionou categorias suficientes.", "Index &ndash; %(key)s": "\u00cdndice &ndash; %(key)s", "General Index": "\u00cdndice Geral", "next chapter": "pr\u00f3ximo cap\u00edtulo", "Search finished, found %s page(s) matching the search query.": "Pesquisa conclu\u00edda, foram encontrada(s) %s p\u00e1gina(s) que \"\n\"combinam com a consulta feita.", "previous chapter": "cap\u00edtulo anterior", "Permalink to this headline": "Link permanente para este t\u00edtulo", "About these documents": "Sobre estes documentos", "Preparing search...": "Preparando a pesquisa...", ", in ": ", em ", "Navigation": "Navega\u00e7\u00e3o", "Expand sidebar": "Expandir painel lateral", "the documentation for": "documenta\u00e7\u00e3o para", "Complete Table of Contents": "Tabela de Conte\u00fado Completa", "Contents": "Conte\u00fado", "can be huge": "pode ser enorme", "Changes in Version %(version)s &mdash; %(docstitle)s": "Altera\u00e7\u00f5es na Vers\u00e3o%(version)s &mdash; %(docstitle)s", "Other changes": "Outras altera\u00e7\u00f5es", "Hide Search Matches": "Esconder Resultados da Pesquisa", "Quick search": "Pesquisa r\u00e1pida", "Show Source": "Exibir Fonte", "Search": "Pesquisar", "This Page": "Esta P\u00e1gina", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "A partir daqui voc\u00ea pode pesquisar estes documentos. Preencha suas \n palavras de pesquisa na caixa abaixo e clique em \"pesquisar\".\n Observe que a fun\u00e7\u00e3o de pesquisa\n ir\u00e1 procurar automaticamente por todas as palavras.\n P\u00e1ginas contendo menos palavras n\u00e3o ir\u00e3o aparecer na lista de\n resultado.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Criado usando <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "\u00faltima atualiza\u00e7\u00e3o", "Collapse sidebar": "Recolher painel lateral", "Go": "Ir", "Table Of Contents": "Tabela de Conte\u00fado", "Search within %(docstitle)s": "Pesquisar dentro de %(docstitle)s", "all functions, classes, terms": "todas fun\u00e7\u00f5es, classes, termos", "Please activate JavaScript to enable the search\n functionality.": "Por favor ative o JavaScript para habilitar a\n\"\n\" funcionalidade de pesquisa.", "Indices and tables:": "\u00cdndices e tabelas:", "lists all sections and subsections": "Lista todas se\u00e7\u00f5es e subse\u00e7\u00f5es", "Index pages by letter": "Paginas de \u00edndice por letra", "search": "pesquisar", "Permalink to this definition": "Link permanente para esta defini\u00e7\u00e3o", "Previous topic": "T\u00f3pico anterior", "Overview": "Vis\u00e3o geral", "Last updated on %(last_updated)s.": "\u00daltima atualiza\u00e7\u00e3o em %(last_updated)s.", "Searching": "Pesquisando", "search this documentation": "Pesquisar esta documenta\u00e7\u00e3o", "Automatically generated list of changes in version %(version)s": "Lista de altera\u00e7\u00f5es na vers\u00e3o %(version)s gerada automaticamente", "Full index on one page": "\u00cdndice completo em uma p\u00e1gina", "Enter search terms or a module, class or function name.": "Digite os termos da busca ou o nome de um m\u00f3dulo, classe ou fun\u00e7\u00e3o.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Altera\u00e7\u00f5es na biblioteca", "Search Page": "P\u00e1gina de Pesquisa", "Search Results": "Resultados da Pesquisa"}}); \ No newline at end of file
diff --git a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo
index 8face0d7..9bd239d7 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 0d50c489..b42636b4 100644
--- a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Portuguese (Brazil) translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <roger.demetrescu@gmail.com>, 2008.
-#
+#
+# Translators:
+# FIRST AUTHOR <roger.demetrescu@gmail.com>, 2008
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.5\n"
-"Report-Msgid-Bugs-To: gsavix@gmail.com\n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2013-04-01 17:00-0300\n"
-"Last-Translator: gsavix@gmail.com <gsavix@gmail.com>\n"
-"Language-Team: pt_BR <gsavix@gmail.com>\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"PO-Revision-Date: 2013-04-02 15:35+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/sphinx-1/language/pt_BR/)\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"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -101,7 +103,8 @@ msgstr "Autor: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parâmetros"
@@ -671,9 +674,7 @@ msgstr "Última atualização em %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Criado usando <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Criado usando <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -700,10 +701,7 @@ msgstr "próximo capítulo"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Por favor ative o JavaScript para habilitar a\n"
-"\"\n"
-"\" funcionalidade de pesquisa."
+msgstr "Por favor ative o JavaScript para habilitar a\n\"\n\" funcionalidade de pesquisa."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -711,32 +709,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"A partir daqui você pode pesquisar estes documentos. Preencha suas \n"
-" palavras de pesquisa na caixa abaixo e clique em \"pesquisar\".\n"
-" Observe que a função de pesquisa\n"
-" irá procurar automaticamente por todas as palavras.\n"
-" Páginas contendo menos palavras não irão aparecer na lista de\n"
-" resultado."
-
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+msgstr "A partir daqui você pode pesquisar estes documentos. Preencha suas \n palavras de pesquisa na caixa abaixo e clique em \"pesquisar\".\n Observe que a função de pesquisa\n irá procurar automaticamente por todas as palavras.\n Páginas contendo menos palavras não irão aparecer na lista de\n resultado."
+
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "pesquisar"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Resultados da Pesquisa"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-"Sua pesquisa não encontrou nenhum documento. Por favor, confirme que "
-"todas as palavras estão grafadas corretamente e que você selecionou "
-"categorias suficientes."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Sua pesquisa não encontrou nenhum documento. Por favor, confirme que todas as palavras estão grafadas corretamente e que você selecionou categorias suficientes."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -798,9 +790,7 @@ msgstr "Preparando a pesquisa..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
-"Pesquisa concluída, foram encontrada(s) %s página(s) que \"\n"
-"\"combinam com a consulta feita."
+msgstr "Pesquisa concluída, foram encontrada(s) %s página(s) que \"\n\"combinam com a consulta feita."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
@@ -844,4 +834,3 @@ msgstr "[imagem: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[imagem]"
-
diff --git a/sphinx/locale/ru/LC_MESSAGES/sphinx.js b/sphinx/locale/ru/LC_MESSAGES/sphinx.js
index 97506dab..b32f3809 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", "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"}}); \ 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": {"Next topic": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b", "Index": "\u0410\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c! \u042d\u0442\u043e", "Copyright": "\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0430", "C API changes": "\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 API C", "quick access to all modules": "\u0441\u0432\u043e\u0434\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "\u0410\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u041f\u043e \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0443 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u043b\u043e\u0432\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a, \u0438 \u0447\u0442\u043e \u0432\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439.", "Index &ndash; %(key)s": "\u0410\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c &ndash; %(key)s", "General Index": "\u0410\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c", "next chapter": "\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0433\u043b\u0430\u0432\u0430", "Search finished, found %s page(s) matching the search query.": "\u041f\u043e\u0438\u0441\u043a \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d, \u043d\u0430\u0439\u0434\u0435\u043d\u043e %s \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0443.", "previous chapter": "\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0433\u043b\u0430\u0432\u0430", "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", "About these documents": "\u041e\u0431 \u044d\u0442\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445", "Preparing search...": "\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043f\u043e\u0438\u0441\u043a\u0430\u2026", ", in ": ", \u0432", "Navigation": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440", "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", "the documentation for": "\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f", "Complete Table of Contents": "\u041f\u043e\u043b\u043d\u043e\u0435 \u043e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435", "Contents": "\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435", "can be huge": "\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043c", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 %(version)s &mdash; %(docstitle)s", "Other changes": "\u0414\u0440\u0443\u0433\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f", "Hide Search Matches": "\u0421\u043d\u044f\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435", "Quick search": "\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u043e\u0438\u0441\u043a", "Show Source": "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442", "Search": "\u041f\u043e\u0438\u0441\u043a", "This Page": "\u041d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u043c \u044d\u0442\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u0438\u0441\u043a\u0430\u0442\u044c\u00bb. \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430. \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u0441\u043b\u043e\u0432, \u043e\u0442\u043e\u0431\u0440\u0430\u043d\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u0421\u043e\u0437\u0434\u0430\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435", "Collapse sidebar": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0431\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c", "Go": "\u0418\u0441\u043a\u0430\u0442\u044c", "Table Of Contents": "\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435", "Search within %(docstitle)s": "\u041f\u043e\u0438\u0441\u043a \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435 \u00ab%(docstitle)s\u00bb", "all functions, classes, terms": "\u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043b\u0430\u0441\u0441\u044b, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b", "Please activate JavaScript to enable the search\n functionality.": "\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 JavaScript \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.", "Indices and tables:": "\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438:", "lists all sections and subsections": "\u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0438 \u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432", "Index pages by letter": "\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043f\u043e \u0431\u0443\u043a\u0432\u0430\u043c \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0430", "search": "\u0438\u0441\u043a\u0430\u0442\u044c", "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", "Previous topic": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b", "Overview": "\u041e\u0431\u0437\u043e\u0440", "Last updated on %(last_updated)s.": "\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e: %(last_updated)s.", "Searching": "\u0418\u0434\u0451\u0442 \u043f\u043e\u0438\u0441\u043a", "search this documentation": "\u043f\u043e\u0438\u0441\u043a \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438", "Automatically generated list of changes in version %(version)s": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 %(version)s", "Full index on one page": "\u041f\u043e\u043b\u043d\u044b\u0439 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435", "Enter search terms or a module, class or function name.": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043b\u043e\u0432\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043b\u0438 \u0438\u043c\u044f \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043b\u0430\u0441\u0441\u0430 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0430</a> %(copyright)s.", "Library changes": "\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435", "Search Page": "\u041f\u043e\u0438\u0441\u043a", "Search Results": "\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430"}}); \ 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 b9dab23c..ae21c359 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 78e1b880..dd445c5f 100644
--- a/sphinx/locale/ru/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ru/LC_MESSAGES/sphinx.po
@@ -1,46 +1,48 @@
-# Russian translations for Sphinx.
-# Copyright (C) 2013 THE PACKAGE'S COPYRIGHT HOLDER
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
-#
+#
+# Translators:
+# Dmitry Shachnev <mitya57@gmail.com>, 2013
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2013-04-01 11:58+0200\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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"
+"PO-Revision-Date: 2013-08-20 17:13+0000\n"
+"Last-Translator: Dmitry Shachnev <mitya57@gmail.com>\n"
+"Language-Team: Russian (http://www.transifex.com/projects/p/sphinx-1/language/ru/)\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"
+"Language: ru\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"
#: sphinx/config.py:81
#, python-format
msgid "%s %s documentation"
-msgstr ""
+msgstr "Документация %s %s"
#: sphinx/environment.py:1510
#, python-format
msgid "see %s"
-msgstr ""
+msgstr "см. %s"
#: sphinx/environment.py:1513
#, python-format
msgid "see also %s"
-msgstr ""
+msgstr "также см. %s"
#: sphinx/environment.py:1570
msgid "Symbols"
-msgstr ""
+msgstr "Символы"
#: sphinx/roles.py:175
-#, fuzzy, python-format
+#, python-format
msgid "Python Enhancement Proposals; PEP %s"
-msgstr "Python Enhancement Proposals; PEP %s"
+msgstr "Предложения об улучшениях Python; PEP %s"
#: sphinx/transforms.py:52 sphinx/writers/latex.py:202
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:217
@@ -90,9 +92,8 @@ msgid "Module author: "
msgstr "Автор модуля: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Автор модуля: "
+msgstr "Автор кода:"
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -101,9 +102,10 @@ msgstr "Автор: "
#: sphinx/domains/__init__.py:244
#, python-format
msgid "%s %s"
-msgstr ""
+msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Параметры"
@@ -153,20 +155,19 @@ msgstr "поле"
#: sphinx/domains/c.py:205
msgid "macro"
-msgstr ""
+msgstr "макрос"
#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
msgid "type"
msgstr "тип"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Переменная"
+msgstr "переменная"
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
-msgstr ""
+msgstr "Бросает исключение"
#: sphinx/domains/cpp.py:1038
#, python-format
@@ -211,7 +212,7 @@ msgstr "%s() (класс)"
#: sphinx/domains/javascript.py:111
#, python-format
msgid "%s (global variable or constant)"
-msgstr ""
+msgstr "%s (глобальная переменная или константа)"
#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:355
#, python-format
@@ -219,22 +220,20 @@ msgid "%s (%s attribute)"
msgstr "%s (атрибут %s)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Параметры"
+msgstr "Аргументы"
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
-msgstr ""
+msgstr "данные"
#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
msgid "attribute"
msgstr "атрибут"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Переменная"
+msgstr "Переменные"
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -282,14 +281,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (статический метод %s)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (метод %s.%s)"
+msgstr "%s() (метод класса %s.%s)"
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (метод %s)"
+msgstr "%s() (метод класса %s)"
#: sphinx/domains/python.py:353
#, python-format
@@ -302,9 +301,8 @@ msgid "%s (module)"
msgstr "%s (модуль)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Состав модуля"
+msgstr "Содержание модулей Python"
#: sphinx/domains/python.py:492
msgid "modules"
@@ -320,11 +318,11 @@ msgstr "исключение"
#: sphinx/domains/python.py:564
msgid "method"
-msgstr ""
+msgstr "метод"
#: sphinx/domains/python.py:565
msgid "class method"
-msgstr ""
+msgstr "метод класса"
#: sphinx/domains/python.py:566
msgid "static method"
@@ -335,27 +333,26 @@ msgid "module"
msgstr "модуль"
#: sphinx/domains/python.py:696
-#, fuzzy
msgid " (deprecated)"
-msgstr " (не рекомендуется)"
+msgstr "(использование не рекомендуется)"
#: sphinx/domains/rst.py:53
#, python-format
msgid "%s (directive)"
-msgstr ""
+msgstr "%s (директива)"
#: sphinx/domains/rst.py:55
#, python-format
msgid "%s (role)"
-msgstr ""
+msgstr "%s (роль)"
#: sphinx/domains/rst.py:104
msgid "directive"
-msgstr ""
+msgstr "директива"
#: sphinx/domains/rst.py:105
msgid "role"
-msgstr ""
+msgstr "роль"
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
@@ -369,15 +366,15 @@ msgstr "Опция командной строки %s; %s"
#: sphinx/domains/std.py:414
msgid "glossary term"
-msgstr ""
+msgstr "элемент словаря"
#: sphinx/domains/std.py:415
msgid "grammar token"
-msgstr ""
+msgstr "токен грамматики"
#: sphinx/domains/std.py:416
msgid "reference label"
-msgstr ""
+msgstr "текст ссылки"
#: sphinx/domains/std.py:418
msgid "environment variable"
@@ -385,7 +382,7 @@ msgstr "переменная окружения"
#: sphinx/domains/std.py:419
msgid "program option"
-msgstr ""
+msgstr "опция программы"
#: sphinx/domains/std.py:449 sphinx/themes/basic/genindex-single.html:32
#: sphinx/themes/basic/genindex-single.html:57
@@ -427,7 +424,7 @@ msgstr "[иллюстрация]"
#: sphinx/ext/intersphinx.py:234
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "(в %s v%s)"
#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
msgid "[source]"
@@ -435,37 +432,36 @@ msgstr "[исходный код]"
#: sphinx/ext/refcounting.py:83
msgid "Return value: Always NULL."
-msgstr ""
+msgstr "Возвращает: всегда NULL."
#: sphinx/ext/refcounting.py:85
msgid "Return value: New reference."
-msgstr ""
+msgstr "Возвращает: новую ссылку."
#: sphinx/ext/refcounting.py:87
msgid "Return value: Borrowed reference."
-msgstr ""
+msgstr "Возвращает: заимствованную ссылку."
#: sphinx/ext/todo.py:42
msgid "Todo"
msgstr "План"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(Исходный элемент находится в %s, в строке %d.)"
+msgstr "(<<Исходный элемент>> находится в %s, в строке %d.)"
#: sphinx/ext/todo.py:119
msgid "original entry"
-msgstr ""
+msgstr "исходный элемент"
#: sphinx/ext/viewcode.py:117
msgid "[docs]"
msgstr "[документация]"
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "модуль"
+msgstr "Код модуля"
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -584,16 +580,15 @@ msgstr "Обзор"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Добро пожаловать! Это"
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "поиск в документации"
+msgstr "документация"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "последнее изменение"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
@@ -680,9 +675,7 @@ msgstr "Обновлено: %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Создано с помощью <a href=\"http://sphinx-doc.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
@@ -717,27 +710,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Здесь можно делать поиск по всем разделам этой документации. Введите "
-"ключевые слова в текстовое поле и нажмите кнопку «искать». Внимание: "
-"будут найдены только те страницы, в которых есть все указанные слова."
-" Страницы, где есть только часть этих слов, отобраны не будут."
+msgstr "Здесь можно делать поиск по всем разделам этой документации. Введите ключевые слова в текстовое поле и нажмите кнопку «искать». Внимание: будут найдены только те страницы, в которых есть все указанные слова. Страницы, где есть только часть этих слов, отобраны не будут."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "искать"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Результаты поиска"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "По вашему поиску не найдено ни одного документа. Проверьте, что все слова написаны без ошибок, и что вы выбрали достаточно категорий."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -789,22 +781,21 @@ msgid "Hide Search Matches"
msgstr "Снять выделение"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "искать"
+msgstr "Идёт поиск"
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
-msgstr ""
+msgstr "Подготовка поиска…"
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
+msgstr "Поиск завершён, найдено %s страниц, удовлетворяющих запросу."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
-msgstr ""
+msgstr ", в"
#: sphinx/themes/default/static/sidebar.js_t:83
msgid "Expand sidebar"
@@ -833,7 +824,6 @@ msgid "continued from previous page"
msgstr "продолжение с предыдущей страницы"
#: sphinx/writers/latex.py:710
-#, fuzzy
msgid "Continued on next page"
msgstr "Продолжается на следующей странице"
@@ -845,4 +835,3 @@ msgstr "[рисунок: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[рисунок]"
-
diff --git a/sphinx/locale/si/LC_MESSAGES/sphinx.js b/sphinx/locale/si/LC_MESSAGES/sphinx.js
new file mode 100644
index 00000000..71c4d098
--- /dev/null
+++ b/sphinx/locale/si/LC_MESSAGES/sphinx.js
@@ -0,0 +1 @@
+Documentation.addTranslations({"locale": "si", "plural_expr": "(n != 1)", "messages": {"Next topic": "\u0d8a\u0dc5\u0d9f \u0db8\u0dcf\u0dad\u0dd8\u0d9a\u0dcf\u0dc0", "Index": "", "%(filename)s &mdash; %(docstitle)s": "", "Welcome! This is": "", "Copyright": "", "C API changes": "C API \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca", "quick access to all modules": "", "&copy; Copyright %(copyright)s.": "", "Global Module Index": "", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "", "General Index": "", "next chapter": "\u0d8a\u0dc5\u0d9f \u0db4\u0dbb\u0dd2\u0da0\u0dca\u0da1\u0dda\u0daf\u0dba", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\u0db4\u0dd9\u0dbb \u0db4\u0dbb\u0dd2\u0da0\u0dca\u0da1\u0dda\u0daf\u0dba", "Permalink to this headline": "", "About these documents": "\u0db8\u0dd9\u0db8 \u0dbd\u0dda\u0d9b\u0dab \u0d9c\u0dd0\u0db1", "Preparing search...": "\u0dc3\u0dd9\u0dc0\u0dd4\u0db8 \u0dc3\u0dd6\u0daf\u0dcf\u0db1\u0db8\u0dca \u0d9a\u0dbb\u0db8\u0dd2\u0db1\u0dca....", ", in ": "", "Navigation": "\u0d9c\u0db8\u0db1\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "\u0dc3\u0db8\u0dca\u0db4\u0dd6\u0dbb\u0dca\u0dab \u0db4\u0da7\u0dd4\u0db1", "Contents": "\u0d85\u0db1\u0dca\u0dad\u0dbb\u0dca\u0d9c\u0dad\u0dba", "can be huge": "\u0dc0\u0dd2\u0dc1\u0dcf\u0dbd \u0dc0\u0dd2\u0dba \u0dc4\u0dd0\u0d9a", "Changes in Version %(version)s &mdash; %(docstitle)s": "", "Other changes": "\u0dc0\u0dd9\u0db1\u0dad\u0dca \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca", "Hide Search Matches": "", "Quick search": "\u0d89\u0d9a\u0dca\u0db8\u0db1\u0dca \u0dc3\u0dd9\u0dc0\u0dd4\u0db8", "Show Source": "\u0db8\u0dd6\u0dbd\u0dba \u0db4\u0dd9\u0db1\u0dca\u0dc0\u0db1\u0dca\u0db1", "Search": "\u0dc3\u0ddc\u0dba\u0db1\u0dca\u0db1", "This Page": "\u0db8\u0dd9\u0db8 \u0db4\u0dd2\u0da7\u0dd4\u0dc0", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", "last updated": "\u0d85\u0dc0\u0dc3\u0db1\u0dca\u0dc0\u0dbb\u0da7 \u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd \u0d9a\u0dbd", "Collapse sidebar": "", "Go": "\u0dba\u0db1\u0dca\u0db1", "Table Of Contents": "\u0db4\u0da7\u0dd4\u0db1", "Search within %(docstitle)s": "", "all functions, classes, terms": "", "Please activate JavaScript to enable the search\n functionality.": "", "Indices and tables:": "", "lists all sections and subsections": "", "Index pages by letter": "", "search": "\u0dc3\u0ddc\u0dba\u0db1\u0dca\u0db1", "Permalink to this definition": "", "Previous topic": "\u0db4\u0dd9\u0dbb \u0db8\u0dcf\u0dad\u0dd8\u0d9a\u0dcf\u0dc0", "Overview": "", "Last updated on %(last_updated)s.": "", "Searching": "\u0dc3\u0ddc\u0dba\u0db8\u0dd2\u0db1\u0dca...", "search this documentation": "", "Automatically generated list of changes in version %(version)s": "", "Full index on one page": "", "Enter search terms or a module, class or function name.": "", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "", "Library changes": "\u0db4\u0dd4\u0dc3\u0dca\u0dad\u0d9a\u0dcf\u0dbd \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca", "Search Page": "\u0dc3\u0dd9\u0dc0\u0dd4\u0db8\u0dca \u0db4\u0dd2\u0da7\u0dd4\u0dc0", "Search Results": "\u0dc3\u0dd9\u0dc0\u0dd4\u0db8\u0dca \u0db4\u0dca\u200d\u0dbb\u0dad\u0dd2\u0db5\u0dbd"}}); \ No newline at end of file
diff --git a/sphinx/locale/si/LC_MESSAGES/sphinx.mo b/sphinx/locale/si/LC_MESSAGES/sphinx.mo
new file mode 100644
index 00000000..8c314626
--- /dev/null
+++ b/sphinx/locale/si/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/si/LC_MESSAGES/sphinx.po b/sphinx/locale/si/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..e8ed15c5
--- /dev/null
+++ b/sphinx/locale/si/LC_MESSAGES/sphinx.po
@@ -0,0 +1,836 @@
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the Sphinx project.
+#
+# Translators:
+# callkalpa <callkalpa@gmail.com>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: Sphinx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2013-04-02 10:33+0200\n"
+"PO-Revision-Date: 2013-08-11 13:44+0000\n"
+"Last-Translator: callkalpa <callkalpa@gmail.com>\n"
+"Language-Team: Sinhala (http://www.transifex.com/projects/p/sphinx-1/language/si/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+"Language: si\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: sphinx/config.py:81
+#, python-format
+msgid "%s %s documentation"
+msgstr "%s %s ලේඛණය"
+
+#: sphinx/environment.py:1510
+#, python-format
+msgid "see %s"
+msgstr "%s බලන්න"
+
+#: sphinx/environment.py:1513
+#, python-format
+msgid "see also %s"
+msgstr "%s ද බලන්න"
+
+#: sphinx/environment.py:1570
+msgid "Symbols"
+msgstr "සංකේත"
+
+#: sphinx/roles.py:175
+#, python-format
+msgid "Python Enhancement Proposals; PEP %s"
+msgstr ""
+
+#: sphinx/transforms.py:52 sphinx/writers/latex.py:202
+#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:217
+#, python-format
+msgid "%B %d, %Y"
+msgstr "%B %d, %Y"
+
+#: sphinx/builders/changes.py:73
+msgid "Builtins"
+msgstr ""
+
+#: sphinx/builders/changes.py:75
+msgid "Module level"
+msgstr ""
+
+#: sphinx/builders/html.py:290
+#, python-format
+msgid "%b %d, %Y"
+msgstr "%b %d, %Y"
+
+#: sphinx/builders/html.py:309 sphinx/themes/basic/defindex.html:30
+msgid "General Index"
+msgstr ""
+
+#: sphinx/builders/html.py:309
+msgid "index"
+msgstr ""
+
+#: sphinx/builders/html.py:369
+msgid "next"
+msgstr "ඊළඟ"
+
+#: sphinx/builders/html.py:378
+msgid "previous"
+msgstr "පෙර"
+
+#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
+msgid " (in "
+msgstr ""
+
+#: sphinx/directives/other.py:138
+msgid "Section author: "
+msgstr ""
+
+#: sphinx/directives/other.py:140
+msgid "Module author: "
+msgstr ""
+
+#: sphinx/directives/other.py:142
+msgid "Code author: "
+msgstr "කේත ලේඛක:"
+
+#: sphinx/directives/other.py:144
+msgid "Author: "
+msgstr "ලේඛක:"
+
+#: sphinx/domains/__init__.py:244
+#, python-format
+msgid "%s %s"
+msgstr "%s %s"
+
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
+msgid "Parameters"
+msgstr "පරාමිතීන්"
+
+#: sphinx/domains/c.py:54 sphinx/domains/cpp.py:945
+#: sphinx/domains/javascript.py:128 sphinx/domains/python.py:107
+msgid "Returns"
+msgstr ""
+
+#: sphinx/domains/c.py:56 sphinx/domains/javascript.py:130
+#: sphinx/domains/python.py:109
+msgid "Return type"
+msgstr ""
+
+#: sphinx/domains/c.py:141
+#, python-format
+msgid "%s (C function)"
+msgstr ""
+
+#: sphinx/domains/c.py:143
+#, python-format
+msgid "%s (C member)"
+msgstr ""
+
+#: sphinx/domains/c.py:145
+#, python-format
+msgid "%s (C macro)"
+msgstr ""
+
+#: sphinx/domains/c.py:147
+#, python-format
+msgid "%s (C type)"
+msgstr ""
+
+#: sphinx/domains/c.py:149
+#, python-format
+msgid "%s (C variable)"
+msgstr ""
+
+#: sphinx/domains/c.py:203 sphinx/domains/cpp.py:1207
+#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
+msgid "function"
+msgstr "ක්‍රියාව"
+
+#: sphinx/domains/c.py:204 sphinx/domains/cpp.py:1208
+msgid "member"
+msgstr "සාමාජික"
+
+#: sphinx/domains/c.py:205
+msgid "macro"
+msgstr "මැක්‍රෝ"
+
+#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
+msgid "type"
+msgstr "වර්ගය"
+
+#: sphinx/domains/c.py:207
+msgid "variable"
+msgstr "විචල්‍යය"
+
+#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
+msgid "Throws"
+msgstr ""
+
+#: sphinx/domains/cpp.py:1038
+#, python-format
+msgid "%s (C++ class)"
+msgstr ""
+
+#: sphinx/domains/cpp.py:1061
+#, python-format
+msgid "%s (C++ type)"
+msgstr ""
+
+#: sphinx/domains/cpp.py:1081
+#, python-format
+msgid "%s (C++ member)"
+msgstr ""
+
+#: sphinx/domains/cpp.py:1137
+#, python-format
+msgid "%s (C++ function)"
+msgstr ""
+
+#: sphinx/domains/cpp.py:1206 sphinx/domains/javascript.py:165
+#: sphinx/domains/python.py:562
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:106 sphinx/domains/python.py:253
+#, python-format
+msgid "%s() (built-in function)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:107 sphinx/domains/python.py:317
+#, python-format
+msgid "%s() (%s method)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:109
+#, python-format
+msgid "%s() (class)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:111
+#, python-format
+msgid "%s (global variable or constant)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:355
+#, python-format
+msgid "%s (%s attribute)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:122
+msgid "Arguments"
+msgstr ""
+
+#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
+msgid "data"
+msgstr "දත්ත"
+
+#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/python.py:100
+msgid "Variables"
+msgstr "විචල්‍ය"
+
+#: sphinx/domains/python.py:104
+msgid "Raises"
+msgstr ""
+
+#: 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 ""
+
+#: sphinx/domains/python.py:257
+#, python-format
+msgid "%s (built-in variable)"
+msgstr ""
+
+#: sphinx/domains/python.py:258 sphinx/domains/python.py:349
+#, python-format
+msgid "%s (in module %s)"
+msgstr ""
+
+#: sphinx/domains/python.py:274
+#, python-format
+msgid "%s (built-in class)"
+msgstr ""
+
+#: sphinx/domains/python.py:275
+#, python-format
+msgid "%s (class in %s)"
+msgstr ""
+
+#: sphinx/domains/python.py:315
+#, python-format
+msgid "%s() (%s.%s method)"
+msgstr ""
+
+#: sphinx/domains/python.py:327
+#, python-format
+msgid "%s() (%s.%s static method)"
+msgstr ""
+
+#: sphinx/domains/python.py:330
+#, python-format
+msgid "%s() (%s static method)"
+msgstr ""
+
+#: sphinx/domains/python.py:340
+#, python-format
+msgid "%s() (%s.%s class method)"
+msgstr ""
+
+#: sphinx/domains/python.py:343
+#, python-format
+msgid "%s() (%s class method)"
+msgstr ""
+
+#: sphinx/domains/python.py:353
+#, python-format
+msgid "%s (%s.%s attribute)"
+msgstr ""
+
+#: sphinx/domains/python.py:434
+#, python-format
+msgid "%s (module)"
+msgstr ""
+
+#: sphinx/domains/python.py:491
+msgid "Python Module Index"
+msgstr ""
+
+#: sphinx/domains/python.py:492
+msgid "modules"
+msgstr ""
+
+#: sphinx/domains/python.py:538
+msgid "Deprecated"
+msgstr ""
+
+#: sphinx/domains/python.py:563 sphinx/locale/__init__.py:179
+msgid "exception"
+msgstr ""
+
+#: sphinx/domains/python.py:564
+msgid "method"
+msgstr ""
+
+#: sphinx/domains/python.py:565
+msgid "class method"
+msgstr ""
+
+#: sphinx/domains/python.py:566
+msgid "static method"
+msgstr ""
+
+#: sphinx/domains/python.py:568 sphinx/locale/__init__.py:175
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/python.py:696
+msgid " (deprecated)"
+msgstr ""
+
+#: sphinx/domains/rst.py:53
+#, python-format
+msgid "%s (directive)"
+msgstr ""
+
+#: sphinx/domains/rst.py:55
+#, python-format
+msgid "%s (role)"
+msgstr ""
+
+#: sphinx/domains/rst.py:104
+msgid "directive"
+msgstr ""
+
+#: sphinx/domains/rst.py:105
+msgid "role"
+msgstr ""
+
+#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
+#, python-format
+msgid "environment variable; %s"
+msgstr ""
+
+#: sphinx/domains/std.py:162
+#, python-format
+msgid "%scommand line option; %s"
+msgstr ""
+
+#: sphinx/domains/std.py:414
+msgid "glossary term"
+msgstr ""
+
+#: sphinx/domains/std.py:415
+msgid "grammar token"
+msgstr ""
+
+#: sphinx/domains/std.py:416
+msgid "reference label"
+msgstr ""
+
+#: sphinx/domains/std.py:418
+msgid "environment variable"
+msgstr ""
+
+#: sphinx/domains/std.py:419
+msgid "program option"
+msgstr ""
+
+#: sphinx/domains/std.py:449 sphinx/themes/basic/genindex-single.html:32
+#: sphinx/themes/basic/genindex-single.html:57
+#: sphinx/themes/basic/genindex-split.html:11
+#: sphinx/themes/basic/genindex-split.html:14
+#: 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:191 sphinx/writers/texinfo.py:475
+msgid "Index"
+msgstr ""
+
+#: sphinx/domains/std.py:450
+msgid "Module Index"
+msgstr ""
+
+#: sphinx/domains/std.py:451 sphinx/themes/basic/defindex.html:25
+msgid "Search Page"
+msgstr "සෙවුම් පිටුව"
+
+#: sphinx/ext/autodoc.py:1042
+#, python-format
+msgid " Bases: %s"
+msgstr ""
+
+#: sphinx/ext/autodoc.py:1078
+#, python-format
+msgid "alias of :class:`%s`"
+msgstr ""
+
+#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
+#, python-format
+msgid "[graph: %s]"
+msgstr "[graph: %s]"
+
+#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
+msgid "[graph]"
+msgstr "[graph]"
+
+#: sphinx/ext/intersphinx.py:234
+#, python-format
+msgid "(in %s v%s)"
+msgstr "(%s හි%s)"
+
+#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
+msgid "[source]"
+msgstr "[source]"
+
+#: sphinx/ext/refcounting.py:83
+msgid "Return value: Always NULL."
+msgstr ""
+
+#: sphinx/ext/refcounting.py:85
+msgid "Return value: New reference."
+msgstr ""
+
+#: sphinx/ext/refcounting.py:87
+msgid "Return value: Borrowed reference."
+msgstr ""
+
+#: sphinx/ext/todo.py:42
+msgid "Todo"
+msgstr "කිරීමට තිබෙන"
+
+#: sphinx/ext/todo.py:110
+#, python-format
+msgid "(The <<original entry>> is located in %s, line %d.)"
+msgstr ""
+
+#: sphinx/ext/todo.py:119
+msgid "original entry"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:117
+msgid "[docs]"
+msgstr "[docs]"
+
+#: sphinx/ext/viewcode.py:131
+msgid "Module code"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:137
+#, python-format
+msgid "<h1>Source code for %s</h1>"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:164
+msgid "Overview: module code"
+msgstr ""
+
+#: sphinx/ext/viewcode.py:165
+msgid "<h1>All modules for which code is available</h1>"
+msgstr ""
+
+#: sphinx/locale/__init__.py:155
+msgid "Attention"
+msgstr ""
+
+#: sphinx/locale/__init__.py:156
+msgid "Caution"
+msgstr ""
+
+#: sphinx/locale/__init__.py:157
+msgid "Danger"
+msgstr ""
+
+#: sphinx/locale/__init__.py:158
+msgid "Error"
+msgstr "දෝෂය"
+
+#: sphinx/locale/__init__.py:159
+msgid "Hint"
+msgstr "හැඟවීම"
+
+#: sphinx/locale/__init__.py:160
+msgid "Important"
+msgstr ""
+
+#: sphinx/locale/__init__.py:161
+msgid "Note"
+msgstr "සටහන"
+
+#: sphinx/locale/__init__.py:162
+msgid "See also"
+msgstr "මෙයද බලන්න"
+
+#: sphinx/locale/__init__.py:163
+msgid "Tip"
+msgstr ""
+
+#: sphinx/locale/__init__.py:164
+msgid "Warning"
+msgstr "අනතුරු ඇඟවීම"
+
+#: sphinx/locale/__init__.py:168
+#, python-format
+msgid "New in version %s"
+msgstr "%s වෙළුමේ අලුත්"
+
+#: sphinx/locale/__init__.py:169
+#, python-format
+msgid "Changed in version %s"
+msgstr "%s වෙළුමේ වෙනස් කල"
+
+#: sphinx/locale/__init__.py:170
+#, python-format
+msgid "Deprecated since version %s"
+msgstr ""
+
+#: sphinx/locale/__init__.py:176
+msgid "keyword"
+msgstr ""
+
+#: sphinx/locale/__init__.py:177
+msgid "operator"
+msgstr ""
+
+#: sphinx/locale/__init__.py:178
+msgid "object"
+msgstr "වස්තුව"
+
+#: sphinx/locale/__init__.py:180
+msgid "statement"
+msgstr ""
+
+#: sphinx/locale/__init__.py:181
+msgid "built-in function"
+msgstr ""
+
+#: sphinx/themes/agogo/layout.html:46 sphinx/themes/basic/globaltoc.html:10
+#: sphinx/themes/basic/localtoc.html:11 sphinx/themes/scrolls/layout.html:35
+msgid "Table Of Contents"
+msgstr "පටුන"
+
+#: sphinx/themes/agogo/layout.html:50 sphinx/themes/basic/layout.html:137
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
+#: sphinx/themes/basic/searchresults.html:10
+msgid "Search"
+msgstr "සොයන්න"
+
+#: sphinx/themes/agogo/layout.html:53 sphinx/themes/basic/searchbox.html:15
+msgid "Go"
+msgstr "යන්න"
+
+#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
+msgid "Enter search terms or a module, class or function name."
+msgstr ""
+
+#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
+msgid "Show Source"
+msgstr "මූලය පෙන්වන්න"
+
+#: sphinx/themes/basic/defindex.html:11
+msgid "Overview"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:15
+msgid "Welcome! This is"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:16
+msgid "the documentation for"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:17
+msgid "last updated"
+msgstr "අවසන්වරට යාවත්කාල කල"
+
+#: sphinx/themes/basic/defindex.html:20
+msgid "Indices and tables:"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:23
+msgid "Complete Table of Contents"
+msgstr "සම්පූර්ණ පටුන"
+
+#: sphinx/themes/basic/defindex.html:24
+msgid "lists all sections and subsections"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:26
+msgid "search this documentation"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:28
+msgid "Global Module Index"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:29
+msgid "quick access to all modules"
+msgstr ""
+
+#: sphinx/themes/basic/defindex.html:31
+msgid "all functions, classes, terms"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-single.html:35
+#, python-format
+msgid "Index &ndash; %(key)s"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-single.html:63
+#: sphinx/themes/basic/genindex-split.html:24
+#: sphinx/themes/basic/genindex-split.html:38
+#: sphinx/themes/basic/genindex.html:74
+msgid "Full index on one page"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-split.html:16
+msgid "Index pages by letter"
+msgstr ""
+
+#: sphinx/themes/basic/genindex-split.html:25
+msgid "can be huge"
+msgstr "විශාල විය හැක"
+
+#: sphinx/themes/basic/layout.html:29
+msgid "Navigation"
+msgstr "ගමන් කිරීම"
+
+#: sphinx/themes/basic/layout.html:122
+#, python-format
+msgid "Search within %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:131
+msgid "About these documents"
+msgstr "මෙම ලේඛණ ගැන"
+
+#: sphinx/themes/basic/layout.html:140
+msgid "Copyright"
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:189
+#, python-format
+msgid "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s."
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:191
+#, python-format
+msgid "&copy; Copyright %(copyright)s."
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:195
+#, python-format
+msgid "Last updated on %(last_updated)s."
+msgstr ""
+
+#: sphinx/themes/basic/layout.html:198
+#, python-format
+msgid ""
+"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
+"%(sphinx_version)s."
+msgstr ""
+
+#: sphinx/themes/basic/opensearch.xml:4
+#, python-format
+msgid "Search %(docstitle)s"
+msgstr "%(docstitle)s සොයන්න"
+
+#: sphinx/themes/basic/relations.html:11
+msgid "Previous topic"
+msgstr "පෙර මාතෘකාව"
+
+#: sphinx/themes/basic/relations.html:13
+msgid "previous chapter"
+msgstr "පෙර පරිච්ඡේදය"
+
+#: sphinx/themes/basic/relations.html:16
+msgid "Next topic"
+msgstr "ඊළඟ මාතෘකාව"
+
+#: sphinx/themes/basic/relations.html:18
+msgid "next chapter"
+msgstr "ඊළඟ පරිච්ඡේදය"
+
+#: sphinx/themes/basic/search.html:27
+msgid ""
+"Please activate JavaScript to enable the search\n"
+" functionality."
+msgstr ""
+
+#: sphinx/themes/basic/search.html:32
+msgid ""
+"From here you can search these documents. Enter your search\n"
+" words into the box below and click \"search\". Note that the search\n"
+" function will automatically search for all of the words. Pages\n"
+" containing fewer words won't appear in the result list."
+msgstr ""
+
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
+msgid "search"
+msgstr "සොයන්න"
+
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/static/searchtools.js_t:281
+msgid "Search Results"
+msgstr "සෙවුම් ප්‍රතිඵල"
+
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/static/searchtools.js_t:283
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
+#: sphinx/themes/basic/searchbox.html:12
+msgid "Quick search"
+msgstr "ඉක්මන් සෙවුම"
+
+#: sphinx/themes/basic/sourcelink.html:11
+msgid "This Page"
+msgstr "මෙම පිටුව"
+
+#: sphinx/themes/basic/changes/frameset.html:5
+#: sphinx/themes/basic/changes/versionchanges.html:12
+#, python-format
+msgid "Changes in Version %(version)s &mdash; %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/changes/rstsource.html:5
+#, python-format
+msgid "%(filename)s &mdash; %(docstitle)s"
+msgstr ""
+
+#: sphinx/themes/basic/changes/versionchanges.html:17
+#, python-format
+msgid "Automatically generated list of changes in version %(version)s"
+msgstr ""
+
+#: sphinx/themes/basic/changes/versionchanges.html:18
+msgid "Library changes"
+msgstr "පුස්තකාල වෙනස්කම්"
+
+#: sphinx/themes/basic/changes/versionchanges.html:23
+msgid "C API changes"
+msgstr "C API වෙනස්කම්"
+
+#: sphinx/themes/basic/changes/versionchanges.html:25
+msgid "Other changes"
+msgstr "වෙනත් වෙනස්කම්"
+
+#: sphinx/themes/basic/static/doctools.js:142 sphinx/writers/html.py:510
+#: sphinx/writers/html.py:516
+msgid "Permalink to this headline"
+msgstr ""
+
+#: sphinx/themes/basic/static/doctools.js:148 sphinx/writers/html.py:97
+msgid "Permalink to this definition"
+msgstr ""
+
+#: sphinx/themes/basic/static/doctools.js:177
+msgid "Hide Search Matches"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js_t:119
+msgid "Searching"
+msgstr "සොයමින්..."
+
+#: sphinx/themes/basic/static/searchtools.js_t:124
+msgid "Preparing search..."
+msgstr "සෙවුම සූදානම් කරමින්...."
+
+#: sphinx/themes/basic/static/searchtools.js_t:285
+#, python-format
+msgid "Search finished, found %s page(s) matching the search query."
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js_t:337
+msgid ", in "
+msgstr ""
+
+#: sphinx/themes/default/static/sidebar.js_t:83
+msgid "Expand sidebar"
+msgstr ""
+
+#: sphinx/themes/default/static/sidebar.js_t:96
+#: sphinx/themes/default/static/sidebar.js_t:124
+msgid "Collapse sidebar"
+msgstr ""
+
+#: sphinx/themes/haiku/layout.html:26
+msgid "Contents"
+msgstr "අන්තර්ගතය"
+
+#: sphinx/writers/latex.py:189
+msgid "Release"
+msgstr "නිකුත් කිරීම"
+
+#: sphinx/writers/latex.py:620 sphinx/writers/manpage.py:181
+#: sphinx/writers/texinfo.py:612
+msgid "Footnotes"
+msgstr ""
+
+#: sphinx/writers/latex.py:704
+msgid "continued from previous page"
+msgstr ""
+
+#: sphinx/writers/latex.py:710
+msgid "Continued on next page"
+msgstr ""
+
+#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
+#, python-format
+msgid "[image: %s]"
+msgstr "[image: %s]"
+
+#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
+msgid "[image]"
+msgstr "[image]"
diff --git a/sphinx/locale/sk/LC_MESSAGES/sphinx.js b/sphinx/locale/sk/LC_MESSAGES/sphinx.js
index 5f665ceb..a2d44366 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": "Skry\u0165 v\u00fdsledky vyh\u013ead\u00e1vania", "Permalink to this definition": "Trval\u00fd odkaz na t\u00fato defin\u00edciu", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "sk", "plural_expr": "(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2", "messages": {"Next topic": "\u010eal\u0161ia t\u00e9ma", "Index": "Index", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Vitajte! Toto je", "Copyright": "Copyright", "C API changes": "Zmeny C API", "quick access to all modules": "r\u00fdchly pr\u00edstup ku v\u0161etk\u00fdm modulom", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Celkov\u00fd index modulov", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "V\u00e1\u0161mu h\u013eadaniu nezodpoved\u00e1 \u017eiadny dokument. Pros\u00edm, skontrolujte, \u017ee v\u0161etky zadan\u00e9 slov\u00e1 s\u00fa spr\u00e1vne nap\u00edsan\u00e9 a \u017ee ste zvolili vhodn\u00e9 kateg\u00f3rie.", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "V\u0161eobecn\u00fd index", "next chapter": "\u010fal\u0161ia kapitola", "Search finished, found %s page(s) matching the search query.": "H\u013eadanie dokon\u010den\u00e9, n\u00e1jden\u00e9 %s str\u00e1n(y), ktor\u00e9 vyhovuj\u00fa h\u013eadan\u00e9mu v\u00fdrazu.", "previous chapter": "predo\u0161l\u00e1 kapitola", "Permalink to this headline": "Trval\u00fd odkaz na tento nadpis", "About these documents": "O t\u00fdchto dokumentoch", "Preparing search...": "Pr\u00edprava h\u013eadania...", ", in ": ", v ", "Navigation": "Navig\u00e1cia", "Expand sidebar": "Rozbali\u0165 bo\u010dn\u00fd panel", "the documentation for": "dokument\u00e1cia", "Complete Table of Contents": "Celkov\u00fd obsah", "Contents": "Obsah", "can be huge": "m\u00f4\u017ee by\u0165 rozsiahle", "Changes in Version %(version)s &mdash; %(docstitle)s": "Zmeny vo verzii %(version)s &mdash; %(docstitle)s", "Other changes": "Ostatn\u00e9 zmeny", "Hide Search Matches": "Skry\u0165 v\u00fdsledky h\u013eadania", "Quick search": "R\u00fdchle h\u013eadanie", "Show Source": "Zobrazi\u0165 zdroj", "Search": "H\u013eada\u0165", "This Page": "T\u00e1to str\u00e1nka", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Tu m\u00f4\u017eete h\u013eada\u0165 v tejto dokument\u00e1cii. Zadajte h\u013eadan\u00e9 slov\u00e1\n do pol\u00ed\u010dka ni\u017e\u0161ie a kliknite na \"h\u013eada\u0165\". Pam\u00e4tajte, \u017ee funkcia\n h\u013eadania bude automaticky h\u013eada\u0165 v\u0161etky slov\u00e1. Strany, ktor\u00e9\n obsahuj\u00fa len niektor\u00e9 zo slov, nebud\u00fa v zozname v\u00fdsledkov.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Vytvoren\u00e9 pomocou <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "posledn\u00e1 aktualiz\u00e1cia", "Collapse sidebar": "Zbali\u0165 bo\u010dn\u00fd panel", "Go": "OK", "Table Of Contents": "Obsah", "Search within %(docstitle)s": "H\u013eada\u0165 v %(docstitle)s", "all functions, classes, terms": "v\u0161etky funkcie, triedy, term\u00edny", "Please activate JavaScript to enable the search\n functionality.": "Pros\u00edm, na zapnutie funkcie h\u013eadania,aktivujte \n JavaScript .", "Indices and tables:": "Indexy a tabu\u013eky", "lists all sections and subsections": "zoznam sekci\u00ed a podsekci\u00ed", "Index pages by letter": "Indexov\u00e9 str\u00e1nky po p\u00edsmen\u00e1ch", "search": "h\u013eada\u0165", "Permalink to this definition": "Trval\u00fd odkaz na t\u00fato defin\u00edciu", "Previous topic": "Predo\u0161l\u00e1 t\u00e9ma", "Overview": "Preh\u013ead", "Last updated on %(last_updated)s.": "Naposledy aktualizovan\u00e9 %(last_updated)s.", "Searching": "H\u013eadanie", "search this documentation": "h\u013eada\u0165 v tejto dokument\u00e1cii", "Automatically generated list of changes in version %(version)s": "Automaticky generovan\u00fd zoznam zmien vo verzii %(version)s", "Full index on one page": "Cel\u00fd index na jednej strane", "Enter search terms or a module, class or function name.": "Zadajte h\u013eadan\u00e9 v\u00fdrazy alebo modul, triedu, \u010di meno funkcie.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "Zmeny kni\u017enice", "Search Page": "Str\u00e1nka h\u013eadania", "Search Results": "V\u00fdsledky h\u013eadania"}}); \ 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 9d124be3..ed959734 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 c4ddd610..3ec0f1b8 100644
--- a/sphinx/locale/sk/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sk/LC_MESSAGES/sphinx.po
@@ -1,41 +1,43 @@
-# Slovak translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
-#
+#
+# Translators:
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008
+# Slavko <linux@slavino.sk>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.5\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-11-26 14:00+0100\n"
-"Last-Translator: Jozef Sevcik <sevcik@codescale.net>\n"
-"Language-Team: Jozef Sevcik <sevcik@codescale.net>\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"
+"PO-Revision-Date: 2013-06-13 03:32+0000\n"
+"Last-Translator: Takayuki Shimizukawa <shimizukawa@gmail.com>\n"
+"Language-Team: Slovak (http://www.transifex.com/projects/p/sphinx-1/language/sk/)\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"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: sphinx/config.py:81
#, python-format
msgid "%s %s documentation"
-msgstr "%s %s dokumentácia"
+msgstr "Dokumentácia %s %s"
#: sphinx/environment.py:1510
-#, fuzzy, python-format
+#, python-format
msgid "see %s"
-msgstr "viz %s"
+msgstr "pozri %s"
#: sphinx/environment.py:1513
-#, fuzzy, python-format
+#, python-format
msgid "see also %s"
-msgstr "viz tiež %s"
+msgstr "pozri aj %s"
#: sphinx/environment.py:1570
msgid "Symbols"
-msgstr ""
+msgstr "Symboly"
#: sphinx/roles.py:175
#, python-format
@@ -46,7 +48,7 @@ msgstr "Python Enhancement Proposals; PEP %s"
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:217
#, python-format
msgid "%B %d, %Y"
-msgstr "%d.%m.%Y"
+msgstr "%d. %B %Y"
#: sphinx/builders/changes.py:73
msgid "Builtins"
@@ -54,16 +56,16 @@ msgstr "Zabudované funkcie"
#: sphinx/builders/changes.py:75
msgid "Module level"
-msgstr "Úroveň modulov"
+msgstr "Úroveň modulu"
#: sphinx/builders/html.py:290
#, python-format
msgid "%b %d, %Y"
-msgstr "%d.%m.%Y"
+msgstr "%d. %b %Y"
#: sphinx/builders/html.py:309 sphinx/themes/basic/defindex.html:30
msgid "General Index"
-msgstr "Register indexov"
+msgstr "Všeobecný index"
#: sphinx/builders/html.py:309
msgid "index"
@@ -71,11 +73,11 @@ msgstr "index"
#: sphinx/builders/html.py:369
msgid "next"
-msgstr "ďalší"
+msgstr "predošlý"
#: sphinx/builders/html.py:378
msgid "previous"
-msgstr "predchádzajúci"
+msgstr "ďalší"
#: sphinx/builders/latex.py:141 sphinx/builders/texinfo.py:196
msgid " (in "
@@ -83,27 +85,27 @@ msgstr "(v"
#: sphinx/directives/other.py:138
msgid "Section author: "
-msgstr "Autor sekcie: "
+msgstr "Autor sekcie:"
#: sphinx/directives/other.py:140
msgid "Module author: "
-msgstr "Autor modulu: "
+msgstr "Autor modulu:"
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Autor modulu: "
+msgstr "Autor kódu:"
#: sphinx/directives/other.py:144
msgid "Author: "
-msgstr "Autor: "
+msgstr "Autor:"
#: sphinx/domains/__init__.py:244
#, python-format
msgid "%s %s"
-msgstr ""
+msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametre"
@@ -115,12 +117,12 @@ msgstr "Vracia"
#: sphinx/domains/c.py:56 sphinx/domains/javascript.py:130
#: sphinx/domains/python.py:109
msgid "Return type"
-msgstr "Typ návratovej hodnoty"
+msgstr "Návratový typ"
#: sphinx/domains/c.py:141
#, python-format
msgid "%s (C function)"
-msgstr "%s (C funkcia)"
+msgstr "%s (funkcia C)"
#: sphinx/domains/c.py:143
#, python-format
@@ -130,17 +132,17 @@ msgstr "%s (člen C)"
#: sphinx/domains/c.py:145
#, python-format
msgid "%s (C macro)"
-msgstr "%s (C makro)"
+msgstr "%s (makro C)"
#: sphinx/domains/c.py:147
#, python-format
msgid "%s (C type)"
-msgstr "%s (C typ)"
+msgstr "%s (typ C)"
#: sphinx/domains/c.py:149
#, python-format
msgid "%s (C variable)"
-msgstr "%s (C premenná)"
+msgstr "%s (premenná C)"
#: sphinx/domains/c.py:203 sphinx/domains/cpp.py:1207
#: sphinx/domains/javascript.py:164 sphinx/domains/python.py:560
@@ -153,30 +155,29 @@ msgstr "člen"
#: sphinx/domains/c.py:205
msgid "macro"
-msgstr ""
+msgstr "makro"
#: sphinx/domains/c.py:206 sphinx/domains/cpp.py:1209
msgid "type"
msgstr "typ"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Premenná"
+msgstr "premenná"
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
-msgstr ""
+msgstr "Vyvoláva"
#: sphinx/domains/cpp.py:1038
#, python-format
msgid "%s (C++ class)"
-msgstr "%s (C++ trieda)"
+msgstr "%s (trieda C++)"
#: sphinx/domains/cpp.py:1061
#, python-format
msgid "%s (C++ type)"
-msgstr "%s (C++ typ)"
+msgstr "%s (typ C++)"
#: sphinx/domains/cpp.py:1081
#, python-format
@@ -186,7 +187,7 @@ msgstr "%s (člen C++)"
#: sphinx/domains/cpp.py:1137
#, python-format
msgid "%s (C++ function)"
-msgstr "%s (C++ funkcia)"
+msgstr "%s (funkcia C++)"
#: sphinx/domains/cpp.py:1206 sphinx/domains/javascript.py:165
#: sphinx/domains/python.py:562
@@ -211,34 +212,32 @@ msgstr "%s() (trieda)"
#: sphinx/domains/javascript.py:111
#, python-format
msgid "%s (global variable or constant)"
-msgstr ""
+msgstr "%s (globálna premenná alebo konštanta)"
#: sphinx/domains/javascript.py:113 sphinx/domains/python.py:355
#, python-format
msgid "%s (%s attribute)"
-msgstr "%s() (atribút %s)"
+msgstr "%s (atribút %s)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Parametre"
+msgstr "Argumenty"
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
-msgstr ""
+msgstr "dáta"
#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
msgid "attribute"
msgstr "atribút"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Premenná"
+msgstr "Premenné"
#: sphinx/domains/python.py:104
msgid "Raises"
-msgstr "Vyvolá"
+msgstr "Vyzdvihuje"
#: sphinx/domains/python.py:254 sphinx/domains/python.py:311
#: sphinx/domains/python.py:323 sphinx/domains/python.py:336
@@ -249,27 +248,27 @@ msgstr "%s() (v module %s)"
#: sphinx/domains/python.py:257
#, python-format
msgid "%s (built-in variable)"
-msgstr "%s() (zabudovaná premenná)"
+msgstr "%s (zabudovaná premenná)"
#: sphinx/domains/python.py:258 sphinx/domains/python.py:349
#, python-format
msgid "%s (in module %s)"
-msgstr "%s() (v module %s)"
+msgstr "%s (v module %s)"
#: sphinx/domains/python.py:274
#, python-format
msgid "%s (built-in class)"
-msgstr "%s () (zabudovaná premenná)"
+msgstr "%s (zabudovaná trieda)"
#: sphinx/domains/python.py:275
#, python-format
msgid "%s (class in %s)"
-msgstr "%s() (trieda v %s)"
+msgstr "%s (trieda v %s)"
#: sphinx/domains/python.py:315
#, python-format
msgid "%s() (%s.%s method)"
-msgstr "%s() (metoda %s.%s)"
+msgstr "%s() (metóda %s.%s)"
#: sphinx/domains/python.py:327
#, python-format
@@ -282,29 +281,28 @@ msgid "%s() (%s static method)"
msgstr "%s() (statická metóda %s)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (metóda %s.%s)"
+msgstr "%s() (metóda triedy %s.%s)"
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (metóda %s)"
+msgstr "%s() (metóda triedy %s)"
#: sphinx/domains/python.py:353
#, python-format
msgid "%s (%s.%s attribute)"
-msgstr "%s() (atribút %s.%s)"
+msgstr "%s (atribút %s.%s)"
#: sphinx/domains/python.py:434
#, python-format
msgid "%s (module)"
-msgstr "%s (module)"
+msgstr "%s (modul)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Register modulov"
+msgstr "Index modulov Python"
#: sphinx/domains/python.py:492
msgid "modules"
@@ -312,7 +310,7 @@ msgstr "moduly"
#: sphinx/domains/python.py:538
msgid "Deprecated"
-msgstr "Zastaralé"
+msgstr "Zastarané"
#: sphinx/domains/python.py:563 sphinx/locale/__init__.py:179
msgid "exception"
@@ -320,11 +318,11 @@ msgstr "výnimka"
#: sphinx/domains/python.py:564
msgid "method"
-msgstr ""
+msgstr "metóda"
#: sphinx/domains/python.py:565
msgid "class method"
-msgstr ""
+msgstr "metóda triedy"
#: sphinx/domains/python.py:566
msgid "static method"
@@ -336,47 +334,47 @@ msgstr "modul"
#: sphinx/domains/python.py:696
msgid " (deprecated)"
-msgstr " (zastaralé)"
+msgstr " (zastarané)"
#: sphinx/domains/rst.py:53
#, python-format
msgid "%s (directive)"
-msgstr ""
+msgstr "%s (direktíva)"
#: sphinx/domains/rst.py:55
#, python-format
msgid "%s (role)"
-msgstr ""
+msgstr "%s (rola)"
#: sphinx/domains/rst.py:104
msgid "directive"
-msgstr ""
+msgstr "direktíva"
#: sphinx/domains/rst.py:105
msgid "role"
-msgstr ""
+msgstr "rola"
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
msgid "environment variable; %s"
-msgstr "premenná prostredia, %s"
+msgstr "premenná prostredia; %s"
#: sphinx/domains/std.py:162
#, python-format
msgid "%scommand line option; %s"
-msgstr "%s parametre príkazového riadku; %s"
+msgstr "%s voľba príkazového riadka; %s"
#: sphinx/domains/std.py:414
msgid "glossary term"
-msgstr ""
+msgstr "termín glosára"
#: sphinx/domains/std.py:415
msgid "grammar token"
-msgstr ""
+msgstr "jazykový token"
#: sphinx/domains/std.py:416
msgid "reference label"
-msgstr ""
+msgstr "menovka odkazu"
#: sphinx/domains/std.py:418
msgid "environment variable"
@@ -384,7 +382,7 @@ msgstr "premenná prostredia"
#: sphinx/domains/std.py:419
msgid "program option"
-msgstr ""
+msgstr "voľba programu"
#: sphinx/domains/std.py:449 sphinx/themes/basic/genindex-single.html:32
#: sphinx/themes/basic/genindex-single.html:57
@@ -398,86 +396,85 @@ msgstr "Index"
#: sphinx/domains/std.py:450
msgid "Module Index"
-msgstr "Register modulov"
+msgstr "Index modulov"
#: sphinx/domains/std.py:451 sphinx/themes/basic/defindex.html:25
msgid "Search Page"
-msgstr "Vyhľadávacia stránka"
+msgstr "Stránka hľadania"
#: sphinx/ext/autodoc.py:1042
#, python-format
msgid " Bases: %s"
-msgstr ""
+msgstr " Základné: %s"
#: sphinx/ext/autodoc.py:1078
#, python-format
msgid "alias of :class:`%s`"
-msgstr ""
+msgstr "alias pre :class:`%s`"
#: sphinx/ext/graphviz.py:294 sphinx/ext/graphviz.py:302
#, python-format
msgid "[graph: %s]"
-msgstr ""
+msgstr "[graf: %s]"
#: sphinx/ext/graphviz.py:296 sphinx/ext/graphviz.py:304
msgid "[graph]"
-msgstr ""
+msgstr "[graf]"
#: sphinx/ext/intersphinx.py:234
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "(v %s v%s)"
#: sphinx/ext/linkcode.py:66 sphinx/ext/viewcode.py:70
msgid "[source]"
-msgstr ""
+msgstr "[zdroj]"
#: sphinx/ext/refcounting.py:83
msgid "Return value: Always NULL."
-msgstr ""
+msgstr "Návratová hodnota: vždy NULL."
#: sphinx/ext/refcounting.py:85
msgid "Return value: New reference."
-msgstr ""
+msgstr "Návratová hodnota: Nový odkaz."
#: sphinx/ext/refcounting.py:87
msgid "Return value: Borrowed reference."
-msgstr ""
+msgstr "Návratová hodnota: Požičaný odkaz."
#: sphinx/ext/todo.py:42
msgid "Todo"
msgstr "Todo"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(<<Pôvodný záznam>> je v %s, riadok %d.)"
+msgstr "(<<pôvodná položka>> je umiestnená v %s, riadok %d.)"
#: sphinx/ext/todo.py:119
msgid "original entry"
-msgstr ""
+msgstr "pôvodná položka"
#: sphinx/ext/viewcode.py:117
msgid "[docs]"
-msgstr ""
+msgstr "[dokumenty]"
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "modul"
+msgstr "Kód modulu"
#: sphinx/ext/viewcode.py:137
#, python-format
msgid "<h1>Source code for %s</h1>"
-msgstr ""
+msgstr "<h1>Zdrojový kód %s</h1>"
#: sphinx/ext/viewcode.py:164
msgid "Overview: module code"
-msgstr ""
+msgstr "Prehľad: kód modulu"
#: sphinx/ext/viewcode.py:165
msgid "<h1>All modules for which code is available</h1>"
-msgstr ""
+msgstr "<h1>Všetky moduly, pre ktoré je dostupný kód</h1>"
#: sphinx/locale/__init__.py:155
msgid "Attention"
@@ -485,11 +482,11 @@ msgstr "Výstraha"
#: sphinx/locale/__init__.py:156
msgid "Caution"
-msgstr "Upozornenie"
+msgstr "Pozor"
#: sphinx/locale/__init__.py:157
msgid "Danger"
-msgstr "Nebezpečenstvo"
+msgstr "Nebezpečné"
#: sphinx/locale/__init__.py:158
msgid "Error"
@@ -509,7 +506,7 @@ msgstr "Poznámka"
#: sphinx/locale/__init__.py:162
msgid "See also"
-msgstr "Viz tiež"
+msgstr "Pozri aj"
#: sphinx/locale/__init__.py:163
msgid "Tip"
@@ -532,11 +529,11 @@ msgstr "Zmenené vo verzii %s"
#: sphinx/locale/__init__.py:170
#, python-format
msgid "Deprecated since version %s"
-msgstr "Zastaralé od verzie %s"
+msgstr "Zastarané od verzie %s"
#: sphinx/locale/__init__.py:176
msgid "keyword"
-msgstr "klúčové slovo"
+msgstr "kľúč. slovo"
#: sphinx/locale/__init__.py:177
msgid "operator"
@@ -563,7 +560,7 @@ msgstr "Obsah"
#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
#: sphinx/themes/basic/searchresults.html:10
msgid "Search"
-msgstr "Hľadanie"
+msgstr "Hľadať"
#: sphinx/themes/agogo/layout.html:53 sphinx/themes/basic/searchbox.html:15
msgid "Go"
@@ -571,11 +568,11 @@ msgstr "OK"
#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
msgid "Enter search terms or a module, class or function name."
-msgstr "Zadaj názov modulu, triedy alebo funkcie."
+msgstr "Zadajte hľadané výrazy alebo modul, triedu, či meno funkcie."
#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
-msgstr "Ukázať zdroj"
+msgstr "Zobraziť zdroj"
#: sphinx/themes/basic/defindex.html:11
msgid "Overview"
@@ -583,20 +580,19 @@ msgstr "Prehľad"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Vitajte! Toto je"
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
msgstr "dokumentácia"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "posledná aktualizácia"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
-msgstr "Register a tabuľky:"
+msgstr "Indexy a tabuľky"
#: sphinx/themes/basic/defindex.html:23
msgid "Complete Table of Contents"
@@ -604,15 +600,15 @@ msgstr "Celkový obsah"
#: sphinx/themes/basic/defindex.html:24
msgid "lists all sections and subsections"
-msgstr "zoznam všetkých sekcií a podsekcií"
+msgstr "zoznam sekcií a podsekcií"
#: sphinx/themes/basic/defindex.html:26
msgid "search this documentation"
-msgstr "prehľadaj túto dokumentáciu"
+msgstr "hľadať v tejto dokumentácii"
#: sphinx/themes/basic/defindex.html:28
msgid "Global Module Index"
-msgstr "Celkový register modulov"
+msgstr "Celkový index modulov"
#: sphinx/themes/basic/defindex.html:29
msgid "quick access to all modules"
@@ -632,15 +628,15 @@ msgstr "Index &ndash; %(key)s"
#: sphinx/themes/basic/genindex-split.html:38
#: sphinx/themes/basic/genindex.html:74
msgid "Full index on one page"
-msgstr "Celý index na jednej stránke"
+msgstr "Celý index na jednej strane"
#: sphinx/themes/basic/genindex-split.html:16
msgid "Index pages by letter"
-msgstr "Index podľa písmena"
+msgstr "Indexové stránky po písmenách"
#: sphinx/themes/basic/genindex-split.html:25
msgid "can be huge"
-msgstr "môže byť obrovský"
+msgstr "môže byť rozsiahle"
#: sphinx/themes/basic/layout.html:29
msgid "Navigation"
@@ -649,7 +645,7 @@ msgstr "Navigácia"
#: sphinx/themes/basic/layout.html:122
#, python-format
msgid "Search within %(docstitle)s"
-msgstr "Hľadanie v %(docstitle)s"
+msgstr "Hľadať v %(docstitle)s"
#: sphinx/themes/basic/layout.html:131
msgid "About these documents"
@@ -657,7 +653,7 @@ msgstr "O týchto dokumentoch"
#: sphinx/themes/basic/layout.html:140
msgid "Copyright"
-msgstr "Všetky práva vyhradené"
+msgstr "Copyright"
#: sphinx/themes/basic/layout.html:189
#, python-format
@@ -672,29 +668,27 @@ msgstr "&copy; Copyright %(copyright)s."
#: sphinx/themes/basic/layout.html:195
#, python-format
msgid "Last updated on %(last_updated)s."
-msgstr "Aktualizované dňa %(last_updated)s."
+msgstr "Naposledy aktualizované %(last_updated)s."
#: sphinx/themes/basic/layout.html:198
#, python-format
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Vytvorené pomocou <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Vytvorené pomocou <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
msgid "Search %(docstitle)s"
-msgstr "Prehľadať %(docstitle)s"
+msgstr "Hľadať v %(docstitle)s"
#: sphinx/themes/basic/relations.html:11
msgid "Previous topic"
-msgstr "Predchádzajúca téma"
+msgstr "Predošlá téma"
#: sphinx/themes/basic/relations.html:13
msgid "previous chapter"
-msgstr "predchádzajúca kapitola"
+msgstr "predošlá kapitola"
#: sphinx/themes/basic/relations.html:16
msgid "Next topic"
@@ -702,13 +696,13 @@ msgstr "Ďalšia téma"
#: sphinx/themes/basic/relations.html:18
msgid "next chapter"
-msgstr "dalšia kapitola"
+msgstr "ďalšia kapitola"
#: sphinx/themes/basic/search.html:27
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
+msgstr "Prosím, na zapnutie funkcie hľadania,aktivujte \n JavaScript ."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -716,31 +710,30 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Toto je vyhľadávacia stránka. Zadajte kľúčové slová a kliknete na "
-"\"hľadaj\". \n"
-"Vyhľadávanie hľadá automaticky všetky slová. Nebudú teda nájdené stránky "
-"obsahujúce menej slov."
+msgstr "Tu môžete hľadať v tejto dokumentácii. Zadajte hľadané slová\n do políčka nižšie a kliknite na \"hľadať\". Pamätajte, že funkcia\n hľadania bude automaticky hľadať všetky slová. Strany, ktoré\n obsahujú len niektoré zo slov, nebudú v zozname výsledkov."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
-msgstr "hľadaj"
+msgstr "hľadať"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
-msgstr "Výsledky vyhľadávania"
+msgstr "Výsledky hľadania"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Vášmu hľadaniu nezodpovedá žiadny dokument. Prosím, skontrolujte, že všetky zadané slová sú správne napísané a že ste zvolili vhodné kategórie."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
-msgstr "Rýchle vyhľadávanie"
+msgstr "Rýchle hľadanie"
#: sphinx/themes/basic/sourcelink.html:11
msgid "This Page"
@@ -764,11 +757,11 @@ msgstr "Automaticky generovaný zoznam zmien vo verzii %(version)s"
#: sphinx/themes/basic/changes/versionchanges.html:18
msgid "Library changes"
-msgstr "Zmeny v knižniciach"
+msgstr "Zmeny knižnice"
#: sphinx/themes/basic/changes/versionchanges.html:23
msgid "C API changes"
-msgstr "Zmeny API"
+msgstr "Zmeny C API"
#: sphinx/themes/basic/changes/versionchanges.html:25
msgid "Other changes"
@@ -785,38 +778,37 @@ msgstr "Trvalý odkaz na túto definíciu"
#: sphinx/themes/basic/static/doctools.js:177
msgid "Hide Search Matches"
-msgstr "Skryť výsledky vyhľadávania"
+msgstr "Skryť výsledky hľadania"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "hľadaj"
+msgstr "Hľadanie"
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
-msgstr ""
+msgstr "Príprava hľadania..."
#: sphinx/themes/basic/static/searchtools.js_t:285
#, python-format
msgid "Search finished, found %s page(s) matching the search query."
-msgstr ""
+msgstr "Hľadanie dokončené, nájdené %s strán(y), ktoré vyhovujú hľadanému výrazu."
#: sphinx/themes/basic/static/searchtools.js_t:337
msgid ", in "
-msgstr ""
+msgstr ", v "
#: sphinx/themes/default/static/sidebar.js_t:83
msgid "Expand sidebar"
-msgstr ""
+msgstr "Rozbaliť bočný panel"
#: sphinx/themes/default/static/sidebar.js_t:96
#: sphinx/themes/default/static/sidebar.js_t:124
msgid "Collapse sidebar"
-msgstr ""
+msgstr "Zbaliť bočný panel"
#: sphinx/themes/haiku/layout.html:26
msgid "Contents"
-msgstr ""
+msgstr "Obsah"
#: sphinx/writers/latex.py:189
msgid "Release"
@@ -825,23 +817,21 @@ msgstr "Vydanie"
#: sphinx/writers/latex.py:620 sphinx/writers/manpage.py:181
#: sphinx/writers/texinfo.py:612
msgid "Footnotes"
-msgstr ""
+msgstr "Poznámky pod čiarou"
#: sphinx/writers/latex.py:704
msgid "continued from previous page"
-msgstr ""
+msgstr "pokračovanie z predošlej strany"
#: sphinx/writers/latex.py:710
-#, fuzzy
msgid "Continued on next page"
-msgstr "Celý index na jednej stránke"
+msgstr "Pokračovanie na ďalšej strane"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
msgstr "[obrázok: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[obrázok]"
-
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.js b/sphinx/locale/sl/LC_MESSAGES/sphinx.js
index c79265af..3ec35d54 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "sl", "plural_expr": "0", "messages": {"Hide Search Matches": "Skrij resultate iskanja", "Permalink to this definition": "Povezava na to definicijo", "Permalink to this headline": "Povezava na naslov"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "sl", "plural_expr": "(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)", "messages": {"Next topic": "Naslednja tema", "Index": "Abecedni seznam", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Vse pravice pridr\u017eane", "C API changes": "C API spremembe", "quick access to all modules": "hiter dostop do vseh modulov", "&copy; Copyright %(copyright)s.": "&copy; Vse pravice pridr\u017eane %(copyright)s.", "Global Module Index": "Splo\u0161en seznam modulov", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Seznam &ndash; %(key)s", "General Index": "Splo\u0161ni abecedni seznam", "next chapter": "naslednje poglavje", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "prej\u0161nje poglavje", "Permalink to this headline": "Povezava na naslov", "About these documents": "O dokumentih", "Preparing search...": "", ", in ": "", "Navigation": "Navigacija", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "Popoln Seznam Vsebine", "Contents": "", "can be huge": "lahko je veliko", "Changes in Version %(version)s &mdash; %(docstitle)s": "Spremembe v Verziji %(version)s &mdash; %(docstitle)s", "Other changes": "Ostale spremembe", "Hide Search Matches": "Skrij resultate iskanja", "Quick search": "Hitro iskanje", "Show Source": "Prika\u017ei izvorno kodo", "Search": "I\u0161\u010di", "This Page": "Trenutna stran", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Tukaj lahko i\u0161\u010dete dokumente. Vnesite iskalni\n niz v polje spodaj in pritisnite \"i\u0161\u010di\". Spro\u017eeno iskanje\n bo iskalo po vseh besedah v iskalnem nizu. Strani, ki ne\n vsebujejo vseh besed ne bodo prikazane na seznamu rezultatov.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Narejeno s <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "", "Go": "Potrdi", "Table Of Contents": "Seznam Vsebine", "Search within %(docstitle)s": "I\u0161\u010di med %(docstitle)s", "all functions, classes, terms": "vse funkcije, razredi, izrazi", "Please activate JavaScript to enable the search\n functionality.": "Za pravilno delovanje Iskanja morete vklopiti\n JavaScript.", "Indices and tables:": "Kazalo in seznami:", "lists all sections and subsections": "prikazi vse sekcije in podsekcije", "Index pages by letter": "Indeksiraj strani po \u010drki", "search": "i\u0161\u010di", "Permalink to this definition": "Povezava na to definicijo", "Previous topic": "Prej\u0161nja tema", "Overview": "Pregled", "Last updated on %(last_updated)s.": "Zadnji\u010d posodobljeno %(last_updated)s.", "Searching": "", "search this documentation": "i\u0161\u010di po dokumentaciji", "Automatically generated list of changes in version %(version)s": "Avtomatsko generiran seznam sprememb v verziji %(version)s", "Full index on one page": "Poln indeks na eni strani", "Enter search terms or a module, class or function name.": "Vnesi ime modula, razreda ali funkcije.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Vse pravice pridr\u017eane</a> %(copyright)s.", "Library changes": "Spremembe knji\u017enice", "Search Page": "Iskalnik", "Search Results": "Rezultati Iskanja"}}); \ No newline at end of file
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.mo b/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
index 3dcfe799..0faa2e37 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 181ac8ae..6d9f5126 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.po
@@ -1,20 +1,22 @@
-# Slovenian translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-09-21 10:14+0200\n"
-"Last-Translator: Luka Marinko <luka.marinko@simt.si>\n"
-"Language-Team: Rok Garbas <rok.garbas@gmail.com>\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"PO-Revision-Date: 2013-04-02 15:38+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Slovenian (http://www.transifex.com/projects/p/sphinx-1/language/sl/)\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"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#: sphinx/config.py:81
#, python-format
@@ -88,9 +90,8 @@ msgid "Module author: "
msgstr "Avtor modula: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Avtor modula: "
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -101,7 +102,8 @@ msgstr "Avtor: "
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametri"
@@ -158,9 +160,8 @@ msgid "type"
msgstr "tip"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Spremenljivka"
+msgstr ""
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
@@ -217,9 +218,8 @@ msgid "%s (%s attribute)"
msgstr "%s (%s atribut)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Parametri"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -230,9 +230,8 @@ msgid "attribute"
msgstr "atribut"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Spremenljivka"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -280,14 +279,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s statična metoda)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s metoda)"
+msgstr ""
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s metoda)"
+msgstr ""
#: sphinx/domains/python.py:353
#, python-format
@@ -300,9 +299,8 @@ msgid "%s (module)"
msgstr "%s (modul)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Seznam modulov"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -447,9 +445,9 @@ msgid "Todo"
msgstr "Todo"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(<<Originalen vnos>> se nahaja v %s, v vrstici %d.)"
+msgstr ""
#: sphinx/ext/todo.py:119
msgid "original entry"
@@ -460,9 +458,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "modul"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -584,9 +581,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "išči po dokumentaciji"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -677,9 +673,7 @@ msgstr "Zadnjič posodobljeno %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Narejeno s <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Narejeno s <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -706,9 +700,7 @@ msgstr "naslednje poglavje"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Za pravilno delovanje Iskanja morete vklopiti\n"
-" JavaScript."
+msgstr "Za pravilno delovanje Iskanja morete vklopiti\n JavaScript."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -716,26 +708,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Tukaj lahko iščete dokumente. Vnesite iskalni\n"
-" niz v polje spodaj in pritisnite \"išči\". Sproženo iskanje\n"
-" bo iskalo po vseh besedah v iskalnem nizu. Strani, ki ne\n"
-" vsebujejo vseh besed ne bodo prikazane na seznamu rezultatov."
+msgstr "Tukaj lahko iščete dokumente. Vnesite iskalni\n niz v polje spodaj in pritisnite \"išči\". Sproženo iskanje\n bo iskalo po vseh besedah v iskalnem nizu. Strani, ki ne\n vsebujejo vseh besed ne bodo prikazane na seznamu rezultatov."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "išči"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Rezultati Iskanja"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -788,9 +779,8 @@ msgid "Hide Search Matches"
msgstr "Skrij resultate iskanja"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "išči"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -836,11 +826,10 @@ msgid "Continued on next page"
msgstr "Nadaljevanje na naslednji strani"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[slika: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[slika]"
-
diff --git a/sphinx/locale/sv/LC_MESSAGES/sphinx.js b/sphinx/locale/sv/LC_MESSAGES/sphinx.js
index fa24a121..460f0806 100644
--- a/sphinx/locale/sv/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/sv/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "sv", "plural_expr": "(n != 1)", "messages": {"Hide Search Matches": "D\u00f6lj S\u00f6kresultat", "Permalink to this definition": "Permalink till denna definition", "Permalink to this headline": "Permalink till denna rubrik"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "sv", "plural_expr": "(n != 1)", "messages": {"Next topic": "N\u00e4sta titel", "Index": "Index", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "Copyright", "C API changes": "F\u00f6r\u00e4ndringar i C-API", "quick access to all modules": "genv\u00e4g till alla moduler", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Global Modulindex", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "Index &ndash; %(key)s", "General Index": "Huvudindex", "next chapter": "N\u00e4sta kapitel", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "F\u00f6reg\u00e5ende kapitel", "Permalink to this headline": "Permalink till denna rubrik", "About these documents": "Om dessa dokument", "Preparing search...": "", ", in ": "", "Navigation": "Navigation", "Expand sidebar": "Expandera sidolist", "the documentation for": "", "Complete Table of Contents": "Komplett Inneh\u00e5llsf\u00f6rteckning", "Contents": "Inneh\u00e5ll", "can be huge": "kan bli stort", "Changes in Version %(version)s &mdash; %(docstitle)s": "F\u00f6r\u00e4ndringar i Version %(version)s &mdash; %(docstitle)s", "Other changes": "\u00d6vriga f\u00f6r\u00e4ndringar", "Hide Search Matches": "D\u00f6lj S\u00f6kresultat", "Quick search": "Snabbs\u00f6k", "Show Source": "Visa k\u00e4llfil", "Search": "S\u00f6k", "This Page": "Denna Sida", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "H\u00e4r kan du s\u00f6ka bland dessa dokument. Ange s\u00f6kord nedan och klicka \"s\u00f6k\".\n S\u00f6kningen m\u00e5ste tr\u00e4ffa p\u00e5 samtliga angivna s\u00f6kord.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Skapad med <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "D\u00f6lj sidolist", "Go": "G\u00e5", "Table Of Contents": "Inneh\u00e5llsf\u00f6rteckning", "Search within %(docstitle)s": "S\u00f6k bland %(docstitle)s", "all functions, classes, terms": "alla funktioner, klasser, villkor", "Please activate JavaScript to enable the search\n functionality.": "Var god aktivera JavaScript f\u00f6r s\u00f6kfunktionalitet.", "Indices and tables:": "Index och tabeller", "lists all sections and subsections": "lista \u00f6ver alla paragrafer och underparagrafer", "Index pages by letter": "Inneh\u00e5llsf\u00f6rteckning per inledande bokstav", "search": "s\u00f6k", "Permalink to this definition": "Permalink till denna definition", "Previous topic": "F\u00f6reg\u00e5ende titel", "Overview": "\u00d6versikt", "Last updated on %(last_updated)s.": "Senast uppdaterad %(last_updated)s.", "Searching": "", "search this documentation": "s\u00f6k i det h\u00e4r dokumentet", "Automatically generated list of changes in version %(version)s": "Automatiskt genererad lista \u00f6ver f\u00f6r\u00e4ndringar i version %(version)s", "Full index on one page": "Hela inneh\u00e5llsf\u00f6rteckningen p\u00e5 en sida", "Enter search terms or a module, class or function name.": "Ange s\u00f6kord eller modul-, klass- eller funktionsnamn.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "F\u00f6r\u00e4ndringar i bibliotek", "Search Page": "S\u00f6ksida", "Search Results": "S\u00f6kresultat"}}); \ No newline at end of file
diff --git a/sphinx/locale/sv/LC_MESSAGES/sphinx.mo b/sphinx/locale/sv/LC_MESSAGES/sphinx.mo
index 932c4093..e465eba3 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 6779c77c..9c4d3aaa 100644
--- a/sphinx/locale/sv/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sv/LC_MESSAGES/sphinx.po
@@ -1,20 +1,22 @@
-# Swedish translations for Sphinx.
-# Copyright (C) 2011 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-09-21 10:14+0200\n"
-"Last-Translator: Henrik Holmboe <henrik@holmboe.se>\n"
-"Language-Team: \n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2013-04-02 15:39+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/sphinx-1/language/sv/)\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"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -100,7 +102,8 @@ msgstr "Upphovsman:"
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametrar"
@@ -328,9 +331,8 @@ msgid "module"
msgstr "modul"
#: sphinx/domains/python.py:696
-#, fuzzy
msgid " (deprecated)"
-msgstr " (ersatt)"
+msgstr ""
#: sphinx/domains/rst.py:53
#, python-format
@@ -579,9 +581,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "sök i det här dokumentet"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -672,9 +673,7 @@ msgstr "Senast uppdaterad %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Skapad med <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
-"%(sphinx_version)s."
+msgstr "Skapad med <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -709,25 +708,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Här kan du söka bland dessa dokument. Ange sökord nedan och klicka "
-"\"sök\".\n"
-" Sökningen måste träffa på samtliga angivna sökord."
+msgstr "Här kan du söka bland dessa dokument. Ange sökord nedan och klicka \"sök\".\n Sökningen måste träffa på samtliga angivna sökord."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "sök"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Sökresultat"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -780,9 +779,8 @@ msgid "Hide Search Matches"
msgstr "Dölj Sökresultat"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "sök"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -828,11 +826,10 @@ msgid "Continued on next page"
msgstr "Fortsätter på nästa sida"
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[image: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[image]"
-
diff --git a/sphinx/locale/tr/LC_MESSAGES/sphinx.js b/sphinx/locale/tr/LC_MESSAGES/sphinx.js
index 5a93444c..e421a77c 100644
--- a/sphinx/locale/tr/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/tr/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "tr", "plural_expr": "(n > 1)", "messages": {"Hide Search Matches": "Arama Sonu\u00e7lar\u0131n\u0131 Gizle", "Permalink to this definition": "Bu tan\u0131m\u0131n kal\u0131c\u0131 ba\u011flant\u0131s\u0131", "Permalink to this headline": "Bu ba\u015fl\u0131\u011f\u0131n kal\u0131c\u0131 ba\u011flant\u0131s\u0131"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "tr", "plural_expr": "(n > 1)", "messages": {"Next topic": "Sonraki konu", "Index": "Dizin", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "Ho\u015fgeldiniz! Kar\u015f\u0131n\u0131zda", "Copyright": "Copyright", "C API changes": "C API'sindeki de\u011fi\u015fiklikler", "quick access to all modules": "b\u00fct\u00fcn mod\u00fcllere h\u0131zl\u0131 eri\u015fim", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "Global Mod\u00fcl Dizini", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Arama sonucunda herhangi bir belge bulunamad\u0131. B\u00fct\u00fcn kelimeleri do\u011fru yazd\u0131\u011f\u0131n\u0131zdan ve gerekli b\u00fct\u00fcn kategorileri se\u00e7ti\u011finizden emin olun.", "Index &ndash; %(key)s": "Dizin &ndash; %(key)s", "General Index": "Genel Dizin", "next chapter": "sonraki b\u00f6l\u00fcm", "Search finished, found %s page(s) matching the search query.": "Arama tamamland\u0131. Sorguyu i\u00e7eren %s sayfa bulundu.", "previous chapter": "\u00f6nceki b\u00f6l\u00fcm", "Permalink to this headline": "Bu ba\u015fl\u0131\u011f\u0131n kal\u0131c\u0131 ba\u011flant\u0131s\u0131", "About these documents": "Bu belgeler hakk\u0131nda", "Preparing search...": "Aramaya haz\u0131rlan\u0131yor...", ", in ": ", \u015funun i\u00e7inde:", "Navigation": "Gezinti", "Expand sidebar": "Yan \u00e7ubu\u011fu geni\u015flet", "the documentation for": "belgelendirme konusu: ", "Complete Table of Contents": "Ayr\u0131nt\u0131l\u0131 \u0130\u00e7indekiler Tablosu", "Contents": "\u0130\u00e7indekiler", "can be huge": "\u00e7ok b\u00fcy\u00fck olabilir", "Changes in Version %(version)s &mdash; %(docstitle)s": "S\u00fcr\u00fcm %(version)s &mdash; %(docstitle)s i\u00e7indeki De\u011fi\u015fiklikler", "Other changes": "Di\u011fer de\u011fi\u015fiklikler", "Hide Search Matches": "Arama Sonu\u00e7lar\u0131n\u0131 Gizle", "Quick search": "H\u0131zl\u0131 Arama", "Show Source": "Kayna\u011f\u0131 G\u00f6ster", "Search": "Ara", "This Page": "Bu Sayfa", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "Burada belgeler i\u00e7inde arama yapabilirsiniz. Arad\u0131\u011f\u0131n\u0131z kelimeyi \na\u015fa\u011f\u0131daki kutuya yaz\u0131p \"ara\" d\u00fc\u011fmesine bas\u0131n\u0131z. Arama i\u015flevi \notomatik olarak b\u00fct\u00fcn kelimeleri arayacakt\u0131r. Eksik kelime i\u00e7eren \nsayfalar sonu\u00e7 listesinde g\u00f6r\u00fcnmez.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s ile olu\u015fturulmu\u015ftur.", "last updated": "son g\u00fcncelleme", "Collapse sidebar": "Yan \u00e7ubu\u011fu daralt", "Go": "Git", "Table Of Contents": "\u0130\u00e7indekiler Tablosu", "Search within %(docstitle)s": "%(docstitle)s i\u00e7inde ara", "all functions, classes, terms": "b\u00fct\u00fcn fonksiyonlar, s\u0131n\u0131flar, terimler", "Please activate JavaScript to enable the search\n functionality.": "Arama i\u015flevini kullanabilmek i\u00e7in l\u00fctfen JavaScript'i\n etkinle\u015ftirin.", "Indices and tables:": "Dizinler ve tablolar", "lists all sections and subsections": "b\u00fct\u00fcn b\u00f6l\u00fcmler ve alt b\u00f6l\u00fcmler listelenir", "Index pages by letter": "Harfe g\u00f6re dizin sayfalar\u0131", "search": "ara", "Permalink to this definition": "Bu tan\u0131m\u0131n kal\u0131c\u0131 ba\u011flant\u0131s\u0131", "Previous topic": "\u00d6nceki konu", "Overview": "Genel Bak\u0131\u015f", "Last updated on %(last_updated)s.": "Son g\u00fcncelleme: %(last_updated)s.", "Searching": "Aran\u0131yor", "search this documentation": "Bu belgelerde ara", "Automatically generated list of changes in version %(version)s": "%(version)s s\u00fcr\u00fcm\u00fcndeki de\u011fi\u015fikliklerin otomatik olarak \u00fcretilmi\u015f listesi", "Full index on one page": "B\u00fct\u00fcn dizin tek sayfada", "Enter search terms or a module, class or function name.": "Aranacak terimleri veya mod\u00fcl, s\u0131n\u0131f ya da fonksiyon ad\u0131n\u0131 yaz\u0131n\u0131z", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "K\u00fct\u00fcphane de\u011fi\u015fiklikleri", "Search Page": "Arama Sayfas\u0131", "Search Results": "Arama Sonu\u00e7lar\u0131"}}); \ No newline at end of file
diff --git a/sphinx/locale/tr/LC_MESSAGES/sphinx.mo b/sphinx/locale/tr/LC_MESSAGES/sphinx.mo
index 785b5699..545137cc 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 16eccc30..761b623f 100644
--- a/sphinx/locale/tr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/tr/LC_MESSAGES/sphinx.po
@@ -1,24 +1,24 @@
-# Turkish translations for Sphinx.
+# Translations template for Sphinx.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
# Translators:
-# Fırat Özgül <ozgulfirat@gmail.com>, 2013.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+# istihza <ozgulfirat@gmail.com>, 2013
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
"PO-Revision-Date: 2013-04-02 18:09+0000\n"
"Last-Translator: istihza <ozgulfirat@gmail.com>\n"
-"Language-Team: Turkish "
-"(http://www.transifex.com/projects/p/sphinx-1/language/tr/)\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/sphinx-1/language/tr/)\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"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: sphinx/config.py:81
#, python-format
@@ -104,7 +104,8 @@ msgstr "Yazan: "
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Parametreler"
@@ -674,9 +675,7 @@ msgstr "Son güncelleme: %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s ile "
-"oluşturulmuştur."
+msgstr "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s ile oluşturulmuştur."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -703,9 +702,7 @@ msgstr "sonraki bölüm"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Arama işlevini kullanabilmek için lütfen JavaScript'i\n"
-" etkinleştirin."
+msgstr "Arama işlevini kullanabilmek için lütfen JavaScript'i\n etkinleştirin."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -713,29 +710,26 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Burada belgeler içinde arama yapabilirsiniz. Aradığınız kelimeyi \n"
-"aşağıdaki kutuya yazıp \"ara\" düğmesine basınız. Arama işlevi \n"
-"otomatik olarak bütün kelimeleri arayacaktır. Eksik kelime içeren \n"
-"sayfalar sonuç listesinde görünmez."
+msgstr "Burada belgeler içinde arama yapabilirsiniz. Aradığınız kelimeyi \naşağıdaki kutuya yazıp \"ara\" düğmesine basınız. Arama işlevi \notomatik olarak bütün kelimeleri arayacaktır. Eksik kelime içeren \nsayfalar sonuç listesinde görünmez."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "ara"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Arama Sonuçları"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-"Arama sonucunda herhangi bir belge bulunamadı. Bütün kelimeleri doğru "
-"yazdığınızdan ve gerekli bütün kategorileri seçtiğinizden emin olun."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Arama sonucunda herhangi bir belge bulunamadı. Bütün kelimeleri doğru yazdığınızdan ve gerekli bütün kategorileri seçtiğinizden emin olun."
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
@@ -841,4 +835,3 @@ msgstr "[resim: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[resim]"
-
diff --git a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js
index 25078c55..7800cab4 100644
--- a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "uk_UA", "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": "\u041f\u0440\u0438\u0445\u043e\u0432\u0430\u0442\u0438 \u0441\u043f\u0456\u0432\u043f\u0430\u0434\u0456\u043d\u043d\u044f \u043f\u043e\u0448\u0443\u043a\u0443", "Permalink to this definition": "\u041f\u043e\u0441\u0442\u0456\u0439\u043d\u0435 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0446\u0435 \u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f", "Permalink to this headline": "\u041f\u043e\u0441\u0442\u0456\u0439\u043d\u0435 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0446\u0435\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "uk_UA", "plural_expr": "(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Next topic": "\u041d\u0430\u0441\u0442\u0443\u043f\u043d\u0430 \u0442\u0435\u043c\u0430", "Index": "\u0406\u043d\u0434\u0435\u043a\u0441", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "", "Copyright": "\u0410\u0432\u0442\u043e\u0440\u0441\u044c\u043a\u0456 \u043f\u0440\u0430\u0432\u0430", "C API changes": "\u0437\u043c\u0456\u043d\u0438 C API", "quick access to all modules": "\u0448\u0432\u0438\u0434\u043a\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0432\u0441\u0456\u0445 \u043c\u043e\u0434\u0443\u043b\u0456\u0432", "&copy; Copyright %(copyright)s.": "&copy; Copyright %(copyright)s.", "Global Module Index": "\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0434\u0435\u043a\u0441 \u043c\u043e\u0434\u0443\u043b\u0456\u0432", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "\u0406\u043d\u0434\u0435\u043a\u0441 &ndash; %(key)s", "General Index": "\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0434\u0435\u043a\u0441", "next chapter": "\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u0439 \u0440\u043e\u0437\u0434\u0456\u043b", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u0440\u043e\u0437\u0434\u0456\u043b", "Permalink to this headline": "\u041f\u043e\u0441\u0442\u0456\u0439\u043d\u0435 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0446\u0435\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", "About these documents": "\u041f\u0440\u043e \u0446\u0456 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438", "Preparing search...": "", ", in ": "", "Navigation": "\u041d\u0430\u0432\u0456\u0433\u0430\u0446\u0456\u044f", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "\u041f\u043e\u0432\u043d\u0438\u0439 \u0417\u043c\u0456\u0441\u0442", "Contents": "", "can be huge": "\u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0432\u0435\u043b\u0438\u0447\u0435\u0437\u043d\u0438\u043c", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u0417\u043c\u0456\u043d\u0438 \u0432 \u0412\u0435\u0440\u0441\u0456\u0457 %(version)s &mdash; %(docstitle)s", "Other changes": "\u0406\u043d\u0448\u0456 \u0437\u043c\u0456\u043d\u0438", "Hide Search Matches": "\u041f\u0440\u0438\u0445\u043e\u0432\u0430\u0442\u0438 \u0441\u043f\u0456\u0432\u043f\u0430\u0434\u0456\u043d\u043d\u044f \u043f\u043e\u0448\u0443\u043a\u0443", "Quick search": "\u0428\u0432\u0438\u0434\u043a\u0438\u0439 \u043f\u043e\u0448\u0443\u043a", "Show Source": "\u0412\u0456\u0434\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0438 \u0432\u0438\u0445\u0456\u0434\u043d\u0438\u0439 \u0442\u0435\u043a\u0441\u0442", "Search": "\u041f\u043e\u0448\u0443\u043a", "This Page": "\u0426\u044f \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u0417\u0432\u0456\u0434\u0441\u0438 \u0432\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0448\u0443\u043a\u0430\u0442\u0438 \u0446\u0456 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438. \u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0432\u0430\u0448\u0456 \u043f\u043e\u0448\u0443\u043a\u043e\u0432\u0456\n \u0441\u043b\u043e\u0432\u0430 \u0432 \u043f\u043e\u043b\u0435 \u043d\u0438\u0436\u0447\u0435 \u0442\u0430 \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \"\u043f\u043e\u0448\u0443\u043a\". \u0417\u0430\u0443\u0432\u0430\u0436\u0442\u0435 \u0449\u043e \u0444\u0443\u043d\u043a\u0446\u0456\u044f\n \u043f\u043e\u0448\u0443\u043a\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0448\u0443\u043a\u0430\u0442\u0438\u043c\u0435 \u0437\u0430 \u0432\u0441\u0456\u043c\u0430 \u0441\u043b\u043e\u0432\u0430\u043c\u0438. \u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0438\n \u0449\u043e \u043c\u0456\u0441\u0442\u044f\u0442\u044c \u043c\u0435\u043d\u0448\u0435 \u0441\u043b\u0456\u0432 \u043d\u0435 \u0437'\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0443\u044e\u0447\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u0421\u0442\u0432\u043e\u0440\u0435\u043d\u043e \u0437 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f\u043c <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.", "last updated": "", "Collapse sidebar": "", "Go": "\u0412\u043f\u0435\u0440\u0435\u0434", "Table Of Contents": "\u0417\u043c\u0456\u0441\u0442", "Search within %(docstitle)s": "\u0428\u0443\u043a\u0430\u0442\u0438 \u0432 %(docstitle)s", "all functions, classes, terms": "\u0432\u0441\u0456 \u0444\u0443\u043d\u043a\u0446\u0456\u0457, \u043a\u043b\u0430\u0441\u0438, \u0442\u0435\u0440\u043c\u0456\u043d\u0438", "Please activate JavaScript to enable the search\n functionality.": "\u0411\u0443\u0434\u044c-\u043b\u0430\u0441\u043a\u0430 \u0432\u0456\u043c\u043a\u043d\u0456\u0442\u044c \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0443 JavaScript, \u0449\u043e\u0431 \u0432\u0432\u0456\u043a\u043d\u0443\u0442\u0438\n\"\n\" \u043f\u043e\u0448\u0443\u043a.", "Indices and tables:": "\u0406\u043d\u0434\u0435\u043a\u0441\u0438 \u0442\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0456:", "lists all sections and subsections": "\u043f\u0435\u0440\u0435\u043b\u0456\u0447\u0438\u0442\u0438 \u0432\u0441\u0456 \u0441\u0435\u043a\u0446\u0456\u0457 \u0442\u0430 \u043f\u0456\u0434\u0441\u0435\u043a\u0446\u0456\u0457", "Index pages by letter": "\u0406\u043d\u0434\u0435\u043a\u0441\u043d\u0456 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438 \u043f\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c", "search": "\u043f\u043e\u0448\u0443\u043a", "Permalink to this definition": "\u041f\u043e\u0441\u0442\u0456\u0439\u043d\u0435 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0446\u0435 \u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f", "Previous topic": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u0440\u043e\u0437\u0434\u0456\u043b", "Overview": "\u041e\u0433\u043b\u044f\u0434", "Last updated on %(last_updated)s.": "\u0412\u043e\u0441\u0442\u0430\u043d\u043d\u0454 \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043e %(last_updated)s.", "Searching": "", "search this documentation": "\u0448\u0443\u043a\u0430\u0442\u0438 \u0446\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0456\u044e", "Automatically generated list of changes in version %(version)s": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0437\u0433\u0435\u043d\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u043c\u0456\u043d \u0432 \u0432\u0435\u0440\u0441\u0456\u0457 %(version)s", "Full index on one page": "\u041f\u043e\u0432\u043d\u0438\u0439 \u0456\u043d\u0434\u0435\u043a\u0441 \u043d\u0430 \u043e\u0434\u043d\u0456\u0439 \u0441\u0442\u043e\u0440\u0456\u043d\u0446\u0456", "Enter search terms or a module, class or function name.": "\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u043f\u043e\u0448\u0443\u043a\u043e\u0432\u0438\u0439 \u0442\u0435\u0440\u043c\u0456\u043d, \u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043b\u0430\u0441 \u0447\u0438 \u043d\u0430\u0437\u0432\u0443 \u0444\u0443\u043d\u043a\u0446\u0456\u0457.", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.", "Library changes": "\u0417\u043c\u0456\u043d\u0438 \u0432 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u0446\u0456", "Search Page": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043f\u043e\u0448\u0443\u043a\u0443", "Search Results": "\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0438 \u043f\u043e\u0448\u0443\u043a\u0443"}}); \ No newline at end of file
diff --git a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo
index 08779a63..3e701b04 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 bc7c5457..70b3109e 100644
--- a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
@@ -1,22 +1,23 @@
-# Ukrainian (Ukraine) translations for Sphinx.
-# Copyright (C) 2009 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# Petro Sasnyk <petro@sasnyk.name>, 2009.
-#
+#
+# Translators:
+# Petro Sasnyk <petro@sasnyk.name>, 2009
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.6\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-09-21 10:15+0200\n"
-"Last-Translator: Petro Sasnyk <petro@sasnyk.name>\n"
-"Language-Team: uk_UA <LL@li.org>\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"PO-Revision-Date: 2013-04-02 15:39+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Ukrainian (Ukraine) (http://www.transifex.com/projects/p/sphinx-1/language/uk_UA/)\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"
+"Language: uk_UA\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"
#: sphinx/config.py:81
#, python-format
@@ -29,9 +30,9 @@ msgid "see %s"
msgstr ""
#: sphinx/environment.py:1513
-#, fuzzy, python-format
+#, python-format
msgid "see also %s"
-msgstr "дивись також %s"
+msgstr ""
#: sphinx/environment.py:1570
msgid "Symbols"
@@ -90,9 +91,8 @@ msgid "Module author: "
msgstr "Автор модуля: "
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "Автор модуля: "
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -103,7 +103,8 @@ msgstr "Автор: "
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "Параметри"
@@ -160,9 +161,8 @@ msgid "type"
msgstr "тип"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "Змінна"
+msgstr ""
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
@@ -219,9 +219,8 @@ msgid "%s (%s attribute)"
msgstr "%s (%s атрибут)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "Параметри"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -232,9 +231,8 @@ msgid "attribute"
msgstr "атрибут"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "Змінна"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -282,14 +280,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s статичний метод)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s метод)"
+msgstr ""
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s метод)"
+msgstr ""
#: sphinx/domains/python.py:353
#, python-format
@@ -302,9 +300,8 @@ msgid "%s (module)"
msgstr "%s (модуль)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "Індекс модулів"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -449,9 +446,9 @@ msgid "Todo"
msgstr "Доробити"
#: sphinx/ext/todo.py:110
-#, fuzzy, python-format
+#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr "(Початкове входження знаходиться в %s, рядок %d.)"
+msgstr ""
#: sphinx/ext/todo.py:119
msgid "original entry"
@@ -462,9 +459,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "модуль"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -586,9 +582,8 @@ msgid "Welcome! This is"
msgstr ""
#: sphinx/themes/basic/defindex.html:16
-#, fuzzy
msgid "the documentation for"
-msgstr "шукати цю документацію"
+msgstr ""
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
@@ -679,9 +674,7 @@ msgstr "Востаннє оновлено %(last_updated)s."
msgid ""
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
-"Створено з використанням <a href=\"http://sphinx-doc.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
@@ -708,10 +701,7 @@ msgstr "наступний розділ"
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
-"Будь-ласка вімкніть підтримку JavaScript, щоб ввікнути\n"
-"\"\n"
-"\" пошук."
+msgstr "Будь-ласка вімкніть підтримку JavaScript, щоб ввікнути\n\"\n\" пошук."
#: sphinx/themes/basic/search.html:32
msgid ""
@@ -719,26 +709,25 @@ msgid ""
" words into the box below and click \"search\". Note that the search\n"
" function will automatically search for all of the words. Pages\n"
" containing fewer words won't appear in the result list."
-msgstr ""
-"Звідси ви можете шукати ці документи. Введіть ваші пошукові\n"
-" слова в поле нижче та натисніть \"пошук\". Зауважте що функція\n"
-" пошуку автоматично шукатиме за всіма словами. Сторінки\n"
-" що містять менше слів не з'являться в результуючому списку."
+msgstr "Звідси ви можете шукати ці документи. Введіть ваші пошукові\n слова в поле нижче та натисніть \"пошук\". Зауважте що функція\n пошуку автоматично шукатиме за всіма словами. Сторінки\n що містять менше слів не з'являться в результуючому списку."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "пошук"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "Результати пошуку"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -791,9 +780,8 @@ msgid "Hide Search Matches"
msgstr "Приховати співпадіння пошуку"
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "пошук"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -835,9 +823,8 @@ msgid "continued from previous page"
msgstr ""
#: sphinx/writers/latex.py:710
-#, fuzzy
msgid "Continued on next page"
-msgstr "Повний індекс на одній сторінці"
+msgstr ""
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
#, python-format
@@ -847,4 +834,3 @@ msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr ""
-
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js
index 86602153..d68c834c 100644
--- a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "zh_CN", "plural_expr": "0", "messages": {"Hide Search Matches": "\u9690\u85cf\u641c\u7d22\u7ed3\u679c", "Permalink to this definition": "\u6c38\u4e45\u94fe\u63a5\u81f3\u76ee\u6807", "Permalink to this headline": "\u6c38\u4e45\u94fe\u63a5\u81f3\u6807\u9898"}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "zh_Hans_CN", "plural_expr": "0", "messages": {"Next topic": "\u4e0b\u4e00\u4e2a\u4e3b\u9898", "Index": "\u7d22\u5f15", "%(filename)s &mdash; %(docstitle)s": "%(filename)s &mdash; %(docstitle)s", "Welcome! This is": "\u6b22\u8fce\uff01\u8fd9\u662f", "Copyright": "\u7248\u6743\u6240\u6709", "C API changes": "C API \u66f4\u6539", "quick access to all modules": "\u5feb\u901f\u67e5\u770b\u6240\u6709\u7684\u6a21\u5757", "&copy; Copyright %(copyright)s.": "&copy; \u7248\u6743\u6240\u6709 %(copyright)s.", "Global Module Index": "\u5168\u5c40\u6a21\u5757\u7d22\u5f15", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u6ca1\u6709\u4efb\u4f55\u6587\u6863\u5339\u914d\u60a8\u7684\u641c\u7d22\u3002\u8bf7\u786e\u4fdd\u4f60\u8f93\u5165\u7684\u8bcd\u62fc\u5199\u6b63\u786e\u5e76\u9009\u62e9\u4e86\u5408\u9002\u7684\u5206\u7c7b\u3002", "Index &ndash; %(key)s": "\u7d22\u5f15 &ndash; %(key)s", "General Index": "\u603b\u76ee\u5f55", "next chapter": "\u4e0b\u4e00\u7ae0", "Search finished, found %s page(s) matching the search query.": "\u641c\u7d22\u5b8c\u6210\uff0c\u6709 %s \u4e2a\u9875\u9762\u5339\u914d\u3002", "previous chapter": "\u4e0a\u4e00\u7ae0", "Permalink to this headline": "\u6c38\u4e45\u94fe\u63a5\u81f3\u6807\u9898", "About these documents": "\u5173\u4e8e\u8fd9\u4e9b\u6587\u6863", "Preparing search...": "\u51c6\u5907\u641c\u7d22\u2026\u2026", ", in ": "\uff0c\u5728", "Navigation": "\u5bfc\u822a", "Expand sidebar": "\u5c55\u5f00\u8fb9\u680f", "the documentation for": "\u8fd9\u4efd\u6587\u6863\u662f", "Complete Table of Contents": "\u5b8c\u6574\u7684\u5185\u5bb9\u8868", "Contents": "\u76ee\u5f55", "can be huge": "\u53ef\u80fd\u4f1a\u5f88\u591a", "Changes in Version %(version)s &mdash; %(docstitle)s": "\u66f4\u6539\u53d1\u751f\u5728\u7248\u672c %(version)s &mdash; %(docstitle)s", "Other changes": "\u5176\u4ed6\u66f4\u6539", "Hide Search Matches": "\u9690\u85cf\u641c\u7d22\u7ed3\u679c", "Quick search": "\u5feb\u901f\u641c\u7d22", "Show Source": "\u663e\u793a\u6e90\u4ee3\u7801", "Search": "\u641c\u7d22", "This Page": "\u672c\u9875", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "\u5728\u8fd9\u513f\uff0c\u4f60\u53ef\u4ee5\u5bf9\u8fd9\u4e9b\u6587\u6863\u8fdb\u884c\u641c\u7d22\u3002\u5411\u641c\u7d22\u6846\u4e2d\u8f93\u5165\u4f60\u6240\u8981\u641c\u7d22\u7684\u5173\u952e\u5b57\u5e76\u70b9\u51fb\u201c\u641c\u7d22\u201d\u3002\u6ce8\u610f\uff1a\u641c\u7d22\u5f15\u64ce\u4f1a\u81ea\u52a8\u641c\u7d22\u6240\u6709\u7684\u5173\u952e\u5b57\u3002\u5c06\u4e0d\u4f1a\u641c\u7d22\u5230\u90e8\u5206\u5173\u952e\u5b57\u7684\u9875\u9762.", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u7531 <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u521b\u5efa\u3002", "last updated": "\u6700\u540e\u66f4\u65b0\u4e8e", "Collapse sidebar": "\u6298\u53e0\u8fb9\u680f", "Go": "\u8f6c\u5411", "Table Of Contents": "\u5167\u5bb9\u76ee\u5f55", "Search within %(docstitle)s": "\u5728 %(docstitle)s \u4e2d\u641c\u7d22", "all functions, classes, terms": "\u6240\u7684\u51fd\u6570\uff0c\u7c7b\uff0c\u672f\u8bed", "Please activate JavaScript to enable the search\n functionality.": "\u8bf7\u6fc0\u6d3b JavaScript \u4ee5\u5f00\u542f\u641c\u7d22\u529f\u80fd", "Indices and tables:": "\u7d22\u5f15\u548c\u8868\u683c\uff1a", "lists all sections and subsections": "\u5217\u51fa\u6240\u6709\u7684\u7ae0\u8282\u548c\u90e8\u5206", "Index pages by letter": "\u6309\u7167\u5b57\u6bcd\u7684\u7d22\u5f15\u9875", "search": "\u641c\u7d22", "Permalink to this definition": "\u6c38\u4e45\u94fe\u63a5\u81f3\u76ee\u6807", "Previous topic": "\u4e0a\u4e00\u4e2a\u4e3b\u9898", "Overview": "\u6982\u8ff0", "Last updated on %(last_updated)s.": "\u6700\u540e\u66f4\u65b0\u4e8e %(last_updated)s.", "Searching": "\u641c\u7d22\u4e2d", "search this documentation": "\u641c\u7d22\u6587\u6863", "Automatically generated list of changes in version %(version)s": "\u81ea\u52a8\u751f\u6210\u7684 %(version)s \u7248\u672c\u4e2d\u7684\u66f4\u6539\u5217\u8868", "Full index on one page": "\u4e00\u9875\u7684\u5168\u90e8\u7d22\u5f15", "Enter search terms or a module, class or function name.": "\u8f93\u5165\u76f8\u5173\u7684\u672f\u8bed\uff0c\u6a21\u5757\uff0c\u7c7b\u6216\u8005\u51fd\u6570\u540d\u79f0\u8fdb\u884c\u641c\u7d22", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "&copy; <a href=\"%(path)s\">\u7248\u6743\u6240\u6709</a> %(copyright)s.", "Library changes": "\u5e93\u66f4\u6539", "Search Page": "\u641c\u7d22\u9875\u9762", "Search Results": "\u641c\u7d22\u7ed3\u679c"}}); \ No newline at end of file
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
index 62c317e6..a2aefe2c 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 38faef4e..6aeafa08 100644
--- a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
@@ -1,25 +1,26 @@
-# Chinese (China) translations for Sphinx.
+# Translations template for Sphinx.
# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-#
+#
# Translators:
-# Ryekee Zhong <ryekee@gmail.com>, 2013.
-# Tower Joo<zhutao.iscas@gmail.com>, 2009.
-# Yinian Sun <yinian1992@live.com>, 2013.
+# lenville <lenville@gmail.com>, 2013
+# Ryekee <ryekee@gmail.com>, 2013
+# Tower Joo<zhutao.iscas@gmail.com>, 2009
+# yinian1992 <yinian1992@live.com>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2013-04-05 12:21+0000\n"
-"Last-Translator: yinian1992 <yinian1992@live.com>\n"
-"Language-Team: Chinese (China) "
-"(http://www.transifex.com/projects/p/sphinx-1/language/zh_CN/)\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"PO-Revision-Date: 2013-04-24 09:49+0000\n"
+"Last-Translator: Ryekee <ryekee@gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/sphinx-1/language/zh_CN/)\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"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: sphinx/config.py:81
#, python-format
@@ -43,7 +44,7 @@ msgstr "符号"
#: sphinx/roles.py:175
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
-msgstr "Python 建议文件; PEP %s"
+msgstr "Python 提高建议; PEP %s"
#: sphinx/transforms.py:52 sphinx/writers/latex.py:202
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:217
@@ -105,7 +106,8 @@ msgstr "作者:"
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "参数"
@@ -225,7 +227,7 @@ msgstr "参数"
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
-msgstr "全局量"
+msgstr "数据"
#: sphinx/domains/javascript.py:167 sphinx/domains/python.py:567
msgid "attribute"
@@ -482,7 +484,7 @@ msgstr "注意"
#: sphinx/locale/__init__.py:156
msgid "Caution"
-msgstr "谨慎"
+msgstr "警告"
#: sphinx/locale/__init__.py:157
msgid "Danger"
@@ -712,20 +714,23 @@ msgid ""
" containing fewer words won't appear in the result list."
msgstr "在这儿,你可以对这些文档进行搜索。向搜索框中输入你所要搜索的关键字并点击“搜索”。注意:搜索引擎会自动搜索所有的关键字。将不会搜索到部分关键字的页面."
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "搜索"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "搜索结果"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr "没有任何文档匹配您的搜索。请确保你输入的词拼写正确并选择了合适的分类。"
#: sphinx/themes/basic/searchbox.html:12
@@ -832,4 +837,3 @@ msgstr "[图片: %s]"
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[图片]"
-
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js
index 82382e73..1616baeb 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js
@@ -1 +1 @@
-Documentation.addTranslations({"locale": "zh_TW", "plural_expr": "0", "messages": {"Hide Search Matches": "", "Permalink to this definition": "", "Permalink to this headline": ""}}); \ No newline at end of file
+Documentation.addTranslations({"locale": "zh_Hant_TW", "plural_expr": "0", "messages": {"Next topic": "\u4e0b\u4e00\u500b\u4e3b\u984c", "Index": "\u7d22\u5f15", "%(filename)s &mdash; %(docstitle)s": "", "Welcome! This is": "", "Copyright": "\u7248\u6b0a\u6240\u6709", "C API changes": "C API \u6539\u8b8a", "quick access to all modules": "", "&copy; Copyright %(copyright)s.": "", "Global Module Index": "", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "", "Index &ndash; %(key)s": "", "General Index": "\u7e3d\u7d22\u5f15", "next chapter": "\u4e0b\u4e00\u7ae0", "Search finished, found %s page(s) matching the search query.": "", "previous chapter": "\u4e0a\u4e00\u7ae0", "Permalink to this headline": "", "About these documents": "", "Preparing search...": "", ", in ": "", "Navigation": "\u700f\u89bd", "Expand sidebar": "", "the documentation for": "", "Complete Table of Contents": "", "Contents": "", "can be huge": "", "Changes in Version %(version)s &mdash; %(docstitle)s": "", "Other changes": "\u5176\u4ed6\u6539\u8b8a\uff1a", "Hide Search Matches": "", "Quick search": "\u5feb\u901f\u641c\u5c0b", "Show Source": "\u986f\u793a\u539f\u59cb\u78bc", "Search": "\u641c\u5c0b", "This Page": "\u672c\u9801", "From here you can search these documents. Enter your search\n words into the box below and click \"search\". Note that the search\n function will automatically search for all of the words. Pages\n containing fewer words won't appear in the result list.": "", "Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "", "last updated": "", "Collapse sidebar": "", "Go": "", "Table Of Contents": "\u5167\u5bb9\u76ee\u9304", "Search within %(docstitle)s": "\u5728 %(docstitle)s \u4e2d\u641c\u5c0b", "all functions, classes, terms": "", "Please activate JavaScript to enable the search\n functionality.": "", "Indices and tables:": "", "lists all sections and subsections": "", "Index pages by letter": "", "search": "\u641c\u5c0b", "Permalink to this definition": "", "Previous topic": "\u4e0a\u4e00\u500b\u4e3b\u984c", "Overview": "", "Last updated on %(last_updated)s.": "\u6700\u5f8c\u66f4\u65b0\u65e5\u671f\u662f %(last_updated)s.", "Searching": "", "search this documentation": "", "Automatically generated list of changes in version %(version)s": "", "Full index on one page": "", "Enter search terms or a module, class or function name.": "", "&copy; <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "", "Library changes": "", "Search Page": "\u641c\u5c0b\u9801\u9762", "Search Results": "\u641c\u5c0b\u7d50\u679c"}}); \ No newline at end of file
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
index 13622db4..8800efd8 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 14cfaaa5..09cc0bf0 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
@@ -1,21 +1,23 @@
-# Chinese (Taiwan) translations for Sphinx.
-# Copyright (C) 2008 ORGANIZATION
+# Translations template for Sphinx.
+# Copyright (C) 2013 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# Fred Lin <gasolin@gmail.com>, 2008.
-#
+#
+# Translators:
+# Fred Lin <gasolin@gmail.com>, 2008
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 0.5\n"
+"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2013-04-02 10:33+0200\n"
-"PO-Revision-Date: 2011-01-22 14:41+0100\n"
-"Last-Translator: Fred Lin <gasolin@gmail.com>\n"
-"Language-Team: tw <LL@li.org>\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"PO-Revision-Date: 2013-04-02 15:42+0000\n"
+"Last-Translator: birkenfeld <g.brandl@gmx.net>\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/sphinx-1/language/zh_TW/)\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"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#: sphinx/config.py:81
#, python-format
@@ -37,9 +39,9 @@ msgid "Symbols"
msgstr ""
#: sphinx/roles.py:175
-#, fuzzy, python-format
+#, python-format
msgid "Python Enhancement Proposals; PEP %s"
-msgstr "Python 建議文件; PEP %s"
+msgstr ""
#: sphinx/transforms.py:52 sphinx/writers/latex.py:202
#: sphinx/writers/manpage.py:67 sphinx/writers/texinfo.py:217
@@ -89,9 +91,8 @@ msgid "Module author: "
msgstr "模組作者:"
#: sphinx/directives/other.py:142
-#, fuzzy
msgid "Code author: "
-msgstr "模組作者:"
+msgstr ""
#: sphinx/directives/other.py:144
msgid "Author: "
@@ -102,7 +103,8 @@ msgstr "作者:"
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939 sphinx/domains/python.py:95
+#: sphinx/domains/c.py:51 sphinx/domains/cpp.py:939
+#: sphinx/domains/python.py:95
msgid "Parameters"
msgstr "參數"
@@ -159,18 +161,17 @@ msgid "type"
msgstr "類別"
#: sphinx/domains/c.py:207
-#, fuzzy
msgid "variable"
-msgstr "變數"
+msgstr ""
#: sphinx/domains/cpp.py:942 sphinx/domains/javascript.py:125
msgid "Throws"
msgstr ""
#: sphinx/domains/cpp.py:1038
-#, fuzzy, python-format
+#, python-format
msgid "%s (C++ class)"
-msgstr "%s (C++ 內建類別)"
+msgstr ""
#: sphinx/domains/cpp.py:1061
#, python-format
@@ -203,9 +204,9 @@ msgid "%s() (%s method)"
msgstr "%s() (%s 方法)"
#: sphinx/domains/javascript.py:109
-#, fuzzy, python-format
+#, python-format
msgid "%s() (class)"
-msgstr "%s() (內建類別)"
+msgstr ""
#: sphinx/domains/javascript.py:111
#, python-format
@@ -218,9 +219,8 @@ msgid "%s (%s attribute)"
msgstr "%s (%s 屬性)"
#: sphinx/domains/javascript.py:122
-#, fuzzy
msgid "Arguments"
-msgstr "參數"
+msgstr ""
#: sphinx/domains/javascript.py:166 sphinx/domains/python.py:561
msgid "data"
@@ -231,9 +231,8 @@ msgid "attribute"
msgstr "屬性"
#: sphinx/domains/python.py:100
-#, fuzzy
msgid "Variables"
-msgstr "變數"
+msgstr ""
#: sphinx/domains/python.py:104
msgid "Raises"
@@ -281,14 +280,14 @@ msgid "%s() (%s static method)"
msgstr "%s() (%s 靜態方法)"
#: sphinx/domains/python.py:340
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s.%s class method)"
-msgstr "%s() (%s.%s 方法)"
+msgstr ""
#: sphinx/domains/python.py:343
-#, fuzzy, python-format
+#, python-format
msgid "%s() (%s class method)"
-msgstr "%s() (%s 方法)"
+msgstr ""
#: sphinx/domains/python.py:353
#, python-format
@@ -301,9 +300,8 @@ msgid "%s (module)"
msgstr "%s (模組)"
#: sphinx/domains/python.py:491
-#, fuzzy
msgid "Python Module Index"
-msgstr "模組索引"
+msgstr ""
#: sphinx/domains/python.py:492
msgid "modules"
@@ -322,9 +320,8 @@ msgid "method"
msgstr ""
#: sphinx/domains/python.py:565
-#, fuzzy
msgid "class method"
-msgstr "方法"
+msgstr ""
#: sphinx/domains/python.py:566
msgid "static method"
@@ -335,9 +332,8 @@ msgid "module"
msgstr "模組"
#: sphinx/domains/python.py:696
-#, fuzzy
msgid " (deprecated)"
-msgstr "已移除"
+msgstr ""
#: sphinx/domains/rst.py:53
#, python-format
@@ -345,18 +341,17 @@ msgid "%s (directive)"
msgstr ""
#: sphinx/domains/rst.py:55
-#, fuzzy, python-format
+#, python-format
msgid "%s (role)"
-msgstr "%s (模組)"
+msgstr ""
#: sphinx/domains/rst.py:104
msgid "directive"
msgstr ""
#: sphinx/domains/rst.py:105
-#, fuzzy
msgid "role"
-msgstr "模組"
+msgstr ""
#: sphinx/domains/std.py:70 sphinx/domains/std.py:86
#, python-format
@@ -464,9 +459,8 @@ msgid "[docs]"
msgstr ""
#: sphinx/ext/viewcode.py:131
-#, fuzzy
msgid "Module code"
-msgstr "模組"
+msgstr ""
#: sphinx/ext/viewcode.py:137
#, python-format
@@ -572,9 +566,8 @@ msgid "Go"
msgstr ""
#: sphinx/themes/agogo/layout.html:58 sphinx/themes/basic/searchbox.html:20
-#, fuzzy
msgid "Enter search terms or a module, class or function name."
-msgstr "輸入一個模組、類別、或是函式名稱."
+msgstr ""
#: sphinx/themes/agogo/layout.html:79 sphinx/themes/basic/sourcelink.html:14
msgid "Show Source"
@@ -718,20 +711,23 @@ msgid ""
" containing fewer words won't appear in the result list."
msgstr ""
-#: sphinx/themes/basic/search.html:39 sphinx/themes/basic/searchresults.html:17
+#: sphinx/themes/basic/search.html:39
+#: sphinx/themes/basic/searchresults.html:17
msgid "search"
msgstr "搜尋"
-#: sphinx/themes/basic/search.html:43 sphinx/themes/basic/searchresults.html:21
+#: sphinx/themes/basic/search.html:43
+#: sphinx/themes/basic/searchresults.html:21
#: sphinx/themes/basic/static/searchtools.js_t:281
msgid "Search Results"
msgstr "搜尋結果"
-#: sphinx/themes/basic/search.html:45 sphinx/themes/basic/searchresults.html:23
+#: sphinx/themes/basic/search.html:45
+#: sphinx/themes/basic/searchresults.html:23
#: sphinx/themes/basic/static/searchtools.js_t:283
msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
msgstr ""
#: sphinx/themes/basic/searchbox.html:12
@@ -784,9 +780,8 @@ msgid "Hide Search Matches"
msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:119
-#, fuzzy
msgid "Searching"
-msgstr "搜尋"
+msgstr ""
#: sphinx/themes/basic/static/searchtools.js_t:124
msgid "Preparing search..."
@@ -832,11 +827,10 @@ msgid "Continued on next page"
msgstr ""
#: sphinx/writers/manpage.py:226 sphinx/writers/text.py:541
-#, fuzzy, python-format
+#, python-format
msgid "[image: %s]"
-msgstr "[圖片: %s]"
+msgstr ""
#: sphinx/writers/manpage.py:227 sphinx/writers/text.py:542
msgid "[image]"
msgstr "[圖片]"
-
diff --git a/sphinx/make_mode.py b/sphinx/make_mode.py
new file mode 100644
index 00000000..bdd9f79b
--- /dev/null
+++ b/sphinx/make_mode.py
@@ -0,0 +1,259 @@
+# -*- coding: utf-8 -*-
+"""
+ sphinx.make_mode
+ ~~~~~~~~~~~~~~~~
+
+ sphinx-build -M command-line handling.
+
+ This replaces the old, platform-dependent and once-generated content
+ of Makefile / make.bat.
+
+ This is in its own module so that importing it is fast. It should not
+ import the main Sphinx modules (like sphinx.applications, sphinx.builders).
+
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import os
+import sys
+import shutil
+from os import path
+from subprocess import call
+
+import sphinx
+from sphinx.util.console import bold, blue
+
+proj_name = os.getenv('SPHINXPROJ', '<project>')
+
+
+BUILDERS = [
+ ("", "html", "to make standalone HTML files"),
+ ("", "dirhtml", "to make HTML files named index.html in directories"),
+ ("", "singlehtml","to make a single large HTML file"),
+ ("", "pickle", "to make pickle files"),
+ ("", "json", "to make JSON files"),
+ ("", "htmlhelp", "to make HTML files and a HTML help project"),
+ ("", "qthelp", "to make HTML files and a qthelp project"),
+ ("", "devhelp", "to make HTML files and a Devhelp project"),
+ ("", "epub", "to make an epub"),
+ ("", "latex", "to make LaTeX files, you can set PAPER=a4 or PAPER=letter"),
+ ("posix", "latexpdf", "to make LaTeX files and run them through pdflatex"),
+ ("posix", "latexpdfja","to make LaTeX files and run them through platex/dvipdfmx"),
+ ("", "text", "to make text files"),
+ ("", "man", "to make manual pages"),
+ ("", "texinfo", "to make Texinfo files"),
+ ("posix", "info", "to make Texinfo files and run them through makeinfo"),
+ ("", "gettext", "to make PO message catalogs"),
+ ("", "changes", "to make an overview of all changed/added/deprecated items"),
+ ("", "xml", "to make Docutils-native XML files"),
+ ("", "pseudoxml", "to make pseudoxml-XML files for display purposes"),
+ ("", "linkcheck", "to check all external links for integrity"),
+ ("", "doctest", "to run all doctests embedded in the documentation "
+ "(if enabled)"),
+ ("", "coverage", "to run coverage check of the documentation (if enabled)"),
+]
+
+
+class Make(object):
+
+ def __init__(self, srcdir, builddir, opts):
+ self.srcdir = srcdir
+ self.builddir = builddir
+ self.opts = opts
+
+ def builddir_join(self, *comps):
+ return path.join(self.builddir, *comps)
+
+ def build_clean(self):
+ if not path.exists(self.builddir):
+ return
+ elif not path.isdir(self.builddir):
+ print "Error: %r is not a directory!" % self.builddir
+ return 1
+ print "Removing everything under %r..." % self.builddir
+ for item in os.listdir(self.builddir):
+ shutil.rmtree(self.builddir_join(item))
+
+ def build_help(self):
+ print bold("Sphinx v%s" % sphinx.__version__)
+ print "Please use `make %s' where %s is one of" % ((blue('target'),)*2)
+ for osname, bname, description in BUILDERS:
+ if not osname or os.name == osname:
+ print ' %s %s' % (blue(bname.ljust(10)), description)
+
+ def build_html(self):
+ if self.run_generic_build('html') > 0:
+ return 1
+ print
+ print 'Build finished. The HTML pages are in %s.' % self.builddir_join('html')
+
+ def build_dirhtml(self):
+ if self.run_generic_build('dirhtml') > 0:
+ return 1
+ print
+ print 'Build finished. The HTML pages are in %s.' % self.builddir_join('dirhtml')
+
+ def build_singlehtml(self):
+ if self.run_generic_build('singlehtml') > 0:
+ return 1
+ print
+ print 'Build finished. The HTML page is in %s.' % \
+ self.builddir_join('singlehtml')
+
+ def build_pickle(self):
+ if self.run_generic_build('pickle') > 0:
+ return 1
+ print
+ print 'Build finished; now you can process the pickle files.'
+
+ def build_json(self):
+ if self.run_generic_build('json') > 0:
+ return 1
+ print
+ print 'Build finished; now you can process the JSON files.'
+
+ def build_htmlhelp(self):
+ if self.run_generic_build('htmlhelp') > 0:
+ return 1
+ print
+ print ('Build finished; now you can run HTML Help Workshop with the '
+ '.hhp project file in %s.') % self.builddir_join('htmlhelp')
+
+ def build_qthelp(self):
+ if self.run_generic_build('qthelp') > 0:
+ return 1
+ print
+ print ('Build finished; now you can run "qcollectiongenerator" with the '
+ '.qhcp project file in %s, like this:') % self.builddir_join('qthelp')
+ print '$ qcollectiongenerator %s.qhcp' % self.builddir_join('qthelp', proj_name)
+ print 'To view the help file:'
+ print '$ assistant -collectionFile %s.qhc' % \
+ self.builddir_join('qthelp', proj_name)
+
+ def build_devhelp(self):
+ if self.run_generic_build('devhelp') > 0:
+ return 1
+ print
+ print "Build finished."
+ print "To view the help file:"
+ print "$ mkdir -p $HOME/.local/share/devhelp/" + proj_name
+ print "$ ln -s %s $HOME/.local/share/devhelp/%s" % \
+ (self.builddir_join('devhelp'), proj_name)
+ print "$ devhelp"
+
+ def build_epub(self):
+ if self.run_generic_build('epub') > 0:
+ return 1
+ print
+ print 'Build finished. The ePub file is in %s.' % self.builddir_join('epub')
+
+ def build_latex(self):
+ if self.run_generic_build('latex') > 0:
+ return 1
+ print "Build finished; the LaTeX files are in %s." % self.builddir_join('latex')
+ if os.name == 'posix':
+ print "Run `make' in that directory to run these through (pdf)latex"
+ print "(use `make latexpdf' here to do that automatically)."
+
+ def build_latexpdf(self):
+ if self.run_generic_build('latex') > 0:
+ return 1
+ os.system('make -C %s all-pdf' % self.builddir_join('latex'))
+
+ def build_latexpdfja(self):
+ if self.run_generic_build('latex') > 0:
+ return 1
+ os.system('make -C %s all-pdf-ja' % self.builddir_join('latex'))
+
+ def build_text(self):
+ if self.run_generic_build('text') > 0:
+ return 1
+ print
+ print 'Build finished. The text files are in %s.' % self.builddir_join('text')
+
+ def build_texinfo(self):
+ if self.run_generic_build('texinfo') > 0:
+ return 1
+ print "Build finished; the Texinfo files are in %s." % \
+ self.builddir_join('texinfo')
+ if os.name == 'posix':
+ print "Run `make' in that directory to run these through makeinfo"
+ print "(use `make info' here to do that automatically)."
+
+ def build_info(self):
+ if self.run_generic_build('texinfo') > 0:
+ return 1
+ os.system('make -C %s info' % self.builddir_join('texinfo'))
+
+ def build_gettext(self):
+ dtdir = self.builddir_join('gettext', '.doctrees')
+ if self.run_generic_build('gettext', doctreedir=dtdir) > 0:
+ return 1
+ print
+ print 'Build finished. The message catalogs are in %s.' % \
+ self.builddir_join('gettext')
+
+ def build_changes(self):
+ if self.run_generic_build('changes') > 0:
+ return 1
+ print
+ print 'Build finished. The overview file is in %s.' % \
+ self.builddir_join('changes')
+
+ def build_linkcheck(self):
+ res = self.run_generic_build('linkcheck')
+ print
+ print ('Link check complete; look for any errors in the above output '
+ 'or in %s.') % self.builddir_join('linkcheck', 'output.txt')
+ return res
+
+ def build_doctest(self):
+ res = self.run_generic_build('doctest')
+ print ("Testing of doctests in the sources finished, look at the "
+ "results in %s." % self.builddir_join('doctest', 'output.txt'))
+ return res
+
+ def build_coverage(self):
+ if self.run_generic_build('coverage') > 0:
+ print "Has the coverage extension been enabled?"
+ return 1
+ print
+ print ("Testing of coverage in the sources finished, look at the "
+ "results in %s." % self.builddir_join('coverage'))
+
+ def build_xml(self):
+ if self.run_generic_build('xml') > 0:
+ return 1
+ print
+ print 'Build finished. The XML files are in %s.' % self.builddir_join('xml')
+
+ def build_pseudoxml(self):
+ if self.run_generic_build('pseudoxml') > 0:
+ return 1
+ print
+ print 'Build finished. The pseudo-XML files are in %s.' % \
+ self.builddir_join('pseudoxml')
+
+ def run_generic_build(self, builder, doctreedir=None):
+ # compatibility with old Makefile
+ papersize = os.getenv('PAPER', '')
+ opts = self.opts
+ if papersize in ('a4', 'letter'):
+ opts.extend(['-D', 'latex_paper_size=' + papersize])
+ if doctreedir is None:
+ doctreedir = self.builddir_join('doctrees')
+ return call([sys.executable, sys.argv[0], '-b', builder,
+ '-d', doctreedir, self.srcdir, self.builddir_join(builder)] + opts)
+
+
+def run_make_mode(args):
+ if len(args) < 3:
+ print >>sys.stderr, ('Error: at least 3 arguments (builder, source '
+ 'dir, build dir) are required.')
+ return 1
+ make = Make(args[1], args[2], args[3:])
+ run_method = 'build_' + args[0]
+ if hasattr(make, run_method):
+ return getattr(make, run_method)()
+ return make.run_generic_build(args[0])
diff --git a/sphinx/pycode/Grammar.txt b/sphinx/pycode/Grammar-py2.txt
index fcab0b69..98bd1f22 100644
--- a/sphinx/pycode/Grammar.txt
+++ b/sphinx/pycode/Grammar-py2.txt
@@ -1,18 +1,11 @@
-# Grammar for Python. This grammar supports Python 2.x and 3.x.
+# Grammar for Python 2.x
-# Note: Changing the grammar specified in this file will most likely
-# require corresponding changes in the parser module
-# (../Modules/parsermodule.c). If you can't make the changes to
-# that module yourself, please co-ordinate the required changes
-# with someone who can; ask around on python-dev for help. Fred
-# Drake <fdrake@acm.org> will probably be listening there.
-
-# NOTE WELL: You should also follow all the steps listed in PEP 306,
-# "How to Change Python's Grammar"
+# IMPORTANT: when copying over a new Grammar file, make sure file_input
+# is the first nonterminal in the file!
# Start symbols for the grammar:
-# file_input is a module or sequence of commands read from an input file;
# single_input is a single interactive statement;
+# file_input is a module or sequence of commands read from an input file;
# eval_input is the input for the eval() and input() functions.
# NB: compound_stmt in single_input is followed by extra NEWLINE!
file_input: (NEWLINE | stmt)* ENDMARKER
@@ -22,28 +15,20 @@ eval_input: testlist NEWLINE* ENDMARKER
decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
decorators: decorator+
decorated: decorators (classdef | funcdef)
-funcdef: 'def' NAME parameters ['->' test] ':' suite
-parameters: '(' [typedargslist] ')'
-typedargslist: ((tfpdef ['=' test] ',')*
- ('*' [tname] (',' tname ['=' test])* [',' '**' tname] | '**' tname)
- | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])
-tname: NAME [':' test]
-tfpdef: tname | '(' tfplist ')'
-tfplist: tfpdef (',' tfpdef)* [',']
-varargslist: ((vfpdef ['=' test] ',')*
- ('*' [vname] (',' vname ['=' test])* [',' '**' vname] | '**' vname)
- | vfpdef ['=' test] (',' vfpdef ['=' test])* [','])
-vname: NAME
-vfpdef: vname | '(' vfplist ')'
-vfplist: vfpdef (',' vfpdef)* [',']
+funcdef: 'def' NAME parameters ':' suite
+parameters: '(' [varargslist] ')'
+varargslist: ((fpdef ['=' test] ',')*
+ ('*' NAME [',' '**' NAME] | '**' NAME) |
+ fpdef ['=' test] (',' fpdef ['=' test])* [','])
+fpdef: NAME | '(' fplist ')'
+fplist: fpdef (',' fpdef)* [',']
stmt: simple_stmt | compound_stmt
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
small_stmt: (expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt |
import_stmt | global_stmt | exec_stmt | assert_stmt)
-expr_stmt: testlist_star_expr (augassign (yield_expr|testlist) |
- ('=' (yield_expr|testlist_star_expr))*)
-testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
+expr_stmt: testlist (augassign (yield_expr|testlist) |
+ ('=' (yield_expr|testlist))*)
augassign: ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' |
'<<=' | '>>=' | '**=' | '//=')
# For normal assignments, additional restrictions enforced by the interpreter
@@ -56,7 +41,7 @@ break_stmt: 'break'
continue_stmt: 'continue'
return_stmt: 'return' [testlist]
yield_stmt: yield_expr
-raise_stmt: 'raise' [test ['from' test | ',' test [',' test]]]
+raise_stmt: 'raise' [test [',' test [',' test]]]
import_stmt: import_name | import_from
import_name: 'import' dotted_as_names
import_from: ('from' ('.'* dotted_name | '.'+)
@@ -66,7 +51,7 @@ dotted_as_name: dotted_name ['as' NAME]
import_as_names: import_as_name (',' import_as_name)* [',']
dotted_as_names: dotted_as_name (',' dotted_as_name)*
dotted_name: NAME ('.' NAME)*
-global_stmt: ('global' | 'nonlocal') NAME (',' NAME)*
+global_stmt: 'global' NAME (',' NAME)*
exec_stmt: 'exec' expr ['in' test [',' test]]
assert_stmt: 'assert' test [',' test]
@@ -82,7 +67,7 @@ try_stmt: ('try' ':' suite
with_stmt: 'with' with_item (',' with_item)* ':' suite
with_item: test ['as' expr]
# NB compile.c makes sure that the default except clause is last
-except_clause: 'except' [test [(',' | 'as') test]]
+except_clause: 'except' [test [('as' | ',') test]]
suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
# Backward compatibility cruft to support:
@@ -100,7 +85,6 @@ and_test: not_test ('and' not_test)*
not_test: 'not' not_test | comparison
comparison: expr (comp_op expr)*
comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
-star_expr: '*' expr
expr: xor_expr ('|' xor_expr)*
xor_expr: and_expr ('^' and_expr)*
and_expr: shift_expr ('&' shift_expr)*
@@ -109,32 +93,38 @@ arith_expr: term (('+'|'-') term)*
term: factor (('*'|'/'|'%'|'//') factor)*
factor: ('+'|'-'|'~') factor | power
power: atom trailer* ['**' factor]
-atom: ('(' [yield_expr|testlist_gexp] ')' |
+atom: ('(' [yield_expr|testlist_comp] ')' |
'[' [listmaker] ']' |
- '{' [dictsetmaker] '}' |
+ '{' [dictorsetmaker] '}' |
'`' testlist1 '`' |
- NAME | NUMBER | STRING+ | '.' '.' '.')
-listmaker: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
-testlist_gexp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
+ NAME | NUMBER | STRING+)
+listmaker: test ( list_for | (',' test)* [','] )
+testlist_comp: test ( comp_for | (',' test)* [','] )
lambdef: 'lambda' [varargslist] ':' test
trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
subscriptlist: subscript (',' subscript)* [',']
-subscript: test | [test] ':' [test] [sliceop]
+subscript: '.' '.' '.' | test | [test] ':' [test] [sliceop]
sliceop: ':' [test]
-exprlist: (expr|star_expr) (',' (expr|star_expr))* [',']
+exprlist: expr (',' expr)* [',']
testlist: test (',' test)* [',']
-dictsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* [','])) |
- (test (comp_for | (',' test)* [','])) )
+dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* [','])) |
+ (test (comp_for | (',' test)* [','])) )
-classdef: 'class' NAME ['(' [arglist] ')'] ':' suite
+classdef: 'class' NAME ['(' [testlist] ')'] ':' suite
arglist: (argument ',')* (argument [',']
- |'*' test (',' argument)* [',' '**' test]
+ |'*' test (',' argument)* [',' '**' test]
|'**' test)
-argument: test [comp_for] | test '=' test # Really [keyword '='] test
+# The reason that keywords are test nodes instead of NAME is that using NAME
+# results in an ambiguity. ast.c makes sure it's a NAME.
+argument: test [comp_for] | test '=' test
+
+list_iter: list_for | list_if
+list_for: 'for' exprlist 'in' testlist_safe [list_iter]
+list_if: 'if' old_test [list_iter]
comp_iter: comp_for | comp_if
-comp_for: 'for' exprlist 'in' testlist_safe [comp_iter]
+comp_for: 'for' exprlist 'in' or_test [comp_iter]
comp_if: 'if' old_test [comp_iter]
testlist1: test (',' test)*
diff --git a/sphinx/pycode/Grammar-py3.txt b/sphinx/pycode/Grammar-py3.txt
new file mode 100644
index 00000000..083b5f91
--- /dev/null
+++ b/sphinx/pycode/Grammar-py3.txt
@@ -0,0 +1,126 @@
+# Grammar for Python 3.x (with at least x <= 4)
+
+# IMPORTANT: when copying over a new Grammar file, make sure file_input
+# is the first nonterminal in the file!
+
+# Start symbols for the grammar:
+# single_input is a single interactive statement;
+# file_input is a module or sequence of commands read from an input file;
+# eval_input is the input for the eval() functions.
+# NB: compound_stmt in single_input is followed by extra NEWLINE!
+file_input: (NEWLINE | stmt)* ENDMARKER
+single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
+eval_input: testlist NEWLINE* ENDMARKER
+
+decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
+decorators: decorator+
+decorated: decorators (classdef | funcdef)
+funcdef: 'def' NAME parameters ['->' test] ':' suite
+parameters: '(' [typedargslist] ')'
+typedargslist: (tfpdef ['=' test] (',' tfpdef ['=' test])* [','
+ ['*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] | '**' tfpdef]]
+ | '*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] | '**' tfpdef)
+tfpdef: NAME [':' test]
+varargslist: (vfpdef ['=' test] (',' vfpdef ['=' test])* [','
+ ['*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef]]
+ | '*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef)
+vfpdef: NAME
+
+stmt: simple_stmt | compound_stmt
+simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
+small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
+ import_stmt | global_stmt | nonlocal_stmt | assert_stmt)
+expr_stmt: testlist_star_expr (augassign (yield_expr|testlist) |
+ ('=' (yield_expr|testlist_star_expr))*)
+testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
+augassign: ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' |
+ '<<=' | '>>=' | '**=' | '//=')
+# For normal assignments, additional restrictions enforced by the interpreter
+del_stmt: 'del' exprlist
+pass_stmt: 'pass'
+flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt
+break_stmt: 'break'
+continue_stmt: 'continue'
+return_stmt: 'return' [testlist]
+yield_stmt: yield_expr
+raise_stmt: 'raise' [test ['from' test]]
+import_stmt: import_name | import_from
+import_name: 'import' dotted_as_names
+# note below: the ('.' | '...') is necessary because '...' is tokenized as ELLIPSIS
+import_from: ('from' (('.' | '...')* dotted_name | ('.' | '...')+)
+ 'import' ('*' | '(' import_as_names ')' | import_as_names))
+import_as_name: NAME ['as' NAME]
+dotted_as_name: dotted_name ['as' NAME]
+import_as_names: import_as_name (',' import_as_name)* [',']
+dotted_as_names: dotted_as_name (',' dotted_as_name)*
+dotted_name: NAME ('.' NAME)*
+global_stmt: 'global' NAME (',' NAME)*
+nonlocal_stmt: 'nonlocal' NAME (',' NAME)*
+assert_stmt: 'assert' test [',' test]
+
+compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated
+if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
+while_stmt: 'while' test ':' suite ['else' ':' suite]
+for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]
+try_stmt: ('try' ':' suite
+ ((except_clause ':' suite)+
+ ['else' ':' suite]
+ ['finally' ':' suite] |
+ 'finally' ':' suite))
+with_stmt: 'with' with_item (',' with_item)* ':' suite
+with_item: test ['as' expr]
+# NB compile.c makes sure that the default except clause is last
+except_clause: 'except' [test ['as' NAME]]
+suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
+
+test: or_test ['if' or_test 'else' test] | lambdef
+test_nocond: or_test | lambdef_nocond
+lambdef: 'lambda' [varargslist] ':' test
+lambdef_nocond: 'lambda' [varargslist] ':' test_nocond
+or_test: and_test ('or' and_test)*
+and_test: not_test ('and' not_test)*
+not_test: 'not' not_test | comparison
+comparison: expr (comp_op expr)*
+# <> isn't actually a valid comparison operator in Python. It's here for the
+# sake of a __future__ import described in PEP 401
+comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
+star_expr: '*' expr
+expr: xor_expr ('|' xor_expr)*
+xor_expr: and_expr ('^' and_expr)*
+and_expr: shift_expr ('&' shift_expr)*
+shift_expr: arith_expr (('<<'|'>>') arith_expr)*
+arith_expr: term (('+'|'-') term)*
+term: factor (('*'|'/'|'%'|'//') factor)*
+factor: ('+'|'-'|'~') factor | power
+power: atom trailer* ['**' factor]
+atom: ('(' [yield_expr|testlist_comp] ')' |
+ '[' [testlist_comp] ']' |
+ '{' [dictorsetmaker] '}' |
+ NAME | NUMBER | STRING+ | '...' | 'None' | 'True' | 'False')
+testlist_comp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
+trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
+subscriptlist: subscript (',' subscript)* [',']
+subscript: test | [test] ':' [test] [sliceop]
+sliceop: ':' [test]
+exprlist: (expr|star_expr) (',' (expr|star_expr))* [',']
+testlist: test (',' test)* [',']
+dictorsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* [','])) |
+ (test (comp_for | (',' test)* [','])) )
+
+classdef: 'class' NAME ['(' [arglist] ')'] ':' suite
+
+arglist: (argument ',')* (argument [',']
+ |'*' test (',' argument)* [',' '**' test]
+ |'**' test)
+# The reason that keywords are test nodes instead of NAME is that using NAME
+# results in an ambiguity. ast.c makes sure it's a NAME.
+argument: test [comp_for] | test '=' test # Really [keyword '='] test
+comp_iter: comp_for | comp_if
+comp_for: 'for' exprlist 'in' or_test [comp_iter]
+comp_if: 'if' test_nocond [comp_iter]
+
+# not used in grammar, but may appear in "node" passed from Parser to Compiler
+encoding_decl: NAME
+
+yield_expr: 'yield' [yield_arg]
+yield_arg: 'from' test | testlist
diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py
index 64999df8..7a6f59b1 100644
--- a/sphinx/pycode/__init__.py
+++ b/sphinx/pycode/__init__.py
@@ -5,10 +5,11 @@
Utilities parsing and analyzing Python code.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
+import sys
from os import path
from sphinx import package_dir
@@ -21,7 +22,8 @@ from sphinx.util.docstrings import prepare_docstring, prepare_commentdoc
# load the Python grammar
-_grammarfile = path.join(package_dir, 'pycode', 'Grammar.txt')
+_grammarfile = path.join(package_dir, 'pycode',
+ 'Grammar-py%d.txt' % sys.version_info[0])
pygrammar = driver.load_grammar(_grammarfile)
pydriver = driver.Driver(pygrammar, convert=nodes.convert)
diff --git a/sphinx/pycode/nodes.py b/sphinx/pycode/nodes.py
index c1feb5b1..8bba3491 100644
--- a/sphinx/pycode/nodes.py
+++ b/sphinx/pycode/nodes.py
@@ -5,7 +5,7 @@
Parse tree node implementations.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/pycode/pgen2/driver.py b/sphinx/pycode/pgen2/driver.py
index 5e6cf9a5..422671db 100644
--- a/sphinx/pycode/pgen2/driver.py
+++ b/sphinx/pycode/pgen2/driver.py
@@ -18,7 +18,8 @@ __all__ = ["Driver", "load_grammar"]
# Python imports
import os
import logging
-import sys
+
+import sphinx
# Pgen imports
from sphinx.pycode.pgen2 import grammar, parse, token, tokenize, pgen
@@ -120,7 +121,9 @@ def load_grammar(gt="Grammar.txt", gp=None,
head, tail = os.path.splitext(gt)
if tail == ".txt":
tail = ""
- gp = head + tail + ".".join(map(str, sys.version_info[:2])) + ".pickle"
+ # embed Sphinx major version for the case we ever change the grammar...
+ gp = head + tail + "-sphinx" + \
+ ".".join(map(str, sphinx.version_info[:2])) + ".pickle"
if force or not _newer(gp, gt):
logger.info("Generating grammar tables from %s", gt)
g = pgen.generate_grammar(gt)
diff --git a/sphinx/pycode/pgen2/grammar.py b/sphinx/pycode/pgen2/grammar.py
index 5a433578..01d84346 100644
--- a/sphinx/pycode/pgen2/grammar.py
+++ b/sphinx/pycode/pgen2/grammar.py
@@ -162,6 +162,7 @@ opmap_raw = """
// DOUBLESLASH
//= DOUBLESLASHEQUAL
-> RARROW
+... ELLIPSIS
"""
opmap = {}
diff --git a/sphinx/pycode/pgen2/token.py b/sphinx/pycode/pgen2/token.py
index 61468b31..56a40ce7 100755
--- a/sphinx/pycode/pgen2/token.py
+++ b/sphinx/pycode/pgen2/token.py
@@ -62,7 +62,8 @@ COMMENT = 52
NL = 53
RARROW = 54
ERRORTOKEN = 55
-N_TOKENS = 56
+ELLIPSIS = 56
+N_TOKENS = 57
NT_OFFSET = 256
#--end constants--
diff --git a/sphinx/pygments_styles.py b/sphinx/pygments_styles.py
index a8b0f123..a7335e60 100644
--- a/sphinx/pygments_styles.py
+++ b/sphinx/pygments_styles.py
@@ -5,7 +5,7 @@
Sphinx theme specific highlighting styles.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/quickstart.py b/sphinx/quickstart.py
index 73926f82..5cf067e9 100644
--- a/sphinx/quickstart.py
+++ b/sphinx/quickstart.py
@@ -5,7 +5,7 @@
Quickly setup documentation source to work with Sphinx.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -171,6 +171,11 @@ html_theme = 'default'
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['%(dot)sstatic']
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+#html_extra_path = []
+
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%%b %%d, %%Y'
@@ -231,7 +236,7 @@ latex_elements = {
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
-# author, documentclass [howto/manual]).
+# author, documentclass [howto, manual, or own class]).
latex_documents = [
('%(master_str)s', '%(project_fn)s.tex', u'%(project_doc_texescaped_str)s',
u'%(author_texescaped_str)s', 'manual'),
@@ -305,6 +310,15 @@ epub_author = u'%(author_str)s'
epub_publisher = u'%(author_str)s'
epub_copyright = u'%(copyright_str)s'
+# The basename for the epub file. It defaults to the project name.
+#epub_basename = u'%(project_str)s'
+
+# The HTML theme for the epub output. Since the default themes are not optimized
+# for small screen space, using the same theme for HTML and epub output is
+# usually not wise. This defaults to 'epub', a theme designed to save visual
+# space.
+#epub_theme = 'epub'
+
# The language of the text. It defaults to the language option
# or en if the language is not set.
#epub_language = ''
@@ -334,7 +348,7 @@ epub_copyright = u'%(copyright_str)s'
#epub_post_files = []
# A list of files that should not be packed into the epub file.
-#epub_exclude_files = []
+epub_exclude_files = ['search.html']
# The depth of the table of contents in toc.ncx.
#epub_tocdepth = 3
@@ -823,6 +837,76 @@ if "%%1" == "pseudoxml" (
:end
'''
+# This will become the Makefile template for Sphinx 1.5.
+MAKEFILE_NEW = u'''\
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+SPHINXPROJ = %(project_fn)s
+SOURCEDIR = %(rsrcdir)s
+BUILDDIR = %(rbuilddir)s
+
+# User-friendly check for sphinx-build.
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error \
+The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx \
+installed, then set the SPHINXBUILD environment variable to point \
+to the full path of the '$(SPHINXBUILD)' executable. Alternatively you \
+can add the directory with the executable to your PATH. \
+If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
+# Has to be explicit, otherwise we don't get "make" without targets right.
+help:
+\t@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+# You can add custom targets here.
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%:
+\t@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+'''
+
+# This will become the make.bat template for Sphinx 1.5.
+BATCHFILE_NEW = u'''\
+@ECHO OFF
+
+REM Command file for Sphinx documentation
+
+if "%%SPHINXBUILD%%" == "" (
+\tset SPHINXBUILD=sphinx-build
+)
+set BUILDDIR=%(rbuilddir)s
+set SPHINXPROJ=%(project_fn)s
+
+if "%%1" == "" goto help
+
+%%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
+)
+
+%%SPHINXBUILD%% -M %%1 %%BUILDDIR%% %%SPHINXOPTS%%
+goto end
+
+:help
+%%SPHINXBUILD%% -M help %%BUILDDIR%% %%SPHINXOPTS%%
+
+:end
+'''
+
def mkdir_p(dir):
if path.isdir(dir):
@@ -972,7 +1056,7 @@ Enter the root path for documentation.'''
You have two options for placing the build directory for Sphinx output.
Either, you use a directory "_build" within the root path, or you separate
"source" and "build" directories within the root path.'''
- do_prompt(d, 'sep', 'Separate source and build directories (y/N)', 'n',
+ do_prompt(d, 'sep', 'Separate source and build directories (y/n)', 'n',
boolean)
if 'dot' not in d:
@@ -1028,50 +1112,51 @@ document is a custom template, you can also set this to another filename.'''
if 'epub' not in d:
print '''
Sphinx can also add configuration for epub output:'''
- do_prompt(d, 'epub', 'Do you want to use the epub builder (y/N)',
+ do_prompt(d, 'epub', 'Do you want to use the epub builder (y/n)',
'n', boolean)
if 'ext_autodoc' not in d:
print '''
Please indicate if you want to use one of the following Sphinx extensions:'''
do_prompt(d, 'ext_autodoc', 'autodoc: automatically insert docstrings '
- 'from modules (y/N)', 'n', boolean)
+ 'from modules (y/n)', 'n', boolean)
if 'ext_doctest' not in d:
do_prompt(d, 'ext_doctest', 'doctest: automatically test code snippets '
- 'in doctest blocks (y/N)', 'n', boolean)
+ 'in doctest blocks (y/n)', 'n', boolean)
if 'ext_intersphinx' not in d:
do_prompt(d, 'ext_intersphinx', 'intersphinx: link between Sphinx '
- 'documentation of different projects (y/N)', 'n', boolean)
+ 'documentation of different projects (y/n)', 'n', boolean)
if 'ext_todo' not in d:
do_prompt(d, 'ext_todo', 'todo: write "todo" entries '
- 'that can be shown or hidden on build (y/N)', 'n', boolean)
+ 'that can be shown or hidden on build (y/n)', 'n', boolean)
if 'ext_coverage' not in d:
do_prompt(d, 'ext_coverage', 'coverage: checks for documentation '
- 'coverage (y/N)', 'n', boolean)
+ 'coverage (y/n)', 'n', boolean)
if 'ext_pngmath' not in d:
do_prompt(d, 'ext_pngmath', 'pngmath: include math, rendered '
- 'as PNG images (y/N)', 'n', boolean)
+ 'as PNG images (y/n)', 'n', boolean)
if 'ext_mathjax' not in d:
do_prompt(d, 'ext_mathjax', 'mathjax: include math, rendered in the '
- 'browser by MathJax (y/N)', 'n', boolean)
+ 'browser by MathJax (y/n)', 'n', boolean)
if d['ext_pngmath'] and d['ext_mathjax']:
print '''Note: pngmath and mathjax cannot be enabled at the same time.
pngmath has been deselected.'''
+ d['ext_pngmath'] = False
if 'ext_ifconfig' not in d:
do_prompt(d, 'ext_ifconfig', 'ifconfig: conditional inclusion of '
- 'content based on config values (y/N)', 'n', boolean)
+ 'content based on config values (y/n)', 'n', boolean)
if 'ext_viewcode' not in d:
do_prompt(d, 'ext_viewcode', 'viewcode: include links to the source '
- 'code of documented Python objects (y/N)', 'n', boolean)
+ 'code of documented Python objects (y/n)', 'n', boolean)
if 'makefile' not in d:
print '''
A Makefile and a Windows command file can be generated for you so that you
only have to run e.g. `make html' instead of invoking sphinx-build
directly.'''
- do_prompt(d, 'makefile', 'Create Makefile? (Y/n)', 'y', boolean)
+ do_prompt(d, 'makefile', 'Create Makefile? (y/n)', 'y', boolean)
if 'batchfile' not in d:
- do_prompt(d, 'batchfile', 'Create Windows command file? (Y/n)',
+ do_prompt(d, 'batchfile', 'Create Windows command file? (y/n)',
'y', boolean)
print
diff --git a/sphinx/roles.py b/sphinx/roles.py
index 6703b6b8..c31ec055 100644
--- a/sphinx/roles.py
+++ b/sphinx/roles.py
@@ -5,7 +5,7 @@
Handlers for additional ReST roles.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
index 5f64495b..bd95ecc4 100644
--- a/sphinx/search/__init__.py
+++ b/sphinx/search/__init__.py
@@ -5,15 +5,14 @@
Create a full-text search index for offline search.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from __future__ import with_statement
import re
-import itertools
import cPickle as pickle
-from docutils.nodes import comment, title, Text, NodeVisitor, SkipNode
+from docutils.nodes import raw, comment, title, Text, NodeVisitor, SkipNode
from sphinx.util import jsdump, rpartition
@@ -146,7 +145,16 @@ class WordCollector(NodeVisitor):
def dispatch_visit(self, node):
if node.__class__ is comment:
raise SkipNode
- elif node.__class__ is Text:
+ if node.__class__ is raw:
+ # Some people might put content in raw HTML that should be searched,
+ # so we just amateurishly strip HTML tags and index the remaining
+ # content
+ nodetext = re.sub(r'(?is)<style.*?</style>', '', node.astext())
+ nodetext = re.sub(r'(?is)<script.*?</script>', '', nodetext)
+ nodetext = re.sub(r'<[^<]+?>', '', nodetext)
+ self.found_words.extend(self.lang.split(nodetext))
+ raise SkipNode
+ if node.__class__ is Text:
self.found_words.extend(self.lang.split(node.astext()))
elif node.__class__ is title:
self.found_title_words.extend(self.lang.split(node.astext()))
@@ -306,8 +314,7 @@ class IndexBuilder(object):
return self._stem_cache[word]
_filter = self.lang.word_filter
- for word in itertools.chain(visitor.found_title_words,
- self.lang.split(title)):
+ for word in visitor.found_title_words:
word = stem(word)
if _filter(word):
self._title_mapping.setdefault(word, set()).add(filename)
diff --git a/sphinx/search/en.py b/sphinx/search/en.py
index 9f3a9bf7..33e81770 100644
--- a/sphinx/search/en.py
+++ b/sphinx/search/en.py
@@ -5,7 +5,7 @@
English search language: includes the JS porter stemmer.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/search/ja.py b/sphinx/search/ja.py
index f0deb154..d5a7b4af 100644
--- a/sphinx/search/ja.py
+++ b/sphinx/search/ja.py
@@ -5,7 +5,7 @@
Japanese search language: includes routine to split words.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -236,7 +236,7 @@ class TinySegmenter(object):
score += self.ts_(self.TQ4__, p3 + c2 + c3 + c4)
p = u'O'
if score > 0:
- result.append(word)
+ result.append(word.strip())
word = u''
p = u'B'
p1 = p2
@@ -244,7 +244,7 @@ class TinySegmenter(object):
p3 = p
word += seg[i]
- result.append(word)
+ result.append(word.strip())
return result
diff --git a/sphinx/setup_command.py b/sphinx/setup_command.py
index 70358bbb..e6b5b8f7 100644
--- a/sphinx/setup_command.py
+++ b/sphinx/setup_command.py
@@ -8,17 +8,20 @@
:author: Sebastian Wiesner
:contact: basti.wiesner@gmx.net
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import sys
import os
+import types
from StringIO import StringIO
from distutils.cmd import Command
+from distutils.errors import DistutilsOptionError
from sphinx.application import Sphinx
from sphinx.util.console import darkred, nocolor, color_terminal
+from sphinx.util.osutil import abspath
class BuildDoc(Command):
@@ -97,6 +100,19 @@ class BuildDoc(Command):
return root
return None
+ # Overriding distutils' Command._ensure_stringlike which doesn't support
+ # unicode, causing finalize_options to fail if invoked again. Workaround
+ # for http://bugs.python.org/issue19570
+ def _ensure_stringlike(self, option, what, default=None):
+ val = getattr(self, option)
+ if val is None:
+ setattr(self, option, default)
+ return default
+ elif not isinstance(val, types.StringTypes):
+ raise DistutilsOptionError("'%s' must be a %s (got `%s`)"
+ % (option, what, val))
+ return val
+
def finalize_options(self):
if self.source_dir is None:
self.source_dir = self._guess_source_dir()
@@ -104,14 +120,16 @@ class BuildDoc(Command):
self.ensure_dirname('source_dir')
if self.source_dir is None:
self.source_dir = os.curdir
- self.source_dir = os.path.abspath(self.source_dir)
+ self.source_dir = abspath(self.source_dir)
if self.config_dir is None:
self.config_dir = self.source_dir
+ self.config_dir = abspath(self.config_dir)
if self.build_dir is None:
build = self.get_finalized_command('build')
- self.build_dir = os.path.join(build.build_base, 'sphinx')
+ self.build_dir = os.path.join(abspath(build.build_base), 'sphinx')
self.mkpath(self.build_dir)
+ self.build_dir = abspath(self.build_dir)
self.doctree_dir = os.path.join(self.build_dir, 'doctrees')
self.mkpath(self.doctree_dir)
self.builder_target_dir = os.path.join(self.build_dir, self.builder)
diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty
index 9b083cc6..ee0a923d 100644
--- a/sphinx/texinputs/sphinx.sty
+++ b/sphinx/texinputs/sphinx.sty
@@ -30,6 +30,10 @@
\RequirePackage{wrapfig}
% Separate paragraphs by space by default.
\RequirePackage{parskip}
+% For parsed-literal blocks.
+\RequirePackage{alltt}
+% Display "real" single quotes in literal blocks.
+\RequirePackage{upquote}
% Redefine these colors to your liking in the preamble.
\definecolor{TitleColor}{rgb}{0.126,0.263,0.361}
@@ -238,9 +242,11 @@
\def\productioncont##1{\\& &\code{##1}}
\parindent=2em
\indent
- \begin{tabular}{lcl}
+ \setlength{\LTpre}{0pt}
+ \setlength{\LTpost}{0pt}
+ \begin{longtable}[l]{lcl}
}{%
- \end{tabular}
+ \end{longtable}
}
% Notices / Admonitions
@@ -508,13 +514,11 @@
}
\fi
-% do not use \@chappos in Appendix in pTeX
+% disable \@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}
+ \let\py@OldAppendix=\appendix
+ \renewcommand{\appendix}{
+ \py@OldAppendix
+ \gdef\@chappos{}
}
\fi
diff --git a/sphinx/texinputs/sphinxmanual.cls b/sphinx/texinputs/sphinxmanual.cls
index 26df488e..a6b9b392 100644
--- a/sphinx/texinputs/sphinxmanual.cls
+++ b/sphinx/texinputs/sphinxmanual.cls
@@ -97,6 +97,7 @@
%
\let\py@OldTableofcontents=\tableofcontents
\renewcommand{\tableofcontents}{%
+ \pagenumbering{roman}%
\setcounter{page}{1}%
\pagebreak%
\pagestyle{plain}%
@@ -114,7 +115,7 @@
\pagenumbering{arabic}%
\@ifundefined{fancyhf}{}{\pagestyle{normal}}%
}
-\pagenumbering{roman}
+\pagenumbering{alph}
% This is needed to get the width of the section # area wide enough in the
% library reference. Doing it here keeps it the same for all the manuals.
diff --git a/sphinx/texinputs/tabulary.sty b/sphinx/texinputs/tabulary.sty
index ba83c0af..7ea572c1 100644
--- a/sphinx/texinputs/tabulary.sty
+++ b/sphinx/texinputs/tabulary.sty
@@ -8,13 +8,13 @@
%% DRAFT VERSION
%%
%% File `tabulary.dtx'.
-%% Copyright (C) 1995 1996 2003 David Carlisle
+%% Copyright (C) 1995 1996 2003 2008 David Carlisle
%% This file may be distributed under the terms of the LPPL.
%% See 00readme.txt for details.
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tabulary}
- [2007/10/02 v0.9 tabulary package (DPC)]
+ [2008/12/01 v0.9 tabulary package (DPC)]
\RequirePackage{array}
\catcode`\Z=14
\DeclareOption{debugshow}{\catcode`\Z=9\relax}
@@ -109,8 +109,6 @@ Z \string\tymax: \the\tymax^^J}%
\global\advance\TY@linewidth-#1\relax}
\def\endtabulary{%
\gdef\@halignto{}%
- \let\TY@footnote\footnote%
- \def\footnote{}% prevent footnotes from doing anything
\expandafter\TY@tab\the\toks@
\crcr\omit
{\xdef\TY@save@row{}%
@@ -174,7 +172,6 @@ Z \message{> tymin}%
\TY@checkmin
\TY@count\z@
\let\TY@box\TY@box@v
- \let\footnote\TY@footnote % restore footnotes
{\expandafter\TY@final\the\toks@\endTY@final}%
\count@\z@
\@tempswatrue
@@ -195,7 +192,7 @@ Z \message{> tymin}%
\let\TY@checkmin\relax
\ifdim\TY@tablewidth>\z@
\Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth
- \ifdim\TY@tablewidth <\linewidth
+ \ifdim\TY@tablewidth <\TY@linewidth
\def\TY@ratio{1}%
\fi
\else
diff --git a/sphinx/themes/agogo/layout.html b/sphinx/themes/agogo/layout.html
index fde19dbc..c6960fb0 100644
--- a/sphinx/themes/agogo/layout.html
+++ b/sphinx/themes/agogo/layout.html
@@ -5,7 +5,7 @@
Sphinx layout template for the agogo theme, originally written
by Andi Albrecht.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/agogo/static/agogo.css_t b/sphinx/themes/agogo/static/agogo.css_t
index 3fb81178..1ec21470 100644
--- a/sphinx/themes/agogo/static/agogo.css_t
+++ b/sphinx/themes/agogo/static/agogo.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- agogo theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/basic/defindex.html b/sphinx/themes/basic/defindex.html
index c19da402..9316cfda 100644
--- a/sphinx/themes/basic/defindex.html
+++ b/sphinx/themes/basic/defindex.html
@@ -4,7 +4,7 @@
Default template for the "index" page.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/domainindex.html b/sphinx/themes/basic/domainindex.html
index 7f99da61..ac5aed9f 100644
--- a/sphinx/themes/basic/domainindex.html
+++ b/sphinx/themes/basic/domainindex.html
@@ -4,7 +4,7 @@
Template for domain indices (module index, ...).
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/genindex-single.html b/sphinx/themes/basic/genindex-single.html
index a0671488..ec57a7bf 100644
--- a/sphinx/themes/basic/genindex-single.html
+++ b/sphinx/themes/basic/genindex-single.html
@@ -4,7 +4,7 @@
Template for a "single" page of a split index.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{% macro indexentries(firstname, links) %}
diff --git a/sphinx/themes/basic/genindex-split.html b/sphinx/themes/basic/genindex-split.html
index 20c18068..aca86478 100644
--- a/sphinx/themes/basic/genindex-split.html
+++ b/sphinx/themes/basic/genindex-split.html
@@ -4,7 +4,7 @@
Template for a "split" index overview page.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/genindex.html b/sphinx/themes/basic/genindex.html
index dd2c96d8..836d7844 100644
--- a/sphinx/themes/basic/genindex.html
+++ b/sphinx/themes/basic/genindex.html
@@ -4,7 +4,7 @@
Template for an "all-in-one" index.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{% macro indexentries(firstname, links) %}
diff --git a/sphinx/themes/basic/globaltoc.html b/sphinx/themes/basic/globaltoc.html
index 6d117f29..60ed28a3 100644
--- a/sphinx/themes/basic/globaltoc.html
+++ b/sphinx/themes/basic/globaltoc.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: global table of contents.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html
index 9e4e39a1..f01c3aa0 100644
--- a/sphinx/themes/basic/layout.html
+++ b/sphinx/themes/basic/layout.html
@@ -4,7 +4,7 @@
Master layout template for Sphinx themes.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- block doctype -%}
diff --git a/sphinx/themes/basic/localtoc.html b/sphinx/themes/basic/localtoc.html
index 23a31256..70afb6a5 100644
--- a/sphinx/themes/basic/localtoc.html
+++ b/sphinx/themes/basic/localtoc.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: local table of contents.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if display_toc %}
diff --git a/sphinx/themes/basic/page.html b/sphinx/themes/basic/page.html
index 185c6c85..b4544a26 100644
--- a/sphinx/themes/basic/page.html
+++ b/sphinx/themes/basic/page.html
@@ -4,7 +4,7 @@
Master template for simple pages.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/relations.html b/sphinx/themes/basic/relations.html
index d7c5fa58..c82bbee6 100644
--- a/sphinx/themes/basic/relations.html
+++ b/sphinx/themes/basic/relations.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: relation links.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if prev %}
diff --git a/sphinx/themes/basic/search.html b/sphinx/themes/basic/search.html
index 3697b603..4a79acec 100644
--- a/sphinx/themes/basic/search.html
+++ b/sphinx/themes/basic/search.html
@@ -4,7 +4,7 @@
Template for the search page.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/searchbox.html b/sphinx/themes/basic/searchbox.html
index 609aac83..0a746f57 100644
--- a/sphinx/themes/basic/searchbox.html
+++ b/sphinx/themes/basic/searchbox.html
@@ -4,10 +4,10 @@
Sphinx sidebar template: quick search box.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
-{%- if pagename != "search" %}
+{%- if pagename != "search" and builder != "singlehtml" %}
<div id="searchbox" style="display: none">
<h3>{{ _('Quick search') }}</h3>
<form class="search" action="{{ pathto('search') }}" method="get">
diff --git a/sphinx/themes/basic/searchresults.html b/sphinx/themes/basic/searchresults.html
index 86b1be47..b3d372c0 100644
--- a/sphinx/themes/basic/searchresults.html
+++ b/sphinx/themes/basic/searchresults.html
@@ -4,7 +4,7 @@
Template for the body of the search results page.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
<h1 id="search-documentation">{{ _('Search') }}</h1>
diff --git a/sphinx/themes/basic/sourcelink.html b/sphinx/themes/basic/sourcelink.html
index 08232efc..f3cb71fd 100644
--- a/sphinx/themes/basic/sourcelink.html
+++ b/sphinx/themes/basic/sourcelink.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: "show source" link.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if show_source and has_source and sourcename %}
diff --git a/sphinx/themes/basic/static/basic.css_t b/sphinx/themes/basic/static/basic.css_t
index b3e36db7..7ffa4664 100644
--- a/sphinx/themes/basic/static/basic.css_t
+++ b/sphinx/themes/basic/static/basic.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- basic theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -89,6 +89,7 @@ div.sphinxsidebar #searchbox input[type="submit"] {
img {
border: 0;
+ max-width: 100%;
}
/* -- search page ----------------------------------------------------------- */
@@ -401,10 +402,6 @@ dl.glossary dt {
margin: 0;
}
-.refcount {
- color: #060;
-}
-
.optional {
font-size: 1.3em;
}
diff --git a/sphinx/themes/basic/static/doctools.js b/sphinx/themes/basic/static/doctools.js
index 8614442e..c5455c90 100644
--- a/sphinx/themes/basic/static/doctools.js
+++ b/sphinx/themes/basic/static/doctools.js
@@ -4,7 +4,7 @@
*
* Sphinx JavaScript utilities for all documentation.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -168,6 +168,9 @@ var Documentation = {
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
if (terms.length) {
var body = $('div.body');
+ if (!body.length) {
+ body = $('body');
+ }
window.setTimeout(function() {
$.each(terms, function() {
body.highlightText(this.toLowerCase(), 'highlighted');
diff --git a/sphinx/themes/basic/static/jquery.js b/sphinx/themes/basic/static/jquery.js
index 198b3ff0..83589daa 100644
--- a/sphinx/themes/basic/static/jquery.js
+++ b/sphinx/themes/basic/static/jquery.js
@@ -1,4 +1,2 @@
-/*! jQuery v1.7.1 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
-f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
-{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file
+/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file
diff --git a/sphinx/themes/basic/static/searchtools.js_t b/sphinx/themes/basic/static/searchtools.js_t
index 58e24282..047636c9 100644
--- a/sphinx/themes/basic/static/searchtools.js_t
+++ b/sphinx/themes/basic/static/searchtools.js_t
@@ -4,7 +4,7 @@
*
* Sphinx JavaScript utilties for the full-text search.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -150,13 +150,13 @@ var Search = {
objectterms.push(tmp[i].toLowerCase());
}
- if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
+ if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
tmp[i] === "") {
// skip this "word"
continue;
}
// stem the word
- var word = stemmer.stemWord(tmp[i]).toLowerCase();
+ var word = stemmer.stemWord(tmp[i].toLowerCase());
var toAppend;
// select the correct list
if (word[0] == '-') {
@@ -370,7 +370,7 @@ var Search = {
for (i = 0; i < searchterms.length; i++) {
var word = searchterms[i];
// no match but word was a required one
- if (!(files = terms[word]))
+ if ((files = terms[word]) === undefined)
break;
if (files.length === undefined) {
files = [files];
diff --git a/sphinx/themes/basic/static/websupport.js b/sphinx/themes/basic/static/websupport.js
index 19fcda56..71c0a136 100644
--- a/sphinx/themes/basic/static/websupport.js
+++ b/sphinx/themes/basic/static/websupport.js
@@ -4,7 +4,7 @@
*
* sphinx.websupport utilties for all documentation.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/default/layout.html b/sphinx/themes/default/layout.html
index d237f5ed..62319059 100644
--- a/sphinx/themes/default/layout.html
+++ b/sphinx/themes/default/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the default theme.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/default/static/default.css_t b/sphinx/themes/default/static/default.css_t
index 5db77108..cbdc7fbb 100644
--- a/sphinx/themes/default/static/default.css_t
+++ b/sphinx/themes/default/static/default.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- default theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/default/static/sidebar.js_t b/sphinx/themes/default/static/sidebar.js_t
index 24200525..87315692 100644
--- a/sphinx/themes/default/static/sidebar.js_t
+++ b/sphinx/themes/default/static/sidebar.js_t
@@ -16,7 +16,7 @@
* Once the browser is closed the cookie is deleted and the position
* reset to the default (expanded).
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -148,7 +148,7 @@ $(function() {
var items = document.cookie.split(';');
for(var k=0; k<items.length; k++) {
var key_val = items[k].split('=');
- var key = key_val[0];
+ var key = key_val[0].replace(/ /, ""); // strip leading spaces
if (key == 'sidebar') {
var value = key_val[1];
if ((value == 'collapsed') && (!sidebar_is_collapsed()))
diff --git a/sphinx/themes/epub/epub-cover.html b/sphinx/themes/epub/epub-cover.html
index 5872fb7f..e5a75d7b 100644
--- a/sphinx/themes/epub/epub-cover.html
+++ b/sphinx/themes/epub/epub-cover.html
@@ -4,7 +4,7 @@
Sample template for the html cover page.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/epub/layout.html b/sphinx/themes/epub/layout.html
index 43713377..49183f1e 100644
--- a/sphinx/themes/epub/layout.html
+++ b/sphinx/themes/epub/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the epub theme.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/epub/static/epub.css b/sphinx/themes/epub/static/epub.css
index b46c0873..30912b9a 100644
--- a/sphinx/themes/epub/static/epub.css
+++ b/sphinx/themes/epub/static/epub.css
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- epub theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -92,6 +92,7 @@ div.sphinxsidebar input {
img {
border: 0;
+ max-width: 100%;
}
/* -- search page ----------------------------------------------------------- */
@@ -196,6 +197,18 @@ p.rubric {
font-weight: bold;
}
+.align-left {
+ text-align: left;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-right {
+ text-align: right;
+}
+
/* -- sidebars -------------------------------------------------------------- */
div.sidebar {
@@ -279,8 +292,37 @@ th {
padding-right: 5px;
}
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px;
+}
+
+table.citation td {
+ border-bottom: none;
+}
+
/* -- other body styles ----------------------------------------------------- */
+ol.arabic {
+ list-style: decimal;
+}
+
+ol.loweralpha {
+ list-style: lower-alpha;
+}
+
+ol.upperalpha {
+ list-style: upper-alpha;
+}
+
+ol.lowerroman {
+ list-style: lower-roman;
+}
+
+ol.upperroman {
+ list-style: upper-roman;
+}
+
dl {
margin-bottom: 15px;
}
@@ -317,10 +359,6 @@ dl.glossary dt {
margin: 0;
}
-.refcount {
- color: #060;
-}
-
.optional {
font-size: 130%;
}
@@ -339,10 +377,39 @@ dl.glossary dt {
background-color: #dddddd;
}
+.line-block {
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.line-block .line-block {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+ font-style: italic;
+}
+
+.accelerator {
+ text-decoration: underline;
+}
+
+.classifier {
+ font-style: oblique;
+}
+
+abbr, acronym {
+ border-bottom: dotted 1px;
+ cursor: help;
+}
+
/* -- code displays --------------------------------------------------------- */
pre {
- font-family: "LiberationNarrow", monospace;
+ font-family: monospace;
overflow: auto;
overflow-y: hidden;
}
@@ -363,7 +430,7 @@ table.highlighttable td {
}
tt {
- font-family: "LiberationNarrow", monospace;
+ font-family: monospace;
}
tt.descname {
@@ -435,6 +502,7 @@ table .link-target {
/* -- font-face ------------------------------------------------------------- */
+/*
@font-face {
font-family: "LiberationNarrow";
font-style: normal;
@@ -463,4 +531,4 @@ table .link-target {
src: url("res:///Data/fonts/LiberationNarrow-BoldItalic.otf")
format("opentype");
}
-
+*/ \ No newline at end of file
diff --git a/sphinx/themes/haiku/layout.html b/sphinx/themes/haiku/layout.html
index 337d0ca2..569763ba 100644
--- a/sphinx/themes/haiku/layout.html
+++ b/sphinx/themes/haiku/layout.html
@@ -4,12 +4,10 @@
Sphinx layout template for the haiku theme.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
-{% set script_files = script_files + ['_static/theme_extras.js'] %}
-{% set css_files = css_files + ['_static/print.css'] %}
{# do not display relbars #}
{% block relbar1 %}{% endblock %}
diff --git a/sphinx/themes/haiku/static/haiku.css_t b/sphinx/themes/haiku/static/haiku.css_t
index 87b116ae..bd81db0a 100644
--- a/sphinx/themes/haiku/static/haiku.css_t
+++ b/sphinx/themes/haiku/static/haiku.css_t
@@ -16,7 +16,7 @@
* Braden Ewing <brewin@gmail.com>
* Humdinger <humdingerb@gmail.com>
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -366,6 +366,6 @@ div.viewcode-block:target {
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
- margin: -1px -12px;
+ margin: -1px -10px;
padding: 0 12px;
}
diff --git a/sphinx/themes/nature/static/nature.css_t b/sphinx/themes/nature/static/nature.css_t
index 3c492034..ff891488 100644
--- a/sphinx/themes/nature/static/nature.css_t
+++ b/sphinx/themes/nature/static/nature.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- nature theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/pyramid/static/epub.css b/sphinx/themes/pyramid/static/epub.css
index cb2df575..7465a421 100644
--- a/sphinx/themes/pyramid/static/epub.css
+++ b/sphinx/themes/pyramid/static/epub.css
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- default theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/pyramid/static/pyramid.css_t b/sphinx/themes/pyramid/static/pyramid.css_t
index c4e94908..168e52db 100644
--- a/sphinx/themes/pyramid/static/pyramid.css_t
+++ b/sphinx/themes/pyramid/static/pyramid.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- pylons theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/scrolls/layout.html b/sphinx/themes/scrolls/layout.html
index 48e5e4e4..a27f60a9 100644
--- a/sphinx/themes/scrolls/layout.html
+++ b/sphinx/themes/scrolls/layout.html
@@ -5,7 +5,7 @@
Sphinx layout template for the scrolls theme, originally written
by Armin Ronacher.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/scrolls/static/print.css b/sphinx/themes/scrolls/static/print.css
index fb633d87..715d90ab 100644
--- a/sphinx/themes/scrolls/static/print.css
+++ b/sphinx/themes/scrolls/static/print.css
@@ -1,5 +1,7 @@
-div.header, div.relnav, #toc { display: none; }
-#contentwrapper { padding: 0; margin: 0; border: none; }
-body { color: black; background-color: white; }
-div.footer { border-top: 1px solid #888; color: #888; margin-top: 1cm; }
-div.footer a { text-decoration: none; }
+@media print {
+ div.header, div.relnav, #toc { display: none; }
+ #contentwrapper { padding: 0; margin: 0; border: none; }
+ body { color: black; background-color: white; }
+ div.footer { border-top: 1px solid #888; color: #888; margin-top: 1cm; }
+ div.footer a { text-decoration: none; }
+}
diff --git a/sphinx/themes/scrolls/static/scrolls.css_t b/sphinx/themes/scrolls/static/scrolls.css_t
index c335f167..197aef29 100644
--- a/sphinx/themes/scrolls/static/scrolls.css_t
+++ b/sphinx/themes/scrolls/static/scrolls.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- scrolls theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/sphinxdoc/layout.html b/sphinx/themes/sphinxdoc/layout.html
index 4ffeb6ed..5bf78eb5 100644
--- a/sphinx/themes/sphinxdoc/layout.html
+++ b/sphinx/themes/sphinxdoc/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the sphinxdoc theme.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t b/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t
index af498257..0f3b9aa6 100644
--- a/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t
+++ b/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t
@@ -5,7 +5,7 @@
* Sphinx stylesheet -- sphinxdoc theme. Originally created by
* Armin Ronacher for Werkzeug.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/traditional/static/traditional.css_t b/sphinx/themes/traditional/static/traditional.css_t
index 6c6bd5f5..c0328b28 100644
--- a/sphinx/themes/traditional/static/traditional.css_t
+++ b/sphinx/themes/traditional/static/traditional.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- traditional docs.python.org theme.
*
- * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -603,10 +603,6 @@ dl.glossary dt {
font-size: 1.1em;
}
-.refcount {
- color: #060;
-}
-
th {
text-align: left;
padding-right: 5px;
diff --git a/sphinx/theming.py b/sphinx/theming.py
index dd20aa2b..abc09c17 100644
--- a/sphinx/theming.py
+++ b/sphinx/theming.py
@@ -5,7 +5,7 @@
Theming support for HTML builders.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -16,6 +16,11 @@ import tempfile
import ConfigParser
from os import path
+try:
+ import pkg_resources
+except ImportError:
+ pkg_resources = False
+
from sphinx import package_dir
from sphinx.errors import ThemeError
@@ -59,10 +64,22 @@ class Theme(object):
tinfo = None
cls.themes[tname] = (path.join(themedir, theme), tinfo)
+ @classmethod
+ def load_extra_themes(cls):
+ for themedir in load_theme_plugins():
+ if not path.isdir(themedir):
+ continue
+ for theme in os.listdir(themedir):
+ if not path.isfile(path.join(themedir, theme, THEMECONF)):
+ continue
+ cls.themes[theme] = (path.join(themedir, theme), None)
+
def __init__(self, name):
if name not in self.themes:
- raise ThemeError('no theme named %r found '
- '(missing theme.conf?)' % name)
+ self.load_extra_themes()
+ if name not in self.themes:
+ raise ThemeError('no theme named %r found '
+ '(missing theme.conf?)' % name)
self.name = name
tdir, tinfo = self.themes[name]
@@ -152,3 +169,29 @@ class Theme(object):
pass
if self.base:
self.base.cleanup()
+
+
+def load_theme_plugins():
+ """load plugins by using``sphinx_themes`` section in setuptools entry_points.
+ This API will return list of directory that contain some theme directory.
+ """
+
+ if not pkg_resources:
+ return []
+
+ theme_paths = []
+
+ for plugin in pkg_resources.iter_entry_points('sphinx_themes'):
+ func_or_path = plugin.load()
+ try:
+ path = func_or_path()
+ except:
+ path = func_or_path
+
+ if isinstance(path, basestring):
+ theme_paths.append(path)
+ else:
+ raise ThemeError('Plugin %r does not response correctly.' %
+ plugin.module_name)
+
+ return theme_paths
diff --git a/sphinx/transforms.py b/sphinx/transforms.py
index 324df2ad..8919d6ce 100644
--- a/sphinx/transforms.py
+++ b/sphinx/transforms.py
@@ -5,7 +5,7 @@
Docutils transforms used by Sphinx when reading documents.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -163,7 +163,8 @@ class Locale(Transform):
settings, source = self.document.settings, self.document['source']
# XXX check if this is reliable
assert source.startswith(env.srcdir)
- docname = path.splitext(relative_path(env.srcdir, source))[0]
+ docname = path.splitext(relative_path(path.join(env.srcdir, 'dummy'),
+ source))[0]
textdomain = find_catalog(docname,
self.document.settings.gettext_compact)
@@ -181,7 +182,8 @@ class Locale(Transform):
for node, msg in extract_messages(self.document):
msgstr = catalog.gettext(msg)
# XXX add marker to untranslated parts
- if not msgstr or msgstr == msg: # as-of-yet untranslated
+ if not msgstr or msgstr == msg or not msgstr.strip():
+ # as-of-yet untranslated
continue
# Avoid "Literal block expected; none found." warnings.
@@ -195,7 +197,10 @@ class Locale(Transform):
patch = new_document(source, settings)
CustomLocaleReporter(node.source, node.line).set_reporter(patch)
parser.parse(msgstr, patch)
- patch = patch[0]
+ try:
+ patch = patch[0]
+ except IndexError: # empty node
+ pass
# XXX doctest and other block markup
if not isinstance(patch, nodes.paragraph):
continue # skip for now
@@ -238,8 +243,14 @@ class Locale(Transform):
self.document.ids.pop(_id, None)
# re-entry with new named section node.
- self.document.note_implicit_target(
- section_node, section_node)
+ self.document.note_implicit_target(section_node)
+
+ # replace target's refname to new target name
+ def is_named_target(node):
+ return isinstance(node, nodes.target) and \
+ node.get('refname') == old_name
+ for old_target in self.document.traverse(is_named_target):
+ old_target['refname'] = new_name
processed = True
@@ -291,7 +302,10 @@ class Locale(Transform):
patch = new_document(source, settings)
CustomLocaleReporter(node.source, node.line).set_reporter(patch)
parser.parse(msgstr, patch)
- patch = patch[0]
+ try:
+ patch = patch[0]
+ except IndexError: # empty node
+ pass
# XXX doctest and other block markup
if not isinstance(patch, nodes.paragraph):
continue # skip for now
@@ -402,11 +416,17 @@ class Locale(Transform):
for old in old_refs:
key = get_ref_key(old)
if key:
- xref_reftarget_map[key] = old["reftarget"]
+ xref_reftarget_map[key] = old.attributes
for new in new_refs:
key = get_ref_key(new)
- if key in xref_reftarget_map:
- new['reftarget'] = xref_reftarget_map[key]
+ # Copy attributes to keep original node behavior. Especially
+ # copying 'reftarget', 'py:module', 'py:class' are needed.
+ for k, v in xref_reftarget_map.get(key, {}).items():
+ # Note: This implementation overwrite all attributes.
+ # if some attributes `k` should not be overwritten,
+ # you should provide exclude list as:
+ # `if k not in EXCLUDE_LIST: new[k] = v`
+ new[k] = v
# update leaves
for child in patch.children:
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index 8bedda12..cf3ae327 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -5,7 +5,7 @@
Utility functions for Sphinx.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -17,6 +17,7 @@ import fnmatch
import tempfile
import posixpath
import traceback
+import unicodedata
from os import path
from codecs import open, BOM_UTF8
from collections import deque
@@ -50,6 +51,14 @@ def docname_join(basedocname, docname):
posixpath.join('/' + basedocname, '..', docname))[1:]
+def path_stabilize(filepath):
+ "normalize path separater and unicode string"
+ newpath = filepath.replace(os.path.sep, SEP)
+ if isinstance(newpath, unicode):
+ newpath = unicodedata.normalize('NFC', newpath)
+ return newpath
+
+
def get_matching_files(dirname, exclude_matchers=()):
"""Get all file names in a directory, recursively.
@@ -62,9 +71,9 @@ def get_matching_files(dirname, exclude_matchers=()):
for root, dirs, files in walk(dirname, followlinks=True):
relativeroot = root[dirlen:]
- qdirs = enumerate(path.join(relativeroot, dn).replace(os.path.sep, SEP)
+ qdirs = enumerate(path_stabilize(path.join(relativeroot, dn))
for dn in dirs)
- qfiles = enumerate(path.join(relativeroot, fn).replace(os.path.sep, SEP)
+ qfiles = enumerate(path_stabilize(path.join(relativeroot, fn))
for fn in files)
for matcher in exclude_matchers:
qdirs = [entry for entry in qdirs if not matcher(entry[1])]
@@ -133,7 +142,7 @@ def copy_static_entry(source, targetdir, builder, context={},
Handles all possible cases of files, directories and subdirectories.
"""
if exclude_matchers:
- relpath = relative_path(builder.srcdir, source)
+ relpath = relative_path(path.join(builder.srcdir, 'dummy'), source)
for matcher in exclude_matchers:
if matcher(relpath):
return
@@ -149,18 +158,17 @@ def copy_static_entry(source, targetdir, builder, context={},
else:
copyfile(source, target)
elif path.isdir(source):
- if level == 0:
- for entry in os.listdir(source):
- if entry.startswith('.'):
- continue
- copy_static_entry(path.join(source, entry), targetdir,
- builder, context, level=1,
- exclude_matchers=exclude_matchers)
- else:
- target = path.join(targetdir, path.basename(source))
- if path.exists(target):
- shutil.rmtree(target)
- shutil.copytree(source, target)
+ if not path.isdir(targetdir):
+ os.mkdir(targetdir)
+ for entry in os.listdir(source):
+ if entry.startswith('.'):
+ continue
+ newtarget = targetdir
+ if path.isdir(path.join(source, entry)):
+ newtarget = path.join(targetdir, entry)
+ copy_static_entry(path.join(source, entry), newtarget,
+ builder, context, level=level+1,
+ exclude_matchers=exclude_matchers)
_DEBUG_HEADER = '''\
@@ -168,9 +176,10 @@ _DEBUG_HEADER = '''\
# Python version: %s
# Docutils version: %s %s
# Jinja2 version: %s
+# Loaded extensions:
'''
-def save_traceback():
+def save_traceback(app):
"""Save the current exception's traceback in a temporary file."""
import platform
exc = traceback.format_exc()
@@ -180,6 +189,11 @@ def save_traceback():
platform.python_version(),
docutils.__version__, docutils.__version_details__,
jinja2.__version__)).encode('utf-8'))
+ if app is not None:
+ for extname, extmod in app._extensions.iteritems():
+ os.write(fd, ('# %s from %s\n' % (
+ extname, getattr(extmod, '__file__', 'unknown'))
+ ).encode('utf-8'))
os.write(fd, exc.encode('utf-8'))
os.close(fd)
return path
@@ -323,15 +337,15 @@ def parselinenos(spec, total):
def force_decode(string, encoding):
"""Forcibly get a unicode string out of a bytestring."""
if isinstance(string, bytes):
- if encoding:
- string = string.decode(encoding)
- else:
- try:
+ try:
+ if encoding:
+ string = string.decode(encoding)
+ else:
# try decoding with utf-8, should only work for real UTF-8
string = string.decode('utf-8')
- except UnicodeError:
- # last resort -- can't fail
- string = string.decode('latin1')
+ except UnicodeError:
+ # last resort -- can't fail
+ string = string.decode('latin1')
return string
diff --git a/sphinx/util/compat.py b/sphinx/util/compat.py
index 4b7cbf6d..9e5d619d 100644
--- a/sphinx/util/compat.py
+++ b/sphinx/util/compat.py
@@ -5,7 +5,7 @@
Stuff for docutils compatibility.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/console.py b/sphinx/util/console.py
index b3b27a48..c2330102 100644
--- a/sphinx/util/console.py
+++ b/sphinx/util/console.py
@@ -5,7 +5,7 @@
Format colored console output.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/docfields.py b/sphinx/util/docfields.py
index b59d3f31..d6f46ab9 100644
--- a/sphinx/util/docfields.py
+++ b/sphinx/util/docfields.py
@@ -6,7 +6,7 @@
"Doc fields" are reST field lists in object descriptions that will
be domain-specifically transformed to a more appealing presentation.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -67,7 +67,7 @@ class Field(object):
fieldname += nodes.Text(' ')
fieldname += self.make_xref(self.rolename, domain,
fieldarg, nodes.Text)
- fieldbody = nodes.field_body('', nodes.paragraph('', '', content))
+ fieldbody = nodes.field_body('', nodes.paragraph('', '', *content))
return nodes.field('', fieldname, fieldbody)
@@ -219,7 +219,9 @@ class DocFieldTransformer(object):
if typedesc is None or typedesc.has_arg != bool(fieldarg):
# either the field name is unknown, or the argument doesn't
# match the spec; capitalize field name and be done with it
- new_fieldname = fieldtype.capitalize() + ' ' + fieldarg
+ new_fieldname = fieldtype[0:1].upper() + fieldtype[1:]
+ if fieldarg:
+ new_fieldname += ' ' + fieldarg
fieldname[0] = nodes.Text(new_fieldname)
entries.append(field)
continue
@@ -270,10 +272,10 @@ class DocFieldTransformer(object):
groupindices[typename] = len(entries)
group = [typedesc, []]
entries.append(group)
- entry = typedesc.make_entry(fieldarg, translatable_content)
+ entry = typedesc.make_entry(fieldarg, [translatable_content])
group[1].append(entry)
else:
- entry = typedesc.make_entry(fieldarg, translatable_content)
+ entry = typedesc.make_entry(fieldarg, [translatable_content])
entries.append([typedesc, entry])
# step 2: all entries are collected, construct the new field list
diff --git a/sphinx/util/docstrings.py b/sphinx/util/docstrings.py
index d45b938d..71381305 100644
--- a/sphinx/util/docstrings.py
+++ b/sphinx/util/docstrings.py
@@ -5,7 +5,7 @@
Utilities for docstring processing.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py
index 95b7cb1e..cdbfea76 100644
--- a/sphinx/util/inspect.py
+++ b/sphinx/util/inspect.py
@@ -5,7 +5,7 @@
Helpers for inspecting Python modules.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -16,10 +16,46 @@ import sys
inspect = __import__('inspect')
from sphinx.util import force_decode
-from sphinx.util.pycompat import bytes
+from sphinx.util.pycompat import bytes, builtins
-if sys.version_info >= (2, 5):
+if sys.version_info >= (3, 0):
+ from functools import partial
+ def getargspec(func):
+ """Like inspect.getargspec but supports functools.partial as well."""
+ if inspect.ismethod(func):
+ func = func.__func__
+ if type(func) is partial:
+ orig_func = func.func
+ argspec = getargspec(orig_func)
+ args = list(argspec[0])
+ defaults = list(argspec[3] or ())
+ kwoargs = list(argspec[4])
+ kwodefs = dict(argspec[5] or {})
+ if func.args:
+ args = args[len(func.args):]
+ for arg in func.keywords or ():
+ try:
+ i = args.index(arg) - len(args)
+ del args[i]
+ try:
+ del defaults[i]
+ except IndexError:
+ pass
+ except ValueError: # must be a kwonly arg
+ i = kwoargs.index(arg)
+ del kwoargs[i]
+ del kwodefs[arg]
+ return inspect.FullArgSpec(args, argspec[1], argspec[2],
+ tuple(defaults), kwoargs,
+ kwodefs, argspec[6])
+ while hasattr(func, '__wrapped__'):
+ func = func.__wrapped__
+ if not inspect.isfunction(func):
+ raise TypeError('%r is not a Python function' % func)
+ return inspect.getfullargspec(func)
+
+elif sys.version_info >= (2, 5):
from functools import partial
def getargspec(func):
"""Like inspect.getargspec but supports functools.partial as well."""
@@ -101,3 +137,20 @@ def safe_repr(object):
if isinstance(s, bytes):
return force_decode(s, None).replace('\n', ' ')
return s.replace('\n', ' ')
+
+
+def is_builtin_class_method(obj, attr_name):
+ """If attr_name is implemented at builtin class, return True.
+
+ >>> is_builtin_class_method(int, '__init__')
+ True
+
+ Why this function needed? CPython implements int.__init__ by Descriptor
+ but PyPy implements it by pure Python code.
+ """
+ classes = [c for c in inspect.getmro(obj) if attr_name in c.__dict__]
+ cls = classes[0] if classes else object
+
+ if not hasattr(builtins, safe_getattr(cls, '__name__', '')):
+ return False
+ return getattr(builtins, safe_getattr(cls, '__name__', '')) is cls
diff --git a/sphinx/util/jsdump.py b/sphinx/util/jsdump.py
index 51fe7338..85845a72 100644
--- a/sphinx/util/jsdump.py
+++ b/sphinx/util/jsdump.py
@@ -6,7 +6,7 @@
This module implements a simple JavaScript serializer.
Uses the basestring encode function from simplejson by Bob Ippolito.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/jsonimpl.py b/sphinx/util/jsonimpl.py
index aa0ea825..8ccbf0cc 100644
--- a/sphinx/util/jsonimpl.py
+++ b/sphinx/util/jsonimpl.py
@@ -5,7 +5,7 @@
JSON serializer implementation wrapper.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/matching.py b/sphinx/util/matching.py
index b4c71076..51b2056d 100644
--- a/sphinx/util/matching.py
+++ b/sphinx/util/matching.py
@@ -5,7 +5,7 @@
Pattern-matching utility functions for Sphinx.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
index a8395f60..1a923d11 100644
--- a/sphinx/util/nodes.py
+++ b/sphinx/util/nodes.py
@@ -5,7 +5,7 @@
Docutils node-related utility functions for Sphinx.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -58,8 +58,9 @@ def extract_messages(doctree):
# this issue was filed to Docutils tracker:
# sf.net/tracker/?func=detail&aid=3599485&group_id=38414&atid=422032
# sourceforge.net/p/docutils/patches/108/
- if isinstance(node, (nodes.caption, nodes.title)) and not node.source:
- node.source = node.parent.source
+ if isinstance(node, (nodes.caption, nodes.title, nodes.rubric)) \
+ and not node.source:
+ node.source = find_source_node(node)
node.line = 0 #need fix docutils to get `node.line`
if not node.source:
@@ -77,6 +78,18 @@ def extract_messages(doctree):
yield node, msg
+def find_source_node(node):
+ for pnode in traverse_parent(node):
+ if pnode.source:
+ return pnode.source
+
+
+def traverse_parent(node):
+ while node:
+ yield node
+ node = node.parent
+
+
def traverse_translatable_index(doctree):
"""Traverse translatable index node from a document tree."""
def is_block_index(node):
diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py
index f3557c3e..d7b292b3 100644
--- a/sphinx/util/osutil.py
+++ b/sphinx/util/osutil.py
@@ -5,7 +5,7 @@
Operating system-related utility functions for Sphinx.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -77,7 +77,14 @@ def walk(top, topdown=True, followlinks=False):
dirs, nondirs = [], []
for name in names:
- if path.isdir(path.join(top, name)):
+ try:
+ fullpath = path.join(top, name)
+ except UnicodeError:
+ print >>sys.stderr, (
+ '%s:: ERROR: non-ASCII filename not supported on this '
+ 'filesystem encoding %r, skipped.' % (name, fs_encoding))
+ continue
+ if path.isdir(fullpath):
dirs.append(name)
else:
nondirs.append(name)
@@ -176,3 +183,16 @@ def find_catalog_files(docname, srcdir, locale_dirs, lang, compaction):
fs_encoding = sys.getfilesystemencoding() or sys.getdefaultencoding()
+
+
+if sys.version_info < (3, 0):
+ bytes = str
+else:
+ bytes = bytes
+
+
+def abspath(pathdir):
+ pathdir = path.abspath(pathdir)
+ if isinstance(pathdir, bytes):
+ pathdir = pathdir.decode(fs_encoding)
+ return pathdir
diff --git a/sphinx/util/png.py b/sphinx/util/png.py
index 61c428bf..65fc4d8d 100644
--- a/sphinx/util/png.py
+++ b/sphinx/util/png.py
@@ -5,7 +5,7 @@
PNG image manipulation helpers.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py
index 3d252c91..17f8871e 100644
--- a/sphinx/util/pycompat.py
+++ b/sphinx/util/pycompat.py
@@ -5,7 +5,7 @@
Stuff for Python version compatibility.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -30,6 +30,9 @@ if sys.version_info >= (3, 0):
# safely encode a string for printing to the terminal
def terminal_safe(s):
return s.encode('ascii', 'backslashreplace').decode('ascii')
+ # some kind of default system encoding; should be used with a lenient
+ # error handler
+ sys_encoding = sys.getdefaultencoding()
# support for running 2to3 over config files
def convert_with_2to3(filepath):
from lib2to3.refactor import RefactoringTool, get_fixers_from_package
@@ -45,6 +48,8 @@ if sys.version_info >= (3, 0):
# try to match ParseError details with SyntaxError details
raise SyntaxError(err.msg, (filepath, lineno, offset, err.value))
return unicode(tree)
+ from itertools import zip_longest # Python 3 name
+ import builtins
else:
# Python 2
@@ -62,6 +67,13 @@ else:
# safely encode a string for printing to the terminal
def terminal_safe(s):
return s.encode('ascii', 'backslashreplace')
+ # some kind of default system encoding; should be used with a lenient
+ # error handler
+ import locale
+ sys_encoding = locale.getpreferredencoding()
+ # use Python 3 name
+ from itertools import izip_longest as zip_longest
+ import __builtin__ as builtins
def execfile_(filepath, _globals):
diff --git a/sphinx/util/tags.py b/sphinx/util/tags.py
index a6e62140..2a9b2a02 100644
--- a/sphinx/util/tags.py
+++ b/sphinx/util/tags.py
@@ -3,7 +3,7 @@
sphinx.util.tags
~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/texescape.py b/sphinx/util/texescape.py
index 926208a0..c0619f46 100644
--- a/sphinx/util/texescape.py
+++ b/sphinx/util/texescape.py
@@ -5,7 +5,7 @@
TeX escaping helper.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/util/websupport.py b/sphinx/util/websupport.py
index a20947a8..050c528a 100644
--- a/sphinx/util/websupport.py
+++ b/sphinx/util/websupport.py
@@ -3,7 +3,7 @@
sphinx.util.websupport
~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/versioning.py b/sphinx/versioning.py
index a16751bb..f10e0f21 100644
--- a/sphinx/versioning.py
+++ b/sphinx/versioning.py
@@ -6,7 +6,7 @@
Implements the low-level algorithms Sphinx uses for the versioning of
doctrees.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from uuid import uuid4
diff --git a/sphinx/websupport/__init__.py b/sphinx/websupport/__init__.py
index e82ac8bb..0e9131d0 100644
--- a/sphinx/websupport/__init__.py
+++ b/sphinx/websupport/__init__.py
@@ -5,7 +5,7 @@
Base Module for web support functions.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/errors.py b/sphinx/websupport/errors.py
index a0bc0737..c401e8d9 100644
--- a/sphinx/websupport/errors.py
+++ b/sphinx/websupport/errors.py
@@ -5,7 +5,7 @@
Contains Error classes for the web support package.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/search/__init__.py b/sphinx/websupport/search/__init__.py
index a5b40117..45068d29 100644
--- a/sphinx/websupport/search/__init__.py
+++ b/sphinx/websupport/search/__init__.py
@@ -5,7 +5,7 @@
Server side search support for the web support package.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/search/nullsearch.py b/sphinx/websupport/search/nullsearch.py
index bfa78ce7..e842356d 100644
--- a/sphinx/websupport/search/nullsearch.py
+++ b/sphinx/websupport/search/nullsearch.py
@@ -5,7 +5,7 @@
The default search adapter, does nothing.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/search/whooshsearch.py b/sphinx/websupport/search/whooshsearch.py
index f6343e7e..6d1f9de4 100644
--- a/sphinx/websupport/search/whooshsearch.py
+++ b/sphinx/websupport/search/whooshsearch.py
@@ -5,7 +5,7 @@
Whoosh search adapter.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/search/xapiansearch.py b/sphinx/websupport/search/xapiansearch.py
index 6476a71d..bd24879c 100644
--- a/sphinx/websupport/search/xapiansearch.py
+++ b/sphinx/websupport/search/xapiansearch.py
@@ -5,7 +5,7 @@
Xapian search adapter.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/storage/__init__.py b/sphinx/websupport/storage/__init__.py
index 871aa03b..d9937d84 100644
--- a/sphinx/websupport/storage/__init__.py
+++ b/sphinx/websupport/storage/__init__.py
@@ -5,7 +5,7 @@
Storage for the websupport package.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/storage/differ.py b/sphinx/websupport/storage/differ.py
index e088f982..c6966a72 100644
--- a/sphinx/websupport/storage/differ.py
+++ b/sphinx/websupport/storage/differ.py
@@ -5,7 +5,7 @@
A differ for creating an HTML representations of proposal diffs
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/storage/sqlalchemy_db.py b/sphinx/websupport/storage/sqlalchemy_db.py
index 587b2741..7baf8830 100644
--- a/sphinx/websupport/storage/sqlalchemy_db.py
+++ b/sphinx/websupport/storage/sqlalchemy_db.py
@@ -6,7 +6,7 @@
SQLAlchemy table and mapper definitions used by the
:class:`sphinx.websupport.storage.sqlalchemystorage.SQLAlchemyStorage`.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/websupport/storage/sqlalchemystorage.py b/sphinx/websupport/storage/sqlalchemystorage.py
index 56528f4b..354c710e 100644
--- a/sphinx/websupport/storage/sqlalchemystorage.py
+++ b/sphinx/websupport/storage/sqlalchemystorage.py
@@ -5,7 +5,7 @@
An SQLAlchemy storage backend.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/writers/__init__.py b/sphinx/writers/__init__.py
index 40db0d69..a7541b27 100644
--- a/sphinx/writers/__init__.py
+++ b/sphinx/writers/__init__.py
@@ -5,6 +5,6 @@
Custom docutils writers.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index f6716957..c69c2e09 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -5,7 +5,7 @@
docutils writers handling Sphinx' custom nodes.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -79,6 +79,7 @@ class HTMLTranslator(BaseTranslator):
self.permalink_text = self.encode(self.permalink_text)
self.secnumber_suffix = builder.config.html_secnumber_suffix
self.param_separator = ''
+ self.optional_param_level = 0
self._table_row_index = 0
def visit_start_of_file(self, node):
@@ -131,24 +132,40 @@ class HTMLTranslator(BaseTranslator):
def visit_desc_parameterlist(self, node):
self.body.append('<big>(</big>')
self.first_param = 1
+ self.optional_param_level = 0
+ # How many required parameters are left.
+ self.required_params_left = sum([isinstance(c, addnodes.desc_parameter)
+ for c in node.children])
self.param_separator = node.child_text_separator
def depart_desc_parameterlist(self, node):
self.body.append('<big>)</big>')
+ # If required parameters are still to come, then put the comma after
+ # the parameter. Otherwise, put the comma before. This ensures that
+ # signatures like the following render correctly (see issue #1001):
+ #
+ # foo([a, ]b, c[, d])
+ #
def visit_desc_parameter(self, node):
- if not self.first_param:
- self.body.append(self.param_separator)
- else:
+ if self.first_param:
self.first_param = 0
+ elif not self.required_params_left:
+ self.body.append(self.param_separator)
+ if self.optional_param_level == 0:
+ self.required_params_left -= 1
if not node.hasattr('noemph'):
self.body.append('<em>')
def depart_desc_parameter(self, node):
if not node.hasattr('noemph'):
self.body.append('</em>')
+ if self.required_params_left:
+ self.body.append(self.param_separator)
def visit_desc_optional(self, node):
+ self.optional_param_level += 1
self.body.append('<span class="optional">[</span>')
def depart_desc_optional(self, node):
+ self.optional_param_level -= 1
self.body.append('<span class="optional">]</span>')
def visit_desc_annotation(self, node):
@@ -161,11 +178,6 @@ class HTMLTranslator(BaseTranslator):
def depart_desc_content(self, node):
self.body.append('</dd>')
- def visit_refcount(self, node):
- self.body.append(self.starttag(node, 'em', '', CLASS='refcount'))
- def depart_refcount(self, node):
- self.body.append('</em>')
-
def visit_versionmodified(self, node):
self.body.append(self.starttag(node, 'div', CLASS=node['type']))
def depart_versionmodified(self, node):
@@ -229,6 +241,12 @@ class HTMLTranslator(BaseTranslator):
self.body.append('.'.join(map(str, numbers)) +
self.secnumber_suffix)
+ # overwritten to avoid emitting empty <ul></ul>
+ def visit_bullet_list(self, node):
+ if len(node) == 1 and node[0].tagname == 'toctree':
+ raise nodes.SkipNode
+ BaseTranslator.visit_bullet_list(self, node)
+
# overwritten
def visit_title(self, node):
BaseTranslator.visit_title(self, node)
@@ -283,12 +301,13 @@ class HTMLTranslator(BaseTranslator):
for production in node:
names.append(production['tokenname'])
maxlen = max(len(name) for name in names)
+ lastname = None
for production in node:
if production['tokenname']:
lastname = production['tokenname'].ljust(maxlen)
self.body.append(self.starttag(production, 'strong', ''))
self.body.append(lastname + '</strong> ::= ')
- else:
+ elif lastname is not None:
self.body.append('%s ' % (' '*len(lastname)))
production.walkabout(self)
self.body.append('\n')
@@ -383,7 +402,10 @@ class HTMLTranslator(BaseTranslator):
node['width'] = str(im.size[0])
if not node.has_key('height'):
node['height'] = str(im.size[1])
- del im
+ try:
+ im.fp.close()
+ except Exception:
+ pass
BaseTranslator.visit_image(self, node)
def visit_toctree(self, node):
@@ -555,6 +577,13 @@ class HTMLTranslator(BaseTranslator):
node['classes'].append('field-odd')
self.body.append(self.starttag(node, 'tr', '', CLASS='field'))
+ def visit_math(self, node, math_env=''):
+ self.builder.warn('using "math" markup without a Sphinx math extension '
+ 'active, please use one of the math extensions '
+ 'described at http://sphinx-doc.org/ext/math.html',
+ (self.builder.current_docname, node.line))
+ raise nodes.SkipNode
+
def unknown_visit(self, node):
raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index a9e98abf..8c9b1f5c 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -8,7 +8,7 @@
Much of this code is adapted from Dave Kuhlman's "docpy" writer from his
docutils sandbox.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -167,6 +167,9 @@ class LaTeXTranslator(nodes.NodeVisitor):
'transition': '\n\n\\bigskip\\hrule{}\\bigskip\n\n',
}
+ # sphinx specific document classes
+ docclasses = ('howto', 'manual')
+
def __init__(self, document, builder):
nodes.NodeVisitor.__init__(self, document)
self.builder = builder
@@ -179,7 +182,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.elements = self.default_elements.copy()
self.elements.update({
- 'wrapperclass': 'sphinx' + document.settings.docclass,
+ 'wrapperclass': self.format_docclass(document.settings.docclass),
'papersize': papersize,
'pointsize': builder.config.latex_font_size,
# if empty, the title is set to the first section title
@@ -261,7 +264,6 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.next_figure_ids = set()
self.next_table_ids = set()
# flags
- self.verbatim = None
self.in_title = 0
self.in_production_list = 0
self.in_footnote = 0
@@ -276,6 +278,13 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.previous_spanning_column = 0
self.remember_multirow = {}
+ def format_docclass(self, docclass):
+ """ prepends prefix to sphinx document classes
+ """
+ if docclass in self.docclasses:
+ docclass = 'sphinx' + docclass
+ return docclass
+
def astext(self):
return (HEADER % self.elements +
self.highlighter.get_stylesheet() +
@@ -369,7 +378,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
widest_label = bi[0]
self.body.append(u'\n\\begin{thebibliography}{%s}\n' % widest_label)
for bi in self.bibitems:
- target = self.hypertarget(bi[2] + ':' + bi[0].lower(),
+ target = self.hypertarget(bi[2] + ':' + bi[3],
withdoc=False)
self.body.append(u'\\bibitem[%s]{%s}{%s %s}\n' %
(bi[0], self.idescape(bi[0]), target, bi[1]))
@@ -605,11 +614,6 @@ class LaTeXTranslator(nodes.NodeVisitor):
def depart_desc_content(self, node):
pass
- def visit_refcount(self, node):
- self.body.append("\\emph{")
- def depart_refcount(self, node):
- self.body.append("}\\\\")
-
def visit_seealso(self, node):
self.body.append(u'\n\n\\strong{%s:}\n\n' % admonitionlabels['seealso'])
def depart_seealso(self, node):
@@ -638,6 +642,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
if isinstance(node.parent, nodes.citation):
self.bibitems[-1][0] = node.astext()
self.bibitems[-1][2] = self.curfilestack[-1]
+ self.bibitems[-1][3] = node.parent['ids'][0]
raise nodes.SkipNode
def visit_tabular_col_spec(self, node):
@@ -700,16 +705,15 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.body.extend(self.tableheaders)
self.body.append('\\endfirsthead\n\n')
self.body.append('\\multicolumn{%s}{c}%%\n' % self.table.colcount)
- self.body.append(r'{{\bfseries \tablename\ \thetable{} -- %s}} \\'
+ self.body.append(r'{{\textsf{\tablename\ \thetable{} -- %s}}} \\'
% _('continued from previous page'))
self.body.append('\n\\hline\n')
self.body.extend(self.tableheaders)
self.body.append('\\endhead\n\n')
- self.body.append(ur'\hline \multicolumn{%s}{|r|}{{%s}} \\ \hline'
+ self.body.append(ur'\hline \multicolumn{%s}{|r|}{{\textsf{%s}}} \\ \hline'
% (self.table.colcount,
_('Continued on next page')))
self.body.append('\n\\endfoot\n\n')
- self.body.append('\\hline\n')
self.body.append('\\endlastfoot\n\n')
else:
self.body.append('\\hline\n')
@@ -739,23 +743,21 @@ class LaTeXTranslator(nodes.NodeVisitor):
# Redirect head output until header is finished. see visit_tbody.
self.body = self.tableheaders
def depart_thead(self, node):
- pass
+ self.body.append('\\hline')
def visit_tbody(self, node):
if not self.table.had_head:
self.visit_thead(node)
self.body = self.tablebody
def depart_tbody(self, node):
- pass
+ self.body.append('\\hline')
def visit_row(self, node):
self.table.col = 0
def depart_row(self, node):
if self.previous_spanning_row == 1:
self.previous_spanning_row = 0
- self.body.append('\\\\\n')
- else:
- self.body.append('\\\\\\hline\n')
+ self.body.append('\\\\\n')
self.table.rowcount += 1
def visit_entry(self, node):
@@ -782,7 +784,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.body.append('}{l|}{')
context += '}'
if isinstance(node.parent.parent, nodes.thead):
- self.body.append('\\textbf{\\relax ')
+ self.body.append('\\textsf{\\relax ')
context += '}'
if self.remember_multirow.get(self.table.col + 1, 0) > 1:
self.remember_multirow[self.table.col + 1] -= 1
@@ -1188,7 +1190,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
id = self.curfilestack[-1] + ':' + uri[1:]
self.body.append(self.hyperlink(id))
if self.builder.config.latex_show_pagerefs and not \
- self.in_productionlist:
+ self.in_production_list:
self.context.append('}} (%s)' % self.hyperpageref(id))
else:
self.context.append('}}')
@@ -1264,7 +1266,8 @@ class LaTeXTranslator(nodes.NodeVisitor):
def visit_citation(self, node):
# TODO maybe use cite bibitems
- self.bibitems.append(['', '', '']) # [citeid, citetext, docname]
+ # bibitem: [citelabel, citetext, docname, citeid]
+ self.bibitems.append(['', '', '', ''])
self.context.append(len(self.body))
def depart_citation(self, node):
size = self.context.pop()
@@ -1314,36 +1317,40 @@ class LaTeXTranslator(nodes.NodeVisitor):
raise UnsupportedError('%s:%s: literal blocks in footnotes are '
'not supported by LaTeX' %
(self.curfilestack[-1], node.line))
- self.verbatim = ''
+ if node.rawsource != node.astext():
+ # most probably a parsed-literal block -- don't highlight
+ self.body.append('\\begin{alltt}\n')
+ else:
+ code = node.astext().rstrip('\n')
+ lang = self.hlsettingstack[-1][0]
+ linenos = code.count('\n') >= self.hlsettingstack[-1][1] - 1
+ highlight_args = node.get('highlight_args', {})
+ if 'language' in node:
+ # code-block directives
+ lang = node['language']
+ highlight_args['force'] = True
+ if 'linenos' in node:
+ linenos = node['linenos']
+ def warner(msg):
+ self.builder.warn(msg, (self.curfilestack[-1], node.line))
+ hlcode = self.highlighter.highlight_block(code, lang, warn=warner,
+ linenos=linenos, **highlight_args)
+ # workaround for Unicode issue
+ hlcode = hlcode.replace(u'€', u'@texteuro[]')
+ # must use original Verbatim environment and "tabular" environment
+ if self.table:
+ hlcode = hlcode.replace('\\begin{Verbatim}',
+ '\\begin{OriginalVerbatim}')
+ self.table.has_problematic = True
+ self.table.has_verbatim = True
+ # get consistent trailer
+ hlcode = hlcode.rstrip()[:-14] # strip \end{Verbatim}
+ hlcode = hlcode.rstrip() + '\n'
+ self.body.append('\n' + hlcode + '\\end{%sVerbatim}\n' %
+ (self.table and 'Original' or ''))
+ raise nodes.SkipNode
def depart_literal_block(self, node):
- code = self.verbatim.rstrip('\n')
- lang = self.hlsettingstack[-1][0]
- linenos = code.count('\n') >= self.hlsettingstack[-1][1] - 1
- highlight_args = node.get('highlight_args', {})
- if 'language' in node:
- # code-block directives
- lang = node['language']
- highlight_args['force'] = True
- if 'linenos' in node:
- linenos = node['linenos']
- def warner(msg):
- self.builder.warn(msg, (self.curfilestack[-1], node.line))
- hlcode = self.highlighter.highlight_block(code, lang, warn=warner,
- linenos=linenos, **highlight_args)
- # workaround for Unicode issue
- hlcode = hlcode.replace(u'€', u'@texteuro[]')
- # must use original Verbatim environment and "tabular" environment
- if self.table:
- hlcode = hlcode.replace('\\begin{Verbatim}',
- '\\begin{OriginalVerbatim}')
- self.table.has_problematic = True
- self.table.has_verbatim = True
- # get consistent trailer
- hlcode = hlcode.rstrip()[:-14] # strip \end{Verbatim}
- hlcode = hlcode.rstrip() + '\n'
- self.body.append('\n' + hlcode + '\\end{%sVerbatim}\n' %
- (self.table and 'Original' or ''))
- self.verbatim = None
+ self.body.append('\n\\end{alltt}\n')
visit_doctest_block = visit_literal_block
depart_doctest_block = depart_literal_block
@@ -1506,13 +1513,10 @@ class LaTeXTranslator(nodes.NodeVisitor):
return self.encode(text).replace('\\textasciitilde{}', '~')
def visit_Text(self, node):
- if self.verbatim is not None:
- self.verbatim += node.astext()
- else:
- text = self.encode(node.astext())
- if not self.no_contractions:
- text = educate_quotes_latex(text)
- self.body.append(text)
+ text = self.encode(node.astext())
+ if not self.no_contractions:
+ text = educate_quotes_latex(text)
+ self.body.append(text)
def depart_Text(self, node):
pass
@@ -1528,5 +1532,14 @@ class LaTeXTranslator(nodes.NodeVisitor):
def depart_system_message(self, node):
self.body.append('\n')
+ def visit_math(self, node):
+ self.builder.warn('using "math" markup without a Sphinx math extension '
+ 'active, please use one of the math extensions '
+ 'described at http://sphinx-doc.org/ext/math.html',
+ (self.curfilestack[-1], node.line))
+ raise nodes.SkipNode
+
+ visit_math_block = visit_math
+
def unknown_visit(self, node):
raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
index 04887e14..4b51588a 100644
--- a/sphinx/writers/manpage.py
+++ b/sphinx/writers/manpage.py
@@ -5,7 +5,7 @@
Manual page writer, extended for Sphinx custom nodes.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -152,11 +152,6 @@ class ManualPageTranslator(BaseTranslator):
def depart_desc_content(self, node):
self.depart_definition(node)
- def visit_refcount(self, node):
- self.body.append(self.defs['emphasis'][0])
- def depart_refcount(self, node):
- self.body.append(self.defs['emphasis'][1])
-
def visit_versionmodified(self, node):
self.visit_paragraph(node)
def depart_versionmodified(self, node):
@@ -202,6 +197,7 @@ class ManualPageTranslator(BaseTranslator):
for production in node:
names.append(production['tokenname'])
maxlen = max(len(name) for name in names)
+ lastname = None
for production in node:
if production['tokenname']:
lastname = production['tokenname'].ljust(maxlen)
@@ -209,7 +205,7 @@ class ManualPageTranslator(BaseTranslator):
self.body.append(self.deunicode(lastname))
self.body.append(self.defs['strong'][1])
self.body.append(' ::= ')
- else:
+ elif lastname is not None:
self.body.append('%s ' % (' '*len(lastname)))
production.walkabout(self)
self.body.append('\n')
@@ -232,7 +228,9 @@ class ManualPageTranslator(BaseTranslator):
# overwritten -- don't visit inner marked up nodes
def visit_reference(self, node):
self.body.append(self.defs['reference'][0])
- self.body.append(node.astext())
+ self.visit_Text(node) # avoid repeating escaping code... fine since
+ # visit_Text calls astext() and only works
+ # on that afterwards
self.body.append(self.defs['reference'][1])
uri = node.get('refuri', '')
@@ -344,5 +342,13 @@ class ManualPageTranslator(BaseTranslator):
def depart_inline(self, node):
pass
+ def visit_math(self, node):
+ self.builder.warn('using "math" markup without a Sphinx math extension '
+ 'active, please use one of the math extensions '
+ 'described at http://sphinx-doc.org/ext/math.html')
+ raise nodes.SkipNode
+
+ visit_math_block = visit_math
+
def unknown_visit(self, node):
raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py
index cf5cb9ee..fcfce03e 100644
--- a/sphinx/writers/texinfo.py
+++ b/sphinx/writers/texinfo.py
@@ -5,7 +5,7 @@
Custom docutils writer for Texinfo.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -1190,7 +1190,6 @@ class TexinfoTranslator(nodes.NodeVisitor):
for id in production.get('ids'):
self.add_anchor(id, production)
s = production['tokenname'].ljust(maxlen) + ' ::='
- ##lastname = production['tokenname']
else:
s = '%s ' % (' '*maxlen)
self.body.append(self.escape(s))
@@ -1219,11 +1218,6 @@ class TexinfoTranslator(nodes.NodeVisitor):
text = self.escape_menu(text)
self.body.append('@geindex %s\n' % text)
- def visit_refcount(self, node):
- self.body.append('\n')
- def depart_refcount(self, node):
- self.body.append('\n')
-
def visit_versionmodified(self, node):
self.body.append('\n')
def depart_versionmodified(self, node):
@@ -1399,3 +1393,11 @@ class TexinfoTranslator(nodes.NodeVisitor):
pass
def depart_pending_xref(self, node):
pass
+
+ def visit_math(self, node):
+ self.builder.warn('using "math" markup without a Sphinx math extension '
+ 'active, please use one of the math extensions '
+ 'described at http://sphinx-doc.org/ext/math.html')
+ raise nodes.SkipNode
+
+ visit_math_block = visit_math
diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py
index d2c2fcba..42ba0507 100644
--- a/sphinx/writers/text.py
+++ b/sphinx/writers/text.py
@@ -5,7 +5,7 @@
Custom docutils writer for plain text.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os
@@ -152,6 +152,7 @@ class TextTranslator(nodes.NodeVisitor):
def __init__(self, document, builder):
nodes.NodeVisitor.__init__(self, document)
+ self.builder = builder
newlines = builder.config.text_newlines
if newlines == 'windows':
@@ -334,11 +335,6 @@ class TextTranslator(nodes.NodeVisitor):
def depart_desc_annotation(self, node):
pass
- def visit_refcount(self, node):
- pass
- def depart_refcount(self, node):
- pass
-
def visit_desc_content(self, node):
self.new_state()
self.add_text(self.nl)
@@ -361,11 +357,12 @@ class TextTranslator(nodes.NodeVisitor):
for production in node:
names.append(production['tokenname'])
maxlen = max(len(name) for name in names)
+ lastname = None
for production in node:
if production['tokenname']:
self.add_text(production['tokenname'].ljust(maxlen) + ' ::=')
lastname = production['tokenname']
- else:
+ elif lastname is not None:
self.add_text('%s ' % (' '*len(lastname)))
self.add_text(production.astext() + self.nl)
self.end_state(wrap=False)
@@ -732,6 +729,9 @@ class TextTranslator(nodes.NodeVisitor):
def visit_index(self, node):
raise nodes.SkipNode
+ def visit_toctree(self, node):
+ raise nodes.SkipNode
+
def visit_substitution_definition(self, node):
raise nodes.SkipNode
@@ -842,5 +842,14 @@ class TextTranslator(nodes.NodeVisitor):
self.body.append(node.astext())
raise nodes.SkipNode
+ def visit_math(self, node):
+ self.builder.warn('using "math" markup without a Sphinx math extension '
+ 'active, please use one of the math extensions '
+ 'described at http://sphinx-doc.org/ext/math.html',
+ (self.builder.current_docname, node.line))
+ raise nodes.SkipNode
+
+ visit_math_block = visit_math
+
def unknown_visit(self, node):
raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
diff --git a/sphinx/writers/websupport.py b/sphinx/writers/websupport.py
index 63b5dd1d..85f8406e 100644
--- a/sphinx/writers/websupport.py
+++ b/sphinx/writers/websupport.py
@@ -5,7 +5,7 @@
sphinx.websupport writer that adds comment-related annotations.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/sphinx/writers/xml.py b/sphinx/writers/xml.py
index 9f1fc762..cfae484e 100644
--- a/sphinx/writers/xml.py
+++ b/sphinx/writers/xml.py
@@ -5,7 +5,7 @@
Docutils-native XML and pseudo-XML writers.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/path.py b/tests/path.py
index fa478557..fa90a6f5 100755
--- a/tests/path.py
+++ b/tests/path.py
@@ -4,7 +4,7 @@
path
~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os
diff --git a/tests/root/conf.py b/tests/root/conf.py
index 37b9127e..8025ba33 100644
--- a/tests/root/conf.py
+++ b/tests/root/conf.py
@@ -38,6 +38,7 @@ html_sidebars = {'**': 'customsb.html',
'contents': ['contentssb.html', 'localtoc.html'] }
html_style = 'default.css'
html_static_path = ['_static', 'templated.css_t']
+html_extra_path = ['robots.txt']
html_last_updated_fmt = '%b %d, %Y'
html_context = {'hckey': 'hcval', 'hckey_co': 'wrong_hcval_co'}
diff --git a/tests/root/markup.txt b/tests/root/markup.txt
index 1fb20cf0..34e8fdb8 100644
--- a/tests/root/markup.txt
+++ b/tests/root/markup.txt
@@ -79,6 +79,10 @@ Body directives
b
+.. parsed-literal::
+
+ with some *markup* inside
+
.. _admonition-section:
@@ -139,6 +143,7 @@ Adding \n to test unescaping.
* :doc:`subdir/includes`
* ``:download:`` is tested in includes.txt
* :option:`Python -c option <python -c>`
+* This used to crash: :option:`Python c option`
Test :abbr:`abbr (abbreviation)` and another :abbr:`abbr (abbreviation)`.
diff --git a/tests/root/objects.txt b/tests/root/objects.txt
index 533bdae3..57e82212 100644
--- a/tests/root/objects.txt
+++ b/tests/root/objects.txt
@@ -7,6 +7,32 @@ Testing object descriptions
.. function:: func_without_body()
+.. function:: func_with_unknown_field()
+
+ : :
+
+ : empty field name:
+
+ :field_name:
+
+ :field_name all lower:
+
+ :FIELD_NAME:
+
+ :FIELD_NAME ALL CAPS:
+
+ :Field_Name:
+
+ :Field_Name All Word Caps:
+
+ :Field_name:
+
+ :Field_name First word cap:
+
+ :FIELd_name:
+
+ :FIELd_name PARTial caps:
+
.. function:: func_noindex
:noindex:
diff --git a/tests/root/robots.txt b/tests/root/robots.txt
new file mode 100644
index 00000000..1b425ee0
--- /dev/null
+++ b/tests/root/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /cgi-bin/
diff --git a/tests/roots/test-autosummary/conf.py b/tests/roots/test-autosummary/conf.py
new file mode 100644
index 00000000..542696e9
--- /dev/null
+++ b/tests/roots/test-autosummary/conf.py
@@ -0,0 +1,5 @@
+extensions = ['sphinx.ext.autosummary']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+autosummary_generate = True
diff --git a/tests/roots/test-autosummary/contents.rst b/tests/roots/test-autosummary/contents.rst
new file mode 100644
index 00000000..3f16af99
--- /dev/null
+++ b/tests/roots/test-autosummary/contents.rst
@@ -0,0 +1,6 @@
+
+.. autosummary::
+ :nosignatures:
+ :toctree:
+
+ dummy_module
diff --git a/tests/roots/test-autosummary/dummy_module.py b/tests/roots/test-autosummary/dummy_module.py
new file mode 100644
index 00000000..fd544961
--- /dev/null
+++ b/tests/roots/test-autosummary/dummy_module.py
@@ -0,0 +1,21 @@
+
+def withSentence():
+ '''I have a sentence which
+ spans multiple lines. Then I have
+ more stuff
+ '''
+ pass
+
+def noSentence():
+ '''this doesn't start with a
+ capital. so it's not considered
+ a sentence
+ '''
+ pass
+
+def emptyLine():
+ '''This is the real summary
+
+ However, it did't end with a period.
+ '''
+ pass
diff --git a/tests/roots/test-intl/figure_caption.po b/tests/roots/test-intl/figure_caption.po
index 01b4c041..2b85aea3 100644
--- a/tests/roots/test-intl/figure_caption.po
+++ b/tests/roots/test-intl/figure_caption.po
@@ -27,3 +27,9 @@ msgstr "MY DESCRIPTION PARAGRAPH1 OF THE FIGURE."
msgid "My description paragraph2 of the figure."
msgstr "MY DESCRIPTION PARAGRAPH2 OF THE FIGURE."
+
+msgid "figure in the block"
+msgstr "FIGURE IN THE BLOCK"
+
+msgid "block"
+msgstr "BLOCK"
diff --git a/tests/roots/test-intl/figure_caption.txt b/tests/roots/test-intl/figure_caption.txt
index 75567b3a..0f978b55 100644
--- a/tests/roots/test-intl/figure_caption.txt
+++ b/tests/roots/test-intl/figure_caption.txt
@@ -10,3 +10,17 @@ i18n with figure caption
My description paragraph1 of the figure.
My description paragraph2 of the figure.
+
+figure in the block
+---------------------
+
+block
+
+ .. figure:: i18n.png
+
+ My caption of the figure
+
+ My description paragraph1 of the figure.
+
+ My description paragraph2 of the figure.
+
diff --git a/tests/roots/test-intl/label_target.po b/tests/roots/test-intl/label_target.po
index 2e600f6d..60d7c3e5 100644
--- a/tests/roots/test-intl/label_target.po
+++ b/tests/roots/test-intl/label_target.po
@@ -50,3 +50,17 @@ msgid ""
msgstr ""
"`X DUPLICATED SUB SECTION`_ IS BROKEN LINK."
+msgid "label bridged target section"
+msgstr "X LABEL BRIDGED TARGET SECTION"
+
+msgid "`bridge label`_ is not translatable but linked to translated section title."
+msgstr "X `bridge label`_ IS NOT TRANSLATABLE BUT LINKED TO TRANSLATED SECTION TITLE."
+
+msgid ""
+"`bridge label2`_ point to ``section and label`` and `bridge label`_ point to "
+"``label bridged target section``. The second appeared `bridge label2`_ point "
+"to correct target."
+msgstr ""
+"X `bridge label`_ POINT TO ``LABEL BRIDGED TARGET SECTION`` AND "
+"`bridge label2`_ POINT TO ``SECTION AND LABEL``. THE SECOND APPEARED "
+"`bridge label2`_ POINT TO CORRECT TARGET."
diff --git a/tests/roots/test-intl/label_target.txt b/tests/roots/test-intl/label_target.txt
index b597abe7..ac000849 100644
--- a/tests/roots/test-intl/label_target.txt
+++ b/tests/roots/test-intl/label_target.txt
@@ -47,8 +47,21 @@ duplicated sub section
------------------------
.. This section have no label, but the section was a duplicate name.
-.. THis case, a duplicated target id is generated by docutils.
+.. This case, a duplicated target id is generated by docutils.
.. There is no way to link to this section's duplicated id like ``id2`` by
.. using formal reStructuredText markup.
+
+.. _bridge label: `label bridged target section`_
+.. _bridge label2: `section and label`_
+
+label bridged target section
+=============================
+
+.. This section is targeted through label definition.
+
+`bridge label`_ is not translatable but linked to translated section title.
+
+`bridge label2`_ point to ``section and label`` and `bridge label`_ point to ``label bridged target section``. The second appeared `bridge label2`_ point to correct target.
+
diff --git a/tests/roots/test-intl/refs_python_domain.po b/tests/roots/test-intl/refs_python_domain.po
new file mode 100644
index 00000000..bed87c4c
--- /dev/null
+++ b/tests/roots/test-intl/refs_python_domain.po
@@ -0,0 +1,25 @@
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: issue1363 1363\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-03-16 19:34+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ..\..\index.rst:4
+msgid "i18n with python domain refs"
+msgstr "I18N WITH PYTHON DOMAIN REFS"
+
+#: ..\..\index.rst:8
+msgid "See this decorator: :func:`sensitive_variables`."
+msgstr "SEE THIS DECORATOR: :func:`sensitive_variables`."
+
+#: ..\..\index.rst:12
+msgid "Some description"
+msgstr "SOME DESCRIPTION"
+
diff --git a/tests/roots/test-intl/refs_python_domain.txt b/tests/roots/test-intl/refs_python_domain.txt
new file mode 100644
index 00000000..20a8bc50
--- /dev/null
+++ b/tests/roots/test-intl/refs_python_domain.txt
@@ -0,0 +1,15 @@
+:tocdepth: 2
+
+i18n with python domain refs
+=============================
+
+.. currentmodule:: sensitive
+
+See this decorator: :func:`sensitive_variables`.
+
+.. function:: sensitive_variables(*variables)
+
+ Some description
+
+.. currentmodule:: reporting
+
diff --git a/tests/roots/test-intl/rubric.po b/tests/roots/test-intl/rubric.po
new file mode 100644
index 00000000..2c1214b7
--- /dev/null
+++ b/tests/roots/test-intl/rubric.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2012, foof
+# This file is distributed under the same license as the foo package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: sphinx 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-11-12 7:00\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "i18n with rubric"
+msgstr "I18N WITH RUBRIC"
+
+msgid "rubric title"
+msgstr "RUBRIC TITLE"
+
+msgid "rubric in the block"
+msgstr "RUBRIC IN THE BLOCK"
+
+msgid "block"
+msgstr "BLOCK"
diff --git a/tests/roots/test-intl/rubric.txt b/tests/roots/test-intl/rubric.txt
new file mode 100644
index 00000000..f285d49c
--- /dev/null
+++ b/tests/roots/test-intl/rubric.txt
@@ -0,0 +1,14 @@
+:tocdepth: 2
+
+i18n with rubric
+================
+
+.. rubric:: rubric title
+
+rubric in the block
+-------------------
+
+block
+
+ .. rubric:: rubric title
+
diff --git a/tests/roots/test-setup/doc/conf.py b/tests/roots/test-setup/doc/conf.py
new file mode 100644
index 00000000..a55679a4
--- /dev/null
+++ b/tests/roots/test-setup/doc/conf.py
@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+
+project = 'Sphinx smallest project'
+source_suffix = '.txt'
+keep_warnings = True
diff --git a/tests/roots/test-setup/doc/contents.txt b/tests/roots/test-setup/doc/contents.txt
new file mode 100644
index 00000000..cb52405f
--- /dev/null
+++ b/tests/roots/test-setup/doc/contents.txt
@@ -0,0 +1,5 @@
+contents
+=========
+
+spam egg ham
+
diff --git a/tests/roots/test-setup/setup.cfg b/tests/roots/test-setup/setup.cfg
new file mode 100644
index 00000000..cf2a7f56
--- /dev/null
+++ b/tests/roots/test-setup/setup.cfg
@@ -0,0 +1,5 @@
+[build_sphinx]
+project = 'My project'
+version = 1.2
+release = 1.2.0
+source-dir = doc
diff --git a/tests/roots/test-setup/setup.py b/tests/roots/test-setup/setup.py
new file mode 100644
index 00000000..3ba5b6f0
--- /dev/null
+++ b/tests/roots/test-setup/setup.py
@@ -0,0 +1,9 @@
+from distutils.core import setup
+from sphinx.setup_command import BuildDoc
+
+cmdclass = {'build_sphinx': BuildDoc}
+
+setup(
+ name='sphinxdoc',
+ cmdclass=cmdclass,
+)
diff --git a/tests/roots/test-templating/_templates/autosummary/class.rst b/tests/roots/test-templating/_templates/autosummary/class.rst
new file mode 100644
index 00000000..7f153617
--- /dev/null
+++ b/tests/roots/test-templating/_templates/autosummary/class.rst
@@ -0,0 +1,8 @@
+{% extends "!autosummary/class.rst" %}
+
+{% block methods %}
+
+ .. note:: autosummary/class.rst method block overloading
+
+ {{ super() }}
+{% endblock %}
diff --git a/tests/roots/test-templating/_templates/layout.html b/tests/roots/test-templating/_templates/layout.html
new file mode 100644
index 00000000..f836c773
--- /dev/null
+++ b/tests/roots/test-templating/_templates/layout.html
@@ -0,0 +1,6 @@
+{% extends "!layout.html" %}
+
+{% block extrahead %}
+<!-- layout overloading -->
+{{ super() }}
+{% endblock %}
diff --git a/tests/roots/test-templating/autosummary_templating.txt b/tests/roots/test-templating/autosummary_templating.txt
new file mode 100644
index 00000000..05643a02
--- /dev/null
+++ b/tests/roots/test-templating/autosummary_templating.txt
@@ -0,0 +1,13 @@
+Autosummary templating test
+===========================
+
+.. autosummary::
+ :toctree: generated
+
+ sphinx.application.Sphinx
+
+.. currentmodule:: sphinx.application
+
+.. autoclass:: TemplateBridge
+
+ .. automethod:: render
diff --git a/tests/roots/test-templating/conf.py b/tests/roots/test-templating/conf.py
new file mode 100644
index 00000000..225da82e
--- /dev/null
+++ b/tests/roots/test-templating/conf.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+
+project = 'Sphinx templating <Tests>'
+source_suffix = '.txt'
+keep_warnings = True
+templates_path = ['_templates']
+release = version = '2013.120'
+
+extensions = ['sphinx.ext.autosummary']
+autosummary_generate = ['autosummary_templating']
+
diff --git a/tests/roots/test-templating/contents.txt b/tests/roots/test-templating/contents.txt
new file mode 100644
index 00000000..04a40e21
--- /dev/null
+++ b/tests/roots/test-templating/contents.txt
@@ -0,0 +1,7 @@
+Welcome to Sphinx Tests's documentation!
+========================================
+
+.. toctree::
+
+ autosummary_templating
+
diff --git a/tests/run.py b/tests/run.py
index 37a06698..37922f3b 100755
--- a/tests/run.py
+++ b/tests/run.py
@@ -6,7 +6,7 @@
This script runs the Sphinx unit test suite.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_application.py b/tests/test_application.py
index a0a288b9..3d464eb5 100644
--- a/tests/test_application.py
+++ b/tests/test_application.py
@@ -5,7 +5,7 @@
Test the Sphinx class.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -43,7 +43,7 @@ def test_events(app):
@with_app()
-def test_emit_with_multibyte_name_node(app):
+def test_emit_with_nonascii_name_node(app):
node = nodes.section(names=[u'\u65e5\u672c\u8a9e'])
app.emit('my_event', node)
diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py
index aabc1bd7..4c39f957 100644
--- a/tests/test_autodoc.py
+++ b/tests/test_autodoc.py
@@ -6,7 +6,7 @@
Test the autodoc extension. This tests mainly the Documenters; the auto
directives are tested in a test source file translated by test_build.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -49,8 +49,10 @@ def setup_test():
undoc_members = False,
private_members = False,
special_members = False,
+ imported_members = False,
show_inheritance = False,
noindex = False,
+ annotation = None,
synopsis = '',
platform = '',
deprecated = False,
@@ -299,6 +301,69 @@ def test_get_doc():
assert getdocl('class', D) == ['Class docstring', '', 'Init docstring',
'', 'Other', ' lines']
+ #__init__ have signature at first line of docstring
+ class E:
+ """Class docstring"""
+ def __init__(self, *args, **kw):
+ """
+ __init__(a1, a2, kw1=True, kw2=False)
+
+ Init docstring
+ """
+
+ # signature line in the docstring will be kept when
+ # autodoc_docstring_signature == False
+ directive.env.config.autodoc_docstring_signature = False
+ directive.env.config.autoclass_content = 'class'
+ assert getdocl('class', E) == ['Class docstring']
+ directive.env.config.autoclass_content = 'init'
+ assert getdocl('class', E) == ['__init__(a1, a2, kw1=True, kw2=False)',
+ '', 'Init docstring']
+ directive.env.config.autoclass_content = 'both'
+ assert getdocl('class', E) == ['Class docstring', '',
+ '__init__(a1, a2, kw1=True, kw2=False)',
+ '', 'Init docstring']
+
+ # signature line in the docstring will be removed when
+ # autodoc_docstring_signature == True
+ directive.env.config.autodoc_docstring_signature = True #default
+ directive.env.config.autoclass_content = 'class'
+ assert getdocl('class', E) == ['Class docstring']
+ directive.env.config.autoclass_content = 'init'
+ assert getdocl('class', E) == ['Init docstring']
+ directive.env.config.autoclass_content = 'both'
+ assert getdocl('class', E) == ['Class docstring', '', 'Init docstring']
+
+ # class does not have __init__ method
+ class F(object):
+ """Class docstring"""
+
+ # docstring in the __init__ method of base class will be discard
+ for f in (False, True):
+ directive.env.config.autodoc_docstring_signature = f
+ directive.env.config.autoclass_content = 'class'
+ assert getdocl('class', F) == ['Class docstring']
+ directive.env.config.autoclass_content = 'init'
+ assert getdocl('class', F) == ['Class docstring']
+ directive.env.config.autoclass_content = 'both'
+ assert getdocl('class', F) == ['Class docstring']
+
+ # class has __init__ method with no docstring
+ class G(object):
+ """Class docstring"""
+ def __init__(self):
+ pass
+
+ # docstring in the __init__ method of base class will not be used
+ for f in (False, True):
+ directive.env.config.autodoc_docstring_signature = f
+ directive.env.config.autoclass_content = 'class'
+ assert getdocl('class', G) == ['Class docstring']
+ directive.env.config.autoclass_content = 'init'
+ assert getdocl('class', G) == ['Class docstring']
+ directive.env.config.autoclass_content = 'both'
+ assert getdocl('class', G) == ['Class docstring']
+
@with_setup(setup_test)
def test_docstring_processing():
diff --git a/tests/test_autosummary.py b/tests/test_autosummary.py
index cb6a6b74..fc506cd9 100644
--- a/tests/test_autosummary.py
+++ b/tests/test_autosummary.py
@@ -5,12 +5,14 @@
Test the autosummary extension.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
+import sys
from sphinx.ext.autosummary import mangle_signature
+from util import with_app, test_roots
def test_mangle_signature():
TEST = """
@@ -36,3 +38,65 @@ def test_mangle_signature():
for inp, outp in TEST:
res = mangle_signature(inp).strip().replace(u"\u00a0", " ")
assert res == outp, (u"'%s' -> '%s' != '%s'" % (inp, res, outp))
+
+
+# I can't just run this directly, because I need to monkey-patch Autosummary and
+# modify the python path BEFORE creating the app... so I use
+# _do_test_get_items_summary func just as a handy way to build the app, and
+# test_get_items_summary will do the "setup", and is what is actually discovered
+# / run by nose...
+
+@with_app(confoverrides={'extensions': ['sphinx.ext.autosummary'],
+ 'autosummary_generate': True,
+ 'source_suffix': '.rst'},
+ buildername='html', srcdir=(test_roots / 'test-autosummary'))
+def _do_test_get_items_summary(app):
+ (app.srcdir / 'contents.rst').write_text(
+ '\n.. autosummary::'
+ '\n :nosignatures:'
+ '\n :toctree:'
+ '\n '
+ '\n dummy_module'
+ '\n')
+
+ app.builder.build_all()
+
+def test_get_items_summary():
+ # monkey-patch Autosummary.get_items so we can easily get access to it's
+ # results..
+ import sphinx.ext.autosummary
+ orig_get_items = sphinx.ext.autosummary.Autosummary.get_items
+
+ autosummary_items = {}
+
+ def new_get_items(self, names, *args, **kwargs):
+ results = orig_get_items(self, names, *args, **kwargs)
+ for name, result in zip(names, results):
+ autosummary_items[name] = result
+ return results
+
+ sphinx.ext.autosummary.Autosummary.get_items = new_get_items
+ try:
+ # Now, modify the python path...
+ srcdir = test_roots / 'test-autosummary'
+ sys.path.insert(0, srcdir)
+ try:
+ _do_test_get_items_summary()
+ finally:
+ if srcdir in sys.path:
+ sys.path.remove(srcdir)
+ # remove the auto-generated dummy_module.rst
+ dummy_rst = srcdir / 'dummy_module.rst'
+ if dummy_rst.isfile():
+ dummy_rst.unlink()
+ finally:
+ sphinx.ext.autosummary.Autosummary.get_items = orig_get_items
+
+ expected_values = {
+ 'withSentence': 'I have a sentence which spans multiple lines.',
+ 'noSentence': "this doesn't start with a",
+ 'emptyLine': "This is the real summary",
+ }
+ for key, expected in expected_values.iteritems():
+ assert autosummary_items[key][2] == expected, 'Summary for %s was %r -'\
+ ' expected %r' % (key, autosummary_items[key], expected)
diff --git a/tests/test_build.py b/tests/test_build.py
index b172184b..9e857b7b 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -5,11 +5,11 @@
Test all builders that have no special checks.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
-from util import with_app, test_root, path
+from util import with_app, test_root, path, SkipTest
from textwrap import dedent
@@ -73,10 +73,17 @@ def test_pseudoxml(app):
app.builder.build_all()
@with_app(buildername='html', srcdir='(temp)')
-def test_multibyte_path(app):
+def test_nonascii_path(app):
srcdir = path(app.srcdir)
mb_name = u'\u65e5\u672c\u8a9e'
- (srcdir / mb_name).makedirs()
+ try:
+ (srcdir / mb_name).makedirs()
+ except UnicodeEncodeError:
+ from path import FILESYSTEMENCODING
+ raise SkipTest(
+ 'nonascii filename not supported on this filesystem encoding: '
+ '%s', FILESYSTEMENCODING)
+
(srcdir / mb_name / (mb_name + '.txt')).write_text(dedent("""
multi byte file name page
==========================
diff --git a/tests/test_build_gettext.py b/tests/test_build_gettext.py
index ca0ff0d2..9bde44b5 100644
--- a/tests/test_build_gettext.py
+++ b/tests/test_build_gettext.py
@@ -5,7 +5,7 @@
Test the build process with gettext builder with the test root.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_build_html.py b/tests/test_build_html.py
index 73a4e309..0c2efe42 100644
--- a/tests/test_build_html.py
+++ b/tests/test_build_html.py
@@ -5,7 +5,7 @@
Test the HTML builder and check output against XPath.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -42,6 +42,8 @@ http://www.python.org/logo.png
reading included file u'.*?wrongenc.inc' seems to be wrong, try giving an \
:encoding: option\\n?
%(root)s/includes.txt:4: WARNING: download file not readable: .*?nonexisting.png
+%(root)s/markup.txt:\\d+: WARNING: Malformed :option: u'Python c option', does \
+not contain option marker - or -- or /
%(root)s/objects.txt:\\d*: WARNING: using old C markup; please migrate to \
new-style markup \(e.g. c:function instead of cfunction\), see \
http://sphinx-doc.org/domains.html
@@ -184,18 +186,29 @@ HTML_XPATH = {
(".//a[@href='#userdesc-myobj'][@class='reference internal']", ''),
# C references
(".//span[@class='pre']", 'CFunction()'),
- (".//a[@href='#Sphinx_DoSomething']", ''),
- (".//a[@href='#SphinxStruct.member']", ''),
- (".//a[@href='#SPHINX_USE_PYTHON']", ''),
- (".//a[@href='#SphinxType']", ''),
- (".//a[@href='#sphinx_global']", ''),
+ (".//a[@href='#c.Sphinx_DoSomething']", ''),
+ (".//a[@href='#c.SphinxStruct.member']", ''),
+ (".//a[@href='#c.SPHINX_USE_PYTHON']", ''),
+ (".//a[@href='#c.SphinxType']", ''),
+ (".//a[@href='#c.sphinx_global']", ''),
# reference from old C markup extension
- (".//a[@href='#Sphinx_Func']", ''),
+ (".//a[@href='#c.Sphinx_Func']", ''),
# test global TOC created by toctree()
(".//ul[@class='current']/li[@class='toctree-l1 current']/a[@href='']",
'Testing object descriptions'),
(".//li[@class='toctree-l1']/a[@href='markup.html']",
'Testing various markup'),
+ # test unknown field names
+ (".//th[@class='field-name']", 'Field_name:'),
+ (".//th[@class='field-name']", 'Field_name all lower:'),
+ (".//th[@class='field-name']", 'FIELD_NAME:'),
+ (".//th[@class='field-name']", 'FIELD_NAME ALL CAPS:'),
+ (".//th[@class='field-name']", 'Field_Name:'),
+ (".//th[@class='field-name']", 'Field_Name All Word Caps:'),
+ (".//th[@class='field-name']", 'Field_name:'),
+ (".//th[@class='field-name']", 'Field_name First word cap:'),
+ (".//th[@class='field-name']", 'FIELd_name:'),
+ (".//th[@class='field-name']", 'FIELd_name PARTial caps:'),
# custom sidebar
(".//h4", 'Custom sidebar'),
# docfields
@@ -320,6 +333,9 @@ def check_static_entries(outdir):
# a file from _static, but matches exclude_patterns
assert not (staticdir / 'excluded.css').exists()
+def check_extra_entries(outdir):
+ assert (outdir / 'robots.txt').isfile()
+
@gen_with_app(buildername='html', warning=html_warnfile, cleanenv=True,
confoverrides={'html_context.hckey_co': 'hcval_co'},
tags=['testtag'])
@@ -345,12 +361,13 @@ def test_html(app):
yield check_xpath, etree, fname, path, check
check_static_entries(app.builder.outdir)
+ check_extra_entries(app.builder.outdir)
@with_app(buildername='html', srcdir='(empty)',
confoverrides={'html_sidebars': {'*': ['globaltoc.html']}},
)
def test_html_with_globaltoc_and_hidden_toctree(app):
- # issue #1157: combination of 'globaltoc.html' and hidden toctree cause
+ # issue #1157: combination of 'globaltoc.html' and hidden toctree cause
# exception.
(app.srcdir / 'contents.rst').write_text(
'\n.. toctree::'
@@ -359,4 +376,3 @@ def test_html_with_globaltoc_and_hidden_toctree(app):
'\n :hidden:'
'\n')
app.builder.build_all()
-
diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py
index 50aef045..78aa71cc 100644
--- a/tests/test_build_latex.py
+++ b/tests/test_build_latex.py
@@ -5,7 +5,7 @@
Test the build process with LaTeX builder with the test root.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -86,7 +86,7 @@ def test_latex(app):
p = Popen(['pdflatex', '--interaction=nonstopmode',
'SphinxTests.tex'], stdout=PIPE, stderr=PIPE)
except OSError:
- pass # most likely pdflatex was not found
+ raise SkipTest # most likely pdflatex was not found
else:
stdout, stderr = p.communicate()
if p.returncode != 0:
diff --git a/tests/test_build_texinfo.py b/tests/test_build_texinfo.py
index eb60fb8f..2f519435 100644
--- a/tests/test_build_texinfo.py
+++ b/tests/test_build_texinfo.py
@@ -5,7 +5,7 @@
Test the build process with Texinfo builder with the test root.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -17,7 +17,7 @@ from subprocess import Popen, PIPE
from sphinx.writers.texinfo import TexinfoTranslator
-from util import with_app, test_root, remove_unicode_literals
+from util import test_root, SkipTest, remove_unicode_literals, with_app
from test_build_html import ENV_WARNINGS
@@ -56,7 +56,7 @@ def test_texinfo(app):
p = Popen(['makeinfo', '--no-split', 'SphinxTests.texi'],
stdout=PIPE, stderr=PIPE)
except OSError:
- pass # most likely makeinfo was not found
+ raise SkipTest # most likely makeinfo was not found
else:
stdout, stderr = p.communicate()
retcode = p.returncode
diff --git a/tests/test_build_text.py b/tests/test_build_text.py
index 445e39db..d6513504 100644
--- a/tests/test_build_text.py
+++ b/tests/test_build_text.py
@@ -5,7 +5,7 @@
Test the build process with Text builder with the test root.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -86,7 +86,7 @@ def test_lineblock(app):
@with_text_app()
-def test_multibyte_title_line(app):
+def test_nonascii_title_line(app):
title = u'\u65e5\u672c\u8a9e'
underline = u'=' * column_width(title)
content = u'\n'.join((title, underline, u''))
@@ -101,7 +101,7 @@ def test_multibyte_title_line(app):
@with_text_app()
-def test_multibyte_table(app):
+def test_nonascii_table(app):
text = u'\u65e5\u672c\u8a9e'
contents = (u"\n.. list-table::"
"\n"
@@ -122,7 +122,7 @@ def test_multibyte_table(app):
@with_text_app()
-def test_multibyte_maxwidth(app):
+def test_nonascii_maxwidth(app):
sb_text = u'abc' #length=3
mb_text = u'\u65e5\u672c\u8a9e' #length=3
diff --git a/tests/test_config.py b/tests/test_config.py
index 4d3d51b0..976b962f 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -6,7 +6,7 @@
Test the sphinx.config.Config class and its handling in the
Application class.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import sys
diff --git a/tests/test_coverage.py b/tests/test_coverage.py
index 6ba00542..e6747b0c 100644
--- a/tests/test_coverage.py
+++ b/tests/test_coverage.py
@@ -5,7 +5,7 @@
Test the coverage builder.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_cpp_domain.py b/tests/test_cpp_domain.py
index 2168d7e4..8e1cb22b 100644
--- a/tests/test_cpp_domain.py
+++ b/tests/test_cpp_domain.py
@@ -5,7 +5,7 @@
Tests the C++ Domain
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -75,6 +75,30 @@ def test_type_definitions():
x = 'int get_value() const noexcept'
assert unicode(parse('function', x)) == x
+ x = 'int get_value() const noexcept = delete'
+ assert unicode(parse('function', x)) == x
+
+ x = 'MyClass::MyClass(MyClass::MyClass&&) = default'
+ assert unicode(parse('function', x)) == x
+
+ x = 'MyClass::a_virtual_function() const override'
+ assert unicode(parse('function', x)) == x
+
+ x = 'MyClass::a_member_function() volatile'
+ assert unicode(parse('function', x)) == x
+
+ x = 'MyClass::a_member_function() const volatile'
+ assert unicode(parse('function', x)) == x
+
+ x = 'MyClass::a_member_function() &&'
+ assert unicode(parse('function', x)) == x
+
+ x = 'MyClass::a_member_function() &'
+ assert unicode(parse('function', x)) == x
+
+ x = 'MyClass::a_member_function() const &'
+ assert unicode(parse('function', x)) == x
+
x = 'int main(int argc, char* argv[][])'
assert unicode(parse('function', x)) == x
diff --git a/tests/test_doctest.py b/tests/test_doctest.py
index f445dab2..2aab541b 100644
--- a/tests/test_doctest.py
+++ b/tests/test_doctest.py
@@ -5,7 +5,7 @@
Test the doctest extension.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_docutilsconf.py b/tests/test_docutilsconf.py
index 08534ed7..fcfef13b 100644
--- a/tests/test_docutilsconf.py
+++ b/tests/test_docutilsconf.py
@@ -5,7 +5,7 @@
Test docutils.conf support for several writers.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_env.py b/tests/test_env.py
index 2b03bbfb..eaaa212f 100644
--- a/tests/test_env.py
+++ b/tests/test_env.py
@@ -5,7 +5,7 @@
Test the BuildEnvironment class.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import sys
diff --git a/tests/test_footnote.py b/tests/test_footnote.py
index 96dea616..964bb3e7 100644
--- a/tests/test_footnote.py
+++ b/tests/test_footnote.py
@@ -5,7 +5,7 @@
Test for footnote and citation.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_highlighting.py b/tests/test_highlighting.py
index 888d4c21..b4e5149f 100644
--- a/tests/test_highlighting.py
+++ b/tests/test_highlighting.py
@@ -5,7 +5,7 @@
Test the Pygments highlighting bridge.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_i18n.py b/tests/test_i18n.py
index e67c96c7..06f6b28b 100644
--- a/tests/test_i18n.py
+++ b/tests/test_i18n.py
@@ -5,7 +5,7 @@
Test locale features.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_intersphinx.py b/tests/test_intersphinx.py
index a8679e7e..8f0263b9 100644
--- a/tests/test_intersphinx.py
+++ b/tests/test_intersphinx.py
@@ -5,7 +5,7 @@
Test the intersphinx extension.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_intl.py b/tests/test_intl.py
index 67ab9578..ca0273c8 100644
--- a/tests/test_intl.py
+++ b/tests/test_intl.py
@@ -6,7 +6,7 @@
Test message patching for internationalization purposes. Runs the text
builder in the test root.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -206,6 +206,20 @@ def test_i18n_footnote_backlink(app):
assert refid2id[ids] == backrefs
+@with_intl_app(buildername='xml', warning=warnfile)
+def test_i18n_refs_python_domain(app):
+ app.builder.build(['refs_python_domain'])
+ et = ElementTree.parse(app.outdir / 'refs_python_domain.xml')
+ secs = et.findall('section')
+
+ # regression test for fix #1363
+ para0 = secs[0].findall('paragraph')
+ assert_elem(
+ para0[0],
+ texts=['SEE THIS DECORATOR:', 'sensitive_variables()', '.'],
+ refs=['sensitive.sensitive_variables'])
+
+
@with_intl_app(buildername='text', warning=warnfile, cleanenv=True)
def test_i18n_warn_for_number_of_references_inconsistency(app):
app.builddir.rmtree(True)
@@ -420,7 +434,7 @@ def test_i18n_role_xref(app):
@with_intl_app(buildername='xml', warning=warnfile)
def test_i18n_label_target(app):
- # regression test for #1193
+ # regression test for #1193, #1265
app.builder.build(['label_target'])
et = ElementTree.parse(app.outdir / 'label_target.xml')
secs = et.findall('section')
@@ -455,6 +469,23 @@ def test_i18n_label_target(app):
texts=['`X DUPLICATED SUB SECTION`_', 'IS BROKEN LINK.'],
refs=[])
+ para3 = secs[3].findall('paragraph')
+ assert_elem(
+ para3[0],
+ texts=['X', 'bridge label',
+ 'IS NOT TRANSLATABLE BUT LINKED TO TRANSLATED ' +
+ 'SECTION TITLE.'],
+ refs=['label-bridged-target-section'])
+ assert_elem(
+ para3[1],
+ texts=['X', 'bridge label', 'POINT TO',
+ 'LABEL BRIDGED TARGET SECTION', 'AND', 'bridge label2',
+ 'POINT TO', 'SECTION AND LABEL', '. THE SECOND APPEARED',
+ 'bridge label2', 'POINT TO CORRECT TARGET.'],
+ refs=['label-bridged-target-section',
+ 'section-and-label',
+ 'section-and-label'])
+
@with_intl_app(buildername='text', warning=warnfile)
def test_i18n_glossary_terms_inconsistency(app):
@@ -497,7 +528,31 @@ def test_i18n_figure_caption(app):
u"\n************************\n"
u"\n [image]MY CAPTION OF THE FIGURE\n"
u"\n MY DESCRIPTION PARAGRAPH1 OF THE FIGURE.\n"
- u"\n MY DESCRIPTION PARAGRAPH2 OF THE FIGURE.\n")
+ u"\n MY DESCRIPTION PARAGRAPH2 OF THE FIGURE.\n"
+ u"\n"
+ u"\nFIGURE IN THE BLOCK"
+ u"\n===================\n"
+ u"\nBLOCK\n"
+ u"\n [image]MY CAPTION OF THE FIGURE\n"
+ u"\n MY DESCRIPTION PARAGRAPH1 OF THE FIGURE.\n"
+ u"\n MY DESCRIPTION PARAGRAPH2 OF THE FIGURE.\n")
+
+ assert result == expect
+
+
+@with_intl_app(buildername='text')
+def test_i18n_rubric(app):
+ # regression test for pull request #190
+ app.builder.build(['rubric'])
+ result = (app.outdir / 'rubric.txt').text(encoding='utf-8')
+ expect = (u"\nI18N WITH RUBRIC"
+ u"\n****************\n"
+ u"\n-[ RUBRIC TITLE ]-\n"
+ u"\n"
+ u"\nRUBRIC IN THE BLOCK"
+ u"\n===================\n"
+ u"\nBLOCK\n"
+ u"\n -[ RUBRIC TITLE ]-\n")
assert result == expect
@@ -548,20 +603,20 @@ def test_versionchange(app):
return ''
expect1 = (
- u"""<p><span>Deprecated since version 1.0: </span>"""
+ u"""<p><span class="versionmodified">Deprecated since version 1.0: </span>"""
u"""THIS IS THE <em>FIRST</em> PARAGRAPH OF DEPRECATED.</p>\n"""
u"""<p>THIS IS THE <em>SECOND</em> PARAGRAPH OF DEPRECATED.</p>\n""")
matched_content = get_content(result, "deprecated")
assert expect1 == matched_content
expect2 = (
- u"""<p><span>New in version 1.0: </span>"""
+ u"""<p><span class="versionmodified">New in version 1.0: </span>"""
u"""THIS IS THE <em>FIRST</em> PARAGRAPH OF VERSIONADDED.</p>\n""")
matched_content = get_content(result, "versionadded")
assert expect2 == matched_content
expect3 = (
- u"""<p><span>Changed in version 1.0: </span>"""
+ u"""<p><span class="versionmodified">Changed in version 1.0: </span>"""
u"""THIS IS THE <em>FIRST</em> PARAGRAPH OF VERSIONCHANGED.</p>\n""")
matched_content = get_content(result, "versionchanged")
assert expect3 == matched_content
diff --git a/tests/test_linkcode.py b/tests/test_linkcode.py
index 507cd9ce..83b72098 100644
--- a/tests/test_linkcode.py
+++ b/tests/test_linkcode.py
@@ -5,22 +5,19 @@
Test the sphinx.ext.linkcode extension.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os
from util import with_app
+
@with_app(srcdir='(temp)', buildername='html', tags=['test_linkcode'])
def test_html(app):
app.builder.build_all()
- fp = open(os.path.join(app.outdir, 'objects.html'), 'r')
- try:
- stuff = fp.read()
- finally:
- fp.close()
+ stuff = (app.outdir / 'objects.html').text(encoding='utf-8')
assert 'http://foobar/source/foolib.py' in stuff
assert 'http://foobar/js/' in stuff
diff --git a/tests/test_markup.py b/tests/test_markup.py
index 311222ba..4f0b0de8 100644
--- a/tests/test_markup.py
+++ b/tests/test_markup.py
@@ -5,7 +5,7 @@
Test various Sphinx-specific markup extensions.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -132,7 +132,7 @@ def test_latex_escaping():
# in verbatim code fragments
yield (verify, u'::\n\n @Γ\\∞${}', None,
u'\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n'
- u'@\\(\\Gamma\\)\\PYGZbs{}\\(\\infty\\)\\$\\PYGZob{}\\PYGZcb{}\n'
+ u'@\\(\\Gamma\\)\\PYGZbs{}\\(\\infty\\)\\PYGZdl{}\\PYGZob{}\\PYGZcb{}\n'
u'\\end{Verbatim}')
# in URIs
yield (verify_re, u'`test <http://example.com/~me/>`_', None,
diff --git a/tests/test_metadata.py b/tests/test_metadata.py
index db955390..a0d44457 100644
--- a/tests/test_metadata.py
+++ b/tests/test_metadata.py
@@ -5,7 +5,7 @@
Test our handling of metadata in files with bibliographic metadata.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -14,7 +14,7 @@
from util import TestApp
-from nose.tools import assert_equals
+from nose.tools import assert_equal
app = env = None
@@ -64,6 +64,6 @@ def test_docinfo():
}
# I like this way of comparing dicts - easier to see the error.
for key in exampledocinfo:
- yield assert_equals, exampledocinfo.get(key), expecteddocinfo.get(key)
+ yield assert_equal, exampledocinfo.get(key), expecteddocinfo.get(key)
# but then we still have to check for missing keys
- yield assert_equals, set(expecteddocinfo.keys()), set(exampledocinfo.keys())
+ yield assert_equal, set(expecteddocinfo.keys()), set(exampledocinfo.keys())
diff --git a/tests/test_only_directive.py b/tests/test_only_directive.py
index 28e34e58..4717ff9f 100644
--- a/tests/test_only_directive.py
+++ b/tests/test_only_directive.py
@@ -5,7 +5,7 @@
Test the only directive with the test root.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_quickstart.py b/tests/test_quickstart.py
index 5d814ee5..8f630700 100644
--- a/tests/test_quickstart.py
+++ b/tests/test_quickstart.py
@@ -5,7 +5,7 @@
Test the sphinx.quickstart module.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -14,7 +14,7 @@ import time
from StringIO import StringIO
import tempfile
-from util import raises, with_tempdir, with_app
+from util import raises, with_tempdir, with_app, SkipTest
from sphinx import application
from sphinx import quickstart as qs
@@ -108,13 +108,18 @@ def test_do_prompt():
raises(AssertionError, qs.do_prompt, d, 'k6', 'Q6', validator=qs.boolean)
-def test_do_prompt_with_multibyte():
+def test_do_prompt_with_nonascii():
d = {}
answers = {
'Q1': u'\u30c9\u30a4\u30c4',
}
qs.term_input = mock_raw_input(answers)
- qs.do_prompt(d, 'k1', 'Q1', default=u'\u65e5\u672c')
+ try:
+ qs.do_prompt(d, 'k1', 'Q1', default=u'\u65e5\u672c')
+ except UnicodeEncodeError:
+ raise SkipTest(
+ 'non-ASCII console input not supported on this encoding: %s',
+ qs.TERM_ENCODING)
assert d['k1'] == u'\u30c9\u30a4\u30c4'
diff --git a/tests/test_rst_domain.py b/tests/test_rst_domain.py
index 8642f68f..9f70f5b1 100644
--- a/tests/test_rst_domain.py
+++ b/tests/test_rst_domain.py
@@ -5,7 +5,7 @@
Tests the reStructuredText domain.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_search.py b/tests/test_search.py
index e5ae71e9..2efd753c 100644
--- a/tests/test_search.py
+++ b/tests/test_search.py
@@ -5,7 +5,7 @@
Test the search index builder.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_searchadapters.py b/tests/test_searchadapters.py
index ad1e58f2..81d7c178 100644
--- a/tests/test_searchadapters.py
+++ b/tests/test_searchadapters.py
@@ -5,7 +5,7 @@
Test the Web Support Package search adapters.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_setup_command.py b/tests/test_setup_command.py
new file mode 100644
index 00000000..ef7fd1f3
--- /dev/null
+++ b/tests/test_setup_command.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+"""
+ test_setup_command
+ ~~~~~~~~~~~~~~~~~~~
+
+ Test setup_command for distutils.
+
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+import os
+import sys
+import subprocess
+from functools import wraps
+import tempfile
+import sphinx
+
+from util import with_tempdir, test_roots, SkipTest
+from path import path
+from textwrap import dedent
+
+root = test_roots / 'test-setup'
+
+
+def with_setup_command(root, *args, **kwds):
+ """
+ Run `setup.py build_sphinx` with args and kwargs,
+ pass it to the test and clean up properly.
+ """
+ def generator(func):
+ @wraps(func)
+ def deco(*args2, **kwargs2):
+ tempdir = path(tempfile.mkdtemp())
+ pkgrootdir = (tempdir / 'root')
+ root.copytree(pkgrootdir)
+ cwd = os.getcwd()
+ os.chdir(pkgrootdir)
+ pythonpath = os.path.dirname(os.path.dirname(sphinx.__file__))
+ if os.getenv('PYTHONPATH'):
+ pythonpath = os.getenv('PYTHONPATH') + os.pathsep + pythonpath
+ command = [sys.executable, 'setup.py', 'build_sphinx']
+ command.extend(args)
+ try:
+ proc = subprocess.Popen(
+ command,
+ env=dict(os.environ, PYTHONPATH=pythonpath),
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ func(pkgrootdir, proc, *args, **kwds)
+ finally:
+ tempdir.rmtree(ignore_errors=True)
+ os.chdir(cwd)
+ return deco
+ return generator
+
+
+@with_setup_command(root)
+def test_build_sphinx(pkgroot, proc):
+ out, err = proc.communicate()
+ print(out)
+ print(err)
+ assert proc.returncode == 0
+
+
+@with_setup_command(root)
+def test_build_sphinx_with_nonascii_path(pkgroot, proc):
+ mb_name = u'\u65e5\u672c\u8a9e'
+ srcdir = (pkgroot / 'doc')
+ try:
+ (srcdir / mb_name).makedirs()
+ except UnicodeEncodeError:
+ from path import FILESYSTEMENCODING
+ raise SkipTest(
+ 'non-ASCII filename not supported on this filesystem encoding: '
+ '%s', FILESYSTEMENCODING)
+
+ (srcdir / mb_name / (mb_name + '.txt')).write_text(dedent("""
+ multi byte file name page
+ ==========================
+ """))
+
+ master_doc = srcdir / 'contents.txt'
+ master_doc.write_bytes((master_doc.text() + dedent("""
+ .. toctree::
+
+ %(mb_name)s/%(mb_name)s
+ """ % locals())
+ ).encode('utf-8'))
+
+ out, err = proc.communicate()
+ print(out)
+ print(err)
+ assert proc.returncode == 0
diff --git a/tests/test_templating.py b/tests/test_templating.py
new file mode 100644
index 00000000..e8fafca2
--- /dev/null
+++ b/tests/test_templating.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+"""
+ test_templating
+ ~~~~~~~~~~~~~~~~
+
+ Test templating.
+
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from util import test_roots, with_app
+
+
+def teardown_module():
+ (test_roots / 'test-templating' / '_build').rmtree(True),
+
+
+@with_app(buildername='html', srcdir=(test_roots / 'test-templating'))
+def test_layout_overloading(app):
+ app.builder.build_all()
+
+ result = (app.outdir / 'contents.html').text(encoding='utf-8')
+
+ assert '<!-- layout overloading -->' in result
+
+
+@with_app(buildername='html', srcdir=(test_roots / 'test-templating'))
+def test_autosummary_class_template_overloading(app):
+ app.builder.build_all()
+
+ result = (app.outdir / 'generated' / 'sphinx.application.Sphinx.html').text(
+ encoding='utf-8')
+
+ assert 'autosummary/class.rst method block overloading' in result
+
diff --git a/tests/test_theming.py b/tests/test_theming.py
index 2e297aed..7f91a32a 100644
--- a/tests/test_theming.py
+++ b/tests/test_theming.py
@@ -5,7 +5,7 @@
Test the Theme class.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_versioning.py b/tests/test_versioning.py
index 6469a33c..bf2f65ee 100644
--- a/tests/test_versioning.py
+++ b/tests/test_versioning.py
@@ -5,7 +5,7 @@
Test the versioning implementation.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/test_websupport.py b/tests/test_websupport.py
index 611a131a..9376a2a2 100644
--- a/tests/test_websupport.py
+++ b/tests/test_websupport.py
@@ -5,7 +5,7 @@
Test the Web Support Package
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/tests/util.py b/tests/util.py
index 4ba89030..841875b0 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -3,7 +3,7 @@
Sphinx test suite utilities
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
diff --git a/utils/check_sources.py b/utils/check_sources.py
index 5512420a..7bbd0a79 100755
--- a/utils/check_sources.py
+++ b/utils/check_sources.py
@@ -7,7 +7,7 @@
Make sure each Python file has a correct file header
including copyright and license information.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
@@ -62,7 +62,7 @@ if sys.version_info < (3, 0):
def check_style_and_encoding(fn, lines):
encoding = 'ascii'
for lno, line in enumerate(lines):
- if len(line) > 81:
+ if len(line) > 90:
yield lno+1, "line too long"
if lno < 2:
co = coding_re.search(line)
diff --git a/utils/convert.py b/utils/convert.py
index 6f461822..c90be8e6 100755
--- a/utils/convert.py
+++ b/utils/convert.py
@@ -8,7 +8,7 @@
The Python3 version of a file foo.py will be called foo3.py.
- :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os
diff --git a/utils/release-checklist b/utils/release-checklist
new file mode 100644
index 00000000..ab234f3e
--- /dev/null
+++ b/utils/release-checklist
@@ -0,0 +1,21 @@
+Release checklist
+=================
+
+* Check hg status
+* Make check
+* Update version info in sphinx/__init__.py
+* Update release date in CHANGES
+* hg commit
+* make clean
+* python setup.py release bdist_wheel sdist upload
+* For all other versions: pythonX.Y setup.py release bdist_wheel upload
+ (remove build/ before each one)
+* Check PyPI release page for obvious errors
+* hg tag
+* Merge default into stable if final major release
+* Update homepage (release info), regenerate docs (+printable!)
+* Add new version/milestone to tracker categories
+* Write announcement and send to mailing list/python-announce
+* Update version info, add new CHANGES entry for next version
+* hg commit
+* hg push