canaille-globuzma/doc/locales/fr/LC_MESSAGES/doc.po
Éloi Rivard 3b187515c4
Translated using Weblate (French)
Currently translated at 81.6% (841 of 1030 strings)

Translation: Canaille/Documentation
Translate-URL: https://hosted.weblate.org/projects/canaille/documentation/fr/
2024-12-08 23:40:42 +01:00

6568 lines
266 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.
#
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: contact@yaal.coop\n"
"POT-Creation-Date: 2024-12-08 12:21+0100\n"
"PO-Revision-Date: 2024-12-08 22:40+0000\n"
"Last-Translator: Éloi Rivard <eloi.rivard@nubla.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/canaille/"
"documentation/fr/>\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"
"X-Generator: Weblate 5.9-dev\n"
"Generated-By: Babel 2.16.0\n"
#: ../development/changelog.rst:2 3fb33c37ddc0459280f3c58be943008e
msgid "Release notes"
msgstr "Notes de version"
#: ../development/changelog.rst:4 67e645fac3b646bba12959afa71710cc
msgid "All notable changes to this project will be documented in there."
msgstr "Tous les changements notables du projet seront documentés ici."
#: ../development/changelog.rst:6 6c5d0b8435cf4001afa1fe74104daf7a
msgid ""
"The format is based on `Keep a Changelog <https://keepachangelog.com/"
"en/1.0.0/>`_, and this project adheres to `Semantic Versioning <https://"
"semver.org/spec/v2.0.0.html>`_."
msgstr ""
"Le format est basé sur `Keep a Changelog <https://keepachangelog.com/"
"fr/1.0.0/>`_, et ce projet adhère à la politique de `versionnage sémantique "
"<https://semver.org/lang/fr/spec/v2.0.0.html>`_."
#: ../../CHANGES.rst:2 c415689d242946298da972c97d5bb0c4
msgid "[0.0.57] - Unreleased"
msgstr "[0.0.57] - Inédit"
#: ../../CHANGES.rst:5 ../../CHANGES.rst:27 ../../CHANGES.rst:55
#: ../../CHANGES.rst:74 ../../CHANGES.rst:81 ../../CHANGES.rst:100
#: ../../CHANGES.rst:160 ../../CHANGES.rst:186 ../../CHANGES.rst:201
#: ../../CHANGES.rst:250 ../../CHANGES.rst:276 ../../CHANGES.rst:295
#: ../../CHANGES.rst:303 ../../CHANGES.rst:312 ../../CHANGES.rst:338
#: ../../CHANGES.rst:373 ../../CHANGES.rst:399 ../../CHANGES.rst:448
#: ../../CHANGES.rst:476 ../../CHANGES.rst:506 ../../CHANGES.rst:562
#: ../../CHANGES.rst:595 ../../CHANGES.rst:616 ../../CHANGES.rst:626
#: ../../CHANGES.rst:649 ../../CHANGES.rst:716 ../../CHANGES.rst:754
#: ../../CHANGES.rst:771 ../../CHANGES.rst:807 91a8054efa234209906812cdd41bd586
#: 2e9453d4722144fd9ad7f53b28a7cb37 f290d44be0ec48a6b509a60a763954d6
msgid "Added"
msgstr "Ajouté"
#: ../../CHANGES.rst:6 05060126fea740ef82fba8246132aa6e
msgid "Password compromission check :issue:`179`"
msgstr "Vérification de la compromission des mots de passe :issue:`179`"
#: ../../CHANGES.rst:7 a90b270f7e144a4b81babbac96f5ff22
msgid ""
":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:"
"`~canaille.core.configuration.CoreSettings."
"ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration."
"CoreSettings.API_URL_HIBP` :issue:`179`"
msgstr ""
":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` et :attr:"
"`~canaille.core.configuration.CoreSettings."
"ENABLE_PASSWORD_COMPROMISSION_CHECK` et :attr:`~canaille.core.configuration."
"CoreSettings.API_URL_HIBP` :issue:`179`"
#: ../../CHANGES.rst:11 2cfcbdba2e9541dbab610bc724a2683a
msgid "Implement OIDC client_credentials flow. :issue:`207`"
msgstr "Implémentation du flux OIDC `client_credentials`. :issue:`207`"
#: ../../CHANGES.rst:12 1e36a8464f6045708cf07b39bcdfea1c
msgid "Button in the client admin page to create client tokens."
msgstr "Bouton de création de jetons sur la page dadministration des clients."
#: ../../CHANGES.rst:15 ../../CHANGES.rst:35 ../../CHANGES.rst:48
#: ../../CHANGES.rst:60 ../../CHANGES.rst:85 ../../CHANGES.rst:93
#: ../../CHANGES.rst:141 ../../CHANGES.rst:167 ../../CHANGES.rst:219
#: ../../CHANGES.rst:256 ../../CHANGES.rst:325 ../../CHANGES.rst:343
#: ../../CHANGES.rst:381 ../../CHANGES.rst:420 ../../CHANGES.rst:455
#: ../../CHANGES.rst:498 ../../CHANGES.rst:602 ../../CHANGES.rst:656
#: ../../CHANGES.rst:688 ../../CHANGES.rst:702 254357b217fe4a309d66a400497a104a
msgid "Changed"
msgstr "Modifié"
#: ../../CHANGES.rst:16 bb196cd8528b48628628ab53c5288b49
msgid ""
"PostgreSQL and MySQL extras does not rely on libraries that need to be "
"compiled."
msgstr ""
"Les extras PostgreSQL et MySQL ne dépendent plus de bibliothèques qui "
"doivent être compilées."
#: ../../CHANGES.rst:17 c36865875c264bb4a34d614ea2be23cf
msgid ""
"``.env`` files are not loaded by default. The ``ENV_FILE`` env var must be "
"passed so ``.env`` files are loaded."
msgstr ""
"Les fichiers ``.env`` ne sont pas chargés par défaut. La variable "
"d'environnement ``ENV_FILE`` doit être passé pour que les fichiers ``.env`` "
"soient chargées."
#: ../../CHANGES.rst:20 045b041136be49de8d54674ad57fea87
msgid "[0.0.56] - 2024-11-07"
msgstr "[0.0.56] - 2024-11-07"
#: ../../CHANGES.rst:23 ../../CHANGES.rst:65 ../../CHANGES.rst:104
#: ../../CHANGES.rst:112 ../../CHANGES.rst:120 ../../CHANGES.rst:127
#: ../../CHANGES.rst:134 ../../CHANGES.rst:148 ../../CHANGES.rst:178
#: ../../CHANGES.rst:191 ../../CHANGES.rst:209 ../../CHANGES.rst:228
#: ../../CHANGES.rst:236 ../../CHANGES.rst:262 ../../CHANGES.rst:270
#: ../../CHANGES.rst:290 ../../CHANGES.rst:320 ../../CHANGES.rst:352
#: ../../CHANGES.rst:360 ../../CHANGES.rst:386 ../../CHANGES.rst:406
#: ../../CHANGES.rst:430 ../../CHANGES.rst:440 ../../CHANGES.rst:461
#: ../../CHANGES.rst:469 ../../CHANGES.rst:492 ../../CHANGES.rst:515
#: ../../CHANGES.rst:527 ../../CHANGES.rst:536 ../../CHANGES.rst:545
#: ../../CHANGES.rst:554 ../../CHANGES.rst:574 ../../CHANGES.rst:581
#: ../../CHANGES.rst:631 ../../CHANGES.rst:639 ../../CHANGES.rst:664
#: ../../CHANGES.rst:672 ../../CHANGES.rst:680 ../../CHANGES.rst:693
#: ../../CHANGES.rst:707 ../../CHANGES.rst:739 ../../CHANGES.rst:762
#: ../../CHANGES.rst:793 13ee0de3f7db4046b8399917e8d52e0b
#: f251ffbac69548f6b747cd4b8ea6f8ec c582172293c74e6e9df5bb65756c4c6c
#: 839f52c15ed94f0ba4a9356f392f728b
msgid "Fixed"
msgstr "Corrigé"
#: ../../CHANGES.rst:24 10c707b06b884b168b2dd26bffd7bf76
msgid ""
"With LDAP backend, updating another user groups could result in a permission "
"lost for the editor. :issue:`202`"
msgstr ""
"Avec la base de données LDAP, la mise à jour des groupes dutilisateurs "
"pouvait engendrer une perte de permissions de léditeur. :issue:`202`"
#: ../../CHANGES.rst:28 efa1fc20329f42918fe6a530617cf102
msgid ""
":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and :"
"attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` "
"configuration options :issue:`174`"
msgstr ""
"Options de configuration :attr:`~canaille.core.configuration.CoreSettings."
"MAX_PASSWORD_LENGHT` et :attr:`~canaille.core.configuration.CoreSettings."
"MIN_PASSWORD_LENGHT` :issue:`174`"
#: ../../CHANGES.rst:30 cdab69b7537c452caa3eadb572993a40
msgid "Password strength visual indicator. :issue:`174`"
msgstr "Indicateur visuel de la force des mots de passe :issue:`174`"
#: ../../CHANGES.rst:31 2ae6bad543d64621886630d3db7832e6
msgid "Security events logs. :issue:`177`"
msgstr "Journalisation des évènements de sécurité. :issue:`177`"
#: ../../CHANGES.rst:32 40ab5f1ed3bc406fb662d0025e5b3212
msgid "Support for Python 3.13. :pr:`186`"
msgstr "Support de Python 3.13. :pr:`186`"
#: ../../CHANGES.rst:36 c7940e351aac4939b964ccb80cebd616
msgid "Update to `HTMX` 2.0.3. :pr:`184`"
msgstr "Mise à jour vers HTMX 2.0.3. :pr:`184`"
#: ../../CHANGES.rst:37 dfc1569ae0ec412d86503a0695522fa5
msgid "Migrate the Python project management tool from poetry to uv. :pr:`187`"
msgstr ""
"Migration de poetry à uv comme outil de gestion de projet Python. :pr:`187`"
#: ../../CHANGES.rst:38 40c97bec2553487fa62efc486d3ee444
msgid ""
"The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` "
"and ``mysql``."
msgstr ""
"Lextra de paquet ``sql`` a été divisé en ``sqlite``, ``postgresql`` et "
"``mysql``."
#: ../../CHANGES.rst:41 ../../CHANGES.rst:391 ../../CHANGES.rst:799
#: bc1a20b5783a4fe38fa201438a8075e5
msgid "Removed"
msgstr "Supprimé"
#: ../../CHANGES.rst:42 3f97d00692d047dbbecb5c18a2d45b07
msgid "End support for Python 3.9. :pr:`179`"
msgstr "Fin de support pour Python 3.9. :pr:`179`"
#: ../../CHANGES.rst:45 4a57056601f148969254d2f049e0f460
msgid "[0.0.55] - 2024-08-30"
msgstr "[0.0.55] - 2024-08-30"
#: ../../CHANGES.rst:49 a037ad5da20049ad82e9f9b0d766cfbb
msgid "Use poetry-core build backend. :pr:`178`"
msgstr ""
"Utilisation de `poetry-core` comme outil de construction de paquets. :pr:"
"`178`"
#: ../../CHANGES.rst:52 d6bf96b8e5cc4a6f8e099b48c1951a6a
msgid "[0.0.54] - 2024-07-25"
msgstr "[0.0.54] - 2024-07-25"
#: ../../CHANGES.rst:56 062bcc176aac499384187fcb06e2a00b
msgid ""
"Group member removal can be achieved from the group edition page. :issue:"
"`192`"
msgstr ""
"La suppression des membres de groupes peut être effectuée depuis la page "
"dédition des groupes. :issue:`192`"
#: ../../CHANGES.rst:57 8680469549c74d37a52b1c6252c74d57
msgid "Model management commands. :issue:`117` :issue:`54`"
msgstr "Commande de gestion des modèles. :issue:`117` :issue:`54`"
#: ../../CHANGES.rst:61 c19428c67d8f4d198d0ab97defe14fb3
msgid "Model `identifier_attributes` are fixed."
msgstr "Lattribut `identifier_attributes` des models est fixe."
#: ../../CHANGES.rst:62 571f38b1484b43e2beed6f33eb675700
msgid "Bump to `HTMX` 1.9.12. :pr:`172`"
msgstr "Mise-à-jour vers `HTMX` 1.9.12. :pr:`172`"
#: ../../CHANGES.rst:67 9e54da898699471194477836791f08a6
msgid "Dark theme colors for better readability."
msgstr "Couleurs des champs dans le thème sombre."
#: ../../CHANGES.rst:68 4e0f2a8e03a447e59cb0a2b0e6d208f1
msgid ""
"Crash for passwordless users at login when no SMTP server was configured."
msgstr ""
"Erreur lorsque les utilisateurs sans mots de passe lorsquaucun serveur SMTP "
"na été configuré."
#: ../../CHANGES.rst:71 a9273241db7e4137bac5973b20e3ec5d
msgid "[0.0.53] - 2024-04-22"
msgstr "[0.0.53] - 2024-04-22"
#: ../../CHANGES.rst:75 17fbf739a68a4e59b5cc6da8befa1c6f
msgid ""
"`env_prefix` :meth:`~canaille.create_app` variable can select the "
"environment var prefix."
msgstr ""
"La variable `env_prefix`de la méthode :meth:`~canaille.create_app` permet de "
"choisir le préfixe des variables denvironnement."
#: ../../CHANGES.rst:78 7bdc8f732053463b95353cdf5c994838
msgid "[0.0.52] - 2024-04-22"
msgstr "[0.0.52] - 2024-04-22"
#: ../../CHANGES.rst:82 bc7d1037cdfd40a69044f465467f6834
msgid "`env_file` create_app variable can customize/disable the .env file."
msgstr ""
"La variable `env_file` de la méthode `create_app` permet de désactiver ou "
"personnaliser le fichier `.env`."
#: ../../CHANGES.rst:86 9685a5e5a13147f093ac57e2039fe11b
msgid "Locked users cannot be impersonated anymore."
msgstr "Les comptes verrouillés ne peuvent plus être incarnés."
#: ../../CHANGES.rst:87 1b83a24a97384c2faab67e915701e6b2
msgid "Minimum Python requirement is 3.9."
msgstr "La version minimum requise de Python est 3.9."
#: ../../CHANGES.rst:90 e88f01e3f89f45f2a63b456f8e304d3d
msgid "[0.0.51] - 2024-04-09"
msgstr "[0.0.51] - 2024-04-09"
#: ../../CHANGES.rst:94 aae3d126989840578ec2b08058aad688
msgid "Display the menu bar on error pages."
msgstr "Affichage de la barre de menu sur les pages derreur."
#: ../../CHANGES.rst:97 22b11dc18595450fa5e7fe5f35824ebe
msgid "[0.0.50] - 2024-04-09"
msgstr "[0.0.50] - 2024-04-09"
#: ../../CHANGES.rst:101 fc1bc503759c4beb943e9dcbf0c4a9cf
msgid "Sign in/out events are logged in. :issue:`177`"
msgstr ""
"Journalisation des évènements de connexion et déconnexion. :issue:`177`"
#: ../../CHANGES.rst:105 cfe0182123c94bcc9ee847739bd2e114
msgid "`HTMX` and `JAVASCRIPT` configuration settings."
msgstr "Paramètres de configuration `HTMX` et `JAVASCRIPT`."
#: ../../CHANGES.rst:106 3bc7c83763d34549bac91df86a22b3a0
msgid "Compatibility with old sessions IDs."
msgstr "Compatibilité avec les anciens identifiants de session."
#: ../../CHANGES.rst:109 cdee0bee34024d21bace2d77ff637ed9
msgid "[0.0.49] - 2024-04-08"
msgstr "[0.0.49] - 2024-04-08"
#: ../../CHANGES.rst:113 f9c9585c305d47628adffcae287229d2
msgid "LDAP user group removal."
msgstr "Suppression des groupes dutilisateurs avec LDAP."
#: ../../CHANGES.rst:114 c25c5c6a9cca4061be6502cae5e86ba2
msgid ""
"Display an error message when trying to remove the last user from a group."
msgstr ""
"Affichage dun message derreur lors de tentatives de suppression du dernier "
"utilisateur dun groupe."
#: ../../CHANGES.rst:117 5e0c66b55801444497954839297b97eb
msgid "[0.0.48] - 2024-04-08"
msgstr "[0.0.48] - 2024-04-08"
#: ../../CHANGES.rst:121 bd9920a130844ee897863a6b649484e2
msgid "LDAP ``objectClass`` guessing exception."
msgstr "Exception lors de la détection des classes dobjet LDAP."
#: ../../CHANGES.rst:124 93cf829932204311ba399ae713aff29f
msgid "[0.0.47] - 2024-04-08"
msgstr "[0.0.47] - 2024-04-08"
#: ../../CHANGES.rst:128 b7a5d3351a334b0592b12373e1c7afa6
msgid "Lazy permission loading exception."
msgstr "Exception lors du chargement paresseux des permissions."
#: ../../CHANGES.rst:131 c6000ae4f0fc4d488ab180c3aa9eb144
msgid "[0.0.46] - 2024-04-08"
msgstr "[0.0.46] - 2024-04-08"
#: ../../CHANGES.rst:135 db4476f22ad049f49833696323eb1b33
msgid ""
"Saving an object with the LDAP backend keeps the ``objectClass`` un-managed "
"by Canaille. :pr:`171`"
msgstr ""
"La sauvegarde des objets avec LDAP garde les valeurs de ``objectClass`` non "
"gérés par Canaille. :pr:`171`"
#: ../../CHANGES.rst:138 d7117b0322b549ff87b73b8e4c839915
msgid "[0.0.45] - 2024-04-04"
msgstr "[0.0.45] - 2024-04-04"
#: ../../CHANGES.rst:142 9690ab893eef4290a52b1137f24b9be8
msgid ""
"Internal indexation mechanism of :class:`~canaille.backends.memory.model."
"MemoryModel`."
msgstr ""
"Mécanisme dindexation interne de :class:`~canaille.backends.memory.model."
"MemoryModel`."
#: ../../CHANGES.rst:145 be79650410904879b53da2c62ac092d5
msgid "[0.0.44] - 2024-03-29"
msgstr "[0.0.44] - 2024-03-29"
#: ../../CHANGES.rst:149 1c2533bc36b548c59361d7b3e304cce6
msgid "Fix the default LDAP ``USER_FILTER`` value."
msgstr "Correction de la valeur par défaut de ``USER_FILTER`` pour LDAP."
#: ../../CHANGES.rst:150 c429e79bd5aa46edb7b4cd1bd87c3ad8
msgid "Fix the OIDC feature detection."
msgstr "Correction de la détection de la fonctionnalité OIDC."
#: ../../CHANGES.rst:153 51a43a574cc943b5912effdaa67f8690
msgid "[0.0.43] - 2024-03-29"
msgstr "[0.0.43] - 2024-03-29"
#: ../../CHANGES.rst:157 ../../CHANGES.rst:416 02e8eccba3b74e889a68c78dc51e0a24
msgid "Configuration files must be updated."
msgstr "Les fichiers de configuration doivent être mis à jour."
#: ../../CHANGES.rst:162 a39fba5f25754fdc9f0f339142ff0320
msgid "Add ``created`` and ``last_modified`` datetime for all models."
msgstr ""
"Ajout des dates ``created`` et ``last_modified`` pour tous les modèles."
#: ../../CHANGES.rst:163 b1e37ddf62994798a70a23cff76ed4d6
msgid "Sitemap to the documentation. :pr:`169`"
msgstr "Cartographie de la documentation. :pr:`169"
#: ../../CHANGES.rst:164 54cf20bc59af4634af6b3f2d0e10c5e9
msgid ""
"Configuration management with `pydantic-settings`. :issue:`138` :pr:`170`"
msgstr ""
"Gestion des paramètres de configuration avec `pydantic-settings`. :issue:"
"`138` :pr:`170`"
#: ../../CHANGES.rst:169 689b4f88ba4b43db8c8b1a7bff0aebe6
msgid "Use default Python logging configuration format. :issue:`188` :pr:`165`"
msgstr ""
"Utilisation de la configuration de journalisation par défaut de Python. :"
"issue:`188` :pr:`165`"
#: ../../CHANGES.rst:170 7d18c66450654e25a65749ea273b859d
msgid "Bump to `HTMX` 1.99.11. :pr:`166`"
msgstr "Mise à jour vers ``HTMX`` 1.9.11. :pr:`166`"
#: ../../CHANGES.rst:171 9d053f12577548bc8cff1add00376bae
msgid ""
"Use the standard tomllib Python module instead of `toml` starting from "
"Python 3.11. :pr:`167`"
msgstr ""
"Utilisation du module Python standard `tomllib` à la place de `toml` à "
"partir de Python 3.11. :pr:`167`"
#: ../../CHANGES.rst:172 fd8c1c0314b2465c9cacb4ba593eae77
msgid "Use shibuya as the documentation theme :pr:`168`"
msgstr "Utilisation du thème de documentation `shibuya`. :pr:`168`"
#: ../../CHANGES.rst:175 abc0b3ba739e4f99866d02027d8128d2
msgid "[0.0.42] - 2023-12-29"
msgstr "[0.0.42] - 2023-12-29"
#: ../../CHANGES.rst:180 74e8932123b744b2809d370b36980326
msgid "Avoid to fail on imports if ``cryptography`` is missing."
msgstr ""
"Correction dune erreur dimport lorsque ``cryptography`` était manquant."
#: ../../CHANGES.rst:183 41f209b7a9054599b7b71d4fab3afe8f
msgid "[0.0.41] - 2023-12-25"
msgstr "[0.0.41] - 2023-12-25"
#: ../../CHANGES.rst:188 77ff8fdeadf94e2f8696b2f5b9bd9349
msgid ""
"OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:"
"`185` :pr:`164`"
msgstr ""
"Support pour la valeur ``create`` du paramètre ``prompt`` dOIDC. :issue:"
"`185` :pr:`164`"
#: ../../CHANGES.rst:193 8940d9836a9f46a09613c3646e1d55f8
msgid ""
"Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during "
"OIDC dynamic registration."
msgstr ""
"Configuration correcte de l:attr:`~canaille.oidc.basemodels.Client."
"audience` durant lenregistrement dynamique OIDC."
#: ../../CHANGES.rst:194 bb9a9230771445b6a7c93f042fb289ee
msgid ""
"``post_logout_redirect_uris`` was ignored during OIDC dynamic registration."
msgstr ""
"``post_logout_redirect_uris`` était ignoré durant lenregistrement dynamique "
"OIDC."
#: ../../CHANGES.rst:195 b5d0341447ef443b969d2a48457442f2
msgid "Group field error prevented the registration form validation."
msgstr ""
"Une erreur sur le champ `groupe` empêchait la validation du formulaire "
"denregistrement."
#: ../../CHANGES.rst:198 7bcad6150cbc4883817538eb23bed3bd
msgid "[0.0.40] - 2023-12-22"
msgstr "[0.0.40] - 2023-12-22"
#: ../../CHANGES.rst:203 aae4204166c443f99e04d84842dd6dd9
msgid "The ``THEME`` setting can be a relative path."
msgstr "Le paramètre de configuration ``THEME`` peut être un chemin relatif."
#: ../../CHANGES.rst:206 26224cfa5ee647a2b15239a78065f5f7
msgid "[0.0.39] - 2023-12-15"
msgstr "[0.0.39] - 2023-12-15"
#: ../../CHANGES.rst:211 14b2b67c379045d681ee712797f44328
msgid "Crash when no ACL were defined."
msgstr "Erreur lorsquaucun ACL nétait défini."
#: ../../CHANGES.rst:212 38649598ac954d29843b54b15343dd15
msgid "OIDC Userinfo endpoint is also available in POST."
msgstr ""
"Le point de terminaison OIDC `Userinfo` est aussi disponible avec la méthode "
"POST."
#: ../../CHANGES.rst:213 ed1da2958a1646fd82c70171a5c04317
msgid "Fix redirection after password reset. :issue:`159`"
msgstr ""
"Correction de la redirection après réinitialisation du mot de passe. :issue:"
"`159`"
#: ../../CHANGES.rst:216 8f2bc47f69554f539aa2836958029d59
msgid "[0.0.38] - 2023-12-15"
msgstr "[0.0.38] - 2023-12-15"
#: ../../CHANGES.rst:221 24f252671c9a4a3590e94e5e563e4d19
msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`"
msgstr "Conversion de toutes les images `PNG` en `Webp`. :pr:`162`"
#: ../../CHANGES.rst:222 8a1d423f79f749868c06a775e9c21bd2
msgid "Update to Flask 3. :issue:`161` :pr:`163`"
msgstr "Mise à jour vers Flask 3. :issue:`161` :pr:`163`"
#: ../../CHANGES.rst:225 9d53638e5933499baafec12390f02e23
msgid "[0.0.37] - 2023-12-01"
msgstr "[0.0.37] - 2023-12-01"
#: ../../CHANGES.rst:230 5ed255dd094a4a3aae1b75edf54001ad
msgid "Handle 4xx and 5xx error codes with HTMX. :issue:`171` :pr:`161`"
msgstr ""
"Gestion des codes derreur 4xx et 5xx avec `HTMX`. :issue:`171` :pr:`161`"
#: ../../CHANGES.rst:233 26d16685ada341a29bf6ee6e98997128
msgid "[0.0.36] - 2023-12-01"
msgstr "[0.0.36] - 2023-12-01"
#: ../../CHANGES.rst:238 2cfddfd6843e4cbfb1b645c84bc70322
msgid "Avoid crashing when LDAP groups references unexisting users."
msgstr ""
"Correction dune erreur avec LDAP lorsque des groupes référencent des "
"utilisateurs inexistants."
#: ../../CHANGES.rst:239 f5714a32e81841e29f2619f6ee5464e8
msgid ""
"Password reset and initialization mails were only sent to the preferred user "
"email address."
msgstr ""
"Les courriels dinitialisation et de réinitialisation de mots de passe "
"nétaient envoyés quà ladresse préférée des utilisateurs."
#: ../../CHANGES.rst:241 4e121ada1cc24b7b8051d085b0ce464b
msgid ""
"Password reset and initialization mails were not sent at all the user "
"addresses if one email address could not be reached."
msgstr ""
"Les courriels dinitialisation et de réinitialisation de mots de passe "
"nétaient pas tous envoyés si lun des envois échouait."
#: ../../CHANGES.rst:243 c5fc8c86d3df4732b3a06f70dd89af18
msgid "Password comparison was too permissive on login."
msgstr "La comparaison des mots de passe était trop permissive à la connexion."
#: ../../CHANGES.rst:244 36f936a6dd8c41c5bc833d928f347321
msgid "Encrypt passwords in the SQL backend."
msgstr "Chiffrement des mots de passe dans la base de données SQL."
#: ../../CHANGES.rst:247 76befacfb135435fbee6ee0fe07f40e5
msgid "[0.0.35] - 2023-11-25"
msgstr "[0.0.35] - 2023-11-25"
#: ../../CHANGES.rst:252 14d361d80e4c429f929b943d3321e895
msgid ""
"Refresh token grant supports other client authentication methods. :pr:`157`"
msgstr ""
"Support de méthodes dauthentifications additionnels pour les jetons de "
"rafraîchissement. :pr:`157`"
#: ../../CHANGES.rst:253 c52cda2685214bcab533db539acee007
msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`"
msgstr ""
"Support des bases de données SQL avec SQLAlchemy. :issue:`30` :pr:`158`"
#: ../../CHANGES.rst:258 57670f55b7644a0888ab65cd2da2fd8c
msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`"
msgstr ""
"La cardinalité des attributs des modèles est un peu plus ressemblante à "
"celle des attributs de modèles SCIM. :pr:`155`"
#: ../../CHANGES.rst:259 f4ef25b7b38b42a48fb2a32c5cd8888f
msgid "Bump to `HTMX` 1.9.9. :pr:`159`"
msgstr "Mise à jour vers `HTMX` 1.9.9. :pr:`159`"
#: ../../CHANGES.rst:264 49b0b7da40204fdeaf40c5281235c2a6
msgid "Disable `HTMX` boosting during the OIDC dance. :pr:`160`"
msgstr ""
"Désactivation de `HTMX` pendant la phase didentification OIDC. :pr:`160`"
#: ../../CHANGES.rst:267 db372dee122e4b4fb18c2c99dd056ce2
msgid "[0.0.34] - 2023-10-02"
msgstr "[0.0.34] - 2023-10-02"
#: ../../CHANGES.rst:272 a4b5211e96894c5d9d51b2630d6aea17
msgid ""
"Canaille installations without account lockabilty could not delete users. :"
"pr:`153`"
msgstr ""
"Les installations de Canaille nayant pas la fonctionnalité de verrouillage "
"des comptes ne pouvaient pas supprimer des utilisateurs. :pr:`153`"
#: ../../CHANGES.rst:278 4f4ca04b08a04dcb8f6a2eb6605f0e13
msgid ""
"If users register or authenticate during a OAuth Authorization phase, they "
"get redirected back to that page afterwards. :issue:`168` :pr:`151`"
msgstr ""
"Si les utilisateurs senregistrent durant la phase dauthentification OAuth, "
"ils sont ensuite redirigés vers la page dont ils viennent. :issue:`168` :pr:"
"`151`"
#: ../../CHANGES.rst:281 298ffe26093441918be8b38d13f0cc58
msgid ""
"The `flask-babel` and `pytz` libraries are now part of the `front` packaging "
"extras."
msgstr ""
"Les bibliothèques `flask-babel` et `pytz` font désormais partie de lextra "
"d'empaquetage `front`."
#: ../../CHANGES.rst:282 ccb502180d634f11ad173619af1b68d8
msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`"
msgstr "Mise à jour vers `fomantic-ui` 2.9.3. :pr:`152`"
#: ../../CHANGES.rst:283 7413676f512d4473972484920ff5f060
msgid "Bump to `HTMX` 1.9.6. :pr:`154`"
msgstr "Mise à jour vers `HTMX` 1.9.6. :pr:`154`"
#: ../../CHANGES.rst:284 7905327465c44c09b2a10854abe79960
msgid "Support for Python 3.12. :pr:`155`"
msgstr "Support de Python 3.12 :pr:`155`"
#: ../../CHANGES.rst:287 808e57e560f74a25b60029fbd6531d2e
msgid "[0.0.33] - 2023-08-26"
msgstr "[0.0.33] - 2023-08-26"
#: ../../CHANGES.rst:292 1179dc27648248188fdecf5696fd5045
msgid "OIDC jwks endpoint do not return empty `kid` claim."
msgstr ""
"Le point de terminaison OIDC jwks ne retourne plus le paramètre `kid` "
"lorsquil est vide."
#: ../../CHANGES.rst:297 b8b2caca239b4b609143ffd267522a16
msgid "Documentation details on the Canaille models."
msgstr "Documentation des modèles de Canaille."
#: ../../CHANGES.rst:300 dd35ed0e27664b6b954e9b39881f14bc
msgid "[0.0.32] - 2023-08-17"
msgstr "[0.0.32] - 2023-08-17"
#: ../../CHANGES.rst:305 bdcae061315a4e92a6bc1a48475cb351
msgid "Additional inmemory backend. :issue:`30` :pr:`149`"
msgstr ""
"Implémentation dun connecteur de base de données en mémoire. :issue:`30` :"
"pr:`149`"
#: ../../CHANGES.rst:306 c39cbed721254ce5ad9c250de1e7ea41
msgid "Installation extras. :issue:`167` :pr:`150`"
msgstr "Définition de dépendances `extra`. :issue:`167` :pr:`150`"
#: ../../CHANGES.rst:309 5311648e4c714ed29e89e9644167f963
msgid "[0.0.31] - 2023-08-15"
msgstr "[0.0.31] - 2023-08-15"
#: ../../CHANGES.rst:314 a6a4b510a0ac4b4ebeb9160510f72d77
msgid ""
"Configuration option to disable the forced usage of OIDC `nonce` parameter. :"
"pr:`143`"
msgstr ""
"Option de configuration pour désactiver lutilisation du paramètre OIDC "
"`nonce`. :pr:`143`"
#: ../../CHANGES.rst:315 37eb24ef005e44da8ae0f4c48bda766c
msgid "Validate phone numbers with a regex. :pr:`146`"
msgstr ""
"Validation des numéros de téléphone avec des expressions régulières. :pr:"
"`146`"
#: ../../CHANGES.rst:316 2be2120a0500430a8d854d1b8f19a0bf
msgid "Email verification. :issue:`41` :pr:`147`"
msgstr "Vérification des adresses email. :issue:`41`:pr:`147`"
#: ../../CHANGES.rst:317 d3be95492ef348efa77976515d4ffca9
msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`"
msgstr "Enregistrement de comptes utilisateur. :issue:`55` :pr:`133` :pr:`148`"
#: ../../CHANGES.rst:322 1a3da0153c2b451d99665d2b61c512f2
msgid "The `check` command uses the default configuration values."
msgstr "La commande `check` utilise les valeurs de configuration par défaut."
#: ../../CHANGES.rst:327 15f35fa96af04e508b1a6448d866cb5f
msgid "Modals do not need use Javascript at the moment. :issue:`158` :pr:`144`"
msgstr ""
"Les fenêtres modales ne nécessitent plus lutilisation de Javascript. :issue:"
"`158` :pr:`144`"
#: ../../CHANGES.rst:330 add3188842de44b691dfbe3152546f7b
msgid "[0.0.30] - 2023-07-06"
msgstr "[0.0.30] - 2023-07-06"
#: ../../CHANGES.rst:334 b96e981450334eee84128d7dffb40d8f
msgid ""
"Configuration files must be updated. Check the new format with ``git diff "
"0.0.29 0.0.30 canaille/conf/config.sample.toml``"
msgstr ""
"Les fichiers de configuration doivent être mis à jour. Vérifiez le nouveau "
"format avec ``git diff 0.0.29 0.0.30 canaille/conf/config.sample.toml``"
#: ../../CHANGES.rst:340 ab83051dda0b48d185846e49011f2429
msgid "Configuration option to disable Javascript. :pr:`141`"
msgstr "Option de configuration pour désactiver Javascript. :pr:`141"
#: ../../CHANGES.rst:345 85fb804c891f444c9de116e6e4771526
msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja."
msgstr "Le paramètre de configuration ``USER_FILTER`` est analysé avec Jinja."
#: ../../CHANGES.rst:346 42d91f7cf5a3438a8bcb0bd5c193f1ea
msgid ""
"Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and "
"``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``."
msgstr ""
"La configuration utilise ``PRIVATE_KEY_FILE`` à la place de ``PRIVATE_KEY`` "
"et ``PUBLIC_KEY_FILE`` à la place de ``PUBLIC_KEY``."
#: ../../CHANGES.rst:349 30736e0e4b854b46940e80c38023946a
msgid "[0.0.29] - 2023-06-30"
msgstr "[0.0.29] - 2023-06-30"
#: ../../CHANGES.rst:354 89d319fb81e148cb8f82f4b1a5a5390c
msgid "Disabled `HTMX` boosting on OIDC forms to avoid errors."
msgstr ""
"Désactivation d`HTMX` sur les formulaires OIDC pour éviter des erreurs lors "
"des redirections."
#: ../../CHANGES.rst:357 68d32ee84fa642dfbf358ef907193eb8
msgid "[0.0.28] - 2023-06-30"
msgstr "[0.0.28] - 2023-06-30"
#: ../../CHANGES.rst:362 5490daf53fd144c0b6b360e90bf5667b
msgid "A template variable was misnamed."
msgstr "Une variable de template était mal nommée."
#: ../../CHANGES.rst:365 c65a251ed68a49beaff42740c12ce76a
msgid "[0.0.27] - 2023-06-29"
msgstr "[0.0.27] - 2023-06-29"
#: ../../CHANGES.rst:369 ccf84fb0d4cd47058c3849498bd92259
msgid ""
"Configuration files must be updated. Check the new format with ``git diff "
"0.0.26 0.0.27 canaille/conf/config.sample.toml``"
msgstr ""
"Les fichiers de configuration doivent être mis à jour. Vérifiez le nouveau "
"format avec ``git diff 0.0.26 0.0.27 canaille/conf/config.sample.toml``"
#: ../../CHANGES.rst:375 0856562aad23492aa6efc7f6e4bf8f90
msgid ""
"Configuration entries can be loaded from files if the entry key has a "
"*_FILE* suffix and the entry value is the path to the file. :issue:`134` :pr:"
"`134`"
msgstr ""
"Les paramètres de configuration peuvent être lus à partir de fichiers si le "
"paramètre a un suffixe *_FILE* et que sa valeur correspond à un chemin de "
"fichier. :issue:`134` :pr:`134`"
#: ../../CHANGES.rst:377 24fa209262e04bcbb46c2ab7c881fbaa
msgid "Field list support. :issue:`115` :pr:`136`"
msgstr "Support pour les listes de champ. :issue:`115` :pr:`136`"
#: ../../CHANGES.rst:378 eaff808f9ce745c59a1b373ab0ef90ab
msgid "Pages are boosted with `HTMX`. :issue:`144` :issue:`145` :pr:`137`"
msgstr ""
"Les pages sont boostées avec `HTMX`. :issue:`144` :issue:`145` :pr:`137`"
#: ../../CHANGES.rst:383 8afcdb0ddd8f4e6c9941315ff1b06538
msgid "Bump to jquery 3.7.0. :pr:`138`"
msgstr "Mise à jour vers jquery 3.7.0. :pr:`138`"
#: ../../CHANGES.rst:388 a6e1f4b8a72f4500ab437a86f6e98d06
msgid ""
"Profile edition when the user RDN was not ``uid``. :issue:`148` :pr:`139`"
msgstr ""
"Lédition des profils utilisateurs lorsque le RDN nétait pas ``uid`. :issue:"
"`148` :pr:`139`"
#: ../../CHANGES.rst:393 cfcf7ee77bb84df1bcd780df223e9044
msgid "Stop support for Python 3.7. :pr:`131`"
msgstr "Arrêt du support pour Python 3.7. :pr:`131`"
#: ../../CHANGES.rst:396 42eab7328c604747ad6bde0067cb6603
msgid "[0.0.26] - 2023-06-03"
msgstr "[0.0.26] - 2023-06-03"
#: ../../CHANGES.rst:401 b621a029c6ec420d8708f0ddd4b49c85
msgid ""
"Implemented account expiration based on OpenLDAP ppolicy overlay. Needs "
"OpenLDAP 2.5+. :issue:`13` :pr:`118`"
msgstr ""
"Implémentation de lexpiration des comptes en se basant sur loverlay "
"OpenLDAP `ppolicy``. Nécessite au minimun OpenLDAP 2.5. :issue:`13` :pr:`118`"
#: ../../CHANGES.rst:403 05f5b0808e74429b92bf61fa570014cf
msgid "Timezone configuration entry. :issue:`137` :pr:`130`"
msgstr "Paramètre de configuration des fuseaux horaire. :issue:`137` :pr:`130`"
#: ../../CHANGES.rst:408 d7e71d1ce6704911b7e5094538cc1084
msgid "Avoid setting ``None`` in JWT claims when they have no value."
msgstr ""
"Les paramètres du jeton d'accès ne sont pas ``None`` lorsqu'ils nont pas de "
"valeur définie."
#: ../../CHANGES.rst:409 e16dcca3b764486d874401ba65e22f78
msgid "Display password recovery button on OIDC login page. :pr:`129`"
msgstr ""
"Affichage du bouton de réinitialisation de mots de passe sur la page de "
"connexion OIDC. :pr:`129`"
#: ../../CHANGES.rst:412 dcbd97e0bc4f44babcdc9ad9a503c162
msgid "[0.0.25] - 2023-05-05"
msgstr "[0.0.25] - 2023-05-05"
#: ../../CHANGES.rst:417 4109765130284304994ae405858bdd3c
msgid ""
"Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config."
"sample.toml``"
msgstr ""
"Vérifiez le nouveau format avec ``git diff 0.0.25 0.0.24 canaille/conf/"
"config.sample.toml``"
#: ../../CHANGES.rst:422 c4645c08f789400bba029897871bb828
msgid ""
"Renamed user model attributes to match SCIM naming convention. :pr:`123`"
msgstr ""
"Renommage des modèles dattributs d'utilisateurs en suivant la convention "
"SCIM. :pr:`123`"
#: ../../CHANGES.rst:423 3c58d21fdc81418e8ee43179c2d6384f
msgid "Moved OIDC related configuration entries in ``OIDC``."
msgstr "Déplacement des paramètres de configuration OIDC dans ``OIDC``."
#: ../../CHANGES.rst:424 5b002906414e41448a3fadea87d71e45
msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``."
msgstr ""
"Déplacement des paramètres de configuration ``LDAP`` dans ``BACKENDS.LDAP``."
#: ../../CHANGES.rst:425 d58c113094474cf3b82e8a3303202bb6
msgid "Bumped to `HTMX` 1.9.0. :pr:`124`"
msgstr "Mise à jour vers HTMX 1.9.0. :pr:`184`"
#: ../../CHANGES.rst:426 3bbdffb495f74fccbdb9eeb78a8eaf81
msgid ""
"ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`"
msgstr ""
"Les filtres de permissions ne sont plus des filtres LDAP mais des "
"associations de paramètres utilisateur. :pr:`125`"
#: ../../CHANGES.rst:427 0d3ea4f8df2542e0a7da5029159f31e0
msgid "Bumped to `HTMX` 1.9.2. :pr:`127`"
msgstr "Mise-à-jour vers `HTMX` 1.9.2. :pr:`127`"
#: ../../CHANGES.rst:432 71139e5ab6e34c2a87d51d3d04c0dbc0
msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now."
msgstr ""
"Le paramètre de configuration ``OIDC.JWT.MAPPING`` est réellement facultatif."
#: ../../CHANGES.rst:433 e34b111a3a8b4e2da966a36107a682b5
msgid "Fixed empty model attributes registration. :pr:`125`"
msgstr "Correction des attributs vides lors de lenregistrement. :pr:`125`"
#: ../../CHANGES.rst:434 566d49eca850419cbb39c3a78a4160aa
msgid "Password initialization mails were not correctly sent. :pr:`128`"
msgstr ""
"Les courriels dinitialisation de mot de passe nétaient pas correctement "
"envoyés. :pr:`128`"
#: ../../CHANGES.rst:437 f461dc48e9c846628f7ddb99b18252c6
msgid "[0.0.24] - 2023-04-07"
msgstr "[0.0.24] - 2023-04-07"
#: ../../CHANGES.rst:442 007393d26d6e4375a0e05cbbf6c41d65
msgid "Fixed avatar update. :pr:`122`"
msgstr "Correction de la mise à jour des avatars. :pr:`122`"
#: ../../CHANGES.rst:445 0ddfaf5df815484f9eb469a884e5f667
msgid "[0.0.23] - 2023-04-05"
msgstr "[0.0.23] - 2023-04-05"
#: ../../CHANGES.rst:450 2e7346baddf44a7f9f5b9a05ae826913
msgid "Organization field. :pr:`116`"
msgstr "Champ `organization` :pr:`116`"
#: ../../CHANGES.rst:451 1c68c43ae90f4e2e944dab12514f06d1
msgid "ETag and Last-Modified headers on user photos. :pr:`116`"
msgstr "En-têtes `ETag` et `Last-Modified` sur les avatars. :pr:`116`"
#: ../../CHANGES.rst:452 bcaf8fe7d8e940f191ed6ea5178566c1
msgid "Dynamic form validation. :pr:`120`"
msgstr "Validation dynamique des formulaires. :pr:`120`"
#: ../../CHANGES.rst:457 2b077ff5215a4b20b8438e82f4366ada
msgid "UX rework. Submenu addition. :pr:`114`"
msgstr "Travaux sur linterface utilisateur. Ajout de sous-menus. :pr:`114`"
#: ../../CHANGES.rst:458 166152fdbf6248e8a4af29f4f3bf5b6e
msgid "Properly handle LDAP date timezones. :pr:`117`"
msgstr "Gestion correcte des fuseaux horaire des dates dans LDAP. :pr:`117`"
#: ../../CHANGES.rst:463 343c4102b6d648018544f151f97540e1
msgid "CSRF protection on every forms. :pr:`119`"
msgstr "Protection CSRF sur tous les formulaires. :pr:`119`"
#: ../../CHANGES.rst:466 7140973831594dacad0bd205ca9b60e5
msgid "[0.0.22] - 2023-03-13"
msgstr "[0.0.22] - 2023-03-13"
#: ../../CHANGES.rst:470 67dc897fec2946598dbb4fe82db8a94f
msgid ""
"The `Faker` library is not imported anymore when the `clean` command is "
"called."
msgstr ""
"La bibliothèque `Faker` nest plus importée lorsque la commande `clean` est "
"appelée."
#: ../../CHANGES.rst:473 58e3c0af1ce74125bf42a5ea16b88fbf
msgid "[0.0.21] - 2023-03-12"
msgstr "[0.0.21] - 2023-03-12"
#: ../../CHANGES.rst:478 a25f75d9086a4499aa1088e537f21bc3
msgid "Display TOS and policy URI on the consent list page. :pr:`102`"
msgstr ""
"Affichage des liens vers les conditions dutilisation sur la page de liste "
"des consentements. :pr:`102`"
#: ../../CHANGES.rst:479 e848a4f5372b44249423579a7e2cdc3d
msgid "Admin token deletion. :pr:`100` :pr:`101`"
msgstr ""
"Suppression des jetons via linterface administrateur. :pr:`100` :pr:`101`"
#: ../../CHANGES.rst:480 61b841de5b89407d9912c8c73309111a
msgid "Revoked consents can be restored. :pr:`103`"
msgstr "Les consentements révoqués peuvent être restaurés. :pr:`103`"
#: ../../CHANGES.rst:481 656acd80913242a4820a20bc76d797e8
msgid ""
"Pre-consented clients are displayed in the user consent list, and their "
"consents can be revoked. :issue:`69` :pr:`103`"
msgstr ""
"Les clients pré-autorisés apparaissent dans la liste de consentement des "
"utilisateurs, et leur consentement peut être révoqué. :issue:`69` :pr:`103`"
#: ../../CHANGES.rst:483 e08c1586240745fa9537dd7501475c0d
msgid ""
"A ``populate`` command can be used to fill the database with random users "
"generated with faker. :pr:`105`"
msgstr ""
"Implémentation dune commande ``populate`` qui remplit la base de données "
"avec des valeurs aléatoires générées avec la bibliothèque `Faker`. :pr:`105`"
#: ../../CHANGES.rst:485 dc653adfdbc441589c385b956ae9739e
msgid "SMTP SSL support. :pr:`108`"
msgstr "Support des connexions SMTP avec SSL. :pr:`108`"
#: ../../CHANGES.rst:486 c69d8b01e4194d5b9268b84ab81849d6
msgid "Server side pagination. :issue:`114` :pr:`111`"
msgstr "Pagination côté serveur. :issue:`114`:pr:`111`"
#: ../../CHANGES.rst:487 5b4f3aa107a74df3ba845920503dfdc5
msgid "Department number support. :issue:`129`"
msgstr "Support du champs de numéro de département. :issue:`129`"
#: ../../CHANGES.rst:488 d219e1ac8fa148d5b6e4babc678fbeb2
msgid "Address edition support (but not in the OIDC claims yet). :pr:`112`"
msgstr ""
"Support de lédition de ladresse (sans que cela apparaisse dans les "
"paramètres du jeton OIDC). :pr:`112`"
#: ../../CHANGES.rst:489 52d2ceda28ab430a984dee19f8766b2a
msgid "Title edition support. :pr:`113`"
msgstr "Support de lédition du paramètre `title`. :pr:`113`"
#: ../../CHANGES.rst:494 c4aca25daa3b491f9208d71f7715800f
msgid ""
"Client deletion also deletes related :class:`~canaille.oidc.basemodels."
"Consent`, :class:`~canaille.oidc.basemodels.Token` and :class:`~canaille."
"oidc.basemodels.AuthorizationCode` objects. :issue:`126` :pr:`98`"
msgstr ""
"La suppression dun client supprime aussi les objets des classes liées :"
"class:`~canaille.oidc.basemodels.Consent`, :class:`~canaille.oidc.basemodels."
"Token` et :class:`~canaille.oidc.basemodels.AuthorizationCode`. :issue:"
"`126` :pr:`98`"
#: ../../CHANGES.rst:500 a1c057df21a9436a9b149fb91fdb28d0
msgid "Removed the `DataTables` Javascript library."
msgstr "Suppression de la bibliothèque Javascript `Datatables`."
#: ../../CHANGES.rst:503 74a0312b6fff499fa609d0adbe73dfac
msgid "[0.0.20] - 2023-01-28"
msgstr "[0.0.20] - 2023-01-28"
#: ../../CHANGES.rst:508 c443970df56e4203b8ee3fd9e4fa2395
msgid "Spanish translation. :pr:`85` :pr:`88`"
msgstr "Traduction espagnole. :pr:`85` :pr:`88`"
#: ../../CHANGES.rst:509 9e42a95e59a74c5584d1144c249a57c1
msgid "Dedicated connectivity test email. :pr:`89`"
msgstr "Test de connectivité. :pr:`89`"
#: ../../CHANGES.rst:510 e06855259b6f463897acd0f8a23cd05e
msgid "Update to jquery 3.6.3. :pr:`90`"
msgstr "Mise à jour vers jquery 3.6.3. :pr:`90`"
#: ../../CHANGES.rst:511 96cb7430946248108d8c97973a4799d5
msgid "Update to fomantic-ui 2.9.1. :pr:`90`"
msgstr "Mise à jour vers Fomantic-UI 2.9.1. :pr:`90`"
#: ../../CHANGES.rst:512 5b5784d9aedb4949bac1591395fc7eb9
msgid "Update to DataTables 1.13.1. :pr:`90`"
msgstr "Mise à jour vers DataTAbles 1.13.1. :pr:`90`"
#: ../../CHANGES.rst:517 e88b90b5e0eb418f99ea2839c1e79943
msgid "Fix typos and grammar errors. :pr:`84`"
msgstr "Correction de fautes de frappe et derreurs de grammaire. :pr:`84`"
#: ../../CHANGES.rst:518 d333115d646f4ccf9a5bb2dc4d23eba0
msgid "Fix wording and punctuations. :pr:`86`"
msgstr "Correction de formulations et de ponctuations. :pr:`86`"
#: ../../CHANGES.rst:519 cfc153afa2ec4bee9c2dd589a234716c
msgid "Fix HTML lang tag. :issue:`122` :pr:`87`"
msgstr "Correction de la balise HTML de langue. :issue:`122` :pr:`87`"
#: ../../CHANGES.rst:520 a2dc7b3677d040c7a43bde721f766029
msgid "Automatically trims the HTML translated strings. :pr:`91`"
msgstr ""
"Suppression automatique des espaces autour des chaîne de caractères à "
"traduire. :pr:`91`"
#: ../../CHANGES.rst:521 9a91064adb7f414fab73518fbc77b01d
msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`"
msgstr ""
"Correction de la gestion du domaine de lenregistrement dynamique. :issues:"
"`123` :pr:`93`"
#: ../../CHANGES.rst:524 d7a2cda6d8e24cc484f13ee4df40c1ea
msgid "[0.0.19] - 2023-01-14"
msgstr "[0.0.19] - 2023-01-14"
#: ../../CHANGES.rst:529 f7c94b5e7545458e8375ef8a8e3dc21c
msgid ""
"Ensures the token `expires_in` claim and the `access_token` `exp` claim have "
"the same value. :pr:`83`"
msgstr ""
"Le paramètre ``expires_in`` du flux dautorisation et le paramètre ``exp``du "
"jeton daccès ont la même valeur. :pr:`83"
#: ../../CHANGES.rst:533 9291df232e4b4a7eb97fb87504f9b8d4
msgid "[0.0.18] - 2022-12-28"
msgstr "[0.0.18] - 2022-12-28"
#: ../../CHANGES.rst:538 c896b9996ab24cfeb217e9ebfdbed090
msgid ""
"OIDC end_session was not returning the ``state`` parameter in the "
"``post_logout_redirect_uri``. :pr:`82`"
msgstr ""
"Le paramètre ``state`` nétait pas transmis à lURL de redirection post "
"déconnexion. :pr:`82`"
#: ../../CHANGES.rst:542 2fa2e9a70b8d4ab4bed4d7f0d8d68f37
msgid "[0.0.17] - 2022-12-26"
msgstr "[0.0.17] - 2022-12-26"
#: ../../CHANGES.rst:547 cff81f4ef5254cfdb1e6ba76c2c3b9f6
msgid "Fixed group deletion button. :pr:`80`"
msgstr "Correction du bouton de suppression de groupe. :pr:`80`"
#: ../../CHANGES.rst:548 552d92ac7c364f198201b60a3abebae2
msgid "Fixed post requests in oidc clients views. :pr:`81`"
msgstr ""
"Correction des requêtes POST sur la vue de gestion des clients OIDC. :pr:`81`"
#: ../../CHANGES.rst:551 f7c78b950b184117855277070cb4e548
msgid "[0.0.16] - 2022-12-15"
msgstr "[0.0.16] - 2022-12-15"
#: ../../CHANGES.rst:556 3e522208e81740fba479a43b017311fd
msgid "Fixed LDAP operational attributes handling."
msgstr "Correction sur le comportement des attributs LDAP opérationnels."
#: ../../CHANGES.rst:559 53e83abb15b24cc0a3d589011cf7c2a3
msgid "[0.0.15] - 2022-12-15"
msgstr "[0.0.15] - 2022-12-15"
#: ../../CHANGES.rst:564 7194a505926740e3b52b81708d2818de
msgid "User can chose their display name. :pr:`77`"
msgstr "Les utilisateurs peuvent choisir leur nom daffichage. :pr:`77`"
#: ../../CHANGES.rst:565 5c5a59a03bd5497aa7474ae59e88f6bf
msgid "Bumped to Authlib 1.2. :pr:`78`"
msgstr "Mise à jour vers Authlib 1.2. :pr:`78`"
#: ../../CHANGES.rst:566 0a3d037fae66464b8c2dfeea28dd3eaf
msgid ""
"Implemented :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client Registration "
"Management Protocol. :pr:`79`"
msgstr ""
"Implémentation de la :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client "
"Registration Management Protocol. :pr:`79`"
#: ../../CHANGES.rst:568 0670727ea1074acf968c49e71dc4062b
msgid ""
"Add the ``nonce`` parameter to the ``claims_supported`` server metadata list."
msgstr ""
"Ajout du paramètre ``nonce`` à la métadonnée du serveur OIDC "
"``claims_supported``."
#: ../../CHANGES.rst:571 eb86b7335b7b4971812f25c9a2d37d1e
msgid "[0.0.14] - 2022-11-29"
msgstr "[0.0.14] - 2022-11-29"
#: ../../CHANGES.rst:575 9903a64c05994256813debf83e9a6b21
msgid "Fixed translation catalogs packaging."
msgstr "Correction de l'empaquetage des catalogues de traduction."
#: ../../CHANGES.rst:578 eb1e508e7d2c46bdb471cffecbe4d897
msgid "[0.0.13] - 2022-11-21"
msgstr "[0.0.13] - 2022-11-21"
#: ../../CHANGES.rst:583 6e71d21752234824bc42897b8a434bb3
msgid ""
"Fixed a bug on the contacts field in the admin client form following the "
"LDAP schema update of 0.0.12."
msgstr ""
"Correction dune erreur sur le champs `contacts` du formulaire "
"dadministration des clients OIDC, du à la mise à jour des schémas LDAP de "
"la version 0.0.12."
#: ../../CHANGES.rst:585 374bd3f105af42bc8ea5c0de35e7437f
msgid ""
"Fixed a bug happening during RP initiated logout on clients without "
"`post_logout_redirect_uri` defined."
msgstr ""
"Correction dune erreur survenant dans la phase de déconnexion initiée par "
"les clients sans paramètre `post_logout_redirect_uri` défini."
#: ../../CHANGES.rst:587 6244294cde9d429dbab852b0f7721160
msgid "Gitlab CI fix. :pr:`64`"
msgstr "Correction de lintégration continue de Gitlab. :pr:`64`"
#: ../../CHANGES.rst:588 8dc7de6abbd447f4a78272f33cbcb6cf
msgid ""
"Fixed `client_secret` display on the client administration page. :pr:`65`"
msgstr ""
"Correction de laffichage de lattribut `client_secret` sur la page "
"dadministration des clients. :pr:`65`"
#: ../../CHANGES.rst:589 be276c6c0aed433987b562fa51a9af06
msgid "Fixed non-square logo CSS. :pr:`67`"
msgstr "Correction de la feuille de style pour les logos non carrés. :pr:`67`"
#: ../../CHANGES.rst:590 45c4b643c08f4e98b8eb1994cca78051
msgid "Fixed schema path on installation. :pr:`68`"
msgstr "Correction des chemins dinstallation des schémas. :pr:`68`"
#: ../../CHANGES.rst:591 490ff7e15c244e1c80522169f52be22c
msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`"
msgstr "Correction du paramètre ``software_statement` de la RFC7591. :pr:`70`"
#: ../../CHANGES.rst:592 13d139a4ca6b420eb0780952acd8582c
msgid "Fixed client preconsent disabling. :pr:`72`"
msgstr ""
"Correction de la désactivation du pré-consentement des clients. :pr:`72`"
#: ../../CHANGES.rst:597 f863beea190c4605afc13c35d7828c7e
msgid "Python 3.11 support. :pr:`61`"
msgstr "Support de Python 3.11. :pr:`61`"
#: ../../CHANGES.rst:598 dfa820f752f64485950bd9f2f4f2f798
msgid ""
"``apparmor`` slapd configuration instructions in the documentation page for "
"contributions. :pr:`66`"
msgstr ""
"Instructions concernant la configuration ``apparmor`` pour OpenLDAP dans la "
"page de documentation sur les contributions. :pr:`66`"
#: ../../CHANGES.rst:599 33f4b497e723467fb7cca94de105b331
msgid "``preferredLanguage`` attribute support. :pr:`75`"
msgstr "Support de lattribut utilisateur ``preferredLanguage``. :pr:`75`"
#: ../../CHANGES.rst:604 80931cb05ba54eb0bdd13af0e69ae5c4
msgid ""
"Replaced the use of the deprecated `FLASK_ENV` environment variable by "
"`FLASK_DEBUG`."
msgstr ""
"Remplacement de la variable denvironnement dépréciée `FLASK_ENV` par "
"`FLASK_DEBUG`."
#: ../../CHANGES.rst:606 74c0ecca84cb4195b047360a2a12b281
msgid ""
"Dynamically generate the server metadata. Users won't have to copy and "
"manually edit ``oauth-authorizationserver.json`` and ``openid-configuration."
"json``. :pr:`71`"
msgstr ""
"Génération dynamique des métadonnées du serveur. Les utilisateurs nauront "
"plus à copier manuellement et éditer les fichiers ``oauth-"
"authorizationserver.json`` et ``openid-configuration.json``. :pr:`71`"
#: ../../CHANGES.rst:609 b56f59b2dd124c91a6268830cf4ddecc
msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`"
msgstr ""
"Loption de configuration ``FROM_ADDR``nest plus obligatoire. :pr:`73`"
#: ../../CHANGES.rst:610 d701256eb4764f81827acd7b0a0dbda3
msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`"
msgstr "Loption de configuration ``JWT.ISS``nest plus obligatoire. :pr:`74`"
#: ../../CHANGES.rst:613 45607852e443428199051f1ecba9ba24
msgid "[0.0.12] - 2022-10-24"
msgstr "[0.0.12] - 2022-10-24"
#: ../../CHANGES.rst:618 9997d515babd44b4841ef0218885f1f1
msgid "Basic WebFinger endpoint. :pr:`59`"
msgstr "Support basique du point de terminaison WebFinger. :pr:`59`"
#: ../../CHANGES.rst:619 509a601f77664756bc01064f20359cf6
msgid "Bumped to FomanticUI 2.9.0."
msgstr "Mise à jour vers FomanticUI 2.9.0."
#: ../../CHANGES.rst:620 2cfcbdba2e9541dbab610bc724a2683a
msgid "Implemented Dynamic Client Registration. :pr:`60`"
msgstr ""
"Implémentation de lenregistrement dynamique des clients OIDC. :pr:`60`"
#: ../../CHANGES.rst:623 4acb242ffb5440d1a468e2d3c3856fe8
msgid "[0.0.11] - 2022-08-11"
msgstr "[0.0.11] - 2022-08-11"
#: ../../CHANGES.rst:628 0c4bd2691ba9453b88a686a22ede18ef
msgid "Default theme has a dark variant. :pr:`57`"
msgstr "Le thème par défaut a une variante sombre. :pr:`57`"
#: ../../CHANGES.rst:633 d3cabac68def4f77a693a6159bf2f5c0
msgid "Fixed missing ``canaille`` binary. :pr:`58`"
msgstr "Correction du binaire manquant ``canaille``. :pr:`58`"
#: ../../CHANGES.rst:636 735459f4aeea42c6b0f7be4a2b06802f
msgid "[0.0.10] - 2022-07-07"
msgstr "[0.0.10] - 2022-07-07"
#: ../../CHANGES.rst:641 f9dfd87d0fa145579e2297b27b61a11b
msgid "Online demo. :pr:`55`"
msgstr "Démo en ligne. :pr:`55`"
#: ../../CHANGES.rst:642 5e5eef7b53ce470ab0a0137617552a9c
msgid ""
"The consent page was displaying scopes not supported by clients. :pr:`56`"
msgstr ""
"La page de consentement affichait des domaines non supportés par les "
"clients. :pr:`56`"
#: ../../CHANGES.rst:643 f7b8675a05b64bafb3efbbad603537ce
msgid "Fixed end session when user are already disconnected."
msgstr ""
"Correction de la fin de session lorsque les utilisateurs sont déjà "
"déconnectés."
#: ../../CHANGES.rst:646 a14c8084a27d463f82c1573d946a6676
msgid "[0.0.9] - 2022-06-05"
msgstr "[0.0.9] - 2022-06-05"
#: ../../CHANGES.rst:651 d04e2396209641cc84fa39d8bb397eaa
msgid ""
"``DISABLE_PASSWORD_RESET`` configuration option to disable password "
"recovery. :pr:`46`"
msgstr ""
"Mise en place de loption de configuration ``DISABLE_PASSWORD_RESET`` pour "
"désactiver la fonctionnalité de réinitialisation des mots de passe. :pr:`46`"
#: ../../CHANGES.rst:652 01acc147a456445eb3858de7b0586dca
msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`"
msgstr ""
"Ajout de la permission ``edit_self`` pour contrôler l'auto-édition des "
"données personnelles par les utilisateurs. :pr:`47`"
#: ../../CHANGES.rst:653 dafb92303cb147909db73fdc619f1267
msgid "`RP-initiated logout` implementation. :pr:`54`"
msgstr "Implémentation de la norme OIDC `RP-initiated logout` :pr:`54`"
#: ../../CHANGES.rst:658 f672b1443aa9498994204b20952103e4
msgid "Bumped to Authlib 1. :pr:`48`"
msgstr "Mise à jour vers Authlib 1. :pr:`48`"
#: ../../CHANGES.rst:659 18c1456a82f748cd9ee0d6abcb40801f
msgid "Various documentation improvements. :pr:`50`"
msgstr "Diverses améliorations de la documentation. :pr:`50`"
#: ../../CHANGES.rst:660 77c7a3b3242647718a3a94a1fc4d05a1
msgid "Use poetry instead of setuptools as project management tool. :pr:`51`"
msgstr ""
"Utilisation de poetry à la place de setuptools comme outil de gestion de "
"projet. :pr:`51`"
#: ../../CHANGES.rst:661 3b65181a80b64d0d8a474a5e643d3f80
msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`"
msgstr "Tests additionnels concernant le paramètre OIDC ``nonce``. :pr:`52`"
#: ../../CHANGES.rst:665 35eef6ab06b940e8ad49bf31b7620404
msgid "``HIDE_INVALID_LOGIN`` behavior and default value."
msgstr "Comportement et valeur par défaut de ``HIDE_INVALID_LOGIN``."
#: ../../CHANGES.rst:666 2792732f7d154df2b11a35b13114939b
msgid ""
"Compiled translation catalogs are not versioned anymore. :pr:`49` :pr:`53`"
msgstr ""
"Les catalogues de traduction compilés ne sont plus versionnés. :pr:`49` :pr:"
"`53`"
#: ../../CHANGES.rst:669 8766634316d146ab8929259434391f34
msgid "[0.0.8] - 2022-03-15"
msgstr "[0.0.8] - 2022-03-15"
#: ../../CHANGES.rst:674 f053b2fe7153473a81cb24bfc2b90c7d
msgid "Fixed dependencies."
msgstr "Correction des dépendances."
#: ../../CHANGES.rst:677 6fe1289ea759485b9c3c7658461a409d
msgid "[0.0.7] - 2022-03-15"
msgstr "[0.0.7] - 2022-03-15"
#: ../../CHANGES.rst:682 f40f5e320ea4412fadc8f1bc1d99198c
msgid ""
"Fixed spaces and escaped special char in LDAP ``cn/dn`` attributes. :pr:`43`"
msgstr ""
"Correction des espaces et échappement des caractères spéciaux dans les "
"attributs LDAP ``cn`` et ``dn``. :pr:`43`"
#: ../../CHANGES.rst:685 ac9b3059b303486a9b31536f1726d873
msgid "[0.0.6] - 2022-03-08"
msgstr "[0.0.6] - 2022-03-08"
#: ../../CHANGES.rst:690 357a41c66f054b9b830d9ae20551690d
msgid "Access token are JWT. :pr:`38`"
msgstr "Les jetons daccès sont des JWT. :pr:`38`"
#: ../../CHANGES.rst:695 20b619f456934ab09712d95d37ef12cd
msgid "Default groups on invitations. :pr:`41`"
msgstr "Groupes par défaut lors des invitations. :pr:`41`"
#: ../../CHANGES.rst:696 74f8d8568cd1405bbef739de7b92f380
msgid "LDAP schemas are shipped within the Canaille package. :pr:`42`"
msgstr "Les schémas LDAP sont fournis avec le paquet Canaille. :pr:`42`"
#: ../../CHANGES.rst:699 936cdbdb780241beb677c1a3c5d21735
msgid "[0.0.5] - 2022-02-17"
msgstr "[0.0.5] - 2022-02-17"
#: ../../CHANGES.rst:704 b49925c79428413ca8c31eff4f42a588
msgid "LDAP model objects have new identifiers. :pr:`37`"
msgstr "Les objects LDAP ont de nouveaux identifiants. :pr:`37`"
#: ../../CHANGES.rst:709 21e3bd1145ce480ea8a82394722cef34
msgid "Admin menu dropdown display. :pr:`39`"
msgstr "Le menu dadministration est déroulant. :pr:`39`"
#: ../../CHANGES.rst:710 b50bd877e6fa4055a450f65d4e0e6951
msgid "``GROUP_ID_ATTRIBUTE`` configuration typo. :pr:`40`"
msgstr ""
"Correction dune faute de frappe pour le paramètre de configuration "
"``GROUP_ID_ATTRIBUTE`` :pr:`40`"
#: ../../CHANGES.rst:713 93523c049fd2438b9f8dbb942b657b7c
msgid "[0.0.4] - 2022-02-16"
msgstr "[0.0.4] - 2022-02-16"
#: ../../CHANGES.rst:718 9cc5e4c0be3e43f98a84d076d254a7a8
msgid "Client pre-authorization. :pr:`11`"
msgstr "Pré-autorisation des clients OIDC. :pr:`11`"
#: ../../CHANGES.rst:719 b1444e5514e3495f8f05b00bfb31e54b
msgid "LDAP permissions check with the check command. :pr:`12`"
msgstr ""
"Vérification des permissions LDAP grâce à la commande `check`. :pr:`12`"
#: ../../CHANGES.rst:720 81badbb21dfe4dd0bd990037947c24cf
msgid ""
"Update consents when a scope required is larger than the scope of an already "
"given consent. :pr:`13`"
msgstr ""
"Mise à jour des consentements lorsque le domaine requis est plus large que "
"le domaine déjà autorisé. :pr:`13`"
#: ../../CHANGES.rst:722 5f6092f6103d401e9fe4554e04ad12cb
msgid "Theme customization. :pr:`15`"
msgstr "Personnalisation du thème. :pr:`15`"
#: ../../CHANGES.rst:723 7e99d3a9c9134144a8e18989e6d0d633
msgid "Logging configuration. :pr:`16`"
msgstr "Configuration de la journalisation. :pr:`16`"
#: ../../CHANGES.rst:724 abd6618054b443efbb5101e9c32f0c90
msgid "Installation command. :pr:`17`"
msgstr "Commande dinstallation. :pr:`17`"
#: ../../CHANGES.rst:725 18c69372e28c42c4b0ac0cae51fcd8aa
msgid "Invitation links. :pr:`18`"
msgstr "Liens dinvitation. :pr:`18`"
#: ../../CHANGES.rst:726 2e35dc7cf246485c97650451d1f41d93
msgid "Advanced permissions. :pr:`20`"
msgstr "Permissions avancées. :pr:`20`"
#: ../../CHANGES.rst:727 ef3b8ab7e89448089a9d09363832c7cc
msgid "An option to not use OIDC. :pr:`23`"
msgstr "Une option pour désactiver OIDC. :pr:`23`"
#: ../../CHANGES.rst:728 4d5d5581283a4eaabab00c6df18077a0
msgid "Disable some features when no SMTP server is configured. :pr:`24`"
msgstr ""
"Désactivation de quelques fonctionnalités lorsquaucun serveur SMTP na été "
"configuré. :pr:`24`"
#: ../../CHANGES.rst:729 a54b117ff68e47eabb66aa0a741790b1
msgid ""
"Login placeholder dynamically generated according to the configuration. :pr:"
"`25`"
msgstr ""
"Le texte dexemple du champ de connexion est généré dynamiquement en "
"fonction de la configuration. :pr:`25`"
#: ../../CHANGES.rst:730 8593aca44439457296e5591823f56739
msgid "Added an option to tune object IDs. :pr:`26`"
msgstr ""
"Ajout dune option pour paramétrer les identifiants des objets. :pr:`26`"
#: ../../CHANGES.rst:731 548d5d09a1da4104aed49324dd3d96b6
msgid "Avatar support. :pr:`27`"
msgstr "Support des avatars. :pr:`27`"
#: ../../CHANGES.rst:732 e6275bae918547beab8caabaf64f57db
msgid "Dynamical and configurable JWT claims. :pr:`28`"
msgstr "Paramètres des jetons daccès dynamiques et configurables. :pr:`28`"
#: ../../CHANGES.rst:733 82bbcaaa7973438696de021fbff14354
msgid "UI improvements. :pr:`29`"
msgstr "Améliorations de linterface utilisateur. :pr:`29`"
#: ../../CHANGES.rst:734 70cd1dd3d81d4288b1c6bca674492944
msgid "Invitation links expiration. :pr:`30`"
msgstr "Expiration des liens dinvitation. :pr:`30`"
#: ../../CHANGES.rst:735 af865fef102c44bc801e8aec157c2835
msgid "Invitees can choose their IDs. :pr:`31`"
msgstr "Les invités peuvent choisir leur identifiant. :pr:`31`"
#: ../../CHANGES.rst:736 d194b87cfbd94dd398f1c58bec6e4c37
msgid "LDAP backend refactoring. :pr:`35`"
msgstr "Ré-usinage concernant la base de données LDAP. :pr:`35`"
#: ../../CHANGES.rst:741 2409763cd25243c9a80678c470fa336d
msgid "Fixed ghost members in a group. :pr:`14`"
msgstr "Correction des membres fantômes dans les groupes. :pr:`14`"
#: ../../CHANGES.rst:742 ae04a8fa1896467792d8aaaf161fed29
msgid "Fixed email sender names. :pr:`19`"
msgstr "Correction de ladresse email des émetteurs. :pr:`19`"
#: ../../CHANGES.rst:743 596c5956ebc6442984251ca5c558834e
msgid "Fixed filter being not escaped. :pr:`21`"
msgstr "Les filtres nétaient pas échappés. :pr:`21`"
#: ../../CHANGES.rst:744 bbf97ea202404efd8708cfbed4bbfe74
msgid "Demo script good practices. :pr:`32`"
msgstr "Bonnes pratiques du script de démo. :pr:`32`"
#: ../../CHANGES.rst:745 8d176b7d4da5419d8768430eeb01036c
msgid "Binary path for Debian. :pr:`33`"
msgstr "Chemins des binaires pour Debian. :pr:`33`"
#: ../../CHANGES.rst:746 004ecd0e934049ef823bbf0d63f75c14
msgid ""
"Last name was not mandatory in the forms while this was mandatory in the "
"LDAP server. :pr:`34`"
msgstr ""
"Le nom de famille était facultatif dans les formulaires alors que cest un "
"paramètre obligatoire pour LDAP. :pr:`34`"
#: ../../CHANGES.rst:748 c6de3dbeeb5f40ff85c60e062271bfdb
msgid "Spelling typos. :pr:`36`"
msgstr "Corrections de fautes dorthographe. :pr:`36`"
#: ../../CHANGES.rst:751 d49aed2f00e346cc8adaa26aa54f470a
msgid "[0.0.3] - 2021-10-13"
msgstr "[0.0.3] - 2021-10-13"
#: ../../CHANGES.rst:756 0b32a6319c044bba95b3a00f245c6956
msgid "Two-steps sign-in. :issue:`49`"
msgstr "Connexion en deux étapes. :issue:`49`"
#: ../../CHANGES.rst:757 4cf53569893c4b0ba8eab17b44a4a15b
msgid "Tokens can have several audiences. :issue:`62` :pr:`9`"
msgstr "Les jetons peuvent avoir plusieurs audiences. :issue:`62` :pr:`9`"
#: ../../CHANGES.rst:758 2956507b8bba47839fef6f9a63d5321a
msgid "Configuration check command. :issue:`66` :pr:`8`"
msgstr "Commande de vérification de la configuration. :issue:`66` :pr:`8`"
#: ../../CHANGES.rst:759 0415c157cb414913b3d7748afba41cda
msgid "Groups management. :issue:`12` :pr:`6`"
msgstr "Gestion des groupes. :issue:`12` :pr:`6`"
#: ../../CHANGES.rst:764 e08a9eafc49f45cbb361ed3bd89d4649
msgid "Introspection access bugfix. :issue:`63` :pr:`10`"
msgstr ""
"Correction de laccès au point de terminaison dintrospection OIDC. :issue:"
"`63`:pr:`10`"
#: ../../CHANGES.rst:765 48e63a4a411d4aab8259f74b1d257a37
msgid "Introspection sub claim. :issue:`64` :pr:`7`"
msgstr ""
"Support du paramètre ``sub``dans lintrospection OIDC. :issue:`64` :pr:`7`"
#: ../../CHANGES.rst:768 2a9047b937be481f811eb403d6bf7fd9
msgid "[0.0.2] - 2021-01-06"
msgstr "[0.0.2] - 2021-01-06"
#: ../../CHANGES.rst:773 9f74458dacff435998774594822a1506
msgid "Login page is responsive. :issue:`1`"
msgstr "La page de connexion est réactive. :issue:`1`"
#: ../../CHANGES.rst:774 8a87683d8d524cd482264473256b3777
msgid "Adapt mobile keyboards to login page fields. :issue:`2`"
msgstr ""
"Adaptation des claviers mobiles sur les champs de la page de connexion. :"
"issue:`2`"
#: ../../CHANGES.rst:775 c777083179094cd994619adcfc8499d9
msgid "Password recovery interface. :issue:`3`"
msgstr "Interface de réinitialisation des mots de passe. :issue:`3`"
#: ../../CHANGES.rst:776 c7393dc1bb6a4290bfdb2d59a3fef0c9
msgid "User profile interface. :issue:`4`"
msgstr "Interface de gestion des profiles utilisateur. :issue:`4`"
#: ../../CHANGES.rst:777 e874e0e97cae4310ba62553c3d31cd16
msgid "Renamed the project *Canaille*. :issue:`5`"
msgstr "Renommage du projet en *Canaille*. :issue:`5`"
#: ../../CHANGES.rst:778 27a300eabaaf4644989d134ccca22dd8
msgid "Command to remove old tokens. :issue:`17`"
msgstr "Commande pour supprimer les jetons expirés. :issue:`17`"
#: ../../CHANGES.rst:779 8e168b1583984a71848678112365d1c7
msgid "Improved password recovery email. :issue:`14` :issue:`26`"
msgstr ""
"Améliorations sur le courriel de réinitialisation de mot de passe. :issue:"
"`14` :issue:`26`"
#: ../../CHANGES.rst:780 901de9a21dd94541b3c23946ada4cd88
msgid ""
"Use Flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`"
msgstr ""
"Utilisation du paramètre de configuration Flask ``SERVER_NAME`` à la place "
"d``URL``. :issue:`24`"
#: ../../CHANGES.rst:781 62c1e3da0a87437aaa529dcc936c7dbc
msgid "Improved consents page. :issue:`27`"
msgstr "Améliorations sur la page de consentement. :issue:`27`"
#: ../../CHANGES.rst:782 f816ffeb73244ae0b1171b8c156d1e12
msgid "Admin user page. :issue:`8`"
msgstr "Page dadministration des utilisateurs. :issue:`8`"
#: ../../CHANGES.rst:783 2241f2b45f1e426f99f68ccc516c6b60
msgid "Project logo. :pr:`29`"
msgstr "Logo pour le projet. :pr:`29`"
#: ../../CHANGES.rst:784 dd802cef3e384fdc928fc43178ab119a
msgid ""
"User account self-deletion can be enabled in the configuration with "
"`SELF_DELETION`. :issue:`35`"
msgstr ""
"Lauto-suppression des comptes est configurable avec le paramètre de "
"configuration ``SELF_DELETION``. :issue:`35`"
#: ../../CHANGES.rst:785 75d6d908a827424284ea63478783cbf9
msgid "Admins can impersonate users. :issue:`39`"
msgstr ""
"Les administrateurs peuvent prendre lidentité des utilisateurs. :issue:`39`"
#: ../../CHANGES.rst:786 b4eee6e748f94ba9b6e62e2e7fd4d86b
msgid "Forgotten page UX improvement. :pr:`43`"
msgstr ""
"Améliorations sur linterface utilisateur de la page des mots de passe "
"oubliés. :pr:`43`"
#: ../../CHANGES.rst:787 44489482b8d54ae78c70959758d6f825
msgid "Admins can remove clients. :pr:`45`"
msgstr "Les administrateurs peuvent supprimer des clients. :pr:`45`"
#: ../../CHANGES.rst:788 be6e5371ee2a48efa0d9d276e9caa9a0
msgid ""
"Option `HIDE_INVALID_LOGIN` that can be unactivated to let the user know if "
"the login he attempt to sign in with exists or not. :pr:`48`"
msgstr ""
"Le paramètre de configuration ``HIDE_INVALID_LOGIN`` peut-être utilisé pour "
"laisser ou non les utilisateurs savoir si le compte avec lequel ils tentent "
"de se connecter existe ou pas. :pr:`48`"
#: ../../CHANGES.rst:790 b1df16b2411a440d8d2a0745c972f368
msgid "Password initialization mail. :pr:`51`"
msgstr "Courriels dinitialisation des mots de passe. :pr:`51`"
#: ../../CHANGES.rst:795 ba317999584d46d7b5bfda36157bc111
msgid "Form translations. :issue:`19` :issue:`23`"
msgstr "Traductions des formulaires. :issue:`19` :issue:`23`"
#: ../../CHANGES.rst:796 e0d773fd3f814a438321528df1c4d67d
msgid "Avoid to use Google Fonts. :issue:`21`"
msgstr "Utilisations dautres polices que celles de Google Fonts. :issue:`21`"
#: ../../CHANGES.rst:801 d7c5d0509cfe422ab95beb9c1929e413
msgid "'My tokens' page. :issue:`22`"
msgstr "Page « Mes jetons ». :issue:`22`"
#: ../../CHANGES.rst:804 35ab727ebe564ff2a2aa3e28f9392f5b
msgid "[0.0.1] - 2020-10-21"
msgstr "[0.0.1] - 2020-10-21"
#: ../../CHANGES.rst:809 487e834d3b154f69991d042f97ce3734
msgid "Initial release."
msgstr "Publication initiale."
#: ../../CONTRIBUTING.rst:2 77d0a023f5f34e7c804011fd50b75bc3
msgid "Contributions"
msgstr "Contributions"
#: ../../CONTRIBUTING.rst:4 9955ba6bbfb54c74930043f9d86335dc
msgid "Contributions are welcome!"
msgstr "Les contributions sont bienvenues!"
#: ../../CONTRIBUTING.rst:6 dd58980e1983404d8bc93b9e0866785d
msgid ""
"The repository is hosted at `gitlab.com/yaal/canaille <https://gitlab.com/"
"yaal/canaille>`_."
msgstr ""
"Le dépôt de code est hébergé sur `gitlab.com/yaal/canaille <https://gitlab."
"com/yaal/canaille>`_."
#: ../../CONTRIBUTING.rst:9 880fd4b263fa4f5aa77f826cf6d7a13e
msgid "Discuss"
msgstr "Discuter"
#: ../../CONTRIBUTING.rst:11 0e5a0bf82cd4444ebc3ff1dd43a4362c
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 ""
"Si vous souhaitez développer une fonctionnalité ou corriger un "
"dysfonctionnement, veuillez commencer par en discuter sur `loutil de "
"gestion de ticket <https://gitlab.com/yaal/canaille/-/issues>`_ ou bien sur "
"le `salon Matrix <https://matrix.to/#/#canaille-discuss:yaal.coop>`_."
#: ../../CONTRIBUTING.rst:16 032421a7ce0548e38943bb37b9e46f90
msgid "Development environment"
msgstr "Environnement de développement"
#: ../../CONTRIBUTING.rst:18 464b7af189da4cf2ba346183c47e6264
msgid "You can either run the demo locally or with Docker."
msgstr ""
"Vous pouvez exécuter linstance de démonstration localement ou bien à laide "
"de Docker."
#: ../../CONTRIBUTING.rst:20 b918844970c545a3826d0b39a79cb08c
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 ""
"Le seul outil requis pour développer localement est `uv`. Assurez-vous "
"davoir uv `installé sur votre système <https://docs.astral.sh/uv/getting-"
"started/installation/>`_ afin de pouvoir développer Canaille."
#: ../../CONTRIBUTING.rst:24 56f217cf35444c72b1bc1a1cb3ee9e53
msgid "Initialize your development environment with:"
msgstr "Initialisez votre environnement de développement avec :"
#: ../../CONTRIBUTING.rst:26 9cf0a292c2bb408fa660e14ab61f0e43
msgid ""
"``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``."
msgstr ""
"``uv sync --extra front --extra oidc`` pour obtenir un environnement de "
"développement minimal. Cela vous permettra dexécuter les tests avec ``uv "
"pytest --backend memory``."
#: ../../CONTRIBUTING.rst:27 8d29fc6ad3bd43c5b232963f5137c91a
msgid ""
"``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``."
msgstr ""
"``uv sync --extra front --extra oidc --extra sqlite`` pour obtenir un "
"environnement de développement minimal avec le support des bases de données "
"SQLite. Cela vous permettra dexécuter les tests avec ``uv pytest --backend "
"sql``."
#: ../../CONTRIBUTING.rst:28 928d535d56314259b20055eea3a4ceb4
msgid ""
"``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``."
msgstr ""
"``uv sync --extra front --extra oidc --extra ldap`` pour obtenir un "
"environnement de développement minimal avec le support pour les bases de "
"données LDAP. Cela vous permettra dexécuter les tests avec ``uv pytest --"
"backend ldap``."
#: ../../CONTRIBUTING.rst:29 56b8780399064aec89d3099841d1b017
msgid ""
"``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 ""
"``uv sync --all-extras`` si vous souhaitez avoir tout à portée de main. "
"Notez que cela requerra peut-être de compiler certaines dépendances Python, "
"qui nécessiterons linstallation de certaines bibliothèques sur votre "
"système; Certaines dépendances de Canaille auront peut-être besoin dêtre "
"compilées, vous voudrez probablement vérifier que `GCC` et `cargo` sont "
"installés sur votre système."
#: ../../CONTRIBUTING.rst:32 1a514a3605f243979b2d04e1a329368a
msgid "After having launched the demo you have access to several services:"
msgstr ""
"Après avoir lancé linstance de démonstration, vous avec accès à plusieurs "
"services :"
#: ../../CONTRIBUTING.rst:34 bbde54dc79ba4241bd97323b5152b50b
msgid "A canaille server at `localhost:5000 <http://localhost:5000>`_"
msgstr ""
"Un serveur Canaille à ladresse `localhost:5000 <http://localhost:5000>`_"
#: ../../CONTRIBUTING.rst:35 d028b9cbae714b2d945ba4d70a75fb99
msgid "A dummy client at `localhost:5001 <http://localhost:5001>`_"
msgstr ""
"Un client factice à ladresse `localhost:5001 <http://localhost:5001>`_"
#: ../../CONTRIBUTING.rst:36 dbd0340fc974432798237b9b3efe01ea
msgid "Another dummy client at `localhost:5002 <http://localhost:5002>`_"
msgstr ""
"Un autre client factice à ladresse `localhost:5002 <http://localhost:5002>`_"
#: ../../CONTRIBUTING.rst:38 9ff28ddd679b42f4a5bf288242e8c827
msgid "The canaille server has some default users:"
msgstr "Le serveur Canaille embarque quelques utilisateurs par défaut :"
#: ../../CONTRIBUTING.rst:40 324e9f4f1d744fa49a0c3e7fe60cf46b
msgid "A regular user which login and password are **user**;"
msgstr ""
"Un utilisateur de base dont lidentifiant et le mot de passe sont **user**;"
#: ../../CONTRIBUTING.rst:41 30a3f2679a4b456791471ac6d4c15e2b
msgid "A moderator user which login and password are **moderator**;"
msgstr ""
"Un modérateur dont lidentifiant et le mot de passe sont **moderator**;"
#: ../../CONTRIBUTING.rst:42 d5e4f771a0854678af55e11ae4c8fc3d
msgid "An admin user which admin and password are **admin**;"
msgstr ""
"Un administrateur dont lidentifiant et le mot de passe sont **admin**;"
#: ../../CONTRIBUTING.rst:43 325a060f0844402d80a7267a46291010
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 ""
"Un nouvel utilisateur dont lidentifiant est **james**. Cet utilisateur na "
"pas de mot de passe défini, et sa première tentative de connexion résultera "
"en l'envoi dun email dinitialisation de mot de pass (si un serveur SMTP "
"est configuré)."
#: ../development/specifications.rst:62 ../../CONTRIBUTING.rst:48
#: c01f125a22914f369ef28ef090a728b1 01a043d4a4364011b8a22a53549b20da
msgid "Backends"
msgstr "Bases de données"
#: ../../CONTRIBUTING.rst:50 12c4afcb316c448797ed9784ef9fbaa1
msgid "Canaille comes with several backends:"
msgstr "Canaille peut se connecter à plusieurs types de bases de données :"
#: ../../CONTRIBUTING.rst:52 853d2b906b80415db33c707e29640f4c
msgid "a lightweight test purpose `memory` backend"
msgstr "une base de données très légère `memory` à fins de tests"
#: ../../CONTRIBUTING.rst:53 b280dce615cb48ec8456abf65fec4a9e
msgid "a `sql` backend, based on sqlalchemy"
msgstr "une base de données `SQL`, utilsant SQLAlchemy"
#: ../../CONTRIBUTING.rst:54 ad6d07459c274a9e8282e290875d5bfb
msgid "a production-ready `LDAP` backend"
msgstr "une base de données `LDAP` prête à lemploi"
#: ../../CONTRIBUTING.rst:57 7db1494e281b4b89949e18e1ece1cb6c
msgid "Docker environment"
msgstr "Environnement Docker"
#: ../../CONTRIBUTING.rst:59 c8e61bddd24e4af0ab8ee2bd2709652d
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 ""
"Si vous souhaitez développer avec Docker, votre navigateur doit être en "
"mesure de joindre le conteneur `canaille`. Le fichier docker-compose expose "
"les bons ports, mais les requêtes viendront de lextérieur du réseau "
"Docker : l'URL `canaille` a un sens à lintérieur du réseau Docker, mais ne "
"désigne rien pour votre navigateur. Comme les ports sont exposés sur "
"`localhost`, vous devez configurer votre ordinateur pour que `canaille` "
"pointe vers `localhost`."
#: ../../CONTRIBUTING.rst:64 0e3e6469d25f43998fce20bcb1291b86
msgid "To do that, you can add the following line to your `/etc/hosts`:"
msgstr ""
"Pour effectuer ceci, vous pouvez ajouter la ligne suivante à `/etc/hosts` :"
#: ../../CONTRIBUTING.rst:70 c0dce613d6384dd18a1d6abce742bf55
msgid "To launch containers, use:"
msgstr "Pour lancer les conteneurs, utilisez :"
#: ../development/specifications.rst:64 ../tutorial/databases.rst:16
#: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:106
#: 32e05154931e4a6fadcba3b0720e0655 f1b0c988daa54dd4a0c5b30a062cf012
#: 94f958ac7cab437580604c64cdfa27be 528aa40e3cd04297b5ebf44fc955e9a9
msgid "SQL"
msgstr "SQL"
#: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:107
#: c66d8a018f064cb3ba36abf12473b5f4 15c287c63f7f441f991033e23cbb9f95
msgid ""
"With the SQL backend, the demo instance will load and save data in a local "
"sqlite database."
msgstr ""
"Avec la base de données SQL, linstance de démonstration chargera et "
"enregistrera les données dans un fichier sqlite local."
#: ../../CONTRIBUTING.rst:76 ../../CONTRIBUTING.rst:109
#: 6ddf226447fa4bb89cbf73cc8376c371 c72bd69b5ad94f5992bfe2d30f5b0e8d
msgid "Run the demo instance with the SQL backend"
msgstr "Lancer linstance de démonstration avec la base de données SQL"
#: ../tutorial/databases.rst:8 ../../CONTRIBUTING.rst:83
#: ../../CONTRIBUTING.rst:115 e5f82f8945b747ac81b31a20cc241e5d
#: 9a11f967d4c74ad8b9dff673e77d2315 84a192a56d404fb1baf97b065f6ceaa8
msgid "Memory"
msgstr "En-mémoire"
#: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:116
#: 9c56b31ca9724e62a5aee62e28196764 22784d30d5a748d2b73ebe7c423c64bc
msgid "With the memory backend, all data is lost when Canaille stops."
msgstr ""
"Avec la base de données en mémoire, toutes les données sont perdues lorsque "
"Canaille s'arrête."
#: ../../CONTRIBUTING.rst:86 ../../CONTRIBUTING.rst:118
#: da0af4f3bc5147ae8130399630381126 c1436f14bd2049479ac16384a47f2d38
msgid "Run the demo instance with the memory backend"
msgstr "Lancer linstance de démonstration avec la base de données en mémoire"
#: ../development/specifications.rst:64 ../tutorial/databases.rst:32
#: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:124
#: 6f4008249f544ff4afa4e2a7ccebfab2 ce4afa36ab774346b11322758b51325e
#: f9a9bf9c1c6d49b99edee201000ea0a0 2e130a461dc64b989f22d4f932976a65
msgid "LDAP"
msgstr "LDAP"
#: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:125
#: 4f3a2e440337421f95f937952e7dc9be db5ad48ecaa94207ab2b7d84bbebf569
msgid "With the LDAP backend, all data is lost when Canaille stops."
msgstr "Avec LDAP, toutes les données sont perdues lorsque Canaille sarrête."
#: ../../CONTRIBUTING.rst:96 ../../CONTRIBUTING.rst:127
#: 50095289006e499588719acc50eb5a56 80a55900cfc34f4e8b34b5e653a7fdfb
msgid "Run the demo instance with the LDAP backend"
msgstr "Lancer linstance de démo avec le support de LDAP"
#: ../../CONTRIBUTING.rst:103 9e2c9acef9184e34b00d62c97980467d
msgid "Local environment"
msgstr "Environnement local"
#: ../../CONTRIBUTING.rst:133 5fffaf4bff884b5a839078ad5a889fc9
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 ""
"Si vous souhaitez exécuter linstance de démonstration localement avec le "
"support pour LDAP, vous devez avoir `OpenLDAP <https://www.openldap.org/>`_ "
"installé sur votre système. OpenLDAP est généralement fourni via les paquets "
"nommés ``slapd`` ou ``openldap``."
#: ../../CONTRIBUTING.rst:138 aa9aab912ff04dd68c3b59bf1e36575a
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 ""
"Si vous souhaitez apporter une correction ou développer une fonctionnalité, "
"veuillez commencer par en discuter sur l`outil de gestion de tickets "
"<https://gitlab.com/yaal/canaille/-/issues>`_ ou le `salon Matrix <https://"
"matrix.to/#/#canaille-discuss:yaal.coop>`_."
#: ../../CONTRIBUTING.rst:148 3d21757ba34c4721af043c150330c2e4
msgid "Populate the database"
msgstr "Remplissage de la base de données"
#: ../../CONTRIBUTING.rst:150 a412d39e98cf44f6b911566e1ebcdbde
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 ""
"La base de donnée de démonstration est remplie avec des utilisateurs et des "
"groupes générés aléatoirement. Si vous avez besoin de plus, vous pouvez "
"générer des utilisateurs et des groupes avec la commande ``populate`` :"
#: ../../CONTRIBUTING.rst:161 cdf90f875bcc44d5b41197a7cdbb275c
msgid ""
"Adapt to use either the `ldap` or the `sql` configuration file. Note that "
"this will not work with the memory backend."
msgstr ""
"Adaptez pour utiliser le fichier de configuration `ldap` ou `sql`. Notez que "
"cela ne fonctionnera pas avec la base de données en mémoire."
#: ../../CONTRIBUTING.rst:164 2db32f774df8429fa4c9e83d00616a96
msgid "Unit tests"
msgstr "Tests unitaires"
#: ../../CONTRIBUTING.rst:166 5d6a9b57b35d49c48e2b615f8128ebcc
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 ""
"Pour exécuter les tests, vous pouvez simplement lancer la commande `uv run "
"pytest`et/ou `uv run tox`pour tester tous les environnements Python "
"supportés. Tout doit être au vert avant que les contributions soient "
"fusionnées."
#: ../../CONTRIBUTING.rst:169 e1e6e475ff78404f930bb453f1f26e3b
msgid ""
"To test a specific backend you can pass ``--backend memory``, ``--backend "
"sql`` or ``--backend ldap`` to pytest and tox."
msgstr ""
"Pour tester une base de données en particulier, vous pouvez passer les "
"argumentes ``--backend memory``, ``--backend sql`` ou ``--backend ldap`` à "
"pytest et tox."
#: ../../CONTRIBUTING.rst:171 2cb85029b4274de388878da3d3285369
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 ""
"La couverture de code est de 100%, les contributions ne seront acceptées que "
"si leur code est entièrement couvert. Vous pouvez vérifier la couverture "
"avec ``uv run pytest --cov --cov-report=html``ou ``uv run tox -e coverage -- "
"--cov-report=html`. Vous pouvez ensuite consulter le rapport de couverture "
"HTML dans le dossier `htmlcov` nouvellement créé."
#: ../../CONTRIBUTING.rst:176 4408d499056c480f86f450a781d2ca0d
msgid "Code style"
msgstr "Style de code"
#: ../../CONTRIBUTING.rst:178 93e483f2a66a4d8f82feb8ca9a739818
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 ""
"Canaille utilise `ruff <https://docs.astral.sh/ruff/>`_ ainsi que dautres "
"outils pour formater le code. Veuillez exécuter ``uv run tox -e style`` "
"avant de soumettre une contribution. Afin deffectuer les vérifications de "
"style à chaque commit, vous pouvez utiliser la configuration `pre-commit "
"<https://pre-commit.com/>`_ avec ``uv run pre-commit install``."
#: ../../CONTRIBUTING.rst:184 0dca6207e6734ab487cb3fe72c3e90e8
msgid "Front"
msgstr "Interface utilisateur"
#: ../../CONTRIBUTING.rst:186 930e01d770324dc68f73095cd5456a8e
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 ""
"Linterface utilisateur est construite avec `Fomantic UI <https://fomantic-"
"ui.com/>`_. Les parties dynamiques utilisent `HTMX <https://htmx.org/>`_."
#: ../../CONTRIBUTING.rst:189 fc0da8a2736e461dab5a7d242c1cfa9a
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 ""
"Lutilisation de Javascript dans linterface est tolérée, mais lensemble de "
"lapplication DOIT pouvoir être utilisé par des navigateurs sans support "
"Javascript, et sans perte de fonctionnalité."
#: ../../CONTRIBUTING.rst:191 a13b055a65244362a025440451de998d
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 ""
"À cause de Fomantic UI, Canaille a une dépendance vers jQuery, cependant les "
"nouvelles contributions ne devraient pas utiliser jQuery. Lisez le `ticket à "
"ce sujet<https://gitlab.com/yaal/canaille/-/issues/130>`_."
#: ../index.rst:71 ../../CONTRIBUTING.rst:196 e3ff6afa466e4e61aa4f677cd58d3ed2
#: a08d8d5331494e7d93508eaf25f41a07
msgid "Documentation"
msgstr "Documentation"
#: ../../CONTRIBUTING.rst:198 2e1fdcae75de46a6b50db7e4155758af
msgid "The documentation is generated when the tests run:"
msgstr "La documentation est générée lors de lexécution des tests :"
#: ../../CONTRIBUTING.rst:204 94405109592b47c09c8726c305fa5edc
msgid ""
"You can also run sphinx by hand, that should be faster since it avoids the "
"tox environment initialization:"
msgstr ""
"Vous pouvez aussi exécuter `sphinx` à la main, cela devrait être plus rapide "
"puisque cela évite linitialisation des environnements tox :"
#: ../../CONTRIBUTING.rst:210 fe4610d142474897ae4f97d321448fac
msgid "The generated documentation is located at ``build/sphinx/html/en``."
msgstr "La documentation générée se situe à ``build/sphinx/html/en``."
#: ../../CONTRIBUTING.rst:213 bf09dd8ed31742bca2fa80175ae85bb3
msgid "Code translation"
msgstr "Traduction du code"
#: ../../canaille/translations/README.rst:1 35fff9d115334ec6aa6a99ec5da8a27f
msgid ""
"Translations are done with `Weblate <https://hosted.weblate.org/projects/"
"canaille/canaille>`__."
msgstr ""
"Les traductions seffectuent sur `Weblate <https://hosted.weblate.org/"
"projects/canaille/canaille>`_."
#: ../../canaille/translations/README.rst:3 b72ee2174a9b42c493780415e3d3fcfd
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 ""
"Les commandes suivantes sont présentées à titre de documentation, seule "
"lextraction des messages est utile aux contributeurs. Toutes les autres "
"étapes sont effectuées automatiquement par Weblate."
#: readme.rst:6 ../../canaille/translations/README.rst:8
#: ea5bd05b09984bcaa643efa7a1a7618c 33490a8ff4a3465fb8648393ff65eb75
msgid "Message extraction"
msgstr "Extraction des messages"
#: readme.rst:8 ../../canaille/translations/README.rst:10
#: 210e9ff98db74777830a5a1f4746df44 16b22e2bc3cf495bbef529f5732887e3
msgid ""
"After you have edited translatable strings, you should extract the messages "
"with:"
msgstr ""
"Après avoir édité des chaînes de caractères traductibles, vous pouvez "
"extraire les messages avec :"
#: readme.rst:15 ../../canaille/translations/README.rst:17
#: 54ecd51acf494402964ae281c6cd639b 02fa7225075346f89ad702cba8aabdeb
msgid "Language addition"
msgstr "Ajout de langues"
#: readme.rst:17 ../../canaille/translations/README.rst:19
#: 5429b47768e2472ea597ed48140a5621 015d6a437f7e4d099c8cad60986c0b68
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 ""
"Vous pouvez ajouter une nouvelle langue manuellement avec la commande "
"suivante, cependant cela ne devrait pas être nécessaire puisque Weblate s'en "
"occupe automatiquement :"
#: ../../canaille/translations/README.rst:26 bdfbb4ef60c54b26abf457ba930b7fcf
msgid "Catalog update"
msgstr "Mise à jour des catalogues"
#: ../../canaille/translations/README.rst:28 94b8fc10d3aa4e05b54d619c4b1aaa25
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 ""
"Vous pouvez mettre à jour les catalogues avec la commande suivante, "
"cependant cela ne devrait pas être nécessaire puisque Weblate met à jour "
"automatiquement les catalogues lorsquil détecte de nouvelles chaînes de "
"caractères ou lorsque quelquun traduit des chaînes de caractères "
"existantes. Weblate pousse ses modifications toutes les 24 heures."
#: ../../canaille/translations/README.rst:36 f232cbfdd201463ab74fe71353c8e23b
msgid "Catalog compilation"
msgstr "Compilation des catalogues"
#: ../../canaille/translations/README.rst:38 3c756dd105564866a8d74e994e65f2b6
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 ""
"Vous pouvez compiler les catalogues avec la commande suivante, cependant "
"cela ne devrait pas être nécessaire puisque les catalogues sont "
"automatiquement compilés avant le lancement des tests unitaires, avant le "
"lancement de linstance de démonstration et avant la compilation du paquet "
"Python de Canaille :"
#: ../../CONTRIBUTING.rst:219 4ff341d941384c029ed9c0b49d1062f9
msgid "Documentation translation"
msgstr "Traduction de la documentation"
#: readme.rst:1 35fff9d115334ec6aa6a99ec5da8a27f
#: 7abe83f2eeb54b3f9f3d1a8542696765
msgid ""
"Translations are done with `Weblate <https://hosted.weblate.org/projects/"
"canaille/documentation>`__."
msgstr ""
"Les traductions seffectuent sur `Weblate <https://hosted.weblate.org/"
"projects/canaille/documentation>`__."
#: readme.rst:3 de92a131ecf44614963dd89770f593ae
#: 0ca00925251d48668c7673ddece41d66
msgid ""
"The following commands are there as documentation, only the message "
"extraction and the language addition is needed for contributors."
msgstr ""
"Les commandes suivantes sont montrées à titre de documentation, seules "
"lextraction de message et lajout de langues de traduction sont utiles aux "
"contributeurs."
#: readme.rst:24 3d142fe9f633400ea029e949f1e869ee
#: 74cc2740b1584972aa3c0e672dff5f3e
msgid "Build the documentation in another language"
msgstr "Construire la documentation dans une autre langue"
#: ../../CONTRIBUTING.rst:224 4b1dc3dae99f4c6fbbeec3e54be3e922
msgid "Publish a new release"
msgstr "Publier une nouvelle version"
#: ../../CONTRIBUTING.rst:226 975b37a07edc4a42bbef14c2ca80a34f
msgid ""
"Check that dependencies are up to date with ``uv sync --all-extras --"
"upgrade`` and update dependencies accordingly in separated commits;"
msgstr ""
"Vérifiez que les dépendances sont à jour avec ``uv sync --all-extras --"
"upgrade`` et mettez à jour chaque dépendance dans un commit séparé;"
#: ../../CONTRIBUTING.rst:227 e9bd8386c6c64ef99aac12ee831f39d1
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 ""
"Vérifiez que les tests sont toujours verts pour chaque version supportée de "
"Python, et que la couverture de code est toujours de 100%, en lançant ``uv "
"run tox``;"
#: ../../CONTRIBUTING.rst:228 3e7d5493a8e44c1a9067010115678723
msgid ""
"Check that the demo environments are still working, both the local and the "
"Docker one;"
msgstr ""
"Vérifiez que les instances de démonstration sont toujours fonctionnelles, à "
"la fois en local et avec Docker;"
#: ../../CONTRIBUTING.rst:229 fe7867ea9416424e81c518f77853958a
msgid ""
"Check that the :ref:`development/changelog:Release notes` section is "
"correctly filled up;"
msgstr ""
"Vérifiez que les :ref:`development/changelog:notes de versioin` sont "
"correctement renseignées;"
#: ../../CONTRIBUTING.rst:230 7d89adc1c3e6478ab9e8faa02f97bf03
msgid "Increase the version number in ``pyproject.toml``;"
msgstr "Incrémentez le numéro de version dans ``pyproject.toml``;"
#: ../../CONTRIBUTING.rst:231 a376131776cd4e469611fa3ad6749be9
msgid "Commit with ``git commit``;"
msgstr "Commitez avec ``git commit``;"
#: ../../CONTRIBUTING.rst:232 655fd489e5324dc5b6172d438a6b8e3e
msgid "Build with ``uv build``;"
msgstr "Construisez le paquet avec ``uv build``;"
#: ../../CONTRIBUTING.rst:233 79fc61b7c13647a285a918a0c126ea53
msgid ""
"Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/"
"legacy/``;"
msgstr ""
"Publiez le paquet sur linstance de test de PyPI avec ``uv publish --publish-"
"url https://test.pypi.org/legacy/``;"
#: ../../CONTRIBUTING.rst:234 93540129ce0c440eba4da63ed3ddb769
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 ""
"Installez le paquet dans un projet quelconque avec ``pip install --extra-"
"index-url https://test.pypi.org/simple --upgrade canaille``. Vérifiez que "
"linstallation sest bien passée;"
#: ../../CONTRIBUTING.rst:235 8a73b31d1fe14fdda15e6c2dea0cafc9
msgid "Publish on production PyPI ``uv publish``;"
msgstr "Publiez sur linstance de production de PyPI avec ``uv publish``;"
#: ../../CONTRIBUTING.rst:236 93131bb37ccc4207825449d393f92201
msgid "Tag the commit with ``git tag XX.YY.ZZ``;"
msgstr "Étiquetez le commit avec ``git tag XX.YY.ZZ``;"
#: ../../CONTRIBUTING.rst:237 a98a5168d5f949ec9e96f16d8ff8b6f5
msgid ""
"Push the release commit and the new tag on the repository with ``git push --"
"tags``."
msgstr ""
"Poussez le commit de publication avec la nouvelle étiquette avec ``git push "
"--tags``."
#: ../development/index.rst:2 c0f14bad2988468fa0700bbd47fe1de0
msgid "Development"
msgstr "Développement"
#: ../development/specifications.rst:2 156d2082306649a89c7c6ff9b0879911
msgid "Specifications"
msgstr "Normes"
#: ../development/specifications.rst:4 2c830d15b604470ca1912e9a07b2deb6
msgid ""
"This page details which specifications are implemented in Canaille, and "
"compares Canaille with other well-known identity providers."
msgstr ""
"Cette page détaille les spécifications implémentées dans Canaille, et "
"compare Canaille avec dautres serveurs didentité renommés."
#: ../development/specifications.rst:7 bfa87dc7f42445fb96172a2ce7643950
msgid "State of the specs in Canaille"
msgstr "Létat des spécifications dans Canaille"
#: ../development/specifications.rst:10 b57576e6aa1e46c0ab9b0d74e40f7a1c
msgid "OAuth2"
msgstr "OAuth2"
#: ../development/specifications.rst:12 44156ac1d21c44f89d2090ae27ad397e
msgid ""
"✅ `RFC6749: OAuth 2.0 Framework <https://tools.ietf.org/html/rfc6749>`_"
msgstr ""
"✅ `RFC6749: OAuth 2.0 Framework <https://tools.ietf.org/html/rfc6749>`_"
#: ../development/specifications.rst:13 3dd5d1bc312e4808b9dfb7e906f9a1b3
msgid ""
"✅ `RFC6750: OAuth 2.0 Bearer Tokens <https://tools.ietf.org/html/rfc6750>`_"
msgstr ""
"✅ `RFC6750: OAuth 2.0 Bearer Tokens <https://tools.ietf.org/html/rfc6750>`_"
#: ../development/specifications.rst:14 3f7c67f6ca7049a0a99455d27e7b9278
msgid ""
"✅ `RFC7009: OAuth 2.0 Token Revocation <https://tools.ietf.org/html/"
"rfc7009>`_"
msgstr ""
"✅ `RFC7009: OAuth 2.0 Token Revocation <https://tools.ietf.org/html/"
"rfc7009>`_"
#: ../development/specifications.rst:15 b11098fcf9e64dfca026aa25e97624cc
msgid ""
"❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and "
"Authorization Grants <https://tools.ietf.org/html/rfc7523>`_"
msgstr ""
"❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and "
"Authorization Grants <https://tools.ietf.org/html/rfc7523>`_"
#: ../development/specifications.rst:16 0213796d176a4938a10c902cfb737a18
msgid ""
"✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol <https://tools."
"ietf.org/html/rfc7591>`_"
msgstr ""
"✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol <https://tools."
"ietf.org/html/rfc7591>`_"
#: ../development/specifications.rst:17 afdc8def073c495e8bb24a1ec6a0d62a
msgid ""
"✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol "
"<https://tools.ietf.org/html/rfc7592>`_"
msgstr ""
"✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol "
"<https://tools.ietf.org/html/rfc7592>`_"
#: ../development/specifications.rst:18 f592e7f0f2074289b67beb893604277d
msgid ""
"✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients <https://"
"tools.ietf.org/html/rfc7636>`_"
msgstr ""
"✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients <https://"
"tools.ietf.org/html/rfc7636>`_"
#: ../development/specifications.rst:19 bc914d1d327d4ce6a638c5245c4cfcc3
msgid ""
"✅ `RFC7662: OAuth 2.0 Token Introspection <https://tools.ietf.org/html/"
"rfc7662>`_"
msgstr ""
"✅ `RFC7662: OAuth 2.0 Token Introspection <https://tools.ietf.org/html/"
"rfc7662>`_"
#: ../development/specifications.rst:20 08bbaa19162d456899ba99be7b0f9e3d
msgid ""
"✅ `RFC8414: OAuth 2.0 Authorization Server Metadata <https://tools.ietf.org/"
"html/rfc8414>`_"
msgstr ""
"✅ `RFC8414: OAuth 2.0 Authorization Server Metadata <https://tools.ietf.org/"
"html/rfc8414>`_"
#: ../development/specifications.rst:21 abbbc93f57ba4660bafa5396616419d8
msgid ""
"❌ `RFC8428: OAuth 2.0 Device Authorization Grant <https://tools.ietf.org/"
"html/rfc8428>`_"
msgstr ""
"❌ `RFC8428: OAuth 2.0 Device Authorization Grant <https://tools.ietf.org/"
"html/rfc8428>`_"
#: ../development/specifications.rst:22 a9adf95822164ad9a91366b631a095ab
msgid ""
"❌ `RFC8693: OAuth 2.0 Token Exchange <https://tools.ietf.org/html/rfc8693>`_"
msgstr ""
"❌ `RFC8693: OAuth 2.0 Token Exchange <https://tools.ietf.org/html/rfc8693>`_"
#: ../development/specifications.rst:23 fac77fd04d2c457cbdda2f46d21a549d
msgid ""
"❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-"
"Bound Access Tokens <https://tools.ietf.org/html/rfc8705>`_"
msgstr ""
"❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-"
"Bound Access Tokens <https://tools.ietf.org/html/rfc8705>`_"
#: ../development/specifications.rst:24 772cbe80f8cd44faa3230ee4e690e5f3
msgid ""
"❌ `RFC8707: Resource Indicators for OAuth 2.0 <https://tools.ietf.org/html/"
"rfc8707>`_"
msgstr ""
"❌ `RFC8707: Resource Indicators for OAuth 2.0 <https://tools.ietf.org/html/"
"rfc8707>`_"
#: ../development/specifications.rst:25 8b06eb72e70742fc821332a4676ba48e
msgid ""
"❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens "
"<https://tools.ietf.org/html/rfc9068>`_"
msgstr ""
"❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens "
"<https://tools.ietf.org/html/rfc9068>`_"
#: ../development/specifications.rst:26 088615a4afdc48a5b6449df856cb1eb3
msgid ""
"❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) <https://"
"tools.ietf.org/html/rfc9101>`_"
msgstr ""
"❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) <https://"
"tools.ietf.org/html/rfc9101>`_"
#: ../development/specifications.rst:27 4bd307887c6a4dcebb9d5ff9b9c3176a
msgid ""
"❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests <https://tools.ietf.org/"
"html/rfc9126>`_"
msgstr ""
"❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests <https://tools.ietf.org/"
"html/rfc9126>`_"
#: ../development/specifications.rst:28 bf777af155ec47bb85265068ff053b85
msgid ""
"❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification <https://"
"tools.ietf.org/html/rfc9207>`_"
msgstr ""
"❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification <https://"
"tools.ietf.org/html/rfc9207>`_"
#: ../development/specifications.rst:29 06b84e457b3f423099a45450e8be7b96
msgid ""
"❌ `RFC9394: OAuth 2.0 Rich Authorization Requests <https://www.rfc-editor."
"org/rfc/rfc9396.html>`_"
msgstr ""
"❌ `RFC9394: OAuth 2.0 Rich Authorization Requests <https://www.rfc-editor."
"org/rfc/rfc9396.html>`_"
#: ../development/specifications.rst:30 17a488e183c64a7696ff1f8b3f02e3d8
msgid ""
"❌ `OAuth2 Multiple Response Types <https://openid.net/specs/oauth-v2-"
"multiple-response-types-1_0.html>`_"
msgstr ""
"❌ `OAuth2 Multiple Response Types <https://openid.net/specs/oauth-v2-"
"multiple-response-types-1_0.html>`_"
#: ../development/specifications.rst:31 28df30b698994c9ebb429fbe577701ac
msgid ""
"❌ `OAuth2 Form Post Response Mode <https://openid.net/specs/oauth-v2-form-"
"post-response-mode-1_0.html>`_"
msgstr ""
"❌ `OAuth2 Form Post Response Mode <https://openid.net/specs/oauth-v2-form-"
"post-response-mode-1_0.html>`_"
#: ../development/specifications.rst:34 ../features.rst:212
#: 273611a66c514122bd1b8986c81f8464 511272a32c844e4cb9ca0d2c2b0aeb42
msgid "OpenID Connect"
msgstr "OpenID Connect"
#: ../development/specifications.rst:36 1b811c589c884281a965b470a69c935c
msgid ""
"✅ `OpenID Connect Core <https://openid.net/specs/openid-connect-core-1_0."
"html>`_"
msgstr ""
"✅ `OpenID Connect Core <https://openid.net/specs/openid-connect-core-1_0."
"html>`_"
#: ../development/specifications.rst:37 8eb4c67d2de84a09ba6681ab0ad1dcf0
msgid ""
"✅ `OpenID Connect Discovery <https://openid.net/specs/openid-connect-"
"discovery-1_0.html>`_"
msgstr ""
"✅ `OpenID Connect Discovery <https://openid.net/specs/openid-connect-"
"discovery-1_0.html>`_"
#: ../development/specifications.rst:38 3dd0ab1827034c7f8bb58dd56463cb2a
msgid ""
"✅ `OpenID Connect Dynamic Client Registration <https://openid.net/specs/"
"openid-connect-registration-1_0.html>`_"
msgstr ""
"✅ `OpenID Connect Dynamic Client Registration <https://openid.net/specs/"
"openid-connect-registration-1_0.html>`_"
#: ../development/specifications.rst:39 5202769d4fed46999e56f7d6a0a03c5d
msgid ""
"✅ `OpenID Connect RP Initiated Logout <https://openid.net/specs/openid-"
"connect-rpinitiated-1_0.html>`_"
msgstr ""
"✅ `OpenID Connect RP Initiated Logout <https://openid.net/specs/openid-"
"connect-rpinitiated-1_0.html>`_"
#: ../development/specifications.rst:40 768d7dd2182a418fb9344db3f5cba48a
msgid ""
"❌ `OpenID Connect Session Management <https://openid.net/specs/openid-"
"connect-session-1_0.html>`_"
msgstr ""
"❌ `OpenID Connect Session Management <https://openid.net/specs/openid-"
"connect-session-1_0.html>`_"
#: ../development/specifications.rst:41 bffbc632d9bf4c89b64bb51cdece0844
msgid ""
"❌ `OpenID Connect Front Channel Logout <https://openid.net/specs/openid-"
"connect-frontchannel-1_0.html>`_"
msgstr ""
"❌ `OpenID Connect Front Channel Logout <https://openid.net/specs/openid-"
"connect-frontchannel-1_0.html>`_"
#: ../development/specifications.rst:42 3001306e82cc4e9b80078a4631c791f9
msgid ""
"❌ `OpenID Connect Back Channel Logout <https://openid.net/specs/openid-"
"connect-backchannel-1_0.html>`_"
msgstr ""
"❌ `OpenID Connect Back Channel Logout <https://openid.net/specs/openid-"
"connect-backchannel-1_0.html>`_"
#: ../development/specifications.rst:43 3e1058c4a8154eb58a563e171a03a51b
msgid ""
"❌ `OpenID Connect Back Channel Authentication Flow <https://openid.net/"
"specs/openid-client-initiated-backchannel-authentication-core-1_0.html>`_"
msgstr ""
"❌ `OpenID Connect Back Channel Authentication Flow <https://openid.net/"
"specs/openid-client-initiated-backchannel-authentication-core-1_0.html>`_"
#: ../development/specifications.rst:44 7d20317b02f54007a0d6e9e79b82b243
msgid ""
"❌ `OpenID Connect Core Error Code unmet_authentication_requirements "
"<https://openid.net/specs/openid-connect-unmet-authentication-"
"requirements-1_0.html>`_"
msgstr ""
"❌ `OpenID Connect Core Error Code unmet_authentication_requirements "
"<https://openid.net/specs/openid-connect-unmet-authentication-"
"requirements-1_0.html>`_"
#: ../development/specifications.rst:45 cc695337a4a4431c9a62bdc2471f489d
msgid ""
"✅ `Initiating User Registration via OpenID Connect 1.0 <https://openid.net/"
"specs/openid-connect-prompt-create-1_0.html>`_"
msgstr ""
"✅ `Initiating User Registration via OpenID Connect 1.0 <https://openid.net/"
"specs/openid-connect-prompt-create-1_0.html>`_"
#: ../development/specifications.rst:48 ../development/specifications.rst:64
#: d9278a9cbe784818b57f9fd9d76dda68 7ad1170acbe7400785a02a07e408ce3b
msgid "SCIM"
msgstr "SCIM"
#: ../development/specifications.rst:50 c91f11a0512e4782981c5bb98a8038d7
msgid ""
"❌ `RFC7642: System for Cross-domain Identity Management: Definitions, "
"Overview, Concepts, and Requirements <https://www.rfc-editor.org/rfc/"
"rfc7642>`_"
msgstr ""
"❌ `RFC7642: System for Cross-domain Identity Management: Definitions, "
"Overview, Concepts, and Requirements <https://www.rfc-editor.org/rfc/"
"rfc7642>`_"
#: ../development/specifications.rst:51 2f4ea31b4c80425a8e3075b8597ae8e5
msgid ""
"❌ `RFC7643: System for Cross-domain Identity Management: Core Schema "
"<https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
"❌ `RFC7643: System for Cross-domain Identity Management: Core Schema "
"<https://www.rfc-editor.org/rfc/rfc7642>`_"
#: ../development/specifications.rst:52 6ffdb285557144afb301b05c33fecddf
msgid ""
"❌ `RFC7644: System for Cross-domain Identity Management: Protocol <https://"
"www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
"❌ `RFC7644: System for Cross-domain Identity Management: Protocol <https://"
"www.rfc-editor.org/rfc/rfc7642>`_"
#: ../development/specifications.rst:55 ac600b38603f4fb999aebf5ffbe33cc7
msgid "Comparison with other providers"
msgstr "Comparaison avec dautres serveurs didentité"
#: ../development/specifications.rst:57 2ef9567e17694a669ed5071c882661ad
msgid "Here is a feature comparison with other OpenID Connect server software."
msgstr ""
"Voici une comparaison de fonctionnalités avec dautres serveurs didentité."
#: ../development/specifications.rst:59 d6d241980d3e46e192dd54a5082b0197
msgid ""
"Canaille voluntarily only implements the OpenID Connect protocol to keep its "
"codebase simple."
msgstr ""
"Afin de garder la base de code réduite, Canaille nimplémente que le "
"protocole OpenID Connect."
#: ../development/specifications.rst:62 0b9a4fba353c483692ed6fb04227691e
msgid "Software"
msgstr "Logiciel"
#: ../development/specifications.rst:62 62c2fe7c97644cfa8e7d297a337bfe36
msgid "Project"
msgstr "Projet"
#: ../development/specifications.rst:62 f4700ad912314bfc8d66be8471a4c772
msgid "Protocols implementations"
msgstr "Protocoles implémentés"
#: ../development/specifications.rst:64 ea237be2a99a4940be67516a1b95d97d
msgid "FLOSS"
msgstr "Libre"
#: ../development/specifications.rst:64 55d5dd9174f94ca9850b999864598259
msgid "Language"
msgstr "Langage"
#: ../development/specifications.rst:64 27002c409c6440d29ae89e91559a6994
msgid "LOC"
msgstr "LOC"
#: ../development/specifications.rst:64 3ba35fd6c6d44150b4b049cf603e4a85
msgid "OIDC"
msgstr "OIDC"
#: ../development/specifications.rst:64 dc762bcd6eca4fc79dae1ca65c411351
msgid "SAML"
msgstr "SAML"
#: ../development/specifications.rst:64 6ae5803282c4439a9e7b1c1570e4c505
msgid "CAS"
msgstr "CAS"
#: ../development/specifications.rst:66 f4c4ac6fdea74558a74bc9a3cefbb5c7
msgid "Canaille"
msgstr "Canaille"
#: ../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
#: c2035a448fa9405a92d51c9c90277394 1fff4f30a7714816a18b3fcc116290ea
#: c40b5154d16f4769a90f544f921ff160 b4f8f14c2ccd48d7a2df4514e072872c
#: 070425d5941a41a5b151cd30b60c8759 ae10fc61ac05465c88b82d0432b9f6f3
#: 487a8e03d0e34a79b0382407ce0105e6 aa47e755d8094a54a72e5a984eca8212
#: 1e641255c61242d782202c8eafa965b0 66fcd17bb81c48538f3b165edb4842e4
#: 28011cbaa1f84bc2b0c07e50fe8ee4c1 33e7166b401144bcadff959d61e03c4c
#: 3e414716fb234b5a98cbd381348c05b8 4233cb97a80043599c2ab7b25dfc7e09
#: 01a61d6ece794b39adc441233aef3a3d 7bba6b8427854a41b99c15b883290007
#: 87f7b258b9084896962266eef600ead0 35d2af03a40c44f3be85f38d56883d26
#: d90d1af7efe04fa397f58ec889a042d2 721544149a7244feb2fd14bc071b9ba4
#: 588ab8a50fca4528b9a471dbddfb7d4a 814ccdbc41184e08ac5d1dfc65486f1c
#: 5b92e201931a462c90a3d3883c2bd94a ba65de35554741a48a7eb4a72fc66433
#: c5d5335a195a44cd882f443ae316348f 9a77ea56aecb4e859046a32bcd052251
#: b845153d9ebc4c2e83791da5c5d0bf5a 4dd20636352243038f0bdad8d15e8449
#: 5b23071246ab41f1abd1bfa5596a4b46 e9195a6880cc4824bb5fbfce4b1d26dc
#: f0943b3b5cd34615a55cb2f9b1608b4a d95ce6d1875045fc8442060795ebfe22
#: eaa0089f734b48eea7a06ed3c5a0dad5 c1aa2d442f2047f9a1194e38c2b1ddd1
#: f86c1eae20714e9dba1f0f48395c4dc9 0657decbae9645678985ea6020d354d2
#: ce03d94ab7954c02968bfb44eb0f72fd 9fb4e3e247d846419051f2852ffa3f31
#: f5e5911bcb704af19c073370f437c1b4 2a75e780caa141b798c8b207bcc8fcbe
#: 47c3b428281d41fcb8e7bc0cdc16581f 44dd040e077248b48b1ed0af53404b9c
#: e063ffcc58474df4a66b2814eb4c0f61 24cd7d2b70af4d138d065f2b568969bc
#: 1b724ec2c443410fa224420a2dc57059 9909afe63bb34adcafa5eca97a23cd03
#: cb0aa79288f1454880b063396f3803e5 b96e91bf613c4f4cb6ac463fad5a68fe
#: cff48ca4a13545309d9e1b58c3dede80 e55ccef99f4a45be8fb35a1ed8bb1ac4
#: a5b3f91649094efebe4e858d745ccb2e 4b09487097334807804aaba873d4dc7b
#: a981b83da6074c448bcbcfaf442ff4f8 93c98f61c81b4628a9acfd096e11e7a4
#: c9b45500d9d145a8862c978d95329330 c34b7940cbbd4218af2cb94e8eb24fc7
#: 007275e0e3314ae5a27bc93732d22221 8a394726b7b941dfbbd8af3e546782c1
#: eda36ba62e4947528d14d5bb46f98767 78eb76570364482583c3cb19d0303903
#: 911d55a0575e40f68acac8945e382a6f 888a30003d764dd28c8744ea11295da4
#: f5320617a03e47dea905ac5a70208c70
msgid "✅"
msgstr "✅"
#: ../development/specifications.rst:66 ../development/specifications.rst:72
#: 86f975b8aaab4af9bfc62ef2df91ba28 9dd4f11a08ae4fb0b0fde477b7209bc3
msgid "Python"
msgstr "Python"
#: ../development/specifications.rst:66 3a757539fafc4e3aa92dbdec5227a2df
msgid "10k"
msgstr "10k"
#: ../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
#: d1129a1abbbe451393139f636f972160 0baee04e46584b46ab2b5bd83dea4c0d
#: cab3dd361d004e25bc0250cb2e0ffe9a d3bccdee48f340dcac2b45c0892ceceb
#: 71b748e4a2b34c0bb767e54e9a6035e5 a2b3f6f336424dbbaf5dc3d387d841e6
#: 465d3f3e0fd74093b25163100de425b3 7d6b64f2f3bd472bac864db31a8369db
#: 56488a2c86774489986852389d9bdc8b 31a1e7b5acc84a55bcb704865acece12
#: 64856df8e2b846fc9b5af8a2091645a0 bfba022e99874f03afc35e4de5bd4708
#: a879dcda766c4da185322f35d22e6f46 fd884c4495c144699d4ed019e0264719
#: aa15002c037b42d49c62426116a999c9 94a1a61f502a42569788cfe93ad6bcf7
#: 2f498851758b4c13943c69ec1ce9a3db 205c9937da9946108d0a0e2b4f8458aa
#: 7aa2bbcd681b45e3b3027de382926640
msgid "❌"
msgstr "❌"
#: ../development/specifications.rst:68 41d7747dc9384c6b908b8394168b5b5a
msgid "`Auth0`_"
msgstr "`Auth0`_"
#: ../development/specifications.rst:68 ../development/specifications.rst:78
#: ../development/specifications.rst:80 ../development/specifications.rst:88
#: b391b0e5e2724d7f9d457a4e64303697 8f85eeab9d6945af894c55e2a4aa0b9b
#: 042200dd8e5446a9bf353b47b219b1bb cf98ae825b30479499de8a4c5ffa1941
#: 9d4e74c78b2b439785310a334d06a1c7 29630d08824746cb989fd0b402a48ba1
#: 40c78abb3bce4fc8a59fabdef15f0f33 d6fbf12d6eb6429d84551ea23bf8eecc
#: f682275b9cb14280a7f2654d727c75d1
msgid "❔"
msgstr "❔"
#: ../development/specifications.rst:70 47ff7b1213464f85b246c4282f3af933
msgid "`Authelia`_"
msgstr "`Authelia`_"
#: ../development/specifications.rst:70 ../development/specifications.rst:74
#: ../development/specifications.rst:82 5db56fd3e64948f5a108d2f74f7070b4
#: 336fd480628c4851957b790dee759f7c f263685446a54133804e5f8517d59f1d
msgid "Go"
msgstr "Go"
#: ../development/specifications.rst:70 ../development/specifications.rst:82
#: 741e97755b8c4478b7e19ba006898401 ffc79e1d4373446e88d2065ff0109fc8
msgid "50k"
msgstr "50k"
#: ../development/specifications.rst:72 7fb71b70103e40eeb178e1281ea81de3
msgid "`Authentic2`_"
msgstr "`Authentic2`_"
#: ../development/specifications.rst:72 cb26c38797d9416fafe5d1a1b5c5b03b
msgid "65k"
msgstr "65k"
#: ../development/specifications.rst:74 6f7fc7bbb2694f09a12393a74ffc8013
msgid "`Authentik`_"
msgstr "`Authentik`_"
#: ../development/specifications.rst:74 bb964534c0704925b6d856bd54af7c7f
msgid "55k"
msgstr "55k"
#: ../development/specifications.rst:76 4604cb0778044b63807b2be23ced893c
msgid "`CAS`_"
msgstr "`CAS`_"
#: ../development/specifications.rst:76 ../development/specifications.rst:80
#: ../development/specifications.rst:84 aa3618e441ac413e83acdfe56631d15a
#: 1dc363d8cf99410890cbd44e0f60699c 4104aef4b998447299aa6b10e861098c
msgid "Java"
msgstr "Java"
#: ../development/specifications.rst:76 c316893b4f00454a8c5745071e0888b1
msgid "360k"
msgstr "360k"
#: ../development/specifications.rst:78 c8a158afb8d841209c20b9ef42e563cb
msgid "`Connect2id`_"
msgstr "`Connect2id`_"
#: ../development/specifications.rst:80 a264cd68201c442faf08474397c550aa
msgid "`Gluu`_"
msgstr "`Gluu`_"
#: ../development/specifications.rst:82 e54b53bfeafd4764b01095c1cd0077b7
msgid "`Hydra`_"
msgstr "`Hydra`_"
#: ../development/specifications.rst:84 87594578370246d494ef5e63196a3a92
msgid "`Keycloak`_"
msgstr "`Keycloak`_"
#: ../development/specifications.rst:84 d6304d1f41714ad5af15edb6febbfbc5
msgid "600k"
msgstr "600k"
#: ../development/specifications.rst:86 2efe7957b848447dacfecb082a95c438
msgid "`LemonLDAP`_"
msgstr "`LemonLDAP`_"
#: ../development/specifications.rst:86 cdd25b565e5d4de4b4202f82f4407843
msgid "Perl"
msgstr "Perl"
#: ../development/specifications.rst:86 51b2d4fcc1fc43d2a692826a2b2c62d1
msgid "130k"
msgstr "130k"
#: ../development/specifications.rst:88 4c2a5d27487345f7bc3c1bbd0c897c47
msgid "`Okta`_"
msgstr "`Okta`_"
#: ../features.rst:9 61a68141a485477a9fb49921e7b8aa3a
msgid "Features"
msgstr "Fonctionnalités"
#: ../features.rst:11 5dd070084abb440ebf87c36df501f197
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 ""
"Voici les différentes fonctionnalités que Canaille propose. Vous pouvez "
"activer nimporte laquelle de ces fonctionnalités avec la :doc:"
"`configuration <references/configuration>` pour que Canaille sadapte au :"
"doc:`cas dusage <usecases>` que vous rencontrez. Jetez un œil à notre :ref:"
"`feuille de route <features:Roadmap>` pour savoir ce qui arrive dans le "
"futur."
#: ../features.rst:15 83eef1f1157b4d37b4627438618f31ab
msgid ""
"Users can interact with Canaille through its :ref:`web interface <features:"
"Web interface>` and administrators can also use its :ref:`command line "
"interface <feature_cli>`. Canaille can handle data stored in different :ref:"
"`database backends <feature_databases>`."
msgstr ""
"Les utilisateurs peuvent interagir avec Canaille grâce à son :ref:`web "
"interface <features:interface web>` et les administrateurs peuvent aussi "
"utiliser son :ref:`interface en ligne de commande <feature_cli>`. Canaille "
"peut enregistrer les données dans différentes :ref:`bases de données "
"<feature_databases>`."
#: ../features.rst:19 73c7e363c37147fc825deea06ee26975
msgid "User and group management"
msgstr "Gestion dutilisateurs et de groupes"
#: ../features.rst:21 e19b2b99a8544219b61bbedc1229e77c
msgid ""
"Canaille web interface can be used either in :doc:`production environments "
"<tutorial/deployment>` or locally for development purposes."
msgstr ""
"L'interface web de Canaille web interface peut être utilisé dans des :doc:"
"`environnements de production <tutorial/deployment>` ou localement pour "
"permettre les développements."
#: ../features.rst:26 ../index.rst:27 759b0714ba194bc5a5d043350cb4cd14
#: dd79223676e0465293d1499d8929fa26
msgid "Profile management"
msgstr "Gestion de profil"
#: ../features.rst:-1 53e5483c51ae4df28138ae990c16de07
#: 0a36f2261b84450b98131ff740f7ceb9
msgid "Profile"
msgstr "Profil"
#: ../features.rst:33 864adfa77693422cad803b08d9187a5e
msgid "Canaille provides an interface to manage user profiles."
msgstr "Canaille fournit une interface pour gérer les profils utilisateur."
#: ../features.rst:35 505ce537381249ec82445d38a4e093df
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 ""
"La liste exacte des champs affichés ainsi que s'ils sont accessible en :attr:"
"`écriture <canaille.core.configuration.ACLSettings.WRITE>` ou en :attr:"
"`lecture seule <canaille.core.configuration.ACLSettings.READ>` dépend du "
"paramètre utilisateur :class:`liste de contrôle d'accès (ACL) <canaille.core."
"configuration.ACLSettings>`."
#: ../features.rst:37 625c7cea8a034a7ba263a71ce0587a26
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 ""
"Selon les :class:`droits <canaille.core.configuration.Permission>` de leur "
"liste de contrôle d'accès (ACL) , les utilisateurs peuvent soit modifier "
"leur profil, modifier le profil de n'importe quel utilisateur ou ne rien "
"faire du tout."
#: ../features.rst:42 530dac22b587444cbd5de9ba2d7a3a90
msgid "Email confirmation"
msgstr "Confirmation de l'e-mail"
#: ../features.rst:44 2c3acd412bb944ab81ff2631784bff71
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 ""
"Si la :attr:`fonctionnalité de confirmation d'e-mail <canaille.core."
"configuration.CoreSettings.EMAIL_CONFIRMATION>` est activée, toute "
"modification ou ajout de profil enverra un e-mail de confirmation à la "
"nouvelle adresse. L'e-mail contiendra un lien sur lequel l'utilisateur devra "
"cliquer pour confirmer son adresse."
#: ../features.rst:46 8d597149b59e45f896eff2baa716fc20
msgid ""
"Users with :attr:`user management permission <canaille.core.configuration."
"Permission.MANAGE_USERS>` can set user emails without confirmation though."
msgstr ""
"Les utilisateurs avec le :attr:`droit de gérer les utilisateurs <canaille."
"core.configuration.Permission.MANAGE_USERS>` peut paramétrer les e-mails des "
"utilisateurs sans confirmation."
#: ../features.rst:51 4a6be5a6b71a4a5ea35d7c4a41630e35
msgid "Group management"
msgstr "Gestion de groupes"
#: ../features.rst:-1 4824338c1fbf4fdd8c2e01534219ee98
#: 3d8b9fc086e945d890bf9b3e01c82984
msgid "Group edition"
msgstr "Édition de groupes"
#: ../features.rst:58 afc7e192d41148e0a2ef8ec6f8944729
msgid ""
"In a similar fashion than :ref:`profile management "
"<feature_profile_management>` Canaille provides an interface to manage user "
"groups."
msgstr ""
"De manière similaire à la :ref:`gestion de profil "
"<feature_profile_management>`, Canaille fournit une interface pour gérer les "
"groupes d'utilisateur."
#: ../features.rst:60 b83c6d0af7fe45228496bb2c594cf88c
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 ""
"La gestion de groupe est assez simple actuellement et consiste en un nom de "
"groupe, une description et la liste de ses membres. Appartenir au groupe "
"peut être utilisé comme :attr:`filtre ACL <canaille.core.configuration."
"ACLSettings.FILTER>` pour définir les droits utilisateur."
#: ../features.rst:63 ../features.rst:83 ../features.rst:149
#: ../tutorial/deployment.rst:13 6fdf0a969ccb49e1bf9bfc28f4df9169
#: 4065a0b70a1444058df3bb16f0abc445 bc0be7a805e04b5f91b89db28d7dffae
#: 7ab21494d11e4287acffeb771f8f5244
msgid "Todo"
msgstr "À faire"
#: ../features.rst:64 60eafd84b6934482b1ec0831e6aaa3b7
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 ""
"Actuellement, l'ajout d'utilisateur dans un groupe ne peut être fait que "
"depuis la page de paramètre de l'utilisateur, mais nous :issue:`travaillons "
"à améliorer cela <192>`."
#: ../features.rst:66 6440e19e527d4d5f8abc44d99c8a3dba
msgid ""
"Group management can be enable with a :attr:`dedicated user permission "
"<canaille.core.configuration.Permission.MANAGE_GROUPS>`."
msgstr ""
"La gestion de groupe peut être activée avec un :attr:`droit utilisateur "
"dédié <canaille.core.configuration.Permission.MANAGE_GROUPS>`."
#: ../features.rst:69 2382414ec97641a4925e741a26ae3148
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 ""
"À cause d'une contrainte dans :ref:`LDAP <tutorial/databases:LDAP>`, les "
"groupes doivent avoir au moins un membre. Il n'est donc pas possible de "
"supprimer le dernier utilisateur d'un groupe sans supprimer le groupe."
#: ../features.rst:75 ../index.rst:34 b136f97d836d4c8dbb63cd671ceebe4e
#: 76d8725ced9e421f98de5fb1e1ee01a2
msgid "User authentication"
msgstr "Authentification utilisateur"
#: ../features.rst:77 022b43e4ff7f4932aa151eaade78aeb6
msgid ""
"Unless their account is :ref:`locked <feature_account_locking>`, users can "
"authenticate with a login and a password."
msgstr ""
"Sauf si leur compte est :ref:`verrouillé <feature_account_locking>`, les "
"utilisateurs peuvent s'authentifier avec un identifiant et un mot de passe."
#: ../features.rst:81 1a8cb7dc227a452b81768be3758a8fb4
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 ""
"Pour des raisons de sécurité, si un utilisateur essaie de se connecter avec "
"un identifiant inexistant, cela ne sera pas précisé, sauf :attr:`paramétrage "
"explicite dans la configuration <canaille.core.configuration.CoreSettings."
"HIDE_INVALID_LOGINS>`."
#: ../features.rst:83 778349cb3c344689bd8cc06184005e10
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 ""
"Les utilisateurs :ref:`basé sur LDAP <tutorial/databases:LDAP>` peuvent "
"définir quel :class:`champ utilisateur <canaille.core.models.User>` doit "
"être utilisé comme identifiant (tel que :attr:`~canaille.core.models.User."
"user_name` ou :attr:`~canaille.core.models.User.emails`) en utilisant un :"
"attr:`paramètre de configuration <canaille.backends.ldap.configuration."
"LDAPSettings.USER_FILTER>`, mais les autres backends peuvent seulement se "
"connecter avec :attr:`~canaille.core.models.User.user_name`. Nous :issue:"
"`travaillons à améliorer cette situation <196>`."
#: ../features.rst:88 aa467ae3118543ed94401a8ca23776f1
msgid "User registration"
msgstr "Enregistrement d'un utilisateur"
#: ../features.rst:90 c81ba8ba520c4d8bb6c8475fe023404b
msgid ""
"Users can create accounts on Canaille if the :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 ""
"Les utilisateurs peuvent créer des comptes sur Canaille si la "
"fonctionnalité :attr:`d'enregistrement <canaille.core.configuration."
"CoreSettings.ENABLE_REGISTRATION>` est activée. Ils pourront remplir un "
"formulaire d'enregistrement contenant les champs détaillés dans les :class:"
"`paramètres ACL <canaille.core.configuration.ACLSettings>` par défaut."
#: ../features.rst:92 c1f2442a948d414e9b9983d79aa91ae4
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 ""
"Si la :attr:` confirmation par e-mail <canaille.core.configuration."
"CoreSettings.EMAIL_CONFIRMATION>` est aussi activée, les utilisateurs "
"recevront un lien de confirmation sur leur adresse e-mail. Ils devront "
"cliquer dessus pour valider la création du compte."
#: ../features.rst:-1 ../features.rst:97 3d200c871e19420db3ce1885f7414a3c
#: 7bf61d1ad01240f7b1ed2db4ab0fdf77
msgid "User invitation"
msgstr "Invitation d'utilisateur"
#: ../features.rst:104 134f042cb892434e922c01d62222ed54
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 ""
"Si un :class:`serveur e-mail <canaille.core.configuration.SMTPSettings>` est "
"configuré, les utilisateurs avec le :attr:`droit de gérer les utilisateurs "
"<canaille.core.configuration.Permission.MANAGE_USERS>` peuvent créer un lien "
"d'invitation pour un autre utilisateur."
#: ../features.rst:106 e054dbb49f644364a6aaadcb2f5a0024
msgid ""
"The link goes to a registration form, even if regular :ref:`user "
"registration <feature_user_registration>` is disabled."
msgstr ""
"Le lien pointe vers le formulaire d'neregistrement, même si :ref:"
"`l'enregistrement d'utilisateur <feature_user_registration>` est désactivée."
#: ../features.rst:108 536cbb5eff1444dda4ac45998d356fe6
msgid "It can be automatically sent by email to the new user."
msgstr "Il peut être envoyé automatiquement par e-mail au nouvel utilisateur."
#: ../features.rst:113 c24731829c1949aeb3f54f0167ed8b37
msgid "Account locking"
msgstr "Verrouillage des comptes"
#: ../features.rst:115 48e7bf2282b5487f9437be3863edc5ed
msgid ""
"If Canaille is plugged to a :ref:`backend <feature_databases>` 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 ""
"Si Canaille est branché à un :ref:`backend <feature_databases>` supportant "
"cette fonctionnalité, les comptes utilisateurs peuvent être verrouillés avec "
"la :attr:`permission de gestion des utilisateurs <canaille.core."
"configuration.Permission.MANAGE_USERS>`. La date de verrouillage du compte "
"peut être immédiate, ou bien effective à une date future définie."
#: ../features.rst:118 31e7e6b90652414ab1b450f98ddb7d53
msgid "At the moment a user account is locked:"
msgstr "Au moment où un compte utilisateur est verrouillé :"
#: ../features.rst:120 6be8caf7464643e99cb2614ce0138045
msgid "their open sessions will be closed;"
msgstr "leurs sessions ouvertes seront fermées;"
#: ../features.rst:121 93da628150674abe85e3ff8f27e83c0a
msgid "they won't be able to sign in again;"
msgstr "ils ne pourront plus se connecter à nouveau;"
#: ../features.rst:122 e5196d576eb445d9aa83989d6f241c42
msgid "no new OIDC token will be issued;"
msgstr "aucun nouveau token OIDC ne sera émis;"
#: ../features.rst:124 c784a99a157b46028eb5c3543da73e38
msgid ""
"User accounts must be manually unlocked by an administrator for the users to "
"regain access to those actions."
msgstr ""
"Les comptes utilisateur doivent être déverrouillés manuellement par un "
"administrateur pour que les utilisateurs concernés récupèrent l'accès à ces "
"actions."
#: ../features.rst:129 da2f0b388508475cbb3fd080de1ff44c
msgid "Account deletion"
msgstr "Suppression des comptes"
#: ../features.rst:131 5bc09c4f89764a1a950c44dc255b98d2
msgid ""
"Users with the :attr:`account deletion permission <canaille.core."
"configuration.Permission.DELETE_ACCOUNT>` are allowed to delete their own "
"account."
msgstr ""
"Les utilisateurs avec la :attr:`permission de suppression de compte "
"<canaille.core.configuration.Permission.DELETE_ACCOUNT>` peuvent supprimer "
"leur propre compte."
#: ../features.rst:133 85f4ea778e8f45f7841ddf39f1bc8b41
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 ""
"Les utilisateurs qui ont additionnellement la :attr:`permission de gestion "
"des utilisateurs <canaille.core.configuration.Permission.MANAGE_USERS>` "
"peuvent également supprimer les comptes d'autres utilisateurs."
#: ../features.rst:138 86a66e197de94dcbb90d559730b89318
msgid "Password recovery"
msgstr "Récupération de mot de passe"
#: ../features.rst:145 6693db5e96354da69ed660a259c109ce
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 ""
"Si un :class:`serveur e-mail <canaille.core.configuration.SMTPSettings>` est "
"configuré, et la :attr:`fonctionnalité de récupération de mot de passe "
"<canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY>` est "
"activée, les utilisateurs peuvent demander l'envoi d'un e-mail de "
"réinitialisation de mot de passe s'ils ont oublié leur mot de passe."
#: ../features.rst:147 2f356fab771549f9bdca5fa4f3ca2e5e
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 ""
"L'e-mail sera envoyé à l'adresse e-mail saisie dans leur profil, et "
"contiendra un lien leur permettant de choisir un nouveau mot de passe."
#: ../features.rst:151 a603b57c4fc54e67ba04056b0037ae8e
msgid "Check that password recovery is disabled on locked accounts."
msgstr ""
"Vérifie que la récupération de mot de passe est désactivée pour les comptes "
"verrouillés."
#: ../features.rst:156 1bdb193d14a444a2a823f0dcef03e8ad
msgid "Password reset"
msgstr "Réinitialisation des mots de passe"
#: ../features.rst:158 077ee41f3059484dad80b08733aae520
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 ""
"Si un :class:`serveur e-mail <canaille.core.configuration.SMTPSettings>` est "
"configuré, la :attr:`permission de gestion des utilisateurs <canaille.core."
"configuration.Permission.MANAGE_USERS>` permet d'envoyer des e-mails de "
"réinitialisation de mot de passe aux utilisateurs. Les e-mails contiennent "
"un lien qui permet aux utilisateurs de choisir un nouveau mot de passe sans "
"avoir besoin de retrouver l'ancien."
#: ../features.rst:164 c4e7b07761674e608a0e2bfdd50a659a
msgid "Password initialization"
msgstr "Initialisation des mots de passe"
#: ../features.rst:166 5043df71775449a78e19ce0296f8d9ee
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 ""
"Les :attr:`mots de passe <canaille.core.models.User.password>` utilisateur "
"sont optionnels. Si un :class:`serveur e-mail <canaille.core.configuration."
"SMTPSettings>` est configuré, quand un utilisateur sans mot de passe tente "
"de se connecter, il est invité à cliquer sur un bouton déclenchant l'envoi "
"d'un e-mail de réinitialisation de mot de passe. Cet e-mail contient un lien "
"dirigeant vers un formulaire permettant à l'utilisateur de choisir un mot de "
"passe."
#: ../features.rst:173 412b386c0c794b5d8c71ea7b51278da8
msgid "Password compromission check"
msgstr "Vérification de la compromission du mot de passe"
#: ../features.rst:175 35e11da6bbdf4e2da05a3a66c24e1dbe
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 ""
"Si l' :attr:`option de vérification de compromission du mot de passe "
"<canaille.core.configuration.CoreSettings."
"ENABLE_PASSWORD_COMPROMISSION_CHECK>` est activée, Canaille va vérifier la "
"compromission du mot de passe sur HIBP (https://haveibeenpwned.com/) à "
"chaque fois qu'un nouveau mot de passe est saisi. La configuration d'un :"
"attr:`e-mail administrateur <canaille.core.configuration.CoreSettings."
"ADMIN_EMAIL>` est nécessaire."
#: ../features.rst:178 cbba3fccd9f84230b6eb0774cfd7e109
msgid "Web interface"
msgstr "Interface web"
#: ../features.rst:183 fab0081b9bd4460098de6df7d8c317b5
msgid "Internationalization"
msgstr "Internationalisation"
#: ../features.rst:-1 46cf7a3a3e9047439aa7fa6654b07921
msgid "Translation state"
msgstr "État de la traduction"
#: ../features.rst:190 0a5afedc31de47a28d0bf7842a8558cd
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 ""
"Canaille va s'afficher dans votre :attr:`langue préférée <canaille.core."
"models.User.preferred_language>` si disponible, ou la langue de votre "
"navigateur si disponible (si elle ne l'est pas, vous pouvez :ref:`noud aider "
"à la traduire <development/contributing:Code translation>`). Si vous le "
"souhaitez, vous pouvez également :attr:`forcer une langue <canaille.core."
"configuration.CoreSettings.FAVICON>` pour tous les utilisateurs."
#: ../features.rst:196 2caebf718cab47029a83bb91253e36e5
msgid "Lightweight"
msgstr "Léger"
#: ../features.rst:198 e3cbad3b2af0422287a92a4094559d8b
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 ""
"L'interface web est légère, donc tout devrait se charger rapidement. Il y a "
"un peu de Javascript ici et là pour lisser l'expérience, mais aucun "
"Javascript n'est absolument nécessaire à l'utilisation de Canaille."
#: ../features.rst:202 a7db848b637a46b1874f04fb542009e2
msgid "Customizable"
msgstr "Personnalisable"
#: ../features.rst:204 0c829a128889493fbc97247a60390954
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 ""
"Le thème par défaut devrait suffir à la plupart des usages. Il dispose d'un "
"thème sombre, s'affiche bien sur mobile, et vous laissez choisir un :attr:"
"`logo <canaille.core.configuration.CoreSettings.LOGO>` et un :attr:`favicon "
"<canaille.core.configuration.CoreSettings.FAVICON>`."
#: ../features.rst:207 3a69d40c024744af967a1408c054aca0
msgid ""
"If you need more you can also use a :attr:`custom theme <canaille.core."
"configuration.CoreSettings.THEME>`."
msgstr ""
"Si vous avez besoin de plus, vous pouvez utiliser un :attr:`thème "
"personnalisé <canaille.core.configuration.CoreSettings.THEME>`."
#: ../features.rst:214 003c4e8eee334a9d89486e2c0ae5d106
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 ""
"Canaille implémente un :ref:`sous-ensemble<development/specifications:State "
"of the specs in Canaille>` de la spécification de OAuth2/OpenID Connect. "
"Cela permet d'avoir la :abbr:`SSO (Single Sign-On)` et la :abbr:`SLO (Single "
"Log-On)` aux applications branchées à Canaille."
#: ../features.rst:218 51e9a6e1ddb04b99a6a73135fc8728e7
msgid "Consent management"
msgstr "Gestion des autorisations"
#: ../features.rst:226 a613e3d10f1243f3bc5d4e796b278c89
msgid ""
"Users can give their consent to application requesting access to their "
"personal information, and then revoke those consent at their will."
msgstr ""
"Les utilisateurs peuvent donner leur autorisation aux applications qui "
"demandent un accès à leurs informations personnelles, et révoquer ces "
"autorisations lorsqu'ils le souhaitent."
#: ../features.rst:230 115bec7ea8944f6ab98641d9bd2540ec
msgid "Application management"
msgstr "Gestion des applications"
#: ../features.rst:232 526d36374a8747d6ad6280379bcf664c
msgid ""
"Users with the right :attr:`permission <canaille.core.configuration."
"Permission.MANAGE_OIDC>` can manager OIDC clients through the web interface."
msgstr ""
"Les utilisateurs ayant la :attr:`permission <canaille.core.configuration."
"Permission.MANAGE_OIDC>` nécessaire peuvent gérer les clients OIDC depuis "
"l'interface web."
#: ../features.rst:234 79f0217902dc4b2ca73128ff6c16e7b5
msgid ""
"In some cases, it might be useful to avoid the consent page for some trusted "
"applications, so clients can be pre-consented."
msgstr ""
"Dans certains cas, il peut être utile d'éviter la page d'autorisation pour "
"certaines applications de confiance, pour que des clients puissent être pré-"
"autorisés."
#: ../features.rst:237 d1f7f85df6404afe91d29e4dee44be1d
msgid "Discovery"
msgstr "Découverte"
#: ../features.rst:239 8b306f1c76664574a0f3d85805a46d87
msgid ""
"Canaille implements the :doc:`Discovery specifications <development/"
"specifications>` so most of the applications plugged to Canaille can auto-"
"configure themselves."
msgstr ""
"Canaille implémente les :doc:`spécifications de découverte <development/"
"specifications>` donc la plupart des applications branchées à Canaille "
"peuvent se configurer automatiquement par eux-même."
#: ../features.rst:242 d5a2f0c4fa2f4363b5e87c4243376aaa
msgid "Dynamic Client Registration"
msgstr "Enregistrement de client dynamique"
#: ../features.rst:244 800aec57df82487f80fc7da359dc5c34
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 ""
"Canaille implémente les :doc:`spécifications d'enregistrement de client "
"dynamique <development/specifications>`, donc quand la :attr:`fonctionnalité "
"est activée <canaille.oidc.configuration.OIDCSettings."
"DYNAMIC_CLIENT_REGISTRATION_OPEN>`, les clients peuvent s'enregistrer eux-"
"même sur Canaille sans l'intervention d'un administrateur."
#: ../features.rst:247 9cae9e0af58f499dac34354e9c12785d
msgid "System administration"
msgstr "Administration système"
#: ../features.rst:252 ../references/commands.rst:2
#: 9b5fcf18f6214856ae377f83005f8309 e2a97a5dfb5844f9a74c78b1a28ed23f
msgid "Command Line Interface"
msgstr "Interface en ligne de commande"
#: ../features.rst:254 98ef5f39d74944668dfff8b63d9d6199
msgid ""
"Canaille comes with a :abbr:`CLI (Command Line Interface)` to help "
"administrators in hosting and management."
msgstr ""
"Canaille est équipé d'un :abbr:`CLI (Command Line Interface)`, ou interface "
"en ligne de commande, pour aider les administrateurs à l'hébergement et à la "
"gestion."
#: ../features.rst:256 9a30112ff2eb47c69263e73aa3c4ee15
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 ""
"L'interface en ligne de commande dispose d'outils pour :ref:`vérifier votre "
"configuration <cli_check>` ou pour :ref:`installer des éléments manquants "
"<cli_install>`. Vous pouvez utiliser le CLI pour :ref:`créer <cli_create>`, :"
"ref:`lire <cli_get>`, :ref:`mettre à jour <cli_set>` et :ref:`supprimer "
"<cli_delete>` des modèles comme les :class:`utilisateurs <canaille.core."
"models.User>`, :class:`groupes <canaille.core.models.Group>` ou les  :class:"
"`clients OIDC <canaille.oidc.basemodels.Client>`."
#: ../features.rst:259 02d13c90aa8f41f5b1007cd67fcea510
msgid ""
"There are also tools to :ref:`fill your database <cli_populate>` with random "
"objects, for tests purpose for instance."
msgstr ""
"Elle dispose également d'outils pour :ref:`remplir votre base de données "
"<cli_populate>` avec des objets aléatoires, par exemple à des fins de test."
#: ../features.rst:264 ../tutorial/databases.rst:2
#: 0225297b7d884971a952f5ec904a15ac cf1fc0e0abb74b3ca66c1e92a5e773e9
msgid "Databases"
msgstr "Bases de données"
#: ../features.rst:266 1a7af5dc07fa4f6c9231664737ee46a7
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 ""
"Canaille peut manipuler de la donnée depuis des  :ref:`bases de données SQL "
"<tutorial/databases:SQL>` les plus communes, telles que PostgreSQL, MariaDB "
"ou SQLite, ainsi que depuis :ref:`OpenLDAP <tutorial/databases:LDAP>`. "
"Canaille dispose également d'une :ref:`base de données en mémoire <tutorial/"
"databases:Memory>` sans dépendances qui peut être utilisée dans des tests "
"unitaires."
#: ../features.rst:272 a6a6a7334af54051aebed82d83027ea8
msgid "Logging"
msgstr "Connexion"
#: ../features.rst:274 9bc7705bd378459abf2f813381aa58a6
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 ""
"Canaille écrit des :attr:`journaux <canaille.core.configuration.CoreSettings."
"LOGGING>` pour tous les événements importants dans le but d'aider les "
"administrateurs à comprendre ce qui se passe et déboguer les cas bizarres."
#: ../features.rst:276 2aeb5161276a4f048c40a7256c3d7f0e
msgid ""
"The following security events are logged with the tag [SECURITY] for easy "
"retrieval:"
msgstr ""
"Les événements de sécurité suivants sont enregistrés avec l'étiquette "
"[SECURITY] pour les retrouver facilement :"
#: ../features.rst:278 ed4be0b57afe4ce9976c45f03c249444
msgid "Authentication attempt"
msgstr "Tentative d'authentification"
#: ../features.rst:279 452456f9907e4bbd89439903c2fc9ebc
msgid "Password update"
msgstr "Mise à jour du mot de passe"
#: ../features.rst:280 9ccb4ef2a139403c85223576eb87a182
msgid "Email update"
msgstr "Mise à jour de l'e-mail"
#: ../features.rst:281 bd0936deb7994f8fb59f2f0a47115edc
msgid "Forgotten password mail sent to user"
msgstr "Mail d'oubli de mot de passe envoyé à l'utilisateur"
#: ../features.rst:282 02079fe76d2041aaba48a6b2079630f1
msgid "Token emission"
msgstr "Emission de jeton"
#: ../features.rst:283 814519684d8c47a5b0b5ae6eaa9aa66e
msgid "Token refresh"
msgstr "Rafraichissement de jeton"
#: ../features.rst:284 4489f99b64dd40248f28453fb8b4b0df
msgid "Token revokation"
msgstr "Révocation des jetons"
#: ../features.rst:285 99abcc04f85649c1b184e22e67b36f18
msgid "New consent given for client application"
msgstr "Nouvelle autorisation donnée pour l'application client"
#: ../features.rst:286 c64802d623a74d678c4aca29f82c39d7
msgid "Consent revokation"
msgstr "Révocation de l'autorisation"
#: ../features.rst:291 f9d92f5f76a745ee97ea36afc853c516
msgid "Development and testing tool"
msgstr "Outil de développement et de test"
#: ../features.rst:296 9c0500515a5847c2bec5b1bb743f42fc
msgid "Unit-testing tool"
msgstr "Outil de test unitaire"
#: ../features.rst:298 b1dc62a0c2024ff1bd6682408301766a
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 ""
"Grâce à sa :ref:`base de données en mémoire <tutorial/databases:"
"Memory>`légère et sa :ref:`liste de dépendances <tutorial/install:Get the "
"code>`, Canaille peut être utilisé dans la suite de tests unitaires de votre "
"application, pour que vous puissiez vérifier comment l'application se "
"comporte face à un vrai serveur OpenID Connect. Si vous travaillez en "
"python, vous pourriez être intéressé par :doc:`pytest-iam:index`."
#: ../features.rst:301 ff4f45059bc2485eb5fa0145f5f01f9a
msgid "Development server"
msgstr "Serveur de développement"
#: ../features.rst:303 a430530dc1ac42b680a9024e920dad7d
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 ""
"Canaille peut également être lancé dans votre environnement de "
"développement, si vous trouvez que lancer un Keycloak dans un conteneur "
"Docker est trop lourd pour votre application web."
#: ../features.rst:308 3594d882079a4c89b28f0d9b25b5a647
msgid "Continuous Integration tools"
msgstr "Outils d'intégration continue"
#: ../features.rst:310 f7bb141a215c46df915ce63b47f13cdb
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 ""
"Canaille s'intègre également bien dans des scénarios d'intégration continue. "
"Grâce à son :ref:`CLI <feature_cli>`, vous pouvez préparer la donnée dans "
"Canaille, laisser votre application interagir avec, puis observer les effets "
"secondaires."
#: ../features.rst:313 beb39ccb89e040118104ba0c0f41eb71
msgid "Roadmap"
msgstr "Prévisionnel"
#: ../features.rst:316 4fee3c311fe844bbb345bd5b562844ad
msgid "Bêta version"
msgstr "Version bêta"
#: ../features.rst:318 f699343ae7fe4f12a9d12f4692c22827
msgid ""
"To go out of the current Alpha version we want to achieve the following "
"tasks:"
msgstr ""
"Pour sortir de la version Alpha actuelle, nous voulons réaliser les taches "
"suivantes :"
#: ../features.rst:320 c8aec1fe7d574a789319e75cc64bd2e7
msgid ":issue:`Configuration validation using pydantic <138>`"
msgstr ""
":issue:`Validation de la configuration en utilisant using pydantic <138>`"
#: ../features.rst:323 706d590389f54c40ba1b219877946bb5
msgid "Stable version"
msgstr "Version stable"
#: ../features.rst:325 54c0d4cc60054a5ebe7456575b1b70c3
msgid ""
"Before we push Canaille in stable version we want to achieve the following "
"tasks:"
msgstr ""
"Avant de déployer Canaille en version stable, nous voulons réaliser les "
"taches suivantes :"
#: ../features.rst:328 7807e2d92e264bc78fd5b6a3c63beb3a
msgid "Security"
msgstr "Sécurité"
#: ../features.rst:330 577ab46503ee45e89daa8c42938635e5
msgid ":issue:`Password hashing configuration <175>`"
msgstr ":issue:`Configuration du hashage du mot de passe <175>`"
#: ../features.rst:331 a337cb0aac704dbca90dd70f1d68456d
msgid ":issue:`Authentication logging policy <177>`"
msgstr ":issue:`Politique de journalisation des authentifications <177>`"
#: ../features.rst:332 39adf64b80444b27bb6f9f11747a6960
msgid ":issue:`Intruder lockout <173>`"
msgstr ":issue:`Blocage des connexions après échecs <173>`"
#: ../features.rst:333 3eeac7b1dec04fe9b990864b8810db50
msgid ":issue:`Password expiry policy <176>`"
msgstr ":issue:`Politique dexpiration des mots de passe <176>`"
#: ../features.rst:334 4ad4707b7d02481ab507ded2d410eb70
msgid ":issue:`Multi-factor authentication: Email <47>`"
msgstr ":issue:`Authentification multi-facteurs : Email <47>`"
#: ../features.rst:335 478b4f7b443f4f728085a2ea686b0248
msgid ":issue:`Multi-factor authentication: SMS <47>`"
msgstr ":issue:`Authentification multi-facteurs : SMS <47>`"
#: ../features.rst:336 fd624a7e3d404428830928ee05ec5348
msgid ":issue:`Multi-factor authentication: OTP <47>`"
msgstr ":issue:`Authentification multi-facteurs : OTP <47>`"
#: ../features.rst:339 a6acbc89a16a4fad8658fb33764830ad
msgid "Packaging"
msgstr "Paquets"
#: ../features.rst:341 575b556539994d1190e50cbfd0133bd4
msgid ":issue:`Nix package <190>`"
msgstr ":issue:`Paquet Nix <190>`"
#: ../features.rst:342 f8facef108bf4d668509e57200f732bb
msgid ":issue:`Docker / OCI package <59>`"
msgstr ":issue:`Paquet Docker / OCI <59>`"
#: ../features.rst:345 92825d26f07c4b718121c2784a9b6b81
msgid "And beyond"
msgstr "Et au-delà"
#: ../features.rst:347 ac17ddb06c4d400ebc190454535608c2
msgid ":issue:`OpenID Connect certification <182>`"
msgstr ":issue:`Certification OpenID Connect <182>`"
#: ../features.rst:348 1b80703b0f434fe6ade3288840b9cf3c
msgid ":issue:`SCIM support <116>`"
msgstr ":issue:`Support SCIM <116>`"
#: ../index.rst:15 2c1f5afe842843a6bbedd65606fde0f5
msgid "Lightweight Identity and Authorization Management"
msgstr "Serveur didentité et d'autorisations ultra-léger"
#: ../index.rst:19 0fa9dc97ee984c00a9460a07144eba66
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 ""
"**Canaille** est un mot français dont la prononciation (en anglais) "
"ressemble à **Can I?**, comme dans *Can I access your data?* (Puis-je "
"accéder à vos données?). Canaille est un logiciel de gestion d'autorisation "
"et d'identité léger. Il est conçu pour être très léger, simple à installer "
"et simple à maintenir. Ses fonctionnalités principales sont :"
#: ../index.rst:31 8b56e6fd5b374afbadf70d3371ad8538
msgid "User profile and groups management, Basic permissions"
msgstr "Gestion de profils utilisateur et de groupes, permissions simples"
#: ../index.rst:38 ae2a113a2f63489ebb6a9696df422ed1
msgid ""
"Authentication, registration, email confirmation, \"I forgot my password\" "
"emails"
msgstr ""
"Authentification, inscription, confirmation par e-mail, e-mails \"J'ai "
"oublié mon mot de passe\""
#: ../index.rst:40 c4659885674a4b848e904b352c94b89c
msgid "SSO"
msgstr "Authentification unique (SSO)"
#: ../index.rst:44 3dabf6a8010d4aff943f07dbf6fe52aa
msgid "OpenID Connect identity provider"
msgstr "Fournisseur d'identité OpenID Connect"
#: ../index.rst:46 f7caa27d43354246a89db295901976cb
msgid "Multi-database support"
msgstr "Gestion de multiples bases de données"
#: ../index.rst:50 73b988c55cc241eeafe075a55fd037a0
msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship"
msgstr "PostgreSQL, Mariadb et OpenLDAP sont des citoyens de première classe"
#: ../index.rst:52 9caead4464284ccca1a59bff67fbec2d
msgid "Customization"
msgstr "Personnalisation"
#: ../index.rst:56 e2604712b57b4583b53181a9fefcda0e
msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!"
msgstr ""
"Mettez Canaille à vos couleurs en choisissant un logo ou en utilisant un "
"thème personnalisé!"
#: ../index.rst:58 b168d0612c04400e8b259edb581dc6c7
msgid "Developers friendliness"
msgstr "Facilité de développement"
#: ../index.rst:62 8b5f849ae22348f19d5d8feca1590032
msgid ""
"Canaille can easily fit in your unit tests suite or in your Continuous "
"Integration."
msgstr ""
"Canaille peut s'intégrer facilement dans votre suite de tests unitaires ou "
"dans votre Intégration Continue."
#: ../index.rst:66 a4dbd4558bda425cab549061b5952854
msgid ":doc:`Full feature list <features>` :doc:`Common use cases <usecases>`"
msgstr ""
":doc:`Liste complète des fonctionnalités <features>` :doc:`Cas d'usage "
"<usecases>`"
#: ../references/commands.rst:4 574cb073f7584f8599a4cc129a337c4a
msgid ""
"Canaille provide several commands to help administrator manage their data."
msgstr ""
"Canaille dispose de plusieurs commandes pour aider les administrateurs à "
"gérer leurs données."
#: ../references/commands.rst:6 aa7436e81d0347aca49e76837769f92b
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 ""
"Généralement, une configuration doit être chargée par `Canaille`. Cela peut "
"être réalisé par :ref:`une méthode de chargement de la "
"configuration<references/configuration:Load the configuration>` disponible, "
"mais la plupart du temps une variable d'environnement ``CONFIG`` est "
"utilisée. Pour des raisons de lisibilité, elle est omise dans les exemples "
"suivants."
#: ../../canaille check:1 d3880ac07b8641fbb96a657384193437
msgid "Test the configuration file."
msgstr "Test du fichier de configuration."
#: ../../canaille check:1 8edd9caa824f4c3aa3298a3e0b28a418
msgid ""
"Attempt to reach the database and the SMTP server with the provided "
"credentials."
msgstr ""
"Tentative pour accéder à la base de données et le serveur SMTP avec les "
"identifiants fournis."
#: ../../canaille clean:1 15fc7dadf416460fb034401cb2298ddc
msgid "Remove expired tokens and authorization codes."
msgstr "Suppression des jetons expirés et des codes d'autorisation."
#: ../../canaille install:1 f58f2f270c9642208409eab2a078aa10
msgid "Installs canaille elements from the configuration."
msgstr "Installe les éléments de Canaille issus de la configuration."
#: ../../canaille install:1 ee828128d3684eaea85f63a4d8efb295
msgid ""
"For instance, depending on the configuration, this can generate OIDC keys or "
"install LDAP schemas."
msgstr ""
"Par exemple, selon la configuration, cela peut générer les clefs OIDC ou "
"installer des schémas LDAP."
#: ../../canaille populate:1 df2355b792904bae8c2adfdc44e3abc1
msgid "Populate the database with generated random data."
msgstr "Remplit la base de données avec des données générées aléatoirement."
#: ../references/commands.rst:0 25c273b3659241e5a58c4ccfc4d1aa62
#: 23e595a7ef3e40738c72964260d647d4 b9df5380bb904ef3b2c158886514b1f4
#: 810cab23bf5f4e0bbe5e403092b4739f 2b944a79e15441a28501202fb405ceec
#: 337385bfcd154b46942fd5cc685e3c53 3c51398f5ef14fafac576c18c1938015
#: f7857604a6af425d92b5f49a3a571724 50ab489bedfa413b941eaca1514e779e
#: 817fa12a167549c2b2dcda5cf8aca990 e144249ab1e4497a8e2b59433d28dd94
#: 8e13e364d31643ebbcbea2ec3c48cebb 93521a77f0084af9b274926a73bb1866
#: 979aef4626814c74bd3208394714d692 145d1e9e3fe74947b6695497c7f75b40
#: 7e7e2edd89534686997d302f673e5005 2d123fd2ca8b46dbb63d2f8cd67b8a9b
#: 658ca5556e9b484884784c60355dcaba ecc2c5a1d0ee4d75a8dabc1519c9b46f
#: e9427573b4fd4fea8baa73d3dfd6c901
msgid "Options"
msgstr "Options"
#: ../../canaille populate:1 757aacf7045343ac87f0d6123fe1e181
msgid "Number of items to create"
msgstr "Nombre d'éléments à créer"
#: ../../canaille populate groups:1 0e4a01018e724dc6a6ca0b638d66852a
msgid "Populate the database with generated random groups."
msgstr "Remplit la base de données avec des groupes générés aléatoirement."
#: ../../canaille populate groups:1 b8f050417d3e4d5cb1abef74d5b23fef
msgid "The maximum number of users that will randomly be affected in the group"
msgstr ""
"Le nombre maximum d'utilisateurs qui seront aléatoirement affectés dans le "
"groupe"
#: ../../canaille populate users:1 27cbff2cac6c4d0ba3a881e593e6d298
msgid "Populate the database with generated random users."
msgstr ""
"Remplit la base de données avec des utilisateurs générés aléatoirement."
#: ../../canaille get:1 a991a3b616044f2c932b1b5781575930
msgid "Read information about models."
msgstr "Lit les informations concernant les modèles."
#: ../../canaille get:1 ff29fb8d5ce14bc291589af023d25348
msgid "Options can be used to filter models::"
msgstr "Les options peuvent être utilisées pour filtrer les modèles :"
#: ../../canaille get:1 ebb9a30bb4ad418b937898f33eb3154d
msgid "Displays the matching models in JSON format in the standard output."
msgstr ""
"Affiche les modèles correspondants au format JSON sur la sortie standard."
#: ../../canaille get authorizationcode:1 3b7cec01bf904fbd95a74ecc629450d4
msgid "Search for authorizationcodes and display the matching models as JSON."
msgstr ""
"Recherche les codes d'autorisation et affiche les modèles correspondants en "
"JSON."
#: ../../canaille get client:1 04713bc174844fbc90ffcd66309a32d7
msgid "Search for clients and display the matching models as JSON."
msgstr "Recherche les clients et affiche les modèles correspondants en JSON."
#: ../../canaille get consent:1 3d85785b1e954ca48fb3600e102060dc
msgid "Search for consents and display the matching models as JSON."
msgstr ""
"Recherche les consentements et affiche les modèles correspondants en JSON."
#: ../../canaille get group:1 a7f5ed4db7ca4b6e990d3008e3df40dd
msgid "Search for groups and display the matching models as JSON."
msgstr "Recherche les groupes et affiche les modèles correspondants en JSON."
#: ../../canaille get token:1 f28ab88c832f4310ba8fce02409a0471
msgid "Search for tokens and display the matching models as JSON."
msgstr "Recherche les jetons et affiche les modèles correspondants en JSON."
#: ../../canaille get user:1 243977ad7e504fedbd9646f89f934592
msgid "Search for users and display the matching models as JSON."
msgstr ""
"Recherche les utilisateurs et affiche les modèles correspondants en JSON."
#: ../../canaille set:1 f1db85f49bf44d11a4bb25bef94995c7
msgid "Update models."
msgstr "Mise-à-jour des modèles."
#: ../../canaille set:1 81f6f6bde2db46419feea67dae446a01
msgid "The command takes an model ID and edit one or several attributes::"
msgstr ""
"La commande prend un identifiant de modèle et modifie un ou plusieurs "
"attributs::"
#: ../../canaille set:1 2605d2f99fff4a3685e4acb6c7d08749
msgid "Displays the edited model in JSON format in the standard output."
msgstr "Affiche le modèle modifié au format JSON sur la sortie standard."
#: ../../canaille set authorizationcode:1 0e3e63095aaa4d10827812a9df412418
msgid ""
"Update a authorizationcode and display the edited model in JSON format in "
"the standard output."
msgstr ""
"Met à jour un code d'autorisation et affiche le modèle modifié au format "
"JSON sur la sortie standard."
#: ../../canaille delete authorizationcode:1 set
#: 272d0df08f904f519632f9fd2fe65385 2f9f07b54e574b76b44a885d2edcee5f
msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id"
msgstr ""
"IDENTIFIER devrait être un code d'autorisation ou authorization_code_id"
#: ../references/commands.rst:0 68201cc09cab43ae872191c5e1e0de51
#: 797f38593b54447e9abe286cd709857c 5f7b7a34cec54b7bb8813914c7b1da9e
#: e2da0bdb8e364ad4ac3fa9a24108e9c9 7a653436ae5244b3915e22f7b337b441
#: 83d05fec78e043fcbf55d763d9664075 314878b93dce45baac9f4ab7248087c2
#: 59d47562162a44fcb07558824e722d39 811906b3e60e4f96bb46272adf7a2702
#: 9f85ada6864146db941a9b74f9dccdcc e15f98264ca3466aa879164b237471d4
#: 23cb9085c4df46c5919811da9786751a
msgid "Arguments"
msgstr "Paramètres"
#: ../../canaille delete authorizationcode:1 client:1 consent:1 group:1 token:1
#: user:1 set cafe88a3ce2e428eac214691a4cceb5a 7b2ff0501238407193726c30d9eca3c9
#: 0ba51222ad4a4533b4b41b1757a35c64 ea0c5446d43d40c49f2b92c5b3541ce9
#: 9ac86d8bfd664383a081e3c1ede9c96e cd7e04caa435456ca0cf597a4cf2b866
#: 8d3a56d3d2d8434a96e06ee1db5c7f74 ee33e52044104463b44bf754ebc2bfd3
#: ec1ed557213c433f960f06a20c6305f0 79fcf662ca834cb9bad46e70395f5c0d
#: a2446c9d8a43489f95b98774f9e95af2 c84e4574c2934d05b8911fbf5ff07255
msgid "Required argument"
msgstr "Paramètre obligatoire"
#: ../../canaille set client:1 8fd29a2556aa4939a91f5dff64f750f9
msgid ""
"Update a client and display the edited model in JSON format in the standard "
"output."
msgstr ""
"Mise-à-jour du client et affiche le modèle modifié au format JSON sur la "
"sortie standard."
#: ../../canaille delete client:1 set 1fe7624c6c204327b3dea4672369b25c
#: a507a2cde7be4e01b653d88b1143bcc1
msgid "IDENTIFIER should be a client id or client_id"
msgstr "IDENTIFIER devrait être un identifiant client ou client_id"
#: ../../canaille set consent:1 bc9887077625496493e99ffd14864f21
msgid ""
"Update a consent and display the edited model in JSON format in the standard "
"output."
msgstr ""
"Met à jour un consentement et affiche un modèle modifié au format JSON sur "
"la sortie standard."
#: ../../canaille delete consent:1 set c40a621613bb4a57ae61d0bf635d4be1
#: 36c566d3a8d64d98b3139d1d408e6e33
msgid "IDENTIFIER should be a consent id or consent_id"
msgstr "IDENTIFIER devrait être un identifiant de consentement ou consent_id"
#: ../../canaille set group:1 24bf72192e064a11ba8f4408dc6cd2f2
msgid ""
"Update a group and display the edited model in JSON format in the standard "
"output."
msgstr ""
"Met à jour un groupe et affiche le modèle modifié au format JSON sur la "
"sortie standard."
#: ../../canaille delete group:1 set f9bb7a0e3cb74e87bd9647b1d854d4c5
#: 2b44dcf76741473980e37c9fb1f972c9
msgid "IDENTIFIER should be a group id or display_name"
msgstr "IDENTIFIER devrait être un identifiant de groupe ou display_name"
#: ../../canaille set token:1 ed64c8271e11430f829f537ac1c9fb03
msgid ""
"Update a token and display the edited model in JSON format in the standard "
"output."
msgstr ""
"Met à jour un jeton et affiche un modèle modifié au format JSON sur la "
"sortie standard."
#: ../../canaille delete token:1 set 5872d15912fa4904bc7429f1e6c4e4e5
#: 2e473a0a6bc4446eb92d334a50bad9e0
msgid "IDENTIFIER should be a token id or token_id"
msgstr "IDENTIFIER devrait être un identifiant de token ou token_id"
#: ../../canaille set user:1 6db0783b2700470888b19c5bc6144406
msgid ""
"Update a user and display the edited model in JSON format in the standard "
"output."
msgstr ""
"Met à jour un utilisateur et affiche un modèle modifié au format JSON sur la "
"sortie standard."
#: ../../canaille delete user:1 set e98462e8df9b4465af9a63c0bbf21546
#: d7cebb3763ed4824afd5b69c0a82f605
msgid "IDENTIFIER should be a user id or user_name"
msgstr "IDENTIFIER devrait être un identifiant utilisateur ou user_name"
#: ../../canaille create:1 3f6211fedcff4c49a1a05bb0d923b452
msgid "Create models."
msgstr "Crée des modèles."
#: ../../canaille create:1 dabf2e993c7e4f4e958ecf36a3a64cfa
msgid "The model attributes can be passed as command options::"
msgstr ""
"Les attributs de modèle peuvent être passés comme options de la commande::"
#: ../../canaille create:1 88fc347eb7814471b13dc9a6b562dd75
msgid "Displays the created model in JSON format in the standard output."
msgstr "Affiche le modèle créé au format JSON sur la sortie standard."
#: ../../canaille create authorizationcode:1 428bc4494e3f4f6d875f2a701295e030
msgid ""
"Create a new authorizationcode and display the created model in JSON format "
"in the standard output."
msgstr ""
"Crée un nouveau code d'autorisation et affiche le modèle créé au format JSON "
"sur la sortie standard."
#: ../../canaille create client:1 4f234a94637b44698b95c220d5c3d59e
msgid ""
"Create a new client and display the created model in JSON format in the "
"standard output."
msgstr ""
"Crée un nouveau client et affiche le modèle créé au format JSON sur la "
"sortie standard."
#: ../../canaille create consent:1 741d27c2f5fb448da39ad4955e77518e
msgid ""
"Create a new consent and display the created model in JSON format in the "
"standard output."
msgstr ""
"Crée un nouveau consentement et affiche le modèle créé au format JSON sur la "
"sortie standard."
#: ../../canaille create group:1 973102f969a0499692c7a2416dd0f469
msgid ""
"Create a new group and display the created model in JSON format in the "
"standard output."
msgstr ""
"Crée un nouveau groupe et affiche le modèle créé au format JSON sur la "
"sortie standard."
#: ../../canaille create token:1 4f44ca45c9f8454b950534b228e8ef12
msgid ""
"Create a new token and display the created model in JSON format in the "
"standard output."
msgstr ""
"Crée un nouveau jeton et affiche le modèle créé au format JSON sur la sortie "
"standard."
#: ../../canaille create user:1 35ce000da38042699e6154f107a3e814
msgid ""
"Create a new user and display the created model in JSON format in the "
"standard output."
msgstr ""
"Crée un nouvel utilisateur et affiche le modèle créé au format JSON sur la "
"sortie standard."
#: ../../canaille delete:1 fd758e22b29a4fd4b7f1c92876768518
msgid "Delete models."
msgstr "Supprime des modèles."
#: ../../canaille delete:1 42450f0ac5674556be84bcf4cc34c98f
msgid "The command takes a model ID and deletes it::"
msgstr "La commande prend un identifiant de modèle et le supprime::"
#: ../../canaille delete authorizationcode:1 4607eae8cf4c40a3a37bef887f2254a1
msgid "Delete a authorizationcode."
msgstr "Supprime un code d'autorisation."
#: ../../canaille delete client:1 01b65f6e61a848c490034606d1d00095
msgid "Delete a client."
msgstr "Supprime un client."
#: ../../canaille delete consent:1 b1dfdb33eba94dc2a71f9172cff74acb
msgid "Delete a consent."
msgstr "Supprime un consentement."
#: ../../canaille delete group:1 6c79a439e1f54f4f81194cc8d6fc5944
msgid "Delete a group."
msgstr "Supprime un groupe."
#: ../../canaille delete token:1 1fb9fa8740c442ff82297d480fbba5ca
msgid "Delete a token."
msgstr "Supprime un jeton."
#: ../../canaille delete user:1 b0298caa666647268cd204cbd1cccd4d
msgid "Delete a user."
msgstr "Supprime un utilisateur."
#: ../references/configuration.rst:2 6c3d1ad364a84afb9586b1b62e42dedb
msgid "Configuration"
msgstr "Configuration"
#: ../references/configuration.rst:5 fca2326d4bf84702b7d8d0f5d3a65f20
msgid "Load the configuration"
msgstr "Charge la configuration"
#: ../references/configuration.rst:7 51e2253170d4489ab9598217182b6f1d
msgid ""
"Canaille can be configured either by a environment variables, environment "
"file, or by a configuration file."
msgstr ""
"Canaille peut être configuré soit par des variables d'environnement "
"variables, un fichier d'environnement ou par un fichier de configuration."
#: ../references/configuration.rst:10 1560e71d7b2d42aa8ec0accc06131b3d
msgid "Configuration file"
msgstr "Fichier de configuration"
#: ../references/configuration.rst:12 0fc2b0bc764345caba3f9402376e279a
msgid ""
"The configuration can be written in `toml` configuration file which path is "
"passed in the :envvar:`CONFIG` environment variable."
msgstr ""
"La configuration peut être écrite dans un fichier de configuration `toml` "
"dont le chemin est passé dans la variable d'environnement :envvar:`CONFIG`."
#: ../../canaille/app/configuration.py:docstring of
#: canaille.app.configuration.RootSettings:11
#: ../references/configuration.rst:14 ../references/configuration.rst:94
#: ../tutorial/databases.rst:23 ../tutorial/databases.rst:37
#: 3626de52eeca4eecbda8f1d47354a80c f59eab2f20b542f1af3ae7e6e4856266
#: c1e56e5ab5ba40228c68cd9eb470348d 8acf4c15626e4f6897aa81c2e5e8ef42
msgid "config.toml"
msgstr "config.toml"
#: ../references/configuration.rst:26 4b63b3891e1c45788780ea1af554d1db
msgid ""
"You can have a look at the :ref:`example file <references/configuration:"
"Example file>` for inspiration."
msgstr ""
"Regardez le :ref:`fichier d'exemple <references/configuration:Example file>` "
"pour vous inspirer."
#: ../references/configuration.rst:29 8cbac0cd9e3e4bc3ad5fc60d82180568
msgid "Environment variables"
msgstr "Variables d'environnement"
#: ../references/configuration.rst:31 b909831b5aed44a4b439b37701feabb7
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 ""
"De plus, les paramètres qui n'ont pas été définis dans le fichier de "
"configuration peuvent être lus depuis les variables d'environnement. La "
"façon dont les variables d'environnement sont analysées peut être lu dans la "
"`documentation pydantic-settings <https://docs.pydantic.dev/latest/concepts/"
"pydantic_settings/#parsing-environment-variable-values>`_."
#: ../references/configuration.rst:36 fd22a354c18f4733b8b1962cfcbe2139
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 ""
"Pour les variables d'environnement, le séparateur entre les sections et les "
"variables est un double souligné (underscore) : ``__``. Par exemple, la "
"variable ``NAME`` dans la section ``CANAILLE`` affichée au-dessus est "
"``CANAILLE__NAME``."
#: ../references/configuration.rst:40 f12f0cbb606e4627be2fa3b2a895f162
msgid "Environment file"
msgstr "Fichier d'environnement"
#: ../references/configuration.rst:42 434c11ee0d6a4a118f9b8802d407d447
msgid ""
"Any environment variable can also be written in an environment file, which "
"path should be passed in the ``ENV_FILE`` environment variable. For "
"instance, set ``ENV_FILE=.env`` to load a ``.env`` file."
msgstr ""
"N'importe quel variable d'environnement peut aussi être écrit dans un "
"fichier d'environnement, dont le chemin devrait être passé dans la variable "
"d'environnement ``ENV_FILE``. Par exemple, paramétrer ``ENV_FILE=.env`` pour "
"charger un fichier ``.env``."
#: ../references/configuration.rst:45 83d91b20c3204d09b61a4a6de8c84769
msgid ".env"
msgstr ".env"
#: ../references/configuration.rst:63 8fc48610072c4e248c494befe2a4c8f6
msgid "Configuration methods priority"
msgstr "Priorité des méthodes de configuration"
#: ../references/configuration.rst:65 d3fdde7c8d9841e49e92bcba763e33d8
msgid ""
"If a same configuration option is defined by different ways, here is how "
"Canaille will choose which one to use:"
msgstr ""
"Si une option de configuration est définie de multiples façons, voici "
"comment Canaille sélectionnera celle à utiliser :"
#: ../references/configuration.rst:67 b79bfecad485446b85a8866657222448
msgid ""
"environment vars have priority over the environment file and the "
"configuration file;"
msgstr ""
"Les variables d'environnement sont prioritaires sur le fichier "
"d'environnement et le fichier de configuration;"
#: ../references/configuration.rst:68 63800f5a14d44e1fa3ed0266e19f5482
msgid "environment file will have priority over the configuration file."
msgstr ""
"Le fichier d'environnement est prioritaire sur le fichier de configuration."
#: ../references/configuration.rst:71 e8e7a0f78d68479a9586036adf25e183
msgid "Parameters"
msgstr "Paramètres"
#: ../../canaille/app/configuration.py:docstring of
#: canaille.app.configuration.RootSettings:1 ba32908d458e4689a5d90a46b386fdf3
msgid ""
"The top-level namespace contains the configuration settings unrelated to "
"Canaille."
msgstr ""
"L'espace de nom de plus haut niveau contient les paramètres de configuration "
"sans rapport avec Canaille."
#: ../../canaille/app/configuration.py:docstring of
#: canaille.app.configuration.RootSettings:4 fffc30ea67ab47d99472750172be2a29
msgid "The configuration parameters from the following libraries can be used:"
msgstr ""
"Les paramètres de configuration provenant des bibliothèques suivantes "
"peuvent être utilisées :"
#: ../../canaille/app/configuration.py:docstring of
#: canaille.app.configuration.RootSettings:6 ae9ceb139bfc47f8b383dec852b507c2
msgid ":doc:`Flask <flask:config>`"
msgstr ":doc:`Flask <flask:config>`"
#: ../../canaille/app/configuration.py:docstring of
#: canaille.app.configuration.RootSettings:7 3d01d0dc9cdc47e59420f5b121370277
msgid ":doc:`Flask-WTF <flask-wtf:config>`"
msgstr ":doc:`Flask-WTF <flask-wtf:config>`"
#: ../../canaille/app/configuration.py:docstring of
#: canaille.app.configuration.RootSettings:8 d573a04c56154eaf857d49c057690bfd
msgid ":doc:`Flask-Babel <flask-babel:index>`"
msgstr ":doc:`Flask-Babel <flask-babel:index>`"
#: ../../canaille/app/configuration.py:docstring of
#: canaille.app.configuration.RootSettings:9 552391e3f12c4385abb3e1a2e3929cfa
msgid ":doc:`Authlib <authlib:flask/2/authorization-server>`"
msgstr ":doc:`Authlib <authlib:flask/2/authorization-server>`"
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1
#: 4309008dba2c4aa79584299f19987ac4
msgid "The Flask :external:py:data:`DEBUG` configuration setting."
msgstr "Le paramétrage de configuration de Flask :external:py:data:`DEBUG`."
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3
#: f8cb9ba68ed14b818c2fb2bcfbffb16a
msgid "This enables debug options."
msgstr "Cela active les options de débogage."
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7
#: 553b378e895a4b74aa242c08cd29450f
msgid ""
"This is useful for development but should be absolutely avoided in "
"production environments."
msgstr ""
"C'est utile lors du développement mais devrait être absolument évité sur des "
"environnements de production."
#: ../../docstring of
#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1
#: cb2cc7437e4a4d3c90895c4148186b25
msgid ""
"The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting."
msgstr ""
"Le paramétrage de la configuration de Flask :external:py:data:"
"`PREFERRED_URL_SCHEME`."
#: ../../docstring of
#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4
#: 530f78ce6f4842c983c10b38fe4c4b93
msgid "This sets the url scheme by which canaille will be served."
msgstr "Cela paramètre le schéma d'URL avec lequel Canaille sera servi."
#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1
#: 42e179fea274407eb26dd67e4a6d14a5
msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting."
msgstr ""
"Le paramétrage de la configuration de Flask :external:py:data:`SECRET_KEY`."
#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3
#: b16e239dce5c4f199a2fba1707c82d1a
msgid "You MUST change this."
msgstr "Vous DEVEZ le changer."
#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1
#: 0f0f60195f334cf597f67857740b2ace
msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting."
msgstr ""
"Le paramétrage de la configuration de Flask :external:py:data:`SERVER_NAME`."
#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3
#: 39edb89e79af4a10a154a5c42d51e86e
msgid "This sets domain name on which canaille will be served."
msgstr "Cela paramètre le nom de domaine sur lequel Canaille sera servi."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.CoreSettings:1 d831c1b108eb4e96bb11a6ddc92ed45e
msgid "The settings from the ``CANAILLE`` namespace."
msgstr "Les paramètres issus de l'espace de nom ``CANAILLE``."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.CoreSettings:3 a51801e81d914eb3bfe1fa4e649133c1
msgid ""
"Those are all the configuration parameters that controls the behavior of "
"Canaille."
msgstr ""
"Ce sont tous les paramètres de configuration contrôlant le comportement de "
"Canaille."
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1
#: 89de24471b434051a4a84e39bc47aded
msgid ""
"Mapping of permission groups. See :class:`ACLSettings` for more details."
msgstr ""
"Correspondance des groupes de droits. Voir :class:`ACLSettings` pour plus de "
"détails."
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3
#: 1f85af06bed64d9da4417c6e6f7e244e
msgid "The ACL name can be freely chosen. For example:"
msgstr "Le nom des ACL peut être choisi librement. Par exemple :"
#: ../../docstring of
#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:4
#: canaille.core.configuration.ACLSettings.PERMISSIONS:6
#: canaille.core.configuration.CoreSettings.ACL:5
#: canaille.core.configuration.CoreSettings.LOGGING:12
#: 56ce67b55d3b4d8eba9a07b4feed2587 d9b0f4816c2644679233ec3b797c2fc4
#: ea4face810944c2e934e593ccfe99a84
msgid "..code-block:: toml"
msgstr "..code-block:: toml"
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:7
#: dc73b62baf4f465598787ebb33191c7b
msgid ""
"[CANAILLE.ACL.DEFAULT] PERMISSIONS = [\"edit_self\", \"use_oidc\"] READ = "
"[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]"
msgstr ""
"[CANAILLE.ACL.DEFAULT] PERMISSIONS = [\"edit_self\", \"use_oidc\"] READ = "
"[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]"
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:12
#: 56d15bcfdbcc4556a3848702228b970f
msgid "[CANAILLE.ACL.ADMIN] WRITE = [\"user_name\", \"groups\"]"
msgstr "[CANAILLE.ACL.ADMIN] WRITE = [\"user_name\", \"groups\"]"
#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1
#: e07c109febe5434e95b532da3dadf454
msgid "Administration email contact."
msgstr "Contact e-mail de l'administration."
#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3
#: 7a5e93e36d434fcb96b85beea8f1adc6
msgid ""
"In certain special cases (example : questioning about password corruption), "
"it is necessary to provide an administration contact email."
msgstr ""
"Dans certains cas particuliers (par exemple en cas de questionnement sur la "
"corruption de mot de passe), il est nécessaire de fournir un e-mail de "
"contact pour l'administration."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1
#: 478effaaf0da47a1a31b996b06b8c650
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 ""
"Si :py:data:`True`, les utilisateurs auront besoin de cliquer sur un lien de "
"confirmation envoyé par e-mail quand ils voudront en ajouter un nouveau."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4
#: b82dc4dc6818409eb5fa256462c4ac19
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 ""
"Par défaut, cela est vrai si ``SMTP`` est configuré, sinon c'est faux. S'il "
"est explicitement paramétré à `true` et que ``SMTP`` est désactivé, le champ "
"e-mail sera en lecture seule."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1
#: cb4478169a09415a9f17e3df16239ecd
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 ""
"Si :py:data:`True`, Canaille vérifiera si les mots de passe apparaissent "
"dans des bases contenant des mots de passe compromis telles que `HIBP "
"<https://haveibeenpwned.com>`_ quand les utilisateurs en choisiront un "
"nouveau."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1
#: b70cf94037df4bd1ae8a74acc370b3a5
msgid ""
"If :py:data:`False`, then users cannot ask for a password recovery link by "
"email."
msgstr ""
"Si :py:data:`False`, alors les utilisateurs ne peuvent pas demander un lien "
"de récupération de mot de passe par e-mail."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1
#: 6ee78ec59c21456e8761778153d4f700
msgid ""
"If :py:data:`True`, then users can freely create an account at this instance."
msgstr ""
"Si :py:data:`True`, les utilisateurs peuvent librement créer un compte sur "
"cette instance."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4
#: 979b9444b9c04354add2e781bd324752
msgid ""
"If email verification is available, users must confirm their email before "
"the account is created."
msgstr ""
"Si la vérification d'e-mail est disponible, les utilisateurs doivent "
"confirmer leur e-mail avant que le compte ne soit créé."
#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:1
#: 8931d55b0c264be0982765f04f83ae38
msgid "You favicon."
msgstr "Votre favicon."
#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3
#: 7991e0eec12c457dad401f49b34ad835
msgid "If unset and :attr:`LOGO` is set, then the logo will be used."
msgstr ""
"Si non paramétré et :attr:`LOGO` renseigné, alors le logo sera utilisé."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1
#: 8e19d8a485fe456191ab16773f84483e
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 ""
"Si :py:data:`True`, quand les utilisateurs essaient de se connecter avec un "
"identifiant invalide, un message indique que le mot de passe est incorrect "
"mais ne fournit pas d'indice si l'identifiant existe ou non."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5
#: dffe6e218f4f48e981ac5a9fa9a21e37
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 ""
"Si :py:data:`False`, quand un utilisateur essaie de se connecter avec un "
"identifiant invalide, un message indique que l'identifiant n'existe pas."
#: ../../docstring of canaille.core.configuration.CoreSettings.HTMX:1
#: b200882d189b46f3a83f217ff8b59551
msgid "Accelerates webpages loading with asynchronous requests."
msgstr "Accélère le chargement des pages web grâce à des requêtes asynchrones."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1
#: 2dc15bd9ea8a4386b7202dbdbab5de36
msgid "The validity duration of registration invitations, in seconds."
msgstr "Durée de validité des invitations, en secondes."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3
#: c6aaae8719c34838aec54b8fea2d5101
msgid "Defaults to 2 days."
msgstr "Deux jours par défaut."
#: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1
#: 70d5c7fa2dfa4e6695c84f2b4ab547c9
msgid "Enables Javascript to smooth the user experience."
msgstr "Active Javascript pour améliorer l'expérience utilisateur."
#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1
#: 1e1cda3ec4c04a4aaeb2069ccc8f376f
msgid "If a language code is set, it will be used for every user."
msgstr ""
"Si un code de langue est paramétré, il sera utilisé pour tous les "
"utilisateurs."
#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3
#: 6818acfcf652444db48e1c61878b6bb6
msgid "If unset, the language is guessed according to the users browser."
msgstr ""
"Si non renseigné, la langue est déterminée selon les préférences navigateur "
"des utilisateurs."
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1
#: 63800f5a14d44e1fa3ed0266e19f5482
msgid ""
"Configures the logging output using the python logging configuration format:"
msgstr ""
"Configure l'enregistrement des journaux en utilisant le format de "
"configuration des journaux Python :"
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3
#: 62d20006362a45ca8ff0f0a8fbb82bf4
msgid ""
"If :data:`None`, everything is logged in the standard error output. The log "
"level is :data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration."
"RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:"
"`~logging.INFO`."
msgstr ""
"Si :py:data:`None`, tout est écrit sur la sortie d'erreur standard. Le "
"niveau de verbosité est :py:data:`~logging.DEBUG` si le paramètre :attr:"
"`~canaille.app.configuration.RootSettings.DEBUG` est :py:data:`True`, sinon "
"elle est:py:data:`~logging."
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6
#: 44c6ded187ab4e44aac024c2cdb85303
msgid ""
"If this is a :class:`dict`, it is passed to :func:`logging.config."
"dictConfig`:"
msgstr ""
"Si cest un :class:`dict`, il est passé à :func:`logging.config.dictConfig` :"
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7
#: 6e269ac8b9144e9699a5856c375d7a37
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 ""
"Si c'est une :class:`str`, c'est supposé être un chemin de fichier qui sera "
"passé à :func:`logging.config.fileConfig."
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:4
#: canaille.core.configuration.CoreSettings.LOGGING:10
#: ba8b9d6794e2459492abfa778736328a 4d1ff118c1a44a50a962e527d1a8e2a2
msgid "For example:"
msgstr "Par exemple :"
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:14
#: 2eedaa2fba4545698dfd11007a2e0c9c
msgid ""
"[CANAILLE.LOGGING] version = 1 formatters.default.format = \"[%(asctime)s] "
"%(levelname)s in %(module)s: %(message)s\" root = {level = \"INFO\", "
"handlers = [\"canaille\"]}"
msgstr ""
"[CANAILLE.LOGGING] version = 1 formatters.default.format = \"[%(asctime)s] "
"%(levelname)s in %(module)s: %(message)s\" root = {level = \"INFO\", "
"handlers = [\"canaille\"]}"
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:19
#: 4b44c1c288c3433fb0edba70dd9c1343
msgid ""
"[CANAILLE.LOGGING.handlers.canaille] class = \"logging.handlers."
"WatchedFileHandler\" filename = \"/var/log/canaille.log\" formatter = "
"\"default\""
msgstr ""
"[CANAILLE.LOGGING.handlers.canaille] class = \"logging.handlers."
"WatchedFileHandler\" filename = \"/var/log/canaille.log\" formatter = "
"\"default\""
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1
#: 851b93aeb7b54426872a6b4a2ed973b9
msgid ""
"The logo of your organization, this is useful to make your organization "
"recognizable on login screens."
msgstr ""
"Le logo de votre organisation, cela permet de rendre votre organisation "
"reconnaissable sur l'écran de connexion."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1
#: 88cd67b65c954dc7a261df77d1823cda
msgid "User password maximum length."
msgstr "Longueur minimum des mots de passe utilisateur."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3
#: 435e72d3f33642da9016c521a88f15e6
msgid ""
"There is a technical of 4096 characters with the SQL backend. If the value "
"is 0, :data:`None`, or greater than 4096, then 4096 will be retained."
msgstr ""
"Il y a une limite technique de 4096 caractères pour les bases de données "
"SQL. Si la valeur est 0, :data:`None`ou supérieure à 4096, alors 4096 sera "
"utilisée."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1
#: b15846ed6b2a4ad49bbb19cde177023a
msgid "User password minimum length."
msgstr "Longueur maximum des mots de passe utilisateur."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3
#: 820670101aa7436eb014aa61e1c1a7eb
msgid "If 0 or :data:`None`, password won't have a minimum length."
msgstr ""
"Si 0 ou :data:`None, les mots de passe n'auront pas de longueur minimum."
#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1
#: a41944f564f5438fb8572449b5d13995
msgid "Your organization name."
msgstr "Le nom de votre organisation."
#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3
#: d61df1326c344b45b6d1c7b24e12b207
msgid "Used for display purpose."
msgstr "Utilisé à fins d'affichage."
#: ../../docstring of
#: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1
#: 4501d236ecc142e2ad045599ee19ac19
msgid "Have i been pwned api url for compromission checks."
msgstr ""
"URL du service HaveIBeenPwned, utilisé pour les vérifications de "
"compromission des mots de passe."
#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1
#: 0b234cbe21824f31b27a3b3c893fd37b
msgid "A `Sentry <https://sentry.io>`_ DSN to collect the exceptions."
msgstr ""
"Un DSN `Sentry <https://sentry.io>`_ pour collecter les erreurs techniques."
#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3
#: 2eab9799f4c0478aa5479f62e826b170
msgid "This is useful for tracking errors in test and production environments."
msgstr ""
"Utile pour centraliser les erreurs dans les environnements de test et de "
"production."
#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1
#: 79d66e38b7d94974a21563fac9a58149
msgid "The settings related to SMTP and mail configuration."
msgstr "Les paramètres liés à la configuration des serveur mail et SMTP."
#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3
#: 41d396512e7d40b28223841b21f8ed09
msgid ""
"If unset, mail-related features like password recovery won't be enabled."
msgstr ""
"Si non renseigné, les fonctionnalités liées aux mail, telles que la "
"réinitialisation des mots de passe, ne seront pas activées."
#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1
#: e327a089ace6495285f29ade69226d1b
msgid "The name of a theme in the 'theme' directory, or a path to a theme."
msgstr ""
"Le nom d'un thème dans le répertoire `theme` ou bien le chemin vers un thème."
#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3
#: 641146b41ecc461d9fa7280687a462d9
msgid ""
"Defaults to ``default``. Theming is done with `flask-themer <https://github."
"com/tktech/flask-themer>`_."
msgstr ""
"Par défaut, la valeur vaut ``default``. La personnalisation des thèmes est "
"faite avec `flask-themer <https://github.com/tktech/flask-themer>`_."
#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1
#: 421c3427b77b4cc4af9619406463c1c2
msgid ""
"The timezone in which datetimes will be displayed to the users (e.g. "
"``CEST``)."
msgstr ""
"Le fuseau horaire utilisé pour afficher les dates aux utilisateurs (par "
"exemple ``CEST``)."
#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4
#: d8d80524578e4697a5bb9f7e83c7d113
msgid "If unset, the server timezone will be used."
msgstr "Si non renseigné, le fuseau horaire du serveur sera utilisé."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.SMTPSettings:1 2f0178f9dbe747c695273f89e42da8c2
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 ""
"La configuration SMTP. Appartient à l'espace de nom ``CANAILLE.SMTP``. SI "
"non renseigné, les fonctionnalités liées au mail seront désactivées, telles "
"quel la vérification des adresses email ou bien la réinitialisation des mots "
"de passe."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.SMTPSettings:5 598e1ca109154455ad98b50d8853891d
msgid ""
"By default, Canaille will try to send mails from localhost without "
"authentication."
msgstr ""
"Par défaut, Canaille tente denvoyer des mails depuis `localhost` sans "
"authentification."
#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1
#: 8ab9425f8a6b42dc9097b69e3eaa334a
msgid "The sender for Canaille mails."
msgstr "Lémetteur des emails de Canaille."
#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3
#: f8f5f1377e5147d4baf9782ff95b4aa3
msgid "Some mail provider might require a valid sender address."
msgstr ""
"Certains services de mail pourraient exiger une adresse émettrice valide."
#: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1
#: 9059b29ae44849efb180f3b2da128c19
msgid "The SMTP host."
msgstr "Le serveur SMTP."
#: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1
#: 0bf8168dc84545cb810a8f25bbb4abf7
msgid "The SMTP login."
msgstr "Lidentifiant SMTP."
#: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1
#: ec1b4f81894e45f5abcae80dfaee87a9
msgid "The SMTP password."
msgstr "Le mot de passe SMTP."
#: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1
#: 514104bb8bcc4331b1e7fff12e550ba3
msgid "The SMTP port."
msgstr "Le port SMTP."
#: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1
#: f4e65d7811cb43d5b7d86ec07af2576d
msgid "Whether to use SSL to connect to the SMTP server."
msgstr "Utiliser ou non SSL pour se connecter au serveur SMTP."
#: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1
#: bd8dac0e38f14b6583d024fca1768b7d
msgid "Whether to use TLS to connect to the SMTP server."
msgstr "Utiliser ou non TLS pour se connecter au serveur SMTP."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.ACLSettings:1 45f3089188214078ab06f2b1cff3b0e0
msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace."
msgstr ""
"Paramètres des listes de contrôle d'accès. Appartient à l'espace de nom "
"``CANAILLE.ACL``."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.ACLSettings:3 733df203b313404eb417f40ed8708a2e
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
#: a14933a4c7244138bb59a43c9d288955
msgid ":attr:`FILTER` can be:"
msgstr ":attr:`FILTER`peut être :"
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3
#: d0f71dfab2ec47fca2184767e58eec59
msgid ""
":py:data:`None`, in which case all the users will match this access control"
msgstr ""
":py:data:`None`, auquel cas tous les utilisateurs correspondront au contrôle "
"daccès"
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4
#: e33849bb0c954228951cb18c56a9e70d
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 ""
"une correspondance où les clefs sont des noms d'attribts utilisateur et les "
"valeurs sont les valeurs d'attribut utilisateur. Toutes les valeurs doivent "
"correspondre à l'utilisateur pour faire partie du contrôle d'accès."
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7
#: 2ed07fdd7da94cfd90167b2d1f4cb4eb
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 ""
"une liste de ces correspondances. Si les valeurs d'un utilisateur "
"correspondent au moins à une de ces correspondances, alors l'utilisateur "
"fera partie du contrôle d'accès"
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10
#: 657a11f5921947b88bfc47cf8affbe00
msgid "Here are some examples::"
msgstr "Voici quelques exemples :"
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1
#: df95253032c647229909e34386b1e5cc
msgid ""
"A list of :class:`Permission` users in the access control will be able to "
"manage."
msgstr ""
"Une liste de def :class:`Permission` utilisateur dans le controle d'accès "
"seront capables de gérer."
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:8
#: 700fa74aeea44e9aa6dd204df7870e90
msgid ""
"PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", "
"\"delete_account\", \"impersonate_users\"]"
msgstr ""
"PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", "
"\"delete_account\", \"impersonate_users\"]"
#: ../../docstring of canaille.core.configuration.ACLSettings.READ:1
#: ab801708874c4b1bb937f62969614340
msgid ""
"A list of :class:`~canaille.core.models.User` attributes that users in the "
"ACL will be able to read."
msgstr ""
"Une liste d'attributs de :class:`~canaille.core.models.User` que les "
"utilisateurs dans les ACL seront capables de lire."
#: ../../docstring of canaille.core.configuration.ACLSettings.WRITE:1
#: 384d296240314638a1f1b6b7719c6bb6
msgid ""
"A list of :class:`~canaille.core.models.User` attributes that users in the "
"ACL will be able to edit."
msgstr ""
"Une liste d'attributs de :class:`~canaille.core.models.User` que les "
"utilisateurs dans les ACL seront capables de modifier."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.Permission:1 f9eec27878c64e608b2783b5e89172ed
msgid "The permissions that can be assigned to users."
msgstr "Les droits qui peuvent être assignés aux utilisateurs."
#: ../../canaille/core/configuration.py:docstring of
#: canaille.core.configuration.Permission:3 217cf0cc0b9b4a48a26abeaad488c131
msgid ""
"The permissions are intended to be used in :attr:`ACLSettings <canaille.core."
"configuration.ACLSettings.PERMISSIONS>`."
msgstr ""
"Les droits sont prévus pour être utilisé dans :attr:`ACLSettings <canaille."
"core.configuration.ACLSettings.PERMISSIONS>`."
#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1
#: 370dec6e2b8049d0b7353b085340b102
msgid "Allows users to delete their account."
msgstr "Permettre aux utilisateurs de supprimer leur compte."
#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3
#: f7be239942c94727a948d27c6c93408e
msgid ""
"If used with :attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, "
"users can delete any account."
msgstr ""
"Si utilisé avec :attr:`~canaille.core.configuration.Permission."
"MANAGE_USERS`, les utilisateurs peuvent supprimer n'importe quel compte."
#: ../../docstring of canaille.core.configuration.Permission.EDIT_SELF:1
#: 1f716bb0d0ec481ab5dff0a02f5c9e37
msgid "Allows users to edit their own profile."
msgstr "Permet aux utilisateurs de modifier leur propre profil."
#: ../../docstring of
#: canaille.core.configuration.Permission.IMPERSONATE_USERS:1
#: c9018bb9aceb40bc9536cc03320c5bad
msgid "Allows users to take the identity of another user."
msgstr "Permet aux utilisateurs de prendre l'identité d'un autre utilisateur."
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1
#: 1072c369689f4922997715eb5337795a
msgid "Allows group edition and creation."
msgstr "Permet la création et la modification de groupe."
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1
#: 014b4028381e4f4d8dcc8dc8a5e3a26f
msgid "Allows OpenID Connect client managements."
msgstr "Permet les gestion de client OpenID Connect."
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1
#: ff39df8edc7143c7b23d22bb773b5198
msgid "Allows other users management."
msgstr "Permet la gestion des autres utilisateurs."
#: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1
#: c7e27c4618a9460e8373c17f558f8d1e
msgid "Allows OpenID Connect authentication."
msgstr "Permet l'authentification OpenID Connect."
#: ../../canaille/oidc/configuration.py:docstring of
#: canaille.oidc.configuration.OIDCSettings:1 e2e226bd197b4d6f87291ee45a3004ef
msgid "OpenID Connect settings."
msgstr "Paramètres OpenID Connect."
#: ../../canaille/oidc/configuration.py:docstring of
#: canaille.oidc.configuration.OIDCSettings:3 db9af81a48ac4b1a914370a2e47bf4e0
msgid "Belong in the ``CANAILLE_OIDC`` namespace."
msgstr "Appartient à l'espace de nom ``CANAILLE_OIDC``."
#: ../../docstring of
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1
#: 092f0d4259994eb8b834b256a8f72453
msgid ""
"Whether a token is needed for the RFC7591 dynamical client registration."
msgstr ""
"Si un jeton est nécessaire pour lenregistrement dynamique du client selon "
"la RFC7591."
#: ../../docstring of
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3
#: 506f1fcd0f424df4bdafd9a69307f645
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 ""
"Si :py:data:`True`, aucun jeton n'est nécessaire pour enregistrer un client. "
"Si :py:data:`False`, l'enregistrement de client dynamique a besoin d'un "
"jeton défini dans :attr:`DYNAMIC_CLIENT_REGISTRATION_TOKENS`."
#: ../../docstring of
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1
#: 30861c9a3a294daf8105dd5ac9007282
msgid "A list of tokens that can be used for dynamic client registration."
msgstr ""
"Une liste de jeton utilisables pour l'enregistrement de client dynamique."
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1
#: 04e054bb3d094e4ea8f23ab6fdec9bf6
msgid "JSON Web Token settings."
msgstr "Paramètres de jeton web JSON."
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1
#: 95b1ee4fd0da4ec2b30beb3e25944cd9
msgid "Force the nonce exchange during the authentication flows."
msgstr "Force l'échange de nonce durant le processus d'authentification."
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3
#: de680082bc4546a6883ff4826df0067b
msgid "This adds security but may not be supported by all clients."
msgstr ""
"Cela améliore la sécurité mais pourrait ne pas être géré par tous les "
"clients."
#: ../../canaille/oidc/configuration.py:docstring of
#: canaille.oidc.configuration.JWTSettings:1 750fbe7d77954d87855e68d3199c81e7
msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace."
msgstr ""
"Paramètres de jeton Web JSON. Appartient à l'espace de nom ``CANAILLE_OIDC."
"JWT``."
#: ../../canaille/oidc/configuration.py:docstring of
#: canaille.oidc.configuration.JWTSettings:3 03945dc4192c4f7abefbcd2b5c7c2bd9
msgid "You can generate a RSA keypair with::"
msgstr "Vous pouvez générer un poire de clefs RSA avec :"
#: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1
#: d65a4aaf4cb64130ac59c97cddcffb0b
msgid "The key algorithm."
msgstr "L'algorithme de clef."
#: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1
#: c0c460480db94b1a9ebceea06528d426
msgid "The time the JWT will be valid, in seconds."
msgstr "La durée pendant laquelle le JWT sera valide, en secondes."
#: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1
#: 6501426215db4b27b7b5d217954ca6be
msgid "The URI of the identity provider."
msgstr "L'URI du fournisseur d'identité."
#: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1
#: 3e338458e42e405fb025bfcfc53688f4
msgid "The key type."
msgstr "Le type de clef."
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1
#: 27a15f235d63447884175edd85e55cf4
msgid "The private key."
msgstr "La clef privée."
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3
#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3
#: 29d2c1b105e74d46b80db01b78954711
msgid ""
"If :py:data:`None` and debug mode is enabled, then an in-memory key will be "
"used."
msgstr ""
"Si :py:data:`None` et que le mode débogage est activé, une clef en mémoire "
"sera utilisée."
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1
#: e88605c89e4b47989186fd27e5aff172
msgid "The public key."
msgstr "La clef publique."
#: ../../canaille/oidc/configuration.py:docstring of
#: canaille.oidc.configuration.JWTMappingSettings:1
#: 235687b99f2c408aaf1c063061975f77
msgid "Mapping between the user model and the JWT fields."
msgstr "Correspondance entre le modèle utilisateur et les champs JWT."
#: ../../canaille/oidc/configuration.py:docstring of
#: canaille.oidc.configuration.JWTMappingSettings:3
#: ebe87d5efdaa458b97451b5ab4fdeb3d
msgid "Fields are evaluated with jinja. A ``user`` var is available."
msgstr ""
"Les champs sont évalués avec jinja. Une variable ``user`` est disponible."
#: ../../canaille/backends/sql/configuration.py:docstring of
#: canaille.backends.sql.configuration.SQLSettings:1
#: b7ccdac0ebd14f47be2d77ea52bd75d7
msgid "Settings related to the SQL backend."
msgstr "Paramètres concernant le serveur SQL."
#: ../../canaille/backends/sql/configuration.py:docstring of
#: canaille.backends.sql.configuration.SQLSettings:3
#: 07e03b184cb54e0a92ca3a33033da5cd
msgid "Belong in the ``CANAILLE_SQL`` namespace."
msgstr "Appartient à l'espace de nom ``CANAILLE_SQL``."
#: ../../docstring of
#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1
#: 4d1ff118c1a44a50a962e527d1a8e2a2
#, fuzzy
#| msgid "The ACL name can be freely chosen. For example::"
msgid "The SQL server URI. For example:"
msgstr "Le nom des ACL peut être choisi librement. Par exemple :"
#: ../../docstring of
#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:6
#: 4bb9ca2e412a461caacf1a146582247f
msgid "DATABASE_URI = \"postgresql://user:password@localhost/database_name\""
msgstr ""
"DATABASE_URI = \"postgresql://utilisateur:motdepasse@localhost/"
"nom_de_la_BdD\""
#: ../../canaille/backends/ldap/configuration.py:docstring of
#: canaille.backends.ldap.configuration.LDAPSettings:1
#: e656ae1d120e45109618f653d29d845e
msgid "Settings related to the LDAP backend."
msgstr "Paramètres concernant le serveur LDAP."
#: ../../canaille/backends/ldap/configuration.py:docstring of
#: canaille.backends.ldap.configuration.LDAPSettings:3
#: 9877879932a3406b87f9893f4a6bf8f3
msgid "Belong in the ``CANAILLE_LDAP`` namespace."
msgstr "Appartient à l'espace de nom ``CANAILLE_LDAP``."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1
#: 96d852cc067c459cabfcc201a7271cf0
msgid "The LDAP bind DN."
msgstr ""
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1
#: 084f3814a8604375aed794d649845045
msgid "The LDAP bind password."
msgstr ""
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1
#: 8f56c7d2bfb348afbcc36de24398dfac
msgid "The LDAP node under which groups will be looked for and saved."
msgstr "Le noeud LDAP dans lequel les groupes seront cherchés et enregistrés."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3
#: 58cf9c9e87464b709e4e8508577fbd63
msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`."
msgstr "Par exemple `\"ou=groups,dc=mondomaine,dc=tld\"`."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1
#: 3b6a2121763e4302aa1780cb6d51d9d6
msgid "The object class to use for creating new groups."
msgstr "La classe objet à utiliser pour créer de nouveaux groupes."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1
#: 10d8bb8232bf4b30b6c631847ea70b2b
msgid "The attribute to use to identify a group."
msgstr "L'attribut à utiliser pour identifier un groupe."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1
#: 688132cb0d4e4f27973a02406d50edaa
msgid "The attribute to identify an object in the Group DN."
msgstr "L'attribut pour identifier un objet dans le Groupe DN."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1
#: 4428b1de4b664a55b077caa3969d6769
msgid "The LDAP root DN."
msgstr ""
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1
#: 5a175d6a66e445458ee6bc473d614a45
msgid "The LDAP connection timeout."
msgstr "Le délai d'expiration de connexion LDAP."
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1
#: 3172b80b5b86434699f226a3b713c52f
msgid "The LDAP server URI."
msgstr "L'URI du serveur LDAP."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1
#: 0e03c3262f504b79b84847041ee442e5
msgid "The LDAP node under which users will be looked for and saved."
msgstr ""
"Le noeud LDAP dans lequel les utilisateurs seront recherchés et enregistrés."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3
#: e1d16301542b40929d9e65c9a949b303
msgid "For instance `ou=users,dc=mydomain,dc=tld`."
msgstr "Par exemple `ou=users,dc=mondomainedc=tld`."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1
#: 92a1f8f8665848c9aaf4d5f9f1f3b6b7
msgid "The object class to use for creating new users."
msgstr "La classe d'objet pour créer de nouveaux utilisateurs."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1
#: 228fcd64b4704fa0b4ea52ab85f48f08
msgid "Filter to match users on sign in."
msgstr "Filtre de correspondance des utilisateurs lors de la connexion."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3
#: f61c66f7c0e94e67ae5a4ce5de0dc548
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 ""
"Par exemple ``(|(uid={{ login }})(mail={{ login }}))``. La syntaxe Jinja est "
"acceptée et une variable ``login`` est disponible, contenant la valeur "
"passée dans le champ login."
#: ../../docstring of
#: canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1
#: d49e7765b3d6440d9fdcb0ecb18c06c1
msgid "The attribute to identify an object in the User DN."
msgstr "L'attribut pour identifier un objet dans le DN Utilisateur."
#: ../references/configuration.rst:90 c4674c5a1b434e81944983c7ec2fb0f1
msgid "Example file"
msgstr "Fichier d'exemple"
#: ../references/configuration.rst:92 87c3dcb2ef5a4f649ec0fa9005449a79
msgid "Here is a configuration file example:"
msgstr "Voici un exemple de fichier de configuration :"
#: ../references/index.rst:2 51ac90bb647f41b69879253e3e7c475e
msgid "References"
msgstr "Références"
#: ../references/models.rst:2 bf9a972313e94c6aa0e72470dfc9677c
msgid "Data models"
msgstr "Modèles de donnée"
#: ../references/models.rst:4 620f9112555349eba4cc5daecdb72217
msgid ""
"This reference details the data models used by Canaille. This is mostly "
"useful for developers."
msgstr ""
"Cette référence détaille les modèles de donnée utilisés par Canaille. Cela "
"est surtout utile pour les développeurs."
#: ../../canaille/backends/models.py:docstring of
#: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1
#: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7
msgid "Bases: :py:class:`object`"
msgstr "Bases : :py:class:`object`"
#: ../../canaille/backends/models.py:docstring of
#: canaille.backends.models.BackendModel:1 664ca63468e648ddb0b2f2f957139ae9
msgid "The backend model abstract class."
msgstr "La classe abstraite du modèle backend."
#: ../../canaille/backends/models.py:docstring of
#: canaille.backends.models.BackendModel:3 e16c978524f44a57affe6f2e15fdb5e2
msgid ""
"It details all the methods and attributes that are expected to be "
"implemented for every model and for every backend."
msgstr ""
"Il détaille tous les méthodes et attributs qui doivent être implémentées "
"pour chaque modèle et chaque backend."
#: ../../canaille/backends/models.py:docstring of
#: canaille.backends.models.Model:1 9f46b7e1801e4a57a346c598161cbdac
msgid "The model abstract class."
msgstr "La classe abstraite de modèle."
#: ../../canaille/backends/models.py:docstring of
#: canaille.backends.models.Model:3 f4dad754b1d7448f842620b4f7b6069b
msgid "It details all the common attributes shared by every models."
msgstr "Il détaille tous les attributs en commun entre tous les modèles."
#: ../../docstring of canaille.backends.models.Model.created:1
#: 8685782e932b476a8b6f80256ebca659
msgid ""
"The :class:`~datetime.datetime` that the resource was added to the service "
"provider."
msgstr ""
"La date ( :class:`~datetime.datetime`) à laquelle la ressource a été ajoutée "
"par le fournisseur de service."
#: ../../docstring of canaille.backends.models.Model.id:1
#: 112d9fd0a032418682875fe5f5685fc8
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 ""
"Un identifiant unique pour une ressource SCIM tel que définie par le "
"fournisseur du service. Id sera :py:data:`None` jusqu'à ce que la méthode :"
"meth:`~canaille.backends.models.BackendModel.save` soit appelée."
#: ../../docstring of canaille.backends.models.Model.id:5
#: fe3e4be3b44b43ebbbd11fe81fdc2613
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 ""
"Chaque représentation de la ressource DOIT inclure une valeur non vide "
"\"id\". Cet identifiant DOIT être unique dans l'ensemble des ressources du "
"fournisseur de service SCIM. L'identifiant DOIT être stable et non "
"réassignable et ne pas change quand la même ressource est retournée dans les "
"requêtes suivantes. La valeur de l'attribut \"id\" est toujours produite par "
"le fournisseur de service est NE DOIT PAS être fournie par le client. La "
"chaîne \"bulkId\" est un mot-clef réservé et NE DOIT PAS être utilisée comme "
"une valeur d'identifiant unique. Les caractéristiques d'attribut sont "
"\"caseExact\" à \"true\", la modification de \"readOnly\" et une "
"caractéristique\"returned\" à \"always\". Voir la Section 9 pour les "
"considérations supplémentaires concernant la vie privée."
#: ../../canaille/backends/models.py:docstring of
#: canaille.backends.models.Model.identifier:1 4f16f8a2628746e0bbb013e0ebdd53de
msgid ""
"Returns a unique value that will be used to identify the model instance."
msgstr ""
"Retourne une valeur unique qui sera utilisée pour identifier l'instance du "
"modèle."
#: ../../canaille/backends/models.py:docstring of
#: canaille.backends.models.Model.identifier:4 570af0c54d8a4b9ca5e1180a154578c6
msgid ""
"This value will be used in URLs in canaille, so it should be unique and "
"short."
msgstr ""
"Cette valeur sera utilisée dans les URL de Canaille, il devrait donc être "
"unique et court."
#: ../../docstring of canaille.backends.models.Model.last_modified:1
#: a64d636f5ae843698bae18cbc27adae5
msgid ""
"The most recent :class:`~datetime.datetime` that the details of this "
"resource were updated at the service provider."
msgstr ""
"La date la plus récente (:class:`~datetime.datetime`) à laquelle les détails "
"de cette ressource a été mise-à-jour par le fournisseur de service."
#: ../../docstring of canaille.backends.models.Model.last_modified:4
#: 1478742051c64d3c8e8cb44b101c2337
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 ""
"Si cette ressource n'a jamais été modifié depuis sa création initiale, la "
"valeur DOIT être la même que :attr:`~canaille.backends.models.Model.created`."
#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1
#: canaille.core.models.User:1 ../../canaille/oidc/basemodels.py:docstring
#: canaille.oidc.basemodels.AuthorizationCode:1
#: canaille.oidc.basemodels.Client:1 canaille.oidc.basemodels.Consent:1
#: canaille.oidc.basemodels.Token:1 31058fb082044629ab68e330524f37d4
#: 963c873782434df6bc7a6314e406858e ec3b5ed7c8e94f728377c74990bc94e6
#: fac7abe230f5419eadc03a768bc0872c 1269097fb76b42c29248af6773628ec4
#: 25aa111736e44c4ea89c97864274d146
msgid "Bases: :py:class:`~canaille.backends.models.Model`"
msgstr "Bases : :py:class:`~canaille.backends.models.Model`"
#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1
#: d8d4759602c44e048e0d4f053dc5c895
msgid ""
"User model, based on the `SCIM Group schema <https://datatracker.ietf.org/"
"doc/html/rfc7643#section-4.2>`_."
msgstr ""
"Modèle utilisateur, basé sur le `schéma de Groupe SCIM <https://datatracker."
"ietf.org/doc/html/rfc7643#section-4.2>`_."
#: ../../docstring of canaille.core.models.Group.display_name:1
#: f557ae62a380458ca1e212165ff7ebd2
msgid "A human-readable name for the Group."
msgstr "Un nom lisible par un humain pour le Groupe."
#: ../../docstring of canaille.core.models.Group.display_name:3
#: canaille.oidc.basemodels.Client.client_id:1 3a782effac4c44f2b4084280c168f909
#: 038998149ec146249f6cd7993b6ea7c2
msgid "REQUIRED."
msgstr "OBLIGATOIRE."
#: ../../docstring of canaille.core.models.Group.members:1
#: 83c94299de834bb7899fc5d919567ddf
msgid "A list of members of the Group."
msgstr "Une liste des membres du Groupe."
#: ../../docstring of canaille.core.models.Group.members:3
#: f8395458983d4efd966c1f2bd3e771dc
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
#: 3de74c338e4e45d4ada0909e1d6a2c1d
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
#: dd44c29c7f88458e923a6bdc89ff4bd8
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
#: d09b761f1c3d4bcda3c7c5841cb86768
msgid "Identifies the name of a department."
msgstr ""
#: ../../docstring of canaille.core.models.User.display_name:1
#: 7a92e34396f14701a901c6342ba43372
msgid "The name of the user, suitable for display to end-users."
msgstr ""
#: ../../docstring of canaille.core.models.User.display_name:3
#: e89fec83b2eb42deaac70264489240e3
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
#: 5383ce6b712040c4a0bba18c1bbef93d
msgid "Email addresses for the User."
msgstr ""
#: ../../docstring of canaille.core.models.User.emails:3
#: dcbfe09f878141a4bd5a20b9e2d9b6da
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
#: 6cc0c003bd234628a0bc0a0c27cccaee
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
#: db1cbc1b88a44555ac36431d951ed1bc
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
#: 19bb2c52eb2747a8bae2df988b0f3226
msgid ""
"The full mailing address, formatted for display or use with a mailing label."
msgstr ""
#: ../../docstring of canaille.core.models.User.formatted_address:4
#: aaf2f2de713c468a8388bd976795c621
msgid "This attribute MAY contain newlines."
msgstr ""
#: ../../docstring of canaille.core.models.User.formatted_name:1
#: 6e02928b97a944b5929f0002f9c7b70c
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
#: 0adf168d41024021aca8fcbf22e2b575
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 ""
"Le nom courant de l'utilisateur, ou prénom dans la plupart des langues "
"occidentales (par exemple., \"Barbara\" dans le nom complet \"Ms. Barbara "
"Jane Jensen, III\")."
#: ../../docstring of canaille.core.models.User.groups:1
#: ef755a48c32047c187a2405190a88b07
msgid ""
"A list of groups to which the user belongs, either through direct "
"membership, through nested groups, or dynamically calculated."
msgstr ""
"Une liste de groupes auxquels l'utilisateur appartient, soit par "
"appartenance directe, soit par groupes imbriqués ou calculés dynamiquement."
#: ../../docstring of canaille.core.models.User.groups:4
#: 0d7136476f7649ddad322de96971e938
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 034f9fa73a5d455382726ac4b448c136
msgid "Check whether a password has been set for the user."
msgstr "Vérifie si un mot de passe a été définie pour l'utilisateur."
#: ../../docstring of canaille.core.models.User.locality:1
#: 3d50110e459f4ba3b06af609c8f2bef8
msgid "The city or locality component."
msgstr "Le composant de ville ou de localité."
#: ../../docstring of canaille.core.models.User.lock_date:1
#: bc9386fb2f7c41cc82308c45d919feb9
msgid "A DateTime indicating when the resource was locked."
msgstr "Une date (DateTime) indiquant quand la ressource a été verrouillée."
#: ../../canaille/core/models.py:docstring of
#: canaille.core.models.User.locked:1 8f227ede6e584fda946d50e86049afcb
msgid "Whether the user account has been locked or has expired."
msgstr "Si le compte utilisateur a été verrouillé ou a expiré."
#: ../../docstring of canaille.core.models.User.organization:1
#: 39b14adbf8ad42b39c2cdd9fb0fcf96c
msgid "Identifies the name of an organization."
msgstr "Identifie le nom de l'organisation."
#: ../../docstring of canaille.core.models.User.password:1
#: a4ec9a6f72834b47b82db401e1ebed2f
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 ""
"Cette attribut a pour but d'être utilisé pour définir, remplacer ou comparer "
"(c'est-à-dire fitrer par égalité) un mot de passe. La valeur en clair ou "
"hashée du mot de passe NE DEVRAIT PAS être retournable par le fournisseur de "
"service. Si un fournisseur de service détient la valeur localement, la "
"valeur DEVRAIT être hashée. Quand un mot de passe est défini ou changé par "
"le client, le mot de passe en clair DEVRAIT être traité par le fournisseur "
"de service comme suit :"
#: ../../docstring of canaille.core.models.User.password:9
#: 4a4c0608f0ac4739bbb358ebfffbc94c
msgid ""
"Prepare the cleartext value for international language comparison. See "
"Section 7.8 of [RFC7644]."
msgstr ""
"Prépare la valeur en clair pour une comparaison de langue internationale. "
"Voir la section 7.8 de [RFC7644]."
#: ../../docstring of canaille.core.models.User.password:12
#: 770cfb12f1c943188e281ef2e527ccb2
msgid ""
"Validate the value against server password policy. Note: The definition and "
"enforcement of password policy are beyond the scope of this document."
msgstr ""
"Valide la valeur contre la politique du mot de passe serveur. Note : La "
"définition et les contraintes de la politique de mot de passe sont hors du "
"périmètre de ce document."
#: ../../docstring of canaille.core.models.User.password:16
#: 736bf805f27d4dfb8c1292b5afaca0be
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 ""
"Force que le valeur soit cryptée (par exemple, hashée). Voir la section 9.2 "
"pour un hash acceptable et la gestion de chiffrement quand l'enregistrement "
"et la persistance pour des raisons de suivi de fourniture."
#: ../../docstring of canaille.core.models.User.password:20
#: 605f5a91894e42ee9d14686ae2f346cd
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 ""
"Un fournisseur de service qui passe immédiatement la valeur en clair à un "
"autre système ou interface de programmation DOIT passer la valeur "
"directement sur une connexion sécurisé (e.g., Transport Layer Security (TLS))"
". Si la valeur a besoin d'être temporairement persistée pour une période de "
"temps (e.g., à cause du processus utilisé) avant son transfert, alors la "
"valeur DOIT être protégée par diverses méthode, tel que le chiffrement."
#: ../../docstring of canaille.core.models.User.password:28
#: 198ed93545fe467ea461cef9a184362c
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
#: becd82e6d299471d94ab4906ce105218
msgid ""
"Prepares the filter value for international language comparison. See "
"Section 7.8 of [RFC7644]."
msgstr ""
#: ../../docstring of canaille.core.models.User.password:35
#: ca91b3fdd3ae434dbb47d55b73ccbcb2
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
#: 0c4d62a31f2d442981432c2f841abdac
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
#: 636757499c76498ca8a1cbad6ea4fbb7
msgid "Phone numbers for the user."
msgstr ""
#: ../../docstring of canaille.core.models.User.phone_numbers:3
#: dabf654512714fda965fded70f74aeac
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
#: 27d8a36d06ce46858ed9974cfb3a9a9b
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
#: 8d0e8ca2555c48b0aad26fa7fdb102cf
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
#: ca9c10bc74eb4a2b90365bbd3473b1be
msgid "The zip code or postal code component."
msgstr ""
#: ../../docstring of canaille.core.models.User.preferred_language:1
#: 5c7d29d6e6334161b21068010f566af2
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
#: c45f7e1feb59446daa9dbea7cce24305
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
#: 267adc8c4ecf4750a9db3464eb2b8573
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
#: 7f227419ab034b3da8303fe94affeb6c
msgid "URIs are canonicalized per Section 6.2 of [RFC3986]."
msgstr ""
#: ../../canaille/core/models.py:docstring of
#: canaille.core.models.User.readable_fields:1 e064888816ad4e228797af005daa0c1b
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 d51b5c9a3058444187f7f52aafcc57ce
msgid ""
"This does not include the :attr:`writable <canaille.core.models.User."
"writable_fields>` fields."
msgstr ""
#: ../../docstring of canaille.core.models.User.region:1
#: 7781da46bb4f45c19d4061a73efd1860
msgid "The state or region component."
msgstr ""
#: ../../docstring of canaille.core.models.User.street:1
#: e15de46ed1a745e580399d0bf40e96b8
msgid ""
"The full street address component, which may include house number, street "
"name, P.O."
msgstr ""
#: ../../docstring of canaille.core.models.User.street:4
#: 663a1b080f3646f5bbc30492beccda49
msgid ""
"box, and multi-line extended street address information. This attribute MAY "
"contain newlines."
msgstr ""
#: ../../docstring of canaille.core.models.User.title:1
#: 96571ab69f47443087e9de7cdf2af3ef
msgid "The user's title, such as \"Vice President\"."
msgstr ""
#: ../../docstring of canaille.core.models.User.user_name:1
#: 5a41c74aee6040d78b20e68feedbe91d
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
#: 305c46ac8a734b4fb513c2da9c0bd78d
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 f99945951b7f476484908fef5eb9bee4
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
#: 470216f2acc344a9bc4fe9408cf38b4c
msgid "OpenID Connect temporary authorization code definition."
msgstr ""
#: ../../canaille/oidc/basemodels.py:docstring of
#: canaille.oidc.basemodels.Client:1 b0248a05ffa44100bfcf4e84de0e154b
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
#: 9630f3464163481993a425c28c308969
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
#: canaille.oidc.basemodels.Client.client_secret:1
#: canaille.oidc.basemodels.Client.post_logout_redirect_uris:1
#: 05d209d5010c49c99c2e88fd070c5595 b2cf2367cc664e0dbd0d237edd72509a
#: 9da6221c08544d5b9c043002d77e9a04
msgid "OPTIONAL."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3
#: fb189c4d73054f559edc1f71e252013c
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
#: 90b1171c71784152b30c868ce6a69e92
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
#: 2f438f6285d3455f81459326d3ed2a3d
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
#: b659e17a18ae49d6b460ce4bfd3ef720
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
#: fe3efeb714e642038fddaee69b85a240
msgid "REQUIRED if \"client_secret\" is issued."
msgstr ""
#: ../../docstring of
#: canaille.oidc.basemodels.Client.client_secret_expires_at:3
#: 8224ead887464588a9b93fc320780f69
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
#: c7ec8c5c04bd41fa87825f3d6f4e71b3
msgid "URL string of a web page providing information about the client."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3
#: 8be313c7ec5848419e7a0062beefd60c
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
#: 133418eefb1d484ba26f492838063c04
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
#: 4c4d89f737af445da4e7eb5882887e00
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
#: 5105e93451e946fea6c3fd0b09c19683
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
#: 471bb398e08d45d588f320d2c25cb025
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
#: c1785e60703f46e5a3a6e7131ba26894
msgid ""
"\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10
#: 99ec3801466340bd83367ab92a351ac3
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
#: a62c7b8185ee4863aec423c5fe445ae5
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
#: 2fd298fce6974e4da2f670da31280955
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
#: 2fb0f1de8f46429eb46970d53c954d91
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
#: dd4f8e0551e048d599a3f95740ea3cf1
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
#: 241768369988480b8f79cae93fa06ff4
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
#: 779d5b8c355f4e469d0880100f197dbd
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
#: 786a840808f042fdb3a97eb1bd7f7a98
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
#: 29bbb97b4b0545df84cf23ec1e6b14cf
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
#: 4021b5fbeabb464d938a3903ef7e718b
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
#: 723f17b9b9df481394bcff341b2730b1
msgid "URL string that references a logo for the client."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3
#: 6b1a034be4f248e98f185c7a0ef2c3b5
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
#: 92446c1f45fc4da9bf18fed32b046f26
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
#: canaille.oidc.basemodels.Client.tos_uri:5 470f3a6ebe5a470d97207d2d724d7a50
#: d5127be355104a9b8e44b59d71a4e3ce
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
#: 80775602163f4c4eae2aa73101fb4a59
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
#: 9864218626a9495d837ca07ecabe2e83
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
#: a1f4e7a342764daf9b91f5c582e0d704
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
#: 2b675d8a76b64442baaf96288a99145f
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
#: 3f19f3d3bf244c669c336230f4e548e5
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
#: 8be17e9ef4c642a0a227974a40450da2
msgid ""
"\"token\": The implicit response type defined in OAuth 2.0, Section 4.2."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:11
#: 3be1d7f3ab82407ebcf77c9ad6294934
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
#: 99bf5a0735f3490eb63943c7926eb165
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
#: d9c4d3be73ae454fbc08c0452c4cafba
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
#: ee3bd26091c94945b33584e781c19370
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
#: 8fd0e02b12354b72b7175ade2536eac3
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
#: 2d69ee9b36d244ec98fb0ca3135ac74f
msgid ""
"A version identifier string for the client software identified by "
"\"software_id\"."
msgstr ""
#: ../../docstring of canaille.oidc.basemodels.Client.software_version:4
#: 0da082aab3354aad8196b87ea111796f
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
#: e666c285e9d0483a8b06ed07b9596fd1
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
#: 75019e0ffa134fe0a48fc885130c97ee
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
#: 6d1fcab0de3a41e18101687e93c45444
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
#: 75493a43244c4357842d2fdfa745f330
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
#: 070320a7585e4d9ba744cbaed1593208
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
#: 95cc7b66c6da48e5a189a32abaa9c24e
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 bf6c359aadbc4404ba1967b1b8d26255
msgid "Long-term user consent to an application."
msgstr ""
#: ../../canaille/oidc/basemodels.py:docstring of
#: canaille.oidc.basemodels.Token:1 a20eaa516c854599a62222141346d76b
msgid "OpenID Connect token definition."
msgstr ""
#: ../tutorial/databases.rst:4 2934007ee99c4b5096855dd9bf47208b
msgid ""
"Canaille can read and save data in different databases. This page presents "
"the different database backends and their specificities:"
msgstr ""
#: ../tutorial/databases.rst:10 4d8d9b1634cf47eca9c118b3af6173df
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 5383f833c2634382a279cf9c2e9efff5
msgid ""
"This backend is only for test purpose and should not be used in production "
"environments."
msgstr ""
#: ../tutorial/databases.rst:18 5c04f9416e954990a51ad770b994755d
msgid ""
"Canaille can use any database supported by `SQLAlchemy <https://www."
"sqlalchemy.org/>`_, such as sqlite, postgresql or mariadb."
msgstr ""
#: ../tutorial/databases.rst:21 5cef0f1dda384284a256492c7b8dfcca
msgid ""
"It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For "
"instance:"
msgstr ""
#: ../tutorial/databases.rst:29 cedc3bb2dba0427b93cf11791b189c96
msgid ""
"You can find more details on the SQL configuration in the :class:`dedicated "
"section <canaille.backends.sql.configuration.SQLSettings>`."
msgstr ""
#: ../tutorial/databases.rst:34 fd9f8f823d184c72840274fd13de5b91
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 fcbc8501c455465daa5142894408bb38
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 2c710def18bc46539b2962ee1bde2bf6
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 b7014bf888504dcc865871e8275190f6
msgid "OpenLDAP overlays integration"
msgstr ""
#: ../tutorial/databases.rst:62 a67abbc0745e4c7e9353697969a4fbab
msgid "Canaille can integrate with several OpenLDAP overlays:"
msgstr ""
#: ../tutorial/databases.rst:65 b1eebe57d90648b3b24cb48cb49c5436
msgid "memberof / refint"
msgstr ""
#: ../tutorial/databases.rst:67 6bb596696373483ab0a52f0e8169ab9e
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
#: bff8a12ffd4b4d179d6938a046810186 1e58076e5c2148f8a2c71c79bb51c74a
msgid "Here is a configuration example compatible with canaille:"
msgstr ""
#: ../tutorial/databases.rst:73 d8858049d6d44b7cae4cbd659f9f8ba2
msgid "memberof-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:77 830059290ddc4cf1b2249c45fc303b98
msgid "refint-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:81 ../tutorial/databases.rst:104
#: 4070700e524f481ba82662576453c6b3 41e7874f5db94dda8cd74ebed2fddc7c
msgid "You can adapt and load those configuration files with:"
msgstr ""
#: ../tutorial/databases.rst:90 e37e96d3eac048e191b4da59788b6096
msgid "ppolicy"
msgstr ""
#: ../tutorial/databases.rst:92 88ed660b0098483fa77e880febad6b52
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 0194f8cb96554ed9a209784cd1a5a10e
msgid "ppolicy-config.ldif"
msgstr ""
#: ../tutorial/databases.rst:100 09776d76a5c54f6eb7d79e15a0dbed82
msgid "ppolicy.ldif"
msgstr ""
#: ../tutorial/deployment.rst:2 f396d7b4fa884f55bf66b57b6c046fdb
msgid "Deployment"
msgstr ""
#: ../tutorial/deployment.rst:5 2cbff8a64b41470396973c1f66482110
msgid "Application service"
msgstr ""
#: ../tutorial/deployment.rst:7 d60be98207bd489299d7492480a091c5
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 cf41e4599bea477a8b6742ed38c09555
msgid "gunicorn"
msgstr ""
#: ../tutorial/deployment.rst:15 9f4888747a6d4f5d85d9b94bc2814aff
msgid "Write a gunicorn configuration sample file."
msgstr ""
#: ../tutorial/deployment.rst:18 beb61a6d85dc407c923f0a1797571b4b
msgid "uwsgi"
msgstr ""
#: ../tutorial/deployment.rst:42 804b59080cfb46a5bece65e9dfe52ae4
msgid "Webserver"
msgstr ""
#: ../tutorial/deployment.rst:44 3fd8ef72a9db483aaa18397b136708a4
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 40d9837c5cdd4c9faf94797e578e409d
msgid "Nginx"
msgstr ""
#: ../tutorial/deployment.rst:114 5407fc49df8b4871a993d95ebe6b216e
msgid "Apache"
msgstr ""
#: ../tutorial/deployment.rst:153 9e1ca64c07984a218f094949ed99bc6e
msgid "Recurrent jobs"
msgstr ""
#: ../tutorial/deployment.rst:155 283551b28f2d465a830885e57a802334
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 3a91c9769ca04ed289ef4e08d71c84e0
msgid "Webfinger"
msgstr ""
#: ../tutorial/deployment.rst:166 c0c2aa060ee743e797e0e0e69ed34aad
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 d4f07f118d4443bcbd44e55144cf4d1f
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 b305def4f6e74643b1c47e5491e46126
msgid "Here are configuration examples for Nginx or Apache:"
msgstr ""
#: ../tutorial/deployment.rst:172 f07e30950c0443ea830fb6d01181cbce
msgid "Nginx webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:181 f166862da12146e286d09f1189b44637
msgid "Apache webfinger configuration for a top level domain"
msgstr ""
#: ../tutorial/deployment.rst:191 ed7f25a6ab90437984c0249217556b7a
msgid "Create the first user"
msgstr ""
#: ../tutorial/deployment.rst:193 e983e9c5998a475e9472c54742b25c9f
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 40de96b13f0b46ba88769f9f0c91bece
msgid "Tutorial"
msgstr ""
#: ../tutorial/install.rst:2 990b0c4570294a4c914942072b835544
msgid "Installation"
msgstr ""
#: ../tutorial/install.rst:6 1f5645b8ce114b08abc62b4f03e8d613
msgid ""
"Canaille is under heavy development and may not fit a production environment "
"yet."
msgstr ""
#: ../tutorial/install.rst:8 a76d3b71c19b4667a34e1d4b68261499
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 de05573555224e75869a68ac41471c97
msgid "Get the code"
msgstr ""
#: ../tutorial/install.rst:13 8d5ce5f2ad284774a673cad8e1be2cc5
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 5e8dbf51cc8e401d8e7f2738c4c1e500
msgid "Extras"
msgstr ""
#: ../tutorial/install.rst:26 ff09c579e2834394992e462c1a7830e6
msgid "Canaille provides different package options:"
msgstr ""
#: ../tutorial/install.rst:28 fba9a7d4ab8f42c1ba19ec58827c49bb
msgid "`front` provides all the things needed to produce the user interface;"
msgstr ""
#: ../tutorial/install.rst:29 3c368569b3434d0c8821fcc5aa2a9fcd
msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;"
msgstr ""
#: ../tutorial/install.rst:30 d2fa3adf12b04e879e8eb1ad5a86d131
msgid "`ldap` provides the dependencies to enable the LDAP backend;"
msgstr ""
#: ../tutorial/install.rst:31 9f0ac2527c844d26999ac4722b7a3062
msgid "`sqlite` provides the dependencies to enable the SQLite backend;"
msgstr ""
#: ../tutorial/install.rst:32 9f8652296fdd460d9d0885fd934a924f
msgid ""
"`postgresql` provides the dependencies to enable the PostgreSQL backend;"
msgstr ""
#: ../tutorial/install.rst:33 dba3b5d89e9e46c6b3774b01bf2ae122
msgid "`mysql` provides the dependencies to enable the MySQL backend;"
msgstr ""
#: ../tutorial/install.rst:34 3284b40cd5ff4177a9369e471dcd1de2
msgid "`sentry` provides sentry integration to watch Canaille exceptions;"
msgstr ""
#: ../tutorial/install.rst:35 dfd39313c050407193deac1f01f23e54
msgid "`all` provides all the extras above."
msgstr ""
#: ../tutorial/install.rst:37 3d0f7f47cc1a469e9762578aed91f002
msgid "They can be installed with:"
msgstr ""
#: ../tutorial/install.rst:44 b7732a260ca84ba3a4130bd6cb0d1619
msgid "Configure"
msgstr ""
#: ../tutorial/install.rst:46 86df5b7acf954ddfbb2982dbe0a51da1
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 042753d9c5704f21b0da35d38a17a620
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 a87138181fe64cd9891206619cad6d2d
msgid "Install"
msgstr ""
#: ../tutorial/install.rst:59 2a7cde9a8ef54f6fb6b527734b5e471d
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 faefbbda355349e19671492f478d3153
msgid "Check"
msgstr ""
#: ../tutorial/install.rst:70 ab77edb446f44686bf26ef04fbf3dc7d
msgid ""
"After a manual installation, you can check your configuration file using "
"the :ref:`check command <cli_install>`:"
msgstr ""
#: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407
msgid "Troubleshooting"
msgstr ""
#: ../tutorial/troubleshooting.rst:5 584a62a0d78b4af391bfc8bd916e3934
msgid "The web interface throws useless error messages"
msgstr ""
#: ../tutorial/troubleshooting.rst:7 acc3175f98324e73b0154a833f4291de
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 358b28e47d4a4b48ba2bde7ddd4bc5f3
msgid "How to manually install LDAP schemas?"
msgstr ""
#: ../tutorial/troubleshooting.rst:16 5e241c1fdd044454a5a27a9d4d609a6c
msgid ""
"Schema installation can be automatically done using the :ref:`install "
"command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:18 fa20dff6817848489fee9434d3e8c154
msgid "As of OpenLDAP 2.4, two configuration methods are available:"
msgstr ""
#: ../tutorial/troubleshooting.rst:20 536b6d4fabea43d48240f3b1b4e256c6
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 2681e5ed98de4633ab3e958980570c61
msgid ""
"The new one, based on a configuration directory (generally ``/etc/ldap/slapd."
"d``)."
msgstr ""
#: ../tutorial/troubleshooting.rst:23 e623df73a33a4425874322d64990dd09
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 7fa64ce5f9834bfc8a84a6b147776135
msgid "Old fashion: Copy the schemas in your filesystem"
msgstr ""
#: ../tutorial/troubleshooting.rst:35 89ec7d1a5b9c488898dd0aeec512eb0f
msgid "New fashion: Use slapadd to add the schemas"
msgstr ""
#: ../tutorial/troubleshooting.rst:37 cf355b0d0d224146b9aa9bde63c3285b
msgid "Be careful to stop your ldap server before running ``slapadd``"
msgstr ""
#: ../tutorial/troubleshooting.rst:46 b688808b89a1486ea46f0a30671f0772
msgid "How to manually generate the OIDC keypair?"
msgstr ""
#: ../tutorial/troubleshooting.rst:50 fe622e23c48a4ec0ba3a9e00e24cfb88
msgid ""
"The keypair generation can be automatically done using the :ref:`install "
"command <cli_install>`."
msgstr ""
#: ../tutorial/troubleshooting.rst:52 2467c8ae6d2a4ba19056d44a89656984
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 ""
#: ../usecases.rst:4 dde73820d8ff46128f0ae5a245d4f212
msgid "Use cases"
msgstr ""
#: ../usecases.rst:6 936471ec6e494f839a45d1a5048ddbe9
msgid ""
"Canaille is a lightweight IAM for simple needs. Here are a few use cases you "
"might recognize in, where Canaille would fit your needs."
msgstr ""
#: ../usecases.rst:10 0c06bc8fc0754db6bdfbae05fe718b2e
msgid "OpenID Connect provider on top of a LDAP directory"
msgstr ""
#: ../usecases.rst:12 0ec337c5784a4dc296538609b9d75dd6
msgid ""
"Your organization has an historic :ref:`LDAP directory <feature_databases>` "
"and you want to add a :ref:`OpenID Connect <feature_oidc>` :abbr:`SSO "
"(Single Sign-On)` layer on top of it, so users can use all your application "
"while signin-in only once, without any data migration."
msgstr ""
#: ../usecases.rst:15 35bb9bbb50064dc7a5383c9d5371adfd
msgid "Profile edition of LDAP users"
msgstr ""
#: ../usecases.rst:17 87226e31a4ef425585e8de20647d72a3
msgid ""
"Your organization has a :ref:`LDAP directory <feature_databases>` and you "
"want to provide a way to your users to :ref:`edit their personal information "
"<feature_profile_management>` by themselves, without requiring any "
"administrator intervention."
msgstr ""
#: ../usecases.rst:20 22ec6d0c58ed413b80cd6aca23f637b6
msgid "Password recovery with a LDAP directory"
msgstr ""
#: ../usecases.rst:22 46f418970c7640f9ace069002ed337bd
msgid ""
"Your organization has an historic :ref:`LDAP directory <feature_databases>` "
"and you want to provide a way to your users to :ref:`recover their password "
"<feature_password_recovery>` when they cannot remember it, without any "
"administrator intervention."
msgstr ""
#: ../usecases.rst:25 f44f325b29594fc7b31521d259e27d5f
msgid "A lightweight IAM for unit testing"
msgstr ""
#: ../usecases.rst:27 c9f537fbf3cd4b3cb0e6d140b8a2327b
msgid ""
"You are :ref:`developing <feature_development>` an application relying on "
"OAuth2 or OpenID Connect to authenticate the users. You don't want to mock "
"the calls to the identity provider in your unit tests, but you want to :ref:"
"`perform real OAuth2/OIDC requests <feature_testing>`, and test your "
"application against different identity provider tunings."
msgstr ""
#: ../usecases.rst:30 5b9b8e07b9154150a105088cc630ce6a
msgid "A lightweight IAM for developing"
msgstr ""
#: ../usecases.rst:32 7a4ff703b94e4706b5123edb0c2abe51
msgid ""
"You are :ref:`developing <feature_development>` an application relying on "
"OAuth2 or OpenID Connect to authenticate the users. You need a :ref:`IAM "
"server to develop <feature_development>` locally, but your old computer "
"cannot bear launching a full Keycloak in a Docker container."
msgstr ""
#: ../usecases.rst:35 e594e15fba204d65a3f483c36e7c0aab
msgid "A lightweight IAM for CIs"
msgstr ""
#: ../usecases.rst:37 ff03e5a191564f90af81c7d210a3de24
msgid ""
"You are :ref:`developing <feature_development>` an application relying on "
"OAuth2 or OpenID Connect to authenticate the users. You need a IAM server "
"that could can populate with custom data, and integrate in your :ref:"
"`continuous integration environment <feature_ci>`."
msgstr ""
#: ../usecases.rst:40 8a37de08f6594334a3ba6ed2f9a3b71e
msgid "A CLI to quickly edit LDAP directory users"
msgstr ""
#: ../usecases.rst:42 b9d55e6eeca547aabb9bbfef3998f6d2
msgid ""
"Your organization has an historic :ref:`LDAP directory <feature_databases>`. "
"You are tired to deal with *ldif* syntax to manage your users and group and "
"would prefer a simple human-readable CLI."
msgstr ""
#~ msgid "Maximum length for user password."
#~ msgstr "Longueur maximum des mots de passe utilisateur."
#~ msgid "Minimum length for user password."
#~ msgstr "Longueur minimum pour le mot de passe utilisateur."
#~ msgid "It is possible not to set a minimum, by entering None or 0."
#~ msgstr ""
#~ "Il est possible de ne pas choisir de minimum en saisisant None ou 0."
#~ msgid ""
#~ "Documentation translation Translations are done with `Weblate <https://"
#~ "hosted.weblate.org/projects/canaille/documentation>`_."
#~ msgstr ""
#~ "La traduction de la documentation est faite avec `Weblate <https://hosted."
#~ "weblate.org/projects/canaille/documentation>`_."
#~ msgid ""
#~ "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 ""
#~ "Certaines dépendances de Canaille peuvent nécessiter une compilation, "
#~ "donc devriez sans doute vérifier que `GCC` et `cargo` sont installés sur "
#~ "votre système."