summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2014-05-05 23:48:51 -0400
committerChris McDonough <chrism@plope.com>2014-05-05 23:48:51 -0400
commit0caac0a0af78cd55df2e1f3c3c7fc5171dbfe849 (patch)
treea624aa38b3db1f7de58bb8bf9aaff4583cec28fd /docs
parentba85e591d563ed654f492f7cab5ca492a32a86d7 (diff)
parent0117573edbc5dff565868187f8841859b3e36a51 (diff)
downloadpyramid-0caac0a0af78cd55df2e1f3c3c7fc5171dbfe849.tar.gz
pyramid-0caac0a0af78cd55df2e1f3c3c7fc5171dbfe849.tar.bz2
pyramid-0caac0a0af78cd55df2e1f3c3c7fc5171dbfe849.zip
Merge branch 'master' into redundant_totuorial_logging_config
Diffstat (limited to 'docs')
-rw-r--r--docs/conf.py22
-rw-r--r--docs/glossary.rst5
-rw-r--r--docs/narr/MyProject/setup.cfg27
-rw-r--r--docs/narr/i18n.rst184
-rw-r--r--docs/narr/project.rst56
-rw-r--r--docs/quick_tour/awesome/setup.cfg28
-rw-r--r--docs/quick_tour/package/setup.cfg28
-rw-r--r--docs/quick_tour/sqla_demo/setup.cfg27
-rw-r--r--docs/quick_tutorial/hello_world.rst4
-rw-r--r--docs/quick_tutorial/hello_world/app.py4
-rw-r--r--docs/quick_tutorial/scaffolds.rst8
-rw-r--r--docs/quick_tutorial/scaffolds/setup.cfg27
-rw-r--r--docs/tutorials/wiki/src/authorization/setup.cfg28
-rw-r--r--docs/tutorials/wiki/src/basiclayout/setup.cfg27
-rw-r--r--docs/tutorials/wiki/src/models/setup.cfg28
-rw-r--r--docs/tutorials/wiki/src/tests/setup.cfg28
-rw-r--r--docs/tutorials/wiki/src/views/setup.cfg28
-rw-r--r--docs/tutorials/wiki2/authorization.rst15
-rw-r--r--docs/tutorials/wiki2/src/authorization/setup.cfg27
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/setup.cfg27
-rw-r--r--docs/tutorials/wiki2/src/models/setup.cfg27
-rw-r--r--docs/tutorials/wiki2/src/tests/setup.cfg27
-rw-r--r--docs/tutorials/wiki2/src/views/setup.cfg27
-rw-r--r--docs/whatsnew-1.5.rst3
24 files changed, 109 insertions, 603 deletions
diff --git a/docs/conf.py b/docs/conf.py
index a447c9968..eba776628 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -138,17 +138,21 @@ if book:
# Add and use Pylons theme
if 'sphinx-build' in ' '.join(sys.argv): # protect against dumb importers
from subprocess import call, Popen, PIPE
-
- p = Popen('which git', shell=True, stdout=PIPE)
cwd = os.getcwd()
- _themes = os.path.join(cwd, '_themes')
+ p = Popen('which git', shell=True, stdout=PIPE)
+ here = os.path.abspath(os.path.dirname(__file__))
+ parent = os.path.abspath(os.path.dirname(here))
+ _themes = os.path.join(here, '_themes')
git = p.stdout.read().strip()
- if not os.listdir(_themes):
- call([git, 'submodule', '--init'])
- else:
- call([git, 'submodule', 'update'])
-
- sys.path.append(os.path.abspath('_themes'))
+ try:
+ os.chdir(parent)
+ if not os.listdir(_themes):
+ call([git, 'submodule', '--init'])
+ else:
+ call([git, 'submodule', 'update'])
+ sys.path.append(_themes)
+ finally:
+ os.chdir(cwd)
html_theme_path = ['_themes']
html_theme = 'pyramid'
diff --git a/docs/glossary.rst b/docs/glossary.rst
index 0e340491b..2cc461a77 100644
--- a/docs/glossary.rst
+++ b/docs/glossary.rst
@@ -801,8 +801,9 @@ Glossary
application.
Lingua
- A package by Wichert Akkerman which provides :term:`Babel` message
- extractors for Python source files and Chameleon ZPT template files.
+ A package by Wichert Akkerman which provides the ``pot-create``
+ command to extract translateable messages from Python sources
+ and Chameleon ZPT template files.
Message Identifier
A string used as a translation lookup key during localization.
diff --git a/docs/narr/MyProject/setup.cfg b/docs/narr/MyProject/setup.cfg
deleted file mode 100644
index 332e80a60..000000000
--- a/docs/narr/MyProject/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match = ^test
-nocapture = 1
-cover-package = myproject
-with-coverage = 1
-cover-erase = 1
-
-[compile_catalog]
-directory = myproject/locale
-domain = MyProject
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = myproject/locale/MyProject.pot
-width = 80
-
-[init_catalog]
-domain = MyProject
-input_file = myproject/locale/MyProject.pot
-output_dir = myproject/locale
-
-[update_catalog]
-domain = MyProject
-input_file = myproject/locale/MyProject.pot
-output_dir = myproject/locale
-previous = true
diff --git a/docs/narr/i18n.rst b/docs/narr/i18n.rst
index 5f50ca212..1de2c8941 100644
--- a/docs/narr/i18n.rst
+++ b/docs/narr/i18n.rst
@@ -245,88 +245,70 @@ GNU gettext uses three types of files in the translation framework,
A ``.po`` file is turned into a machine-readable binary file, which
is the ``.mo`` file. Compiling the translations to machine code
- makes the localized program run faster.
+ makes the localized program start faster.
The tools for working with :term:`gettext` translation files related to a
-:app:`Pyramid` application is :term:`Babel` and :term:`Lingua`. Lingua is a
-Babel extension that provides support for scraping i18n references out of
-Python and Chameleon files.
+:app:`Pyramid` application are :term:`Lingua` and :term:`Gettext`. Lingua
+can scrape i18n references out of Python and Chameleon files and create
+the ``.pot`` file. Gettext includes ``msgmerge`` tool to update a ``.po`` file
+from an updated ``.pot`` file and ``msgfmt`` to compile ``.po`` files to
+``.mo`` files.
.. index::
- single: Babel
+ single: Gettext
single: Lingua
.. _installing_babel:
-Installing Babel and Lingua
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Installing Lingua and Gettext
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In order for the commands related to working with ``gettext`` translation
-files to work properly, you will need to have :term:`Babel` and
-:term:`Lingua` installed into the same environment in which :app:`Pyramid` is
+files to work properly, you will need to have :term:`Lingua` and
+:term:`Gettext` installed into the same environment in which :app:`Pyramid` is
installed.
Installation on UNIX
++++++++++++++++++++
-If the :term:`virtualenv` into which you've installed your :app:`Pyramid`
-application lives in ``/my/virtualenv``, you can install Babel and Lingua
-like so:
+Gettext is often already installed on UNIX systems. You can check if it is
+installed by testing if the ``msgfmt`` command is available. If it is not
+available you can install it through the packaging system from your OS;
+the package name is almost always ``gettext``. For example on a Debian or
+Ubuntu system run this command:
.. code-block:: text
- $ cd /my/virtualenv
- $ $VENV/bin/easy_install Babel lingua
+ $ sudo apt-get install gettext
-Installation on Windows
-+++++++++++++++++++++++
-
-If the :term:`virtualenv` into which you've installed your :app:`Pyramid`
-application lives in ``C:\my\virtualenv``, you can install Babel and Lingua
+Installing Lingua is done with the Python packaging tools. If the
+:term:`virtualenv` into which you've installed your :app:`Pyramid` application
+lives in ``/my/virtualenv``, you can install Lingua
like so:
.. code-block:: text
- C> %VENV%\Scripts\easy_install Babel lingua
+ $ cd /my/virtualenv
+ $ $VENV/bin/easy_install lingua
-.. index::
- single: Babel; message extractors
- single: Lingua
+Installation on Windows
++++++++++++++++++++++++
-Changing the ``setup.py``
-+++++++++++++++++++++++++
+There are several ways to install Gettext on Windows: it is included in the
+`Cygwin <http://www.cygwin.com/>`_ collection, or you can use the `installer
+from the GnuWin32 <http://gnuwin32.sourceforge.net/packages/gettext.htm>`_
+or compile it yourself. Make sure the installation path is added to your
+``$PATH``.
-You need to add a few boilerplate lines to your application's ``setup.py``
-file in order to properly generate :term:`gettext` files from your
-application.
-.. note:: See :ref:`project_narr` to learn about the
- composition of an application's ``setup.py`` file.
+Installing Lingua is done with the Python packaging tools. If the
+:term:`virtualenv` into which you've installed your :app:`Pyramid` application
+lives in ``C:\my\virtualenv``, you can install Lingua like so:
-In particular, add the ``Babel`` and ``lingua`` distributions to the
-``install_requires`` list and insert a set of references to :term:`Babel`
-*message extractors* within the call to :func:`setuptools.setup` inside your
-application's ``setup.py`` file:
+.. code-block:: text
-.. code-block:: python
- :linenos:
+ C> %VENV%\Scripts\easy_install lingua
- setup(name="mypackage",
- # ...
- install_requires = [
- # ...
- 'Babel',
- 'lingua',
- ],
- message_extractors = { '.': [
- ('**.py', 'lingua_python', None ),
- ('**.pt', 'lingua_xml', None ),
- ]},
- )
-
-The ``message_extractors`` stanza placed into the ``setup.py`` file causes
-the :term:`Babel` message catalog extraction machinery to also consider
-``*.pt`` files when doing message id extraction.
.. index::
pair: extracting; messages
@@ -336,90 +318,20 @@ the :term:`Babel` message catalog extraction machinery to also consider
Extracting Messages from Code and Templates
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Once Babel and Lingua are installed and your application's ``setup.py`` file
-has the correct message extractor references, you may extract a message
-catalog template from the code and :term:`Chameleon` templates which reside
-in your :app:`Pyramid` application. You run a ``setup.py`` command to
-extract the messages:
+Once Lingua is installed you may extract a message catalog template from the
+code and :term:`Chameleon` templates which reside in your :app:`Pyramid`
+application. You run a ``pot-create`` command to extract the messages:
.. code-block:: text
$ cd /place/where/myapplication/setup.py/lives
$ mkdir -p myapplication/locale
- $ $VENV/bin/python setup.py extract_messages
+ $ $VENV/bin/pot-create src > myapplication/locale/myapplication.pot
The message catalog ``.pot`` template will end up in:
``myapplication/locale/myapplication.pot``.
-.. index::
- single: translation domains
-
-Translation Domains
-+++++++++++++++++++
-
-The name ``myapplication`` above in the filename ``myapplication.pot``
-denotes the :term:`translation domain` of the translations that must
-be performed to localize your application. By default, the
-translation domain is the :term:`project` name of your
-:app:`Pyramid` application.
-
-To change the translation domain of the extracted messages in your project,
-edit the ``setup.cfg`` file of your application, The default ``setup.cfg``
-file of a ``pcreate`` -generated :app:`Pyramid` application has stanzas in it
-that look something like the following:
-
-.. code-block:: ini
- :linenos:
-
- [compile_catalog]
- directory = myproject/locale
- domain = MyProject
- statistics = true
-
- [extract_messages]
- add_comments = TRANSLATORS:
- output_file = myproject/locale/MyProject.pot
- width = 80
-
- [init_catalog]
- domain = MyProject
- input_file = myproject/locale/MyProject.pot
- output_dir = myproject/locale
-
- [update_catalog]
- domain = MyProject
- input_file = myproject/locale/MyProject.pot
- output_dir = myproject/locale
- previous = true
-
-In the above example, the project name is ``MyProject``. To indicate
-that you'd like the domain of your translations to be ``mydomain``
-instead, change the ``setup.cfg`` file stanzas to look like so:
-
-.. code-block:: ini
- :linenos:
-
- [compile_catalog]
- directory = myproject/locale
- domain = mydomain
- statistics = true
-
- [extract_messages]
- add_comments = TRANSLATORS:
- output_file = myproject/locale/mydomain.pot
- width = 80
-
- [init_catalog]
- domain = mydomain
- input_file = myproject/locale/mydomain.pot
- output_dir = myproject/locale
-
- [update_catalog]
- domain = mydomain
- input_file = myproject/locale/mydomain.pot
- output_dir = myproject/locale
- previous = true
.. index::
pair: initializing; message catalog
@@ -432,15 +344,17 @@ Once you've extracted messages into a ``.pot`` file (see
in the ``.pot`` file, you need to generate at least one ``.po`` file.
A ``.po`` file represents translations of a particular set of messages
to a particular locale. Initialize a ``.po`` file for a specific
-locale from a pre-generated ``.pot`` template by using the ``setup.py
-init_catalog`` command:
+locale from a pre-generated ``.pot`` template by using the ``msginit``
+command from Gettext:
.. code-block:: text
$ cd /place/where/myapplication/setup.py/lives
- $ $VENV/bin/python setup.py init_catalog -l es
+ $ cd myapplication/locale
+ $ mkdir -p es/LC_MESSAGES
+ $ msginit -l es es/LC_MESSAGES/myapplication.po
-By default, the message catalog ``.po`` file will end up in:
+This will create a new the message catalog ``.po`` file will in:
``myapplication/locale/es/LC_MESSAGES/myapplication.po``.
@@ -465,12 +379,13 @@ files based on changes to the ``.pot`` file, so that the new and
changed messages can also be translated or re-translated.
First, regenerate the ``.pot`` file as per :ref:`extracting_messages`.
-Then use the ``setup.py update_catalog`` command.
+Then use the ``msgmerge`` command from Gettext.
.. code-block:: text
$ cd /place/where/myapplication/setup.py/lives
- $ $VENV/bin/python setup.py update_catalog
+ $ cd myapplication/locale
+ $ msgmerge --update es/LC_MESSAGES/myapplication.po myapplication.pot
.. index::
pair: compiling; message catalog
@@ -481,12 +396,13 @@ Compiling a Message Catalog File
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Finally, to prepare an application for performing actual runtime
-translations, compile ``.po`` files to ``.mo`` files:
+translations, compile ``.po`` files to ``.mo`` files use the ``msgfmt``
+command from Gettext:
.. code-block:: text
$ cd /place/where/myapplication/setup.py/lives
- $ $VENV/bin/python setup.py compile_catalog
+ $ msgfmt myapplication/locale/*/LC_MESSAGES/*.po
This will create a ``.mo`` file for each ``.po`` file in your
application. As long as the :term:`translation directory` in which
diff --git a/docs/narr/project.rst b/docs/narr/project.rst
index 62b91de0e..0ada1a379 100644
--- a/docs/narr/project.rst
+++ b/docs/narr/project.rst
@@ -476,24 +476,23 @@ structure:
.. code-block:: text
MyProject/
- ├── CHANGES.txt
- ├── MANIFEST.in
- ├── README.txt
- ├── development.ini
- ├── myproject
- │   ├── __init__.py
- │   ├── static
- │   │   ├── pyramid-16x16.png
- │   │   ├── pyramid.png
- │   │   ├── theme.css
- │   │   └── theme.min.css
- │   ├── templates
- │   │   └── mytemplate.pt
- │   ├── tests.py
- │   └── views.py
- ├── production.ini
- ├── setup.cfg
- └── setup.py
+ |-- CHANGES.txt
+ |-- development.ini
+ |-- MANIFEST.in
+ |-- myproject
+ | |-- __init__.py
+ | |-- static
+ | | |-- pyramid-16x16.png
+ | | |-- pyramid.png
+ | | |-- theme.css
+ | | `-- theme.min.css
+ | |-- templates
+ | | `-- mytemplate.pt
+ | |-- tests.py
+ | `-- views.py
+ |-- production.ini
+ |-- README.txt
+ `-- setup.py
The ``MyProject`` :term:`Project`
---------------------------------
@@ -515,9 +514,6 @@ describe, run, and test your application.
#. ``production.ini`` is a :term:`PasteDeploy` configuration file that can
be used to execute your application in a production configuration.
-#. ``setup.cfg`` is a :term:`setuptools` configuration file used by
- ``setup.py``.
-
#. ``MANIFEST.in`` is a :term:`distutils` "manifest" file, naming which files
should be included in a source distribution of the package when ``python
setup.py sdist`` is run.
@@ -746,24 +742,6 @@ named ``MyProject-0.1.tar.gz``. You can send this tarball to other people
who want to install and use your application.
.. index::
- single: setup.cfg
-
-``setup.cfg``
-~~~~~~~~~~~~~
-
-The ``setup.cfg`` file is a :term:`setuptools` configuration file. It
-contains various settings related to testing and internationalization:
-
-Our generated ``setup.cfg`` looks like this:
-
-.. literalinclude:: MyProject/setup.cfg
- :language: guess
- :linenos:
-
-The values in the default setup file allow various commonly-used
-internationalization commands and testing commands to work more smoothly.
-
-.. index::
single: package
The ``myproject`` :term:`Package`
diff --git a/docs/quick_tour/awesome/setup.cfg b/docs/quick_tour/awesome/setup.cfg
deleted file mode 100644
index b1cd90d2c..000000000
--- a/docs/quick_tour/awesome/setup.cfg
+++ /dev/null
@@ -1,28 +0,0 @@
-[nosetests]
-match = ^test
-nocapture = 1
-cover-package = awesome
-with-coverage = 1
-cover-erase = 1
-
-[compile_catalog]
-directory = awesome/locale
-domain = awesome
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = awesome/locale/awesome.pot
-width = 80
-mapping_file = message-extraction.ini
-
-[init_catalog]
-domain = awesome
-input_file = awesome/locale/awesome.pot
-output_dir = awesome/locale
-
-[update_catalog]
-domain = awesome
-input_file = awesome/locale/awesome.pot
-output_dir = awesome/locale
-previous = true
diff --git a/docs/quick_tour/package/setup.cfg b/docs/quick_tour/package/setup.cfg
deleted file mode 100644
index 186e796fc..000000000
--- a/docs/quick_tour/package/setup.cfg
+++ /dev/null
@@ -1,28 +0,0 @@
-[nosetests]
-match = ^test
-nocapture = 1
-cover-package = hello_world
-with-coverage = 1
-cover-erase = 1
-
-[compile_catalog]
-directory = hello_world/locale
-domain = hello_world
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = hello_world/locale/hello_world.pot
-width = 80
-mapping_file = message-extraction.ini
-
-[init_catalog]
-domain = hello_world
-input_file = hello_world/locale/hello_world.pot
-output_dir = hello_world/locale
-
-[update_catalog]
-domain = hello_world
-input_file = hello_world/locale/hello_world.pot
-output_dir = hello_world/locale
-previous = true
diff --git a/docs/quick_tour/sqla_demo/setup.cfg b/docs/quick_tour/sqla_demo/setup.cfg
deleted file mode 100644
index 9f91cd122..000000000
--- a/docs/quick_tour/sqla_demo/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=sqla_demo
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = sqla_demo/locale
-domain = sqla_demo
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = sqla_demo/locale/sqla_demo.pot
-width = 80
-
-[init_catalog]
-domain = sqla_demo
-input_file = sqla_demo/locale/sqla_demo.pot
-output_dir = sqla_demo/locale
-
-[update_catalog]
-domain = sqla_demo
-input_file = sqla_demo/locale/sqla_demo.pot
-output_dir = sqla_demo/locale
-previous = true
diff --git a/docs/quick_tutorial/hello_world.rst b/docs/quick_tutorial/hello_world.rst
index 86e1319f0..1a9ba4c9d 100644
--- a/docs/quick_tutorial/hello_world.rst
+++ b/docs/quick_tutorial/hello_world.rst
@@ -96,13 +96,13 @@ Extra Credit
.. code-block:: python
- print ('Starting up server on http://localhost:6547')
+ print('Incoming request')
...instead of:
.. code-block:: python
- print 'Starting up server on http://localhost:6547'
+ print 'Incoming request'
#. What happens if you return a string of HTML? A sequence of integers?
diff --git a/docs/quick_tutorial/hello_world/app.py b/docs/quick_tutorial/hello_world/app.py
index 210075023..0a95f9ad3 100644
--- a/docs/quick_tutorial/hello_world/app.py
+++ b/docs/quick_tutorial/hello_world/app.py
@@ -4,7 +4,7 @@ from pyramid.response import Response
def hello_world(request):
- print ('Incoming request')
+ print('Incoming request')
return Response('<body><h1>Hello World!</h1></body>')
@@ -14,4 +14,4 @@ if __name__ == '__main__':
config.add_view(hello_world, route_name='hello')
app = config.make_wsgi_app()
server = make_server('0.0.0.0', 6543, app)
- server.serve_forever() \ No newline at end of file
+ server.serve_forever()
diff --git a/docs/quick_tutorial/scaffolds.rst b/docs/quick_tutorial/scaffolds.rst
index 8ca2d27df..4f2694100 100644
--- a/docs/quick_tutorial/scaffolds.rst
+++ b/docs/quick_tutorial/scaffolds.rst
@@ -63,11 +63,11 @@ Steps
On startup, ``pserve`` logs some output:
- .. code-block:: bash
+ .. code-block:: bash
- Starting subprocess with file monitor
- Starting server in PID 72213.
- Starting HTTP server on http://0.0.0.0:6543
+ Starting subprocess with file monitor
+ Starting server in PID 72213.
+ Starting HTTP server on http://0.0.0.0:6543
#. Open http://localhost:6543/ in your browser.
diff --git a/docs/quick_tutorial/scaffolds/setup.cfg b/docs/quick_tutorial/scaffolds/setup.cfg
deleted file mode 100644
index c980261e3..000000000
--- a/docs/quick_tutorial/scaffolds/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match = ^test
-nocapture = 1
-cover-package = scaffolds
-with-coverage = 1
-cover-erase = 1
-
-[compile_catalog]
-directory = scaffolds/locale
-domain = scaffolds
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = scaffolds/locale/scaffolds.pot
-width = 80
-
-[init_catalog]
-domain = scaffolds
-input_file = scaffolds/locale/scaffolds.pot
-output_dir = scaffolds/locale
-
-[update_catalog]
-domain = scaffolds
-input_file = scaffolds/locale/scaffolds.pot
-output_dir = scaffolds/locale
-previous = true
diff --git a/docs/tutorials/wiki/src/authorization/setup.cfg b/docs/tutorials/wiki/src/authorization/setup.cfg
deleted file mode 100644
index 3d7ea6e23..000000000
--- a/docs/tutorials/wiki/src/authorization/setup.cfg
+++ /dev/null
@@ -1,28 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
-
diff --git a/docs/tutorials/wiki/src/basiclayout/setup.cfg b/docs/tutorials/wiki/src/basiclayout/setup.cfg
deleted file mode 100644
index 23b2ad983..000000000
--- a/docs/tutorials/wiki/src/basiclayout/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
diff --git a/docs/tutorials/wiki/src/models/setup.cfg b/docs/tutorials/wiki/src/models/setup.cfg
deleted file mode 100644
index 3d7ea6e23..000000000
--- a/docs/tutorials/wiki/src/models/setup.cfg
+++ /dev/null
@@ -1,28 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
-
diff --git a/docs/tutorials/wiki/src/tests/setup.cfg b/docs/tutorials/wiki/src/tests/setup.cfg
deleted file mode 100644
index 3d7ea6e23..000000000
--- a/docs/tutorials/wiki/src/tests/setup.cfg
+++ /dev/null
@@ -1,28 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
-
diff --git a/docs/tutorials/wiki/src/views/setup.cfg b/docs/tutorials/wiki/src/views/setup.cfg
deleted file mode 100644
index 3d7ea6e23..000000000
--- a/docs/tutorials/wiki/src/views/setup.cfg
+++ /dev/null
@@ -1,28 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
-
diff --git a/docs/tutorials/wiki2/authorization.rst b/docs/tutorials/wiki2/authorization.rst
index 1e5d0dcbf..2e35574fd 100644
--- a/docs/tutorials/wiki2/authorization.rst
+++ b/docs/tutorials/wiki2/authorization.rst
@@ -207,6 +207,21 @@ routes:
:linenos:
:language: python
+.. note:: The preceding lines must be added *before* the following
+ ``view_page`` route definition:
+
+ .. literalinclude:: src/authorization/tutorial/__init__.py
+ :lines: 32
+ :linenos:
+ :language: python
+
+ This is because ``view_page``'s route definition uses a catch-all
+ "replacement marker" ``/{pagename}`` (see :ref:`route_pattern_syntax`)
+ which will catch any route that was not already caught by any
+ route listed above it in ``__init__.py``. Hence, for ``login`` and
+ ``logout`` views to have the opportunity of being matched
+ (or "caught"), they must be above ``/{pagename}``.
+
Add Login and Logout Views
~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/tutorials/wiki2/src/authorization/setup.cfg b/docs/tutorials/wiki2/src/authorization/setup.cfg
deleted file mode 100644
index 23b2ad983..000000000
--- a/docs/tutorials/wiki2/src/authorization/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
diff --git a/docs/tutorials/wiki2/src/basiclayout/setup.cfg b/docs/tutorials/wiki2/src/basiclayout/setup.cfg
deleted file mode 100644
index 23b2ad983..000000000
--- a/docs/tutorials/wiki2/src/basiclayout/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
diff --git a/docs/tutorials/wiki2/src/models/setup.cfg b/docs/tutorials/wiki2/src/models/setup.cfg
deleted file mode 100644
index 23b2ad983..000000000
--- a/docs/tutorials/wiki2/src/models/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
diff --git a/docs/tutorials/wiki2/src/tests/setup.cfg b/docs/tutorials/wiki2/src/tests/setup.cfg
deleted file mode 100644
index 23b2ad983..000000000
--- a/docs/tutorials/wiki2/src/tests/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
diff --git a/docs/tutorials/wiki2/src/views/setup.cfg b/docs/tutorials/wiki2/src/views/setup.cfg
deleted file mode 100644
index 23b2ad983..000000000
--- a/docs/tutorials/wiki2/src/views/setup.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-[nosetests]
-match=^test
-nocapture=1
-cover-package=tutorial
-with-coverage=1
-cover-erase=1
-
-[compile_catalog]
-directory = tutorial/locale
-domain = tutorial
-statistics = true
-
-[extract_messages]
-add_comments = TRANSLATORS:
-output_file = tutorial/locale/tutorial.pot
-width = 80
-
-[init_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-
-[update_catalog]
-domain = tutorial
-input_file = tutorial/locale/tutorial.pot
-output_dir = tutorial/locale
-previous = true
diff --git a/docs/whatsnew-1.5.rst b/docs/whatsnew-1.5.rst
index 2f73af661..65e8393f8 100644
--- a/docs/whatsnew-1.5.rst
+++ b/docs/whatsnew-1.5.rst
@@ -511,6 +511,9 @@ Scaffolding Enhancements
- All scaffolds have a new HTML + CSS theme.
+- Updated docs and scaffolds to keep in step with new 2.0 release of
+ ``Lingua``. This included removing all ``setup.cfg`` files from scaffolds
+ and documentation environments.
Dependency Changes
------------------