chore: use pyproject.toml with babel to extract strings

This commit is contained in:
Éloi Rivard 2024-09-12 19:29:59 +02:00
parent cfabcc485c
commit 37ecb7a2ba
No known key found for this signature in database
GPG key ID: 7EDA204EA57DD184
4 changed files with 151 additions and 139 deletions

View file

@ -11,7 +11,7 @@ After you have edited translatable strings, you should extract the messages with
.. code-block:: bash
pybabel extract --mapping-file canaille/translations/babel.cfg --copyright-holder="Yaal Coop" --output-file canaille/translations/messages.pot canaille
pybabel extract --mapping-file pyproject.toml --copyright-holder="Yaal Coop" --output-file canaille/translations/messages.pot canaille
Language addition
~~~~~~~~~~~~~~~~~

View file

@ -1,7 +0,0 @@
[python: **.py]
[jinja2: **/templates/**.html]
trimmed = True
[jinja2: **/themes/**.html]
trimmed = True
[jinja2: **/templates/**.txt]
trimmed = True

View file

@ -8,69 +8,69 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-05-01 18:39+0200\n"
"POT-Creation-Date: 2024-09-12 19:28+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.14.0\n"
"Generated-By: Babel 2.16.0\n"
#: canaille/app/flask.py:100
msgid "No SMTP server has been configured"
msgstr ""
#: canaille/app/forms.py:25
#: canaille/app/forms.py:26
msgid "This is not a valid URL"
msgstr ""
#: canaille/app/forms.py:32 canaille/app/forms.py:33
#: canaille/app/forms.py:33 canaille/app/forms.py:34
msgid "This value is a duplicate"
msgstr ""
#: canaille/app/forms.py:45
#: canaille/app/forms.py:46
msgid "Not a valid phone number"
msgstr ""
#: canaille/app/forms.py:205
#: canaille/app/forms.py:206
msgid "The page number is not valid"
msgstr ""
#: canaille/app/forms.py:233
#: canaille/app/forms.py:234
msgid "Not a valid datetime value."
msgstr ""
#: canaille/backends/ldap/backend.py:97
#: canaille/backends/ldap/backend.py:99
msgid "Could not connect to the LDAP server '{uri}'"
msgstr ""
#: canaille/backends/ldap/backend.py:104
#: canaille/backends/ldap/backend.py:106
msgid "LDAP authentication failed with user '{user}'"
msgstr ""
#: canaille/backends/ldap/backend.py:173
#: canaille/backends/ldap/backend.py:175
msgid "John Doe"
msgstr ""
#: canaille/backends/ldap/backend.py:176 canaille/core/endpoints/forms.py:164
#: canaille/core/endpoints/forms.py:420
#: canaille/backends/ldap/backend.py:178 canaille/core/endpoints/forms.py:164
#: canaille/core/endpoints/forms.py:423
msgid "jdoe"
msgstr ""
#: canaille/backends/ldap/backend.py:179
#: canaille/backends/ldap/backend.py:181
msgid "john@doe.com"
msgstr ""
#: canaille/backends/ldap/backend.py:181
#: canaille/backends/ldap/backend.py:183
msgid " or "
msgstr ""
#: canaille/backends/ldap/backend.py:236
#: canaille/backends/ldap/backend.py:238
msgid "Your account has been locked."
msgstr ""
#: canaille/backends/ldap/backend.py:241
#: canaille/backends/ldap/backend.py:243
msgid "You should change your password."
msgstr ""
@ -112,7 +112,7 @@ msgid ""
msgstr ""
#: canaille/core/endpoints/account.py:248
#: canaille/core/endpoints/account.py:269
#: canaille/core/endpoints/account.py:271
msgid "The registration link that brought you here was invalid."
msgstr ""
@ -120,16 +120,16 @@ msgstr ""
msgid "The registration link that brought you here has expired."
msgstr ""
#: canaille/core/endpoints/account.py:262
#: canaille/core/endpoints/account.py:264
msgid "Your account has already been created."
msgstr ""
#: canaille/core/endpoints/account.py:276
#: canaille/core/endpoints/account.py:278
msgid "You are already logged in, you cannot create an account."
msgstr ""
#: canaille/core/endpoints/account.py:297 canaille/core/endpoints/forms.py:313
#: canaille/core/endpoints/forms.py:438 canaille/core/templates/groups.html:5
#: canaille/core/endpoints/account.py:299 canaille/core/endpoints/forms.py:313
#: canaille/core/endpoints/forms.py:441 canaille/core/templates/groups.html:5
#: canaille/core/templates/groups.html:23
#: canaille/core/templates/partial/group-members.html:15
#: canaille/core/templates/partial/users.html:18
@ -137,114 +137,114 @@ msgstr ""
msgid "Groups"
msgstr ""
#: canaille/core/endpoints/account.py:331
#: canaille/core/endpoints/account.py:424
#: canaille/core/endpoints/account.py:336
#: canaille/core/endpoints/account.py:429
msgid "User account creation failed."
msgstr ""
#: canaille/core/endpoints/account.py:342
#: canaille/core/endpoints/account.py:347
msgid "Your account has been created successfully."
msgstr ""
#: canaille/core/endpoints/account.py:357
#: canaille/core/endpoints/account.py:379
#: canaille/core/endpoints/account.py:362
#: canaille/core/endpoints/account.py:384
msgid "The email confirmation link that brought you here is invalid."
msgstr ""
#: canaille/core/endpoints/account.py:364
#: canaille/core/endpoints/account.py:369
msgid "The email confirmation link that brought you here has expired."
msgstr ""
#: canaille/core/endpoints/account.py:371
#: canaille/core/endpoints/account.py:376
msgid "The invitation link that brought you here was invalid."
msgstr ""
#: canaille/core/endpoints/account.py:386
#: canaille/core/endpoints/account.py:391
msgid "This address email have already been confirmed."
msgstr ""
#: canaille/core/endpoints/account.py:393
#: canaille/core/endpoints/account.py:398
msgid "This address email is already associated with another account."
msgstr ""
#: canaille/core/endpoints/account.py:400
#: canaille/core/endpoints/account.py:405
msgid "Your email address have been confirmed."
msgstr ""
#: canaille/core/endpoints/account.py:434
#: canaille/core/endpoints/account.py:439
msgid "User account creation succeed."
msgstr ""
#: canaille/core/endpoints/account.py:609
#: canaille/core/endpoints/account.py:770
#: canaille/core/endpoints/account.py:610
#: canaille/core/endpoints/account.py:771
msgid "Profile edition failed."
msgstr ""
#: canaille/core/endpoints/account.py:613
#: canaille/core/endpoints/account.py:785
#: canaille/core/endpoints/account.py:614
#: canaille/core/endpoints/account.py:786
msgid "Profile updated successfully."
msgstr ""
#: canaille/core/endpoints/account.py:620
#: canaille/core/endpoints/account.py:621
msgid "Email addition failed."
msgstr ""
#: canaille/core/endpoints/account.py:625
#: canaille/core/endpoints/account.py:626
msgid ""
"An email has been sent to the email address. Please check your inbox and "
"click on the verification link it contains"
msgstr ""
#: canaille/core/endpoints/account.py:632
#: canaille/core/endpoints/account.py:633
msgid "Could not send the verification email"
msgstr ""
#: canaille/core/endpoints/account.py:642
#: canaille/core/endpoints/account.py:643
msgid "Email deletion failed."
msgstr ""
#: canaille/core/endpoints/account.py:645
#: canaille/core/endpoints/account.py:646
msgid "The email have been successfully deleted."
msgstr ""
#: canaille/core/endpoints/account.py:682
#: canaille/core/endpoints/account.py:683
msgid ""
"A password initialization link has been sent at the user email address. "
"It should be received within a few minutes."
msgstr ""
#: canaille/core/endpoints/account.py:689 canaille/core/endpoints/auth.py:159
#: canaille/core/endpoints/account.py:690 canaille/core/endpoints/auth.py:159
msgid "Could not send the password initialization email"
msgstr ""
#: canaille/core/endpoints/account.py:700
#: canaille/core/endpoints/account.py:701
msgid ""
"A password reset link has been sent at the user email address. It should "
"be received within a few minutes."
msgstr ""
#: canaille/core/endpoints/account.py:707
#: canaille/core/endpoints/account.py:708
msgid "Could not send the password reset email"
msgstr ""
#: canaille/core/endpoints/account.py:723
#: canaille/core/endpoints/account.py:724
msgid "The account has been locked"
msgstr ""
#: canaille/core/endpoints/account.py:734
#: canaille/core/endpoints/account.py:735
msgid "The account has been unlocked"
msgstr ""
#: canaille/core/endpoints/account.py:805
#: canaille/core/endpoints/account.py:806
#, python-format
msgid "The user %(user)s has been sucessfuly deleted"
msgid "The user %(user)s has been successfully deleted"
msgstr ""
#: canaille/core/endpoints/account.py:822
#: canaille/core/endpoints/account.py:823
msgid "Locked users cannot be impersonated."
msgstr ""
#: canaille/core/endpoints/account.py:826 canaille/core/endpoints/auth.py:112
#: canaille/core/endpoints/account.py:827 canaille/core/endpoints/auth.py:112
#, python-format
msgid "Connection successful. Welcome %(user)s"
msgstr ""
@ -256,8 +256,8 @@ msgstr ""
#: canaille/core/endpoints/admin.py:29 canaille/core/endpoints/forms.py:97
#: canaille/core/endpoints/forms.py:120 canaille/core/endpoints/forms.py:209
#: canaille/core/endpoints/forms.py:406 canaille/core/endpoints/forms.py:432
#: canaille/core/endpoints/forms.py:453 canaille/core/endpoints/forms.py:469
#: canaille/core/endpoints/forms.py:409 canaille/core/endpoints/forms.py:435
#: canaille/core/endpoints/forms.py:459 canaille/core/endpoints/forms.py:475
msgid "jane@doe.com"
msgstr ""
@ -384,12 +384,12 @@ msgstr ""
msgid "Username"
msgstr ""
#: canaille/core/endpoints/forms.py:167 canaille/core/endpoints/forms.py:362
#: canaille/core/endpoints/forms.py:376
#: canaille/core/endpoints/forms.py:167 canaille/core/endpoints/forms.py:365
#: canaille/core/endpoints/forms.py:379
#: canaille/core/templates/partial/group-members.html:12
#: canaille/core/templates/partial/groups.html:6
#: canaille/core/templates/partial/users.html:12
#: canaille/oidc/endpoints/forms.py:26
#: canaille/oidc/endpoints/forms.py:29
#: canaille/oidc/templates/partial/client_list.html:6
msgid "Name"
msgstr ""
@ -426,12 +426,12 @@ msgstr ""
msgid "Johnny"
msgstr ""
#: canaille/core/endpoints/forms.py:199 canaille/core/endpoints/forms.py:459
#: canaille/core/endpoints/forms.py:199 canaille/core/endpoints/forms.py:465
#: canaille/core/templates/profile_edit.html:176
msgid "Email addresses"
msgstr ""
#: canaille/core/endpoints/forms.py:205 canaille/core/endpoints/forms.py:449
#: canaille/core/endpoints/forms.py:205 canaille/core/endpoints/forms.py:455
msgid ""
"This email will be used as a recovery address to reset the password if "
"needed"
@ -523,65 +523,65 @@ msgstr ""
msgid "Preferred language"
msgstr ""
#: canaille/core/endpoints/forms.py:316
#: canaille/core/endpoints/forms.py:319
msgid "users, admins …"
msgstr ""
#: canaille/core/endpoints/forms.py:341
#: canaille/core/endpoints/forms.py:344
msgid "Account expiration"
msgstr ""
#: canaille/core/endpoints/forms.py:365
#: canaille/core/endpoints/forms.py:368
msgid "group"
msgstr ""
#: canaille/core/endpoints/forms.py:369 canaille/core/endpoints/forms.py:386
#: canaille/core/endpoints/forms.py:372 canaille/core/endpoints/forms.py:389
#: canaille/core/templates/partial/groups.html:7
msgid "Description"
msgstr ""
#: canaille/core/endpoints/forms.py:400 canaille/core/endpoints/forms.py:425
#: canaille/core/endpoints/forms.py:403 canaille/core/endpoints/forms.py:428
msgid "Email address"
msgstr ""
#: canaille/core/endpoints/forms.py:419
#: canaille/core/endpoints/forms.py:422
msgid "User name"
msgstr ""
#: canaille/core/endpoints/forms.py:423
#: canaille/core/endpoints/forms.py:426
msgid "Username editable by the invitee"
msgstr ""
#: canaille/core/endpoints/forms.py:462
#: canaille/core/endpoints/forms.py:468
msgid "New email address"
msgstr ""
#: canaille/core/endpoints/groups.py:39
#: canaille/core/endpoints/groups.py:40
msgid "Group creation failed."
msgstr ""
#: canaille/core/endpoints/groups.py:47
#: canaille/core/endpoints/groups.py:48
#, python-format
msgid "The group %(group)s has been sucessfully created"
msgid "The group %(group)s has been successfully created"
msgstr ""
#: canaille/core/endpoints/groups.py:107
#: canaille/core/endpoints/groups.py:108
#, python-format
msgid "The group %(group)s has been sucessfully edited."
msgid "The group %(group)s has been successfully edited."
msgstr ""
#: canaille/core/endpoints/groups.py:115
#: canaille/core/endpoints/groups.py:116
msgid "Group edition failed."
msgstr ""
#: canaille/core/endpoints/groups.py:144
#: canaille/core/endpoints/groups.py:145
#, python-format
msgid "%(user_name)s has been removed from the group %(group_name)s"
msgstr ""
#: canaille/core/endpoints/groups.py:161
#: canaille/core/endpoints/groups.py:162
#, python-format
msgid "The group %(group)s has been sucessfully deleted"
msgid "The group %(group)s has been successfully deleted"
msgstr ""
#: canaille/core/templates/about.html:5 canaille/core/templates/about.html:16
@ -610,11 +610,11 @@ msgstr ""
msgid "Source code"
msgstr ""
#: canaille/core/templates/firstlogin.html:11
#: canaille/core/templates/firstlogin.html:12
msgid "First login"
msgstr ""
#: canaille/core/templates/firstlogin.html:16
#: canaille/core/templates/firstlogin.html:19
msgid ""
"It seems this is the first time you are logging here. In order to "
"finalize your account configuration, you need to set a password to your "
@ -623,41 +623,41 @@ msgid ""
"button below to send the email."
msgstr ""
#: canaille/core/templates/firstlogin.html:28
#: canaille/core/templates/forgotten-password.html:35
#: canaille/core/templates/firstlogin.html:34
#: canaille/core/templates/forgotten-password.html:43
#: canaille/core/templates/join.html:39
#: canaille/core/templates/profile_add.html:191
msgid "Login page"
msgstr ""
#: canaille/core/templates/firstlogin.html:29
#: canaille/core/templates/firstlogin.html:35
msgid "Send the initialization email"
msgstr ""
#: canaille/core/templates/forgotten-password.html:5
#: canaille/core/templates/forgotten-password.html:15
#: canaille/core/templates/join.html:41 canaille/core/templates/login.html:36
#: canaille/core/templates/password.html:34
#: canaille/core/templates/forgotten-password.html:16
#: canaille/core/templates/join.html:41 canaille/core/templates/login.html:43
#: canaille/core/templates/password.html:41
msgid "Forgotten password"
msgstr ""
#: canaille/core/templates/forgotten-password.html:20
#: canaille/core/templates/forgotten-password.html:23
msgid ""
"After this form is sent, if the email address or the login you provided "
"exists, you will receive an email containing a link that will allow you "
"to reset your password."
msgstr ""
#: canaille/core/templates/forgotten-password.html:33
#: canaille/core/templates/login.html:33
#: canaille/core/templates/forgotten-password.html:41
#: canaille/core/templates/login.html:40
msgid "Create an account"
msgstr ""
#: canaille/core/templates/forgotten-password.html:38
#: canaille/core/templates/forgotten-password.html:46
msgid "Send again"
msgstr ""
#: canaille/core/templates/forgotten-password.html:40
#: canaille/core/templates/forgotten-password.html:48
#: canaille/core/templates/mails/admin.html:52
msgid "Send"
msgstr ""
@ -823,35 +823,35 @@ msgstr ""
msgid "Submit"
msgstr ""
#: canaille/core/templates/login.html:20
#: canaille/core/templates/login.html:21
#, python-format
msgid "Sign in at %(website)s"
msgstr ""
#: canaille/core/templates/login.html:22
#: canaille/core/templates/login.html:23
msgid "Manage your information and your authorizations"
msgstr ""
#: canaille/core/templates/login.html:38
#: canaille/core/templates/login.html:45
#: canaille/core/templates/mails/registration.txt:5
msgid "Continue"
msgstr ""
#: canaille/core/templates/password.html:20
#: canaille/core/templates/password.html:21
#, python-format
msgid "Sign in as %(username)s"
msgstr ""
#: canaille/core/templates/password.html:22
#: canaille/core/templates/password.html:23
msgid "Please enter your password for this account."
msgstr ""
#: canaille/core/templates/password.html:32
#: canaille/core/templates/password.html:39
#, python-format
msgid "I am not %(username)s"
msgstr ""
#: canaille/core/templates/password.html:36 canaille/templates/base.html:74
#: canaille/core/templates/password.html:43 canaille/templates/base.html:74
msgid "Sign in"
msgstr ""
@ -982,8 +982,8 @@ msgstr ""
#: canaille/core/templates/mails/admin.html:97
#: canaille/core/templates/mails/reset.html:19
#: canaille/core/templates/profile_settings.html:116
#: canaille/core/templates/reset-password.html:11
#: canaille/core/templates/reset-password.html:16
#: canaille/core/templates/reset-password.html:12
#: canaille/core/templates/reset-password.html:18
msgid "Password reset"
msgstr ""
@ -1367,7 +1367,7 @@ msgstr ""
#: canaille/oidc/templates/partial/authorization_list.html:33
#: canaille/oidc/templates/partial/client_list.html:37
#: canaille/oidc/templates/partial/token_list.html:41
msgid "Maybe try with different criterias?"
msgid "Maybe try with different criteria?"
msgstr ""
#: canaille/core/templates/partial/group-members.html:88
@ -1404,130 +1404,130 @@ msgstr ""
msgid "Groups you belong to."
msgstr ""
#: canaille/oidc/endpoints/clients.py:45
#: canaille/oidc/endpoints/clients.py:46
msgid "The client has not been added. Please check your information."
msgstr ""
#: canaille/oidc/endpoints/clients.py:80
#: canaille/oidc/endpoints/clients.py:81
msgid "The client has been created."
msgstr ""
#: canaille/oidc/endpoints/clients.py:113
#: canaille/oidc/endpoints/clients.py:114
msgid "The client has not been edited. Please check your information."
msgstr ""
#: canaille/oidc/endpoints/clients.py:142
#: canaille/oidc/endpoints/clients.py:144
msgid "The client has been edited."
msgstr ""
#: canaille/oidc/endpoints/clients.py:150
#: canaille/oidc/endpoints/clients.py:152
msgid "The client has been deleted."
msgstr ""
#: canaille/oidc/endpoints/consents.py:72
#: canaille/oidc/endpoints/consents.py:107
#: canaille/oidc/endpoints/consents.py:73
#: canaille/oidc/endpoints/consents.py:108
msgid "Could not revoke this access"
msgstr ""
#: canaille/oidc/endpoints/consents.py:75
#: canaille/oidc/endpoints/consents.py:76
msgid "The access is already revoked"
msgstr ""
#: canaille/oidc/endpoints/consents.py:79
#: canaille/oidc/endpoints/consents.py:122
#: canaille/oidc/endpoints/consents.py:80
#: canaille/oidc/endpoints/consents.py:123
msgid "The access has been revoked"
msgstr ""
#: canaille/oidc/endpoints/consents.py:88
#: canaille/oidc/endpoints/consents.py:89
msgid "Could not restore this access"
msgstr ""
#: canaille/oidc/endpoints/consents.py:91
#: canaille/oidc/endpoints/consents.py:92
msgid "The access is not revoked"
msgstr ""
#: canaille/oidc/endpoints/consents.py:98
#: canaille/oidc/endpoints/consents.py:99
msgid "The access has been restored"
msgstr ""
#: canaille/oidc/endpoints/forms.py:32
#: canaille/oidc/endpoints/forms.py:35
msgid "Contacts"
msgstr ""
#: canaille/oidc/endpoints/forms.py:40
#: canaille/oidc/endpoints/forms.py:43
msgid "URI"
msgstr ""
#: canaille/oidc/endpoints/forms.py:49
#: canaille/oidc/endpoints/forms.py:52
msgid "Redirect URIs"
msgstr ""
#: canaille/oidc/endpoints/forms.py:61
#: canaille/oidc/endpoints/forms.py:64
msgid "Post logout redirect URIs"
msgstr ""
#: canaille/oidc/endpoints/forms.py:74
#: canaille/oidc/endpoints/forms.py:77
msgid "Grant types"
msgstr ""
#: canaille/oidc/endpoints/forms.py:86
#: canaille/oidc/endpoints/forms.py:89
#: canaille/oidc/templates/token_view.html:61
msgid "Scope"
msgstr ""
#: canaille/oidc/endpoints/forms.py:92
#: canaille/oidc/endpoints/forms.py:95
msgid "Response types"
msgstr ""
#: canaille/oidc/endpoints/forms.py:98
#: canaille/oidc/endpoints/forms.py:101
msgid "Token Endpoint Auth Method"
msgstr ""
#: canaille/oidc/endpoints/forms.py:108
#: canaille/oidc/endpoints/forms.py:111
msgid "Token audiences"
msgstr ""
#: canaille/oidc/endpoints/forms.py:115
#: canaille/oidc/endpoints/forms.py:118
msgid "Logo URI"
msgstr ""
#: canaille/oidc/endpoints/forms.py:123
#: canaille/oidc/endpoints/forms.py:126
msgid "Terms of service URI"
msgstr ""
#: canaille/oidc/endpoints/forms.py:131
#: canaille/oidc/endpoints/forms.py:134
msgid "Policy URI"
msgstr ""
#: canaille/oidc/endpoints/forms.py:139
#: canaille/oidc/endpoints/forms.py:142
msgid "Software ID"
msgstr ""
#: canaille/oidc/endpoints/forms.py:144
#: canaille/oidc/endpoints/forms.py:147
msgid "Software Version"
msgstr ""
#: canaille/oidc/endpoints/forms.py:149
#: canaille/oidc/endpoints/forms.py:152
msgid "JWK"
msgstr ""
#: canaille/oidc/endpoints/forms.py:154
#: canaille/oidc/endpoints/forms.py:157
msgid "JKW URI"
msgstr ""
#: canaille/oidc/endpoints/forms.py:162
#: canaille/oidc/endpoints/forms.py:165
msgid "Pre-consent"
msgstr ""
#: canaille/oidc/endpoints/oauth.py:353
#: canaille/oidc/endpoints/oauth.py:355
msgid "You have been disconnected"
msgstr ""
#: canaille/oidc/endpoints/oauth.py:370
#: canaille/oidc/endpoints/oauth.py:372
msgid "You have not been disconnected"
msgstr ""
#: canaille/oidc/endpoints/tokens.py:44
#: canaille/oidc/endpoints/tokens.py:45
msgid "The token has successfully been revoked."
msgstr ""

View file

@ -233,3 +233,22 @@ commands =
poetry run pytest --cov --cov-fail-under=100 --cov-report term:skip-covered {posargs:-n auto}
poetry run coverage html
"""
[[tool.babel.mappings]]
method = "python"
pattern = "**.py"
[[tool.babel.mappings]]
method = "jinja2"
pattern = "**/templates/**.html"
trimmed = "true"
[[tool.babel.mappings]]
method = "jinja2"
pattern = "**/themes/**.html"
trimmed = "true"
[[tool.babel.mappings]]
method = "jinja2"
pattern = "**/templates/**.txt"
trimmed = "true"