diff --git a/doc/locales/fr/LC_MESSAGES/doc.po b/doc/locales/fr/LC_MESSAGES/doc.po index d7250cf0..88ab5859 100644 --- a/doc/locales/fr/LC_MESSAGES/doc.po +++ b/doc/locales/fr/LC_MESSAGES/doc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: canaille 0.0.56\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-19 09:46+0100\n" +"POT-Creation-Date: 2024-12-19 10:08+0100\n" "PO-Revision-Date: 2024-12-16 20:00+0000\n" "Last-Translator: sblondon \n" "Language-Team: French `_ installed on your system. It is " @@ -1894,7 +1894,7 @@ msgstr "" "installé sur votre système. OpenLDAP est généralement fourni via les paquets " "nommés ``slapd`` ou ``openldap``." -#: ../../CONTRIBUTING.rst:138 aa9aab912ff04dd68c3b59bf1e36575a +#: ../../CONTRIBUTING.rst:140 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 " @@ -1905,11 +1905,11 @@ msgstr "" "`_ ou le `salon Matrix `_." -#: ../../CONTRIBUTING.rst:148 3d21757ba34c4721af043c150330c2e4 +#: ../../CONTRIBUTING.rst:150 3d21757ba34c4721af043c150330c2e4 msgid "Populate the database" msgstr "Remplissage de la base de données" -#: ../../CONTRIBUTING.rst:150 a412d39e98cf44f6b911566e1ebcdbde +#: ../../CONTRIBUTING.rst:152 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:" @@ -1918,7 +1918,7 @@ msgstr "" "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 +#: ../../CONTRIBUTING.rst:163 cdf90f875bcc44d5b41197a7cdbb275c msgid "" "Adapt to use either the `ldap` or the `sql` configuration file. Note that " "this will not work with the memory backend." @@ -1926,11 +1926,11 @@ 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 +#: ../../CONTRIBUTING.rst:166 2db32f774df8429fa4c9e83d00616a96 msgid "Unit tests" msgstr "Tests unitaires" -#: ../../CONTRIBUTING.rst:166 5d6a9b57b35d49c48e2b615f8128ebcc +#: ../../CONTRIBUTING.rst:168 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 " @@ -1941,7 +1941,7 @@ msgstr "" "supportés. Tout doit être au vert avant que les contributions soient " "fusionnées." -#: ../../CONTRIBUTING.rst:169 e1e6e475ff78404f930bb453f1f26e3b +#: ../../CONTRIBUTING.rst:171 e1e6e475ff78404f930bb453f1f26e3b msgid "" "To test a specific backend you can pass ``--backend memory``, ``--backend " "sql`` or ``--backend ldap`` to pytest and tox." @@ -1950,7 +1950,7 @@ msgstr "" "argumentes ``--backend memory``, ``--backend sql`` ou ``--backend ldap`` à " "pytest et tox." -#: ../../CONTRIBUTING.rst:171 2cb85029b4274de388878da3d3285369 +#: ../../CONTRIBUTING.rst:173 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-" @@ -1963,11 +1963,11 @@ msgstr "" "--cov-report=html`. Vous pouvez ensuite consulter le rapport de couverture " "HTML dans le dossier `htmlcov` nouvellement créé." -#: ../../CONTRIBUTING.rst:176 4408d499056c480f86f450a781d2ca0d +#: ../../CONTRIBUTING.rst:178 4408d499056c480f86f450a781d2ca0d msgid "Code style" msgstr "Style de code" -#: ../../CONTRIBUTING.rst:178 93e483f2a66a4d8f82feb8ca9a739818 +#: ../../CONTRIBUTING.rst:180 93e483f2a66a4d8f82feb8ca9a739818 msgid "" "We use `ruff `_ along with other tools to " "format our code. Please run ``uv run tox -e style`` on your patches before " @@ -1981,11 +1981,11 @@ msgstr "" "style à chaque commit, vous pouvez utiliser la configuration `pre-commit " "`_ avec ``uv run pre-commit install``." -#: ../../CONTRIBUTING.rst:184 0dca6207e6734ab487cb3fe72c3e90e8 +#: ../../CONTRIBUTING.rst:186 0dca6207e6734ab487cb3fe72c3e90e8 msgid "Front" msgstr "Interface utilisateur" -#: ../../CONTRIBUTING.rst:186 930e01d770324dc68f73095cd5456a8e +#: ../../CONTRIBUTING.rst:188 930e01d770324dc68f73095cd5456a8e msgid "" "The interface is built upon the `Fomantic UI `_ " "CSS framework. The dynamical parts of the interface use `htmx `_. Les parties dynamiques utilisent `HTMX `_." -#: ../../CONTRIBUTING.rst:189 fc0da8a2736e461dab5a7d242c1cfa9a +#: ../../CONTRIBUTING.rst:191 fc0da8a2736e461dab5a7d242c1cfa9a msgid "" "Using Javascript in the interface is tolerated, but the whole website MUST " "be accessible for browsers without Javascript support, and without any " @@ -2004,7 +2004,7 @@ msgstr "" "l’application DOIT pouvoir être utilisé par des navigateurs sans support " "Javascript, et sans perte de fonctionnalité." -#: ../../CONTRIBUTING.rst:191 a13b055a65244362a025440451de998d +#: ../../CONTRIBUTING.rst:193 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 " @@ -2014,16 +2014,16 @@ msgstr "" "nouvelles contributions ne devraient pas utiliser jQuery. Lisez le `ticket à " "ce sujet`_." -#: ../index.rst:71 ../../CONTRIBUTING.rst:196 e3ff6afa466e4e61aa4f677cd58d3ed2 +#: ../index.rst:71 ../../CONTRIBUTING.rst:198 e3ff6afa466e4e61aa4f677cd58d3ed2 #: a08d8d5331494e7d93508eaf25f41a07 msgid "Documentation" msgstr "Documentation" -#: ../../CONTRIBUTING.rst:198 2e1fdcae75de46a6b50db7e4155758af +#: ../../CONTRIBUTING.rst:200 2e1fdcae75de46a6b50db7e4155758af msgid "The documentation is generated when the tests run:" msgstr "La documentation est générée lors de l’exécution des tests :" -#: ../../CONTRIBUTING.rst:204 94405109592b47c09c8726c305fa5edc +#: ../../CONTRIBUTING.rst:206 94405109592b47c09c8726c305fa5edc msgid "" "You can also run sphinx by hand, that should be faster since it avoids the " "tox environment initialization:" @@ -2031,11 +2031,11 @@ msgstr "" "Vous pouvez aussi exécuter `sphinx` à la main, cela devrait être plus rapide " "puisque cela évite l’initialisation des environnements tox :" -#: ../../CONTRIBUTING.rst:210 fe4610d142474897ae4f97d321448fac +#: ../../CONTRIBUTING.rst:212 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 +#: ../../CONTRIBUTING.rst:215 bf09dd8ed31742bca2fa80175ae85bb3 msgid "Code translation" msgstr "Traduction du code" @@ -2120,7 +2120,7 @@ msgstr "" "lancement de l’instance de démonstration et avant la compilation du paquet " "Python de Canaille :" -#: ../../CONTRIBUTING.rst:219 4ff341d941384c029ed9c0b49d1062f9 +#: ../../CONTRIBUTING.rst:221 4ff341d941384c029ed9c0b49d1062f9 msgid "Documentation translation" msgstr "Traduction de la documentation" @@ -2148,11 +2148,11 @@ msgstr "" msgid "Build the documentation in another language" msgstr "Construire la documentation dans une autre langue" -#: ../../CONTRIBUTING.rst:224 4b1dc3dae99f4c6fbbeec3e54be3e922 +#: ../../CONTRIBUTING.rst:226 4b1dc3dae99f4c6fbbeec3e54be3e922 msgid "Publish a new release" msgstr "Publier une nouvelle version" -#: ../../CONTRIBUTING.rst:226 975b37a07edc4a42bbef14c2ca80a34f +#: ../../CONTRIBUTING.rst:228 975b37a07edc4a42bbef14c2ca80a34f msgid "" "Check that dependencies are up to date with ``uv sync --all-extras --" "upgrade`` and update dependencies accordingly in separated commits;" @@ -2160,7 +2160,7 @@ 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 +#: ../../CONTRIBUTING.rst:229 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``;" @@ -2169,7 +2169,7 @@ msgstr "" "Python, et que la couverture de code est toujours de 100%, en lançant ``uv " "run tox`` ;" -#: ../../CONTRIBUTING.rst:228 3e7d5493a8e44c1a9067010115678723 +#: ../../CONTRIBUTING.rst:230 3e7d5493a8e44c1a9067010115678723 msgid "" "Check that the demo environments are still working, both the local and the " "Docker one;" @@ -2177,7 +2177,7 @@ msgstr "" "Vérifiez que les instances de démonstration sont toujours fonctionnelles, à " "la fois en local et avec Docker ;" -#: ../../CONTRIBUTING.rst:229 fe7867ea9416424e81c518f77853958a +#: ../../CONTRIBUTING.rst:231 fe7867ea9416424e81c518f77853958a msgid "" "Check that the :ref:`development/changelog:Release notes` section is " "correctly filled up;" @@ -2185,19 +2185,19 @@ msgstr "" "Vérifiez que les :ref:`development/changelog:notes de versioin` sont " "correctement renseignées ;" -#: ../../CONTRIBUTING.rst:230 7d89adc1c3e6478ab9e8faa02f97bf03 +#: ../../CONTRIBUTING.rst:232 7d89adc1c3e6478ab9e8faa02f97bf03 msgid "Increase the version number in ``pyproject.toml``;" msgstr "Incrémentez le numéro de version dans ``pyproject.toml`` ;" -#: ../../CONTRIBUTING.rst:231 a376131776cd4e469611fa3ad6749be9 +#: ../../CONTRIBUTING.rst:233 a376131776cd4e469611fa3ad6749be9 msgid "Commit with ``git commit``;" msgstr "Commitez avec ``git commit`` ;" -#: ../../CONTRIBUTING.rst:232 655fd489e5324dc5b6172d438a6b8e3e +#: ../../CONTRIBUTING.rst:234 655fd489e5324dc5b6172d438a6b8e3e msgid "Build with ``uv build``;" msgstr "Construisez le paquet avec ``uv build`` ;" -#: ../../CONTRIBUTING.rst:233 79fc61b7c13647a285a918a0c126ea53 +#: ../../CONTRIBUTING.rst:235 79fc61b7c13647a285a918a0c126ea53 msgid "" "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/" "legacy/``;" @@ -2205,7 +2205,7 @@ msgstr "" "Publiez le paquet sur l’instance de test de PyPI avec ``uv publish --publish-" "url https://test.pypi.org/legacy/`` ;" -#: ../../CONTRIBUTING.rst:234 93540129ce0c440eba4da63ed3ddb769 +#: ../../CONTRIBUTING.rst:236 93540129ce0c440eba4da63ed3ddb769 msgid "" "Install the test package somewhere with ``pip install --extra-index-url " "https://test.pypi.org/simple --upgrade canaille``. Check that everything " @@ -2215,15 +2215,15 @@ msgstr "" "index-url https://test.pypi.org/simple --upgrade canaille``. Vérifiez que " "l’installation s’est bien passée ;" -#: ../../CONTRIBUTING.rst:235 8a73b31d1fe14fdda15e6c2dea0cafc9 +#: ../../CONTRIBUTING.rst:237 8a73b31d1fe14fdda15e6c2dea0cafc9 msgid "Publish on production PyPI ``uv publish``;" msgstr "Publiez sur l’instance de production de PyPI avec ``uv publish`` ;" -#: ../../CONTRIBUTING.rst:236 93131bb37ccc4207825449d393f92201 +#: ../../CONTRIBUTING.rst:238 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 +#: ../../CONTRIBUTING.rst:239 a98a5168d5f949ec9e96f16d8ff8b6f5 msgid "" "Push the release commit and the new tag on the repository with ``git push --" "tags``." @@ -2231,7 +2231,8 @@ msgstr "" "Poussez le commit de publication avec la nouvelle étiquette avec ``git push " "--tags``." -#: ../development/index.rst:2 c0f14bad2988468fa0700bbd47fe1de0 +#: ../development/index.rst:2 ../tutorial/theming.rst:41 +#: c0f14bad2988468fa0700bbd47fe1de0 294492704f9349cba94a11db140b19ab msgid "Development" msgstr "Développement" @@ -2687,7 +2688,8 @@ msgstr "Langage" msgid "LOC" msgstr "LOC" -#: ../development/specifications.rst:108 3ba35fd6c6d44150b4b049cf603e4a85 +#: ../development/specifications.rst:108 ../references/templates.rst:48 +#: 3ba35fd6c6d44150b4b049cf603e4a85 1e5e7225bddd44a4accf8159f4a489c4 msgid "OIDC" msgstr "OIDC" @@ -4241,7 +4243,8 @@ msgstr "" "d'environnement ``ENV_FILE``. Par exemple, paramétrer ``ENV_FILE=.env`` pour " "charger un fichier ``.env``." -#: ../references/configuration.rst:47 83d91b20c3204d09b61a4a6de8c84769 +#: ../references/configuration.rst:47 ../tutorial/theming.rst:45 +#: 83d91b20c3204d09b61a4a6de8c84769 457a1eceffa94e44afeb7c6d55ef5ea8 msgid ".env" msgstr ".env" @@ -4270,7 +4273,20 @@ 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:73 e8e7a0f78d68479a9586036adf25e183 +#: ../references/configuration.rst:73 ../references/templates.rst:0 +#: e8e7a0f78d68479a9586036adf25e183 e618c439d01140e89d1dc5192b332e88 +#: f4db2269f8ad4c409d39e94fe1dcaa04 68c66fa321bf4fe2a26894cfb9893ef0 +#: d7c47aab465445b8bc425f9441587869 52bdc51455ac48d2bdb9d260bdb350cf +#: 0fb7c750d22647d788376d6343f66caf f92c045d1a5a4d00b038fa12d93eff2e +#: 90d78d2e0fdb420ab3c4d75f9909ebca c86ca15b6d43459db4613bed7711b415 +#: 025f6511bb9848d4a1434b34d8af8ed5 5bd3a111c63e47598c6a88827ea19ffe +#: d2ba0706e4954be5b7ae534c589f6aca 9e2f1558bdac4c4eb1f753e347f81def +#: eb3ec759399744d3a0b8340459257502 7a6f904d5199479faf1f9475e8f28ec8 +#: aa80eea655004e6aa3ed31b683743446 47e7b3bef2d7471b9b71292a43c594f0 +#: d477ef4794834bcd88e238de37086828 af7c4339cf534ca499a21f430a2cfddc +#: c537eb4e5a054b4da0cce51226e90ae8 3e425d243a7e46c4ba306bdc43551133 +#: 65568f4bca8a4d9f9a4fcdc05b5e446c 833bc5945dc84c89947a25733c1029dc +#: fa1f3f1eebc5442cb616ba17c22aa22d 5093360aed9a4fd0a361bd81f3310e2c msgid "Parameters" msgstr "Paramètres" @@ -5343,9 +5359,11 @@ 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/app/features.py:docstring of canaille.app.features.Features:1 +#: ../../canaille/backends/models.py:docstring #: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 #: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7 +#: 3ac32584e20443aaae7659c3e894cb06 msgid "Bases: :py:class:`object`" msgstr "Bases : :py:class:`object`" @@ -6687,6 +6705,663 @@ msgstr "Consentement utilisateur à long terme à une application." msgid "OpenID Connect token definition." msgstr "Définition de jeton OpenID Connect." +#: ../references/templates.rst:2 25d974aba30140f4ad6e3445c3d71f50 +msgid "Templates" +msgstr "Patrons (« templates »)" + +#: ../references/templates.rst:4 29dfdb16379245fbb820e7677490ee2a +msgid "" +"This references the template files, their role and the variables available " +"in their contexts. The intended audience for this reference is designers " +"wishing to build their custom Canaille theme." +msgstr "" + +#: ../references/templates.rst:8 a9dc7731e37b4ca3900d9a269af917b2 +msgid "Base" +msgstr "" + +#: ../references/templates.rst:10 0083cf8f344a4aebb0db66182082b38e +msgid "Those templates are shared by all the pages rendered by Canaille." +msgstr "" + +#: ../references/templates.rst:13 ../references/templates.rst:35 +#: ../references/templates.rst:53 b7454449e2d74b1ba858b35dd9506974 +#: 017f3391e5324507b57d461e17c87379 d98c6d77a83046edba83238c1c41f765 +#, fuzzy +#| msgid "Templates" +msgid "Template files" +msgstr "Patrons (« templates »)" + +#: ../../:1 8da82919623541cf99ddb3719a66ce6c +msgid "The main template inherited by almost every other templates." +msgstr "" + +#: ../../:1 0302eac895db4e9192dcda1cf138e681 +msgid "The current user, if logged in." +msgstr "" + +#: ../../:1 e3c9d7ed1b37441a9ea451dc09bf0256 +msgid "The features enabled and available in Canaille." +msgstr "" + +#: ../../:1 92d32aa698334d27bccff184e7f56f4a +msgid "The user locale." +msgstr "" + +#: ../../:1 46c7365e792d4e44bd0964d401ba3d8d +#, fuzzy +#| msgid "" +#| "The permissions are intended to be used in :attr:`ACLSettings `." +msgid "" +"The Canaille instance defined in :attr:`~canaille.core.configuration." +"CoreSettings.NAME`." +msgstr "" +"Les droits sont prévus pour être utilisé dans :attr:`ACLSettings `." + +#: ../../:1 4eb0dc013f754cd19b2b0ead85436fc2 +#, fuzzy +#| msgid "" +#| "The permissions are intended to be used in :attr:`ACLSettings `." +msgid "" +"The URL of the instance logo defined in :attr:`~canaille.core.configuration." +"CoreSettings.LOGO`." +msgstr "" +"Les droits sont prévus pour être utilisé dans :attr:`ACLSettings `." + +#: ../../:1 36b2a2855bb84f5a82440c1ce7a066af +#, fuzzy +#| msgid "" +#| "The permissions are intended to be used in :attr:`ACLSettings `." +msgid "" +"The URL of the instance favicon defined in :attr:`~canaille.core." +"configuration.CoreSettings.FAVICON`." +msgstr "" +"Les droits sont prévus pour être utilisé dans :attr:`ACLSettings `." + +#: ../../:1 b5502e90eb964459b7477ba8cfd4bb56 +#, fuzzy +#| msgid "" +#| "If you need more you can also use a :attr:`custom theme `." +msgid "" +"Whether the page is boosted by :attr:`~canaille.core.configuration." +"CoreSettings.HTMX`." +msgstr "" +"Si vous avez besoin de plus, vous pouvez utiliser un :attr:`thème " +"personnalisé `." + +#: ../../:1 abaac915defc44a39bb760b0fa1ca058 +msgid "Whether to display the menu or not." +msgstr "" + +#: ../../:1 4a846a9c1bf04b76bce93d3f51c2c63a +#, fuzzy +#| msgid "Whether the user account has been locked or has expired." +msgid "Whether the app has been launched in debug mode." +msgstr "Si le compte utilisateur a été verrouillé ou a expiré." + +#: ../../:1 9a6481ec7a844690a56433119b0a980a +msgid "" +"The error page. Displayed for all kinds of errors (not found, internal " +"server error etc.)." +msgstr "" + +#: ../../:1 3c9236009d544093ab37e413f94d45b3 +msgid "The code of the HTTP error (404, 500, etc.)" +msgstr "" + +#: ../../:1 072ab6b535b245c0b5c16c84a51e0293 +msgid "The error code description." +msgstr "" + +#: ../../:1 01363257f0fd47a9beba953b1580f6f2 +msgid "An optional Font Awesome icon reference." +msgstr "" + +#: ../../:1 5eee8575ceec4ab6bb88624d75a23204 +msgid "Macros for Flask flash message rendering" +msgstr "" + +#: ../../:1 6df3858522a34bc181b21c3985dab099 +msgid "Macros for form and form field rendering." +msgstr "" + +#: ../../:1 45d3e7a61b2247f0b294c31fcdfd752b +msgid "Connects WTForms, Fomantic-UI and HTMX." +msgstr "" + +#: ../../:1 29a5444bd2c545e3a16b992c005e6626 +msgid "Macros for rendering table paginated with HTMX." +msgstr "" + +#: ../references/templates.rst:22 ../references/templates.rst:40 +#: ../references/templates.rst:58 4e87bb3eb49f4aef877cc6d31a2141b8 +#: 10827c0bcbb14fc3a1b8054d412a9a7d a1745ac8a300467b9a58c9ae79837332 +msgid "Forms" +msgstr "" + +#: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 +#: 438cfba9a79f484b9721d0f91a75b81a +msgid "" +"Bases: :py:class:`~canaille.app.forms.I18NFormMixin`, :py:class:`~flask_wtf." +"form.FlaskForm`" +msgstr "" + +#: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 +#: 57e0185db0a449f485f8c651f063748f +msgid "A form for table rendering of object collections." +msgstr "" + +#: ../references/templates.rst:30 162e7b075ee14548a43f9cff48b480a2 +msgid "Core" +msgstr "" + +#: ../references/templates.rst:32 006bb138232740cdba8de572fe62fa24 +msgid "" +"The core templates are displayed in the authentication and profile edition " +"pages." +msgstr "" + +#: ../../:1 e38aa98840094488a64497fcdbaa0264 +msgid "" +"The 'About' page. This is an informational page, displaying the project " +"links." +msgstr "" + +#: ../../:1 4c4ed92740f14deb87533cfa65ee80bf +#, fuzzy +#| msgid "The sender for Canaille mails." +msgid "The current Canaille version." +msgstr "L’émetteur des emails de Canaille." + +#: ../../:1 d95f55f7f9ff4b5f9686be3dc9a7847f +#, fuzzy +#| msgid "The SMTP login." +msgid "The first login page." +msgstr "L’identifiant SMTP." + +#: ../../:1 25602187d8a1450d93af69c3a5cb8676 +msgid "This page is displayed to users who do not have set a password yet." +msgstr "" + +#: ../../:1 b40d8dbabfb942b9a7e43fd2be5260fb +#, fuzzy +#| msgid "Password reset" +msgid "Password forgotten page." +msgstr "Réinitialisation des mots de passe" + +#: ../../:1 168380710d5343d3ab70eaa096d1eaba +msgid "" +"This page displays a form asking for the email address of users who cannot " +"remember their password." +msgstr "" + +#: ../../:1 c5a709077f1948dc85448baca9d505b2 +#, fuzzy +#| msgid "Group edition" +msgid "Group edition page." +msgstr "Édition de groupes" + +#: ../../:1 1d741cc01a7b477ebe6484f595b1ae27 +#, fuzzy +#| msgid "Allows group edition and creation." +msgid "Displays the group edition or creation form." +msgstr "Permet la création et la modification de groupe." + +#: ../../:1 1bb598284f574fadb4afdaa186936d45 +msgid "" +":data:`None` in a creation context. In edition context this is the edited " +"group." +msgstr "" + +#: ../../:1 cfb58971b75b4288af102ce52358148d +#, fuzzy +#| msgid "Allows group edition and creation." +msgid "The group edition/creation form." +msgstr "Permet la création et la modification de groupe." + +#: ../../:1 6a01b239a7364e059ac20e5c32156147 +msgid "The group list page." +msgstr "" + +#: ../../:1 8f596f7adabe4f35be79f5f12beb5e50 +msgid "A :class:`~canaille.core.models.Group` pagination form." +msgstr "" + +#: ../../:1 b7309cf53df840c1ba19e7177f27c99f +#, fuzzy +#| msgid "User invitation" +msgid "The invitation form page." +msgstr "Invitation d'utilisateur" + +#: ../../:1 9fd33d67aac641e7a5c4fc9098332edc +msgid "Displays the invitation form to users with the invitation permission." +msgstr "" + +#: ../../:1 06e9aef4cee8405f96f76c99084ab2ef +#, fuzzy +#| msgid "User invitation" +msgid "The invitation form." +msgstr "Invitation d'utilisateur" + +#: ../../:1 50937b6a974343eab8527a1977b6280a +msgid "The invitation acceptation page." +msgstr "" + +#: ../../:1 5781a7c918ac43d0842b01eb38b74cd5 +msgid "" +"This page is displayed to users who have clicked on invitation links sent by " +"mail (or by other media). It displays a basic account creation form." +msgstr "" + +#: ../../:1 b447524d0fb1461b81bf503c13eb3788 +msgid "The account creation form." +msgstr "" + +#: ../../:1 6f56b461666743eabb55c179df25b96b +#, fuzzy +#| msgid "The SMTP login." +msgid "The login page." +msgstr "L’identifiant SMTP." + +#: ../../:1 0160e1cfedb04735a642a373eba00f85 +msgid "This page displays a form to get the user identifier." +msgstr "" + +#: ../../:1 d2c554cbdaa941f089c6e1d178e2c40a +#, fuzzy +#| msgid "The SMTP login." +msgid "The login form." +msgstr "L’identifiant SMTP." + +#: ../../:1 5bf5c4af6d5949978459c9558e5959c0 +#, fuzzy +#| msgid "User authentication" +msgid "User account creation page." +msgstr "Authentification utilisateur" + +#: ../../:1 052f0f9a73e54baa90e2beb51100c62f +msgid "" +"This template displays an account creation form. It is used in the " +"registration page, and in the manual account creation page available for " +"users with *user management* permission." +msgstr "" + +#: ../../:1 32e07b796f2542448a5c4f651407e05e +msgid "" +"The user creation form. Dynamically built according to the user :attr:" +"`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." +"configuration.ACLSettings.WRITE` permissions. The available fields are those " +"appearing in *READ* and *WRITE*, those only appearing in *READ* are read-" +"only." +msgstr "" + +#: ../../:1 94e9b36ee7a04d4db509845398904973 +msgid "The profile edition template." +msgstr "" + +#: ../../:1 b86d69135b324d5b879980406f1b321b +msgid "Displays a user profile edition form." +msgstr "" + +#: ../../:1 b7dedbaafbf4421dad65efa4edb64bc7 +#: f4ab6a408b4846a28755a25c75d49e9d +msgid "The user that the form will edit." +msgstr "" + +#: ../../:1 e971a69e070545b6a3efb2ef229a5e78 +#: 57372626a5504526a6602a9903be25f3 +msgid "" +"The user profile edition form. Dynamically built according to the user :attr:" +"`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." +"configuration.ACLSettings.WRITE` permissions. The available fields are those " +"appearing in *READ* and *WRITE*, those only appearing in *READ* are read-" +"only." +msgstr "" + +#: ../../:1 232f10ffd4634e3e8d30fd95968ff20e +msgid "" +"An email edition form. Used when the :attr:`~canaille.app.features.Features." +"has_email_confirmation` feature is enabled." +msgstr "" + +#: ../../:1 6f083b8c024042d2afc6e830605fcb29 +msgid "The profile settings template." +msgstr "" + +#: ../../:1 1e1b6ca57eee407ea373fabfa6b68203 +msgid "Displays the user settings edition form." +msgstr "" + +#: ../../:1 79751bf3182a4e728ce7c771919c012e +msgid "Whether the editor is allowed to delete the account of the edited user." +msgstr "" + +#: ../../:1 f6fbc394bb0e4d23b2025ad9512ed7f8 +#, fuzzy +#| msgid "Password reset" +msgid "The password reset template." +msgstr "Réinitialisation des mots de passe" + +#: ../../:1 ac11fe027baa47d08507ce462ccf6521 +msgid "Displays a password reset form." +msgstr "" + +#: ../../:1 022dc36a70434d0cbbc929e6389ed667 +#, fuzzy +#| msgid "Password reset" +msgid "The password reset form." +msgstr "Réinitialisation des mots de passe" + +#: ../../:1 b78ecf9a56b94a57a3b3708a76eb115e +msgid "The user associated with the URL." +msgstr "" + +#: ../../:1 2ad2199bf9a543bc89f2b1eab1575ed3 +msgid "The secret link hash." +msgstr "" + +#: ../../:1 d33d88c5756d4573bff6aed0f8b22df9 +#, fuzzy +#| msgid "Multi-factor authentication reset" +msgid "The multi-factor authentication initialization template." +msgstr "Réinitialisation de l'authentification multi-facteurs" + +#: ../../:1 fd9b649f626b4b3e93dc09db80ce6ca4 +msgid "Display a QR-code and the OTP secret." +msgstr "" + +#: ../../:1 0f8aaa24949f428d91f05bb8ea510a5e +msgid "The user initializing the OTP." +msgstr "" + +#: ../../:1 23c8614367454fe48500f84535d7345d +#, fuzzy +#| msgid "The SMTP host." +msgid "The OTP secret." +msgstr "Le serveur SMTP." + +#: ../../:1 ce26bc1edce5450e867c020efdf0879a +msgid "A QR-code image representing the OTP secret." +msgstr "" + +#: ../../:1 5a2fdfda2f1346bf8027c51f73374f77 +#, fuzzy +#| msgid "The key algorithm." +msgid "The users list." +msgstr "L'algorithme de clef." + +#: ../../:1 3578a4cf58144521ab2d0883f7aa772e +#, fuzzy +#| msgid "Bases: :py:class:`~canaille.backends.models.Model`" +msgid "Displays a paginated list of :class:`~canaille.core.models.User`." +msgstr "Bases : :py:class:`~canaille.backends.models.Model`" + +#: ../../:1 27156299d35549f6a45ff3b7ff201226 +#: c6be1b3ce3d840fb953550cdaf6e1a29 5cb81767c1704260bc729322c4d6d013 +#: 68d31f09582d4ec2ac3706a0f578de31 +msgid "The paginated list form." +msgstr "" + +#: ../../:1 8f7a6ad97f984f7b90953f39a07c9bb5 +#, fuzzy +#| msgid "Multi-factor authentication reset" +msgid "The multi-factor authentication code verification template." +msgstr "Réinitialisation de l'authentification multi-facteurs" + +#: ../../:1 1180b06a92c045c189a11016f3d869b3 +#, fuzzy +#| msgid "One time password used for email or sms multi-factor authentication." +msgid "Displays a form that asks for the multi-factor authentication code." +msgstr "" +"Mot de passe à usage unique utilisé pour l'authentification multi-facteurs " +"par email ou SMS." + +#: ../../:1 653c3e233b7e41b689dd61a1a575768f +msgid "The code verification form." +msgstr "" + +#: ../../:1 c070afb39eb34d9b92862ae453876355 +msgid "The username of the user attempting to log-in." +msgstr "" + +#: ../../:1 1995353d10d24e2e86c87864fc8b17cc +#, fuzzy +#| msgid "Authentication attempt" +msgid "The authentication factor method." +msgstr "Tentative d'authentification" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.CreateGroupForm:1 +#: canaille.core.endpoints.forms.DeleteGroupMemberForm:1 +#: canaille.core.endpoints.forms.EditGroupForm:1 +#: canaille.core.endpoints.forms.EmailConfirmationForm:1 +#: canaille.core.endpoints.forms.FirstLoginForm:1 +#: canaille.core.endpoints.forms.ForgottenPasswordForm:1 +#: canaille.core.endpoints.forms.InvitationForm:1 +#: canaille.core.endpoints.forms.JoinForm:1 +#: canaille.core.endpoints.forms.LoginForm:1 +#: canaille.core.endpoints.forms.PasswordForm:1 +#: canaille.core.endpoints.forms.PasswordResetForm:1 +#: canaille.core.endpoints.forms.TwoFactorForm:1 +#: ../../canaille/oidc/endpoints/forms.py:docstring +#: canaille.oidc.endpoints.forms.AuthorizeForm:1 +#: canaille.oidc.endpoints.forms.ClientAddForm:1 +#: canaille.oidc.endpoints.forms.LogoutForm:1 +#: canaille.oidc.endpoints.forms.TokenRevokationForm:1 +#: c6b8f8c4f50047c4ad6f8d99a6de0f22 66162ad74b1f491e9815987352e3f843 +#: 3d9992e3d5db4bd0928836aca626058a 3b72a3535cb84d30a1e44d8b91b96903 +#: b95ae3bb349946949cb639e4ef9dc552 47a533342bda4ba2a94c62a94fcb70ad +#: 738540f528d74bcba2787fc6e25a04e1 79b58787a6954501a9b171492c9ba562 +#: cec55d6a542843f7bf4133f5e7160a89 ba39e17ba4834e048f841ce0689e48ba +#: d5d0648bb1b543a4bcd2f863306b2bf8 9075862fb6944b5d93ec7c848595e7be +#: 99b9891b663544458c6c24aafbaa4355 43741eee6aed4f1885f590c4baf20f83 +#: 27c2b976b7ae469d9f82c19665688817 4d826f68173b4b47bac9d96a2abe03a7 +#, fuzzy +#| msgid "Bases: :py:class:`~canaille.backends.models.Model`" +msgid "Bases: :py:class:`~canaille.app.forms.Form`" +msgstr "Bases : :py:class:`~canaille.backends.models.Model`" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.CreateGroupForm:1 +#: e4a35724e14d4581afe8c1d76256145b +msgid "The group creation form." +msgstr "" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.EditGroupForm:1 +#: d3488ce4b62b455cbc5919a3592c5eaf +#, fuzzy +#| msgid "Group edition" +msgid "The group edition form." +msgstr "Édition de groupes" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.InvitationForm:1 +#: a3b72e9abc8b44e9862481fe20209e3f +#, fuzzy +#| msgid "User invitation" +msgid "The user invitation form." +msgstr "Invitation d'utilisateur" + +#: ../references/templates.rst:50 16e60f31d5e549d8b0332ecdd2c8ec33 +msgid "The OIDC process are displayed in the OIDC consent pages." +msgstr "" + +#: ../../:1 6d3187567112498bafed8211d4e63aa9 +#, fuzzy +#| msgid "Delete a authorizationcode." +msgid "The list of authorizations." +msgstr "Supprime un code d'autorisation." + +#: ../../:1 ab9ee4b402464232a04de5af272ec4a2 +msgid "" +"Displays a paginated list of :class:`~canaille.oidc.basemodels." +"AuthorizationCode`." +msgstr "" + +#: ../../:1 af96456e16b5452da48beda8aa765d4d +#, fuzzy +#| msgid "Authentication attempt" +msgid "Authorization details template." +msgstr "Tentative d'authentification" + +#: ../../:1 60b6bca7f05c44c1863aeb04e3cc2f53 +msgid "" +"Displays details about an :class:`~canaille.oidc.basemodels." +"AuthorizationCode`." +msgstr "" + +#: ../../:1 4ddc2e41ee114c249fcebd0f7a4e86f8 +#, fuzzy +#| msgid "Delete a authorizationcode." +msgid "The detailed authorization." +msgstr "Supprime un code d'autorisation." + +#: ../../:1 0b979bab813e4ff39f47fc84cc204598 +msgid "Consent request template." +msgstr "" + +#: ../../:1 567c68d08849430da9230de7c671e93a +msgid "" +"This templates is displayed to users accessing a new application that " +"requests to access to personal information. It lists the personal " +"information requested by the application, and offers the user to accept or " +"decline." +msgstr "" + +#: ../../:1 21f53e087f2148f39791bfc780edefb7 +msgid "The user whose consent is asked." +msgstr "" + +#: ../../:1 48a0c4f1b88f4aaa9f10b158450a7bb1 +msgid "The OIDC grant." +msgstr "" + +#: ../../:1 f6bbf416c64247dbb06044aa221ab515 +msgid "The client addition template." +msgstr "" + +#: ../../:1 acbe06b62ce6465b915b5678d5426a35 +msgid "" +"Displays a form to create a new :class:`~canaille.oidc.basemodels.Client`." +msgstr "" + +#: ../../:1 3f0bb36f5d614523876371b9466e7861 +#: fc6afaad7f0040ba8bc9e5018bf3ebdd +msgid "The client creation form." +msgstr "" + +#: ../../:1 0c6c8a94ac7f41969c583a4e50c7f8c6 +#, fuzzy +#| msgid "Authentication attempt" +msgid "The client edition template." +msgstr "Tentative d'authentification" + +#: ../../:1 fc89d67d55e84fa39dd02decf27c7ad0 +msgid "Displays a form to edit a :class:`~canaille.oidc.basemodels.Client`." +msgstr "" + +#: ../../:1 69829ae75e504c15a7042fa0d0ca9a45 +#, fuzzy +#| msgid "Delete a client." +msgid "The edited client." +msgstr "Supprime un client." + +#: ../../:1 e4137e9e29764f91ae4314a2b1b55ea9 +msgid "The list of OIDC clients." +msgstr "" + +#: ../../:1 e417b00de6f14e44b9fe8a0212f90d24 +msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Client`." +msgstr "" + +#: ../../:1 1d341bd4be4c40f9b475cab7f3899eac +msgid "The OIDC logout template." +msgstr "" + +#: ../../:1 4968bf02e5154f7d84a89f9790696370 +msgid "" +"Used during OIDC RP-initiated logout, when an user confirmation is needed." +msgstr "" + +#: ../../:1 b8bf82eb3cac45a4853dcaf6f5ac1589 +msgid "The logout form." +msgstr "" + +#: ../../:1 b6c0b03d71bf4873ac7b8565605d158e +msgid "The client requesting the logout." +msgstr "" + +#: ../../:1 5bac6224d1084ae98930ff6ccdb785f4 +#, fuzzy +#| msgid "Long-term user consent to an application." +msgid "The preconsented applications list." +msgstr "Consentement utilisateur à long terme à une application." + +#: ../../:1 9c634a235c2c4991b5e7af9769279832 +msgid "" +"Display a list of trusted clients for which it is implied that users don't " +"need to explicitly give their consent." +msgstr "" + +#: ../../:1 c246254d28664995a358d16c42110b49 +msgid "Description of the OIDC scopes." +msgstr "" + +#: ../../:1 ae25aa3ac5a345e5a23f6770e33b3ba5 +msgid "The scopes to hide." +msgstr "" + +#: ../../:1 076793e823214f96b43e5066270c865c +#, fuzzy +#| msgid "The city or locality component." +msgid "The list of implicitly consented clients." +msgstr "Le composant de ville ou de localité." + +#: ../../:1 81333f39450142f3b492f8fe7bd17957 +#, fuzzy +#| msgid "The state or region component." +msgid "The number of consents." +msgstr "Le composant État ou région." + +#: ../../:1 08c463165ae2487eadebc7a4ae928bd0 +msgid "The number of preconsented clients." +msgstr "" + +#: ../../:1 e6d5d68657fa4c5f964a902844cf443e +#, fuzzy +#| msgid "Delete a token." +msgid "The list of tokens." +msgstr "Supprime un jeton." + +#: ../../:1 a67dbec8f19c460eac41e22b702668ac +#, fuzzy +#| msgid "Bases: :py:class:`~canaille.backends.models.Model`" +msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Token`." +msgstr "Bases : :py:class:`~canaille.backends.models.Model`" + +#: ../../:1 7aa26abc05944ecd9afa89d71ca3f60a +msgid "The token edition template." +msgstr "" + +#: ../../:1 0051850e1f994570be480414cb1a8e50 +msgid "" +"Displays the details of a token :class:`~canaille.oidc.basemodels.Token`." +msgstr "" + +#: ../../:1 47975a2ecbce481f94ee843e3a77be73 +#, fuzzy +#| msgid "Token revokation" +msgid "A token revokation form." +msgstr "Révocation des jetons" + #: ../tutorial/databases.rst:4 2934007ee99c4b5096855dd9bf47208b msgid "" "Canaille can read and save data in different databases. This page presents " @@ -7229,6 +7904,73 @@ msgstr "" "Implémentation côté client, pour envoyer les modification d'utilisateur et " "de groupes à tous les clients." +#: ../tutorial/theming.rst:2 1e8d2a5169ed4313896d1a9c33dee1ab +msgid "Theming" +msgstr "" + +#: ../tutorial/theming.rst:4 8b9d02343d7b48a08704a60b2394672a +msgid "" +"Canaille comes with a default theme based on `Fomantic UI `__ but any part of the UI can be slightly modified or even " +"entierely rewritten if needed." +msgstr "" + +#: ../tutorial/theming.rst:7 aaa944c2e0b64fc7a9d04703be543cc8 +#, fuzzy +#| msgid "Templates" +msgid "Custom templates" +msgstr "Patrons (« templates »)" + +#: ../tutorial/theming.rst:9 d431b58edd7c4ab5960f4889ad4bf8b1 +msgid "" +"To use a custom theme, set the :attr:`~canaille.core.configuration." +"CoreSettings.THEME` to a path to a directory where you will host your custom " +"templates." +msgstr "" + +#: ../tutorial/theming.rst:11 f70b37ff511248529ee7801adeae3f40 +msgid "" +"Then in this directory, create new files for templates you want to override. " +"The exhaustive list of templates is available in the :doc:`reference <../" +"references/templates>`. You must respect the template file paths. So for " +"instance if you want to customize the *about page*, you need to do it in a " +"``core/about.html`` file. You can inherit from the origin template by using " +"the Jinja ``extend`` directive." +msgstr "" + +#: ../tutorial/theming.rst:15 3abcbfdad0cf41628a3bb4e27789bdf0 +msgid "core/about.html" +msgstr "" + +#: ../tutorial/theming.rst:26 19d7d3280a9b4cc8a868428d2ef5b12f +msgid "Custom style sheets" +msgstr "" + +#: ../tutorial/theming.rst:28 13f029143d7a41ee97bff9bab5c6696d +msgid "" +"If you simply want to put your custom style sheets in the default theme, you " +"can just push it in the ``base.html`` template. Put your file in a " +"``static`` subdirectory of your theme, for instance ``static/css/custom." +"css`` and reference it with ``theme_static``." +msgstr "" + +#: ../tutorial/theming.rst:31 5494d679f6294826a4fe0ec3307f1d90 +msgid "base.html" +msgstr "" + +#: ../tutorial/theming.rst:43 eb8604a736ba49c7a5268aff30c7045f +msgid "" +"To write your custom theme and check how it is rendered, you can put the " +"path to your theme in a ``.env`` file and run the Canaille demo instance, as " +"described in the :ref:`contributing guide `" +msgstr "" + +#: ../tutorial/theming.rst:50 f2e3066341864ffdb46f79b737fd491c +#, fuzzy +#| msgid "Run the demo instance with the SQL backend" +msgid "Run the demo instance" +msgstr "Lancer l’instance de démonstration avec la base de données SQL" + #: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407 msgid "Troubleshooting" msgstr "Dépannage" @@ -7463,9 +8205,6 @@ msgstr "" "et groupes, et préférez utiliser une ligne de commande simple et lisible par " "les humains." -#~ msgid "Templates" -#~ msgstr "Patrons (« templates »)" - #~ msgid "Maximum length for user password." #~ msgstr "Longueur maximum des mots de passe utilisateur." diff --git a/doc/locales/ta/LC_MESSAGES/doc.po b/doc/locales/ta/LC_MESSAGES/doc.po index 7999511b..cd57ccdc 100644 --- a/doc/locales/ta/LC_MESSAGES/doc.po +++ b/doc/locales/ta/LC_MESSAGES/doc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: canaille 0.0.56\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-19 09:46+0100\n" +"POT-Creation-Date: 2024-12-19 10:08+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -1564,109 +1564,109 @@ msgid "To launch containers, use:" msgstr "" #: ../development/specifications.rst:108 ../tutorial/databases.rst:16 -#: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:106 +#: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:108 #: 32e05154931e4a6fadcba3b0720e0655 f1b0c988daa54dd4a0c5b30a062cf012 #: 94f958ac7cab437580604c64cdfa27be 528aa40e3cd04297b5ebf44fc955e9a9 msgid "SQL" msgstr "" -#: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:107 +#: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:109 #: c66d8a018f064cb3ba36abf12473b5f4 15c287c63f7f441f991033e23cbb9f95 msgid "" "With the SQL backend, the demo instance will load and save data in a local " "sqlite database." msgstr "" -#: ../../CONTRIBUTING.rst:76 ../../CONTRIBUTING.rst:109 +#: ../../CONTRIBUTING.rst:76 ../../CONTRIBUTING.rst:111 #: 6ddf226447fa4bb89cbf73cc8376c371 c72bd69b5ad94f5992bfe2d30f5b0e8d msgid "Run the demo instance with the SQL backend" msgstr "" #: ../tutorial/databases.rst:8 ../../CONTRIBUTING.rst:83 -#: ../../CONTRIBUTING.rst:115 e5f82f8945b747ac81b31a20cc241e5d +#: ../../CONTRIBUTING.rst:117 e5f82f8945b747ac81b31a20cc241e5d #: 9a11f967d4c74ad8b9dff673e77d2315 84a192a56d404fb1baf97b065f6ceaa8 msgid "Memory" msgstr "" -#: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:116 +#: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:118 #: 9c56b31ca9724e62a5aee62e28196764 22784d30d5a748d2b73ebe7c423c64bc msgid "With the memory backend, all data is lost when Canaille stops." msgstr "" -#: ../../CONTRIBUTING.rst:86 ../../CONTRIBUTING.rst:118 +#: ../../CONTRIBUTING.rst:86 ../../CONTRIBUTING.rst:120 #: da0af4f3bc5147ae8130399630381126 c1436f14bd2049479ac16384a47f2d38 msgid "Run the demo instance with the memory backend" msgstr "" #: ../development/specifications.rst:108 ../tutorial/databases.rst:32 -#: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:124 +#: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:126 #: 6f4008249f544ff4afa4e2a7ccebfab2 ce4afa36ab774346b11322758b51325e #: f9a9bf9c1c6d49b99edee201000ea0a0 2e130a461dc64b989f22d4f932976a65 msgid "LDAP" msgstr "" -#: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:125 +#: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:127 #: 4f3a2e440337421f95f937952e7dc9be db5ad48ecaa94207ab2b7d84bbebf569 msgid "With the LDAP backend, all data is lost when Canaille stops." msgstr "" -#: ../../CONTRIBUTING.rst:96 ../../CONTRIBUTING.rst:127 +#: ../../CONTRIBUTING.rst:96 ../../CONTRIBUTING.rst:129 #: 50095289006e499588719acc50eb5a56 80a55900cfc34f4e8b34b5e653a7fdfb msgid "Run the demo instance with the LDAP backend" msgstr "" -#: ../../CONTRIBUTING.rst:103 9e2c9acef9184e34b00d62c97980467d +#: ../../CONTRIBUTING.rst:105 9e2c9acef9184e34b00d62c97980467d msgid "Local environment" msgstr "" -#: ../../CONTRIBUTING.rst:133 5fffaf4bff884b5a839078ad5a889fc9 +#: ../../CONTRIBUTING.rst:135 5fffaf4bff884b5a839078ad5a889fc9 msgid "" "If you want to run the demo locally with the LDAP backend, you need to have " "`OpenLDAP `_ installed on your system. It is " "generally shipped under the ``slapd`` or ``openldap`` package name." msgstr "" -#: ../../CONTRIBUTING.rst:138 aa9aab912ff04dd68c3b59bf1e36575a +#: ../../CONTRIBUTING.rst:140 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 "" -#: ../../CONTRIBUTING.rst:148 3d21757ba34c4721af043c150330c2e4 +#: ../../CONTRIBUTING.rst:150 3d21757ba34c4721af043c150330c2e4 msgid "Populate the database" msgstr "" -#: ../../CONTRIBUTING.rst:150 a412d39e98cf44f6b911566e1ebcdbde +#: ../../CONTRIBUTING.rst:152 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 "" -#: ../../CONTRIBUTING.rst:161 cdf90f875bcc44d5b41197a7cdbb275c +#: ../../CONTRIBUTING.rst:163 cdf90f875bcc44d5b41197a7cdbb275c msgid "" "Adapt to use either the `ldap` or the `sql` configuration file. Note that " "this will not work with the memory backend." msgstr "" -#: ../../CONTRIBUTING.rst:164 2db32f774df8429fa4c9e83d00616a96 +#: ../../CONTRIBUTING.rst:166 2db32f774df8429fa4c9e83d00616a96 msgid "Unit tests" msgstr "" -#: ../../CONTRIBUTING.rst:166 5d6a9b57b35d49c48e2b615f8128ebcc +#: ../../CONTRIBUTING.rst:168 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 "" -#: ../../CONTRIBUTING.rst:169 e1e6e475ff78404f930bb453f1f26e3b +#: ../../CONTRIBUTING.rst:171 e1e6e475ff78404f930bb453f1f26e3b msgid "" "To test a specific backend you can pass ``--backend memory``, ``--backend " "sql`` or ``--backend ldap`` to pytest and tox." msgstr "" -#: ../../CONTRIBUTING.rst:171 2cb85029b4274de388878da3d3285369 +#: ../../CONTRIBUTING.rst:173 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-" @@ -1674,11 +1674,11 @@ msgid "" "check the HTML coverage report in the newly created `htmlcov` directory." msgstr "" -#: ../../CONTRIBUTING.rst:176 4408d499056c480f86f450a781d2ca0d +#: ../../CONTRIBUTING.rst:178 4408d499056c480f86f450a781d2ca0d msgid "Code style" msgstr "" -#: ../../CONTRIBUTING.rst:178 93e483f2a66a4d8f82feb8ca9a739818 +#: ../../CONTRIBUTING.rst:180 93e483f2a66a4d8f82feb8ca9a739818 msgid "" "We use `ruff `_ along with other tools to " "format our code. Please run ``uv run tox -e style`` on your patches before " @@ -1687,51 +1687,51 @@ msgid "" "with ``uv run pre-commit install``." msgstr "" -#: ../../CONTRIBUTING.rst:184 0dca6207e6734ab487cb3fe72c3e90e8 +#: ../../CONTRIBUTING.rst:186 0dca6207e6734ab487cb3fe72c3e90e8 msgid "Front" msgstr "" -#: ../../CONTRIBUTING.rst:186 930e01d770324dc68f73095cd5456a8e +#: ../../CONTRIBUTING.rst:188 930e01d770324dc68f73095cd5456a8e msgid "" "The interface is built upon the `Fomantic UI `_ " "CSS framework. The dynamical parts of the interface use `htmx `_." msgstr "" -#: ../../CONTRIBUTING.rst:189 fc0da8a2736e461dab5a7d242c1cfa9a +#: ../../CONTRIBUTING.rst:191 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 "" -#: ../../CONTRIBUTING.rst:191 a13b055a65244362a025440451de998d +#: ../../CONTRIBUTING.rst:193 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 " "`_." msgstr "" -#: ../index.rst:71 ../../CONTRIBUTING.rst:196 e3ff6afa466e4e61aa4f677cd58d3ed2 +#: ../index.rst:71 ../../CONTRIBUTING.rst:198 e3ff6afa466e4e61aa4f677cd58d3ed2 #: a08d8d5331494e7d93508eaf25f41a07 msgid "Documentation" msgstr "" -#: ../../CONTRIBUTING.rst:198 2e1fdcae75de46a6b50db7e4155758af +#: ../../CONTRIBUTING.rst:200 2e1fdcae75de46a6b50db7e4155758af msgid "The documentation is generated when the tests run:" msgstr "" -#: ../../CONTRIBUTING.rst:204 94405109592b47c09c8726c305fa5edc +#: ../../CONTRIBUTING.rst:206 94405109592b47c09c8726c305fa5edc msgid "" "You can also run sphinx by hand, that should be faster since it avoids the " "tox environment initialization:" msgstr "" -#: ../../CONTRIBUTING.rst:210 fe4610d142474897ae4f97d321448fac +#: ../../CONTRIBUTING.rst:212 fe4610d142474897ae4f97d321448fac msgid "The generated documentation is located at ``build/sphinx/html/en``." msgstr "" -#: ../../CONTRIBUTING.rst:213 bf09dd8ed31742bca2fa80175ae85bb3 +#: ../../CONTRIBUTING.rst:215 bf09dd8ed31742bca2fa80175ae85bb3 msgid "Code translation" msgstr "" @@ -1796,7 +1796,7 @@ msgid "" "package:" msgstr "" -#: ../../CONTRIBUTING.rst:219 4ff341d941384c029ed9c0b49d1062f9 +#: ../../CONTRIBUTING.rst:221 4ff341d941384c029ed9c0b49d1062f9 msgid "Documentation translation" msgstr "" @@ -1819,74 +1819,75 @@ msgstr "" msgid "Build the documentation in another language" msgstr "" -#: ../../CONTRIBUTING.rst:224 4b1dc3dae99f4c6fbbeec3e54be3e922 +#: ../../CONTRIBUTING.rst:226 4b1dc3dae99f4c6fbbeec3e54be3e922 msgid "Publish a new release" msgstr "" -#: ../../CONTRIBUTING.rst:226 975b37a07edc4a42bbef14c2ca80a34f +#: ../../CONTRIBUTING.rst:228 975b37a07edc4a42bbef14c2ca80a34f msgid "" "Check that dependencies are up to date with ``uv sync --all-extras --" "upgrade`` and update dependencies accordingly in separated commits;" msgstr "" -#: ../../CONTRIBUTING.rst:227 e9bd8386c6c64ef99aac12ee831f39d1 +#: ../../CONTRIBUTING.rst:229 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 "" -#: ../../CONTRIBUTING.rst:228 3e7d5493a8e44c1a9067010115678723 +#: ../../CONTRIBUTING.rst:230 3e7d5493a8e44c1a9067010115678723 msgid "" "Check that the demo environments are still working, both the local and the " "Docker one;" msgstr "" -#: ../../CONTRIBUTING.rst:229 fe7867ea9416424e81c518f77853958a +#: ../../CONTRIBUTING.rst:231 fe7867ea9416424e81c518f77853958a msgid "" "Check that the :ref:`development/changelog:Release notes` section is " "correctly filled up;" msgstr "" -#: ../../CONTRIBUTING.rst:230 7d89adc1c3e6478ab9e8faa02f97bf03 +#: ../../CONTRIBUTING.rst:232 7d89adc1c3e6478ab9e8faa02f97bf03 msgid "Increase the version number in ``pyproject.toml``;" msgstr "" -#: ../../CONTRIBUTING.rst:231 a376131776cd4e469611fa3ad6749be9 +#: ../../CONTRIBUTING.rst:233 a376131776cd4e469611fa3ad6749be9 msgid "Commit with ``git commit``;" msgstr "" -#: ../../CONTRIBUTING.rst:232 655fd489e5324dc5b6172d438a6b8e3e +#: ../../CONTRIBUTING.rst:234 655fd489e5324dc5b6172d438a6b8e3e msgid "Build with ``uv build``;" msgstr "" -#: ../../CONTRIBUTING.rst:233 79fc61b7c13647a285a918a0c126ea53 +#: ../../CONTRIBUTING.rst:235 79fc61b7c13647a285a918a0c126ea53 msgid "" "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/" "legacy/``;" msgstr "" -#: ../../CONTRIBUTING.rst:234 93540129ce0c440eba4da63ed3ddb769 +#: ../../CONTRIBUTING.rst:236 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 "" -#: ../../CONTRIBUTING.rst:235 8a73b31d1fe14fdda15e6c2dea0cafc9 +#: ../../CONTRIBUTING.rst:237 8a73b31d1fe14fdda15e6c2dea0cafc9 msgid "Publish on production PyPI ``uv publish``;" msgstr "" -#: ../../CONTRIBUTING.rst:236 93131bb37ccc4207825449d393f92201 +#: ../../CONTRIBUTING.rst:238 93131bb37ccc4207825449d393f92201 msgid "Tag the commit with ``git tag XX.YY.ZZ``;" msgstr "" -#: ../../CONTRIBUTING.rst:237 a98a5168d5f949ec9e96f16d8ff8b6f5 +#: ../../CONTRIBUTING.rst:239 a98a5168d5f949ec9e96f16d8ff8b6f5 msgid "" "Push the release commit and the new tag on the repository with ``git push --" "tags``." msgstr "" -#: ../development/index.rst:2 c0f14bad2988468fa0700bbd47fe1de0 +#: ../development/index.rst:2 ../tutorial/theming.rst:41 +#: c0f14bad2988468fa0700bbd47fe1de0 294492704f9349cba94a11db140b19ab msgid "Development" msgstr "" @@ -2267,7 +2268,8 @@ msgstr "" msgid "LOC" msgstr "" -#: ../development/specifications.rst:108 3ba35fd6c6d44150b4b049cf603e4a85 +#: ../development/specifications.rst:108 ../references/templates.rst:48 +#: 3ba35fd6c6d44150b4b049cf603e4a85 1e5e7225bddd44a4accf8159f4a489c4 msgid "OIDC" msgstr "" @@ -3522,7 +3524,8 @@ msgid "" "instance, set ``ENV_FILE=.env`` to load a ``.env`` file." msgstr "" -#: ../references/configuration.rst:47 83d91b20c3204d09b61a4a6de8c84769 +#: ../references/configuration.rst:47 ../tutorial/theming.rst:45 +#: 83d91b20c3204d09b61a4a6de8c84769 457a1eceffa94e44afeb7c6d55ef5ea8 msgid ".env" msgstr "" @@ -3546,7 +3549,20 @@ msgstr "" msgid "environment file will have priority over the configuration file." msgstr "" -#: ../references/configuration.rst:73 e8e7a0f78d68479a9586036adf25e183 +#: ../references/configuration.rst:73 ../references/templates.rst:0 +#: e8e7a0f78d68479a9586036adf25e183 e618c439d01140e89d1dc5192b332e88 +#: f4db2269f8ad4c409d39e94fe1dcaa04 68c66fa321bf4fe2a26894cfb9893ef0 +#: d7c47aab465445b8bc425f9441587869 52bdc51455ac48d2bdb9d260bdb350cf +#: 0fb7c750d22647d788376d6343f66caf f92c045d1a5a4d00b038fa12d93eff2e +#: 90d78d2e0fdb420ab3c4d75f9909ebca c86ca15b6d43459db4613bed7711b415 +#: 025f6511bb9848d4a1434b34d8af8ed5 5bd3a111c63e47598c6a88827ea19ffe +#: d2ba0706e4954be5b7ae534c589f6aca 9e2f1558bdac4c4eb1f753e347f81def +#: eb3ec759399744d3a0b8340459257502 7a6f904d5199479faf1f9475e8f28ec8 +#: aa80eea655004e6aa3ed31b683743446 47e7b3bef2d7471b9b71292a43c594f0 +#: d477ef4794834bcd88e238de37086828 af7c4339cf534ca499a21f430a2cfddc +#: c537eb4e5a054b4da0cce51226e90ae8 3e425d243a7e46c4ba306bdc43551133 +#: 65568f4bca8a4d9f9a4fcdc05b5e446c 833bc5945dc84c89947a25733c1029dc +#: fa1f3f1eebc5442cb616ba17c22aa22d 5093360aed9a4fd0a361bd81f3310e2c msgid "Parameters" msgstr "" @@ -4462,9 +4478,11 @@ msgid "" "useful for developers." msgstr "" -#: ../../canaille/backends/models.py:docstring of +#: ../../canaille/app/features.py:docstring of canaille.app.features.Features:1 +#: ../../canaille/backends/models.py:docstring #: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 #: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7 +#: 3ac32584e20443aaae7659c3e894cb06 msgid "Bases: :py:class:`object`" msgstr "" @@ -5431,6 +5449,565 @@ msgstr "" msgid "OpenID Connect token definition." msgstr "" +#: ../references/templates.rst:2 25d974aba30140f4ad6e3445c3d71f50 +msgid "Templates" +msgstr "" + +#: ../references/templates.rst:4 29dfdb16379245fbb820e7677490ee2a +msgid "" +"This references the template files, their role and the variables available " +"in their contexts. The intended audience for this reference is designers " +"wishing to build their custom Canaille theme." +msgstr "" + +#: ../references/templates.rst:8 a9dc7731e37b4ca3900d9a269af917b2 +msgid "Base" +msgstr "" + +#: ../references/templates.rst:10 0083cf8f344a4aebb0db66182082b38e +msgid "Those templates are shared by all the pages rendered by Canaille." +msgstr "" + +#: ../references/templates.rst:13 ../references/templates.rst:35 +#: ../references/templates.rst:53 b7454449e2d74b1ba858b35dd9506974 +#: 017f3391e5324507b57d461e17c87379 d98c6d77a83046edba83238c1c41f765 +msgid "Template files" +msgstr "" + +#: ../../:1 8da82919623541cf99ddb3719a66ce6c +msgid "The main template inherited by almost every other templates." +msgstr "" + +#: ../../:1 0302eac895db4e9192dcda1cf138e681 +msgid "The current user, if logged in." +msgstr "" + +#: ../../:1 e3c9d7ed1b37441a9ea451dc09bf0256 +msgid "The features enabled and available in Canaille." +msgstr "" + +#: ../../:1 92d32aa698334d27bccff184e7f56f4a +msgid "The user locale." +msgstr "" + +#: ../../:1 46c7365e792d4e44bd0964d401ba3d8d +msgid "" +"The Canaille instance defined in :attr:`~canaille.core.configuration." +"CoreSettings.NAME`." +msgstr "" + +#: ../../:1 4eb0dc013f754cd19b2b0ead85436fc2 +msgid "" +"The URL of the instance logo defined in :attr:`~canaille.core.configuration." +"CoreSettings.LOGO`." +msgstr "" + +#: ../../:1 36b2a2855bb84f5a82440c1ce7a066af +msgid "" +"The URL of the instance favicon defined in :attr:`~canaille.core." +"configuration.CoreSettings.FAVICON`." +msgstr "" + +#: ../../:1 b5502e90eb964459b7477ba8cfd4bb56 +msgid "" +"Whether the page is boosted by :attr:`~canaille.core.configuration." +"CoreSettings.HTMX`." +msgstr "" + +#: ../../:1 abaac915defc44a39bb760b0fa1ca058 +msgid "Whether to display the menu or not." +msgstr "" + +#: ../../:1 4a846a9c1bf04b76bce93d3f51c2c63a +msgid "Whether the app has been launched in debug mode." +msgstr "" + +#: ../../:1 9a6481ec7a844690a56433119b0a980a +msgid "" +"The error page. Displayed for all kinds of errors (not found, internal " +"server error etc.)." +msgstr "" + +#: ../../:1 3c9236009d544093ab37e413f94d45b3 +msgid "The code of the HTTP error (404, 500, etc.)" +msgstr "" + +#: ../../:1 072ab6b535b245c0b5c16c84a51e0293 +msgid "The error code description." +msgstr "" + +#: ../../:1 01363257f0fd47a9beba953b1580f6f2 +msgid "An optional Font Awesome icon reference." +msgstr "" + +#: ../../:1 5eee8575ceec4ab6bb88624d75a23204 +msgid "Macros for Flask flash message rendering" +msgstr "" + +#: ../../:1 6df3858522a34bc181b21c3985dab099 +msgid "Macros for form and form field rendering." +msgstr "" + +#: ../../:1 45d3e7a61b2247f0b294c31fcdfd752b +msgid "Connects WTForms, Fomantic-UI and HTMX." +msgstr "" + +#: ../../:1 29a5444bd2c545e3a16b992c005e6626 +msgid "Macros for rendering table paginated with HTMX." +msgstr "" + +#: ../references/templates.rst:22 ../references/templates.rst:40 +#: ../references/templates.rst:58 4e87bb3eb49f4aef877cc6d31a2141b8 +#: 10827c0bcbb14fc3a1b8054d412a9a7d a1745ac8a300467b9a58c9ae79837332 +msgid "Forms" +msgstr "" + +#: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 +#: 438cfba9a79f484b9721d0f91a75b81a +msgid "" +"Bases: :py:class:`~canaille.app.forms.I18NFormMixin`, :py:class:`~flask_wtf." +"form.FlaskForm`" +msgstr "" + +#: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 +#: 57e0185db0a449f485f8c651f063748f +msgid "A form for table rendering of object collections." +msgstr "" + +#: ../references/templates.rst:30 162e7b075ee14548a43f9cff48b480a2 +msgid "Core" +msgstr "" + +#: ../references/templates.rst:32 006bb138232740cdba8de572fe62fa24 +msgid "" +"The core templates are displayed in the authentication and profile edition " +"pages." +msgstr "" + +#: ../../:1 e38aa98840094488a64497fcdbaa0264 +msgid "" +"The 'About' page. This is an informational page, displaying the project " +"links." +msgstr "" + +#: ../../:1 4c4ed92740f14deb87533cfa65ee80bf +msgid "The current Canaille version." +msgstr "" + +#: ../../:1 d95f55f7f9ff4b5f9686be3dc9a7847f +msgid "The first login page." +msgstr "" + +#: ../../:1 25602187d8a1450d93af69c3a5cb8676 +msgid "This page is displayed to users who do not have set a password yet." +msgstr "" + +#: ../../:1 b40d8dbabfb942b9a7e43fd2be5260fb +msgid "Password forgotten page." +msgstr "" + +#: ../../:1 168380710d5343d3ab70eaa096d1eaba +msgid "" +"This page displays a form asking for the email address of users who cannot " +"remember their password." +msgstr "" + +#: ../../:1 c5a709077f1948dc85448baca9d505b2 +msgid "Group edition page." +msgstr "" + +#: ../../:1 1d741cc01a7b477ebe6484f595b1ae27 +msgid "Displays the group edition or creation form." +msgstr "" + +#: ../../:1 1bb598284f574fadb4afdaa186936d45 +msgid "" +":data:`None` in a creation context. In edition context this is the edited " +"group." +msgstr "" + +#: ../../:1 cfb58971b75b4288af102ce52358148d +msgid "The group edition/creation form." +msgstr "" + +#: ../../:1 6a01b239a7364e059ac20e5c32156147 +msgid "The group list page." +msgstr "" + +#: ../../:1 8f596f7adabe4f35be79f5f12beb5e50 +msgid "A :class:`~canaille.core.models.Group` pagination form." +msgstr "" + +#: ../../:1 b7309cf53df840c1ba19e7177f27c99f +msgid "The invitation form page." +msgstr "" + +#: ../../:1 9fd33d67aac641e7a5c4fc9098332edc +msgid "Displays the invitation form to users with the invitation permission." +msgstr "" + +#: ../../:1 06e9aef4cee8405f96f76c99084ab2ef +msgid "The invitation form." +msgstr "" + +#: ../../:1 50937b6a974343eab8527a1977b6280a +msgid "The invitation acceptation page." +msgstr "" + +#: ../../:1 5781a7c918ac43d0842b01eb38b74cd5 +msgid "" +"This page is displayed to users who have clicked on invitation links sent by " +"mail (or by other media). It displays a basic account creation form." +msgstr "" + +#: ../../:1 b447524d0fb1461b81bf503c13eb3788 +msgid "The account creation form." +msgstr "" + +#: ../../:1 6f56b461666743eabb55c179df25b96b +msgid "The login page." +msgstr "" + +#: ../../:1 0160e1cfedb04735a642a373eba00f85 +msgid "This page displays a form to get the user identifier." +msgstr "" + +#: ../../:1 d2c554cbdaa941f089c6e1d178e2c40a +msgid "The login form." +msgstr "" + +#: ../../:1 5bf5c4af6d5949978459c9558e5959c0 +msgid "User account creation page." +msgstr "" + +#: ../../:1 052f0f9a73e54baa90e2beb51100c62f +msgid "" +"This template displays an account creation form. It is used in the " +"registration page, and in the manual account creation page available for " +"users with *user management* permission." +msgstr "" + +#: ../../:1 32e07b796f2542448a5c4f651407e05e +msgid "" +"The user creation form. Dynamically built according to the user :attr:" +"`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." +"configuration.ACLSettings.WRITE` permissions. The available fields are those " +"appearing in *READ* and *WRITE*, those only appearing in *READ* are read-" +"only." +msgstr "" + +#: ../../:1 94e9b36ee7a04d4db509845398904973 +msgid "The profile edition template." +msgstr "" + +#: ../../:1 b86d69135b324d5b879980406f1b321b +msgid "Displays a user profile edition form." +msgstr "" + +#: ../../:1 b7dedbaafbf4421dad65efa4edb64bc7 +#: f4ab6a408b4846a28755a25c75d49e9d +msgid "The user that the form will edit." +msgstr "" + +#: ../../:1 e971a69e070545b6a3efb2ef229a5e78 +#: 57372626a5504526a6602a9903be25f3 +msgid "" +"The user profile edition form. Dynamically built according to the user :attr:" +"`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." +"configuration.ACLSettings.WRITE` permissions. The available fields are those " +"appearing in *READ* and *WRITE*, those only appearing in *READ* are read-" +"only." +msgstr "" + +#: ../../:1 232f10ffd4634e3e8d30fd95968ff20e +msgid "" +"An email edition form. Used when the :attr:`~canaille.app.features.Features." +"has_email_confirmation` feature is enabled." +msgstr "" + +#: ../../:1 6f083b8c024042d2afc6e830605fcb29 +msgid "The profile settings template." +msgstr "" + +#: ../../:1 1e1b6ca57eee407ea373fabfa6b68203 +msgid "Displays the user settings edition form." +msgstr "" + +#: ../../:1 79751bf3182a4e728ce7c771919c012e +msgid "Whether the editor is allowed to delete the account of the edited user." +msgstr "" + +#: ../../:1 f6fbc394bb0e4d23b2025ad9512ed7f8 +msgid "The password reset template." +msgstr "" + +#: ../../:1 ac11fe027baa47d08507ce462ccf6521 +msgid "Displays a password reset form." +msgstr "" + +#: ../../:1 022dc36a70434d0cbbc929e6389ed667 +msgid "The password reset form." +msgstr "" + +#: ../../:1 b78ecf9a56b94a57a3b3708a76eb115e +msgid "The user associated with the URL." +msgstr "" + +#: ../../:1 2ad2199bf9a543bc89f2b1eab1575ed3 +msgid "The secret link hash." +msgstr "" + +#: ../../:1 d33d88c5756d4573bff6aed0f8b22df9 +msgid "The multi-factor authentication initialization template." +msgstr "" + +#: ../../:1 fd9b649f626b4b3e93dc09db80ce6ca4 +msgid "Display a QR-code and the OTP secret." +msgstr "" + +#: ../../:1 0f8aaa24949f428d91f05bb8ea510a5e +msgid "The user initializing the OTP." +msgstr "" + +#: ../../:1 23c8614367454fe48500f84535d7345d +msgid "The OTP secret." +msgstr "" + +#: ../../:1 ce26bc1edce5450e867c020efdf0879a +msgid "A QR-code image representing the OTP secret." +msgstr "" + +#: ../../:1 5a2fdfda2f1346bf8027c51f73374f77 +msgid "The users list." +msgstr "" + +#: ../../:1 3578a4cf58144521ab2d0883f7aa772e +msgid "Displays a paginated list of :class:`~canaille.core.models.User`." +msgstr "" + +#: ../../:1 27156299d35549f6a45ff3b7ff201226 +#: c6be1b3ce3d840fb953550cdaf6e1a29 5cb81767c1704260bc729322c4d6d013 +#: 68d31f09582d4ec2ac3706a0f578de31 +msgid "The paginated list form." +msgstr "" + +#: ../../:1 8f7a6ad97f984f7b90953f39a07c9bb5 +msgid "The multi-factor authentication code verification template." +msgstr "" + +#: ../../:1 1180b06a92c045c189a11016f3d869b3 +msgid "Displays a form that asks for the multi-factor authentication code." +msgstr "" + +#: ../../:1 653c3e233b7e41b689dd61a1a575768f +msgid "The code verification form." +msgstr "" + +#: ../../:1 c070afb39eb34d9b92862ae453876355 +msgid "The username of the user attempting to log-in." +msgstr "" + +#: ../../:1 1995353d10d24e2e86c87864fc8b17cc +msgid "The authentication factor method." +msgstr "" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.CreateGroupForm:1 +#: canaille.core.endpoints.forms.DeleteGroupMemberForm:1 +#: canaille.core.endpoints.forms.EditGroupForm:1 +#: canaille.core.endpoints.forms.EmailConfirmationForm:1 +#: canaille.core.endpoints.forms.FirstLoginForm:1 +#: canaille.core.endpoints.forms.ForgottenPasswordForm:1 +#: canaille.core.endpoints.forms.InvitationForm:1 +#: canaille.core.endpoints.forms.JoinForm:1 +#: canaille.core.endpoints.forms.LoginForm:1 +#: canaille.core.endpoints.forms.PasswordForm:1 +#: canaille.core.endpoints.forms.PasswordResetForm:1 +#: canaille.core.endpoints.forms.TwoFactorForm:1 +#: ../../canaille/oidc/endpoints/forms.py:docstring +#: canaille.oidc.endpoints.forms.AuthorizeForm:1 +#: canaille.oidc.endpoints.forms.ClientAddForm:1 +#: canaille.oidc.endpoints.forms.LogoutForm:1 +#: canaille.oidc.endpoints.forms.TokenRevokationForm:1 +#: c6b8f8c4f50047c4ad6f8d99a6de0f22 66162ad74b1f491e9815987352e3f843 +#: 3d9992e3d5db4bd0928836aca626058a 3b72a3535cb84d30a1e44d8b91b96903 +#: b95ae3bb349946949cb639e4ef9dc552 47a533342bda4ba2a94c62a94fcb70ad +#: 738540f528d74bcba2787fc6e25a04e1 79b58787a6954501a9b171492c9ba562 +#: cec55d6a542843f7bf4133f5e7160a89 ba39e17ba4834e048f841ce0689e48ba +#: d5d0648bb1b543a4bcd2f863306b2bf8 9075862fb6944b5d93ec7c848595e7be +#: 99b9891b663544458c6c24aafbaa4355 43741eee6aed4f1885f590c4baf20f83 +#: 27c2b976b7ae469d9f82c19665688817 4d826f68173b4b47bac9d96a2abe03a7 +msgid "Bases: :py:class:`~canaille.app.forms.Form`" +msgstr "" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.CreateGroupForm:1 +#: e4a35724e14d4581afe8c1d76256145b +msgid "The group creation form." +msgstr "" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.EditGroupForm:1 +#: d3488ce4b62b455cbc5919a3592c5eaf +msgid "The group edition form." +msgstr "" + +#: ../../canaille/core/endpoints/forms.py:docstring of +#: canaille.core.endpoints.forms.InvitationForm:1 +#: a3b72e9abc8b44e9862481fe20209e3f +msgid "The user invitation form." +msgstr "" + +#: ../references/templates.rst:50 16e60f31d5e549d8b0332ecdd2c8ec33 +msgid "The OIDC process are displayed in the OIDC consent pages." +msgstr "" + +#: ../../:1 6d3187567112498bafed8211d4e63aa9 +msgid "The list of authorizations." +msgstr "" + +#: ../../:1 ab9ee4b402464232a04de5af272ec4a2 +msgid "" +"Displays a paginated list of :class:`~canaille.oidc.basemodels." +"AuthorizationCode`." +msgstr "" + +#: ../../:1 af96456e16b5452da48beda8aa765d4d +msgid "Authorization details template." +msgstr "" + +#: ../../:1 60b6bca7f05c44c1863aeb04e3cc2f53 +msgid "" +"Displays details about an :class:`~canaille.oidc.basemodels." +"AuthorizationCode`." +msgstr "" + +#: ../../:1 4ddc2e41ee114c249fcebd0f7a4e86f8 +msgid "The detailed authorization." +msgstr "" + +#: ../../:1 0b979bab813e4ff39f47fc84cc204598 +msgid "Consent request template." +msgstr "" + +#: ../../:1 567c68d08849430da9230de7c671e93a +msgid "" +"This templates is displayed to users accessing a new application that " +"requests to access to personal information. It lists the personal " +"information requested by the application, and offers the user to accept or " +"decline." +msgstr "" + +#: ../../:1 21f53e087f2148f39791bfc780edefb7 +msgid "The user whose consent is asked." +msgstr "" + +#: ../../:1 48a0c4f1b88f4aaa9f10b158450a7bb1 +msgid "The OIDC grant." +msgstr "" + +#: ../../:1 f6bbf416c64247dbb06044aa221ab515 +msgid "The client addition template." +msgstr "" + +#: ../../:1 acbe06b62ce6465b915b5678d5426a35 +msgid "" +"Displays a form to create a new :class:`~canaille.oidc.basemodels.Client`." +msgstr "" + +#: ../../:1 3f0bb36f5d614523876371b9466e7861 +#: fc6afaad7f0040ba8bc9e5018bf3ebdd +msgid "The client creation form." +msgstr "" + +#: ../../:1 0c6c8a94ac7f41969c583a4e50c7f8c6 +msgid "The client edition template." +msgstr "" + +#: ../../:1 fc89d67d55e84fa39dd02decf27c7ad0 +msgid "Displays a form to edit a :class:`~canaille.oidc.basemodels.Client`." +msgstr "" + +#: ../../:1 69829ae75e504c15a7042fa0d0ca9a45 +msgid "The edited client." +msgstr "" + +#: ../../:1 e4137e9e29764f91ae4314a2b1b55ea9 +msgid "The list of OIDC clients." +msgstr "" + +#: ../../:1 e417b00de6f14e44b9fe8a0212f90d24 +msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Client`." +msgstr "" + +#: ../../:1 1d341bd4be4c40f9b475cab7f3899eac +msgid "The OIDC logout template." +msgstr "" + +#: ../../:1 4968bf02e5154f7d84a89f9790696370 +msgid "" +"Used during OIDC RP-initiated logout, when an user confirmation is needed." +msgstr "" + +#: ../../:1 b8bf82eb3cac45a4853dcaf6f5ac1589 +msgid "The logout form." +msgstr "" + +#: ../../:1 b6c0b03d71bf4873ac7b8565605d158e +msgid "The client requesting the logout." +msgstr "" + +#: ../../:1 5bac6224d1084ae98930ff6ccdb785f4 +msgid "The preconsented applications list." +msgstr "" + +#: ../../:1 9c634a235c2c4991b5e7af9769279832 +msgid "" +"Display a list of trusted clients for which it is implied that users don't " +"need to explicitly give their consent." +msgstr "" + +#: ../../:1 c246254d28664995a358d16c42110b49 +msgid "Description of the OIDC scopes." +msgstr "" + +#: ../../:1 ae25aa3ac5a345e5a23f6770e33b3ba5 +msgid "The scopes to hide." +msgstr "" + +#: ../../:1 076793e823214f96b43e5066270c865c +msgid "The list of implicitly consented clients." +msgstr "" + +#: ../../:1 81333f39450142f3b492f8fe7bd17957 +msgid "The number of consents." +msgstr "" + +#: ../../:1 08c463165ae2487eadebc7a4ae928bd0 +msgid "The number of preconsented clients." +msgstr "" + +#: ../../:1 e6d5d68657fa4c5f964a902844cf443e +msgid "The list of tokens." +msgstr "" + +#: ../../:1 a67dbec8f19c460eac41e22b702668ac +msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Token`." +msgstr "" + +#: ../../:1 7aa26abc05944ecd9afa89d71ca3f60a +msgid "The token edition template." +msgstr "" + +#: ../../:1 0051850e1f994570be480414cb1a8e50 +msgid "" +"Displays the details of a token :class:`~canaille.oidc.basemodels.Token`." +msgstr "" + +#: ../../:1 47975a2ecbce481f94ee843e3a77be73 +msgid "A token revokation form." +msgstr "" + #: ../tutorial/databases.rst:4 2934007ee99c4b5096855dd9bf47208b msgid "" "Canaille can read and save data in different databases. This page presents " @@ -5854,6 +6431,69 @@ msgid "" "all the clients." msgstr "" +#: ../tutorial/theming.rst:2 1e8d2a5169ed4313896d1a9c33dee1ab +msgid "Theming" +msgstr "" + +#: ../tutorial/theming.rst:4 8b9d02343d7b48a08704a60b2394672a +msgid "" +"Canaille comes with a default theme based on `Fomantic UI `__ but any part of the UI can be slightly modified or even " +"entierely rewritten if needed." +msgstr "" + +#: ../tutorial/theming.rst:7 aaa944c2e0b64fc7a9d04703be543cc8 +msgid "Custom templates" +msgstr "" + +#: ../tutorial/theming.rst:9 d431b58edd7c4ab5960f4889ad4bf8b1 +msgid "" +"To use a custom theme, set the :attr:`~canaille.core.configuration." +"CoreSettings.THEME` to a path to a directory where you will host your custom " +"templates." +msgstr "" + +#: ../tutorial/theming.rst:11 f70b37ff511248529ee7801adeae3f40 +msgid "" +"Then in this directory, create new files for templates you want to override. " +"The exhaustive list of templates is available in the :doc:`reference <../" +"references/templates>`. You must respect the template file paths. So for " +"instance if you want to customize the *about page*, you need to do it in a " +"``core/about.html`` file. You can inherit from the origin template by using " +"the Jinja ``extend`` directive." +msgstr "" + +#: ../tutorial/theming.rst:15 3abcbfdad0cf41628a3bb4e27789bdf0 +msgid "core/about.html" +msgstr "" + +#: ../tutorial/theming.rst:26 19d7d3280a9b4cc8a868428d2ef5b12f +msgid "Custom style sheets" +msgstr "" + +#: ../tutorial/theming.rst:28 13f029143d7a41ee97bff9bab5c6696d +msgid "" +"If you simply want to put your custom style sheets in the default theme, you " +"can just push it in the ``base.html`` template. Put your file in a " +"``static`` subdirectory of your theme, for instance ``static/css/custom." +"css`` and reference it with ``theme_static``." +msgstr "" + +#: ../tutorial/theming.rst:31 5494d679f6294826a4fe0ec3307f1d90 +msgid "base.html" +msgstr "" + +#: ../tutorial/theming.rst:43 eb8604a736ba49c7a5268aff30c7045f +msgid "" +"To write your custom theme and check how it is rendered, you can put the " +"path to your theme in a ``.env`` file and run the Canaille demo instance, as " +"described in the :ref:`contributing guide `" +msgstr "" + +#: ../tutorial/theming.rst:50 f2e3066341864ffdb46f79b737fd491c +msgid "Run the demo instance" +msgstr "" + #: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407 msgid "Troubleshooting" msgstr ""