From 9523f52546ab0d7072e29ffb13e47a1e8dcb7a18 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Wed, 17 Dec 2025 16:15:43 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D(docs)=20clarify=20sub=20as=20optio?= =?UTF-8?q?nal=20to=20support=20email-only=20user=20provisioning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update the sub field documentation to explicitly reflect its optional nature. Originally intended to be mandatory, sub became optional due to a code issue. This change acknowledges and formalizes that behavior as intentional. The optional sub enables external API integrations to provision users with only an email address. Full identity (sub) is assigned on first login, allowing third-party platforms to create users before they authenticate. --- src/backend/core/migrations/0001_initial.py | 2 +- src/backend/core/models.py | 3 +- .../locale/de_DE/LC_MESSAGES/django.po | 117 ++++++++--------- .../locale/en_US/LC_MESSAGES/django.po | 110 ++++++++-------- .../locale/fr_FR/LC_MESSAGES/django.po | 118 +++++++++--------- .../locale/nl_NL/LC_MESSAGES/django.po | 116 ++++++++--------- 6 files changed, 236 insertions(+), 230 deletions(-) diff --git a/src/backend/core/migrations/0001_initial.py b/src/backend/core/migrations/0001_initial.py index 060b9f40..384d6024 100644 --- a/src/backend/core/migrations/0001_initial.py +++ b/src/backend/core/migrations/0001_initial.py @@ -41,7 +41,7 @@ class Migration(migrations.Migration): ('id', models.UUIDField(default=uuid.uuid4, editable=False, help_text='primary key for the record as UUID', primary_key=True, serialize=False, verbose_name='id')), ('created_at', models.DateTimeField(auto_now_add=True, help_text='date and time at which a record was created', verbose_name='created on')), ('updated_at', models.DateTimeField(auto_now=True, help_text='date and time at which a record was last updated', verbose_name='updated on')), - ('sub', models.CharField(blank=True, help_text='Required. 255 characters or fewer. Letters, numbers, and @/./+/-/_ characters only.', max_length=255, null=True, unique=True, validators=[django.core.validators.RegexValidator(message='Enter a valid sub. This value may contain only letters, numbers, and @/./+/-/_ characters.', regex='^[\\w.@+-]+\\Z')], verbose_name='sub')), + ('sub', models.CharField(blank=True, help_text='Optional for pending users; required upon account activation. 255 characters or fewer. Letters, numbers, and @/./+/-/_ characters only.', max_length=255, null=True, unique=True, validators=[django.core.validators.RegexValidator(message='Enter a valid sub. This value may contain only letters, numbers, and @/./+/-/_ characters.', regex='^[\\w.@+-]+\\Z')], verbose_name='sub')), ('email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='identity email address')), ('admin_email', models.EmailField(blank=True, max_length=254, null=True, unique=True, verbose_name='admin email address')), ('language', models.CharField(choices="(('en-us', 'English'), ('fr-fr', 'French'))", default='en-us', help_text='The language in which the user wants to see the interface.', max_length=10, verbose_name='language')), diff --git a/src/backend/core/models.py b/src/backend/core/models.py index 89ff11cd..b291f7c6 100644 --- a/src/backend/core/models.py +++ b/src/backend/core/models.py @@ -146,7 +146,8 @@ class User(AbstractBaseUser, BaseModel, auth_models.PermissionsMixin): sub = models.CharField( _("sub"), help_text=_( - "Required. 255 characters or fewer. Letters, numbers, and @/./+/-/_ characters only." + "Optional for pending users; required upon account activation. " + "255 characters or fewer. Letters, numbers, and @/./+/-/_ characters only." ), max_length=255, unique=True, diff --git a/src/backend/locale/de_DE/LC_MESSAGES/django.po b/src/backend/locale/de_DE/LC_MESSAGES/django.po index a647357e..5dee7071 100644 --- a/src/backend/locale/de_DE/LC_MESSAGES/django.po +++ b/src/backend/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:07+0000\n" +"POT-Creation-Date: 2025-12-17 15:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -177,61 +177,61 @@ msgstr "Sub" #: core/models.py:149 msgid "" -"Required. 255 characters or fewer. Letters, numbers, and @/./+/-/_ " -"characters only." +"Optional for pending users; required upon account activation. 255 characters " +"or fewer. Letters, numbers, and @/./+/-/_ characters only." msgstr "" -"Erforderlich. Maximal 255 Zeichen. Nur Buchstaben, Zahlen und @/./+/-/_ sind " -"erlaubt." +"Optional für ausstehende Benutzer; erforderlich nach Kontoaktivierung. " +"Maximal 255 Zeichen. Nur Buchstaben, Zahlen und @/./+/-/_ Zeichen erlaubt." -#: core/models.py:157 +#: core/models.py:158 msgid "identity email address" msgstr "Identitäts-E-Mail-Adresse" -#: core/models.py:162 +#: core/models.py:163 msgid "admin email address" msgstr "Administrator-E-Mail-Adresse" -#: core/models.py:164 +#: core/models.py:165 msgid "full name" msgstr "Vollständiger Name" -#: core/models.py:166 +#: core/models.py:167 msgid "short name" msgstr "Kurzname" -#: core/models.py:172 +#: core/models.py:173 msgid "language" msgstr "Sprache" -#: core/models.py:173 +#: core/models.py:174 msgid "The language in which the user wants to see the interface." msgstr "Die Sprache, in der der Benutzer die Oberfläche sehen möchte." -#: core/models.py:179 +#: core/models.py:180 msgid "The timezone in which the user wants to see times." msgstr "Die Zeitzone, in der der Benutzer die Zeiten sehen möchte." -#: core/models.py:182 +#: core/models.py:183 msgid "device" msgstr "Gerät" -#: core/models.py:184 +#: core/models.py:185 msgid "Whether the user is a device or a real user." msgstr "Ob es sich um ein Gerät oder einen echten Benutzer handelt." -#: core/models.py:187 +#: core/models.py:188 msgid "staff status" msgstr "Mitarbeiterstatus" -#: core/models.py:189 +#: core/models.py:190 msgid "Whether the user can log into this admin site." msgstr "Ob der Benutzer sich bei dieser Admin-Seite anmelden kann." -#: core/models.py:192 +#: core/models.py:193 msgid "active" msgstr "aktiv" -#: core/models.py:195 +#: core/models.py:196 msgid "" "Whether this user should be treated as active. Unselect this instead of " "deleting accounts." @@ -239,66 +239,66 @@ msgstr "" "Ob dieser Benutzer als aktiv behandelt werden soll. Deaktivieren Sie dies " "anstelle des Löschens des Kontos." -#: core/models.py:208 +#: core/models.py:209 msgid "user" msgstr "Benutzer" -#: core/models.py:209 +#: core/models.py:210 msgid "users" msgstr "Benutzer" -#: core/models.py:268 +#: core/models.py:269 msgid "Resource" msgstr "Ressource" -#: core/models.py:269 +#: core/models.py:270 msgid "Resources" msgstr "Ressourcen" -#: core/models.py:323 +#: core/models.py:324 msgid "Resource access" msgstr "Ressourcenzugriff" -#: core/models.py:324 +#: core/models.py:325 msgid "Resource accesses" msgstr "Ressourcenzugriffe" -#: core/models.py:330 +#: core/models.py:331 msgid "Resource access with this User and Resource already exists." msgstr "" "Ein Ressourcenzugriff mit diesem Benutzer und dieser Ressource existiert " "bereits." -#: core/models.py:386 +#: core/models.py:387 msgid "Visio room configuration" msgstr "Visio-Raumkonfiguration" -#: core/models.py:387 +#: core/models.py:388 msgid "Values for Visio parameters to configure the room." msgstr "Werte für Visio-Parameter zur Konfiguration des Raums." -#: core/models.py:394 +#: core/models.py:395 msgid "Room PIN code" msgstr "PIN-Code für den Raum" -#: core/models.py:395 +#: core/models.py:396 msgid "Unique n-digit code that identifies this room in telephony mode." msgstr "" "Eindeutiger n-stelliger Code, der diesen Raum im Telephonmodus identifiziert." -#: core/models.py:401 core/models.py:555 +#: core/models.py:402 core/models.py:556 msgid "Room" msgstr "Raum" -#: core/models.py:402 +#: core/models.py:403 msgid "Rooms" msgstr "Räume" -#: core/models.py:566 +#: core/models.py:567 msgid "Worker ID" msgstr "Worker-ID" -#: core/models.py:568 +#: core/models.py:569 msgid "" "Enter an identifier for the worker recording.This ID is retained even when " "the worker stops, allowing for easy tracking." @@ -307,99 +307,100 @@ msgstr "" "erhalten, auch wenn der Worker stoppt, was ein einfaches Nachverfolgen " "ermöglicht." -#: core/models.py:576 +#: core/models.py:577 msgid "Recording mode" msgstr "Aufzeichnungsmodus" -#: core/models.py:577 +#: core/models.py:578 msgid "Defines the mode of recording being called." msgstr "Definiert den aufgerufenen Aufzeichnungsmodus." -#: core/models.py:583 +#: core/models.py:584 msgid "Recording" msgstr "Aufzeichnung" -#: core/models.py:584 +#: core/models.py:585 msgid "Recordings" msgstr "Aufzeichnungen" -#: core/models.py:692 +#: core/models.py:693 msgid "Recording/user relation" msgstr "Beziehung Aufzeichnung/Benutzer" -#: core/models.py:693 +#: core/models.py:694 msgid "Recording/user relations" msgstr "Beziehungen Aufzeichnung/Benutzer" -#: core/models.py:699 +#: core/models.py:700 msgid "This user is already in this recording." msgstr "Dieser Benutzer ist bereits Teil dieser Aufzeichnung." -#: core/models.py:705 +#: core/models.py:706 msgid "This team is already in this recording." msgstr "Dieses Team ist bereits Teil dieser Aufzeichnung." -#: core/models.py:711 +#: core/models.py:712 msgid "Either user or team must be set, not both." msgstr "Entweder Benutzer oder Team muss festgelegt werden, nicht beides." -#: core/models.py:728 +#: core/models.py:729 msgid "Create rooms" msgstr "Räume erstellen" -#: core/models.py:729 +#: core/models.py:730 msgid "List rooms" msgstr "Räume auflisten" -#: core/models.py:730 +#: core/models.py:731 msgid "Retrieve room details" msgstr "Raumdetails abrufen" -#: core/models.py:731 +#: core/models.py:732 msgid "Update rooms" msgstr "Räume aktualisieren" -#: core/models.py:732 +#: core/models.py:733 msgid "Delete rooms" msgstr "Räume löschen" -#: core/models.py:745 +#: core/models.py:746 msgid "Application name" msgstr "Anwendungsname" -#: core/models.py:746 +#: core/models.py:747 msgid "Descriptive name for this application." msgstr "Beschreibender Name für diese Anwendung." -#: core/models.py:756 +#: core/models.py:757 msgid "Hashed on Save. Copy it now if this is a new secret." -msgstr "Beim Speichern gehasht. Jetzt kopieren, wenn dies ein neues Geheimnis ist." +msgstr "" +"Beim Speichern gehasht. Jetzt kopieren, wenn dies ein neues Geheimnis ist." -#: core/models.py:767 +#: core/models.py:768 msgid "Application" msgstr "Anwendung" -#: core/models.py:768 +#: core/models.py:769 msgid "Applications" msgstr "Anwendungen" -#: core/models.py:791 +#: core/models.py:792 msgid "Enter a valid domain" msgstr "Geben Sie eine gültige Domain ein" -#: core/models.py:794 +#: core/models.py:795 msgid "Domain" msgstr "Domain" -#: core/models.py:795 +#: core/models.py:796 msgid "Email domain this application can act on behalf of." msgstr "E-Mail-Domain, im Namen der diese Anwendung handeln kann." -#: core/models.py:807 +#: core/models.py:808 msgid "Application domain" msgstr "Anwendungsdomain" -#: core/models.py:808 +#: core/models.py:809 msgid "Application domains" msgstr "Anwendungsdomains" diff --git a/src/backend/locale/en_US/LC_MESSAGES/django.po b/src/backend/locale/en_US/LC_MESSAGES/django.po index 4e369881..cbf315e5 100644 --- a/src/backend/locale/en_US/LC_MESSAGES/django.po +++ b/src/backend/locale/en_US/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:07+0000\n" +"POT-Creation-Date: 2025-12-17 15:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -175,61 +175,61 @@ msgstr "sub" #: core/models.py:149 msgid "" -"Required. 255 characters or fewer. Letters, numbers, and @/./+/-/_ " -"characters only." +"Optional for pending users; required upon account activation. 255 characters " +"or fewer. Letters, numbers, and @/./+/-/_ characters only." msgstr "" "Required. 255 characters or fewer. Letters, numbers, and @/./+/-/_ " "characters only." -#: core/models.py:157 +#: core/models.py:158 msgid "identity email address" msgstr "identity email address" -#: core/models.py:162 +#: core/models.py:163 msgid "admin email address" msgstr "admin email address" -#: core/models.py:164 +#: core/models.py:165 msgid "full name" msgstr "full name" -#: core/models.py:166 +#: core/models.py:167 msgid "short name" msgstr "short name" -#: core/models.py:172 +#: core/models.py:173 msgid "language" msgstr "language" -#: core/models.py:173 +#: core/models.py:174 msgid "The language in which the user wants to see the interface." msgstr "The language in which the user wants to see the interface." -#: core/models.py:179 +#: core/models.py:180 msgid "The timezone in which the user wants to see times." msgstr "The timezone in which the user wants to see times." -#: core/models.py:182 +#: core/models.py:183 msgid "device" msgstr "device" -#: core/models.py:184 +#: core/models.py:185 msgid "Whether the user is a device or a real user." msgstr "Whether the user is a device or a real user." -#: core/models.py:187 +#: core/models.py:188 msgid "staff status" msgstr "staff status" -#: core/models.py:189 +#: core/models.py:190 msgid "Whether the user can log into this admin site." msgstr "Whether the user can log into this admin site." -#: core/models.py:192 +#: core/models.py:193 msgid "active" msgstr "active" -#: core/models.py:195 +#: core/models.py:196 msgid "" "Whether this user should be treated as active. Unselect this instead of " "deleting accounts." @@ -237,63 +237,63 @@ msgstr "" "Whether this user should be treated as active. Unselect this instead of " "deleting accounts." -#: core/models.py:208 +#: core/models.py:209 msgid "user" msgstr "user" -#: core/models.py:209 +#: core/models.py:210 msgid "users" msgstr "users" -#: core/models.py:268 +#: core/models.py:269 msgid "Resource" msgstr "Resource" -#: core/models.py:269 +#: core/models.py:270 msgid "Resources" msgstr "Resources" -#: core/models.py:323 +#: core/models.py:324 msgid "Resource access" msgstr "Resource access" -#: core/models.py:324 +#: core/models.py:325 msgid "Resource accesses" msgstr "Resource accesses" -#: core/models.py:330 +#: core/models.py:331 msgid "Resource access with this User and Resource already exists." msgstr "Resource access with this User and Resource already exists." -#: core/models.py:386 +#: core/models.py:387 msgid "Visio room configuration" msgstr "Visio room configuration" -#: core/models.py:387 +#: core/models.py:388 msgid "Values for Visio parameters to configure the room." msgstr "Values for Visio parameters to configure the room." -#: core/models.py:394 +#: core/models.py:395 msgid "Room PIN code" msgstr "Room PIN code" -#: core/models.py:395 +#: core/models.py:396 msgid "Unique n-digit code that identifies this room in telephony mode." msgstr "Unique n-digit code that identifies this room in telephony mode." -#: core/models.py:401 core/models.py:555 +#: core/models.py:402 core/models.py:556 msgid "Room" msgstr "Room" -#: core/models.py:402 +#: core/models.py:403 msgid "Rooms" msgstr "Rooms" -#: core/models.py:566 +#: core/models.py:567 msgid "Worker ID" msgstr "Worker ID" -#: core/models.py:568 +#: core/models.py:569 msgid "" "Enter an identifier for the worker recording.This ID is retained even when " "the worker stops, allowing for easy tracking." @@ -301,103 +301,103 @@ msgstr "" "Enter an identifier for the worker recording.This ID is retained even when " "the worker stops, allowing for easy tracking." -#: core/models.py:576 +#: core/models.py:577 msgid "Recording mode" msgstr "Recording mode" -#: core/models.py:577 +#: core/models.py:578 msgid "Defines the mode of recording being called." msgstr "Defines the mode of recording being called." -#: core/models.py:583 +#: core/models.py:584 msgid "Recording" msgstr "Recording" -#: core/models.py:584 +#: core/models.py:585 msgid "Recordings" msgstr "Recordings" -#: core/models.py:692 +#: core/models.py:693 msgid "Recording/user relation" msgstr "Recording/user relation" -#: core/models.py:693 +#: core/models.py:694 msgid "Recording/user relations" msgstr "Recording/user relations" -#: core/models.py:699 +#: core/models.py:700 msgid "This user is already in this recording." msgstr "This user is already in this recording." -#: core/models.py:705 +#: core/models.py:706 msgid "This team is already in this recording." msgstr "This team is already in this recording." -#: core/models.py:711 +#: core/models.py:712 msgid "Either user or team must be set, not both." msgstr "Either user or team must be set, not both." -#: core/models.py:728 +#: core/models.py:729 #, fuzzy #| msgid "created on" msgid "Create rooms" msgstr "Create rooms" -#: core/models.py:729 +#: core/models.py:730 msgid "List rooms" msgstr "List rooms" -#: core/models.py:730 +#: core/models.py:731 msgid "Retrieve room details" msgstr "Retrieve room details" -#: core/models.py:731 +#: core/models.py:732 #, fuzzy #| msgid "updated on" msgid "Update rooms" msgstr "Update rooms" -#: core/models.py:732 +#: core/models.py:733 msgid "Delete rooms" msgstr "Delete rooms" -#: core/models.py:745 +#: core/models.py:746 msgid "Application name" msgstr "Application name" -#: core/models.py:746 +#: core/models.py:747 msgid "Descriptive name for this application." msgstr "Descriptive name for this application." -#: core/models.py:756 +#: core/models.py:757 msgid "Hashed on Save. Copy it now if this is a new secret." msgstr "Hashed on Save. Copy it now if this is a new secret." -#: core/models.py:767 +#: core/models.py:768 msgid "Application" msgstr "Application" -#: core/models.py:768 +#: core/models.py:769 msgid "Applications" msgstr "Applications" -#: core/models.py:791 +#: core/models.py:792 msgid "Enter a valid domain" msgstr "Enter a valid domain" -#: core/models.py:794 +#: core/models.py:795 msgid "Domain" msgstr "Domain" -#: core/models.py:795 +#: core/models.py:796 msgid "Email domain this application can act on behalf of." msgstr "Email domain this application can act on behalf of." -#: core/models.py:807 +#: core/models.py:808 msgid "Application domain" msgstr "Application domain" -#: core/models.py:808 +#: core/models.py:809 msgid "Application domains" msgstr "Application domains" diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.po b/src/backend/locale/fr_FR/LC_MESSAGES/django.po index efa8e4dd..6d61f7b3 100644 --- a/src/backend/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/backend/locale/fr_FR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:07+0000\n" +"POT-Creation-Date: 2025-12-17 15:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: antoine.lebaud@mail.numerique.gouv.fr\n" "Language-Team: LANGUAGE \n" @@ -179,61 +179,61 @@ msgstr "sub" #: core/models.py:149 msgid "" -"Required. 255 characters or fewer. Letters, numbers, and @/./+/-/_ " -"characters only." +"Optional for pending users; required upon account activation. 255 characters " +"or fewer. Letters, numbers, and @/./+/-/_ characters only." msgstr "" -"Obligatoire. 255 caractères ou moins. Lettres, chiffres et caractères @/./" -"+/-/_ uniquement." +"Optionnel pour les utilisateurs en attente ; requis lors de l'activation du " +"compte. 255 caractères maximum. Lettres, chiffres et @/./+/-/_ uniquement." -#: core/models.py:157 +#: core/models.py:158 msgid "identity email address" msgstr "adresse e-mail d'identité" -#: core/models.py:162 +#: core/models.py:163 msgid "admin email address" msgstr "adresse e-mail d'administrateur" -#: core/models.py:164 +#: core/models.py:165 msgid "full name" msgstr "nom complet" -#: core/models.py:166 +#: core/models.py:167 msgid "short name" msgstr "nom court" -#: core/models.py:172 +#: core/models.py:173 msgid "language" msgstr "langue" -#: core/models.py:173 +#: core/models.py:174 msgid "The language in which the user wants to see the interface." msgstr "La langue dans laquelle l'utilisateur souhaite voir l'interface." -#: core/models.py:179 +#: core/models.py:180 msgid "The timezone in which the user wants to see times." msgstr "Le fuseau horaire dans lequel l'utilisateur souhaite voir les heures." -#: core/models.py:182 +#: core/models.py:183 msgid "device" msgstr "appareil" -#: core/models.py:184 +#: core/models.py:185 msgid "Whether the user is a device or a real user." msgstr "Si l'utilisateur est un appareil ou un utilisateur réel." -#: core/models.py:187 +#: core/models.py:188 msgid "staff status" msgstr "statut du personnel" -#: core/models.py:189 +#: core/models.py:190 msgid "Whether the user can log into this admin site." msgstr "Si l'utilisateur peut se connecter à ce site d'administration." -#: core/models.py:192 +#: core/models.py:193 msgid "active" msgstr "actif" -#: core/models.py:195 +#: core/models.py:196 msgid "" "Whether this user should be treated as active. Unselect this instead of " "deleting accounts." @@ -241,65 +241,65 @@ msgstr "" "Si cet utilisateur doit être traité comme actif. Désélectionnez cette option " "au lieu de supprimer des comptes." -#: core/models.py:208 +#: core/models.py:209 msgid "user" msgstr "utilisateur" -#: core/models.py:209 +#: core/models.py:210 msgid "users" msgstr "utilisateurs" -#: core/models.py:268 +#: core/models.py:269 msgid "Resource" msgstr "Ressource" -#: core/models.py:269 +#: core/models.py:270 msgid "Resources" msgstr "Ressources" -#: core/models.py:323 +#: core/models.py:324 msgid "Resource access" msgstr "Accès aux ressources" -#: core/models.py:324 +#: core/models.py:325 msgid "Resource accesses" msgstr "Accès aux ressources" -#: core/models.py:330 +#: core/models.py:331 msgid "Resource access with this User and Resource already exists." msgstr "" "L'accès à la ressource avec cet utilisateur et cette ressource existe déjà." -#: core/models.py:386 +#: core/models.py:387 msgid "Visio room configuration" msgstr "Configuration de la salle de visioconférence" -#: core/models.py:387 +#: core/models.py:388 msgid "Values for Visio parameters to configure the room." msgstr "Valeurs des paramètres de visioconférence pour configurer la salle." -#: core/models.py:394 +#: core/models.py:395 msgid "Room PIN code" msgstr "Code PIN de la salle" -#: core/models.py:395 +#: core/models.py:396 msgid "Unique n-digit code that identifies this room in telephony mode." msgstr "" "Code unique à n chiffres qui identifie cette salle en mode téléphonique." -#: core/models.py:401 core/models.py:555 +#: core/models.py:402 core/models.py:556 msgid "Room" msgstr "Salle" -#: core/models.py:402 +#: core/models.py:403 msgid "Rooms" msgstr "Salles" -#: core/models.py:566 +#: core/models.py:567 msgid "Worker ID" msgstr "ID du Worker" -#: core/models.py:568 +#: core/models.py:569 msgid "" "Enter an identifier for the worker recording.This ID is retained even when " "the worker stops, allowing for easy tracking." @@ -307,99 +307,101 @@ msgstr "" "Entrez un identifiant pour l'enregistrement du Worker. Cet identifiant est " "conservé même lorsque le Worker s'arrête, permettant un suivi facile." -#: core/models.py:576 +#: core/models.py:577 msgid "Recording mode" msgstr "Mode d'enregistrement" -#: core/models.py:577 +#: core/models.py:578 msgid "Defines the mode of recording being called." msgstr "Définit le mode d'enregistrement appelé." -#: core/models.py:583 +#: core/models.py:584 msgid "Recording" msgstr "Enregistrement" -#: core/models.py:584 +#: core/models.py:585 msgid "Recordings" msgstr "Enregistrements" -#: core/models.py:692 +#: core/models.py:693 msgid "Recording/user relation" msgstr "Relation enregistrement/utilisateur" -#: core/models.py:693 +#: core/models.py:694 msgid "Recording/user relations" msgstr "Relations enregistrement/utilisateur" -#: core/models.py:699 +#: core/models.py:700 msgid "This user is already in this recording." msgstr "Cet utilisateur est déjà dans cet enregistrement." -#: core/models.py:705 +#: core/models.py:706 msgid "This team is already in this recording." msgstr "Cette équipe est déjà dans cet enregistrement." -#: core/models.py:711 +#: core/models.py:712 msgid "Either user or team must be set, not both." msgstr "Soit l'utilisateur, soit l'équipe doit être défini, pas les deux." -#: core/models.py:728 +#: core/models.py:729 msgid "Create rooms" msgstr "Créer des salles" -#: core/models.py:729 +#: core/models.py:730 msgid "List rooms" msgstr "Lister les salles" -#: core/models.py:730 +#: core/models.py:731 msgid "Retrieve room details" msgstr "Afficher les détails d’une salle" -#: core/models.py:731 +#: core/models.py:732 msgid "Update rooms" msgstr "Mettre à jour les salles" -#: core/models.py:732 +#: core/models.py:733 msgid "Delete rooms" msgstr "Supprimer les salles" -#: core/models.py:745 +#: core/models.py:746 msgid "Application name" msgstr "Nom de l’application" -#: core/models.py:746 +#: core/models.py:747 msgid "Descriptive name for this application." msgstr "Nom descriptif de cette application." -#: core/models.py:756 +#: core/models.py:757 msgid "Hashed on Save. Copy it now if this is a new secret." -msgstr "Haché lors de l’enregistrement. Copiez-le maintenant s’il s’agit d’un nouveau secret." +msgstr "" +"Haché lors de l’enregistrement. Copiez-le maintenant s’il s’agit d’un " +"nouveau secret." -#: core/models.py:767 +#: core/models.py:768 msgid "Application" msgstr "Application" -#: core/models.py:768 +#: core/models.py:769 msgid "Applications" msgstr "Applications" -#: core/models.py:791 +#: core/models.py:792 msgid "Enter a valid domain" msgstr "Saisissez un domaine valide" -#: core/models.py:794 +#: core/models.py:795 msgid "Domain" msgstr "Domaine" -#: core/models.py:795 +#: core/models.py:796 msgid "Email domain this application can act on behalf of." msgstr "Domaine de messagerie au nom duquel cette application peut agir." -#: core/models.py:807 +#: core/models.py:808 msgid "Application domain" msgstr "Domaine d’application" -#: core/models.py:808 +#: core/models.py:809 msgid "Application domains" msgstr "Domaines d’application" diff --git a/src/backend/locale/nl_NL/LC_MESSAGES/django.po b/src/backend/locale/nl_NL/LC_MESSAGES/django.po index 32a5067f..1380de7b 100644 --- a/src/backend/locale/nl_NL/LC_MESSAGES/django.po +++ b/src/backend/locale/nl_NL/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-17 15:07+0000\n" +"POT-Creation-Date: 2025-12-17 15:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -176,60 +176,61 @@ msgstr "sub" #: core/models.py:149 msgid "" -"Required. 255 characters or fewer. Letters, numbers, and @/./+/-/_ " -"characters only." +"Optional for pending users; required upon account activation. 255 characters " +"or fewer. Letters, numbers, and @/./+/-/_ characters only." msgstr "" -"Vereist. 255 tekens of minder. Alleen letters, cijfers en @/./+/-/_ tekens." +"Optioneel voor gebruikers in afwachting; vereist bij accountactivering. " +"Maximum 255 tekens. Alleen letters, cijfers en @/./+/-/_ toegestaan." -#: core/models.py:157 +#: core/models.py:158 msgid "identity email address" msgstr "identiteit e-mailadres" -#: core/models.py:162 +#: core/models.py:163 msgid "admin email address" msgstr "beheerder e-mailadres" -#: core/models.py:164 +#: core/models.py:165 msgid "full name" msgstr "volledige naam" -#: core/models.py:166 +#: core/models.py:167 msgid "short name" msgstr "korte naam" -#: core/models.py:172 +#: core/models.py:173 msgid "language" msgstr "taal" -#: core/models.py:173 +#: core/models.py:174 msgid "The language in which the user wants to see the interface." msgstr "De taal waarin de gebruiker de interface wil zien." -#: core/models.py:179 +#: core/models.py:180 msgid "The timezone in which the user wants to see times." msgstr "De tijdzone waarin de gebruiker tijden wil zien." -#: core/models.py:182 +#: core/models.py:183 msgid "device" msgstr "apparaat" -#: core/models.py:184 +#: core/models.py:185 msgid "Whether the user is a device or a real user." msgstr "Of de gebruiker een apparaat is of een echte gebruiker." -#: core/models.py:187 +#: core/models.py:188 msgid "staff status" msgstr "personeelsstatus" -#: core/models.py:189 +#: core/models.py:190 msgid "Whether the user can log into this admin site." msgstr "Of de gebruiker kan inloggen op deze beheersite." -#: core/models.py:192 +#: core/models.py:193 msgid "active" msgstr "actief" -#: core/models.py:195 +#: core/models.py:196 msgid "" "Whether this user should be treated as active. Unselect this instead of " "deleting accounts." @@ -237,64 +238,64 @@ msgstr "" "Of deze gebruiker als actief moet worden behandeld. Deselecteer dit in " "plaats van accounts te verwijderen." -#: core/models.py:208 +#: core/models.py:209 msgid "user" msgstr "gebruiker" -#: core/models.py:209 +#: core/models.py:210 msgid "users" msgstr "gebruikers" -#: core/models.py:268 +#: core/models.py:269 msgid "Resource" msgstr "Bron" -#: core/models.py:269 +#: core/models.py:270 msgid "Resources" msgstr "Bronnen" -#: core/models.py:323 +#: core/models.py:324 msgid "Resource access" msgstr "Brontoegang" -#: core/models.py:324 +#: core/models.py:325 msgid "Resource accesses" msgstr "Brontoegangsrechten" -#: core/models.py:330 +#: core/models.py:331 msgid "Resource access with this User and Resource already exists." msgstr "Brontoegang met deze gebruiker en bron bestaat al." -#: core/models.py:386 +#: core/models.py:387 msgid "Visio room configuration" msgstr "Visio-ruimteconfiguratie" -#: core/models.py:387 +#: core/models.py:388 msgid "Values for Visio parameters to configure the room." msgstr "Waarden voor Visio-parameters om de ruimte te configureren." -#: core/models.py:394 +#: core/models.py:395 msgid "Room PIN code" msgstr "Pincode van de kamer" -#: core/models.py:395 +#: core/models.py:396 msgid "Unique n-digit code that identifies this room in telephony mode." msgstr "" "Unieke n-cijferige code die deze kamer identificeert in telefonie-modus." -#: core/models.py:401 core/models.py:555 +#: core/models.py:402 core/models.py:556 msgid "Room" msgstr "Ruimte" -#: core/models.py:402 +#: core/models.py:403 msgid "Rooms" msgstr "Ruimtes" -#: core/models.py:566 +#: core/models.py:567 msgid "Worker ID" msgstr "Worker ID" -#: core/models.py:568 +#: core/models.py:569 msgid "" "Enter an identifier for the worker recording.This ID is retained even when " "the worker stops, allowing for easy tracking." @@ -302,99 +303,100 @@ msgstr "" "Voer een identificatie in voor de worker-opname. Deze ID blijft behouden, " "zelfs wanneer de worker stopt, waardoor eenvoudige tracking mogelijk is." -#: core/models.py:576 +#: core/models.py:577 msgid "Recording mode" msgstr "Opnamemodus" -#: core/models.py:577 +#: core/models.py:578 msgid "Defines the mode of recording being called." msgstr "Definieert de modus van opname die wordt aangeroepen." -#: core/models.py:583 +#: core/models.py:584 msgid "Recording" msgstr "Opname" -#: core/models.py:584 +#: core/models.py:585 msgid "Recordings" msgstr "Opnames" -#: core/models.py:692 +#: core/models.py:693 msgid "Recording/user relation" msgstr "Opname/gebruiker-relatie" -#: core/models.py:693 +#: core/models.py:694 msgid "Recording/user relations" msgstr "Opname/gebruiker-relaties" -#: core/models.py:699 +#: core/models.py:700 msgid "This user is already in this recording." msgstr "Deze gebruiker is al in deze opname." -#: core/models.py:705 +#: core/models.py:706 msgid "This team is already in this recording." msgstr "Dit team is al in deze opname." -#: core/models.py:711 +#: core/models.py:712 msgid "Either user or team must be set, not both." msgstr "Ofwel gebruiker of team moet worden ingesteld, niet beide." -#: core/models.py:728 +#: core/models.py:729 msgid "Create rooms" msgstr "Ruimtes aanmaken" -#: core/models.py:729 +#: core/models.py:730 msgid "List rooms" msgstr "Ruimtes weergeven" -#: core/models.py:730 +#: core/models.py:731 msgid "Retrieve room details" msgstr "Details van een ruimte ophalen" -#: core/models.py:731 +#: core/models.py:732 msgid "Update rooms" msgstr "Ruimtes bijwerken" -#: core/models.py:732 +#: core/models.py:733 msgid "Delete rooms" msgstr "Ruimtes verwijderen" -#: core/models.py:745 +#: core/models.py:746 msgid "Application name" msgstr "Naam van de applicatie" -#: core/models.py:746 +#: core/models.py:747 msgid "Descriptive name for this application." msgstr "Beschrijvende naam voor deze applicatie." -#: core/models.py:756 +#: core/models.py:757 msgid "Hashed on Save. Copy it now if this is a new secret." -msgstr "Wordt gehasht bij het opslaan. Kopieer het nu als dit een nieuw geheim is." +msgstr "" +"Wordt gehasht bij het opslaan. Kopieer het nu als dit een nieuw geheim is." -#: core/models.py:767 +#: core/models.py:768 msgid "Application" msgstr "Applicatie" -#: core/models.py:768 +#: core/models.py:769 msgid "Applications" msgstr "Applicaties" -#: core/models.py:791 +#: core/models.py:792 msgid "Enter a valid domain" msgstr "Voer een geldig domein in" -#: core/models.py:794 +#: core/models.py:795 msgid "Domain" msgstr "Domein" -#: core/models.py:795 +#: core/models.py:796 msgid "Email domain this application can act on behalf of." msgstr "E-maildomein namens welke deze applicatie kan handelen." -#: core/models.py:807 +#: core/models.py:808 msgid "Application domain" msgstr "Applicatiedomein" -#: core/models.py:808 +#: core/models.py:809 msgid "Application domains" msgstr "Applicatiedomeinen"