doc: use compact gettext catalogs

This commit is contained in:
Éloi Rivard 2024-11-22 17:45:06 +01:00
parent ab3761d00e
commit 1e30c53502
No known key found for this signature in database
GPG key ID: 7EDA204EA57DD184
44 changed files with 10836 additions and 20988 deletions

View file

@ -170,9 +170,9 @@ You can also run sphinx by hand, that should be faster since it avoids the tox e
.. code-block:: bash .. code-block:: bash
sphinx-build doc build/sphinx/html sphinx-build doc build/sphinx/html/en
The generated documentation is located at ``build/sphinx/html``. The generated documentation is located at ``build/sphinx/html/en``.
Code translation Code translation
---------------- ----------------

View file

@ -167,4 +167,4 @@ autodoc_pydantic_field_list_validators = False
# -- Translation options ------------------------------------------------------ # -- Translation options ------------------------------------------------------
# Advised by https://docs.readthedocs.io/en/latest/guides/manage-translations-sphinx.html#create-translatable-files # Advised by https://docs.readthedocs.io/en/latest/guides/manage-translations-sphinx.html#create-translatable-files
gettext_uuid = True gettext_uuid = True
gettext_compact = False gettext_compact = "doc"

View file

@ -1,3 +0,0 @@
*
!.gitignore
!*.pot

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,400 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../../CONTRIBUTING.rst:2
#: db9f3c148acb45cda676a534529e8589
msgid "Contributions"
msgstr ""
#: ../../CONTRIBUTING.rst:4
#: ea0fa8d3ac0d4799a10afd6f37e05d41
msgid "Contributions are welcome!"
msgstr ""
#: ../../CONTRIBUTING.rst:6
#: ba17c0c13c114915adc43e5639bf088c
msgid "The repository is hosted at `gitlab.com/yaal/canaille <https://gitlab.com/yaal/canaille>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:9
#: 701cbef5f1f547729633a993e3622c09
msgid "Discuss"
msgstr ""
#: ../../CONTRIBUTING.rst:11
#: 3d3467217204457eae495ce9c7597a30
msgid "If you want to implement a feature or a bugfix, please start by discussing it with us on the `bugtracker <https://gitlab.com/yaal/canaille/-/issues>`_ or the `matrix room <https://matrix.to/#/#canaille-discuss:yaal.coop>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:16
#: c88320c4d0d34620b655788e1c9fa658
msgid "Development environment"
msgstr ""
#: ../../CONTRIBUTING.rst:18
#: d9611e56c0f04f4099d6abb8bc2be28d
msgid "You can either run the demo locally or with Docker."
msgstr ""
#: ../../CONTRIBUTING.rst:20
#: 16ed6d496d4a451382ea864560d8fe9d
msgid "The only tool required for local development is `uv`. Make sure to have uv `installed on your computer <https://docs.astral.sh/uv/getting-started/installation/>`_ to be able to hack Canaille."
msgstr ""
#: ../../CONTRIBUTING.rst:24
#: 5ec56d5524574bca8128f6dac3176d0e
msgid "Initialize your development environment with: - ``uv sync --extra front --extra oidc`` to have a minimal working development environment. This will allow you to run the tests with ``uv pytest --backend memory``. - ``uv sync --extra front --extra oidc --extra sqlite`` to have a minimal working development environment with SQLite backend support. This will allow you to run the tests with ``uv pytest --backend sql``. - ``uv sync --extra front --extra oidc --extra ldap`` to have a minimal working development environment with LDAP backend support. This will allow you to run the tests with ``uv pytest --backend ldap``. - ``uv sync --all-extras`` if you want to have everything at your fingertips. Note that it may compile some Python dependencies that would expect things to be installed on your system; Some dependencies of Canaille might need to be compiled, so you probably want to check that `GCC` and `cargo` are available on your computer."
msgstr ""
#: ../../CONTRIBUTING.rst:31
#: 4d99057f1b0b42048a0a0ea8d094182a
msgid "After having launched the demo you have access to several services:"
msgstr ""
#: ../../CONTRIBUTING.rst:33
#: 7c17294c7b994de58363e4e72838185c
msgid "A canaille server at `localhost:5000 <http://localhost:5000>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:34
#: e91a134548c54960b39cdf0e58390b1d
msgid "A dummy client at `localhost:5001 <http://localhost:5001>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:35
#: 83c30705c35e4f62b2a2a284b08c8c2b
msgid "Another dummy client at `localhost:5002 <http://localhost:5002>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:37
#: 2cb674d059a04dee9b746a7baaeecd17
msgid "The canaille server has some default users:"
msgstr ""
#: ../../CONTRIBUTING.rst:39
#: 2ac5d11cb40b4bffbc127225b286ccd9
msgid "A regular user which login and password are **user**;"
msgstr ""
#: ../../CONTRIBUTING.rst:40
#: 9646c01bc0e04c4792ff402b86595705
msgid "A moderator user which login and password are **moderator**;"
msgstr ""
#: ../../CONTRIBUTING.rst:41
#: 7b5a9e12d296447aaca3f29ea4be3f47
msgid "An admin user which admin and password are **admin**;"
msgstr ""
#: ../../CONTRIBUTING.rst:42
#: 3dbee7f7f26a43be90d535679c0a66e1
msgid "A new user which login is **james**. This user has no password yet, and his first attempt to log-in would result in sending a password initialization email (if a smtp server is configured)."
msgstr ""
#: ../../CONTRIBUTING.rst:47
#: 6a80df408d77487e873a79468c27a761
msgid "Backends"
msgstr ""
#: ../../CONTRIBUTING.rst:49
#: ed793c84780c4431b4a0f5174b77e863
msgid "Canaille comes with several backends:"
msgstr ""
#: ../../CONTRIBUTING.rst:51
#: 61e91cbb3e1b449d8c578142e0745e64
msgid "a lightweight test purpose `memory` backend"
msgstr ""
#: ../../CONTRIBUTING.rst:52
#: e167dd64b4f0429890295f6cd030e35f
msgid "a `sql` backend, based on sqlalchemy"
msgstr ""
#: ../../CONTRIBUTING.rst:53
#: 1a65f2eac34342be8835945125ede8a6
msgid "a production-ready `LDAP` backend"
msgstr ""
#: ../../CONTRIBUTING.rst:56
#: 409d19a554034d76ba2135fe2e1a740c
msgid "Docker environment"
msgstr ""
#: ../../CONTRIBUTING.rst:58
#: fdeee3e754e843eba8b76ad705e60587
msgid "If you want to develop with docker, your browser needs to be able to reach the `canaille` container. The docker-compose file exposes the right ports, but front requests are from outside the docker network: the `canaille` url that makes sense for docker, points nowhere from your browser. As exposed ports are on `localhost`, you need to tell your computer that `canaille` url means `localhost`."
msgstr ""
#: ../../CONTRIBUTING.rst:63
#: e30b205d85524074aeeb5a7d13c26965
msgid "To do that, you can add the following line to your `/etc/hosts`:"
msgstr ""
#: ../../CONTRIBUTING.rst:69
#: d7a9e2ab1a734dfd93cfadb72e9d9561
msgid "To launch containers, use:"
msgstr ""
#: ../../CONTRIBUTING.rst:84
#: 99a2e010018c4ab18f689adbd17949d2
msgid "Local environment"
msgstr ""
#: ../../CONTRIBUTING.rst:98
#: 4c63d4d9d6bc4be79415a7f0a921f3e8
msgid "If you want to run the demo locally with the LDAP backend, you need to have `OpenLDAP <https://www.openldap.org/>`_ installed on your system. It is generally shipped under the ``slapd`` or ``openldap`` package name."
msgstr ""
#: ../../CONTRIBUTING.rst:103
#: b6350782b583407f804ee9a125cc1f4c
msgid "On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be restricted by apparmor, and thus makes the tests and the demo fail. This can be mitigated by removing apparmor restrictions on `slapd`."
msgstr ""
#: ../../CONTRIBUTING.rst:113
#: ddfc0afccdf849bfacf69a734948945c
msgid "Populate the database"
msgstr ""
#: ../../CONTRIBUTING.rst:115
#: 0d809af195c54c1db4a049349ec0701b
msgid "The demo database comes populated with some random users and groups. If you need more, you can generate users and groups with the ``populate`` command:"
msgstr ""
#: ../../CONTRIBUTING.rst:126
#: 191e9f1df4d845ccab01dcb93de8d944
msgid "Adapt to use either the `ldap` or the `sql` configuration file. Note that this will not work with the memory backend."
msgstr ""
#: ../../CONTRIBUTING.rst:129
#: e15be9bc7ad44cf5852e7b819f3083f0
msgid "Unit tests"
msgstr ""
#: ../../CONTRIBUTING.rst:131
#: 6db086cc47f34d91bd3d33524b2a64a1
msgid "To run the tests, you just can run `uv run pytest` and/or `uv run tox` to test all the supported python environments. Everything must be green before patches get merged."
msgstr ""
#: ../../CONTRIBUTING.rst:134
#: 00e18c0ced044c949ee1a18d593da4d2
msgid "To test a specific backend you can pass ``--backend memory``, ``--backend sql`` or ``--backend ldap`` to pytest and tox."
msgstr ""
#: ../../CONTRIBUTING.rst:136
#: 41a97534fd4640bd9586f352647f57e6
msgid "The test coverage is 100%, patches won't be accepted if not entirely covered. You can check the test coverage with ``uv run pytest --cov --cov-report=html`` or ``uv run tox -e coverage -- --cov-report=html``. You can check the HTML coverage report in the newly created `htmlcov` directory."
msgstr ""
#: ../../CONTRIBUTING.rst:141
#: 8f210b646ca84be2b83b9509b35e3f39
msgid "Code style"
msgstr ""
#: ../../CONTRIBUTING.rst:143
#: e28cd3b679db45d4a4dee24039a28335
msgid "We use `ruff <https://docs.astral.sh/ruff/>`_ along with other tools to format our code. Please run ``uv run tox -e style`` on your patches before submitting them. In order to perform a style check and correction at each commit you can use our `pre-commit <https://pre-commit.com/>`_ configuration with ``uv run pre-commit install``."
msgstr ""
#: ../../CONTRIBUTING.rst:149
#: 1213a35a573741f487d16ab7f3017048
msgid "Front"
msgstr ""
#: ../../CONTRIBUTING.rst:151
#: ee73e266b48643f3b0d811fc3dba45de
msgid "The interface is built upon the `Fomantic UI <https://fomantic-ui.com/>`_ CSS framework. The dynamical parts of the interface use `htmx <https://htmx.org/>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:154
#: f5998a63a3a8473ebdace062b9e4125f
msgid "Using Javascript in the interface is tolerated, but the whole website MUST be accessible for browsers without Javascript support, and without any feature loss."
msgstr ""
#: ../../CONTRIBUTING.rst:156
#: 156c5f0058a44a83a5ef7fc0276a0e79
msgid "Because of Fomantic UI we have a dependency to jQuery, however new contributions should not depend on jQuery at all. See the `related issue <https://gitlab.com/yaal/canaille/-/issues/130>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:161
#: d2222852829b41e39d47b5ee4e2f35da
msgid "Documentation"
msgstr ""
#: ../../CONTRIBUTING.rst:163
#: 56ec493dc9c54b30ae012bce43edc8ac
msgid "The documentation is generated when the tests run:"
msgstr ""
#: ../../CONTRIBUTING.rst:169
#: c724f6040e8e41dfaa0bd61783b3f75e
msgid "You can also run sphinx by hand, that should be faster since it avoids the tox environment initialization:"
msgstr ""
#: ../../CONTRIBUTING.rst:175
#: c870557153b74096afeabcfb31d16a6d
msgid "The generated documentation is located at ``build/sphinx/html``."
msgstr ""
#: ../../CONTRIBUTING.rst:178
#: 69fc6bf00fe54884879b2d2a41877f66
msgid "Code translation"
msgstr ""
#: ../../canaille/translations/README.rst:1
#: cc50847556774dac9ce087a24bae715d
msgid "Translations are done with `Weblate <https://hosted.weblate.org/projects/canaille/canaille>`_."
msgstr ""
#: ../../canaille/translations/README.rst:3
#: 3d831a3a927d456f834248caaef471aa
msgid "The following commands are there as documentation, only the message extraction is needed for contributors. All the other steps are automatically done with Weblate."
msgstr ""
#: ../../canaille/translations/README.rst:8
#: ../locales/readme.rst:7
#: e5788bab9bea4b62896cea4130da2b22
#: 78bc50b888bb49aeadc7a04a79426545
msgid "Message extraction"
msgstr ""
#: ../../canaille/translations/README.rst:10
#: ../locales/readme.rst:9
#: cdf33fd9d8ba4540aa843a236a424596
#: 2c8e0e2054654b20a3b49db40f60601d
msgid "After you have edited translatable strings, you should extract the messages with:"
msgstr ""
#: ../../canaille/translations/README.rst:17
#: ../locales/readme.rst:16
#: 98d3fdec177b4519bd4d9efcd5cd827c
#: 1555b90dada547ce9112c0d5664c618f
msgid "Language addition"
msgstr ""
#: ../../canaille/translations/README.rst:19
#: ../locales/readme.rst:18
#: 32f431c9d9f9418292e69d27236af062
#: 762c9254a1b04b71aeb43923910b130e
msgid "You can add a new language manually with the following command, however this should not be needed as Weblate takes car of this:"
msgstr ""
#: ../../canaille/translations/README.rst:26
#: 797cc0492f974a1e806df493b216c5f8
msgid "Catalog update"
msgstr ""
#: ../../canaille/translations/README.rst:28
#: a40f65b9a07e48d88f88e08096d31299
msgid "You can update the catalogs with the following command, however this should not be needed as Weblate automatically update language catalogs when it detects new strings or when someone translate some existing strings. Weblate pushes happen every 24h."
msgstr ""
#: ../../canaille/translations/README.rst:36
#: c3f0a5e6753c4c21ab3997c39d57800f
msgid "Catalog compilation"
msgstr ""
#: ../../canaille/translations/README.rst:38
#: 614a641d465649e7a779a9d4ef49cbd9
msgid "You can compile the catalogs with the following command, however this should not be needed as catalogs are automatically compiled before running the unit tests, before launching the demo and before compiling the Canaille python package:"
msgstr ""
#: ../../CONTRIBUTING.rst:184
#: add6d5220923488a82e49359ce7a0d55
msgid "Documentation translation"
msgstr ""
#: ../locales/readme.rst:1
#: a2cfb06dfde7462fb3382c20183342a0
msgid "Documentation translation Translations are done with `Weblate <https://hosted.weblate.org/projects/canaille/canaille>`_."
msgstr ""
#: ../locales/readme.rst:4
#: 113485680b744151a4e88e903b33f63c
msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors."
msgstr ""
#: ../locales/readme.rst:25
#: e4baf07e2a99407a8a96e0574a012091
msgid "Build the documentation in another language"
msgstr ""
#: ../../CONTRIBUTING.rst:189
#: 515603cf888740aa9a3dd3dd230e3352
msgid "Publish a new release"
msgstr ""
#: ../../CONTRIBUTING.rst:191
#: e657f8e780dd4674a90bf0dde7decbe1
msgid "Check that dependencies are up to date with ``uv sync --all-extras --upgrade`` and update dependencies accordingly in separated commits;"
msgstr ""
#: ../../CONTRIBUTING.rst:192
#: 391ef00613ed4d8ca5538c617ed4e9ac
msgid "Check that tests are still green for every supported python version, and that coverage is still at 100%, by running ``uv run tox``;"
msgstr ""
#: ../../CONTRIBUTING.rst:193
#: 57694c4f22574e50bff25cab27182f2d
msgid "Check that the demo environments are still working, both the local and the Docker one;"
msgstr ""
#: ../../CONTRIBUTING.rst:194
#: 3c03facaea6646948faf4531c2474b8f
msgid "Check that the :ref:`development/changelog:Release notes` section is correctly filled up;"
msgstr ""
#: ../../CONTRIBUTING.rst:195
#: ab7667b315734c5b9a4222006d86b173
msgid "Increase the version number in ``pyproject.toml``;"
msgstr ""
#: ../../CONTRIBUTING.rst:196
#: d65334bb5a78403eab57f3b17995ca3f
msgid "Commit with ``git commit``;"
msgstr ""
#: ../../CONTRIBUTING.rst:197
#: dee8dcd9aa344228b9f5cd8b9142a630
msgid "Build with ``uv build``;"
msgstr ""
#: ../../CONTRIBUTING.rst:198
#: 7782721ef59e4196aca0b8e3b4eee781
msgid "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/legacy/``;"
msgstr ""
#: ../../CONTRIBUTING.rst:199
#: 1c23cb30798d4f06a418c61e6c7a998f
msgid "Install the test package somewhere with ``pip install --extra-index-url https://test.pypi.org/simple --upgrade canaille``. Check that everything looks fine;"
msgstr ""
#: ../../CONTRIBUTING.rst:200
#: 14eccb7318524fb2af7e0d75bdb59e19
msgid "Publish on production PyPI ``uv publish``;"
msgstr ""
#: ../../CONTRIBUTING.rst:201
#: 7776d49a05bc4399a09fa9ff7a08fc65
msgid "Tag the commit with ``git tag XX.YY.ZZ``;"
msgstr ""
#: ../../CONTRIBUTING.rst:202
#: 69b763c261ce43478f815696e7762162
msgid "Push the release commit and the new tag on the repository with ``git push --tags``."
msgstr ""

View file

@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../development/index.rst:2
#: 06473fb59658463eac64f549d1978fed
msgid "Development"
msgstr ""

View file

@ -1,542 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../development/specifications.rst:2
#: 2383ea673b75451188733db5862b135b
msgid "Specifications"
msgstr ""
#: ../development/specifications.rst:4
#: 2ef6b8c589164db4bc70d90e406547f4
msgid "This page details which specifications are implemented in Canaille, and compares Canaille with other well-known identity providers."
msgstr ""
#: ../development/specifications.rst:7
#: ce5d7ed671a84146a75c86236a435bcb
msgid "State of the specs in Canaille"
msgstr ""
#: ../development/specifications.rst:10
#: e1579bc3332e4a63b0aac21055d366ea
msgid "OAuth2"
msgstr ""
#: ../development/specifications.rst:12
#: bce2b9f1363a4897b649cbf8b1ab312f
msgid "✅ `RFC6749: OAuth 2.0 Framework <https://tools.ietf.org/html/rfc6749>`_"
msgstr ""
#: ../development/specifications.rst:13
#: 0f16ff4617e249448a680965b8e27053
msgid "✅ `RFC6750: OAuth 2.0 Bearer Tokens <https://tools.ietf.org/html/rfc6750>`_"
msgstr ""
#: ../development/specifications.rst:14
#: a872f28da388479784536ba3a86e19b6
msgid "✅ `RFC7009: OAuth 2.0 Token Revocation <https://tools.ietf.org/html/rfc7009>`_"
msgstr ""
#: ../development/specifications.rst:15
#: 94e2bc5630a44815b4c93c4e807778cb
msgid "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <https://tools.ietf.org/html/rfc7523>`_"
msgstr ""
#: ../development/specifications.rst:16
#: 76e315ea5f684fb79290e26d57859f7e
msgid "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol <https://tools.ietf.org/html/rfc7591>`_"
msgstr ""
#: ../development/specifications.rst:17
#: 9eae7bb9c29847a8a5a3eb28789e46b1
msgid "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol <https://tools.ietf.org/html/rfc7592>`_"
msgstr ""
#: ../development/specifications.rst:18
#: 7f0334835508449085c14802ab6f72af
msgid "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients <https://tools.ietf.org/html/rfc7636>`_"
msgstr ""
#: ../development/specifications.rst:19
#: fbb4c383d63a46efb860728150f24ac4
msgid "✅ `RFC7662: OAuth 2.0 Token Introspection <https://tools.ietf.org/html/rfc7662>`_"
msgstr ""
#: ../development/specifications.rst:20
#: 653ac730c45d4631a1198df2fb4e2ec5
msgid "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata <https://tools.ietf.org/html/rfc8414>`_"
msgstr ""
#: ../development/specifications.rst:21
#: c7d59a380e4a4de1b92c107f1b2c539b
msgid "❌ `RFC8428: OAuth 2.0 Device Authorization Grant <https://tools.ietf.org/html/rfc8428>`_"
msgstr ""
#: ../development/specifications.rst:22
#: c075e766a7d446dd9c13344c3f86a2c2
msgid "❌ `RFC8693: OAuth 2.0 Token Exchange <https://tools.ietf.org/html/rfc8693>`_"
msgstr ""
#: ../development/specifications.rst:23
#: 28a936713f9948b6a3764a19c027f6bb
msgid "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens <https://tools.ietf.org/html/rfc8705>`_"
msgstr ""
#: ../development/specifications.rst:24
#: e6919e11c0e947d1b6e423a655a74d5a
msgid "❌ `RFC8707: Resource Indicators for OAuth 2.0 <https://tools.ietf.org/html/rfc8707>`_"
msgstr ""
#: ../development/specifications.rst:25
#: dcf39ac39c8c4504aa5286585795a804
msgid "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens <https://tools.ietf.org/html/rfc9068>`_"
msgstr ""
#: ../development/specifications.rst:26
#: e9c618050694440babc431d81eaea941
msgid "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) <https://tools.ietf.org/html/rfc9101>`_"
msgstr ""
#: ../development/specifications.rst:27
#: 5245d41ffe9e4ed5a05bf5dff10724cc
msgid "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests <https://tools.ietf.org/html/rfc9126>`_"
msgstr ""
#: ../development/specifications.rst:28
#: e82805a9bb934a61a36bff17697d6119
msgid "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification <https://tools.ietf.org/html/rfc9207>`_"
msgstr ""
#: ../development/specifications.rst:29
#: 13d5af1c63134be28a9c8f12925952f9
msgid "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests <https://www.rfc-editor.org/rfc/rfc9396.html>`_"
msgstr ""
#: ../development/specifications.rst:30
#: e2440df8c0bc43a393e9f29fb658c080
msgid "❌ `OAuth2 Multiple Response Types <https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:31
#: aceb377eee7f4b8d813edd4d649eea45
msgid "❌ `OAuth2 Form Post Response Mode <https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:34
#: 536cc3c67db14ed4a20bd172e2f02c2d
msgid "OpenID Connect"
msgstr ""
#: ../development/specifications.rst:36
#: 501bfe9938d44b21bc9a29e3ee3f1ccd
msgid "✅ `OpenID Connect Core <https://openid.net/specs/openid-connect-core-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:37
#: 940a4a7b20da4c57ab910c3952941bab
msgid "✅ `OpenID Connect Discovery <https://openid.net/specs/openid-connect-discovery-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:38
#: e9243ed2cb5843debd7864bacd3615bf
msgid "✅ `OpenID Connect Dynamic Client Registration <https://openid.net/specs/openid-connect-registration-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:39
#: 260e55b2265f449da141e7b231859956
msgid "✅ `OpenID Connect RP Initiated Logout <https://openid.net/specs/openid-connect-rpinitiated-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:40
#: 206d7fc552224c9ebbee3572273c82eb
msgid "❌ `OpenID Connect Session Management <https://openid.net/specs/openid-connect-session-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:41
#: 8c4191636e1a462b8c8078918a753008
msgid "❌ `OpenID Connect Front Channel Logout <https://openid.net/specs/openid-connect-frontchannel-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:42
#: 163e00dec72e474d89c739d92f25b42c
msgid "❌ `OpenID Connect Back Channel Logout <https://openid.net/specs/openid-connect-backchannel-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:43
#: debeca055bdc4633b649b5fd9baf4346
msgid "❌ `OpenID Connect Back Channel Authentication Flow <https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:44
#: 96e17c4d073f403889ba175279c8a621
msgid "❌ `OpenID Connect Core Error Code unmet_authentication_requirements <https://openid.net/specs/openid-connect-unmet-authentication-requirements-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:45
#: f3d5d91958dc4dea9b3a3e359c2e8ace
msgid "✅ `Initiating User Registration via OpenID Connect 1.0 <https://openid.net/specs/openid-connect-prompt-create-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:48
#: ../development/specifications.rst:64
#: 3d08369fd6424b71b7a1714928df5b24
#: ec31988387b144b5a71a8ff448bd57cf
msgid "SCIM"
msgstr ""
#: ../development/specifications.rst:50
#: 55efb939c7424dd7b0a458e4536a9a56
msgid "❌ `RFC7642: System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements <https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../development/specifications.rst:51
#: 0777963266124280b73cd65111298a6b
msgid "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema <https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../development/specifications.rst:52
#: 1413af49b35e43f394a69a91a9fb9254
msgid "❌ `RFC7644: System for Cross-domain Identity Management: Protocol <https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../development/specifications.rst:55
#: 958bc79cc19548f5bfee6e20a9f4971d
msgid "Comparison with other providers"
msgstr ""
#: ../development/specifications.rst:57
#: aad219093f2243f68e8678886460e50f
msgid "Here is a feature comparison with other OpenID Connect server software."
msgstr ""
#: ../development/specifications.rst:59
#: 74f4c92786fb42cc8c9865d6791e8f2e
msgid "Canaille voluntarily only implements the OpenID Connect protocol to keep its codebase simple."
msgstr ""
#: ../development/specifications.rst:62
#: 28474b61dca1437a8ba4d9e8fbc4fafe
msgid "Software"
msgstr ""
#: ../development/specifications.rst:62
#: 90e531639a8048ad836cb2510bb4b4a1
msgid "Project"
msgstr ""
#: ../development/specifications.rst:62
#: 2016be5359144e6fac7ae582cdfb3095
msgid "Protocols implementations"
msgstr ""
#: ../development/specifications.rst:62
#: 6ad725c101e64176a7848199cc032cea
msgid "Backends"
msgstr ""
#: ../development/specifications.rst:64
#: b15c641b913b4ac9a29ea3308555e9c9
msgid "FLOSS"
msgstr ""
#: ../development/specifications.rst:64
#: 73626dca03614498bf386d2b3bfc9123
msgid "Language"
msgstr ""
#: ../development/specifications.rst:64
#: c29f145e63714ccaa8a03cca4e3f22f4
msgid "LOC"
msgstr ""
#: ../development/specifications.rst:64
#: 23ca5dbb097e4839a136bb799bf80f55
msgid "OIDC"
msgstr ""
#: ../development/specifications.rst:64
#: 11ecae1c29784130b88825b48252f35c
msgid "SAML"
msgstr ""
#: ../development/specifications.rst:64
#: f08202ef5e9b483a80b28050363813e7
msgid "CAS"
msgstr ""
#: ../development/specifications.rst:64
#: c15a06d0987b4617b1a27f63c6ea8bbb
msgid "LDAP"
msgstr ""
#: ../development/specifications.rst:64
#: 88d8a0776138423baadcac6030b6b58f
msgid "SQL"
msgstr ""
#: ../development/specifications.rst:66
#: 36b09d27feb3464a9390fefff5a7fe93
msgid "Canaille"
msgstr ""
#: ../development/specifications.rst:66
#: ../development/specifications.rst:68
#: ../development/specifications.rst:70
#: ../development/specifications.rst:72
#: ../development/specifications.rst:74
#: ../development/specifications.rst:76
#: ../development/specifications.rst:78
#: ../development/specifications.rst:80
#: ../development/specifications.rst:82
#: ../development/specifications.rst:84
#: ../development/specifications.rst:86
#: ../development/specifications.rst:88
#: 0f4aa33ba6584e98a9eaa297d0c94bb0
#: fadd2afadd834cedbd90bb5bb9a9014b
#: 43eebe1b471c4101a0c92ea3b2a581f5
#: d271fc21b16c4ffcbe345c6468f2b0a9
#: e8ba0239a4b749e7a25fb8c635f589e7
#: 1e47f1133b4e4a0e9c831cd5e1a13698
#: 9805c61499404f379aa38b4b66c11b39
#: 35600f8ae23c41fcac1e4cedaf78db99
#: e33c8e80263d4fbfab0ff58fc214cb8f
#: 58988f1bd01f49bcb8a3bfe088ed011b
#: 8766d871a0274f0b971c264c78120d26
#: 349c74fb53ea407d84d2956ccdbc46fa
#: 6cb5dea79610432e9dfdea8c2c626097
#: 9bfd6602bb454ea39e137608d521e34b
#: 454f0ee660ee499283215360375fb802
#: 1c6ed99217124047bb586e7a891759db
#: 2c9b0c967eec4506bfcd5dbbf52afb38
#: 7dbecc531d094e4484f22e5060f83a37
#: 77a7e78473cc48099cbd2d1ffe9428f2
#: c74de60c04914a7f9e2c06e43bbe7781
#: 14417de9256e420ead7cef2967be4a6d
#: 2ab94593a8e9419492ec2920eda40d75
#: a439c4a58ee84802b941c9286bd22bbf
#: 0a50f3e6a3e14a5ca080519a2387f1a8
#: 6e21519d3fe840b1a8511a46ea29feb0
#: e257e70630c746189e0f3dcbe80680ad
#: 1b7eb2933228484ba7be3939e85199bb
#: fbe1ad750c384be994f6785667e04d64
#: b8e790defcfd4060831916e10e35eb51
#: 596178c6b8d14a7393e0bbed037c744f
#: 4c78c1fffa8b4568ab0d592a101f960f
#: 5c8f704976a94119a86e8699f0a4e81f
#: 2d8ea8069a934b38ab843b8a5f973a39
#: 7befcce958644063930aa1408d04e00f
#: 765ee0d0ceec4a0eb9cfe961c9f58d39
#: 7a7f0093c2c84333b30b2812477b47b1
#: 0f611501e77e4cb29d60d5c669f1e24b
#: 9444fb2a3e0740dd9d5ec6a5f2a616d2
#: 092db271989440aa80041a75259a11f4
#: 5caa2e5cb2c941128d3693c1cbc24002
#: 4e8ed6d107234a949ffeb1030a62936d
#: a5079ead19194736849e33ae37800cde
#: caf9f4e107af45fc81a8805315b76ba2
#: a0f1e032b5b649db88c6d424e0201c77
#: e33c9d06ce5e474c9e52b4d92a3e9667
#: 86593813ccdb456ebd0d83b27eeb01cf
#: 8f8b3d4f54864fa48122dc593a86518c
#: d4498551e8d94e2a9eec0b40ef44a7f7
#: cfa66105b6d34120918736d616c1a03e
#: df7e4d13d307478da90f47c6a25967f2
#: 3028033c8ed04f13ac3bc5d429512376
#: c534146a75ab423b9dd3eeaec1086f86
#: a531b5e1ae8d4f08b3ab64fb41b95eac
#: 0f0ed37cd7f1417ea714b6a26e0aa821
#: 2f74de566e7f4bb6953d723937fdcfbb
#: d2402eff2aa54c4ba72167030aad1624
#: 2de2fb6bb0ac465185d04c363810a287
#: 8c9f23f2ec144bc091870e216866bfd5
#: 778477d68681415cb697a3f5fbecb407
#: d4f477480a384c0fa7cc6e04c24fdb0c
#: 300ec52ae51f48118892ad89eaae110c
#: d764f65e2aa64f8abc37a03e435864eb
#: deddbee4686d4593bd8f25a94403c496
msgid "✅"
msgstr ""
#: ../development/specifications.rst:66
#: ../development/specifications.rst:72
#: ../development/specifications.rst:74
#: 01dff9df020340d3b54406638f8ade39
#: 9b3140d0523c4308bc9134ef0b429d2c
#: 4b1e5e8fc53c45d78490dc275918de15
msgid "Python"
msgstr ""
#: ../development/specifications.rst:66
#: 96c10219b0b14aa19ce8a108a7ae7535
msgid "10k"
msgstr ""
#: ../development/specifications.rst:66
#: ../development/specifications.rst:68
#: ../development/specifications.rst:70
#: ../development/specifications.rst:72
#: ../development/specifications.rst:74
#: ../development/specifications.rst:76
#: ../development/specifications.rst:78
#: ../development/specifications.rst:82
#: ../development/specifications.rst:86
#: ../development/specifications.rst:88
#: 3ebd793a1a814a59ac86d95ac10d5df2
#: c5f6dca104ff4b96b3e2efd62193fe07
#: 90a7b98bef2444de873bccf36b6945fe
#: d50482bdbeaf4df3a1e96da071973245
#: c9b9adb75109471296e228d204cba052
#: 46582f2fe84c49cd8c0cb4c8aadc9901
#: be741254f47f40a3a8184bc4e9d1da25
#: dd27269b4d13497db74735e450ebca2f
#: 9eadd8b5840940bb87c3549722814f48
#: 3608cbf9d76e443187d5aa737fbad466
#: 15fa182a79c14d169755cec6b57208e2
#: 62636f44d520479ab343eff200e99fa1
#: ae0edbc27c7f49b3bea30ed31fbe1911
#: eb691511657747a499a83d4fa93e5e82
#: 54c00360d6eb4809a8109defc6b2b87b
#: 8fdc4d649f4a4e6e8dc05bb9d04d87b9
#: dfd6b6d189254825bb6ef6a6d7e8aeb2
#: 7457ad39b3694ed6b9f55e066e84368b
#: 27fa0f65ca344c619c008634c795839c
msgid "❌"
msgstr ""
#: ../development/specifications.rst:68
#: 176177908d034923b2aee29868ef6796
msgid "`Auth0`_"
msgstr ""
#: ../development/specifications.rst:68
#: ../development/specifications.rst:78
#: ../development/specifications.rst:80
#: ../development/specifications.rst:88
#: 34ea26174ce84747a3098db253c053d2
#: 2197b1423cf24880bd48984365df26ca
#: 343c98b7aae64c4b9b13401296895ea2
#: 0aed1e6f1ed140fcaa16586bfe983023
#: 437f53f33fe94e928888c9611c8e96e3
#: ca5b6032265d45c9b26dc476f4631586
#: cda04abd7d0f49598c1e5847a0e46893
#: c9771ac23ed44441bd5bb7f6634ede8d
#: 522c4a868dc84cf3b0d349a7b83e1044
msgid "❔"
msgstr ""
#: ../development/specifications.rst:70
#: 3de4a343d96b4a699f2b3a28ebfbb76f
msgid "`Authelia`_"
msgstr ""
#: ../development/specifications.rst:70
#: ../development/specifications.rst:82
#: b0f9a8ac302047428af718460e7e46d6
#: 40010ae725194f3799a9740e20c4ae84
msgid "Go"
msgstr ""
#: ../development/specifications.rst:70
#: ../development/specifications.rst:82
#: 3b23b5c9fc4242d4af838dfdeba90474
#: bb830e5335294f36ba951698d814e713
msgid "50k"
msgstr ""
#: ../development/specifications.rst:72
#: 93151babd6a84e208a8cb864acb445a0
msgid "`Authentic2`_"
msgstr ""
#: ../development/specifications.rst:72
#: 7d26a37f8f2d490ca5c464422d2da857
msgid "65k"
msgstr ""
#: ../development/specifications.rst:74
#: c79b04fe99584a4183258a9bb56afff6
msgid "`Authentik`_"
msgstr ""
#: ../development/specifications.rst:74
#: 34c65fd0b72146b1bdb2392653fbd7bf
msgid "55k"
msgstr ""
#: ../development/specifications.rst:76
#: 2dd361f5df204f2197da5976329b8bee
msgid "`CAS`_"
msgstr ""
#: ../development/specifications.rst:76
#: ../development/specifications.rst:80
#: ../development/specifications.rst:84
#: d1431df43a0844e592a30e479cb711d7
#: 4e12564f864e4fcca5c59a70971b197e
#: 0e395d011cea454080b706263976c5a8
msgid "Java"
msgstr ""
#: ../development/specifications.rst:76
#: 3c237a5d63994ccabf80d364775f6bd2
msgid "360k"
msgstr ""
#: ../development/specifications.rst:78
#: 1a3be2d069ee4442b7fa71ac5cb4c245
msgid "`Connect2id`_"
msgstr ""
#: ../development/specifications.rst:80
#: 8cb2733860b640ae9bcd9aa2b972f8c1
msgid "`Gluu`_"
msgstr ""
#: ../development/specifications.rst:82
#: 55764f0dc4bd4f9195fd8a68024f9ccf
msgid "`Hydra`_"
msgstr ""
#: ../development/specifications.rst:84
#: 7532697da47043a9995922fd436fac5d
msgid "`Keycloak`_"
msgstr ""
#: ../development/specifications.rst:84
#: 38a63029234442cf8a45a3eaf5e4c5af
msgid "600k"
msgstr ""
#: ../development/specifications.rst:86
#: 6960f54d48a84e7389e1e733a107fc06
msgid "`LemonLDAP`_"
msgstr ""
#: ../development/specifications.rst:86
#: 12c8306ec42e41ca83f5ea529d87f797
msgid "Perl"
msgstr ""
#: ../development/specifications.rst:86
#: 5edc7bd6be844833a7c456f9bec02b10
msgid "130k"
msgstr ""
#: ../development/specifications.rst:88
#: beae02477d7d4c768d483db955ebd314
msgid "`Okta`_"
msgstr ""

View file

@ -1,597 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../features.rst:9
#: 3a39687e5bb049d585c3109447fa1161
msgid "Features"
msgstr ""
#: ../features.rst:11
#: ec85227d7e8a415b9d94c7e8a290495d
msgid "Here are the different features that Canaille provides. You can enable any of those features with the :doc:`configuration <references/configuration>` to fit any :doc:`use cases <usecases>` you may meet. Check our :ref:`roadmap <features:Roadmap>` to see what is coming next."
msgstr ""
#: ../features.rst:15
#: 1d01709835b447ffb8daf9945e64d9c4
msgid "Users can interact with Canaille through its :ref:`web interface <features:Web interface>` and administrators can also use its :ref:`command line interface <features:Command line interface>`. Canaille can handle data stored in different :ref:`database backends <features:Backends>`."
msgstr ""
#: ../features.rst:19
#: 446f2f01004a4f3c828b318afd18bcfe
msgid "Web interface"
msgstr ""
#: ../features.rst:21
#: 297d50ea1e8f4b90928ff18dc836cfde
msgid "Canaille web interface can be used either in :doc:`production environments <tutorial/deployment>` or locally for development purposes."
msgstr ""
#: ../features.rst:26
#: 2a5db38617a44ed596d35c10bc540bd8
msgid "Profile management"
msgstr ""
#: ../features.rst:28
#: ../features.rst:217
#: 9d832867dc5e4b0285f6b185b0ee547b
#: 581a25e539814b12a1c252f0242be431
msgid "Profile"
msgstr ""
#: ../features.rst:33
#: 877ea17f9ff844119de7ba5e5e5cd0a5
msgid "Canaille provides an interface to manage user profiles."
msgstr ""
#: ../features.rst:35
#: 45d88de9e4524c44a5e80daf0b1357b1
msgid "The exact list of displayed fields, and whether they are :attr:`writable <canaille.core.configuration.ACLSettings.WRITE>` or :attr:`read-only <canaille.core.configuration.ACLSettings.READ>` depends on the user :class:`Access Control List settings (ACL) <canaille.core.configuration.ACLSettings>`."
msgstr ""
#: ../features.rst:37
#: 74f24b0d610a49bf84dd6c96ff53146e
msgid "Depending on their ACL :class:`permissions <canaille.core.configuration.Permission>`, users can either be allowed to edit their own profile, edit any user profile, or do nothing at all."
msgstr ""
#: ../features.rst:42
#: 087ae1a46d26413ea42ce44662933f0b
msgid "Email confirmation"
msgstr ""
#: ../features.rst:44
#: 82810b7b19d94141b8547b43bd9d8ce8
msgid "If the :attr:`email confirmation feature <canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION>` is enabled, any modification or addition of a profile email will send a confirmation mail to the new address. The mail will contain a link that users will need to click on to confirm their email address."
msgstr ""
#: ../features.rst:46
#: 80defdc6c0aa4920a5fa8577acaf6fa6
msgid "Users with :attr:`user management permission <canaille.core.configuration.Permission.MANAGE_USERS>` can set user emails without confirmation though."
msgstr ""
#: ../features.rst:51
#: 351ea71b5b1a4827a53592645bb8a80c
msgid "Group management"
msgstr ""
#: ../features.rst:53
#: ../features.rst:140
#: e4a31dade59b407a9d8df7a0314d1cf2
#: 54541ece476c4d408288f0337784a03c
msgid "Group edition"
msgstr ""
#: ../features.rst:58
#: a2cfe7269999424bb8748a13a95a10da
msgid "In a similar fashion than :ref:`profile management <feature_profile_management>` Canaille provides an interface to manage user groups."
msgstr ""
#: ../features.rst:60
#: fbb7991d7a63424c9ae6e0fc89f8242c
msgid "The group management is quite simple at the moment and consists in a group name and description, and the list of its members. Group membership can be use as :attr:`ACL Filter <canaille.core.configuration.ACLSettings.FILTER>` to define user permissions."
msgstr ""
#: ../features.rst:63
#: ../features.rst:83
#: ../features.rst:149
#: 7b47c38d02644c89a065a8cfb094e012
#: 766b52d4eab245d2b3f3aa8aa7e0c282
#: e0236e78322244a3841b0724694a48d3
msgid "Todo"
msgstr ""
#: ../features.rst:64
#: 39c58580da09403bbb22cfe1d5598ce3
msgid "At the moment adding an user to a group can only be achieved by the user settings page, but we are :issue:`working to improve this <192>`."
msgstr ""
#: ../features.rst:66
#: c60fc3e5961e42758063d4367d906411
msgid "Group management can be enable with a :attr:`dedicated user permission <canaille.core.configuration.Permission.MANAGE_GROUPS>`."
msgstr ""
#: ../features.rst:69
#: a78a3715d55844b0900f9916b6f2e7b2
msgid "Due to limitations in the :ref:`LDAP backend <tutorial/databases:LDAP>`, groups must have at least one member. Thus it is not possible to remove the last user of a group without removing the group."
msgstr ""
#: ../features.rst:75
#: 8f7758bdc0ac4769a31161c485c1ec8e
msgid "User authentication"
msgstr ""
#: ../features.rst:77
#: 4b2d976568b14c4688f875adf9ccc562
msgid "Unless their account is :ref:`locked <feature_account_locking>`, users can authenticate with a login and a password."
msgstr ""
#: ../features.rst:81
#: e682b2ba5dd74bdd9ffaa86d2abc9f3f
msgid "For security reasons, it won't be told to users if they try to sign in with an unexisting logging, unless explicitly :attr:`set in the configuration <canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS>`."
msgstr ""
#: ../features.rst:83
#: dfc328ffe1af4b918e2192b2ed14c637
msgid ":ref:`LDAP backend <tutorial/databases:LDAP>` users can define which :class:`user field <canaille.core.models.User>` should be used as the login (such as :attr:`~canaille.core.models.User.user_name` or :attr:`~canaille.core.models.User.emails`) using a :attr:`configuration parameter <canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER>`, but other backends can only login using :attr:`~canaille.core.models.User.user_name`. We are :issue:`working to improve this <196>`."
msgstr ""
#: ../features.rst:88
#: 3fefd07ff8c24b16a00c2120e46e291a
msgid "User registration"
msgstr ""
#: ../features.rst:90
#: b18b55ebc00a442db9a09ea5a58f1a9a
msgid "Users can create accounts on Canaille if the feature :attr:`registration feature <canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION>` is enabled. They will be able to fill a registration form with the fields detailed in the default :class:`ACL settings <canaille.core.configuration.ACLSettings>`."
msgstr ""
#: ../features.rst:92
#: 517379413a544000b36f09ab035a2f4b
msgid "If :attr:`email confirmation <canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION>` is also enabled, users will be sent a confirmation link to their email address, on which they will need to click in order to finalize their registration."
msgstr ""
#: ../features.rst:97
#: ../features.rst:99
#: ba38afb338ce43c39b44dd7678121504
#: 037e813626fc424fa2cc303b6de32626
msgid "User invitation"
msgstr ""
#: ../features.rst:104
#: 67a415dce2ce449ca0f56e5feb2361d0
msgid "If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is configured, users with :attr:`user management permission <canaille.core.configuration.Permission.MANAGE_USERS>` can create an invitation link for one user."
msgstr ""
#: ../features.rst:106
#: d591d5398e774b3197cef2e740c83efd
msgid "The link goes to a registration form, even if regular :ref:`user registration <feature_user_registration>` is disabled."
msgstr ""
#: ../features.rst:108
#: aefa9516cd6d42dd8a736bc06a34fa39
msgid "It can be automatically sent by email to the new user."
msgstr ""
#: ../features.rst:113
#: 7c82637f2cc94bbb9d331b0f22869ed0
msgid "Account locking"
msgstr ""
#: ../features.rst:115
#: 358a5fa4e02744ed91fa6a8826130611
msgid "If Canaille is plugged to a :ref:`backend <features:Backends>` that supports it, user accounts can be locked by users with :attr:`user management permission <canaille.core.configuration.Permission.MANAGE_USERS>`. The lock date can be set instantly or at a given date in the future."
msgstr ""
#: ../features.rst:118
#: 712ea6e2257f4ba482b7e89f2ff5c19a
msgid "At the moment a user account is locked:"
msgstr ""
#: ../features.rst:120
#: d681a46a4db2457cba4192322da21184
msgid "their open sessions will be closed;"
msgstr ""
#: ../features.rst:121
#: fdc693b1bf024fb2a7bbf3097f24d022
msgid "they won't be able to sign in again;"
msgstr ""
#: ../features.rst:122
#: 23cd8877517d4f3c908e8ea1092dc9a6
msgid "no new OIDC token will be issued;"
msgstr ""
#: ../features.rst:124
#: 9882d29f0007492aae9caf2506288533
msgid "User accounts must be manually unlocked by an administrator for the users to regain access to those actions."
msgstr ""
#: ../features.rst:129
#: e712f4f9b0a2427b8dccd43a4b4544d8
msgid "Account deletion"
msgstr ""
#: ../features.rst:131
#: 81f0498b175a421da02ae969416b916f
msgid "Users with the :attr:`account deletion permission <canaille.core.configuration.Permission.DELETE_ACCOUNT>` are allowed to delete their own account."
msgstr ""
#: ../features.rst:133
#: 2d5535359306451d834db61758cbe926
msgid "Users that also have the :attr:`user management permission <canaille.core.configuration.Permission.MANAGE_USERS>` are also allowed to delete other users accounts."
msgstr ""
#: ../features.rst:138
#: f6e498c86dbd4e17b624c321fecf54d1
msgid "Password recovery"
msgstr ""
#: ../features.rst:145
#: 61f35c72876242e8bf43e9eb0d75995b
msgid "If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is configured and the :attr:`password recovery feature <canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY>` is enabled, then users can ask for a password reset email if they cannot remember their password."
msgstr ""
#: ../features.rst:147
#: d4555d16bbe249b7979cbb34c57f7055
msgid "The email will be sent to the email addresses filled in their profile, and will contain a link that will allow them to choose a new password. ."
msgstr ""
#: ../features.rst:151
#: 297ffc93f03d4d43b6c47646eca19f13
msgid "Check that password recovery is disabled on locked accounts."
msgstr ""
#: ../features.rst:156
#: 2ddc03cfab5c4c31881424d5944c493c
msgid "Password reset"
msgstr ""
#: ../features.rst:158
#: 9049c1cbc2f84041b403c388f29ad854
msgid "If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is configured, :attr:`user management permission <canaille.core.configuration.Permission.MANAGE_USERS>` can send password reset mails to users. The mails contains a link that allow users to choose a new password without having to retrieve the old one."
msgstr ""
#: ../features.rst:164
#: 53795873eea346f2b2daab2be04d8fd3
msgid "Password initialization"
msgstr ""
#: ../features.rst:166
#: 22da6b0b0f9a477098237bf75b5ffc4b
msgid "User :attr:`passwords <canaille.core.models.User.password>` are optional. If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is configured, when users with no password attempt to sign in, they are invited to click a button that will send them a password initialization mail. The mail contains a link that leads to a form that allows users to choose a password."
msgstr ""
#: ../features.rst:173
#: 2426c9af237c4b3ea3edf39378ee2058
msgid "Password compromission check"
msgstr ""
#: ../features.rst:175
#: a154a903f2f0465da6ba9cb8444bbdac
msgid "If :attr:`password compromission check feature <canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK>` is enabled, Canaille will check for password compromise on HIBP (https://haveibeenpwned.com/) every time a new password is register. You will need to set an :attr:`admin email <canaille.core.configuration.CoreSettings.ADMIN_EMAIL>`."
msgstr ""
#: ../features.rst:180
#: 91a7eae46075432fab0f6529e0ead921
msgid "Internationalization"
msgstr ""
#: ../features.rst:182
#: 3793ed670fe140729604efbd86ea8865
msgid "Translation state"
msgstr ""
#: ../features.rst:187
#: a482d12153c5462eab6e6ef518bb541e
msgid "Canaile will display in your :attr:`preferred language <canaille.core.models.User.preferred_language>` if available, or your browser language if available (and if it is not you can :ref:`help us with the translation <development/contributing:Code translation>`). If you prefer, you can also :attr:`force a language <canaille.core.configuration.CoreSettings.FAVICON>` for every users."
msgstr ""
#: ../features.rst:193
#: 64f68b0347c643d28ca265fa7577c95c
msgid "Lightweight"
msgstr ""
#: ../features.rst:195
#: c3559f4e91a74373b92d046a875eac79
msgid "The web interface is lightweight, so everything should load quickly. There is a few Javascript here and there to smooth the experience, but no Javascript at all is needed to use Canaille."
msgstr ""
#: ../features.rst:199
#: 21b1a787a1074ddc8ae6fe66545a181a
msgid "Customizable"
msgstr ""
#: ../features.rst:201
#: d7748aa3f91b475ebed5edb2d35f759b
msgid "The default theme should be good enough for most usages. It has a dark theme, display well on mobile, and let you choose a :attr:`logo <canaille.core.configuration.CoreSettings.LOGO>` and a :attr:`favicon <canaille.core.configuration.CoreSettings.FAVICON>`."
msgstr ""
#: ../features.rst:204
#: 5fe5c111cd0f4d3ca2a8e7ca01ef43c6
msgid "If you need more you can also use a :attr:`custom theme <canaille.core.configuration.CoreSettings.THEME>`."
msgstr ""
#: ../features.rst:209
#: 6fb933f34307459880de26e3d0f76c6a
msgid "OpenID Connect"
msgstr ""
#: ../features.rst:211
#: bd2005e331d64c979880b847a8fa5a6f
msgid "Canaille implements a :ref:`subset<development/specifications:State of the specs in Canaille>` of the OAuth2/OpenID Connect specifications . This allows to provide :abbr:`SSO (Single Sign-On)` and :abbr:`SLO (Single Log-On)` to applications plugged to Canaille."
msgstr ""
#: ../features.rst:215
#: 3235a6f44bd444d38fd7581ffdeadd6a
msgid "Consent management"
msgstr ""
#: ../features.rst:223
#: 168e125d08c041a79098cb1bfa3d13e9
msgid "Users can give their consent to application requesting access to their personal information, and then revoke those consent at their will."
msgstr ""
#: ../features.rst:227
#: aa606f0a64b84ebdb4e29bee96f4b414
msgid "Application management"
msgstr ""
#: ../features.rst:229
#: eaa719c553584eb6954da4d45778454b
msgid "Users with the right :attr:`permission <canaille.core.configuration.Permission.MANAGE_OIDC>` can manager OIDC clients through the web interface."
msgstr ""
#: ../features.rst:231
#: 9256e6eaf7174fa8a4e7347cd03b6ac8
msgid "In some cases, it might be useful to avoid the consent page for some trusted applications, so clients can be pre-consented."
msgstr ""
#: ../features.rst:234
#: 3faf6b2661f3434bbca8b2aaa9b7d6d7
msgid "Discovery"
msgstr ""
#: ../features.rst:236
#: e935be55bc964a48a582e36f9791c15a
msgid "Canaille implements the :doc:`Discovery specifications <development/specifications>` so most of the applications plugged to Canaille can auto-configure themselves."
msgstr ""
#: ../features.rst:239
#: 695ba3a2a77640908c9f4d2f02a4f8b2
msgid "Dynamic Client Registration"
msgstr ""
#: ../features.rst:241
#: 43c52faa27c84af18f3ada9bffe6d19d
msgid "Canaille implements the :doc:`Dynamic Client Registration specifications <development/specifications>`, so when the :attr:`feature is enabled <canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN>`, clients can register themselves on Canaille without an administrator intervention."
msgstr ""
#: ../features.rst:246
#: f8ce532f519349f48429c1b170cdb484
msgid "Command Line Interface"
msgstr ""
#: ../features.rst:248
#: 2f40208e5c1347a48420317d62aaa74d
msgid "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help administrators in hosting and management."
msgstr ""
#: ../features.rst:250
#: f29e92c5ddaf47ce9483715190c894bb
msgid "There are tools to :ref:`check your configuration <cli_check>` or to :ref:`install missing parts <cli_install>`. You can use the CLI to :ref:`create <cli_create>`, :ref:`read <cli_get>`, :ref:`update <cli_set>` and :ref:`delete <cli_delete>` models such as :class:`users <canaille.core.models.User>`, :class:`groups <canaille.core.models.Group>` or :class:`OIDC clients <canaille.oidc.basemodels.Client>`."
msgstr ""
#: ../features.rst:253
#: 22885696b0da40219dbbabf940320082
msgid "There are also tools to :ref:`fill your database <cli_populate>` with random objects, for tests purpose for instance."
msgstr ""
#: ../features.rst:258
#: a094d21d84254528a930c248f4a593b4
msgid "Backends"
msgstr ""
#: ../features.rst:260
#: 7fb43b7df88a4baea1dfda09d24dffcd
msgid "Canaille can handle data from the most :ref:`common SQL databases <tutorial/databases:SQL>` such as PostgreSQL, MariaDB or SQLite, as well as :ref:`OpenLDAP <tutorial/databases:LDAP>`. It also comes with a no-dependency :ref:`in-memory database <tutorial/databases:Memory>` that can be used in unit tests suites."
msgstr ""
#: ../features.rst:264
#: df7ac02ac2a945069ee389b77b9b5a6b
msgid "Miscellaneous"
msgstr ""
#: ../features.rst:269
#: bf688d8476c643a68687292de9336a89
msgid "Logging"
msgstr ""
#: ../features.rst:271
#: 38d1832a542446019b042e1f939b488f
msgid "Canaille writes :attr:`logs <canaille.core.configuration.CoreSettings.LOGGING>` for every important event happening, to help administrators understand what is going on and debug funky situations."
msgstr ""
#: ../features.rst:273
#: 42a168890026463880fcc0464d7e681a
msgid "The following security events are logged with the tag [SECURITY] for easy retrieval :"
msgstr ""
#: ../features.rst:275
#: 7876d69b9324404c8b5d6b8211f22a38
msgid "Authentication attempt"
msgstr ""
#: ../features.rst:276
#: 5fc6499706b74b38a3bcc4d328a4267f
msgid "Password update"
msgstr ""
#: ../features.rst:277
#: 59baea279a0444c7a03276f643a9a546
msgid "Email update"
msgstr ""
#: ../features.rst:278
#: 316b8f1a64d0492a89a3a3165985ad5b
msgid "Forgotten password mail sent to user"
msgstr ""
#: ../features.rst:279
#: d7b3795158de483783e4c7ee82348b46
msgid "Token emission"
msgstr ""
#: ../features.rst:280
#: 5e4175d55093488c8125b636c395129c
msgid "Token refresh"
msgstr ""
#: ../features.rst:281
#: 6dbf275ffef842c1bc6f3bb0989af951
msgid "Token revokation"
msgstr ""
#: ../features.rst:282
#: aefb033cc70946629968cda2c5659143
msgid "New consent given for client application"
msgstr ""
#: ../features.rst:283
#: bdd21f6ee436441db570665db0c47242
msgid "Consent revokation"
msgstr ""
#: ../features.rst:288
#: 1665d88722ec4f1bb7686957622bb5d1
msgid "A tool for your development and tests"
msgstr ""
#: ../features.rst:290
#: 1bdff890d0da4b7aa3b3df7a1270068e
msgid "Thanks to its lightweight :ref:`in-memory database <tutorial/databases:Memory>` and its curated :ref:`dependency list <tutorial/install:Get the code>`, Canaille can be used in the unit test suite of your application, so you can check how it behaves against a real world OpenID Connect server. If you work with python you might want to check :doc:`pytest-iam:index`."
msgstr ""
#: ../features.rst:292
#: 466b386bf92b499696f22cf6f9889b22
msgid "It can also being launched in your development environment, if you find that launching a Keycloak in a Docker container is too heavy for your little web application."
msgstr ""
#: ../features.rst:294
#: 02bd7bfe0c194ca2a4ed5b305d64174d
msgid "It also fits well in continuous integration scenarios. Thanks to its :ref:`CLI <feature_cli>`, you can prepare data in Canaille, let your application interact with it, and then check the side effects."
msgstr ""
#: ../features.rst:297
#: e0c00b45559342139b38b56d45c12df5
msgid "Roadmap"
msgstr ""
#: ../features.rst:300
#: 889eb75d6c2f4c2fb2491c38b16c2cd5
msgid "Bêta version"
msgstr ""
#: ../features.rst:302
#: e4634fcad59b43549f2ac5d023fe25da
msgid "To go out of the current Alpha version we want to achieve the following tasks:"
msgstr ""
#: ../features.rst:304
#: c24037d78a274d81a945064251654805
msgid ":issue:`Configuration validation using pydantic <138>`"
msgstr ""
#: ../features.rst:307
#: 1a8941a892c041c98e2bdfe731944341
msgid "Stable version"
msgstr ""
#: ../features.rst:309
#: 8bcca1796eb34ea39311fadde971e5df
msgid "Before we push Canaille in stable version we want to achieve the following tasks:"
msgstr ""
#: ../features.rst:312
#: 429e891c2c4a41d9882840e8901807c2
msgid "Security"
msgstr ""
#: ../features.rst:314
#: 99812b3d9e054b92829a1d06207fd56f
msgid ":issue:`Password hashing configuration <175>`"
msgstr ""
#: ../features.rst:315
#: 5fc38e63289c4376aafefbdae1d08ad1
msgid ":issue:`Authentication logging policy <177>`"
msgstr ""
#: ../features.rst:316
#: 172f15d0a07a475495af94228857aa19
msgid ":issue:`Intruder lockout <173>`"
msgstr ""
#: ../features.rst:317
#: 7413890a044d4860a69e304c463b2075
msgid ":issue:`Password expiry policy <176>`"
msgstr ""
#: ../features.rst:318
#: 1af8ce062a2f49dea0719295031dac36
msgid ":issue:`Multi-factor authentication: Email <47>`"
msgstr ""
#: ../features.rst:319
#: 559b8aac8ec1464e9de0fc12d7cef1e3
msgid ":issue:`Multi-factor authentication: SMS <47>`"
msgstr ""
#: ../features.rst:320
#: 0fa5c83275464d2daef9a61ff962068f
msgid ":issue:`Multi-factor authentication: OTP <47>`"
msgstr ""
#: ../features.rst:323
#: 80a148a15619443f96604259f8ce7936
msgid "Packaging"
msgstr ""
#: ../features.rst:325
#: 783c51aa863f4dc694f5e51d8a364d62
msgid ":issue:`Nix package <190>`"
msgstr ""
#: ../features.rst:326
#: 22df588b38954d95ba47de753196bbbd
msgid ":issue:`Docker / OCI package <59>`"
msgstr ""
#: ../features.rst:329
#: 4e6d78ec6bcf49e3aebeae146bd874b1
msgid "And beyond"
msgstr ""
#: ../features.rst:331
#: 851c474a5f55472bb69e0980e85d2c53
msgid ":issue:`OpenID Connect certification <182>`"
msgstr ""
#: ../features.rst:332
#: ea230b81c9854692a1fe56d26fe831ba
msgid ":issue:`SCIM support <116>`"
msgstr ""

View file

@ -1,97 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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:15
#: 0cf850c7764c4ea080c90ebee6f4533c
msgid "Lightweight Identity and Authorization Management"
msgstr ""
#: ../index.rst:19
#: 1338b157cf784cd889fa4ace488ddb96
msgid "**Canaille** is a French word meaning *rascal*. It is roughly pronounced **Can I?**, as in *Can I access your data?* Canaille is a lightweight identity and authorization management software. It aims to be very light, simple to install and simple to maintain. Its main features are :"
msgstr ""
#: ../index.rst:27
#: 16e9d4e4d06842c5b1a23c2b08331358
msgid "Profile management"
msgstr ""
#: ../index.rst:31
#: 4b479564eb7c4aabb771ee7b40f0e08e
msgid "User profile and groups management, Basic permissions"
msgstr ""
#: ../index.rst:34
#: 5b1feeaf9e0f4710921b997bc1abd3d5
msgid "User authentication"
msgstr ""
#: ../index.rst:38
#: 1082fe3d9fff4d129db9a0980d26e226
msgid "Authentication, registration, email confirmation, \"I forgot my password\" emails"
msgstr ""
#: ../index.rst:40
#: 995f722c196141daa60e0e933ed089bd
msgid "SSO"
msgstr ""
#: ../index.rst:44
#: 55d4a30004944c9cb61e5e5884f5969c
msgid "OpenID Connect identity provider"
msgstr ""
#: ../index.rst:46
#: 9403ad26bf834e9db41bde03bf2d8702
msgid "Multi-database support"
msgstr ""
#: ../index.rst:50
#: ee69524e6e864eb1ae021d3e02542d16
msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship"
msgstr ""
#: ../index.rst:52
#: c81e71449a65404babd46d6c4379f245
msgid "Customization"
msgstr ""
#: ../index.rst:56
#: 7022a73e8835420f9cdd806cf126995b
msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!"
msgstr ""
#: ../index.rst:58
#: d30dd41a85c44eab8c406674cb8974f8
msgid "Developers friendliness"
msgstr ""
#: ../index.rst:62
#: ed2d7b64d2404396aaf1de85663efb21
msgid "Canaille can easily fit in your unit tests suite or in your Continuous Integration."
msgstr ""
#: ../index.rst:66
#: d943209ad3bc4482a00c93b31a4217e6
msgid ":doc:`Full feature list <features>`"
msgstr ""
#: ../index.rst:70
#: 1633f4ed1d4a4549be7889af72a41c8f
msgid "Documentation"
msgstr ""

View file

@ -1,52 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:21+0100\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"
#: ../locales/readme.rst:1
#: 02ccf5595dd84a2eae281bdeb632d803
msgid "Documentation translation Translations are done with `Weblate <https://hosted.weblate.org/projects/canaille/canaille>`_."
msgstr ""
#: ../locales/readme.rst:4
#: a797e59e891644e8b6bd76f7a07b6957
msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors."
msgstr ""
#: ../locales/readme.rst:7
#: 2923c202b26a4670a7dea6bfd9d415c4
msgid "Message extraction"
msgstr ""
#: ../locales/readme.rst:9
#: 2fcfe9cf337b488aafe381e9a157855f
msgid "After you have edited translatable strings, you should extract the messages with:"
msgstr ""
#: ../locales/readme.rst:16
#: 60e70e7f68a745caa90c25e0c6f24cef
msgid "Language addition"
msgstr ""
#: ../locales/readme.rst:18
#: ba639ac789b04cea9fdf415793aecd02
msgid "You can add a new language manually with the following command, however this should not be needed as Weblate takes car of this:"
msgstr ""
#: ../locales/readme.rst:25
#: 2dcd8880d66e48ef84f6aa8ed559dcca
msgid "Build the documentation in another language"
msgstr ""

View file

@ -1,52 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../locales/readme.rst:1
#: 02ccf5595dd84a2eae281bdeb632d803
msgid "Documentation translation Translations are done with `Weblate <https://hosted.weblate.org/projects/canaille/canaille>`_."
msgstr ""
#: ../locales/readme.rst:4
#: a797e59e891644e8b6bd76f7a07b6957
msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors."
msgstr ""
#: ../locales/readme.rst:7
#: 2923c202b26a4670a7dea6bfd9d415c4
msgid "Message extraction"
msgstr ""
#: ../locales/readme.rst:9
#: 2fcfe9cf337b488aafe381e9a157855f
msgid "After you have edited translatable strings, you should extract the messages with:"
msgstr ""
#: ../locales/readme.rst:16
#: 60e70e7f68a745caa90c25e0c6f24cef
msgid "Language addition"
msgstr ""
#: ../locales/readme.rst:18
#: ba639ac789b04cea9fdf415793aecd02
msgid "You can add a new language manually with the following command, however this should not be needed as Weblate takes car of this:"
msgstr ""
#: ../locales/readme.rst:25
#: 2dcd8880d66e48ef84f6aa8ed559dcca
msgid "Build the documentation in another language"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -1,366 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../references/commands.rst:2
#: 952e9de33f1146bb9c629b25406d5980
msgid "Command Line Interface"
msgstr ""
#: ../references/commands.rst:4
#: 194fc88dbebc4a6083904a2cd0fdece1
msgid "Canaille provide several commands to help administrator manage their data."
msgstr ""
#: ../references/commands.rst:6
#: af944605783345eb930f7e39d8cb2206
msgid "Generally, some configuration has to be loaded by `Canaille`. This can be achieved by :ref:`configuration loading method<references/configuration:Load the configuration>` available, but most of the time a ``CONFIG`` environment variable is used. For the sake of readability, it is omitted in the following examples."
msgstr ""
#: ../../canaille check:1
#: da3dade2207449f8ab1f5c8cd6df0b59
msgid "Test the configuration file."
msgstr ""
#: ../../canaille check:1
#: 107826c804894ffbaf6be5108735e8bd
msgid "Attempt to reach the database and the SMTP server with the provided credentials."
msgstr ""
#: ../../canaille clean:1
#: a75c02957679475c88a5bf48c43b54df
msgid "Remove expired tokens and authorization codes."
msgstr ""
#: ../../canaille install:1
#: 226b4c7446b04bc4826250bfa6d83978
msgid "Installs canaille elements from the configuration."
msgstr ""
#: ../../canaille install:1
#: 87ed406dcb7b4335b8d4cd75a68b65dd
msgid "For instance, depending on the configuration, this can generate OIDC keys or install LDAP schemas."
msgstr ""
#: ../../canaille populate:1
#: d3168620868447108806d14d13dd47c6
msgid "Populate the database with generated random data."
msgstr ""
#: ../references/commands.rst:0
#: e7127155eec846ed9792494143cca743
#: 53e6c68a54434bf587a1dca8b81d3b74
#: a42086af15bf4297904cf39c2b4df7c7
#: c043029fc2fb47fbb2bd318d1a4b08ca
#: 8a09860a6b1c4ad8b08bb9fb44e6982b
#: 396565c1408a45bf9880d2e4d306d416
#: e657b473cd7743f9bfc6aeef3aac4935
#: 082b69dc7add4bddb93489557fa9a6a2
#: ba9576b3bf70496fb522695af86f0169
#: 032f8d3e26dc4bbd9d4660836afb1f75
#: fe2abe123e9e41bf996d8f88ce42df12
#: 98063029b2d444d69399c4c4fb1266bb
#: c67517b916f44f7689513efa4606b20d
#: a3aaff84e9ca4ccba1f7f50ee8508b1c
#: e69fc539c5df4426894fd9203c84f432
#: f354375bb4e242d6818715ff5956b716
#: 0e2c24d22a3a4ee288c1c3fc86808d61
#: ca9251891c7e45109894c356eb0f4a00
#: ea573076e79447deb9b69c44f0b08970
#: cb20ee676a1748ddadbe90a97f25ceba
msgid "Options"
msgstr ""
#: ../../canaille populate:1
#: 3b6d5755e8de425b91874a9cf6018dca
msgid "Number of items to create"
msgstr ""
#: ../../canaille populate groups:1
#: 859c9d120bba4152b20f456cd307473d
msgid "Populate the database with generated random groups."
msgstr ""
#: ../../canaille populate groups:1
#: cd243a1399bb4a3f8ea0704869d34375
msgid "The maximum number of users that will randomly be affected in the group"
msgstr ""
#: ../../canaille populate users:1
#: 7670817be64a430aadf12b14d6ffc338
msgid "Populate the database with generated random users."
msgstr ""
#: ../../canaille get:1
#: 459ab849c8d748c498f5a73cbcae971b
msgid "Read information about models."
msgstr ""
#: ../../canaille get:1
#: 8805aa3801d74e04978bde21d18ab711
msgid "Options can be used to filter models::"
msgstr ""
#: ../../canaille get:1
#: 8cd027c62978471494b3b89bfa9bdcd4
msgid "Displays the matching models in JSON format in the standard output."
msgstr ""
#: ../../canaille get authorizationcode:1
#: e4374f3cf425474197f3c4b15912e986
msgid "Search for authorizationcodes and display the matching models as JSON."
msgstr ""
#: ../../canaille get client:1
#: 1c20673de33e4126adcba9bccd53285b
msgid "Search for clients and display the matching models as JSON."
msgstr ""
#: ../../canaille get consent:1
#: f66367e5fa9d42d9b3bdc8dcadb54f71
msgid "Search for consents and display the matching models as JSON."
msgstr ""
#: ../../canaille get group:1
#: abf63bec613349b59c927bd749a6e121
msgid "Search for groups and display the matching models as JSON."
msgstr ""
#: ../../canaille get token:1
#: b974b4eb0d394694b5faae2a0c04f38a
msgid "Search for tokens and display the matching models as JSON."
msgstr ""
#: ../../canaille get user:1
#: bb9a27c5a07f42908658a281836ff323
msgid "Search for users and display the matching models as JSON."
msgstr ""
#: ../../canaille set:1
#: fb364298ebb14aed9d991b46d2f69e26
msgid "Update models."
msgstr ""
#: ../../canaille set:1
#: 45f0840d682f42e0b83984f17e352b6e
msgid "The command takes an model ID and edit one or several attributes::"
msgstr ""
#: ../../canaille set:1
#: 1fbb909df2f44fb8b6a50695ce0e782e
msgid "Displays the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille set authorizationcode:1
#: 52fee42193e14ca0bd1803ad566d909b
msgid "Update a authorizationcode and display the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille delete authorizationcode:1
#: ../../canaille set authorizationcode:1
#: be7a57837f08444da95b3fa3ad885966
#: 5261952836ed436ab47a4342386bf1c2
msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id"
msgstr ""
#: ../references/commands.rst:0
#: d563c42b2df141478656723031367503
#: 6c67221152cc4edf9830b2460f20959f
#: bf627fa413024a309608bde86595a56a
#: e18a29eaecc941aeacc574e5cf09d18a
#: a673745e74254db99f2005aaf7f94071
#: 4e28ecd386fd453ca21742afb29a2d7f
#: 08bc45830f29458d80fcb6116855abdb
#: 6e2726cc252a49d8bf7c0ac7dd9e5edc
#: d2733aa168284d6d9af70ac1b1605e2d
#: 5886f8e598e74ad5b102a9143d68218c
#: 95c785769ca14c3b9317997071900fbc
#: 70b189a9f8ab4a29801e20dcfdfea66f
msgid "Arguments"
msgstr ""
#: ../../canaille delete authorizationcode:1
#: ../../canaille delete client:1
#: ../../canaille delete consent:1
#: ../../canaille delete group:1
#: ../../canaille delete token:1
#: ../../canaille delete user:1
#: ../../canaille set authorizationcode:1
#: ../../canaille set client:1
#: ../../canaille set consent:1
#: ../../canaille set group:1
#: ../../canaille set token:1
#: ../../canaille set user:1
#: 1f9548e4636448588b046b89b13f06fa
#: 7498b2d09e9e4a60be65295d16a2a1b2
#: 885dbff91b984704aaea33821b4886e0
#: 56949230a767406baa8c3012598ad874
#: dff59d31ec68436c8ea934fb4552d92e
#: 8a56d543cfad4505b73ceea0a3653206
#: fe4ce93cffc4483688d43a05aeab42c8
#: a44fcccdfd8b4aaf8d246598391965ca
#: 82b9d081f97b4256bb060e62306dfce3
#: fd1b9c6fb27343c7bf2ea1f2be5b193a
#: 14277de1064f428e87212628d366a212
#: ad6cdeab44c64cf4bc87bbbe0c5e3a83
msgid "Required argument"
msgstr ""
#: ../../canaille set client:1
#: a109d961bdbe41b481db9ee1add815df
msgid "Update a client and display the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille delete client:1
#: ../../canaille set client:1
#: f3f79ebe2f674e4bb49f075096b5912f
#: 24749d9fb8e34ed793cdd18066897e64
msgid "IDENTIFIER should be a client id or client_id"
msgstr ""
#: ../../canaille set consent:1
#: f3e30b461fef4b0d90cd10eedc0fa6c1
msgid "Update a consent and display the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille delete consent:1
#: ../../canaille set consent:1
#: aac283fa3c174e55977327d4bc1dda14
#: f5c31a271cf147fdb38b9c051d7c1c58
msgid "IDENTIFIER should be a consent id or consent_id"
msgstr ""
#: ../../canaille set group:1
#: 406840fc8dd84d029b49ecf2b9b3700e
msgid "Update a group and display the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille delete group:1
#: ../../canaille set group:1
#: 05ab1dbdf30947ef983a983cce57e09b
#: 989cc201be1c47aaaee1b0207becb31f
msgid "IDENTIFIER should be a group id or display_name"
msgstr ""
#: ../../canaille set token:1
#: 623a2682695c4ed3840eda6790dd89b8
msgid "Update a token and display the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille delete token:1
#: ../../canaille set token:1
#: 968c3abd396a4b32ab3d264406a29ab0
#: 617d8bdf4b934db0b05284196d21fc1b
msgid "IDENTIFIER should be a token id or token_id"
msgstr ""
#: ../../canaille set user:1
#: c461b718f10d4f74af31074086fe33d4
msgid "Update a user and display the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille delete user:1
#: ../../canaille set user:1
#: 6a3dcdb5ec744db69979ea803522f613
#: f1f1d1b029644f529c7691615b5316c3
msgid "IDENTIFIER should be a user id or user_name"
msgstr ""
#: ../../canaille create:1
#: dea54ad432f64871887f81e03116d3be
msgid "Create models."
msgstr ""
#: ../../canaille create:1
#: 3a821969460649af99c84c9963924e3c
msgid "The model attributes can be passed as command options::"
msgstr ""
#: ../../canaille create:1
#: f437609088d74a1db4e7f895990fe794
msgid "Displays the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille create authorizationcode:1
#: e8b4745d5c7d4ef895ba1686b9612132
msgid "Create a new authorizationcode and display the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille create client:1
#: f65cec57e4e3459f809a8b5b2d1671c0
msgid "Create a new client and display the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille create consent:1
#: 9e42b40acaa14367af9e2f63eff68adc
msgid "Create a new consent and display the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille create group:1
#: af50ef69d61c4733a9f4c544b1501349
msgid "Create a new group and display the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille create token:1
#: 818461fc081a4f158dbca7303aa71193
msgid "Create a new token and display the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille create user:1
#: 418c85b7a33a40da88d914c0801d419d
msgid "Create a new user and display the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille delete:1
#: 917309f374fe4e6b9ad7960e932116d5
msgid "Delete models."
msgstr ""
#: ../../canaille delete:1
#: 57d37b3ed7de43a28e08cde8eb20fde9
msgid "The command takes a model ID and deletes it::"
msgstr ""
#: ../../canaille delete authorizationcode:1
#: 1a572edd3e66418ebad7a8d9f9e3eef9
msgid "Delete a authorizationcode."
msgstr ""
#: ../../canaille delete client:1
#: 9815eae4699d46fea1d4445e29e46e25
msgid "Delete a client."
msgstr ""
#: ../../canaille delete consent:1
#: 7df50d8fbec94e33874223bcae810618
msgid "Delete a consent."
msgstr ""
#: ../../canaille delete group:1
#: 58b8c923bf784729b69540c863d69ee5
msgid "Delete a group."
msgstr ""
#: ../../canaille delete token:1
#: 53e0d81e98484c4ab1f10c3e2b36763b
msgid "Delete a token."
msgstr ""
#: ../../canaille delete user:1
#: f854b40ae54045bd89e19a03173a8a57
msgid "Delete a user."
msgstr ""

View file

@ -1,743 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../references/configuration.rst:2
#: f352927b3e674164b4ee528d290e1ba3
msgid "Configuration"
msgstr ""
#: ../references/configuration.rst:5
#: 449fdd3866354144a1df0b0541208b76
msgid "Load the configuration"
msgstr ""
#: ../references/configuration.rst:7
#: 1e797371bae94f50b7037acaf549b6fa
msgid "Canaille can be configured either by a environment variables, environment file, or by a configuration file."
msgstr ""
#: ../references/configuration.rst:10
#: 0377b9dd81fd41c79cdf3f8a8245de59
msgid "Configuration file"
msgstr ""
#: ../references/configuration.rst:12
#: 9023a7e764a54abda473435fb2c67556
msgid "The configuration can be written in `toml` configuration file which path is passed in the :envvar:`CONFIG` environment variable."
msgstr ""
#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:11
#: ../references/configuration.rst:14
#: ../references/configuration.rst:85
#: 275d6238f6de4292bc8fa82eace110b7
#: 954a70d4151143f4af9f3e509533dd69
#: ff44591b60384f37b0094fbe5883142d
msgid "config.toml"
msgstr ""
#: ../references/configuration.rst:26
#: 7ffbc024b9f44c4092065cff332026b3
msgid "You can have a look at the :ref:`example file <references/configuration:Example file>` for inspiration."
msgstr ""
#: ../references/configuration.rst:29
#: be2150038b8a47e0971dd82518455d15
msgid "Environment variables"
msgstr ""
#: ../references/configuration.rst:31
#: 7b656666c8b64597b79511e46faa57a1
msgid "In addition, parameters that have not been set in the configuration file can be read from environment variables. The way environment variables are parsed can be read from the `pydantic-settings documentation <https://docs.pydantic.dev/latest/concepts/pydantic_settings/#parsing-environment-variable-values>`_."
msgstr ""
#: ../references/configuration.rst:36
#: 0379beff48534aa59770a545033aedf7
msgid "For environment vars, the separator between sections and variables is a double underscore: ``__``. For instance, the ``NAME`` var in the ``CANAILLE`` section shown above is ``CANAILLE__NAME``."
msgstr ""
#: ../references/configuration.rst:40
#: 2505d4af33c547ef93f09be4282e8aec
msgid "Environment file"
msgstr ""
#: ../references/configuration.rst:42
#: a8a58f82f61b4fc0b28434e743ed6de6
msgid "Any environment variable can also be written in a ``.env``, and will be read if present."
msgstr ""
#: ../references/configuration.rst:44
#: de874bfbe8b74294a9418700556580ec
msgid ".env"
msgstr ""
#: ../references/configuration.rst:62
#: 66e3119e3a3649b6829112cc1d41e11b
msgid "Parameters"
msgstr ""
#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:1
#: 5b109da5244d4dfbabb218e4c6bc5d47
msgid "The top-level namespace contains holds the configuration settings unrelated to Canaille."
msgstr ""
#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:4
#: 0cf177f44bba4097827a16b1a2f1d6c0
msgid "The configuration paramateres from the following libraries can be used:"
msgstr ""
#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:6
#: d6bc590bfed047e8b86af354be80fe03
msgid ":doc:`Flask <flask:config>`"
msgstr ""
#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:7
#: 855b6f96105a43b094b402a616bbae30
msgid ":doc:`Flask-WTF <flask-wtf:config>`"
msgstr ""
#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:8
#: 3c35731764054bff9285d6bfb79a7785
msgid ":doc:`Flask-Babel <flask-babel:index>`"
msgstr ""
#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:9
#: ac4465974e9f44c7b879303fdb40fc4f
msgid ":doc:`Authlib <authlib:flask/2/authorization-server>`"
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1
#: a2761715a159492ca4c5180c65189c58
msgid "The Flask :external:py:data:`DEBUG` configuration setting."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3
#: 5b40ae56684347e0a6f369b4f2896691
msgid "This enables debug options."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7
#: ab54e5fb83cc40c6a1867ec701bb051b
msgid "This is useful for development but should be absolutely avoided in production environments."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1
#: c66f04b99f7649b49ad45b30d2e25aa9
msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4
#: d13d3b6ef4c0498bbfbe74ede138249f
msgid "This sets the url scheme by which canaille will be served."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1
#: d5dcfdec96404860acab981f826562ba
msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3
#: 7e8c4487ab1446039177843b912da108
msgid "You MUST change this."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1
#: 7d62d0ae8c664a048ef164ff8efef75e
msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting."
msgstr ""
#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3
#: 965334877d854795a264b6ceedcac212
msgid "This sets domain name on which canaille will be served."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:1
#: 0a4a605e6a1940fab498c34200639e5c
msgid "The settings from the ``CANAILLE`` namespace."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:3
#: 5a95511f181a4890bb8b9083a862ccd3
msgid "Those are all the configuration parameters that controls the behavior of Canaille."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1
#: 5d0ddaed2d734874b3e0a61dfda14559
msgid "Mapping of permission groups. See :class:`ACLSettings` for more details."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3
#: 539d67c478024eda83b002c329156ba3
msgid "The ACL name can be freely chosen. For example::"
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1
#: 8703a060664b4b93b202ae8a55c9ab90
msgid "Administration email contact."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3
#: 8956b1369e7546a39b76b74940e3fcce
msgid "In certain special cases (example : questioning about password corruption), it is necessary to provide an administration contact email."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1
#: 8670b9d62d284afd847234da2ee795ae
msgid "If :py:data:`True`, users will need to click on a confirmation link sent by email when they want to add a new email."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4
#: 0eda2a2a767649dc980c8e065d9169a6
msgid "By default, this is true if ``SMTP`` is configured, else this is false. If explicitly set to true and ``SMTP`` is disabled, the email field will be read-only."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1
#: f4b1659c97c9420c9e67025ec44f290d
msgid "If :py:data:`True`, Canaille will check if passwords appears in compromission databases such as `HIBP <https://haveibeenpwned.com>`_ when users choose a new one."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1
#: b2576eba8d9d41bfadecc6d10f66cb83
msgid "If :py:data:`False`, then users cannot ask for a password recovery link by email."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1
#: 57f195e48f3d4105b171b26b22801fe0
msgid "If :py:data:`True`, then users can freely create an account at this instance."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4
#: 1fe396b30d184f76ab35cf310d689ba8
msgid "If email verification is available, users must confirm their email before the account is created."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:1
#: 8c747e3998e148b397f3b3afaedfc251
msgid "You favicon."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3
#: c71c1dc15e314542924691141e9ceba0
msgid "If unset and :attr:`LOGO` is set, then the logo will be used."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1
#: 91fdf12a588442899a9e93f1a13edbb2
msgid "If :py:data:`True`, when users try to sign in with an invalid login, a message is shown indicating that the password is wrong, but does not give a clue whether the login exists or not."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5
#: 7f6526364ecf44d0a6ea4f83b986cd99
msgid "If :py:data:`False`, when a user tries to sign in with an invalid login, a message is shown indicating that the login does not exist."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.HTMX:1
#: 64629144df814d019eed25c5b1130301
msgid "Accelerates webpages loading with asynchronous requests."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1
#: 239e3d72e0aa42c996215debaa36a92f
msgid "The validity duration of registration invitations, in seconds."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3
#: 41669e4af29b45ed9dab09dabe5858aa
msgid "Defaults to 2 days."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1
#: 4c4ae3815e5542dc995f90e1f33a79f3
msgid "Enables Javascript to smooth the user experience."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1
#: 176ff367a4bc455c89f33b252c723ac9
msgid "If a language code is set, it will be used for every user."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3
#: 63976f2340fd417f94c5efc2f31768db
msgid "If unset, the language is guessed according to the users browser."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1
#: cbef5d40655e4b309a1dbce7f4b59cc6
msgid "Configures the logging output using the python logging configuration format:"
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3
#: e7b83b790b52476891f49f70cc2c3d03
msgid "if :py:data:`None`, everything is logged in the standard error output the log level is :py:data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:`~logging.INFO`"
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6
#: 52803036df304a2d91104ff033694988
msgid "if this is a :class:`dict`, it is passed to :func:`logging.config.dictConfig`:"
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7
#: 3ba83792d3ec409694c435cbe06ddab2
msgid "if this is a :class:`str`, it is expected to be a file path that will be passed to :func:`logging.config.fileConfig`"
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10
#: 289ee5ab24bd4ef68b17b81cbaa7c233
msgid "For example::"
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1
#: c7e469fe99bb4b71b0328349e72f0a61
msgid "The logo of your organization, this is useful to make your organization recognizable on login screens."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1
#: 91a871ab33f4451a9caf95ed0da63833
msgid "Maximum length for user password."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3
#: 1c25d71de99d4d46aa496c9df6a08c33
msgid "There is a technical limit with passlib used by sql database of 4096 characters. If the value entered is 0 or None, or greater than 4096, then 4096 will be retained."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1
#: c8c3307fa58e4c45afb5ac1e24626972
msgid "Minimum length for user password."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3
#: 4d73f4bca2984046b3efb3ba322cdf34
msgid "It is possible not to set a minimum, by entering None or 0."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1
#: 8452d4d220b24f408a3418bbf451c672
msgid "Your organization name."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3
#: 458bb630ef124d75ba2bbce3b58c4782
msgid "Used for display purpose."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1
#: 7e49f44fa7ad43f6924d762afcb43cf6
msgid "Have i been pwned api url for compromission checks."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1
#: 6daac624f580441ea0f641df0e7d18ad
msgid "A `Sentry <https://sentry.io>`_ DSN to collect the exceptions."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3
#: f7d352de8d494044a75175ce2c34be3e
msgid "This is useful for tracking errors in test and production environments."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1
#: 4918c3baa9ff4a7ea370ae99df22f450
msgid "The settings related to SMTP and mail configuration."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3
#: 35153331cf064d90b4d8051c4363a935
msgid "If unset, mail-related features like password recovery won't be enabled."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1
#: 5df367ed5d3f4a53b537e6c50b677c3b
msgid "The name of a theme in the 'theme' directory, or a path to a theme."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3
#: 34d6f2a3091c4a7cb5099e15bb92ca5f
msgid "Defaults to ``default``. Theming is done with `flask-themer <https://github.com/tktech/flask-themer>`_."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1
#: 7be8c0ebcee24c42bad6e4a1abecbaad
msgid "The timezone in which datetimes will be displayed to the users (e.g. ``CEST``)."
msgstr ""
#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4
#: 9f062ba2827b4837971d4c34ff74a252
msgid "If unset, the server timezone will be used."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:1
#: da9f430a60ed4b5e871bae9218bc2b1b
msgid "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, mail related features will be disabled, such as mail verification or password recovery emails."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:5
#: e0bad81478534132be5d8de19ba8c05e
msgid "By default, Canaille will try to send mails from localhost without authentication."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1
#: 6d0e7e6a931c4f568695d714da824c78
msgid "The sender for Canaille mails."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3
#: 083e072e2ef24f02955bf40dca897f7d
msgid "Some mail provider might require a valid sender address."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1
#: bf8d6260946747cd8d9db422a2977980
msgid "The SMTP host."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1
#: 432b9e9f148c4b79a07af984139b8b90
msgid "The SMTP login."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1
#: 42fab7de34b9418bb1422c74e5f9af1f
msgid "The SMTP password."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1
#: 42d65ebe36c2450f9532a587ea0a8de2
msgid "The SMTP port."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1
#: 208db0a1482b42b29a2f582ff3c308d4
msgid "Whether to use SSL to connect to the SMTP server."
msgstr ""
#: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1
#: aebe44192def402f9c370ac7dd2386f1
msgid "Whether to use TLS to connect to the SMTP server."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:1
#: 04870aa4e9c046219085be74456ef180
msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:3
#: beaf3f3f98b14cf9862ee2505dfa97db
msgid "You can define access controls that define what users can do on canaille An access control consists in a :attr:`FILTER` to match users, a list of :attr:`PERMISSIONS` matched users will be able to perform, and fields users will be able to :attr:`READ` and :attr:`WRITE`. Users matching several filters will cumulate permissions."
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1
#: ebf8c5195c7d413aa4328754379e55df
msgid ":attr:`FILTER` can be:"
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3
#: d566cef633ee456c9fad89396dea8224
msgid ":py:data:`None`, in which case all the users will match this access control"
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4
#: a9b6fbe00f7a45b6af6430d5277888a1
msgid "a mapping where keys are user attributes name and the values those user attribute values. All the values must be matched for the user to be part of the access control."
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7
#: eb050efec86e47a7b93376503248375a
msgid "a list of those mappings. If a user values match at least one mapping, then the user will be part of the access control"
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10
#: 5c41147889134281bfd429b0c09aaa92
msgid "Here are some examples::"
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1
#: e847d17ac0da4f4bb5752a6edf12611d
msgid "A list of :class:`Permission` users in the access control will be able to manage. For example::"
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.READ:1
#: 1f9de4fcf01040369e7a21aadfa1118e
msgid "A list of :class:`~canaille.core.models.User` attributes that users in the ACL will be able to read."
msgstr ""
#: ../../docstring of canaille.core.configuration.ACLSettings.WRITE:1
#: ab6304cad7d147b0b839335c84652984
msgid "A list of :class:`~canaille.core.models.User` attributes that users in the ACL will be able to edit."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.Permission:1
#: fcf4d41879b3400ba4c61ca8eeaec499
msgid "The permissions that can be assigned to users."
msgstr ""
#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.Permission:3
#: 3a9f55ac1eca45e5bbb75a3c3bd3e84c
msgid "The permissions are intended to be used in :attr:`ACLSettings <canaille.core.configuration.ACLSettings.PERMISSIONS>`."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1
#: d5ef98541f8b4e1588bda2eeeaacbc5d
msgid "Allows users to delete their account."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3
#: de8f02efc06246d1bc91e9d34c78e259
msgid "If used with :attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, users can delete any account."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.EDIT_SELF:1
#: a2816996936a4eb292c7d9a510f41355
msgid "Allows users to edit their own profile."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.IMPERSONATE_USERS:1
#: de9bf735cb24406fba3aad34f3f87c7b
msgid "Allows users to take the identity of another user."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1
#: ee8abccc752e4019a4bf8be9c1da1198
msgid "Allows group edition and creation."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1
#: 5e3b60a516ab41278a1a3818393050ee
msgid "Allows OpenID Connect client managements."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1
#: b71ed1ac778a4c0eb6a0e92043fac7d4
msgid "Allows other users management."
msgstr ""
#: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1
#: 2b580919de714c50beeea005d433c658
msgid "Allows OpenID Connect authentication."
msgstr ""
#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:1
#: 211693e2da0f432bb430898384f8a38f
msgid "OpenID Connect settings."
msgstr ""
#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:3
#: 399b3ba31a2a4ab593437d5ff09b3704
msgid "Belong in the ``CANAILLE_OIDC`` namespace."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1
#: 078d27ab0c25471ba020cd50959953e3
msgid "Whether a token is needed for the RFC7591 dynamical client registration."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3
#: 982ecc53005e44c3af1329467f67b67c
msgid "If :py:data:`True`, no token is needed to register a client. If :py:data:`False`, dynamical client registration needs a token defined in :attr:`DYNAMIC_CLIENT_REGISTRATION_TOKENS`."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1
#: 8bb7098d11e5459fb0fb10fcfd92cb0e
msgid "A list of tokens that can be used for dynamic client registration."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1
#: cebac57da84f472b9724ea2b19a88b8b
msgid "JSON Web Token settings."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1
#: 36dd306abec64312ba0c875fc801e5e0
msgid "Force the nonce exchange during the authentication flows."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3
#: 6221bc8bd6ba40b8868633965a26f252
msgid "This adds security but may not be supported by all clients."
msgstr ""
#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:1
#: 1766de0ffc354f91a26f1694fc6071f0
msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace."
msgstr ""
#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:3
#: 009bf269cd6b4ae09467ace27f3fb76d
msgid "You can generate a RSA keypair with::"
msgstr ""
#: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1
#: a08072b1d25443b1b844772f4ff7c190
msgid "The key algorithm."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1
#: b954e7767c754e6baeab30f362326666
msgid "The time the JWT will be valid, in seconds."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1
#: c9e63d5813b04b92bd8a4a0b585b33a5
msgid "The URI of the identity provider."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1
#: 63966bfbb60749b884bceb1bc350a50f
msgid "The key type."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1
#: 083732255e954482a089c695f47ef978
msgid "The private key."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3
#: 8cadbc77074442fdb0cc24103fb67271
#: c0c5f1e3e26f412f83daf672905d3fdb
msgid "If :py:data:`None` and debug mode is enabled, then an in-memory key will be used."
msgstr ""
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1
#: 9fcee133520d489783c254d774af74a9
msgid "The public key."
msgstr ""
#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:1
#: b300de02031f4663bd151e4cdcbc617a
msgid "Mapping between the user model and the JWT fields."
msgstr ""
#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:3
#: 8dd4c6823ac84e149a02efe65e217b33
msgid "Fields are evaluated with jinja. A ``user`` var is available."
msgstr ""
#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:1
#: 970f05f5fcb04f4f87ef2aa2b7c436bf
msgid "Settings related to the SQL backend."
msgstr ""
#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:3
#: d36c2f4f3c424297b123c782251ea5b1
msgid "Belong in the ``CANAILLE_SQL`` namespace."
msgstr ""
#: ../../docstring of canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1
#: f7ef728d7d5c479485f07a29067bc859
msgid "The SQL server URI. For example::"
msgstr ""
#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:1
#: 76b7ccaf6b2c4331b5bbd89dab99e2ef
msgid "Settings related to the LDAP backend."
msgstr ""
#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:3
#: b7c638b46d6f48e2a582cd52a429e21b
msgid "Belong in the ``CANAILLE_LDAP`` namespace."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1
#: f58def90f0ff4c6a9f0808da3b22f1f8
msgid "The LDAP bind DN."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1
#: bce683900aa34e788f1048c23cac2ebc
msgid "The LDAP bind password."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1
#: 6a505bac6a524976bb673d0a5fd63f7c
msgid "The LDAP node under which groups will be looked for and saved."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3
#: 42031d1720714c0fb5b570d03c559465
msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1
#: 2c26c317c3c641f2bd78deff9be4a3cc
msgid "The object class to use for creating new groups."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1
#: db3ddf6effa14ec38baebd99dc50e5b2
msgid "The attribute to use to identify a group."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1
#: dbb54871450e4c7e96d40454f3e29880
msgid "The attribute to identify an object in the Group DN."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1
#: c410c0b67b0043048e2063397ea4a07c
msgid "The LDAP root DN."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1
#: dc829580b65647098bde180a8681398f
msgid "The LDAP connection timeout."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1
#: bf2bc54274ec49ab9532e43f9db7dfea
msgid "The LDAP server URI."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1
#: 8417a756a71f4d57b9179bce44c738fd
msgid "The LDAP node under which users will be looked for and saved."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3
#: d8c7de846fd54c1683622862a57ee7cd
msgid "For instance `ou=users,dc=mydomain,dc=tld`."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1
#: 016c6da2807146d8b336efc419545973
msgid "The object class to use for creating new users."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1
#: 14d6048df0344b1497539f9179bd28dc
msgid "Filter to match users on sign in."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3
#: 15d58563699e4d05b4394f603a2aa7d2
msgid "For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is supported and a ``login`` variable is available, containing the value passed in the login field."
msgstr ""
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1
#: 7dc67476e9a241959631d0cb75a01d94
msgid "The attribute to identify an object in the User DN."
msgstr ""
#: ../references/configuration.rst:81
#: 9ad50ee44eed4db98c81f6750d174085
msgid "Example file"
msgstr ""
#: ../references/configuration.rst:83
#: 97c604b45a2041c991b43cab19fd784d
msgid "Here is a configuration file example:"
msgstr ""

View file

@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../references/index.rst:2
#: 983008b557cf40dab35f71a21049eac4
msgid "References"
msgstr ""

View file

@ -1,632 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../references/models.rst:2
#: 022e1b3cf73440848f54dcfa34e42ba7
msgid "Data models"
msgstr ""
#: ../references/models.rst:4
#: d149fff6a989475a8be86c904d978f4c
msgid "This reference details the data models used by Canaille. This is mostly useful for developers."
msgstr ""
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:1
#: 89ef1d33d7924bfdb5e279d1103bbcad
#: a462c61f57f44ad08f0a8e562830af68
msgid "Bases: :py:class:`object`"
msgstr ""
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1
#: b3c50358d06640a7a9fe4e59e7fd9827
msgid "The backend model abstract class."
msgstr ""
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:3
#: a930a4499fef45d1b0942fc6c1e36b56
msgid "It details all the methods and attributes that are expected to be implemented for every model and for every backend."
msgstr ""
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:1
#: 455dfc35495747599564cc0de69b6204
msgid "The model abstract class."
msgstr ""
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:3
#: d3d24c3cf53649fa9952d0acd46baaec
msgid "It details all the common attributes shared by every models."
msgstr ""
#: ../../docstring of canaille.backends.models.Model.created:1
#: 0b9f08586ec4479f95610436345a2df4
msgid "The :class:`~datetime.datetime` that the resource was added to the service provider."
msgstr ""
#: ../../docstring of canaille.backends.models.Model.id:1
#: 73ab147ab6f44612a5d639fc060bbaaf
msgid "A unique identifier for a SCIM resource as defined by the service provider. Id will be :py:data:`None` until the :meth:`~canaille.backends.models.BackendModel.save` method is called."
msgstr ""
#: ../../docstring of canaille.backends.models.Model.id:5
#: 04db3a45228d44168cbb27c89577d6dc
msgid "Each representation of the resource MUST include a non-empty \"id\" value. This identifier MUST be unique across the SCIM service provider's entire set of resources. It MUST be a stable, non- reassignable identifier that does not change when the same resource is returned in subsequent requests. The value of the \"id\" attribute is always issued by the service provider and MUST NOT be specified by the client. The string \"bulkId\" is a reserved keyword and MUST NOT be used within any unique identifier value. The attribute characteristics are \"caseExact\" as \"true\", a mutability of \"readOnly\", and a \"returned\" characteristic of \"always\". See Section 9 for additional considerations regarding privacy."
msgstr ""
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model.identifier:1
#: 2ea5fc24d36f4c83b49bc6509fc30f36
msgid "Returns a unique value that will be used to identify the model instance."
msgstr ""
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model.identifier:4
#: 8de478a9d8f44e5ebf9ffd959187d3e7
msgid "This value will be used in URLs in canaille, so it should be unique and short."
msgstr ""
#: ../../docstring of canaille.backends.models.Model.last_modified:1
#: 9b5885a4658141839d61820edf411982
msgid "The most recent :class:`~datetime.datetime` that the details of this resource were updated at the service provider."
msgstr ""
#: ../../docstring of canaille.backends.models.Model.last_modified:4
#: 659528401e8e404ca22250d8a132a8af
msgid "If this resource has never been modified since its initial creation, the value MUST be the same as the value of :attr:`~canaille.backends.models.Model.created`."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1
#: ../../canaille/core/models.py:docstring of canaille.core.models.User:1
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Consent:1
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1
#: b0cbb8436a2e4726a04c452b6464b07c
#: a46cf872f3124dfebe8074d928294b37
#: 490030c82e9f4ca7a39b4dd4e47c6da1
#: 9593236b11104e0782a0ec1d2422f081
#: c26fabc7468147da80b51e22269685ff
#: 3266b57754fd4ab3ad8752c56797ec3f
msgid "Bases: :py:class:`~canaille.backends.models.Model`"
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1
#: b508bfbf52f549b0a2e7036942e5ae2e
msgid "User model, based on the `SCIM Group schema <https://datatracker.ietf.org/doc/html/rfc7643#section-4.2>`_."
msgstr ""
#: ../../docstring of canaille.core.models.Group.display_name:1
#: 18d85d6d4d3647f1a2ec4e540fd71f0c
msgid "A human-readable name for the Group."
msgstr ""
#: ../../docstring of canaille.core.models.Group.display_name:3
#: ../../docstring of canaille.oidc.basemodels.Client.client_id:1
#: 732a62dcb7c14d6ebe0cbb87a056506b
#: eeba3149bca04af9b37b5b8a6942a31a
msgid "REQUIRED."
msgstr ""
#: ../../docstring of canaille.core.models.Group.members:1
#: d3c1eb7c79cd4c329aa5889db10437c4
msgid "A list of members of the Group."
msgstr ""
#: ../../docstring of canaille.core.models.Group.members:3
#: 84f35590c5e343d794d68c66b238dc99
msgid "While values MAY be added or removed, sub-attributes of members are \"immutable\". The \"value\" sub-attribute contains the value of an \"id\" attribute of a SCIM resource, and the \"$ref\" sub-attribute must be the URI of a SCIM resource such as a \"User\", or a \"Group\". The intention of the \"Group\" type is to allow the service provider to support nested groups. Service providers MAY require clients to provide a non-empty value by setting the \"required\" attribute characteristic of a sub-attribute of the \"members\" attribute in the \"Group\" resource schema."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.User:1
#: 693317bbc24b4bb38a0c34eabe8c27a6
msgid "User model, based on the `SCIM User schema <https://datatracker.ietf.org/doc/html/rfc7643#section-4.1>`_, `Entreprise User Schema Extension <https://datatracker.ietf.org/doc/html/rfc7643#section-4.3>`_ and `SCIM Password Management Extension <https://datatracker.ietf.org/doc/html/draft-hunt-scim-password-mgmt-00.html>`_ draft. Attribute description is based on SCIM and put there for information purpose. The description may not fit the current implementation in Canaille."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1
#: d512cb33bc1b4f34910c1f3d20b00415
msgid "Whether or not the user has the :class:`~canaille.core.configuration.Permission` according to the :class:`configuration <canaille.core.configuration.ACLSettings>`."
msgstr ""
#: ../../docstring of canaille.core.models.User.department:1
#: a85b1f762528426fb7c866f8acff33a7
msgid "Identifies the name of a department."
msgstr ""
#: ../../docstring of canaille.core.models.User.display_name:1
#: ccac75608a514817bc2657221c84c8d4
msgid "The name of the user, suitable for display to end-users."
msgstr ""
#: ../../docstring of canaille.core.models.User.display_name:3
#: 12cb2626a8b8428386ab833d1a57a44c
msgid "Each user returned MAY include a non-empty displayName value. The name SHOULD be the full name of the User being described, if known (e.g., \"Babs Jensen\" or \"Ms. Barbara J Jensen, III\") but MAY be a username or handle, if that is all that is available (e.g., \"bjensen\"). The value provided SHOULD be the primary textual label by which this User is normally displayed by the service provider when presenting it to end-users."
msgstr ""
#: ../../docstring of canaille.core.models.User.emails:1
#: 1d01bb2833434fefbd8e26282f88c2b5
msgid "Email addresses for the User."
msgstr ""
#: ../../docstring of canaille.core.models.User.emails:3
#: 2c83d0f48a2c4b20b11e0f59a8fd1015
msgid "The value SHOULD be specified according to [RFC5321]. Service providers SHOULD canonicalize the value according to [RFC5321], e.g., \"bjensen@example.com\" instead of \"bjensen@EXAMPLE.COM\". The \"display\" sub-attribute MAY be used to return the canonicalized representation of the email value. The \"type\" sub-attribute is used to provide a classification meaningful to the (human) user. The user interface should encourage the use of basic values of \"work\", \"home\", and \"other\" and MAY allow additional type values to be used at the discretion of SCIM clients."
msgstr ""
#: ../../docstring of canaille.core.models.User.employee_number:1
#: 221bb9f4d412453e8aab759ea9b8e9b1
msgid "A string identifier, typically numeric or alphanumeric, assigned to a person, typically based on order of hire or association with an organization."
msgstr ""
#: ../../docstring of canaille.core.models.User.family_name:1
#: 2bc5c5485b0e472383061267c89b9843
msgid "The family name of the User, or last name in most Western languages (e.g., \"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\")."
msgstr ""
#: ../../docstring of canaille.core.models.User.formatted_address:1
#: 1a46356c5b514ef39560fc6bf3e37a1f
msgid "The full mailing address, formatted for display or use with a mailing label."
msgstr ""
#: ../../docstring of canaille.core.models.User.formatted_address:4
#: f52de344799e4ceeb276ed4f02955181
msgid "This attribute MAY contain newlines."
msgstr ""
#: ../../docstring of canaille.core.models.User.formatted_name:1
#: 5c155ee534eb441fba949e3d9607c7ce
msgid "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g., \"Ms. Barbara Jane Jensen, III\")."
msgstr ""
#: ../../docstring of canaille.core.models.User.given_name:1
#: b045a3658e1d46aaa2be9115e8412458
msgid "The given name of the User, or first name in most Western languages (e.g., \"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\")."
msgstr ""
#: ../../docstring of canaille.core.models.User.groups:1
#: 3ac337f269234f93a9adee6541ae355f
msgid "A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated."
msgstr ""
#: ../../docstring of canaille.core.models.User.groups:4
#: 63c40fd148cf4a49b7e68d521d7e6489
msgid "The values are meant to enable expression of common group-based or role-based access control models, although no explicit authorization model is defined. It is intended that the semantics of group membership and any behavior or authorization granted as a result of membership are defined by the service provider. The canonical types \"direct\" and \"indirect\" are defined to describe how the group membership was derived. Direct group membership indicates that the user is directly associated with the group and SHOULD indicate that clients may modify membership through the \"Group\" resource. Indirect membership indicates that user membership is transitive or dynamic and implies that clients cannot modify indirect group membership through the \"Group\" resource but MAY modify direct group membership through the \"Group\" resource, which may influence indirect memberships. If the SCIM service provider exposes a \"Group\" resource, the \"value\" sub-attribute MUST be the \"id\", and the \"$ref\" sub-attribute must be the URI of the corresponding \"Group\" resources to which the user belongs. Since this attribute has a mutability of \"readOnly\", group membership changes MUST be applied via the \"Group\" Resource (Section 4.2). This attribute has a mutability of \"readOnly\"."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.User.has_password:1
#: bf9ca86e1fdf4aec978ae51efe4493c3
msgid "Check whether a password has been set for the user."
msgstr ""
#: ../../docstring of canaille.core.models.User.locality:1
#: 0d4cf2a502c74826bf7403b6740b9982
msgid "The city or locality component."
msgstr ""
#: ../../docstring of canaille.core.models.User.lock_date:1
#: 0b6933781a174c2bad8d274d52dcc8d0
msgid "A DateTime indicating when the resource was locked."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.User.locked:1
#: 1cbdffaaae3d46a885a2cc92bcf846f7
msgid "Whether the user account has been locked or has expired."
msgstr ""
#: ../../docstring of canaille.core.models.User.organization:1
#: 92976f5262824ee9b3e0a65fb798b8b4
msgid "Identifies the name of an organization."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:1
#: 2cb2af496f3042c3966013ea767e5406
msgid "This attribute is intended to be used as a means to set, replace, or compare (i.e., filter for equality) a password. The cleartext value or the hashed value of a password SHALL NOT be returnable by a service provider. If a service provider holds the value locally, the value SHOULD be hashed. When a password is set or changed by the client, the cleartext password SHOULD be processed by the service provider as follows:"
msgstr ""
#: ../../docstring of canaille.core.models.User.password:9
#: 48b6e0f8a7164393abc72168bccfa18c
msgid "Prepare the cleartext value for international language comparison. See Section 7.8 of [RFC7644]."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:12
#: ddd96221e9c2438eb6c1d0a9dca2da76
msgid "Validate the value against server password policy. Note: The definition and enforcement of password policy are beyond the scope of this document."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:16
#: d76e3ac607d140bc951e00ad3392ea2f
msgid "Ensure that the value is encrypted (e.g., hashed). See Section 9.2 for acceptable hashing and encryption handling when storing or persisting for provisioning workflow reasons."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:20
#: 873d9d6bed204708a8d85cfe4d9d9eaa
msgid "A service provider that immediately passes the cleartext value on to another system or programming interface MUST pass the value directly over a secured connection (e.g., Transport Layer Security (TLS)). If the value needs to be temporarily persisted for a period of time (e.g., because of a workflow) before provisioning, then the value MUST be protected by some method, such as encryption."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:28
#: 43840faf65d749eba3318ec708692933
msgid "Testing for an equality match MAY be supported if there is an existing stored hashed value. When testing for equality, the service provider:"
msgstr ""
#: ../../docstring of canaille.core.models.User.password:32
#: 88ef2343a00a4cf2ab352ac63d38dfc9
msgid "Prepares the filter value for international language comparison. See Section 7.8 of [RFC7644]."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:35
#: 2ca8f00a08984448bfcdd17b066e8742
msgid "Generates the salted hash of the filter value and tests for a match with the locally held value."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:38
#: c3f9a3035bdf47e6917199ac4358c006
msgid "The mutability of the password attribute is \"writeOnly\", indicating that the value MUST NOT be returned by a service provider in any form (the attribute characteristic \"returned\" is \"never\")."
msgstr ""
#: ../../docstring of canaille.core.models.User.phone_numbers:1
#: 97901cdb7c7a48248f43e9d3172a6aef
msgid "Phone numbers for the user."
msgstr ""
#: ../../docstring of canaille.core.models.User.phone_numbers:3
#: 06c2bdfccac54d558c5f0996124cf0e7
msgid "The value SHOULD be specified according to the format defined in [RFC3966], e.g., 'tel:+1-201-555-0123'. Service providers SHOULD canonicalize the value according to [RFC3966] format, when appropriate. The \"display\" sub-attribute MAY be used to return the canonicalized representation of the phone number value. The sub- attribute \"type\" often has typical values of \"work\", \"home\", \"mobile\", \"fax\", \"pager\", and \"other\" and MAY allow more types to be defined by the SCIM clients."
msgstr ""
#: ../../docstring of canaille.core.models.User.photo:1
#: 1b1f45abe24f408896ad3f11cc6808c7
msgid "A URI that is a uniform resource locator (as defined in Section 1.1.3 of [RFC3986]) that points to a resource location representing the user's image."
msgstr ""
#: ../../docstring of canaille.core.models.User.photo:5
#: 9d5908c5c4c943009e34f83028518e5c
msgid "The resource MUST be a file (e.g., a GIF, JPEG, or PNG image file) rather than a web page containing an image. Service providers MAY return the same image in different sizes, although it is recognized that no standard for describing images of various sizes currently exists. Note that this attribute SHOULD NOT be used to send down arbitrary photos taken by this user; instead, profile photos of the user that are suitable for display when describing the user should be sent. Instead of the standard canonical values for type, this attribute defines the following canonical values to represent popular photo sizes: \"photo\" and \"thumbnail\"."
msgstr ""
#: ../../docstring of canaille.core.models.User.postal_code:1
#: be3a35536d93497eb6d9d585837b2283
msgid "The zip code or postal code component."
msgstr ""
#: ../../docstring of canaille.core.models.User.preferred_language:1
#: c128776195cd492f9ad3d7949bbc3b54
msgid "Indicates the user's preferred written or spoken languages and is generally used for selecting a localized user interface."
msgstr ""
#: ../../docstring of canaille.core.models.User.preferred_language:4
#: 2f1af307075f44638377fff8773edfba
msgid "The value indicates the set of natural languages that are preferred. The format of the value is the same as the HTTP Accept-Language header field (not including \"Accept-Language:\") and is specified in Section 5.3.5 of [RFC7231]. The intent of this value is to enable cloud applications to perform matching of language tags [RFC4647] to the user's language preferences, regardless of what may be indicated by a user agent (which might be shared), or in an interaction that does not involve a user (such as in a delegated OAuth 2.0 [RFC6749] style interaction) where normal HTTP Accept-Language header negotiation cannot take place."
msgstr ""
#: ../../docstring of canaille.core.models.User.profile_url:1
#: aed0249175b44f0b9f2feb1aa515c775
msgid "A URI that is a uniform resource locator (as defined in Section 1.1.3 of [RFC3986]) and that points to a location representing the user's online profile (e.g., a web page)."
msgstr ""
#: ../../docstring of canaille.core.models.User.profile_url:5
#: daa70d8170444df5a30410cc87f393db
msgid "URIs are canonicalized per Section 6.2 of [RFC3986]."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:1
#: debf78051e654f52af684f36c1629415
msgid "The fields the user can read according to the :class:`configuration <canaille.core.configuration.ACLSettings>` configuration."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:4
#: 797042e3224245dbb82b8e2c6c7882be
msgid "This does not include the :attr:`writable <canaille.core.models.User.writable_fields>` fields."
msgstr ""
#: ../../docstring of canaille.core.models.User.region:1
#: adca0f9fe25e411e8e82b9fd9a78b778
msgid "The state or region component."
msgstr ""
#: ../../docstring of canaille.core.models.User.street:1
#: 3a12008e383748b9a68f380f06740b99
msgid "The full street address component, which may include house number, street name, P.O."
msgstr ""
#: ../../docstring of canaille.core.models.User.street:4
#: 28be3cbf04994e0f84565569a0cab6db
msgid "box, and multi-line extended street address information. This attribute MAY contain newlines."
msgstr ""
#: ../../docstring of canaille.core.models.User.title:1
#: bc37ec09dcf441b18e6a7a14f4fa032b
msgid "The user's title, such as \"Vice President\"."
msgstr ""
#: ../../docstring of canaille.core.models.User.user_name:1
#: f3748083c91b42a3a188413f1c0b9003
msgid "A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider."
msgstr ""
#: ../../docstring of canaille.core.models.User.user_name:4
#: 5fb20fd2207e4f00941d6491626145fc
msgid "Often displayed to the user as their unique identifier within the system (as opposed to \"id\" or \"externalId\", which are generally opaque and not user-friendly identifiers). Each User MUST include a non-empty userName value. This identifier MUST be unique across the service provider's entire set of Users. This attribute is REQUIRED and is case insensitive."
msgstr ""
#: ../../canaille/core/models.py:docstring of canaille.core.models.User.writable_fields:1
#: 118f89cc1cbd40e1904344299ec0ff2f
msgid "The fields the user can write according to the :class:`configuration <canaille.core.configuration.ACLSettings>`."
msgstr ""
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1
#: 9facc36af225404d9779eaf6bf2bfab7
msgid "OpenID Connect temporary authorization code definition."
msgstr ""
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1
#: 3bdc94d169f4438894bf0425d195e506
msgid "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client Registration protocols <https://datatracker.ietf.org/doc/html/rfc7591.html>`_ and the `OpenID Connect RP-Initiated Logout <https://openid.net/specs/openid-connect-rpinitiated-1_0.html>`_ specifications."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_id:3
#: 9c71570390a0463e962bce31ea5088b3
msgid "OAuth 2.0 client identifier string. It SHOULD NOT be currently valid for any other registered client, though an authorization server MAY issue the same client identifier to multiple instances of a registered client at its discretion."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:1
#: ../../docstring of canaille.oidc.basemodels.Client.client_secret:1
#: ../../docstring of canaille.oidc.basemodels.Client.post_logout_redirect_uris:1
#: 3c32fe5a481b412bb1e1b937ee4869ec
#: 044bd6e4946b410198e0d298277e7dd4
#: 6c48ff3f31a641aa937776cb3fae89b3
msgid "OPTIONAL."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3
#: 2f4229be751d4e5caa1b9069d15f33b8
msgid "Time at which the client identifier was issued. The time is represented as the number of seconds from 1970-01-01T00:00:00Z as measured in UTC until the date/time of issuance."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_name:1
#: 956366c2776548e6a62315bcb4247b8e
msgid "Human-readable string name of the client to be presented to the end-user during authorization."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_name:4
#: 4d83c77c154048298477394cfcb5fc9a
msgid "If omitted, the authorization server MAY display the raw \"client_id\" value to the end-user instead. It is RECOMMENDED that clients always send this field. The value of this field MAY be internationalized, as described in Section 2.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_secret:3
#: dce117516b124deab7b810b6c54fa0ac
msgid "OAuth 2.0 client secret string. If issued, this MUST be unique for each \"client_id\" and SHOULD be unique for multiple instances of a client using the same \"client_id\". This value is used by confidential clients to authenticate to the token endpoint, as described in OAuth 2.0 [RFC6749], Section 2.3.1."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_secret_expires_at:1
#: b85460cc7e254321ac121e50eaffbd3a
msgid "REQUIRED if \"client_secret\" is issued."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_secret_expires_at:3
#: a760adab225b4b7f8569ac1aedcd0fe4
msgid "Time at which the client secret will expire or 0 if it will not expire. The time is represented as the number of seconds from 1970-01-01T00:00:00Z as measured in UTC until the date/time of expiration."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:1
#: 368fa31181994524b25de364044e969d
msgid "URL string of a web page providing information about the client."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3
#: 0a20833287484008ac3e4a7377b83fae
msgid "If present, the server SHOULD display this URL to the end-user in a clickable fashion. It is RECOMMENDED that clients always send this field. The value of this field MUST point to a valid web page. The value of this field MAY be internationalized, as described in Section 2.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.contacts:1
#: 9b6834ade33a4cd6941bb4ce4fbbe533
msgid "Array of strings representing ways to contact people responsible for this client, typically email addresses."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.contacts:4
#: af5b08bc89ec4d77b081ecb7134fa27f
msgid "The authorization server MAY make these contact addresses available to end-users for support requests for the client. See Section 6 for information on Privacy Considerations."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:1
#: a98a93fb09664916a5e87eb824142864
msgid "Array of OAuth 2.0 grant type strings that the client can use at the token endpoint. These grant types are defined as follows:"
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:4
#: 5b3b26e17f8b4debb5f24b1f09741112
msgid "\"authorization_code\": The authorization code grant type defined in OAuth 2.0, Section 4.1."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:7
#: 2e3fc7ab9197457a9cb841b2ad5db74c
msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10
#: 4b0a5a3917a1404489a1c35523b3101e
msgid "\"password\": The resource owner password credentials grant type defined in OAuth 2.0, Section 4.3."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:13
#: 857eea7248a341aa921cd8fd5b724fbe
msgid "\"client_credentials\": The client credentials grant type defined in OAuth 2.0, Section 4.4."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:16
#: f5f2816191814d21bfec694ca69ff1d1
msgid "\"refresh_token\": The refresh token grant type defined in OAuth 2.0, Section 6."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:19
#: c541d54100d34722acd417b25e98bd5c
msgid "\"urn:ietf:params:oauth:grant-type:jwt-bearer\": The JWT Bearer Token Grant Type defined in OAuth JWT Bearer Token Profiles [RFC7523]."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:23
#: 2ea0af9e26be4d2db3d332e953e8ca8b
msgid "\"urn:ietf:params:oauth:grant-type:saml2-bearer\": The SAML 2.0 Bearer Assertion Grant defined in OAuth SAML 2 Bearer Token Profiles [RFC7522]."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:27
#: 57292fb5f1634d3bba1da0262c280fcb
msgid "If the token endpoint is used in the grant type, the value of this parameter MUST be the same as the value of the \"grant_type\" parameter passed to the token endpoint defined in the grant type definition. Authorization servers MAY allow for other values as defined in the grant type extension process described in OAuth 2.0, Section 4.5. If omitted, the default behavior is that the client will use only the \"authorization_code\" Grant Type."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.jwk:1
#: d4b452db75264d40be92a7a921f87428
msgid "Client's JSON Web Key Set [RFC7517] document value, which contains the client's public keys."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.jwk:4
#: bf3972f670c941ad85e0478d1808ff37
msgid "The value of this field MUST be a JSON object containing a valid JWK Set. These keys can be used by higher-level protocols that use signing or encryption. This parameter is intended to be used by clients that cannot use the \"jwks_uri\" parameter, such as native clients that cannot host public URLs. The \"jwks_uri\" and \"jwks\" parameters MUST NOT both be present in the same request or response."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:1
#: 268c5ebb6d01426daf157137967ceb71
msgid "URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] document, which contains the client's public keys."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:4
#: 7fc031400ba5483787d3755a50404f52
msgid "The value of this field MUST point to a valid JWK Set document. These keys can be used by higher-level protocols that use signing or encryption. For instance, these keys might be used by some applications for validating signed requests made to the token endpoint when using JWTs for client authentication [RFC7523]. Use of this parameter is preferred over the \"jwks\" parameter, as it allows for easier key rotation. The \"jwks_uri\" and \"jwks\" parameters MUST NOT both be present in the same request or response."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:1
#: 2e7ce4c75ee742bca61f56435df8c8ba
msgid "URL string that references a logo for the client."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3
#: 9b60b488494740178fa0eb696a830276
msgid "If present, the server SHOULD display this image to the end-user during approval. The value of this field MUST point to a valid image file. The value of this field MAY be internationalized, as described in Section 2.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:1
#: 6196df903f044a869d63d7bfe59029ec
msgid "URL string that points to a human-readable privacy policy document that describes how the deployment organization collects, uses, retains, and discloses personal data."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:5
#: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:5
#: 4a2485a600f84752af39a53edb626de6
#: 7107cb606a41467ba4620b8833bce409
msgid "The authorization server SHOULD display this URL to the end-user if it is provided. The value of this field MUST point to a valid web page. The value of this field MAY be internationalized, as described in Section 2.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.post_logout_redirect_uris:3
#: c72d1bb71dd94b548279d1efbc710585
msgid "Array of URLs supplied by the RP to which it MAY request that the End-User's User Agent be redirected using the post_logout_redirect_uri parameter after a logout has been performed. These URLs SHOULD use the https scheme and MAY contain port, path, and query parameter components; however, they MAY use the http scheme, provided that the Client Type is confidential, as defined in Section 2.1 of OAuth 2.0 [RFC6749], and provided the OP allows the use of http RP URIs."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:1
#: 2e06e42021994d9880933a147f75ac42
msgid "Array of redirection URI strings for use in redirect-based flows such as the authorization code and implicit flows."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:4
#: d620c8983f004e97b068e92227d397ca
msgid "As required by Section 2 of OAuth 2.0 [RFC6749], clients using flows with redirection MUST register their redirection URI values. Authorization servers that support dynamic registration for redirect-based flows MUST implement support for this metadata value."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:1
#: 0199d813ba7048eab35fcd268b27bfcc
msgid "Array of the OAuth 2.0 response type strings that the client can use at the authorization endpoint. These response types are defined as follows:"
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:5
#: 4bab6b2fed8a4f1ab9108994d6fb98e0
msgid "\"code\": The authorization code response type defined in OAuth 2.0, Section 4.1."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:8
#: 00457e11ffec4ca3b872fb7f97e43510
msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:11
#: 7fd3e01f1e3e4a3e98a4a71071fde775
msgid "If the authorization endpoint is used by the grant type, the value of this parameter MUST be the same as the value of the \"response_type\" parameter passed to the authorization endpoint defined in the grant type definition. Authorization servers MAY allow for other values as defined in the grant type extension process is described in OAuth 2.0, Section 4.5. If omitted, the default is that the client will use only the \"code\" response type."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.scope:1
#: 8b411c3c4d744e66a74e7e4bf52e621c
msgid "String containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.scope:5
#: 953f41806c6e4932b7c4edf6f0ddd507
msgid "The semantics of values in this list are service specific. If omitted, an authorization server MAY register a client with a default set of scopes."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.software_id:1
#: 4fc9f0306c584316aa4c1b3c2d844099
msgid "A unique identifier string (e.g., a Universally Unique Identifier (UUID)) assigned by the client developer or software publisher used by registration endpoints to identify the client software to be dynamically registered."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.software_id:6
#: 2125d1eb4c6b4718b6c4331052fe7faa
msgid "Unlike \"client_id\", which is issued by the authorization server and SHOULD vary between instances, the \"software_id\" SHOULD remain the same for all instances of the client software. The \"software_id\" SHOULD remain the same across multiple updates or versions of the same piece of software. The value of this field is not intended to be human readable and is usually opaque to the client and authorization server."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.software_version:1
#: 40e1b0990ec746bf8c9d05c246211b2f
msgid "A version identifier string for the client software identified by \"software_id\"."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.software_version:4
#: 34d17136e48a479b9fe5b56d79bae90b
msgid "The value of the \"software_version\" SHOULD change on any update to the client software identified by the same \"software_id\". The value of this field is intended to be compared using string equality matching and no other comparison semantics are defined by this specification. The value of this field is outside the scope of this specification, but it is not intended to be human readable and is usually opaque to the client and authorization server. The definition of what constitutes an update to client software that would trigger a change to this value is specific to the software itself and is outside the scope of this specification."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:1
#: 4c0d764f9b464300b91cb575bec81042
msgid "String indicator of the requested authentication method for the token endpoint. Values defined by this specification are:"
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:4
#: 06c9b086f72f4839b8e624dafa032e65
msgid "\"none\": The client is a public client as defined in OAuth 2.0, Section 2.1, and does not have a client secret."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:7
#: f0c62329f807478fba3956bb2b215eff
msgid "\"client_secret_post\": The client uses the HTTP POST parameters as defined in OAuth 2.0, Section 2.3.1."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:10
#: 6aae16f0c1f44fbca7c2cf890999a8d7
msgid "\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth 2.0, Section 2.3.1."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:13
#: 93316ec1de384670bee6411eeeee736a
msgid "Additional values can be defined via the IANA \"OAuth Token Endpoint Authentication Methods\" registry established in Section 4.2. Absolute URIs can also be used as values for this parameter without being registered. If unspecified or omitted, the default is \"client_secret_basic\", denoting the HTTP Basic authentication scheme as specified in Section 2.3.1 of OAuth 2.0."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:1
#: 688470bc69ac41dcbde0543cf71e5479
msgid "URL string that points to a human-readable terms of service document for the client that describes a contractual relationship between the end-user and the client that the end-user accepts when authorizing the client."
msgstr ""
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Consent:1
#: fbc25995a4954ad89cf6363836c086b9
msgid "Long-term user consent to an application."
msgstr ""
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1
#: c24dba2ff5d047d18e4c44c48289f2dc
msgid "OpenID Connect token definition."
msgstr ""

View file

@ -1,453 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:21+0100\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"
#: ../tutorial/databases.rst:2
#: 34b6a5df315e4629b9710884e3f5be9e
msgid "Databases"
msgstr ""
#: ../tutorial/databases.rst:4
#: 31f93a60c87648478dfe7a6c74d5f36a
msgid "Canaille can read and save data in different databases. This page presents the different database backends and their specificities:"
msgstr ""
#: ../tutorial/databases.rst:8
#: 8dc081315c7a4eea8be2e81b8a049162
msgid "Memory"
msgstr ""
#: ../tutorial/databases.rst:10
#: 08608b21b52a4a22ac26b3a2a2d29f6a
msgid "Canaille comes with a lightweight inmemory backend by default. It is used when no other backend has been configured."
msgstr ""
#: ../tutorial/databases.rst:13
#: dbb9009fcf724d6290135aa1d6a32026
msgid "This backend is only for test purpose and should not be used in production environments."
msgstr ""
#: ../tutorial/databases.rst:16
#: 06113268bf4a49d0880cdae75f961fc5
msgid "SQL"
msgstr ""
#: ../tutorial/databases.rst:18
#: 2bb9cb1d3c4f4e4f93d649960bca123d
msgid "Canaille can use any database supported by `SQLAlchemy <https://www.sqlalchemy.org/>`_, such as sqlite, postgresql or mariadb."
msgstr ""
#: ../tutorial/databases.rst:21
#: bb4ec73e439d430aa8dbdddb0301bf5b
msgid "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For instance:"
msgstr ""
#: ../tutorial/databases.rst:23
#: ../tutorial/databases.rst:37
#: 7de375f96b054244a9fb0c7c60663f32
#: ebab073f2f894dfb87705d06ebb870af
msgid "config.toml"
msgstr ""
#: ../tutorial/databases.rst:29
#: 6e78f6be25cb4151951a1bc6994643a9
msgid "You can find more details on the SQL configuration in the :class:`dedicated section <canaille.backends.sql.configuration.SQLSettings>`."
msgstr ""
#: ../tutorial/databases.rst:32
#: bcfa707ba3b2494ab1af853bcdc7673f
msgid "LDAP"
msgstr ""
#: ../tutorial/databases.rst:34
#: 426e632fa07a44369bdadb8a290672bf
msgid "Canaille can use OpenLDAP as its main database. It is used when the ``CANAILLE_LDAP`` configuration parameter is defined. For instance:"
msgstr ""
#: ../tutorial/databases.rst:52
#: 0c319bcdd3b649569745572bb2944fec
msgid "You can find more details on the LDAP configuration in the :class:`dedicated section <canaille.backends.ldap.configuration.LDAPSettings>`."
msgstr ""
#: ../tutorial/databases.rst:55
#: ebc6e35e9a6049be8bc66eb127adf882
msgid "Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been tested. If you want to use different schemas or LDAP servers, adaptations may be needed. Patches are welcome."
msgstr ""
#: ../tutorial/databases.rst:60
#: 6a9ec2b8bf724122b5752c753bdaea7a
msgid "OpenLDAP overlays integration"
msgstr ""
#: ../tutorial/databases.rst:62
#: ce6daa0ac4974084990221c2806a5549
msgid "Canaille can integrate with several OpenLDAP overlays:"
msgstr ""
#: ../tutorial/databases.rst:65
#: 24a7dc4d61504545ac841910fbaca48b
msgid "memberof / refint"
msgstr ""
#: ../tutorial/databases.rst:67
#: d24183e3349f42bfbbecde663f03f846
msgid "`memberof <https://www.openldap.org/doc/admin26/overlays.html#Reverse%20Group%20Membership%20Maintenance>`_ and `refint <https://www.openldap.org/doc/admin26/overlays.html#Referential%20Integrity>`_ overlays are needed for the Canaille group membership to work correctly."
msgstr ""
#: ../tutorial/databases.rst:71
#: ../tutorial/databases.rst:94
#: 65357e9c96e341128f9448507ce02f1b
#: 692bdeebfc9c40999c9b09c8d9371e52
msgid "Here is a configuration example compatible with canaille:"
msgstr ""
#: ../tutorial/databases.rst:73
#: 511312387435410987a190cf7b68f2ab
msgid "memberof-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:77
#: c95e78d9dde84102b1a97c2399430c23
msgid "refint-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:81
#: ../tutorial/databases.rst:104
#: 2e0fddced7e949f8a66653530c8a120b
#: 8686380cd79949259b48f68fe6c4d3b8
msgid "You can adapt and load those configuration files with:"
msgstr ""
#: ../tutorial/databases.rst:90
#: af864ca7a8ef4d128d3fbe54749a944c
msgid "ppolicy"
msgstr ""
#: ../tutorial/databases.rst:92
#: fc8d77f8ca4d48de9eba6c408a9f5fc2
msgid "If the `ppolicy <https://www.ietf.org/archive/id/draft-behera-ldap-password-policy-11.html>`_ overlay is configured and the ``pwdEndTime`` attribute is available (since OpenLDAP 2.6), then account locking support will be enabled in canaille. To allow users to manage account expiration, they need to have a *write* permission on the :attr:`~canaille.core.models.User.lock_date` attribute."
msgstr ""
#: ../tutorial/databases.rst:96
#: 15e6cfdc691149efbbdc2f3834c7a3d0
msgid "ppolicy-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:100
#: ef7f7bd8dd0445be8596864cb1b50fa5
msgid "ppolicy.ldif"
msgstr ""
#: ../tutorial/deployment.rst:2
#: a7ef8cd4696b4e53a1ffdb87fb18c375
msgid "Deployment"
msgstr ""
#: ../tutorial/deployment.rst:5
#: 0f1f7c0caa8a4dfcb659c15bedda5aae
msgid "Application service"
msgstr ""
#: ../tutorial/deployment.rst:7
#: b93527ef33ad4a65af273da09bb780f3
msgid "After having finished Canaille installation you have to run it in a WSGI application server. Here are some WSGI server configuration examples you can pick. Do not forget to update the paths."
msgstr ""
#: ../tutorial/deployment.rst:11
#: 1ffbe89a8ff744fc9686484ce526e541
msgid "gunicorn"
msgstr ""
#: ../tutorial/deployment.rst:13
#: 418a0ab3603442f2b0a515962f003029
msgid "Todo"
msgstr ""
#: ../tutorial/deployment.rst:15
#: c40ad558fd584c01a6c564f8f72d12f3
msgid "Write a gunicorn configuration sample file."
msgstr ""
#: ../tutorial/deployment.rst:18
#: ec3a0c7c05b74be6b1640ff6a4090aec
msgid "uwsgi"
msgstr ""
#: ../tutorial/deployment.rst:42
#: 5c4862bc3810432195a2e9a353f60b54
msgid "Webserver"
msgstr ""
#: ../tutorial/deployment.rst:44
#: 94e56452db9741f0a3eee45f672e73a8
msgid "Now you have to plug your WSGI application server to your webserver so it is accessible on the internet. Here are some webserver configuration examples you can pick:"
msgstr ""
#: ../tutorial/deployment.rst:48
#: 7c4ae615fbd44c3f8ab3ece2d0201ed7
msgid "Nginx"
msgstr ""
#: ../tutorial/deployment.rst:114
#: ac66da9f7d1342bdad81dbdf97218b4e
msgid "Apache"
msgstr ""
#: ../tutorial/deployment.rst:153
#: ad13e4fdf804422facdde8b1b619e9a2
msgid "Recurrent jobs"
msgstr ""
#: ../tutorial/deployment.rst:155
#: b9ba07959e7f4d57846b44490735d913
msgid "You might want to clean up your database to avoid it growing too much. You can regularly delete expired tokens and authorization codes with:"
msgstr ""
#: ../tutorial/deployment.rst:164
#: 4a9929824eba46a883f1147dcdaa526e
msgid "Webfinger"
msgstr ""
#: ../tutorial/deployment.rst:166
#: cbd15001d4a043e5a0ec93a5eff80b9f
msgid "You may want to configure a `WebFinger`_ endpoint on your main website to allow the automatic discovery of your Canaille installation based on the account name of one of your users. For instance, suppose your domain is ``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` and there is a user ``john.doe``. A third-party application could require to authenticate the user and ask them for a user account. The user would give their account ``john.doe@mydomain.example``, then the application would perform a WebFinger request at ``https://mydomain.example/.well-known/webfinger`` and the response would contain the address of the authentication server ``https://auth.mydomain.example``. With this information the third party application can redirect the user to the Canaille authentication page."
msgstr ""
#: ../tutorial/deployment.rst:168
#: e515d97f8d8248f98081746a9b723611
msgid "The difficulty here is that the WebFinger endpoint must be hosted at the top-level domain (i.e. ``mydomain.example``) while the authentication server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille provides a WebFinger endpoint, but if it is not hosted at the top-level domain, a web redirection is required on the ``/.well-known/webfinger`` path."
msgstr ""
#: ../tutorial/deployment.rst:170
#: 3c7cb4cd4a2d498098fe4387a5ae3b2a
msgid "Here are configuration examples for Nginx or Apache:"
msgstr ""
#: ../tutorial/deployment.rst:172
#: a11ff6002ffc46b7b401b29c222cb984
msgid "Nginx webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:181
#: cc81b2ca58b842bab2583d46cd8ac1dc
msgid "Apache webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:191
#: b9b3713c6f724e5cb3cad50756e8211c
msgid "Create the first user"
msgstr ""
#: ../tutorial/deployment.rst:193
#: 02df7f55e6df4452ac60d899b5a98cc2
msgid "Once canaille is installed, soon enough you will need to add users. To create your first user you can use the :ref:`canaille create <cli_create>` CLI."
msgstr ""
#: ../tutorial/index.rst:2
#: 3deeb02f520e41b4a510d72bdd446046
msgid "Tutorial"
msgstr ""
#: ../tutorial/install.rst:2
#: 36b529fead5242468a36bdbbbdd28544
msgid "Installation"
msgstr ""
#: ../tutorial/install.rst:6
#: c717982f410e46a28e3f97a9a1096146
msgid "Canaille is under heavy development and may not fit a production environment yet."
msgstr ""
#: ../tutorial/install.rst:8
#: 6e7bc4fde5d74dceb03c1f03a95fa779
msgid "The installation of canaille consist in several steps, some of which you can do manually or with command line tool:"
msgstr ""
#: ../tutorial/install.rst:11
#: 25f53875201f4538b26df4d537d355ea
msgid "Get the code"
msgstr ""
#: ../tutorial/install.rst:13
#: ac342d74e14244c4badfab8c1f829d94
msgid "As the moment there is no distribution package for canaille. However, it can be installed with the ``pip`` package manager. Let us choose a place for the canaille environment, like ``/opt/canaille/env``."
msgstr ""
#: ../tutorial/install.rst:24
#: 15d4a0b372c44934a05f1ed6eb327a87
msgid "Extras"
msgstr ""
#: ../tutorial/install.rst:26
#: 6c563bb9847e4766a5c3d0d461a35c2f
msgid "Canaille provides different package options:"
msgstr ""
#: ../tutorial/install.rst:28
#: 65dbf1cc88e14dcda675a7a20f71477b
msgid "`front` provides all the things needed to produce the user interface;"
msgstr ""
#: ../tutorial/install.rst:29
#: 932751ee90ac445f8271d5f0bf062139
msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;"
msgstr ""
#: ../tutorial/install.rst:30
#: 33ba6546cbf94064ab5290438b1120a8
msgid "`ldap` provides the dependencies to enable the LDAP backend;"
msgstr ""
#: ../tutorial/install.rst:31
#: e65f505181e448e58b1aa158e8af5d42
msgid "`sqlite` provides the dependencies to enable the SQLite backend;"
msgstr ""
#: ../tutorial/install.rst:32
#: f3fa4d1a59674077b16bdc0e432f326e
msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;"
msgstr ""
#: ../tutorial/install.rst:33
#: f914db4dca274ab9bc725faba6cc6e86
msgid "`mysql` provides the dependencies to enable the MySQL backend;"
msgstr ""
#: ../tutorial/install.rst:34
#: 7dad7a35aea54e549ac3328577c8e3e1
msgid "`sentry` provides sentry integration to watch Canaille exceptions;"
msgstr ""
#: ../tutorial/install.rst:35
#: 1cd7e38d50bd4f439e285c870a8b005c
msgid "`all` provides all the extras above."
msgstr ""
#: ../tutorial/install.rst:37
#: cf6a1f2144114c7abfe4177c427d72f8
msgid "They can be installed with:"
msgstr ""
#: ../tutorial/install.rst:44
#: 51d6f24a101c4511aa3d49db1914fa3a
msgid "Configure"
msgstr ""
#: ../tutorial/install.rst:46
#: 4efc51c21f274c449ecdd33dcc439625
msgid "Choose a path where to store your configuration file. You can pass any configuration path with the ``CONFIG`` environment variable."
msgstr ""
#: ../tutorial/install.rst:54
#: 90dd73339c3e43f18395eb80d9749456
msgid "You should then edit your configuration file to adapt the values to your needs. Look at the configuration details in the :doc:`configuration <../references/configuration>` page."
msgstr ""
#: ../tutorial/install.rst:57
#: 3ff3b9dbf5904b3dbb2494ee61825d15
msgid "Install"
msgstr ""
#: ../tutorial/install.rst:59
#: 56e161c2e2ed4ae7a7d55bcc024135a1
msgid "The :ref:`install command <cli_install>` will apply most of the things needed to get Canaille working. Depending on the configured :doc:`database <databases>` it will create the SQL tables, or install the LDAP schemas for instance."
msgstr ""
#: ../tutorial/install.rst:68
#: e4b60f64108549189d9627699af12a91
msgid "Check"
msgstr ""
#: ../tutorial/install.rst:70
#: 1a9056c774724a0491bcb5060e8903f2
msgid "After a manual installation, you can check your configuration file using the :ref:`check command <cli_install>`:"
msgstr ""
#: ../tutorial/troubleshooting.rst:2
#: 8e2c5e7ea5f14416a11a2ec648a32593
msgid "Troubleshooting"
msgstr ""
#: ../tutorial/troubleshooting.rst:5
#: d1d6667b4caa4506a5be55cc7c4df22a
msgid "The web interface throws useless error messages"
msgstr ""
#: ../tutorial/troubleshooting.rst:7
#: a71c850aa84d41e99550cc54f23e5441
msgid "Unless the current user has admin :class:`permissions <canaille.core.configuration.Permission>`, or the installation is in :attr:`~canaille.app.configuration.RootSettings.DEBUG` mode, error messages won't be too technical. For instance, you can see *The request you made is invalid*. To enable detailed error messages, you can **temporarily** enable the :attr:`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter."
msgstr ""
#: ../tutorial/troubleshooting.rst:12
#: cc846be11ca448ddb1c1913d1e41ccbf
msgid "How to manually install LDAP schemas?"
msgstr ""
#: ../tutorial/troubleshooting.rst:16
#: c9a20d92290541c0b5536e5cd150999d
msgid "Schema installation can be automatically done using the :ref:`install command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:18
#: 830b3a72844a44d386308540cc44f1e4
msgid "As of OpenLDAP 2.4, two configuration methods are available:"
msgstr ""
#: ../tutorial/troubleshooting.rst:20
#: 02db4b758cfd40f7b64bfb79bea9f5c3
msgid "The `deprecated <https://www.openldap.org/doc/admin26/slapdconf2.html>`_ one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);"
msgstr ""
#: ../tutorial/troubleshooting.rst:21
#: 0b24de0faa944ae3b1af5c604a71098f
msgid "The new one, based on a configuration directory (generally ``/etc/ldap/slapd.d``)."
msgstr ""
#: ../tutorial/troubleshooting.rst:23
#: 7acd99c26fd7480e8733523fbd29db13
msgid "Depending on the configuration method you use with your OpenLDAP installation, you need to chose how to add the canaille schemas:"
msgstr ""
#: ../tutorial/troubleshooting.rst:26
#: 3917d45c79604f16ba0aca4887ff6dac
msgid "Old fashion: Copy the schemas in your filesystem"
msgstr ""
#: ../tutorial/troubleshooting.rst:35
#: 430b74fa77a94624bcae8606289222a3
msgid "New fashion: Use slapadd to add the schemas"
msgstr ""
#: ../tutorial/troubleshooting.rst:37
#: 9fdc2c09b2dc44b3b5e45ed1271b3e7c
msgid "Be careful to stop your ldap server before running ``slapadd``"
msgstr ""
#: ../tutorial/troubleshooting.rst:46
#: cc6bfd549bd541eead7a37af15a25aef
msgid "How to manually generate the OIDC keypair?"
msgstr ""
#: ../tutorial/troubleshooting.rst:50
#: 6dc2d317536b41ff839d98287a84f358
msgid "The keypair generation can be automatically done using the :ref:`install command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:52
#: 31db4facc32b4691b3625065562ef5c3
msgid "Canaille needs a key pair to sign OIDC tokens. You can customize those commands, as long as they match the ``JWT`` section of your configuration file."
msgstr ""

View file

@ -1,153 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../tutorial/databases.rst:2
#: 34b6a5df315e4629b9710884e3f5be9e
msgid "Databases"
msgstr ""
#: ../tutorial/databases.rst:4
#: 31f93a60c87648478dfe7a6c74d5f36a
msgid "Canaille can read and save data in different databases. This page presents the different database backends and their specificities:"
msgstr ""
#: ../tutorial/databases.rst:8
#: 8dc081315c7a4eea8be2e81b8a049162
msgid "Memory"
msgstr ""
#: ../tutorial/databases.rst:10
#: 08608b21b52a4a22ac26b3a2a2d29f6a
msgid "Canaille comes with a lightweight inmemory backend by default. It is used when no other backend has been configured."
msgstr ""
#: ../tutorial/databases.rst:13
#: dbb9009fcf724d6290135aa1d6a32026
msgid "This backend is only for test purpose and should not be used in production environments."
msgstr ""
#: ../tutorial/databases.rst:16
#: 06113268bf4a49d0880cdae75f961fc5
msgid "SQL"
msgstr ""
#: ../tutorial/databases.rst:18
#: 2bb9cb1d3c4f4e4f93d649960bca123d
msgid "Canaille can use any database supported by `SQLAlchemy <https://www.sqlalchemy.org/>`_, such as sqlite, postgresql or mariadb."
msgstr ""
#: ../tutorial/databases.rst:21
#: bb4ec73e439d430aa8dbdddb0301bf5b
msgid "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For instance:"
msgstr ""
#: ../tutorial/databases.rst:23
#: ../tutorial/databases.rst:37
#: 7de375f96b054244a9fb0c7c60663f32
#: ebab073f2f894dfb87705d06ebb870af
msgid "config.toml"
msgstr ""
#: ../tutorial/databases.rst:29
#: 6e78f6be25cb4151951a1bc6994643a9
msgid "You can find more details on the SQL configuration in the :class:`dedicated section <canaille.backends.sql.configuration.SQLSettings>`."
msgstr ""
#: ../tutorial/databases.rst:32
#: bcfa707ba3b2494ab1af853bcdc7673f
msgid "LDAP"
msgstr ""
#: ../tutorial/databases.rst:34
#: 426e632fa07a44369bdadb8a290672bf
msgid "Canaille can use OpenLDAP as its main database. It is used when the ``CANAILLE_LDAP`` configuration parameter is defined. For instance:"
msgstr ""
#: ../tutorial/databases.rst:52
#: 0c319bcdd3b649569745572bb2944fec
msgid "You can find more details on the LDAP configuration in the :class:`dedicated section <canaille.backends.ldap.configuration.LDAPSettings>`."
msgstr ""
#: ../tutorial/databases.rst:55
#: ebc6e35e9a6049be8bc66eb127adf882
msgid "Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been tested. If you want to use different schemas or LDAP servers, adaptations may be needed. Patches are welcome."
msgstr ""
#: ../tutorial/databases.rst:60
#: 6a9ec2b8bf724122b5752c753bdaea7a
msgid "OpenLDAP overlays integration"
msgstr ""
#: ../tutorial/databases.rst:62
#: ce6daa0ac4974084990221c2806a5549
msgid "Canaille can integrate with several OpenLDAP overlays:"
msgstr ""
#: ../tutorial/databases.rst:65
#: 24a7dc4d61504545ac841910fbaca48b
msgid "memberof / refint"
msgstr ""
#: ../tutorial/databases.rst:67
#: d24183e3349f42bfbbecde663f03f846
msgid "`memberof <https://www.openldap.org/doc/admin26/overlays.html#Reverse%20Group%20Membership%20Maintenance>`_ and `refint <https://www.openldap.org/doc/admin26/overlays.html#Referential%20Integrity>`_ overlays are needed for the Canaille group membership to work correctly."
msgstr ""
#: ../tutorial/databases.rst:71
#: ../tutorial/databases.rst:94
#: 65357e9c96e341128f9448507ce02f1b
#: 692bdeebfc9c40999c9b09c8d9371e52
msgid "Here is a configuration example compatible with canaille:"
msgstr ""
#: ../tutorial/databases.rst:73
#: 511312387435410987a190cf7b68f2ab
msgid "memberof-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:77
#: c95e78d9dde84102b1a97c2399430c23
msgid "refint-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:81
#: ../tutorial/databases.rst:104
#: 2e0fddced7e949f8a66653530c8a120b
#: 8686380cd79949259b48f68fe6c4d3b8
msgid "You can adapt and load those configuration files with:"
msgstr ""
#: ../tutorial/databases.rst:90
#: af864ca7a8ef4d128d3fbe54749a944c
msgid "ppolicy"
msgstr ""
#: ../tutorial/databases.rst:92
#: fc8d77f8ca4d48de9eba6c408a9f5fc2
msgid "If the `ppolicy <https://www.ietf.org/archive/id/draft-behera-ldap-password-policy-11.html>`_ overlay is configured and the ``pwdEndTime`` attribute is available (since OpenLDAP 2.6), then account locking support will be enabled in canaille. To allow users to manage account expiration, they need to have a *write* permission on the :attr:`~canaille.core.models.User.lock_date` attribute."
msgstr ""
#: ../tutorial/databases.rst:96
#: 15e6cfdc691149efbbdc2f3834c7a3d0
msgid "ppolicy-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:100
#: ef7f7bd8dd0445be8596864cb1b50fa5
msgid "ppolicy.ldif"
msgstr ""

View file

@ -1,122 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../tutorial/deployment.rst:2
#: a7ef8cd4696b4e53a1ffdb87fb18c375
msgid "Deployment"
msgstr ""
#: ../tutorial/deployment.rst:5
#: 0f1f7c0caa8a4dfcb659c15bedda5aae
msgid "Application service"
msgstr ""
#: ../tutorial/deployment.rst:7
#: b93527ef33ad4a65af273da09bb780f3
msgid "After having finished Canaille installation you have to run it in a WSGI application server. Here are some WSGI server configuration examples you can pick. Do not forget to update the paths."
msgstr ""
#: ../tutorial/deployment.rst:11
#: 1ffbe89a8ff744fc9686484ce526e541
msgid "gunicorn"
msgstr ""
#: ../tutorial/deployment.rst:13
#: 418a0ab3603442f2b0a515962f003029
msgid "Todo"
msgstr ""
#: ../tutorial/deployment.rst:15
#: c40ad558fd584c01a6c564f8f72d12f3
msgid "Write a gunicorn configuration sample file."
msgstr ""
#: ../tutorial/deployment.rst:18
#: ec3a0c7c05b74be6b1640ff6a4090aec
msgid "uwsgi"
msgstr ""
#: ../tutorial/deployment.rst:42
#: 5c4862bc3810432195a2e9a353f60b54
msgid "Webserver"
msgstr ""
#: ../tutorial/deployment.rst:44
#: 94e56452db9741f0a3eee45f672e73a8
msgid "Now you have to plug your WSGI application server to your webserver so it is accessible on the internet. Here are some webserver configuration examples you can pick:"
msgstr ""
#: ../tutorial/deployment.rst:48
#: 7c4ae615fbd44c3f8ab3ece2d0201ed7
msgid "Nginx"
msgstr ""
#: ../tutorial/deployment.rst:114
#: ac66da9f7d1342bdad81dbdf97218b4e
msgid "Apache"
msgstr ""
#: ../tutorial/deployment.rst:153
#: ad13e4fdf804422facdde8b1b619e9a2
msgid "Recurrent jobs"
msgstr ""
#: ../tutorial/deployment.rst:155
#: b9ba07959e7f4d57846b44490735d913
msgid "You might want to clean up your database to avoid it growing too much. You can regularly delete expired tokens and authorization codes with:"
msgstr ""
#: ../tutorial/deployment.rst:164
#: 4a9929824eba46a883f1147dcdaa526e
msgid "Webfinger"
msgstr ""
#: ../tutorial/deployment.rst:166
#: cbd15001d4a043e5a0ec93a5eff80b9f
msgid "You may want to configure a `WebFinger`_ endpoint on your main website to allow the automatic discovery of your Canaille installation based on the account name of one of your users. For instance, suppose your domain is ``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` and there is a user ``john.doe``. A third-party application could require to authenticate the user and ask them for a user account. The user would give their account ``john.doe@mydomain.example``, then the application would perform a WebFinger request at ``https://mydomain.example/.well-known/webfinger`` and the response would contain the address of the authentication server ``https://auth.mydomain.example``. With this information the third party application can redirect the user to the Canaille authentication page."
msgstr ""
#: ../tutorial/deployment.rst:168
#: e515d97f8d8248f98081746a9b723611
msgid "The difficulty here is that the WebFinger endpoint must be hosted at the top-level domain (i.e. ``mydomain.example``) while the authentication server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille provides a WebFinger endpoint, but if it is not hosted at the top-level domain, a web redirection is required on the ``/.well-known/webfinger`` path."
msgstr ""
#: ../tutorial/deployment.rst:170
#: 3c7cb4cd4a2d498098fe4387a5ae3b2a
msgid "Here are configuration examples for Nginx or Apache:"
msgstr ""
#: ../tutorial/deployment.rst:172
#: a11ff6002ffc46b7b401b29c222cb984
msgid "Nginx webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:181
#: cc81b2ca58b842bab2583d46cd8ac1dc
msgid "Apache webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:191
#: b9b3713c6f724e5cb3cad50756e8211c
msgid "Create the first user"
msgstr ""
#: ../tutorial/deployment.rst:193
#: 02df7f55e6df4452ac60d899b5a98cc2
msgid "Once canaille is installed, soon enough you will need to add users. To create your first user you can use the :ref:`canaille create <cli_create>` CLI."
msgstr ""

View file

@ -1,22 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../tutorial/index.rst:2
#: 3deeb02f520e41b4a510d72bdd446046
msgid "Tutorial"
msgstr ""

View file

@ -1,132 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../tutorial/install.rst:2
#: 36b529fead5242468a36bdbbbdd28544
msgid "Installation"
msgstr ""
#: ../tutorial/install.rst:6
#: c717982f410e46a28e3f97a9a1096146
msgid "Canaille is under heavy development and may not fit a production environment yet."
msgstr ""
#: ../tutorial/install.rst:8
#: 6e7bc4fde5d74dceb03c1f03a95fa779
msgid "The installation of canaille consist in several steps, some of which you can do manually or with command line tool:"
msgstr ""
#: ../tutorial/install.rst:11
#: 25f53875201f4538b26df4d537d355ea
msgid "Get the code"
msgstr ""
#: ../tutorial/install.rst:13
#: ac342d74e14244c4badfab8c1f829d94
msgid "As the moment there is no distribution package for canaille. However, it can be installed with the ``pip`` package manager. Let us choose a place for the canaille environment, like ``/opt/canaille/env``."
msgstr ""
#: ../tutorial/install.rst:24
#: 15d4a0b372c44934a05f1ed6eb327a87
msgid "Extras"
msgstr ""
#: ../tutorial/install.rst:26
#: 6c563bb9847e4766a5c3d0d461a35c2f
msgid "Canaille provides different package options:"
msgstr ""
#: ../tutorial/install.rst:28
#: 65dbf1cc88e14dcda675a7a20f71477b
msgid "`front` provides all the things needed to produce the user interface;"
msgstr ""
#: ../tutorial/install.rst:29
#: 932751ee90ac445f8271d5f0bf062139
msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;"
msgstr ""
#: ../tutorial/install.rst:30
#: 33ba6546cbf94064ab5290438b1120a8
msgid "`ldap` provides the dependencies to enable the LDAP backend;"
msgstr ""
#: ../tutorial/install.rst:31
#: e65f505181e448e58b1aa158e8af5d42
msgid "`sqlite` provides the dependencies to enable the SQLite backend;"
msgstr ""
#: ../tutorial/install.rst:32
#: f3fa4d1a59674077b16bdc0e432f326e
msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;"
msgstr ""
#: ../tutorial/install.rst:33
#: f914db4dca274ab9bc725faba6cc6e86
msgid "`mysql` provides the dependencies to enable the MySQL backend;"
msgstr ""
#: ../tutorial/install.rst:34
#: 7dad7a35aea54e549ac3328577c8e3e1
msgid "`sentry` provides sentry integration to watch Canaille exceptions;"
msgstr ""
#: ../tutorial/install.rst:35
#: 1cd7e38d50bd4f439e285c870a8b005c
msgid "`all` provides all the extras above."
msgstr ""
#: ../tutorial/install.rst:37
#: cf6a1f2144114c7abfe4177c427d72f8
msgid "They can be installed with:"
msgstr ""
#: ../tutorial/install.rst:44
#: 51d6f24a101c4511aa3d49db1914fa3a
msgid "Configure"
msgstr ""
#: ../tutorial/install.rst:46
#: 4efc51c21f274c449ecdd33dcc439625
msgid "Choose a path where to store your configuration file. You can pass any configuration path with the ``CONFIG`` environment variable."
msgstr ""
#: ../tutorial/install.rst:54
#: 90dd73339c3e43f18395eb80d9749456
msgid "You should then edit your configuration file to adapt the values to your needs. Look at the configuration details in the :doc:`configuration <../references/configuration>` page."
msgstr ""
#: ../tutorial/install.rst:57
#: 3ff3b9dbf5904b3dbb2494ee61825d15
msgid "Install"
msgstr ""
#: ../tutorial/install.rst:59
#: 56e161c2e2ed4ae7a7d55bcc024135a1
msgid "The :ref:`install command <cli_install>` will apply most of the things needed to get Canaille working. Depending on the configured :doc:`database <databases>` it will create the SQL tables, or install the LDAP schemas for instance."
msgstr ""
#: ../tutorial/install.rst:68
#: e4b60f64108549189d9627699af12a91
msgid "Check"
msgstr ""
#: ../tutorial/install.rst:70
#: 1a9056c774724a0491bcb5060e8903f2
msgid "After a manual installation, you can check your configuration file using the :ref:`check command <cli_install>`:"
msgstr ""

View file

@ -1,92 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\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"
#: ../tutorial/troubleshooting.rst:2
#: 8e2c5e7ea5f14416a11a2ec648a32593
msgid "Troubleshooting"
msgstr ""
#: ../tutorial/troubleshooting.rst:5
#: d1d6667b4caa4506a5be55cc7c4df22a
msgid "The web interface throws useless error messages"
msgstr ""
#: ../tutorial/troubleshooting.rst:7
#: a71c850aa84d41e99550cc54f23e5441
msgid "Unless the current user has admin :class:`permissions <canaille.core.configuration.Permission>`, or the installation is in :attr:`~canaille.app.configuration.RootSettings.DEBUG` mode, error messages won't be too technical. For instance, you can see *The request you made is invalid*. To enable detailed error messages, you can **temporarily** enable the :attr:`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter."
msgstr ""
#: ../tutorial/troubleshooting.rst:12
#: cc846be11ca448ddb1c1913d1e41ccbf
msgid "How to manually install LDAP schemas?"
msgstr ""
#: ../tutorial/troubleshooting.rst:16
#: c9a20d92290541c0b5536e5cd150999d
msgid "Schema installation can be automatically done using the :ref:`install command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:18
#: 830b3a72844a44d386308540cc44f1e4
msgid "As of OpenLDAP 2.4, two configuration methods are available:"
msgstr ""
#: ../tutorial/troubleshooting.rst:20
#: 02db4b758cfd40f7b64bfb79bea9f5c3
msgid "The `deprecated <https://www.openldap.org/doc/admin26/slapdconf2.html>`_ one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);"
msgstr ""
#: ../tutorial/troubleshooting.rst:21
#: 0b24de0faa944ae3b1af5c604a71098f
msgid "The new one, based on a configuration directory (generally ``/etc/ldap/slapd.d``)."
msgstr ""
#: ../tutorial/troubleshooting.rst:23
#: 7acd99c26fd7480e8733523fbd29db13
msgid "Depending on the configuration method you use with your OpenLDAP installation, you need to chose how to add the canaille schemas:"
msgstr ""
#: ../tutorial/troubleshooting.rst:26
#: 3917d45c79604f16ba0aca4887ff6dac
msgid "Old fashion: Copy the schemas in your filesystem"
msgstr ""
#: ../tutorial/troubleshooting.rst:35
#: 430b74fa77a94624bcae8606289222a3
msgid "New fashion: Use slapadd to add the schemas"
msgstr ""
#: ../tutorial/troubleshooting.rst:37
#: 9fdc2c09b2dc44b3b5e45ed1271b3e7c
msgid "Be careful to stop your ldap server before running ``slapadd``"
msgstr ""
#: ../tutorial/troubleshooting.rst:46
#: cc6bfd549bd541eead7a37af15a25aef
msgid "How to manually generate the OIDC keypair?"
msgstr ""
#: ../tutorial/troubleshooting.rst:50
#: 6dc2d317536b41ff839d98287a84f358
msgid "The keypair generation can be automatically done using the :ref:`install command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:52
#: 31db4facc32b4691b3625065562ef5c3
msgid "Canaille needs a key pair to sign OIDC tokens. You can customize those commands, as long as they match the ``JWT`` section of your configuration file."
msgstr ""

5397
doc/locales/doc.pot Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,406 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../CONTRIBUTING.rst:2 7c1ab3305147436fb9421dffeac09375
msgid "Contributions"
msgstr ""
#: ../../CONTRIBUTING.rst:4 a73a38a924914b208c350201b99ade0c
msgid "Contributions are welcome!"
msgstr ""
#: ../../CONTRIBUTING.rst:6 bb5639fbdf6c49bfa96bf0a26b42ee2a
msgid ""
"The repository is hosted at `gitlab.com/yaal/canaille "
"<https://gitlab.com/yaal/canaille>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:9 e35b3518080c4b3ea444a26c2b7d821f
msgid "Discuss"
msgstr ""
#: ../../CONTRIBUTING.rst:11 ddfd8d963ac7421baad588afafd95029
msgid ""
"If you want to implement a feature or a bugfix, please start by "
"discussing it with us on the `bugtracker "
"<https://gitlab.com/yaal/canaille/-/issues>`_ or the `matrix room "
"<https://matrix.to/#/#canaille-discuss:yaal.coop>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:16 f13a93bafe4542cbbdfb561e66869288
msgid "Development environment"
msgstr ""
#: ../../CONTRIBUTING.rst:18 146597b6b8d04f248ea98191137a6bcb
msgid "You can either run the demo locally or with Docker."
msgstr ""
#: ../../CONTRIBUTING.rst:20 9b1b9c06d6f640d3baab2194d63c2ca6
msgid ""
"The only tool required for local development is `uv`. Make sure to have "
"uv `installed on your computer <https://docs.astral.sh/uv/getting-"
"started/installation/>`_ to be able to hack Canaille."
msgstr ""
#: ../../CONTRIBUTING.rst:24 6b736387b592498d83c96dfef8a38832
msgid ""
"Initialize your development environment with: - ``uv sync --extra front "
"--extra oidc`` to have a minimal working development environment. This "
"will allow you to run the tests with ``uv pytest --backend memory``. - "
"``uv sync --extra front --extra oidc --extra sqlite`` to have a minimal "
"working development environment with SQLite backend support. This will "
"allow you to run the tests with ``uv pytest --backend sql``. - ``uv sync "
"--extra front --extra oidc --extra ldap`` to have a minimal working "
"development environment with LDAP backend support. This will allow you to"
" run the tests with ``uv pytest --backend ldap``. - ``uv sync --all-"
"extras`` if you want to have everything at your fingertips. Note that it "
"may compile some Python dependencies that would expect things to be "
"installed on your system; Some dependencies of Canaille might need to be "
"compiled, so you probably want to check that `GCC` and `cargo` are "
"available on your computer."
msgstr ""
#: ../../CONTRIBUTING.rst:31 3ab70f5ffe36465a9be5ef3edfe0cb57
msgid "After having launched the demo you have access to several services:"
msgstr ""
#: ../../CONTRIBUTING.rst:33 eab681954d7a4656bbaec53d33c0ecd0
msgid "A canaille server at `localhost:5000 <http://localhost:5000>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:34 f2dfbb5dbad74f6792f869598373fe7c
msgid "A dummy client at `localhost:5001 <http://localhost:5001>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:35 c26dbc13ffea4e578d5cbed572cf01f4
msgid "Another dummy client at `localhost:5002 <http://localhost:5002>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:37 643fc1a38e8c482faf9bb03f95b2a62c
msgid "The canaille server has some default users:"
msgstr ""
#: ../../CONTRIBUTING.rst:39 9eb743b3da3f4eb0903ae5ef0a992566
msgid "A regular user which login and password are **user**;"
msgstr ""
#: ../../CONTRIBUTING.rst:40 c4143060eb304659ae704ec6cba281de
msgid "A moderator user which login and password are **moderator**;"
msgstr ""
#: ../../CONTRIBUTING.rst:41 411281aded7e464f87f1f8950e6c890c
msgid "An admin user which admin and password are **admin**;"
msgstr ""
#: ../../CONTRIBUTING.rst:42 fe28d3c09b174c6fb5c9661c3bc6ca67
msgid ""
"A new user which login is **james**. This user has no password yet, and "
"his first attempt to log-in would result in sending a password "
"initialization email (if a smtp server is configured)."
msgstr ""
#: ../../CONTRIBUTING.rst:47 b9f8753db1754411a6ddd40bee7fbffb
msgid "Backends"
msgstr ""
#: ../../CONTRIBUTING.rst:49 881e10750d914144be34fb6f03ef7a9f
msgid "Canaille comes with several backends:"
msgstr ""
#: ../../CONTRIBUTING.rst:51 285507e6da6b4af1a7b874ce68117d2e
msgid "a lightweight test purpose `memory` backend"
msgstr ""
#: ../../CONTRIBUTING.rst:52 240e509e162041698e7f88044e704d04
msgid "a `sql` backend, based on sqlalchemy"
msgstr ""
#: ../../CONTRIBUTING.rst:53 3d2495a25cec49e3b62f2c5514b380a6
msgid "a production-ready `LDAP` backend"
msgstr ""
#: ../../CONTRIBUTING.rst:56 1637387b09f845958e4268668f7ce5a8
msgid "Docker environment"
msgstr ""
#: ../../CONTRIBUTING.rst:58 5ce6e05911244aca97cc1405dc319d54
msgid ""
"If you want to develop with docker, your browser needs to be able to "
"reach the `canaille` container. The docker-compose file exposes the right"
" ports, but front requests are from outside the docker network: the "
"`canaille` url that makes sense for docker, points nowhere from your "
"browser. As exposed ports are on `localhost`, you need to tell your "
"computer that `canaille` url means `localhost`."
msgstr ""
#: ../../CONTRIBUTING.rst:63 23ce3f6f5ea44fe6ba4029203add5a27
msgid "To do that, you can add the following line to your `/etc/hosts`:"
msgstr ""
#: ../../CONTRIBUTING.rst:69 9cd73a71e5fa41a3a2f4f80c0408c4ba
msgid "To launch containers, use:"
msgstr ""
#: ../../CONTRIBUTING.rst:84 8cb412e1ce584a78b6a16c189480ab98
msgid "Local environment"
msgstr ""
#: ../../CONTRIBUTING.rst:98 901a414c94e5400391f9dfe67b452e6f
msgid ""
"If you want to run the demo locally with the LDAP backend, you need to "
"have `OpenLDAP <https://www.openldap.org/>`_ installed on your system. It"
" is generally shipped under the ``slapd`` or ``openldap`` package name."
msgstr ""
#: ../../CONTRIBUTING.rst:103 0c71c9d15abd4e128ecf38e66dccd052
msgid ""
"On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be "
"restricted by apparmor, and thus makes the tests and the demo fail. This "
"can be mitigated by removing apparmor restrictions on `slapd`."
msgstr ""
#: ../../CONTRIBUTING.rst:113 d78b3b0b3f3e49f1b2991c7f953bfd51
msgid "Populate the database"
msgstr ""
#: ../../CONTRIBUTING.rst:115 937755ec4cd44d28a300cfb31f4bdab0
msgid ""
"The demo database comes populated with some random users and groups. If "
"you need more, you can generate users and groups with the ``populate`` "
"command:"
msgstr ""
#: ../../CONTRIBUTING.rst:126 e6478d79102a420cb29373814615483c
msgid ""
"Adapt to use either the `ldap` or the `sql` configuration file. Note that"
" this will not work with the memory backend."
msgstr ""
#: ../../CONTRIBUTING.rst:129 8388b3135a7744cc9395de2be0754b97
msgid "Unit tests"
msgstr ""
#: ../../CONTRIBUTING.rst:131 c0beac52adbd4f8cab1b1b2b3a685b5b
msgid ""
"To run the tests, you just can run `uv run pytest` and/or `uv run tox` to"
" test all the supported python environments. Everything must be green "
"before patches get merged."
msgstr ""
#: ../../CONTRIBUTING.rst:134 087b9f6006f3453baffe1c6eb074925a
msgid ""
"To test a specific backend you can pass ``--backend memory``, ``--backend"
" sql`` or ``--backend ldap`` to pytest and tox."
msgstr ""
#: ../../CONTRIBUTING.rst:136 fb19a1dd39b94166861307d05981764c
msgid ""
"The test coverage is 100%, patches won't be accepted if not entirely "
"covered. You can check the test coverage with ``uv run pytest --cov "
"--cov-report=html`` or ``uv run tox -e coverage -- --cov-report=html``. "
"You can check the HTML coverage report in the newly created `htmlcov` "
"directory."
msgstr ""
#: ../../CONTRIBUTING.rst:141 c529a55523124f2e89397fbc60ac0f7b
msgid "Code style"
msgstr ""
#: ../../CONTRIBUTING.rst:143 925f6ac68525496584f01467bea4ad2d
msgid ""
"We use `ruff <https://docs.astral.sh/ruff/>`_ along with other tools to "
"format our code. Please run ``uv run tox -e style`` on your patches "
"before submitting them. In order to perform a style check and correction "
"at each commit you can use our `pre-commit <https://pre-commit.com/>`_ "
"configuration with ``uv run pre-commit install``."
msgstr ""
#: ../../CONTRIBUTING.rst:149 db166a2976184377ab59ce537418ecbf
msgid "Front"
msgstr ""
#: ../../CONTRIBUTING.rst:151 d25881c0189747eeabc777c2929c7008
msgid ""
"The interface is built upon the `Fomantic UI <https://fomantic-ui.com/>`_"
" CSS framework. The dynamical parts of the interface use `htmx "
"<https://htmx.org/>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:154 86502939ce9d443c86df95720e667a91
msgid ""
"Using Javascript in the interface is tolerated, but the whole website "
"MUST be accessible for browsers without Javascript support, and without "
"any feature loss."
msgstr ""
#: ../../CONTRIBUTING.rst:156 1c42dcc54b6743a0821f42046438066b
msgid ""
"Because of Fomantic UI we have a dependency to jQuery, however new "
"contributions should not depend on jQuery at all. See the `related issue "
"<https://gitlab.com/yaal/canaille/-/issues/130>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:161 52abf5adbe644c6b82b87f4e5d2c5ebb
msgid "Translations"
msgstr ""
#: ../../canaille/translations/README.rst:1 b1a8c4be2efd43c1a4e2282711ffbb63
msgid ""
"Translations are done with `Weblate "
"<https://hosted.weblate.org/projects/canaille/canaille>`_."
msgstr ""
#: ../../canaille/translations/README.rst:3 1d4332b3eebd48fc98d28507c9be30a5
msgid ""
"The following commands are there as documentation, only the message "
"extraction is needed for contributors. All the other steps are "
"automatically done with Weblate."
msgstr ""
#: ../../canaille/translations/README.rst:8 111a6826ce7d4666aebf19ee04e5750c
msgid "Message extraction"
msgstr ""
#: ../../canaille/translations/README.rst:10 2bf701d1dcb441938142ee5e9b03bd31
msgid ""
"After you have edited translatable strings, you should extract the "
"messages with:"
msgstr ""
#: ../../canaille/translations/README.rst:17 424082dd69bc448bb50126f5e590f70c
msgid "Language addition"
msgstr ""
#: ../../canaille/translations/README.rst:19 5be588cfe676499f8294cc593075c1ad
msgid ""
"You can add a new language manually with the following command, however "
"this should not be needed as Weblate takes car of this:"
msgstr ""
#: ../../canaille/translations/README.rst:26 7db4259cd8504c73afa7b99db81efd41
msgid "Catalog update"
msgstr ""
#: ../../canaille/translations/README.rst:28 71bb011a076146f5baf4e3279f6c4b7e
msgid ""
"You can update the catalogs with the following command, however this "
"should not be needed as Weblate automatically update language catalogs "
"when it detects new strings or when someone translate some existing "
"strings. Weblate pushes happen every 24h."
msgstr ""
#: ../../canaille/translations/README.rst:36 a296f2a2cbf649299d5fec0f520614d3
msgid "Catalog compilation"
msgstr ""
#: ../../canaille/translations/README.rst:38 c13b3771cd5b45b4884744fad24b900f
msgid ""
"You can compile the catalogs with the following command, however this "
"should not be needed as catalogs are automatically compiled before "
"running the unit tests, before launching the demo and before compiling "
"the Canaille python package:"
msgstr ""
#: ../../CONTRIBUTING.rst:166 39b97e4fee6749c79486c19e617657ef
msgid "Documentation"
msgstr ""
#: ../../CONTRIBUTING.rst:168 0d41272738f94ced892295701150d998
msgid "The documentation is generated when the tests run:"
msgstr ""
#: ../../CONTRIBUTING.rst:174 3e7a8bb825c64e9291ef2d77b3932f98
msgid ""
"You can also run sphinx by hand, that should be faster since it avoids "
"the tox environment initialization:"
msgstr ""
#: ../../CONTRIBUTING.rst:180 1ea17b9131f04d71b48b7c3c61f50983
msgid "The generated documentation is located at ``build/sphinx/html``."
msgstr ""
#: ../../CONTRIBUTING.rst:183 79f5374feb714359a960e5cae638c231
msgid "Publish a new release"
msgstr ""
#: ../../CONTRIBUTING.rst:185 2be83e33a90a4c7aac1dc519fe172e51
msgid ""
"Check that dependencies are up to date with ``uv sync --all-extras "
"--upgrade`` and update dependencies accordingly in separated commits;"
msgstr ""
#: ../../CONTRIBUTING.rst:186 1abd3d600ac0411fb999b304cb13e51e
msgid ""
"Check that tests are still green for every supported python version, and "
"that coverage is still at 100%, by running ``uv run tox``;"
msgstr ""
#: ../../CONTRIBUTING.rst:187 88370dc2d9c94d559e8abe1068bfeba6
msgid ""
"Check that the demo environments are still working, both the local and "
"the Docker one;"
msgstr ""
#: ../../CONTRIBUTING.rst:188 bd8ff970e1424dd38acf71ccfb62487c
msgid ""
"Check that the :ref:`development/changelog:Release notes` section is "
"correctly filled up;"
msgstr ""
#: ../../CONTRIBUTING.rst:189 b04308c3c9df45e0b23f2da5c5dc3ef3
msgid "Increase the version number in ``pyproject.toml``;"
msgstr ""
#: ../../CONTRIBUTING.rst:190 ebaff21b4fe04971885873f4401a38e9
msgid "Commit with ``git commit``;"
msgstr ""
#: ../../CONTRIBUTING.rst:191 5e75ca58d33e45d8b0035b7f1a293346
msgid "Build with ``uv build``;"
msgstr ""
#: ../../CONTRIBUTING.rst:192 3cc2fb6a7cc745cea14593e07ce87228
msgid ""
"Publish on test PyPI with ``uv publish --publish-url "
"https://test.pypi.org/legacy/``;"
msgstr ""
#: ../../CONTRIBUTING.rst:193 7090fbe6930449f78048558eb4be201b
msgid ""
"Install the test package somewhere with ``pip install --extra-index-url "
"https://test.pypi.org/simple --upgrade canaille``. Check that everything "
"looks fine;"
msgstr ""
#: ../../CONTRIBUTING.rst:194 03da5714d2994f5ea82a0c7764e27d72
msgid "Publish on production PyPI ``uv publish``;"
msgstr ""
#: ../../CONTRIBUTING.rst:195 8635aa0c6a154b02b4f1b5e4558433f0
msgid "Tag the commit with ``git tag XX.YY.ZZ``;"
msgstr ""
#: ../../CONTRIBUTING.rst:196 bce1c91d899e43858a763368a8877cfc
msgid ""
"Push the release commit and the new tag on the repository with ``git push"
" --tags``."
msgstr ""

View file

@ -1,25 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/development/index.rst:2 15f05d4dbb7d48148dfddc6d8a44131c
msgid "Development"
msgstr ""

View file

@ -1,491 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/development/specifications.rst:2 51c59cc44a2c41e5b41657630b0f0294
msgid "Specifications"
msgstr ""
#: ../../doc/development/specifications.rst:4 a7ce3c060d6843c58af29aa75bef3528
msgid ""
"This page details which specifications are implemented in Canaille, and "
"compares Canaille with other well-known identity providers."
msgstr ""
#: ../../doc/development/specifications.rst:7 9693a4b998134bc08184a485a6a85b08
msgid "State of the specs in Canaille"
msgstr ""
#: ../../doc/development/specifications.rst:10 f8563fa341304001ba3c2c550055a0e4
msgid "OAuth2"
msgstr ""
#: ../../doc/development/specifications.rst:12 b901b23486424b70ab53ad600c552405
msgid "✅ `RFC6749: OAuth 2.0 Framework <https://tools.ietf.org/html/rfc6749>`_"
msgstr ""
#: ../../doc/development/specifications.rst:13 93b26d88ddfb4c24a975c86fafdca3f9
msgid ""
"✅ `RFC6750: OAuth 2.0 Bearer Tokens "
"<https://tools.ietf.org/html/rfc6750>`_"
msgstr ""
#: ../../doc/development/specifications.rst:14 8d4d4d01ff5843faa2bb7c6da2d5a43e
msgid ""
"✅ `RFC7009: OAuth 2.0 Token Revocation "
"<https://tools.ietf.org/html/rfc7009>`_"
msgstr ""
#: ../../doc/development/specifications.rst:15 3bf9581f076d491baa8e2c23f3e1d39c
msgid ""
"❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and "
"Authorization Grants <https://tools.ietf.org/html/rfc7523>`_"
msgstr ""
#: ../../doc/development/specifications.rst:16 6ae1c3b70dfa4a10805ed2d7a7acda83
msgid ""
"✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol "
"<https://tools.ietf.org/html/rfc7591>`_"
msgstr ""
#: ../../doc/development/specifications.rst:17 9ccadb41365c46cb815b73b88fdc8fc3
msgid ""
"✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol "
"<https://tools.ietf.org/html/rfc7592>`_"
msgstr ""
#: ../../doc/development/specifications.rst:18 fbbef7cd04a04efe8daa71b13569dfd6
msgid ""
"✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients "
"<https://tools.ietf.org/html/rfc7636>`_"
msgstr ""
#: ../../doc/development/specifications.rst:19 54a6ec4e30b94788a749bcfcd52149ab
msgid ""
"✅ `RFC7662: OAuth 2.0 Token Introspection "
"<https://tools.ietf.org/html/rfc7662>`_"
msgstr ""
#: ../../doc/development/specifications.rst:20 9829a6dc3aca4e2589ce52b529e26208
msgid ""
"✅ `RFC8414: OAuth 2.0 Authorization Server Metadata "
"<https://tools.ietf.org/html/rfc8414>`_"
msgstr ""
#: ../../doc/development/specifications.rst:21 c4f9b42536a94adfab90da79ef7ec77e
msgid ""
"❌ `RFC8428: OAuth 2.0 Device Authorization Grant "
"<https://tools.ietf.org/html/rfc8428>`_"
msgstr ""
#: ../../doc/development/specifications.rst:22 b46f678389a140d28f571fa65ef508c0
msgid ""
"❌ `RFC8693: OAuth 2.0 Token Exchange "
"<https://tools.ietf.org/html/rfc8693>`_"
msgstr ""
#: ../../doc/development/specifications.rst:23 762b143d7a3343ea96d19d65b5d20d33
msgid ""
"❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-"
"Bound Access Tokens <https://tools.ietf.org/html/rfc8705>`_"
msgstr ""
#: ../../doc/development/specifications.rst:24 b0149247e739412db12e27f13ff03105
msgid ""
"❌ `RFC8707: Resource Indicators for OAuth 2.0 "
"<https://tools.ietf.org/html/rfc8707>`_"
msgstr ""
#: ../../doc/development/specifications.rst:25 343ed4b6215343d9a44d5807c6d6b1a7
msgid ""
"❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens "
"<https://tools.ietf.org/html/rfc9068>`_"
msgstr ""
#: ../../doc/development/specifications.rst:26 a6e3b2cb30c94a5f9922b7a184a36847
msgid ""
"❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) "
"<https://tools.ietf.org/html/rfc9101>`_"
msgstr ""
#: ../../doc/development/specifications.rst:27 f971ecf0bf144571891910d1f2437c6e
msgid ""
"❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests "
"<https://tools.ietf.org/html/rfc9126>`_"
msgstr ""
#: ../../doc/development/specifications.rst:28 fc3312ad72d24fbdbc4bc3bdc41f4975
msgid ""
"❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification "
"<https://tools.ietf.org/html/rfc9207>`_"
msgstr ""
#: ../../doc/development/specifications.rst:29 6ea9045b875440f0b158c45cfbbb5da3
msgid ""
"❌ `RFC9394: OAuth 2.0 Rich Authorization Requests <https://www.rfc-"
"editor.org/rfc/rfc9396.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:30 6e9ed12e1d5f4cee9063c63f16639809
msgid ""
"❌ `OAuth2 Multiple Response Types <https://openid.net/specs/oauth-v2"
"-multiple-response-types-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:31 c179be51a4324be6b1822dc762c64017
msgid ""
"❌ `OAuth2 Form Post Response Mode <https://openid.net/specs/oauth-v2"
"-form-post-response-mode-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:34 c4536360f9c34e52bc7c196ca083864c
msgid "OpenID Connect"
msgstr ""
#: ../../doc/development/specifications.rst:36 1bac333e62e748228f06d4cd4b3f79cd
msgid ""
"✅ `OpenID Connect Core <https://openid.net/specs/openid-connect-"
"core-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:37 177f627cd2c844afab7f72adc78309fe
msgid ""
"✅ `OpenID Connect Discovery <https://openid.net/specs/openid-connect-"
"discovery-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:38 46d6426d7eb845aea7af55e24b5cbfde
msgid ""
"✅ `OpenID Connect Dynamic Client Registration <https://openid.net/specs"
"/openid-connect-registration-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:39 a38ba47e2d234fc588e8515e052117d5
msgid ""
"✅ `OpenID Connect RP Initiated Logout <https://openid.net/specs/openid-"
"connect-rpinitiated-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:40 12b246f565674f6d8a709b119eaa077e
msgid ""
"❌ `OpenID Connect Session Management <https://openid.net/specs/openid-"
"connect-session-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:41 244a1b92839c4b30b556b2d5eb88a8c4
msgid ""
"❌ `OpenID Connect Front Channel Logout <https://openid.net/specs/openid-"
"connect-frontchannel-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:42 32210e35cc3644d88a7d6b8088b82665
msgid ""
"❌ `OpenID Connect Back Channel Logout <https://openid.net/specs/openid-"
"connect-backchannel-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:43 9bb794d88635474291dd79ab7f85184c
msgid ""
"❌ `OpenID Connect Back Channel Authentication Flow "
"<https://openid.net/specs/openid-client-initiated-backchannel-"
"authentication-core-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:44 729d88fd26854bc8a0f1458669120be0
msgid ""
"❌ `OpenID Connect Core Error Code unmet_authentication_requirements "
"<https://openid.net/specs/openid-connect-unmet-authentication-"
"requirements-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:45 e9353600371c470f8a92e7b50c324427
msgid ""
"✅ `Initiating User Registration via OpenID Connect 1.0 "
"<https://openid.net/specs/openid-connect-prompt-create-1_0.html>`_"
msgstr ""
#: ../../doc/development/specifications.rst:48
#: ../../doc/development/specifications.rst:64 9786673925304d99b1e09ab9fb786761
#: e5c086aeada14b3fbd12df6a3150ddf7
msgid "SCIM"
msgstr ""
#: ../../doc/development/specifications.rst:50 cdaeb22c0b254f32be04c950554ddcf2
msgid ""
"❌ `RFC7642: System for Cross-domain Identity Management: Definitions, "
"Overview, Concepts, and Requirements <https://www.rfc-"
"editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../../doc/development/specifications.rst:51 1d65726f19194dcfb004e9d50c72164c
msgid ""
"❌ `RFC7643: System for Cross-domain Identity Management: Core Schema "
"<https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../../doc/development/specifications.rst:52 fb0be7fecb5f467f9162dd9eec3f0e1a
msgid ""
"❌ `RFC7644: System for Cross-domain Identity Management: Protocol "
"<https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../../doc/development/specifications.rst:55 dc882e47451d47009071e021bce6d0ae
msgid "Comparison with other providers"
msgstr ""
#: ../../doc/development/specifications.rst:57 367a086f3b274c379d00b9d3f7451c10
msgid "Here is a feature comparison with other OpenID Connect server software."
msgstr ""
#: ../../doc/development/specifications.rst:59 6d484ee0fa4f45e18d14992b444b5da4
msgid ""
"Canaille voluntarily only implements the OpenID Connect protocol to keep "
"its codebase simple."
msgstr ""
#: ../../doc/development/specifications.rst:62 4fdd66f3032141698f64213f7f9184ae
msgid "Software"
msgstr ""
#: ../../doc/development/specifications.rst:62 5e6caeffa6a44dfebe3eaba4d692f509
msgid "Project"
msgstr ""
#: ../../doc/development/specifications.rst:62 5fb63fe0df34482fb1cf4148afb11b4e
msgid "Protocols implementations"
msgstr ""
#: ../../doc/development/specifications.rst:62 b542f41780b54cddbcaa336caef7399b
msgid "Backends"
msgstr ""
#: ../../doc/development/specifications.rst:64 355f58ee2ecb43ea94091562af7d74cd
msgid "FLOSS"
msgstr ""
#: ../../doc/development/specifications.rst:64 86dc1e42e8ee4cbcacd8d8cb43b6a08a
msgid "Language"
msgstr ""
#: ../../doc/development/specifications.rst:64 a1da5f980cb349e6b6d4ce525b8931cd
msgid "LOC"
msgstr ""
#: ../../doc/development/specifications.rst:64 6860a212b6b040d889bc0e351071b7d4
msgid "OIDC"
msgstr ""
#: ../../doc/development/specifications.rst:64 ef9c2076ea46467aad1d9ca648f7f111
msgid "SAML"
msgstr ""
#: ../../doc/development/specifications.rst:64 01c4b6fc96cf430f8932876fca8122fc
msgid "CAS"
msgstr ""
#: ../../doc/development/specifications.rst:64 ab7b125e263945e38b55ab23a5c48b03
msgid "LDAP"
msgstr ""
#: ../../doc/development/specifications.rst:64 eed21c65e10546848ea44ae9c158b17c
msgid "SQL"
msgstr ""
#: ../../doc/development/specifications.rst:66 4646c46739f74295bb793fa497beac7f
msgid "Canaille"
msgstr ""
#: ../../doc/development/specifications.rst:66
#: ../../doc/development/specifications.rst:68
#: ../../doc/development/specifications.rst:70
#: ../../doc/development/specifications.rst:72
#: ../../doc/development/specifications.rst:74
#: ../../doc/development/specifications.rst:76
#: ../../doc/development/specifications.rst:78
#: ../../doc/development/specifications.rst:80
#: ../../doc/development/specifications.rst:82
#: ../../doc/development/specifications.rst:84
#: ../../doc/development/specifications.rst:86
#: ../../doc/development/specifications.rst:88 00293b6e57934791a96bb65ea530e7e3
#: 01dbc5d8500441ae826f7bb6c44184ee 0e45c0b5fb8a455b825489ef91815aab
#: 1883b31912d845d780648dad9f2c7d5f 1b5972edea444b8f96e3c0e500ec6ed3
#: 2357097a3ffd43a5857e088ea7621fd7 24962f9ba6f94d71a57951f93da5c6ab
#: 26a2bac48d6241d7b32da47d9cb0fd03 278244ffdee941dc805168676ef552c8
#: 2e5c12b7d21547b8804d029415b457c8 2f277618e8ec414aa45d8106e488681a
#: 2fdeb6b4b44349ddb453bc46b19c83a6 36975ba3452146d1bc37fe93b1d60a06
#: 3c6cbfc7fc814259b1a9e713d9a28fa2 440ad3e13b164b1283d4dddd77b8a83f
#: 4717b3efb8374abe81b40288d6723d91 4b4d576e661e470e925471981828e3f4
#: 4de9003654ed4009a37269e47f9fc650 5157da20dfe7472d924b475d0bc6ef00
#: 58462071871e4a508c73293cb88ddba0 5e8e224f803942c2b777233d3460002f
#: 6481d1cbfbda4977a528e311cdb6e45a 64b1ba5f02d949e18e5e50ba43a565cf
#: 680ea8f447ca46bbb03083506be230d3 6a2575788fbc4d8bb4401d564c8b29de
#: 6def3fc95d7749e68dee237357a6520d 6e247f54da384c19af348447c679a0a4
#: 76a44c050d7f452088ec710c29f9468a 77dd41e02a5d4991ad02046266c3da94
#: 7cabbe22b77e416aaa0ebaa6515d6826 7f43f9c1d41b4b47840621d27460386b
#: 80f4793cb22b4d498847a665504c28d4 87f39b103616430298baa9af6b1271bf
#: 8c1ee96d1d4d4f7881ecf966281e95df 8e6cbb670d1848cca11a08071f5506ad
#: 979bc49081c3450b810383be914dfa0f 98a3414fac4845c7855b49beaf1269b3
#: a03168cd752049cbb5a68f0773c27829 a66547d346ad4979bc23767ec423f3ca
#: aa29a491f5f1472587243f1b902dfef1 abfe8861b9734fe7a0168ce8bcbe0747
#: ac5d1add8dd2470298644d9d0fc90b71 b095dbb17ffb4397839efb52dbb87144
#: b429c62a736943a4966d5ae9be588be0 b8ba6e7a47584a4e81a3f4329bbfad6d
#: b8d6c565a4334f2ea9a6bae0529571ea be6cb24ed08c40c485299d3ca1055164
#: c51b21470fab4ab085f54916088046d1 c9e8569829e94b5781080d8ccb76dfaa
#: ce8c0c10adea474692578f0a43b0ce44 ce9ff7f88334402bbdf2209311c57ac0
#: d3c8bf29f67348bda1b295eee5389554 d72946d0f55e40cc9114dd63fb5562ff
#: d8009cabba824e8a95aafa929a92f89f de9e4a16c0eb40139020df82932fc8e0
#: e0047cbe13924a94aed567b6df998bcd e67ac152809e4b41904a0ace000bd468
#: e7fb6b76aba4412d90acee023ea0dcad ee37067b5b034fe88895e5d4172fd357
#: f4424c75ebf5412db2f9821ff0865a36 f5d1cd95ba594da083656eeb12708d54
#: f681b918be214fd7ae82f55767672a84 f937b44ef8484c7d8b5343d6097e1827
msgid "✅"
msgstr ""
#: ../../doc/development/specifications.rst:66
#: ../../doc/development/specifications.rst:72
#: ../../doc/development/specifications.rst:74 3ccef219dd8c477b83d63ac89a4628e8
#: 53af1c5800bf4065ae54d6d3fed76f74 e675a5e8ceb145cd95b802b537a7e503
msgid "Python"
msgstr ""
#: ../../doc/development/specifications.rst:66 55d8af1bbebd4ef9b87c918cbe6c63c0
msgid "10k"
msgstr ""
#: ../../doc/development/specifications.rst:66
#: ../../doc/development/specifications.rst:68
#: ../../doc/development/specifications.rst:70
#: ../../doc/development/specifications.rst:72
#: ../../doc/development/specifications.rst:74
#: ../../doc/development/specifications.rst:76
#: ../../doc/development/specifications.rst:78
#: ../../doc/development/specifications.rst:82
#: ../../doc/development/specifications.rst:86
#: ../../doc/development/specifications.rst:88 0ca4ec4e0e36486597b620c01710ede2
#: 0d8be7ed0dd04e7aacdab8c88bbde44f 10d4091b215047ec8ac2fe800c138bc2
#: 23374fd3c7854a519ec633a63306212f 271a7490fdb548d2bed49a96984704ba
#: 28b95cc1d4b54403beb65719a6a0a44d 2d146d48e0b54a28ad1950749bd515b7
#: 45a986934d4d492b9dfa18a4127d6ef9 4d851a9f3cbd43beb53c65b8ff05baee
#: 50f6ec62752848868fcb308ab63cc924 7af084bb69fa4edcaa102e20f361e23b
#: 833072d393d04be79950691b5f124d3f 8638185efb444679ab524a599085007e
#: 9deb93b33a6c4bf68fec09cfc0703a79 b1bd472561e14226bc0d15889e2ee0cf
#: b4668a65b4af46e198f3765ef1c43102 b5e6ca29e6334015bf61656c832464c2
#: c0dece63fd6f49039a7a522f81d417c0 ec8938b15b76427eaf45b604c4e966ee
msgid "❌"
msgstr ""
#: ../../doc/development/specifications.rst:68 174c40b07c47456cbfcecc5f1aaa7aa3
msgid "`Auth0`_"
msgstr ""
#: ../../doc/development/specifications.rst:68
#: ../../doc/development/specifications.rst:78
#: ../../doc/development/specifications.rst:80
#: ../../doc/development/specifications.rst:88 10089c17dd034fdabaf398ab5d8b0dd4
#: 15817ce6f87540a19809b41de19081e4 3cc58548a2c3408384b260f3ebc1f4b2
#: 490c945f86a449019cb6426b6d6ef8ac 59a7c804697644d7aa483f4964bde66b
#: 7a560e268e94470387a5a260c87d709e 92e1fd71f69d44819434698949a46567
#: 9fa9ffd2119844f085e9fa700f58be6c c15a675d112448f496bf71ad7d1cfcb5
msgid "❔"
msgstr ""
#: ../../doc/development/specifications.rst:70 697388cfa36a4b208c5a2099201b5452
msgid "`Authelia`_"
msgstr ""
#: ../../doc/development/specifications.rst:70
#: ../../doc/development/specifications.rst:82 3cbf4ade038d48d8bf888c2aa06bce50
#: 4b4504f562e44862900606dbb8915b0c
msgid "Go"
msgstr ""
#: ../../doc/development/specifications.rst:70
#: ../../doc/development/specifications.rst:82 19b7f1f58631476c9cbbd616ab8ac70b
#: d493f60bd51c493b852256574a34b5f2
msgid "50k"
msgstr ""
#: ../../doc/development/specifications.rst:72 b836b3e6fd19456f956d1b547f0de413
msgid "`Authentic2`_"
msgstr ""
#: ../../doc/development/specifications.rst:72 f37a11dc4f5a40f78f60d69c27a0dc4d
msgid "65k"
msgstr ""
#: ../../doc/development/specifications.rst:74 8a058ec3fd37473fb49a681ff210a6a2
msgid "`Authentik`_"
msgstr ""
#: ../../doc/development/specifications.rst:74 2bcb15a8634f49a9bd61534d212878b0
msgid "55k"
msgstr ""
#: ../../doc/development/specifications.rst:76 2210617edefe419f9cb47dc6b57920b6
msgid "`CAS`_"
msgstr ""
#: ../../doc/development/specifications.rst:76
#: ../../doc/development/specifications.rst:80
#: ../../doc/development/specifications.rst:84 4230943e8b00424ca185ec2dfc44a471
#: 71af08dffe3e4b06ab43a5a7babb784b 9e72b5d3fb9640e2b5369ec4fa8d0a78
msgid "Java"
msgstr ""
#: ../../doc/development/specifications.rst:76 ff56d27fde11433b982d1a133c733e85
msgid "360k"
msgstr ""
#: ../../doc/development/specifications.rst:78 46b4a92a2c564ee6a3a1fc2487b23d1f
msgid "`Connect2id`_"
msgstr ""
#: ../../doc/development/specifications.rst:80 b1faedc73a864d72b858c85a712322f0
msgid "`Gluu`_"
msgstr ""
#: ../../doc/development/specifications.rst:82 7f52b801d5dd4d4f8d9d62c18b595d47
msgid "`Hydra`_"
msgstr ""
#: ../../doc/development/specifications.rst:84 349f9919048b4d9da7a72a321c10f9f7
msgid "`Keycloak`_"
msgstr ""
#: ../../doc/development/specifications.rst:84 6aae961ac7d14623b453e34e0a3ec1f1
msgid "600k"
msgstr ""
#: ../../doc/development/specifications.rst:86 2d37d2699f7a4b63bc98b3ff41b0642e
msgid "`LemonLDAP`_"
msgstr ""
#: ../../doc/development/specifications.rst:86 eb1b85f500ff47a3b20ec299df109168
msgid "Perl"
msgstr ""
#: ../../doc/development/specifications.rst:86 59be9d49572942058056ceb2588ce133
msgid "130k"
msgstr ""
#: ../../doc/development/specifications.rst:88 5350f918d9c54b7f87b2134183072fd7
msgid "`Okta`_"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -1,649 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:26+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
#: ../features.rst:9 3a39687e5bb049d585c3109447fa1161
msgid "Features"
msgstr ""
#: ../features.rst:11 ec85227d7e8a415b9d94c7e8a290495d
msgid ""
"Here are the different features that Canaille provides. You can enable any "
"of those features with the :doc:`configuration <references/configuration>` "
"to fit any :doc:`use cases <usecases>` you may meet. Check our :ref:"
"`roadmap <features:Roadmap>` to see what is coming next."
msgstr ""
#: ../features.rst:15 1d01709835b447ffb8daf9945e64d9c4
msgid ""
"Users can interact with Canaille through its :ref:`web interface <features:"
"Web interface>` and administrators can also use its :ref:`command line "
"interface <features:Command line interface>`. Canaille can handle data "
"stored in different :ref:`database backends <features:Backends>`."
msgstr ""
#: ../features.rst:19 446f2f01004a4f3c828b318afd18bcfe
msgid "Web interface"
msgstr ""
#: ../features.rst:21 297d50ea1e8f4b90928ff18dc836cfde
msgid ""
"Canaille web interface can be used either in :doc:`production environments "
"<tutorial/deployment>` or locally for development purposes."
msgstr ""
#: ../features.rst:26 2a5db38617a44ed596d35c10bc540bd8
msgid "Profile management"
msgstr ""
#: ../features.rst:28 ../features.rst:217 9d832867dc5e4b0285f6b185b0ee547b
#: 581a25e539814b12a1c252f0242be431
msgid "Profile"
msgstr ""
#: ../features.rst:33 877ea17f9ff844119de7ba5e5e5cd0a5
msgid "Canaille provides an interface to manage user profiles."
msgstr ""
#: ../features.rst:35 45d88de9e4524c44a5e80daf0b1357b1
msgid ""
"The exact list of displayed fields, and whether they are :attr:`writable "
"<canaille.core.configuration.ACLSettings.WRITE>` or :attr:`read-only "
"<canaille.core.configuration.ACLSettings.READ>` depends on the user :class:"
"`Access Control List settings (ACL) <canaille.core.configuration."
"ACLSettings>`."
msgstr ""
#: ../features.rst:37 74f24b0d610a49bf84dd6c96ff53146e
msgid ""
"Depending on their ACL :class:`permissions <canaille.core.configuration."
"Permission>`, users can either be allowed to edit their own profile, edit "
"any user profile, or do nothing at all."
msgstr ""
#: ../features.rst:42 087ae1a46d26413ea42ce44662933f0b
msgid "Email confirmation"
msgstr ""
#: ../features.rst:44 82810b7b19d94141b8547b43bd9d8ce8
msgid ""
"If the :attr:`email confirmation feature <canaille.core.configuration."
"CoreSettings.EMAIL_CONFIRMATION>` is enabled, any modification or addition "
"of a profile email will send a confirmation mail to the new address. The "
"mail will contain a link that users will need to click on to confirm their "
"email address."
msgstr ""
#: ../features.rst:46 80defdc6c0aa4920a5fa8577acaf6fa6
msgid ""
"Users with :attr:`user management permission <canaille.core.configuration."
"Permission.MANAGE_USERS>` can set user emails without confirmation though."
msgstr ""
#: ../features.rst:51 351ea71b5b1a4827a53592645bb8a80c
msgid "Group management"
msgstr ""
#: ../features.rst:53 ../features.rst:140 e4a31dade59b407a9d8df7a0314d1cf2
#: 54541ece476c4d408288f0337784a03c
msgid "Group edition"
msgstr ""
#: ../features.rst:58 a2cfe7269999424bb8748a13a95a10da
msgid ""
"In a similar fashion than :ref:`profile management "
"<feature_profile_management>` Canaille provides an interface to manage user "
"groups."
msgstr ""
#: ../features.rst:60 fbb7991d7a63424c9ae6e0fc89f8242c
msgid ""
"The group management is quite simple at the moment and consists in a group "
"name and description, and the list of its members. Group membership can be "
"use as :attr:`ACL Filter <canaille.core.configuration.ACLSettings.FILTER>` "
"to define user permissions."
msgstr ""
#: ../features.rst:63 ../features.rst:83 ../features.rst:149
#: 7b47c38d02644c89a065a8cfb094e012 766b52d4eab245d2b3f3aa8aa7e0c282
#: e0236e78322244a3841b0724694a48d3
msgid "Todo"
msgstr ""
#: ../features.rst:64 39c58580da09403bbb22cfe1d5598ce3
msgid ""
"At the moment adding an user to a group can only be achieved by the user "
"settings page, but we are :issue:`working to improve this <192>`."
msgstr ""
#: ../features.rst:66 c60fc3e5961e42758063d4367d906411
msgid ""
"Group management can be enable with a :attr:`dedicated user permission "
"<canaille.core.configuration.Permission.MANAGE_GROUPS>`."
msgstr ""
#: ../features.rst:69 a78a3715d55844b0900f9916b6f2e7b2
msgid ""
"Due to limitations in the :ref:`LDAP backend <tutorial/databases:LDAP>`, "
"groups must have at least one member. Thus it is not possible to remove the "
"last user of a group without removing the group."
msgstr ""
#: ../features.rst:75 8f7758bdc0ac4769a31161c485c1ec8e
msgid "User authentication"
msgstr ""
#: ../features.rst:77 4b2d976568b14c4688f875adf9ccc562
msgid ""
"Unless their account is :ref:`locked <feature_account_locking>`, users can "
"authenticate with a login and a password."
msgstr ""
#: ../features.rst:81 e682b2ba5dd74bdd9ffaa86d2abc9f3f
msgid ""
"For security reasons, it won't be told to users if they try to sign in with "
"an unexisting logging, unless explicitly :attr:`set in the configuration "
"<canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS>`."
msgstr ""
#: ../features.rst:83 dfc328ffe1af4b918e2192b2ed14c637
msgid ""
":ref:`LDAP backend <tutorial/databases:LDAP>` users can define which :class:"
"`user field <canaille.core.models.User>` should be used as the login (such "
"as :attr:`~canaille.core.models.User.user_name` or :attr:`~canaille.core."
"models.User.emails`) using a :attr:`configuration parameter <canaille."
"backends.ldap.configuration.LDAPSettings.USER_FILTER>`, but other backends "
"can only login using :attr:`~canaille.core.models.User.user_name`. We are :"
"issue:`working to improve this <196>`."
msgstr ""
#: ../features.rst:88 3fefd07ff8c24b16a00c2120e46e291a
msgid "User registration"
msgstr ""
#: ../features.rst:90 b18b55ebc00a442db9a09ea5a58f1a9a
msgid ""
"Users can create accounts on Canaille if the feature :attr:`registration "
"feature <canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION>` is "
"enabled. They will be able to fill a registration form with the fields "
"detailed in the default :class:`ACL settings <canaille.core.configuration."
"ACLSettings>`."
msgstr ""
#: ../features.rst:92 517379413a544000b36f09ab035a2f4b
msgid ""
"If :attr:`email confirmation <canaille.core.configuration.CoreSettings."
"EMAIL_CONFIRMATION>` is also enabled, users will be sent a confirmation link "
"to their email address, on which they will need to click in order to "
"finalize their registration."
msgstr ""
#: ../features.rst:97 ../features.rst:99 ba38afb338ce43c39b44dd7678121504
#: 037e813626fc424fa2cc303b6de32626
msgid "User invitation"
msgstr ""
#: ../features.rst:104 67a415dce2ce449ca0f56e5feb2361d0
msgid ""
"If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is "
"configured, users with :attr:`user management permission <canaille.core."
"configuration.Permission.MANAGE_USERS>` can create an invitation link for "
"one user."
msgstr ""
#: ../features.rst:106 d591d5398e774b3197cef2e740c83efd
msgid ""
"The link goes to a registration form, even if regular :ref:`user "
"registration <feature_user_registration>` is disabled."
msgstr ""
#: ../features.rst:108 aefa9516cd6d42dd8a736bc06a34fa39
msgid "It can be automatically sent by email to the new user."
msgstr ""
#: ../features.rst:113 7c82637f2cc94bbb9d331b0f22869ed0
msgid "Account locking"
msgstr ""
#: ../features.rst:115 358a5fa4e02744ed91fa6a8826130611
msgid ""
"If Canaille is plugged to a :ref:`backend <features:Backends>` that supports "
"it, user accounts can be locked by users with :attr:`user management "
"permission <canaille.core.configuration.Permission.MANAGE_USERS>`. The lock "
"date can be set instantly or at a given date in the future."
msgstr ""
#: ../features.rst:118 712ea6e2257f4ba482b7e89f2ff5c19a
msgid "At the moment a user account is locked:"
msgstr ""
#: ../features.rst:120 d681a46a4db2457cba4192322da21184
msgid "their open sessions will be closed;"
msgstr ""
#: ../features.rst:121 fdc693b1bf024fb2a7bbf3097f24d022
msgid "they won't be able to sign in again;"
msgstr ""
#: ../features.rst:122 23cd8877517d4f3c908e8ea1092dc9a6
msgid "no new OIDC token will be issued;"
msgstr ""
#: ../features.rst:124 9882d29f0007492aae9caf2506288533
msgid ""
"User accounts must be manually unlocked by an administrator for the users to "
"regain access to those actions."
msgstr ""
#: ../features.rst:129 e712f4f9b0a2427b8dccd43a4b4544d8
msgid "Account deletion"
msgstr ""
#: ../features.rst:131 81f0498b175a421da02ae969416b916f
msgid ""
"Users with the :attr:`account deletion permission <canaille.core."
"configuration.Permission.DELETE_ACCOUNT>` are allowed to delete their own "
"account."
msgstr ""
#: ../features.rst:133 2d5535359306451d834db61758cbe926
msgid ""
"Users that also have the :attr:`user management permission <canaille.core."
"configuration.Permission.MANAGE_USERS>` are also allowed to delete other "
"users accounts."
msgstr ""
#: ../features.rst:138 f6e498c86dbd4e17b624c321fecf54d1
msgid "Password recovery"
msgstr ""
#: ../features.rst:145 61f35c72876242e8bf43e9eb0d75995b
msgid ""
"If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is "
"configured and the :attr:`password recovery feature <canaille.core."
"configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY>` is enabled, then users "
"can ask for a password reset email if they cannot remember their password."
msgstr ""
#: ../features.rst:147 d4555d16bbe249b7979cbb34c57f7055
msgid ""
"The email will be sent to the email addresses filled in their profile, and "
"will contain a link that will allow them to choose a new password. ."
msgstr ""
#: ../features.rst:151 297ffc93f03d4d43b6c47646eca19f13
msgid "Check that password recovery is disabled on locked accounts."
msgstr ""
#: ../features.rst:156 2ddc03cfab5c4c31881424d5944c493c
msgid "Password reset"
msgstr ""
#: ../features.rst:158 9049c1cbc2f84041b403c388f29ad854
msgid ""
"If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is "
"configured, :attr:`user management permission <canaille.core.configuration."
"Permission.MANAGE_USERS>` can send password reset mails to users. The mails "
"contains a link that allow users to choose a new password without having to "
"retrieve the old one."
msgstr ""
#: ../features.rst:164 53795873eea346f2b2daab2be04d8fd3
msgid "Password initialization"
msgstr ""
#: ../features.rst:166 22da6b0b0f9a477098237bf75b5ffc4b
msgid ""
"User :attr:`passwords <canaille.core.models.User.password>` are optional. If "
"a :class:`mail server <canaille.core.configuration.SMTPSettings>` is "
"configured, when users with no password attempt to sign in, they are invited "
"to click a button that will send them a password initialization mail. The "
"mail contains a link that leads to a form that allows users to choose a "
"password."
msgstr ""
#: ../features.rst:173 2426c9af237c4b3ea3edf39378ee2058
msgid "Password compromission check"
msgstr ""
#: ../features.rst:175 a154a903f2f0465da6ba9cb8444bbdac
msgid ""
"If :attr:`password compromission check feature <canaille.core.configuration."
"CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK>` is enabled, Canaille will "
"check for password compromise on HIBP (https://haveibeenpwned.com/) every "
"time a new password is register. You will need to set an :attr:`admin email "
"<canaille.core.configuration.CoreSettings.ADMIN_EMAIL>`."
msgstr ""
#: ../features.rst:180 91a7eae46075432fab0f6529e0ead921
msgid "Internationalization"
msgstr ""
#: ../features.rst:182 3793ed670fe140729604efbd86ea8865
msgid "Translation state"
msgstr ""
#: ../features.rst:187 a482d12153c5462eab6e6ef518bb541e
msgid ""
"Canaile will display in your :attr:`preferred language <canaille.core.models."
"User.preferred_language>` if available, or your browser language if "
"available (and if it is not you can :ref:`help us with the translation "
"<development/contributing:Code translation>`). If you prefer, you can also :"
"attr:`force a language <canaille.core.configuration.CoreSettings.FAVICON>` "
"for every users."
msgstr ""
#: ../features.rst:193 64f68b0347c643d28ca265fa7577c95c
msgid "Lightweight"
msgstr ""
#: ../features.rst:195 c3559f4e91a74373b92d046a875eac79
msgid ""
"The web interface is lightweight, so everything should load quickly. There "
"is a few Javascript here and there to smooth the experience, but no "
"Javascript at all is needed to use Canaille."
msgstr ""
#: ../features.rst:199 21b1a787a1074ddc8ae6fe66545a181a
msgid "Customizable"
msgstr ""
#: ../features.rst:201 d7748aa3f91b475ebed5edb2d35f759b
msgid ""
"The default theme should be good enough for most usages. It has a dark "
"theme, display well on mobile, and let you choose a :attr:`logo <canaille."
"core.configuration.CoreSettings.LOGO>` and a :attr:`favicon <canaille.core."
"configuration.CoreSettings.FAVICON>`."
msgstr ""
#: ../features.rst:204 5fe5c111cd0f4d3ca2a8e7ca01ef43c6
msgid ""
"If you need more you can also use a :attr:`custom theme <canaille.core."
"configuration.CoreSettings.THEME>`."
msgstr ""
#: ../features.rst:209 6fb933f34307459880de26e3d0f76c6a
msgid "OpenID Connect"
msgstr ""
#: ../features.rst:211 bd2005e331d64c979880b847a8fa5a6f
msgid ""
"Canaille implements a :ref:`subset<development/specifications:State of the "
"specs in Canaille>` of the OAuth2/OpenID Connect specifications . This "
"allows to provide :abbr:`SSO (Single Sign-On)` and :abbr:`SLO (Single Log-"
"On)` to applications plugged to Canaille."
msgstr ""
#: ../features.rst:215 3235a6f44bd444d38fd7581ffdeadd6a
msgid "Consent management"
msgstr ""
#: ../features.rst:223 168e125d08c041a79098cb1bfa3d13e9
msgid ""
"Users can give their consent to application requesting access to their "
"personal information, and then revoke those consent at their will."
msgstr ""
#: ../features.rst:227 aa606f0a64b84ebdb4e29bee96f4b414
msgid "Application management"
msgstr ""
#: ../features.rst:229 eaa719c553584eb6954da4d45778454b
msgid ""
"Users with the right :attr:`permission <canaille.core.configuration."
"Permission.MANAGE_OIDC>` can manager OIDC clients through the web interface."
msgstr ""
#: ../features.rst:231 9256e6eaf7174fa8a4e7347cd03b6ac8
msgid ""
"In some cases, it might be useful to avoid the consent page for some trusted "
"applications, so clients can be pre-consented."
msgstr ""
#: ../features.rst:234 3faf6b2661f3434bbca8b2aaa9b7d6d7
msgid "Discovery"
msgstr ""
#: ../features.rst:236 e935be55bc964a48a582e36f9791c15a
msgid ""
"Canaille implements the :doc:`Discovery specifications <development/"
"specifications>` so most of the applications plugged to Canaille can auto-"
"configure themselves."
msgstr ""
#: ../features.rst:239 695ba3a2a77640908c9f4d2f02a4f8b2
msgid "Dynamic Client Registration"
msgstr ""
#: ../features.rst:241 43c52faa27c84af18f3ada9bffe6d19d
msgid ""
"Canaille implements the :doc:`Dynamic Client Registration specifications "
"<development/specifications>`, so when the :attr:`feature is enabled "
"<canaille.oidc.configuration.OIDCSettings."
"DYNAMIC_CLIENT_REGISTRATION_OPEN>`, clients can register themselves on "
"Canaille without an administrator intervention."
msgstr ""
#: ../features.rst:246 f8ce532f519349f48429c1b170cdb484
msgid "Command Line Interface"
msgstr ""
#: ../features.rst:248 2f40208e5c1347a48420317d62aaa74d
msgid ""
"Canaille comes with a :abbr:`CLI (Command Line Interface)` to help "
"administrators in hosting and management."
msgstr ""
#: ../features.rst:250 f29e92c5ddaf47ce9483715190c894bb
msgid ""
"There are tools to :ref:`check your configuration <cli_check>` or to :ref:"
"`install missing parts <cli_install>`. You can use the CLI to :ref:`create "
"<cli_create>`, :ref:`read <cli_get>`, :ref:`update <cli_set>` and :ref:"
"`delete <cli_delete>` models such as :class:`users <canaille.core.models."
"User>`, :class:`groups <canaille.core.models.Group>` or :class:`OIDC "
"clients <canaille.oidc.basemodels.Client>`."
msgstr ""
#: ../features.rst:253 22885696b0da40219dbbabf940320082
msgid ""
"There are also tools to :ref:`fill your database <cli_populate>` with random "
"objects, for tests purpose for instance."
msgstr ""
#: ../features.rst:258 a094d21d84254528a930c248f4a593b4
msgid "Backends"
msgstr ""
#: ../features.rst:260 7fb43b7df88a4baea1dfda09d24dffcd
msgid ""
"Canaille can handle data from the most :ref:`common SQL databases <tutorial/"
"databases:SQL>` such as PostgreSQL, MariaDB or SQLite, as well as :ref:"
"`OpenLDAP <tutorial/databases:LDAP>`. It also comes with a no-dependency :"
"ref:`in-memory database <tutorial/databases:Memory>` that can be used in "
"unit tests suites."
msgstr ""
#: ../features.rst:264 df7ac02ac2a945069ee389b77b9b5a6b
msgid "Miscellaneous"
msgstr ""
#: ../features.rst:269 bf688d8476c643a68687292de9336a89
msgid "Logging"
msgstr ""
#: ../features.rst:271 38d1832a542446019b042e1f939b488f
msgid ""
"Canaille writes :attr:`logs <canaille.core.configuration.CoreSettings."
"LOGGING>` for every important event happening, to help administrators "
"understand what is going on and debug funky situations."
msgstr ""
#: ../features.rst:273 42a168890026463880fcc0464d7e681a
msgid ""
"The following security events are logged with the tag [SECURITY] for easy "
"retrieval :"
msgstr ""
#: ../features.rst:275 7876d69b9324404c8b5d6b8211f22a38
msgid "Authentication attempt"
msgstr ""
#: ../features.rst:276 5fc6499706b74b38a3bcc4d328a4267f
msgid "Password update"
msgstr ""
#: ../features.rst:277 59baea279a0444c7a03276f643a9a546
msgid "Email update"
msgstr ""
#: ../features.rst:278 316b8f1a64d0492a89a3a3165985ad5b
msgid "Forgotten password mail sent to user"
msgstr ""
#: ../features.rst:279 d7b3795158de483783e4c7ee82348b46
msgid "Token emission"
msgstr ""
#: ../features.rst:280 5e4175d55093488c8125b636c395129c
msgid "Token refresh"
msgstr ""
#: ../features.rst:281 6dbf275ffef842c1bc6f3bb0989af951
msgid "Token revokation"
msgstr ""
#: ../features.rst:282 aefb033cc70946629968cda2c5659143
msgid "New consent given for client application"
msgstr ""
#: ../features.rst:283 bdd21f6ee436441db570665db0c47242
msgid "Consent revokation"
msgstr ""
#: ../features.rst:288 1665d88722ec4f1bb7686957622bb5d1
msgid "A tool for your development and tests"
msgstr ""
#: ../features.rst:290 1bdff890d0da4b7aa3b3df7a1270068e
msgid ""
"Thanks to its lightweight :ref:`in-memory database <tutorial/databases:"
"Memory>` and its curated :ref:`dependency list <tutorial/install:Get the "
"code>`, Canaille can be used in the unit test suite of your application, so "
"you can check how it behaves against a real world OpenID Connect server. If "
"you work with python you might want to check :doc:`pytest-iam:index`."
msgstr ""
#: ../features.rst:292 466b386bf92b499696f22cf6f9889b22
msgid ""
"It can also being launched in your development environment, if you find that "
"launching a Keycloak in a Docker container is too heavy for your little web "
"application."
msgstr ""
#: ../features.rst:294 02bd7bfe0c194ca2a4ed5b305d64174d
msgid ""
"It also fits well in continuous integration scenarios. Thanks to its :ref:"
"`CLI <feature_cli>`, you can prepare data in Canaille, let your application "
"interact with it, and then check the side effects."
msgstr ""
#: ../features.rst:297 e0c00b45559342139b38b56d45c12df5
msgid "Roadmap"
msgstr ""
#: ../features.rst:300 889eb75d6c2f4c2fb2491c38b16c2cd5
msgid "Bêta version"
msgstr ""
#: ../features.rst:302 e4634fcad59b43549f2ac5d023fe25da
msgid ""
"To go out of the current Alpha version we want to achieve the following "
"tasks:"
msgstr ""
#: ../features.rst:304 c24037d78a274d81a945064251654805
msgid ":issue:`Configuration validation using pydantic <138>`"
msgstr ""
#: ../features.rst:307 1a8941a892c041c98e2bdfe731944341
msgid "Stable version"
msgstr ""
#: ../features.rst:309 8bcca1796eb34ea39311fadde971e5df
msgid ""
"Before we push Canaille in stable version we want to achieve the following "
"tasks:"
msgstr ""
#: ../features.rst:312 429e891c2c4a41d9882840e8901807c2
msgid "Security"
msgstr ""
#: ../features.rst:314 99812b3d9e054b92829a1d06207fd56f
msgid ":issue:`Password hashing configuration <175>`"
msgstr ""
#: ../features.rst:315 5fc38e63289c4376aafefbdae1d08ad1
msgid ":issue:`Authentication logging policy <177>`"
msgstr ""
#: ../features.rst:316 172f15d0a07a475495af94228857aa19
msgid ":issue:`Intruder lockout <173>`"
msgstr ""
#: ../features.rst:317 7413890a044d4860a69e304c463b2075
msgid ":issue:`Password expiry policy <176>`"
msgstr ""
#: ../features.rst:318 1af8ce062a2f49dea0719295031dac36
msgid ":issue:`Multi-factor authentication: Email <47>`"
msgstr ""
#: ../features.rst:319 559b8aac8ec1464e9de0fc12d7cef1e3
msgid ":issue:`Multi-factor authentication: SMS <47>`"
msgstr ""
#: ../features.rst:320 0fa5c83275464d2daef9a61ff962068f
msgid ":issue:`Multi-factor authentication: OTP <47>`"
msgstr ""
#: ../features.rst:323 80a148a15619443f96604259f8ce7936
msgid "Packaging"
msgstr ""
#: ../features.rst:325 783c51aa863f4dc694f5e51d8a364d62
msgid ":issue:`Nix package <190>`"
msgstr ""
#: ../features.rst:326 22df588b38954d95ba47de753196bbbd
msgid ":issue:`Docker / OCI package <59>`"
msgstr ""
#: ../features.rst:329 4e6d78ec6bcf49e3aebeae146bd874b1
msgid "And beyond"
msgstr ""
#: ../features.rst:331 851c474a5f55472bb69e0980e85d2c53
msgid ":issue:`OpenID Connect certification <182>`"
msgstr ""
#: ../features.rst:332 ea230b81c9854692a1fe56d26fe831ba
msgid ":issue:`SCIM support <116>`"
msgstr ""

View file

@ -1,93 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/index.rst:15 f44fd8eed33248cb86e37736bd2c9a51
msgid "Lightweight Identity and Authorization Management"
msgstr "Serveur didentité et d'autorisations ultra-léger"
#: ../../doc/index.rst:19 581631e22f4e47098270d48215814ba8
msgid ""
"**Canaille** is a French word meaning *rascal*. It is roughly pronounced "
"**Can I?**, as in *Can I access your data?* Canaille is a lightweight "
"identity and authorization management software. It aims to be very light,"
" simple to install and simple to maintain. Its main features are :"
msgstr ""
#: ../../doc/index.rst:27 d5af5012db4f40efae832c81859a8dc4
msgid "Profile management"
msgstr ""
#: ../../doc/index.rst:31 6a7f0738d1414a18b39ca620be9d7e71
msgid "User profile and groups management, Basic permissions"
msgstr ""
#: ../../doc/index.rst:34 339b2e015a9442ebbf5e94747fcc6250
msgid "User authentication"
msgstr ""
#: ../../doc/index.rst:38 e049fc56882742a2ad91c734bda3472b
msgid ""
"Authentication, registration, email confirmation, \"I forgot my "
"password\" emails"
msgstr ""
#: ../../doc/index.rst:40 b1062145a9da47fdb6c68e6d6f69c034
msgid "SSO"
msgstr ""
#: ../../doc/index.rst:44 9b17b5386fca4972bc24ee5990cfa994
msgid "OpenID Connect identity provider"
msgstr ""
#: ../../doc/index.rst:46 e0788c1957c64cf2908e69ad503ada1e
msgid "Multi-database support"
msgstr ""
#: ../../doc/index.rst:50 0e63c7d9785447b4aae14b4464f1d0f8
msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship"
msgstr ""
#: ../../doc/index.rst:52 0e935d0e908a4b2dae80193f7e4f9434
msgid "Customization"
msgstr ""
#: ../../doc/index.rst:56 50f5dc14580f4f2db4e8c307c031c3e2
msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!"
msgstr ""
#: ../../doc/index.rst:58 9e5106a0e8874b16b7a1031cb7b266e5
msgid "Developers friendliness"
msgstr ""
#: ../../doc/index.rst:62 dc6773fa0ab4474181277ecdaaafc2e8
msgid ""
"Canaille can easily fit in your unit tests suite or in your Continuous "
"Integration."
msgstr ""
#: ../../doc/index.rst:66 69e3bf94cb39467d9d0836d73de77f58
msgid ":doc:`Full feature list <features>`"
msgstr ""
#: ../../doc/index.rst:70 f8d60881cb6d4f59ad97ea3d7b740de5
msgid "Documentation"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -1,311 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/references/commands.rst:2 79e6ecda0d3e4c18b9b9b417a389b4cb
msgid "Command Line Interface"
msgstr ""
#: ../../doc/references/commands.rst:4 9d92776c255b4bd98f31a1e55303f2c2
msgid "Canaille provide several commands to help administrator manage their data."
msgstr ""
#: ../../doc/references/commands.rst:6 4124b08c4d9e46c39b25f48fff75606a
msgid ""
"Generally, some configuration has to be loaded by `Canaille`. This can be"
" achieved by :ref:`configuration loading "
"method<references/configuration:Load the configuration>` available, but "
"most of the time a ``CONFIG`` environment variable is used. For the sake "
"of readability, it is omitted in the following examples."
msgstr ""
#: ../../canaille check:1 fe035debad4349ad97133f817e05f703
msgid "Test the configuration file."
msgstr ""
#: ../../canaille 3d4649c5c9cc41918f8263ce8808e473 check:1
msgid ""
"Attempt to reach the database and the SMTP server with the provided "
"credentials."
msgstr ""
#: ../../canaille 7d43179f511a41cd8e5037f050b1bc73 clean:1
msgid "Remove expired tokens and authorization codes."
msgstr ""
#: ../../canaille c5179a4168584d4487e447b07141c8f8 install:1
msgid "Installs canaille elements from the configuration."
msgstr ""
#: ../../canaille 37a2c93192c64aa5b19e75182e6bc5a5 install:1
msgid ""
"For instance, depending on the configuration, this can generate OIDC keys"
" or install LDAP schemas."
msgstr ""
#: ../../canaille 29c1126336174fa6989f6650df1f5d09 populate:1
msgid "Populate the database with generated random data."
msgstr ""
#: ../../doc/references/commands.rst 01f8ff3528de431a88eea102b8797e7d
#: 0592f7e20b87434db4aa021da5f46692 0b6dba38e2014e63bf00357d20bc7090
#: 3e812f2b794c4b4ab8dd50cea6e94d42 4bd5821660f0430e94aa55dc1b4e18bf
#: 4ede76eac0e943d48a95e719582c4c7e 56b6c7dc334d4eb79d9e667cea4c59e6
#: 5824aa3a83454d8799d3933f5b25c27e 596cf8bccead4e28907f3d3eca3cd4b0
#: 72b8362317ce4b5eab571c3bf28f4a90 a865ef7184a646eea2b6760e9f29635b
#: bc6c5f3613204ab9951d4eb4d92efe52 bcd6ff856c2a4f618a392d00f0e35a7b
#: bf91d423757e4aa88cae8d8ce725a870 c03af85a8f1f4bada70f68c4978c24a5
#: c05e937c532343f890e5d9b595c514d9 c144ca410af44d17bd266c5cc2b10a63
#: c96f475202f5459e9fc2854294123e16 e8955b6bee0a454b878b800bceb8265b
#: f2e7bd0e830c4413aa6b8bb93d3ac544
msgid "Options"
msgstr ""
#: ../../canaille dc6b03e91fec490e83c3f487429b951d populate:1
msgid "Number of items to create"
msgstr ""
#: ../../canaille 8ab372ad5eff478e8ee32726f43a1164 groups:1 populate
msgid "Populate the database with generated random groups."
msgstr ""
#: ../../canaille f7ca835723334ea3be4456346e751dd6 groups:1 populate
msgid "The maximum number of users that will randomly be affected in the group"
msgstr ""
#: ../../canaille 8f253323342c4bf690e86f8362567d41 populate users:1
msgid "Populate the database with generated random users."
msgstr ""
#: ../../canaille 032913c6c4364d9a99e52f972c5cc17a get:1
msgid "Read information about models."
msgstr ""
#: ../../canaille 72d8a0d9271847d7ae3a859791220a2c get:1
msgid "Options can be used to filter models::"
msgstr ""
#: ../../canaille f89e83d713814caa9f964a2fca51b72c get:1
msgid "Displays the matching models in JSON format in the standard output."
msgstr ""
#: ../../canaille authorizationcode:1 d8204c526181466c82f53e6d657030e7 get
msgid "Search for authorizationcodes and display the matching models as JSON."
msgstr ""
#: ../../canaille 3cade804c31f45adbc441a028fecea53 client:1 get
msgid "Search for clients and display the matching models as JSON."
msgstr ""
#: ../../canaille 5a310b9dc8c54416be6b9cb1902f1fb1 consent:1 get
msgid "Search for consents and display the matching models as JSON."
msgstr ""
#: ../../canaille b4441bed2f8a4eeabc0fc8837ec4f562 get group:1
msgid "Search for groups and display the matching models as JSON."
msgstr ""
#: ../../canaille 2f246dd55eeb4aba85c1bd9d369e32df get token:1
msgid "Search for tokens and display the matching models as JSON."
msgstr ""
#: ../../canaille bf1fa67a2cb24b53870f7555e3a52c31 get user:1
msgid "Search for users and display the matching models as JSON."
msgstr ""
#: ../../canaille eb6cf5e3bc2b4cde8b871663dba45e61 set:1
msgid "Update models."
msgstr ""
#: ../../canaille 30b5f0a8217a4189b10d478341f36a49 set:1
msgid "The command takes an model ID and edit one or several attributes::"
msgstr ""
#: ../../canaille bd9373e888e1406099374c0b39b84e77 set:1
msgid "Displays the edited model in JSON format in the standard output."
msgstr ""
#: ../../canaille 174abc887df24f20a9dda2fac77e83fd authorizationcode:1 set
msgid ""
"Update a authorizationcode and display the edited model in JSON format in"
" the standard output."
msgstr ""
#: ../../canaille 422c813aa96a482283f24025efb8c3dd
#: 4ec9af7edd2b47169b518fda3d644639 authorizationcode:1 delete set
msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id"
msgstr ""
#: ../../doc/references/commands.rst 5f75b0309d054441a56f4b8517fdbe3d
#: 5fc02ea2e414430a8b545cf34cd4453f 78a39bec9e344a1d8fa33d34d8bac7fd
#: 80d369775bf8495f9fd82b9d0ae34e0c 957a9b7287574e26be67a8835aefb32f
#: c0a17fc3ce6e4932b3715323278dbffb c347665d49e348b5bab1c576ed8596b7
#: de203337a1ca4e09a9d879e05e1ed654 e2ec38929dcd43339b75733e16f0033b
#: e4215c7686ed4a17bca187aeb2a0b172 ec2907c65c0c4cb8a89d7552c43cf700
#: f1fc2a35ac44482cb9e364ddabcc3ea5
msgid "Arguments"
msgstr ""
#: ../../canaille 05ce73b0a8364dde9c6119f04b24f944
#: 12289768135e424dbbdc2b566466500c 13ba6cfe3b3d49b8bb81020a72f91d61
#: 311ea807815b4e35b5cae0b6d6083fcc 3fba64605a8e42a39976bf717dcd10f3
#: 89214791cafa4d1dac6bd3ec1fa631fb 9460e7a6cf094a76bf2fb1cd252c3a7c
#: aac6d7361cd844f1b423545d4a4e68cd authorizationcode:1
#: c7a234cf435343a79bfed973e7631d2b client:1 consent:1
#: d3ded9fbefc34521a5c7b04dbcd26be4 delete e0e6897cdfd54ddcbdefd9ca5cad1bb9
#: edacde43739b441cb3618d8c01220e44 group:1 set token:1 user:1
msgid "Required argument"
msgstr ""
#: ../../canaille ac7fcd06851b40afbb06398602fa62ba client:1 set
msgid ""
"Update a client and display the edited model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille 369ef3a35a95428687da84c178c248ed
#: b62f8cbd9dc447329c3d5176f4571aad client:1 delete set
msgid "IDENTIFIER should be a client id or client_id"
msgstr ""
#: ../../canaille 632ddaea2a594d14ab976c383702313a consent:1 set
msgid ""
"Update a consent and display the edited model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille 602b6168c8654e63b36abab9c7ba5f9c consent:1
#: d1dd6d8fa58c4836a8f836a32c189eff delete set
msgid "IDENTIFIER should be a consent id or consent_id"
msgstr ""
#: ../../canaille bf18f7ffebd74d508d604b4fd0a8599e group:1 set
msgid ""
"Update a group and display the edited model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille 62cac2ffd5384b8685460ee652f347b0
#: 7a3a74db760a4ffe86925454e6967075 delete group:1 set
msgid "IDENTIFIER should be a group id or display_name"
msgstr ""
#: ../../canaille 7a1167bf7b1f49f39eaac26d9a9b57e4 set token:1
msgid ""
"Update a token and display the edited model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille 3e08125cc6894a05a0bde0f9495466b3
#: 9aaa82a936274b02bfb5f9beae6fc170 delete set token:1
msgid "IDENTIFIER should be a token id or token_id"
msgstr ""
#: ../../canaille f6b67c6e64e246058860790f13d2b963 set user:1
msgid ""
"Update a user and display the edited model in JSON format in the standard"
" output."
msgstr ""
#: ../../canaille 3235eea8dafc45ceac129398063d9e12
#: 6ec8598e7e844b85b89e8fba32cd9bc4 delete set user:1
msgid "IDENTIFIER should be a user id or user_name"
msgstr ""
#: ../../canaille b37439a748eb43f1807c351b27b68710 create:1
msgid "Create models."
msgstr ""
#: ../../canaille 9a254a69b81d4406aaf38ee889f8d053 create:1
msgid "The model attributes can be passed as command options::"
msgstr ""
#: ../../canaille a1021d5959534ac08c198e3a7c69d44d create:1
msgid "Displays the created model in JSON format in the standard output."
msgstr ""
#: ../../canaille authorizationcode:1 b09ba6722fef4240acc4d8412d36c76a create
msgid ""
"Create a new authorizationcode and display the created model in JSON "
"format in the standard output."
msgstr ""
#: ../../canaille 22a13bf732564e8fa9d9c3e363d3eb77 client:1 create
msgid ""
"Create a new client and display the created model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille 904ef9f6463d4745920450a1ed807562 consent:1 create
msgid ""
"Create a new consent and display the created model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille create d2b8f57503534155be249fac5f9a5aed group:1
msgid ""
"Create a new group and display the created model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille 27ad14949f284173bc1163c32372465a create token:1
msgid ""
"Create a new token and display the created model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille 2193f06fa847408780c7f7316641c7a6 create user:1
msgid ""
"Create a new user and display the created model in JSON format in the "
"standard output."
msgstr ""
#: ../../canaille da2a6c5ad512466aa6abb26f351337d3 delete:1
msgid "Delete models."
msgstr ""
#: ../../canaille 1ff4ff3017cd43c3a3edab341ab42cd0 delete:1
msgid "The command takes a model ID and deletes it::"
msgstr ""
#: ../../canaille 9ef5b7a1d4864bd0bf33e819771c7850 authorizationcode:1 delete
msgid "Delete a authorizationcode."
msgstr ""
#: ../../canaille client:1 delete f5b20435029c47a29b2ab3e8cfd6ccdb
msgid "Delete a client."
msgstr ""
#: ../../canaille 0a84345b85084835b5cfc942f94f174a consent:1 delete
msgid "Delete a consent."
msgstr ""
#: ../../canaille d1a17434dbb747b1b98de64fee67a8fc delete group:1
msgid "Delete a group."
msgstr ""
#: ../../canaille 975139d084dd4d2fa4d6ac65bd1e3691 delete token:1
msgid "Delete a token."
msgstr ""
#: ../../canaille 10221b77423d4f309639da451e19f99f delete user:1
msgid "Delete a user."
msgstr ""

View file

@ -1,836 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/references/configuration.rst:2 424d05c383324277a800335820e3fa6e
msgid "Configuration"
msgstr ""
#: ../../doc/references/configuration.rst:5 5d68e755dda14103904b8038717bb5b4
msgid "Load the configuration"
msgstr ""
#: ../../doc/references/configuration.rst:7 3138a09755a046a286748b624585f456
msgid ""
"Canaille can be configured either by a environment variables, environment"
" file, or by a configuration file."
msgstr ""
#: ../../doc/references/configuration.rst:10 967fe546c7f64dffbed7e7ecbe6a425f
msgid "Configuration file"
msgstr ""
#: ../../doc/references/configuration.rst:12 c60e21f322d14a3d8df3a5f80650198a
msgid ""
"The configuration can be written in `toml` configuration file which path "
"is passed in the :envvar:`CONFIG` environment variable."
msgstr ""
#: ../../doc/references/configuration.rst:14
#: ../../doc/references/configuration.rst:85 5598260f6347465c9a7f8818cb9d5a76
#: c43d890510d8485fac81e8a1b72b9152 canaille.app.configuration.RootSettings:11
#: e7e0deef51b24803a825cee5f2feeb6b of
msgid "config.toml"
msgstr ""
#: ../../doc/references/configuration.rst:26 c223295f61c54f9eb7a25d9ec52a5a1e
msgid ""
"You can have a look at the :ref:`example file "
"<references/configuration:Example file>` for inspiration."
msgstr ""
#: ../../doc/references/configuration.rst:29 1cf9a6f193e74d718c0dbea6ab02b7e5
msgid "Environment variables"
msgstr ""
#: ../../doc/references/configuration.rst:31 21e22f7bcf484969bb578f6c6842a210
msgid ""
"In addition, parameters that have not been set in the configuration file "
"can be read from environment variables. The way environment variables are"
" parsed can be read from the `pydantic-settings documentation "
"<https://docs.pydantic.dev/latest/concepts/pydantic_settings/#parsing-"
"environment-variable-values>`_."
msgstr ""
#: ../../doc/references/configuration.rst:36 3e3b489d0d0f4fdebf21bf4c4418422b
msgid ""
"For environment vars, the separator between sections and variables is a "
"double underscore: ``__``. For instance, the ``NAME`` var in the "
"``CANAILLE`` section shown above is ``CANAILLE__NAME``."
msgstr ""
#: ../../doc/references/configuration.rst:40 bffb0a7bf9184ca092bd7f06798b5ed7
msgid "Environment file"
msgstr ""
#: ../../doc/references/configuration.rst:42 79fb1890082d49969ca45b0b243c537c
msgid ""
"Any environment variable can also be written in a ``.env``, and will be "
"read if present."
msgstr ""
#: ../../doc/references/configuration.rst:44 b9fc48127af945bda804aba757d7b7dd
msgid ".env"
msgstr ""
#: ../../doc/references/configuration.rst:62 e16e03560b974996b92551623c3a4728
msgid "Parameters"
msgstr ""
#: 8c93b32620244c1c89cca6d261768a39 canaille.app.configuration.RootSettings:1
#: of
msgid ""
"The top-level namespace contains holds the configuration settings "
"unrelated to Canaille."
msgstr ""
#: bdff9ee3326e47838fa870fa10d24a4a canaille.app.configuration.RootSettings:4
#: of
msgid "The configuration paramateres from the following libraries can be used:"
msgstr ""
#: 0048354dd402460d9058c80014afc3a8 canaille.app.configuration.RootSettings:6
#: of
msgid ":doc:`Flask <flask:config>`"
msgstr ""
#: 97eef56c269a4976af0d8331d4028832 canaille.app.configuration.RootSettings:7
#: of
msgid ":doc:`Flask-WTF <flask-wtf:config>`"
msgstr ""
#: 980d5034607445a8936e13289adb634a canaille.app.configuration.RootSettings:8
#: of
msgid ":doc:`Flask-Babel <flask-babel:index>`"
msgstr ""
#: b04bbf26f86c49539b0378da858e25c0 canaille.app.configuration.RootSettings:9
#: of
msgid ":doc:`Authlib <authlib:flask/2/authorization-server>`"
msgstr ""
#: ../../docstring canaille.app.configuration.RootSettings.DEBUG:1
#: d2a0d7c0762940079150f885dec0d0e7 of
msgid "The Flask :external:py:data:`DEBUG` configuration setting."
msgstr ""
#: ../../docstring 655fe302f2244cae8d4f7507b9bcf5ee
#: canaille.app.configuration.RootSettings.DEBUG:3 of
msgid "This enables debug options."
msgstr ""
#: ../../docstring 38930315245e43c8a21dea835f70de8a
#: canaille.app.configuration.RootSettings.DEBUG:7 of
msgid ""
"This is useful for development but should be absolutely avoided in "
"production environments."
msgstr ""
#: ../../docstring be190939a5b8407abc8051d973470b00
#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 of
msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting."
msgstr ""
#: ../../docstring 8f1c5830bb7a4049a19023e8c78e2868
#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 of
msgid "This sets the url scheme by which canaille will be served."
msgstr ""
#: ../../docstring b8116a14c0634f37a438a279518faf1b
#: canaille.app.configuration.RootSettings.SECRET_KEY:1 of
msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting."
msgstr ""
#: ../../docstring 7899131820fe46ea8de0a235b307ab42
#: canaille.app.configuration.RootSettings.SECRET_KEY:3 of
msgid "You MUST change this."
msgstr ""
#: ../../docstring 625463c6bbe848c7977af2a13d58865e
#: canaille.app.configuration.RootSettings.SERVER_NAME:1 of
msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting."
msgstr ""
#: ../../docstring 06598651788843eebda0b59e8eb7b2b1
#: canaille.app.configuration.RootSettings.SERVER_NAME:3 of
msgid "This sets domain name on which canaille will be served."
msgstr ""
#: 1c4603a9300b4baabfe80ba792d3e79a canaille.core.configuration.CoreSettings:1
#: of
msgid "The settings from the ``CANAILLE`` namespace."
msgstr ""
#: 84c7ae7efa5a47ad8789a59aa453354a canaille.core.configuration.CoreSettings:3
#: of
msgid ""
"Those are all the configuration parameters that controls the behavior of "
"Canaille."
msgstr ""
#: ../../docstring 9ddde712539a484d8d84b470795d5ea1
#: canaille.core.configuration.CoreSettings.ACL:1 of
msgid "Mapping of permission groups. See :class:`ACLSettings` for more details."
msgstr ""
#: ../../docstring 8cc6440505154248a19225a38dfa7d32
#: canaille.core.configuration.CoreSettings.ACL:3 of
msgid "The ACL name can be freely chosen. For example::"
msgstr ""
#: ../../docstring canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1
#: f6c14e52ce8f4c00834507e6f4274b8f of
msgid "Administration email contact."
msgstr ""
#: ../../docstring c7ab87c0bfb34fc8b97870bbe1299631
#: canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 of
msgid ""
"In certain special cases (example : questioning about password "
"corruption), it is necessary to provide an administration contact email."
msgstr ""
#: ../../docstring 314eab36d7294cf0a47ed00aa7c84a0c
#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 of
msgid ""
"If :py:data:`True`, users will need to click on a confirmation link sent "
"by email when they want to add a new email."
msgstr ""
#: ../../docstring b9c54b77527e411a8e1c313cd18ae3b2
#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 of
msgid ""
"By default, this is true if ``SMTP`` is configured, else this is false. "
"If explicitly set to true and ``SMTP`` is disabled, the email field will "
"be read-only."
msgstr ""
#: ../../docstring 9bd6dc224f794a3ab0af54733e45102c
#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1
#: of
msgid ""
"If :py:data:`True`, Canaille will check if passwords appears in "
"compromission databases such as `HIBP <https://haveibeenpwned.com>`_ when"
" users choose a new one."
msgstr ""
#: ../../docstring 4f2a32a147fd4df48e723c7b7cda2c2b
#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 of
msgid ""
"If :py:data:`False`, then users cannot ask for a password recovery link "
"by email."
msgstr ""
#: ../../docstring b40754c5a7354a7c8105ef95608cf381
#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 of
msgid ""
"If :py:data:`True`, then users can freely create an account at this "
"instance."
msgstr ""
#: ../../docstring 02798211a1944569b105076267bc34c9
#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 of
msgid ""
"If email verification is available, users must confirm their email before"
" the account is created."
msgstr ""
#: ../../docstring 3c2cbc6dbe0d4ba9acb99c6fd93ef0f9
#: canaille.core.configuration.CoreSettings.FAVICON:1 of
msgid "You favicon."
msgstr ""
#: ../../docstring 88c7ad9cd97949129cb8b2e58a149fc9
#: canaille.core.configuration.CoreSettings.FAVICON:3 of
msgid "If unset and :attr:`LOGO` is set, then the logo will be used."
msgstr ""
#: ../../docstring add94b3b94144337b44f24a644cc1430
#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1 of
msgid ""
"If :py:data:`True`, when users try to sign in with an invalid login, a "
"message is shown indicating that the password is wrong, but does not give"
" a clue whether the login exists or not."
msgstr ""
#: ../../docstring
#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5
#: dcfa98e306544b75973c667a9944d89a of
msgid ""
"If :py:data:`False`, when a user tries to sign in with an invalid login, "
"a message is shown indicating that the login does not exist."
msgstr ""
#: ../../docstring c1590e635df24e1486be1e562a5b0034
#: canaille.core.configuration.CoreSettings.HTMX:1 of
msgid "Accelerates webpages loading with asynchronous requests."
msgstr ""
#: ../../docstring 35b5c6a840a047cc87fa606818c7e7f4
#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 of
msgid "The validity duration of registration invitations, in seconds."
msgstr ""
#: ../../docstring
#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3
#: f61374773e154a55ad905df27019923d of
msgid "Defaults to 2 days."
msgstr ""
#: ../../docstring bd6c3be93bda402092ac6f3cfca24265
#: canaille.core.configuration.CoreSettings.JAVASCRIPT:1 of
msgid "Enables Javascript to smooth the user experience."
msgstr ""
#: ../../docstring 08e45b94110845a6a2cf237d5dd01508
#: canaille.core.configuration.CoreSettings.LANGUAGE:1 of
msgid "If a language code is set, it will be used for every user."
msgstr ""
#: ../../docstring 124a41b6ceeb47e3b952d23619d85139
#: canaille.core.configuration.CoreSettings.LANGUAGE:3 of
msgid "If unset, the language is guessed according to the users browser."
msgstr ""
#: ../../docstring 40ed5d3d85104c57a1b384eeb7aaef40
#: canaille.core.configuration.CoreSettings.LOGGING:1 of
msgid ""
"Configures the logging output using the python logging configuration "
"format:"
msgstr ""
#: ../../docstring 4df8127b60254f5bb0cc247c30469d27
#: canaille.core.configuration.CoreSettings.LOGGING:3 of
msgid ""
"if :py:data:`None`, everything is logged in the standard error output the"
" log level is :py:data:`~logging.DEBUG` if the "
":attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is "
":py:data:`True`, else this is :py:data:`~logging.INFO`"
msgstr ""
#: ../../docstring 03db8dc130ad49e8b59d79e0f6aa9154
#: canaille.core.configuration.CoreSettings.LOGGING:6 of
msgid ""
"if this is a :class:`dict`, it is passed to "
":func:`logging.config.dictConfig`:"
msgstr ""
#: ../../docstring canaille.core.configuration.CoreSettings.LOGGING:7
#: f00409f6957e42c29f599a74667becb2 of
msgid ""
"if this is a :class:`str`, it is expected to be a file path that will be "
"passed to :func:`logging.config.fileConfig`"
msgstr ""
#: ../../docstring canaille.core.configuration.CoreSettings.LOGGING:10
#: f45e3f7a67724ea9882d55fa6b07d3f6 of
msgid "For example::"
msgstr ""
#: ../../docstring 23d3cf2c128d44fa8b149a6b3548a302
#: canaille.core.configuration.CoreSettings.LOGO:1 of
msgid ""
"The logo of your organization, this is useful to make your organization "
"recognizable on login screens."
msgstr ""
#: ../../docstring 6279cd5aa6ba484493c72cc708780ff2
#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 of
msgid "Maximum length for user password."
msgstr ""
#: ../../docstring 6dda33511f5c41249a65ba949f5f422f
#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 of
msgid ""
"There is a technical limit with passlib used by sql database of 4096 "
"characters. If the value entered is 0 or None, or greater than 4096, then"
" 4096 will be retained."
msgstr ""
#: ../../docstring 8a907f495b1c4e059084f17f24bac4ac
#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 of
msgid "Minimum length for user password."
msgstr ""
#: ../../docstring 78c7324a8e4f4cca974dfea5be0fc93d
#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 of
msgid "It is possible not to set a minimum, by entering None or 0."
msgstr ""
#: ../../docstring b0bea46879234cb8a42cefca791fbb65
#: canaille.core.configuration.CoreSettings.NAME:1 of
msgid "Your organization name."
msgstr ""
#: ../../docstring c821d6608be5485fa7c3b9574007b964
#: canaille.core.configuration.CoreSettings.NAME:3 of
msgid "Used for display purpose."
msgstr ""
#: ../../docstring c53cf47a679b4844925c70c352dea0bf
#: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1
#: of
msgid "Have i been pwned api url for compromission checks."
msgstr ""
#: ../../docstring 9990747398ac4f5895282ab305c072dc
#: canaille.core.configuration.CoreSettings.SENTRY_DSN:1 of
msgid "A `Sentry <https://sentry.io>`_ DSN to collect the exceptions."
msgstr ""
#: ../../docstring 790c865da20f435aa1be69714403de01
#: canaille.core.configuration.CoreSettings.SENTRY_DSN:3 of
msgid "This is useful for tracking errors in test and production environments."
msgstr ""
#: ../../docstring 85951eb2b027483eba736e336af20f81
#: canaille.core.configuration.CoreSettings.SMTP:1 of
msgid "The settings related to SMTP and mail configuration."
msgstr ""
#: ../../docstring c409cbcf49e7469ca8b2dd052c011a52
#: canaille.core.configuration.CoreSettings.SMTP:3 of
msgid "If unset, mail-related features like password recovery won't be enabled."
msgstr ""
#: ../../docstring 2cb83696c7f149289e9f3dbc012182ef
#: canaille.core.configuration.CoreSettings.THEME:1 of
msgid "The name of a theme in the 'theme' directory, or a path to a theme."
msgstr ""
#: ../../docstring b3d1237eb0144f97974e071fc00ea0b7
#: canaille.core.configuration.CoreSettings.THEME:3 of
msgid ""
"Defaults to ``default``. Theming is done with `flask-themer "
"<https://github.com/tktech/flask-themer>`_."
msgstr ""
#: ../../docstring b1e60d33d31a47f4bc40640338cb284b
#: canaille.core.configuration.CoreSettings.TIMEZONE:1 of
msgid ""
"The timezone in which datetimes will be displayed to the users (e.g. "
"``CEST``)."
msgstr ""
#: ../../docstring canaille.core.configuration.CoreSettings.TIMEZONE:4
#: dc4cf4f473ea40a5bb1c9a049a3ca1e2 of
msgid "If unset, the server timezone will be used."
msgstr ""
#: 06acb103d58a4e9786be0d9ccca36999 canaille.core.configuration.SMTPSettings:1
#: of
msgid ""
"The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If "
"unset, mail related features will be disabled, such as mail verification "
"or password recovery emails."
msgstr ""
#: 331241c793784690be8c9746d3366e56 canaille.core.configuration.SMTPSettings:5
#: of
msgid ""
"By default, Canaille will try to send mails from localhost without "
"authentication."
msgstr ""
#: ../../docstring 92f12abb0bac49e5867285e04a5c9d6a
#: canaille.core.configuration.SMTPSettings.FROM_ADDR:1 of
msgid "The sender for Canaille mails."
msgstr ""
#: ../../docstring 10b0c6ea9c92453cae3d9e33632a4ad4
#: canaille.core.configuration.SMTPSettings.FROM_ADDR:3 of
msgid "Some mail provider might require a valid sender address."
msgstr ""
#: ../../docstring 3535c00f832b4d2c964be48c7b91231b
#: canaille.core.configuration.SMTPSettings.HOST:1 of
msgid "The SMTP host."
msgstr ""
#: ../../docstring 652e684442a4480f8d5604a28e5f3ce8
#: canaille.core.configuration.SMTPSettings.LOGIN:1 of
msgid "The SMTP login."
msgstr ""
#: ../../docstring 8670279f8f9f4fbebc169da4c79f23a9
#: canaille.core.configuration.SMTPSettings.PASSWORD:1 of
msgid "The SMTP password."
msgstr ""
#: ../../docstring canaille.core.configuration.SMTPSettings.PORT:1
#: e23e9bd935054912937b4a19c870e950 of
msgid "The SMTP port."
msgstr ""
#: ../../docstring 610bdbb8787348feb7afed6f3d60c0c2
#: canaille.core.configuration.SMTPSettings.SSL:1 of
msgid "Whether to use SSL to connect to the SMTP server."
msgstr ""
#: ../../docstring 3cc08150a5ea4ed5ae2e0dc3c4fca472
#: canaille.core.configuration.SMTPSettings.TLS:1 of
msgid "Whether to use TLS to connect to the SMTP server."
msgstr ""
#: 62b3f9dcea0643de96b1ca7638f6a5e9 canaille.core.configuration.ACLSettings:1
#: of
msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace."
msgstr ""
#: bdd0385786694ea6ab8802833275fa4e canaille.core.configuration.ACLSettings:3
#: of
msgid ""
"You can define access controls that define what users can do on canaille "
"An access control consists in a :attr:`FILTER` to match users, a list of "
":attr:`PERMISSIONS` matched users will be able to perform, and fields "
"users will be able to :attr:`READ` and :attr:`WRITE`. Users matching "
"several filters will cumulate permissions."
msgstr ""
#: ../../docstring 1097669d2b994281b4d5d413097e0623
#: canaille.core.configuration.ACLSettings.FILTER:1 of
msgid ":attr:`FILTER` can be:"
msgstr ""
#: ../../docstring bb053c15eb704432bb84e56edeadf167
#: canaille.core.configuration.ACLSettings.FILTER:3 of
msgid ""
":py:data:`None`, in which case all the users will match this access "
"control"
msgstr ""
#: ../../docstring canaille.core.configuration.ACLSettings.FILTER:4
#: cbdb019e3b284edf87da4f15d2b78bf4 of
msgid ""
"a mapping where keys are user attributes name and the values those user "
"attribute values. All the values must be matched for the user to be part "
"of the access control."
msgstr ""
#: ../../docstring canaille.core.configuration.ACLSettings.FILTER:7
#: d4572cf46999451ca8cf28217ded5167 of
msgid ""
"a list of those mappings. If a user values match at least one mapping, "
"then the user will be part of the access control"
msgstr ""
#: ../../docstring canaille.core.configuration.ACLSettings.FILTER:10
#: fac47b79b4dd4a3da08e3237472a7b7d of
msgid "Here are some examples::"
msgstr ""
#: ../../docstring 62ff0c3020c8448a944704b0062a8cb2
#: canaille.core.configuration.ACLSettings.PERMISSIONS:1 of
msgid ""
"A list of :class:`Permission` users in the access control will be able to"
" manage. For example::"
msgstr ""
#: ../../docstring 1099209ca53345d387496ab4312ed097
#: canaille.core.configuration.ACLSettings.READ:1 of
msgid ""
"A list of :class:`~canaille.core.models.User` attributes that users in "
"the ACL will be able to read."
msgstr ""
#: ../../docstring 58a9e524f70f4e7baf522ef1c8157e32
#: canaille.core.configuration.ACLSettings.WRITE:1 of
msgid ""
"A list of :class:`~canaille.core.models.User` attributes that users in "
"the ACL will be able to edit."
msgstr ""
#: canaille.core.configuration.Permission:1 e8e63c7026de41bcba4f2349159e7261 of
msgid "The permissions that can be assigned to users."
msgstr ""
#: 9c4460d4bbf14419aa95957ca5a5e952 canaille.core.configuration.Permission:3 of
msgid ""
"The permissions are intended to be used in :attr:`ACLSettings "
"<canaille.core.configuration.ACLSettings.PERMISSIONS>`."
msgstr ""
#: ../../docstring 7605a3b0da5e4979ac17a807d8134c54
#: canaille.core.configuration.Permission.DELETE_ACCOUNT:1 of
msgid "Allows users to delete their account."
msgstr ""
#: ../../docstring ae2fe25c6c344a97864852f01f57e296
#: canaille.core.configuration.Permission.DELETE_ACCOUNT:3 of
msgid ""
"If used with "
":attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, users can "
"delete any account."
msgstr ""
#: ../../docstring 82ed41275cc2499f994e6bc2dd5d1e3c
#: canaille.core.configuration.Permission.EDIT_SELF:1 of
msgid "Allows users to edit their own profile."
msgstr ""
#: ../../docstring canaille.core.configuration.Permission.IMPERSONATE_USERS:1
#: fbc8c78392de4edcac1b152a1b08e63b of
msgid "Allows users to take the identity of another user."
msgstr ""
#: ../../docstring 6884efcf056942198b52e3612b827d05
#: canaille.core.configuration.Permission.MANAGE_GROUPS:1 of
msgid "Allows group edition and creation."
msgstr ""
#: ../../docstring 38db5db2588046459a54a6a0fcbd608f
#: canaille.core.configuration.Permission.MANAGE_OIDC:1 of
msgid "Allows OpenID Connect client managements."
msgstr ""
#: ../../docstring 902c5fb366a74c5a9a03ad5fcd2e6cf1
#: canaille.core.configuration.Permission.MANAGE_USERS:1 of
msgid "Allows other users management."
msgstr ""
#: ../../docstring 96fbdc9c5ccf421db8c2e110eb59536a
#: canaille.core.configuration.Permission.USE_OIDC:1 of
msgid "Allows OpenID Connect authentication."
msgstr ""
#: canaille.oidc.configuration.OIDCSettings:1 f949952a659545e6a0eb5e7df32b2619
#: of
msgid "OpenID Connect settings."
msgstr ""
#: 8396f08e1b0e42ec94c732847bea4bfc canaille.oidc.configuration.OIDCSettings:3
#: of
msgid "Belong in the ``CANAILLE_OIDC`` namespace."
msgstr ""
#: ../../docstring 70c636d7dae842b09d6533627f4b65e2
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1
#: of
msgid "Whether a token is needed for the RFC7591 dynamical client registration."
msgstr ""
#: ../../docstring
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3
#: e333e90c5649498b9d34e691efcd8ab5 of
msgid ""
"If :py:data:`True`, no token is needed to register a client. If "
":py:data:`False`, dynamical client registration needs a token defined in "
":attr:`DYNAMIC_CLIENT_REGISTRATION_TOKENS`."
msgstr ""
#: ../../docstring 70e5e4ec0dc64daba69f85bf4ec84708
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1
#: of
msgid "A list of tokens that can be used for dynamic client registration."
msgstr ""
#: ../../docstring 5418fb5b02384cc29f1426c4c1d30759
#: canaille.oidc.configuration.OIDCSettings.JWT:1 of
msgid "JSON Web Token settings."
msgstr ""
#: ../../docstring canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1
#: e928ff6b3928470e8ad7c82caa4a3d07 of
msgid "Force the nonce exchange during the authentication flows."
msgstr ""
#: ../../docstring 7359057f9f5d43f1a42cd646a4300f42
#: canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 of
msgid "This adds security but may not be supported by all clients."
msgstr ""
#: 27a60f8e093d4917ac66b7d131143b97 canaille.oidc.configuration.JWTSettings:1
#: of
msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace."
msgstr ""
#: 3764ee3b65474edf8ebb66a6c372c243 canaille.oidc.configuration.JWTSettings:3
#: of
msgid "You can generate a RSA keypair with::"
msgstr ""
#: ../../docstring a1a6dcd429094759b1efb11226baf5a2
#: canaille.oidc.configuration.JWTSettings.ALG:1 of
msgid "The key algorithm."
msgstr ""
#: ../../docstring canaille.oidc.configuration.JWTSettings.EXP:1
#: dd523d20e02b48cdb29cbc016cf04c7b of
msgid "The time the JWT will be valid, in seconds."
msgstr ""
#: ../../docstring canaille.oidc.configuration.JWTSettings.ISS:1
#: f0cf8022dba44fbd8663ad45a1888b91 of
msgid "The URI of the identity provider."
msgstr ""
#: ../../docstring 8028f588edca4da58a09dc75ca349aba
#: canaille.oidc.configuration.JWTSettings.KTY:1 of
msgid "The key type."
msgstr ""
#: ../../docstring 41e83a2048a44f919950e1750910a1d0
#: canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 of
msgid "The private key."
msgstr ""
#: ../../docstring 7348c4741ca84317877a04bdf03d99ae
#: bd2c3564a3af4101abb4393b1aac729c
#: canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3
#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 of
msgid ""
"If :py:data:`None` and debug mode is enabled, then an in-memory key will "
"be used."
msgstr ""
#: ../../docstring b7a0baa78585417d8dcdbe96a8b98583
#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1 of
msgid "The public key."
msgstr ""
#: a9d6eabbdca247c2af37e29d96568a03
#: canaille.oidc.configuration.JWTMappingSettings:1 of
msgid "Mapping between the user model and the JWT fields."
msgstr ""
#: 886826dc265c4c7cb8766afe83095133
#: canaille.oidc.configuration.JWTMappingSettings:3 of
msgid "Fields are evaluated with jinja. A ``user`` var is available."
msgstr ""
#: 9590d902318d4c8580d37bbcd979932a
#: canaille.backends.sql.configuration.SQLSettings:1 of
msgid "Settings related to the SQL backend."
msgstr ""
#: 15c8d7294eff4cb0aad980f15edac5a9
#: canaille.backends.sql.configuration.SQLSettings:3 of
msgid "Belong in the ``CANAILLE_SQL`` namespace."
msgstr ""
#: ../../docstring 8b41da4ffa2646dcb6cd9b93a4807cf3
#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 of
msgid "The SQL server URI. For example::"
msgstr ""
#: b0bc548513934f1da3667d30279d82c4
#: canaille.backends.ldap.configuration.LDAPSettings:1 of
msgid "Settings related to the LDAP backend."
msgstr ""
#: 49283fbc5e9a4eb7a3dcebf404cc3870
#: canaille.backends.ldap.configuration.LDAPSettings:3 of
msgid "Belong in the ``CANAILLE_LDAP`` namespace."
msgstr ""
#: ../../docstring 8824324541e74294beab8b504d38368a
#: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 of
msgid "The LDAP bind DN."
msgstr ""
#: ../../docstring 40026a12323e48a3a0753e08ca363e83
#: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 of
msgid "The LDAP bind password."
msgstr ""
#: ../../docstring a7e3ac64d2044be3ab6c5d2d293db37d
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 of
msgid "The LDAP node under which groups will be looked for and saved."
msgstr ""
#: ../../docstring bda60eee8e474c65925adb75f0e02164
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 of
msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`."
msgstr ""
#: ../../docstring 68bffd35121746e8bfbb70d05a8c176b
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 of
msgid "The object class to use for creating new groups."
msgstr ""
#: ../../docstring
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1
#: f33128abab5f4ce59d431244a8c757ea of
msgid "The attribute to use to identify a group."
msgstr ""
#: ../../docstring 9292125ade5c4f9e912f543664860791
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 of
msgid "The attribute to identify an object in the Group DN."
msgstr ""
#: ../../docstring 813682b1e3b54072ab07e295c38b2fbc
#: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 of
msgid "The LDAP root DN."
msgstr ""
#: ../../docstring 2e43c3ede5a54158abcc1bb480b98026
#: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 of
msgid "The LDAP connection timeout."
msgstr ""
#: ../../docstring canaille.backends.ldap.configuration.LDAPSettings.URI:1
#: cda749d2c3be41e3928f0e759f206889 of
msgid "The LDAP server URI."
msgstr ""
#: ../../docstring 7b97343c77204e699fc3961a28bf66fc
#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 of
msgid "The LDAP node under which users will be looked for and saved."
msgstr ""
#: ../../docstring
#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3
#: ea6864b7befc4c46a1a463a3df375e57 of
msgid "For instance `ou=users,dc=mydomain,dc=tld`."
msgstr ""
#: ../../docstring
#: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1
#: d749e90737ba453393324ade8c1e9b9f of
msgid "The object class to use for creating new users."
msgstr ""
#: ../../docstring 1b1aeacb6c754ecd871e160f614ebe30
#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 of
msgid "Filter to match users on sign in."
msgstr ""
#: ../../docstring 7d7bade071b84039810c29d01ee7af4e
#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 of
msgid ""
"For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is "
"supported and a ``login`` variable is available, containing the value "
"passed in the login field."
msgstr ""
#: ../../docstring canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1
#: fbb6d8c8e73946e8ae9d0b5b8ef6ac7a of
msgid "The attribute to identify an object in the User DN."
msgstr ""
#: ../../doc/references/configuration.rst:81 c71a6c99d5c649468d25d73245d1ce81
msgid "Example file"
msgstr ""
#: ../../doc/references/configuration.rst:83 e3d5ff7b824e465fa78cf064e047e2bf
msgid "Here is a configuration file example:"
msgstr ""

View file

@ -1,25 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/references/index.rst:2 449c3088548a4de39932e3c9abadb987
msgid "References"
msgstr ""

View file

@ -1,948 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/references/models.rst:2 4f4f811264a14208af46aa08dc0f739f
msgid "Data models"
msgstr ""
#: ../../doc/references/models.rst:4 86ad2ccc4f484fea9172dc9a03dd1685
msgid ""
"This reference details the data models used by Canaille. This is mostly "
"useful for developers."
msgstr ""
#: 3d8d635f39f9417a8093033c65f5cfd8 canaille.backends.models.BackendModel:1
#: canaille.backends.models.Model:1 cea30ce00d3c4b9aa2a4a90bf5ca1b2e of
msgid "Bases: :py:class:`object`"
msgstr ""
#: 63116ed6c91d453699c088d731caf20a canaille.backends.models.BackendModel:1 of
msgid "The backend model abstract class."
msgstr ""
#: canaille.backends.models.BackendModel:3 f4524953577a49bf8678c8b188e5adb6 of
msgid ""
"It details all the methods and attributes that are expected to be "
"implemented for every model and for every backend."
msgstr ""
#: a6aaa68e16874197bf3e39cf89b6a036 canaille.backends.models.Model:1 of
msgid "The model abstract class."
msgstr ""
#: canaille.backends.models.Model:3 da1fe57e308a48d78e0e83fe63c8b3c6 of
msgid "It details all the common attributes shared by every models."
msgstr ""
#: ../../docstring 7f5c0dd217f74ea7b921ab45afa69827
#: canaille.backends.models.Model.created:1 of
msgid ""
"The :class:`~datetime.datetime` that the resource was added to the "
"service provider."
msgstr ""
#: ../../docstring 04708c2ef09846e3878f0ff1e3d633fe
#: canaille.backends.models.Model.id:1 of
msgid ""
"A unique identifier for a SCIM resource as defined by the service "
"provider. Id will be :py:data:`None` until the "
":meth:`~canaille.backends.models.BackendModel.save` method is called."
msgstr ""
#: ../../docstring canaille.backends.models.Model.id:5
#: d8ccb6e0f9084dd8b3c0f2ca54639181 of
msgid ""
"Each representation of the resource MUST include a non-empty \"id\" "
"value. This identifier MUST be unique across the SCIM service provider's"
" entire set of resources. It MUST be a stable, non- reassignable "
"identifier that does not change when the same resource is returned in "
"subsequent requests. The value of the \"id\" attribute is always issued "
"by the service provider and MUST NOT be specified by the client. The "
"string \"bulkId\" is a reserved keyword and MUST NOT be used within any "
"unique identifier value. The attribute characteristics are \"caseExact\""
" as \"true\", a mutability of \"readOnly\", and a \"returned\" "
"characteristic of \"always\". See Section 9 for additional "
"considerations regarding privacy."
msgstr ""
#: 020241a96a474546ae111c3ea3191e86 canaille.backends.models.Model.identifier:1
#: of
msgid "Returns a unique value that will be used to identify the model instance."
msgstr ""
#: 231d639f48f94e48bcedad9f668a9356 canaille.backends.models.Model.identifier:4
#: of
msgid ""
"This value will be used in URLs in canaille, so it should be unique and "
"short."
msgstr ""
#: ../../docstring canaille.backends.models.Model.last_modified:1
#: d8b60486668f4266a8791d7c7cfbf39c of
msgid ""
"The most recent :class:`~datetime.datetime` that the details of this "
"resource were updated at the service provider."
msgstr ""
#: ../../docstring 6a9d98cacf2c416b85166e3a0aec85fd
#: canaille.backends.models.Model.last_modified:4 of
msgid ""
"If this resource has never been modified since its initial creation, the "
"value MUST be the same as the value of "
":attr:`~canaille.backends.models.Model.created`."
msgstr ""
#: 5f668d908027491b83f43d47569cab63 69589482ca65403ca8e743b646c9226c
#: 8876abfe97934f2284562899c84595eb a29dec25115a43c794775e581331c082
#: canaille.core.models.Group:1 canaille.core.models.User:1
#: canaille.oidc.basemodels.AuthorizationCode:1
#: canaille.oidc.basemodels.Client:1 canaille.oidc.basemodels.Consent:1
#: canaille.oidc.basemodels.Token:1 ce9d675b71084e3dbc3655cd504a4c6b
#: fae1f8c6af6b466ba27a3a588206e54f of
msgid "Bases: :py:class:`~canaille.backends.models.Model`"
msgstr ""
#: b68f1d5863af434d84f2dd1f2274da3f canaille.core.models.Group:1 of
msgid ""
"User model, based on the `SCIM Group schema "
"<https://datatracker.ietf.org/doc/html/rfc7643#section-4.2>`_."
msgstr ""
#: ../../docstring 5cb994b4454747b3a666042ac273eb54
#: canaille.core.models.Group.display_name:1 of
msgid "A human-readable name for the Group."
msgstr ""
#: ../../docstring 4e19158978d64e339bbebfe89187fda4
#: canaille.core.models.Group.display_name:3
#: canaille.oidc.basemodels.Client.client_id:1 e5c85cd76a0e45e89978c6b631a162fb
#: of
msgid "REQUIRED."
msgstr ""
#: ../../docstring c2575699ceae4913afedd4f3e627f4d3
#: canaille.core.models.Group.members:1 of
msgid "A list of members of the Group."
msgstr ""
#: ../../docstring canaille.core.models.Group.members:3
#: e3f8e66541d7400585c45538dd4e1768 of
msgid ""
"While values MAY be added or removed, sub-attributes of members are "
"\"immutable\". The \"value\" sub-attribute contains the value of an "
"\"id\" attribute of a SCIM resource, and the \"$ref\" sub-attribute must "
"be the URI of a SCIM resource such as a \"User\", or a \"Group\". The "
"intention of the \"Group\" type is to allow the service provider to "
"support nested groups. Service providers MAY require clients to provide "
"a non-empty value by setting the \"required\" attribute characteristic of"
" a sub-attribute of the \"members\" attribute in the \"Group\" resource "
"schema."
msgstr ""
#: b5df55612ee34e12a13d0a7917b38d09 canaille.core.models.User:1 of
msgid ""
"User model, based on the `SCIM User schema "
"<https://datatracker.ietf.org/doc/html/rfc7643#section-4.1>`_, "
"`Entreprise User Schema Extension "
"<https://datatracker.ietf.org/doc/html/rfc7643#section-4.3>`_ and `SCIM "
"Password Management Extension <https://datatracker.ietf.org/doc/html"
"/draft-hunt-scim-password-mgmt-00.html>`_ draft. Attribute description is"
" based on SCIM and put there for information purpose. The description may"
" not fit the current implementation in Canaille."
msgstr ""
#: 3f76320039b1471fa3d303706bbafa21 canaille.core.models.User.can:1 of
msgid ""
"Whether or not the user has the "
":class:`~canaille.core.configuration.Permission` according to the "
":class:`configuration <canaille.core.configuration.ACLSettings>`."
msgstr ""
#: ../../docstring canaille.core.models.User.department:1
#: d3b2c286ea6e4fc6bc807a167a2c7fb9 of
msgid "Identifies the name of a department."
msgstr ""
#: ../../docstring 6c7b40d8ba934aacbeb56018b53fe48e
#: canaille.core.models.User.display_name:1 of
msgid "The name of the user, suitable for display to end-users."
msgstr ""
#: ../../docstring 9c9639c9bdd747b8bceb5a5302fa2d34
#: canaille.core.models.User.display_name:3 of
msgid ""
"Each user returned MAY include a non-empty displayName value. The name "
"SHOULD be the full name of the User being described, if known (e.g., "
"\"Babs Jensen\" or \"Ms. Barbara J Jensen, III\") but MAY be a username "
"or handle, if that is all that is available (e.g., \"bjensen\"). The "
"value provided SHOULD be the primary textual label by which this User is "
"normally displayed by the service provider when presenting it to end-"
"users."
msgstr ""
#: ../../docstring 9c0fab528d5542f5846331d9cb490996
#: canaille.core.models.User.emails:1 of
msgid "Email addresses for the User."
msgstr ""
#: ../../docstring 4346ea844ff94ace979c35990baa285d
#: canaille.core.models.User.emails:3 of
msgid ""
"The value SHOULD be specified according to [RFC5321]. Service providers "
"SHOULD canonicalize the value according to [RFC5321], e.g., "
"\"bjensen@example.com\" instead of \"bjensen@EXAMPLE.COM\". The "
"\"display\" sub-attribute MAY be used to return the canonicalized "
"representation of the email value. The \"type\" sub-attribute is used to "
"provide a classification meaningful to the (human) user. The user "
"interface should encourage the use of basic values of \"work\", \"home\","
" and \"other\" and MAY allow additional type values to be used at the "
"discretion of SCIM clients."
msgstr ""
#: ../../docstring 6a1f48ce3e5542d6bdd155c1e90d2856
#: canaille.core.models.User.employee_number:1 of
msgid ""
"A string identifier, typically numeric or alphanumeric, assigned to a "
"person, typically based on order of hire or association with an "
"organization."
msgstr ""
#: ../../docstring 2fe990abc285421b926f43792db8318d
#: canaille.core.models.User.family_name:1 of
msgid ""
"The family name of the User, or last name in most Western languages "
"(e.g., \"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\")."
msgstr ""
#: ../../docstring canaille.core.models.User.formatted_address:1
#: de06c1dda5594f7f911f6085f2bf30bd of
msgid ""
"The full mailing address, formatted for display or use with a mailing "
"label."
msgstr ""
#: ../../docstring 8b94760c15f746ddb944a77ac25a9ce0
#: canaille.core.models.User.formatted_address:4 of
msgid "This attribute MAY contain newlines."
msgstr ""
#: ../../docstring canaille.core.models.User.formatted_name:1
#: e90822537c784a218e13ecd2327f4032 of
msgid ""
"The full name, including all middle names, titles, and suffixes as "
"appropriate, formatted for display (e.g., \"Ms. Barbara Jane Jensen, "
"III\")."
msgstr ""
#: ../../docstring 8ae81deab78d46229cb7034af9d3a71c
#: canaille.core.models.User.given_name:1 of
msgid ""
"The given name of the User, or first name in most Western languages "
"(e.g., \"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\")."
msgstr ""
#: ../../docstring 8ac614afa7d7492b9ff3c34926139337
#: canaille.core.models.User.groups:1 of
msgid ""
"A list of groups to which the user belongs, either through direct "
"membership, through nested groups, or dynamically calculated."
msgstr ""
#: ../../docstring 64ecefbdac514114b98ab34eb6b18d86
#: canaille.core.models.User.groups:4 of
msgid ""
"The values are meant to enable expression of common group-based or role-"
"based access control models, although no explicit authorization model is "
"defined. It is intended that the semantics of group membership and any "
"behavior or authorization granted as a result of membership are defined "
"by the service provider. The canonical types \"direct\" and \"indirect\""
" are defined to describe how the group membership was derived. Direct "
"group membership indicates that the user is directly associated with the "
"group and SHOULD indicate that clients may modify membership through the "
"\"Group\" resource. Indirect membership indicates that user membership is"
" transitive or dynamic and implies that clients cannot modify indirect "
"group membership through the \"Group\" resource but MAY modify direct "
"group membership through the \"Group\" resource, which may influence "
"indirect memberships. If the SCIM service provider exposes a \"Group\" "
"resource, the \"value\" sub-attribute MUST be the \"id\", and the "
"\"$ref\" sub-attribute must be the URI of the corresponding \"Group\" "
"resources to which the user belongs. Since this attribute has a "
"mutability of \"readOnly\", group membership changes MUST be applied via "
"the \"Group\" Resource (Section 4.2). This attribute has a mutability of"
" \"readOnly\"."
msgstr ""
#: 32921c5be2af4fd59bc8712a4071b310 canaille.core.models.User.has_password:1 of
msgid "Check whether a password has been set for the user."
msgstr ""
#: ../../docstring a4d5f217e56048b294e83da6122343b8
#: canaille.core.models.User.locality:1 of
msgid "The city or locality component."
msgstr ""
#: ../../docstring 68d7a39110204de29ed183c56659c5df
#: canaille.core.models.User.lock_date:1 of
msgid "A DateTime indicating when the resource was locked."
msgstr ""
#: ba543c6c70264b638dc437b2bd20769c canaille.core.models.User.locked:1 of
msgid "Whether the user account has been locked or has expired."
msgstr ""
#: ../../docstring c2eb1949f9704bd0bfe177df71b2dcde
#: canaille.core.models.User.organization:1 of
msgid "Identifies the name of an organization."
msgstr ""
#: ../../docstring a523a6b41e3d48e0a7c179fd2a236c59
#: canaille.core.models.User.password:1 of
msgid ""
"This attribute is intended to be used as a means to set, replace, or "
"compare (i.e., filter for equality) a password. The cleartext value or "
"the hashed value of a password SHALL NOT be returnable by a service "
"provider. If a service provider holds the value locally, the value "
"SHOULD be hashed. When a password is set or changed by the client, the "
"cleartext password SHOULD be processed by the service provider as "
"follows:"
msgstr ""
#: ../../docstring 5ecbdffadb59485a8135fcbc0d0bbf99
#: canaille.core.models.User.password:9 of
msgid ""
"Prepare the cleartext value for international language comparison. See "
"Section 7.8 of [RFC7644]."
msgstr ""
#: ../../docstring 6cbc065374cf47e69971c823f67b2c34
#: canaille.core.models.User.password:12 of
msgid ""
"Validate the value against server password policy. Note: The definition "
"and enforcement of password policy are beyond the scope of this document."
msgstr ""
#: ../../docstring 4c354c83ceb04fe39b2845ca70317fe9
#: canaille.core.models.User.password:16 of
msgid ""
"Ensure that the value is encrypted (e.g., hashed). See Section 9.2 for "
"acceptable hashing and encryption handling when storing or persisting for"
" provisioning workflow reasons."
msgstr ""
#: ../../docstring 3b4d469de19c469bb9c24dc3cf694e20
#: canaille.core.models.User.password:20 of
msgid ""
"A service provider that immediately passes the cleartext value on to "
"another system or programming interface MUST pass the value directly over"
" a secured connection (e.g., Transport Layer Security (TLS)). If the "
"value needs to be temporarily persisted for a period of time (e.g., "
"because of a workflow) before provisioning, then the value MUST be "
"protected by some method, such as encryption."
msgstr ""
#: ../../docstring 2d7021ce458a44919b848545526f767f
#: canaille.core.models.User.password:28 of
msgid ""
"Testing for an equality match MAY be supported if there is an existing "
"stored hashed value. When testing for equality, the service provider:"
msgstr ""
#: ../../docstring 656c0f86ad244b6eb25f35d2ae6b3f56
#: canaille.core.models.User.password:32 of
msgid ""
"Prepares the filter value for international language comparison. See "
"Section 7.8 of [RFC7644]."
msgstr ""
#: ../../docstring 145c3c799b3542969e443e85dbd6a473
#: canaille.core.models.User.password:35 of
msgid ""
"Generates the salted hash of the filter value and tests for a match with "
"the locally held value."
msgstr ""
#: ../../docstring 8c7c1fcc8a2c40ddb28827f5d90e609a
#: canaille.core.models.User.password:38 of
msgid ""
"The mutability of the password attribute is \"writeOnly\", indicating "
"that the value MUST NOT be returned by a service provider in any form "
"(the attribute characteristic \"returned\" is \"never\")."
msgstr ""
#: ../../docstring canaille.core.models.User.phone_numbers:1
#: f6270635316b47c0a082bc419e9f3d50 of
msgid "Phone numbers for the user."
msgstr ""
#: ../../docstring 0e5dd015ff6445b0ad2d657e3c478a60
#: canaille.core.models.User.phone_numbers:3 of
msgid ""
"The value SHOULD be specified according to the format defined in "
"[RFC3966], e.g., 'tel:+1-201-555-0123'. Service providers SHOULD "
"canonicalize the value according to [RFC3966] format, when appropriate. "
"The \"display\" sub-attribute MAY be used to return the canonicalized "
"representation of the phone number value. The sub- attribute \"type\" "
"often has typical values of \"work\", \"home\", \"mobile\", \"fax\", "
"\"pager\", and \"other\" and MAY allow more types to be defined by the "
"SCIM clients."
msgstr ""
#: ../../docstring b4393fc3b75d4cc7a2f4a12ea66f570e
#: canaille.core.models.User.photo:1 of
msgid ""
"A URI that is a uniform resource locator (as defined in Section 1.1.3 of "
"[RFC3986]) that points to a resource location representing the user's "
"image."
msgstr ""
#: ../../docstring 29a0cbb891f54b0f8cb2bbb1c1dfd13f
#: canaille.core.models.User.photo:5 of
msgid ""
"The resource MUST be a file (e.g., a GIF, JPEG, or PNG image file) rather"
" than a web page containing an image. Service providers MAY return the "
"same image in different sizes, although it is recognized that no standard"
" for describing images of various sizes currently exists. Note that this"
" attribute SHOULD NOT be used to send down arbitrary photos taken by this"
" user; instead, profile photos of the user that are suitable for display "
"when describing the user should be sent. Instead of the standard "
"canonical values for type, this attribute defines the following canonical"
" values to represent popular photo sizes: \"photo\" and \"thumbnail\"."
msgstr ""
#: ../../docstring 4dd6128b926146c28e324323b623bb34
#: canaille.core.models.User.postal_code:1 of
msgid "The zip code or postal code component."
msgstr ""
#: ../../docstring 04b523711b5442bcbe64131a0508dedd
#: canaille.core.models.User.preferred_language:1 of
msgid ""
"Indicates the user's preferred written or spoken languages and is "
"generally used for selecting a localized user interface."
msgstr ""
#: ../../docstring canaille.core.models.User.preferred_language:4
#: e1772c7ebcd44649bf29311713835b49 of
msgid ""
"The value indicates the set of natural languages that are preferred. The "
"format of the value is the same as the HTTP Accept-Language header field "
"(not including \"Accept-Language:\") and is specified in Section 5.3.5 of"
" [RFC7231]. The intent of this value is to enable cloud applications to "
"perform matching of language tags [RFC4647] to the user's language "
"preferences, regardless of what may be indicated by a user agent (which "
"might be shared), or in an interaction that does not involve a user (such"
" as in a delegated OAuth 2.0 [RFC6749] style interaction) where normal "
"HTTP Accept-Language header negotiation cannot take place."
msgstr ""
#: ../../docstring 6aa9c30d875f4ab5bcbfc7bee601f517
#: canaille.core.models.User.profile_url:1 of
msgid ""
"A URI that is a uniform resource locator (as defined in Section 1.1.3 of "
"[RFC3986]) and that points to a location representing the user's online "
"profile (e.g., a web page)."
msgstr ""
#: ../../docstring canaille.core.models.User.profile_url:5
#: fc7d54c2056b44aba5e2b2bd60e33a21 of
msgid "URIs are canonicalized per Section 6.2 of [RFC3986]."
msgstr ""
#: 8edaeac977064f1b874aeb0682c95aad canaille.core.models.User.readable_fields:1
#: of
msgid ""
"The fields the user can read according to the :class:`configuration "
"<canaille.core.configuration.ACLSettings>` configuration."
msgstr ""
#: 0cc7f45175d04ae78b035d1ca4a589c8 canaille.core.models.User.readable_fields:4
#: of
msgid ""
"This does not include the :attr:`writable "
"<canaille.core.models.User.writable_fields>` fields."
msgstr ""
#: ../../docstring 4146c490dcf2422d8c284a1c4aba8c6b
#: canaille.core.models.User.region:1 of
msgid "The state or region component."
msgstr ""
#: ../../docstring 049e8a5b7701411f9da7ba9c3c754d04
#: canaille.core.models.User.street:1 of
msgid ""
"The full street address component, which may include house number, street"
" name, P.O."
msgstr ""
#: ../../docstring 0ab2e0885bc24c46b7ad9e6f55f7ebb0
#: canaille.core.models.User.street:4 of
msgid ""
"box, and multi-line extended street address information. This attribute "
"MAY contain newlines."
msgstr ""
#: ../../docstring 75afc62c58134ad8a38e8d59f0743994
#: canaille.core.models.User.title:1 of
msgid "The user's title, such as \"Vice President\"."
msgstr ""
#: ../../docstring 5850e73e21a642efaa0e6ae54a55f0cd
#: canaille.core.models.User.user_name:1 of
msgid ""
"A service provider's unique identifier for the user, typically used by "
"the user to directly authenticate to the service provider."
msgstr ""
#: ../../docstring 4555ed2797644feaa577f9edc6284ab6
#: canaille.core.models.User.user_name:4 of
msgid ""
"Often displayed to the user as their unique identifier within the system "
"(as opposed to \"id\" or \"externalId\", which are generally opaque and "
"not user-friendly identifiers). Each User MUST include a non-empty "
"userName value. This identifier MUST be unique across the service "
"provider's entire set of Users. This attribute is REQUIRED and is case "
"insensitive."
msgstr ""
#: 0a3321c9a0bc481c830aed35014cd2e8 canaille.core.models.User.writable_fields:1
#: of
msgid ""
"The fields the user can write according to the :class:`configuration "
"<canaille.core.configuration.ACLSettings>`."
msgstr ""
#: canaille.oidc.basemodels.AuthorizationCode:1
#: fe9d924164fb4587b942938d012016b9 of
msgid "OpenID Connect temporary authorization code definition."
msgstr ""
#: canaille.oidc.basemodels.Client:1 d1fa5a8cbf7d458494679089a2aba2fb of
msgid ""
"OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client "
"Registration protocols "
"<https://datatracker.ietf.org/doc/html/rfc7591.html>`_ and the `OpenID "
"Connect RP-Initiated Logout <https://openid.net/specs/openid-connect-"
"rpinitiated-1_0.html>`_ specifications."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.client_id:3
#: d80b7305a4714ac4a3d9de849ffa97bf of
msgid ""
"OAuth 2.0 client identifier string. It SHOULD NOT be currently valid for"
" any other registered client, though an authorization server MAY issue "
"the same client identifier to multiple instances of a registered client "
"at its discretion."
msgstr ""
#: ../../docstring 1b11125f523948e1b47df25bea51d9cf
#: 2300f7bc0bc24c79b9c75cfd19e27b95 b395648712ba4ce8934afebc751f1618
#: canaille.oidc.basemodels.Client.client_id_issued_at:1
#: canaille.oidc.basemodels.Client.client_secret:1
#: canaille.oidc.basemodels.Client.post_logout_redirect_uris:1 of
msgid "OPTIONAL."
msgstr ""
#: ../../docstring 11a22bc5758e4a6ab4b916f3bada85fe
#: canaille.oidc.basemodels.Client.client_id_issued_at:3 of
msgid ""
"Time at which the client identifier was issued. The time is represented "
"as the number of seconds from 1970-01-01T00:00:00Z as measured in UTC "
"until the date/time of issuance."
msgstr ""
#: ../../docstring 406f7421746d4f0d84fd323c6975589f
#: canaille.oidc.basemodels.Client.client_name:1 of
msgid ""
"Human-readable string name of the client to be presented to the end-user "
"during authorization."
msgstr ""
#: ../../docstring b1a271e42321484f8ab7e02e8a0630f8
#: canaille.oidc.basemodels.Client.client_name:4 of
msgid ""
"If omitted, the authorization server MAY display the raw \"client_id\" "
"value to the end-user instead. It is RECOMMENDED that clients always "
"send this field. The value of this field MAY be internationalized, as "
"described in Section 2.2."
msgstr ""
#: ../../docstring a57ad017042549a0b814e77b12849fba
#: canaille.oidc.basemodels.Client.client_secret:3 of
msgid ""
"OAuth 2.0 client secret string. If issued, this MUST be unique for each "
"\"client_id\" and SHOULD be unique for multiple instances of a client "
"using the same \"client_id\". This value is used by confidential clients"
" to authenticate to the token endpoint, as described in OAuth 2.0 "
"[RFC6749], Section 2.3.1."
msgstr ""
#: ../../docstring 22f18a7e3b184e04bf11533077bccd1b
#: canaille.oidc.basemodels.Client.client_secret_expires_at:1 of
msgid "REQUIRED if \"client_secret\" is issued."
msgstr ""
#: ../../docstring 07641c93932b45f4a7b2b98f6761fa98
#: canaille.oidc.basemodels.Client.client_secret_expires_at:3 of
msgid ""
"Time at which the client secret will expire or 0 if it will not expire. "
"The time is represented as the number of seconds from "
"1970-01-01T00:00:00Z as measured in UTC until the date/time of "
"expiration."
msgstr ""
#: ../../docstring 00ecf7b29a6241ab8cc7f8480cc13729
#: canaille.oidc.basemodels.Client.client_uri:1 of
msgid "URL string of a web page providing information about the client."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.client_uri:3
#: df7fc4a043c14b4d8822ebb2d2ef8f32 of
msgid ""
"If present, the server SHOULD display this URL to the end-user in a "
"clickable fashion. It is RECOMMENDED that clients always send this "
"field. The value of this field MUST point to a valid web page. The "
"value of this field MAY be internationalized, as described in Section "
"2.2."
msgstr ""
#: ../../docstring 19d18f0b6e0b430fad3a38ccadcbec70
#: canaille.oidc.basemodels.Client.contacts:1 of
msgid ""
"Array of strings representing ways to contact people responsible for this"
" client, typically email addresses."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.contacts:4
#: fe619b319fd54f0e9f6a3b61b19545e8 of
msgid ""
"The authorization server MAY make these contact addresses available to "
"end-users for support requests for the client. See Section 6 for "
"information on Privacy Considerations."
msgstr ""
#: ../../docstring 90b56e1723dd4c049ab3a6f560d33a87
#: canaille.oidc.basemodels.Client.grant_types:1 of
msgid ""
"Array of OAuth 2.0 grant type strings that the client can use at the "
"token endpoint. These grant types are defined as follows:"
msgstr ""
#: ../../docstring 5873bfc5a02b48a29bf739b576f71410
#: canaille.oidc.basemodels.Client.grant_types:4 of
msgid ""
"\"authorization_code\": The authorization code grant type defined in "
"OAuth 2.0, Section 4.1."
msgstr ""
#: ../../docstring 167a4b7521454d9c8d9852c06cc76155
#: canaille.oidc.basemodels.Client.grant_types:7 of
msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2."
msgstr ""
#: ../../docstring b069ce3e42914633ae69a552557497af
#: canaille.oidc.basemodels.Client.grant_types:10 of
msgid ""
"\"password\": The resource owner password credentials grant type defined "
"in OAuth 2.0, Section 4.3."
msgstr ""
#: ../../docstring c5923a28a3fb4d8eaa3f837afe9d4357
#: canaille.oidc.basemodels.Client.grant_types:13 of
msgid ""
"\"client_credentials\": The client credentials grant type defined in "
"OAuth 2.0, Section 4.4."
msgstr ""
#: ../../docstring 07d597d9e6a84f94a8152e04d1eedf38
#: canaille.oidc.basemodels.Client.grant_types:16 of
msgid ""
"\"refresh_token\": The refresh token grant type defined in OAuth 2.0, "
"Section 6."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.grant_types:19
#: cf54246868494647903b6b790ddac962 of
msgid ""
"\"urn:ietf:params:oauth:grant-type:jwt-bearer\": The JWT Bearer Token "
"Grant Type defined in OAuth JWT Bearer Token Profiles [RFC7523]."
msgstr ""
#: ../../docstring a6d3ab8808914df3b7a5e1c747f03b64
#: canaille.oidc.basemodels.Client.grant_types:23 of
msgid ""
"\"urn:ietf:params:oauth:grant-type:saml2-bearer\": The SAML 2.0 Bearer "
"Assertion Grant defined in OAuth SAML 2 Bearer Token Profiles [RFC7522]."
msgstr ""
#: ../../docstring 2de10f7660364aab907a404d9245c9af
#: canaille.oidc.basemodels.Client.grant_types:27 of
msgid ""
"If the token endpoint is used in the grant type, the value of this "
"parameter MUST be the same as the value of the \"grant_type\" parameter "
"passed to the token endpoint defined in the grant type definition. "
"Authorization servers MAY allow for other values as defined in the grant "
"type extension process described in OAuth 2.0, Section 4.5. If omitted, "
"the default behavior is that the client will use only the "
"\"authorization_code\" Grant Type."
msgstr ""
#: ../../docstring b5bd2dd5cc7c46f1b61f0cfda03150bb
#: canaille.oidc.basemodels.Client.jwk:1 of
msgid ""
"Client's JSON Web Key Set [RFC7517] document value, which contains the "
"client's public keys."
msgstr ""
#: ../../docstring 9bab75b252bc414e9634643834bf50c8
#: canaille.oidc.basemodels.Client.jwk:4 of
msgid ""
"The value of this field MUST be a JSON object containing a valid JWK Set."
" These keys can be used by higher-level protocols that use signing or "
"encryption. This parameter is intended to be used by clients that cannot"
" use the \"jwks_uri\" parameter, such as native clients that cannot host "
"public URLs. The \"jwks_uri\" and \"jwks\" parameters MUST NOT both be "
"present in the same request or response."
msgstr ""
#: ../../docstring 57578f71f8f54719934081048136176d
#: canaille.oidc.basemodels.Client.jwks_uri:1 of
msgid ""
"URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] "
"document, which contains the client's public keys."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.jwks_uri:4
#: f740381df0634148950cc7fed3b62285 of
msgid ""
"The value of this field MUST point to a valid JWK Set document. These "
"keys can be used by higher-level protocols that use signing or "
"encryption. For instance, these keys might be used by some applications "
"for validating signed requests made to the token endpoint when using JWTs"
" for client authentication [RFC7523]. Use of this parameter is preferred"
" over the \"jwks\" parameter, as it allows for easier key rotation. The "
"\"jwks_uri\" and \"jwks\" parameters MUST NOT both be present in the same"
" request or response."
msgstr ""
#: ../../docstring 398cacd6dae7426c896accbef1b05031
#: canaille.oidc.basemodels.Client.logo_uri:1 of
msgid "URL string that references a logo for the client."
msgstr ""
#: ../../docstring b54bb5d58c8b4590a5780f56de3684fc
#: canaille.oidc.basemodels.Client.logo_uri:3 of
msgid ""
"If present, the server SHOULD display this image to the end-user during "
"approval. The value of this field MUST point to a valid image file. The "
"value of this field MAY be internationalized, as described in Section "
"2.2."
msgstr ""
#: ../../docstring 7b8c071af0e541b4a1cd23ccab94537c
#: canaille.oidc.basemodels.Client.policy_uri:1 of
msgid ""
"URL string that points to a human-readable privacy policy document that "
"describes how the deployment organization collects, uses, retains, and "
"discloses personal data."
msgstr ""
#: ../../docstring 0d53a7af1fe74511bb2cffa04042c471
#: 4930f030916748c3a07eb59f0466950f
#: canaille.oidc.basemodels.Client.policy_uri:5
#: canaille.oidc.basemodels.Client.tos_uri:5 of
msgid ""
"The authorization server SHOULD display this URL to the end-user if it is"
" provided. The value of this field MUST point to a valid web page. The "
"value of this field MAY be internationalized, as described in Section "
"2.2."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.post_logout_redirect_uris:3
#: ff29a92b953f491e8c9d916adbffffa3 of
msgid ""
"Array of URLs supplied by the RP to which it MAY request that the End-"
"User's User Agent be redirected using the post_logout_redirect_uri "
"parameter after a logout has been performed. These URLs SHOULD use the "
"https scheme and MAY contain port, path, and query parameter components; "
"however, they MAY use the http scheme, provided that the Client Type is "
"confidential, as defined in Section 2.1 of OAuth 2.0 [RFC6749], and "
"provided the OP allows the use of http RP URIs."
msgstr ""
#: ../../docstring 2741c91c5c934f318d4268fc9848e2cc
#: canaille.oidc.basemodels.Client.redirect_uris:1 of
msgid ""
"Array of redirection URI strings for use in redirect-based flows such as "
"the authorization code and implicit flows."
msgstr ""
#: ../../docstring 5f7e65eb067c4b819749078240746df7
#: canaille.oidc.basemodels.Client.redirect_uris:4 of
msgid ""
"As required by Section 2 of OAuth 2.0 [RFC6749], clients using flows with"
" redirection MUST register their redirection URI values. Authorization "
"servers that support dynamic registration for redirect-based flows MUST "
"implement support for this metadata value."
msgstr ""
#: ../../docstring 54d3901cbefe4700bd6b94c8f20b8984
#: canaille.oidc.basemodels.Client.response_types:1 of
msgid ""
"Array of the OAuth 2.0 response type strings that the client can use at "
"the authorization endpoint. These response types are defined as follows:"
msgstr ""
#: ../../docstring 0f5f76aef1d5434bbb01e66b6b427c17
#: canaille.oidc.basemodels.Client.response_types:5 of
msgid ""
"\"code\": The authorization code response type defined in OAuth 2.0, "
"Section 4.1."
msgstr ""
#: ../../docstring 5ba120e7f7d64db498c53f4fcedbcdc1
#: canaille.oidc.basemodels.Client.response_types:8 of
msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2."
msgstr ""
#: ../../docstring 9c7d0bdc0f0240a38535d2575a44ff9c
#: canaille.oidc.basemodels.Client.response_types:11 of
msgid ""
"If the authorization endpoint is used by the grant type, the value of "
"this parameter MUST be the same as the value of the \"response_type\" "
"parameter passed to the authorization endpoint defined in the grant type "
"definition. Authorization servers MAY allow for other values as defined "
"in the grant type extension process is described in OAuth 2.0, Section "
"4.5. If omitted, the default is that the client will use only the "
"\"code\" response type."
msgstr ""
#: ../../docstring ac1eac1d27b642d8a7cebbf513181629
#: canaille.oidc.basemodels.Client.scope:1 of
msgid ""
"String containing a space-separated list of scope values (as described in"
" Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when "
"requesting access tokens."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.scope:5
#: d960080bf7574b5283c226b0ab2b9372 of
msgid ""
"The semantics of values in this list are service specific. If omitted, "
"an authorization server MAY register a client with a default set of "
"scopes."
msgstr ""
#: ../../docstring canaille.oidc.basemodels.Client.software_id:1
#: d1f72b9bc83c41bb88c7ffcf09937ce5 of
msgid ""
"A unique identifier string (e.g., a Universally Unique Identifier (UUID))"
" assigned by the client developer or software publisher used by "
"registration endpoints to identify the client software to be dynamically "
"registered."
msgstr ""
#: ../../docstring a94bd506bcb84e018b965df1597fb0b1
#: canaille.oidc.basemodels.Client.software_id:6 of
msgid ""
"Unlike \"client_id\", which is issued by the authorization server and "
"SHOULD vary between instances, the \"software_id\" SHOULD remain the same"
" for all instances of the client software. The \"software_id\" SHOULD "
"remain the same across multiple updates or versions of the same piece of "
"software. The value of this field is not intended to be human readable "
"and is usually opaque to the client and authorization server."
msgstr ""
#: ../../docstring 0ae66a5b4e724bd8b4f80cc69f3fd44b
#: canaille.oidc.basemodels.Client.software_version:1 of
msgid ""
"A version identifier string for the client software identified by "
"\"software_id\"."
msgstr ""
#: ../../docstring 59f8fb95a6ec452bba957f87795edec6
#: canaille.oidc.basemodels.Client.software_version:4 of
msgid ""
"The value of the \"software_version\" SHOULD change on any update to the "
"client software identified by the same \"software_id\". The value of "
"this field is intended to be compared using string equality matching and "
"no other comparison semantics are defined by this specification. The "
"value of this field is outside the scope of this specification, but it is"
" not intended to be human readable and is usually opaque to the client "
"and authorization server. The definition of what constitutes an update "
"to client software that would trigger a change to this value is specific "
"to the software itself and is outside the scope of this specification."
msgstr ""
#: ../../docstring 0c628b480a714a86b406cd36d8d80275
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:1 of
msgid ""
"String indicator of the requested authentication method for the token "
"endpoint. Values defined by this specification are:"
msgstr ""
#: ../../docstring 546228d2e7e54942a2ae632997ab67c6
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:4 of
msgid ""
"\"none\": The client is a public client as defined in OAuth 2.0, Section "
"2.1, and does not have a client secret."
msgstr ""
#: ../../docstring 73c66cc275a34ba68ee43b9fb40c21f5
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:7 of
msgid ""
"\"client_secret_post\": The client uses the HTTP POST parameters as "
"defined in OAuth 2.0, Section 2.3.1."
msgstr ""
#: ../../docstring 084496ca247d426c8e295865ee194907
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:10 of
msgid ""
"\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth "
"2.0, Section 2.3.1."
msgstr ""
#: ../../docstring 6c77b2e92a9242a1a1ac779a50a6b959
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:13 of
msgid ""
"Additional values can be defined via the IANA \"OAuth Token Endpoint "
"Authentication Methods\" registry established in Section 4.2. Absolute "
"URIs can also be used as values for this parameter without being "
"registered. If unspecified or omitted, the default is "
"\"client_secret_basic\", denoting the HTTP Basic authentication scheme as"
" specified in Section 2.3.1 of OAuth 2.0."
msgstr ""
#: ../../docstring 36417da6c2f44c7e92cae7cb3f0ba7cb
#: canaille.oidc.basemodels.Client.tos_uri:1 of
msgid ""
"URL string that points to a human-readable terms of service document for "
"the client that describes a contractual relationship between the end-user"
" and the client that the end-user accepts when authorizing the client."
msgstr ""
#: canaille.oidc.basemodels.Consent:1 f160b96459c64852b6038a5bede57527 of
msgid "Long-term user consent to an application."
msgstr ""
#: 3be00302014441608d644b1a2a2de130 canaille.oidc.basemodels.Token:1 of
msgid "OpenID Connect token definition."
msgstr ""

View file

@ -1,461 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:21+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: fr <LL@li.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Generated-By: Babel 2.16.0\n"
#: ../tutorial/databases.rst:2 34b6a5df315e4629b9710884e3f5be9e
msgid "Databases"
msgstr ""
#: ../tutorial/databases.rst:4 31f93a60c87648478dfe7a6c74d5f36a
msgid ""
"Canaille can read and save data in different databases. This page presents "
"the different database backends and their specificities:"
msgstr ""
#: ../tutorial/databases.rst:8 8dc081315c7a4eea8be2e81b8a049162
msgid "Memory"
msgstr ""
#: ../tutorial/databases.rst:10 08608b21b52a4a22ac26b3a2a2d29f6a
msgid ""
"Canaille comes with a lightweight inmemory backend by default. It is used "
"when no other backend has been configured."
msgstr ""
#: ../tutorial/databases.rst:13 dbb9009fcf724d6290135aa1d6a32026
msgid ""
"This backend is only for test purpose and should not be used in production "
"environments."
msgstr ""
#: ../tutorial/databases.rst:16 06113268bf4a49d0880cdae75f961fc5
msgid "SQL"
msgstr ""
#: ../tutorial/databases.rst:18 2bb9cb1d3c4f4e4f93d649960bca123d
msgid ""
"Canaille can use any database supported by `SQLAlchemy <https://www."
"sqlalchemy.org/>`_, such as sqlite, postgresql or mariadb."
msgstr ""
#: ../tutorial/databases.rst:21 bb4ec73e439d430aa8dbdddb0301bf5b
msgid ""
"It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For "
"instance:"
msgstr ""
#: ../tutorial/databases.rst:23 ../tutorial/databases.rst:37
#: 7de375f96b054244a9fb0c7c60663f32 ebab073f2f894dfb87705d06ebb870af
msgid "config.toml"
msgstr ""
#: ../tutorial/databases.rst:29 6e78f6be25cb4151951a1bc6994643a9
msgid ""
"You can find more details on the SQL configuration in the :class:`dedicated "
"section <canaille.backends.sql.configuration.SQLSettings>`."
msgstr ""
#: ../tutorial/databases.rst:32 bcfa707ba3b2494ab1af853bcdc7673f
msgid "LDAP"
msgstr ""
#: ../tutorial/databases.rst:34 426e632fa07a44369bdadb8a290672bf
msgid ""
"Canaille can use OpenLDAP as its main database. It is used when the "
"``CANAILLE_LDAP`` configuration parameter is defined. For instance:"
msgstr ""
#: ../tutorial/databases.rst:52 0c319bcdd3b649569745572bb2944fec
msgid ""
"You can find more details on the LDAP configuration in the :class:`dedicated "
"section <canaille.backends.ldap.configuration.LDAPSettings>`."
msgstr ""
#: ../tutorial/databases.rst:55 ebc6e35e9a6049be8bc66eb127adf882
msgid ""
"Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been "
"tested. If you want to use different schemas or LDAP servers, adaptations "
"may be needed. Patches are welcome."
msgstr ""
#: ../tutorial/databases.rst:60 6a9ec2b8bf724122b5752c753bdaea7a
msgid "OpenLDAP overlays integration"
msgstr ""
#: ../tutorial/databases.rst:62 ce6daa0ac4974084990221c2806a5549
msgid "Canaille can integrate with several OpenLDAP overlays:"
msgstr ""
#: ../tutorial/databases.rst:65 24a7dc4d61504545ac841910fbaca48b
msgid "memberof / refint"
msgstr ""
#: ../tutorial/databases.rst:67 d24183e3349f42bfbbecde663f03f846
msgid ""
"`memberof <https://www.openldap.org/doc/admin26/overlays."
"html#Reverse%20Group%20Membership%20Maintenance>`_ and `refint <https://www."
"openldap.org/doc/admin26/overlays.html#Referential%20Integrity>`_ overlays "
"are needed for the Canaille group membership to work correctly."
msgstr ""
#: ../tutorial/databases.rst:71 ../tutorial/databases.rst:94
#: 65357e9c96e341128f9448507ce02f1b 692bdeebfc9c40999c9b09c8d9371e52
msgid "Here is a configuration example compatible with canaille:"
msgstr ""
#: ../tutorial/databases.rst:73 511312387435410987a190cf7b68f2ab
msgid "memberof-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:77 c95e78d9dde84102b1a97c2399430c23
msgid "refint-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:81 ../tutorial/databases.rst:104
#: 2e0fddced7e949f8a66653530c8a120b 8686380cd79949259b48f68fe6c4d3b8
msgid "You can adapt and load those configuration files with:"
msgstr ""
#: ../tutorial/databases.rst:90 af864ca7a8ef4d128d3fbe54749a944c
msgid "ppolicy"
msgstr ""
#: ../tutorial/databases.rst:92 fc8d77f8ca4d48de9eba6c408a9f5fc2
msgid ""
"If the `ppolicy <https://www.ietf.org/archive/id/draft-behera-ldap-password-"
"policy-11.html>`_ overlay is configured and the ``pwdEndTime`` attribute is "
"available (since OpenLDAP 2.6), then account locking support will be enabled "
"in canaille. To allow users to manage account expiration, they need to have "
"a *write* permission on the :attr:`~canaille.core.models.User.lock_date` "
"attribute."
msgstr ""
#: ../tutorial/databases.rst:96 15e6cfdc691149efbbdc2f3834c7a3d0
msgid "ppolicy-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:100 ef7f7bd8dd0445be8596864cb1b50fa5
msgid "ppolicy.ldif"
msgstr ""
#: ../tutorial/deployment.rst:2 a7ef8cd4696b4e53a1ffdb87fb18c375
msgid "Deployment"
msgstr ""
#: ../tutorial/deployment.rst:5 0f1f7c0caa8a4dfcb659c15bedda5aae
msgid "Application service"
msgstr ""
#: ../tutorial/deployment.rst:7 b93527ef33ad4a65af273da09bb780f3
msgid ""
"After having finished Canaille installation you have to run it in a WSGI "
"application server. Here are some WSGI server configuration examples you can "
"pick. Do not forget to update the paths."
msgstr ""
#: ../tutorial/deployment.rst:11 1ffbe89a8ff744fc9686484ce526e541
msgid "gunicorn"
msgstr ""
#: ../tutorial/deployment.rst:13 418a0ab3603442f2b0a515962f003029
msgid "Todo"
msgstr ""
#: ../tutorial/deployment.rst:15 c40ad558fd584c01a6c564f8f72d12f3
msgid "Write a gunicorn configuration sample file."
msgstr ""
#: ../tutorial/deployment.rst:18 ec3a0c7c05b74be6b1640ff6a4090aec
msgid "uwsgi"
msgstr ""
#: ../tutorial/deployment.rst:42 5c4862bc3810432195a2e9a353f60b54
msgid "Webserver"
msgstr ""
#: ../tutorial/deployment.rst:44 94e56452db9741f0a3eee45f672e73a8
msgid ""
"Now you have to plug your WSGI application server to your webserver so it is "
"accessible on the internet. Here are some webserver configuration examples "
"you can pick:"
msgstr ""
#: ../tutorial/deployment.rst:48 7c4ae615fbd44c3f8ab3ece2d0201ed7
msgid "Nginx"
msgstr ""
#: ../tutorial/deployment.rst:114 ac66da9f7d1342bdad81dbdf97218b4e
msgid "Apache"
msgstr ""
#: ../tutorial/deployment.rst:153 ad13e4fdf804422facdde8b1b619e9a2
msgid "Recurrent jobs"
msgstr ""
#: ../tutorial/deployment.rst:155 b9ba07959e7f4d57846b44490735d913
msgid ""
"You might want to clean up your database to avoid it growing too much. You "
"can regularly delete expired tokens and authorization codes with:"
msgstr ""
#: ../tutorial/deployment.rst:164 4a9929824eba46a883f1147dcdaa526e
msgid "Webfinger"
msgstr ""
#: ../tutorial/deployment.rst:166 cbd15001d4a043e5a0ec93a5eff80b9f
msgid ""
"You may want to configure a `WebFinger`_ endpoint on your main website to "
"allow the automatic discovery of your Canaille installation based on the "
"account name of one of your users. For instance, suppose your domain is "
"``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` "
"and there is a user ``john.doe``. A third-party application could require to "
"authenticate the user and ask them for a user account. The user would give "
"their account ``john.doe@mydomain.example``, then the application would "
"perform a WebFinger request at ``https://mydomain.example/.well-known/"
"webfinger`` and the response would contain the address of the authentication "
"server ``https://auth.mydomain.example``. With this information the third "
"party application can redirect the user to the Canaille authentication page."
msgstr ""
#: ../tutorial/deployment.rst:168 e515d97f8d8248f98081746a9b723611
msgid ""
"The difficulty here is that the WebFinger endpoint must be hosted at the top-"
"level domain (i.e. ``mydomain.example``) while the authentication server "
"might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille "
"provides a WebFinger endpoint, but if it is not hosted at the top-level "
"domain, a web redirection is required on the ``/.well-known/webfinger`` path."
msgstr ""
#: ../tutorial/deployment.rst:170 3c7cb4cd4a2d498098fe4387a5ae3b2a
msgid "Here are configuration examples for Nginx or Apache:"
msgstr ""
#: ../tutorial/deployment.rst:172 a11ff6002ffc46b7b401b29c222cb984
msgid "Nginx webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:181 cc81b2ca58b842bab2583d46cd8ac1dc
msgid "Apache webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:191 b9b3713c6f724e5cb3cad50756e8211c
msgid "Create the first user"
msgstr ""
#: ../tutorial/deployment.rst:193 02df7f55e6df4452ac60d899b5a98cc2
msgid ""
"Once canaille is installed, soon enough you will need to add users. To "
"create your first user you can use the :ref:`canaille create <cli_create>` "
"CLI."
msgstr ""
#: ../tutorial/index.rst:2 3deeb02f520e41b4a510d72bdd446046
msgid "Tutorial"
msgstr ""
#: ../tutorial/install.rst:2 36b529fead5242468a36bdbbbdd28544
msgid "Installation"
msgstr ""
#: ../tutorial/install.rst:6 c717982f410e46a28e3f97a9a1096146
msgid ""
"Canaille is under heavy development and may not fit a production environment "
"yet."
msgstr ""
#: ../tutorial/install.rst:8 6e7bc4fde5d74dceb03c1f03a95fa779
msgid ""
"The installation of canaille consist in several steps, some of which you can "
"do manually or with command line tool:"
msgstr ""
#: ../tutorial/install.rst:11 25f53875201f4538b26df4d537d355ea
msgid "Get the code"
msgstr ""
#: ../tutorial/install.rst:13 ac342d74e14244c4badfab8c1f829d94
msgid ""
"As the moment there is no distribution package for canaille. However, it can "
"be installed with the ``pip`` package manager. Let us choose a place for the "
"canaille environment, like ``/opt/canaille/env``."
msgstr ""
#: ../tutorial/install.rst:24 15d4a0b372c44934a05f1ed6eb327a87
msgid "Extras"
msgstr ""
#: ../tutorial/install.rst:26 6c563bb9847e4766a5c3d0d461a35c2f
msgid "Canaille provides different package options:"
msgstr ""
#: ../tutorial/install.rst:28 65dbf1cc88e14dcda675a7a20f71477b
msgid "`front` provides all the things needed to produce the user interface;"
msgstr ""
#: ../tutorial/install.rst:29 932751ee90ac445f8271d5f0bf062139
msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;"
msgstr ""
#: ../tutorial/install.rst:30 33ba6546cbf94064ab5290438b1120a8
msgid "`ldap` provides the dependencies to enable the LDAP backend;"
msgstr ""
#: ../tutorial/install.rst:31 e65f505181e448e58b1aa158e8af5d42
msgid "`sqlite` provides the dependencies to enable the SQLite backend;"
msgstr ""
#: ../tutorial/install.rst:32 f3fa4d1a59674077b16bdc0e432f326e
msgid ""
"`postgresql` provides the dependencies to enable the PostgreSQL backend;"
msgstr ""
#: ../tutorial/install.rst:33 f914db4dca274ab9bc725faba6cc6e86
msgid "`mysql` provides the dependencies to enable the MySQL backend;"
msgstr ""
#: ../tutorial/install.rst:34 7dad7a35aea54e549ac3328577c8e3e1
msgid "`sentry` provides sentry integration to watch Canaille exceptions;"
msgstr ""
#: ../tutorial/install.rst:35 1cd7e38d50bd4f439e285c870a8b005c
msgid "`all` provides all the extras above."
msgstr ""
#: ../tutorial/install.rst:37 cf6a1f2144114c7abfe4177c427d72f8
msgid "They can be installed with:"
msgstr ""
#: ../tutorial/install.rst:44 51d6f24a101c4511aa3d49db1914fa3a
msgid "Configure"
msgstr ""
#: ../tutorial/install.rst:46 4efc51c21f274c449ecdd33dcc439625
msgid ""
"Choose a path where to store your configuration file. You can pass any "
"configuration path with the ``CONFIG`` environment variable."
msgstr ""
#: ../tutorial/install.rst:54 90dd73339c3e43f18395eb80d9749456
msgid ""
"You should then edit your configuration file to adapt the values to your "
"needs. Look at the configuration details in the :doc:`configuration <../"
"references/configuration>` page."
msgstr ""
#: ../tutorial/install.rst:57 3ff3b9dbf5904b3dbb2494ee61825d15
msgid "Install"
msgstr ""
#: ../tutorial/install.rst:59 56e161c2e2ed4ae7a7d55bcc024135a1
msgid ""
"The :ref:`install command <cli_install>` will apply most of the things "
"needed to get Canaille working. Depending on the configured :doc:`database "
"<databases>` it will create the SQL tables, or install the LDAP schemas for "
"instance."
msgstr ""
#: ../tutorial/install.rst:68 e4b60f64108549189d9627699af12a91
msgid "Check"
msgstr ""
#: ../tutorial/install.rst:70 1a9056c774724a0491bcb5060e8903f2
msgid ""
"After a manual installation, you can check your configuration file using "
"the :ref:`check command <cli_install>`:"
msgstr ""
#: ../tutorial/troubleshooting.rst:2 8e2c5e7ea5f14416a11a2ec648a32593
msgid "Troubleshooting"
msgstr ""
#: ../tutorial/troubleshooting.rst:5 d1d6667b4caa4506a5be55cc7c4df22a
msgid "The web interface throws useless error messages"
msgstr ""
#: ../tutorial/troubleshooting.rst:7 a71c850aa84d41e99550cc54f23e5441
msgid ""
"Unless the current user has admin :class:`permissions <canaille.core."
"configuration.Permission>`, or the installation is in :attr:`~canaille.app."
"configuration.RootSettings.DEBUG` mode, error messages won't be too "
"technical. For instance, you can see *The request you made is invalid*. To "
"enable detailed error messages, you can **temporarily** enable the :attr:"
"`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter."
msgstr ""
#: ../tutorial/troubleshooting.rst:12 cc846be11ca448ddb1c1913d1e41ccbf
msgid "How to manually install LDAP schemas?"
msgstr ""
#: ../tutorial/troubleshooting.rst:16 c9a20d92290541c0b5536e5cd150999d
msgid ""
"Schema installation can be automatically done using the :ref:`install "
"command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:18 830b3a72844a44d386308540cc44f1e4
msgid "As of OpenLDAP 2.4, two configuration methods are available:"
msgstr ""
#: ../tutorial/troubleshooting.rst:20 02db4b758cfd40f7b64bfb79bea9f5c3
msgid ""
"The `deprecated <https://www.openldap.org/doc/admin26/slapdconf2.html>`_ "
"one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);"
msgstr ""
#: ../tutorial/troubleshooting.rst:21 0b24de0faa944ae3b1af5c604a71098f
msgid ""
"The new one, based on a configuration directory (generally ``/etc/ldap/slapd."
"d``)."
msgstr ""
#: ../tutorial/troubleshooting.rst:23 7acd99c26fd7480e8733523fbd29db13
msgid ""
"Depending on the configuration method you use with your OpenLDAP "
"installation, you need to chose how to add the canaille schemas:"
msgstr ""
#: ../tutorial/troubleshooting.rst:26 3917d45c79604f16ba0aca4887ff6dac
msgid "Old fashion: Copy the schemas in your filesystem"
msgstr ""
#: ../tutorial/troubleshooting.rst:35 430b74fa77a94624bcae8606289222a3
msgid "New fashion: Use slapadd to add the schemas"
msgstr ""
#: ../tutorial/troubleshooting.rst:37 9fdc2c09b2dc44b3b5e45ed1271b3e7c
msgid "Be careful to stop your ldap server before running ``slapadd``"
msgstr ""
#: ../tutorial/troubleshooting.rst:46 cc6bfd549bd541eead7a37af15a25aef
msgid "How to manually generate the OIDC keypair?"
msgstr ""
#: ../tutorial/troubleshooting.rst:50 6dc2d317536b41ff839d98287a84f358
msgid ""
"The keypair generation can be automatically done using the :ref:`install "
"command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:52 31db4facc32b4691b3625065562ef5c3
msgid ""
"Canaille needs a key pair to sign OIDC tokens. You can customize those "
"commands, as long as they match the ``JWT`` section of your configuration "
"file."
msgstr ""

View file

@ -1,161 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/tutorial/databases.rst:2 13be28a98aa44e67ad2da068019679b0
msgid "Databases"
msgstr ""
#: ../../doc/tutorial/databases.rst:4 34d3c5ad89ca430a847e45d05e2f5019
msgid ""
"Canaille can read and save data in different databases. This page "
"presents the different database backends and their specificities:"
msgstr ""
#: ../../doc/tutorial/databases.rst:8 2e496b7a0aee4d17b567eb4dc478ea17
msgid "Memory"
msgstr ""
#: ../../doc/tutorial/databases.rst:10 ceb74ab4c8774778844a94ed861484f0
msgid ""
"Canaille comes with a lightweight inmemory backend by default. It is used"
" when no other backend has been configured."
msgstr ""
#: ../../doc/tutorial/databases.rst:13 81d31cff81344214af9be762d9e2d86b
msgid ""
"This backend is only for test purpose and should not be used in "
"production environments."
msgstr ""
#: ../../doc/tutorial/databases.rst:16 230473fa22cf4e1ea512779b93a88d50
msgid "SQL"
msgstr ""
#: ../../doc/tutorial/databases.rst:18 cbb94e64da22446d94826e4b2d8aa841
msgid ""
"Canaille can use any database supported by `SQLAlchemy "
"<https://www.sqlalchemy.org/>`_, such as sqlite, postgresql or mariadb."
msgstr ""
#: ../../doc/tutorial/databases.rst:21 f1512d513bd543719e9fc2b41a002ec4
msgid ""
"It is used when the ``CANAILLE_SQL`` configuration parameter is defined. "
"For instance:"
msgstr ""
#: ../../doc/tutorial/databases.rst:23 ../../doc/tutorial/databases.rst:37
#: 1652808637864b219ffc895ff0b385e2 26343cfad8b1468e857c9af6a929296f
msgid "config.toml"
msgstr ""
#: ../../doc/tutorial/databases.rst:29 20d5bb9612194746981991360681be81
msgid ""
"You can find more details on the SQL configuration in the "
":class:`dedicated section "
"<canaille.backends.sql.configuration.SQLSettings>`."
msgstr ""
#: ../../doc/tutorial/databases.rst:32 7666e750708b4faa8ed74fbe9dd71455
msgid "LDAP"
msgstr ""
#: ../../doc/tutorial/databases.rst:34 d76fc51f518344c1ad042668dc0f6f7f
msgid ""
"Canaille can use OpenLDAP as its main database. It is used when the "
"``CANAILLE_LDAP`` configuration parameter is defined. For instance:"
msgstr ""
#: ../../doc/tutorial/databases.rst:52 343f1bb31591486da7186300d79ff254
msgid ""
"You can find more details on the LDAP configuration in the "
":class:`dedicated section "
"<canaille.backends.ldap.configuration.LDAPSettings>`."
msgstr ""
#: ../../doc/tutorial/databases.rst:55 61cd64aa6b24444eb95c7b328a9bb80a
msgid ""
"Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have "
"been tested. If you want to use different schemas or LDAP servers, "
"adaptations may be needed. Patches are welcome."
msgstr ""
#: ../../doc/tutorial/databases.rst:60 2945818fe9854775be50bbbe9bd4920c
msgid "OpenLDAP overlays integration"
msgstr ""
#: ../../doc/tutorial/databases.rst:62 a37ceed58a974812bf0449864b97bc36
msgid "Canaille can integrate with several OpenLDAP overlays:"
msgstr ""
#: ../../doc/tutorial/databases.rst:65 d6b79a05710643b5ac394738613ef6d7
msgid "memberof / refint"
msgstr ""
#: ../../doc/tutorial/databases.rst:67 5afe1236e936402584f1478f77e90a8c
#, python-format
msgid ""
"`memberof "
"<https://www.openldap.org/doc/admin26/overlays.html#Reverse%20Group%20Membership%20Maintenance>`_"
" and `refint "
"<https://www.openldap.org/doc/admin26/overlays.html#Referential%20Integrity>`_"
" overlays are needed for the Canaille group membership to work correctly."
msgstr ""
#: ../../doc/tutorial/databases.rst:71 ../../doc/tutorial/databases.rst:94
#: 43fe5b2a235e4e779a591dfb57e5bd9f 7cadb14c4e324d4d82eaa6503a4f7d5c
msgid "Here is a configuration example compatible with canaille:"
msgstr ""
#: ../../doc/tutorial/databases.rst:73 f4492ab7254f48958441eb03ee6cafa0
msgid "memberof-config.ldif"
msgstr ""
#: ../../doc/tutorial/databases.rst:77 5a5c78def64b4d699a257b2e407b9c9d
msgid "refint-config.ldif"
msgstr ""
#: ../../doc/tutorial/databases.rst:81 ../../doc/tutorial/databases.rst:104
#: 211625cc561840cfa82975d79ca478ef c4486a215813426b82fcc0d4fecd212b
msgid "You can adapt and load those configuration files with:"
msgstr ""
#: ../../doc/tutorial/databases.rst:90 b123a4b628d84343858da2932e77fbfc
msgid "ppolicy"
msgstr ""
#: ../../doc/tutorial/databases.rst:92 6e77957f1af14258a453f712e7e4b5ce
msgid ""
"If the `ppolicy <https://www.ietf.org/archive/id/draft-behera-ldap-"
"password-policy-11.html>`_ overlay is configured and the ``pwdEndTime`` "
"attribute is available (since OpenLDAP 2.6), then account locking support"
" will be enabled in canaille. To allow users to manage account "
"expiration, they need to have a *write* permission on the "
":attr:`~canaille.core.models.User.lock_date` attribute."
msgstr ""
#: ../../doc/tutorial/databases.rst:96 25a6006c6ec0431d9a6e5e979aedf2c6
msgid "ppolicy-config.ldif"
msgstr ""
#: ../../doc/tutorial/databases.rst:100 84603122ff0c46c7b8f149e8af826433
msgid "ppolicy.ldif"
msgstr ""

View file

@ -1,134 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/tutorial/deployment.rst:2 ae73f16a212144ffa313290a207b141f
msgid "Deployment"
msgstr ""
#: ../../doc/tutorial/deployment.rst:5 35937b9f04b4457f937ec96e1ba29caf
msgid "Application service"
msgstr ""
#: ../../doc/tutorial/deployment.rst:7 9e7fd12c32644a11b26be30abdb8fbb9
msgid ""
"After having finished Canaille installation you have to run it in a WSGI "
"application server. Here are some WSGI server configuration examples you "
"can pick. Do not forget to update the paths."
msgstr ""
#: ../../doc/tutorial/deployment.rst:11 113eacd3942647f4a67709d106074aae
msgid "gunicorn"
msgstr ""
#: ../../doc/tutorial/deployment.rst:13 49056a8d4181451b9d442e040ef58134
msgid "Todo"
msgstr ""
#: ../../doc/tutorial/deployment.rst:15 ab8cb26415874d7dac41d27e0fd09196
msgid "Write a gunicorn configuration sample file."
msgstr ""
#: ../../doc/tutorial/deployment.rst:18 275e76607f394394925fd8e72baa1bdd
msgid "uwsgi"
msgstr ""
#: ../../doc/tutorial/deployment.rst:42 7dd0c119f3ca4d34af4b365848855c7e
msgid "Webserver"
msgstr ""
#: ../../doc/tutorial/deployment.rst:44 2642973dba1e4c229c8cafd6b53d1e2e
msgid ""
"Now you have to plug your WSGI application server to your webserver so it"
" is accessible on the internet. Here are some webserver configuration "
"examples you can pick:"
msgstr ""
#: ../../doc/tutorial/deployment.rst:48 6e1d1fb0d1de408da0f959d2dda936fd
msgid "Nginx"
msgstr ""
#: ../../doc/tutorial/deployment.rst:114 271a543d8077413c8450cb62d811cd49
msgid "Apache"
msgstr ""
#: ../../doc/tutorial/deployment.rst:153 468c9bd93bf94365a1e7203d93fa1654
msgid "Recurrent jobs"
msgstr ""
#: ../../doc/tutorial/deployment.rst:155 d3f3c6197cdd4664a013462aaea3d735
msgid ""
"You might want to clean up your database to avoid it growing too much. "
"You can regularly delete expired tokens and authorization codes with:"
msgstr ""
#: ../../doc/tutorial/deployment.rst:164 503958ca36f24b0f96d906166e54b4eb
msgid "Webfinger"
msgstr ""
#: ../../doc/tutorial/deployment.rst:166 4c4d784e493a44e082095fa18c278023
msgid ""
"You may want to configure a `WebFinger`_ endpoint on your main website to"
" allow the automatic discovery of your Canaille installation based on the"
" account name of one of your users. For instance, suppose your domain is "
"``mydomain.example`` and your Canaille domain is "
"``auth.mydomain.example`` and there is a user ``john.doe``. A third-party"
" application could require to authenticate the user and ask them for a "
"user account. The user would give their account "
"``john.doe@mydomain.example``, then the application would perform a "
"WebFinger request at ``https://mydomain.example/.well-known/webfinger`` "
"and the response would contain the address of the authentication server "
"``https://auth.mydomain.example``. With this information the third party "
"application can redirect the user to the Canaille authentication page."
msgstr ""
#: ../../doc/tutorial/deployment.rst:168 8b5733a39b024333812a79f6415a2d7f
msgid ""
"The difficulty here is that the WebFinger endpoint must be hosted at the "
"top-level domain (i.e. ``mydomain.example``) while the authentication "
"server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). "
"Canaille provides a WebFinger endpoint, but if it is not hosted at the "
"top-level domain, a web redirection is required on the ``/.well-"
"known/webfinger`` path."
msgstr ""
#: ../../doc/tutorial/deployment.rst:170 004318975e4d42f9b9df8a4bd60b702e
msgid "Here are configuration examples for Nginx or Apache:"
msgstr ""
#: ../../doc/tutorial/deployment.rst:172 7654879ea9db4641898c7d3d54743625
msgid "Nginx webfinger configuration for a top level domain"
msgstr ""
#: ../../doc/tutorial/deployment.rst:181 c853d3e4d63943a587bd51261c17fea9
msgid "Apache webfinger configuration for a top level domain"
msgstr ""
#: ../../doc/tutorial/deployment.rst:191 e4ab313e4d6744fda9814e13e6921bed
msgid "Create the first user"
msgstr ""
#: ../../doc/tutorial/deployment.rst:193 4586783257664fe8b2d4ca1a1b56585f
msgid ""
"Once canaille is installed, soon enough you will need to add users. To "
"create your first user you can use the :ref:`canaille create "
"<cli_create>` CLI."
msgstr ""

View file

@ -1,25 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/tutorial/index.rst:2 33f796e322b4451abd546832196ba97a
msgid "Tutorial"
msgstr ""

View file

@ -1,131 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/tutorial/install.rst:2 b59e204f09ac48f492b7ef7bcff6ed98
msgid "Installation"
msgstr ""
#: ../../doc/tutorial/install.rst:6 f99a48aee6984df9af6e2ad5347ffa8b
msgid ""
"Canaille is under heavy development and may not fit a production "
"environment yet."
msgstr ""
#: ../../doc/tutorial/install.rst:8 3fcf21bae744418ea435e09abb6b6f66
msgid ""
"The installation of canaille consist in several steps, some of which you "
"can do manually or with command line tool:"
msgstr ""
#: ../../doc/tutorial/install.rst:11 3bd6c3c41fcd4b0bb8c3f0059f55411c
msgid "Get the code"
msgstr ""
#: ../../doc/tutorial/install.rst:13 0d6d6b5d40714920a8ca25b145d1e568
msgid ""
"As the moment there is no distribution package for canaille. However, it "
"can be installed with the ``pip`` package manager. Let us choose a place "
"for the canaille environment, like ``/opt/canaille/env``."
msgstr ""
#: ../../doc/tutorial/install.rst:24 681b57e7aae841408d6fa27aace13c4f
msgid "Extras"
msgstr ""
#: ../../doc/tutorial/install.rst:26 6da6e156d7794a87845411e6d5fd0715
msgid "Canaille provides different package options:"
msgstr ""
#: ../../doc/tutorial/install.rst:28 698250951765438faba672f8a3ac0ac3
msgid "`front` provides all the things needed to produce the user interface;"
msgstr ""
#: ../../doc/tutorial/install.rst:29 f4c143c1e2a04213bffeca345be71dd7
msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;"
msgstr ""
#: ../../doc/tutorial/install.rst:30 65190b5b12d44ba78da8de94f10f75eb
msgid "`ldap` provides the dependencies to enable the LDAP backend;"
msgstr ""
#: ../../doc/tutorial/install.rst:31 717175ded51a448aa8dee2d5858e2dc1
msgid "`sqlite` provides the dependencies to enable the SQLite backend;"
msgstr ""
#: ../../doc/tutorial/install.rst:32 03fe8dbedce84ffeb777a09b324c4a37
msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;"
msgstr ""
#: ../../doc/tutorial/install.rst:33 cdf98e8f28654e60a1f148ffcc82b212
msgid "`mysql` provides the dependencies to enable the MySQL backend;"
msgstr ""
#: ../../doc/tutorial/install.rst:34 41ae127f217d4408a769a03f744277ff
msgid "`sentry` provides sentry integration to watch Canaille exceptions;"
msgstr ""
#: ../../doc/tutorial/install.rst:35 e6018990bd354799b4d78bd2ff1e5511
msgid "`all` provides all the extras above."
msgstr ""
#: ../../doc/tutorial/install.rst:37 bf0755d51529446887714d41b0bc99cd
msgid "They can be installed with:"
msgstr ""
#: ../../doc/tutorial/install.rst:44 a1915e091b694983b8c9e0718492f3b0
msgid "Configure"
msgstr ""
#: ../../doc/tutorial/install.rst:46 bd3950b464614404a89bec231f6944d5
msgid ""
"Choose a path where to store your configuration file. You can pass any "
"configuration path with the ``CONFIG`` environment variable."
msgstr ""
#: ../../doc/tutorial/install.rst:54 3fc38f1d84e340a48a5009fe5204df38
msgid ""
"You should then edit your configuration file to adapt the values to your "
"needs. Look at the configuration details in the :doc:`configuration "
"<../references/configuration>` page."
msgstr ""
#: ../../doc/tutorial/install.rst:57 a1b9b7f8f97749a195ec325b70a5e3b4
msgid "Install"
msgstr ""
#: ../../doc/tutorial/install.rst:59 a4718a66711141cf8951f1db8cc14a0a
msgid ""
"The :ref:`install command <cli_install>` will apply most of the things "
"needed to get Canaille working. Depending on the configured "
":doc:`database <databases>` it will create the SQL tables, or install the"
" LDAP schemas for instance."
msgstr ""
#: ../../doc/tutorial/install.rst:68 b4ac66f046dd462882bff4bede7c3857
msgid "Check"
msgstr ""
#: ../../doc/tutorial/install.rst:70 d64b4d582c434a3d95382a11911ff4d7
msgid ""
"After a manual installation, you can check your configuration file using "
"the :ref:`check command <cli_install>`:"
msgstr ""

View file

@ -1,102 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 15:37+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <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.16.0\n"
#: ../../doc/tutorial/troubleshooting.rst:2 ce37b77d21724400acbd80e265a4ac54
msgid "Troubleshooting"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:5 0c6a32db27d64339a9abdadb2cbb407e
msgid "The web interface throws useless error messages"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:7 b2fa75eb63c74b3f8da9c6a0c900e358
msgid ""
"Unless the current user has admin :class:`permissions "
"<canaille.core.configuration.Permission>`, or the installation is in "
":attr:`~canaille.app.configuration.RootSettings.DEBUG` mode, error "
"messages won't be too technical. For instance, you can see *The request "
"you made is invalid*. To enable detailed error messages, you can "
"**temporarily** enable the "
":attr:`~canaille.app.configuration.RootSettings.DEBUG` configuration "
"parameter."
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:12 5bb67c25df7941c8a4e6986a24df3e17
msgid "How to manually install LDAP schemas?"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:16 d37ddcef8efa4a45bf43d91bae3df68a
msgid ""
"Schema installation can be automatically done using the :ref:`install "
"command <cli_install>`."
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:18 876a00863ba444f79f41613dcc59d7fe
msgid "As of OpenLDAP 2.4, two configuration methods are available:"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:20 a127193eeb824165901ce7fa3db06052
msgid ""
"The `deprecated <https://www.openldap.org/doc/admin26/slapdconf2.html>`_ "
"one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:21 fbad067339a546e993f5e244136f4742
msgid ""
"The new one, based on a configuration directory (generally "
"``/etc/ldap/slapd.d``)."
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:23 3a21e5904bab4c8d91739b12ee4c82a4
msgid ""
"Depending on the configuration method you use with your OpenLDAP "
"installation, you need to chose how to add the canaille schemas:"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:26 4b537fceb6554f588635a7bc5e09a63e
msgid "Old fashion: Copy the schemas in your filesystem"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:35 15ed45a91e074ec1b677c5682212c20d
msgid "New fashion: Use slapadd to add the schemas"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:37 295f1424bd904942bb28064cd696b85a
msgid "Be careful to stop your ldap server before running ``slapadd``"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:46 dd05d2ab930743b19e40359b27c22652
msgid "How to manually generate the OIDC keypair?"
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:50 a5c7b03ca6c44029bf326dc44be3c7e5
msgid ""
"The keypair generation can be automatically done using the :ref:`install "
"command <cli_install>`."
msgstr ""
#: ../../doc/tutorial/troubleshooting.rst:52 0dd3ae7d46dc416dbec633b5e6e7b8ed
msgid ""
"Canaille needs a key pair to sign OIDC tokens. You can customize those "
"commands, as long as they match the ``JWT`` section of your configuration"
" file."
msgstr ""

View file

@ -10,7 +10,7 @@ After you have edited translatable strings, you should extract the messages with
.. code-block:: bash .. code-block:: bash
sphinx-build --builder gettext doc doc/gettext sphinx-build --builder gettext doc doc/locales
Language addition Language addition
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
@ -19,11 +19,11 @@ You can add a new language manually with the following command, however this sho
.. code-block:: bash .. code-block:: bash
sphinx-intl update --pot-dir build/gettext --locale-dir doc/locales -l fr sphinx-intl update --pot-dir doc/locales --locale-dir doc/locales -l fr
Build the documentation in another language Build the documentation in another language
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash .. code-block:: bash
sphinx-build --builder html --define language=fr doc build/html/fr sphinx-build --builder html --define language=fr doc build/sphinx/html/fr