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:
@@ -47,6 +47,75 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
// ── Administration: accounts ───────────────────────────────────
|
||||
"Change your own password in {settings}.": "Cambie su propia contraseña en {settings}.",
|
||||
"Administration": "Administración",
|
||||
"Directory": "Directorio",
|
||||
"User": "Usuario",
|
||||
"Administrator": "Administrador",
|
||||
"Custom role": "Rol personalizado",
|
||||
"New account": "Nueva cuenta",
|
||||
"The people who sign in to mail on the domains you manage.": "Las personas que inician sesión en el correo en los dominios que usted administra.",
|
||||
"Search by name or address": "Buscar por nombre o dirección",
|
||||
"Search accounts": "Buscar cuentas",
|
||||
"No accounts match": "Ninguna cuenta coincide",
|
||||
"No accounts yet": "Todavía no hay cuentas",
|
||||
"Nothing on your domains matches “{query}”.": "Nada en sus dominios coincide con «{query}».",
|
||||
"Open {address}": "Abrir {address}",
|
||||
"{from}–{to} of {total}": "{from}–{to} de {total}",
|
||||
"Previous page": "Página anterior",
|
||||
"Next page": "Página siguiente",
|
||||
"Storage": "Almacenamiento",
|
||||
"Groups": "Grupos",
|
||||
"{used} · no limit": "{used} · sin límite",
|
||||
"Profile": "Perfil",
|
||||
"Domain": "Dominio",
|
||||
"No domains are available to create an account on.": "No hay ningún dominio disponible en el que crear una cuenta.",
|
||||
"Sign-in": "Inicio de sesión",
|
||||
"Other addresses": "Otras direcciones",
|
||||
"Not in any group": "No pertenece a ningún grupo",
|
||||
"You can't change your own role.": "No puede cambiar su propio rol.",
|
||||
"Only roles whose permissions you hold yourself are offered. On an account inside a tenant, Administrator means administrator of that tenant.": "Solo se ofrecen los roles cuyos permisos usted tiene. En una cuenta dentro de un inquilino, Administrador significa administrador de ese inquilino.",
|
||||
"Limit in GB": "Límite en GB",
|
||||
"No limit": "Sin límite",
|
||||
"This account has permissions yours doesn't, so you can view it but not change it.": "Esta cuenta tiene permisos que la suya no tiene, así que puede verla pero no modificarla.",
|
||||
"Your role lets you view accounts but not change them.": "Su rol le permite ver las cuentas, pero no modificarlas.",
|
||||
"This account has permissions yours doesn't.": "Esta cuenta tiene permisos que la suya no tiene.",
|
||||
"You can't delete the account you're signed in with.": "No puede eliminar la cuenta con la que ha iniciado sesión.",
|
||||
"Create account": "Crear cuenta",
|
||||
"An account needs an address.": "Una cuenta necesita una dirección.",
|
||||
"Created {address}": "{address} creada",
|
||||
"Saved {address}": "{address} guardada",
|
||||
"Generate a password": "Generar una contraseña",
|
||||
"Pass it on some way other than email to this address.": "Comuníquela por otro medio que no sea un correo a esta dirección.",
|
||||
"This account has no password. It may sign in through a directory or single sign-on.": "Esta cuenta no tiene contraseña. Puede que inicie sesión mediante un directorio o un inicio de sesión único.",
|
||||
"Set a new password…": "Establecer una contraseña nueva…",
|
||||
"{name} will be signed out of every app and device using the old password.": "Se cerrará la sesión de {name} en todas las aplicaciones y dispositivos que usen la contraseña anterior.",
|
||||
"New password set for {address}": "Nueva contraseña establecida para {address}",
|
||||
"Set password": "Establecer contraseña",
|
||||
"Remove {address}": "Quitar {address}",
|
||||
"New address": "Nueva dirección",
|
||||
"another name": "otro nombre",
|
||||
"Mail to these addresses is delivered to this account. Changes apply when you save.": "El correo enviado a estas direcciones se entrega a esta cuenta. Los cambios se aplican al guardar.",
|
||||
"Deletes the mailbox and everything in it.": "Elimina el buzón y todo su contenido.",
|
||||
"Delete account…": "Eliminar cuenta…",
|
||||
"Delete {address}?": "¿Eliminar {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.": "Esto elimina el correo, los calendarios, los contactos y los archivos de esta cuenta. El servidor los borra en segundo plano y no se puede deshacer.",
|
||||
"Type {address} to confirm": "Escriba {address} para confirmar",
|
||||
"Delete account": "Eliminar cuenta",
|
||||
"Deleted {address}": "{address} eliminada",
|
||||
"The server did not say whether the account was created.": "El servidor no indicó si la cuenta se creó.",
|
||||
"The mail server refused this. Your role may not allow it.": "El servidor de correo lo ha rechazado. Es posible que su rol no lo permita.",
|
||||
"The mail server refused this: {reason}": "El servidor de correo lo ha rechazado: {reason}",
|
||||
"That address is already in use on this server, as an account, a list or an alias.": "Esa dirección ya está en uso en este servidor, como cuenta, lista o alias.",
|
||||
"One of the chosen domain, role or group can't be used for this account.": "El dominio, el rol o el grupo elegido no se puede usar para esta cuenta.",
|
||||
"Your organisation has reached the number of accounts it is allowed.": "Su organización ha alcanzado el número de cuentas permitido.",
|
||||
"Something still depends on this, so the server kept it.": "Algo todavía depende de esto, así que el servidor lo ha conservado.",
|
||||
"This account no longer exists. Someone may have deleted it.": "Esta cuenta ya no existe. Puede que alguien la haya eliminado.",
|
||||
"The password was not accepted: {reason}": "La contraseña no se ha aceptado: {reason}",
|
||||
"The password was not accepted.": "La contraseña no se ha aceptado.",
|
||||
"The mail server rejected a value: {reason}": "El servidor de correo ha rechazado un valor: {reason}",
|
||||
"The mail server rejected a value.": "El servidor de correo ha rechazado un valor.",
|
||||
"Go to folder…": "Ir a la carpeta…",
|
||||
"Set for everyone here. You cannot change this.": "Definido para todos aquí. No puedes cambiarlo.",
|
||||
"Export iCAL file": "Exportar archivo iCAL",
|
||||
@@ -1348,6 +1417,8 @@ export const catalog: Catalog = {
|
||||
"no address": "ninguna dirección",
|
||||
},
|
||||
plurals: {
|
||||
// ── Administration ────────────────────────────────────────────────
|
||||
"{n} accounts": { one: "{n} cuenta", other: "{n} cuentas" },
|
||||
// ── Third pass ─────────────────────────────────────────────────────
|
||||
"Delete {n} items": { one: "Eliminar {n} elemento", other: "Eliminar {n} elementos" },
|
||||
"Delete {n} items?": { one: "¿Eliminar {n} elemento?", other: "¿Eliminar {n} elementos?" },
|
||||
|
||||
Reference in New Issue
Block a user