[req,web] Make it possible to handle page language from URL prefix
Adding a short language prefix to URL (like "/en" or "/fr") changes the
language the pages are displayed in. This prefix is kept during navigation.
This way it is not necessary to do language negotiation, nor to use user
preferences to determine which language to apply.
This behavior is controlled through a new configuration option
"language-mode", which replaces "language-negociation" option and which values
may be "http-negotiation", "url-prefix" or "" (to disable language setting and
force using "ui.language" property). Migration from previous option is not
handled because I could not manage to have it working (users will get prompted
with the configuration file diff anyways).
Add some tests checking various scenarios.
Closes #15743487
====
Book
====
----
Part
----
Chapter
=======
.. _Level1AnchorForLaterReference:
Level 1 section
---------------
Level 2 section
~~~~~~~~~~~~~~~
Level 3 section
```````````````
*CubicWeb*
inline directives:
:file:`directory/file`
:envvar:`AN_ENV_VARIABLE`
:command:`command --option arguments`
:ref:, :mod:
.. sourcecode:: python
class SomePythonCode:
...
.. XXX a comment, wont be rendered
a [foot note]_
.. [foot note] the foot note content
Boxes
=====
- warning box:
.. warning::
Warning content
- note box:
.. note::
Note content
Cross references
================
To arbitrary section
--------------------
:ref:`identifier` ou :ref:`label <identifier>`
Label required of referencing node which as no title, else the node's title will be used.
To API objects
--------------
See the autodoc sphinx extension documentation. Quick overview:
* ref to a class: :class:`cubicweb.devtools.testlib.AutomaticWebTest`
* if you can to see only the class name in the generated documentation, add a ~:
:class:`~cubicweb.devtools.testlib.AutomaticWebTest`
* you can also use :mod: (module), :exc: (exception), :func: (function), :meth: (method)...
* syntax explained above to specify label explicitly may also be used