Continuation of adding translations to theme

This builds on top of #405, addressing the outstanding review feedback. It:

* Moves workflow to our standard Transifex workflow, drops recommendation for
  running babel commands by hand
* Configures Transifex
* Moves all of the commands needed to maintain translations into Grunt
* Sets up docs for translation testing
* Covers installation in docs better
* Drops recommendation for installation through submodules
* Drops superfluous translation documentation
* Cleans up some of the code
* Updates a lot of related documentation
* Updates files at Transifex and brings in full translations back to the
  translation files in the repository
This commit is contained in:
Anthony Johnson 2019-07-16 20:27:16 -06:00
parent f9a2fe45d3
commit caa3373297
20 changed files with 540 additions and 349 deletions

1
.gitignore vendored
View File

@ -1,7 +1,6 @@
*.pyc *.pyc
*.egg-info *.egg-info
*.egg *.egg
*.mo
*build/ *build/
.tox .tox
.coverage .coverage

8
.tx/config Normal file
View File

@ -0,0 +1,8 @@
[sphinx-rtd-theme.sphinx-rtd-theme]
file_filter = sphinx_rtd_theme/locale/<lang>/LC_MESSAGES/sphinx.po
source_file = sphinx_rtd_theme/locale/en/LC_MESSAGES/sphinx.po
source_lang = en
[main]
host = https://www.transifex.com
type = PO

View File

@ -140,7 +140,22 @@ module.exports = function(grunt) {
cmd: 'bower update' cmd: 'bower update'
}, },
build_sphinx: { build_sphinx: {
cmd: 'sphinx-build docs/ docs/build' cmd: function (locale) {
locale = (typeof locale !== 'undefined') ? locale : 'en';
return 'sphinx-build -D language=' + locale + ' docs/ docs/build/html'
}
},
babel_extract: {
cmd: 'python setup.py extract_messages'
},
babel_compile: {
cmd: 'python setup.py compile_catalog'
},
tx_pull: {
cmd: 'tx pull'
},
tx_push: {
cmd: 'tx push --source'
} }
}, },
clean: { clean: {
@ -184,6 +199,33 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-open'); grunt.loadNpmTasks('grunt-open');
grunt.loadNpmTasks('grunt-browserify'); grunt.loadNpmTasks('grunt-browserify');
grunt.registerTask('default', ['exec:bower_update','clean','copy:fonts','sass:dev','browserify:dev','usebanner','exec:build_sphinx','connect','open','watch']); grunt.registerTask('default', [
grunt.registerTask('build', ['exec:bower_update','clean','copy:fonts','sass:build','browserify:build','uglify','usebanner','exec:build_sphinx']); 'exec:bower_update',
'clean',
'copy:fonts',
'sass:dev',
'browserify:dev',
'usebanner',
'exec:build_sphinx',
'connect',
'open',
'watch'
]);
grunt.registerTask('build', [
'exec:bower_update',
'clean',
'copy:fonts',
'sass:build',
'browserify:build',
'uglify',
'usebanner',
'exec:build_sphinx'
]);
grunt.registerTask('i18n', [
'exec:babel_extract',
'exec:tx_push',
'exec:tx_pull',
'exec:babel_compile',
'exec:build_sphinx:es'
]);
} }

View File

@ -1,4 +1,3 @@
************************** **************************
Read the Docs Sphinx Theme Read the Docs Sphinx Theme
************************** **************************
@ -6,8 +5,8 @@ Read the Docs Sphinx Theme
.. image:: https://img.shields.io/pypi/v/sphinx_rtd_theme.svg .. image:: https://img.shields.io/pypi/v/sphinx_rtd_theme.svg
:target: https://pypi.python.org/pypi/sphinx_rtd_theme :target: https://pypi.python.org/pypi/sphinx_rtd_theme
:alt: Pypi Version :alt: Pypi Version
.. image:: https://travis-ci.org/rtfd/sphinx_rtd_theme.svg?branch=master .. image:: https://travis-ci.org/readthedocs/sphinx_rtd_theme.svg?branch=master
:target: https://travis-ci.org/rtfd/sphinx_rtd_theme :target: https://travis-ci.org/readthedocs/sphinx_rtd_theme
:alt: Build Status :alt: Build Status
.. image:: https://img.shields.io/pypi/l/sphinx_rtd_theme.svg .. image:: https://img.shields.io/pypi/l/sphinx_rtd_theme.svg
:target: https://pypi.python.org/pypi/sphinx_rtd_theme/ :target: https://pypi.python.org/pypi/sphinx_rtd_theme/
@ -16,45 +15,56 @@ Read the Docs Sphinx Theme
:target: http://sphinx-rtd-theme.readthedocs.io/en/latest/?badge=latest :target: http://sphinx-rtd-theme.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status :alt: Documentation Status
The ``sphinx_rtd_theme`` is a sphinx_ theme designed to look modern and be mobile-friendly. This Sphinx_ theme was designed to provide a great reader experience for
This theme is primarily focused to be used on readthedocs.org_ but can work with your documentation users on both desktop and mobile devices. This theme is used
own sphinx projects. To read more and see a working demo_ head over to readthedocs.org_. primarily on `Read the Docs`_ but can work with any Sphinx project. You can find
a working demo of the theme in the `theme documentation`_
.. _sphinx: http://www.sphinx-doc.org .. _Sphinx: http://www.sphinx-doc.org
.. _readthedocs.org: http://www.readthedocs.org .. _Read the Docs: http://www.readthedocs.org
.. _demo: https://sphinx-rtd-theme.readthedocs.io/en/latest/ .. _theme documentation: https://sphinx-rtd-theme.readthedocs.io/en/latest/
Installation
============
Installing This theme is distributed on PyPI_ and can be installed with ``pip``:
==========
The theme is distributed on PyPI_ and can be installed with pip:: .. code:: bash
pip install sphinx_rtd_theme pip install sphinx_rtd_theme
For more information read the full installing docs To use the theme in your Sphinx project, you will need to add the following to
`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/installing.html>`__. your ``conf.py`` file:
.. code:: python
import sphinx_rtd_theme
extensions = [
...
"sphinx_rtd_theme",
]
html_theme = "sphinx_rtd_theme"
For more information read the full documentation on `installing the theme`_
.. _PyPI: https://pypi.python.org/pypi/sphinx_rtd_theme .. _PyPI: https://pypi.python.org/pypi/sphinx_rtd_theme
.. _installing the theme: https://sphinx-rtd-theme.readthedocs.io/en/latest/installing.html
Configuration Configuration
============= =============
The ``sphinx_rtd_theme`` is highly customizable on both the page level and on a global level. This theme is highly customizable on both the page level and on a global level.
To see all the possible configuration options read the configuring docs To see all the possible configuration options, read the documentation on
`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/configuring.html>`__. `configuring the theme`_.
.. _configuring the theme: https://sphinx-rtd-theme.readthedocs.io/en/latest/configuring.html
Contributing Contributing
============ ============
If you would like to help improve the theme or have more control If you would like to help modify or translate the theme, you'll find more
over the theme in case of a fork please read our contributing guide information on contributing in our `contributing guide`_.
`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/contributing.html>`__.
Translations .. _contributing guide: https://sphinx-rtd-theme.readthedocs.io/en/latest/contributing.html
------------
You can help to translate the Read the Docs Sphinx Theme,
please read the :doc:`translations </docs/translations>` guide for more details.

View File

@ -2,16 +2,12 @@
Changelog Changelog
********* *********
Master master
====== ======
New Features New Features
------------- -------------
* Added Spanish translation
* Added i18n support using Babel
* Added Translation Guide documentation
Fixes Fixes
----- -----
@ -19,6 +15,8 @@ Other Changes
-------------- --------------
* Add the ``navigation`` template block around the navigation area. * Add the ``navigation`` template block around the navigation area.
* Added Spanish translation
* Added i18n support using Babel
0.4.3 0.4.3
====== ======

View File

@ -4,11 +4,10 @@ import sys
import os import os
import re import re
sys.path.append(os.path.abspath('..')) sys.path.insert(0, os.path.abspath('..'))
sys.path.append(os.path.abspath('./demo/')) sys.path.append(os.path.abspath('./demo/'))
from sphinx.locale import _ from sphinx.locale import _
from sphinx_rtd_theme import __version__ from sphinx_rtd_theme import __version__
@ -32,6 +31,8 @@ extensions = [
templates_path = ['_templates'] templates_path = ['_templates']
source_suffix = '.rst' source_suffix = '.rst'
exclude_patterns = [] exclude_patterns = []
locale_dirs = ['locale/']
gettext_compact = False
master_doc = 'index' master_doc = 'index'
suppress_warnings = ['image.nonlocal_uri'] suppress_warnings = ['image.nonlocal_uri']

View File

@ -1,82 +1,106 @@
************
Contributing
************
*********************************** This project follows the Read the Docs :doc:`code of conduct
Contributing or modifying the theme <rtd:code-of-conduct>`. If you are not familiar with our code of conduct policy,
*********************************** take a minute to read the policy before starting with your first contribution.
The sphinx_rtd_theme is primarily a sass_ project that requires a few other sass libraries. I'm Modifying the theme
using bower_ to manage these dependencies and sass_ to build the css. The good news is ===================
I have a very nice set of grunt_ operations that will not only load these dependencies, but watch
for changes, rebuild the sphinx demo docs and build a distributable version of the theme.
The bad news is this means you'll need to set up your environment similar to that
of a front-end developer (vs. that of a python developer). That means installing node and ruby.
.. seealso:: The styles for this theme use SASS_ and a custom CSS framework called Wyrm_. We
use Bower_ to manage these dependencies and SASS_ to build the CSS. Grunt_ is
If you are unsure of appropriate actions to take while interacting with our used to watch for changes, rebuild the static assets, and rebuild the Sphinx
community please read our :doc:`Code of Conduct <rtd:code-of-conduct>`. demo documentation.
.. note::
The installation of Ruby and Node is outside the scope of this
documentation. You will need both in order to make changes to this theme.
Set up your environment Set up your environment
======================= -----------------------
#. Install sphinx_ into a virtual environment. #. Install Sphinx_ and documentation build dependencies.
.. code:: bash .. code:: bash
pip install sphinx sphinxcontrib-httpdomain pip install -r docs/requirements.txt
#. Install sass. #. Install SASS.
.. code:: bash .. code:: bash
gem install sass gem install sass
#. Install node, bower, grunt, and theme dependencies. #. Install Bower, Grunt, and theme dependencies locally.
.. code:: bash .. code:: bash
# Install node
brew install node
# Install bower and grunt
npm install -g bower grunt-cli
# Now that everything is installed, let's install the theme dependencies.
npm install npm install
Now that our environment is set up, make sure you're in your virtual environment, go to Making changes
this repository in your terminal and run grunt: --------------
Changes to the theme can be compiled and tested with the default Grunt task:
.. code:: .. code::
grunt grunt
This default task will do the following **very cool things that make it worth the trouble**: This default task will do the following:
#. Install and update any bower dependencies. #. Install and update any Bower dependencies.
#. Run sphinx and build new docs. #. Build the static CSS from SASS source files.
#. Watch for changes to the sass files and build css from the changes. #. Build the demo documentation.
#. Rebuild the sphinx docs anytime it notices a change to ``.rst``, ``.html``, ``.js`` #. Watch for changes to the SASS files and documentation and rebuild everything
or ``.css`` files. on any detected changes.
.. _bower: http://www.bower.io Alternatively, if you don't need to watch the files, Grunt can be called with
.. _sass: http://www.sass-lang.com the same task used for releases:
.. _wyrm: http://www.github.com/snide/wyrm/
.. _grunt: http://www.gruntjs.com
.. _node: http://www.nodejs.com
.. _sphinx: http://www.sphinx-doc.org/en/stable/
.. code:: bash
Releasing the Theme grunt build
.. _Bower: http://www.bower.io
.. _SASS: http://www.sass-lang.com
.. _Wyrm: http://www.github.com/snide/wyrm/
.. _Grunt: http://www.gruntjs.com
.. _Sphinx: http://www.sphinx-doc.org/en/stable/
Translations
============
Translations are managed using `Transifex`_. You can join any of the existing
language teams or request a new language is added to the project. For more
information on our translation standards, see our docs on
:doc:`rtd:development/i18n`
Periodically, core team should update the translation files outside our normal
releases. Someone from the core team, with write access to Transifex, should run
the following:
.. code:: bash
grunt i18n
This will extract new messages, upload the messages to Transifex, and will
update our local translation files. Changes can be checked in to a branch and
put up for review.
.. _Transifex: https://www.transifex.com/readthedocs/sphinx-rtd-theme
Releasing the theme
=================== ===================
When you release a new version, To release a new version of the theme, core team will take the following steps:
you should do the following:
#. Bump the version in ``sphinx_rtd_theme/__init__.py``, ``bower.json`` and ``package.json`` -- #. Bump the version in ``sphinx_rtd_theme/__init__.py``, ``bower.json`` and ``package.json`` --
we try to follow `semver <http://semver.org/>`_, so be careful with breaking changes. we try to follow `semver <http://semver.org/>`_, so be careful with breaking changes.
#. Update the changelog (``docs/changelog.rst``) with the version information. #. Update the changelog (``docs/changelog.rst``) with the version information.
#. Run a ``grunt build`` to rebuild all the theme assets. #. Run ``grunt build`` to rebuild all the theme assets.
#. Run ``grunt i18n`` to compile new translation files and update Transifex
#. Commit that change. #. Commit that change.
#. Tag the release in git: ``git tag $NEW_VERSION``. #. Tag the release in git: ``git tag $NEW_VERSION``.
#. Push the tag to GitHub: ``git push --tags origin``. #. Push the tag to GitHub: ``git push --tags origin``.
@ -84,6 +108,6 @@ you should do the following:
.. code:: bash .. code:: bash
$ rm -rf dist/ rm -rf dist/
$ python setup.py sdist bdist_wheel python setup.py sdist bdist_wheel
$ twine upload --sign --identity security@readthedocs.org dist/* twine upload --sign --identity security@readthedocs.org dist/*

View File

@ -6,15 +6,18 @@
installing installing
configuring configuring
changelog
contributing contributing
translations
.. toctree::
:maxdepth: 1
:hidden:
changelog
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:numbered: :numbered:
:caption: Demo Documents :caption: Demo Documentation
demo/structure demo/structure
demo/demo demo/demo

View File

@ -1,11 +1,7 @@
************ ************
Installation Installation
************ ************
Via Python Package
==================
Install the package (or add it to your ``requirements.txt`` file): Install the package (or add it to your ``requirements.txt`` file):
.. code:: bash .. code:: bash
@ -16,17 +12,18 @@ In your ``conf.py`` file:
.. code:: python .. code:: python
html_theme = "sphinx_rtd_theme" import sphinx_rtd_theme
Via Git or Download extensions = [
=================== ...
'sphinx_rtd_theme',
Symlink or subtree the ``sphinx_rtd_theme/sphinx_rtd_theme`` repository into your documentation at ]
``docs/_themes/sphinx_rtd_theme`` then add the following two settings to your Sphinx
``conf.py`` file:
.. code:: python
html_theme = "sphinx_rtd_theme" html_theme = "sphinx_rtd_theme"
html_theme_path = ["_themes", ]
.. note::
Adding this theme as an extension is what enables localization of theme
strings in your translated output. If these strings are not translated in
your output, either we lack the localized strings for your locale, or you
are using an old version of the theme.

View File

@ -1,192 +0,0 @@
******************
Translation Guide
******************
.. contents::
You can help to translate the Read the Docs Sphinx Theme.
Installation
============
For translating the Read the Docs Sphinx Theme you will need to install the following packages:
.. code:: bash
$ pip install babel Jinja2
Translating Applications with Babel
-----------------------------------
After you marked all the strings you want to translate in this Sphinx theme with the gettext function
alias ``_('str')`` or ``{% trans %}string 1, string 2, string 3, etc.{% endtrans %}`` blocks.
Then its time to create a .pot file. A .pot file contains all the strings and is the template for a
.po file which contains the translated strings. The ``babel`` package can do all that for you.
Configuration
=============
For enable the *Internationalization and Localization* for this Sphinx Theme, you will need checkout
the following configurations:
Translations files
------------------
The translations files are based on ``gettext`` format and they are placed at the
:file:`sphinx_rtd_theme/locale/` directory, like it showing the following structure:
.. code:: bash
sphinx_rtd_theme/locale/
├── es
│   └── LC_MESSAGES
│   ├── sphinx.mo
│   └── sphinx.po
└── sphinx.pot
:file:`sphinx_rtd_theme/locale/<LANG>/LC_MESSAGES/`
This folder contains a specific language is the **Gettext format**.
:file:`sphinx.pot`
This file is the **Portable Object Template** Gettext format.
:file:`sphinx.po`
This file is the **Portable Object** Gettext format to translate.
Babel Configurations
--------------------
The ``babel`` packages provides commands for integration into :file:`setup.py` scripts, based on either
the ``distutils`` package that is part of the Python standard library, or the third-party ``setuptools``
package.
Then :file:`setup.cfg` file simply configures the behavior of the various setup commands for this package.
This file contains the options that you can be specified on the command-line. The :file:`setup.cfg` file
at root folder of this Sphinx theme, look like the following:
.. code:: cfg
[bdist_wheel]
universal = 1
# Babel configurations for setup.py scripts
[compile_catalog]
domain = sphinx
directory = sphinx_rtd_theme/locale/
[extract_messages]
mapping_file = babel.cfg
output_file = sphinx_rtd_theme/locale/sphinx.pot
keywords = _ l_ lazy_gettext
[init_catalog]
input_file = sphinx_rtd_theme/locale/sphinx.pot
output_file = sphinx_rtd_theme/locale/$LANG/LC_MESSAGES/sphinx.po
[update_catalog]
domain = sphinx
input_file = sphinx_rtd_theme/locale/sphinx.pot
output_dir = sphinx_rtd_theme/locale/
If the command has been correctly installed or registered, a project's setup.py script should
allow you to use the following command:
.. code:: bash
$ python ./setup.py subcommand options
Execute the follow command for more options and follow these instructions to get details:
.. code:: bash
$ python ./setup.py --help-commands
Extraction Configurations
-------------------------
First of all you have to get into the folder where you have your Sphinx theme and create a mapping file
called :file:`babel.cfg` that contains the **extraction from Jinja2 HTML templates** configurations.
For typical Sphinx extensions, this is what you want in there:
.. code:: cfg
# Extraction from Jinja2 HTML templates
[jinja2: **/**.html]
encoding = utf-8
ignore_tags = script,style
include_attrs = alt title summary placeholder
.. seealso::
More details check out the following links:
- `How setup this file <http://babel.pocoo.org/en/latest/setup.html>`_
- `A previous file example description <http://babel.pocoo.org/en/latest/messages.html#extraction-method-mapping-and-configuration>`_
Administrative Tasks
====================
The ``babel`` package have a *Distutils/Setuptools Integration* which supports the options
defined in the :file:`setup.cfg` file that can be executed via command line.
These options are the commonly using as **"Translations Administrative Tasks"** and the most
used tasks are described below:
Extract messages
----------------
It can extract localizable messages from a variety of difference source files,
and generate a PO (portable object) template file from the collected messages.
Running the following command will produce a PO template file:
.. code:: bash
$ python ./setup.py extract_messages -o ./sphinx_rtd_theme/locale/sphinx.pot
.. tip::
More options please, check out http://babel.pocoo.org/en/latest/setup.html#extract-messages
Init catalog
------------
It creates a new translation catalog based on a PO template file (POT). Running the following
command will produce a PO file:
.. code:: bash
$ python ./setup.py init_catalog -l es -i ./sphinx_rtd_theme/locale/sphinx.pot \
-o ./sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.po
.. tip::
More options please, check out http://babel.pocoo.org/en/latest/setup.html#init-catalog
Update catalog
--------------
It updates an existing translations catalog based on a PO template file (POT). Running the following
command will update a PO file:
.. code:: bash
$ python ./setup.py update_catalog -l es -i ./sphinx_rtd_theme/locale/sphinx.pot \
-o ./sphinx_rtd_theme/locale/es/LC_MESSAGES/sphinx.po
.. tip::
More options please, check out http://babel.pocoo.org/en/latest/setup.html#update-catalog
Compile catalog
---------------
It compile catalog an existing translations based on PO files into MO files. Running the following
command will compile catalog of PO files:
.. code:: bash
$ python ./setup.py compile_catalog -d ./sphinx_rtd_theme/locale/

View File

@ -1,16 +1,16 @@
[bdist_wheel] [bdist_wheel]
universal = 1 universal = 1
# Babel configurations for setup.py scripts
# http://babel.pocoo.org/en/latest/setup.html
[extract_messages] [extract_messages]
mapping_file = babel.cfg mapping_file = babel.cfg
output_file = sphinx_rtd_theme/locale/sphinx.pot output_file = sphinx_rtd_theme/locale/sphinx.pot
keywords = _ l_ lazy_gettext keywords = _ l_ lazy_gettext
add_comments = Translators:
[init_catalog] [init_catalog]
domain = sphinx
input_file = sphinx_rtd_theme/locale/sphinx.pot input_file = sphinx_rtd_theme/locale/sphinx.pot
output_file = sphinx_rtd_theme/locale/$LANG/LC_MESSAGES/sphinx.po output_dir = sphinx_rtd_theme/locale/
[update_catalog] [update_catalog]
domain = sphinx domain = sphinx

View File

@ -1,9 +1,11 @@
"""Sphinx ReadTheDocs theme. """
Sphinx Read the Docs theme.
From https://github.com/ryan-roemer/sphinx-bootstrap-theme. From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
""" """
from os import path from os import path
import sphinx import sphinx
@ -21,10 +23,8 @@ def get_html_theme_path():
def setup(app): def setup(app):
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__))) app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
# for sphinx-1.8 or later if sphinx.version_info >= (1, 8, 0):
if sphinx.version_info[0:3] >= (1,8,0): # Add Sphinx message catalog for newer versions of Sphinx
rtd_locale_path = path.join(path.abspath(path.dirname(__file__)), 'locale')
# See http://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_message_catalog # See http://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_message_catalog
rtd_locale_path = path.join(path.abspath(path.dirname(__file__)), 'locale')
app.add_message_catalog('sphinx', rtd_locale_path) app.add_message_catalog('sphinx', rtd_locale_path)

Binary file not shown.

View File

@ -0,0 +1,145 @@
# English translations for sphinx_rtd_theme.
# Copyright (C) 2019 ORGANIZATION
# This file is distributed under the same license as the sphinx_rtd_theme
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-07-16 15:59-0600\n"
"PO-Revision-Date: 2019-07-16 15:43-0600\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
#: sphinx_rtd_theme/breadcrumbs.html:31
msgid "Docs"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:43 sphinx_rtd_theme/breadcrumbs.html:45
msgid "Edit on GitHub"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:50 sphinx_rtd_theme/breadcrumbs.html:52
msgid "Edit on Bitbucket"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:57 sphinx_rtd_theme/breadcrumbs.html:59
msgid "Edit on GitLab"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:62 sphinx_rtd_theme/breadcrumbs.html:64
msgid "View page source"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:74 sphinx_rtd_theme/footer.html:5
msgid "Next"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:77 sphinx_rtd_theme/footer.html:8
msgid "Previous"
msgstr ""
#: sphinx_rtd_theme/footer.html:21 sphinx_rtd_theme/footer.html:24
#: sphinx_rtd_theme/layout.html:92
msgid "Copyright"
msgstr ""
#: sphinx_rtd_theme/footer.html:30
msgid "Build"
msgstr ""
#: sphinx_rtd_theme/footer.html:35
msgid "Revision"
msgstr ""
#: sphinx_rtd_theme/footer.html:39
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr ""
#: sphinx_rtd_theme/footer.html:49
#, python-format
msgid "Built with %(sphinx_web)s using a"
msgstr ""
#: sphinx_rtd_theme/footer.html:49
msgid "theme"
msgstr ""
#: sphinx_rtd_theme/footer.html:49
#, python-format
msgid "provided by %(readthedocs_web)s"
msgstr ""
#: sphinx_rtd_theme/layout.html:61
#, python-format
msgid "Search within %(docstitle)s"
msgstr ""
#: sphinx_rtd_theme/layout.html:83
msgid "About these documents"
msgstr ""
#: sphinx_rtd_theme/layout.html:86
msgid "Index"
msgstr ""
#: sphinx_rtd_theme/layout.html:89 sphinx_rtd_theme/search.html:11
msgid "Search"
msgstr ""
#: sphinx_rtd_theme/layout.html:124
msgid "Logo"
msgstr ""
#: sphinx_rtd_theme/search.html:26
msgid "Please activate JavaScript to enable the search functionality."
msgstr ""
#: sphinx_rtd_theme/search.html:33
msgid "Search Results"
msgstr ""
#: sphinx_rtd_theme/search.html:35
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_rtd_theme/searchbox.html:4
msgid "Search docs"
msgstr ""
#: sphinx_rtd_theme/versions.html:11
msgid "Versions"
msgstr ""
#: sphinx_rtd_theme/versions.html:17
msgid "Downloads"
msgstr ""
#. The phrase "Read the Docs" is not translated
#: sphinx_rtd_theme/versions.html:24
msgid "On Read the Docs"
msgstr ""
#: sphinx_rtd_theme/versions.html:26
msgid "Project Home"
msgstr ""
#: sphinx_rtd_theme/versions.html:29
msgid "Builds"
msgstr ""
#: sphinx_rtd_theme/versions.html:33
msgid "Free document hosting provided by"
msgstr ""

Binary file not shown.

View File

@ -1,22 +1,26 @@
# Spanish translations for sphinx_rtd_theme. # English translations for sphinx_rtd_theme.
# Copyright (C) 2018 Read the Docs # Copyright (C) 2019 ORGANIZATION
# This file is distributed under the same license as the sphinx_rtd_theme # This file is distributed under the same license as the sphinx_rtd_theme
# project. # project.
# Leonardo J. Caballero G. <leonardocaballero@gmail.com>, 2017, 2018. # FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
#
# Translators:
# Anthony <aj@ohess.org>, 2019
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.3.0\n" "Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2018-04-18 17:43-0400\n" "POT-Creation-Date: 2019-07-16 15:59-0600\n"
"PO-Revision-Date: 2018-04-30 23:31-0400\n" "PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: Leonardo J. Caballero G. <leonardocaballero@gmail.com>\n" "Last-Translator: Anthony <aj@ohess.org>, 2019\n"
"Language: es\n" "Language: es\n"
"Language-Team: es\n" "Language-Team: Spanish "
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "(https://www.transifex.com/readthedocs/teams/101354/es/)\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\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" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.5.3\n" "Generated-By: Babel 2.6.0\n"
#: sphinx_rtd_theme/breadcrumbs.html:31 #: sphinx_rtd_theme/breadcrumbs.html:31
msgid "Docs" msgid "Docs"
@ -36,7 +40,7 @@ msgstr "Editar en GitLab"
#: sphinx_rtd_theme/breadcrumbs.html:62 sphinx_rtd_theme/breadcrumbs.html:64 #: sphinx_rtd_theme/breadcrumbs.html:62 sphinx_rtd_theme/breadcrumbs.html:64
msgid "View page source" msgid "View page source"
msgstr "Ver página de código fuente" msgstr "Ver código fuente de la página"
#: sphinx_rtd_theme/breadcrumbs.html:74 sphinx_rtd_theme/footer.html:5 #: sphinx_rtd_theme/breadcrumbs.html:74 sphinx_rtd_theme/footer.html:5
msgid "Next" msgid "Next"
@ -47,7 +51,7 @@ msgid "Previous"
msgstr "Anterior" msgstr "Anterior"
#: sphinx_rtd_theme/footer.html:21 sphinx_rtd_theme/footer.html:24 #: sphinx_rtd_theme/footer.html:21 sphinx_rtd_theme/footer.html:24
#: sphinx_rtd_theme/layout.html:70 #: sphinx_rtd_theme/layout.html:92
msgid "Copyright" msgid "Copyright"
msgstr "Derechos de autor" msgstr "Derechos de autor"
@ -59,43 +63,43 @@ msgstr "Construido"
msgid "Revision" msgid "Revision"
msgstr "Revisión" msgstr "Revisión"
#: sphinx_rtd_theme/footer.html:38 #: sphinx_rtd_theme/footer.html:39
#, python-format #, python-format
msgid "Last updated on %(last_updated)s." msgid "Last updated on %(last_updated)s."
msgstr "Actualizado por última vez en %(last_updated)s." msgstr "Actualizado por última vez en %(last_updated)s."
#: sphinx_rtd_theme/footer.html:47 #: sphinx_rtd_theme/footer.html:49
#, python-format #, python-format
msgid "Built with %(sphinx_web)s using a" msgid "Built with %(sphinx_web)s using a"
msgstr "Construido con %(sphinx_web)s usando un" msgstr "Construido con %(sphinx_web)s usando un"
#: sphinx_rtd_theme/footer.html:47 #: sphinx_rtd_theme/footer.html:49
msgid "theme" msgid "theme"
msgstr "tema" msgstr "tema"
#: sphinx_rtd_theme/footer.html:47 #: sphinx_rtd_theme/footer.html:49
#, python-format #, python-format
msgid "provided by %(readthedocs_web)s" msgid "provided by %(readthedocs_web)s"
msgstr "proporcionado por %(readthedocs_web)s" msgstr "proporcionado por %(readthedocs_web)s"
#: sphinx_rtd_theme/layout.html:37 #: sphinx_rtd_theme/layout.html:61
#, python-format #, python-format
msgid "Search within %(docstitle)s" msgid "Search within %(docstitle)s"
msgstr "Buscar en %(docstitle)s" msgstr "Buscar en %(docstitle)s"
#: sphinx_rtd_theme/layout.html:61 #: sphinx_rtd_theme/layout.html:83
msgid "About these documents" msgid "About these documents"
msgstr "Sobre esta documentación" msgstr "Sobre esta documentación"
#: sphinx_rtd_theme/layout.html:64 #: sphinx_rtd_theme/layout.html:86
msgid "Index" msgid "Index"
msgstr "Índice" msgstr "Índice"
#: sphinx_rtd_theme/layout.html:67 sphinx_rtd_theme/search.html:11 #: sphinx_rtd_theme/layout.html:89 sphinx_rtd_theme/search.html:11
msgid "Search" msgid "Search"
msgstr "Búsqueda" msgstr "Búsqueda"
#: sphinx_rtd_theme/layout.html:107 #: sphinx_rtd_theme/layout.html:124
msgid "Logo" msgid "Logo"
msgstr "Logotipo" msgstr "Logotipo"
@ -112,8 +116,8 @@ msgid ""
"Your search did not match any documents. Please make sure that all words " "Your search did not match any documents. Please make sure that all words "
"are spelled correctly and that you've selected enough categories." "are spelled correctly and that you've selected enough categories."
msgstr "" msgstr ""
"Su búsqueda no coincide con ningún documentos. Por favor, asegúrese de " "Su búsqueda no coincide con ningún documento. Por favor, asegúrese de que"
"que todas las palabras estén correctamente escritas y que usted allá " " todas las palabras estén correctamente escritas y que usted haya "
"seleccionado las suficientes categorías." "seleccionado las suficientes categorías."
#: sphinx_rtd_theme/searchbox.html:4 #: sphinx_rtd_theme/searchbox.html:4
@ -128,18 +132,20 @@ msgstr "Versiones"
msgid "Downloads" msgid "Downloads"
msgstr "Descargas" msgstr "Descargas"
#: sphinx_rtd_theme/versions.html:23 #. The phrase "Read the Docs" is not translated
#: sphinx_rtd_theme/versions.html:24
msgid "On Read the Docs" msgid "On Read the Docs"
msgstr "En Read the Docs" msgstr "En Read the Docs"
#: sphinx_rtd_theme/versions.html:25 #: sphinx_rtd_theme/versions.html:26
msgid "Project Home" msgid "Project Home"
msgstr "Página de Proyecto" msgstr "Página de Proyecto"
#: sphinx_rtd_theme/versions.html:28 #: sphinx_rtd_theme/versions.html:29
msgid "Builds" msgid "Builds"
msgstr "Construcciones" msgstr "Construcciones"
#: sphinx_rtd_theme/versions.html:32 #: sphinx_rtd_theme/versions.html:33
msgid "Free document hosting provided by" msgid "Free document hosting provided by"
msgstr "Alojamiento gratuito de documentos proporcionado por" msgstr "Alojamiento gratuito de documentos proporcionado por"

Binary file not shown.

View File

@ -0,0 +1,148 @@
# English translations for sphinx_rtd_theme.
# Copyright (C) 2019 ORGANIZATION
# This file is distributed under the same license as the sphinx_rtd_theme
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2019-07-16 15:59-0600\n"
"PO-Revision-Date: 2019-07-16 21:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ru\n"
"Language-Team: Russian "
"(https://www.transifex.com/readthedocs/teams/101354/ru/)\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) "
"|| (n%100>=11 && n%100<=14)? 2 : 3)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
#: sphinx_rtd_theme/breadcrumbs.html:31
msgid "Docs"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:43 sphinx_rtd_theme/breadcrumbs.html:45
msgid "Edit on GitHub"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:50 sphinx_rtd_theme/breadcrumbs.html:52
msgid "Edit on Bitbucket"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:57 sphinx_rtd_theme/breadcrumbs.html:59
msgid "Edit on GitLab"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:62 sphinx_rtd_theme/breadcrumbs.html:64
msgid "View page source"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:74 sphinx_rtd_theme/footer.html:5
msgid "Next"
msgstr ""
#: sphinx_rtd_theme/breadcrumbs.html:77 sphinx_rtd_theme/footer.html:8
msgid "Previous"
msgstr ""
#: sphinx_rtd_theme/footer.html:21 sphinx_rtd_theme/footer.html:24
#: sphinx_rtd_theme/layout.html:92
msgid "Copyright"
msgstr ""
#: sphinx_rtd_theme/footer.html:30
msgid "Build"
msgstr ""
#: sphinx_rtd_theme/footer.html:35
msgid "Revision"
msgstr ""
#: sphinx_rtd_theme/footer.html:39
#, python-format
msgid "Last updated on %(last_updated)s."
msgstr ""
#: sphinx_rtd_theme/footer.html:49
#, python-format
msgid "Built with %(sphinx_web)s using a"
msgstr ""
#: sphinx_rtd_theme/footer.html:49
msgid "theme"
msgstr ""
#: sphinx_rtd_theme/footer.html:49
#, python-format
msgid "provided by %(readthedocs_web)s"
msgstr ""
#: sphinx_rtd_theme/layout.html:61
#, python-format
msgid "Search within %(docstitle)s"
msgstr ""
#: sphinx_rtd_theme/layout.html:83
msgid "About these documents"
msgstr ""
#: sphinx_rtd_theme/layout.html:86
msgid "Index"
msgstr ""
#: sphinx_rtd_theme/layout.html:89 sphinx_rtd_theme/search.html:11
msgid "Search"
msgstr ""
#: sphinx_rtd_theme/layout.html:124
msgid "Logo"
msgstr ""
#: sphinx_rtd_theme/search.html:26
msgid "Please activate JavaScript to enable the search functionality."
msgstr ""
#: sphinx_rtd_theme/search.html:33
msgid "Search Results"
msgstr ""
#: sphinx_rtd_theme/search.html:35
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_rtd_theme/searchbox.html:4
msgid "Search docs"
msgstr ""
#: sphinx_rtd_theme/versions.html:11
msgid "Versions"
msgstr ""
#: sphinx_rtd_theme/versions.html:17
msgid "Downloads"
msgstr ""
#. The phrase "Read the Docs" is not translated
#: sphinx_rtd_theme/versions.html:24
msgid "On Read the Docs"
msgstr ""
#: sphinx_rtd_theme/versions.html:26
msgid "Project Home"
msgstr ""
#: sphinx_rtd_theme/versions.html:29
msgid "Builds"
msgstr ""
#: sphinx_rtd_theme/versions.html:33
msgid "Free document hosting provided by"
msgstr ""

View File

@ -1,22 +1,22 @@
# Translations template for sphinx_rtd_theme. # Translations template for sphinx_rtd_theme.
# Copyright (C) 2018 ORGANIZATION # Copyright (C) 2019 ORGANIZATION
# This file is distributed under the same license as the sphinx_rtd_theme # This file is distributed under the same license as the sphinx_rtd_theme
# project. # project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2018. # FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: sphinx_rtd_theme 0.3.0\n" "Project-Id-Version: sphinx_rtd_theme 0.4.3.dev0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2018-04-18 17:43-0400\n" "POT-Creation-Date: 2019-07-16 18:15-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\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" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.5.3\n" "Generated-By: Babel 2.6.0\n"
#: sphinx_rtd_theme/breadcrumbs.html:31 #: sphinx_rtd_theme/breadcrumbs.html:31
msgid "Docs" msgid "Docs"
@ -47,7 +47,7 @@ msgid "Previous"
msgstr "" msgstr ""
#: sphinx_rtd_theme/footer.html:21 sphinx_rtd_theme/footer.html:24 #: sphinx_rtd_theme/footer.html:21 sphinx_rtd_theme/footer.html:24
#: sphinx_rtd_theme/layout.html:70 #: sphinx_rtd_theme/layout.html:92
msgid "Copyright" msgid "Copyright"
msgstr "" msgstr ""
@ -59,43 +59,43 @@ msgstr ""
msgid "Revision" msgid "Revision"
msgstr "" msgstr ""
#: sphinx_rtd_theme/footer.html:38 #: sphinx_rtd_theme/footer.html:39
#, python-format #, python-format
msgid "Last updated on %(last_updated)s." msgid "Last updated on %(last_updated)s."
msgstr "" msgstr ""
#: sphinx_rtd_theme/footer.html:47 #: sphinx_rtd_theme/footer.html:49
#, python-format #, python-format
msgid "Built with %(sphinx_web)s using a" msgid "Built with %(sphinx_web)s using a"
msgstr "" msgstr ""
#: sphinx_rtd_theme/footer.html:47 #: sphinx_rtd_theme/footer.html:49
msgid "theme" msgid "theme"
msgstr "" msgstr ""
#: sphinx_rtd_theme/footer.html:47 #: sphinx_rtd_theme/footer.html:49
#, python-format #, python-format
msgid "provided by %(readthedocs_web)s" msgid "provided by %(readthedocs_web)s"
msgstr "" msgstr ""
#: sphinx_rtd_theme/layout.html:37 #: sphinx_rtd_theme/layout.html:61
#, python-format #, python-format
msgid "Search within %(docstitle)s" msgid "Search within %(docstitle)s"
msgstr "" msgstr ""
#: sphinx_rtd_theme/layout.html:61 #: sphinx_rtd_theme/layout.html:83
msgid "About these documents" msgid "About these documents"
msgstr "" msgstr ""
#: sphinx_rtd_theme/layout.html:64 #: sphinx_rtd_theme/layout.html:86
msgid "Index" msgid "Index"
msgstr "" msgstr ""
#: sphinx_rtd_theme/layout.html:67 sphinx_rtd_theme/search.html:11 #: sphinx_rtd_theme/layout.html:89 sphinx_rtd_theme/search.html:11
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: sphinx_rtd_theme/layout.html:107 #: sphinx_rtd_theme/layout.html:124
msgid "Logo" msgid "Logo"
msgstr "" msgstr ""
@ -125,19 +125,20 @@ msgstr ""
msgid "Downloads" msgid "Downloads"
msgstr "" msgstr ""
#: sphinx_rtd_theme/versions.html:23 #. The phrase "Read the Docs" is not translated
#: sphinx_rtd_theme/versions.html:24
msgid "On Read the Docs" msgid "On Read the Docs"
msgstr "" msgstr ""
#: sphinx_rtd_theme/versions.html:25 #: sphinx_rtd_theme/versions.html:26
msgid "Project Home" msgid "Project Home"
msgstr "" msgstr ""
#: sphinx_rtd_theme/versions.html:28 #: sphinx_rtd_theme/versions.html:29
msgid "Builds" msgid "Builds"
msgstr "" msgstr ""
#: sphinx_rtd_theme/versions.html:32 #: sphinx_rtd_theme/versions.html:33
msgid "Free document hosting provided by" msgid "Free document hosting provided by"
msgstr "" msgstr ""

View File

@ -20,6 +20,7 @@
{% endfor %} {% endfor %}
</dl> </dl>
<dl> <dl>
{# Translators: The phrase "Read the Docs" is not translated #}
<dt>{{ _('On Read the Docs') }}</dt> <dt>{{ _('On Read the Docs') }}</dt>
<dd> <dd>
<a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a> <a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>