Add Administration, starting with accounts
An account whose Stalwart role manages accounts now finds Administration in the account menu. It lists, searches, creates and edits accounts -- display name, other addresses, role, storage limit -- sets a new password, and deletes, each offered only when the role holds the matching permission. The server keeps the permissions list from GET /api/account, which it already called for the edition and threw the rest away. Everything else is JMAP x:Account, x:Domain and x:Role calls through the existing /api/jmap proxy, so nothing new is stored and Stalwart decides every call. Stalwart checks a grant against the caller's permissions but not a password change or a delete, so an account that outranks the viewer is shown read-only. Your own password is changed in Settings, which re-seals the session; changing it here would strand it. The mock server gains a directory behind the same permission names, with MOCK_ROLE choosing admin, tenant-admin, helpdesk or user. 68 new strings, translated in all nine catalogues; strings falling back to English stay at 16.
This commit is contained in:
@@ -52,6 +52,75 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
// ── Administration: accounts ───────────────────────────────────
|
||||
"Change your own password in {settings}.": "Modifiez votre propre mot de passe dans {settings}.",
|
||||
"Administration": "Administration",
|
||||
"Directory": "Annuaire",
|
||||
"User": "Utilisateur",
|
||||
"Administrator": "Administrateur",
|
||||
"Custom role": "Rôle personnalisé",
|
||||
"New account": "Nouveau compte",
|
||||
"The people who sign in to mail on the domains you manage.": "Les personnes qui se connectent à leur messagerie sur les domaines que vous gérez.",
|
||||
"Search by name or address": "Rechercher par nom ou adresse",
|
||||
"Search accounts": "Rechercher des comptes",
|
||||
"No accounts match": "Aucun compte correspondant",
|
||||
"No accounts yet": "Aucun compte pour l’instant",
|
||||
"Nothing on your domains matches “{query}”.": "Rien ne correspond à « {query} » sur vos domaines.",
|
||||
"Open {address}": "Ouvrir {address}",
|
||||
"{from}–{to} of {total}": "{from}–{to} sur {total}",
|
||||
"Previous page": "Page précédente",
|
||||
"Next page": "Page suivante",
|
||||
"Storage": "Stockage",
|
||||
"Groups": "Groupes",
|
||||
"{used} · no limit": "{used} · sans limite",
|
||||
"Profile": "Profil",
|
||||
"Domain": "Domaine",
|
||||
"No domains are available to create an account on.": "Aucun domaine n’est disponible pour créer un compte.",
|
||||
"Sign-in": "Connexion",
|
||||
"Other addresses": "Autres adresses",
|
||||
"Not in any group": "Membre d’aucun groupe",
|
||||
"You can't change your own role.": "Vous ne pouvez pas modifier votre propre rôle.",
|
||||
"Only roles whose permissions you hold yourself are offered. On an account inside a tenant, Administrator means administrator of that tenant.": "Seuls les rôles dont vous détenez vous-même les autorisations sont proposés. Pour un compte au sein d’un locataire, Administrateur signifie administrateur de ce locataire.",
|
||||
"Limit in GB": "Limite en Go",
|
||||
"No limit": "Sans limite",
|
||||
"This account has permissions yours doesn't, so you can view it but not change it.": "Ce compte a des autorisations que le vôtre n’a pas : vous pouvez le consulter, mais pas le modifier.",
|
||||
"Your role lets you view accounts but not change them.": "Votre rôle vous permet de consulter les comptes, mais pas de les modifier.",
|
||||
"This account has permissions yours doesn't.": "Ce compte a des autorisations que le vôtre n’a pas.",
|
||||
"You can't delete the account you're signed in with.": "Vous ne pouvez pas supprimer le compte avec lequel vous êtes connecté.",
|
||||
"Create account": "Créer le compte",
|
||||
"An account needs an address.": "Un compte doit avoir une adresse.",
|
||||
"Created {address}": "{address} créé",
|
||||
"Saved {address}": "{address} enregistré",
|
||||
"Generate a password": "Générer un mot de passe",
|
||||
"Pass it on some way other than email to this address.": "Transmettez-le autrement que par e-mail à cette adresse.",
|
||||
"This account has no password. It may sign in through a directory or single sign-on.": "Ce compte n’a pas de mot de passe. Il se connecte peut-être via un annuaire ou une authentification unique.",
|
||||
"Set a new password…": "Définir un nouveau mot de passe…",
|
||||
"{name} will be signed out of every app and device using the old password.": "{name} sera déconnecté de toutes les applications et de tous les appareils qui utilisent l’ancien mot de passe.",
|
||||
"New password set for {address}": "Nouveau mot de passe défini pour {address}",
|
||||
"Set password": "Définir le mot de passe",
|
||||
"Remove {address}": "Retirer {address}",
|
||||
"New address": "Nouvelle adresse",
|
||||
"another name": "autre nom",
|
||||
"Mail to these addresses is delivered to this account. Changes apply when you save.": "Les messages envoyés à ces adresses sont remis à ce compte. Les modifications s’appliquent à l’enregistrement.",
|
||||
"Deletes the mailbox and everything in it.": "Supprime la boîte aux lettres et tout son contenu.",
|
||||
"Delete account…": "Supprimer le compte…",
|
||||
"Delete {address}?": "Supprimer {address} ?",
|
||||
"This deletes the mail, calendars, contacts and files in this account. The server removes them in the background, and it can't be undone.": "Cette action supprime les messages, agendas, contacts et fichiers de ce compte. Le serveur les efface en arrière-plan, et c’est irréversible.",
|
||||
"Type {address} to confirm": "Saisissez {address} pour confirmer",
|
||||
"Delete account": "Supprimer le compte",
|
||||
"Deleted {address}": "{address} supprimé",
|
||||
"The server did not say whether the account was created.": "Le serveur n’a pas indiqué si le compte a été créé.",
|
||||
"The mail server refused this. Your role may not allow it.": "Le serveur de messagerie a refusé. Votre rôle ne le permet peut-être pas.",
|
||||
"The mail server refused this: {reason}": "Le serveur de messagerie a refusé : {reason}",
|
||||
"That address is already in use on this server, as an account, a list or an alias.": "Cette adresse est déjà utilisée sur ce serveur, par un compte, une liste ou un alias.",
|
||||
"One of the chosen domain, role or group can't be used for this account.": "Le domaine, le rôle ou le groupe choisi ne peut pas être utilisé pour ce compte.",
|
||||
"Your organisation has reached the number of accounts it is allowed.": "Votre organisation a atteint le nombre de comptes autorisé.",
|
||||
"Something still depends on this, so the server kept it.": "Un autre élément en dépend encore, le serveur l’a donc conservé.",
|
||||
"This account no longer exists. Someone may have deleted it.": "Ce compte n’existe plus. Quelqu’un l’a peut-être supprimé.",
|
||||
"The password was not accepted: {reason}": "Le mot de passe a été refusé : {reason}",
|
||||
"The password was not accepted.": "Le mot de passe a été refusé.",
|
||||
"The mail server rejected a value: {reason}": "Le serveur de messagerie a refusé une valeur : {reason}",
|
||||
"The mail server rejected a value.": "Le serveur de messagerie a refusé une valeur.",
|
||||
"Go to folder…": "Aller au dossier…",
|
||||
"Set for everyone here. You cannot change this.": "Défini pour tout le monde ici. Vous ne pouvez pas le modifier.",
|
||||
"Export iCAL file": "Exporter un fichier iCAL",
|
||||
@@ -1353,6 +1422,8 @@ export const catalog: Catalog = {
|
||||
"no address": "aucune adresse",
|
||||
},
|
||||
plurals: {
|
||||
// ── Administration ────────────────────────────────────────────────
|
||||
"{n} accounts": { one: "{n} compte", other: "{n} comptes" },
|
||||
// ── Third pass ─────────────────────────────────────────────────────
|
||||
"Delete {n} items": { one: "Supprimer {n} élément", other: "Supprimer {n} éléments" },
|
||||
"Delete {n} items?": { one: "Supprimer {n} élément ?", other: "Supprimer {n} éléments ?" },
|
||||
|
||||
Reference in New Issue
Block a user