Merge pull request #363 from Coffey-Labs/feat/admin-roles

Add Roles to Administration, with Stalwart's permissions in every language
This commit is contained in:
jcoffey
2026-09-15 09:50:55 -07:00
committed by GitHub
42 changed files with 11050 additions and 13 deletions
+32 -2
View File
@@ -1230,6 +1230,36 @@ server or anywhere else. For a role with `sysMailingListQuery` and
That is all a list is in Stalwart: there are no owners, moderators or posting
rules to set.
## Roles
A role is a named set of permissions that accounts, groups and tenants are
given. For a role with `sysRoleQuery` and `sysRoleGet`, under Access:
- **List and search** every role, with the number of permissions each grants
once the roles it builds on are followed, what it builds on, and a note on the
ones Stalwart hands out by default.
- **Builds on** other roles, and gets everything they grant. A role cannot build
on itself or on one already built on it.
- **Permissions** come from Stalwart's own list — every permission the server
knows, grouped under its headings, searchable, and filterable to the ones
granted or set on this role. Each is not set, allowed or denied; one it
inherits says which role it comes from. A denial wins over anything allowed,
here or on any role underneath, as it does in Stalwart. Only permissions the
viewer holds can be allowed: Stalwart refuses the rest.
- **Saving** sends only the permissions and roles that changed.
- **A role that carries permissions the viewer lacks opens read-only**, with no
delete — Stalwart checks a grant but not a delete, so this stands in for it.
- **A default role** — one Stalwart gives new users, groups, tenant
administrators or administrators — says so before anything is changed, and
cannot be deleted from here. A role still in use is kept by the server, and
the refusal names what uses it.
The list of permissions is Stalwart's schema (`GET /api/schema`), fetched by
ihasmail's server as the signed-in account and cut down to names and labels.
Its labels are English only, so ihasmail ships its own translation of every one
of them, loaded only when the Roles screen opens; a permission added by a later
Stalwart shows the server's English until it is translated.
## Domains
For a role that can read domains (`sysDomainQuery`, `sysDomainGet`):
@@ -1288,8 +1318,8 @@ session information already kept for thirty minutes — so a role granted or
taken away shows in the menu at the next sign-in or within half an hour, and in
the meantime Stalwart refuses what is no longer allowed.
The dashboard, accounts, groups, mailing lists and domains are the sections so
far. Roles and tenants are Stalwart capabilities the same screen is
The dashboard, accounts, groups, mailing lists, roles and domains are the
sections so far. Tenants are Stalwart capabilities the same screen is
laid out to take. Beyond the dashboard's counts, managing queues, logs and
server settings is deliberately out of scope.
+13
View File
@@ -75,6 +75,19 @@ works the same way — and dropped where 0.15 was the whole subject. Support for
Still from source only: that membership gives a member no permissions (`access_token.rs` builds a user's permissions from their own roles), and that groups cannot nest.
- **Roles were built from the 0.16.22 source, its schema and the mock, then confirmed on the live server (2026-09-15)** with throwaway `ihasmail-role-test` roles, created and removed:
- **A role is created** with `description`, `roleIds`, `enabledPermissions` and `disabledPermissions` as sets, and reads back with them and `memberTenantId`.
- **Pointers change one entry each**: `enabledPermissions/<p>` and `disabledPermissions/<p>` with `true` or `null`, `roleIds/<id>` likewise, and `description` in the same update, all applied together.
- **A name that is not a permission fails the whole update** as `invalidPatch`, *"Invalid value for object property"*, naming the pointer — which is how a probe using the mock's made-up `jmapEmailSet` found that the mock had carried a permission Stalwart does not have since Accounts was built; it is `jmapEmailUpdate` now, and the mock refuses unknown names.
- **A grant the caller does not hold is refused**: `forbidden`, *"You are not authorized to grant permissions: scimAccess"*.
- **A role another role builds on cannot be deleted**: `objectIsLinked`, `objectId` `{"object": "Role", …}`, `linkedObjects` naming the child.
- **The defaults** read from `x:Authentication`: users get User; groups get Group; tenant administrators get Tenant Administrator and User; administrators get System Administrator and User.
**The picker is stricter than the server for a few permissions.** `GET /api/account` never lists some permissions an administrator holds — `sysLogCreate` among them, which was granted without complaint — so their *Allow* is locked for everyone. That errs towards refusing and can be revisited if it gets in anyone's way. Still from source only: that a denial anywhere in a role's tree wins (`permissions.rs` unions enabled and disabled across the tree, then subtracts). **`GET /api/schema` has not been fetched through ihasmail's server on production** — the route sends the session's Basic credential, which reaches every other endpoint, and the source serves the schema to any signed-in account; until it is seen working there the picker's fallback is a notice that the list could not be loaded.
- **The permission labels in eight languages are machine translations awaiting native review.** 661 labels and 59 headings per language, written against each catalogue's existing terms. The translators flagged the terms they were least sure of, which are the place to start: *principal* (JMAP/DAV), *throttles*, *listeners*, *lookups*, *milters*, *masked emails*, *samples* (spam training), *schedules* (MTA delivery), *email submission*, and the MTA stage settings. Several of Stalwart's own English labels are identical for different permissions (ARF, DMARC and TLS reports are all "Get reports"), and the translations inherit that; the heading above tells them apart.
- **A refused password shows the server's reason in English.** Every other refusal from the registry is said in the reader's language: each error type has its own message, and a value one of Stalwart's validators refused — a domain name, an address, an empty field — is recognised by the validator's wording and explained again rather than shown. A password policy is the exception, on purpose. Its rule is the server's to set, so there is nothing to translate it from in advance, and its reason follows a translated sentence rather than being dropped, which would leave "not accepted" with no way to find out why.
- **Administration is off for a device not marked as your own, and for an installation that says so.** Both are enforced by the server rather than hidden by the menu: such a session is sent no permissions, and the JMAP proxy refuses registry methods beyond the account's own. That is worth stating because the proxy otherwise forwards whatever the browser sends, and before these gates an administrator's console could make any registry call their role allowed. For a session that may not administer, the proxy reads a request body only when it could name a registry method — a `"x:` in the text, or a `\u` escape that could spell one — so ordinary mail traffic is forwarded untouched.
+1 -1
View File
@@ -83,7 +83,7 @@ More, including the mobile layout, on [ihasmail.org](https://ihasmail.org/#scree
- **Nine new interface languages** — German, Spanish, French, Dutch, Portuguese (Brazil), Russian, Ukrainian, Simplified Chinese and Japanese, alongside English and separate from the date-and-time locale. Every one is marked **Beta**: they were made by AI and no native speaker has read them yet, which Settings says plainly, with a link for reporting anything wrong
- **Twelve themes** — Classic and ihasmail's own, plus Catppuccin, Dracula, Gruvbox, Rosé Pine, Tokyo Night, Solarized, Ayu, Kanagawa, Everforest and Primer, each with the light and dark half its own project publishes. Palette and light-or-dark are separate choices, and the accent colour still sits on top of any of them. Only published colour values are used, taken from each project's own repository; the shades between them are derived and every text colour is measured against the surface it sits on, so a palette that would not meet the contrast this app claims is not written at all — see [Themes](FEATURES.md#themes)
- **On a phone** — swipe a message to archive or delete it (either direction, your choice), hold one to select it, hold a folder for its menu, pull the list to refresh, swipe back from a conversation
- **Administration** — for an account whose Stalwart role manages accounts or domains, from the account menu: a dashboard of users, domains, queued mail, memory and the last day's received and sent, scoped to a tenant administrator's own tenancy; create, edit and delete accounts and set their passwords; create groups and add or remove their members; create mailing lists and paste in their recipients; add domains, copy their DNS records one at a time or as a zone file, see their DKIM keys, and remove them once nothing uses them. Each control is there only when the role allows it, and Stalwart decides every call. Only for a session signed in with *This is my own device* ticked, and `ADMINISTRATION=0` turns it off for everyone — see [Administration](FEATURES.md#administration)
- **Administration** — for an account whose Stalwart role manages accounts or domains, from the account menu: a dashboard of users, domains, queued mail, memory and the last day's received and sent, scoped to a tenant administrator's own tenancy; create, edit and delete accounts and set their passwords; create groups and add or remove their members; create mailing lists and paste in their recipients; build roles from Stalwart's permissions, in every language ihasmail speaks; add domains, copy their DNS records one at a time or as a zone file, see their DKIM keys, and remove them once nothing uses them. Each control is there only when the role allows it, and Stalwart decides every call. Only for a session signed in with *This is my own device* ticked, and `ADMINISTRATION=0` turns it off for everyone — see [Administration](FEATURES.md#administration)
- **Platform** — installable PWA, Web Push with ihasmail closed, `mailto:` handler, no credentials in the browser, strict CSP, SSRF-safe image proxy
The long version is on [ihasmail.org](https://ihasmail.org/#features); how to
+1 -1
View File
@@ -8,7 +8,7 @@ the rest is here because the answer is "no", not "not yet".
See [KNOWN-ISSUES.md](KNOWN-ISSUES.md) for what is built but worth knowing about.
- **Administration beyond accounts, groups, mailing lists and domains.** The Administration menu opens on a dashboard and manages accounts, groups, mailing lists and domains today — see [FEATURES.md](FEATURES.md#administration). Roles, DNS and ACME providers and tenants are Stalwart registry objects behind the same permission model, and each is a section to add rather than a design to invent; so is switching a domain's DNS, DKIM or certificate management, which is shown but not yet changed from ihasmail. The dashboard reads a handful of numbers and stops there. Managing queues, reading logs and changing server settings are not planned: they are operating the server, which is Stalwart's own interface's job, not managing the people on it.
- **Administration beyond accounts, groups, mailing lists, roles and domains.** The Administration menu opens on a dashboard and manages accounts, groups, mailing lists, roles and domains today — see [FEATURES.md](FEATURES.md#administration). DNS and ACME providers and tenants are Stalwart registry objects behind the same permission model, and each is a section to add rather than a design to invent; so is switching a domain's DNS, DKIM or certificate management, which is shown but not yet changed from ihasmail. The dashboard reads a handful of numbers and stops there. Managing queues, reading logs and changing server settings are not planned: they are operating the server, which is Stalwart's own interface's job, not managing the people on it.
- **Sharing a mail folder.** Stalwart stores the share and never delivers it; see [KNOWN-ISSUES.md](KNOWN-ISSUES.md). Withdrawn until the server does something with it. Sharing files, calendars and address books is unaffected and works.
- **A scheduling view of its own**, for asking "when is everyone free next week?" without an event in hand. The grid itself is built and lives in the event editor — a row per participant, steppable, and clickable to place the event — which is where the question gets asked while you are arranging something. What is not built is the same thing as a destination you can visit with nothing in progress. Came out of [#172](https://github.com/Coffey-Labs/ihasmail/issues/172), which asked for a separate view and is closed by the panel: the reasoning for putting it in the editor is that a separate surface can only ever tell you a time you then retype, whereas one beside the event can set it. It stays here rather than in the tracker because nobody has yet said they want to ask the question on its own.
- **Per-message actions from the message list on a touchscreen.** Reply, Forward and compose-as-new are on the list row's context menu, which is a right-click — and holding a row on a phone starts selection instead, so none of them are reachable there. They are all available inside a thread, which is where the actions on a single message belong; what is missing is the shortcut from the list. Fixing it means deciding what a long press should do when it already means something, which is a bigger question than the actions themselves.
+25
View File
@@ -8,6 +8,7 @@ import { RESPONSE_ALREADY_SENT } from "@hono/node-server/utils/response";
import { attach as pushAttach, attachRelay as pushAttachRelay, prepare as pushPrepare, receive as pushReceive, pushStatus } from "./push.js";
import { getConnInfo } from "@hono/node-server/conninfo";
import { config } from "./config.js";
import { fetchPermissions } from "./permissionSchema.js";
import { administrationAllowed, gateAdministration, grantsAdministration } from "./adminGate.js";
import { SessionStore, type SessionBackend, type LiveSession } from "./sessions.js";
import { RateLimiter } from "./ratelimit.js";
@@ -688,6 +689,30 @@ export function createApp(basePath = config.basePath): Hono<Env> {
}
});
// ---------- Administration: Stalwart's permission list ----------
/*
* The one administration read that is not a JMAP call: the labelled list of
* permissions from Stalwart's schema, for the Roles picker. Behind the same
* two gates as the registry methods, so a session that may not administer
* learns nothing from it.
*/
api.get("/admin/permissions", requireSession, apiRateLimited, async (c) => {
const session = c.get("session");
if (!administrationAllowed(config.administration, session.remember)) {
return config.administration
? c.json({ error: "administration_needs_own_device" }, 403)
: c.json({ error: "administration_disabled" }, 403);
}
try {
const upstream = await getUpstreamSession(session.id, session.authorization, upstreamFor(session.username));
const permissions = await fetchPermissions(session.authorization, upstream.baseUrl);
if (!permissions) return c.json({ error: "upstream_error" }, 502);
return c.json({ permissions });
} catch (err) {
return upstreamFailure(c, err);
}
});
// ---------- Blob upload ----------
api.post("/upload/:accountId", requireSession, async (c) => {
const session = c.get("session");
+37
View File
@@ -218,3 +218,40 @@ test("a list's address cannot be one an account already has, and a role without
assert.equal(clash.notCreated?.n?.type, "primaryKeyViolation");
assert.throws(() => make("helpdesk").handlers["x:MailingList/query"]!({}), (e: Refused) => e.type === "forbidden");
});
/** Roles: Stalwart's grant check, loops, and a role still in use. */
test("a role is refused a permission the caller does not hold, directly or through a base", () => {
const helpdesk = make("helpdesk");
// Helpdesk cannot create roles at all.
assert.throws(() => helpdesk.handlers["x:Role/set"]!({ create: { n: { description: "x" } } }), (e: Refused) => e.type === "forbidden");
const tenant = make("tenant-admin");
const direct = tenant.handlers["x:Role/set"]!({ create: { n: { description: "Too much", enabledPermissions: { sysTenantCreate: true } } } }) as { notCreated?: Record<string, { type: string; description: string }> };
assert.equal(direct.notCreated?.n?.type, "forbidden");
assert.match(direct.notCreated!.n!.description, /not authorized to grant/);
const fine = tenant.handlers["x:Role/set"]!({ create: { n: { description: "Accounts only", enabledPermissions: { sysAccountGet: true }, roleIds: { r1: true } } } }) as { created: Record<string, { id: string }> };
assert.ok(fine.created.n!.id);
});
test("a role cannot build on itself through another, and one in use is kept", () => {
const dir = make("admin");
const loop = dir.handlers["x:Role/set"]!({ update: { r1: { "roleIds/r3": true } } }) as { notUpdated?: Record<string, { type: string }> };
assert.equal(loop.notUpdated?.r1?.type, "invalidPatch");
const inUse = dir.handlers["x:Role/set"]!({ destroy: ["r1"] }) as { notDestroyed?: Record<string, { type: string; linkedObjects: Array<{ object: string }> }> };
assert.equal(inUse.notDestroyed?.r1?.type, "objectIsLinked");
assert.deepEqual([...new Set(inUse.notDestroyed!.r1!.linkedObjects.map((l) => l.object))].sort(), ["Authentication", "Role"]);
const free = dir.handlers["x:Role/set"]!({ destroy: ["r4"] }) as { destroyed: string[] };
assert.deepEqual(free.destroyed, ["r4"]);
});
test("the default roles are read from the authentication settings", () => {
const { list } = make("admin").handlers["x:Authentication/get"]!({ ids: ["singleton"] }) as { list: Array<{ defaultUserRoleIds: Record<string, boolean> }> };
assert.deepEqual(list[0]!.defaultUserRoleIds, { r1: true });
assert.throws(() => make("tenant-admin").handlers["x:Authentication/get"]!({}), (e: Refused) => e.type === "forbidden");
});
test("a permission name Stalwart does not know fails the whole change", () => {
const dir = make("admin");
const r = dir.handlers["x:Role/set"]!({ update: { r4: { "enabledPermissions/notARealPermission": true, description: "Renamed" } } }) as { notUpdated?: Record<string, { type: string; properties: string[] }> };
assert.equal(r.notUpdated?.r4?.type, "invalidPatch");
assert.deepEqual(r.notUpdated!.r4!.properties, ["enabledPermissions/notARealPermission"]);
});
+84 -3
View File
@@ -27,8 +27,15 @@
* delete them) or `user`.
*/
import { readFileSync } from "node:fs";
type Obj = Record<string, unknown>;
/** Every permission Stalwart 0.16.22 knows, from the snapshot the translations are checked against. */
const KNOWN_PERMISSIONS = new Set(
(JSON.parse(readFileSync(new URL("../../../web/src/locales/permissions/source.json", import.meta.url), "utf8")) as { permissions: Array<{ name: string }> }).permissions.map((p) => p.name),
);
export type MockRole = "admin" | "tenant-admin" | "helpdesk" | "user";
const OPS = ["Get", "Query", "Create", "Update", "Destroy"] as const;
@@ -38,12 +45,12 @@ const all = (...objects: string[]) => objects.flatMap((o) => OPS.map((op) => `sy
const READ_SERVER = ["sysQueuedMessageGet", "sysQueuedMessageQuery", "sysMetricGet", "sysMetricQuery"];
/** A few of the ordinary ones, so the list looks like what a server sends. */
const USER_PERMISSIONS = ["jmapEmailGet", "jmapEmailSet", "jmapMailboxGet", "sysAccountSettingsGet"];
const USER_PERMISSIONS = ["jmapEmailGet", "jmapEmailUpdate", "jmapMailboxGet", "sysAccountSettingsGet"];
export function permissionsFor(role: MockRole): string[] {
switch (role) {
case "admin":
return [...USER_PERMISSIONS, ...all("Account", "Domain", "Role", "MailingList", "DkimSignature", "DnsServer", "Tenant"), ...READ_SERVER, "impersonate"];
return [...USER_PERMISSIONS, ...all("Account", "Domain", "Role", "MailingList", "DkimSignature", "DnsServer", "Tenant"), ...READ_SERVER, "sysAuthenticationGet", "impersonate"];
case "tenant-admin":
// The queue but not the metric history: Stalwart scopes the one to a
// tenant's domains, and the other has no tenant to scope it by.
@@ -133,10 +140,13 @@ export function createDirectory(opts: Options) {
};
const roles: Obj[] = [
{ id: "r1", description: "User", enabledPermissions: flags(USER_PERMISSIONS), disabledPermissions: {}, roleIds: {} },
{ id: "r1", description: "User", enabledPermissions: flags(USER_PERMISSIONS), disabledPermissions: {}, roleIds: {}, memberTenantId: null },
{ id: "r2", description: "Helpdesk", enabledPermissions: flags(permissionsFor("helpdesk").filter((p) => p.startsWith("sys"))), disabledPermissions: {}, roleIds: { r1: true } },
{ id: "r3", description: "Directory manager", enabledPermissions: flags(all("Account")), disabledPermissions: {}, roleIds: { r1: true } },
{ id: "r4", description: "Read-only auditor", enabledPermissions: flags(["sysAccountGet", "sysAccountQuery", "sysDomainGet", "sysDomainQuery", "sysLogGet"]), disabledPermissions: flags(["jmapEmailUpdate"]), roleIds: { r1: true } },
];
/** Stalwart's defaults: which roles an account gets when it is given no others. */
const authentication: Record<string, Obj> = { defaultUserRoleIds: { r1: true }, defaultGroupRoleIds: {}, defaultTenantRoleIds: {}, defaultAdminRoleIds: {} };
const ownRoles = opts.role === "admin" || opts.role === "tenant-admin" ? { "@type": "Admin" } : opts.role === "helpdesk" ? { "@type": "Custom", roleIds: { r2: true } } : { "@type": "User" };
@@ -520,6 +530,77 @@ export function createDirectory(opts: Options) {
}
return { accountId: opts.accountId, oldState: "1", newState: "2", created, updated, destroyed, ...(Object.keys(notCreated).length ? { notCreated } : {}), ...(Object.keys(notUpdated).length ? { notUpdated } : {}), ...(Object.keys(notDestroyed).length ? { notDestroyed } : {}) };
},
// Which roles Stalwart hands out by default. Its own settings object; the
// Roles screen reads it to warn before a default role is changed.
"x:Authentication/get": (a) => {
demand("sysAuthenticationGet");
const ids = (a.ids as string[] | null | undefined) ?? ["singleton"];
return { accountId: opts.accountId, state: "1", list: ids.filter((id) => id === "singleton").map((id) => ({ id, ...authentication })), notFound: ids.filter((id) => id !== "singleton") };
},
"x:Role/set": (a) => {
const created: Obj = {};
const notCreated: Obj = {};
const updated: Obj = {};
const notUpdated: Obj = {};
const destroyed: string[] = [];
const notDestroyed: Obj = {};
/** Stalwart refuses a role whose permissions -- its own or inherited -- the caller does not hold. */
const check = (o: Obj, id?: string): Obj | null => {
if (typeof o.description !== "string" || !o.description.trim()) return setError("invalidProperties", "String cannot be empty", ["description"]);
const seen = new Set<string>();
const walk = (rid: string): boolean => {
if (rid === id) return false;
if (seen.has(rid)) return true;
seen.add(rid);
const r = roles_(rid);
return !!r && Object.keys((r.roleIds as Obj) ?? {}).every(walk);
};
if (!Object.keys((o.roleIds as Obj) ?? {}).every(walk)) return setError("invalidProperties", "A role cannot inherit from itself or from a role that does not exist.", ["roleIds"]);
// A name that is not a permission fails the whole change, as the live server does.
for (const set of ["enabledPermissions", "disabledPermissions"]) {
const bad = Object.keys((o[set] as Obj) ?? {}).find((p) => !KNOWN_PERMISSIONS.has(p));
if (bad) return setError("invalidProperties", "Invalid value for object property", [`${set}/${bad}`]);
}
const granted = new Set(Object.keys((o.enabledPermissions as Obj) ?? {}));
for (const rid of seen) for (const p of Object.keys((roles_(rid)!.enabledPermissions as Obj) ?? {})) granted.add(p);
const missing = [...granted].filter((p) => !permissions.has(p));
if (missing.length) return setError("forbidden", `You are not authorized to grant permissions: ${missing.slice(0, 5).join(", ")}.`);
return null;
};
for (const [cid, raw] of Object.entries((a.create as Obj) ?? {})) {
demand("sysRoleCreate");
const o: Obj = { enabledPermissions: {}, disabledPermissions: {}, roleIds: {}, ...(raw as Obj) };
const failure = check(o);
if (failure) { notCreated[cid] = failure; continue; }
const id = `r${counter++}`;
roles.push({ ...o, id, memberTenantId: null });
created[cid] = { id };
}
for (const [id, raw] of Object.entries((a.update as Obj) ?? {})) {
demand("sysRoleUpdate");
const target = roles_(id);
if (!target) { notUpdated[id] = setError("notFound", "Role not found."); continue; }
const next = structuredClone(target);
for (const [path, value] of Object.entries(raw as Obj)) setPointer(next, path, value);
const failure = check(next, id);
if (failure) { notUpdated[id] = failure.type === "invalidProperties" ? { ...failure, type: "invalidPatch" } : failure; continue; }
Object.assign(target, next);
updated[id] = null;
}
for (const id of (a.destroy as string[]) ?? []) {
demand("sysRoleDestroy");
if (!roles_(id)) { notDestroyed[id] = setError("notFound", "Role not found."); continue; }
const linked = [
...accounts.filter((x) => ((x.roles as Obj | undefined)?.roleIds as Obj | undefined)?.[id]).map((x) => ({ object: "Account", id: x.id })),
...roles.filter((x) => (x.roleIds as Obj | undefined)?.[id]).map((x) => ({ object: "Role", id: x.id })),
...(Object.values(authentication).some((set) => (set as Obj)[id]) ? [{ object: "Authentication", id: "singleton" }] : []),
];
if (linked.length) { notDestroyed[id] = { type: "objectIsLinked", objectId: { object: "Role", id }, linkedObjects: linked }; continue; }
roles.splice(roles.findIndex((x) => x.id === id), 1);
destroyed.push(id);
}
return { accountId: opts.accountId, oldState: "1", newState: "2", created, updated, destroyed, ...(Object.keys(notCreated).length ? { notCreated } : {}), ...(Object.keys(notUpdated).length ? { notUpdated } : {}), ...(Object.keys(notDestroyed).length ? { notDestroyed } : {}) };
},
"x:Role/get": get(roles, "sysRoleGet"),
"x:Role/query": query(() => roles, "sysRoleQuery", ["text", "description", "memberTenantId"], (o, f) => matchText(o, f.description)),
};
+11
View File
@@ -10,6 +10,10 @@ import { eventGetView, expandOccurrences, occurrenceAt, occurrenceView, parseSyn
import { parseOtpauthUrl, verifyTotp } from "../totp.js";
import { holdUntilOf, undoStatusOf } from "./futurerelease.js";
import { createDirectory, mockRole } from "./directory.js";
import { readFileSync } from "node:fs";
import { gzipSync } from "node:zlib";
const PERMISSION_SNAPSHOT = (JSON.parse(readFileSync(new URL("../../../web/src/locales/permissions/source.json", import.meta.url), "utf8")) as { permissions: Array<{ name: string; label: string }> }).permissions;
const PORT = Number(process.env.MOCK_PORT ?? 8788);
/**
@@ -1428,6 +1432,13 @@ export const server = createServer(async (req, res) => {
res.writeHead(200, { "content-type": "application/json" });
return res.end(JSON.stringify({ permissions: directory.permissions, edition: "oss", locale: MOCK_LOCALE }));
}
// The registry schema, cut down to the permission list the Roles picker
// reads. Gzipped as the real file is, from the 0.16.22 snapshot the
// translations are checked against.
if (url.pathname === "/api/schema" && req.method === "GET") {
res.writeHead(200, { "content-type": "application/json", "content-encoding": "gzip" });
return res.end(gzipSync(JSON.stringify({ enums: { Permission: PERMISSION_SNAPSHOT } })));
}
if (url.pathname === "/jmap/" && req.method === "POST") {
const body = JSON.parse((await readBody(req)).toString()) as { methodCalls: [string, Obj, string][]; using?: string[] };
// A capability the server cannot parse fails the whole request, not the one
+28
View File
@@ -0,0 +1,28 @@
import { test } from "node:test";
import assert from "node:assert/strict";
import { gzipSync } from "node:zlib";
import { extractPermissions, parseSchemaBody } from "./permissionSchema.js";
/** Stalwart's permission list, out of the registry schema it serves at /api/schema. */
test("the permission list is enums.Permission, names and labels, once each", () => {
const schema = { objects: {}, enums: { Permission: [
{ name: "sysAccountGet", label: "Accounts Management: Get accounts" },
{ name: "authenticate", label: "" },
{ name: "sysAccountGet", label: "a repeat" },
{ label: "no name" },
"not an object",
] } };
assert.deepEqual(extractPermissions(schema), [
{ name: "sysAccountGet", label: "Accounts Management: Get accounts" },
{ name: "authenticate", label: "authenticate" },
]);
assert.deepEqual(extractPermissions({ enums: {} }), []);
assert.deepEqual(extractPermissions(null), []);
});
test("the schema reads whether or not the transport already inflated it", () => {
const doc = { enums: { Permission: [{ name: "impersonate", label: "Act on behalf of another user" }] } };
const plain = new TextEncoder().encode(JSON.stringify(doc));
assert.deepEqual(parseSchemaBody(plain), doc);
assert.deepEqual(parseSchemaBody(new Uint8Array(gzipSync(plain))), doc);
});
+63
View File
@@ -0,0 +1,63 @@
import { gunzipSync } from "node:zlib";
import { config } from "./config.js";
/**
* Stalwart's list of permissions, for the Roles screen's picker.
*
* Stalwart publishes its whole registry schema at `GET /api/schema` to any
* signed-in account -- objects, forms, layouts and `enums.Permission`, a label
* for each permission. Its own administration interface is built from it. The
* browser cannot fetch it (no credentials there, and another origin), so this
* fetches it as the signed-in account and hands back the one part the client
* needs: a list of names and English labels, a few dozen kilobytes rather than
* the whole document.
*
* Held in memory for an hour per server, because it changes only when Stalwart
* is upgraded. Nothing is written anywhere.
*/
export interface PermissionInfo {
name: string;
label: string;
}
const CACHE_MS = 60 * 60 * 1000;
const cache = new Map<string, { at: number; list: PermissionInfo[] }>();
/** The permission list out of a schema document, or an empty list if it is not where 0.16 keeps it. */
export function extractPermissions(schema: unknown): PermissionInfo[] {
const list = (schema as { enums?: { Permission?: unknown } } | null)?.enums?.Permission;
if (!Array.isArray(list)) return [];
const out: PermissionInfo[] = [];
const seen = new Set<string>();
for (const item of list) {
const { name, label } = (item ?? {}) as { name?: unknown; label?: unknown };
if (typeof name !== "string" || !name || seen.has(name)) continue;
seen.add(name);
out.push({ name, label: typeof label === "string" && label ? label : name });
}
return out;
}
/**
* The schema's bytes as JSON. The file is shipped gzipped; whether the server
* says so in Content-Encoding (so fetch has already inflated it) or serves the
* .gz as it is, the magic number settles which this is.
*/
export function parseSchemaBody(bytes: Uint8Array): unknown {
const raw = bytes[0] === 0x1f && bytes[1] === 0x8b ? gunzipSync(bytes) : Buffer.from(bytes);
return JSON.parse(raw.toString("utf8"));
}
export async function fetchPermissions(authorization: string, baseUrl: string): Promise<PermissionInfo[] | null> {
const hit = cache.get(baseUrl);
if (hit && Date.now() - hit.at < CACHE_MS) return hit.list;
const res = await fetch(`${baseUrl}/api/schema`, {
headers: { authorization, accept: "application/json" },
signal: AbortSignal.timeout(config.upstreamTimeout),
});
if (!res.ok) return null;
const list = extractPermissions(parseSchemaBody(new Uint8Array(await res.arrayBuffer())));
if (list.length) cache.set(baseUrl, { at: Date.now(), list });
return list;
}
+41
View File
@@ -0,0 +1,41 @@
import { describe, expect, it } from "vitest";
import { permissionSet } from "@/lib/adminAccess";
import { canBuildOn, effectivePermissions, inherited, roleOutranks, setPatch, type DirectoryRole } from "@/lib/adminRoles";
const flags = (...n: string[]) => Object.fromEntries(n.map((x) => [x, true]));
const roles = new Map<string, DirectoryRole>([
["user", { id: "user", description: "User", enabledPermissions: flags("jmapEmailGet", "jmapEmailUpdate") }],
["help", { id: "help", description: "Helpdesk", enabledPermissions: flags("sysAccountGet"), disabledPermissions: flags("jmapEmailUpdate"), roleIds: flags("user") }],
["lead", { id: "lead", description: "Lead", enabledPermissions: flags("sysAccountUpdate"), roleIds: flags("help") }],
]);
describe("what a role holds", () => {
it("follows every base, and a denial anywhere in the tree wins", () => {
// Stalwart unions enabled with enabled and disabled with disabled across
// the tree, then takes the disabled away (permissions.rs).
expect([...effectivePermissions(roles.get("lead")!, roles, "lead")].sort()).toEqual(["jmapEmailGet", "sysAccountGet", "sysAccountUpdate"]);
const { granted, denied } = inherited(["help"], roles, "lead");
expect(granted.get("jmapEmailGet")).toBe("help");
expect(denied.get("jmapEmailUpdate")).toBe("help");
});
it("changes a set one pointer at a time", () => {
expect(setPatch("enabledPermissions", ["a", "b"], new Set(["b", "c"]))).toEqual({ "enabledPermissions/a": null, "enabledPermissions/c": true });
expect(setPatch("roleIds", [], [])).toEqual({});
});
it("will not build on itself, or on a role already built on it", () => {
expect(canBuildOn("help", "help", roles)).toBe(false);
expect(canBuildOn("help", "lead", roles)).toBe(false);
expect(canBuildOn("lead", "user", roles)).toBe(true);
expect(canBuildOn(null, "lead", roles)).toBe(true);
});
it("is read-only to a viewer missing anything enabled in its tree, denied or not", () => {
const viewer = permissionSet(["jmapEmailGet", "sysAccountGet", "sysAccountUpdate"]);
// jmapEmailUpdate is denied on Helpdesk but enabled on User beneath it: a
// grant Stalwart would check, and a delete it would not.
expect(roleOutranks(viewer, roles.get("lead")!, roles)).toBe(true);
expect(roleOutranks(permissionSet([...viewer, "jmapEmailUpdate"]), roles.get("lead")!, roles)).toBe(false);
});
});
@@ -0,0 +1,54 @@
import { describe, expect, it } from "vitest";
import source from "../../locales/permissions/source.json";
import { describePermissions, splitLabel, type PermissionCatalog } from "@/lib/permissionLabels";
import { UI_LANGUAGES } from "@/lib/languages";
describe("permission labels", () => {
it("split Stalwart's label into its heading and action", () => {
expect(splitLabel("Accounts Management: Create accounts")).toEqual({ categoryKey: "Accounts Management", action: "Create accounts" });
expect(splitLabel("Action: Reload: TLS certificates")).toEqual({ categoryKey: "Action", action: "Reload: TLS certificates" });
expect(splitLabel("Act on behalf of another user")).toEqual({ categoryKey: "General", action: "Act on behalf of another user" });
});
it("fall back to Stalwart's English for a permission a language does not have yet", () => {
const catalog: PermissionCatalog = { categories: { "Accounts Management": "Kontenverwaltung" }, labels: { sysAccountGet: "Konten abrufen" } };
expect(describePermissions([
{ name: "sysAccountGet", label: "Accounts Management: Get accounts" },
{ name: "sysBrandNewThing", label: "Novelties: Do something new" },
{ name: "impersonate", label: "Act on behalf of another user" },
], catalog, "Allgemein")).toEqual([
{ name: "sysAccountGet", categoryKey: "Accounts Management", category: "Kontenverwaltung", action: "Konten abrufen" },
{ name: "sysBrandNewThing", categoryKey: "Novelties", category: "Novelties", action: "Do something new" },
{ name: "impersonate", categoryKey: "General", category: "Allgemein", action: "Act on behalf of another user" },
]);
});
});
/**
* Every language covers every permission the snapshot has, and nothing it
* does not: a missing one would show English in the middle of a translated
* picker, and a stale one would never be looked up.
*/
describe("the permission catalogues", () => {
const modules = import.meta.glob<{ permissionCatalog: PermissionCatalog }>("../../locales/permissions/*.ts");
const tagOf = (path: string) => path.split("/").pop()!.replace(/\.ts$/, "");
const languages = UI_LANGUAGES.map((l) => l.tag).filter((tag) => tag !== "en");
const names = new Set(source.permissions.map((p) => p.name));
const categories = new Set(source.permissions.map((p) => splitLabel(p.label).categoryKey).filter((c) => c !== "General"));
it("exist for every language the interface ships", () => {
expect(Object.keys(modules).map(tagOf).sort()).toEqual([...languages].sort());
});
for (const tag of languages) {
it(`${tag} names every permission and heading, and nothing else`, async () => {
const load = Object.entries(modules).find(([path]) => tagOf(path) === tag)?.[1];
expect(load, `locales/permissions/${tag}.ts`).toBeTruthy();
const { permissionCatalog } = await load!();
expect(Object.keys(permissionCatalog.labels).filter((n) => !names.has(n))).toEqual([]);
expect([...names].filter((n) => !permissionCatalog.labels[n]?.trim())).toEqual([]);
expect(Object.keys(permissionCatalog.categories).sort()).toEqual([...categories].sort());
});
}
});
+2 -1
View File
@@ -27,7 +27,7 @@ export function can(perms: Permissions, object: AdminObject, op: AdminOp): boole
return perms.has(`sys${object}${op}`);
}
export type AdminSection = "dashboard" | "accounts" | "groups" | "lists" | "domains";
export type AdminSection = "dashboard" | "accounts" | "groups" | "lists" | "roles" | "domains";
export type DashboardCard = "users" | "domains" | "pending" | "memory" | "received" | "sent";
@@ -63,6 +63,7 @@ export function adminSections(perms: Permissions): AdminSection[] {
// Groups are accounts to the server, behind the same two permissions.
if (can(perms, "Account", "Query") && can(perms, "Account", "Get")) out.push("accounts", "groups");
if (can(perms, "MailingList", "Query") && can(perms, "MailingList", "Get")) out.push("lists");
if (can(perms, "Role", "Query") && can(perms, "Role", "Get")) out.push("roles");
if (can(perms, "Domain", "Query") && can(perms, "Domain", "Get")) out.push("domains");
return out;
}
+10 -4
View File
@@ -229,7 +229,7 @@ const VALIDATOR_MESSAGES: Record<string, () => string> = {
};
/** What kind of thing a refusal was about, where the wording has to differ. */
export type DirectoryObject = "account" | "domain" | "group" | "list";
export type DirectoryObject = "account" | "domain" | "group" | "list" | "role";
/**
* Say what went wrong in terms of the person's own action, in their language.
@@ -261,7 +261,9 @@ export function describeDirectoryError(err: unknown, object: DirectoryObject = "
const description = err.description ?? "";
switch (err.type) {
case "forbidden":
if (/not authorized to grant/i.test(description)) return t("You can't give an account permissions your own role doesn't have.");
if (/not authorized to grant/i.test(description)) {
return object === "role" ? t("You can't give a role permissions your own role doesn't have.") : t("You can't give an account permissions your own role doesn't have.");
}
if (/external directory/i.test(description)) return t("This account signs in through an external directory, so its password can't be set here.");
if (/licen[cs]ed account limit/i.test(description)) return t("The server's licence allows no more accounts.");
return t("The mail server refused this. Your role may not allow it.");
@@ -278,7 +280,9 @@ export function describeDirectoryError(err: unknown, object: DirectoryObject = "
? t("Your organisation has reached the number of groups it is allowed.")
: object === "list"
? t("Your organisation has reached the number of mailing lists it is allowed.")
: t("Your organisation has reached the number of accounts it is allowed.");
: object === "role"
? t("Your organisation has reached the number of roles it is allowed.")
: t("Your organisation has reached the number of accounts it is allowed.");
case "objectIsLinked":
return t("Something still depends on this, so the server kept it.");
case "notFound":
@@ -288,7 +292,9 @@ export function describeDirectoryError(err: unknown, object: DirectoryObject = "
? t("This group no longer exists. Someone may have deleted it.")
: object === "list"
? t("This mailing list no longer exists. Someone may have deleted it.")
: t("This account no longer exists. Someone may have deleted it.");
: object === "role"
? t("This role no longer exists. Someone may have deleted it.")
: t("This account no longer exists. Someone may have deleted it.");
case "rateLimit":
return t("Too many attempts. Please wait a few minutes and try again.");
case "tooLarge":
+2
View File
@@ -227,6 +227,8 @@ export function describeLinked(linked: string[]): string {
if (kind === "Account") parts.push(plural(n, { one: "{n} account", other: "{n} accounts" }));
else if (kind === "MailingList") parts.push(plural(n, { one: "{n} mailing list", other: "{n} mailing lists" }));
else if (kind === "DkimSignature") parts.push(plural(n, { one: "{n} DKIM key", other: "{n} DKIM keys" }));
else if (kind === "Role") parts.push(plural(n, { one: "{n} role", other: "{n} roles" }));
else if (kind === "Authentication") parts.push(t("the default roles"));
else parts.push(plural(n, { one: "{n} other item", other: "{n} other items" }));
}
return parts.join(", ");
+180
View File
@@ -0,0 +1,180 @@
import { apiFetch, client } from "@/jmap/client";
import { t } from "@/lib/i18n";
import type { Permissions, RoleDef } from "@/lib/adminAccess";
import { DirectoryError } from "@/lib/adminDirectory";
import { DomainError } from "@/lib/adminDomains";
import type { PermissionInfo } from "@/lib/permissionLabels";
/**
* Roles, from Stalwart 0.16's directory.
*
* `x:Role` behind `sysRole*`. A role has a `description` -- which is its name;
* there is no other -- the roles it builds on (`roleIds`, followed all the way
* down), and two sets of permissions: `enabledPermissions` it adds and
* `disabledPermissions` it takes away, which wins over anything enabled or
* inherited. The four a new server starts with (User, Group, Tenant
* Administrator, System Administrator) are ordinary rows, editable like any
* other, written once at first boot.
*
* Stalwart refuses to create or change a role that would carry a permission
* the caller does not hold, which is what the picker's locked rows show ahead
* of time. It does not check a delete.
*/
export interface DirectoryRole extends RoleDef {
description?: string | null;
enabledPermissions?: Record<string, boolean>;
disabledPermissions?: Record<string, boolean>;
roleIds?: Record<string, boolean>;
}
/** Which roles Stalwart gives an account that has been given none of its own. */
export interface RoleDefaults {
user: string[];
group: string[];
tenant: string[];
admin: string[];
}
const ROLE_PROPERTIES = ["description", "enabledPermissions", "disabledPermissions", "roleIds"];
type SetResponse = Record<string, Record<string, { type: string; description?: string; properties?: string[] } | null> | undefined> & {
created?: Record<string, { id: string }>;
};
/** A refusal, carrying what the server says still uses the role -- a delete's usual answer. */
function throwIfRefused(res: SetResponse, key: "notCreated" | "notUpdated" | "notDestroyed"): void {
const first = Object.values(res[key] ?? {})[0] as ({ type: string; description?: string; properties?: string[]; linkedObjects?: Array<{ object?: string; id?: string }> } | null | undefined);
if (first) throw new DomainError(first);
}
/** Every role, sorted by name. There are few enough to hold at once; the server caps a get anyway. */
export async function listAllRoles(): Promise<DirectoryRole[]> {
const q = await client.call<{ ids?: string[] }>("x:Role/query", { limit: client.maxObjectsInGet });
if (!q.ids?.length) return [];
const res = await client.call<{ list: DirectoryRole[] }>("x:Role/get", { ids: q.ids, properties: ROLE_PROPERTIES });
return res.list.sort((a, b) => (a.description ?? a.id).localeCompare(b.description ?? b.id));
}
/** The default roles, or null when the viewer may not read the authentication settings. */
export async function loadRoleDefaults(): Promise<RoleDefaults | null> {
try {
const res = await client.call<{ list: Array<Record<string, Record<string, boolean> | undefined>> }>("x:Authentication/get", {
ids: ["singleton"],
properties: ["defaultUserRoleIds", "defaultGroupRoleIds", "defaultTenantRoleIds", "defaultAdminRoleIds"],
});
const s = res.list[0];
if (!s) return null;
const ids = (k: string) => Object.keys(s[k] ?? {});
return { user: ids("defaultUserRoleIds"), group: ids("defaultGroupRoleIds"), tenant: ids("defaultTenantRoleIds"), admin: ids("defaultAdminRoleIds") };
} catch {
return null;
}
}
/** Stalwart's labelled permission list, through ihasmail's server. */
export async function loadPermissionList(): Promise<PermissionInfo[]> {
const res = await apiFetch<{ permissions: PermissionInfo[] }>("/api/admin/permissions");
return res.permissions;
}
export interface NewRole {
description: string;
roleIds: string[];
enabled: string[];
disabled: string[];
}
const set = (names: readonly string[]) => Object.fromEntries(names.map((n) => [n, true]));
export async function createRole(input: NewRole): Promise<string> {
const res = await client.call<SetResponse>("x:Role/set", {
create: { n: { description: input.description.trim(), roleIds: set(input.roleIds), enabledPermissions: set(input.enabled), disabledPermissions: set(input.disabled) } },
});
throwIfRefused(res, "notCreated");
const id = res.created?.n?.id;
if (!id) throw new DirectoryError("serverFail", t("The server did not say whether the role was created."));
return id;
}
export async function updateRole(id: string, patch: Record<string, unknown>): Promise<void> {
if (!Object.keys(patch).length) return;
const res = await client.call<SetResponse>("x:Role/set", { update: { [id]: patch } });
throwIfRefused(res, "notUpdated");
}
export async function destroyRole(id: string): Promise<void> {
const res = await client.call<SetResponse>("x:Role/set", { destroy: [id] });
throwIfRefused(res, "notDestroyed");
}
/** A set property's changes as one pointer per name, so nothing else in the set is touched. */
export function setPatch(property: string, before: Iterable<string>, after: Iterable<string>): Record<string, true | null> {
const was = new Set(before);
const now = new Set(after);
const patch: Record<string, true | null> = {};
for (const n of was) if (!now.has(n)) patch[`${property}/${n}`] = null;
for (const n of now) if (!was.has(n)) patch[`${property}/${n}`] = true;
return patch;
}
/** What a permission is, on the role being edited. */
export type PermissionState = "allow" | "deny" | "none";
/**
* What a role's bases grant and take away, and which base each came through.
*
* Stalwart unions every role in the tree -- enabled with enabled, disabled with
* disabled -- and then takes the disabled set away (`permissions.rs`), so a
* denial on a base role holds on every role built on it.
*/
export function inherited(roleIds: readonly string[], roles: ReadonlyMap<string, DirectoryRole>, exclude?: string): { granted: Map<string, string>; denied: Map<string, string> } {
const granted = new Map<string, string>();
const denied = new Map<string, string>();
const seen = new Set<string>(exclude ? [exclude] : []);
const walk = (id: string, via: string) => {
if (seen.has(id)) return;
seen.add(id);
const role = roles.get(id);
if (!role) return;
for (const p of Object.keys(role.enabledPermissions ?? {})) if (!granted.has(p)) granted.set(p, via);
for (const p of Object.keys(role.disabledPermissions ?? {})) if (!denied.has(p)) denied.set(p, via);
for (const child of Object.keys(role.roleIds ?? {})) walk(child, via);
};
for (const id of roleIds) walk(id, id);
return { granted, denied };
}
/** The roles a role may build on: not itself, and none that already builds on it. */
export function canBuildOn(roleId: string | null, candidate: string, roles: ReadonlyMap<string, DirectoryRole>): boolean {
if (!roleId) return roles.has(candidate);
if (candidate === roleId) return false;
const seen = new Set<string>();
const reaches = (id: string): boolean => {
if (id === roleId) return true;
if (seen.has(id)) return false;
seen.add(id);
return Object.keys(roles.get(id)?.roleIds ?? {}).some(reaches);
};
return !reaches(candidate);
}
/** Everything a role grants once its bases are followed and every denial in the tree taken away. */
export function effectivePermissions(role: Pick<DirectoryRole, "enabledPermissions" | "disabledPermissions" | "roleIds">, roles: ReadonlyMap<string, DirectoryRole>, self?: string): Set<string> {
const base = inherited(Object.keys(role.roleIds ?? {}), roles, self);
const out = new Set<string>([...base.granted.keys(), ...Object.keys(role.enabledPermissions ?? {})]);
for (const p of [...base.denied.keys(), ...Object.keys(role.disabledPermissions ?? {})]) out.delete(p);
return out;
}
/**
* Whether a role carries a permission the viewer does not hold, which makes it
* read-only to them. Everything enabled anywhere in its tree counts, denied or
* not: that is what Stalwart checks a grant against, and what a delete -- which
* it does not check -- would otherwise let someone take away.
*/
export function roleOutranks(viewer: Permissions, role: DirectoryRole, roles: ReadonlyMap<string, DirectoryRole>): boolean {
const granted = new Set<string>([...inherited(Object.keys(role.roleIds ?? {}), roles, role.id).granted.keys(), ...Object.keys(role.enabledPermissions ?? {})]);
for (const p of granted) if (!viewer.has(p)) return true;
return false;
}
+74
View File
@@ -0,0 +1,74 @@
import { currentLanguage } from "@/lib/i18n";
import { DEFAULT_UI_LANGUAGE } from "@/lib/languages";
/**
* Stalwart's permission labels, in the reader's language.
*
* The server publishes one English label per permission -- "Accounts
* Management: Create accounts" -- and nothing else. Each language has its own
* file under `locales/permissions`, loaded only when the Roles screen asks, so
* six hundred labels do not ride along with every page of mail.
*
* A file is keyed by permission name, not by the English label, so a change
* to Stalwart's wording does not orphan its translation. A permission a later
* Stalwart adds has no entry yet, and shows the server's English label until
* one is written.
*/
export interface PermissionCatalog {
/** The English heading before the colon, e.g. "Accounts Management", to its translation. */
categories: Record<string, string>;
/** Permission name to the translated action, the part after the colon. */
labels: Record<string, string>;
}
export interface PermissionInfo {
name: string;
/** Stalwart's English label, as the server sent it. */
label: string;
}
export interface PermissionEntry {
name: string;
/** The heading this permission is listed under, in the reader's language. */
category: string;
/** The English heading, which is what groups are keyed by. */
categoryKey: string;
/** What it allows, in the reader's language. */
action: string;
}
/** The heading a label without one is listed under. */
export const GENERAL_CATEGORY = "General";
/** Split Stalwart's "Heading: action" label at its first colon. */
export function splitLabel(label: string): { categoryKey: string; action: string } {
const at = label.indexOf(":");
if (at < 0) return { categoryKey: GENERAL_CATEGORY, action: label };
return { categoryKey: label.slice(0, at).trim(), action: label.slice(at + 1).trim() };
}
const loaded = new Map<string, Promise<PermissionCatalog | null>>();
/** The catalogue for a language, or null for English and for a language without a file. */
export function loadPermissionCatalog(tag: string = currentLanguage()): Promise<PermissionCatalog | null> {
if (tag === DEFAULT_UI_LANGUAGE) return Promise.resolve(null);
let pending = loaded.get(tag);
if (!pending) {
pending = import(`../locales/permissions/${tag}.ts`).then(
(m: { permissionCatalog: PermissionCatalog }) => m.permissionCatalog,
() => null,
);
loaded.set(tag, pending);
}
return pending;
}
/** Each permission with its heading and action in the reader's language, falling back to Stalwart's English. */
export function describePermissions(list: readonly PermissionInfo[], catalog: PermissionCatalog | null, generalLabel: string): PermissionEntry[] {
return list.map(({ name, label }) => {
const { categoryKey, action } = splitLabel(label);
const category = categoryKey === GENERAL_CATEGORY ? generalLabel : (catalog?.categories[categoryKey] ?? categoryKey);
return { name, categoryKey, category, action: catalog?.labels[name] ?? action };
});
}
+54
View File
@@ -207,6 +207,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "Ihre Organisation hat die erlaubte Anzahl an Mailinglisten erreicht.",
"This mailing list no longer exists. Someone may have deleted it.": "Diese Mailingliste existiert nicht mehr. Jemand hat sie möglicherweise gelöscht.",
"The server did not say whether the list was created.": "Der Server hat nicht mitgeteilt, ob die Liste angelegt wurde.",
"Roles": "Rollen",
"users": "Benutzern",
"groups": "Gruppen",
"tenant administrators": "Mandantenadministratoren",
"administrators": "Administratoren",
"A role needs a name.": "Eine Rolle braucht einen Namen.",
"Created {name}": "{name} angelegt",
"New role": "Neue Rolle",
"This role carries permissions yours doesn't, so you can view it but not change it.": "Diese Rolle hat Berechtigungen, die Ihre nicht hat. Sie können sie ansehen, aber nicht ändern.",
"Your role lets you view roles but not change them.": "Ihre Rolle erlaubt es, Rollen anzusehen, aber nicht zu ändern.",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart vergibt diese Rolle standardmäßig an {kinds}. Eine Änderung betrifft alle, die sie auf diesem Weg haben.",
"Builds on": "Baut auf",
"Permissions": "Berechtigungen",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart vergibt diese Rolle standardmäßig, daher kann sie nicht gelöscht werden. Ändern Sie zuerst die Standardwerte in der Verwaltung von Stalwart selbst.",
"This role carries permissions yours doesn't.": "Diese Rolle hat Berechtigungen, die Ihre nicht hat.",
"Create role": "Rolle anlegen",
"builds on this one": "baut auf dieser auf",
"has permissions yours doesn't": "hat Berechtigungen, die Ihre nicht hat",
"No other roles": "Keine anderen Rollen",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "Eine Rolle hat alle Berechtigungen der Rollen, auf denen sie aufbaut, außer denen, die sie oder jene verweigern.",
"Search permissions": "Berechtigungen durchsuchen",
"All permissions": "Alle Berechtigungen",
"Granted": "Gewährt",
"Set on this role": "Auf dieser Rolle gesetzt",
"No permissions match": "Keine passenden Berechtigungen",
"{granted} of {total}": "{granted} von {total}",
"Denied by {role}": "Verweigert durch {role}",
"Granted by {role}": "Gewährt durch {role}",
"Inherit": "Erben",
"Not set": "Nicht gesetzt",
"Allow": "Erlauben",
"Deny": "Verweigern",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "Eine Verweigerung hat Vorrang vor jeder Erlaubnis, hier oder auf einer Rolle, auf der diese aufbaut. Sie können nur Berechtigungen erlauben, die Sie selbst haben.",
"Accounts, groups and other roles that use it must be moved off it first.": "Konten, Gruppen und andere Rollen, die sie nutzen, müssen zuerst davon gelöst werden.",
"Delete role…": "Rolle löschen…",
"Deleted {name}": "{name} gelöscht",
"Still used by {things}. Move them to another role first.": "Noch verwendet von {things}. Weisen Sie diesen zuerst eine andere Rolle zu.",
"Delete role": "Rolle löschen",
"It can't be undone.": "Das lässt sich nicht rückgängig machen.",
"Type {name} to confirm": "Geben Sie {name} zur Bestätigung ein",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "Die Berechtigungsliste von Stalwart konnte nicht geladen werden, daher lassen sich Berechtigungen hier nicht ändern. ({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "Benannte Sätze von Berechtigungen, vergeben an Konten, Gruppen und Mandanten.",
"Search roles": "Rollen durchsuchen",
"No roles match": "Keine passenden Rollen",
"No roles yet": "Noch keine Rollen",
"Open {name}": "{name} öffnen",
"Default for {kinds}": "Standard bei {kinds}",
"You can't give a role permissions your own role doesn't have.": "Sie können einer Rolle keine Berechtigungen geben, die Ihre eigene Rolle nicht hat.",
"Your organisation has reached the number of roles it is allowed.": "Ihre Organisation hat die erlaubte Anzahl an Rollen erreicht.",
"This role no longer exists. Someone may have deleted it.": "Diese Rolle existiert nicht mehr. Jemand hat sie möglicherweise gelöscht.",
"the default roles": "den Standardrollen",
"The server did not say whether the role was created.": "Der Server hat nicht mitgeteilt, ob die Rolle angelegt wurde.",
"User": "Benutzer",
"Administrator": "Administrator",
"Custom role": "Eigene Rolle",
@@ -1622,6 +1674,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Sein {n} Mitglied wird zuerst aus der Gruppe entfernt und verliert, was mit ihr geteilt wurde. Die E-Mails der Gruppe werden im Hintergrund entfernt, und das lässt sich nicht rückgängig machen.", other: "Ihre {n} Mitglieder werden zuerst aus der Gruppe entfernt und verlieren, was mit ihr geteilt wurde. Die E-Mails der Gruppe werden im Hintergrund entfernt, und das lässt sich nicht rückgängig machen." },
"{n} mailing lists": { one: "{n} Mailingliste", other: "{n} Mailinglisten" },
"{n} recipients": { one: "{n} Empfänger", other: "{n} Empfänger" },
"Grants {n} permissions": { one: "Gewährt {n} Berechtigung", other: "Gewährt {n} Berechtigungen" },
"{n} roles": { one: "{n} Rolle", other: "{n} Rollen" },
"{n} DKIM keys": { one: "{n} DKIM-Schlüssel", other: "{n} DKIM-Schlüssel" },
"{n} other items": { one: "{n} weiteres Objekt", other: "{n} weitere Objekte" },
// ── Administration ────────────────────────────────────────────────
+54
View File
@@ -199,6 +199,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "Su organización ha alcanzado el número de listas de correo permitido.",
"This mailing list no longer exists. Someone may have deleted it.": "Esta lista de correo ya no existe. Puede que alguien la haya eliminado.",
"The server did not say whether the list was created.": "El servidor no indicó si la lista se creó.",
"Roles": "Roles",
"users": "usuarios",
"groups": "grupos",
"tenant administrators": "administradores de inquilino",
"administrators": "administradores",
"A role needs a name.": "Un rol necesita un nombre.",
"Created {name}": "{name} creado",
"New role": "Nuevo rol",
"This role carries permissions yours doesn't, so you can view it but not change it.": "Este rol tiene permisos que el suyo no tiene, así que puede verlo pero no modificarlo.",
"Your role lets you view roles but not change them.": "Su rol le permite ver los roles, pero no modificarlos.",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart asigna este rol de forma predeterminada a {kinds}. Un cambio aquí afecta a todos los que lo tienen de esa forma.",
"Builds on": "Se basa en",
"Permissions": "Permisos",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart asigna este rol de forma predeterminada, así que no se puede eliminar. Cambie primero los valores predeterminados en la administración de Stalwart.",
"This role carries permissions yours doesn't.": "Este rol tiene permisos que el suyo no tiene.",
"Create role": "Crear rol",
"builds on this one": "se basa en este",
"has permissions yours doesn't": "tiene permisos que el suyo no tiene",
"No other roles": "No hay otros roles",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "Un rol tiene todos los permisos de los roles en los que se basa, salvo los que él o ellos denieguen.",
"Search permissions": "Buscar permisos",
"All permissions": "Todos los permisos",
"Granted": "Concedidos",
"Set on this role": "Definidos en este rol",
"No permissions match": "Ningún permiso coincide",
"{granted} of {total}": "{granted} de {total}",
"Denied by {role}": "Denegado por {role}",
"Granted by {role}": "Concedido por {role}",
"Inherit": "Heredar",
"Not set": "Sin definir",
"Allow": "Permitir",
"Deny": "Denegar",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "Una denegación prevalece sobre cualquier permiso, aquí o en un rol en el que este se basa. Solo puede permitir permisos que usted mismo tenga.",
"Accounts, groups and other roles that use it must be moved off it first.": "Las cuentas, grupos y otros roles que lo usan deben quitárselo primero.",
"Delete role…": "Eliminar rol…",
"Deleted {name}": "{name} eliminado",
"Still used by {things}. Move them to another role first.": "Aún lo usan {things}. Asígneles otro rol primero.",
"Delete role": "Eliminar rol",
"It can't be undone.": "No se puede deshacer.",
"Type {name} to confirm": "Escriba {name} para confirmar",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "No se pudo cargar la lista de permisos de Stalwart, así que aquí no se pueden cambiar los permisos. ({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "Conjuntos de permisos con nombre, asignados a cuentas, grupos e inquilinos.",
"Search roles": "Buscar roles",
"No roles match": "Ningún rol coincide",
"No roles yet": "Aún no hay roles",
"Open {name}": "Abrir {name}",
"Default for {kinds}": "Predeterminado para {kinds}",
"You can't give a role permissions your own role doesn't have.": "No puede dar a un rol permisos que su propio rol no tiene.",
"Your organisation has reached the number of roles it is allowed.": "Su organización ha alcanzado el número de roles permitido.",
"This role no longer exists. Someone may have deleted it.": "Este rol ya no existe. Puede que alguien lo haya eliminado.",
"the default roles": "los roles predeterminados",
"The server did not say whether the role was created.": "El servidor no indicó si el rol se creó.",
"User": "Usuario",
"Administrator": "Administrador",
"Custom role": "Rol personalizado",
@@ -1595,6 +1647,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Primero se quita del grupo a su {n} miembro, que pierde lo que se compartía con él. El correo del grupo se elimina en segundo plano, y no se puede deshacer.", other: "Primero se quita del grupo a sus {n} miembros, que pierden lo que se compartía con él. El correo del grupo se elimina en segundo plano, y no se puede deshacer." },
"{n} mailing lists": { one: "{n} lista de correo", other: "{n} listas de correo" },
"{n} recipients": { one: "{n} destinatario", other: "{n} destinatarios" },
"Grants {n} permissions": { one: "Concede {n} permiso", other: "Concede {n} permisos" },
"{n} roles": { one: "{n} rol", other: "{n} roles" },
"{n} DKIM keys": { one: "{n} clave DKIM", other: "{n} claves DKIM" },
"{n} other items": { one: "{n} elemento más", other: "{n} elementos más" },
// ── Administration ────────────────────────────────────────────────
+54
View File
@@ -204,6 +204,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "Votre organisation a atteint le nombre de listes de diffusion autorisé.",
"This mailing list no longer exists. Someone may have deleted it.": "Cette liste de diffusion nexiste plus. Quelquun la peut-être supprimée.",
"The server did not say whether the list was created.": "Le serveur na pas indiqué si la liste a été créée.",
"Roles": "Rôles",
"users": "utilisateurs",
"groups": "groupes",
"tenant administrators": "administrateurs de locataire",
"administrators": "administrateurs",
"A role needs a name.": "Un rôle a besoin dun nom.",
"Created {name}": "{name} créé",
"New role": "Nouveau rôle",
"This role carries permissions yours doesn't, so you can view it but not change it.": "Ce rôle comporte des autorisations que le vôtre na pas : vous pouvez le consulter, mais pas le modifier.",
"Your role lets you view roles but not change them.": "Votre rôle vous permet de consulter les rôles, mais pas de les modifier.",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart attribue ce rôle par défaut aux {kinds}. Une modification ici touche tous ceux qui lont de cette façon.",
"Builds on": "Sappuie sur",
"Permissions": "Autorisations",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart attribue ce rôle par défaut, il ne peut donc pas être supprimé. Modifiez dabord les valeurs par défaut dans ladministration de Stalwart.",
"This role carries permissions yours doesn't.": "Ce rôle comporte des autorisations que le vôtre na pas.",
"Create role": "Créer le rôle",
"builds on this one": "sappuie sur celui-ci",
"has permissions yours doesn't": "a des autorisations que le vôtre na pas",
"No other roles": "Aucun autre rôle",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "Un rôle a toutes les autorisations des rôles sur lesquels il sappuie, sauf celles que lui ou eux refusent.",
"Search permissions": "Rechercher des autorisations",
"All permissions": "Toutes les autorisations",
"Granted": "Accordées",
"Set on this role": "Définies sur ce rôle",
"No permissions match": "Aucune autorisation ne correspond",
"{granted} of {total}": "{granted} sur {total}",
"Denied by {role}": "Refusée par {role}",
"Granted by {role}": "Accordée par {role}",
"Inherit": "Hériter",
"Not set": "Non défini",
"Allow": "Autoriser",
"Deny": "Refuser",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "Un refus lemporte sur toute autorisation, ici ou sur un rôle sur lequel celui-ci sappuie. Vous ne pouvez autoriser que les autorisations que vous détenez vous-même.",
"Accounts, groups and other roles that use it must be moved off it first.": "Les comptes, groupes et autres rôles qui lutilisent doivent dabord en être détachés.",
"Delete role…": "Supprimer le rôle…",
"Deleted {name}": "{name} supprimé",
"Still used by {things}. Move them to another role first.": "Encore utilisé par {things}. Attribuez-leur dabord un autre rôle.",
"Delete role": "Supprimer le rôle",
"It can't be undone.": "Cest irréversible.",
"Type {name} to confirm": "Saisissez {name} pour confirmer",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "La liste des autorisations de Stalwart na pas pu être chargée : les autorisations ne peuvent donc pas être modifiées ici. ({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "Des ensembles nommés dautorisations, attribués aux comptes, groupes et locataires.",
"Search roles": "Rechercher des rôles",
"No roles match": "Aucun rôle ne correspond",
"No roles yet": "Aucun rôle pour linstant",
"Open {name}": "Ouvrir {name}",
"Default for {kinds}": "Par défaut pour les {kinds}",
"You can't give a role permissions your own role doesn't have.": "Vous ne pouvez pas donner à un rôle des autorisations que votre propre rôle na pas.",
"Your organisation has reached the number of roles it is allowed.": "Votre organisation a atteint le nombre de rôles autorisé.",
"This role no longer exists. Someone may have deleted it.": "Ce rôle nexiste plus. Quelquun la peut-être supprimé.",
"the default roles": "les rôles par défaut",
"The server did not say whether the role was created.": "Le serveur na pas indiqué si le rôle a été créé.",
"User": "Utilisateur",
"Administrator": "Administrateur",
"Custom role": "Rôle personnalisé",
@@ -1600,6 +1652,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Son {n} membre est dabord retiré du groupe et perd ce qui était partagé avec lui. Les messages du groupe sont supprimés en arrière-plan, et cest irréversible.", other: "Ses {n} membres sont dabord retirés du groupe et perdent ce qui était partagé avec lui. Les messages du groupe sont supprimés en arrière-plan, et cest irréversible." },
"{n} mailing lists": { one: "{n} liste de diffusion", other: "{n} listes de diffusion" },
"{n} recipients": { one: "{n} destinataire", other: "{n} destinataires" },
"Grants {n} permissions": { one: "Accorde {n} autorisation", other: "Accorde {n} autorisations" },
"{n} roles": { one: "{n} rôle", other: "{n} rôles" },
"{n} DKIM keys": { one: "{n} clé DKIM", other: "{n} clés DKIM" },
"{n} other items": { one: "{n} autre élément", other: "{n} autres éléments" },
// ── Administration ────────────────────────────────────────────────
+54
View File
@@ -198,6 +198,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "組織で許可されているメーリングリスト数の上限に達しました。",
"This mailing list no longer exists. Someone may have deleted it.": "このメーリングリストはもう存在しません。誰かが削除した可能性があります。",
"The server did not say whether the list was created.": "リストが作成されたかどうか、サーバーから返答がありませんでした。",
"Roles": "ロール",
"users": "ユーザー",
"groups": "グループ",
"tenant administrators": "テナント管理者",
"administrators": "管理者",
"A role needs a name.": "ロールには名前が必要です。",
"Created {name}": "{name} を作成しました",
"New role": "新しいロール",
"This role carries permissions yours doesn't, so you can view it but not change it.": "このロールにはあなたのロールにない権限があるため、閲覧はできますが変更はできません。",
"Your role lets you view roles but not change them.": "あなたのロールでは、ロールの閲覧はできますが変更はできません。",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart はこのロールを既定で {kinds} に付与しています。ここでの変更は、その方法でこのロールを持つ全員に及びます。",
"Builds on": "継承元",
"Permissions": "権限",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart が既定で付与するロールのため、削除できません。先に Stalwart 自体の管理画面で既定値を変更してください。",
"This role carries permissions yours doesn't.": "このロールにはあなたのロールにない権限があります。",
"Create role": "ロールを作成",
"builds on this one": "このロールを継承しています",
"has permissions yours doesn't": "あなたのロールにない権限があります",
"No other roles": "ほかのロールはありません",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "ロールは、継承元のロールのすべての権限を持ちます。ただし、このロールまたは継承元が拒否したものは除きます。",
"Search permissions": "権限を検索",
"All permissions": "すべての権限",
"Granted": "許可済み",
"Set on this role": "このロールで設定",
"No permissions match": "一致する権限はありません",
"{granted} of {total}": "{total} 件中 {granted} 件",
"Denied by {role}": "{role} により拒否",
"Granted by {role}": "{role} により許可",
"Inherit": "継承",
"Not set": "未設定",
"Allow": "許可",
"Deny": "拒否",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "拒否は、ここでも継承元のロールでも、あらゆる許可より優先されます。許可できるのは、あなた自身が持つ権限だけです。",
"Accounts, groups and other roles that use it must be moved off it first.": "このロールを使っているアカウント、グループ、ほかのロールから、先に外す必要があります。",
"Delete role…": "ロールを削除…",
"Deleted {name}": "{name} を削除しました",
"Still used by {things}. Move them to another role first.": "まだ {things} で使われています。先に別のロールを割り当ててください。",
"Delete role": "ロールを削除",
"It can't be undone.": "元に戻せません。",
"Type {name} to confirm": "確認のため {name} と入力してください",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "Stalwart の権限一覧を読み込めなかったため、ここでは権限を変更できません。({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "アカウント、グループ、テナントに付与する、名前付きの権限のまとまりです。",
"Search roles": "ロールを検索",
"No roles match": "一致するロールはありません",
"No roles yet": "まだロールがありません",
"Open {name}": "{name} を開く",
"Default for {kinds}": "既定の付与先: {kinds}",
"You can't give a role permissions your own role doesn't have.": "あなたのロールにない権限をロールに与えることはできません。",
"Your organisation has reached the number of roles it is allowed.": "組織で許可されているロール数の上限に達しました。",
"This role no longer exists. Someone may have deleted it.": "このロールはもう存在しません。誰かが削除した可能性があります。",
"the default roles": "既定のロール設定",
"The server did not say whether the role was created.": "ロールが作成されたかどうか、サーバーから返答がありませんでした。",
"User": "ユーザー",
"Administrator": "管理者",
"Custom role": "カスタムロール",
@@ -1603,6 +1655,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { other: "まず {n} 人のメンバーがグループから外され、グループと共有されていたものを使えなくなります。グループのメールはバックグラウンドで削除され、元に戻せません。" },
"{n} mailing lists": { other: "{n} 件のメーリングリスト" },
"{n} recipients": { other: "{n} 件の受信者" },
"Grants {n} permissions": { other: "{n} 件の権限を付与" },
"{n} roles": { other: "{n} 件のロール" },
"{n} DKIM keys": { other: "{n} 個の DKIM 鍵" },
"{n} other items": { other: "その他 {n} 件" },
// ── Administration ────────────────────────────────────────────────
+54
View File
@@ -195,6 +195,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "Uw organisatie heeft het toegestane aantal mailinglijsten bereikt.",
"This mailing list no longer exists. Someone may have deleted it.": "Deze mailinglijst bestaat niet meer. Iemand heeft hem mogelijk verwijderd.",
"The server did not say whether the list was created.": "De server heeft niet gemeld of de lijst is aangemaakt.",
"Roles": "Rollen",
"users": "gebruikers",
"groups": "groepen",
"tenant administrators": "tenantbeheerders",
"administrators": "beheerders",
"A role needs a name.": "Een rol heeft een naam nodig.",
"Created {name}": "{name} aangemaakt",
"New role": "Nieuwe rol",
"This role carries permissions yours doesn't, so you can view it but not change it.": "Deze rol heeft rechten die de uwe niet heeft, dus u kunt hem bekijken maar niet wijzigen.",
"Your role lets you view roles but not change them.": "Met uw rol kunt u rollen bekijken, maar niet wijzigen.",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart geeft deze rol standaard aan {kinds}. Een wijziging hier geldt voor iedereen die hem zo heeft.",
"Builds on": "Bouwt voort op",
"Permissions": "Rechten",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart geeft deze rol standaard, dus hij kan niet worden verwijderd. Wijzig eerst de standaardwaarden in het eigen beheer van Stalwart.",
"This role carries permissions yours doesn't.": "Deze rol heeft rechten die de uwe niet heeft.",
"Create role": "Rol aanmaken",
"builds on this one": "bouwt voort op deze",
"has permissions yours doesn't": "heeft rechten die de uwe niet heeft",
"No other roles": "Geen andere rollen",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "Een rol heeft alle rechten van de rollen waarop hij voortbouwt, behalve die hij of zij weigeren.",
"Search permissions": "Rechten zoeken",
"All permissions": "Alle rechten",
"Granted": "Toegekend",
"Set on this role": "Ingesteld op deze rol",
"No permissions match": "Geen rechten gevonden",
"{granted} of {total}": "{granted} van {total}",
"Denied by {role}": "Geweigerd door {role}",
"Granted by {role}": "Toegekend door {role}",
"Inherit": "Overnemen",
"Not set": "Niet ingesteld",
"Allow": "Toestaan",
"Deny": "Weigeren",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "Een weigering gaat boven elke toestemming, hier of op een rol waarop deze voortbouwt. U kunt alleen rechten toestaan die u zelf hebt.",
"Accounts, groups and other roles that use it must be moved off it first.": "Accounts, groepen en andere rollen die hem gebruiken, moeten er eerst vanaf.",
"Delete role…": "Rol verwijderen…",
"Deleted {name}": "{name} verwijderd",
"Still used by {things}. Move them to another role first.": "Nog in gebruik bij {things}. Geef ze eerst een andere rol.",
"Delete role": "Rol verwijderen",
"It can't be undone.": "Dit kan niet ongedaan worden gemaakt.",
"Type {name} to confirm": "Typ {name} om te bevestigen",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "De lijst met rechten van Stalwart kon niet worden geladen, dus rechten kunnen hier niet worden gewijzigd. ({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "Benoemde sets rechten, toegekend aan accounts, groepen en tenants.",
"Search roles": "Rollen zoeken",
"No roles match": "Geen rollen gevonden",
"No roles yet": "Nog geen rollen",
"Open {name}": "{name} openen",
"Default for {kinds}": "Standaard voor {kinds}",
"You can't give a role permissions your own role doesn't have.": "U kunt een rol geen rechten geven die uw eigen rol niet heeft.",
"Your organisation has reached the number of roles it is allowed.": "Uw organisatie heeft het toegestane aantal rollen bereikt.",
"This role no longer exists. Someone may have deleted it.": "Deze rol bestaat niet meer. Iemand heeft hem mogelijk verwijderd.",
"the default roles": "de standaardrollen",
"The server did not say whether the role was created.": "De server heeft niet gemeld of de rol is aangemaakt.",
"User": "Gebruiker",
"Administrator": "Beheerder",
"Custom role": "Aangepaste rol",
@@ -1591,6 +1643,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Het {n} lid wordt eerst uit de groep gehaald en verliest wat ermee gedeeld was. De e-mail van de groep wordt op de achtergrond verwijderd, en dit kan niet ongedaan worden gemaakt.", other: "De {n} leden worden eerst uit de groep gehaald en verliezen wat ermee gedeeld was. De e-mail van de groep wordt op de achtergrond verwijderd, en dit kan niet ongedaan worden gemaakt." },
"{n} mailing lists": { one: "{n} mailinglijst", other: "{n} mailinglijsten" },
"{n} recipients": { one: "{n} ontvanger", other: "{n} ontvangers" },
"Grants {n} permissions": { one: "Kent {n} recht toe", other: "Kent {n} rechten toe" },
"{n} roles": { one: "{n} rol", other: "{n} rollen" },
"{n} DKIM keys": { one: "{n} DKIM-sleutel", other: "{n} DKIM-sleutels" },
"{n} other items": { one: "{n} ander item", other: "{n} andere items" },
// ── Administration ────────────────────────────────────────────────
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in German, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "KI-Modellverwaltung",
"API keys Management": "API-Schlüsselverwaltung",
"Accounts Management": "Kontenverwaltung",
"Action": "Aktion",
"Actions Management": "Aktionsverwaltung",
"Addresses Management": "Adressverwaltung",
"Alerts Management": "Warnmeldungsverwaltung",
"App passwords Management": "App-Passwort-Verwaltung",
"Applications Management": "Anwendungsverwaltung",
"Archived items Management": "Verwaltung archivierter Elemente",
"Calendar": "Kalender",
"Certificates Management": "Zertifikatsverwaltung",
"Cluster nodes Management": "Clusterknotenverwaltung",
"DNS servers Management": "DNS-Server-Verwaltung",
"Directories Management": "Verzeichnisverwaltung",
"Domains Management": "Domainverwaltung",
"Email": "E-Mail",
"Events Management": "Ereignisverwaltung",
"Extensions Management": "Verwaltung von Dateiendungen",
"Hooks Management": "Hook-Verwaltung",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "Schlüsselverwaltung",
"Listeners Management": "Listener-Verwaltung",
"Lists Management": "Listenverwaltung",
"Log entries Management": "Verwaltung von Protokolleinträgen",
"Lookups Management": "Lookup-Verwaltung",
"Mailing lists Management": "Mailinglistenverwaltung",
"ManageSieve": "ManageSieve",
"Masked emails Management": "Verwaltung maskierter E-Mail-Adressen",
"Messages Management": "Nachrichtenverwaltung",
"Metrics Management": "Metrikverwaltung",
"Milters Management": "Milter-Verwaltung",
"OAuth clients Management": "OAuth-Client-Verwaltung",
"POP3": "POP3",
"Providers Management": "Anbieterverwaltung",
"Public keys Management": "Verwaltung öffentlicher Schlüssel",
"Queues Management": "Warteschlangenverwaltung",
"Quotas Management": "Kontingentverwaltung",
"Reports Management": "Berichtsverwaltung",
"Roles Management": "Rollenverwaltung",
"Routes Management": "Routenverwaltung",
"Rules Management": "Regelverwaltung",
"Samples Management": "Beispielverwaltung",
"Schedules Management": "Zeitplanverwaltung",
"Scripts Management": "Skriptverwaltung",
"Servers Management": "Serververwaltung",
"Settings": "Einstellungen",
"Signatures Management": "Signaturverwaltung",
"Strategies Management": "Strategieverwaltung",
"Tags Management": "Tag-Verwaltung",
"Task": "Aufgabe",
"Tasks Management": "Aufgabenverwaltung",
"Tenants Management": "Mandantenverwaltung",
"Throttles Management": "Drosselungsverwaltung",
"Tracers Management": "Tracer-Verwaltung",
"Traces Management": "Trace-Verwaltung",
"WebDAV": "WebDAV",
"Webhooks Management": "Webhook-Verwaltung",
},
labels: {
authenticate: "Beim Server anmelden",
authenticateWithAlias: "Mit E-Mail-Aliasadressen anmelden",
interactAi: "Mit KI-Modellen interagieren",
impersonate: "Im Namen eines anderen Benutzers handeln",
unlimitedRequests: "Ratenbegrenzungen für Anfragen umgehen",
unlimitedUploads: "Größen- und Ratenbegrenzungen für Uploads umgehen",
fetchAnyBlob: "Beliebige Blobs abrufen, auch solche, die nicht dem Konto gehören",
emailSend: "E-Mails senden",
emailReceive: "E-Mails empfangen",
calendarAlarmsSend: "Benachrichtigungen zu Kalendererinnerungen per E-Mail senden",
calendarSchedulingSend: "Kalendereinladungen und -aktualisierungen per E-Mail senden",
calendarSchedulingReceive: "Eingehende Kalendereinladungen und Antworten verarbeiten",
jmapPushSubscriptionGet: "Details von Push-Abonnements abrufen",
jmapPushSubscriptionCreate: "Neue Push-Abonnements anlegen",
jmapPushSubscriptionUpdate: "Vorhandene Push-Abonnements bearbeiten",
jmapPushSubscriptionDestroy: "Push-Abonnements entfernen",
jmapMailboxGet: "Details und Eigenschaften von Postfächern abrufen",
jmapMailboxChanges: "Änderungen an Postfächern seit einem bestimmten Stand nachverfolgen",
jmapMailboxQuery: "Postfächer nach Kriterien suchen",
jmapMailboxQueryChanges: "Änderungen an Abfrageergebnissen für Postfächer nachverfolgen",
jmapMailboxCreate: "Neue Postfächer anlegen",
jmapMailboxUpdate: "Vorhandene Postfächer bearbeiten",
jmapMailboxDestroy: "Postfächer entfernen",
jmapThreadGet: "Details von E-Mail-Threads abrufen",
jmapThreadChanges: "Änderungen an Threads seit einem bestimmten Stand nachverfolgen",
jmapEmailGet: "Details und Eigenschaften von E-Mails abrufen",
jmapEmailChanges: "Änderungen an E-Mails seit einem bestimmten Stand nachverfolgen",
jmapEmailQuery: "E-Mails nach Kriterien suchen",
jmapEmailQueryChanges: "Änderungen an Abfrageergebnissen für E-Mails nachverfolgen",
jmapEmailCreate: "Neue E-Mails anlegen",
jmapEmailUpdate: "Vorhandene E-Mails bearbeiten",
jmapEmailDestroy: "E-Mails entfernen",
jmapEmailCopy: "E-Mails in ein anderes Konto kopieren",
jmapEmailImport: "E-Mails aus Blob-Daten importieren",
jmapEmailParse: "Rohe E-Mail-Daten ohne Speichern auswerten",
jmapSearchSnippetGet: "Suchergebnis-Ausschnitte für E-Mails abrufen",
jmapIdentityGet: "Details von Absenderidentitäten abrufen",
jmapIdentityChanges: "Änderungen an Identitäten seit einem bestimmten Stand nachverfolgen",
jmapIdentityCreate: "Neue Absenderidentitäten anlegen",
jmapIdentityUpdate: "Vorhandene Absenderidentitäten bearbeiten",
jmapIdentityDestroy: "Absenderidentitäten entfernen",
jmapEmailSubmissionGet: "Details von E-Mail-Übermittlungen abrufen",
jmapEmailSubmissionChanges: "Änderungen an E-Mail-Übermittlungen seit einem bestimmten Stand nachverfolgen",
jmapEmailSubmissionQuery: "E-Mail-Übermittlungen nach Kriterien suchen",
jmapEmailSubmissionQueryChanges: "Änderungen an Abfrageergebnissen für E-Mail-Übermittlungen nachverfolgen",
jmapEmailSubmissionCreate: "Neue E-Mail-Übermittlungen zum Versand anlegen",
jmapEmailSubmissionUpdate: "Vorhandene E-Mail-Übermittlungen bearbeiten",
jmapEmailSubmissionDestroy: "E-Mail-Übermittlungen entfernen",
jmapVacationResponseGet: "Konfiguration der Abwesenheitsnotiz abrufen",
jmapVacationResponseCreate: "Einstellungen der Abwesenheitsnotiz anlegen",
jmapVacationResponseUpdate: "Einstellungen der Abwesenheitsnotiz bearbeiten",
jmapVacationResponseDestroy: "Einstellungen der Abwesenheitsnotiz entfernen",
jmapSieveScriptGet: "Details von Sieve-Filterskripten abrufen",
jmapSieveScriptQuery: "Sieve-Skripte nach Kriterien suchen",
jmapSieveScriptValidate: "Sieve-Skript ohne Speichern prüfen",
jmapSieveScriptCreate: "Neue Sieve-Filterskripte anlegen",
jmapSieveScriptUpdate: "Vorhandene Sieve-Filterskripte bearbeiten",
jmapSieveScriptDestroy: "Sieve-Filterskripte entfernen",
jmapPrincipalGet: "Details und Eigenschaften von Principals abrufen",
jmapPrincipalQuery: "Principals nach Kriterien suchen",
jmapPrincipalChanges: "Änderungen an Principals seit einem bestimmten Stand nachverfolgen",
jmapPrincipalQueryChanges: "Änderungen an Abfrageergebnissen für Principals nachverfolgen",
jmapPrincipalGetAvailability: "Verfügbarkeitsinformationen für Principals abfragen",
jmapPrincipalCreate: "Neue Principals anlegen",
jmapPrincipalUpdate: "Vorhandene Principals bearbeiten",
jmapPrincipalDestroy: "Principals entfernen",
jmapQuotaGet: "Kontingentnutzung und -grenzen abrufen",
jmapQuotaChanges: "Änderungen an Kontingenten seit einem bestimmten Stand nachverfolgen",
jmapQuotaQuery: "Kontingente nach Kriterien suchen",
jmapQuotaQueryChanges: "Änderungen an Abfrageergebnissen für Kontingente nachverfolgen",
jmapBlobGet: "Blob-Daten herunterladen",
jmapBlobCopy: "Blobs in ein anderes Konto kopieren",
jmapBlobLookup: "Blob-Verwendung über Datentypen hinweg nachschlagen",
jmapBlobUpload: "Neue Blob-Daten hochladen",
jmapAddressBookGet: "Details und Eigenschaften von Adressbüchern abrufen",
jmapAddressBookChanges: "Änderungen an Adressbüchern seit einem bestimmten Stand nachverfolgen",
jmapAddressBookCreate: "Neue Adressbücher anlegen",
jmapAddressBookUpdate: "Vorhandene Adressbücher bearbeiten",
jmapAddressBookDestroy: "Adressbücher entfernen",
jmapContactCardGet: "Details von Kontaktkarten abrufen",
jmapContactCardChanges: "Änderungen an Kontaktkarten seit einem bestimmten Stand nachverfolgen",
jmapContactCardQuery: "Kontaktkarten nach Kriterien suchen",
jmapContactCardQueryChanges: "Änderungen an Abfrageergebnissen für Kontaktkarten nachverfolgen",
jmapContactCardCreate: "Neue Kontaktkarten anlegen",
jmapContactCardUpdate: "Vorhandene Kontaktkarten bearbeiten",
jmapContactCardDestroy: "Kontaktkarten entfernen",
jmapContactCardCopy: "Kontaktkarten in ein anderes Konto kopieren",
jmapContactCardParse: "Rohe Kontaktkartendaten ohne Speichern auswerten",
jmapFileNodeGet: "Details und Eigenschaften von Dateiknoten abrufen",
jmapFileNodeChanges: "Änderungen an Dateiknoten seit einem bestimmten Stand nachverfolgen",
jmapFileNodeQuery: "Dateiknoten nach Kriterien suchen",
jmapFileNodeQueryChanges: "Änderungen an Abfrageergebnissen für Dateiknoten nachverfolgen",
jmapFileNodeCreate: "Neue Dateiknoten anlegen",
jmapFileNodeUpdate: "Vorhandene Dateiknoten bearbeiten",
jmapFileNodeDestroy: "Dateiknoten entfernen",
jmapFileNodeCopy: "Dateiknoten in ein anderes Konto kopieren",
jmapShareNotificationGet: "Details von Freigabebenachrichtigungen abrufen",
jmapShareNotificationChanges: "Änderungen an Freigabebenachrichtigungen seit einem bestimmten Stand nachverfolgen",
jmapShareNotificationQuery: "Freigabebenachrichtigungen nach Kriterien suchen",
jmapShareNotificationQueryChanges: "Änderungen an Abfrageergebnissen für Freigabebenachrichtigungen nachverfolgen",
jmapShareNotificationCreate: "Neue Freigabebenachrichtigungen anlegen",
jmapShareNotificationUpdate: "Vorhandene Freigabebenachrichtigungen bearbeiten",
jmapShareNotificationDestroy: "Freigabebenachrichtigungen entfernen",
jmapCalendarGet: "Details und Eigenschaften von Kalendern abrufen",
jmapCalendarChanges: "Änderungen an Kalendern seit einem bestimmten Stand nachverfolgen",
jmapCalendarCreate: "Neue Kalender anlegen",
jmapCalendarUpdate: "Vorhandene Kalender bearbeiten",
jmapCalendarDestroy: "Kalender entfernen",
jmapCalendarEventGet: "Details von Kalenderterminen abrufen",
jmapCalendarEventChanges: "Änderungen an Kalenderterminen seit einem bestimmten Stand nachverfolgen",
jmapCalendarEventQuery: "Kalendertermine nach Kriterien suchen",
jmapCalendarEventQueryChanges: "Änderungen an Abfrageergebnissen für Kalendertermine nachverfolgen",
jmapCalendarEventCreate: "Neue Kalendertermine anlegen",
jmapCalendarEventUpdate: "Vorhandene Kalendertermine bearbeiten",
jmapCalendarEventDestroy: "Kalendertermine entfernen",
jmapCalendarEventCopy: "Kalendertermine in ein anderes Konto kopieren",
jmapCalendarEventParse: "Rohe Kalendertermindaten ohne Speichern auswerten",
jmapCalendarEventNotificationGet: "Details von Kalendertermin-Benachrichtigungen abrufen",
jmapCalendarEventNotificationChanges: "Änderungen an Kalendertermin-Benachrichtigungen seit einem bestimmten Stand nachverfolgen",
jmapCalendarEventNotificationQuery: "Kalendertermin-Benachrichtigungen nach Kriterien suchen",
jmapCalendarEventNotificationQueryChanges: "Änderungen an Abfrageergebnissen für Kalendertermin-Benachrichtigungen nachverfolgen",
jmapCalendarEventNotificationCreate: "Neue Kalendertermin-Benachrichtigungen anlegen",
jmapCalendarEventNotificationUpdate: "Vorhandene Kalendertermin-Benachrichtigungen bearbeiten",
jmapCalendarEventNotificationDestroy: "Kalendertermin-Benachrichtigungen entfernen",
jmapParticipantIdentityGet: "Details von Teilnehmeridentitäten abrufen",
jmapParticipantIdentityChanges: "Änderungen an Teilnehmeridentitäten seit einem bestimmten Stand nachverfolgen",
jmapParticipantIdentityCreate: "Neue Teilnehmeridentitäten anlegen",
jmapParticipantIdentityUpdate: "Vorhandene Teilnehmeridentitäten bearbeiten",
jmapParticipantIdentityDestroy: "Teilnehmeridentitäten entfernen",
jmapCoreEcho: "Eingabedaten zum Testen zurückgeben",
imapAuthenticate: "Beim IMAP-Server anmelden",
imapAclGet: "Zugriffskontrolllisten von Postfächern ansehen",
imapAclSet: "Zugriffskontrolllisten von Postfächern bearbeiten",
imapMyRights: "Eigene Berechtigungen für ein Postfach ansehen",
imapListRights: "Verfügbare Berechtigungsflags für ein Postfach auflisten",
imapAppend: "Nachrichten in ein Postfach hochladen",
imapCapability: "Unterstützte IMAP-Erweiterungen abfragen",
imapId: "Serverkennung und -version abfragen",
imapCopy: "Nachrichten zwischen Postfächern kopieren",
imapMove: "Nachrichten zwischen Postfächern verschieben",
imapCreate: "Neue Postfächer anlegen",
imapDelete: "Postfächer löschen oder Nachrichten zum Löschen markieren",
imapEnable: "Optionale IMAP-Erweiterungen aktivieren",
imapExpunge: "Zum Löschen markierte Nachrichten endgültig entfernen",
imapFetch: "Nachrichteninhalt und Metadaten herunterladen",
imapIdle: "Echtzeit-Benachrichtigungen über Postfachänderungen empfangen",
imapList: "Verfügbare Postfächer und ihre Attribute auflisten",
imapLsub: "Vom Benutzer abonnierte Postfächer auflisten",
imapNamespace: "Verfügbare Namespace-Präfixe für Postfächer abfragen",
imapRename: "Postfächer umbenennen oder verschieben",
imapSearch: "Nachrichten nach Kriterien suchen",
imapSort: "Nachrichten in einer angegebenen Sortierreihenfolge abrufen",
imapSelect: "Postfach mit Lese- und Schreibzugriff öffnen",
imapExamine: "Postfach mit Nur-Lese-Zugriff öffnen",
imapStatus: "Nachrichtenanzahl und Status eines Postfachs abfragen",
imapStore: "Nachrichten-Flags setzen oder zurücksetzen (gelesen, markiert, gelöscht usw.)",
imapSubscribe: "Postfächer abonnieren oder abbestellen",
imapThread: "Nachrichten zu Konversations-Threads gruppieren",
pop3Authenticate: "Beim POP3-Server anmelden",
pop3List: "Nachrichten und ihre Größen auflisten",
pop3Uidl: "Eindeutige Nachrichtenkennungen abrufen",
pop3Stat: "Nachrichtenanzahl und Gesamtgröße des Postfachs abfragen",
pop3Retr: "Nachrichteninhalt herunterladen",
pop3Dele: "Nachrichten zum Löschen beim Trennen der Verbindung markieren",
sieveAuthenticate: "Beim ManageSieve-Server anmelden",
sieveListScripts: "Hochgeladene Sieve-Skripte auflisten",
sieveSetActive: "Festlegen, welches Sieve-Skript aktiv ist",
sieveGetScript: "Inhalt von Sieve-Skripten herunterladen",
sievePutScript: "Sieve-Skript hochladen oder ersetzen",
sieveDeleteScript: "Sieve-Skript entfernen",
sieveRenameScript: "Sieve-Skript umbenennen",
sieveCheckScript: "Syntax von Sieve-Skripten ohne Speichern prüfen",
sieveHaveSpace: "Prüfen, ob das Kontingent das Hochladen eines Skripts bestimmter Größe erlaubt",
davSyncCollection: "Änderungen an Sammlungen mit dem Client synchronisieren",
davExpandProperty: "Eigenschaften auflösen, die auf andere Ressourcen verweisen",
davPrincipalAcl: "Zugriffskontrolleigenschaften von Principals verwalten",
davPrincipalList: "Verfügbare Principals im System auflisten",
davPrincipalMatch: "Principals anhand angegebener Kriterien abgleichen",
davPrincipalSearch: "Principals nach Eigenschaftswerten suchen",
davPrincipalSearchPropSet: "Abfragen, welche Eigenschaften von Principals durchsucht werden können",
davFilePropFind: "Eigenschaften von Dateiressourcen abrufen",
davFilePropPatch: "Eigenschaften von Dateiressourcen bearbeiten",
davFileGet: "Dateiressourcen herunterladen",
davFileMkCol: "Neue Dateisammlungen oder Verzeichnisse anlegen",
davFileDelete: "Dateiressourcen entfernen",
davFilePut: "Dateiressourcen hochladen oder bearbeiten",
davFileCopy: "Dateiressourcen an neue Speicherorte kopieren",
davFileMove: "Dateiressourcen an neue Speicherorte verschieben",
davFileLock: "Dateiressourcen sperren, um gleichzeitige Änderungen zu verhindern",
davFileAcl: "Zugriffskontrolllisten für Dateiressourcen verwalten",
davCardPropFind: "Eigenschaften von Adressbucheinträgen abrufen",
davCardPropPatch: "Eigenschaften von Adressbucheinträgen bearbeiten",
davCardGet: "Adressbucheinträge herunterladen",
davCardMkCol: "Neue Adressbuchsammlungen anlegen",
davCardDelete: "Adressbucheinträge oder -sammlungen entfernen",
davCardPut: "Adressbucheinträge hochladen oder bearbeiten",
davCardCopy: "Adressbucheinträge an neue Speicherorte kopieren",
davCardMove: "Adressbucheinträge an neue Speicherorte verschieben",
davCardLock: "Adressbucheinträge sperren, um gleichzeitige Änderungen zu verhindern",
davCardAcl: "Zugriffskontrolllisten für Adressbucheinträge verwalten",
davCardQuery: "Adressbucheinträge nach Kriterien suchen",
davCardMultiGet: "Mehrere Adressbucheinträge in einer einzigen Anfrage abrufen",
davCalPropFind: "Eigenschaften von Kalendereinträgen abrufen",
davCalPropPatch: "Eigenschaften von Kalendereinträgen bearbeiten",
davCalGet: "Kalendereinträge herunterladen",
davCalMkCol: "Neue Kalendersammlungen anlegen",
davCalDelete: "Kalendereinträge oder -sammlungen entfernen",
davCalPut: "Kalendereinträge hochladen oder bearbeiten",
davCalCopy: "Kalendereinträge an neue Speicherorte kopieren",
davCalMove: "Kalendereinträge an neue Speicherorte verschieben",
davCalLock: "Kalendereinträge sperren, um gleichzeitige Änderungen zu verhindern",
davCalAcl: "Zugriffskontrolllisten für Kalendereinträge verwalten",
davCalQuery: "Kalendereinträge nach Kriterien suchen",
davCalMultiGet: "Mehrere Kalendereinträge in einer einzigen Anfrage abrufen",
davCalFreeBusyQuery: "Frei/Gebucht-Informationen für die Terminplanung abfragen",
oAuthClientRegistration: "Neue OAuth-Client-Anwendungen registrieren",
oAuthClientOverride: "Anforderungen der OAuth-Client-Registrierung umgehen",
liveTracing: "Echtzeit-Traces von Serverereignissen ansehen",
liveMetrics: "Echtzeit-Leistungsmetriken des Servers ansehen",
liveDeliveryTest: "Test-E-Mails senden, um die Zustellkonfiguration zu prüfen",
scimAccess: "Benutzer und Gruppen über den SCIM-Endpunkt bereitstellen",
sysAccountGet: "Konten abrufen",
sysAccountCreate: "Konten anlegen",
sysAccountUpdate: "Konten ändern",
sysAccountDestroy: "Konten löschen",
sysAccountQuery: "Konten abfragen",
sysAccountPasswordGet: "Kontopasswort-Einstellungen abrufen",
sysAccountPasswordUpdate: "Kontopasswort-Einstellungen ändern",
sysAccountSettingsGet: "Kontoeinstellungen abrufen",
sysAccountSettingsUpdate: "Kontoeinstellungen ändern",
sysAcmeProviderGet: "Anbieter abrufen",
sysAcmeProviderCreate: "Anbieter anlegen",
sysAcmeProviderUpdate: "Anbieter ändern",
sysAcmeProviderDestroy: "Anbieter löschen",
sysAcmeProviderQuery: "Anbieter abfragen",
actionReloadSettings: "Neu laden: Servereinstellungen",
actionReloadTlsCertificates: "Neu laden: TLS-Zertifikate",
actionReloadLookupStores: "Neu laden: Lookup-Speicher",
actionReloadBlockedIps: "Neu laden: Liste blockierter IPs",
actionUpdateApps: "Anwendungsverwaltung: Anwendungen ändern",
actionTroubleshootDmarc: "DMARC: Fehlerbehebung",
actionClassifySpam: "Spamfilter: Nachricht klassifizieren",
actionInvalidateCaches: "Cache: Alle Caches invalidieren",
actionInvalidateNegativeCaches: "Cache: Negative Caches invalidieren",
actionPauseMtaQueue: "MTA: Warteschlangenverarbeitung anhalten",
actionResumeMtaQueue: "MTA: Warteschlangenverarbeitung fortsetzen",
sysActionGet: "Aktionen abrufen",
sysActionCreate: "Aktionen anlegen",
sysActionUpdate: "Aktionen ändern",
sysActionDestroy: "Aktionen löschen",
sysActionQuery: "Aktionen abfragen",
sysAddressBookGet: "Adressbucheinstellungen abrufen",
sysAddressBookUpdate: "Adressbucheinstellungen ändern",
sysAiModelGet: "KI-Modelle abrufen",
sysAiModelCreate: "KI-Modelle anlegen",
sysAiModelUpdate: "KI-Modelle ändern",
sysAiModelDestroy: "KI-Modelle löschen",
sysAiModelQuery: "KI-Modelle abfragen",
sysAlertGet: "Warnmeldungen abrufen",
sysAlertCreate: "Warnmeldungen anlegen",
sysAlertUpdate: "Warnmeldungen ändern",
sysAlertDestroy: "Warnmeldungen löschen",
sysAlertQuery: "Warnmeldungen abfragen",
sysAllowedIpGet: "Adressen abrufen",
sysAllowedIpCreate: "Adressen anlegen",
sysAllowedIpUpdate: "Adressen ändern",
sysAllowedIpDestroy: "Adressen löschen",
sysAllowedIpQuery: "Adressen abfragen",
sysApiKeyGet: "API-Schlüssel abrufen",
sysApiKeyCreate: "API-Schlüssel anlegen",
sysApiKeyUpdate: "API-Schlüssel ändern",
sysApiKeyDestroy: "API-Schlüssel löschen",
sysApiKeyQuery: "API-Schlüssel abfragen",
sysAppPasswordGet: "App-Passwörter abrufen",
sysAppPasswordCreate: "App-Passwörter anlegen",
sysAppPasswordUpdate: "App-Passwörter ändern",
sysAppPasswordDestroy: "App-Passwörter löschen",
sysAppPasswordQuery: "App-Passwörter abfragen",
sysApplicationGet: "Anwendungen abrufen",
sysApplicationCreate: "Anwendungen anlegen",
sysApplicationUpdate: "Anwendungen ändern",
sysApplicationDestroy: "Anwendungen löschen",
sysApplicationQuery: "Anwendungen abfragen",
sysArchivedItemGet: "Archivierte Elemente abrufen",
sysArchivedItemCreate: "Archivierte Elemente anlegen",
sysArchivedItemUpdate: "Archivierte Elemente ändern",
sysArchivedItemDestroy: "Archivierte Elemente löschen",
sysArchivedItemQuery: "Archivierte Elemente abfragen",
sysArfExternalReportGet: "Berichte abrufen",
sysArfExternalReportCreate: "Berichte anlegen",
sysArfExternalReportUpdate: "Berichte ändern",
sysArfExternalReportDestroy: "Berichte löschen",
sysArfExternalReportQuery: "Berichte abfragen",
sysAsnGet: "ASN-Einstellungen abrufen",
sysAsnUpdate: "ASN-Einstellungen ändern",
sysAuthenticationGet: "Authentifizierungseinstellungen abrufen",
sysAuthenticationUpdate: "Authentifizierungseinstellungen ändern",
sysBlobStoreGet: "Blob-Speicher-Einstellungen abrufen",
sysBlobStoreUpdate: "Blob-Speicher-Einstellungen ändern",
sysBlockedIpGet: "Adressen abrufen",
sysBlockedIpCreate: "Adressen anlegen",
sysBlockedIpUpdate: "Adressen ändern",
sysBlockedIpDestroy: "Adressen löschen",
sysBlockedIpQuery: "Adressen abfragen",
sysBootstrapGet: "Bootstrap-Einstellungen abrufen",
sysBootstrapUpdate: "Bootstrap-Einstellungen ändern",
sysCacheGet: "Cache-Einstellungen abrufen",
sysCacheUpdate: "Cache-Einstellungen ändern",
sysCalendarGet: "Kalendereinstellungen abrufen",
sysCalendarUpdate: "Kalendereinstellungen ändern",
sysCalendarAlarmGet: "Einstellungen für Kalendererinnerungen abrufen",
sysCalendarAlarmUpdate: "Einstellungen für Kalendererinnerungen ändern",
sysCalendarSchedulingGet: "Einstellungen für die Terminplanung abrufen",
sysCalendarSchedulingUpdate: "Einstellungen für die Terminplanung ändern",
sysCertificateGet: "Zertifikate abrufen",
sysCertificateCreate: "Zertifikate anlegen",
sysCertificateUpdate: "Zertifikate ändern",
sysCertificateDestroy: "Zertifikate löschen",
sysCertificateQuery: "Zertifikate abfragen",
sysClusterNodeGet: "Clusterknoten abrufen",
sysClusterNodeCreate: "Clusterknoten anlegen",
sysClusterNodeUpdate: "Clusterknoten ändern",
sysClusterNodeDestroy: "Clusterknoten löschen",
sysClusterNodeQuery: "Clusterknoten abfragen",
sysClusterRoleGet: "Rollen abrufen",
sysClusterRoleCreate: "Rollen anlegen",
sysClusterRoleUpdate: "Rollen ändern",
sysClusterRoleDestroy: "Rollen löschen",
sysClusterRoleQuery: "Rollen abfragen",
sysCoordinatorGet: "Koordinator-Einstellungen abrufen",
sysCoordinatorUpdate: "Koordinator-Einstellungen ändern",
sysDataRetentionGet: "Einstellungen zur Datenaufbewahrung abrufen",
sysDataRetentionUpdate: "Einstellungen zur Datenaufbewahrung ändern",
sysDataStoreGet: "Datenspeicher-Einstellungen abrufen",
sysDataStoreUpdate: "Datenspeicher-Einstellungen ändern",
sysDirectoryGet: "Verzeichnisse abrufen",
sysDirectoryCreate: "Verzeichnisse anlegen",
sysDirectoryUpdate: "Verzeichnisse ändern",
sysDirectoryDestroy: "Verzeichnisse löschen",
sysDirectoryQuery: "Verzeichnisse abfragen",
sysDkimReportSettingsGet: "DKIM-Berichtseinstellungen abrufen",
sysDkimReportSettingsUpdate: "DKIM-Berichtseinstellungen ändern",
sysDkimSignatureGet: "Signaturen abrufen",
sysDkimSignatureCreate: "Signaturen anlegen",
sysDkimSignatureUpdate: "Signaturen ändern",
sysDkimSignatureDestroy: "Signaturen löschen",
sysDkimSignatureQuery: "Signaturen abfragen",
sysDmarcExternalReportGet: "Berichte abrufen",
sysDmarcExternalReportCreate: "Berichte anlegen",
sysDmarcExternalReportUpdate: "Berichte ändern",
sysDmarcExternalReportDestroy: "Berichte löschen",
sysDmarcExternalReportQuery: "Berichte abfragen",
sysDmarcInternalReportGet: "Berichte abrufen",
sysDmarcInternalReportCreate: "Berichte anlegen",
sysDmarcInternalReportUpdate: "Berichte ändern",
sysDmarcInternalReportDestroy: "Berichte löschen",
sysDmarcInternalReportQuery: "Berichte abfragen",
sysDmarcReportSettingsGet: "DMARC-Berichtseinstellungen abrufen",
sysDmarcReportSettingsUpdate: "DMARC-Berichtseinstellungen ändern",
sysDnsResolverGet: "DNS-Resolver-Einstellungen abrufen",
sysDnsResolverUpdate: "DNS-Resolver-Einstellungen ändern",
sysDnsServerGet: "DNS-Server abrufen",
sysDnsServerCreate: "DNS-Server anlegen",
sysDnsServerUpdate: "DNS-Server ändern",
sysDnsServerDestroy: "DNS-Server löschen",
sysDnsServerQuery: "DNS-Server abfragen",
sysDomainGet: "Domains abrufen",
sysDomainCreate: "Domains anlegen",
sysDomainUpdate: "Domains ändern",
sysDomainDestroy: "Domains löschen",
sysDomainQuery: "Domains abfragen",
sysDsnReportSettingsGet: "DSN-Berichtseinstellungen abrufen",
sysDsnReportSettingsUpdate: "DSN-Berichtseinstellungen ändern",
sysEmailGet: "E-Mail-Einstellungen abrufen",
sysEmailUpdate: "E-Mail-Einstellungen ändern",
sysEnterpriseGet: "Enterprise-Einstellungen abrufen",
sysEnterpriseUpdate: "Enterprise-Einstellungen ändern",
sysEventTracingLevelGet: "Ereignisse abrufen",
sysEventTracingLevelCreate: "Ereignisse anlegen",
sysEventTracingLevelUpdate: "Ereignisse ändern",
sysEventTracingLevelDestroy: "Ereignisse löschen",
sysEventTracingLevelQuery: "Ereignisse abfragen",
sysFileStorageGet: "Dateispeicher-Einstellungen abrufen",
sysFileStorageUpdate: "Dateispeicher-Einstellungen ändern",
sysHttpGet: "HTTP-Einstellungen abrufen",
sysHttpUpdate: "HTTP-Einstellungen ändern",
sysHttpFormGet: "HTTP-Formular-Einstellungen abrufen",
sysHttpFormUpdate: "HTTP-Formular-Einstellungen ändern",
sysHttpLookupGet: "Listen abrufen",
sysHttpLookupCreate: "Listen anlegen",
sysHttpLookupUpdate: "Listen ändern",
sysHttpLookupDestroy: "Listen löschen",
sysHttpLookupQuery: "Listen abfragen",
sysImapGet: "IMAP-Einstellungen abrufen",
sysImapUpdate: "IMAP-Einstellungen ändern",
sysInMemoryStoreGet: "In-Memory-Speicher-Einstellungen abrufen",
sysInMemoryStoreUpdate: "In-Memory-Speicher-Einstellungen ändern",
sysJmapGet: "JMAP-Einstellungen abrufen",
sysJmapUpdate: "JMAP-Einstellungen ändern",
sysLogGet: "Protokolleinträge abrufen",
sysLogCreate: "Protokolleinträge anlegen",
sysLogUpdate: "Protokolleinträge ändern",
sysLogDestroy: "Protokolleinträge löschen",
sysLogQuery: "Protokolleinträge abfragen",
sysMailingListGet: "Mailinglisten abrufen",
sysMailingListCreate: "Mailinglisten anlegen",
sysMailingListUpdate: "Mailinglisten ändern",
sysMailingListDestroy: "Mailinglisten löschen",
sysMailingListQuery: "Mailinglisten abfragen",
sysMaskedEmailGet: "Maskierte E-Mail-Adressen abrufen",
sysMaskedEmailCreate: "Maskierte E-Mail-Adressen anlegen",
sysMaskedEmailUpdate: "Maskierte E-Mail-Adressen ändern",
sysMaskedEmailDestroy: "Maskierte E-Mail-Adressen löschen",
sysMaskedEmailQuery: "Maskierte E-Mail-Adressen abfragen",
sysMemoryLookupKeyGet: "Schlüssel abrufen",
sysMemoryLookupKeyCreate: "Schlüssel anlegen",
sysMemoryLookupKeyUpdate: "Schlüssel ändern",
sysMemoryLookupKeyDestroy: "Schlüssel löschen",
sysMemoryLookupKeyQuery: "Schlüssel abfragen",
sysMemoryLookupKeyValueGet: "Schlüssel abrufen",
sysMemoryLookupKeyValueCreate: "Schlüssel anlegen",
sysMemoryLookupKeyValueUpdate: "Schlüssel ändern",
sysMemoryLookupKeyValueDestroy: "Schlüssel löschen",
sysMemoryLookupKeyValueQuery: "Schlüssel abfragen",
sysMetricGet: "Metriken abrufen",
sysMetricCreate: "Metriken anlegen",
sysMetricUpdate: "Metriken ändern",
sysMetricDestroy: "Metriken löschen",
sysMetricQuery: "Metriken abfragen",
sysMetricsGet: "Metrik-Einstellungen abrufen",
sysMetricsUpdate: "Metrik-Einstellungen ändern",
sysMetricsStoreGet: "Metrikspeicher-Einstellungen abrufen",
sysMetricsStoreUpdate: "Metrikspeicher-Einstellungen ändern",
sysMtaConnectionStrategyGet: "Strategien abrufen",
sysMtaConnectionStrategyCreate: "Strategien anlegen",
sysMtaConnectionStrategyUpdate: "Strategien ändern",
sysMtaConnectionStrategyDestroy: "Strategien löschen",
sysMtaConnectionStrategyQuery: "Strategien abfragen",
sysMtaDeliveryScheduleGet: "Zeitpläne abrufen",
sysMtaDeliveryScheduleCreate: "Zeitpläne anlegen",
sysMtaDeliveryScheduleUpdate: "Zeitpläne ändern",
sysMtaDeliveryScheduleDestroy: "Zeitpläne löschen",
sysMtaDeliveryScheduleQuery: "Zeitpläne abfragen",
sysMtaExtensionsGet: "MTA-Erweiterungseinstellungen abrufen",
sysMtaExtensionsUpdate: "MTA-Erweiterungseinstellungen ändern",
sysMtaHookGet: "Hooks abrufen",
sysMtaHookCreate: "Hooks anlegen",
sysMtaHookUpdate: "Hooks ändern",
sysMtaHookDestroy: "Hooks löschen",
sysMtaHookQuery: "Hooks abfragen",
sysMtaInboundSessionGet: "Einstellungen für eingehende MTA-Sitzungen abrufen",
sysMtaInboundSessionUpdate: "Einstellungen für eingehende MTA-Sitzungen ändern",
sysMtaInboundThrottleGet: "Drosselungen abrufen",
sysMtaInboundThrottleCreate: "Drosselungen anlegen",
sysMtaInboundThrottleUpdate: "Drosselungen ändern",
sysMtaInboundThrottleDestroy: "Drosselungen löschen",
sysMtaInboundThrottleQuery: "Drosselungen abfragen",
sysMtaMilterGet: "Milter abrufen",
sysMtaMilterCreate: "Milter anlegen",
sysMtaMilterUpdate: "Milter ändern",
sysMtaMilterDestroy: "Milter löschen",
sysMtaMilterQuery: "Milter abfragen",
sysMtaOutboundStrategyGet: "Einstellungen der ausgehenden MTA-Strategie abrufen",
sysMtaOutboundStrategyUpdate: "Einstellungen der ausgehenden MTA-Strategie ändern",
sysMtaOutboundThrottleGet: "Drosselungen abrufen",
sysMtaOutboundThrottleCreate: "Drosselungen anlegen",
sysMtaOutboundThrottleUpdate: "Drosselungen ändern",
sysMtaOutboundThrottleDestroy: "Drosselungen löschen",
sysMtaOutboundThrottleQuery: "Drosselungen abfragen",
sysMtaQueueQuotaGet: "Kontingente abrufen",
sysMtaQueueQuotaCreate: "Kontingente anlegen",
sysMtaQueueQuotaUpdate: "Kontingente ändern",
sysMtaQueueQuotaDestroy: "Kontingente löschen",
sysMtaQueueQuotaQuery: "Kontingente abfragen",
sysMtaRouteGet: "Routen abrufen",
sysMtaRouteCreate: "Routen anlegen",
sysMtaRouteUpdate: "Routen ändern",
sysMtaRouteDestroy: "Routen löschen",
sysMtaRouteQuery: "Routen abfragen",
sysMtaStageAuthGet: "Einstellungen der MTA-Phase AUTH abrufen",
sysMtaStageAuthUpdate: "Einstellungen der MTA-Phase AUTH ändern",
sysMtaStageConnectGet: "Einstellungen der MTA-Phase CONNECT abrufen",
sysMtaStageConnectUpdate: "Einstellungen der MTA-Phase CONNECT ändern",
sysMtaStageDataGet: "Einstellungen der MTA-Phase DATA abrufen",
sysMtaStageDataUpdate: "Einstellungen der MTA-Phase DATA ändern",
sysMtaStageEhloGet: "Einstellungen der MTA-Phase EHLO abrufen",
sysMtaStageEhloUpdate: "Einstellungen der MTA-Phase EHLO ändern",
sysMtaStageMailGet: "Einstellungen der MTA-Phase MAIL abrufen",
sysMtaStageMailUpdate: "Einstellungen der MTA-Phase MAIL ändern",
sysMtaStageRcptGet: "Einstellungen der MTA-Phase RCPT abrufen",
sysMtaStageRcptUpdate: "Einstellungen der MTA-Phase RCPT ändern",
sysMtaStsGet: "MTA-STS-Einstellungen abrufen",
sysMtaStsUpdate: "MTA-STS-Einstellungen ändern",
sysMtaTlsStrategyGet: "Strategien abrufen",
sysMtaTlsStrategyCreate: "Strategien anlegen",
sysMtaTlsStrategyUpdate: "Strategien ändern",
sysMtaTlsStrategyDestroy: "Strategien löschen",
sysMtaTlsStrategyQuery: "Strategien abfragen",
sysMtaVirtualQueueGet: "Warteschlangen abrufen",
sysMtaVirtualQueueCreate: "Warteschlangen anlegen",
sysMtaVirtualQueueUpdate: "Warteschlangen ändern",
sysMtaVirtualQueueDestroy: "Warteschlangen löschen",
sysMtaVirtualQueueQuery: "Warteschlangen abfragen",
sysNetworkListenerGet: "Listener abrufen",
sysNetworkListenerCreate: "Listener anlegen",
sysNetworkListenerUpdate: "Listener ändern",
sysNetworkListenerDestroy: "Listener löschen",
sysNetworkListenerQuery: "Listener abfragen",
sysOAuthClientGet: "OAuth-Clients abrufen",
sysOAuthClientCreate: "OAuth-Clients anlegen",
sysOAuthClientUpdate: "OAuth-Clients ändern",
sysOAuthClientDestroy: "OAuth-Clients löschen",
sysOAuthClientQuery: "OAuth-Clients abfragen",
sysOidcProviderGet: "OIDC-Anbieter-Einstellungen abrufen",
sysOidcProviderUpdate: "OIDC-Anbieter-Einstellungen ändern",
sysPublicKeyGet: "Öffentliche Schlüssel abrufen",
sysPublicKeyCreate: "Öffentliche Schlüssel anlegen",
sysPublicKeyUpdate: "Öffentliche Schlüssel ändern",
sysPublicKeyDestroy: "Öffentliche Schlüssel löschen",
sysPublicKeyQuery: "Öffentliche Schlüssel abfragen",
sysQueuedMessageGet: "Nachrichten abrufen",
sysQueuedMessageCreate: "Nachrichten anlegen",
sysQueuedMessageUpdate: "Nachrichten ändern",
sysQueuedMessageDestroy: "Nachrichten löschen",
sysQueuedMessageQuery: "Nachrichten abfragen",
sysReportSettingsGet: "Berichtseinstellungen abrufen",
sysReportSettingsUpdate: "Berichtseinstellungen ändern",
sysRoleGet: "Rollen abrufen",
sysRoleCreate: "Rollen anlegen",
sysRoleUpdate: "Rollen ändern",
sysRoleDestroy: "Rollen löschen",
sysRoleQuery: "Rollen abfragen",
sysSearchGet: "Sucheinstellungen abrufen",
sysSearchUpdate: "Sucheinstellungen ändern",
sysSearchStoreGet: "Suchspeicher-Einstellungen abrufen",
sysSearchStoreUpdate: "Suchspeicher-Einstellungen ändern",
sysSecurityGet: "Sicherheitseinstellungen abrufen",
sysSecurityUpdate: "Sicherheitseinstellungen ändern",
sysSenderAuthGet: "Einstellungen zur Absenderauthentifizierung abrufen",
sysSenderAuthUpdate: "Einstellungen zur Absenderauthentifizierung ändern",
sysSharingGet: "Freigabeeinstellungen abrufen",
sysSharingUpdate: "Freigabeeinstellungen ändern",
sysSieveSystemInterpreterGet: "Einstellungen des Sieve-Systeminterpreters abrufen",
sysSieveSystemInterpreterUpdate: "Einstellungen des Sieve-Systeminterpreters ändern",
sysSieveSystemScriptGet: "Skripte abrufen",
sysSieveSystemScriptCreate: "Skripte anlegen",
sysSieveSystemScriptUpdate: "Skripte ändern",
sysSieveSystemScriptDestroy: "Skripte löschen",
sysSieveSystemScriptQuery: "Skripte abfragen",
sysSieveUserInterpreterGet: "Einstellungen des Sieve-Benutzerinterpreters abrufen",
sysSieveUserInterpreterUpdate: "Einstellungen des Sieve-Benutzerinterpreters ändern",
sysSieveUserScriptGet: "Skripte abrufen",
sysSieveUserScriptCreate: "Skripte anlegen",
sysSieveUserScriptUpdate: "Skripte ändern",
sysSieveUserScriptDestroy: "Skripte löschen",
sysSieveUserScriptQuery: "Skripte abfragen",
sysSpamClassifierGet: "Spam-Klassifikator-Einstellungen abrufen",
sysSpamClassifierUpdate: "Spam-Klassifikator-Einstellungen ändern",
sysSpamDnsblServerGet: "Server abrufen",
sysSpamDnsblServerCreate: "Server anlegen",
sysSpamDnsblServerUpdate: "Server ändern",
sysSpamDnsblServerDestroy: "Server löschen",
sysSpamDnsblServerQuery: "Server abfragen",
sysSpamDnsblSettingsGet: "Spam-DNSBL-Einstellungen abrufen",
sysSpamDnsblSettingsUpdate: "Spam-DNSBL-Einstellungen ändern",
sysSpamFileExtensionGet: "Dateiendungen abrufen",
sysSpamFileExtensionCreate: "Dateiendungen anlegen",
sysSpamFileExtensionUpdate: "Dateiendungen ändern",
sysSpamFileExtensionDestroy: "Dateiendungen löschen",
sysSpamFileExtensionQuery: "Dateiendungen abfragen",
sysSpamLlmGet: "Spam-LLM-Einstellungen abrufen",
sysSpamLlmUpdate: "Spam-LLM-Einstellungen ändern",
sysSpamPyzorGet: "Spam-Pyzor-Einstellungen abrufen",
sysSpamPyzorUpdate: "Spam-Pyzor-Einstellungen ändern",
sysSpamRuleGet: "Regeln abrufen",
sysSpamRuleCreate: "Regeln anlegen",
sysSpamRuleUpdate: "Regeln ändern",
sysSpamRuleDestroy: "Regeln löschen",
sysSpamRuleQuery: "Regeln abfragen",
sysSpamSettingsGet: "Spam-Einstellungen abrufen",
sysSpamSettingsUpdate: "Spam-Einstellungen ändern",
sysSpamTagGet: "Tags abrufen",
sysSpamTagCreate: "Tags anlegen",
sysSpamTagUpdate: "Tags ändern",
sysSpamTagDestroy: "Tags löschen",
sysSpamTagQuery: "Tags abfragen",
sysSpamTrainingSampleGet: "Beispiele abrufen",
sysSpamTrainingSampleCreate: "Beispiele anlegen",
sysSpamTrainingSampleUpdate: "Beispiele ändern",
sysSpamTrainingSampleDestroy: "Beispiele löschen",
sysSpamTrainingSampleQuery: "Beispiele abfragen",
sysSpfReportSettingsGet: "SPF-Berichtseinstellungen abrufen",
sysSpfReportSettingsUpdate: "SPF-Berichtseinstellungen ändern",
sysStoreLookupGet: "Lookups abrufen",
sysStoreLookupCreate: "Lookups anlegen",
sysStoreLookupUpdate: "Lookups ändern",
sysStoreLookupDestroy: "Lookups löschen",
sysStoreLookupQuery: "Lookups abfragen",
sysSystemSettingsGet: "Systemeinstellungen abrufen",
sysSystemSettingsUpdate: "Systemeinstellungen ändern",
taskIndexDocument: "Dokument indizieren",
taskUnindexDocument: "Dokument aus dem Index entfernen",
taskIndexTrace: "Telemetrie-Trace indizieren",
taskCalendarAlarmEmail: "E-Mail zur Kalendererinnerung",
taskCalendarAlarmNotification: "Benachrichtigung zur Kalendererinnerung",
taskCalendarItipMessage: "iTIP-Kalendernachricht",
taskMergeThreads: "E-Mail-Threads zusammenführen",
taskDmarcReport: "DMARC-Bericht an entfernten Server senden",
taskTlsReport: "TLS-Bericht an entfernten Server senden",
taskRestoreArchivedItem: "Archiviertes Element wiederherstellen",
taskDestroyAccount: "Konto und alle zugehörigen Daten löschen",
taskAccountMaintenance: "Wartungsvorgänge für Konten ausführen",
taskTenantMaintenance: "Wartungsvorgänge für Mandanten ausführen",
taskStoreMaintenance: "Wartungsvorgänge für den Speicher ausführen",
taskSpamFilterMaintenance: "Wartungsvorgänge für den Spamfilter ausführen",
taskAcmeRenewal: "ACME-Zertifikatserneuerung für eine Domain ausführen",
taskDkimManagement: "DKIM-Schlüsselwechsel für eine Domain ausführen",
taskDnsManagement: "DNS-Verwaltung für eine Domain ausführen",
sysTaskGet: "Aufgaben abrufen",
sysTaskCreate: "Aufgaben anlegen",
sysTaskUpdate: "Aufgaben ändern",
sysTaskDestroy: "Aufgaben löschen",
sysTaskQuery: "Aufgaben abfragen",
sysTaskManagerGet: "Einstellungen der Aufgabenverwaltung abrufen",
sysTaskManagerUpdate: "Einstellungen der Aufgabenverwaltung ändern",
sysTenantGet: "Mandanten abrufen",
sysTenantCreate: "Mandanten anlegen",
sysTenantUpdate: "Mandanten ändern",
sysTenantDestroy: "Mandanten löschen",
sysTenantQuery: "Mandanten abfragen",
sysTlsExternalReportGet: "Berichte abrufen",
sysTlsExternalReportCreate: "Berichte anlegen",
sysTlsExternalReportUpdate: "Berichte ändern",
sysTlsExternalReportDestroy: "Berichte löschen",
sysTlsExternalReportQuery: "Berichte abfragen",
sysTlsInternalReportGet: "Berichte abrufen",
sysTlsInternalReportCreate: "Berichte anlegen",
sysTlsInternalReportUpdate: "Berichte ändern",
sysTlsInternalReportDestroy: "Berichte löschen",
sysTlsInternalReportQuery: "Berichte abfragen",
sysTlsReportSettingsGet: "TLS-Berichtseinstellungen abrufen",
sysTlsReportSettingsUpdate: "TLS-Berichtseinstellungen ändern",
sysTraceGet: "Traces abrufen",
sysTraceCreate: "Traces anlegen",
sysTraceUpdate: "Traces ändern",
sysTraceDestroy: "Traces löschen",
sysTraceQuery: "Traces abfragen",
sysTracerGet: "Tracer abrufen",
sysTracerCreate: "Tracer anlegen",
sysTracerUpdate: "Tracer ändern",
sysTracerDestroy: "Tracer löschen",
sysTracerQuery: "Tracer abfragen",
sysTracingStoreGet: "Tracing-Speicher-Einstellungen abrufen",
sysTracingStoreUpdate: "Tracing-Speicher-Einstellungen ändern",
sysWebDavGet: "WebDAV-Einstellungen abrufen",
sysWebDavUpdate: "WebDAV-Einstellungen ändern",
sysWebHookGet: "Webhooks abrufen",
sysWebHookCreate: "Webhooks anlegen",
sysWebHookUpdate: "Webhooks ändern",
sysWebHookDestroy: "Webhooks löschen",
sysWebHookQuery: "Webhooks abfragen",
},
};
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in Spanish, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "Gestión de modelos de IA",
"API keys Management": "Gestión de claves de API",
"Accounts Management": "Gestión de cuentas",
"Action": "Acción",
"Actions Management": "Gestión de acciones",
"Addresses Management": "Gestión de direcciones",
"Alerts Management": "Gestión de alertas",
"App passwords Management": "Gestión de contraseñas de aplicación",
"Applications Management": "Gestión de aplicaciones",
"Archived items Management": "Gestión de elementos archivados",
"Calendar": "Calendario",
"Certificates Management": "Gestión de certificados",
"Cluster nodes Management": "Gestión de nodos del clúster",
"DNS servers Management": "Gestión de servidores DNS",
"Directories Management": "Gestión de directorios",
"Domains Management": "Gestión de dominios",
"Email": "Correo",
"Events Management": "Gestión de eventos",
"Extensions Management": "Gestión de extensiones",
"Hooks Management": "Gestión de hooks",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "Gestión de claves",
"Listeners Management": "Gestión de agentes de escucha",
"Lists Management": "Gestión de listas",
"Log entries Management": "Gestión de entradas de registro",
"Lookups Management": "Gestión de tablas de consulta",
"Mailing lists Management": "Gestión de listas de correo",
"ManageSieve": "ManageSieve",
"Masked emails Management": "Gestión de correos enmascarados",
"Messages Management": "Gestión de mensajes",
"Metrics Management": "Gestión de métricas",
"Milters Management": "Gestión de milters",
"OAuth clients Management": "Gestión de clientes OAuth",
"POP3": "POP3",
"Providers Management": "Gestión de proveedores",
"Public keys Management": "Gestión de claves públicas",
"Queues Management": "Gestión de colas",
"Quotas Management": "Gestión de cuotas",
"Reports Management": "Gestión de informes",
"Roles Management": "Gestión de roles",
"Routes Management": "Gestión de rutas",
"Rules Management": "Gestión de reglas",
"Samples Management": "Gestión de muestras",
"Schedules Management": "Gestión de programaciones",
"Scripts Management": "Gestión de scripts",
"Servers Management": "Gestión de servidores",
"Settings": "Configuración",
"Signatures Management": "Gestión de firmas",
"Strategies Management": "Gestión de estrategias",
"Tags Management": "Gestión de etiquetas",
"Task": "Tarea",
"Tasks Management": "Gestión de tareas",
"Tenants Management": "Gestión de inquilinos",
"Throttles Management": "Gestión de limitadores",
"Tracers Management": "Gestión de trazadores",
"Traces Management": "Gestión de trazas",
"WebDAV": "WebDAV",
"Webhooks Management": "Gestión de webhooks",
},
labels: {
authenticate: "Iniciar sesión en el servidor",
authenticateWithAlias: "Iniciar sesión con direcciones de alias de correo",
interactAi: "Interactuar con modelos de IA",
impersonate: "Actuar en nombre de otro usuario",
unlimitedRequests: "Omitir los límites de frecuencia de solicitudes",
unlimitedUploads: "Omitir los límites de tamaño y frecuencia de subida",
fetchAnyBlob: "Recuperar cualquier blob, incluso los que no pertenecen a la cuenta",
emailSend: "Enviar correos",
emailReceive: "Recibir correos",
calendarAlarmsSend: "Enviar notificaciones de alarmas de calendario por correo",
calendarSchedulingSend: "Enviar invitaciones y actualizaciones de calendario por correo",
calendarSchedulingReceive: "Procesar invitaciones y respuestas de calendario entrantes",
jmapPushSubscriptionGet: "Recuperar los detalles de suscripciones push",
jmapPushSubscriptionCreate: "Crear suscripciones push nuevas",
jmapPushSubscriptionUpdate: "Modificar suscripciones push existentes",
jmapPushSubscriptionDestroy: "Quitar suscripciones push",
jmapMailboxGet: "Recuperar los detalles y propiedades de buzones",
jmapMailboxChanges: "Seguir los cambios en buzones desde un estado dado",
jmapMailboxQuery: "Buscar buzones que coincidan con criterios",
jmapMailboxQueryChanges: "Seguir los cambios en los resultados de consultas de buzones",
jmapMailboxCreate: "Crear buzones nuevos",
jmapMailboxUpdate: "Modificar buzones existentes",
jmapMailboxDestroy: "Quitar buzones",
jmapThreadGet: "Recuperar los detalles de conversaciones de correo",
jmapThreadChanges: "Seguir los cambios en conversaciones desde un estado dado",
jmapEmailGet: "Recuperar los detalles y propiedades de correos",
jmapEmailChanges: "Seguir los cambios en correos desde un estado dado",
jmapEmailQuery: "Buscar correos que coincidan con criterios",
jmapEmailQueryChanges: "Seguir los cambios en los resultados de consultas de correos",
jmapEmailCreate: "Crear correos nuevos",
jmapEmailUpdate: "Modificar correos existentes",
jmapEmailDestroy: "Quitar correos",
jmapEmailCopy: "Copiar correos a otra cuenta",
jmapEmailImport: "Importar correos desde datos de blobs",
jmapEmailParse: "Analizar datos en bruto de correos sin almacenarlos",
jmapSearchSnippetGet: "Recuperar fragmentos de resultados de búsqueda de correos",
jmapIdentityGet: "Recuperar los detalles de identidades de remitente",
jmapIdentityChanges: "Seguir los cambios en identidades desde un estado dado",
jmapIdentityCreate: "Crear identidades de remitente nuevas",
jmapIdentityUpdate: "Modificar identidades de remitente existentes",
jmapIdentityDestroy: "Quitar identidades de remitente",
jmapEmailSubmissionGet: "Recuperar los detalles de envíos de correo",
jmapEmailSubmissionChanges: "Seguir los cambios en envíos de correo desde un estado dado",
jmapEmailSubmissionQuery: "Buscar envíos de correo que coincidan con criterios",
jmapEmailSubmissionQueryChanges: "Seguir los cambios en los resultados de consultas de envíos de correo",
jmapEmailSubmissionCreate: "Crear envíos de correo nuevos para enviarlos",
jmapEmailSubmissionUpdate: "Modificar envíos de correo existentes",
jmapEmailSubmissionDestroy: "Quitar envíos de correo",
jmapVacationResponseGet: "Recuperar la configuración de respuesta de ausencia",
jmapVacationResponseCreate: "Crear la configuración de respuesta de ausencia",
jmapVacationResponseUpdate: "Modificar la configuración de respuesta de ausencia",
jmapVacationResponseDestroy: "Quitar la configuración de respuesta de ausencia",
jmapSieveScriptGet: "Recuperar los detalles de scripts de filtro Sieve",
jmapSieveScriptQuery: "Buscar scripts Sieve que coincidan con criterios",
jmapSieveScriptValidate: "Validar un script Sieve sin almacenarlo",
jmapSieveScriptCreate: "Crear scripts de filtro Sieve nuevos",
jmapSieveScriptUpdate: "Modificar scripts de filtro Sieve existentes",
jmapSieveScriptDestroy: "Quitar scripts de filtro Sieve",
jmapPrincipalGet: "Recuperar los detalles y propiedades de principales",
jmapPrincipalQuery: "Buscar principales que coincidan con criterios",
jmapPrincipalChanges: "Seguir los cambios en principales desde un estado dado",
jmapPrincipalQueryChanges: "Seguir los cambios en los resultados de consultas de principales",
jmapPrincipalGetAvailability: "Consultar la información de disponibilidad de principales",
jmapPrincipalCreate: "Crear principales nuevos",
jmapPrincipalUpdate: "Modificar principales existentes",
jmapPrincipalDestroy: "Quitar principales",
jmapQuotaGet: "Recuperar el uso y los límites de cuotas",
jmapQuotaChanges: "Seguir los cambios en cuotas desde un estado dado",
jmapQuotaQuery: "Buscar cuotas que coincidan con criterios",
jmapQuotaQueryChanges: "Seguir los cambios en los resultados de consultas de cuotas",
jmapBlobGet: "Descargar datos de blobs",
jmapBlobCopy: "Copiar blobs a otra cuenta",
jmapBlobLookup: "Localizar el uso de blobs en los distintos tipos de datos",
jmapBlobUpload: "Subir datos de blobs nuevos",
jmapAddressBookGet: "Recuperar los detalles y propiedades de libretas de direcciones",
jmapAddressBookChanges: "Seguir los cambios en libretas de direcciones desde un estado dado",
jmapAddressBookCreate: "Crear libretas de direcciones nuevas",
jmapAddressBookUpdate: "Modificar libretas de direcciones existentes",
jmapAddressBookDestroy: "Quitar libretas de direcciones",
jmapContactCardGet: "Recuperar los detalles de tarjetas de contacto",
jmapContactCardChanges: "Seguir los cambios en tarjetas de contacto desde un estado dado",
jmapContactCardQuery: "Buscar tarjetas de contacto que coincidan con criterios",
jmapContactCardQueryChanges: "Seguir los cambios en los resultados de consultas de tarjetas de contacto",
jmapContactCardCreate: "Crear tarjetas de contacto nuevas",
jmapContactCardUpdate: "Modificar tarjetas de contacto existentes",
jmapContactCardDestroy: "Quitar tarjetas de contacto",
jmapContactCardCopy: "Copiar tarjetas de contacto a otra cuenta",
jmapContactCardParse: "Analizar datos en bruto de tarjetas de contacto sin almacenarlos",
jmapFileNodeGet: "Recuperar los detalles y propiedades de nodos de archivo",
jmapFileNodeChanges: "Seguir los cambios en nodos de archivo desde un estado dado",
jmapFileNodeQuery: "Buscar nodos de archivo que coincidan con criterios",
jmapFileNodeQueryChanges: "Seguir los cambios en los resultados de consultas de nodos de archivo",
jmapFileNodeCreate: "Crear nodos de archivo nuevos",
jmapFileNodeUpdate: "Modificar nodos de archivo existentes",
jmapFileNodeDestroy: "Quitar nodos de archivo",
jmapFileNodeCopy: "Copiar nodos de archivo a otra cuenta",
jmapShareNotificationGet: "Recuperar los detalles de notificaciones de uso compartido",
jmapShareNotificationChanges: "Seguir los cambios en notificaciones de uso compartido desde un estado dado",
jmapShareNotificationQuery: "Buscar notificaciones de uso compartido que coincidan con criterios",
jmapShareNotificationQueryChanges: "Seguir los cambios en los resultados de consultas de notificaciones de uso compartido",
jmapShareNotificationCreate: "Crear notificaciones de uso compartido nuevas",
jmapShareNotificationUpdate: "Modificar notificaciones de uso compartido existentes",
jmapShareNotificationDestroy: "Quitar notificaciones de uso compartido",
jmapCalendarGet: "Recuperar los detalles y propiedades de calendarios",
jmapCalendarChanges: "Seguir los cambios en calendarios desde un estado dado",
jmapCalendarCreate: "Crear calendarios nuevos",
jmapCalendarUpdate: "Modificar calendarios existentes",
jmapCalendarDestroy: "Quitar calendarios",
jmapCalendarEventGet: "Recuperar los detalles de eventos de calendario",
jmapCalendarEventChanges: "Seguir los cambios en eventos de calendario desde un estado dado",
jmapCalendarEventQuery: "Buscar eventos de calendario que coincidan con criterios",
jmapCalendarEventQueryChanges: "Seguir los cambios en los resultados de consultas de eventos de calendario",
jmapCalendarEventCreate: "Crear eventos de calendario nuevos",
jmapCalendarEventUpdate: "Modificar eventos de calendario existentes",
jmapCalendarEventDestroy: "Quitar eventos de calendario",
jmapCalendarEventCopy: "Copiar eventos de calendario a otra cuenta",
jmapCalendarEventParse: "Analizar datos en bruto de eventos de calendario sin almacenarlos",
jmapCalendarEventNotificationGet: "Recuperar los detalles de notificaciones de eventos de calendario",
jmapCalendarEventNotificationChanges: "Seguir los cambios en notificaciones de eventos de calendario desde un estado dado",
jmapCalendarEventNotificationQuery: "Buscar notificaciones de eventos de calendario que coincidan con criterios",
jmapCalendarEventNotificationQueryChanges: "Seguir los cambios en los resultados de consultas de notificaciones de eventos de calendario",
jmapCalendarEventNotificationCreate: "Crear notificaciones de eventos de calendario nuevas",
jmapCalendarEventNotificationUpdate: "Modificar notificaciones de eventos de calendario existentes",
jmapCalendarEventNotificationDestroy: "Quitar notificaciones de eventos de calendario",
jmapParticipantIdentityGet: "Recuperar los detalles de identidades de participante",
jmapParticipantIdentityChanges: "Seguir los cambios en identidades de participante desde un estado dado",
jmapParticipantIdentityCreate: "Crear identidades de participante nuevas",
jmapParticipantIdentityUpdate: "Modificar identidades de participante existentes",
jmapParticipantIdentityDestroy: "Quitar identidades de participante",
jmapCoreEcho: "Devolver los datos de entrada como eco para pruebas",
imapAuthenticate: "Iniciar sesión en el servidor IMAP",
imapAclGet: "Ver las listas de control de acceso de buzones",
imapAclSet: "Modificar las listas de control de acceso de buzones",
imapMyRights: "Ver los permisos propios sobre un buzón",
imapListRights: "Listar los indicadores de permiso disponibles para un buzón",
imapAppend: "Subir mensajes a un buzón",
imapCapability: "Consultar las extensiones IMAP admitidas",
imapId: "Consultar la identificación y la versión del servidor",
imapCopy: "Copiar mensajes entre buzones",
imapMove: "Mover mensajes entre buzones",
imapCreate: "Crear buzones nuevos",
imapDelete: "Eliminar buzones o marcar mensajes para su eliminación",
imapEnable: "Activar extensiones IMAP opcionales",
imapExpunge: "Quitar definitivamente los mensajes marcados para su eliminación",
imapFetch: "Descargar el contenido y los metadatos de mensajes",
imapIdle: "Recibir notificaciones en tiempo real de cambios en buzones",
imapList: "Listar los buzones disponibles y sus atributos",
imapLsub: "Listar los buzones a los que el usuario está suscrito",
imapNamespace: "Consultar los prefijos de espacio de nombres de buzones disponibles",
imapRename: "Cambiar el nombre de buzones o moverlos",
imapSearch: "Buscar mensajes por criterios",
imapSort: "Recuperar mensajes en un orden especificado",
imapSelect: "Abrir un buzón con acceso de lectura y escritura",
imapExamine: "Abrir un buzón con acceso de solo lectura",
imapStatus: "Consultar el número de mensajes y el estado de buzones",
imapStore: "Establecer o borrar indicadores de mensajes (leído, destacado, eliminado, etc.)",
imapSubscribe: "Suscribirse a buzones o cancelar la suscripción",
imapThread: "Agrupar mensajes en conversaciones",
pop3Authenticate: "Iniciar sesión en el servidor POP3",
pop3List: "Listar los mensajes y sus tamaños",
pop3Uidl: "Recuperar los identificadores únicos de mensajes",
pop3Stat: "Consultar el número de mensajes y el tamaño total del buzón",
pop3Retr: "Descargar el contenido de mensajes",
pop3Dele: "Marcar mensajes para eliminarlos al desconectar",
sieveAuthenticate: "Iniciar sesión en el servidor ManageSieve",
sieveListScripts: "Listar los scripts Sieve subidos",
sieveSetActive: "Designar qué script Sieve está activo",
sieveGetScript: "Descargar el contenido de scripts Sieve",
sievePutScript: "Subir o reemplazar un script Sieve",
sieveDeleteScript: "Quitar un script Sieve",
sieveRenameScript: "Cambiar el nombre de un script Sieve",
sieveCheckScript: "Validar la sintaxis de scripts Sieve sin guardarlos",
sieveHaveSpace: "Comprobar si la cuota permite subir un script de un tamaño dado",
davSyncCollection: "Sincronizar los cambios de colecciones con el cliente",
davExpandProperty: "Expandir propiedades que hacen referencia a otros recursos",
davPrincipalAcl: "Gestionar las propiedades de control de acceso de principales",
davPrincipalList: "Listar los principales disponibles en el sistema",
davPrincipalMatch: "Hacer coincidir principales según criterios especificados",
davPrincipalSearch: "Buscar principales por valores de propiedades",
davPrincipalSearchPropSet: "Consultar qué propiedades de principales se pueden buscar",
davFilePropFind: "Recuperar propiedades de recursos de archivo",
davFilePropPatch: "Modificar propiedades de recursos de archivo",
davFileGet: "Descargar recursos de archivo",
davFileMkCol: "Crear colecciones de archivos o directorios nuevos",
davFileDelete: "Quitar recursos de archivo",
davFilePut: "Subir o modificar recursos de archivo",
davFileCopy: "Copiar recursos de archivo a nuevas ubicaciones",
davFileMove: "Mover recursos de archivo a nuevas ubicaciones",
davFileLock: "Bloquear recursos de archivo para evitar modificaciones simultáneas",
davFileAcl: "Gestionar las listas de control de acceso de recursos de archivo",
davCardPropFind: "Recuperar propiedades de entradas de libretas de direcciones",
davCardPropPatch: "Modificar propiedades de entradas de libretas de direcciones",
davCardGet: "Descargar entradas de libretas de direcciones",
davCardMkCol: "Crear colecciones de libretas de direcciones nuevas",
davCardDelete: "Quitar entradas o colecciones de libretas de direcciones",
davCardPut: "Subir o modificar entradas de libretas de direcciones",
davCardCopy: "Copiar entradas de libretas de direcciones a nuevas ubicaciones",
davCardMove: "Mover entradas de libretas de direcciones a nuevas ubicaciones",
davCardLock: "Bloquear entradas de libretas de direcciones para evitar modificaciones simultáneas",
davCardAcl: "Gestionar las listas de control de acceso de entradas de libretas de direcciones",
davCardQuery: "Buscar entradas de libretas de direcciones que coincidan con criterios",
davCardMultiGet: "Recuperar varias entradas de libretas de direcciones en una sola solicitud",
davCalPropFind: "Recuperar propiedades de entradas de calendario",
davCalPropPatch: "Modificar propiedades de entradas de calendario",
davCalGet: "Descargar entradas de calendario",
davCalMkCol: "Crear colecciones de calendario nuevas",
davCalDelete: "Quitar entradas o colecciones de calendario",
davCalPut: "Subir o modificar entradas de calendario",
davCalCopy: "Copiar entradas de calendario a nuevas ubicaciones",
davCalMove: "Mover entradas de calendario a nuevas ubicaciones",
davCalLock: "Bloquear entradas de calendario para evitar modificaciones simultáneas",
davCalAcl: "Gestionar las listas de control de acceso de entradas de calendario",
davCalQuery: "Buscar entradas de calendario que coincidan con criterios",
davCalMultiGet: "Recuperar varias entradas de calendario en una sola solicitud",
davCalFreeBusyQuery: "Consultar la información de disponibilidad para la programación",
oAuthClientRegistration: "Registrar aplicaciones cliente OAuth nuevas",
oAuthClientOverride: "Omitir los requisitos de registro de clientes OAuth",
liveTracing: "Ver trazas de eventos del servidor en tiempo real",
liveMetrics: "Ver métricas de rendimiento del servidor en tiempo real",
liveDeliveryTest: "Enviar correos de prueba para verificar la configuración de entrega",
scimAccess: "Aprovisionar usuarios y grupos mediante el punto de conexión SCIM",
sysAccountGet: "Obtener cuentas",
sysAccountCreate: "Crear cuentas",
sysAccountUpdate: "Actualizar cuentas",
sysAccountDestroy: "Destruir cuentas",
sysAccountQuery: "Consultar cuentas",
sysAccountPasswordGet: "Obtener la configuración de contraseñas de cuenta",
sysAccountPasswordUpdate: "Actualizar la configuración de contraseñas de cuenta",
sysAccountSettingsGet: "Obtener la configuración de la cuenta",
sysAccountSettingsUpdate: "Actualizar la configuración de la cuenta",
sysAcmeProviderGet: "Obtener proveedores",
sysAcmeProviderCreate: "Crear proveedores",
sysAcmeProviderUpdate: "Actualizar proveedores",
sysAcmeProviderDestroy: "Destruir proveedores",
sysAcmeProviderQuery: "Consultar proveedores",
actionReloadSettings: "Recargar: configuración del servidor",
actionReloadTlsCertificates: "Recargar: certificados TLS",
actionReloadLookupStores: "Recargar: almacenes de tablas de consulta",
actionReloadBlockedIps: "Recargar: lista de IP bloqueadas",
actionUpdateApps: "Gestión de aplicaciones: actualizar aplicaciones",
actionTroubleshootDmarc: "DMARC: solución de problemas",
actionClassifySpam: "Filtro de spam: clasificar un mensaje",
actionInvalidateCaches: "Caché: invalidar todas las cachés",
actionInvalidateNegativeCaches: "Caché: invalidar las cachés negativas",
actionPauseMtaQueue: "MTA: pausar el procesamiento de la cola",
actionResumeMtaQueue: "MTA: reanudar el procesamiento de la cola",
sysActionGet: "Obtener acciones",
sysActionCreate: "Crear acciones",
sysActionUpdate: "Actualizar acciones",
sysActionDestroy: "Destruir acciones",
sysActionQuery: "Consultar acciones",
sysAddressBookGet: "Obtener la configuración de libretas de direcciones",
sysAddressBookUpdate: "Actualizar la configuración de libretas de direcciones",
sysAiModelGet: "Obtener modelos de IA",
sysAiModelCreate: "Crear modelos de IA",
sysAiModelUpdate: "Actualizar modelos de IA",
sysAiModelDestroy: "Destruir modelos de IA",
sysAiModelQuery: "Consultar modelos de IA",
sysAlertGet: "Obtener alertas",
sysAlertCreate: "Crear alertas",
sysAlertUpdate: "Actualizar alertas",
sysAlertDestroy: "Destruir alertas",
sysAlertQuery: "Consultar alertas",
sysAllowedIpGet: "Obtener direcciones",
sysAllowedIpCreate: "Crear direcciones",
sysAllowedIpUpdate: "Actualizar direcciones",
sysAllowedIpDestroy: "Destruir direcciones",
sysAllowedIpQuery: "Consultar direcciones",
sysApiKeyGet: "Obtener claves de API",
sysApiKeyCreate: "Crear claves de API",
sysApiKeyUpdate: "Actualizar claves de API",
sysApiKeyDestroy: "Destruir claves de API",
sysApiKeyQuery: "Consultar claves de API",
sysAppPasswordGet: "Obtener contraseñas de aplicación",
sysAppPasswordCreate: "Crear contraseñas de aplicación",
sysAppPasswordUpdate: "Actualizar contraseñas de aplicación",
sysAppPasswordDestroy: "Destruir contraseñas de aplicación",
sysAppPasswordQuery: "Consultar contraseñas de aplicación",
sysApplicationGet: "Obtener aplicaciones",
sysApplicationCreate: "Crear aplicaciones",
sysApplicationUpdate: "Actualizar aplicaciones",
sysApplicationDestroy: "Destruir aplicaciones",
sysApplicationQuery: "Consultar aplicaciones",
sysArchivedItemGet: "Obtener elementos archivados",
sysArchivedItemCreate: "Crear elementos archivados",
sysArchivedItemUpdate: "Actualizar elementos archivados",
sysArchivedItemDestroy: "Destruir elementos archivados",
sysArchivedItemQuery: "Consultar elementos archivados",
sysArfExternalReportGet: "Obtener informes",
sysArfExternalReportCreate: "Crear informes",
sysArfExternalReportUpdate: "Actualizar informes",
sysArfExternalReportDestroy: "Destruir informes",
sysArfExternalReportQuery: "Consultar informes",
sysAsnGet: "Obtener la configuración de ASN",
sysAsnUpdate: "Actualizar la configuración de ASN",
sysAuthenticationGet: "Obtener la configuración de autenticación",
sysAuthenticationUpdate: "Actualizar la configuración de autenticación",
sysBlobStoreGet: "Obtener la configuración del almacén de blobs",
sysBlobStoreUpdate: "Actualizar la configuración del almacén de blobs",
sysBlockedIpGet: "Obtener direcciones",
sysBlockedIpCreate: "Crear direcciones",
sysBlockedIpUpdate: "Actualizar direcciones",
sysBlockedIpDestroy: "Destruir direcciones",
sysBlockedIpQuery: "Consultar direcciones",
sysBootstrapGet: "Obtener la configuración de arranque",
sysBootstrapUpdate: "Actualizar la configuración de arranque",
sysCacheGet: "Obtener la configuración de la caché",
sysCacheUpdate: "Actualizar la configuración de la caché",
sysCalendarGet: "Obtener la configuración de calendarios",
sysCalendarUpdate: "Actualizar la configuración de calendarios",
sysCalendarAlarmGet: "Obtener la configuración de alarmas de calendario",
sysCalendarAlarmUpdate: "Actualizar la configuración de alarmas de calendario",
sysCalendarSchedulingGet: "Obtener la configuración de programación de calendario",
sysCalendarSchedulingUpdate: "Actualizar la configuración de programación de calendario",
sysCertificateGet: "Obtener certificados",
sysCertificateCreate: "Crear certificados",
sysCertificateUpdate: "Actualizar certificados",
sysCertificateDestroy: "Destruir certificados",
sysCertificateQuery: "Consultar certificados",
sysClusterNodeGet: "Obtener nodos del clúster",
sysClusterNodeCreate: "Crear nodos del clúster",
sysClusterNodeUpdate: "Actualizar nodos del clúster",
sysClusterNodeDestroy: "Destruir nodos del clúster",
sysClusterNodeQuery: "Consultar nodos del clúster",
sysClusterRoleGet: "Obtener roles",
sysClusterRoleCreate: "Crear roles",
sysClusterRoleUpdate: "Actualizar roles",
sysClusterRoleDestroy: "Destruir roles",
sysClusterRoleQuery: "Consultar roles",
sysCoordinatorGet: "Obtener la configuración del coordinador",
sysCoordinatorUpdate: "Actualizar la configuración del coordinador",
sysDataRetentionGet: "Obtener la configuración de retención de datos",
sysDataRetentionUpdate: "Actualizar la configuración de retención de datos",
sysDataStoreGet: "Obtener la configuración del almacén de datos",
sysDataStoreUpdate: "Actualizar la configuración del almacén de datos",
sysDirectoryGet: "Obtener directorios",
sysDirectoryCreate: "Crear directorios",
sysDirectoryUpdate: "Actualizar directorios",
sysDirectoryDestroy: "Destruir directorios",
sysDirectoryQuery: "Consultar directorios",
sysDkimReportSettingsGet: "Obtener la configuración de informes DKIM",
sysDkimReportSettingsUpdate: "Actualizar la configuración de informes DKIM",
sysDkimSignatureGet: "Obtener firmas",
sysDkimSignatureCreate: "Crear firmas",
sysDkimSignatureUpdate: "Actualizar firmas",
sysDkimSignatureDestroy: "Destruir firmas",
sysDkimSignatureQuery: "Consultar firmas",
sysDmarcExternalReportGet: "Obtener informes",
sysDmarcExternalReportCreate: "Crear informes",
sysDmarcExternalReportUpdate: "Actualizar informes",
sysDmarcExternalReportDestroy: "Destruir informes",
sysDmarcExternalReportQuery: "Consultar informes",
sysDmarcInternalReportGet: "Obtener informes",
sysDmarcInternalReportCreate: "Crear informes",
sysDmarcInternalReportUpdate: "Actualizar informes",
sysDmarcInternalReportDestroy: "Destruir informes",
sysDmarcInternalReportQuery: "Consultar informes",
sysDmarcReportSettingsGet: "Obtener la configuración de informes DMARC",
sysDmarcReportSettingsUpdate: "Actualizar la configuración de informes DMARC",
sysDnsResolverGet: "Obtener la configuración del resolvedor DNS",
sysDnsResolverUpdate: "Actualizar la configuración del resolvedor DNS",
sysDnsServerGet: "Obtener servidores DNS",
sysDnsServerCreate: "Crear servidores DNS",
sysDnsServerUpdate: "Actualizar servidores DNS",
sysDnsServerDestroy: "Destruir servidores DNS",
sysDnsServerQuery: "Consultar servidores DNS",
sysDomainGet: "Obtener dominios",
sysDomainCreate: "Crear dominios",
sysDomainUpdate: "Actualizar dominios",
sysDomainDestroy: "Destruir dominios",
sysDomainQuery: "Consultar dominios",
sysDsnReportSettingsGet: "Obtener la configuración de informes DSN",
sysDsnReportSettingsUpdate: "Actualizar la configuración de informes DSN",
sysEmailGet: "Obtener la configuración de correo",
sysEmailUpdate: "Actualizar la configuración de correo",
sysEnterpriseGet: "Obtener la configuración de Enterprise",
sysEnterpriseUpdate: "Actualizar la configuración de Enterprise",
sysEventTracingLevelGet: "Obtener eventos",
sysEventTracingLevelCreate: "Crear eventos",
sysEventTracingLevelUpdate: "Actualizar eventos",
sysEventTracingLevelDestroy: "Destruir eventos",
sysEventTracingLevelQuery: "Consultar eventos",
sysFileStorageGet: "Obtener la configuración del almacenamiento de archivos",
sysFileStorageUpdate: "Actualizar la configuración del almacenamiento de archivos",
sysHttpGet: "Obtener la configuración de HTTP",
sysHttpUpdate: "Actualizar la configuración de HTTP",
sysHttpFormGet: "Obtener la configuración de formularios HTTP",
sysHttpFormUpdate: "Actualizar la configuración de formularios HTTP",
sysHttpLookupGet: "Obtener listas",
sysHttpLookupCreate: "Crear listas",
sysHttpLookupUpdate: "Actualizar listas",
sysHttpLookupDestroy: "Destruir listas",
sysHttpLookupQuery: "Consultar listas",
sysImapGet: "Obtener la configuración de IMAP",
sysImapUpdate: "Actualizar la configuración de IMAP",
sysInMemoryStoreGet: "Obtener la configuración del almacén en memoria",
sysInMemoryStoreUpdate: "Actualizar la configuración del almacén en memoria",
sysJmapGet: "Obtener la configuración de JMAP",
sysJmapUpdate: "Actualizar la configuración de JMAP",
sysLogGet: "Obtener entradas de registro",
sysLogCreate: "Crear entradas de registro",
sysLogUpdate: "Actualizar entradas de registro",
sysLogDestroy: "Destruir entradas de registro",
sysLogQuery: "Consultar entradas de registro",
sysMailingListGet: "Obtener listas de correo",
sysMailingListCreate: "Crear listas de correo",
sysMailingListUpdate: "Actualizar listas de correo",
sysMailingListDestroy: "Destruir listas de correo",
sysMailingListQuery: "Consultar listas de correo",
sysMaskedEmailGet: "Obtener correos enmascarados",
sysMaskedEmailCreate: "Crear correos enmascarados",
sysMaskedEmailUpdate: "Actualizar correos enmascarados",
sysMaskedEmailDestroy: "Destruir correos enmascarados",
sysMaskedEmailQuery: "Consultar correos enmascarados",
sysMemoryLookupKeyGet: "Obtener claves",
sysMemoryLookupKeyCreate: "Crear claves",
sysMemoryLookupKeyUpdate: "Actualizar claves",
sysMemoryLookupKeyDestroy: "Destruir claves",
sysMemoryLookupKeyQuery: "Consultar claves",
sysMemoryLookupKeyValueGet: "Obtener claves",
sysMemoryLookupKeyValueCreate: "Crear claves",
sysMemoryLookupKeyValueUpdate: "Actualizar claves",
sysMemoryLookupKeyValueDestroy: "Destruir claves",
sysMemoryLookupKeyValueQuery: "Consultar claves",
sysMetricGet: "Obtener métricas",
sysMetricCreate: "Crear métricas",
sysMetricUpdate: "Actualizar métricas",
sysMetricDestroy: "Destruir métricas",
sysMetricQuery: "Consultar métricas",
sysMetricsGet: "Obtener la configuración de métricas",
sysMetricsUpdate: "Actualizar la configuración de métricas",
sysMetricsStoreGet: "Obtener la configuración del almacén de métricas",
sysMetricsStoreUpdate: "Actualizar la configuración del almacén de métricas",
sysMtaConnectionStrategyGet: "Obtener estrategias",
sysMtaConnectionStrategyCreate: "Crear estrategias",
sysMtaConnectionStrategyUpdate: "Actualizar estrategias",
sysMtaConnectionStrategyDestroy: "Destruir estrategias",
sysMtaConnectionStrategyQuery: "Consultar estrategias",
sysMtaDeliveryScheduleGet: "Obtener programaciones",
sysMtaDeliveryScheduleCreate: "Crear programaciones",
sysMtaDeliveryScheduleUpdate: "Actualizar programaciones",
sysMtaDeliveryScheduleDestroy: "Destruir programaciones",
sysMtaDeliveryScheduleQuery: "Consultar programaciones",
sysMtaExtensionsGet: "Obtener la configuración de extensiones del MTA",
sysMtaExtensionsUpdate: "Actualizar la configuración de extensiones del MTA",
sysMtaHookGet: "Obtener hooks",
sysMtaHookCreate: "Crear hooks",
sysMtaHookUpdate: "Actualizar hooks",
sysMtaHookDestroy: "Destruir hooks",
sysMtaHookQuery: "Consultar hooks",
sysMtaInboundSessionGet: "Obtener la configuración de sesiones entrantes del MTA",
sysMtaInboundSessionUpdate: "Actualizar la configuración de sesiones entrantes del MTA",
sysMtaInboundThrottleGet: "Obtener limitadores",
sysMtaInboundThrottleCreate: "Crear limitadores",
sysMtaInboundThrottleUpdate: "Actualizar limitadores",
sysMtaInboundThrottleDestroy: "Destruir limitadores",
sysMtaInboundThrottleQuery: "Consultar limitadores",
sysMtaMilterGet: "Obtener milters",
sysMtaMilterCreate: "Crear milters",
sysMtaMilterUpdate: "Actualizar milters",
sysMtaMilterDestroy: "Destruir milters",
sysMtaMilterQuery: "Consultar milters",
sysMtaOutboundStrategyGet: "Obtener la configuración de la estrategia de salida del MTA",
sysMtaOutboundStrategyUpdate: "Actualizar la configuración de la estrategia de salida del MTA",
sysMtaOutboundThrottleGet: "Obtener limitadores",
sysMtaOutboundThrottleCreate: "Crear limitadores",
sysMtaOutboundThrottleUpdate: "Actualizar limitadores",
sysMtaOutboundThrottleDestroy: "Destruir limitadores",
sysMtaOutboundThrottleQuery: "Consultar limitadores",
sysMtaQueueQuotaGet: "Obtener cuotas",
sysMtaQueueQuotaCreate: "Crear cuotas",
sysMtaQueueQuotaUpdate: "Actualizar cuotas",
sysMtaQueueQuotaDestroy: "Destruir cuotas",
sysMtaQueueQuotaQuery: "Consultar cuotas",
sysMtaRouteGet: "Obtener rutas",
sysMtaRouteCreate: "Crear rutas",
sysMtaRouteUpdate: "Actualizar rutas",
sysMtaRouteDestroy: "Destruir rutas",
sysMtaRouteQuery: "Consultar rutas",
sysMtaStageAuthGet: "Obtener la configuración de la fase AUTH del MTA",
sysMtaStageAuthUpdate: "Actualizar la configuración de la fase AUTH del MTA",
sysMtaStageConnectGet: "Obtener la configuración de la fase CONNECT del MTA",
sysMtaStageConnectUpdate: "Actualizar la configuración de la fase CONNECT del MTA",
sysMtaStageDataGet: "Obtener la configuración de la fase DATA del MTA",
sysMtaStageDataUpdate: "Actualizar la configuración de la fase DATA del MTA",
sysMtaStageEhloGet: "Obtener la configuración de la fase EHLO del MTA",
sysMtaStageEhloUpdate: "Actualizar la configuración de la fase EHLO del MTA",
sysMtaStageMailGet: "Obtener la configuración de la fase MAIL del MTA",
sysMtaStageMailUpdate: "Actualizar la configuración de la fase MAIL del MTA",
sysMtaStageRcptGet: "Obtener la configuración de la fase RCPT del MTA",
sysMtaStageRcptUpdate: "Actualizar la configuración de la fase RCPT del MTA",
sysMtaStsGet: "Obtener la configuración de MTA-STS",
sysMtaStsUpdate: "Actualizar la configuración de MTA-STS",
sysMtaTlsStrategyGet: "Obtener estrategias",
sysMtaTlsStrategyCreate: "Crear estrategias",
sysMtaTlsStrategyUpdate: "Actualizar estrategias",
sysMtaTlsStrategyDestroy: "Destruir estrategias",
sysMtaTlsStrategyQuery: "Consultar estrategias",
sysMtaVirtualQueueGet: "Obtener colas",
sysMtaVirtualQueueCreate: "Crear colas",
sysMtaVirtualQueueUpdate: "Actualizar colas",
sysMtaVirtualQueueDestroy: "Destruir colas",
sysMtaVirtualQueueQuery: "Consultar colas",
sysNetworkListenerGet: "Obtener agentes de escucha",
sysNetworkListenerCreate: "Crear agentes de escucha",
sysNetworkListenerUpdate: "Actualizar agentes de escucha",
sysNetworkListenerDestroy: "Destruir agentes de escucha",
sysNetworkListenerQuery: "Consultar agentes de escucha",
sysOAuthClientGet: "Obtener clientes OAuth",
sysOAuthClientCreate: "Crear clientes OAuth",
sysOAuthClientUpdate: "Actualizar clientes OAuth",
sysOAuthClientDestroy: "Destruir clientes OAuth",
sysOAuthClientQuery: "Consultar clientes OAuth",
sysOidcProviderGet: "Obtener la configuración del proveedor OIDC",
sysOidcProviderUpdate: "Actualizar la configuración del proveedor OIDC",
sysPublicKeyGet: "Obtener claves públicas",
sysPublicKeyCreate: "Crear claves públicas",
sysPublicKeyUpdate: "Actualizar claves públicas",
sysPublicKeyDestroy: "Destruir claves públicas",
sysPublicKeyQuery: "Consultar claves públicas",
sysQueuedMessageGet: "Obtener mensajes",
sysQueuedMessageCreate: "Crear mensajes",
sysQueuedMessageUpdate: "Actualizar mensajes",
sysQueuedMessageDestroy: "Destruir mensajes",
sysQueuedMessageQuery: "Consultar mensajes",
sysReportSettingsGet: "Obtener la configuración de informes",
sysReportSettingsUpdate: "Actualizar la configuración de informes",
sysRoleGet: "Obtener roles",
sysRoleCreate: "Crear roles",
sysRoleUpdate: "Actualizar roles",
sysRoleDestroy: "Destruir roles",
sysRoleQuery: "Consultar roles",
sysSearchGet: "Obtener la configuración de búsqueda",
sysSearchUpdate: "Actualizar la configuración de búsqueda",
sysSearchStoreGet: "Obtener la configuración del almacén de búsqueda",
sysSearchStoreUpdate: "Actualizar la configuración del almacén de búsqueda",
sysSecurityGet: "Obtener la configuración de seguridad",
sysSecurityUpdate: "Actualizar la configuración de seguridad",
sysSenderAuthGet: "Obtener la configuración de autenticación del remitente",
sysSenderAuthUpdate: "Actualizar la configuración de autenticación del remitente",
sysSharingGet: "Obtener la configuración de uso compartido",
sysSharingUpdate: "Actualizar la configuración de uso compartido",
sysSieveSystemInterpreterGet: "Obtener la configuración del intérprete Sieve del sistema",
sysSieveSystemInterpreterUpdate: "Actualizar la configuración del intérprete Sieve del sistema",
sysSieveSystemScriptGet: "Obtener scripts",
sysSieveSystemScriptCreate: "Crear scripts",
sysSieveSystemScriptUpdate: "Actualizar scripts",
sysSieveSystemScriptDestroy: "Destruir scripts",
sysSieveSystemScriptQuery: "Consultar scripts",
sysSieveUserInterpreterGet: "Obtener la configuración del intérprete Sieve de usuario",
sysSieveUserInterpreterUpdate: "Actualizar la configuración del intérprete Sieve de usuario",
sysSieveUserScriptGet: "Obtener scripts",
sysSieveUserScriptCreate: "Crear scripts",
sysSieveUserScriptUpdate: "Actualizar scripts",
sysSieveUserScriptDestroy: "Destruir scripts",
sysSieveUserScriptQuery: "Consultar scripts",
sysSpamClassifierGet: "Obtener la configuración del clasificador de spam",
sysSpamClassifierUpdate: "Actualizar la configuración del clasificador de spam",
sysSpamDnsblServerGet: "Obtener servidores",
sysSpamDnsblServerCreate: "Crear servidores",
sysSpamDnsblServerUpdate: "Actualizar servidores",
sysSpamDnsblServerDestroy: "Destruir servidores",
sysSpamDnsblServerQuery: "Consultar servidores",
sysSpamDnsblSettingsGet: "Obtener la configuración de DNSBL de spam",
sysSpamDnsblSettingsUpdate: "Actualizar la configuración de DNSBL de spam",
sysSpamFileExtensionGet: "Obtener extensiones",
sysSpamFileExtensionCreate: "Crear extensiones",
sysSpamFileExtensionUpdate: "Actualizar extensiones",
sysSpamFileExtensionDestroy: "Destruir extensiones",
sysSpamFileExtensionQuery: "Consultar extensiones",
sysSpamLlmGet: "Obtener la configuración del LLM de spam",
sysSpamLlmUpdate: "Actualizar la configuración del LLM de spam",
sysSpamPyzorGet: "Obtener la configuración de Pyzor de spam",
sysSpamPyzorUpdate: "Actualizar la configuración de Pyzor de spam",
sysSpamRuleGet: "Obtener reglas",
sysSpamRuleCreate: "Crear reglas",
sysSpamRuleUpdate: "Actualizar reglas",
sysSpamRuleDestroy: "Destruir reglas",
sysSpamRuleQuery: "Consultar reglas",
sysSpamSettingsGet: "Obtener la configuración de spam",
sysSpamSettingsUpdate: "Actualizar la configuración de spam",
sysSpamTagGet: "Obtener etiquetas",
sysSpamTagCreate: "Crear etiquetas",
sysSpamTagUpdate: "Actualizar etiquetas",
sysSpamTagDestroy: "Destruir etiquetas",
sysSpamTagQuery: "Consultar etiquetas",
sysSpamTrainingSampleGet: "Obtener muestras",
sysSpamTrainingSampleCreate: "Crear muestras",
sysSpamTrainingSampleUpdate: "Actualizar muestras",
sysSpamTrainingSampleDestroy: "Destruir muestras",
sysSpamTrainingSampleQuery: "Consultar muestras",
sysSpfReportSettingsGet: "Obtener la configuración de informes SPF",
sysSpfReportSettingsUpdate: "Actualizar la configuración de informes SPF",
sysStoreLookupGet: "Obtener tablas de consulta",
sysStoreLookupCreate: "Crear tablas de consulta",
sysStoreLookupUpdate: "Actualizar tablas de consulta",
sysStoreLookupDestroy: "Destruir tablas de consulta",
sysStoreLookupQuery: "Consultar tablas de consulta",
sysSystemSettingsGet: "Obtener la configuración del sistema",
sysSystemSettingsUpdate: "Actualizar la configuración del sistema",
taskIndexDocument: "Indexar documento",
taskUnindexDocument: "Desindexar documento",
taskIndexTrace: "Indexar traza de telemetría",
taskCalendarAlarmEmail: "Correo de alarma de calendario",
taskCalendarAlarmNotification: "Notificación de alarma de calendario",
taskCalendarItipMessage: "Mensaje iTIP de calendario",
taskMergeThreads: "Fusionar conversaciones de correo",
taskDmarcReport: "Enviar informe DMARC al servidor remoto",
taskTlsReport: "Enviar informe TLS al servidor remoto",
taskRestoreArchivedItem: "Restaurar elemento archivado",
taskDestroyAccount: "Destruir la cuenta y todos sus datos asociados",
taskAccountMaintenance: "Realizar operaciones de mantenimiento de cuentas",
taskTenantMaintenance: "Realizar operaciones de mantenimiento de inquilinos",
taskStoreMaintenance: "Realizar operaciones de mantenimiento del almacén",
taskSpamFilterMaintenance: "Realizar operaciones de mantenimiento del filtro de spam",
taskAcmeRenewal: "Realizar la renovación de certificados ACME de un dominio",
taskDkimManagement: "Realizar la rotación de claves DKIM de un dominio",
taskDnsManagement: "Realizar la gestión DNS de un dominio",
sysTaskGet: "Obtener tareas",
sysTaskCreate: "Crear tareas",
sysTaskUpdate: "Actualizar tareas",
sysTaskDestroy: "Destruir tareas",
sysTaskQuery: "Consultar tareas",
sysTaskManagerGet: "Obtener la configuración del gestor de tareas",
sysTaskManagerUpdate: "Actualizar la configuración del gestor de tareas",
sysTenantGet: "Obtener inquilinos",
sysTenantCreate: "Crear inquilinos",
sysTenantUpdate: "Actualizar inquilinos",
sysTenantDestroy: "Destruir inquilinos",
sysTenantQuery: "Consultar inquilinos",
sysTlsExternalReportGet: "Obtener informes",
sysTlsExternalReportCreate: "Crear informes",
sysTlsExternalReportUpdate: "Actualizar informes",
sysTlsExternalReportDestroy: "Destruir informes",
sysTlsExternalReportQuery: "Consultar informes",
sysTlsInternalReportGet: "Obtener informes",
sysTlsInternalReportCreate: "Crear informes",
sysTlsInternalReportUpdate: "Actualizar informes",
sysTlsInternalReportDestroy: "Destruir informes",
sysTlsInternalReportQuery: "Consultar informes",
sysTlsReportSettingsGet: "Obtener la configuración de informes TLS",
sysTlsReportSettingsUpdate: "Actualizar la configuración de informes TLS",
sysTraceGet: "Obtener trazas",
sysTraceCreate: "Crear trazas",
sysTraceUpdate: "Actualizar trazas",
sysTraceDestroy: "Destruir trazas",
sysTraceQuery: "Consultar trazas",
sysTracerGet: "Obtener trazadores",
sysTracerCreate: "Crear trazadores",
sysTracerUpdate: "Actualizar trazadores",
sysTracerDestroy: "Destruir trazadores",
sysTracerQuery: "Consultar trazadores",
sysTracingStoreGet: "Obtener la configuración del almacén de trazas",
sysTracingStoreUpdate: "Actualizar la configuración del almacén de trazas",
sysWebDavGet: "Obtener la configuración de WebDAV",
sysWebDavUpdate: "Actualizar la configuración de WebDAV",
sysWebHookGet: "Obtener webhooks",
sysWebHookCreate: "Crear webhooks",
sysWebHookUpdate: "Actualizar webhooks",
sysWebHookDestroy: "Destruir webhooks",
sysWebHookQuery: "Consultar webhooks",
},
};
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in French, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "Gestion des modèles dIA",
"API keys Management": "Gestion des clés dAPI",
"Accounts Management": "Gestion des comptes",
"Action": "Action",
"Actions Management": "Gestion des actions",
"Addresses Management": "Gestion des adresses",
"Alerts Management": "Gestion des alertes",
"App passwords Management": "Gestion des mots de passe dapplication",
"Applications Management": "Gestion des applications",
"Archived items Management": "Gestion des éléments archivés",
"Calendar": "Agenda",
"Certificates Management": "Gestion des certificats",
"Cluster nodes Management": "Gestion des nœuds du cluster",
"DNS servers Management": "Gestion des serveurs DNS",
"Directories Management": "Gestion des annuaires",
"Domains Management": "Gestion des domaines",
"Email": "E-mail",
"Events Management": "Gestion des événements",
"Extensions Management": "Gestion des extensions",
"Hooks Management": "Gestion des hooks",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "Gestion des clés",
"Listeners Management": "Gestion des écouteurs",
"Lists Management": "Gestion des listes",
"Log entries Management": "Gestion des entrées de journal",
"Lookups Management": "Gestion des tables de correspondance",
"Mailing lists Management": "Gestion des listes de diffusion",
"ManageSieve": "ManageSieve",
"Masked emails Management": "Gestion des adresses e-mail masquées",
"Messages Management": "Gestion des messages",
"Metrics Management": "Gestion des métriques",
"Milters Management": "Gestion des milters",
"OAuth clients Management": "Gestion des clients OAuth",
"POP3": "POP3",
"Providers Management": "Gestion des fournisseurs",
"Public keys Management": "Gestion des clés publiques",
"Queues Management": "Gestion des files dattente",
"Quotas Management": "Gestion des quotas",
"Reports Management": "Gestion des rapports",
"Roles Management": "Gestion des rôles",
"Routes Management": "Gestion des routes",
"Rules Management": "Gestion des règles",
"Samples Management": "Gestion des échantillons",
"Schedules Management": "Gestion des plannings",
"Scripts Management": "Gestion des scripts",
"Servers Management": "Gestion des serveurs",
"Settings": "Paramètres",
"Signatures Management": "Gestion des signatures",
"Strategies Management": "Gestion des stratégies",
"Tags Management": "Gestion des balises",
"Task": "Tâche",
"Tasks Management": "Gestion des tâches",
"Tenants Management": "Gestion des locataires",
"Throttles Management": "Gestion des limitations de débit",
"Tracers Management": "Gestion des traceurs",
"Traces Management": "Gestion des traces",
"WebDAV": "WebDAV",
"Webhooks Management": "Gestion des webhooks",
},
labels: {
authenticate: "Se connecter au serveur",
authenticateWithAlias: "Se connecter avec des adresses alias",
interactAi: "Interagir avec les modèles dIA",
impersonate: "Agir au nom dun autre utilisateur",
unlimitedRequests: "Contourner les limites de débit des requêtes",
unlimitedUploads: "Contourner les limites de taille et de débit des téléversements",
fetchAnyBlob: "Récupérer nimporte quel blob, même ceux qui nappartiennent pas au compte",
emailSend: "Envoyer des messages",
emailReceive: "Recevoir des messages",
calendarAlarmsSend: "Envoyer les rappels dagenda par e-mail",
calendarSchedulingSend: "Envoyer les invitations et mises à jour dagenda par e-mail",
calendarSchedulingReceive: "Traiter les invitations et réponses dagenda entrantes",
jmapPushSubscriptionGet: "Récupérer les détails des abonnements push",
jmapPushSubscriptionCreate: "Créer des abonnements push",
jmapPushSubscriptionUpdate: "Modifier les abonnements push existants",
jmapPushSubscriptionDestroy: "Retirer des abonnements push",
jmapMailboxGet: "Récupérer les détails et propriétés des boîtes aux lettres",
jmapMailboxChanges: "Suivre les modifications des boîtes aux lettres depuis un état donné",
jmapMailboxQuery: "Rechercher des boîtes aux lettres correspondant à des critères",
jmapMailboxQueryChanges: "Suivre les modifications des résultats de recherche de boîtes aux lettres",
jmapMailboxCreate: "Créer des boîtes aux lettres",
jmapMailboxUpdate: "Modifier les boîtes aux lettres existantes",
jmapMailboxDestroy: "Retirer des boîtes aux lettres",
jmapThreadGet: "Récupérer les détails des fils de messages",
jmapThreadChanges: "Suivre les modifications des fils depuis un état donné",
jmapEmailGet: "Récupérer les détails et propriétés des messages",
jmapEmailChanges: "Suivre les modifications des messages depuis un état donné",
jmapEmailQuery: "Rechercher des messages correspondant à des critères",
jmapEmailQueryChanges: "Suivre les modifications des résultats de recherche de messages",
jmapEmailCreate: "Créer des messages",
jmapEmailUpdate: "Modifier les messages existants",
jmapEmailDestroy: "Retirer des messages",
jmapEmailCopy: "Copier des messages vers un autre compte",
jmapEmailImport: "Importer des messages à partir de données blob",
jmapEmailParse: "Analyser des données de message brutes sans les stocker",
jmapSearchSnippetGet: "Récupérer les extraits de résultats de recherche des messages",
jmapIdentityGet: "Récupérer les détails des identités dexpéditeur",
jmapIdentityChanges: "Suivre les modifications des identités depuis un état donné",
jmapIdentityCreate: "Créer des identités dexpéditeur",
jmapIdentityUpdate: "Modifier les identités dexpéditeur existantes",
jmapIdentityDestroy: "Retirer des identités dexpéditeur",
jmapEmailSubmissionGet: "Récupérer les détails des soumissions de messages",
jmapEmailSubmissionChanges: "Suivre les modifications des soumissions de messages depuis un état donné",
jmapEmailSubmissionQuery: "Rechercher des soumissions de messages correspondant à des critères",
jmapEmailSubmissionQueryChanges: "Suivre les modifications des résultats de recherche de soumissions de messages",
jmapEmailSubmissionCreate: "Créer des soumissions de messages pour envoi",
jmapEmailSubmissionUpdate: "Modifier les soumissions de messages existantes",
jmapEmailSubmissionDestroy: "Retirer des soumissions de messages",
jmapVacationResponseGet: "Récupérer la configuration de la réponse dabsence",
jmapVacationResponseCreate: "Créer les paramètres de réponse dabsence",
jmapVacationResponseUpdate: "Modifier les paramètres de réponse dabsence",
jmapVacationResponseDestroy: "Retirer les paramètres de réponse dabsence",
jmapSieveScriptGet: "Récupérer les détails des scripts de filtre Sieve",
jmapSieveScriptQuery: "Rechercher des scripts Sieve correspondant à des critères",
jmapSieveScriptValidate: "Valider un script Sieve sans le stocker",
jmapSieveScriptCreate: "Créer des scripts de filtre Sieve",
jmapSieveScriptUpdate: "Modifier les scripts de filtre Sieve existants",
jmapSieveScriptDestroy: "Retirer des scripts de filtre Sieve",
jmapPrincipalGet: "Récupérer les détails et propriétés des principaux",
jmapPrincipalQuery: "Rechercher des principaux correspondant à des critères",
jmapPrincipalChanges: "Suivre les modifications des principaux depuis un état donné",
jmapPrincipalQueryChanges: "Suivre les modifications des résultats de recherche de principaux",
jmapPrincipalGetAvailability: "Interroger les informations de disponibilité des principaux",
jmapPrincipalCreate: "Créer des principaux",
jmapPrincipalUpdate: "Modifier les principaux existants",
jmapPrincipalDestroy: "Retirer des principaux",
jmapQuotaGet: "Récupérer lutilisation et les limites des quotas",
jmapQuotaChanges: "Suivre les modifications des quotas depuis un état donné",
jmapQuotaQuery: "Rechercher des quotas correspondant à des critères",
jmapQuotaQueryChanges: "Suivre les modifications des résultats de recherche de quotas",
jmapBlobGet: "Télécharger des données blob",
jmapBlobCopy: "Copier des blobs vers un autre compte",
jmapBlobLookup: "Retrouver lutilisation des blobs dans les types de données",
jmapBlobUpload: "Téléverser des données blob",
jmapAddressBookGet: "Récupérer les détails et propriétés des carnets dadresses",
jmapAddressBookChanges: "Suivre les modifications des carnets dadresses depuis un état donné",
jmapAddressBookCreate: "Créer des carnets dadresses",
jmapAddressBookUpdate: "Modifier les carnets dadresses existants",
jmapAddressBookDestroy: "Retirer des carnets dadresses",
jmapContactCardGet: "Récupérer les détails des fiches de contact",
jmapContactCardChanges: "Suivre les modifications des fiches de contact depuis un état donné",
jmapContactCardQuery: "Rechercher des fiches de contact correspondant à des critères",
jmapContactCardQueryChanges: "Suivre les modifications des résultats de recherche de fiches de contact",
jmapContactCardCreate: "Créer des fiches de contact",
jmapContactCardUpdate: "Modifier les fiches de contact existantes",
jmapContactCardDestroy: "Retirer des fiches de contact",
jmapContactCardCopy: "Copier des fiches de contact vers un autre compte",
jmapContactCardParse: "Analyser des données de fiche de contact brutes sans les stocker",
jmapFileNodeGet: "Récupérer les détails et propriétés des nœuds de fichiers",
jmapFileNodeChanges: "Suivre les modifications des nœuds de fichiers depuis un état donné",
jmapFileNodeQuery: "Rechercher des nœuds de fichiers correspondant à des critères",
jmapFileNodeQueryChanges: "Suivre les modifications des résultats de recherche de nœuds de fichiers",
jmapFileNodeCreate: "Créer des nœuds de fichiers",
jmapFileNodeUpdate: "Modifier les nœuds de fichiers existants",
jmapFileNodeDestroy: "Retirer des nœuds de fichiers",
jmapFileNodeCopy: "Copier des nœuds de fichiers vers un autre compte",
jmapShareNotificationGet: "Récupérer les détails des notifications de partage",
jmapShareNotificationChanges: "Suivre les modifications des notifications de partage depuis un état donné",
jmapShareNotificationQuery: "Rechercher des notifications de partage correspondant à des critères",
jmapShareNotificationQueryChanges: "Suivre les modifications des résultats de recherche de notifications de partage",
jmapShareNotificationCreate: "Créer des notifications de partage",
jmapShareNotificationUpdate: "Modifier les notifications de partage existantes",
jmapShareNotificationDestroy: "Retirer des notifications de partage",
jmapCalendarGet: "Récupérer les détails et propriétés des agendas",
jmapCalendarChanges: "Suivre les modifications des agendas depuis un état donné",
jmapCalendarCreate: "Créer des agendas",
jmapCalendarUpdate: "Modifier les agendas existants",
jmapCalendarDestroy: "Retirer des agendas",
jmapCalendarEventGet: "Récupérer les détails des événements dagenda",
jmapCalendarEventChanges: "Suivre les modifications des événements dagenda depuis un état donné",
jmapCalendarEventQuery: "Rechercher des événements dagenda correspondant à des critères",
jmapCalendarEventQueryChanges: "Suivre les modifications des résultats de recherche d’événements dagenda",
jmapCalendarEventCreate: "Créer des événements dagenda",
jmapCalendarEventUpdate: "Modifier les événements dagenda existants",
jmapCalendarEventDestroy: "Retirer des événements dagenda",
jmapCalendarEventCopy: "Copier des événements dagenda vers un autre compte",
jmapCalendarEventParse: "Analyser des données d’événement dagenda brutes sans les stocker",
jmapCalendarEventNotificationGet: "Récupérer les détails des notifications d’événements dagenda",
jmapCalendarEventNotificationChanges: "Suivre les modifications des notifications d’événements dagenda depuis un état donné",
jmapCalendarEventNotificationQuery: "Rechercher des notifications d’événements dagenda correspondant à des critères",
jmapCalendarEventNotificationQueryChanges: "Suivre les modifications des résultats de recherche de notifications d’événements dagenda",
jmapCalendarEventNotificationCreate: "Créer des notifications d’événements dagenda",
jmapCalendarEventNotificationUpdate: "Modifier les notifications d’événements dagenda existantes",
jmapCalendarEventNotificationDestroy: "Retirer des notifications d’événements dagenda",
jmapParticipantIdentityGet: "Récupérer les détails des identités de participant",
jmapParticipantIdentityChanges: "Suivre les modifications des identités de participant depuis un état donné",
jmapParticipantIdentityCreate: "Créer des identités de participant",
jmapParticipantIdentityUpdate: "Modifier les identités de participant existantes",
jmapParticipantIdentityDestroy: "Retirer des identités de participant",
jmapCoreEcho: "Renvoyer les données reçues à des fins de test",
imapAuthenticate: "Se connecter au serveur IMAP",
imapAclGet: "Voir les listes de contrôle daccès des boîtes aux lettres",
imapAclSet: "Modifier les listes de contrôle daccès des boîtes aux lettres",
imapMyRights: "Voir ses propres autorisations sur une boîte aux lettres",
imapListRights: "Lister les autorisations disponibles pour une boîte aux lettres",
imapAppend: "Téléverser des messages dans une boîte aux lettres",
imapCapability: "Interroger les extensions IMAP prises en charge",
imapId: "Interroger lidentification et la version du serveur",
imapCopy: "Copier des messages entre boîtes aux lettres",
imapMove: "Déplacer des messages entre boîtes aux lettres",
imapCreate: "Créer des boîtes aux lettres",
imapDelete: "Supprimer des boîtes aux lettres ou marquer des messages pour suppression",
imapEnable: "Activer des extensions IMAP facultatives",
imapExpunge: "Retirer définitivement les messages marqués pour suppression",
imapFetch: "Télécharger le contenu et les métadonnées des messages",
imapIdle: "Recevoir en temps réel les notifications de modification des boîtes aux lettres",
imapList: "Lister les boîtes aux lettres disponibles et leurs attributs",
imapLsub: "Lister les boîtes aux lettres auxquelles lutilisateur est abonné",
imapNamespace: "Interroger les préfixes despace de noms des boîtes aux lettres disponibles",
imapRename: "Renommer ou déplacer des boîtes aux lettres",
imapSearch: "Rechercher des messages selon des critères",
imapSort: "Récupérer des messages dans un ordre de tri donné",
imapSelect: "Ouvrir une boîte aux lettres en lecture-écriture",
imapExamine: "Ouvrir une boîte aux lettres en lecture seule",
imapStatus: "Interroger le nombre de messages et l’état dune boîte aux lettres",
imapStore: "Définir ou effacer les indicateurs des messages (lu, suivi, supprimé, etc.)",
imapSubscribe: "Sabonner ou se désabonner de boîtes aux lettres",
imapThread: "Regrouper les messages en fils de conversation",
pop3Authenticate: "Se connecter au serveur POP3",
pop3List: "Lister les messages et leur taille",
pop3Uidl: "Récupérer les identifiants uniques des messages",
pop3Stat: "Interroger le nombre de messages et la taille totale de la boîte aux lettres",
pop3Retr: "Télécharger le contenu des messages",
pop3Dele: "Marquer des messages pour suppression à la déconnexion",
sieveAuthenticate: "Se connecter au serveur ManageSieve",
sieveListScripts: "Lister les scripts Sieve téléversés",
sieveSetActive: "Désigner le script Sieve actif",
sieveGetScript: "Télécharger le contenu dun script Sieve",
sievePutScript: "Téléverser ou remplacer un script Sieve",
sieveDeleteScript: "Retirer un script Sieve",
sieveRenameScript: "Renommer un script Sieve",
sieveCheckScript: "Valider la syntaxe dun script Sieve sans lenregistrer",
sieveHaveSpace: "Vérifier si le quota permet de téléverser un script dune taille donnée",
davSyncCollection: "Synchroniser les modifications dune collection avec le client",
davExpandProperty: "Développer les propriétés qui font référence à dautres ressources",
davPrincipalAcl: "Gérer les propriétés de contrôle daccès des principaux",
davPrincipalList: "Lister les principaux disponibles dans le système",
davPrincipalMatch: "Faire correspondre des principaux selon des critères donnés",
davPrincipalSearch: "Rechercher des principaux par valeurs de propriété",
davPrincipalSearchPropSet: "Interroger les propriétés sur lesquelles rechercher des principaux",
davFilePropFind: "Récupérer les propriétés des ressources de fichier",
davFilePropPatch: "Modifier les propriétés des ressources de fichier",
davFileGet: "Télécharger des ressources de fichier",
davFileMkCol: "Créer des collections de fichiers ou des répertoires",
davFileDelete: "Retirer des ressources de fichier",
davFilePut: "Téléverser ou modifier des ressources de fichier",
davFileCopy: "Copier des ressources de fichier vers de nouveaux emplacements",
davFileMove: "Déplacer des ressources de fichier vers de nouveaux emplacements",
davFileLock: "Verrouiller des ressources de fichier pour empêcher les modifications simultanées",
davFileAcl: "Gérer les listes de contrôle daccès des ressources de fichier",
davCardPropFind: "Récupérer les propriétés des entrées de carnet dadresses",
davCardPropPatch: "Modifier les propriétés des entrées de carnet dadresses",
davCardGet: "Télécharger des entrées de carnet dadresses",
davCardMkCol: "Créer des collections de carnet dadresses",
davCardDelete: "Retirer des entrées ou collections de carnet dadresses",
davCardPut: "Téléverser ou modifier des entrées de carnet dadresses",
davCardCopy: "Copier des entrées de carnet dadresses vers de nouveaux emplacements",
davCardMove: "Déplacer des entrées de carnet dadresses vers de nouveaux emplacements",
davCardLock: "Verrouiller des entrées de carnet dadresses pour empêcher les modifications simultanées",
davCardAcl: "Gérer les listes de contrôle daccès des entrées de carnet dadresses",
davCardQuery: "Rechercher des entrées de carnet dadresses correspondant à des critères",
davCardMultiGet: "Récupérer plusieurs entrées de carnet dadresses en une seule requête",
davCalPropFind: "Récupérer les propriétés des entrées dagenda",
davCalPropPatch: "Modifier les propriétés des entrées dagenda",
davCalGet: "Télécharger des entrées dagenda",
davCalMkCol: "Créer des collections dagenda",
davCalDelete: "Retirer des entrées ou collections dagenda",
davCalPut: "Téléverser ou modifier des entrées dagenda",
davCalCopy: "Copier des entrées dagenda vers de nouveaux emplacements",
davCalMove: "Déplacer des entrées dagenda vers de nouveaux emplacements",
davCalLock: "Verrouiller des entrées dagenda pour empêcher les modifications simultanées",
davCalAcl: "Gérer les listes de contrôle daccès des entrées dagenda",
davCalQuery: "Rechercher des entrées dagenda correspondant à des critères",
davCalMultiGet: "Récupérer plusieurs entrées dagenda en une seule requête",
davCalFreeBusyQuery: "Interroger les disponibilités pour la planification",
oAuthClientRegistration: "Inscrire de nouvelles applications clientes OAuth",
oAuthClientOverride: "Contourner les exigences dinscription des clients OAuth",
liveTracing: "Voir en temps réel les traces d’événements du serveur",
liveMetrics: "Voir en temps réel les métriques de performance du serveur",
liveDeliveryTest: "Envoyer des e-mails de test pour vérifier la configuration de distribution",
scimAccess: "Provisionner des utilisateurs et des groupes via le point de terminaison SCIM",
sysAccountGet: "Consulter les comptes",
sysAccountCreate: "Créer des comptes",
sysAccountUpdate: "Mettre à jour les comptes",
sysAccountDestroy: "Supprimer les comptes",
sysAccountQuery: "Rechercher des comptes",
sysAccountPasswordGet: "Consulter les paramètres de mot de passe des comptes",
sysAccountPasswordUpdate: "Mettre à jour les paramètres de mot de passe des comptes",
sysAccountSettingsGet: "Consulter les paramètres des comptes",
sysAccountSettingsUpdate: "Mettre à jour les paramètres des comptes",
sysAcmeProviderGet: "Consulter les fournisseurs",
sysAcmeProviderCreate: "Créer des fournisseurs",
sysAcmeProviderUpdate: "Mettre à jour les fournisseurs",
sysAcmeProviderDestroy: "Supprimer les fournisseurs",
sysAcmeProviderQuery: "Rechercher des fournisseurs",
actionReloadSettings: "Recharger : paramètres du serveur",
actionReloadTlsCertificates: "Recharger : certificats TLS",
actionReloadLookupStores: "Recharger : stockages de tables de correspondance",
actionReloadBlockedIps: "Recharger : liste des adresses IP bloquées",
actionUpdateApps: "Gestion des applications : mettre à jour les applications",
actionTroubleshootDmarc: "DMARC : diagnostic",
actionClassifySpam: "Filtre antispam : classer un message",
actionInvalidateCaches: "Cache : invalider tous les caches",
actionInvalidateNegativeCaches: "Cache : invalider les caches négatifs",
actionPauseMtaQueue: "MTA : suspendre le traitement de la file dattente",
actionResumeMtaQueue: "MTA : reprendre le traitement de la file dattente",
sysActionGet: "Consulter les actions",
sysActionCreate: "Créer des actions",
sysActionUpdate: "Mettre à jour les actions",
sysActionDestroy: "Supprimer les actions",
sysActionQuery: "Rechercher des actions",
sysAddressBookGet: "Consulter les paramètres des carnets dadresses",
sysAddressBookUpdate: "Mettre à jour les paramètres des carnets dadresses",
sysAiModelGet: "Consulter les modèles dIA",
sysAiModelCreate: "Créer des modèles dIA",
sysAiModelUpdate: "Mettre à jour les modèles dIA",
sysAiModelDestroy: "Supprimer les modèles dIA",
sysAiModelQuery: "Rechercher des modèles dIA",
sysAlertGet: "Consulter les alertes",
sysAlertCreate: "Créer des alertes",
sysAlertUpdate: "Mettre à jour les alertes",
sysAlertDestroy: "Supprimer les alertes",
sysAlertQuery: "Rechercher des alertes",
sysAllowedIpGet: "Consulter les adresses",
sysAllowedIpCreate: "Créer des adresses",
sysAllowedIpUpdate: "Mettre à jour les adresses",
sysAllowedIpDestroy: "Supprimer les adresses",
sysAllowedIpQuery: "Rechercher des adresses",
sysApiKeyGet: "Consulter les clés dAPI",
sysApiKeyCreate: "Créer des clés dAPI",
sysApiKeyUpdate: "Mettre à jour les clés dAPI",
sysApiKeyDestroy: "Supprimer les clés dAPI",
sysApiKeyQuery: "Rechercher des clés dAPI",
sysAppPasswordGet: "Consulter les mots de passe dapplication",
sysAppPasswordCreate: "Créer des mots de passe dapplication",
sysAppPasswordUpdate: "Mettre à jour les mots de passe dapplication",
sysAppPasswordDestroy: "Supprimer les mots de passe dapplication",
sysAppPasswordQuery: "Rechercher des mots de passe dapplication",
sysApplicationGet: "Consulter les applications",
sysApplicationCreate: "Créer des applications",
sysApplicationUpdate: "Mettre à jour les applications",
sysApplicationDestroy: "Supprimer les applications",
sysApplicationQuery: "Rechercher des applications",
sysArchivedItemGet: "Consulter les éléments archivés",
sysArchivedItemCreate: "Créer des éléments archivés",
sysArchivedItemUpdate: "Mettre à jour les éléments archivés",
sysArchivedItemDestroy: "Supprimer les éléments archivés",
sysArchivedItemQuery: "Rechercher des éléments archivés",
sysArfExternalReportGet: "Consulter les rapports",
sysArfExternalReportCreate: "Créer des rapports",
sysArfExternalReportUpdate: "Mettre à jour les rapports",
sysArfExternalReportDestroy: "Supprimer les rapports",
sysArfExternalReportQuery: "Rechercher des rapports",
sysAsnGet: "Consulter les paramètres ASN",
sysAsnUpdate: "Mettre à jour les paramètres ASN",
sysAuthenticationGet: "Consulter les paramètres dauthentification",
sysAuthenticationUpdate: "Mettre à jour les paramètres dauthentification",
sysBlobStoreGet: "Consulter les paramètres du stockage de blobs",
sysBlobStoreUpdate: "Mettre à jour les paramètres du stockage de blobs",
sysBlockedIpGet: "Consulter les adresses",
sysBlockedIpCreate: "Créer des adresses",
sysBlockedIpUpdate: "Mettre à jour les adresses",
sysBlockedIpDestroy: "Supprimer les adresses",
sysBlockedIpQuery: "Rechercher des adresses",
sysBootstrapGet: "Consulter les paramètres damorçage",
sysBootstrapUpdate: "Mettre à jour les paramètres damorçage",
sysCacheGet: "Consulter les paramètres du cache",
sysCacheUpdate: "Mettre à jour les paramètres du cache",
sysCalendarGet: "Consulter les paramètres dagenda",
sysCalendarUpdate: "Mettre à jour les paramètres dagenda",
sysCalendarAlarmGet: "Consulter les paramètres des rappels dagenda",
sysCalendarAlarmUpdate: "Mettre à jour les paramètres des rappels dagenda",
sysCalendarSchedulingGet: "Consulter les paramètres de planification dagenda",
sysCalendarSchedulingUpdate: "Mettre à jour les paramètres de planification dagenda",
sysCertificateGet: "Consulter les certificats",
sysCertificateCreate: "Créer des certificats",
sysCertificateUpdate: "Mettre à jour les certificats",
sysCertificateDestroy: "Supprimer les certificats",
sysCertificateQuery: "Rechercher des certificats",
sysClusterNodeGet: "Consulter les nœuds du cluster",
sysClusterNodeCreate: "Créer des nœuds du cluster",
sysClusterNodeUpdate: "Mettre à jour les nœuds du cluster",
sysClusterNodeDestroy: "Supprimer les nœuds du cluster",
sysClusterNodeQuery: "Rechercher des nœuds du cluster",
sysClusterRoleGet: "Consulter les rôles",
sysClusterRoleCreate: "Créer des rôles",
sysClusterRoleUpdate: "Mettre à jour les rôles",
sysClusterRoleDestroy: "Supprimer les rôles",
sysClusterRoleQuery: "Rechercher des rôles",
sysCoordinatorGet: "Consulter les paramètres du coordinateur",
sysCoordinatorUpdate: "Mettre à jour les paramètres du coordinateur",
sysDataRetentionGet: "Consulter les paramètres de conservation des données",
sysDataRetentionUpdate: "Mettre à jour les paramètres de conservation des données",
sysDataStoreGet: "Consulter les paramètres du stockage de données",
sysDataStoreUpdate: "Mettre à jour les paramètres du stockage de données",
sysDirectoryGet: "Consulter les annuaires",
sysDirectoryCreate: "Créer des annuaires",
sysDirectoryUpdate: "Mettre à jour les annuaires",
sysDirectoryDestroy: "Supprimer les annuaires",
sysDirectoryQuery: "Rechercher des annuaires",
sysDkimReportSettingsGet: "Consulter les paramètres des rapports DKIM",
sysDkimReportSettingsUpdate: "Mettre à jour les paramètres des rapports DKIM",
sysDkimSignatureGet: "Consulter les signatures",
sysDkimSignatureCreate: "Créer des signatures",
sysDkimSignatureUpdate: "Mettre à jour les signatures",
sysDkimSignatureDestroy: "Supprimer les signatures",
sysDkimSignatureQuery: "Rechercher des signatures",
sysDmarcExternalReportGet: "Consulter les rapports",
sysDmarcExternalReportCreate: "Créer des rapports",
sysDmarcExternalReportUpdate: "Mettre à jour les rapports",
sysDmarcExternalReportDestroy: "Supprimer les rapports",
sysDmarcExternalReportQuery: "Rechercher des rapports",
sysDmarcInternalReportGet: "Consulter les rapports",
sysDmarcInternalReportCreate: "Créer des rapports",
sysDmarcInternalReportUpdate: "Mettre à jour les rapports",
sysDmarcInternalReportDestroy: "Supprimer les rapports",
sysDmarcInternalReportQuery: "Rechercher des rapports",
sysDmarcReportSettingsGet: "Consulter les paramètres des rapports DMARC",
sysDmarcReportSettingsUpdate: "Mettre à jour les paramètres des rapports DMARC",
sysDnsResolverGet: "Consulter les paramètres du résolveur DNS",
sysDnsResolverUpdate: "Mettre à jour les paramètres du résolveur DNS",
sysDnsServerGet: "Consulter les serveurs DNS",
sysDnsServerCreate: "Créer des serveurs DNS",
sysDnsServerUpdate: "Mettre à jour les serveurs DNS",
sysDnsServerDestroy: "Supprimer les serveurs DNS",
sysDnsServerQuery: "Rechercher des serveurs DNS",
sysDomainGet: "Consulter les domaines",
sysDomainCreate: "Créer des domaines",
sysDomainUpdate: "Mettre à jour les domaines",
sysDomainDestroy: "Supprimer les domaines",
sysDomainQuery: "Rechercher des domaines",
sysDsnReportSettingsGet: "Consulter les paramètres des rapports DSN",
sysDsnReportSettingsUpdate: "Mettre à jour les paramètres des rapports DSN",
sysEmailGet: "Consulter les paramètres de-mail",
sysEmailUpdate: "Mettre à jour les paramètres de-mail",
sysEnterpriseGet: "Consulter les paramètres de l’édition Enterprise",
sysEnterpriseUpdate: "Mettre à jour les paramètres de l’édition Enterprise",
sysEventTracingLevelGet: "Consulter les événements",
sysEventTracingLevelCreate: "Créer des événements",
sysEventTracingLevelUpdate: "Mettre à jour les événements",
sysEventTracingLevelDestroy: "Supprimer les événements",
sysEventTracingLevelQuery: "Rechercher des événements",
sysFileStorageGet: "Consulter les paramètres du stockage de fichiers",
sysFileStorageUpdate: "Mettre à jour les paramètres du stockage de fichiers",
sysHttpGet: "Consulter les paramètres HTTP",
sysHttpUpdate: "Mettre à jour les paramètres HTTP",
sysHttpFormGet: "Consulter les paramètres des formulaires HTTP",
sysHttpFormUpdate: "Mettre à jour les paramètres des formulaires HTTP",
sysHttpLookupGet: "Consulter les listes",
sysHttpLookupCreate: "Créer des listes",
sysHttpLookupUpdate: "Mettre à jour les listes",
sysHttpLookupDestroy: "Supprimer les listes",
sysHttpLookupQuery: "Rechercher des listes",
sysImapGet: "Consulter les paramètres IMAP",
sysImapUpdate: "Mettre à jour les paramètres IMAP",
sysInMemoryStoreGet: "Consulter les paramètres du stockage en mémoire",
sysInMemoryStoreUpdate: "Mettre à jour les paramètres du stockage en mémoire",
sysJmapGet: "Consulter les paramètres JMAP",
sysJmapUpdate: "Mettre à jour les paramètres JMAP",
sysLogGet: "Consulter les entrées de journal",
sysLogCreate: "Créer des entrées de journal",
sysLogUpdate: "Mettre à jour les entrées de journal",
sysLogDestroy: "Supprimer les entrées de journal",
sysLogQuery: "Rechercher des entrées de journal",
sysMailingListGet: "Consulter les listes de diffusion",
sysMailingListCreate: "Créer des listes de diffusion",
sysMailingListUpdate: "Mettre à jour les listes de diffusion",
sysMailingListDestroy: "Supprimer les listes de diffusion",
sysMailingListQuery: "Rechercher des listes de diffusion",
sysMaskedEmailGet: "Consulter les adresses e-mail masquées",
sysMaskedEmailCreate: "Créer des adresses e-mail masquées",
sysMaskedEmailUpdate: "Mettre à jour les adresses e-mail masquées",
sysMaskedEmailDestroy: "Supprimer les adresses e-mail masquées",
sysMaskedEmailQuery: "Rechercher des adresses e-mail masquées",
sysMemoryLookupKeyGet: "Consulter les clés",
sysMemoryLookupKeyCreate: "Créer des clés",
sysMemoryLookupKeyUpdate: "Mettre à jour les clés",
sysMemoryLookupKeyDestroy: "Supprimer les clés",
sysMemoryLookupKeyQuery: "Rechercher des clés",
sysMemoryLookupKeyValueGet: "Consulter les clés",
sysMemoryLookupKeyValueCreate: "Créer des clés",
sysMemoryLookupKeyValueUpdate: "Mettre à jour les clés",
sysMemoryLookupKeyValueDestroy: "Supprimer les clés",
sysMemoryLookupKeyValueQuery: "Rechercher des clés",
sysMetricGet: "Consulter les métriques",
sysMetricCreate: "Créer des métriques",
sysMetricUpdate: "Mettre à jour les métriques",
sysMetricDestroy: "Supprimer les métriques",
sysMetricQuery: "Rechercher des métriques",
sysMetricsGet: "Consulter les paramètres des métriques",
sysMetricsUpdate: "Mettre à jour les paramètres des métriques",
sysMetricsStoreGet: "Consulter les paramètres du stockage des métriques",
sysMetricsStoreUpdate: "Mettre à jour les paramètres du stockage des métriques",
sysMtaConnectionStrategyGet: "Consulter les stratégies",
sysMtaConnectionStrategyCreate: "Créer des stratégies",
sysMtaConnectionStrategyUpdate: "Mettre à jour les stratégies",
sysMtaConnectionStrategyDestroy: "Supprimer les stratégies",
sysMtaConnectionStrategyQuery: "Rechercher des stratégies",
sysMtaDeliveryScheduleGet: "Consulter les plannings",
sysMtaDeliveryScheduleCreate: "Créer des plannings",
sysMtaDeliveryScheduleUpdate: "Mettre à jour les plannings",
sysMtaDeliveryScheduleDestroy: "Supprimer les plannings",
sysMtaDeliveryScheduleQuery: "Rechercher des plannings",
sysMtaExtensionsGet: "Consulter les paramètres des extensions MTA",
sysMtaExtensionsUpdate: "Mettre à jour les paramètres des extensions MTA",
sysMtaHookGet: "Consulter les hooks",
sysMtaHookCreate: "Créer des hooks",
sysMtaHookUpdate: "Mettre à jour les hooks",
sysMtaHookDestroy: "Supprimer les hooks",
sysMtaHookQuery: "Rechercher des hooks",
sysMtaInboundSessionGet: "Consulter les paramètres de session MTA entrante",
sysMtaInboundSessionUpdate: "Mettre à jour les paramètres de session MTA entrante",
sysMtaInboundThrottleGet: "Consulter les limitations de débit",
sysMtaInboundThrottleCreate: "Créer des limitations de débit",
sysMtaInboundThrottleUpdate: "Mettre à jour les limitations de débit",
sysMtaInboundThrottleDestroy: "Supprimer les limitations de débit",
sysMtaInboundThrottleQuery: "Rechercher des limitations de débit",
sysMtaMilterGet: "Consulter les milters",
sysMtaMilterCreate: "Créer des milters",
sysMtaMilterUpdate: "Mettre à jour les milters",
sysMtaMilterDestroy: "Supprimer les milters",
sysMtaMilterQuery: "Rechercher des milters",
sysMtaOutboundStrategyGet: "Consulter les paramètres de stratégie MTA sortante",
sysMtaOutboundStrategyUpdate: "Mettre à jour les paramètres de stratégie MTA sortante",
sysMtaOutboundThrottleGet: "Consulter les limitations de débit",
sysMtaOutboundThrottleCreate: "Créer des limitations de débit",
sysMtaOutboundThrottleUpdate: "Mettre à jour les limitations de débit",
sysMtaOutboundThrottleDestroy: "Supprimer les limitations de débit",
sysMtaOutboundThrottleQuery: "Rechercher des limitations de débit",
sysMtaQueueQuotaGet: "Consulter les quotas",
sysMtaQueueQuotaCreate: "Créer des quotas",
sysMtaQueueQuotaUpdate: "Mettre à jour les quotas",
sysMtaQueueQuotaDestroy: "Supprimer les quotas",
sysMtaQueueQuotaQuery: "Rechercher des quotas",
sysMtaRouteGet: "Consulter les routes",
sysMtaRouteCreate: "Créer des routes",
sysMtaRouteUpdate: "Mettre à jour les routes",
sysMtaRouteDestroy: "Supprimer les routes",
sysMtaRouteQuery: "Rechercher des routes",
sysMtaStageAuthGet: "Consulter les paramètres de l’étape MTA AUTH",
sysMtaStageAuthUpdate: "Mettre à jour les paramètres de l’étape MTA AUTH",
sysMtaStageConnectGet: "Consulter les paramètres de l’étape MTA CONNECT",
sysMtaStageConnectUpdate: "Mettre à jour les paramètres de l’étape MTA CONNECT",
sysMtaStageDataGet: "Consulter les paramètres de l’étape MTA DATA",
sysMtaStageDataUpdate: "Mettre à jour les paramètres de l’étape MTA DATA",
sysMtaStageEhloGet: "Consulter les paramètres de l’étape MTA EHLO",
sysMtaStageEhloUpdate: "Mettre à jour les paramètres de l’étape MTA EHLO",
sysMtaStageMailGet: "Consulter les paramètres de l’étape MTA MAIL",
sysMtaStageMailUpdate: "Mettre à jour les paramètres de l’étape MTA MAIL",
sysMtaStageRcptGet: "Consulter les paramètres de l’étape MTA RCPT",
sysMtaStageRcptUpdate: "Mettre à jour les paramètres de l’étape MTA RCPT",
sysMtaStsGet: "Consulter les paramètres MTA-STS",
sysMtaStsUpdate: "Mettre à jour les paramètres MTA-STS",
sysMtaTlsStrategyGet: "Consulter les stratégies",
sysMtaTlsStrategyCreate: "Créer des stratégies",
sysMtaTlsStrategyUpdate: "Mettre à jour les stratégies",
sysMtaTlsStrategyDestroy: "Supprimer les stratégies",
sysMtaTlsStrategyQuery: "Rechercher des stratégies",
sysMtaVirtualQueueGet: "Consulter les files dattente",
sysMtaVirtualQueueCreate: "Créer des files dattente",
sysMtaVirtualQueueUpdate: "Mettre à jour les files dattente",
sysMtaVirtualQueueDestroy: "Supprimer les files dattente",
sysMtaVirtualQueueQuery: "Rechercher des files dattente",
sysNetworkListenerGet: "Consulter les écouteurs",
sysNetworkListenerCreate: "Créer des écouteurs",
sysNetworkListenerUpdate: "Mettre à jour les écouteurs",
sysNetworkListenerDestroy: "Supprimer les écouteurs",
sysNetworkListenerQuery: "Rechercher des écouteurs",
sysOAuthClientGet: "Consulter les clients OAuth",
sysOAuthClientCreate: "Créer des clients OAuth",
sysOAuthClientUpdate: "Mettre à jour les clients OAuth",
sysOAuthClientDestroy: "Supprimer les clients OAuth",
sysOAuthClientQuery: "Rechercher des clients OAuth",
sysOidcProviderGet: "Consulter les paramètres du fournisseur OIDC",
sysOidcProviderUpdate: "Mettre à jour les paramètres du fournisseur OIDC",
sysPublicKeyGet: "Consulter les clés publiques",
sysPublicKeyCreate: "Créer des clés publiques",
sysPublicKeyUpdate: "Mettre à jour les clés publiques",
sysPublicKeyDestroy: "Supprimer les clés publiques",
sysPublicKeyQuery: "Rechercher des clés publiques",
sysQueuedMessageGet: "Consulter les messages",
sysQueuedMessageCreate: "Créer des messages",
sysQueuedMessageUpdate: "Mettre à jour les messages",
sysQueuedMessageDestroy: "Supprimer les messages",
sysQueuedMessageQuery: "Rechercher des messages",
sysReportSettingsGet: "Consulter les paramètres des rapports",
sysReportSettingsUpdate: "Mettre à jour les paramètres des rapports",
sysRoleGet: "Consulter les rôles",
sysRoleCreate: "Créer des rôles",
sysRoleUpdate: "Mettre à jour les rôles",
sysRoleDestroy: "Supprimer les rôles",
sysRoleQuery: "Rechercher des rôles",
sysSearchGet: "Consulter les paramètres de recherche",
sysSearchUpdate: "Mettre à jour les paramètres de recherche",
sysSearchStoreGet: "Consulter les paramètres du stockage de recherche",
sysSearchStoreUpdate: "Mettre à jour les paramètres du stockage de recherche",
sysSecurityGet: "Consulter les paramètres de sécurité",
sysSecurityUpdate: "Mettre à jour les paramètres de sécurité",
sysSenderAuthGet: "Consulter les paramètres dauthentification de lexpéditeur",
sysSenderAuthUpdate: "Mettre à jour les paramètres dauthentification de lexpéditeur",
sysSharingGet: "Consulter les paramètres de partage",
sysSharingUpdate: "Mettre à jour les paramètres de partage",
sysSieveSystemInterpreterGet: "Consulter les paramètres de linterpréteur Sieve système",
sysSieveSystemInterpreterUpdate: "Mettre à jour les paramètres de linterpréteur Sieve système",
sysSieveSystemScriptGet: "Consulter les scripts",
sysSieveSystemScriptCreate: "Créer des scripts",
sysSieveSystemScriptUpdate: "Mettre à jour les scripts",
sysSieveSystemScriptDestroy: "Supprimer les scripts",
sysSieveSystemScriptQuery: "Rechercher des scripts",
sysSieveUserInterpreterGet: "Consulter les paramètres de linterpréteur Sieve utilisateur",
sysSieveUserInterpreterUpdate: "Mettre à jour les paramètres de linterpréteur Sieve utilisateur",
sysSieveUserScriptGet: "Consulter les scripts",
sysSieveUserScriptCreate: "Créer des scripts",
sysSieveUserScriptUpdate: "Mettre à jour les scripts",
sysSieveUserScriptDestroy: "Supprimer les scripts",
sysSieveUserScriptQuery: "Rechercher des scripts",
sysSpamClassifierGet: "Consulter les paramètres du classificateur antispam",
sysSpamClassifierUpdate: "Mettre à jour les paramètres du classificateur antispam",
sysSpamDnsblServerGet: "Consulter les serveurs",
sysSpamDnsblServerCreate: "Créer des serveurs",
sysSpamDnsblServerUpdate: "Mettre à jour les serveurs",
sysSpamDnsblServerDestroy: "Supprimer les serveurs",
sysSpamDnsblServerQuery: "Rechercher des serveurs",
sysSpamDnsblSettingsGet: "Consulter les paramètres DNSBL du filtre antispam",
sysSpamDnsblSettingsUpdate: "Mettre à jour les paramètres DNSBL du filtre antispam",
sysSpamFileExtensionGet: "Consulter les extensions",
sysSpamFileExtensionCreate: "Créer des extensions",
sysSpamFileExtensionUpdate: "Mettre à jour les extensions",
sysSpamFileExtensionDestroy: "Supprimer les extensions",
sysSpamFileExtensionQuery: "Rechercher des extensions",
sysSpamLlmGet: "Consulter les paramètres LLM du filtre antispam",
sysSpamLlmUpdate: "Mettre à jour les paramètres LLM du filtre antispam",
sysSpamPyzorGet: "Consulter les paramètres Pyzor du filtre antispam",
sysSpamPyzorUpdate: "Mettre à jour les paramètres Pyzor du filtre antispam",
sysSpamRuleGet: "Consulter les règles",
sysSpamRuleCreate: "Créer des règles",
sysSpamRuleUpdate: "Mettre à jour les règles",
sysSpamRuleDestroy: "Supprimer les règles",
sysSpamRuleQuery: "Rechercher des règles",
sysSpamSettingsGet: "Consulter les paramètres du filtre antispam",
sysSpamSettingsUpdate: "Mettre à jour les paramètres du filtre antispam",
sysSpamTagGet: "Consulter les balises",
sysSpamTagCreate: "Créer des balises",
sysSpamTagUpdate: "Mettre à jour les balises",
sysSpamTagDestroy: "Supprimer les balises",
sysSpamTagQuery: "Rechercher des balises",
sysSpamTrainingSampleGet: "Consulter les échantillons",
sysSpamTrainingSampleCreate: "Créer des échantillons",
sysSpamTrainingSampleUpdate: "Mettre à jour les échantillons",
sysSpamTrainingSampleDestroy: "Supprimer les échantillons",
sysSpamTrainingSampleQuery: "Rechercher des échantillons",
sysSpfReportSettingsGet: "Consulter les paramètres des rapports SPF",
sysSpfReportSettingsUpdate: "Mettre à jour les paramètres des rapports SPF",
sysStoreLookupGet: "Consulter les tables de correspondance",
sysStoreLookupCreate: "Créer des tables de correspondance",
sysStoreLookupUpdate: "Mettre à jour les tables de correspondance",
sysStoreLookupDestroy: "Supprimer les tables de correspondance",
sysStoreLookupQuery: "Rechercher des tables de correspondance",
sysSystemSettingsGet: "Consulter les paramètres système",
sysSystemSettingsUpdate: "Mettre à jour les paramètres système",
taskIndexDocument: "Indexer un document",
taskUnindexDocument: "Désindexer un document",
taskIndexTrace: "Indexer une trace de télémétrie",
taskCalendarAlarmEmail: "E-mail de rappel dagenda",
taskCalendarAlarmNotification: "Notification de rappel dagenda",
taskCalendarItipMessage: "Message iTIP dagenda",
taskMergeThreads: "Fusionner des fils de messages",
taskDmarcReport: "Envoyer le rapport DMARC au serveur distant",
taskTlsReport: "Envoyer le rapport TLS au serveur distant",
taskRestoreArchivedItem: "Restaurer un élément archivé",
taskDestroyAccount: "Supprimer le compte et toutes les données associées",
taskAccountMaintenance: "Effectuer les opérations de maintenance des comptes",
taskTenantMaintenance: "Effectuer les opérations de maintenance des locataires",
taskStoreMaintenance: "Effectuer les opérations de maintenance du stockage",
taskSpamFilterMaintenance: "Effectuer les opérations de maintenance du filtre antispam",
taskAcmeRenewal: "Effectuer le renouvellement ACME du certificat dun domaine",
taskDkimManagement: "Effectuer la rotation des clés DKIM dun domaine",
taskDnsManagement: "Effectuer la gestion DNS dun domaine",
sysTaskGet: "Consulter les tâches",
sysTaskCreate: "Créer des tâches",
sysTaskUpdate: "Mettre à jour les tâches",
sysTaskDestroy: "Supprimer les tâches",
sysTaskQuery: "Rechercher des tâches",
sysTaskManagerGet: "Consulter les paramètres du gestionnaire de tâches",
sysTaskManagerUpdate: "Mettre à jour les paramètres du gestionnaire de tâches",
sysTenantGet: "Consulter les locataires",
sysTenantCreate: "Créer des locataires",
sysTenantUpdate: "Mettre à jour les locataires",
sysTenantDestroy: "Supprimer les locataires",
sysTenantQuery: "Rechercher des locataires",
sysTlsExternalReportGet: "Consulter les rapports",
sysTlsExternalReportCreate: "Créer des rapports",
sysTlsExternalReportUpdate: "Mettre à jour les rapports",
sysTlsExternalReportDestroy: "Supprimer les rapports",
sysTlsExternalReportQuery: "Rechercher des rapports",
sysTlsInternalReportGet: "Consulter les rapports",
sysTlsInternalReportCreate: "Créer des rapports",
sysTlsInternalReportUpdate: "Mettre à jour les rapports",
sysTlsInternalReportDestroy: "Supprimer les rapports",
sysTlsInternalReportQuery: "Rechercher des rapports",
sysTlsReportSettingsGet: "Consulter les paramètres des rapports TLS",
sysTlsReportSettingsUpdate: "Mettre à jour les paramètres des rapports TLS",
sysTraceGet: "Consulter les traces",
sysTraceCreate: "Créer des traces",
sysTraceUpdate: "Mettre à jour les traces",
sysTraceDestroy: "Supprimer les traces",
sysTraceQuery: "Rechercher des traces",
sysTracerGet: "Consulter les traceurs",
sysTracerCreate: "Créer des traceurs",
sysTracerUpdate: "Mettre à jour les traceurs",
sysTracerDestroy: "Supprimer les traceurs",
sysTracerQuery: "Rechercher des traceurs",
sysTracingStoreGet: "Consulter les paramètres du stockage des traces",
sysTracingStoreUpdate: "Mettre à jour les paramètres du stockage des traces",
sysWebDavGet: "Consulter les paramètres WebDAV",
sysWebDavUpdate: "Mettre à jour les paramètres WebDAV",
sysWebHookGet: "Consulter les webhooks",
sysWebHookCreate: "Créer des webhooks",
sysWebHookUpdate: "Mettre à jour les webhooks",
sysWebHookDestroy: "Supprimer les webhooks",
sysWebHookQuery: "Rechercher des webhooks",
},
};
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in Japanese, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "AI モデル管理",
"API keys Management": "API キー管理",
"Accounts Management": "アカウント管理",
"Action": "アクション",
"Actions Management": "アクション管理",
"Addresses Management": "アドレス管理",
"Alerts Management": "アラート管理",
"App passwords Management": "アプリパスワード管理",
"Applications Management": "アプリケーション管理",
"Archived items Management": "アーカイブ済みアイテム管理",
"Calendar": "カレンダー",
"Certificates Management": "証明書管理",
"Cluster nodes Management": "クラスターノード管理",
"DNS servers Management": "DNS サーバー管理",
"Directories Management": "ディレクトリ管理",
"Domains Management": "ドメイン管理",
"Email": "メール",
"Events Management": "イベント管理",
"Extensions Management": "拡張子管理",
"Hooks Management": "フック管理",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "キー管理",
"Listeners Management": "リスナー管理",
"Lists Management": "リスト管理",
"Log entries Management": "ログエントリ管理",
"Lookups Management": "ルックアップ管理",
"Mailing lists Management": "メーリングリスト管理",
"ManageSieve": "ManageSieve",
"Masked emails Management": "マスクメール管理",
"Messages Management": "メール管理",
"Metrics Management": "メトリクス管理",
"Milters Management": "Milter 管理",
"OAuth clients Management": "OAuth クライアント管理",
"POP3": "POP3",
"Providers Management": "プロバイダー管理",
"Public keys Management": "公開鍵管理",
"Queues Management": "キュー管理",
"Quotas Management": "クォータ管理",
"Reports Management": "レポート管理",
"Roles Management": "ロール管理",
"Routes Management": "ルート管理",
"Rules Management": "ルール管理",
"Samples Management": "サンプル管理",
"Schedules Management": "スケジュール管理",
"Scripts Management": "スクリプト管理",
"Servers Management": "サーバー管理",
"Settings": "設定",
"Signatures Management": "署名管理",
"Strategies Management": "戦略管理",
"Tags Management": "タグ管理",
"Task": "タスク",
"Tasks Management": "タスク管理",
"Tenants Management": "テナント管理",
"Throttles Management": "スロットル管理",
"Tracers Management": "トレーサー管理",
"Traces Management": "トレース管理",
"WebDAV": "WebDAV",
"Webhooks Management": "Webhook 管理",
},
labels: {
authenticate: "サーバーへのサインイン",
authenticateWithAlias: "メールのエイリアスアドレスによるサインイン",
interactAi: "AI モデルとのやり取り",
impersonate: "他のユーザーの代理としての操作",
unlimitedRequests: "リクエストのレート制限のバイパス",
unlimitedUploads: "アップロードのサイズ制限とレート制限のバイパス",
fetchAnyBlob: "任意の BLOB の取得(アカウントが所有していないものを含む)",
emailSend: "メールの送信",
emailReceive: "メールの受信",
calendarAlarmsSend: "カレンダーのアラーム通知のメールでの送信",
calendarSchedulingSend: "カレンダーの招待と更新のメールでの送信",
calendarSchedulingReceive: "受信したカレンダーの招待と返信の処理",
jmapPushSubscriptionGet: "プッシュ購読の詳細の取得",
jmapPushSubscriptionCreate: "プッシュ購読の作成",
jmapPushSubscriptionUpdate: "プッシュ購読の変更",
jmapPushSubscriptionDestroy: "プッシュ購読の削除",
jmapMailboxGet: "メールボックスの詳細とプロパティの取得",
jmapMailboxChanges: "メールボックスの変更の追跡",
jmapMailboxQuery: "条件に一致するメールボックスの検索",
jmapMailboxQueryChanges: "メールボックスの照会結果の変更の追跡",
jmapMailboxCreate: "メールボックスの作成",
jmapMailboxUpdate: "メールボックスの変更",
jmapMailboxDestroy: "メールボックスの削除",
jmapThreadGet: "メールスレッドの詳細の取得",
jmapThreadChanges: "スレッドの変更の追跡",
jmapEmailGet: "メールの詳細とプロパティの取得",
jmapEmailChanges: "メールの変更の追跡",
jmapEmailQuery: "条件に一致するメールの検索",
jmapEmailQueryChanges: "メールの照会結果の変更の追跡",
jmapEmailCreate: "メールの作成",
jmapEmailUpdate: "メールの変更",
jmapEmailDestroy: "メールの削除",
jmapEmailCopy: "メールの別アカウントへのコピー",
jmapEmailImport: "BLOB データからのメールのインポート",
jmapEmailParse: "未加工のメールデータの解析(保存なし)",
jmapSearchSnippetGet: "メールの検索結果スニペットの取得",
jmapIdentityGet: "差出人の詳細の取得",
jmapIdentityChanges: "差出人の変更の追跡",
jmapIdentityCreate: "差出人の作成",
jmapIdentityUpdate: "差出人の変更",
jmapIdentityDestroy: "差出人の削除",
jmapEmailSubmissionGet: "メール送信の詳細の取得",
jmapEmailSubmissionChanges: "メール送信の変更の追跡",
jmapEmailSubmissionQuery: "条件に一致するメール送信の検索",
jmapEmailSubmissionQueryChanges: "メール送信の照会結果の変更の追跡",
jmapEmailSubmissionCreate: "メール送信の作成",
jmapEmailSubmissionUpdate: "メール送信の変更",
jmapEmailSubmissionDestroy: "メール送信の削除",
jmapVacationResponseGet: "不在時の自動返信の設定の取得",
jmapVacationResponseCreate: "不在時の自動返信の設定の作成",
jmapVacationResponseUpdate: "不在時の自動返信の設定の変更",
jmapVacationResponseDestroy: "不在時の自動返信の設定の削除",
jmapSieveScriptGet: "Sieve フィルタースクリプトの詳細の取得",
jmapSieveScriptQuery: "条件に一致する Sieve フィルタースクリプトの検索",
jmapSieveScriptValidate: "Sieve スクリプトの検証(保存なし)",
jmapSieveScriptCreate: "Sieve フィルタースクリプトの作成",
jmapSieveScriptUpdate: "Sieve フィルタースクリプトの変更",
jmapSieveScriptDestroy: "Sieve フィルタースクリプトの削除",
jmapPrincipalGet: "プリンシパルの詳細とプロパティの取得",
jmapPrincipalQuery: "条件に一致するプリンシパルの検索",
jmapPrincipalChanges: "プリンシパルの変更の追跡",
jmapPrincipalQueryChanges: "プリンシパルの照会結果の変更の追跡",
jmapPrincipalGetAvailability: "プリンシパルの空き状況情報の照会",
jmapPrincipalCreate: "プリンシパルの作成",
jmapPrincipalUpdate: "プリンシパルの変更",
jmapPrincipalDestroy: "プリンシパルの削除",
jmapQuotaGet: "クォータの使用量と上限の取得",
jmapQuotaChanges: "クォータの変更の追跡",
jmapQuotaQuery: "条件に一致するクォータの検索",
jmapQuotaQueryChanges: "クォータの照会結果の変更の追跡",
jmapBlobGet: "BLOB データのダウンロード",
jmapBlobCopy: "BLOB の別アカウントへのコピー",
jmapBlobLookup: "データ種別をまたいだ BLOB の使用状況の参照",
jmapBlobUpload: "BLOB データのアップロード",
jmapAddressBookGet: "アドレス帳の詳細とプロパティの取得",
jmapAddressBookChanges: "アドレス帳の変更の追跡",
jmapAddressBookCreate: "アドレス帳の作成",
jmapAddressBookUpdate: "アドレス帳の変更",
jmapAddressBookDestroy: "アドレス帳の削除",
jmapContactCardGet: "連絡先カードの詳細の取得",
jmapContactCardChanges: "連絡先カードの変更の追跡",
jmapContactCardQuery: "条件に一致する連絡先カードの検索",
jmapContactCardQueryChanges: "連絡先カードの照会結果の変更の追跡",
jmapContactCardCreate: "連絡先カードの作成",
jmapContactCardUpdate: "連絡先カードの変更",
jmapContactCardDestroy: "連絡先カードの削除",
jmapContactCardCopy: "連絡先カードの別アカウントへのコピー",
jmapContactCardParse: "未加工の連絡先カードデータの解析(保存なし)",
jmapFileNodeGet: "ファイルノードの詳細とプロパティの取得",
jmapFileNodeChanges: "ファイルノードの変更の追跡",
jmapFileNodeQuery: "条件に一致するファイルノードの検索",
jmapFileNodeQueryChanges: "ファイルノードの照会結果の変更の追跡",
jmapFileNodeCreate: "ファイルノードの作成",
jmapFileNodeUpdate: "ファイルノードの変更",
jmapFileNodeDestroy: "ファイルノードの削除",
jmapFileNodeCopy: "ファイルノードの別アカウントへのコピー",
jmapShareNotificationGet: "共有通知の詳細の取得",
jmapShareNotificationChanges: "共有通知の変更の追跡",
jmapShareNotificationQuery: "条件に一致する共有通知の検索",
jmapShareNotificationQueryChanges: "共有通知の照会結果の変更の追跡",
jmapShareNotificationCreate: "共有通知の作成",
jmapShareNotificationUpdate: "共有通知の変更",
jmapShareNotificationDestroy: "共有通知の削除",
jmapCalendarGet: "カレンダーの詳細とプロパティの取得",
jmapCalendarChanges: "カレンダーの変更の追跡",
jmapCalendarCreate: "カレンダーの作成",
jmapCalendarUpdate: "カレンダーの変更",
jmapCalendarDestroy: "カレンダーの削除",
jmapCalendarEventGet: "カレンダー予定の詳細の取得",
jmapCalendarEventChanges: "カレンダー予定の変更の追跡",
jmapCalendarEventQuery: "条件に一致するカレンダー予定の検索",
jmapCalendarEventQueryChanges: "カレンダー予定の照会結果の変更の追跡",
jmapCalendarEventCreate: "カレンダー予定の作成",
jmapCalendarEventUpdate: "カレンダー予定の変更",
jmapCalendarEventDestroy: "カレンダー予定の削除",
jmapCalendarEventCopy: "カレンダー予定の別アカウントへのコピー",
jmapCalendarEventParse: "未加工のカレンダー予定データの解析(保存なし)",
jmapCalendarEventNotificationGet: "カレンダー予定通知の詳細の取得",
jmapCalendarEventNotificationChanges: "カレンダー予定通知の変更の追跡",
jmapCalendarEventNotificationQuery: "条件に一致するカレンダー予定通知の検索",
jmapCalendarEventNotificationQueryChanges: "カレンダー予定通知の照会結果の変更の追跡",
jmapCalendarEventNotificationCreate: "カレンダー予定通知の作成",
jmapCalendarEventNotificationUpdate: "カレンダー予定通知の変更",
jmapCalendarEventNotificationDestroy: "カレンダー予定通知の削除",
jmapParticipantIdentityGet: "参加者アイデンティティの詳細の取得",
jmapParticipantIdentityChanges: "参加者アイデンティティの変更の追跡",
jmapParticipantIdentityCreate: "参加者アイデンティティの作成",
jmapParticipantIdentityUpdate: "参加者アイデンティティの変更",
jmapParticipantIdentityDestroy: "参加者アイデンティティの削除",
jmapCoreEcho: "テスト用の入力データのエコー",
imapAuthenticate: "IMAP サーバーへのサインイン",
imapAclGet: "メールボックスのアクセス制御リストの閲覧",
imapAclSet: "メールボックスのアクセス制御リストの変更",
imapMyRights: "メールボックスに対する自分の権限の閲覧",
imapListRights: "メールボックスで利用可能な権限フラグの一覧表示",
imapAppend: "メールボックスへのメールのアップロード",
imapCapability: "対応している IMAP 拡張の照会",
imapId: "サーバーの識別情報とバージョンの照会",
imapCopy: "メールボックス間でのメールのコピー",
imapMove: "メールボックス間でのメールの移動",
imapCreate: "メールボックスの作成",
imapDelete: "メールボックスの削除、またはメールへの削除マーク付け",
imapEnable: "オプションの IMAP 拡張の有効化",
imapExpunge: "削除マーク付きメールの完全な削除",
imapFetch: "メールの内容とメタデータのダウンロード",
imapIdle: "メールボックスの変更のリアルタイム通知の受信",
imapList: "利用可能なメールボックスとその属性の一覧表示",
imapLsub: "購読中のメールボックスの一覧表示",
imapNamespace: "利用可能なメールボックス名前空間のプレフィックスの照会",
imapRename: "メールボックスの名前の変更または移動",
imapSearch: "条件によるメールの検索",
imapSort: "指定した並び順でのメールの取得",
imapSelect: "メールボックスを開く(読み書き)",
imapExamine: "メールボックスを開く(読み取り専用)",
imapStatus: "メールボックスのメール数と状態の照会",
imapStore: "メールのフラグ(既読、フラグ付き、削除など)の設定または解除",
imapSubscribe: "メールボックスの購読または購読解除",
imapThread: "メールのスレッドへのグループ化",
pop3Authenticate: "POP3 サーバーへのサインイン",
pop3List: "メールとそのサイズの一覧表示",
pop3Uidl: "メールの一意識別子の取得",
pop3Stat: "メールボックスのメール数と合計サイズの照会",
pop3Retr: "メールの内容のダウンロード",
pop3Dele: "切断時に削除するメールへのマーク付け",
sieveAuthenticate: "ManageSieve サーバーへのサインイン",
sieveListScripts: "アップロード済み Sieve スクリプトの一覧表示",
sieveSetActive: "有効にする Sieve スクリプトの指定",
sieveGetScript: "Sieve スクリプトの内容のダウンロード",
sievePutScript: "Sieve スクリプトのアップロードまたは置き換え",
sieveDeleteScript: "Sieve スクリプトの削除",
sieveRenameScript: "Sieve スクリプトの名前の変更",
sieveCheckScript: "Sieve スクリプトの構文の検証(保存なし)",
sieveHaveSpace: "指定サイズのスクリプトをクォータ内でアップロードできるかの確認",
davSyncCollection: "コレクションの変更のクライアントとの同期",
davExpandProperty: "他のリソースを参照するプロパティの展開",
davPrincipalAcl: "プリンシパルのアクセス制御プロパティの管理",
davPrincipalList: "システム内の利用可能なプリンシパルの一覧表示",
davPrincipalMatch: "指定した条件に基づくプリンシパルの照合",
davPrincipalSearch: "プロパティ値によるプリンシパルの検索",
davPrincipalSearchPropSet: "プリンシパルで検索可能なプロパティの照会",
davFilePropFind: "ファイルリソースのプロパティの取得",
davFilePropPatch: "ファイルリソースのプロパティの変更",
davFileGet: "ファイルリソースのダウンロード",
davFileMkCol: "ファイルコレクションまたはディレクトリの作成",
davFileDelete: "ファイルリソースの削除",
davFilePut: "ファイルリソースのアップロードまたは変更",
davFileCopy: "ファイルリソースの別の場所へのコピー",
davFileMove: "ファイルリソースの別の場所への移動",
davFileLock: "同時変更を防ぐためのファイルリソースのロック",
davFileAcl: "ファイルリソースのアクセス制御リストの管理",
davCardPropFind: "アドレス帳のエントリのプロパティの取得",
davCardPropPatch: "アドレス帳のエントリのプロパティの変更",
davCardGet: "アドレス帳のエントリのダウンロード",
davCardMkCol: "アドレス帳コレクションの作成",
davCardDelete: "アドレス帳のエントリまたはコレクションの削除",
davCardPut: "アドレス帳のエントリのアップロードまたは変更",
davCardCopy: "アドレス帳のエントリの別の場所へのコピー",
davCardMove: "アドレス帳のエントリの別の場所への移動",
davCardLock: "同時変更を防ぐためのアドレス帳のエントリのロック",
davCardAcl: "アドレス帳のエントリのアクセス制御リストの管理",
davCardQuery: "条件に一致するアドレス帳のエントリの検索",
davCardMultiGet: "1 回のリクエストでの複数のアドレス帳のエントリの取得",
davCalPropFind: "カレンダーのエントリのプロパティの取得",
davCalPropPatch: "カレンダーのエントリのプロパティの変更",
davCalGet: "カレンダーのエントリのダウンロード",
davCalMkCol: "カレンダーコレクションの作成",
davCalDelete: "カレンダーのエントリまたはコレクションの削除",
davCalPut: "カレンダーのエントリのアップロードまたは変更",
davCalCopy: "カレンダーのエントリの別の場所へのコピー",
davCalMove: "カレンダーのエントリの別の場所への移動",
davCalLock: "同時変更を防ぐためのカレンダーのエントリのロック",
davCalAcl: "カレンダーのエントリのアクセス制御リストの管理",
davCalQuery: "条件に一致するカレンダーのエントリの検索",
davCalMultiGet: "1 回のリクエストでの複数のカレンダーのエントリの取得",
davCalFreeBusyQuery: "スケジュール調整用の空き時間情報の照会",
oAuthClientRegistration: "OAuth クライアントアプリケーションの登録",
oAuthClientOverride: "OAuth クライアント登録要件のバイパス",
liveTracing: "サーバーイベントのリアルタイムトレースの閲覧",
liveMetrics: "サーバーパフォーマンスのリアルタイムメトリクスの閲覧",
liveDeliveryTest: "配信設定を確認するためのテストメールの送信",
scimAccess: "SCIM エンドポイントによるユーザーとグループのプロビジョニング",
sysAccountGet: "アカウントの取得",
sysAccountCreate: "アカウントの作成",
sysAccountUpdate: "アカウントの更新",
sysAccountDestroy: "アカウントの削除",
sysAccountQuery: "アカウントの照会",
sysAccountPasswordGet: "アカウントのパスワード設定の取得",
sysAccountPasswordUpdate: "アカウントのパスワード設定の更新",
sysAccountSettingsGet: "アカウント設定の取得",
sysAccountSettingsUpdate: "アカウント設定の更新",
sysAcmeProviderGet: "プロバイダーの取得",
sysAcmeProviderCreate: "プロバイダーの作成",
sysAcmeProviderUpdate: "プロバイダーの更新",
sysAcmeProviderDestroy: "プロバイダーの削除",
sysAcmeProviderQuery: "プロバイダーの照会",
actionReloadSettings: "再読み込み: サーバー設定",
actionReloadTlsCertificates: "再読み込み: TLS 証明書",
actionReloadLookupStores: "再読み込み: ルックアップストア",
actionReloadBlockedIps: "再読み込み: ブロック中の IP のリスト",
actionUpdateApps: "アプリケーション管理: アプリケーションの更新",
actionTroubleshootDmarc: "DMARC: トラブルシューティング",
actionClassifySpam: "迷惑メールフィルター: メールの分類",
actionInvalidateCaches: "キャッシュ: すべてのキャッシュの無効化",
actionInvalidateNegativeCaches: "キャッシュ: ネガティブキャッシュの無効化",
actionPauseMtaQueue: "MTA: キュー処理の一時停止",
actionResumeMtaQueue: "MTA: キュー処理の再開",
sysActionGet: "アクションの取得",
sysActionCreate: "アクションの作成",
sysActionUpdate: "アクションの更新",
sysActionDestroy: "アクションの削除",
sysActionQuery: "アクションの照会",
sysAddressBookGet: "アドレス帳設定の取得",
sysAddressBookUpdate: "アドレス帳設定の更新",
sysAiModelGet: "AI モデルの取得",
sysAiModelCreate: "AI モデルの作成",
sysAiModelUpdate: "AI モデルの更新",
sysAiModelDestroy: "AI モデルの削除",
sysAiModelQuery: "AI モデルの照会",
sysAlertGet: "アラートの取得",
sysAlertCreate: "アラートの作成",
sysAlertUpdate: "アラートの更新",
sysAlertDestroy: "アラートの削除",
sysAlertQuery: "アラートの照会",
sysAllowedIpGet: "アドレスの取得",
sysAllowedIpCreate: "アドレスの作成",
sysAllowedIpUpdate: "アドレスの更新",
sysAllowedIpDestroy: "アドレスの削除",
sysAllowedIpQuery: "アドレスの照会",
sysApiKeyGet: "API キーの取得",
sysApiKeyCreate: "API キーの作成",
sysApiKeyUpdate: "API キーの更新",
sysApiKeyDestroy: "API キーの削除",
sysApiKeyQuery: "API キーの照会",
sysAppPasswordGet: "アプリパスワードの取得",
sysAppPasswordCreate: "アプリパスワードの作成",
sysAppPasswordUpdate: "アプリパスワードの更新",
sysAppPasswordDestroy: "アプリパスワードの削除",
sysAppPasswordQuery: "アプリパスワードの照会",
sysApplicationGet: "アプリケーションの取得",
sysApplicationCreate: "アプリケーションの作成",
sysApplicationUpdate: "アプリケーションの更新",
sysApplicationDestroy: "アプリケーションの削除",
sysApplicationQuery: "アプリケーションの照会",
sysArchivedItemGet: "アーカイブ済みアイテムの取得",
sysArchivedItemCreate: "アーカイブ済みアイテムの作成",
sysArchivedItemUpdate: "アーカイブ済みアイテムの更新",
sysArchivedItemDestroy: "アーカイブ済みアイテムの削除",
sysArchivedItemQuery: "アーカイブ済みアイテムの照会",
sysArfExternalReportGet: "レポートの取得",
sysArfExternalReportCreate: "レポートの作成",
sysArfExternalReportUpdate: "レポートの更新",
sysArfExternalReportDestroy: "レポートの削除",
sysArfExternalReportQuery: "レポートの照会",
sysAsnGet: "ASN 設定の取得",
sysAsnUpdate: "ASN 設定の更新",
sysAuthenticationGet: "認証設定の取得",
sysAuthenticationUpdate: "認証設定の更新",
sysBlobStoreGet: "BLOB ストア設定の取得",
sysBlobStoreUpdate: "BLOB ストア設定の更新",
sysBlockedIpGet: "アドレスの取得",
sysBlockedIpCreate: "アドレスの作成",
sysBlockedIpUpdate: "アドレスの更新",
sysBlockedIpDestroy: "アドレスの削除",
sysBlockedIpQuery: "アドレスの照会",
sysBootstrapGet: "ブートストラップ設定の取得",
sysBootstrapUpdate: "ブートストラップ設定の更新",
sysCacheGet: "キャッシュ設定の取得",
sysCacheUpdate: "キャッシュ設定の更新",
sysCalendarGet: "カレンダー設定の取得",
sysCalendarUpdate: "カレンダー設定の更新",
sysCalendarAlarmGet: "カレンダーアラーム設定の取得",
sysCalendarAlarmUpdate: "カレンダーアラーム設定の更新",
sysCalendarSchedulingGet: "カレンダースケジューリング設定の取得",
sysCalendarSchedulingUpdate: "カレンダースケジューリング設定の更新",
sysCertificateGet: "証明書の取得",
sysCertificateCreate: "証明書の作成",
sysCertificateUpdate: "証明書の更新",
sysCertificateDestroy: "証明書の削除",
sysCertificateQuery: "証明書の照会",
sysClusterNodeGet: "クラスターノードの取得",
sysClusterNodeCreate: "クラスターノードの作成",
sysClusterNodeUpdate: "クラスターノードの更新",
sysClusterNodeDestroy: "クラスターノードの削除",
sysClusterNodeQuery: "クラスターノードの照会",
sysClusterRoleGet: "ロールの取得",
sysClusterRoleCreate: "ロールの作成",
sysClusterRoleUpdate: "ロールの更新",
sysClusterRoleDestroy: "ロールの削除",
sysClusterRoleQuery: "ロールの照会",
sysCoordinatorGet: "コーディネーター設定の取得",
sysCoordinatorUpdate: "コーディネーター設定の更新",
sysDataRetentionGet: "データ保持設定の取得",
sysDataRetentionUpdate: "データ保持設定の更新",
sysDataStoreGet: "データストア設定の取得",
sysDataStoreUpdate: "データストア設定の更新",
sysDirectoryGet: "ディレクトリの取得",
sysDirectoryCreate: "ディレクトリの作成",
sysDirectoryUpdate: "ディレクトリの更新",
sysDirectoryDestroy: "ディレクトリの削除",
sysDirectoryQuery: "ディレクトリの照会",
sysDkimReportSettingsGet: "DKIM レポート設定の取得",
sysDkimReportSettingsUpdate: "DKIM レポート設定の更新",
sysDkimSignatureGet: "署名の取得",
sysDkimSignatureCreate: "署名の作成",
sysDkimSignatureUpdate: "署名の更新",
sysDkimSignatureDestroy: "署名の削除",
sysDkimSignatureQuery: "署名の照会",
sysDmarcExternalReportGet: "レポートの取得",
sysDmarcExternalReportCreate: "レポートの作成",
sysDmarcExternalReportUpdate: "レポートの更新",
sysDmarcExternalReportDestroy: "レポートの削除",
sysDmarcExternalReportQuery: "レポートの照会",
sysDmarcInternalReportGet: "レポートの取得",
sysDmarcInternalReportCreate: "レポートの作成",
sysDmarcInternalReportUpdate: "レポートの更新",
sysDmarcInternalReportDestroy: "レポートの削除",
sysDmarcInternalReportQuery: "レポートの照会",
sysDmarcReportSettingsGet: "DMARC レポート設定の取得",
sysDmarcReportSettingsUpdate: "DMARC レポート設定の更新",
sysDnsResolverGet: "DNS リゾルバー設定の取得",
sysDnsResolverUpdate: "DNS リゾルバー設定の更新",
sysDnsServerGet: "DNS サーバーの取得",
sysDnsServerCreate: "DNS サーバーの作成",
sysDnsServerUpdate: "DNS サーバーの更新",
sysDnsServerDestroy: "DNS サーバーの削除",
sysDnsServerQuery: "DNS サーバーの照会",
sysDomainGet: "ドメインの取得",
sysDomainCreate: "ドメインの作成",
sysDomainUpdate: "ドメインの更新",
sysDomainDestroy: "ドメインの削除",
sysDomainQuery: "ドメインの照会",
sysDsnReportSettingsGet: "DSN レポート設定の取得",
sysDsnReportSettingsUpdate: "DSN レポート設定の更新",
sysEmailGet: "メール設定の取得",
sysEmailUpdate: "メール設定の更新",
sysEnterpriseGet: "エンタープライズ設定の取得",
sysEnterpriseUpdate: "エンタープライズ設定の更新",
sysEventTracingLevelGet: "イベントの取得",
sysEventTracingLevelCreate: "イベントの作成",
sysEventTracingLevelUpdate: "イベントの更新",
sysEventTracingLevelDestroy: "イベントの削除",
sysEventTracingLevelQuery: "イベントの照会",
sysFileStorageGet: "ファイルストレージ設定の取得",
sysFileStorageUpdate: "ファイルストレージ設定の更新",
sysHttpGet: "HTTP 設定の取得",
sysHttpUpdate: "HTTP 設定の更新",
sysHttpFormGet: "HTTP フォーム設定の取得",
sysHttpFormUpdate: "HTTP フォーム設定の更新",
sysHttpLookupGet: "リストの取得",
sysHttpLookupCreate: "リストの作成",
sysHttpLookupUpdate: "リストの更新",
sysHttpLookupDestroy: "リストの削除",
sysHttpLookupQuery: "リストの照会",
sysImapGet: "IMAP 設定の取得",
sysImapUpdate: "IMAP 設定の更新",
sysInMemoryStoreGet: "インメモリストア設定の取得",
sysInMemoryStoreUpdate: "インメモリストア設定の更新",
sysJmapGet: "JMAP 設定の取得",
sysJmapUpdate: "JMAP 設定の更新",
sysLogGet: "ログエントリの取得",
sysLogCreate: "ログエントリの作成",
sysLogUpdate: "ログエントリの更新",
sysLogDestroy: "ログエントリの削除",
sysLogQuery: "ログエントリの照会",
sysMailingListGet: "メーリングリストの取得",
sysMailingListCreate: "メーリングリストの作成",
sysMailingListUpdate: "メーリングリストの更新",
sysMailingListDestroy: "メーリングリストの削除",
sysMailingListQuery: "メーリングリストの照会",
sysMaskedEmailGet: "マスクメールの取得",
sysMaskedEmailCreate: "マスクメールの作成",
sysMaskedEmailUpdate: "マスクメールの更新",
sysMaskedEmailDestroy: "マスクメールの削除",
sysMaskedEmailQuery: "マスクメールの照会",
sysMemoryLookupKeyGet: "キーの取得",
sysMemoryLookupKeyCreate: "キーの作成",
sysMemoryLookupKeyUpdate: "キーの更新",
sysMemoryLookupKeyDestroy: "キーの削除",
sysMemoryLookupKeyQuery: "キーの照会",
sysMemoryLookupKeyValueGet: "キーの取得",
sysMemoryLookupKeyValueCreate: "キーの作成",
sysMemoryLookupKeyValueUpdate: "キーの更新",
sysMemoryLookupKeyValueDestroy: "キーの削除",
sysMemoryLookupKeyValueQuery: "キーの照会",
sysMetricGet: "メトリクスの取得",
sysMetricCreate: "メトリクスの作成",
sysMetricUpdate: "メトリクスの更新",
sysMetricDestroy: "メトリクスの削除",
sysMetricQuery: "メトリクスの照会",
sysMetricsGet: "メトリクス設定の取得",
sysMetricsUpdate: "メトリクス設定の更新",
sysMetricsStoreGet: "メトリクスストア設定の取得",
sysMetricsStoreUpdate: "メトリクスストア設定の更新",
sysMtaConnectionStrategyGet: "戦略の取得",
sysMtaConnectionStrategyCreate: "戦略の作成",
sysMtaConnectionStrategyUpdate: "戦略の更新",
sysMtaConnectionStrategyDestroy: "戦略の削除",
sysMtaConnectionStrategyQuery: "戦略の照会",
sysMtaDeliveryScheduleGet: "スケジュールの取得",
sysMtaDeliveryScheduleCreate: "スケジュールの作成",
sysMtaDeliveryScheduleUpdate: "スケジュールの更新",
sysMtaDeliveryScheduleDestroy: "スケジュールの削除",
sysMtaDeliveryScheduleQuery: "スケジュールの照会",
sysMtaExtensionsGet: "MTA 拡張設定の取得",
sysMtaExtensionsUpdate: "MTA 拡張設定の更新",
sysMtaHookGet: "フックの取得",
sysMtaHookCreate: "フックの作成",
sysMtaHookUpdate: "フックの更新",
sysMtaHookDestroy: "フックの削除",
sysMtaHookQuery: "フックの照会",
sysMtaInboundSessionGet: "MTA 受信セッション設定の取得",
sysMtaInboundSessionUpdate: "MTA 受信セッション設定の更新",
sysMtaInboundThrottleGet: "スロットルの取得",
sysMtaInboundThrottleCreate: "スロットルの作成",
sysMtaInboundThrottleUpdate: "スロットルの更新",
sysMtaInboundThrottleDestroy: "スロットルの削除",
sysMtaInboundThrottleQuery: "スロットルの照会",
sysMtaMilterGet: "Milter の取得",
sysMtaMilterCreate: "Milter の作成",
sysMtaMilterUpdate: "Milter の更新",
sysMtaMilterDestroy: "Milter の削除",
sysMtaMilterQuery: "Milter の照会",
sysMtaOutboundStrategyGet: "MTA 送信戦略設定の取得",
sysMtaOutboundStrategyUpdate: "MTA 送信戦略設定の更新",
sysMtaOutboundThrottleGet: "スロットルの取得",
sysMtaOutboundThrottleCreate: "スロットルの作成",
sysMtaOutboundThrottleUpdate: "スロットルの更新",
sysMtaOutboundThrottleDestroy: "スロットルの削除",
sysMtaOutboundThrottleQuery: "スロットルの照会",
sysMtaQueueQuotaGet: "クォータの取得",
sysMtaQueueQuotaCreate: "クォータの作成",
sysMtaQueueQuotaUpdate: "クォータの更新",
sysMtaQueueQuotaDestroy: "クォータの削除",
sysMtaQueueQuotaQuery: "クォータの照会",
sysMtaRouteGet: "ルートの取得",
sysMtaRouteCreate: "ルートの作成",
sysMtaRouteUpdate: "ルートの更新",
sysMtaRouteDestroy: "ルートの削除",
sysMtaRouteQuery: "ルートの照会",
sysMtaStageAuthGet: "MTA AUTH ステージ設定の取得",
sysMtaStageAuthUpdate: "MTA AUTH ステージ設定の更新",
sysMtaStageConnectGet: "MTA 接続ステージ設定の取得",
sysMtaStageConnectUpdate: "MTA 接続ステージ設定の更新",
sysMtaStageDataGet: "MTA DATA ステージ設定の取得",
sysMtaStageDataUpdate: "MTA DATA ステージ設定の更新",
sysMtaStageEhloGet: "MTA EHLO ステージ設定の取得",
sysMtaStageEhloUpdate: "MTA EHLO ステージ設定の更新",
sysMtaStageMailGet: "MTA MAIL ステージ設定の取得",
sysMtaStageMailUpdate: "MTA MAIL ステージ設定の更新",
sysMtaStageRcptGet: "MTA RCPT ステージ設定の取得",
sysMtaStageRcptUpdate: "MTA RCPT ステージ設定の更新",
sysMtaStsGet: "MTA-STS 設定の取得",
sysMtaStsUpdate: "MTA-STS 設定の更新",
sysMtaTlsStrategyGet: "戦略の取得",
sysMtaTlsStrategyCreate: "戦略の作成",
sysMtaTlsStrategyUpdate: "戦略の更新",
sysMtaTlsStrategyDestroy: "戦略の削除",
sysMtaTlsStrategyQuery: "戦略の照会",
sysMtaVirtualQueueGet: "キューの取得",
sysMtaVirtualQueueCreate: "キューの作成",
sysMtaVirtualQueueUpdate: "キューの更新",
sysMtaVirtualQueueDestroy: "キューの削除",
sysMtaVirtualQueueQuery: "キューの照会",
sysNetworkListenerGet: "リスナーの取得",
sysNetworkListenerCreate: "リスナーの作成",
sysNetworkListenerUpdate: "リスナーの更新",
sysNetworkListenerDestroy: "リスナーの削除",
sysNetworkListenerQuery: "リスナーの照会",
sysOAuthClientGet: "OAuth クライアントの取得",
sysOAuthClientCreate: "OAuth クライアントの作成",
sysOAuthClientUpdate: "OAuth クライアントの更新",
sysOAuthClientDestroy: "OAuth クライアントの削除",
sysOAuthClientQuery: "OAuth クライアントの照会",
sysOidcProviderGet: "OIDC プロバイダー設定の取得",
sysOidcProviderUpdate: "OIDC プロバイダー設定の更新",
sysPublicKeyGet: "公開鍵の取得",
sysPublicKeyCreate: "公開鍵の作成",
sysPublicKeyUpdate: "公開鍵の更新",
sysPublicKeyDestroy: "公開鍵の削除",
sysPublicKeyQuery: "公開鍵の照会",
sysQueuedMessageGet: "メールの取得",
sysQueuedMessageCreate: "メールの作成",
sysQueuedMessageUpdate: "メールの更新",
sysQueuedMessageDestroy: "メールの削除",
sysQueuedMessageQuery: "メールの照会",
sysReportSettingsGet: "レポート設定の取得",
sysReportSettingsUpdate: "レポート設定の更新",
sysRoleGet: "ロールの取得",
sysRoleCreate: "ロールの作成",
sysRoleUpdate: "ロールの更新",
sysRoleDestroy: "ロールの削除",
sysRoleQuery: "ロールの照会",
sysSearchGet: "検索設定の取得",
sysSearchUpdate: "検索設定の更新",
sysSearchStoreGet: "検索ストア設定の取得",
sysSearchStoreUpdate: "検索ストア設定の更新",
sysSecurityGet: "セキュリティ設定の取得",
sysSecurityUpdate: "セキュリティ設定の更新",
sysSenderAuthGet: "送信者認証設定の取得",
sysSenderAuthUpdate: "送信者認証設定の更新",
sysSharingGet: "共有設定の取得",
sysSharingUpdate: "共有設定の更新",
sysSieveSystemInterpreterGet: "Sieve システムインタープリター設定の取得",
sysSieveSystemInterpreterUpdate: "Sieve システムインタープリター設定の更新",
sysSieveSystemScriptGet: "スクリプトの取得",
sysSieveSystemScriptCreate: "スクリプトの作成",
sysSieveSystemScriptUpdate: "スクリプトの更新",
sysSieveSystemScriptDestroy: "スクリプトの削除",
sysSieveSystemScriptQuery: "スクリプトの照会",
sysSieveUserInterpreterGet: "Sieve ユーザーインタープリター設定の取得",
sysSieveUserInterpreterUpdate: "Sieve ユーザーインタープリター設定の更新",
sysSieveUserScriptGet: "スクリプトの取得",
sysSieveUserScriptCreate: "スクリプトの作成",
sysSieveUserScriptUpdate: "スクリプトの更新",
sysSieveUserScriptDestroy: "スクリプトの削除",
sysSieveUserScriptQuery: "スクリプトの照会",
sysSpamClassifierGet: "迷惑メール分類器設定の取得",
sysSpamClassifierUpdate: "迷惑メール分類器設定の更新",
sysSpamDnsblServerGet: "サーバーの取得",
sysSpamDnsblServerCreate: "サーバーの作成",
sysSpamDnsblServerUpdate: "サーバーの更新",
sysSpamDnsblServerDestroy: "サーバーの削除",
sysSpamDnsblServerQuery: "サーバーの照会",
sysSpamDnsblSettingsGet: "迷惑メール DNSBL 設定の取得",
sysSpamDnsblSettingsUpdate: "迷惑メール DNSBL 設定の更新",
sysSpamFileExtensionGet: "拡張子の取得",
sysSpamFileExtensionCreate: "拡張子の作成",
sysSpamFileExtensionUpdate: "拡張子の更新",
sysSpamFileExtensionDestroy: "拡張子の削除",
sysSpamFileExtensionQuery: "拡張子の照会",
sysSpamLlmGet: "迷惑メール LLM 設定の取得",
sysSpamLlmUpdate: "迷惑メール LLM 設定の更新",
sysSpamPyzorGet: "迷惑メール Pyzor 設定の取得",
sysSpamPyzorUpdate: "迷惑メール Pyzor 設定の更新",
sysSpamRuleGet: "ルールの取得",
sysSpamRuleCreate: "ルールの作成",
sysSpamRuleUpdate: "ルールの更新",
sysSpamRuleDestroy: "ルールの削除",
sysSpamRuleQuery: "ルールの照会",
sysSpamSettingsGet: "迷惑メール設定の取得",
sysSpamSettingsUpdate: "迷惑メール設定の更新",
sysSpamTagGet: "タグの取得",
sysSpamTagCreate: "タグの作成",
sysSpamTagUpdate: "タグの更新",
sysSpamTagDestroy: "タグの削除",
sysSpamTagQuery: "タグの照会",
sysSpamTrainingSampleGet: "サンプルの取得",
sysSpamTrainingSampleCreate: "サンプルの作成",
sysSpamTrainingSampleUpdate: "サンプルの更新",
sysSpamTrainingSampleDestroy: "サンプルの削除",
sysSpamTrainingSampleQuery: "サンプルの照会",
sysSpfReportSettingsGet: "SPF レポート設定の取得",
sysSpfReportSettingsUpdate: "SPF レポート設定の更新",
sysStoreLookupGet: "ルックアップの取得",
sysStoreLookupCreate: "ルックアップの作成",
sysStoreLookupUpdate: "ルックアップの更新",
sysStoreLookupDestroy: "ルックアップの削除",
sysStoreLookupQuery: "ルックアップの照会",
sysSystemSettingsGet: "システム設定の取得",
sysSystemSettingsUpdate: "システム設定の更新",
taskIndexDocument: "ドキュメントのインデックス登録",
taskUnindexDocument: "ドキュメントのインデックス解除",
taskIndexTrace: "テレメトリトレースのインデックス登録",
taskCalendarAlarmEmail: "カレンダーアラームのメール",
taskCalendarAlarmNotification: "カレンダーアラームの通知",
taskCalendarItipMessage: "カレンダーの iTIP メール",
taskMergeThreads: "メールスレッドの統合",
taskDmarcReport: "リモートサーバーへの DMARC レポートの送信",
taskTlsReport: "リモートサーバーへの TLS レポートの送信",
taskRestoreArchivedItem: "アーカイブ済みアイテムの復元",
taskDestroyAccount: "アカウントと関連する全データの削除",
taskAccountMaintenance: "アカウントのメンテナンス処理の実行",
taskTenantMaintenance: "テナントのメンテナンス処理の実行",
taskStoreMaintenance: "ストアのメンテナンス処理の実行",
taskSpamFilterMaintenance: "迷惑メールフィルターのメンテナンス処理の実行",
taskAcmeRenewal: "ドメインの ACME 証明書更新の実行",
taskDkimManagement: "ドメインの DKIM 鍵ローテーションの実行",
taskDnsManagement: "ドメインの DNS 管理の実行",
sysTaskGet: "タスクの取得",
sysTaskCreate: "タスクの作成",
sysTaskUpdate: "タスクの更新",
sysTaskDestroy: "タスクの削除",
sysTaskQuery: "タスクの照会",
sysTaskManagerGet: "タスクマネージャー設定の取得",
sysTaskManagerUpdate: "タスクマネージャー設定の更新",
sysTenantGet: "テナントの取得",
sysTenantCreate: "テナントの作成",
sysTenantUpdate: "テナントの更新",
sysTenantDestroy: "テナントの削除",
sysTenantQuery: "テナントの照会",
sysTlsExternalReportGet: "レポートの取得",
sysTlsExternalReportCreate: "レポートの作成",
sysTlsExternalReportUpdate: "レポートの更新",
sysTlsExternalReportDestroy: "レポートの削除",
sysTlsExternalReportQuery: "レポートの照会",
sysTlsInternalReportGet: "レポートの取得",
sysTlsInternalReportCreate: "レポートの作成",
sysTlsInternalReportUpdate: "レポートの更新",
sysTlsInternalReportDestroy: "レポートの削除",
sysTlsInternalReportQuery: "レポートの照会",
sysTlsReportSettingsGet: "TLS レポート設定の取得",
sysTlsReportSettingsUpdate: "TLS レポート設定の更新",
sysTraceGet: "トレースの取得",
sysTraceCreate: "トレースの作成",
sysTraceUpdate: "トレースの更新",
sysTraceDestroy: "トレースの削除",
sysTraceQuery: "トレースの照会",
sysTracerGet: "トレーサーの取得",
sysTracerCreate: "トレーサーの作成",
sysTracerUpdate: "トレーサーの更新",
sysTracerDestroy: "トレーサーの削除",
sysTracerQuery: "トレーサーの照会",
sysTracingStoreGet: "トレースストア設定の取得",
sysTracingStoreUpdate: "トレースストア設定の更新",
sysWebDavGet: "WebDAV 設定の取得",
sysWebDavUpdate: "WebDAV 設定の更新",
sysWebHookGet: "Webhook の取得",
sysWebHookCreate: "Webhook の作成",
sysWebHookUpdate: "Webhook の更新",
sysWebHookDestroy: "Webhook の削除",
sysWebHookQuery: "Webhook の照会",
},
};
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in Dutch, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "AI-modelbeheer",
"API keys Management": "API-sleutelbeheer",
"Accounts Management": "Accountbeheer",
"Action": "Actie",
"Actions Management": "Actiebeheer",
"Addresses Management": "Adresbeheer",
"Alerts Management": "Waarschuwingsbeheer",
"App passwords Management": "App-wachtwoordbeheer",
"Applications Management": "Applicatiebeheer",
"Archived items Management": "Beheer van gearchiveerde items",
"Calendar": "Agenda",
"Certificates Management": "Certificaatbeheer",
"Cluster nodes Management": "Clusterknooppuntbeheer",
"DNS servers Management": "DNS-serverbeheer",
"Directories Management": "Adreslijstbeheer",
"Domains Management": "Domeinbeheer",
"Email": "E-mail",
"Events Management": "Gebeurtenisbeheer",
"Extensions Management": "Extensiebeheer",
"Hooks Management": "Hookbeheer",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "Sleutelbeheer",
"Listeners Management": "Listenerbeheer",
"Lists Management": "Lijstbeheer",
"Log entries Management": "Logboekbeheer",
"Lookups Management": "Lookupbeheer",
"Mailing lists Management": "Mailinglijstbeheer",
"ManageSieve": "ManageSieve",
"Masked emails Management": "Beheer van gemaskeerde e-mailadressen",
"Messages Management": "Berichtbeheer",
"Metrics Management": "Statistiekbeheer",
"Milters Management": "Milterbeheer",
"OAuth clients Management": "OAuth-clientbeheer",
"POP3": "POP3",
"Providers Management": "Providerbeheer",
"Public keys Management": "Beheer van openbare sleutels",
"Queues Management": "Wachtrijbeheer",
"Quotas Management": "Quotabeheer",
"Reports Management": "Rapportbeheer",
"Roles Management": "Rolbeheer",
"Routes Management": "Routebeheer",
"Rules Management": "Regelbeheer",
"Samples Management": "Voorbeeldbeheer",
"Schedules Management": "Schemabeheer",
"Scripts Management": "Scriptbeheer",
"Servers Management": "Serverbeheer",
"Settings": "Instellingen",
"Signatures Management": "Handtekeningbeheer",
"Strategies Management": "Strategiebeheer",
"Tags Management": "Tagbeheer",
"Task": "Taak",
"Tasks Management": "Takenbeheer",
"Tenants Management": "Tenantbeheer",
"Throttles Management": "Beheer van snelheidsbeperkingen",
"Tracers Management": "Tracerbeheer",
"Traces Management": "Tracebeheer",
"WebDAV": "WebDAV",
"Webhooks Management": "Webhookbeheer",
},
labels: {
authenticate: "Inloggen op de server",
authenticateWithAlias: "Inloggen met e-mailaliasadressen",
interactAi: "AI-modellen gebruiken",
impersonate: "Namens een andere gebruiker handelen",
unlimitedRequests: "Snelheidslimieten voor verzoeken omzeilen",
unlimitedUploads: "Limieten voor uploadgrootte en -snelheid omzeilen",
fetchAnyBlob: "Willekeurige blobs ophalen, ook blobs die niet van het account zijn",
emailSend: "E-mails verzenden",
emailReceive: "E-mails ontvangen",
calendarAlarmsSend: "Meldingen van agendaherinneringen per e-mail verzenden",
calendarSchedulingSend: "Agenda-uitnodigingen en -updates per e-mail verzenden",
calendarSchedulingReceive: "Inkomende agenda-uitnodigingen en -antwoorden verwerken",
jmapPushSubscriptionGet: "Gegevens van push-abonnementen ophalen",
jmapPushSubscriptionCreate: "Nieuwe push-abonnementen aanmaken",
jmapPushSubscriptionUpdate: "Bestaande push-abonnementen wijzigen",
jmapPushSubscriptionDestroy: "Push-abonnementen verwijderen",
jmapMailboxGet: "Postvakgegevens en -eigenschappen ophalen",
jmapMailboxChanges: "Wijzigingen in postvakken sinds een bepaalde status bijhouden",
jmapMailboxQuery: "Postvakken zoeken die aan criteria voldoen",
jmapMailboxQueryChanges: "Wijzigingen in zoekresultaten voor postvakken bijhouden",
jmapMailboxCreate: "Nieuwe postvakken aanmaken",
jmapMailboxUpdate: "Bestaande postvakken wijzigen",
jmapMailboxDestroy: "Postvakken verwijderen",
jmapThreadGet: "Gegevens van e-mailgesprekken ophalen",
jmapThreadChanges: "Wijzigingen in gesprekken sinds een bepaalde status bijhouden",
jmapEmailGet: "E-mailgegevens en -eigenschappen ophalen",
jmapEmailChanges: "Wijzigingen in e-mails sinds een bepaalde status bijhouden",
jmapEmailQuery: "E-mails zoeken die aan criteria voldoen",
jmapEmailQueryChanges: "Wijzigingen in zoekresultaten voor e-mails bijhouden",
jmapEmailCreate: "Nieuwe e-mails aanmaken",
jmapEmailUpdate: "Bestaande e-mails wijzigen",
jmapEmailDestroy: "E-mails verwijderen",
jmapEmailCopy: "E-mails naar een ander account kopiëren",
jmapEmailImport: "E-mails importeren uit blobgegevens",
jmapEmailParse: "Onbewerkte e-mailgegevens ontleden zonder op te slaan",
jmapSearchSnippetGet: "Zoekresultaatfragmenten voor e-mails ophalen",
jmapIdentityGet: "Gegevens van afzenderidentiteiten ophalen",
jmapIdentityChanges: "Wijzigingen in identiteiten sinds een bepaalde status bijhouden",
jmapIdentityCreate: "Nieuwe afzenderidentiteiten aanmaken",
jmapIdentityUpdate: "Bestaande afzenderidentiteiten wijzigen",
jmapIdentityDestroy: "Afzenderidentiteiten verwijderen",
jmapEmailSubmissionGet: "Gegevens van e-mailverzendingen ophalen",
jmapEmailSubmissionChanges: "Wijzigingen in e-mailverzendingen sinds een bepaalde status bijhouden",
jmapEmailSubmissionQuery: "E-mailverzendingen zoeken die aan criteria voldoen",
jmapEmailSubmissionQueryChanges: "Wijzigingen in zoekresultaten voor e-mailverzendingen bijhouden",
jmapEmailSubmissionCreate: "Nieuwe e-mailverzendingen aanmaken om te verzenden",
jmapEmailSubmissionUpdate: "Bestaande e-mailverzendingen wijzigen",
jmapEmailSubmissionDestroy: "E-mailverzendingen verwijderen",
jmapVacationResponseGet: "Configuratie van afwezigheidsantwoord ophalen",
jmapVacationResponseCreate: "Instellingen voor afwezigheidsantwoord aanmaken",
jmapVacationResponseUpdate: "Instellingen voor afwezigheidsantwoord wijzigen",
jmapVacationResponseDestroy: "Instellingen voor afwezigheidsantwoord verwijderen",
jmapSieveScriptGet: "Gegevens van Sieve-filterscripts ophalen",
jmapSieveScriptQuery: "Sieve-scripts zoeken die aan criteria voldoen",
jmapSieveScriptValidate: "Een Sieve-script valideren zonder op te slaan",
jmapSieveScriptCreate: "Nieuwe Sieve-filterscripts aanmaken",
jmapSieveScriptUpdate: "Bestaande Sieve-filterscripts wijzigen",
jmapSieveScriptDestroy: "Sieve-filterscripts verwijderen",
jmapPrincipalGet: "Gegevens en eigenschappen van principals ophalen",
jmapPrincipalQuery: "Principals zoeken die aan criteria voldoen",
jmapPrincipalChanges: "Wijzigingen in principals sinds een bepaalde status bijhouden",
jmapPrincipalQueryChanges: "Wijzigingen in zoekresultaten voor principals bijhouden",
jmapPrincipalGetAvailability: "Beschikbaarheidsinformatie van principals opvragen",
jmapPrincipalCreate: "Nieuwe principals aanmaken",
jmapPrincipalUpdate: "Bestaande principals wijzigen",
jmapPrincipalDestroy: "Principals verwijderen",
jmapQuotaGet: "Quotagebruik en limieten ophalen",
jmapQuotaChanges: "Wijzigingen in quota sinds een bepaalde status bijhouden",
jmapQuotaQuery: "Quota zoeken die aan criteria voldoen",
jmapQuotaQueryChanges: "Wijzigingen in zoekresultaten voor quota bijhouden",
jmapBlobGet: "Blobgegevens downloaden",
jmapBlobCopy: "Blobs naar een ander account kopiëren",
jmapBlobLookup: "Blobgebruik over gegevenstypen heen opzoeken",
jmapBlobUpload: "Nieuwe blobgegevens uploaden",
jmapAddressBookGet: "Adresboekgegevens en -eigenschappen ophalen",
jmapAddressBookChanges: "Wijzigingen in adresboeken sinds een bepaalde status bijhouden",
jmapAddressBookCreate: "Nieuwe adresboeken aanmaken",
jmapAddressBookUpdate: "Bestaande adresboeken wijzigen",
jmapAddressBookDestroy: "Adresboeken verwijderen",
jmapContactCardGet: "Gegevens van contactkaarten ophalen",
jmapContactCardChanges: "Wijzigingen in contactkaarten sinds een bepaalde status bijhouden",
jmapContactCardQuery: "Contactkaarten zoeken die aan criteria voldoen",
jmapContactCardQueryChanges: "Wijzigingen in zoekresultaten voor contactkaarten bijhouden",
jmapContactCardCreate: "Nieuwe contactkaarten aanmaken",
jmapContactCardUpdate: "Bestaande contactkaarten wijzigen",
jmapContactCardDestroy: "Contactkaarten verwijderen",
jmapContactCardCopy: "Contactkaarten naar een ander account kopiëren",
jmapContactCardParse: "Onbewerkte contactkaartgegevens ontleden zonder op te slaan",
jmapFileNodeGet: "Gegevens en eigenschappen van bestandsknooppunten ophalen",
jmapFileNodeChanges: "Wijzigingen in bestandsknooppunten sinds een bepaalde status bijhouden",
jmapFileNodeQuery: "Bestandsknooppunten zoeken die aan criteria voldoen",
jmapFileNodeQueryChanges: "Wijzigingen in zoekresultaten voor bestandsknooppunten bijhouden",
jmapFileNodeCreate: "Nieuwe bestandsknooppunten aanmaken",
jmapFileNodeUpdate: "Bestaande bestandsknooppunten wijzigen",
jmapFileNodeDestroy: "Bestandsknooppunten verwijderen",
jmapFileNodeCopy: "Bestandsknooppunten naar een ander account kopiëren",
jmapShareNotificationGet: "Gegevens van deelmeldingen ophalen",
jmapShareNotificationChanges: "Wijzigingen in deelmeldingen sinds een bepaalde status bijhouden",
jmapShareNotificationQuery: "Deelmeldingen zoeken die aan criteria voldoen",
jmapShareNotificationQueryChanges: "Wijzigingen in zoekresultaten voor deelmeldingen bijhouden",
jmapShareNotificationCreate: "Nieuwe deelmeldingen aanmaken",
jmapShareNotificationUpdate: "Bestaande deelmeldingen wijzigen",
jmapShareNotificationDestroy: "Deelmeldingen verwijderen",
jmapCalendarGet: "Agendagegevens en -eigenschappen ophalen",
jmapCalendarChanges: "Wijzigingen in agenda's sinds een bepaalde status bijhouden",
jmapCalendarCreate: "Nieuwe agenda's aanmaken",
jmapCalendarUpdate: "Bestaande agenda's wijzigen",
jmapCalendarDestroy: "Agenda's verwijderen",
jmapCalendarEventGet: "Gegevens van afspraken ophalen",
jmapCalendarEventChanges: "Wijzigingen in afspraken sinds een bepaalde status bijhouden",
jmapCalendarEventQuery: "Afspraken zoeken die aan criteria voldoen",
jmapCalendarEventQueryChanges: "Wijzigingen in zoekresultaten voor afspraken bijhouden",
jmapCalendarEventCreate: "Nieuwe afspraken aanmaken",
jmapCalendarEventUpdate: "Bestaande afspraken wijzigen",
jmapCalendarEventDestroy: "Afspraken verwijderen",
jmapCalendarEventCopy: "Afspraken naar een ander account kopiëren",
jmapCalendarEventParse: "Onbewerkte afspraakgegevens ontleden zonder op te slaan",
jmapCalendarEventNotificationGet: "Gegevens van afspraakmeldingen ophalen",
jmapCalendarEventNotificationChanges: "Wijzigingen in afspraakmeldingen sinds een bepaalde status bijhouden",
jmapCalendarEventNotificationQuery: "Afspraakmeldingen zoeken die aan criteria voldoen",
jmapCalendarEventNotificationQueryChanges: "Wijzigingen in zoekresultaten voor afspraakmeldingen bijhouden",
jmapCalendarEventNotificationCreate: "Nieuwe afspraakmeldingen aanmaken",
jmapCalendarEventNotificationUpdate: "Bestaande afspraakmeldingen wijzigen",
jmapCalendarEventNotificationDestroy: "Afspraakmeldingen verwijderen",
jmapParticipantIdentityGet: "Gegevens van deelnemersidentiteiten ophalen",
jmapParticipantIdentityChanges: "Wijzigingen in deelnemersidentiteiten sinds een bepaalde status bijhouden",
jmapParticipantIdentityCreate: "Nieuwe deelnemersidentiteiten aanmaken",
jmapParticipantIdentityUpdate: "Bestaande deelnemersidentiteiten wijzigen",
jmapParticipantIdentityDestroy: "Deelnemersidentiteiten verwijderen",
jmapCoreEcho: "Invoergegevens terugsturen om te testen",
imapAuthenticate: "Inloggen op de IMAP-server",
imapAclGet: "Toegangsbeheerlijsten van postvakken bekijken",
imapAclSet: "Toegangsbeheerlijsten van postvakken wijzigen",
imapMyRights: "Eigen rechten op een postvak bekijken",
imapListRights: "Beschikbare rechtenvlaggen voor een postvak weergeven",
imapAppend: "Berichten naar een postvak uploaden",
imapCapability: "Ondersteunde IMAP-extensies opvragen",
imapId: "Serveridentificatie en -versie opvragen",
imapCopy: "Berichten tussen postvakken kopiëren",
imapMove: "Berichten tussen postvakken verplaatsen",
imapCreate: "Nieuwe postvakken aanmaken",
imapDelete: "Postvakken verwijderen of berichten markeren voor verwijdering",
imapEnable: "Optionele IMAP-extensies activeren",
imapExpunge: "Voor verwijdering gemarkeerde berichten definitief verwijderen",
imapFetch: "Berichtinhoud en metagegevens downloaden",
imapIdle: "Realtime meldingen van postvakwijzigingen ontvangen",
imapList: "Beschikbare postvakken en hun kenmerken weergeven",
imapLsub: "Postvakken weergeven waarop de gebruiker is geabonneerd",
imapNamespace: "Beschikbare naamruimtevoorvoegsels voor postvakken opvragen",
imapRename: "Naam van postvakken wijzigen of postvakken verplaatsen",
imapSearch: "Berichten op criteria zoeken",
imapSort: "Berichten in een opgegeven sorteervolgorde ophalen",
imapSelect: "Een postvak openen met lees- en schrijftoegang",
imapExamine: "Een postvak openen met alleen-lezentoegang",
imapStatus: "Aantal berichten en status van een postvak opvragen",
imapStore: "Berichtvlaggen instellen of wissen (gelezen, gemarkeerd, verwijderd, enz.)",
imapSubscribe: "Op postvakken abonneren of abonnementen opzeggen",
imapThread: "Berichten in gesprekken groeperen",
pop3Authenticate: "Inloggen op de POP3-server",
pop3List: "Berichten en hun grootte weergeven",
pop3Uidl: "Unieke bericht-ID's ophalen",
pop3Stat: "Aantal berichten en totale grootte van een postvak opvragen",
pop3Retr: "Berichtinhoud downloaden",
pop3Dele: "Berichten markeren voor verwijdering bij het verbreken van de verbinding",
sieveAuthenticate: "Inloggen op de ManageSieve-server",
sieveListScripts: "Geüploade Sieve-scripts weergeven",
sieveSetActive: "Aanwijzen welk Sieve-script actief is",
sieveGetScript: "Inhoud van een Sieve-script downloaden",
sievePutScript: "Een Sieve-script uploaden of vervangen",
sieveDeleteScript: "Een Sieve-script verwijderen",
sieveRenameScript: "Naam van een Sieve-script wijzigen",
sieveCheckScript: "Syntaxis van een Sieve-script valideren zonder op te slaan",
sieveHaveSpace: "Controleren of het quotum het uploaden van een script van een bepaalde grootte toestaat",
davSyncCollection: "Collectiewijzigingen met de client synchroniseren",
davExpandProperty: "Eigenschappen uitvouwen die naar andere resources verwijzen",
davPrincipalAcl: "Toegangsbeheereigenschappen van principals beheren",
davPrincipalList: "Beschikbare principals in het systeem weergeven",
davPrincipalMatch: "Principals matchen op basis van opgegeven criteria",
davPrincipalSearch: "Principals zoeken op eigenschapswaarden",
davPrincipalSearchPropSet: "Opvragen op welke eigenschappen van principals kan worden gezocht",
davFilePropFind: "Eigenschappen van bestandsresources ophalen",
davFilePropPatch: "Eigenschappen van bestandsresources wijzigen",
davFileGet: "Bestandsresources downloaden",
davFileMkCol: "Nieuwe bestandscollecties of mappen aanmaken",
davFileDelete: "Bestandsresources verwijderen",
davFilePut: "Bestandsresources uploaden of wijzigen",
davFileCopy: "Bestandsresources naar nieuwe locaties kopiëren",
davFileMove: "Bestandsresources naar nieuwe locaties verplaatsen",
davFileLock: "Bestandsresources vergrendelen om gelijktijdige wijzigingen te voorkomen",
davFileAcl: "Toegangsbeheerlijsten van bestandsresources beheren",
davCardPropFind: "Eigenschappen van adresboekitems ophalen",
davCardPropPatch: "Eigenschappen van adresboekitems wijzigen",
davCardGet: "Adresboekitems downloaden",
davCardMkCol: "Nieuwe adresboekcollecties aanmaken",
davCardDelete: "Adresboekitems of -collecties verwijderen",
davCardPut: "Adresboekitems uploaden of wijzigen",
davCardCopy: "Adresboekitems naar nieuwe locaties kopiëren",
davCardMove: "Adresboekitems naar nieuwe locaties verplaatsen",
davCardLock: "Adresboekitems vergrendelen om gelijktijdige wijzigingen te voorkomen",
davCardAcl: "Toegangsbeheerlijsten van adresboekitems beheren",
davCardQuery: "Adresboekitems zoeken die aan criteria voldoen",
davCardMultiGet: "Meerdere adresboekitems in één verzoek ophalen",
davCalPropFind: "Eigenschappen van agenda-items ophalen",
davCalPropPatch: "Eigenschappen van agenda-items wijzigen",
davCalGet: "Agenda-items downloaden",
davCalMkCol: "Nieuwe agendacollecties aanmaken",
davCalDelete: "Agenda-items of -collecties verwijderen",
davCalPut: "Agenda-items uploaden of wijzigen",
davCalCopy: "Agenda-items naar nieuwe locaties kopiëren",
davCalMove: "Agenda-items naar nieuwe locaties verplaatsen",
davCalLock: "Agenda-items vergrendelen om gelijktijdige wijzigingen te voorkomen",
davCalAcl: "Toegangsbeheerlijsten van agenda-items beheren",
davCalQuery: "Agenda-items zoeken die aan criteria voldoen",
davCalMultiGet: "Meerdere agenda-items in één verzoek ophalen",
davCalFreeBusyQuery: "Vrij/bezet-informatie opvragen voor planning",
oAuthClientRegistration: "Nieuwe OAuth-clientapplicaties registreren",
oAuthClientOverride: "Registratievereisten voor OAuth-clients omzeilen",
liveTracing: "Realtime traces van servergebeurtenissen bekijken",
liveMetrics: "Realtime prestatiestatistieken van de server bekijken",
liveDeliveryTest: "Test-e-mails verzenden om de bezorgconfiguratie te controleren",
scimAccess: "Gebruikers en groepen inrichten via het SCIM-eindpunt",
sysAccountGet: "Accounts ophalen",
sysAccountCreate: "Accounts aanmaken",
sysAccountUpdate: "Accounts bijwerken",
sysAccountDestroy: "Accounts verwijderen",
sysAccountQuery: "Accounts opvragen",
sysAccountPasswordGet: "Wachtwoordinstellingen van accounts ophalen",
sysAccountPasswordUpdate: "Wachtwoordinstellingen van accounts bijwerken",
sysAccountSettingsGet: "Accountinstellingen ophalen",
sysAccountSettingsUpdate: "Accountinstellingen bijwerken",
sysAcmeProviderGet: "Providers ophalen",
sysAcmeProviderCreate: "Providers aanmaken",
sysAcmeProviderUpdate: "Providers bijwerken",
sysAcmeProviderDestroy: "Providers verwijderen",
sysAcmeProviderQuery: "Providers opvragen",
actionReloadSettings: "Opnieuw laden: serverinstellingen",
actionReloadTlsCertificates: "Opnieuw laden: TLS-certificaten",
actionReloadLookupStores: "Opnieuw laden: lookup-opslag",
actionReloadBlockedIps: "Opnieuw laden: lijst met geblokkeerde IP's",
actionUpdateApps: "Applicatiebeheer: applicaties bijwerken",
actionTroubleshootDmarc: "DMARC: probleemoplossing",
actionClassifySpam: "Spamfilter: een bericht classificeren",
actionInvalidateCaches: "Cache: alle caches ongeldig maken",
actionInvalidateNegativeCaches: "Cache: negatieve caches ongeldig maken",
actionPauseMtaQueue: "MTA: wachtrijverwerking pauzeren",
actionResumeMtaQueue: "MTA: wachtrijverwerking hervatten",
sysActionGet: "Acties ophalen",
sysActionCreate: "Acties aanmaken",
sysActionUpdate: "Acties bijwerken",
sysActionDestroy: "Acties verwijderen",
sysActionQuery: "Acties opvragen",
sysAddressBookGet: "Adresboekinstellingen ophalen",
sysAddressBookUpdate: "Adresboekinstellingen bijwerken",
sysAiModelGet: "AI-modellen ophalen",
sysAiModelCreate: "AI-modellen aanmaken",
sysAiModelUpdate: "AI-modellen bijwerken",
sysAiModelDestroy: "AI-modellen verwijderen",
sysAiModelQuery: "AI-modellen opvragen",
sysAlertGet: "Waarschuwingen ophalen",
sysAlertCreate: "Waarschuwingen aanmaken",
sysAlertUpdate: "Waarschuwingen bijwerken",
sysAlertDestroy: "Waarschuwingen verwijderen",
sysAlertQuery: "Waarschuwingen opvragen",
sysAllowedIpGet: "Adressen ophalen",
sysAllowedIpCreate: "Adressen aanmaken",
sysAllowedIpUpdate: "Adressen bijwerken",
sysAllowedIpDestroy: "Adressen verwijderen",
sysAllowedIpQuery: "Adressen opvragen",
sysApiKeyGet: "API-sleutels ophalen",
sysApiKeyCreate: "API-sleutels aanmaken",
sysApiKeyUpdate: "API-sleutels bijwerken",
sysApiKeyDestroy: "API-sleutels verwijderen",
sysApiKeyQuery: "API-sleutels opvragen",
sysAppPasswordGet: "App-wachtwoorden ophalen",
sysAppPasswordCreate: "App-wachtwoorden aanmaken",
sysAppPasswordUpdate: "App-wachtwoorden bijwerken",
sysAppPasswordDestroy: "App-wachtwoorden verwijderen",
sysAppPasswordQuery: "App-wachtwoorden opvragen",
sysApplicationGet: "Applicaties ophalen",
sysApplicationCreate: "Applicaties aanmaken",
sysApplicationUpdate: "Applicaties bijwerken",
sysApplicationDestroy: "Applicaties verwijderen",
sysApplicationQuery: "Applicaties opvragen",
sysArchivedItemGet: "Gearchiveerde items ophalen",
sysArchivedItemCreate: "Gearchiveerde items aanmaken",
sysArchivedItemUpdate: "Gearchiveerde items bijwerken",
sysArchivedItemDestroy: "Gearchiveerde items verwijderen",
sysArchivedItemQuery: "Gearchiveerde items opvragen",
sysArfExternalReportGet: "Rapporten ophalen",
sysArfExternalReportCreate: "Rapporten aanmaken",
sysArfExternalReportUpdate: "Rapporten bijwerken",
sysArfExternalReportDestroy: "Rapporten verwijderen",
sysArfExternalReportQuery: "Rapporten opvragen",
sysAsnGet: "ASN-instellingen ophalen",
sysAsnUpdate: "ASN-instellingen bijwerken",
sysAuthenticationGet: "Authenticatie-instellingen ophalen",
sysAuthenticationUpdate: "Authenticatie-instellingen bijwerken",
sysBlobStoreGet: "Blob-opslaginstellingen ophalen",
sysBlobStoreUpdate: "Blob-opslaginstellingen bijwerken",
sysBlockedIpGet: "Adressen ophalen",
sysBlockedIpCreate: "Adressen aanmaken",
sysBlockedIpUpdate: "Adressen bijwerken",
sysBlockedIpDestroy: "Adressen verwijderen",
sysBlockedIpQuery: "Adressen opvragen",
sysBootstrapGet: "Bootstrap-instellingen ophalen",
sysBootstrapUpdate: "Bootstrap-instellingen bijwerken",
sysCacheGet: "Cache-instellingen ophalen",
sysCacheUpdate: "Cache-instellingen bijwerken",
sysCalendarGet: "Agenda-instellingen ophalen",
sysCalendarUpdate: "Agenda-instellingen bijwerken",
sysCalendarAlarmGet: "Instellingen voor agendaherinneringen ophalen",
sysCalendarAlarmUpdate: "Instellingen voor agendaherinneringen bijwerken",
sysCalendarSchedulingGet: "Instellingen voor agendaplanning ophalen",
sysCalendarSchedulingUpdate: "Instellingen voor agendaplanning bijwerken",
sysCertificateGet: "Certificaten ophalen",
sysCertificateCreate: "Certificaten aanmaken",
sysCertificateUpdate: "Certificaten bijwerken",
sysCertificateDestroy: "Certificaten verwijderen",
sysCertificateQuery: "Certificaten opvragen",
sysClusterNodeGet: "Clusterknooppunten ophalen",
sysClusterNodeCreate: "Clusterknooppunten aanmaken",
sysClusterNodeUpdate: "Clusterknooppunten bijwerken",
sysClusterNodeDestroy: "Clusterknooppunten verwijderen",
sysClusterNodeQuery: "Clusterknooppunten opvragen",
sysClusterRoleGet: "Rollen ophalen",
sysClusterRoleCreate: "Rollen aanmaken",
sysClusterRoleUpdate: "Rollen bijwerken",
sysClusterRoleDestroy: "Rollen verwijderen",
sysClusterRoleQuery: "Rollen opvragen",
sysCoordinatorGet: "Coördinatorinstellingen ophalen",
sysCoordinatorUpdate: "Coördinatorinstellingen bijwerken",
sysDataRetentionGet: "Instellingen voor gegevensbewaring ophalen",
sysDataRetentionUpdate: "Instellingen voor gegevensbewaring bijwerken",
sysDataStoreGet: "Gegevensopslaginstellingen ophalen",
sysDataStoreUpdate: "Gegevensopslaginstellingen bijwerken",
sysDirectoryGet: "Adreslijsten ophalen",
sysDirectoryCreate: "Adreslijsten aanmaken",
sysDirectoryUpdate: "Adreslijsten bijwerken",
sysDirectoryDestroy: "Adreslijsten verwijderen",
sysDirectoryQuery: "Adreslijsten opvragen",
sysDkimReportSettingsGet: "DKIM-rapportinstellingen ophalen",
sysDkimReportSettingsUpdate: "DKIM-rapportinstellingen bijwerken",
sysDkimSignatureGet: "Handtekeningen ophalen",
sysDkimSignatureCreate: "Handtekeningen aanmaken",
sysDkimSignatureUpdate: "Handtekeningen bijwerken",
sysDkimSignatureDestroy: "Handtekeningen verwijderen",
sysDkimSignatureQuery: "Handtekeningen opvragen",
sysDmarcExternalReportGet: "Rapporten ophalen",
sysDmarcExternalReportCreate: "Rapporten aanmaken",
sysDmarcExternalReportUpdate: "Rapporten bijwerken",
sysDmarcExternalReportDestroy: "Rapporten verwijderen",
sysDmarcExternalReportQuery: "Rapporten opvragen",
sysDmarcInternalReportGet: "Rapporten ophalen",
sysDmarcInternalReportCreate: "Rapporten aanmaken",
sysDmarcInternalReportUpdate: "Rapporten bijwerken",
sysDmarcInternalReportDestroy: "Rapporten verwijderen",
sysDmarcInternalReportQuery: "Rapporten opvragen",
sysDmarcReportSettingsGet: "DMARC-rapportinstellingen ophalen",
sysDmarcReportSettingsUpdate: "DMARC-rapportinstellingen bijwerken",
sysDnsResolverGet: "DNS-resolverinstellingen ophalen",
sysDnsResolverUpdate: "DNS-resolverinstellingen bijwerken",
sysDnsServerGet: "DNS-servers ophalen",
sysDnsServerCreate: "DNS-servers aanmaken",
sysDnsServerUpdate: "DNS-servers bijwerken",
sysDnsServerDestroy: "DNS-servers verwijderen",
sysDnsServerQuery: "DNS-servers opvragen",
sysDomainGet: "Domeinen ophalen",
sysDomainCreate: "Domeinen aanmaken",
sysDomainUpdate: "Domeinen bijwerken",
sysDomainDestroy: "Domeinen verwijderen",
sysDomainQuery: "Domeinen opvragen",
sysDsnReportSettingsGet: "DSN-rapportinstellingen ophalen",
sysDsnReportSettingsUpdate: "DSN-rapportinstellingen bijwerken",
sysEmailGet: "E-mailinstellingen ophalen",
sysEmailUpdate: "E-mailinstellingen bijwerken",
sysEnterpriseGet: "Enterprise-instellingen ophalen",
sysEnterpriseUpdate: "Enterprise-instellingen bijwerken",
sysEventTracingLevelGet: "Gebeurtenissen ophalen",
sysEventTracingLevelCreate: "Gebeurtenissen aanmaken",
sysEventTracingLevelUpdate: "Gebeurtenissen bijwerken",
sysEventTracingLevelDestroy: "Gebeurtenissen verwijderen",
sysEventTracingLevelQuery: "Gebeurtenissen opvragen",
sysFileStorageGet: "Bestandsopslaginstellingen ophalen",
sysFileStorageUpdate: "Bestandsopslaginstellingen bijwerken",
sysHttpGet: "HTTP-instellingen ophalen",
sysHttpUpdate: "HTTP-instellingen bijwerken",
sysHttpFormGet: "HTTP-formulierinstellingen ophalen",
sysHttpFormUpdate: "HTTP-formulierinstellingen bijwerken",
sysHttpLookupGet: "Lijsten ophalen",
sysHttpLookupCreate: "Lijsten aanmaken",
sysHttpLookupUpdate: "Lijsten bijwerken",
sysHttpLookupDestroy: "Lijsten verwijderen",
sysHttpLookupQuery: "Lijsten opvragen",
sysImapGet: "IMAP-instellingen ophalen",
sysImapUpdate: "IMAP-instellingen bijwerken",
sysInMemoryStoreGet: "Instellingen voor in-memory-opslag ophalen",
sysInMemoryStoreUpdate: "Instellingen voor in-memory-opslag bijwerken",
sysJmapGet: "JMAP-instellingen ophalen",
sysJmapUpdate: "JMAP-instellingen bijwerken",
sysLogGet: "Logboekvermeldingen ophalen",
sysLogCreate: "Logboekvermeldingen aanmaken",
sysLogUpdate: "Logboekvermeldingen bijwerken",
sysLogDestroy: "Logboekvermeldingen verwijderen",
sysLogQuery: "Logboekvermeldingen opvragen",
sysMailingListGet: "Mailinglijsten ophalen",
sysMailingListCreate: "Mailinglijsten aanmaken",
sysMailingListUpdate: "Mailinglijsten bijwerken",
sysMailingListDestroy: "Mailinglijsten verwijderen",
sysMailingListQuery: "Mailinglijsten opvragen",
sysMaskedEmailGet: "Gemaskeerde e-mailadressen ophalen",
sysMaskedEmailCreate: "Gemaskeerde e-mailadressen aanmaken",
sysMaskedEmailUpdate: "Gemaskeerde e-mailadressen bijwerken",
sysMaskedEmailDestroy: "Gemaskeerde e-mailadressen verwijderen",
sysMaskedEmailQuery: "Gemaskeerde e-mailadressen opvragen",
sysMemoryLookupKeyGet: "Sleutels ophalen",
sysMemoryLookupKeyCreate: "Sleutels aanmaken",
sysMemoryLookupKeyUpdate: "Sleutels bijwerken",
sysMemoryLookupKeyDestroy: "Sleutels verwijderen",
sysMemoryLookupKeyQuery: "Sleutels opvragen",
sysMemoryLookupKeyValueGet: "Sleutels ophalen",
sysMemoryLookupKeyValueCreate: "Sleutels aanmaken",
sysMemoryLookupKeyValueUpdate: "Sleutels bijwerken",
sysMemoryLookupKeyValueDestroy: "Sleutels verwijderen",
sysMemoryLookupKeyValueQuery: "Sleutels opvragen",
sysMetricGet: "Statistieken ophalen",
sysMetricCreate: "Statistieken aanmaken",
sysMetricUpdate: "Statistieken bijwerken",
sysMetricDestroy: "Statistieken verwijderen",
sysMetricQuery: "Statistieken opvragen",
sysMetricsGet: "Statistiekinstellingen ophalen",
sysMetricsUpdate: "Statistiekinstellingen bijwerken",
sysMetricsStoreGet: "Instellingen voor statistiekopslag ophalen",
sysMetricsStoreUpdate: "Instellingen voor statistiekopslag bijwerken",
sysMtaConnectionStrategyGet: "Strategieën ophalen",
sysMtaConnectionStrategyCreate: "Strategieën aanmaken",
sysMtaConnectionStrategyUpdate: "Strategieën bijwerken",
sysMtaConnectionStrategyDestroy: "Strategieën verwijderen",
sysMtaConnectionStrategyQuery: "Strategieën opvragen",
sysMtaDeliveryScheduleGet: "Schema's ophalen",
sysMtaDeliveryScheduleCreate: "Schema's aanmaken",
sysMtaDeliveryScheduleUpdate: "Schema's bijwerken",
sysMtaDeliveryScheduleDestroy: "Schema's verwijderen",
sysMtaDeliveryScheduleQuery: "Schema's opvragen",
sysMtaExtensionsGet: "MTA-extensie-instellingen ophalen",
sysMtaExtensionsUpdate: "MTA-extensie-instellingen bijwerken",
sysMtaHookGet: "Hooks ophalen",
sysMtaHookCreate: "Hooks aanmaken",
sysMtaHookUpdate: "Hooks bijwerken",
sysMtaHookDestroy: "Hooks verwijderen",
sysMtaHookQuery: "Hooks opvragen",
sysMtaInboundSessionGet: "Instellingen voor inkomende MTA-sessies ophalen",
sysMtaInboundSessionUpdate: "Instellingen voor inkomende MTA-sessies bijwerken",
sysMtaInboundThrottleGet: "Snelheidsbeperkingen ophalen",
sysMtaInboundThrottleCreate: "Snelheidsbeperkingen aanmaken",
sysMtaInboundThrottleUpdate: "Snelheidsbeperkingen bijwerken",
sysMtaInboundThrottleDestroy: "Snelheidsbeperkingen verwijderen",
sysMtaInboundThrottleQuery: "Snelheidsbeperkingen opvragen",
sysMtaMilterGet: "Milters ophalen",
sysMtaMilterCreate: "Milters aanmaken",
sysMtaMilterUpdate: "Milters bijwerken",
sysMtaMilterDestroy: "Milters verwijderen",
sysMtaMilterQuery: "Milters opvragen",
sysMtaOutboundStrategyGet: "Instellingen voor uitgaande MTA-strategie ophalen",
sysMtaOutboundStrategyUpdate: "Instellingen voor uitgaande MTA-strategie bijwerken",
sysMtaOutboundThrottleGet: "Snelheidsbeperkingen ophalen",
sysMtaOutboundThrottleCreate: "Snelheidsbeperkingen aanmaken",
sysMtaOutboundThrottleUpdate: "Snelheidsbeperkingen bijwerken",
sysMtaOutboundThrottleDestroy: "Snelheidsbeperkingen verwijderen",
sysMtaOutboundThrottleQuery: "Snelheidsbeperkingen opvragen",
sysMtaQueueQuotaGet: "Quota ophalen",
sysMtaQueueQuotaCreate: "Quota aanmaken",
sysMtaQueueQuotaUpdate: "Quota bijwerken",
sysMtaQueueQuotaDestroy: "Quota verwijderen",
sysMtaQueueQuotaQuery: "Quota opvragen",
sysMtaRouteGet: "Routes ophalen",
sysMtaRouteCreate: "Routes aanmaken",
sysMtaRouteUpdate: "Routes bijwerken",
sysMtaRouteDestroy: "Routes verwijderen",
sysMtaRouteQuery: "Routes opvragen",
sysMtaStageAuthGet: "Instellingen voor MTA-fase AUTH ophalen",
sysMtaStageAuthUpdate: "Instellingen voor MTA-fase AUTH bijwerken",
sysMtaStageConnectGet: "Instellingen voor MTA-fase CONNECT ophalen",
sysMtaStageConnectUpdate: "Instellingen voor MTA-fase CONNECT bijwerken",
sysMtaStageDataGet: "Instellingen voor MTA-fase DATA ophalen",
sysMtaStageDataUpdate: "Instellingen voor MTA-fase DATA bijwerken",
sysMtaStageEhloGet: "Instellingen voor MTA-fase EHLO ophalen",
sysMtaStageEhloUpdate: "Instellingen voor MTA-fase EHLO bijwerken",
sysMtaStageMailGet: "Instellingen voor MTA-fase MAIL ophalen",
sysMtaStageMailUpdate: "Instellingen voor MTA-fase MAIL bijwerken",
sysMtaStageRcptGet: "Instellingen voor MTA-fase RCPT ophalen",
sysMtaStageRcptUpdate: "Instellingen voor MTA-fase RCPT bijwerken",
sysMtaStsGet: "MTA-STS-instellingen ophalen",
sysMtaStsUpdate: "MTA-STS-instellingen bijwerken",
sysMtaTlsStrategyGet: "Strategieën ophalen",
sysMtaTlsStrategyCreate: "Strategieën aanmaken",
sysMtaTlsStrategyUpdate: "Strategieën bijwerken",
sysMtaTlsStrategyDestroy: "Strategieën verwijderen",
sysMtaTlsStrategyQuery: "Strategieën opvragen",
sysMtaVirtualQueueGet: "Wachtrijen ophalen",
sysMtaVirtualQueueCreate: "Wachtrijen aanmaken",
sysMtaVirtualQueueUpdate: "Wachtrijen bijwerken",
sysMtaVirtualQueueDestroy: "Wachtrijen verwijderen",
sysMtaVirtualQueueQuery: "Wachtrijen opvragen",
sysNetworkListenerGet: "Listeners ophalen",
sysNetworkListenerCreate: "Listeners aanmaken",
sysNetworkListenerUpdate: "Listeners bijwerken",
sysNetworkListenerDestroy: "Listeners verwijderen",
sysNetworkListenerQuery: "Listeners opvragen",
sysOAuthClientGet: "OAuth-clients ophalen",
sysOAuthClientCreate: "OAuth-clients aanmaken",
sysOAuthClientUpdate: "OAuth-clients bijwerken",
sysOAuthClientDestroy: "OAuth-clients verwijderen",
sysOAuthClientQuery: "OAuth-clients opvragen",
sysOidcProviderGet: "OIDC-providerinstellingen ophalen",
sysOidcProviderUpdate: "OIDC-providerinstellingen bijwerken",
sysPublicKeyGet: "Openbare sleutels ophalen",
sysPublicKeyCreate: "Openbare sleutels aanmaken",
sysPublicKeyUpdate: "Openbare sleutels bijwerken",
sysPublicKeyDestroy: "Openbare sleutels verwijderen",
sysPublicKeyQuery: "Openbare sleutels opvragen",
sysQueuedMessageGet: "Berichten ophalen",
sysQueuedMessageCreate: "Berichten aanmaken",
sysQueuedMessageUpdate: "Berichten bijwerken",
sysQueuedMessageDestroy: "Berichten verwijderen",
sysQueuedMessageQuery: "Berichten opvragen",
sysReportSettingsGet: "Rapportinstellingen ophalen",
sysReportSettingsUpdate: "Rapportinstellingen bijwerken",
sysRoleGet: "Rollen ophalen",
sysRoleCreate: "Rollen aanmaken",
sysRoleUpdate: "Rollen bijwerken",
sysRoleDestroy: "Rollen verwijderen",
sysRoleQuery: "Rollen opvragen",
sysSearchGet: "Zoekinstellingen ophalen",
sysSearchUpdate: "Zoekinstellingen bijwerken",
sysSearchStoreGet: "Instellingen voor zoekopslag ophalen",
sysSearchStoreUpdate: "Instellingen voor zoekopslag bijwerken",
sysSecurityGet: "Beveiligingsinstellingen ophalen",
sysSecurityUpdate: "Beveiligingsinstellingen bijwerken",
sysSenderAuthGet: "Instellingen voor afzenderauthenticatie ophalen",
sysSenderAuthUpdate: "Instellingen voor afzenderauthenticatie bijwerken",
sysSharingGet: "Instellingen voor delen ophalen",
sysSharingUpdate: "Instellingen voor delen bijwerken",
sysSieveSystemInterpreterGet: "Instellingen voor de Sieve-systeeminterpreter ophalen",
sysSieveSystemInterpreterUpdate: "Instellingen voor de Sieve-systeeminterpreter bijwerken",
sysSieveSystemScriptGet: "Scripts ophalen",
sysSieveSystemScriptCreate: "Scripts aanmaken",
sysSieveSystemScriptUpdate: "Scripts bijwerken",
sysSieveSystemScriptDestroy: "Scripts verwijderen",
sysSieveSystemScriptQuery: "Scripts opvragen",
sysSieveUserInterpreterGet: "Instellingen voor de Sieve-gebruikersinterpreter ophalen",
sysSieveUserInterpreterUpdate: "Instellingen voor de Sieve-gebruikersinterpreter bijwerken",
sysSieveUserScriptGet: "Scripts ophalen",
sysSieveUserScriptCreate: "Scripts aanmaken",
sysSieveUserScriptUpdate: "Scripts bijwerken",
sysSieveUserScriptDestroy: "Scripts verwijderen",
sysSieveUserScriptQuery: "Scripts opvragen",
sysSpamClassifierGet: "Instellingen voor spamclassificatie ophalen",
sysSpamClassifierUpdate: "Instellingen voor spamclassificatie bijwerken",
sysSpamDnsblServerGet: "Servers ophalen",
sysSpamDnsblServerCreate: "Servers aanmaken",
sysSpamDnsblServerUpdate: "Servers bijwerken",
sysSpamDnsblServerDestroy: "Servers verwijderen",
sysSpamDnsblServerQuery: "Servers opvragen",
sysSpamDnsblSettingsGet: "Spam-DNSBL-instellingen ophalen",
sysSpamDnsblSettingsUpdate: "Spam-DNSBL-instellingen bijwerken",
sysSpamFileExtensionGet: "Extensies ophalen",
sysSpamFileExtensionCreate: "Extensies aanmaken",
sysSpamFileExtensionUpdate: "Extensies bijwerken",
sysSpamFileExtensionDestroy: "Extensies verwijderen",
sysSpamFileExtensionQuery: "Extensies opvragen",
sysSpamLlmGet: "Spam-LLM-instellingen ophalen",
sysSpamLlmUpdate: "Spam-LLM-instellingen bijwerken",
sysSpamPyzorGet: "Spam-Pyzor-instellingen ophalen",
sysSpamPyzorUpdate: "Spam-Pyzor-instellingen bijwerken",
sysSpamRuleGet: "Regels ophalen",
sysSpamRuleCreate: "Regels aanmaken",
sysSpamRuleUpdate: "Regels bijwerken",
sysSpamRuleDestroy: "Regels verwijderen",
sysSpamRuleQuery: "Regels opvragen",
sysSpamSettingsGet: "Spaminstellingen ophalen",
sysSpamSettingsUpdate: "Spaminstellingen bijwerken",
sysSpamTagGet: "Tags ophalen",
sysSpamTagCreate: "Tags aanmaken",
sysSpamTagUpdate: "Tags bijwerken",
sysSpamTagDestroy: "Tags verwijderen",
sysSpamTagQuery: "Tags opvragen",
sysSpamTrainingSampleGet: "Voorbeelden ophalen",
sysSpamTrainingSampleCreate: "Voorbeelden aanmaken",
sysSpamTrainingSampleUpdate: "Voorbeelden bijwerken",
sysSpamTrainingSampleDestroy: "Voorbeelden verwijderen",
sysSpamTrainingSampleQuery: "Voorbeelden opvragen",
sysSpfReportSettingsGet: "SPF-rapportinstellingen ophalen",
sysSpfReportSettingsUpdate: "SPF-rapportinstellingen bijwerken",
sysStoreLookupGet: "Lookups ophalen",
sysStoreLookupCreate: "Lookups aanmaken",
sysStoreLookupUpdate: "Lookups bijwerken",
sysStoreLookupDestroy: "Lookups verwijderen",
sysStoreLookupQuery: "Lookups opvragen",
sysSystemSettingsGet: "Systeeminstellingen ophalen",
sysSystemSettingsUpdate: "Systeeminstellingen bijwerken",
taskIndexDocument: "Document indexeren",
taskUnindexDocument: "Document uit de index verwijderen",
taskIndexTrace: "Telemetrietrace indexeren",
taskCalendarAlarmEmail: "E-mail voor agendaherinnering",
taskCalendarAlarmNotification: "Melding voor agendaherinnering",
taskCalendarItipMessage: "iTIP-agendabericht",
taskMergeThreads: "E-mailgesprekken samenvoegen",
taskDmarcReport: "DMARC-rapport naar externe server verzenden",
taskTlsReport: "TLS-rapport naar externe server verzenden",
taskRestoreArchivedItem: "Gearchiveerd item herstellen",
taskDestroyAccount: "Account en alle bijbehorende gegevens verwijderen",
taskAccountMaintenance: "Onderhoudsbewerkingen voor accounts uitvoeren",
taskTenantMaintenance: "Onderhoudsbewerkingen voor tenants uitvoeren",
taskStoreMaintenance: "Onderhoudsbewerkingen voor opslag uitvoeren",
taskSpamFilterMaintenance: "Onderhoudsbewerkingen voor het spamfilter uitvoeren",
taskAcmeRenewal: "ACME-certificaatvernieuwing voor een domein uitvoeren",
taskDkimManagement: "DKIM-sleutelrotatie voor een domein uitvoeren",
taskDnsManagement: "DNS-beheer voor een domein uitvoeren",
sysTaskGet: "Taken ophalen",
sysTaskCreate: "Taken aanmaken",
sysTaskUpdate: "Taken bijwerken",
sysTaskDestroy: "Taken verwijderen",
sysTaskQuery: "Taken opvragen",
sysTaskManagerGet: "Instellingen voor takenbeheer ophalen",
sysTaskManagerUpdate: "Instellingen voor takenbeheer bijwerken",
sysTenantGet: "Tenants ophalen",
sysTenantCreate: "Tenants aanmaken",
sysTenantUpdate: "Tenants bijwerken",
sysTenantDestroy: "Tenants verwijderen",
sysTenantQuery: "Tenants opvragen",
sysTlsExternalReportGet: "Rapporten ophalen",
sysTlsExternalReportCreate: "Rapporten aanmaken",
sysTlsExternalReportUpdate: "Rapporten bijwerken",
sysTlsExternalReportDestroy: "Rapporten verwijderen",
sysTlsExternalReportQuery: "Rapporten opvragen",
sysTlsInternalReportGet: "Rapporten ophalen",
sysTlsInternalReportCreate: "Rapporten aanmaken",
sysTlsInternalReportUpdate: "Rapporten bijwerken",
sysTlsInternalReportDestroy: "Rapporten verwijderen",
sysTlsInternalReportQuery: "Rapporten opvragen",
sysTlsReportSettingsGet: "TLS-rapportinstellingen ophalen",
sysTlsReportSettingsUpdate: "TLS-rapportinstellingen bijwerken",
sysTraceGet: "Traces ophalen",
sysTraceCreate: "Traces aanmaken",
sysTraceUpdate: "Traces bijwerken",
sysTraceDestroy: "Traces verwijderen",
sysTraceQuery: "Traces opvragen",
sysTracerGet: "Tracers ophalen",
sysTracerCreate: "Tracers aanmaken",
sysTracerUpdate: "Tracers bijwerken",
sysTracerDestroy: "Tracers verwijderen",
sysTracerQuery: "Tracers opvragen",
sysTracingStoreGet: "Instellingen voor tracing-opslag ophalen",
sysTracingStoreUpdate: "Instellingen voor tracing-opslag bijwerken",
sysWebDavGet: "WebDAV-instellingen ophalen",
sysWebDavUpdate: "WebDAV-instellingen bijwerken",
sysWebHookGet: "Webhooks ophalen",
sysWebHookCreate: "Webhooks aanmaken",
sysWebHookUpdate: "Webhooks bijwerken",
sysWebHookDestroy: "Webhooks verwijderen",
sysWebHookQuery: "Webhooks opvragen",
},
};
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in Brazilian Portuguese, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "Gerenciamento de modelos de IA",
"API keys Management": "Gerenciamento de chaves de API",
"Accounts Management": "Gerenciamento de contas",
"Action": "Ação",
"Actions Management": "Gerenciamento de ações",
"Addresses Management": "Gerenciamento de endereços",
"Alerts Management": "Gerenciamento de alertas",
"App passwords Management": "Gerenciamento de senhas de aplicativo",
"Applications Management": "Gerenciamento de aplicativos",
"Archived items Management": "Gerenciamento de itens arquivados",
"Calendar": "Agenda",
"Certificates Management": "Gerenciamento de certificados",
"Cluster nodes Management": "Gerenciamento de nós do cluster",
"DNS servers Management": "Gerenciamento de servidores DNS",
"Directories Management": "Gerenciamento de diretórios",
"Domains Management": "Gerenciamento de domínios",
"Email": "E-mail",
"Events Management": "Gerenciamento de eventos",
"Extensions Management": "Gerenciamento de extensões",
"Hooks Management": "Gerenciamento de hooks",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "Gerenciamento de chaves",
"Listeners Management": "Gerenciamento de listeners",
"Lists Management": "Gerenciamento de listas",
"Log entries Management": "Gerenciamento de entradas de log",
"Lookups Management": "Gerenciamento de armazenamentos de consulta",
"Mailing lists Management": "Gerenciamento de listas de e-mail",
"ManageSieve": "ManageSieve",
"Masked emails Management": "Gerenciamento de e-mails mascarados",
"Messages Management": "Gerenciamento de mensagens",
"Metrics Management": "Gerenciamento de métricas",
"Milters Management": "Gerenciamento de milters",
"OAuth clients Management": "Gerenciamento de clientes OAuth",
"POP3": "POP3",
"Providers Management": "Gerenciamento de provedores",
"Public keys Management": "Gerenciamento de chaves públicas",
"Queues Management": "Gerenciamento de filas",
"Quotas Management": "Gerenciamento de cotas",
"Reports Management": "Gerenciamento de relatórios",
"Roles Management": "Gerenciamento de funções",
"Routes Management": "Gerenciamento de rotas",
"Rules Management": "Gerenciamento de regras",
"Samples Management": "Gerenciamento de amostras",
"Schedules Management": "Gerenciamento de programações",
"Scripts Management": "Gerenciamento de scripts",
"Servers Management": "Gerenciamento de servidores",
"Settings": "Configurações",
"Signatures Management": "Gerenciamento de assinaturas",
"Strategies Management": "Gerenciamento de estratégias",
"Tags Management": "Gerenciamento de tags",
"Task": "Tarefa",
"Tasks Management": "Gerenciamento de tarefas",
"Tenants Management": "Gerenciamento de locatários",
"Throttles Management": "Gerenciamento de limitadores",
"Tracers Management": "Gerenciamento de rastreadores",
"Traces Management": "Gerenciamento de rastreamentos",
"WebDAV": "WebDAV",
"Webhooks Management": "Gerenciamento de webhooks",
},
labels: {
authenticate: "Entrar no servidor",
authenticateWithAlias: "Entrar usando endereços de alias de e-mail",
interactAi: "Interagir com modelos de IA",
impersonate: "Agir em nome de outro usuário",
unlimitedRequests: "Ignorar os limites de taxa de solicitações",
unlimitedUploads: "Ignorar os limites de tamanho e de taxa de carregamento",
fetchAnyBlob: "Recuperar blobs arbitrários, mesmo os que não pertencem à conta",
emailSend: "Enviar e-mails",
emailReceive: "Receber e-mails",
calendarAlarmsSend: "Enviar notificações de alarmes da agenda por e-mail",
calendarSchedulingSend: "Enviar convites e atualizações da agenda por e-mail",
calendarSchedulingReceive: "Processar convites e respostas da agenda recebidos",
jmapPushSubscriptionGet: "Recuperar detalhes de inscrições de push",
jmapPushSubscriptionCreate: "Criar novas inscrições de push",
jmapPushSubscriptionUpdate: "Modificar inscrições de push existentes",
jmapPushSubscriptionDestroy: "Remover inscrições de push",
jmapMailboxGet: "Recuperar detalhes e propriedades de caixas de correio",
jmapMailboxChanges: "Acompanhar alterações em caixas de correio desde um determinado estado",
jmapMailboxQuery: "Pesquisar caixas de correio que atendam a critérios",
jmapMailboxQueryChanges: "Acompanhar alterações nos resultados de consultas de caixas de correio",
jmapMailboxCreate: "Criar novas caixas de correio",
jmapMailboxUpdate: "Modificar caixas de correio existentes",
jmapMailboxDestroy: "Remover caixas de correio",
jmapThreadGet: "Recuperar detalhes de conversas de e-mail",
jmapThreadChanges: "Acompanhar alterações em conversas desde um determinado estado",
jmapEmailGet: "Recuperar detalhes e propriedades de e-mails",
jmapEmailChanges: "Acompanhar alterações em e-mails desde um determinado estado",
jmapEmailQuery: "Pesquisar e-mails que atendam a critérios",
jmapEmailQueryChanges: "Acompanhar alterações nos resultados de consultas de e-mails",
jmapEmailCreate: "Criar novos e-mails",
jmapEmailUpdate: "Modificar e-mails existentes",
jmapEmailDestroy: "Remover e-mails",
jmapEmailCopy: "Copiar e-mails para outra conta",
jmapEmailImport: "Importar e-mails a partir de dados de blob",
jmapEmailParse: "Analisar dados brutos de e-mail sem armazená-los",
jmapSearchSnippetGet: "Recuperar trechos de resultados de pesquisa de e-mails",
jmapIdentityGet: "Recuperar detalhes de identidades de remetente",
jmapIdentityChanges: "Acompanhar alterações em identidades desde um determinado estado",
jmapIdentityCreate: "Criar novas identidades de remetente",
jmapIdentityUpdate: "Modificar identidades de remetente existentes",
jmapIdentityDestroy: "Remover identidades de remetente",
jmapEmailSubmissionGet: "Recuperar detalhes de envios de e-mail",
jmapEmailSubmissionChanges: "Acompanhar alterações em envios de e-mail desde um determinado estado",
jmapEmailSubmissionQuery: "Pesquisar envios de e-mail que atendam a critérios",
jmapEmailSubmissionQueryChanges: "Acompanhar alterações nos resultados de consultas de envios de e-mail",
jmapEmailSubmissionCreate: "Criar novos envios de e-mail para expedição",
jmapEmailSubmissionUpdate: "Modificar envios de e-mail existentes",
jmapEmailSubmissionDestroy: "Remover envios de e-mail",
jmapVacationResponseGet: "Recuperar a configuração da resposta de ausência",
jmapVacationResponseCreate: "Criar configurações de resposta de ausência",
jmapVacationResponseUpdate: "Modificar configurações de resposta de ausência",
jmapVacationResponseDestroy: "Remover configurações de resposta de ausência",
jmapSieveScriptGet: "Recuperar detalhes de scripts de filtro Sieve",
jmapSieveScriptQuery: "Pesquisar scripts Sieve que atendam a critérios",
jmapSieveScriptValidate: "Validar um script Sieve sem armazená-lo",
jmapSieveScriptCreate: "Criar novos scripts de filtro Sieve",
jmapSieveScriptUpdate: "Modificar scripts de filtro Sieve existentes",
jmapSieveScriptDestroy: "Remover scripts de filtro Sieve",
jmapPrincipalGet: "Recuperar detalhes e propriedades de entidades principais",
jmapPrincipalQuery: "Pesquisar entidades principais que atendam a critérios",
jmapPrincipalChanges: "Acompanhar alterações em entidades principais desde um determinado estado",
jmapPrincipalQueryChanges: "Acompanhar alterações nos resultados de consultas de entidades principais",
jmapPrincipalGetAvailability: "Consultar informações de disponibilidade de entidades principais",
jmapPrincipalCreate: "Criar novas entidades principais",
jmapPrincipalUpdate: "Modificar entidades principais existentes",
jmapPrincipalDestroy: "Remover entidades principais",
jmapQuotaGet: "Recuperar o uso e os limites de cotas",
jmapQuotaChanges: "Acompanhar alterações em cotas desde um determinado estado",
jmapQuotaQuery: "Pesquisar cotas que atendam a critérios",
jmapQuotaQueryChanges: "Acompanhar alterações nos resultados de consultas de cotas",
jmapBlobGet: "Baixar dados de blob",
jmapBlobCopy: "Copiar blobs para outra conta",
jmapBlobLookup: "Localizar o uso de blobs entre tipos de dados",
jmapBlobUpload: "Carregar novos dados de blob",
jmapAddressBookGet: "Recuperar detalhes e propriedades de catálogos de endereços",
jmapAddressBookChanges: "Acompanhar alterações em catálogos de endereços desde um determinado estado",
jmapAddressBookCreate: "Criar novos catálogos de endereços",
jmapAddressBookUpdate: "Modificar catálogos de endereços existentes",
jmapAddressBookDestroy: "Remover catálogos de endereços",
jmapContactCardGet: "Recuperar detalhes de cartões de contato",
jmapContactCardChanges: "Acompanhar alterações em cartões de contato desde um determinado estado",
jmapContactCardQuery: "Pesquisar cartões de contato que atendam a critérios",
jmapContactCardQueryChanges: "Acompanhar alterações nos resultados de consultas de cartões de contato",
jmapContactCardCreate: "Criar novos cartões de contato",
jmapContactCardUpdate: "Modificar cartões de contato existentes",
jmapContactCardDestroy: "Remover cartões de contato",
jmapContactCardCopy: "Copiar cartões de contato para outra conta",
jmapContactCardParse: "Analisar dados brutos de cartões de contato sem armazená-los",
jmapFileNodeGet: "Recuperar detalhes e propriedades de nós de arquivo",
jmapFileNodeChanges: "Acompanhar alterações em nós de arquivo desde um determinado estado",
jmapFileNodeQuery: "Pesquisar nós de arquivo que atendam a critérios",
jmapFileNodeQueryChanges: "Acompanhar alterações nos resultados de consultas de nós de arquivo",
jmapFileNodeCreate: "Criar novos nós de arquivo",
jmapFileNodeUpdate: "Modificar nós de arquivo existentes",
jmapFileNodeDestroy: "Remover nós de arquivo",
jmapFileNodeCopy: "Copiar nós de arquivo para outra conta",
jmapShareNotificationGet: "Recuperar detalhes de notificações de compartilhamento",
jmapShareNotificationChanges: "Acompanhar alterações em notificações de compartilhamento desde um determinado estado",
jmapShareNotificationQuery: "Pesquisar notificações de compartilhamento que atendam a critérios",
jmapShareNotificationQueryChanges: "Acompanhar alterações nos resultados de consultas de notificações de compartilhamento",
jmapShareNotificationCreate: "Criar novas notificações de compartilhamento",
jmapShareNotificationUpdate: "Modificar notificações de compartilhamento existentes",
jmapShareNotificationDestroy: "Remover notificações de compartilhamento",
jmapCalendarGet: "Recuperar detalhes e propriedades de agendas",
jmapCalendarChanges: "Acompanhar alterações em agendas desde um determinado estado",
jmapCalendarCreate: "Criar novas agendas",
jmapCalendarUpdate: "Modificar agendas existentes",
jmapCalendarDestroy: "Remover agendas",
jmapCalendarEventGet: "Recuperar detalhes de eventos da agenda",
jmapCalendarEventChanges: "Acompanhar alterações em eventos da agenda desde um determinado estado",
jmapCalendarEventQuery: "Pesquisar eventos da agenda que atendam a critérios",
jmapCalendarEventQueryChanges: "Acompanhar alterações nos resultados de consultas de eventos da agenda",
jmapCalendarEventCreate: "Criar novos eventos da agenda",
jmapCalendarEventUpdate: "Modificar eventos da agenda existentes",
jmapCalendarEventDestroy: "Remover eventos da agenda",
jmapCalendarEventCopy: "Copiar eventos da agenda para outra conta",
jmapCalendarEventParse: "Analisar dados brutos de eventos da agenda sem armazená-los",
jmapCalendarEventNotificationGet: "Recuperar detalhes de notificações de eventos da agenda",
jmapCalendarEventNotificationChanges: "Acompanhar alterações em notificações de eventos da agenda desde um determinado estado",
jmapCalendarEventNotificationQuery: "Pesquisar notificações de eventos da agenda que atendam a critérios",
jmapCalendarEventNotificationQueryChanges: "Acompanhar alterações nos resultados de consultas de notificações de eventos da agenda",
jmapCalendarEventNotificationCreate: "Criar novas notificações de eventos da agenda",
jmapCalendarEventNotificationUpdate: "Modificar notificações de eventos da agenda existentes",
jmapCalendarEventNotificationDestroy: "Remover notificações de eventos da agenda",
jmapParticipantIdentityGet: "Recuperar detalhes de identidades de participante",
jmapParticipantIdentityChanges: "Acompanhar alterações em identidades de participante desde um determinado estado",
jmapParticipantIdentityCreate: "Criar novas identidades de participante",
jmapParticipantIdentityUpdate: "Modificar identidades de participante existentes",
jmapParticipantIdentityDestroy: "Remover identidades de participante",
jmapCoreEcho: "Devolver os dados de entrada para teste",
imapAuthenticate: "Entrar no servidor IMAP",
imapAclGet: "Ver listas de controle de acesso de caixas de correio",
imapAclSet: "Modificar listas de controle de acesso de caixas de correio",
imapMyRights: "Ver as próprias permissões em uma caixa de correio",
imapListRights: "Listar os sinalizadores de permissão disponíveis para uma caixa de correio",
imapAppend: "Carregar mensagens em uma caixa de correio",
imapCapability: "Consultar as extensões IMAP suportadas",
imapId: "Consultar a identificação e a versão do servidor",
imapCopy: "Copiar mensagens entre caixas de correio",
imapMove: "Mover mensagens entre caixas de correio",
imapCreate: "Criar novas caixas de correio",
imapDelete: "Excluir caixas de correio ou marcar mensagens para exclusão",
imapEnable: "Ativar extensões IMAP opcionais",
imapExpunge: "Remover permanentemente as mensagens marcadas para exclusão",
imapFetch: "Baixar o conteúdo e os metadados de mensagens",
imapIdle: "Receber notificações em tempo real de alterações em caixas de correio",
imapList: "Listar as caixas de correio disponíveis e seus atributos",
imapLsub: "Listar as caixas de correio em que o usuário está inscrito",
imapNamespace: "Consultar os prefixos de namespace de caixas de correio disponíveis",
imapRename: "Renomear ou mover caixas de correio",
imapSearch: "Pesquisar mensagens por critérios",
imapSort: "Recuperar mensagens em uma ordem de classificação especificada",
imapSelect: "Abrir uma caixa de correio com acesso de leitura e gravação",
imapExamine: "Abrir uma caixa de correio com acesso somente leitura",
imapStatus: "Consultar a contagem de mensagens e o estado de caixas de correio",
imapStore: "Definir ou limpar sinalizadores de mensagens (lida, sinalizada, excluída etc.)",
imapSubscribe: "Inscrever-se ou cancelar a inscrição em caixas de correio",
imapThread: "Agrupar mensagens em conversas",
pop3Authenticate: "Entrar no servidor POP3",
pop3List: "Listar mensagens e seus tamanhos",
pop3Uidl: "Recuperar os identificadores únicos de mensagens",
pop3Stat: "Consultar a contagem de mensagens e o tamanho total da caixa de correio",
pop3Retr: "Baixar o conteúdo de mensagens",
pop3Dele: "Marcar mensagens para exclusão ao desconectar",
sieveAuthenticate: "Entrar no servidor ManageSieve",
sieveListScripts: "Listar os scripts Sieve carregados",
sieveSetActive: "Definir qual script Sieve está ativo",
sieveGetScript: "Baixar o conteúdo de scripts Sieve",
sievePutScript: "Carregar ou substituir um script Sieve",
sieveDeleteScript: "Remover um script Sieve",
sieveRenameScript: "Renomear um script Sieve",
sieveCheckScript: "Validar a sintaxe de scripts Sieve sem salvar",
sieveHaveSpace: "Verificar se a cota permite carregar um script de determinado tamanho",
davSyncCollection: "Sincronizar alterações de coleções com o cliente",
davExpandProperty: "Expandir propriedades que referenciam outros recursos",
davPrincipalAcl: "Gerenciar propriedades de controle de acesso de entidades principais",
davPrincipalList: "Listar as entidades principais disponíveis no sistema",
davPrincipalMatch: "Encontrar entidades principais que correspondam aos critérios especificados",
davPrincipalSearch: "Pesquisar entidades principais por valores de propriedades",
davPrincipalSearchPropSet: "Consultar quais propriedades de entidades principais podem ser pesquisadas",
davFilePropFind: "Recuperar propriedades de recursos de arquivo",
davFilePropPatch: "Modificar propriedades de recursos de arquivo",
davFileGet: "Baixar recursos de arquivo",
davFileMkCol: "Criar novas coleções de arquivos ou diretórios",
davFileDelete: "Remover recursos de arquivo",
davFilePut: "Carregar ou modificar recursos de arquivo",
davFileCopy: "Copiar recursos de arquivo para novos locais",
davFileMove: "Mover recursos de arquivo para novos locais",
davFileLock: "Bloquear recursos de arquivo para impedir modificações simultâneas",
davFileAcl: "Gerenciar listas de controle de acesso de recursos de arquivo",
davCardPropFind: "Recuperar propriedades de entradas de catálogo de endereços",
davCardPropPatch: "Modificar propriedades de entradas de catálogo de endereços",
davCardGet: "Baixar entradas de catálogo de endereços",
davCardMkCol: "Criar novas coleções de catálogo de endereços",
davCardDelete: "Remover entradas ou coleções de catálogo de endereços",
davCardPut: "Carregar ou modificar entradas de catálogo de endereços",
davCardCopy: "Copiar entradas de catálogo de endereços para novos locais",
davCardMove: "Mover entradas de catálogo de endereços para novos locais",
davCardLock: "Bloquear entradas de catálogo de endereços para impedir modificações simultâneas",
davCardAcl: "Gerenciar listas de controle de acesso de entradas de catálogo de endereços",
davCardQuery: "Pesquisar entradas de catálogo de endereços que atendam a critérios",
davCardMultiGet: "Recuperar várias entradas de catálogo de endereços em uma única solicitação",
davCalPropFind: "Recuperar propriedades de entradas de agenda",
davCalPropPatch: "Modificar propriedades de entradas de agenda",
davCalGet: "Baixar entradas de agenda",
davCalMkCol: "Criar novas coleções de agenda",
davCalDelete: "Remover entradas ou coleções de agenda",
davCalPut: "Carregar ou modificar entradas de agenda",
davCalCopy: "Copiar entradas de agenda para novos locais",
davCalMove: "Mover entradas de agenda para novos locais",
davCalLock: "Bloquear entradas de agenda para impedir modificações simultâneas",
davCalAcl: "Gerenciar listas de controle de acesso de entradas de agenda",
davCalQuery: "Pesquisar entradas de agenda que atendam a critérios",
davCalMultiGet: "Recuperar várias entradas de agenda em uma única solicitação",
davCalFreeBusyQuery: "Consultar informações de disponibilidade (livre/ocupado) para agendamento",
oAuthClientRegistration: "Registrar novos aplicativos clientes OAuth",
oAuthClientOverride: "Ignorar os requisitos de registro de clientes OAuth",
liveTracing: "Ver rastreamentos de eventos do servidor em tempo real",
liveMetrics: "Ver métricas de desempenho do servidor em tempo real",
liveDeliveryTest: "Enviar e-mails de teste para verificar a configuração de entrega",
scimAccess: "Provisionar usuários e grupos pelo endpoint SCIM",
sysAccountGet: "Obter contas",
sysAccountCreate: "Criar contas",
sysAccountUpdate: "Atualizar contas",
sysAccountDestroy: "Excluir contas",
sysAccountQuery: "Consultar contas",
sysAccountPasswordGet: "Obter configurações de senha de contas",
sysAccountPasswordUpdate: "Atualizar configurações de senha de contas",
sysAccountSettingsGet: "Obter configurações de contas",
sysAccountSettingsUpdate: "Atualizar configurações de contas",
sysAcmeProviderGet: "Obter provedores",
sysAcmeProviderCreate: "Criar provedores",
sysAcmeProviderUpdate: "Atualizar provedores",
sysAcmeProviderDestroy: "Excluir provedores",
sysAcmeProviderQuery: "Consultar provedores",
actionReloadSettings: "Recarregar: Configurações do servidor",
actionReloadTlsCertificates: "Recarregar: Certificados TLS",
actionReloadLookupStores: "Recarregar: Armazenamentos de consulta",
actionReloadBlockedIps: "Recarregar: Lista de IPs bloqueados",
actionUpdateApps: "Gerenciamento de aplicativos: Atualizar aplicativos",
actionTroubleshootDmarc: "DMARC: Solução de problemas",
actionClassifySpam: "Filtro de spam: Classificar uma mensagem",
actionInvalidateCaches: "Cache: Invalidar todos os caches",
actionInvalidateNegativeCaches: "Cache: Invalidar caches negativos",
actionPauseMtaQueue: "MTA: Pausar o processamento da fila",
actionResumeMtaQueue: "MTA: Retomar o processamento da fila",
sysActionGet: "Obter ações",
sysActionCreate: "Criar ações",
sysActionUpdate: "Atualizar ações",
sysActionDestroy: "Excluir ações",
sysActionQuery: "Consultar ações",
sysAddressBookGet: "Obter configurações de catálogos de endereços",
sysAddressBookUpdate: "Atualizar configurações de catálogos de endereços",
sysAiModelGet: "Obter modelos de IA",
sysAiModelCreate: "Criar modelos de IA",
sysAiModelUpdate: "Atualizar modelos de IA",
sysAiModelDestroy: "Excluir modelos de IA",
sysAiModelQuery: "Consultar modelos de IA",
sysAlertGet: "Obter alertas",
sysAlertCreate: "Criar alertas",
sysAlertUpdate: "Atualizar alertas",
sysAlertDestroy: "Excluir alertas",
sysAlertQuery: "Consultar alertas",
sysAllowedIpGet: "Obter endereços",
sysAllowedIpCreate: "Criar endereços",
sysAllowedIpUpdate: "Atualizar endereços",
sysAllowedIpDestroy: "Excluir endereços",
sysAllowedIpQuery: "Consultar endereços",
sysApiKeyGet: "Obter chaves de API",
sysApiKeyCreate: "Criar chaves de API",
sysApiKeyUpdate: "Atualizar chaves de API",
sysApiKeyDestroy: "Excluir chaves de API",
sysApiKeyQuery: "Consultar chaves de API",
sysAppPasswordGet: "Obter senhas de aplicativo",
sysAppPasswordCreate: "Criar senhas de aplicativo",
sysAppPasswordUpdate: "Atualizar senhas de aplicativo",
sysAppPasswordDestroy: "Excluir senhas de aplicativo",
sysAppPasswordQuery: "Consultar senhas de aplicativo",
sysApplicationGet: "Obter aplicativos",
sysApplicationCreate: "Criar aplicativos",
sysApplicationUpdate: "Atualizar aplicativos",
sysApplicationDestroy: "Excluir aplicativos",
sysApplicationQuery: "Consultar aplicativos",
sysArchivedItemGet: "Obter itens arquivados",
sysArchivedItemCreate: "Criar itens arquivados",
sysArchivedItemUpdate: "Atualizar itens arquivados",
sysArchivedItemDestroy: "Excluir itens arquivados",
sysArchivedItemQuery: "Consultar itens arquivados",
sysArfExternalReportGet: "Obter relatórios",
sysArfExternalReportCreate: "Criar relatórios",
sysArfExternalReportUpdate: "Atualizar relatórios",
sysArfExternalReportDestroy: "Excluir relatórios",
sysArfExternalReportQuery: "Consultar relatórios",
sysAsnGet: "Obter configurações de ASN",
sysAsnUpdate: "Atualizar configurações de ASN",
sysAuthenticationGet: "Obter configurações de autenticação",
sysAuthenticationUpdate: "Atualizar configurações de autenticação",
sysBlobStoreGet: "Obter configurações do armazenamento de blobs",
sysBlobStoreUpdate: "Atualizar configurações do armazenamento de blobs",
sysBlockedIpGet: "Obter endereços",
sysBlockedIpCreate: "Criar endereços",
sysBlockedIpUpdate: "Atualizar endereços",
sysBlockedIpDestroy: "Excluir endereços",
sysBlockedIpQuery: "Consultar endereços",
sysBootstrapGet: "Obter configurações de inicialização",
sysBootstrapUpdate: "Atualizar configurações de inicialização",
sysCacheGet: "Obter configurações de cache",
sysCacheUpdate: "Atualizar configurações de cache",
sysCalendarGet: "Obter configurações de agenda",
sysCalendarUpdate: "Atualizar configurações de agenda",
sysCalendarAlarmGet: "Obter configurações de alarmes da agenda",
sysCalendarAlarmUpdate: "Atualizar configurações de alarmes da agenda",
sysCalendarSchedulingGet: "Obter configurações de agendamento da agenda",
sysCalendarSchedulingUpdate: "Atualizar configurações de agendamento da agenda",
sysCertificateGet: "Obter certificados",
sysCertificateCreate: "Criar certificados",
sysCertificateUpdate: "Atualizar certificados",
sysCertificateDestroy: "Excluir certificados",
sysCertificateQuery: "Consultar certificados",
sysClusterNodeGet: "Obter nós do cluster",
sysClusterNodeCreate: "Criar nós do cluster",
sysClusterNodeUpdate: "Atualizar nós do cluster",
sysClusterNodeDestroy: "Excluir nós do cluster",
sysClusterNodeQuery: "Consultar nós do cluster",
sysClusterRoleGet: "Obter funções",
sysClusterRoleCreate: "Criar funções",
sysClusterRoleUpdate: "Atualizar funções",
sysClusterRoleDestroy: "Excluir funções",
sysClusterRoleQuery: "Consultar funções",
sysCoordinatorGet: "Obter configurações do coordenador",
sysCoordinatorUpdate: "Atualizar configurações do coordenador",
sysDataRetentionGet: "Obter configurações de retenção de dados",
sysDataRetentionUpdate: "Atualizar configurações de retenção de dados",
sysDataStoreGet: "Obter configurações do armazenamento de dados",
sysDataStoreUpdate: "Atualizar configurações do armazenamento de dados",
sysDirectoryGet: "Obter diretórios",
sysDirectoryCreate: "Criar diretórios",
sysDirectoryUpdate: "Atualizar diretórios",
sysDirectoryDestroy: "Excluir diretórios",
sysDirectoryQuery: "Consultar diretórios",
sysDkimReportSettingsGet: "Obter configurações de relatórios DKIM",
sysDkimReportSettingsUpdate: "Atualizar configurações de relatórios DKIM",
sysDkimSignatureGet: "Obter assinaturas",
sysDkimSignatureCreate: "Criar assinaturas",
sysDkimSignatureUpdate: "Atualizar assinaturas",
sysDkimSignatureDestroy: "Excluir assinaturas",
sysDkimSignatureQuery: "Consultar assinaturas",
sysDmarcExternalReportGet: "Obter relatórios",
sysDmarcExternalReportCreate: "Criar relatórios",
sysDmarcExternalReportUpdate: "Atualizar relatórios",
sysDmarcExternalReportDestroy: "Excluir relatórios",
sysDmarcExternalReportQuery: "Consultar relatórios",
sysDmarcInternalReportGet: "Obter relatórios",
sysDmarcInternalReportCreate: "Criar relatórios",
sysDmarcInternalReportUpdate: "Atualizar relatórios",
sysDmarcInternalReportDestroy: "Excluir relatórios",
sysDmarcInternalReportQuery: "Consultar relatórios",
sysDmarcReportSettingsGet: "Obter configurações de relatórios DMARC",
sysDmarcReportSettingsUpdate: "Atualizar configurações de relatórios DMARC",
sysDnsResolverGet: "Obter configurações do resolvedor DNS",
sysDnsResolverUpdate: "Atualizar configurações do resolvedor DNS",
sysDnsServerGet: "Obter servidores DNS",
sysDnsServerCreate: "Criar servidores DNS",
sysDnsServerUpdate: "Atualizar servidores DNS",
sysDnsServerDestroy: "Excluir servidores DNS",
sysDnsServerQuery: "Consultar servidores DNS",
sysDomainGet: "Obter domínios",
sysDomainCreate: "Criar domínios",
sysDomainUpdate: "Atualizar domínios",
sysDomainDestroy: "Excluir domínios",
sysDomainQuery: "Consultar domínios",
sysDsnReportSettingsGet: "Obter configurações de relatórios DSN",
sysDsnReportSettingsUpdate: "Atualizar configurações de relatórios DSN",
sysEmailGet: "Obter configurações de e-mail",
sysEmailUpdate: "Atualizar configurações de e-mail",
sysEnterpriseGet: "Obter configurações da edição Enterprise",
sysEnterpriseUpdate: "Atualizar configurações da edição Enterprise",
sysEventTracingLevelGet: "Obter eventos",
sysEventTracingLevelCreate: "Criar eventos",
sysEventTracingLevelUpdate: "Atualizar eventos",
sysEventTracingLevelDestroy: "Excluir eventos",
sysEventTracingLevelQuery: "Consultar eventos",
sysFileStorageGet: "Obter configurações do armazenamento de arquivos",
sysFileStorageUpdate: "Atualizar configurações do armazenamento de arquivos",
sysHttpGet: "Obter configurações de HTTP",
sysHttpUpdate: "Atualizar configurações de HTTP",
sysHttpFormGet: "Obter configurações de formulários HTTP",
sysHttpFormUpdate: "Atualizar configurações de formulários HTTP",
sysHttpLookupGet: "Obter listas",
sysHttpLookupCreate: "Criar listas",
sysHttpLookupUpdate: "Atualizar listas",
sysHttpLookupDestroy: "Excluir listas",
sysHttpLookupQuery: "Consultar listas",
sysImapGet: "Obter configurações de IMAP",
sysImapUpdate: "Atualizar configurações de IMAP",
sysInMemoryStoreGet: "Obter configurações do armazenamento em memória",
sysInMemoryStoreUpdate: "Atualizar configurações do armazenamento em memória",
sysJmapGet: "Obter configurações de JMAP",
sysJmapUpdate: "Atualizar configurações de JMAP",
sysLogGet: "Obter entradas de log",
sysLogCreate: "Criar entradas de log",
sysLogUpdate: "Atualizar entradas de log",
sysLogDestroy: "Excluir entradas de log",
sysLogQuery: "Consultar entradas de log",
sysMailingListGet: "Obter listas de e-mail",
sysMailingListCreate: "Criar listas de e-mail",
sysMailingListUpdate: "Atualizar listas de e-mail",
sysMailingListDestroy: "Excluir listas de e-mail",
sysMailingListQuery: "Consultar listas de e-mail",
sysMaskedEmailGet: "Obter e-mails mascarados",
sysMaskedEmailCreate: "Criar e-mails mascarados",
sysMaskedEmailUpdate: "Atualizar e-mails mascarados",
sysMaskedEmailDestroy: "Excluir e-mails mascarados",
sysMaskedEmailQuery: "Consultar e-mails mascarados",
sysMemoryLookupKeyGet: "Obter chaves",
sysMemoryLookupKeyCreate: "Criar chaves",
sysMemoryLookupKeyUpdate: "Atualizar chaves",
sysMemoryLookupKeyDestroy: "Excluir chaves",
sysMemoryLookupKeyQuery: "Consultar chaves",
sysMemoryLookupKeyValueGet: "Obter chaves",
sysMemoryLookupKeyValueCreate: "Criar chaves",
sysMemoryLookupKeyValueUpdate: "Atualizar chaves",
sysMemoryLookupKeyValueDestroy: "Excluir chaves",
sysMemoryLookupKeyValueQuery: "Consultar chaves",
sysMetricGet: "Obter métricas",
sysMetricCreate: "Criar métricas",
sysMetricUpdate: "Atualizar métricas",
sysMetricDestroy: "Excluir métricas",
sysMetricQuery: "Consultar métricas",
sysMetricsGet: "Obter configurações de métricas",
sysMetricsUpdate: "Atualizar configurações de métricas",
sysMetricsStoreGet: "Obter configurações do armazenamento de métricas",
sysMetricsStoreUpdate: "Atualizar configurações do armazenamento de métricas",
sysMtaConnectionStrategyGet: "Obter estratégias",
sysMtaConnectionStrategyCreate: "Criar estratégias",
sysMtaConnectionStrategyUpdate: "Atualizar estratégias",
sysMtaConnectionStrategyDestroy: "Excluir estratégias",
sysMtaConnectionStrategyQuery: "Consultar estratégias",
sysMtaDeliveryScheduleGet: "Obter programações",
sysMtaDeliveryScheduleCreate: "Criar programações",
sysMtaDeliveryScheduleUpdate: "Atualizar programações",
sysMtaDeliveryScheduleDestroy: "Excluir programações",
sysMtaDeliveryScheduleQuery: "Consultar programações",
sysMtaExtensionsGet: "Obter configurações de extensões do MTA",
sysMtaExtensionsUpdate: "Atualizar configurações de extensões do MTA",
sysMtaHookGet: "Obter hooks",
sysMtaHookCreate: "Criar hooks",
sysMtaHookUpdate: "Atualizar hooks",
sysMtaHookDestroy: "Excluir hooks",
sysMtaHookQuery: "Consultar hooks",
sysMtaInboundSessionGet: "Obter configurações de sessões de entrada do MTA",
sysMtaInboundSessionUpdate: "Atualizar configurações de sessões de entrada do MTA",
sysMtaInboundThrottleGet: "Obter limitadores",
sysMtaInboundThrottleCreate: "Criar limitadores",
sysMtaInboundThrottleUpdate: "Atualizar limitadores",
sysMtaInboundThrottleDestroy: "Excluir limitadores",
sysMtaInboundThrottleQuery: "Consultar limitadores",
sysMtaMilterGet: "Obter milters",
sysMtaMilterCreate: "Criar milters",
sysMtaMilterUpdate: "Atualizar milters",
sysMtaMilterDestroy: "Excluir milters",
sysMtaMilterQuery: "Consultar milters",
sysMtaOutboundStrategyGet: "Obter configurações de estratégia de saída do MTA",
sysMtaOutboundStrategyUpdate: "Atualizar configurações de estratégia de saída do MTA",
sysMtaOutboundThrottleGet: "Obter limitadores",
sysMtaOutboundThrottleCreate: "Criar limitadores",
sysMtaOutboundThrottleUpdate: "Atualizar limitadores",
sysMtaOutboundThrottleDestroy: "Excluir limitadores",
sysMtaOutboundThrottleQuery: "Consultar limitadores",
sysMtaQueueQuotaGet: "Obter cotas",
sysMtaQueueQuotaCreate: "Criar cotas",
sysMtaQueueQuotaUpdate: "Atualizar cotas",
sysMtaQueueQuotaDestroy: "Excluir cotas",
sysMtaQueueQuotaQuery: "Consultar cotas",
sysMtaRouteGet: "Obter rotas",
sysMtaRouteCreate: "Criar rotas",
sysMtaRouteUpdate: "Atualizar rotas",
sysMtaRouteDestroy: "Excluir rotas",
sysMtaRouteQuery: "Consultar rotas",
sysMtaStageAuthGet: "Obter configurações da etapa AUTH do MTA",
sysMtaStageAuthUpdate: "Atualizar configurações da etapa AUTH do MTA",
sysMtaStageConnectGet: "Obter configurações da etapa CONNECT do MTA",
sysMtaStageConnectUpdate: "Atualizar configurações da etapa CONNECT do MTA",
sysMtaStageDataGet: "Obter configurações da etapa DATA do MTA",
sysMtaStageDataUpdate: "Atualizar configurações da etapa DATA do MTA",
sysMtaStageEhloGet: "Obter configurações da etapa EHLO do MTA",
sysMtaStageEhloUpdate: "Atualizar configurações da etapa EHLO do MTA",
sysMtaStageMailGet: "Obter configurações da etapa MAIL do MTA",
sysMtaStageMailUpdate: "Atualizar configurações da etapa MAIL do MTA",
sysMtaStageRcptGet: "Obter configurações da etapa RCPT do MTA",
sysMtaStageRcptUpdate: "Atualizar configurações da etapa RCPT do MTA",
sysMtaStsGet: "Obter configurações de MTA-STS",
sysMtaStsUpdate: "Atualizar configurações de MTA-STS",
sysMtaTlsStrategyGet: "Obter estratégias",
sysMtaTlsStrategyCreate: "Criar estratégias",
sysMtaTlsStrategyUpdate: "Atualizar estratégias",
sysMtaTlsStrategyDestroy: "Excluir estratégias",
sysMtaTlsStrategyQuery: "Consultar estratégias",
sysMtaVirtualQueueGet: "Obter filas",
sysMtaVirtualQueueCreate: "Criar filas",
sysMtaVirtualQueueUpdate: "Atualizar filas",
sysMtaVirtualQueueDestroy: "Excluir filas",
sysMtaVirtualQueueQuery: "Consultar filas",
sysNetworkListenerGet: "Obter listeners",
sysNetworkListenerCreate: "Criar listeners",
sysNetworkListenerUpdate: "Atualizar listeners",
sysNetworkListenerDestroy: "Excluir listeners",
sysNetworkListenerQuery: "Consultar listeners",
sysOAuthClientGet: "Obter clientes OAuth",
sysOAuthClientCreate: "Criar clientes OAuth",
sysOAuthClientUpdate: "Atualizar clientes OAuth",
sysOAuthClientDestroy: "Excluir clientes OAuth",
sysOAuthClientQuery: "Consultar clientes OAuth",
sysOidcProviderGet: "Obter configurações do provedor OIDC",
sysOidcProviderUpdate: "Atualizar configurações do provedor OIDC",
sysPublicKeyGet: "Obter chaves públicas",
sysPublicKeyCreate: "Criar chaves públicas",
sysPublicKeyUpdate: "Atualizar chaves públicas",
sysPublicKeyDestroy: "Excluir chaves públicas",
sysPublicKeyQuery: "Consultar chaves públicas",
sysQueuedMessageGet: "Obter mensagens",
sysQueuedMessageCreate: "Criar mensagens",
sysQueuedMessageUpdate: "Atualizar mensagens",
sysQueuedMessageDestroy: "Excluir mensagens",
sysQueuedMessageQuery: "Consultar mensagens",
sysReportSettingsGet: "Obter configurações de relatórios",
sysReportSettingsUpdate: "Atualizar configurações de relatórios",
sysRoleGet: "Obter funções",
sysRoleCreate: "Criar funções",
sysRoleUpdate: "Atualizar funções",
sysRoleDestroy: "Excluir funções",
sysRoleQuery: "Consultar funções",
sysSearchGet: "Obter configurações de pesquisa",
sysSearchUpdate: "Atualizar configurações de pesquisa",
sysSearchStoreGet: "Obter configurações do armazenamento de pesquisa",
sysSearchStoreUpdate: "Atualizar configurações do armazenamento de pesquisa",
sysSecurityGet: "Obter configurações de segurança",
sysSecurityUpdate: "Atualizar configurações de segurança",
sysSenderAuthGet: "Obter configurações de autenticação de remetentes",
sysSenderAuthUpdate: "Atualizar configurações de autenticação de remetentes",
sysSharingGet: "Obter configurações de compartilhamento",
sysSharingUpdate: "Atualizar configurações de compartilhamento",
sysSieveSystemInterpreterGet: "Obter configurações do interpretador Sieve do sistema",
sysSieveSystemInterpreterUpdate: "Atualizar configurações do interpretador Sieve do sistema",
sysSieveSystemScriptGet: "Obter scripts",
sysSieveSystemScriptCreate: "Criar scripts",
sysSieveSystemScriptUpdate: "Atualizar scripts",
sysSieveSystemScriptDestroy: "Excluir scripts",
sysSieveSystemScriptQuery: "Consultar scripts",
sysSieveUserInterpreterGet: "Obter configurações do interpretador Sieve de usuários",
sysSieveUserInterpreterUpdate: "Atualizar configurações do interpretador Sieve de usuários",
sysSieveUserScriptGet: "Obter scripts",
sysSieveUserScriptCreate: "Criar scripts",
sysSieveUserScriptUpdate: "Atualizar scripts",
sysSieveUserScriptDestroy: "Excluir scripts",
sysSieveUserScriptQuery: "Consultar scripts",
sysSpamClassifierGet: "Obter configurações do classificador de spam",
sysSpamClassifierUpdate: "Atualizar configurações do classificador de spam",
sysSpamDnsblServerGet: "Obter servidores",
sysSpamDnsblServerCreate: "Criar servidores",
sysSpamDnsblServerUpdate: "Atualizar servidores",
sysSpamDnsblServerDestroy: "Excluir servidores",
sysSpamDnsblServerQuery: "Consultar servidores",
sysSpamDnsblSettingsGet: "Obter configurações de DNSBL do filtro de spam",
sysSpamDnsblSettingsUpdate: "Atualizar configurações de DNSBL do filtro de spam",
sysSpamFileExtensionGet: "Obter extensões",
sysSpamFileExtensionCreate: "Criar extensões",
sysSpamFileExtensionUpdate: "Atualizar extensões",
sysSpamFileExtensionDestroy: "Excluir extensões",
sysSpamFileExtensionQuery: "Consultar extensões",
sysSpamLlmGet: "Obter configurações do LLM do filtro de spam",
sysSpamLlmUpdate: "Atualizar configurações do LLM do filtro de spam",
sysSpamPyzorGet: "Obter configurações do Pyzor do filtro de spam",
sysSpamPyzorUpdate: "Atualizar configurações do Pyzor do filtro de spam",
sysSpamRuleGet: "Obter regras",
sysSpamRuleCreate: "Criar regras",
sysSpamRuleUpdate: "Atualizar regras",
sysSpamRuleDestroy: "Excluir regras",
sysSpamRuleQuery: "Consultar regras",
sysSpamSettingsGet: "Obter configurações do filtro de spam",
sysSpamSettingsUpdate: "Atualizar configurações do filtro de spam",
sysSpamTagGet: "Obter tags",
sysSpamTagCreate: "Criar tags",
sysSpamTagUpdate: "Atualizar tags",
sysSpamTagDestroy: "Excluir tags",
sysSpamTagQuery: "Consultar tags",
sysSpamTrainingSampleGet: "Obter amostras",
sysSpamTrainingSampleCreate: "Criar amostras",
sysSpamTrainingSampleUpdate: "Atualizar amostras",
sysSpamTrainingSampleDestroy: "Excluir amostras",
sysSpamTrainingSampleQuery: "Consultar amostras",
sysSpfReportSettingsGet: "Obter configurações de relatórios SPF",
sysSpfReportSettingsUpdate: "Atualizar configurações de relatórios SPF",
sysStoreLookupGet: "Obter armazenamentos de consulta",
sysStoreLookupCreate: "Criar armazenamentos de consulta",
sysStoreLookupUpdate: "Atualizar armazenamentos de consulta",
sysStoreLookupDestroy: "Excluir armazenamentos de consulta",
sysStoreLookupQuery: "Consultar armazenamentos de consulta",
sysSystemSettingsGet: "Obter configurações do sistema",
sysSystemSettingsUpdate: "Atualizar configurações do sistema",
taskIndexDocument: "Indexar documento",
taskUnindexDocument: "Desindexar documento",
taskIndexTrace: "Indexar rastreamento de telemetria",
taskCalendarAlarmEmail: "E-mail de alarme da agenda",
taskCalendarAlarmNotification: "Notificação de alarme da agenda",
taskCalendarItipMessage: "Mensagem iTIP da agenda",
taskMergeThreads: "Mesclar conversas de e-mail",
taskDmarcReport: "Enviar relatório DMARC ao servidor remoto",
taskTlsReport: "Enviar relatório TLS ao servidor remoto",
taskRestoreArchivedItem: "Restaurar item arquivado",
taskDestroyAccount: "Excluir a conta e todos os dados associados",
taskAccountMaintenance: "Executar operações de manutenção de contas",
taskTenantMaintenance: "Executar operações de manutenção de locatários",
taskStoreMaintenance: "Executar operações de manutenção do armazenamento",
taskSpamFilterMaintenance: "Executar operações de manutenção do filtro de spam",
taskAcmeRenewal: "Executar a renovação de certificados ACME de um domínio",
taskDkimManagement: "Executar a rotação de chaves DKIM de um domínio",
taskDnsManagement: "Executar o gerenciamento de DNS de um domínio",
sysTaskGet: "Obter tarefas",
sysTaskCreate: "Criar tarefas",
sysTaskUpdate: "Atualizar tarefas",
sysTaskDestroy: "Excluir tarefas",
sysTaskQuery: "Consultar tarefas",
sysTaskManagerGet: "Obter configurações do gerenciador de tarefas",
sysTaskManagerUpdate: "Atualizar configurações do gerenciador de tarefas",
sysTenantGet: "Obter locatários",
sysTenantCreate: "Criar locatários",
sysTenantUpdate: "Atualizar locatários",
sysTenantDestroy: "Excluir locatários",
sysTenantQuery: "Consultar locatários",
sysTlsExternalReportGet: "Obter relatórios",
sysTlsExternalReportCreate: "Criar relatórios",
sysTlsExternalReportUpdate: "Atualizar relatórios",
sysTlsExternalReportDestroy: "Excluir relatórios",
sysTlsExternalReportQuery: "Consultar relatórios",
sysTlsInternalReportGet: "Obter relatórios",
sysTlsInternalReportCreate: "Criar relatórios",
sysTlsInternalReportUpdate: "Atualizar relatórios",
sysTlsInternalReportDestroy: "Excluir relatórios",
sysTlsInternalReportQuery: "Consultar relatórios",
sysTlsReportSettingsGet: "Obter configurações de relatórios TLS",
sysTlsReportSettingsUpdate: "Atualizar configurações de relatórios TLS",
sysTraceGet: "Obter rastreamentos",
sysTraceCreate: "Criar rastreamentos",
sysTraceUpdate: "Atualizar rastreamentos",
sysTraceDestroy: "Excluir rastreamentos",
sysTraceQuery: "Consultar rastreamentos",
sysTracerGet: "Obter rastreadores",
sysTracerCreate: "Criar rastreadores",
sysTracerUpdate: "Atualizar rastreadores",
sysTracerDestroy: "Excluir rastreadores",
sysTracerQuery: "Consultar rastreadores",
sysTracingStoreGet: "Obter configurações do armazenamento de rastreamento",
sysTracingStoreUpdate: "Atualizar configurações do armazenamento de rastreamento",
sysWebDavGet: "Obter configurações de WebDAV",
sysWebDavUpdate: "Atualizar configurações de WebDAV",
sysWebHookGet: "Obter webhooks",
sysWebHookCreate: "Criar webhooks",
sysWebHookUpdate: "Atualizar webhooks",
sysWebHookDestroy: "Excluir webhooks",
sysWebHookQuery: "Consultar webhooks",
},
};
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in Russian, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "Управление моделями ИИ",
"API keys Management": "Управление ключами API",
"Accounts Management": "Управление учётными записями",
"Action": "Действие",
"Actions Management": "Управление действиями",
"Addresses Management": "Управление адресами",
"Alerts Management": "Управление оповещениями",
"App passwords Management": "Управление паролями приложений",
"Applications Management": "Управление приложениями",
"Archived items Management": "Управление архивными объектами",
"Calendar": "Календарь",
"Certificates Management": "Управление сертификатами",
"Cluster nodes Management": "Управление узлами кластера",
"DNS servers Management": "Управление DNS-серверами",
"Directories Management": "Управление каталогами",
"Domains Management": "Управление доменами",
"Email": "Почта",
"Events Management": "Управление событиями",
"Extensions Management": "Управление расширениями",
"Hooks Management": "Управление хуками",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "Управление ключами",
"Listeners Management": "Управление прослушивателями",
"Lists Management": "Управление списками",
"Log entries Management": "Управление записями журнала",
"Lookups Management": "Управление справочниками",
"Mailing lists Management": "Управление списками рассылки",
"ManageSieve": "ManageSieve",
"Masked emails Management": "Управление маскированными адресами",
"Messages Management": "Управление письмами",
"Metrics Management": "Управление метриками",
"Milters Management": "Управление milter-фильтрами",
"OAuth clients Management": "Управление клиентами OAuth",
"POP3": "POP3",
"Providers Management": "Управление поставщиками",
"Public keys Management": "Управление открытыми ключами",
"Queues Management": "Управление очередями",
"Quotas Management": "Управление квотами",
"Reports Management": "Управление отчётами",
"Roles Management": "Управление ролями",
"Routes Management": "Управление маршрутами",
"Rules Management": "Управление правилами",
"Samples Management": "Управление образцами",
"Schedules Management": "Управление расписаниями",
"Scripts Management": "Управление скриптами",
"Servers Management": "Управление серверами",
"Settings": "Настройки",
"Signatures Management": "Управление подписями",
"Strategies Management": "Управление стратегиями",
"Tags Management": "Управление тегами",
"Task": "Задача",
"Tasks Management": "Управление задачами",
"Tenants Management": "Управление арендаторами",
"Throttles Management": "Управление ограничениями скорости",
"Tracers Management": "Управление трассировщиками",
"Traces Management": "Управление трассировками",
"WebDAV": "WebDAV",
"Webhooks Management": "Управление вебхуками",
},
labels: {
authenticate: "Входить на сервер",
authenticateWithAlias: "Входить с адресами-псевдонимами",
interactAi: "Взаимодействовать с моделями ИИ",
impersonate: "Действовать от имени другого пользователя",
unlimitedRequests: "Обходить ограничения частоты запросов",
unlimitedUploads: "Обходить ограничения размера и частоты загрузок",
fetchAnyBlob: "Получать любые BLOB-объекты, в том числе не принадлежащие учётной записи",
emailSend: "Отправлять письма",
emailReceive: "Принимать письма",
calendarAlarmsSend: "Отправлять уведомления о напоминаниях календаря по электронной почте",
calendarSchedulingSend: "Отправлять приглашения и обновления календаря по электронной почте",
calendarSchedulingReceive: "Обрабатывать входящие приглашения календаря и ответы на них",
jmapPushSubscriptionGet: "Получать сведения о push-подписках",
jmapPushSubscriptionCreate: "Создавать push-подписки",
jmapPushSubscriptionUpdate: "Изменять push-подписки",
jmapPushSubscriptionDestroy: "Удалять push-подписки",
jmapMailboxGet: "Получать сведения о почтовых ящиках и их свойства",
jmapMailboxChanges: "Отслеживать изменения почтовых ящиков с заданного состояния",
jmapMailboxQuery: "Искать почтовые ящики по критериям",
jmapMailboxQueryChanges: "Отслеживать изменения результатов запросов по почтовым ящикам",
jmapMailboxCreate: "Создавать почтовые ящики",
jmapMailboxUpdate: "Изменять почтовые ящики",
jmapMailboxDestroy: "Удалять почтовые ящики",
jmapThreadGet: "Получать сведения о цепочках писем",
jmapThreadChanges: "Отслеживать изменения цепочек с заданного состояния",
jmapEmailGet: "Получать сведения о письмах и их свойства",
jmapEmailChanges: "Отслеживать изменения писем с заданного состояния",
jmapEmailQuery: "Искать письма по критериям",
jmapEmailQueryChanges: "Отслеживать изменения результатов запросов по письмам",
jmapEmailCreate: "Создавать письма",
jmapEmailUpdate: "Изменять письма",
jmapEmailDestroy: "Удалять письма",
jmapEmailCopy: "Копировать письма в другую учётную запись",
jmapEmailImport: "Импортировать письма из данных BLOB-объектов",
jmapEmailParse: "Разбирать необработанные данные писем без сохранения",
jmapSearchSnippetGet: "Получать фрагменты результатов поиска писем",
jmapIdentityGet: "Получать сведения о профилях отправителя",
jmapIdentityChanges: "Отслеживать изменения профилей отправителя с заданного состояния",
jmapIdentityCreate: "Создавать профили отправителя",
jmapIdentityUpdate: "Изменять профили отправителя",
jmapIdentityDestroy: "Удалять профили отправителя",
jmapEmailSubmissionGet: "Получать сведения о заданиях на отправку писем",
jmapEmailSubmissionChanges: "Отслеживать изменения заданий на отправку писем с заданного состояния",
jmapEmailSubmissionQuery: "Искать задания на отправку писем по критериям",
jmapEmailSubmissionQueryChanges: "Отслеживать изменения результатов запросов по заданиям на отправку писем",
jmapEmailSubmissionCreate: "Создавать задания на отправку писем",
jmapEmailSubmissionUpdate: "Изменять задания на отправку писем",
jmapEmailSubmissionDestroy: "Удалять задания на отправку писем",
jmapVacationResponseGet: "Получать настройки автоответа об отсутствии",
jmapVacationResponseCreate: "Создавать настройки автоответа об отсутствии",
jmapVacationResponseUpdate: "Изменять настройки автоответа об отсутствии",
jmapVacationResponseDestroy: "Удалять настройки автоответа об отсутствии",
jmapSieveScriptGet: "Получать сведения о скриптах фильтров Sieve",
jmapSieveScriptQuery: "Искать скрипты Sieve по критериям",
jmapSieveScriptValidate: "Проверять скрипт Sieve без сохранения",
jmapSieveScriptCreate: "Создавать скрипты фильтров Sieve",
jmapSieveScriptUpdate: "Изменять скрипты фильтров Sieve",
jmapSieveScriptDestroy: "Удалять скрипты фильтров Sieve",
jmapPrincipalGet: "Получать сведения о субъектах и их свойства",
jmapPrincipalQuery: "Искать субъекты по критериям",
jmapPrincipalChanges: "Отслеживать изменения субъектов с заданного состояния",
jmapPrincipalQueryChanges: "Отслеживать изменения результатов запросов по субъектам",
jmapPrincipalGetAvailability: "Запрашивать сведения о доступности субъектов",
jmapPrincipalCreate: "Создавать субъекты",
jmapPrincipalUpdate: "Изменять субъекты",
jmapPrincipalDestroy: "Удалять субъекты",
jmapQuotaGet: "Получать сведения об использовании и ограничениях квот",
jmapQuotaChanges: "Отслеживать изменения квот с заданного состояния",
jmapQuotaQuery: "Искать квоты по критериям",
jmapQuotaQueryChanges: "Отслеживать изменения результатов запросов по квотам",
jmapBlobGet: "Скачивать данные BLOB-объектов",
jmapBlobCopy: "Копировать BLOB-объекты в другую учётную запись",
jmapBlobLookup: "Находить использование BLOB-объектов в разных типах данных",
jmapBlobUpload: "Загружать данные BLOB-объектов",
jmapAddressBookGet: "Получать сведения об адресных книгах и их свойства",
jmapAddressBookChanges: "Отслеживать изменения адресных книг с заданного состояния",
jmapAddressBookCreate: "Создавать адресные книги",
jmapAddressBookUpdate: "Изменять адресные книги",
jmapAddressBookDestroy: "Удалять адресные книги",
jmapContactCardGet: "Получать сведения о карточках контактов",
jmapContactCardChanges: "Отслеживать изменения карточек контактов с заданного состояния",
jmapContactCardQuery: "Искать карточки контактов по критериям",
jmapContactCardQueryChanges: "Отслеживать изменения результатов запросов по карточкам контактов",
jmapContactCardCreate: "Создавать карточки контактов",
jmapContactCardUpdate: "Изменять карточки контактов",
jmapContactCardDestroy: "Удалять карточки контактов",
jmapContactCardCopy: "Копировать карточки контактов в другую учётную запись",
jmapContactCardParse: "Разбирать необработанные данные карточек контактов без сохранения",
jmapFileNodeGet: "Получать сведения о файловых узлах и их свойства",
jmapFileNodeChanges: "Отслеживать изменения файловых узлов с заданного состояния",
jmapFileNodeQuery: "Искать файловые узлы по критериям",
jmapFileNodeQueryChanges: "Отслеживать изменения результатов запросов по файловым узлам",
jmapFileNodeCreate: "Создавать файловые узлы",
jmapFileNodeUpdate: "Изменять файловые узлы",
jmapFileNodeDestroy: "Удалять файловые узлы",
jmapFileNodeCopy: "Копировать файловые узлы в другую учётную запись",
jmapShareNotificationGet: "Получать сведения об уведомлениях об открытии доступа",
jmapShareNotificationChanges: "Отслеживать изменения уведомлений об открытии доступа с заданного состояния",
jmapShareNotificationQuery: "Искать уведомления об открытии доступа по критериям",
jmapShareNotificationQueryChanges: "Отслеживать изменения результатов запросов по уведомлениям об открытии доступа",
jmapShareNotificationCreate: "Создавать уведомления об открытии доступа",
jmapShareNotificationUpdate: "Изменять уведомления об открытии доступа",
jmapShareNotificationDestroy: "Удалять уведомления об открытии доступа",
jmapCalendarGet: "Получать сведения о календарях и их свойства",
jmapCalendarChanges: "Отслеживать изменения календарей с заданного состояния",
jmapCalendarCreate: "Создавать календари",
jmapCalendarUpdate: "Изменять календари",
jmapCalendarDestroy: "Удалять календари",
jmapCalendarEventGet: "Получать сведения о событиях календаря",
jmapCalendarEventChanges: "Отслеживать изменения событий календаря с заданного состояния",
jmapCalendarEventQuery: "Искать события календаря по критериям",
jmapCalendarEventQueryChanges: "Отслеживать изменения результатов запросов по событиям календаря",
jmapCalendarEventCreate: "Создавать события календаря",
jmapCalendarEventUpdate: "Изменять события календаря",
jmapCalendarEventDestroy: "Удалять события календаря",
jmapCalendarEventCopy: "Копировать события календаря в другую учётную запись",
jmapCalendarEventParse: "Разбирать необработанные данные событий календаря без сохранения",
jmapCalendarEventNotificationGet: "Получать сведения об уведомлениях о событиях календаря",
jmapCalendarEventNotificationChanges: "Отслеживать изменения уведомлений о событиях календаря с заданного состояния",
jmapCalendarEventNotificationQuery: "Искать уведомления о событиях календаря по критериям",
jmapCalendarEventNotificationQueryChanges: "Отслеживать изменения результатов запросов по уведомлениям о событиях календаря",
jmapCalendarEventNotificationCreate: "Создавать уведомления о событиях календаря",
jmapCalendarEventNotificationUpdate: "Изменять уведомления о событиях календаря",
jmapCalendarEventNotificationDestroy: "Удалять уведомления о событиях календаря",
jmapParticipantIdentityGet: "Получать сведения о профилях участника",
jmapParticipantIdentityChanges: "Отслеживать изменения профилей участника с заданного состояния",
jmapParticipantIdentityCreate: "Создавать профили участника",
jmapParticipantIdentityUpdate: "Изменять профили участника",
jmapParticipantIdentityDestroy: "Удалять профили участника",
jmapCoreEcho: "Возвращать входные данные обратно для тестирования",
imapAuthenticate: "Входить на сервер IMAP",
imapAclGet: "Просматривать списки управления доступом почтовых ящиков",
imapAclSet: "Изменять списки управления доступом почтовых ящиков",
imapMyRights: "Просматривать собственные права на почтовый ящик",
imapListRights: "Выводить список доступных флагов прав для почтового ящика",
imapAppend: "Загружать письма в почтовый ящик",
imapCapability: "Запрашивать поддерживаемые расширения IMAP",
imapId: "Запрашивать идентификацию и версию сервера",
imapCopy: "Копировать письма между почтовыми ящиками",
imapMove: "Перемещать письма между почтовыми ящиками",
imapCreate: "Создавать почтовые ящики",
imapDelete: "Удалять почтовые ящики или помечать письма для удаления",
imapEnable: "Включать дополнительные расширения IMAP",
imapExpunge: "Окончательно удалять письма, помеченные для удаления",
imapFetch: "Скачивать содержимое и метаданные писем",
imapIdle: "Принимать уведомления об изменениях почтовых ящиков в реальном времени",
imapList: "Выводить список доступных почтовых ящиков и их атрибутов",
imapLsub: "Выводить список почтовых ящиков, на которые подписан пользователь",
imapNamespace: "Запрашивать доступные префиксы пространств имён почтовых ящиков",
imapRename: "Переименовывать или перемещать почтовые ящики",
imapSearch: "Искать письма по критериям",
imapSort: "Получать письма в заданном порядке сортировки",
imapSelect: "Открывать почтовый ящик для чтения и записи",
imapExamine: "Открывать почтовый ящик только для чтения",
imapStatus: "Запрашивать число писем и состояние почтового ящика",
imapStore: "Устанавливать или снимать флаги писем (прочитано, помечено, удалено и т. д.)",
imapSubscribe: "Подписываться на почтовые ящики или отписываться от них",
imapThread: "Группировать письма в цепочки",
pop3Authenticate: "Входить на сервер POP3",
pop3List: "Выводить список писем и их размеров",
pop3Uidl: "Получать уникальные идентификаторы писем",
pop3Stat: "Запрашивать число писем и общий размер почтового ящика",
pop3Retr: "Скачивать содержимое писем",
pop3Dele: "Помечать письма для удаления при отключении",
sieveAuthenticate: "Входить на сервер ManageSieve",
sieveListScripts: "Выводить список загруженных скриптов Sieve",
sieveSetActive: "Назначать активный скрипт Sieve",
sieveGetScript: "Скачивать содержимое скрипта Sieve",
sievePutScript: "Загружать или заменять скрипт Sieve",
sieveDeleteScript: "Удалять скрипт Sieve",
sieveRenameScript: "Переименовывать скрипт Sieve",
sieveCheckScript: "Проверять синтаксис скрипта Sieve без сохранения",
sieveHaveSpace: "Проверять, позволяет ли квота загрузить скрипт заданного размера",
davSyncCollection: "Синхронизировать изменения коллекций с клиентом",
davExpandProperty: "Раскрывать свойства, ссылающиеся на другие ресурсы",
davPrincipalAcl: "Управлять свойствами управления доступом субъектов",
davPrincipalList: "Выводить список доступных субъектов в системе",
davPrincipalMatch: "Сопоставлять субъекты по заданным критериям",
davPrincipalSearch: "Искать субъекты по значениям свойств",
davPrincipalSearchPropSet: "Запрашивать, по каким свойствам можно искать субъекты",
davFilePropFind: "Получать свойства файловых ресурсов",
davFilePropPatch: "Изменять свойства файловых ресурсов",
davFileGet: "Скачивать файловые ресурсы",
davFileMkCol: "Создавать файловые коллекции или папки",
davFileDelete: "Удалять файловые ресурсы",
davFilePut: "Загружать или изменять файловые ресурсы",
davFileCopy: "Копировать файловые ресурсы в новые расположения",
davFileMove: "Перемещать файловые ресурсы в новые расположения",
davFileLock: "Блокировать файловые ресурсы от одновременного изменения",
davFileAcl: "Управлять списками управления доступом файловых ресурсов",
davCardPropFind: "Получать свойства записей адресных книг",
davCardPropPatch: "Изменять свойства записей адресных книг",
davCardGet: "Скачивать записи адресных книг",
davCardMkCol: "Создавать коллекции адресных книг",
davCardDelete: "Удалять записи или коллекции адресных книг",
davCardPut: "Загружать или изменять записи адресных книг",
davCardCopy: "Копировать записи адресных книг в новые расположения",
davCardMove: "Перемещать записи адресных книг в новые расположения",
davCardLock: "Блокировать записи адресных книг от одновременного изменения",
davCardAcl: "Управлять списками управления доступом записей адресных книг",
davCardQuery: "Искать записи адресных книг по критериям",
davCardMultiGet: "Получать несколько записей адресных книг одним запросом",
davCalPropFind: "Получать свойства записей календарей",
davCalPropPatch: "Изменять свойства записей календарей",
davCalGet: "Скачивать записи календарей",
davCalMkCol: "Создавать коллекции календарей",
davCalDelete: "Удалять записи или коллекции календарей",
davCalPut: "Загружать или изменять записи календарей",
davCalCopy: "Копировать записи календарей в новые расположения",
davCalMove: "Перемещать записи календарей в новые расположения",
davCalLock: "Блокировать записи календарей от одновременного изменения",
davCalAcl: "Управлять списками управления доступом записей календарей",
davCalQuery: "Искать записи календарей по критериям",
davCalMultiGet: "Получать несколько записей календарей одним запросом",
davCalFreeBusyQuery: "Запрашивать сведения о занятости для планирования",
oAuthClientRegistration: "Регистрировать клиентские приложения OAuth",
oAuthClientOverride: "Обходить требование регистрации клиентов OAuth",
liveTracing: "Просматривать трассировки событий сервера в реальном времени",
liveMetrics: "Просматривать метрики производительности сервера в реальном времени",
liveDeliveryTest: "Отправлять тестовые письма для проверки настройки доставки",
scimAccess: "Подготавливать пользователей и группы через конечную точку SCIM",
sysAccountGet: "Получать учётные записи",
sysAccountCreate: "Создавать учётные записи",
sysAccountUpdate: "Обновлять учётные записи",
sysAccountDestroy: "Удалять учётные записи",
sysAccountQuery: "Запрашивать учётные записи",
sysAccountPasswordGet: "Получать настройки пароля учётной записи",
sysAccountPasswordUpdate: "Обновлять настройки пароля учётной записи",
sysAccountSettingsGet: "Получать настройки учётной записи",
sysAccountSettingsUpdate: "Обновлять настройки учётной записи",
sysAcmeProviderGet: "Получать поставщиков",
sysAcmeProviderCreate: "Создавать поставщиков",
sysAcmeProviderUpdate: "Обновлять поставщиков",
sysAcmeProviderDestroy: "Удалять поставщиков",
sysAcmeProviderQuery: "Запрашивать поставщиков",
actionReloadSettings: "Перезагрузка: настройки сервера",
actionReloadTlsCertificates: "Перезагрузка: сертификаты TLS",
actionReloadLookupStores: "Перезагрузка: хранилища справочников",
actionReloadBlockedIps: "Перезагрузка: список заблокированных IP-адресов",
actionUpdateApps: "Управление приложениями: обновлять приложения",
actionTroubleshootDmarc: "DMARC: диагностика неполадок",
actionClassifySpam: "Спам-фильтр: классифицировать письмо",
actionInvalidateCaches: "Кэш: сбрасывать все кэши",
actionInvalidateNegativeCaches: "Кэш: сбрасывать кэши отрицательных результатов",
actionPauseMtaQueue: "MTA: приостанавливать обработку очереди",
actionResumeMtaQueue: "MTA: возобновлять обработку очереди",
sysActionGet: "Получать действия",
sysActionCreate: "Создавать действия",
sysActionUpdate: "Обновлять действия",
sysActionDestroy: "Удалять действия",
sysActionQuery: "Запрашивать действия",
sysAddressBookGet: "Получать настройки адресных книг",
sysAddressBookUpdate: "Обновлять настройки адресных книг",
sysAiModelGet: "Получать модели ИИ",
sysAiModelCreate: "Создавать модели ИИ",
sysAiModelUpdate: "Обновлять модели ИИ",
sysAiModelDestroy: "Удалять модели ИИ",
sysAiModelQuery: "Запрашивать модели ИИ",
sysAlertGet: "Получать оповещения",
sysAlertCreate: "Создавать оповещения",
sysAlertUpdate: "Обновлять оповещения",
sysAlertDestroy: "Удалять оповещения",
sysAlertQuery: "Запрашивать оповещения",
sysAllowedIpGet: "Получать адреса",
sysAllowedIpCreate: "Создавать адреса",
sysAllowedIpUpdate: "Обновлять адреса",
sysAllowedIpDestroy: "Удалять адреса",
sysAllowedIpQuery: "Запрашивать адреса",
sysApiKeyGet: "Получать ключи API",
sysApiKeyCreate: "Создавать ключи API",
sysApiKeyUpdate: "Обновлять ключи API",
sysApiKeyDestroy: "Удалять ключи API",
sysApiKeyQuery: "Запрашивать ключи API",
sysAppPasswordGet: "Получать пароли приложений",
sysAppPasswordCreate: "Создавать пароли приложений",
sysAppPasswordUpdate: "Обновлять пароли приложений",
sysAppPasswordDestroy: "Удалять пароли приложений",
sysAppPasswordQuery: "Запрашивать пароли приложений",
sysApplicationGet: "Получать приложения",
sysApplicationCreate: "Создавать приложения",
sysApplicationUpdate: "Обновлять приложения",
sysApplicationDestroy: "Удалять приложения",
sysApplicationQuery: "Запрашивать приложения",
sysArchivedItemGet: "Получать архивные объекты",
sysArchivedItemCreate: "Создавать архивные объекты",
sysArchivedItemUpdate: "Обновлять архивные объекты",
sysArchivedItemDestroy: "Удалять архивные объекты",
sysArchivedItemQuery: "Запрашивать архивные объекты",
sysArfExternalReportGet: "Получать отчёты",
sysArfExternalReportCreate: "Создавать отчёты",
sysArfExternalReportUpdate: "Обновлять отчёты",
sysArfExternalReportDestroy: "Удалять отчёты",
sysArfExternalReportQuery: "Запрашивать отчёты",
sysAsnGet: "Получать настройки ASN",
sysAsnUpdate: "Обновлять настройки ASN",
sysAuthenticationGet: "Получать настройки аутентификации",
sysAuthenticationUpdate: "Обновлять настройки аутентификации",
sysBlobStoreGet: "Получать настройки хранилища BLOB-объектов",
sysBlobStoreUpdate: "Обновлять настройки хранилища BLOB-объектов",
sysBlockedIpGet: "Получать адреса",
sysBlockedIpCreate: "Создавать адреса",
sysBlockedIpUpdate: "Обновлять адреса",
sysBlockedIpDestroy: "Удалять адреса",
sysBlockedIpQuery: "Запрашивать адреса",
sysBootstrapGet: "Получать настройки начальной загрузки",
sysBootstrapUpdate: "Обновлять настройки начальной загрузки",
sysCacheGet: "Получать настройки кэша",
sysCacheUpdate: "Обновлять настройки кэша",
sysCalendarGet: "Получать настройки календаря",
sysCalendarUpdate: "Обновлять настройки календаря",
sysCalendarAlarmGet: "Получать настройки напоминаний календаря",
sysCalendarAlarmUpdate: "Обновлять настройки напоминаний календаря",
sysCalendarSchedulingGet: "Получать настройки планирования в календаре",
sysCalendarSchedulingUpdate: "Обновлять настройки планирования в календаре",
sysCertificateGet: "Получать сертификаты",
sysCertificateCreate: "Создавать сертификаты",
sysCertificateUpdate: "Обновлять сертификаты",
sysCertificateDestroy: "Удалять сертификаты",
sysCertificateQuery: "Запрашивать сертификаты",
sysClusterNodeGet: "Получать узлы кластера",
sysClusterNodeCreate: "Создавать узлы кластера",
sysClusterNodeUpdate: "Обновлять узлы кластера",
sysClusterNodeDestroy: "Удалять узлы кластера",
sysClusterNodeQuery: "Запрашивать узлы кластера",
sysClusterRoleGet: "Получать роли",
sysClusterRoleCreate: "Создавать роли",
sysClusterRoleUpdate: "Обновлять роли",
sysClusterRoleDestroy: "Удалять роли",
sysClusterRoleQuery: "Запрашивать роли",
sysCoordinatorGet: "Получать настройки координатора",
sysCoordinatorUpdate: "Обновлять настройки координатора",
sysDataRetentionGet: "Получать настройки хранения данных",
sysDataRetentionUpdate: "Обновлять настройки хранения данных",
sysDataStoreGet: "Получать настройки хранилища данных",
sysDataStoreUpdate: "Обновлять настройки хранилища данных",
sysDirectoryGet: "Получать каталоги",
sysDirectoryCreate: "Создавать каталоги",
sysDirectoryUpdate: "Обновлять каталоги",
sysDirectoryDestroy: "Удалять каталоги",
sysDirectoryQuery: "Запрашивать каталоги",
sysDkimReportSettingsGet: "Получать настройки отчётов DKIM",
sysDkimReportSettingsUpdate: "Обновлять настройки отчётов DKIM",
sysDkimSignatureGet: "Получать подписи",
sysDkimSignatureCreate: "Создавать подписи",
sysDkimSignatureUpdate: "Обновлять подписи",
sysDkimSignatureDestroy: "Удалять подписи",
sysDkimSignatureQuery: "Запрашивать подписи",
sysDmarcExternalReportGet: "Получать отчёты",
sysDmarcExternalReportCreate: "Создавать отчёты",
sysDmarcExternalReportUpdate: "Обновлять отчёты",
sysDmarcExternalReportDestroy: "Удалять отчёты",
sysDmarcExternalReportQuery: "Запрашивать отчёты",
sysDmarcInternalReportGet: "Получать отчёты",
sysDmarcInternalReportCreate: "Создавать отчёты",
sysDmarcInternalReportUpdate: "Обновлять отчёты",
sysDmarcInternalReportDestroy: "Удалять отчёты",
sysDmarcInternalReportQuery: "Запрашивать отчёты",
sysDmarcReportSettingsGet: "Получать настройки отчётов DMARC",
sysDmarcReportSettingsUpdate: "Обновлять настройки отчётов DMARC",
sysDnsResolverGet: "Получать настройки DNS-резолвера",
sysDnsResolverUpdate: "Обновлять настройки DNS-резолвера",
sysDnsServerGet: "Получать DNS-серверы",
sysDnsServerCreate: "Создавать DNS-серверы",
sysDnsServerUpdate: "Обновлять DNS-серверы",
sysDnsServerDestroy: "Удалять DNS-серверы",
sysDnsServerQuery: "Запрашивать DNS-серверы",
sysDomainGet: "Получать домены",
sysDomainCreate: "Создавать домены",
sysDomainUpdate: "Обновлять домены",
sysDomainDestroy: "Удалять домены",
sysDomainQuery: "Запрашивать домены",
sysDsnReportSettingsGet: "Получать настройки отчётов DSN",
sysDsnReportSettingsUpdate: "Обновлять настройки отчётов DSN",
sysEmailGet: "Получать настройки почты",
sysEmailUpdate: "Обновлять настройки почты",
sysEnterpriseGet: "Получать настройки Enterprise",
sysEnterpriseUpdate: "Обновлять настройки Enterprise",
sysEventTracingLevelGet: "Получать события",
sysEventTracingLevelCreate: "Создавать события",
sysEventTracingLevelUpdate: "Обновлять события",
sysEventTracingLevelDestroy: "Удалять события",
sysEventTracingLevelQuery: "Запрашивать события",
sysFileStorageGet: "Получать настройки хранилища файлов",
sysFileStorageUpdate: "Обновлять настройки хранилища файлов",
sysHttpGet: "Получать настройки HTTP",
sysHttpUpdate: "Обновлять настройки HTTP",
sysHttpFormGet: "Получать настройки HTTP-форм",
sysHttpFormUpdate: "Обновлять настройки HTTP-форм",
sysHttpLookupGet: "Получать списки",
sysHttpLookupCreate: "Создавать списки",
sysHttpLookupUpdate: "Обновлять списки",
sysHttpLookupDestroy: "Удалять списки",
sysHttpLookupQuery: "Запрашивать списки",
sysImapGet: "Получать настройки IMAP",
sysImapUpdate: "Обновлять настройки IMAP",
sysInMemoryStoreGet: "Получать настройки хранилища в памяти",
sysInMemoryStoreUpdate: "Обновлять настройки хранилища в памяти",
sysJmapGet: "Получать настройки JMAP",
sysJmapUpdate: "Обновлять настройки JMAP",
sysLogGet: "Получать записи журнала",
sysLogCreate: "Создавать записи журнала",
sysLogUpdate: "Обновлять записи журнала",
sysLogDestroy: "Удалять записи журнала",
sysLogQuery: "Запрашивать записи журнала",
sysMailingListGet: "Получать списки рассылки",
sysMailingListCreate: "Создавать списки рассылки",
sysMailingListUpdate: "Обновлять списки рассылки",
sysMailingListDestroy: "Удалять списки рассылки",
sysMailingListQuery: "Запрашивать списки рассылки",
sysMaskedEmailGet: "Получать маскированные адреса",
sysMaskedEmailCreate: "Создавать маскированные адреса",
sysMaskedEmailUpdate: "Обновлять маскированные адреса",
sysMaskedEmailDestroy: "Удалять маскированные адреса",
sysMaskedEmailQuery: "Запрашивать маскированные адреса",
sysMemoryLookupKeyGet: "Получать ключи",
sysMemoryLookupKeyCreate: "Создавать ключи",
sysMemoryLookupKeyUpdate: "Обновлять ключи",
sysMemoryLookupKeyDestroy: "Удалять ключи",
sysMemoryLookupKeyQuery: "Запрашивать ключи",
sysMemoryLookupKeyValueGet: "Получать ключи",
sysMemoryLookupKeyValueCreate: "Создавать ключи",
sysMemoryLookupKeyValueUpdate: "Обновлять ключи",
sysMemoryLookupKeyValueDestroy: "Удалять ключи",
sysMemoryLookupKeyValueQuery: "Запрашивать ключи",
sysMetricGet: "Получать метрики",
sysMetricCreate: "Создавать метрики",
sysMetricUpdate: "Обновлять метрики",
sysMetricDestroy: "Удалять метрики",
sysMetricQuery: "Запрашивать метрики",
sysMetricsGet: "Получать настройки метрик",
sysMetricsUpdate: "Обновлять настройки метрик",
sysMetricsStoreGet: "Получать настройки хранилища метрик",
sysMetricsStoreUpdate: "Обновлять настройки хранилища метрик",
sysMtaConnectionStrategyGet: "Получать стратегии",
sysMtaConnectionStrategyCreate: "Создавать стратегии",
sysMtaConnectionStrategyUpdate: "Обновлять стратегии",
sysMtaConnectionStrategyDestroy: "Удалять стратегии",
sysMtaConnectionStrategyQuery: "Запрашивать стратегии",
sysMtaDeliveryScheduleGet: "Получать расписания",
sysMtaDeliveryScheduleCreate: "Создавать расписания",
sysMtaDeliveryScheduleUpdate: "Обновлять расписания",
sysMtaDeliveryScheduleDestroy: "Удалять расписания",
sysMtaDeliveryScheduleQuery: "Запрашивать расписания",
sysMtaExtensionsGet: "Получать настройки расширений MTA",
sysMtaExtensionsUpdate: "Обновлять настройки расширений MTA",
sysMtaHookGet: "Получать хуки",
sysMtaHookCreate: "Создавать хуки",
sysMtaHookUpdate: "Обновлять хуки",
sysMtaHookDestroy: "Удалять хуки",
sysMtaHookQuery: "Запрашивать хуки",
sysMtaInboundSessionGet: "Получать настройки входящих сеансов MTA",
sysMtaInboundSessionUpdate: "Обновлять настройки входящих сеансов MTA",
sysMtaInboundThrottleGet: "Получать ограничения скорости",
sysMtaInboundThrottleCreate: "Создавать ограничения скорости",
sysMtaInboundThrottleUpdate: "Обновлять ограничения скорости",
sysMtaInboundThrottleDestroy: "Удалять ограничения скорости",
sysMtaInboundThrottleQuery: "Запрашивать ограничения скорости",
sysMtaMilterGet: "Получать milter-фильтры",
sysMtaMilterCreate: "Создавать milter-фильтры",
sysMtaMilterUpdate: "Обновлять milter-фильтры",
sysMtaMilterDestroy: "Удалять milter-фильтры",
sysMtaMilterQuery: "Запрашивать milter-фильтры",
sysMtaOutboundStrategyGet: "Получать настройки исходящей стратегии MTA",
sysMtaOutboundStrategyUpdate: "Обновлять настройки исходящей стратегии MTA",
sysMtaOutboundThrottleGet: "Получать ограничения скорости",
sysMtaOutboundThrottleCreate: "Создавать ограничения скорости",
sysMtaOutboundThrottleUpdate: "Обновлять ограничения скорости",
sysMtaOutboundThrottleDestroy: "Удалять ограничения скорости",
sysMtaOutboundThrottleQuery: "Запрашивать ограничения скорости",
sysMtaQueueQuotaGet: "Получать квоты",
sysMtaQueueQuotaCreate: "Создавать квоты",
sysMtaQueueQuotaUpdate: "Обновлять квоты",
sysMtaQueueQuotaDestroy: "Удалять квоты",
sysMtaQueueQuotaQuery: "Запрашивать квоты",
sysMtaRouteGet: "Получать маршруты",
sysMtaRouteCreate: "Создавать маршруты",
sysMtaRouteUpdate: "Обновлять маршруты",
sysMtaRouteDestroy: "Удалять маршруты",
sysMtaRouteQuery: "Запрашивать маршруты",
sysMtaStageAuthGet: "Получать настройки этапа AUTH в MTA",
sysMtaStageAuthUpdate: "Обновлять настройки этапа AUTH в MTA",
sysMtaStageConnectGet: "Получать настройки этапа CONNECT в MTA",
sysMtaStageConnectUpdate: "Обновлять настройки этапа CONNECT в MTA",
sysMtaStageDataGet: "Получать настройки этапа DATA в MTA",
sysMtaStageDataUpdate: "Обновлять настройки этапа DATA в MTA",
sysMtaStageEhloGet: "Получать настройки этапа EHLO в MTA",
sysMtaStageEhloUpdate: "Обновлять настройки этапа EHLO в MTA",
sysMtaStageMailGet: "Получать настройки этапа MAIL в MTA",
sysMtaStageMailUpdate: "Обновлять настройки этапа MAIL в MTA",
sysMtaStageRcptGet: "Получать настройки этапа RCPT в MTA",
sysMtaStageRcptUpdate: "Обновлять настройки этапа RCPT в MTA",
sysMtaStsGet: "Получать настройки MTA-STS",
sysMtaStsUpdate: "Обновлять настройки MTA-STS",
sysMtaTlsStrategyGet: "Получать стратегии",
sysMtaTlsStrategyCreate: "Создавать стратегии",
sysMtaTlsStrategyUpdate: "Обновлять стратегии",
sysMtaTlsStrategyDestroy: "Удалять стратегии",
sysMtaTlsStrategyQuery: "Запрашивать стратегии",
sysMtaVirtualQueueGet: "Получать очереди",
sysMtaVirtualQueueCreate: "Создавать очереди",
sysMtaVirtualQueueUpdate: "Обновлять очереди",
sysMtaVirtualQueueDestroy: "Удалять очереди",
sysMtaVirtualQueueQuery: "Запрашивать очереди",
sysNetworkListenerGet: "Получать прослушиватели",
sysNetworkListenerCreate: "Создавать прослушиватели",
sysNetworkListenerUpdate: "Обновлять прослушиватели",
sysNetworkListenerDestroy: "Удалять прослушиватели",
sysNetworkListenerQuery: "Запрашивать прослушиватели",
sysOAuthClientGet: "Получать клиентов OAuth",
sysOAuthClientCreate: "Создавать клиентов OAuth",
sysOAuthClientUpdate: "Обновлять клиентов OAuth",
sysOAuthClientDestroy: "Удалять клиентов OAuth",
sysOAuthClientQuery: "Запрашивать клиентов OAuth",
sysOidcProviderGet: "Получать настройки поставщика OIDC",
sysOidcProviderUpdate: "Обновлять настройки поставщика OIDC",
sysPublicKeyGet: "Получать открытые ключи",
sysPublicKeyCreate: "Создавать открытые ключи",
sysPublicKeyUpdate: "Обновлять открытые ключи",
sysPublicKeyDestroy: "Удалять открытые ключи",
sysPublicKeyQuery: "Запрашивать открытые ключи",
sysQueuedMessageGet: "Получать письма",
sysQueuedMessageCreate: "Создавать письма",
sysQueuedMessageUpdate: "Обновлять письма",
sysQueuedMessageDestroy: "Удалять письма",
sysQueuedMessageQuery: "Запрашивать письма",
sysReportSettingsGet: "Получать настройки отчётов",
sysReportSettingsUpdate: "Обновлять настройки отчётов",
sysRoleGet: "Получать роли",
sysRoleCreate: "Создавать роли",
sysRoleUpdate: "Обновлять роли",
sysRoleDestroy: "Удалять роли",
sysRoleQuery: "Запрашивать роли",
sysSearchGet: "Получать настройки поиска",
sysSearchUpdate: "Обновлять настройки поиска",
sysSearchStoreGet: "Получать настройки хранилища поиска",
sysSearchStoreUpdate: "Обновлять настройки хранилища поиска",
sysSecurityGet: "Получать настройки безопасности",
sysSecurityUpdate: "Обновлять настройки безопасности",
sysSenderAuthGet: "Получать настройки аутентификации отправителей",
sysSenderAuthUpdate: "Обновлять настройки аутентификации отправителей",
sysSharingGet: "Получать настройки общего доступа",
sysSharingUpdate: "Обновлять настройки общего доступа",
sysSieveSystemInterpreterGet: "Получать настройки системного интерпретатора Sieve",
sysSieveSystemInterpreterUpdate: "Обновлять настройки системного интерпретатора Sieve",
sysSieveSystemScriptGet: "Получать скрипты",
sysSieveSystemScriptCreate: "Создавать скрипты",
sysSieveSystemScriptUpdate: "Обновлять скрипты",
sysSieveSystemScriptDestroy: "Удалять скрипты",
sysSieveSystemScriptQuery: "Запрашивать скрипты",
sysSieveUserInterpreterGet: "Получать настройки пользовательского интерпретатора Sieve",
sysSieveUserInterpreterUpdate: "Обновлять настройки пользовательского интерпретатора Sieve",
sysSieveUserScriptGet: "Получать скрипты",
sysSieveUserScriptCreate: "Создавать скрипты",
sysSieveUserScriptUpdate: "Обновлять скрипты",
sysSieveUserScriptDestroy: "Удалять скрипты",
sysSieveUserScriptQuery: "Запрашивать скрипты",
sysSpamClassifierGet: "Получать настройки классификатора спама",
sysSpamClassifierUpdate: "Обновлять настройки классификатора спама",
sysSpamDnsblServerGet: "Получать серверы",
sysSpamDnsblServerCreate: "Создавать серверы",
sysSpamDnsblServerUpdate: "Обновлять серверы",
sysSpamDnsblServerDestroy: "Удалять серверы",
sysSpamDnsblServerQuery: "Запрашивать серверы",
sysSpamDnsblSettingsGet: "Получать настройки DNSBL спам-фильтра",
sysSpamDnsblSettingsUpdate: "Обновлять настройки DNSBL спам-фильтра",
sysSpamFileExtensionGet: "Получать расширения",
sysSpamFileExtensionCreate: "Создавать расширения",
sysSpamFileExtensionUpdate: "Обновлять расширения",
sysSpamFileExtensionDestroy: "Удалять расширения",
sysSpamFileExtensionQuery: "Запрашивать расширения",
sysSpamLlmGet: "Получать настройки LLM спам-фильтра",
sysSpamLlmUpdate: "Обновлять настройки LLM спам-фильтра",
sysSpamPyzorGet: "Получать настройки Pyzor спам-фильтра",
sysSpamPyzorUpdate: "Обновлять настройки Pyzor спам-фильтра",
sysSpamRuleGet: "Получать правила",
sysSpamRuleCreate: "Создавать правила",
sysSpamRuleUpdate: "Обновлять правила",
sysSpamRuleDestroy: "Удалять правила",
sysSpamRuleQuery: "Запрашивать правила",
sysSpamSettingsGet: "Получать настройки спам-фильтра",
sysSpamSettingsUpdate: "Обновлять настройки спам-фильтра",
sysSpamTagGet: "Получать теги",
sysSpamTagCreate: "Создавать теги",
sysSpamTagUpdate: "Обновлять теги",
sysSpamTagDestroy: "Удалять теги",
sysSpamTagQuery: "Запрашивать теги",
sysSpamTrainingSampleGet: "Получать образцы",
sysSpamTrainingSampleCreate: "Создавать образцы",
sysSpamTrainingSampleUpdate: "Обновлять образцы",
sysSpamTrainingSampleDestroy: "Удалять образцы",
sysSpamTrainingSampleQuery: "Запрашивать образцы",
sysSpfReportSettingsGet: "Получать настройки отчётов SPF",
sysSpfReportSettingsUpdate: "Обновлять настройки отчётов SPF",
sysStoreLookupGet: "Получать справочники",
sysStoreLookupCreate: "Создавать справочники",
sysStoreLookupUpdate: "Обновлять справочники",
sysStoreLookupDestroy: "Удалять справочники",
sysStoreLookupQuery: "Запрашивать справочники",
sysSystemSettingsGet: "Получать системные настройки",
sysSystemSettingsUpdate: "Обновлять системные настройки",
taskIndexDocument: "Индексировать документ",
taskUnindexDocument: "Исключать документ из индекса",
taskIndexTrace: "Индексировать трассировку телеметрии",
taskCalendarAlarmEmail: "Письмо с напоминанием календаря",
taskCalendarAlarmNotification: "Уведомление с напоминанием календаря",
taskCalendarItipMessage: "Сообщение iTIP календаря",
taskMergeThreads: "Объединять цепочки писем",
taskDmarcReport: "Отправлять отчёт DMARC на удалённый сервер",
taskTlsReport: "Отправлять отчёт TLS на удалённый сервер",
taskRestoreArchivedItem: "Восстанавливать архивный объект",
taskDestroyAccount: "Удалять учётную запись и все связанные данные",
taskAccountMaintenance: "Выполнять операции обслуживания учётных записей",
taskTenantMaintenance: "Выполнять операции обслуживания арендаторов",
taskStoreMaintenance: "Выполнять операции обслуживания хранилища",
taskSpamFilterMaintenance: "Выполнять операции обслуживания спам-фильтра",
taskAcmeRenewal: "Выполнять продление сертификата ACME для домена",
taskDkimManagement: "Выполнять ротацию ключей DKIM для домена",
taskDnsManagement: "Выполнять управление DNS для домена",
sysTaskGet: "Получать задачи",
sysTaskCreate: "Создавать задачи",
sysTaskUpdate: "Обновлять задачи",
sysTaskDestroy: "Удалять задачи",
sysTaskQuery: "Запрашивать задачи",
sysTaskManagerGet: "Получать настройки диспетчера задач",
sysTaskManagerUpdate: "Обновлять настройки диспетчера задач",
sysTenantGet: "Получать арендаторов",
sysTenantCreate: "Создавать арендаторов",
sysTenantUpdate: "Обновлять арендаторов",
sysTenantDestroy: "Удалять арендаторов",
sysTenantQuery: "Запрашивать арендаторов",
sysTlsExternalReportGet: "Получать отчёты",
sysTlsExternalReportCreate: "Создавать отчёты",
sysTlsExternalReportUpdate: "Обновлять отчёты",
sysTlsExternalReportDestroy: "Удалять отчёты",
sysTlsExternalReportQuery: "Запрашивать отчёты",
sysTlsInternalReportGet: "Получать отчёты",
sysTlsInternalReportCreate: "Создавать отчёты",
sysTlsInternalReportUpdate: "Обновлять отчёты",
sysTlsInternalReportDestroy: "Удалять отчёты",
sysTlsInternalReportQuery: "Запрашивать отчёты",
sysTlsReportSettingsGet: "Получать настройки отчётов TLS",
sysTlsReportSettingsUpdate: "Обновлять настройки отчётов TLS",
sysTraceGet: "Получать трассировки",
sysTraceCreate: "Создавать трассировки",
sysTraceUpdate: "Обновлять трассировки",
sysTraceDestroy: "Удалять трассировки",
sysTraceQuery: "Запрашивать трассировки",
sysTracerGet: "Получать трассировщики",
sysTracerCreate: "Создавать трассировщики",
sysTracerUpdate: "Обновлять трассировщики",
sysTracerDestroy: "Удалять трассировщики",
sysTracerQuery: "Запрашивать трассировщики",
sysTracingStoreGet: "Получать настройки хранилища трассировок",
sysTracingStoreUpdate: "Обновлять настройки хранилища трассировок",
sysWebDavGet: "Получать настройки WebDAV",
sysWebDavUpdate: "Обновлять настройки WebDAV",
sysWebHookGet: "Получать вебхуки",
sysWebHookCreate: "Создавать вебхуки",
sysWebHookUpdate: "Обновлять вебхуки",
sysWebHookDestroy: "Удалять вебхуки",
sysWebHookQuery: "Запрашивать вебхуки",
},
};
File diff suppressed because it is too large Load Diff
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in Ukrainian, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "Керування моделями ШІ",
"API keys Management": "Керування ключами API",
"Accounts Management": "Керування обліковими записами",
"Action": "Дія",
"Actions Management": "Керування діями",
"Addresses Management": "Керування адресами",
"Alerts Management": "Керування оповіщеннями",
"App passwords Management": "Керування паролями програм",
"Applications Management": "Керування застосунками",
"Archived items Management": "Керування архівованими елементами",
"Calendar": "Календар",
"Certificates Management": "Керування сертифікатами",
"Cluster nodes Management": "Керування вузлами кластера",
"DNS servers Management": "Керування DNS-серверами",
"Directories Management": "Керування каталогами",
"Domains Management": "Керування доменами",
"Email": "Пошта",
"Events Management": "Керування подіями",
"Extensions Management": "Керування розширеннями",
"Hooks Management": "Керування хуками",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "Керування ключами",
"Listeners Management": "Керування слухачами",
"Lists Management": "Керування списками",
"Log entries Management": "Керування записами журналу",
"Lookups Management": "Керування довідниками",
"Mailing lists Management": "Керування списками розсилки",
"ManageSieve": "ManageSieve",
"Masked emails Management": "Керування маскованими адресами",
"Messages Management": "Керування листами",
"Metrics Management": "Керування метриками",
"Milters Management": "Керування milter-фільтрами",
"OAuth clients Management": "Керування клієнтами OAuth",
"POP3": "POP3",
"Providers Management": "Керування постачальниками",
"Public keys Management": "Керування відкритими ключами",
"Queues Management": "Керування чергами",
"Quotas Management": "Керування квотами",
"Reports Management": "Керування звітами",
"Roles Management": "Керування ролями",
"Routes Management": "Керування маршрутами",
"Rules Management": "Керування правилами",
"Samples Management": "Керування зразками",
"Schedules Management": "Керування розкладами",
"Scripts Management": "Керування скриптами",
"Servers Management": "Керування серверами",
"Settings": "Налаштування",
"Signatures Management": "Керування підписами",
"Strategies Management": "Керування стратегіями",
"Tags Management": "Керування тегами",
"Task": "Завдання",
"Tasks Management": "Керування завданнями",
"Tenants Management": "Керування орендарями",
"Throttles Management": "Керування обмеженнями швидкості",
"Tracers Management": "Керування трасувальниками",
"Traces Management": "Керування трасуваннями",
"WebDAV": "WebDAV",
"Webhooks Management": "Керування вебхуками",
},
labels: {
authenticate: "Входити на сервер",
authenticateWithAlias: "Входити за адресами-псевдонімами",
interactAi: "Взаємодіяти з моделями ШІ",
impersonate: "Діяти від імені іншого користувача",
unlimitedRequests: "Обходити обмеження частоти запитів",
unlimitedUploads: "Обходити обмеження розміру й частоти вивантажень",
fetchAnyBlob: "Отримувати будь-які blob-об’єкти, навіть ті, що не належать обліковому запису",
emailSend: "Надсилати листи",
emailReceive: "Приймати листи",
calendarAlarmsSend: "Надсилати поштою нагадування календаря",
calendarSchedulingSend: "Надсилати поштою запрошення та оновлення календаря",
calendarSchedulingReceive: "Обробляти вхідні запрошення та відповіді календаря",
jmapPushSubscriptionGet: "Отримувати відомості про push-підписки",
jmapPushSubscriptionCreate: "Створювати нові push-підписки",
jmapPushSubscriptionUpdate: "Змінювати наявні push-підписки",
jmapPushSubscriptionDestroy: "Вилучати push-підписки",
jmapMailboxGet: "Отримувати відомості та властивості поштових скриньок",
jmapMailboxChanges: "Відстежувати зміни поштових скриньок з певного стану",
jmapMailboxQuery: "Шукати поштові скриньки за критеріями",
jmapMailboxQueryChanges: "Відстежувати зміни результатів запитів до поштових скриньок",
jmapMailboxCreate: "Створювати нові поштові скриньки",
jmapMailboxUpdate: "Змінювати наявні поштові скриньки",
jmapMailboxDestroy: "Вилучати поштові скриньки",
jmapThreadGet: "Отримувати відомості про листування",
jmapThreadChanges: "Відстежувати зміни листувань з певного стану",
jmapEmailGet: "Отримувати відомості та властивості листів",
jmapEmailChanges: "Відстежувати зміни листів з певного стану",
jmapEmailQuery: "Шукати листи за критеріями",
jmapEmailQueryChanges: "Відстежувати зміни результатів запитів до листів",
jmapEmailCreate: "Створювати нові листи",
jmapEmailUpdate: "Змінювати наявні листи",
jmapEmailDestroy: "Вилучати листи",
jmapEmailCopy: "Копіювати листи до іншого облікового запису",
jmapEmailImport: "Імпортувати листи з blob-даних",
jmapEmailParse: "Розбирати необроблені дані листів без збереження",
jmapSearchSnippetGet: "Отримувати фрагменти результатів пошуку для листів",
jmapIdentityGet: "Отримувати відомості про профілі відправника",
jmapIdentityChanges: "Відстежувати зміни профілів відправника з певного стану",
jmapIdentityCreate: "Створювати нові профілі відправника",
jmapIdentityUpdate: "Змінювати наявні профілі відправника",
jmapIdentityDestroy: "Вилучати профілі відправника",
jmapEmailSubmissionGet: "Отримувати відомості про відправлення листів",
jmapEmailSubmissionChanges: "Відстежувати зміни відправлень листів з певного стану",
jmapEmailSubmissionQuery: "Шукати відправлення листів за критеріями",
jmapEmailSubmissionQueryChanges: "Відстежувати зміни результатів запитів до відправлень листів",
jmapEmailSubmissionCreate: "Створювати нові відправлення листів для надсилання",
jmapEmailSubmissionUpdate: "Змінювати наявні відправлення листів",
jmapEmailSubmissionDestroy: "Вилучати відправлення листів",
jmapVacationResponseGet: "Отримувати конфігурацію автовідповіді про відсутність",
jmapVacationResponseCreate: "Створювати налаштування автовідповіді про відсутність",
jmapVacationResponseUpdate: "Змінювати налаштування автовідповіді про відсутність",
jmapVacationResponseDestroy: "Вилучати налаштування автовідповіді про відсутність",
jmapSieveScriptGet: "Отримувати відомості про скрипти фільтрів Sieve",
jmapSieveScriptQuery: "Шукати скрипти Sieve за критеріями",
jmapSieveScriptValidate: "Перевіряти скрипт Sieve без збереження",
jmapSieveScriptCreate: "Створювати нові скрипти фільтрів Sieve",
jmapSieveScriptUpdate: "Змінювати наявні скрипти фільтрів Sieve",
jmapSieveScriptDestroy: "Вилучати скрипти фільтрів Sieve",
jmapPrincipalGet: "Отримувати відомості та властивості суб’єктів",
jmapPrincipalQuery: "Шукати суб’єкти за критеріями",
jmapPrincipalChanges: "Відстежувати зміни суб’єктів з певного стану",
jmapPrincipalQueryChanges: "Відстежувати зміни результатів запитів до суб’єктів",
jmapPrincipalGetAvailability: "Запитувати відомості про доступність суб’єктів",
jmapPrincipalCreate: "Створювати нові суб’єкти",
jmapPrincipalUpdate: "Змінювати наявні суб’єкти",
jmapPrincipalDestroy: "Вилучати суб’єкти",
jmapQuotaGet: "Отримувати використання та ліміти квот",
jmapQuotaChanges: "Відстежувати зміни квот з певного стану",
jmapQuotaQuery: "Шукати квоти за критеріями",
jmapQuotaQueryChanges: "Відстежувати зміни результатів запитів до квот",
jmapBlobGet: "Завантажувати blob-дані",
jmapBlobCopy: "Копіювати blob-об’єкти до іншого облікового запису",
jmapBlobLookup: "З’ясовувати використання blob-об’єктів у різних типах даних",
jmapBlobUpload: "Вивантажувати нові blob-дані",
jmapAddressBookGet: "Отримувати відомості та властивості адресних книг",
jmapAddressBookChanges: "Відстежувати зміни адресних книг з певного стану",
jmapAddressBookCreate: "Створювати нові адресні книги",
jmapAddressBookUpdate: "Змінювати наявні адресні книги",
jmapAddressBookDestroy: "Вилучати адресні книги",
jmapContactCardGet: "Отримувати відомості про картки контактів",
jmapContactCardChanges: "Відстежувати зміни карток контактів з певного стану",
jmapContactCardQuery: "Шукати картки контактів за критеріями",
jmapContactCardQueryChanges: "Відстежувати зміни результатів запитів до карток контактів",
jmapContactCardCreate: "Створювати нові картки контактів",
jmapContactCardUpdate: "Змінювати наявні картки контактів",
jmapContactCardDestroy: "Вилучати картки контактів",
jmapContactCardCopy: "Копіювати картки контактів до іншого облікового запису",
jmapContactCardParse: "Розбирати необроблені дані карток контактів без збереження",
jmapFileNodeGet: "Отримувати відомості та властивості файлових вузлів",
jmapFileNodeChanges: "Відстежувати зміни файлових вузлів з певного стану",
jmapFileNodeQuery: "Шукати файлові вузли за критеріями",
jmapFileNodeQueryChanges: "Відстежувати зміни результатів запитів до файлових вузлів",
jmapFileNodeCreate: "Створювати нові файлові вузли",
jmapFileNodeUpdate: "Змінювати наявні файлові вузли",
jmapFileNodeDestroy: "Вилучати файлові вузли",
jmapFileNodeCopy: "Копіювати файлові вузли до іншого облікового запису",
jmapShareNotificationGet: "Отримувати відомості про сповіщення щодо спільного доступу",
jmapShareNotificationChanges: "Відстежувати зміни сповіщень щодо спільного доступу з певного стану",
jmapShareNotificationQuery: "Шукати сповіщення щодо спільного доступу за критеріями",
jmapShareNotificationQueryChanges: "Відстежувати зміни результатів запитів до сповіщень щодо спільного доступу",
jmapShareNotificationCreate: "Створювати нові сповіщення щодо спільного доступу",
jmapShareNotificationUpdate: "Змінювати наявні сповіщення щодо спільного доступу",
jmapShareNotificationDestroy: "Вилучати сповіщення щодо спільного доступу",
jmapCalendarGet: "Отримувати відомості та властивості календарів",
jmapCalendarChanges: "Відстежувати зміни календарів з певного стану",
jmapCalendarCreate: "Створювати нові календарі",
jmapCalendarUpdate: "Змінювати наявні календарі",
jmapCalendarDestroy: "Вилучати календарі",
jmapCalendarEventGet: "Отримувати відомості про події календаря",
jmapCalendarEventChanges: "Відстежувати зміни подій календаря з певного стану",
jmapCalendarEventQuery: "Шукати події календаря за критеріями",
jmapCalendarEventQueryChanges: "Відстежувати зміни результатів запитів до подій календаря",
jmapCalendarEventCreate: "Створювати нові події календаря",
jmapCalendarEventUpdate: "Змінювати наявні події календаря",
jmapCalendarEventDestroy: "Вилучати події календаря",
jmapCalendarEventCopy: "Копіювати події календаря до іншого облікового запису",
jmapCalendarEventParse: "Розбирати необроблені дані подій календаря без збереження",
jmapCalendarEventNotificationGet: "Отримувати відомості про сповіщення щодо подій календаря",
jmapCalendarEventNotificationChanges: "Відстежувати зміни сповіщень щодо подій календаря з певного стану",
jmapCalendarEventNotificationQuery: "Шукати сповіщення щодо подій календаря за критеріями",
jmapCalendarEventNotificationQueryChanges: "Відстежувати зміни результатів запитів до сповіщень щодо подій календаря",
jmapCalendarEventNotificationCreate: "Створювати нові сповіщення щодо подій календаря",
jmapCalendarEventNotificationUpdate: "Змінювати наявні сповіщення щодо подій календаря",
jmapCalendarEventNotificationDestroy: "Вилучати сповіщення щодо подій календаря",
jmapParticipantIdentityGet: "Отримувати відомості про профілі учасника",
jmapParticipantIdentityChanges: "Відстежувати зміни профілів учасника з певного стану",
jmapParticipantIdentityCreate: "Створювати нові профілі учасника",
jmapParticipantIdentityUpdate: "Змінювати наявні профілі учасника",
jmapParticipantIdentityDestroy: "Вилучати профілі учасника",
jmapCoreEcho: "Повертати вхідні дані для тестування",
imapAuthenticate: "Входити на сервер IMAP",
imapAclGet: "Переглядати списки керування доступом поштових скриньок",
imapAclSet: "Змінювати списки керування доступом поштових скриньок",
imapMyRights: "Переглядати власні дозволи на поштову скриньку",
imapListRights: "Перелічувати доступні прапорці дозволів для поштової скриньки",
imapAppend: "Вивантажувати листи до поштової скриньки",
imapCapability: "Запитувати підтримувані розширення IMAP",
imapId: "Запитувати ідентифікацію та версію сервера",
imapCopy: "Копіювати листи між поштовими скриньками",
imapMove: "Переміщувати листи між поштовими скриньками",
imapCreate: "Створювати нові поштові скриньки",
imapDelete: "Видаляти поштові скриньки або позначати листи для видалення",
imapEnable: "Активувати додаткові розширення IMAP",
imapExpunge: "Остаточно вилучати листи, позначені для видалення",
imapFetch: "Завантажувати вміст і метадані листів",
imapIdle: "Приймати сповіщення про зміни в поштових скриньках у реальному часі",
imapList: "Перелічувати доступні поштові скриньки та їхні атрибути",
imapLsub: "Перелічувати поштові скриньки, на які підписаний користувач",
imapNamespace: "Запитувати доступні префікси просторів імен поштових скриньок",
imapRename: "Перейменовувати або переміщувати поштові скриньки",
imapSearch: "Шукати листи за критеріями",
imapSort: "Отримувати листи в заданому порядку сортування",
imapSelect: "Відкривати поштову скриньку для читання й запису",
imapExamine: "Відкривати поштову скриньку лише для читання",
imapStatus: "Запитувати кількість листів і стан поштової скриньки",
imapStore: "Задавати або знімати прапорці листів (прочитано, позначено, видалено тощо)",
imapSubscribe: "Підписуватися на поштові скриньки або відписуватися від них",
imapThread: "Групувати листи в листування",
pop3Authenticate: "Входити на сервер POP3",
pop3List: "Перелічувати листи та їхні розміри",
pop3Uidl: "Отримувати унікальні ідентифікатори листів",
pop3Stat: "Запитувати кількість листів і загальний розмір поштової скриньки",
pop3Retr: "Завантажувати вміст листів",
pop3Dele: "Позначати листи для видалення після від’єднання",
sieveAuthenticate: "Входити на сервер ManageSieve",
sieveListScripts: "Перелічувати вивантажені скрипти Sieve",
sieveSetActive: "Визначати, який скрипт Sieve активний",
sieveGetScript: "Завантажувати вміст скрипту Sieve",
sievePutScript: "Вивантажувати або замінювати скрипт Sieve",
sieveDeleteScript: "Вилучати скрипт Sieve",
sieveRenameScript: "Перейменовувати скрипт Sieve",
sieveCheckScript: "Перевіряти синтаксис скрипту Sieve без збереження",
sieveHaveSpace: "Перевіряти, чи дозволяє квота вивантажити скрипт заданого розміру",
davSyncCollection: "Синхронізувати зміни колекцій із клієнтом",
davExpandProperty: "Розгортати властивості, що посилаються на інші ресурси",
davPrincipalAcl: "Керувати властивостями керування доступом суб’єктів",
davPrincipalList: "Перелічувати доступні суб’єкти в системі",
davPrincipalMatch: "Зіставляти суб’єкти за заданими критеріями",
davPrincipalSearch: "Шукати суб’єкти за значеннями властивостей",
davPrincipalSearchPropSet: "Запитувати, за якими властивостями можна шукати суб’єкти",
davFilePropFind: "Отримувати властивості файлових ресурсів",
davFilePropPatch: "Змінювати властивості файлових ресурсів",
davFileGet: "Завантажувати файлові ресурси",
davFileMkCol: "Створювати нові файлові колекції або каталоги",
davFileDelete: "Вилучати файлові ресурси",
davFilePut: "Вивантажувати або змінювати файлові ресурси",
davFileCopy: "Копіювати файлові ресурси до нових розташувань",
davFileMove: "Переміщувати файлові ресурси до нових розташувань",
davFileLock: "Блокувати файлові ресурси від одночасних змін",
davFileAcl: "Керувати списками керування доступом файлових ресурсів",
davCardPropFind: "Отримувати властивості записів адресних книг",
davCardPropPatch: "Змінювати властивості записів адресних книг",
davCardGet: "Завантажувати записи адресних книг",
davCardMkCol: "Створювати нові колекції адресних книг",
davCardDelete: "Вилучати записи або колекції адресних книг",
davCardPut: "Вивантажувати або змінювати записи адресних книг",
davCardCopy: "Копіювати записи адресних книг до нових розташувань",
davCardMove: "Переміщувати записи адресних книг до нових розташувань",
davCardLock: "Блокувати записи адресних книг від одночасних змін",
davCardAcl: "Керувати списками керування доступом записів адресних книг",
davCardQuery: "Шукати записи адресних книг за критеріями",
davCardMultiGet: "Отримувати кілька записів адресних книг одним запитом",
davCalPropFind: "Отримувати властивості записів календарів",
davCalPropPatch: "Змінювати властивості записів календарів",
davCalGet: "Завантажувати записи календарів",
davCalMkCol: "Створювати нові колекції календарів",
davCalDelete: "Вилучати записи або колекції календарів",
davCalPut: "Вивантажувати або змінювати записи календарів",
davCalCopy: "Копіювати записи календарів до нових розташувань",
davCalMove: "Переміщувати записи календарів до нових розташувань",
davCalLock: "Блокувати записи календарів від одночасних змін",
davCalAcl: "Керувати списками керування доступом записів календарів",
davCalQuery: "Шукати записи календарів за критеріями",
davCalMultiGet: "Отримувати кілька записів календарів одним запитом",
davCalFreeBusyQuery: "Запитувати відомості про зайнятість для планування",
oAuthClientRegistration: "Реєструвати нові клієнтські застосунки OAuth",
oAuthClientOverride: "Обходити вимоги реєстрації клієнтів OAuth",
liveTracing: "Переглядати трасування подій сервера в реальному часі",
liveMetrics: "Переглядати метрики продуктивності сервера в реальному часі",
liveDeliveryTest: "Надсилати тестові листи для перевірки конфігурації доставки",
scimAccess: "Створювати й налаштовувати користувачів і групи через кінцеву точку SCIM",
sysAccountGet: "Отримувати облікові записи",
sysAccountCreate: "Створювати облікові записи",
sysAccountUpdate: "Оновлювати облікові записи",
sysAccountDestroy: "Знищувати облікові записи",
sysAccountQuery: "Запитувати облікові записи",
sysAccountPasswordGet: "Отримувати налаштування пароля облікового запису",
sysAccountPasswordUpdate: "Оновлювати налаштування пароля облікового запису",
sysAccountSettingsGet: "Отримувати налаштування облікового запису",
sysAccountSettingsUpdate: "Оновлювати налаштування облікового запису",
sysAcmeProviderGet: "Отримувати постачальників",
sysAcmeProviderCreate: "Створювати постачальників",
sysAcmeProviderUpdate: "Оновлювати постачальників",
sysAcmeProviderDestroy: "Знищувати постачальників",
sysAcmeProviderQuery: "Запитувати постачальників",
actionReloadSettings: "Перезавантажувати: налаштування сервера",
actionReloadTlsCertificates: "Перезавантажувати: сертифікати TLS",
actionReloadLookupStores: "Перезавантажувати: сховища довідників",
actionReloadBlockedIps: "Перезавантажувати: список заблокованих IP",
actionUpdateApps: "Керування застосунками: оновлювати застосунки",
actionTroubleshootDmarc: "DMARC: діагностика",
actionClassifySpam: "Спам-фільтр: класифікувати лист",
actionInvalidateCaches: "Кеш: скидати всі кеші",
actionInvalidateNegativeCaches: "Кеш: скидати негативні кеші",
actionPauseMtaQueue: "MTA: призупиняти обробку черги",
actionResumeMtaQueue: "MTA: відновлювати обробку черги",
sysActionGet: "Отримувати дії",
sysActionCreate: "Створювати дії",
sysActionUpdate: "Оновлювати дії",
sysActionDestroy: "Знищувати дії",
sysActionQuery: "Запитувати дії",
sysAddressBookGet: "Отримувати налаштування адресних книг",
sysAddressBookUpdate: "Оновлювати налаштування адресних книг",
sysAiModelGet: "Отримувати моделі ШІ",
sysAiModelCreate: "Створювати моделі ШІ",
sysAiModelUpdate: "Оновлювати моделі ШІ",
sysAiModelDestroy: "Знищувати моделі ШІ",
sysAiModelQuery: "Запитувати моделі ШІ",
sysAlertGet: "Отримувати оповіщення",
sysAlertCreate: "Створювати оповіщення",
sysAlertUpdate: "Оновлювати оповіщення",
sysAlertDestroy: "Знищувати оповіщення",
sysAlertQuery: "Запитувати оповіщення",
sysAllowedIpGet: "Отримувати адреси",
sysAllowedIpCreate: "Створювати адреси",
sysAllowedIpUpdate: "Оновлювати адреси",
sysAllowedIpDestroy: "Знищувати адреси",
sysAllowedIpQuery: "Запитувати адреси",
sysApiKeyGet: "Отримувати ключі API",
sysApiKeyCreate: "Створювати ключі API",
sysApiKeyUpdate: "Оновлювати ключі API",
sysApiKeyDestroy: "Знищувати ключі API",
sysApiKeyQuery: "Запитувати ключі API",
sysAppPasswordGet: "Отримувати паролі програм",
sysAppPasswordCreate: "Створювати паролі програм",
sysAppPasswordUpdate: "Оновлювати паролі програм",
sysAppPasswordDestroy: "Знищувати паролі програм",
sysAppPasswordQuery: "Запитувати паролі програм",
sysApplicationGet: "Отримувати застосунки",
sysApplicationCreate: "Створювати застосунки",
sysApplicationUpdate: "Оновлювати застосунки",
sysApplicationDestroy: "Знищувати застосунки",
sysApplicationQuery: "Запитувати застосунки",
sysArchivedItemGet: "Отримувати архівовані елементи",
sysArchivedItemCreate: "Створювати архівовані елементи",
sysArchivedItemUpdate: "Оновлювати архівовані елементи",
sysArchivedItemDestroy: "Знищувати архівовані елементи",
sysArchivedItemQuery: "Запитувати архівовані елементи",
sysArfExternalReportGet: "Отримувати звіти",
sysArfExternalReportCreate: "Створювати звіти",
sysArfExternalReportUpdate: "Оновлювати звіти",
sysArfExternalReportDestroy: "Знищувати звіти",
sysArfExternalReportQuery: "Запитувати звіти",
sysAsnGet: "Отримувати налаштування ASN",
sysAsnUpdate: "Оновлювати налаштування ASN",
sysAuthenticationGet: "Отримувати налаштування автентифікації",
sysAuthenticationUpdate: "Оновлювати налаштування автентифікації",
sysBlobStoreGet: "Отримувати налаштування сховища blob-об’єктів",
sysBlobStoreUpdate: "Оновлювати налаштування сховища blob-об’єктів",
sysBlockedIpGet: "Отримувати адреси",
sysBlockedIpCreate: "Створювати адреси",
sysBlockedIpUpdate: "Оновлювати адреси",
sysBlockedIpDestroy: "Знищувати адреси",
sysBlockedIpQuery: "Запитувати адреси",
sysBootstrapGet: "Отримувати налаштування початкового запуску",
sysBootstrapUpdate: "Оновлювати налаштування початкового запуску",
sysCacheGet: "Отримувати налаштування кешу",
sysCacheUpdate: "Оновлювати налаштування кешу",
sysCalendarGet: "Отримувати налаштування календаря",
sysCalendarUpdate: "Оновлювати налаштування календаря",
sysCalendarAlarmGet: "Отримувати налаштування нагадувань календаря",
sysCalendarAlarmUpdate: "Оновлювати налаштування нагадувань календаря",
sysCalendarSchedulingGet: "Отримувати налаштування планування в календарі",
sysCalendarSchedulingUpdate: "Оновлювати налаштування планування в календарі",
sysCertificateGet: "Отримувати сертифікати",
sysCertificateCreate: "Створювати сертифікати",
sysCertificateUpdate: "Оновлювати сертифікати",
sysCertificateDestroy: "Знищувати сертифікати",
sysCertificateQuery: "Запитувати сертифікати",
sysClusterNodeGet: "Отримувати вузли кластера",
sysClusterNodeCreate: "Створювати вузли кластера",
sysClusterNodeUpdate: "Оновлювати вузли кластера",
sysClusterNodeDestroy: "Знищувати вузли кластера",
sysClusterNodeQuery: "Запитувати вузли кластера",
sysClusterRoleGet: "Отримувати ролі",
sysClusterRoleCreate: "Створювати ролі",
sysClusterRoleUpdate: "Оновлювати ролі",
sysClusterRoleDestroy: "Знищувати ролі",
sysClusterRoleQuery: "Запитувати ролі",
sysCoordinatorGet: "Отримувати налаштування координатора",
sysCoordinatorUpdate: "Оновлювати налаштування координатора",
sysDataRetentionGet: "Отримувати налаштування зберігання даних",
sysDataRetentionUpdate: "Оновлювати налаштування зберігання даних",
sysDataStoreGet: "Отримувати налаштування сховища даних",
sysDataStoreUpdate: "Оновлювати налаштування сховища даних",
sysDirectoryGet: "Отримувати каталоги",
sysDirectoryCreate: "Створювати каталоги",
sysDirectoryUpdate: "Оновлювати каталоги",
sysDirectoryDestroy: "Знищувати каталоги",
sysDirectoryQuery: "Запитувати каталоги",
sysDkimReportSettingsGet: "Отримувати налаштування звітів DKIM",
sysDkimReportSettingsUpdate: "Оновлювати налаштування звітів DKIM",
sysDkimSignatureGet: "Отримувати підписи",
sysDkimSignatureCreate: "Створювати підписи",
sysDkimSignatureUpdate: "Оновлювати підписи",
sysDkimSignatureDestroy: "Знищувати підписи",
sysDkimSignatureQuery: "Запитувати підписи",
sysDmarcExternalReportGet: "Отримувати звіти",
sysDmarcExternalReportCreate: "Створювати звіти",
sysDmarcExternalReportUpdate: "Оновлювати звіти",
sysDmarcExternalReportDestroy: "Знищувати звіти",
sysDmarcExternalReportQuery: "Запитувати звіти",
sysDmarcInternalReportGet: "Отримувати звіти",
sysDmarcInternalReportCreate: "Створювати звіти",
sysDmarcInternalReportUpdate: "Оновлювати звіти",
sysDmarcInternalReportDestroy: "Знищувати звіти",
sysDmarcInternalReportQuery: "Запитувати звіти",
sysDmarcReportSettingsGet: "Отримувати налаштування звітів DMARC",
sysDmarcReportSettingsUpdate: "Оновлювати налаштування звітів DMARC",
sysDnsResolverGet: "Отримувати налаштування DNS-резолвера",
sysDnsResolverUpdate: "Оновлювати налаштування DNS-резолвера",
sysDnsServerGet: "Отримувати DNS-сервери",
sysDnsServerCreate: "Створювати DNS-сервери",
sysDnsServerUpdate: "Оновлювати DNS-сервери",
sysDnsServerDestroy: "Знищувати DNS-сервери",
sysDnsServerQuery: "Запитувати DNS-сервери",
sysDomainGet: "Отримувати домени",
sysDomainCreate: "Створювати домени",
sysDomainUpdate: "Оновлювати домени",
sysDomainDestroy: "Знищувати домени",
sysDomainQuery: "Запитувати домени",
sysDsnReportSettingsGet: "Отримувати налаштування звітів DSN",
sysDsnReportSettingsUpdate: "Оновлювати налаштування звітів DSN",
sysEmailGet: "Отримувати налаштування пошти",
sysEmailUpdate: "Оновлювати налаштування пошти",
sysEnterpriseGet: "Отримувати налаштування Enterprise",
sysEnterpriseUpdate: "Оновлювати налаштування Enterprise",
sysEventTracingLevelGet: "Отримувати події",
sysEventTracingLevelCreate: "Створювати події",
sysEventTracingLevelUpdate: "Оновлювати події",
sysEventTracingLevelDestroy: "Знищувати події",
sysEventTracingLevelQuery: "Запитувати події",
sysFileStorageGet: "Отримувати налаштування сховища файлів",
sysFileStorageUpdate: "Оновлювати налаштування сховища файлів",
sysHttpGet: "Отримувати налаштування HTTP",
sysHttpUpdate: "Оновлювати налаштування HTTP",
sysHttpFormGet: "Отримувати налаштування HTTP-форм",
sysHttpFormUpdate: "Оновлювати налаштування HTTP-форм",
sysHttpLookupGet: "Отримувати списки",
sysHttpLookupCreate: "Створювати списки",
sysHttpLookupUpdate: "Оновлювати списки",
sysHttpLookupDestroy: "Знищувати списки",
sysHttpLookupQuery: "Запитувати списки",
sysImapGet: "Отримувати налаштування IMAP",
sysImapUpdate: "Оновлювати налаштування IMAP",
sysInMemoryStoreGet: "Отримувати налаштування сховища в пам’яті",
sysInMemoryStoreUpdate: "Оновлювати налаштування сховища в пам’яті",
sysJmapGet: "Отримувати налаштування JMAP",
sysJmapUpdate: "Оновлювати налаштування JMAP",
sysLogGet: "Отримувати записи журналу",
sysLogCreate: "Створювати записи журналу",
sysLogUpdate: "Оновлювати записи журналу",
sysLogDestroy: "Знищувати записи журналу",
sysLogQuery: "Запитувати записи журналу",
sysMailingListGet: "Отримувати списки розсилки",
sysMailingListCreate: "Створювати списки розсилки",
sysMailingListUpdate: "Оновлювати списки розсилки",
sysMailingListDestroy: "Знищувати списки розсилки",
sysMailingListQuery: "Запитувати списки розсилки",
sysMaskedEmailGet: "Отримувати масковані адреси",
sysMaskedEmailCreate: "Створювати масковані адреси",
sysMaskedEmailUpdate: "Оновлювати масковані адреси",
sysMaskedEmailDestroy: "Знищувати масковані адреси",
sysMaskedEmailQuery: "Запитувати масковані адреси",
sysMemoryLookupKeyGet: "Отримувати ключі",
sysMemoryLookupKeyCreate: "Створювати ключі",
sysMemoryLookupKeyUpdate: "Оновлювати ключі",
sysMemoryLookupKeyDestroy: "Знищувати ключі",
sysMemoryLookupKeyQuery: "Запитувати ключі",
sysMemoryLookupKeyValueGet: "Отримувати ключі",
sysMemoryLookupKeyValueCreate: "Створювати ключі",
sysMemoryLookupKeyValueUpdate: "Оновлювати ключі",
sysMemoryLookupKeyValueDestroy: "Знищувати ключі",
sysMemoryLookupKeyValueQuery: "Запитувати ключі",
sysMetricGet: "Отримувати метрики",
sysMetricCreate: "Створювати метрики",
sysMetricUpdate: "Оновлювати метрики",
sysMetricDestroy: "Знищувати метрики",
sysMetricQuery: "Запитувати метрики",
sysMetricsGet: "Отримувати налаштування метрик",
sysMetricsUpdate: "Оновлювати налаштування метрик",
sysMetricsStoreGet: "Отримувати налаштування сховища метрик",
sysMetricsStoreUpdate: "Оновлювати налаштування сховища метрик",
sysMtaConnectionStrategyGet: "Отримувати стратегії",
sysMtaConnectionStrategyCreate: "Створювати стратегії",
sysMtaConnectionStrategyUpdate: "Оновлювати стратегії",
sysMtaConnectionStrategyDestroy: "Знищувати стратегії",
sysMtaConnectionStrategyQuery: "Запитувати стратегії",
sysMtaDeliveryScheduleGet: "Отримувати розклади",
sysMtaDeliveryScheduleCreate: "Створювати розклади",
sysMtaDeliveryScheduleUpdate: "Оновлювати розклади",
sysMtaDeliveryScheduleDestroy: "Знищувати розклади",
sysMtaDeliveryScheduleQuery: "Запитувати розклади",
sysMtaExtensionsGet: "Отримувати налаштування розширень MTA",
sysMtaExtensionsUpdate: "Оновлювати налаштування розширень MTA",
sysMtaHookGet: "Отримувати хуки",
sysMtaHookCreate: "Створювати хуки",
sysMtaHookUpdate: "Оновлювати хуки",
sysMtaHookDestroy: "Знищувати хуки",
sysMtaHookQuery: "Запитувати хуки",
sysMtaInboundSessionGet: "Отримувати налаштування вхідних сеансів MTA",
sysMtaInboundSessionUpdate: "Оновлювати налаштування вхідних сеансів MTA",
sysMtaInboundThrottleGet: "Отримувати обмеження швидкості",
sysMtaInboundThrottleCreate: "Створювати обмеження швидкості",
sysMtaInboundThrottleUpdate: "Оновлювати обмеження швидкості",
sysMtaInboundThrottleDestroy: "Знищувати обмеження швидкості",
sysMtaInboundThrottleQuery: "Запитувати обмеження швидкості",
sysMtaMilterGet: "Отримувати milter-фільтри",
sysMtaMilterCreate: "Створювати milter-фільтри",
sysMtaMilterUpdate: "Оновлювати milter-фільтри",
sysMtaMilterDestroy: "Знищувати milter-фільтри",
sysMtaMilterQuery: "Запитувати milter-фільтри",
sysMtaOutboundStrategyGet: "Отримувати налаштування стратегії вихідної доставки MTA",
sysMtaOutboundStrategyUpdate: "Оновлювати налаштування стратегії вихідної доставки MTA",
sysMtaOutboundThrottleGet: "Отримувати обмеження швидкості",
sysMtaOutboundThrottleCreate: "Створювати обмеження швидкості",
sysMtaOutboundThrottleUpdate: "Оновлювати обмеження швидкості",
sysMtaOutboundThrottleDestroy: "Знищувати обмеження швидкості",
sysMtaOutboundThrottleQuery: "Запитувати обмеження швидкості",
sysMtaQueueQuotaGet: "Отримувати квоти",
sysMtaQueueQuotaCreate: "Створювати квоти",
sysMtaQueueQuotaUpdate: "Оновлювати квоти",
sysMtaQueueQuotaDestroy: "Знищувати квоти",
sysMtaQueueQuotaQuery: "Запитувати квоти",
sysMtaRouteGet: "Отримувати маршрути",
sysMtaRouteCreate: "Створювати маршрути",
sysMtaRouteUpdate: "Оновлювати маршрути",
sysMtaRouteDestroy: "Знищувати маршрути",
sysMtaRouteQuery: "Запитувати маршрути",
sysMtaStageAuthGet: "Отримувати налаштування етапу AUTH MTA",
sysMtaStageAuthUpdate: "Оновлювати налаштування етапу AUTH MTA",
sysMtaStageConnectGet: "Отримувати налаштування етапу CONNECT MTA",
sysMtaStageConnectUpdate: "Оновлювати налаштування етапу CONNECT MTA",
sysMtaStageDataGet: "Отримувати налаштування етапу DATA MTA",
sysMtaStageDataUpdate: "Оновлювати налаштування етапу DATA MTA",
sysMtaStageEhloGet: "Отримувати налаштування етапу EHLO MTA",
sysMtaStageEhloUpdate: "Оновлювати налаштування етапу EHLO MTA",
sysMtaStageMailGet: "Отримувати налаштування етапу MAIL MTA",
sysMtaStageMailUpdate: "Оновлювати налаштування етапу MAIL MTA",
sysMtaStageRcptGet: "Отримувати налаштування етапу RCPT MTA",
sysMtaStageRcptUpdate: "Оновлювати налаштування етапу RCPT MTA",
sysMtaStsGet: "Отримувати налаштування MTA-STS",
sysMtaStsUpdate: "Оновлювати налаштування MTA-STS",
sysMtaTlsStrategyGet: "Отримувати стратегії",
sysMtaTlsStrategyCreate: "Створювати стратегії",
sysMtaTlsStrategyUpdate: "Оновлювати стратегії",
sysMtaTlsStrategyDestroy: "Знищувати стратегії",
sysMtaTlsStrategyQuery: "Запитувати стратегії",
sysMtaVirtualQueueGet: "Отримувати черги",
sysMtaVirtualQueueCreate: "Створювати черги",
sysMtaVirtualQueueUpdate: "Оновлювати черги",
sysMtaVirtualQueueDestroy: "Знищувати черги",
sysMtaVirtualQueueQuery: "Запитувати черги",
sysNetworkListenerGet: "Отримувати слухачів",
sysNetworkListenerCreate: "Створювати слухачів",
sysNetworkListenerUpdate: "Оновлювати слухачів",
sysNetworkListenerDestroy: "Знищувати слухачів",
sysNetworkListenerQuery: "Запитувати слухачів",
sysOAuthClientGet: "Отримувати клієнтів OAuth",
sysOAuthClientCreate: "Створювати клієнтів OAuth",
sysOAuthClientUpdate: "Оновлювати клієнтів OAuth",
sysOAuthClientDestroy: "Знищувати клієнтів OAuth",
sysOAuthClientQuery: "Запитувати клієнтів OAuth",
sysOidcProviderGet: "Отримувати налаштування постачальника OIDC",
sysOidcProviderUpdate: "Оновлювати налаштування постачальника OIDC",
sysPublicKeyGet: "Отримувати відкриті ключі",
sysPublicKeyCreate: "Створювати відкриті ключі",
sysPublicKeyUpdate: "Оновлювати відкриті ключі",
sysPublicKeyDestroy: "Знищувати відкриті ключі",
sysPublicKeyQuery: "Запитувати відкриті ключі",
sysQueuedMessageGet: "Отримувати листи",
sysQueuedMessageCreate: "Створювати листи",
sysQueuedMessageUpdate: "Оновлювати листи",
sysQueuedMessageDestroy: "Знищувати листи",
sysQueuedMessageQuery: "Запитувати листи",
sysReportSettingsGet: "Отримувати налаштування звітів",
sysReportSettingsUpdate: "Оновлювати налаштування звітів",
sysRoleGet: "Отримувати ролі",
sysRoleCreate: "Створювати ролі",
sysRoleUpdate: "Оновлювати ролі",
sysRoleDestroy: "Знищувати ролі",
sysRoleQuery: "Запитувати ролі",
sysSearchGet: "Отримувати налаштування пошуку",
sysSearchUpdate: "Оновлювати налаштування пошуку",
sysSearchStoreGet: "Отримувати налаштування сховища пошуку",
sysSearchStoreUpdate: "Оновлювати налаштування сховища пошуку",
sysSecurityGet: "Отримувати налаштування безпеки",
sysSecurityUpdate: "Оновлювати налаштування безпеки",
sysSenderAuthGet: "Отримувати налаштування автентифікації відправника",
sysSenderAuthUpdate: "Оновлювати налаштування автентифікації відправника",
sysSharingGet: "Отримувати налаштування спільного доступу",
sysSharingUpdate: "Оновлювати налаштування спільного доступу",
sysSieveSystemInterpreterGet: "Отримувати налаштування системного інтерпретатора Sieve",
sysSieveSystemInterpreterUpdate: "Оновлювати налаштування системного інтерпретатора Sieve",
sysSieveSystemScriptGet: "Отримувати скрипти",
sysSieveSystemScriptCreate: "Створювати скрипти",
sysSieveSystemScriptUpdate: "Оновлювати скрипти",
sysSieveSystemScriptDestroy: "Знищувати скрипти",
sysSieveSystemScriptQuery: "Запитувати скрипти",
sysSieveUserInterpreterGet: "Отримувати налаштування користувацького інтерпретатора Sieve",
sysSieveUserInterpreterUpdate: "Оновлювати налаштування користувацького інтерпретатора Sieve",
sysSieveUserScriptGet: "Отримувати скрипти",
sysSieveUserScriptCreate: "Створювати скрипти",
sysSieveUserScriptUpdate: "Оновлювати скрипти",
sysSieveUserScriptDestroy: "Знищувати скрипти",
sysSieveUserScriptQuery: "Запитувати скрипти",
sysSpamClassifierGet: "Отримувати налаштування класифікатора спаму",
sysSpamClassifierUpdate: "Оновлювати налаштування класифікатора спаму",
sysSpamDnsblServerGet: "Отримувати сервери",
sysSpamDnsblServerCreate: "Створювати сервери",
sysSpamDnsblServerUpdate: "Оновлювати сервери",
sysSpamDnsblServerDestroy: "Знищувати сервери",
sysSpamDnsblServerQuery: "Запитувати сервери",
sysSpamDnsblSettingsGet: "Отримувати налаштування DNSBL спам-фільтра",
sysSpamDnsblSettingsUpdate: "Оновлювати налаштування DNSBL спам-фільтра",
sysSpamFileExtensionGet: "Отримувати розширення",
sysSpamFileExtensionCreate: "Створювати розширення",
sysSpamFileExtensionUpdate: "Оновлювати розширення",
sysSpamFileExtensionDestroy: "Знищувати розширення",
sysSpamFileExtensionQuery: "Запитувати розширення",
sysSpamLlmGet: "Отримувати налаштування LLM спам-фільтра",
sysSpamLlmUpdate: "Оновлювати налаштування LLM спам-фільтра",
sysSpamPyzorGet: "Отримувати налаштування Pyzor спам-фільтра",
sysSpamPyzorUpdate: "Оновлювати налаштування Pyzor спам-фільтра",
sysSpamRuleGet: "Отримувати правила",
sysSpamRuleCreate: "Створювати правила",
sysSpamRuleUpdate: "Оновлювати правила",
sysSpamRuleDestroy: "Знищувати правила",
sysSpamRuleQuery: "Запитувати правила",
sysSpamSettingsGet: "Отримувати налаштування спам-фільтра",
sysSpamSettingsUpdate: "Оновлювати налаштування спам-фільтра",
sysSpamTagGet: "Отримувати теги",
sysSpamTagCreate: "Створювати теги",
sysSpamTagUpdate: "Оновлювати теги",
sysSpamTagDestroy: "Знищувати теги",
sysSpamTagQuery: "Запитувати теги",
sysSpamTrainingSampleGet: "Отримувати зразки",
sysSpamTrainingSampleCreate: "Створювати зразки",
sysSpamTrainingSampleUpdate: "Оновлювати зразки",
sysSpamTrainingSampleDestroy: "Знищувати зразки",
sysSpamTrainingSampleQuery: "Запитувати зразки",
sysSpfReportSettingsGet: "Отримувати налаштування звітів SPF",
sysSpfReportSettingsUpdate: "Оновлювати налаштування звітів SPF",
sysStoreLookupGet: "Отримувати довідники",
sysStoreLookupCreate: "Створювати довідники",
sysStoreLookupUpdate: "Оновлювати довідники",
sysStoreLookupDestroy: "Знищувати довідники",
sysStoreLookupQuery: "Запитувати довідники",
sysSystemSettingsGet: "Отримувати системні налаштування",
sysSystemSettingsUpdate: "Оновлювати системні налаштування",
taskIndexDocument: "Індексувати документ",
taskUnindexDocument: "Вилучати документ з індексу",
taskIndexTrace: "Індексувати трасування телеметрії",
taskCalendarAlarmEmail: "Лист-нагадування календаря",
taskCalendarAlarmNotification: "Сповіщення-нагадування календаря",
taskCalendarItipMessage: "Повідомлення iTIP календаря",
taskMergeThreads: "Об’єднувати листування",
taskDmarcReport: "Надсилати звіт DMARC на віддалений сервер",
taskTlsReport: "Надсилати звіт TLS на віддалений сервер",
taskRestoreArchivedItem: "Відновлювати архівований елемент",
taskDestroyAccount: "Знищувати обліковий запис і всі пов’язані дані",
taskAccountMaintenance: "Виконувати операції обслуговування облікових записів",
taskTenantMaintenance: "Виконувати операції обслуговування орендарів",
taskStoreMaintenance: "Виконувати операції обслуговування сховища",
taskSpamFilterMaintenance: "Виконувати операції обслуговування спам-фільтра",
taskAcmeRenewal: "Виконувати поновлення сертифіката ACME для домену",
taskDkimManagement: "Виконувати ротацію ключів DKIM для домену",
taskDnsManagement: "Виконувати керування DNS для домену",
sysTaskGet: "Отримувати завдання",
sysTaskCreate: "Створювати завдання",
sysTaskUpdate: "Оновлювати завдання",
sysTaskDestroy: "Знищувати завдання",
sysTaskQuery: "Запитувати завдання",
sysTaskManagerGet: "Отримувати налаштування диспетчера завдань",
sysTaskManagerUpdate: "Оновлювати налаштування диспетчера завдань",
sysTenantGet: "Отримувати орендарів",
sysTenantCreate: "Створювати орендарів",
sysTenantUpdate: "Оновлювати орендарів",
sysTenantDestroy: "Знищувати орендарів",
sysTenantQuery: "Запитувати орендарів",
sysTlsExternalReportGet: "Отримувати звіти",
sysTlsExternalReportCreate: "Створювати звіти",
sysTlsExternalReportUpdate: "Оновлювати звіти",
sysTlsExternalReportDestroy: "Знищувати звіти",
sysTlsExternalReportQuery: "Запитувати звіти",
sysTlsInternalReportGet: "Отримувати звіти",
sysTlsInternalReportCreate: "Створювати звіти",
sysTlsInternalReportUpdate: "Оновлювати звіти",
sysTlsInternalReportDestroy: "Знищувати звіти",
sysTlsInternalReportQuery: "Запитувати звіти",
sysTlsReportSettingsGet: "Отримувати налаштування звітів TLS",
sysTlsReportSettingsUpdate: "Оновлювати налаштування звітів TLS",
sysTraceGet: "Отримувати трасування",
sysTraceCreate: "Створювати трасування",
sysTraceUpdate: "Оновлювати трасування",
sysTraceDestroy: "Знищувати трасування",
sysTraceQuery: "Запитувати трасування",
sysTracerGet: "Отримувати трасувальники",
sysTracerCreate: "Створювати трасувальники",
sysTracerUpdate: "Оновлювати трасувальники",
sysTracerDestroy: "Знищувати трасувальники",
sysTracerQuery: "Запитувати трасувальники",
sysTracingStoreGet: "Отримувати налаштування сховища трасувань",
sysTracingStoreUpdate: "Оновлювати налаштування сховища трасувань",
sysWebDavGet: "Отримувати налаштування WebDAV",
sysWebDavUpdate: "Оновлювати налаштування WebDAV",
sysWebHookGet: "Отримувати вебхуки",
sysWebHookCreate: "Створювати вебхуки",
sysWebHookUpdate: "Оновлювати вебхуки",
sysWebHookDestroy: "Знищувати вебхуки",
sysWebHookQuery: "Запитувати вебхуки",
},
};
+729
View File
@@ -0,0 +1,729 @@
import type { PermissionCatalog } from "@/lib/permissionLabels";
/** Stalwart 0.16.22's permission labels in Simplified Chinese, keyed by permission name. Checked against source.json. */
export const permissionCatalog: PermissionCatalog = {
categories: {
"AI models Management": "AI 模型管理",
"API keys Management": "API 密钥管理",
"Accounts Management": "账户管理",
"Action": "操作",
"Actions Management": "操作管理",
"Addresses Management": "IP 地址管理",
"Alerts Management": "告警管理",
"App passwords Management": "应用专用密码管理",
"Applications Management": "应用管理",
"Archived items Management": "已归档项目管理",
"Calendar": "日历",
"Certificates Management": "证书管理",
"Cluster nodes Management": "集群节点管理",
"DNS servers Management": "DNS 服务器管理",
"Directories Management": "目录管理",
"Domains Management": "域名管理",
"Email": "邮件",
"Events Management": "事件管理",
"Extensions Management": "扩展名管理",
"Hooks Management": "钩子管理",
"IMAP": "IMAP",
"JMAP": "JMAP",
"Keys Management": "键管理",
"Listeners Management": "监听器管理",
"Lists Management": "列表管理",
"Log entries Management": "日志条目管理",
"Lookups Management": "查找表管理",
"Mailing lists Management": "邮件列表管理",
"ManageSieve": "ManageSieve",
"Masked emails Management": "隐藏邮箱地址管理",
"Messages Management": "邮件管理",
"Metrics Management": "指标管理",
"Milters Management": "Milter 管理",
"OAuth clients Management": "OAuth 客户端管理",
"POP3": "POP3",
"Providers Management": "提供商管理",
"Public keys Management": "公钥管理",
"Queues Management": "队列管理",
"Quotas Management": "配额管理",
"Reports Management": "报告管理",
"Roles Management": "角色管理",
"Routes Management": "路由管理",
"Rules Management": "规则管理",
"Samples Management": "样本管理",
"Schedules Management": "计划管理",
"Scripts Management": "脚本管理",
"Servers Management": "服务器管理",
"Settings": "设置",
"Signatures Management": "签名管理",
"Strategies Management": "策略管理",
"Tags Management": "标签管理",
"Task": "任务",
"Tasks Management": "任务管理",
"Tenants Management": "租户管理",
"Throttles Management": "限流规则管理",
"Tracers Management": "追踪器管理",
"Traces Management": "追踪记录管理",
"WebDAV": "WebDAV",
"Webhooks Management": "Webhook 管理",
},
labels: {
authenticate: "登录服务器",
authenticateWithAlias: "使用邮箱别名地址登录",
interactAi: "与 AI 模型交互",
impersonate: "代表其他用户执行操作",
unlimitedRequests: "绕过请求速率限制",
unlimitedUploads: "绕过上传大小和速率限制",
fetchAnyBlob: "读取任意 Blob,包括不属于该账户的 Blob",
emailSend: "发送邮件",
emailReceive: "接收邮件",
calendarAlarmsSend: "通过邮件发送日历提醒通知",
calendarSchedulingSend: "通过邮件发送日历邀请和更新",
calendarSchedulingReceive: "处理收到的日历邀请和回复",
jmapPushSubscriptionGet: "读取推送订阅详情",
jmapPushSubscriptionCreate: "创建新推送订阅",
jmapPushSubscriptionUpdate: "修改现有推送订阅",
jmapPushSubscriptionDestroy: "移除推送订阅",
jmapMailboxGet: "读取邮箱详情和属性",
jmapMailboxChanges: "跟踪邮箱自指定状态以来的变更",
jmapMailboxQuery: "搜索符合条件的邮箱",
jmapMailboxQueryChanges: "跟踪邮箱查询结果的变更",
jmapMailboxCreate: "创建新邮箱",
jmapMailboxUpdate: "修改现有邮箱",
jmapMailboxDestroy: "移除邮箱",
jmapThreadGet: "读取邮件会话详情",
jmapThreadChanges: "跟踪会话自指定状态以来的变更",
jmapEmailGet: "读取邮件详情和属性",
jmapEmailChanges: "跟踪邮件自指定状态以来的变更",
jmapEmailQuery: "搜索符合条件的邮件",
jmapEmailQueryChanges: "跟踪邮件查询结果的变更",
jmapEmailCreate: "创建新邮件",
jmapEmailUpdate: "修改现有邮件",
jmapEmailDestroy: "移除邮件",
jmapEmailCopy: "将邮件复制到其他账户",
jmapEmailImport: "从 Blob 数据导入邮件",
jmapEmailParse: "解析原始邮件数据(不存储)",
jmapSearchSnippetGet: "读取邮件的搜索结果摘要",
jmapIdentityGet: "读取发件身份详情",
jmapIdentityChanges: "跟踪发件身份自指定状态以来的变更",
jmapIdentityCreate: "创建新发件身份",
jmapIdentityUpdate: "修改现有发件身份",
jmapIdentityDestroy: "移除发件身份",
jmapEmailSubmissionGet: "读取邮件提交详情",
jmapEmailSubmissionChanges: "跟踪邮件提交自指定状态以来的变更",
jmapEmailSubmissionQuery: "搜索符合条件的邮件提交",
jmapEmailSubmissionQueryChanges: "跟踪邮件提交查询结果的变更",
jmapEmailSubmissionCreate: "创建用于发送的新邮件提交",
jmapEmailSubmissionUpdate: "修改现有邮件提交",
jmapEmailSubmissionDestroy: "移除邮件提交",
jmapVacationResponseGet: "读取外出自动回复配置",
jmapVacationResponseCreate: "创建外出自动回复设置",
jmapVacationResponseUpdate: "修改外出自动回复设置",
jmapVacationResponseDestroy: "移除外出自动回复设置",
jmapSieveScriptGet: "读取 Sieve 过滤脚本详情",
jmapSieveScriptQuery: "搜索符合条件的 Sieve 脚本",
jmapSieveScriptValidate: "校验 Sieve 脚本(不存储)",
jmapSieveScriptCreate: "创建新 Sieve 过滤脚本",
jmapSieveScriptUpdate: "修改现有 Sieve 过滤脚本",
jmapSieveScriptDestroy: "移除 Sieve 过滤脚本",
jmapPrincipalGet: "读取主体详情和属性",
jmapPrincipalQuery: "搜索符合条件的主体",
jmapPrincipalChanges: "跟踪主体自指定状态以来的变更",
jmapPrincipalQueryChanges: "跟踪主体查询结果的变更",
jmapPrincipalGetAvailability: "查询主体的忙闲信息",
jmapPrincipalCreate: "创建新主体",
jmapPrincipalUpdate: "修改现有主体",
jmapPrincipalDestroy: "移除主体",
jmapQuotaGet: "读取配额用量和限制",
jmapQuotaChanges: "跟踪配额自指定状态以来的变更",
jmapQuotaQuery: "搜索符合条件的配额",
jmapQuotaQueryChanges: "跟踪配额查询结果的变更",
jmapBlobGet: "下载 Blob 数据",
jmapBlobCopy: "将 Blob 复制到其他账户",
jmapBlobLookup: "跨数据类型查找 Blob 的使用情况",
jmapBlobUpload: "上传新 Blob 数据",
jmapAddressBookGet: "读取通讯录详情和属性",
jmapAddressBookChanges: "跟踪通讯录自指定状态以来的变更",
jmapAddressBookCreate: "创建新通讯录",
jmapAddressBookUpdate: "修改现有通讯录",
jmapAddressBookDestroy: "移除通讯录",
jmapContactCardGet: "读取联系人卡片详情",
jmapContactCardChanges: "跟踪联系人卡片自指定状态以来的变更",
jmapContactCardQuery: "搜索符合条件的联系人卡片",
jmapContactCardQueryChanges: "跟踪联系人卡片查询结果的变更",
jmapContactCardCreate: "创建新联系人卡片",
jmapContactCardUpdate: "修改现有联系人卡片",
jmapContactCardDestroy: "移除联系人卡片",
jmapContactCardCopy: "将联系人卡片复制到其他账户",
jmapContactCardParse: "解析原始联系人卡片数据(不存储)",
jmapFileNodeGet: "读取文件节点详情和属性",
jmapFileNodeChanges: "跟踪文件节点自指定状态以来的变更",
jmapFileNodeQuery: "搜索符合条件的文件节点",
jmapFileNodeQueryChanges: "跟踪文件节点查询结果的变更",
jmapFileNodeCreate: "创建新文件节点",
jmapFileNodeUpdate: "修改现有文件节点",
jmapFileNodeDestroy: "移除文件节点",
jmapFileNodeCopy: "将文件节点复制到其他账户",
jmapShareNotificationGet: "读取共享通知详情",
jmapShareNotificationChanges: "跟踪共享通知自指定状态以来的变更",
jmapShareNotificationQuery: "搜索符合条件的共享通知",
jmapShareNotificationQueryChanges: "跟踪共享通知查询结果的变更",
jmapShareNotificationCreate: "创建新共享通知",
jmapShareNotificationUpdate: "修改现有共享通知",
jmapShareNotificationDestroy: "移除共享通知",
jmapCalendarGet: "读取日历详情和属性",
jmapCalendarChanges: "跟踪日历自指定状态以来的变更",
jmapCalendarCreate: "创建新日历",
jmapCalendarUpdate: "修改现有日历",
jmapCalendarDestroy: "移除日历",
jmapCalendarEventGet: "读取日程详情",
jmapCalendarEventChanges: "跟踪日程自指定状态以来的变更",
jmapCalendarEventQuery: "搜索符合条件的日程",
jmapCalendarEventQueryChanges: "跟踪日程查询结果的变更",
jmapCalendarEventCreate: "创建新日程",
jmapCalendarEventUpdate: "修改现有日程",
jmapCalendarEventDestroy: "移除日程",
jmapCalendarEventCopy: "将日程复制到其他账户",
jmapCalendarEventParse: "解析原始日程数据(不存储)",
jmapCalendarEventNotificationGet: "读取日程通知详情",
jmapCalendarEventNotificationChanges: "跟踪日程通知自指定状态以来的变更",
jmapCalendarEventNotificationQuery: "搜索符合条件的日程通知",
jmapCalendarEventNotificationQueryChanges: "跟踪日程通知查询结果的变更",
jmapCalendarEventNotificationCreate: "创建新日程通知",
jmapCalendarEventNotificationUpdate: "修改现有日程通知",
jmapCalendarEventNotificationDestroy: "移除日程通知",
jmapParticipantIdentityGet: "读取参与者身份详情",
jmapParticipantIdentityChanges: "跟踪参与者身份自指定状态以来的变更",
jmapParticipantIdentityCreate: "创建新参与者身份",
jmapParticipantIdentityUpdate: "修改现有参与者身份",
jmapParticipantIdentityDestroy: "移除参与者身份",
jmapCoreEcho: "回显输入数据以供测试",
imapAuthenticate: "登录 IMAP 服务器",
imapAclGet: "查看邮箱访问控制列表",
imapAclSet: "修改邮箱访问控制列表",
imapMyRights: "查看自己对邮箱的权限",
imapListRights: "列出邮箱可用的权限标志",
imapAppend: "向邮箱上传邮件",
imapCapability: "查询支持的 IMAP 扩展",
imapId: "查询服务器标识和版本",
imapCopy: "在邮箱之间复制邮件",
imapMove: "在邮箱之间移动邮件",
imapCreate: "创建新邮箱",
imapDelete: "删除邮箱或将邮件标记为待删除",
imapEnable: "启用可选的 IMAP 扩展",
imapExpunge: "永久移除标记为待删除的邮件",
imapFetch: "下载邮件内容和元数据",
imapIdle: "接收邮箱变更的实时通知",
imapList: "列出可用邮箱及其属性",
imapLsub: "列出用户已订阅的邮箱",
imapNamespace: "查询可用的邮箱命名空间前缀",
imapRename: "重命名或移动邮箱",
imapSearch: "按条件搜索邮件",
imapSort: "按指定排序顺序读取邮件",
imapSelect: "以读写方式打开邮箱",
imapExamine: "以只读方式打开邮箱",
imapStatus: "查询邮箱的邮件数量和状态",
imapStore: "设置或清除邮件标记(已读、已标记、已删除等)",
imapSubscribe: "订阅或取消订阅邮箱",
imapThread: "将邮件归组为会话",
pop3Authenticate: "登录 POP3 服务器",
pop3List: "列出邮件及其大小",
pop3Uidl: "读取邮件唯一标识符",
pop3Stat: "查询邮箱的邮件数量和总大小",
pop3Retr: "下载邮件内容",
pop3Dele: "将邮件标记为在断开连接时删除",
sieveAuthenticate: "登录 ManageSieve 服务器",
sieveListScripts: "列出已上传的 Sieve 脚本",
sieveSetActive: "指定启用哪个 Sieve 脚本",
sieveGetScript: "下载 Sieve 脚本内容",
sievePutScript: "上传或替换 Sieve 脚本",
sieveDeleteScript: "移除 Sieve 脚本",
sieveRenameScript: "重命名 Sieve 脚本",
sieveCheckScript: "校验 Sieve 脚本语法(不保存)",
sieveHaveSpace: "检查配额是否允许上传指定大小的脚本",
davSyncCollection: "与客户端同步集合变更",
davExpandProperty: "展开引用其他资源的属性",
davPrincipalAcl: "管理主体的访问控制属性",
davPrincipalList: "列出系统中可用的主体",
davPrincipalMatch: "按指定条件匹配主体",
davPrincipalSearch: "按属性值搜索主体",
davPrincipalSearchPropSet: "查询主体上可搜索的属性",
davFilePropFind: "读取文件资源的属性",
davFilePropPatch: "修改文件资源的属性",
davFileGet: "下载文件资源",
davFileMkCol: "创建新文件集合或目录",
davFileDelete: "移除文件资源",
davFilePut: "上传或修改文件资源",
davFileCopy: "将文件资源复制到新位置",
davFileMove: "将文件资源移动到新位置",
davFileLock: "锁定文件资源以防止并发修改",
davFileAcl: "管理文件资源的访问控制列表",
davCardPropFind: "读取通讯录条目的属性",
davCardPropPatch: "修改通讯录条目的属性",
davCardGet: "下载通讯录条目",
davCardMkCol: "创建新通讯录集合",
davCardDelete: "移除通讯录条目或集合",
davCardPut: "上传或修改通讯录条目",
davCardCopy: "将通讯录条目复制到新位置",
davCardMove: "将通讯录条目移动到新位置",
davCardLock: "锁定通讯录条目以防止并发修改",
davCardAcl: "管理通讯录条目的访问控制列表",
davCardQuery: "搜索符合条件的通讯录条目",
davCardMultiGet: "在单个请求中读取多个通讯录条目",
davCalPropFind: "读取日历条目的属性",
davCalPropPatch: "修改日历条目的属性",
davCalGet: "下载日历条目",
davCalMkCol: "创建新日历集合",
davCalDelete: "移除日历条目或集合",
davCalPut: "上传或修改日历条目",
davCalCopy: "将日历条目复制到新位置",
davCalMove: "将日历条目移动到新位置",
davCalLock: "锁定日历条目以防止并发修改",
davCalAcl: "管理日历条目的访问控制列表",
davCalQuery: "搜索符合条件的日历条目",
davCalMultiGet: "在单个请求中读取多个日历条目",
davCalFreeBusyQuery: "查询用于安排日程的忙闲时间信息",
oAuthClientRegistration: "注册新 OAuth 客户端应用",
oAuthClientOverride: "绕过 OAuth 客户端注册要求",
liveTracing: "查看实时服务器事件追踪",
liveMetrics: "查看实时服务器性能指标",
liveDeliveryTest: "发送测试邮件以验证投递配置",
scimAccess: "通过 SCIM 端点预配用户和群组",
sysAccountGet: "获取账户",
sysAccountCreate: "创建账户",
sysAccountUpdate: "更新账户",
sysAccountDestroy: "销毁账户",
sysAccountQuery: "查询账户",
sysAccountPasswordGet: "获取账户密码设置",
sysAccountPasswordUpdate: "更新账户密码设置",
sysAccountSettingsGet: "获取账户设置",
sysAccountSettingsUpdate: "更新账户设置",
sysAcmeProviderGet: "获取提供商",
sysAcmeProviderCreate: "创建提供商",
sysAcmeProviderUpdate: "更新提供商",
sysAcmeProviderDestroy: "销毁提供商",
sysAcmeProviderQuery: "查询提供商",
actionReloadSettings: "重新加载:服务器设置",
actionReloadTlsCertificates: "重新加载:TLS 证书",
actionReloadLookupStores: "重新加载:查找存储",
actionReloadBlockedIps: "重新加载:已封禁 IP 列表",
actionUpdateApps: "应用管理:更新应用",
actionTroubleshootDmarc: "DMARC:故障排查",
actionClassifySpam: "垃圾邮件过滤器:对邮件进行分类",
actionInvalidateCaches: "缓存:使全部缓存失效",
actionInvalidateNegativeCaches: "缓存:使否定缓存失效",
actionPauseMtaQueue: "MTA:暂停队列处理",
actionResumeMtaQueue: "MTA:恢复队列处理",
sysActionGet: "获取操作",
sysActionCreate: "创建操作",
sysActionUpdate: "更新操作",
sysActionDestroy: "销毁操作",
sysActionQuery: "查询操作",
sysAddressBookGet: "获取通讯录设置",
sysAddressBookUpdate: "更新通讯录设置",
sysAiModelGet: "获取 AI 模型",
sysAiModelCreate: "创建 AI 模型",
sysAiModelUpdate: "更新 AI 模型",
sysAiModelDestroy: "销毁 AI 模型",
sysAiModelQuery: "查询 AI 模型",
sysAlertGet: "获取告警",
sysAlertCreate: "创建告警",
sysAlertUpdate: "更新告警",
sysAlertDestroy: "销毁告警",
sysAlertQuery: "查询告警",
sysAllowedIpGet: "获取 IP 地址",
sysAllowedIpCreate: "创建 IP 地址",
sysAllowedIpUpdate: "更新 IP 地址",
sysAllowedIpDestroy: "销毁 IP 地址",
sysAllowedIpQuery: "查询 IP 地址",
sysApiKeyGet: "获取 API 密钥",
sysApiKeyCreate: "创建 API 密钥",
sysApiKeyUpdate: "更新 API 密钥",
sysApiKeyDestroy: "销毁 API 密钥",
sysApiKeyQuery: "查询 API 密钥",
sysAppPasswordGet: "获取应用专用密码",
sysAppPasswordCreate: "创建应用专用密码",
sysAppPasswordUpdate: "更新应用专用密码",
sysAppPasswordDestroy: "销毁应用专用密码",
sysAppPasswordQuery: "查询应用专用密码",
sysApplicationGet: "获取应用",
sysApplicationCreate: "创建应用",
sysApplicationUpdate: "更新应用",
sysApplicationDestroy: "销毁应用",
sysApplicationQuery: "查询应用",
sysArchivedItemGet: "获取已归档项目",
sysArchivedItemCreate: "创建已归档项目",
sysArchivedItemUpdate: "更新已归档项目",
sysArchivedItemDestroy: "销毁已归档项目",
sysArchivedItemQuery: "查询已归档项目",
sysArfExternalReportGet: "获取报告",
sysArfExternalReportCreate: "创建报告",
sysArfExternalReportUpdate: "更新报告",
sysArfExternalReportDestroy: "销毁报告",
sysArfExternalReportQuery: "查询报告",
sysAsnGet: "获取 ASN 设置",
sysAsnUpdate: "更新 ASN 设置",
sysAuthenticationGet: "获取身份验证设置",
sysAuthenticationUpdate: "更新身份验证设置",
sysBlobStoreGet: "获取 Blob 存储设置",
sysBlobStoreUpdate: "更新 Blob 存储设置",
sysBlockedIpGet: "获取 IP 地址",
sysBlockedIpCreate: "创建 IP 地址",
sysBlockedIpUpdate: "更新 IP 地址",
sysBlockedIpDestroy: "销毁 IP 地址",
sysBlockedIpQuery: "查询 IP 地址",
sysBootstrapGet: "获取引导设置",
sysBootstrapUpdate: "更新引导设置",
sysCacheGet: "获取缓存设置",
sysCacheUpdate: "更新缓存设置",
sysCalendarGet: "获取日历设置",
sysCalendarUpdate: "更新日历设置",
sysCalendarAlarmGet: "获取日历提醒设置",
sysCalendarAlarmUpdate: "更新日历提醒设置",
sysCalendarSchedulingGet: "获取日历日程安排设置",
sysCalendarSchedulingUpdate: "更新日历日程安排设置",
sysCertificateGet: "获取证书",
sysCertificateCreate: "创建证书",
sysCertificateUpdate: "更新证书",
sysCertificateDestroy: "销毁证书",
sysCertificateQuery: "查询证书",
sysClusterNodeGet: "获取集群节点",
sysClusterNodeCreate: "创建集群节点",
sysClusterNodeUpdate: "更新集群节点",
sysClusterNodeDestroy: "销毁集群节点",
sysClusterNodeQuery: "查询集群节点",
sysClusterRoleGet: "获取角色",
sysClusterRoleCreate: "创建角色",
sysClusterRoleUpdate: "更新角色",
sysClusterRoleDestroy: "销毁角色",
sysClusterRoleQuery: "查询角色",
sysCoordinatorGet: "获取协调器设置",
sysCoordinatorUpdate: "更新协调器设置",
sysDataRetentionGet: "获取数据保留设置",
sysDataRetentionUpdate: "更新数据保留设置",
sysDataStoreGet: "获取数据存储设置",
sysDataStoreUpdate: "更新数据存储设置",
sysDirectoryGet: "获取目录",
sysDirectoryCreate: "创建目录",
sysDirectoryUpdate: "更新目录",
sysDirectoryDestroy: "销毁目录",
sysDirectoryQuery: "查询目录",
sysDkimReportSettingsGet: "获取 DKIM 报告设置",
sysDkimReportSettingsUpdate: "更新 DKIM 报告设置",
sysDkimSignatureGet: "获取签名",
sysDkimSignatureCreate: "创建签名",
sysDkimSignatureUpdate: "更新签名",
sysDkimSignatureDestroy: "销毁签名",
sysDkimSignatureQuery: "查询签名",
sysDmarcExternalReportGet: "获取报告",
sysDmarcExternalReportCreate: "创建报告",
sysDmarcExternalReportUpdate: "更新报告",
sysDmarcExternalReportDestroy: "销毁报告",
sysDmarcExternalReportQuery: "查询报告",
sysDmarcInternalReportGet: "获取报告",
sysDmarcInternalReportCreate: "创建报告",
sysDmarcInternalReportUpdate: "更新报告",
sysDmarcInternalReportDestroy: "销毁报告",
sysDmarcInternalReportQuery: "查询报告",
sysDmarcReportSettingsGet: "获取 DMARC 报告设置",
sysDmarcReportSettingsUpdate: "更新 DMARC 报告设置",
sysDnsResolverGet: "获取 DNS 解析器设置",
sysDnsResolverUpdate: "更新 DNS 解析器设置",
sysDnsServerGet: "获取 DNS 服务器",
sysDnsServerCreate: "创建 DNS 服务器",
sysDnsServerUpdate: "更新 DNS 服务器",
sysDnsServerDestroy: "销毁 DNS 服务器",
sysDnsServerQuery: "查询 DNS 服务器",
sysDomainGet: "获取域名",
sysDomainCreate: "创建域名",
sysDomainUpdate: "更新域名",
sysDomainDestroy: "销毁域名",
sysDomainQuery: "查询域名",
sysDsnReportSettingsGet: "获取 DSN 报告设置",
sysDsnReportSettingsUpdate: "更新 DSN 报告设置",
sysEmailGet: "获取邮件设置",
sysEmailUpdate: "更新邮件设置",
sysEnterpriseGet: "获取企业版设置",
sysEnterpriseUpdate: "更新企业版设置",
sysEventTracingLevelGet: "获取事件",
sysEventTracingLevelCreate: "创建事件",
sysEventTracingLevelUpdate: "更新事件",
sysEventTracingLevelDestroy: "销毁事件",
sysEventTracingLevelQuery: "查询事件",
sysFileStorageGet: "获取文件存储设置",
sysFileStorageUpdate: "更新文件存储设置",
sysHttpGet: "获取 HTTP 设置",
sysHttpUpdate: "更新 HTTP 设置",
sysHttpFormGet: "获取 HTTP 表单设置",
sysHttpFormUpdate: "更新 HTTP 表单设置",
sysHttpLookupGet: "获取列表",
sysHttpLookupCreate: "创建列表",
sysHttpLookupUpdate: "更新列表",
sysHttpLookupDestroy: "销毁列表",
sysHttpLookupQuery: "查询列表",
sysImapGet: "获取 IMAP 设置",
sysImapUpdate: "更新 IMAP 设置",
sysInMemoryStoreGet: "获取内存存储设置",
sysInMemoryStoreUpdate: "更新内存存储设置",
sysJmapGet: "获取 JMAP 设置",
sysJmapUpdate: "更新 JMAP 设置",
sysLogGet: "获取日志条目",
sysLogCreate: "创建日志条目",
sysLogUpdate: "更新日志条目",
sysLogDestroy: "销毁日志条目",
sysLogQuery: "查询日志条目",
sysMailingListGet: "获取邮件列表",
sysMailingListCreate: "创建邮件列表",
sysMailingListUpdate: "更新邮件列表",
sysMailingListDestroy: "销毁邮件列表",
sysMailingListQuery: "查询邮件列表",
sysMaskedEmailGet: "获取隐藏邮箱地址",
sysMaskedEmailCreate: "创建隐藏邮箱地址",
sysMaskedEmailUpdate: "更新隐藏邮箱地址",
sysMaskedEmailDestroy: "销毁隐藏邮箱地址",
sysMaskedEmailQuery: "查询隐藏邮箱地址",
sysMemoryLookupKeyGet: "获取键",
sysMemoryLookupKeyCreate: "创建键",
sysMemoryLookupKeyUpdate: "更新键",
sysMemoryLookupKeyDestroy: "销毁键",
sysMemoryLookupKeyQuery: "查询键",
sysMemoryLookupKeyValueGet: "获取键",
sysMemoryLookupKeyValueCreate: "创建键",
sysMemoryLookupKeyValueUpdate: "更新键",
sysMemoryLookupKeyValueDestroy: "销毁键",
sysMemoryLookupKeyValueQuery: "查询键",
sysMetricGet: "获取指标",
sysMetricCreate: "创建指标",
sysMetricUpdate: "更新指标",
sysMetricDestroy: "销毁指标",
sysMetricQuery: "查询指标",
sysMetricsGet: "获取指标设置",
sysMetricsUpdate: "更新指标设置",
sysMetricsStoreGet: "获取指标存储设置",
sysMetricsStoreUpdate: "更新指标存储设置",
sysMtaConnectionStrategyGet: "获取策略",
sysMtaConnectionStrategyCreate: "创建策略",
sysMtaConnectionStrategyUpdate: "更新策略",
sysMtaConnectionStrategyDestroy: "销毁策略",
sysMtaConnectionStrategyQuery: "查询策略",
sysMtaDeliveryScheduleGet: "获取计划",
sysMtaDeliveryScheduleCreate: "创建计划",
sysMtaDeliveryScheduleUpdate: "更新计划",
sysMtaDeliveryScheduleDestroy: "销毁计划",
sysMtaDeliveryScheduleQuery: "查询计划",
sysMtaExtensionsGet: "获取 MTA 扩展设置",
sysMtaExtensionsUpdate: "更新 MTA 扩展设置",
sysMtaHookGet: "获取钩子",
sysMtaHookCreate: "创建钩子",
sysMtaHookUpdate: "更新钩子",
sysMtaHookDestroy: "销毁钩子",
sysMtaHookQuery: "查询钩子",
sysMtaInboundSessionGet: "获取 MTA 入站会话设置",
sysMtaInboundSessionUpdate: "更新 MTA 入站会话设置",
sysMtaInboundThrottleGet: "获取限流规则",
sysMtaInboundThrottleCreate: "创建限流规则",
sysMtaInboundThrottleUpdate: "更新限流规则",
sysMtaInboundThrottleDestroy: "销毁限流规则",
sysMtaInboundThrottleQuery: "查询限流规则",
sysMtaMilterGet: "获取 Milter",
sysMtaMilterCreate: "创建 Milter",
sysMtaMilterUpdate: "更新 Milter",
sysMtaMilterDestroy: "销毁 Milter",
sysMtaMilterQuery: "查询 Milter",
sysMtaOutboundStrategyGet: "获取 MTA 出站策略设置",
sysMtaOutboundStrategyUpdate: "更新 MTA 出站策略设置",
sysMtaOutboundThrottleGet: "获取限流规则",
sysMtaOutboundThrottleCreate: "创建限流规则",
sysMtaOutboundThrottleUpdate: "更新限流规则",
sysMtaOutboundThrottleDestroy: "销毁限流规则",
sysMtaOutboundThrottleQuery: "查询限流规则",
sysMtaQueueQuotaGet: "获取配额",
sysMtaQueueQuotaCreate: "创建配额",
sysMtaQueueQuotaUpdate: "更新配额",
sysMtaQueueQuotaDestroy: "销毁配额",
sysMtaQueueQuotaQuery: "查询配额",
sysMtaRouteGet: "获取路由",
sysMtaRouteCreate: "创建路由",
sysMtaRouteUpdate: "更新路由",
sysMtaRouteDestroy: "销毁路由",
sysMtaRouteQuery: "查询路由",
sysMtaStageAuthGet: "获取 MTA AUTH 阶段设置",
sysMtaStageAuthUpdate: "更新 MTA AUTH 阶段设置",
sysMtaStageConnectGet: "获取 MTA 连接阶段设置",
sysMtaStageConnectUpdate: "更新 MTA 连接阶段设置",
sysMtaStageDataGet: "获取 MTA DATA 阶段设置",
sysMtaStageDataUpdate: "更新 MTA DATA 阶段设置",
sysMtaStageEhloGet: "获取 MTA EHLO 阶段设置",
sysMtaStageEhloUpdate: "更新 MTA EHLO 阶段设置",
sysMtaStageMailGet: "获取 MTA MAIL 阶段设置",
sysMtaStageMailUpdate: "更新 MTA MAIL 阶段设置",
sysMtaStageRcptGet: "获取 MTA RCPT 阶段设置",
sysMtaStageRcptUpdate: "更新 MTA RCPT 阶段设置",
sysMtaStsGet: "获取 MTA-STS 设置",
sysMtaStsUpdate: "更新 MTA-STS 设置",
sysMtaTlsStrategyGet: "获取策略",
sysMtaTlsStrategyCreate: "创建策略",
sysMtaTlsStrategyUpdate: "更新策略",
sysMtaTlsStrategyDestroy: "销毁策略",
sysMtaTlsStrategyQuery: "查询策略",
sysMtaVirtualQueueGet: "获取队列",
sysMtaVirtualQueueCreate: "创建队列",
sysMtaVirtualQueueUpdate: "更新队列",
sysMtaVirtualQueueDestroy: "销毁队列",
sysMtaVirtualQueueQuery: "查询队列",
sysNetworkListenerGet: "获取监听器",
sysNetworkListenerCreate: "创建监听器",
sysNetworkListenerUpdate: "更新监听器",
sysNetworkListenerDestroy: "销毁监听器",
sysNetworkListenerQuery: "查询监听器",
sysOAuthClientGet: "获取 OAuth 客户端",
sysOAuthClientCreate: "创建 OAuth 客户端",
sysOAuthClientUpdate: "更新 OAuth 客户端",
sysOAuthClientDestroy: "销毁 OAuth 客户端",
sysOAuthClientQuery: "查询 OAuth 客户端",
sysOidcProviderGet: "获取 OIDC 提供商设置",
sysOidcProviderUpdate: "更新 OIDC 提供商设置",
sysPublicKeyGet: "获取公钥",
sysPublicKeyCreate: "创建公钥",
sysPublicKeyUpdate: "更新公钥",
sysPublicKeyDestroy: "销毁公钥",
sysPublicKeyQuery: "查询公钥",
sysQueuedMessageGet: "获取邮件",
sysQueuedMessageCreate: "创建邮件",
sysQueuedMessageUpdate: "更新邮件",
sysQueuedMessageDestroy: "销毁邮件",
sysQueuedMessageQuery: "查询邮件",
sysReportSettingsGet: "获取报告设置",
sysReportSettingsUpdate: "更新报告设置",
sysRoleGet: "获取角色",
sysRoleCreate: "创建角色",
sysRoleUpdate: "更新角色",
sysRoleDestroy: "销毁角色",
sysRoleQuery: "查询角色",
sysSearchGet: "获取搜索设置",
sysSearchUpdate: "更新搜索设置",
sysSearchStoreGet: "获取搜索存储设置",
sysSearchStoreUpdate: "更新搜索存储设置",
sysSecurityGet: "获取安全设置",
sysSecurityUpdate: "更新安全设置",
sysSenderAuthGet: "获取发件人身份验证设置",
sysSenderAuthUpdate: "更新发件人身份验证设置",
sysSharingGet: "获取共享设置",
sysSharingUpdate: "更新共享设置",
sysSieveSystemInterpreterGet: "获取 Sieve 系统解释器设置",
sysSieveSystemInterpreterUpdate: "更新 Sieve 系统解释器设置",
sysSieveSystemScriptGet: "获取脚本",
sysSieveSystemScriptCreate: "创建脚本",
sysSieveSystemScriptUpdate: "更新脚本",
sysSieveSystemScriptDestroy: "销毁脚本",
sysSieveSystemScriptQuery: "查询脚本",
sysSieveUserInterpreterGet: "获取 Sieve 用户解释器设置",
sysSieveUserInterpreterUpdate: "更新 Sieve 用户解释器设置",
sysSieveUserScriptGet: "获取脚本",
sysSieveUserScriptCreate: "创建脚本",
sysSieveUserScriptUpdate: "更新脚本",
sysSieveUserScriptDestroy: "销毁脚本",
sysSieveUserScriptQuery: "查询脚本",
sysSpamClassifierGet: "获取垃圾邮件分类器设置",
sysSpamClassifierUpdate: "更新垃圾邮件分类器设置",
sysSpamDnsblServerGet: "获取服务器",
sysSpamDnsblServerCreate: "创建服务器",
sysSpamDnsblServerUpdate: "更新服务器",
sysSpamDnsblServerDestroy: "销毁服务器",
sysSpamDnsblServerQuery: "查询服务器",
sysSpamDnsblSettingsGet: "获取垃圾邮件 DNSBL 设置",
sysSpamDnsblSettingsUpdate: "更新垃圾邮件 DNSBL 设置",
sysSpamFileExtensionGet: "获取扩展名",
sysSpamFileExtensionCreate: "创建扩展名",
sysSpamFileExtensionUpdate: "更新扩展名",
sysSpamFileExtensionDestroy: "销毁扩展名",
sysSpamFileExtensionQuery: "查询扩展名",
sysSpamLlmGet: "获取垃圾邮件 LLM 设置",
sysSpamLlmUpdate: "更新垃圾邮件 LLM 设置",
sysSpamPyzorGet: "获取垃圾邮件 Pyzor 设置",
sysSpamPyzorUpdate: "更新垃圾邮件 Pyzor 设置",
sysSpamRuleGet: "获取规则",
sysSpamRuleCreate: "创建规则",
sysSpamRuleUpdate: "更新规则",
sysSpamRuleDestroy: "销毁规则",
sysSpamRuleQuery: "查询规则",
sysSpamSettingsGet: "获取垃圾邮件设置",
sysSpamSettingsUpdate: "更新垃圾邮件设置",
sysSpamTagGet: "获取标签",
sysSpamTagCreate: "创建标签",
sysSpamTagUpdate: "更新标签",
sysSpamTagDestroy: "销毁标签",
sysSpamTagQuery: "查询标签",
sysSpamTrainingSampleGet: "获取样本",
sysSpamTrainingSampleCreate: "创建样本",
sysSpamTrainingSampleUpdate: "更新样本",
sysSpamTrainingSampleDestroy: "销毁样本",
sysSpamTrainingSampleQuery: "查询样本",
sysSpfReportSettingsGet: "获取 SPF 报告设置",
sysSpfReportSettingsUpdate: "更新 SPF 报告设置",
sysStoreLookupGet: "获取查找表",
sysStoreLookupCreate: "创建查找表",
sysStoreLookupUpdate: "更新查找表",
sysStoreLookupDestroy: "销毁查找表",
sysStoreLookupQuery: "查询查找表",
sysSystemSettingsGet: "获取系统设置",
sysSystemSettingsUpdate: "更新系统设置",
taskIndexDocument: "索引文档",
taskUnindexDocument: "取消索引文档",
taskIndexTrace: "索引遥测追踪记录",
taskCalendarAlarmEmail: "日历提醒邮件",
taskCalendarAlarmNotification: "日历提醒通知",
taskCalendarItipMessage: "日历 iTIP 邮件",
taskMergeThreads: "合并邮件会话",
taskDmarcReport: "向远程服务器发送 DMARC 报告",
taskTlsReport: "向远程服务器发送 TLS 报告",
taskRestoreArchivedItem: "还原已归档项目",
taskDestroyAccount: "销毁账户及其所有关联数据",
taskAccountMaintenance: "执行账户维护操作",
taskTenantMaintenance: "执行租户维护操作",
taskStoreMaintenance: "执行存储维护操作",
taskSpamFilterMaintenance: "执行垃圾邮件过滤器维护操作",
taskAcmeRenewal: "为域名执行 ACME 证书续期",
taskDkimManagement: "为域名执行 DKIM 密钥轮换",
taskDnsManagement: "为域名执行 DNS 管理",
sysTaskGet: "获取任务",
sysTaskCreate: "创建任务",
sysTaskUpdate: "更新任务",
sysTaskDestroy: "销毁任务",
sysTaskQuery: "查询任务",
sysTaskManagerGet: "获取任务管理器设置",
sysTaskManagerUpdate: "更新任务管理器设置",
sysTenantGet: "获取租户",
sysTenantCreate: "创建租户",
sysTenantUpdate: "更新租户",
sysTenantDestroy: "销毁租户",
sysTenantQuery: "查询租户",
sysTlsExternalReportGet: "获取报告",
sysTlsExternalReportCreate: "创建报告",
sysTlsExternalReportUpdate: "更新报告",
sysTlsExternalReportDestroy: "销毁报告",
sysTlsExternalReportQuery: "查询报告",
sysTlsInternalReportGet: "获取报告",
sysTlsInternalReportCreate: "创建报告",
sysTlsInternalReportUpdate: "更新报告",
sysTlsInternalReportDestroy: "销毁报告",
sysTlsInternalReportQuery: "查询报告",
sysTlsReportSettingsGet: "获取 TLS 报告设置",
sysTlsReportSettingsUpdate: "更新 TLS 报告设置",
sysTraceGet: "获取追踪记录",
sysTraceCreate: "创建追踪记录",
sysTraceUpdate: "更新追踪记录",
sysTraceDestroy: "销毁追踪记录",
sysTraceQuery: "查询追踪记录",
sysTracerGet: "获取追踪器",
sysTracerCreate: "创建追踪器",
sysTracerUpdate: "更新追踪器",
sysTracerDestroy: "销毁追踪器",
sysTracerQuery: "查询追踪器",
sysTracingStoreGet: "获取追踪存储设置",
sysTracingStoreUpdate: "更新追踪存储设置",
sysWebDavGet: "获取 WebDAV 设置",
sysWebDavUpdate: "更新 WebDAV 设置",
sysWebHookGet: "获取 Webhook",
sysWebHookCreate: "创建 Webhook",
sysWebHookUpdate: "更新 Webhook",
sysWebHookDestroy: "销毁 Webhook",
sysWebHookQuery: "查询 Webhook",
},
};
+54
View File
@@ -202,6 +202,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "Sua organização atingiu o número de listas de e-mail permitido.",
"This mailing list no longer exists. Someone may have deleted it.": "Esta lista de e-mail não existe mais. Alguém pode tê-la excluído.",
"The server did not say whether the list was created.": "O servidor não informou se a lista foi criada.",
"Roles": "Funções",
"users": "usuários",
"groups": "grupos",
"tenant administrators": "administradores de locatário",
"administrators": "administradores",
"A role needs a name.": "Uma função precisa de um nome.",
"Created {name}": "{name} criada",
"New role": "Nova função",
"This role carries permissions yours doesn't, so you can view it but not change it.": "Esta função tem permissões que a sua não tem, então você pode vê-la, mas não alterá-la.",
"Your role lets you view roles but not change them.": "Sua função permite ver as funções, mas não alterá-las.",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "O Stalwart atribui esta função por padrão a {kinds}. Uma alteração aqui afeta todos que a têm dessa forma.",
"Builds on": "Baseia-se em",
"Permissions": "Permissões",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "O Stalwart atribui esta função por padrão, então ela não pode ser excluída. Altere primeiro os padrões na administração do próprio Stalwart.",
"This role carries permissions yours doesn't.": "Esta função tem permissões que a sua não tem.",
"Create role": "Criar função",
"builds on this one": "baseia-se nesta",
"has permissions yours doesn't": "tem permissões que a sua não tem",
"No other roles": "Nenhuma outra função",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "Uma função tem todas as permissões das funções em que se baseia, exceto as que ela ou elas negarem.",
"Search permissions": "Pesquisar permissões",
"All permissions": "Todas as permissões",
"Granted": "Concedidas",
"Set on this role": "Definidas nesta função",
"No permissions match": "Nenhuma permissão corresponde",
"{granted} of {total}": "{granted} de {total}",
"Denied by {role}": "Negada por {role}",
"Granted by {role}": "Concedida por {role}",
"Inherit": "Herdar",
"Not set": "Não definida",
"Allow": "Permitir",
"Deny": "Negar",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "Uma negação prevalece sobre qualquer permissão, aqui ou numa função em que esta se baseia. Você só pode permitir permissões que você mesmo tem.",
"Accounts, groups and other roles that use it must be moved off it first.": "Contas, grupos e outras funções que a usam precisam ser desvinculados dela primeiro.",
"Delete role…": "Excluir função…",
"Deleted {name}": "{name} excluída",
"Still used by {things}. Move them to another role first.": "Ainda usada por {things}. Atribua outra função a eles primeiro.",
"Delete role": "Excluir função",
"It can't be undone.": "Isso não pode ser desfeito.",
"Type {name} to confirm": "Digite {name} para confirmar",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "Não foi possível carregar a lista de permissões do Stalwart, então as permissões não podem ser alteradas aqui. ({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "Conjuntos nomeados de permissões, atribuídos a contas, grupos e locatários.",
"Search roles": "Pesquisar funções",
"No roles match": "Nenhuma função corresponde",
"No roles yet": "Nenhuma função ainda",
"Open {name}": "Abrir {name}",
"Default for {kinds}": "Padrão para {kinds}",
"You can't give a role permissions your own role doesn't have.": "Você não pode dar a uma função permissões que a sua própria função não tem.",
"Your organisation has reached the number of roles it is allowed.": "Sua organização atingiu o número de funções permitido.",
"This role no longer exists. Someone may have deleted it.": "Esta função não existe mais. Alguém pode tê-la excluído.",
"the default roles": "as funções padrão",
"The server did not say whether the role was created.": "O servidor não informou se a função foi criada.",
"User": "Usuário",
"Administrator": "Administrador",
"Custom role": "Função personalizada",
@@ -1598,6 +1650,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "O {n} membro é retirado do grupo primeiro e perde o que era compartilhado com ele. Os e-mails do grupo são removidos em segundo plano, e isso não pode ser desfeito.", other: "Os {n} membros são retirados do grupo primeiro e perdem o que era compartilhado com ele. Os e-mails do grupo são removidos em segundo plano, e isso não pode ser desfeito." },
"{n} mailing lists": { one: "{n} lista de e-mails", other: "{n} listas de e-mails" },
"{n} recipients": { one: "{n} destinatário", other: "{n} destinatários" },
"Grants {n} permissions": { one: "Concede {n} permissão", other: "Concede {n} permissões" },
"{n} roles": { one: "{n} função", other: "{n} funções" },
"{n} DKIM keys": { one: "{n} chave DKIM", other: "{n} chaves DKIM" },
"{n} other items": { one: "{n} outro item", other: "{n} outros itens" },
// ── Administration ────────────────────────────────────────────────
+54
View File
@@ -201,6 +201,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "Ваша организация достигла допустимого числа списков рассылки.",
"This mailing list no longer exists. Someone may have deleted it.": "Этого списка рассылки больше нет. Возможно, его кто-то удалил.",
"The server did not say whether the list was created.": "Сервер не сообщил, создан ли список.",
"Roles": "Роли",
"users": "пользователям",
"groups": "группам",
"tenant administrators": "администраторам арендаторов",
"administrators": "администраторам",
"A role needs a name.": "Роли нужно название.",
"Created {name}": "Создана роль {name}",
"New role": "Новая роль",
"This role carries permissions yours doesn't, so you can view it but not change it.": "У этой роли есть разрешения, которых нет у вашей, поэтому её можно просматривать, но не изменять.",
"Your role lets you view roles but not change them.": "Ваша роль позволяет просматривать роли, но не изменять их.",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart по умолчанию выдаёт эту роль {kinds}. Изменение здесь затронет всех, кто получил её так.",
"Builds on": "Основана на",
"Permissions": "Разрешения",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart выдаёт эту роль по умолчанию, поэтому её нельзя удалить. Сначала измените значения по умолчанию в собственной панели администрирования Stalwart.",
"This role carries permissions yours doesn't.": "У этой роли есть разрешения, которых нет у вашей.",
"Create role": "Создать роль",
"builds on this one": "основана на этой",
"has permissions yours doesn't": "есть разрешения, которых нет у вашей",
"No other roles": "Других ролей нет",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "Роль получает все разрешения ролей, на которых основана, кроме тех, что запрещены ею или ими.",
"Search permissions": "Поиск разрешений",
"All permissions": "Все разрешения",
"Granted": "Выданные",
"Set on this role": "Заданные в этой роли",
"No permissions match": "Нет подходящих разрешений",
"{granted} of {total}": "{granted} из {total}",
"Denied by {role}": "Запрещено ролью {role}",
"Granted by {role}": "Выдано ролью {role}",
"Inherit": "Наследовать",
"Not set": "Не задано",
"Allow": "Разрешить",
"Deny": "Запретить",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "Запрет сильнее любого разрешения — здесь или в роли, на которой основана эта. Разрешать можно только то, что есть у вас самих.",
"Accounts, groups and other roles that use it must be moved off it first.": "Сначала уберите эту роль у учётных записей, групп и других ролей, которые её используют.",
"Delete role…": "Удалить роль…",
"Deleted {name}": "Роль {name} удалена",
"Still used by {things}. Move them to another role first.": "Ещё используется: {things}. Сначала назначьте им другую роль.",
"Delete role": "Удалить роль",
"It can't be undone.": "Это нельзя отменить.",
"Type {name} to confirm": "Введите {name} для подтверждения",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "Не удалось загрузить список разрешений Stalwart, поэтому изменить разрешения здесь нельзя. ({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "Именованные наборы разрешений для учётных записей, групп и арендаторов.",
"Search roles": "Поиск ролей",
"No roles match": "Нет подходящих ролей",
"No roles yet": "Ролей пока нет",
"Open {name}": "Открыть {name}",
"Default for {kinds}": "По умолчанию: {kinds}",
"You can't give a role permissions your own role doesn't have.": "Нельзя дать роли разрешения, которых нет у вашей собственной роли.",
"Your organisation has reached the number of roles it is allowed.": "Ваша организация достигла допустимого числа ролей.",
"This role no longer exists. Someone may have deleted it.": "Этой роли больше нет. Возможно, её кто-то удалил.",
"the default roles": "настройки ролей по умолчанию",
"The server did not say whether the role was created.": "Сервер не сообщил, создана ли роль.",
"User": "Пользователь",
"Administrator": "Администратор",
"Custom role": "Особая роль",
@@ -1597,6 +1649,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Сначала {n} участник убирается из группы и теряет то, чем с ней поделились. Почта группы удаляется в фоновом режиме, и это нельзя отменить.", few: "Сначала {n} участника убираются из группы и теряют то, чем с ней поделились. Почта группы удаляется в фоновом режиме, и это нельзя отменить.", many: "Сначала {n} участников убираются из группы и теряют то, чем с ней поделились. Почта группы удаляется в фоновом режиме, и это нельзя отменить.", other: "Сначала {n} участника убираются из группы и теряют то, чем с ней поделились. Почта группы удаляется в фоновом режиме, и это нельзя отменить." },
"{n} mailing lists": { one: "{n} список рассылки", few: "{n} списка рассылки", many: "{n} списков рассылки", other: "{n} списка рассылки" },
"{n} recipients": { one: "{n} получатель", few: "{n} получателя", many: "{n} получателей", other: "{n} получателя" },
"Grants {n} permissions": { one: "Даёт {n} разрешение", few: "Даёт {n} разрешения", many: "Даёт {n} разрешений", other: "Даёт {n} разрешения" },
"{n} roles": { one: "{n} роль", few: "{n} роли", many: "{n} ролей", other: "{n} роли" },
"{n} DKIM keys": { one: "{n} ключ DKIM", few: "{n} ключа DKIM", many: "{n} ключей DKIM", other: "{n} ключа DKIM" },
"{n} other items": { one: "{n} другой объект", few: "{n} других объекта", many: "{n} других объектов", other: "{n} другого объекта" },
// ── Administration ────────────────────────────────────────────────
+54
View File
@@ -195,6 +195,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "Ваша організація досягла дозволеної кількості списків розсилки.",
"This mailing list no longer exists. Someone may have deleted it.": "Цього списку розсилки більше немає. Можливо, його хтось видалив.",
"The server did not say whether the list was created.": "Сервер не повідомив, чи створено список.",
"Roles": "Ролі",
"users": "користувачам",
"groups": "групам",
"tenant administrators": "адміністраторам орендарів",
"administrators": "адміністраторам",
"A role needs a name.": "Ролі потрібна назва.",
"Created {name}": "Створено роль {name}",
"New role": "Нова роль",
"This role carries permissions yours doesn't, so you can view it but not change it.": "Ця роль має дозволи, яких немає у вашої, тому її можна переглядати, але не змінювати.",
"Your role lets you view roles but not change them.": "Ваша роль дозволяє переглядати ролі, але не змінювати їх.",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart за замовчуванням надає цю роль {kinds}. Зміна тут стосується всіх, хто отримав її так.",
"Builds on": "Базується на",
"Permissions": "Дозволи",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart надає цю роль за замовчуванням, тому її не можна видалити. Спершу змініть значення за замовчуванням у власній панелі адміністрування Stalwart.",
"This role carries permissions yours doesn't.": "Ця роль має дозволи, яких немає у вашої.",
"Create role": "Створити роль",
"builds on this one": "базується на цій",
"has permissions yours doesn't": "має дозволи, яких немає у вашої",
"No other roles": "Інших ролей немає",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "Роль має всі дозволи ролей, на яких базується, окрім тих, які забороняє вона чи вони.",
"Search permissions": "Пошук дозволів",
"All permissions": "Усі дозволи",
"Granted": "Надані",
"Set on this role": "Задані в цій ролі",
"No permissions match": "Немає відповідних дозволів",
"{granted} of {total}": "{granted} з {total}",
"Denied by {role}": "Заборонено роллю {role}",
"Granted by {role}": "Надано роллю {role}",
"Inherit": "Успадковувати",
"Not set": "Не задано",
"Allow": "Дозволити",
"Deny": "Заборонити",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "Заборона переважає будь-який дозвіл — тут чи в ролі, на якій базується ця. Дозволяти можна лише те, що маєте ви самі.",
"Accounts, groups and other roles that use it must be moved off it first.": "Спершу приберіть цю роль в облікових записів, груп та інших ролей, які її використовують.",
"Delete role…": "Видалити роль…",
"Deleted {name}": "Роль {name} видалено",
"Still used by {things}. Move them to another role first.": "Ще використовується: {things}. Спершу призначте їм іншу роль.",
"Delete role": "Видалити роль",
"It can't be undone.": "Це не можна скасувати.",
"Type {name} to confirm": "Введіть {name} для підтвердження",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "Не вдалося завантажити список дозволів Stalwart, тому змінити дозволи тут не можна. ({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "Іменовані набори дозволів для облікових записів, груп та орендарів.",
"Search roles": "Пошук ролей",
"No roles match": "Немає відповідних ролей",
"No roles yet": "Ролей поки немає",
"Open {name}": "Відкрити {name}",
"Default for {kinds}": "За замовчуванням: {kinds}",
"You can't give a role permissions your own role doesn't have.": "Не можна надати ролі дозволи, яких немає у вашої власної ролі.",
"Your organisation has reached the number of roles it is allowed.": "Ваша організація досягла дозволеної кількості ролей.",
"This role no longer exists. Someone may have deleted it.": "Цієї ролі більше немає. Можливо, її хтось видалив.",
"the default roles": "налаштування ролей за замовчуванням",
"The server did not say whether the role was created.": "Сервер не повідомив, чи створено роль.",
"User": "Користувач",
"Administrator": "Адміністратор",
"Custom role": "Власна роль",
@@ -1591,6 +1643,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Спочатку {n} учасник прибирається з групи й утрачає те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати.", few: "Спочатку {n} учасники прибираються з групи й утрачають те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати.", many: "Спочатку {n} учасників прибирають із групи, і вони втрачають те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати.", other: "Спочатку {n} учасника прибирають із групи, і вони втрачають те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати." },
"{n} mailing lists": { one: "{n} список розсилки", few: "{n} списки розсилки", many: "{n} списків розсилки", other: "{n} списку розсилки" },
"{n} recipients": { one: "{n} одержувач", few: "{n} одержувачі", many: "{n} одержувачів", other: "{n} одержувача" },
"Grants {n} permissions": { one: "Надає {n} дозвіл", few: "Надає {n} дозволи", many: "Надає {n} дозволів", other: "Надає {n} дозволу" },
"{n} roles": { one: "{n} роль", few: "{n} ролі", many: "{n} ролей", other: "{n} ролі" },
"{n} DKIM keys": { one: "{n} ключ DKIM", few: "{n} ключі DKIM", many: "{n} ключів DKIM", other: "{n} ключа DKIM" },
"{n} other items": { one: "{n} інший об'єкт", few: "{n} інші об'єкти", many: "{n} інших об'єктів", other: "{n} іншого об'єкта" },
// ── Administration ────────────────────────────────────────────────
+54
View File
@@ -197,6 +197,58 @@ export const catalog: Catalog = {
"Your organisation has reached the number of mailing lists it is allowed.": "您的组织已达到允许的邮件列表数量。",
"This mailing list no longer exists. Someone may have deleted it.": "此邮件列表已不存在。可能已被他人删除。",
"The server did not say whether the list was created.": "服务器未说明列表是否已创建。",
"Roles": "角色",
"users": "用户",
"groups": "群组",
"tenant administrators": "租户管理员",
"administrators": "管理员",
"A role needs a name.": "角色需要一个名称。",
"Created {name}": "已创建 {name}",
"New role": "新建角色",
"This role carries permissions yours doesn't, so you can view it but not change it.": "此角色拥有您的角色所没有的权限,因此您可以查看但不能更改。",
"Your role lets you view roles but not change them.": "您的角色可以查看角色,但不能更改。",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart 默认将此角色授予 {kinds}。此处的更改会影响所有以这种方式获得它的人。",
"Builds on": "基于",
"Permissions": "权限",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart 默认授予此角色,因此无法删除。请先在 Stalwart 自身的管理界面中更改默认设置。",
"This role carries permissions yours doesn't.": "此角色拥有您的角色所没有的权限。",
"Create role": "创建角色",
"builds on this one": "基于此角色",
"has permissions yours doesn't": "拥有您的角色所没有的权限",
"No other roles": "没有其他角色",
"A role has every permission of the roles it builds on, apart from any it or they deny.": "角色拥有其所基于角色的全部权限,但它或它们拒绝的权限除外。",
"Search permissions": "搜索权限",
"All permissions": "所有权限",
"Granted": "已授予",
"Set on this role": "在此角色上设置",
"No permissions match": "没有匹配的权限",
"{granted} of {total}": "{granted}/{total}",
"Denied by {role}": "被 {role} 拒绝",
"Granted by {role}": "由 {role} 授予",
"Inherit": "继承",
"Not set": "未设置",
"Allow": "允许",
"Deny": "拒绝",
"A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.": "拒绝优先于任何允许,无论是在此处还是在此角色所基于的角色上。您只能允许自己拥有的权限。",
"Accounts, groups and other roles that use it must be moved off it first.": "必须先让使用它的账户、群组和其他角色改用别的角色。",
"Delete role…": "删除角色…",
"Deleted {name}": "已删除 {name}",
"Still used by {things}. Move them to another role first.": "仍被 {things} 使用。请先为它们分配其他角色。",
"Delete role": "删除角色",
"It can't be undone.": "此操作无法撤销。",
"Type {name} to confirm": "输入 {name} 以确认",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "无法加载 Stalwart 的权限列表,因此无法在此更改权限。({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "命名的权限集合,授予账户、群组和租户。",
"Search roles": "搜索角色",
"No roles match": "没有匹配的角色",
"No roles yet": "还没有角色",
"Open {name}": "打开 {name}",
"Default for {kinds}": "默认授予:{kinds}",
"You can't give a role permissions your own role doesn't have.": "您不能给角色授予您自己的角色所没有的权限。",
"Your organisation has reached the number of roles it is allowed.": "您的组织已达到允许的角色数量。",
"This role no longer exists. Someone may have deleted it.": "此角色已不存在。可能已被他人删除。",
"the default roles": "默认角色设置",
"The server did not say whether the role was created.": "服务器未说明角色是否已创建。",
"User": "用户",
"Administrator": "管理员",
"Custom role": "自定义角色",
@@ -1602,6 +1654,8 @@ export const catalog: Catalog = {
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { other: "会先将 {n} 位成员移出群组,他们将失去与群组共享的内容。群组的邮件会在后台删除,且无法撤销。" },
"{n} mailing lists": { other: "{n} 个邮件列表" },
"{n} recipients": { other: "{n} 位收件人" },
"Grants {n} permissions": { other: "授予 {n} 项权限" },
"{n} roles": { other: "{n} 个角色" },
"{n} DKIM keys": { other: "{n} 个 DKIM 密钥" },
"{n} other items": { other: "其他 {n} 项" },
// ── Administration ────────────────────────────────────────────────
+15
View File
@@ -1773,6 +1773,21 @@ select optgroup { background-color: var(--bg-elev); color: var(--fg); }
.admin-suggestions { margin-top: 6px; }
.admin-recipients { max-height: 220px; overflow-y: auto; padding: 2px 0; }
.admin-recipient-filter { display: block; max-width: none; margin-bottom: 8px; }
.admin-sheet.admin-sheet-wide { width: min(620px, 100%); }
.admin-checks { display: flex; flex-direction: column; gap: 2px; }
.admin-check { display: flex; align-items: center; gap: 8px; padding: 4px 2px; cursor: pointer; }
.admin-check.disabled { cursor: default; color: var(--fg-muted); }
.admin-perms-tools { display: flex; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.admin-perms-tools .admin-search { flex: 1; min-width: 180px; max-width: none; }
.admin-perms-tools select { width: auto; }
.admin-perm-group { border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 6px; overflow: hidden; }
.admin-perm-head { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; background: var(--bg-sunken); font-weight: 600; text-align: left; }
.admin-perm-head:hover { background: var(--bg-hover); }
.admin-perm-rows { list-style: none; margin: 0; padding: 0; }
.admin-perm-rows li { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-top: 1px solid var(--border); font-size: .92em; }
.admin-perm-rows li.granted { box-shadow: inset 3px 0 0 var(--accent); }
.admin-perm-rows .mono { font-family: var(--font-mono); font-size: .8em; word-break: break-all; }
.admin-perm-state { width: auto; min-width: 110px; flex: none; }
.admin-kv { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; align-items: center; margin: 0; font-size: .92em; }
.admin-kv dt { color: var(--fg-muted); }
.admin-kv dd { margin: 0; }
+2 -1
View File
@@ -1,6 +1,6 @@
import type { ReactNode } from "react";
import { Link, useLocation } from "wouter";
import { Globe, LayoutDashboard, List, User, UsersRound } from "lucide-react";
import { Globe, LayoutDashboard, List, ShieldCheck, User, UsersRound } from "lucide-react";
import { adminSections, type AdminSection } from "@/lib/adminAccess";
import { t } from "@/lib/i18n";
import { usePermissions } from "./usePermissions";
@@ -10,6 +10,7 @@ export const ADMIN_SECTIONS: Record<AdminSection, { group: string; label: string
accounts: { group: "Directory", label: "Accounts", icon: <User size={20} /> },
groups: { group: "Directory", label: "Groups", icon: <UsersRound size={20} /> },
lists: { group: "Directory", label: "Mailing lists", icon: <List size={20} /> },
roles: { group: "Access", label: "Roles", icon: <ShieldCheck size={20} /> },
domains: { group: "Mail", label: "Domains", icon: <Globe size={20} /> },
};
+2
View File
@@ -6,6 +6,7 @@ import { AdminDashboard } from "./AdminDashboard";
import { DomainsAdmin } from "./DomainsAdmin";
import { GroupsAdmin } from "./GroupsAdmin";
import { ListsAdmin } from "./ListsAdmin";
import { RolesAdmin } from "./RolesAdmin";
import { currentAdminSection } from "./AdminNav";
import { usePermissions } from "./usePermissions";
@@ -14,6 +15,7 @@ const RENDER: Record<AdminSection, (id?: string) => ReactNode> = {
accounts: (id) => <AccountsAdmin selectedId={id} />,
groups: (id) => <GroupsAdmin selectedId={id} />,
lists: (id) => <ListsAdmin selectedId={id} />,
roles: (id) => <RolesAdmin selectedId={id} />,
domains: (id) => <DomainsAdmin selectedId={id} />,
};
+418
View File
@@ -0,0 +1,418 @@
import { useEffect, useMemo, useState } from "react";
import { Lock, Search, Trash2, X } from "lucide-react";
import { can, canGrantRole } from "@/lib/adminAccess";
import { describeDirectoryError } from "@/lib/adminDirectory";
import { describeLinked, DomainError } from "@/lib/adminDomains";
import {
canBuildOn,
createRole,
destroyRole,
effectivePermissions,
inherited,
roleOutranks,
setPatch,
updateRole,
type DirectoryRole,
type PermissionState,
type RoleDefaults,
} from "@/lib/adminRoles";
import type { PermissionEntry } from "@/lib/permissionLabels";
import { plural, t } from "@/lib/i18n";
import { Dialog } from "@/ui/dialog";
import { Spinner } from "@/ui/misc";
import { toast } from "@/ui/toast";
import { usePermissions } from "./usePermissions";
interface Props {
/** Null to create one. */
role: DirectoryRole | null;
roles: ReadonlyMap<string, DirectoryRole>;
defaults: RoleDefaults | null;
/** Stalwart's permissions in the reader's language; null while loading, and on failure with `permissionsError`. */
entries: PermissionEntry[] | null;
permissionsError: string | null;
onClose: () => void;
onChanged: () => void;
onCreated: (id: string) => void;
onDeleted: () => void;
}
/** The kinds of account a role can be the default for, in the order they are named. */
export function defaultKinds(id: string, defaults: RoleDefaults | null): string[] {
if (!defaults) return [];
const out: string[] = [];
if (defaults.user.includes(id)) out.push(t("users"));
if (defaults.group.includes(id)) out.push(t("groups"));
if (defaults.tenant.includes(id)) out.push(t("tenant administrators"));
if (defaults.admin.includes(id)) out.push(t("administrators"));
return out;
}
type Show = "all" | "granted" | "set";
/**
* One role, opened beside the list.
*
* Description, the roles it builds on and its own permissions save together.
* What Save sends for the sets is one pointer per permission or role added or
* taken away, so nothing it did not touch moves.
*/
export function RoleSheet({ role, roles, defaults, entries, permissionsError, onClose, onChanged, onCreated, onDeleted }: Props) {
const perms = usePermissions();
const creating = role === null;
const locked = role ? roleOutranks(perms, role, roles) : false;
const editable = creating ? can(perms, "Role", "Create") : can(perms, "Role", "Update") && !locked;
const kinds = role ? defaultKinds(role.id, defaults) : [];
const [description, setDescription] = useState(role?.description ?? "");
const [bases, setBases] = useState<string[]>(() => Object.keys(role?.roleIds ?? {}));
const [enabled, setEnabled] = useState<Set<string>>(() => new Set(Object.keys(role?.enabledPermissions ?? {})));
const [disabled, setDisabled] = useState<Set<string>>(() => new Set(Object.keys(role?.disabledPermissions ?? {})));
const [busy, setBusy] = useState(false);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
const onKey = (e: KeyboardEvent) => {
if (e.key === "Escape" && !document.querySelector(".dialog-backdrop")) onClose();
};
window.addEventListener("keydown", onKey);
return () => window.removeEventListener("keydown", onKey);
}, [onClose]);
const base = useMemo(() => inherited(bases, roles, role?.id), [bases, roles, role]);
const effective = useMemo(() => effectivePermissions({ roleIds: Object.fromEntries(bases.map((b) => [b, true])), enabledPermissions: Object.fromEntries([...enabled].map((p) => [p, true])), disabledPermissions: Object.fromEntries([...disabled].map((p) => [p, true])) }, roles, role?.id), [bases, enabled, disabled, roles, role]);
const nameOf = (id: string) => roles.get(id)?.description || id;
const setState = (name: string, state: PermissionState) => {
const nextEnabled = new Set(enabled);
const nextDisabled = new Set(disabled);
nextEnabled.delete(name);
nextDisabled.delete(name);
if (state === "allow") nextEnabled.add(name);
if (state === "deny") nextDisabled.add(name);
setEnabled(nextEnabled);
setDisabled(nextDisabled);
};
const save = async () => {
setBusy(true);
setError(null);
try {
if (!role) {
if (!description.trim()) {
setError(t("A role needs a name."));
return;
}
const id = await createRole({ description, roleIds: bases, enabled: [...enabled], disabled: [...disabled] });
toast.success(t("Created {name}", { name: description.trim() }));
onCreated(id);
return;
}
const patch: Record<string, unknown> = {
...setPatch("roleIds", Object.keys(role.roleIds ?? {}), bases),
...setPatch("enabledPermissions", Object.keys(role.enabledPermissions ?? {}), enabled),
...setPatch("disabledPermissions", Object.keys(role.disabledPermissions ?? {}), disabled),
};
if ((role.description ?? "") !== description.trim()) patch.description = description.trim();
if (!Object.keys(patch).length) {
onClose();
return;
}
await updateRole(role.id, patch);
toast.success(t("Saved {name}", { name: description.trim() }));
onChanged();
} catch (err) {
setError(describeDirectoryError(err, "role"));
} finally {
setBusy(false);
}
};
const title = creating ? t("New role") : role.description || role.id;
return (
<aside className="admin-sheet admin-sheet-wide" aria-label={title}>
<div className="admin-sheet-head">
<div className="grow">
<h2 className="truncate">{title}</h2>
<div className="hint">{plural(effective.size, { one: "Grants {n} permission", other: "Grants {n} permissions" })}</div>
</div>
<button className="icon-btn" onClick={onClose} aria-label={t("Close")}>
<X size={20} />
</button>
</div>
<div className="admin-sheet-body">
{locked && (
<p className="admin-notice warn">
<Lock size={16} aria-hidden="true" />
<span>{t("This role carries permissions yours doesn't, so you can view it but not change it.")}</span>
</p>
)}
{!creating && !locked && !can(perms, "Role", "Update") && <p className="admin-notice">{t("Your role lets you view roles but not change them.")}</p>}
{kinds.length > 0 && (
<p className="admin-notice warn">
<span>{t("Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.", { kinds: kinds.join(", ") })}</span>
</p>
)}
<h3>{t("Name")}</h3>
<input className="input admin-wide" aria-label={t("Name")} value={description} disabled={!editable} onChange={(e) => setDescription(e.target.value)} />
<h3>{t("Builds on")}</h3>
<BasePicker role={role} roles={roles} bases={bases} setBases={setBases} editable={editable} />
<h3>{t("Permissions")}</h3>
{permissionsError ? (
<p className="admin-notice error" role="alert">{permissionsError}</p>
) : entries === null ? (
<Spinner />
) : (
<PermissionPicker
entries={entries}
enabled={enabled}
disabled={disabled}
base={base}
effective={effective}
nameOf={nameOf}
editable={editable}
onChange={setState}
/>
)}
{error && <p className="admin-notice error" role="alert">{error}</p>}
{!creating && can(perms, "Role", "Destroy") && (
<DeleteRole
role={role}
blocked={kinds.length ? t("Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.") : locked ? t("This role carries permissions yours doesn't.") : null}
onDeleted={onDeleted}
/>
)}
</div>
{editable && (
<div className="admin-sheet-foot">
<button className="btn btn-ghost" onClick={onClose}>{t("Cancel")}</button>
<button className="btn btn-primary" disabled={busy || !description.trim()} onClick={() => void save()}>
{creating ? t("Create role") : t("Save changes")}
</button>
</div>
)}
</aside>
);
}
function BasePicker({ role, roles, bases, setBases, editable }: {
role: DirectoryRole | null;
roles: ReadonlyMap<string, DirectoryRole>;
bases: string[];
setBases: (b: string[]) => void;
editable: boolean;
}) {
const perms = usePermissions();
const selfId = role?.id ?? null;
const options = [...roles.values()].filter((r) => r.id !== selfId);
return (
<div>
<div className="admin-checks">
{options.map((r) => {
const on = bases.includes(r.id);
// Building on a role that already builds on this one would be a loop.
const loop = !canBuildOn(selfId, r.id, roles);
const grantable = canGrantRole(perms, r.id, roles as Map<string, DirectoryRole>);
return (
<label key={r.id} className={`admin-check ${!editable || loop || (!on && !grantable) ? "disabled" : ""}`}>
<input
type="checkbox"
checked={on}
disabled={!editable || loop || (!on && !grantable)}
onChange={(e) => setBases(e.target.checked ? [...bases, r.id] : bases.filter((b) => b !== r.id))}
/>
<span>{r.description || r.id}</span>
{loop && <span className="hint">{t("builds on this one")}</span>}
{!loop && !on && !grantable && <span className="hint">{t("has permissions yours doesn't")}</span>}
</label>
);
})}
{!options.length && <span className="hint">{t("No other roles")}</span>}
</div>
<p className="hint">{t("A role has every permission of the roles it builds on, apart from any it or they deny.")}</p>
</div>
);
}
function PermissionPicker({ entries, enabled, disabled, base, effective, nameOf, editable, onChange }: {
entries: PermissionEntry[];
enabled: Set<string>;
disabled: Set<string>;
base: { granted: Map<string, string>; denied: Map<string, string> };
effective: Set<string>;
nameOf: (id: string) => string;
editable: boolean;
onChange: (name: string, state: PermissionState) => void;
}) {
const perms = usePermissions();
const [text, setText] = useState("");
const [show, setShow] = useState<Show>("all");
const [open, setOpen] = useState<Set<string>>(new Set());
const needle = text.trim().toLowerCase();
const visible = entries.filter((e) => {
if (show === "granted" && !effective.has(e.name)) return false;
if (show === "set" && !enabled.has(e.name) && !disabled.has(e.name)) return false;
return !needle || e.name.toLowerCase().includes(needle) || e.action.toLowerCase().includes(needle) || e.category.toLowerCase().includes(needle);
});
const groups = useMemo(() => {
const out = new Map<string, { label: string; items: PermissionEntry[]; total: number; granted: number }>();
for (const e of entries) {
const g = out.get(e.categoryKey) ?? { label: e.category, items: [], total: 0, granted: 0 };
g.total += 1;
if (effective.has(e.name)) g.granted += 1;
out.set(e.categoryKey, g);
}
for (const e of visible) out.get(e.categoryKey)!.items.push(e);
return [...out.entries()].filter(([, g]) => g.items.length);
}, [entries, visible, effective]);
const expandAll = Boolean(needle) || show !== "all";
return (
<div className="admin-perms">
<div className="admin-perms-tools">
<label className="admin-search">
<Search size={16} aria-hidden="true" />
<input className="input" type="search" value={text} placeholder={t("Search permissions")} aria-label={t("Search permissions")} onChange={(e) => setText(e.target.value)} />
</label>
<select className="input" aria-label={t("Show")} value={show} onChange={(e) => setShow(e.target.value as Show)}>
<option value="all">{t("All permissions")}</option>
<option value="granted">{t("Granted")}</option>
<option value="set">{t("Set on this role")}</option>
</select>
</div>
{groups.length === 0 && <p className="hint">{t("No permissions match")}</p>}
{groups.map(([key, g]) => {
const isOpen = expandAll || open.has(key);
return (
<section key={key} className="admin-perm-group">
<button
type="button"
className="admin-perm-head"
aria-expanded={isOpen}
onClick={() => {
const next = new Set(open);
if (next.has(key)) next.delete(key);
else next.add(key);
setOpen(next);
}}
>
<span className="grow">{g.label}</span>
<span className="hint">{t("{granted} of {total}", { granted: g.granted, total: g.total })}</span>
</button>
{isOpen && (
<ul className="admin-perm-rows">
{g.items.map((e) => {
const own: PermissionState = enabled.has(e.name) ? "allow" : disabled.has(e.name) ? "deny" : "none";
const from = base.denied.get(e.name) ?? base.granted.get(e.name);
const note = base.denied.has(e.name)
? t("Denied by {role}", { role: nameOf(base.denied.get(e.name)!) })
: from
? t("Granted by {role}", { role: nameOf(from) })
: null;
// Stalwart refuses a grant the caller does not hold; a denial takes nothing it needs to check.
const cannotAllow = !perms.has(e.name) && own !== "allow";
return (
<li key={e.name} className={effective.has(e.name) ? "granted" : ""}>
<div className="grow" style={{ minWidth: 0 }}>
<div>{e.action}</div>
<div className="hint mono notranslate" translate="no">
{e.name}
{note && own === "none" ? ` · ${note}` : ""}
</div>
</div>
<select
className="input admin-perm-state"
aria-label={e.action}
value={own}
disabled={!editable}
onChange={(ev) => onChange(e.name, ev.target.value as PermissionState)}
>
<option value="none">{from ? t("Inherit") : t("Not set")}</option>
<option value="allow" disabled={cannotAllow}>{t("Allow")}</option>
<option value="deny">{t("Deny")}</option>
</select>
</li>
);
})}
</ul>
)}
</section>
);
})}
<p className="hint">{t("A denial wins over anything allowed, here or on a role this one builds on. You can only allow permissions you hold yourself.")}</p>
</div>
);
}
function DeleteRole({ role, blocked, onDeleted }: { role: DirectoryRole; blocked: string | null; onDeleted: () => void }) {
const [open, setOpen] = useState(false);
const [typed, setTyped] = useState("");
const [busy, setBusy] = useState(false);
const [error, setError] = useState<string | null>(null);
const name = role.description || role.id;
return (
<>
<h3>{t("Delete")}</h3>
<div className="admin-danger">
<p>{blocked ?? t("Accounts, groups and other roles that use it must be moved off it first.")}</p>
<button className="btn btn-sm admin-danger-btn" disabled={!!blocked} onClick={() => { setTyped(""); setError(null); setOpen(true); }}>
<Trash2 size={14} /> {t("Delete role…")}
</button>
</div>
<Dialog
open={open}
onClose={() => setOpen(false)}
title={t("Delete {name}?", { name })}
size="sm"
footer={
<>
<button className="btn" onClick={() => setOpen(false)}>{t("Cancel")}</button>
<button
className="btn btn-danger"
disabled={busy || typed.trim() !== name}
onClick={async () => {
setBusy(true);
setError(null);
try {
await destroyRole(role.id);
toast.success(t("Deleted {name}", { name }));
setOpen(false);
onDeleted();
} catch (err) {
setError(
err instanceof DomainError && err.type === "objectIsLinked" && err.linked.length
? t("Still used by {things}. Move them to another role first.", { things: describeLinked(err.linked) })
: describeDirectoryError(err, "role"),
);
} finally {
setBusy(false);
}
}}
>
{t("Delete role")}
</button>
</>
}
>
<p style={{ marginTop: 0 }}>{t("It can't be undone.")}</p>
<div className="field">
<label htmlFor="admin-role-delete-confirm">{t("Type {name} to confirm", { name })}</label>
<input id="admin-role-delete-confirm" className="input" value={typed} autoComplete="off" spellCheck={false} onChange={(e) => setTyped(e.target.value)} />
</div>
{error && <p className="admin-notice error" role="alert">{error}</p>}
</Dialog>
</>
);
}
+162
View File
@@ -0,0 +1,162 @@
import { useEffect, useMemo, useState } from "react";
import { useLocation } from "wouter";
import { Plus, Search, ShieldCheck } from "lucide-react";
import { can } from "@/lib/adminAccess";
import { describeDirectoryError } from "@/lib/adminDirectory";
import { effectivePermissions, listAllRoles, loadPermissionList, loadRoleDefaults, type DirectoryRole, type RoleDefaults } from "@/lib/adminRoles";
import { describePermissions, loadPermissionCatalog, type PermissionEntry } from "@/lib/permissionLabels";
import { plural, t } from "@/lib/i18n";
import { Empty, Spinner } from "@/ui/misc";
import { usePermissions } from "./usePermissions";
import { defaultKinds, RoleSheet } from "./RoleSheet";
/**
* Roles: named sets of permissions that accounts are given.
*
* All of them at once rather than paged -- a server has a handful, not
* thousands -- with the permission list loaded alongside, so a panel opens
* ready to edit.
*/
export function RolesAdmin({ selectedId }: { selectedId?: string }) {
const [, navigate] = useLocation();
const perms = usePermissions();
const [text, setText] = useState("");
const [roles, setRoles] = useState<DirectoryRole[] | null>(null);
const [defaults, setDefaults] = useState<RoleDefaults | null>(null);
const [entries, setEntries] = useState<PermissionEntry[] | null>(null);
const [permissionsError, setPermissionsError] = useState<string | null>(null);
const [error, setError] = useState<string | null>(null);
const [reload, setReload] = useState(0);
useEffect(() => {
let cancelled = false;
setError(null);
listAllRoles().then(
(list) => !cancelled && setRoles(list),
(err) => {
if (cancelled) return;
setRoles([]);
setError(describeDirectoryError(err, "role"));
},
);
void loadRoleDefaults().then((d) => !cancelled && setDefaults(d));
return () => {
cancelled = true;
};
}, [reload]);
// The permission list changes only when Stalwart is upgraded; once per visit is plenty.
useEffect(() => {
let cancelled = false;
Promise.all([loadPermissionList(), loadPermissionCatalog()]).then(
([list, catalog]) => !cancelled && setEntries(describePermissions(list, catalog, t("General"))),
(err) => !cancelled && setPermissionsError(t("Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})", { reason: describeDirectoryError(err, "role") })),
);
return () => {
cancelled = true;
};
}, []);
const byId = useMemo(() => new Map((roles ?? []).map((r) => [r.id, r])), [roles]);
const needle = text.trim().toLowerCase();
const shown = (roles ?? []).filter((r) => !needle || (r.description ?? r.id).toLowerCase().includes(needle));
const selected = selectedId && selectedId !== "new" ? byId.get(selectedId) : null;
const close = () => navigate("/admin/roles");
const changed = () => setReload((n) => n + 1);
return (
<div>
<div className="admin-head">
<div className="grow">
<h1>{t("Roles")}</h1>
<p className="lead">{t("Named sets of permissions, given to accounts, groups and tenants.")}</p>
</div>
{can(perms, "Role", "Create") && (
<button className="btn btn-primary" onClick={() => navigate("/admin/roles/new")}>
<Plus size={16} /> {t("New role")}
</button>
)}
</div>
<div className="admin-toolbar">
<label className="admin-search">
<Search size={16} aria-hidden="true" />
<input className="input" type="search" value={text} onChange={(e) => setText(e.target.value)} placeholder={t("Search roles")} aria-label={t("Search roles")} />
</label>
</div>
{error && <p className="admin-notice error" role="alert">{error}</p>}
{roles === null ? (
<Spinner />
) : shown.length === 0 ? (
!error && <Empty icon={<ShieldCheck size={32} />} title={needle ? t("No roles match") : t("No roles yet")} />
) : (
<>
<div className="admin-table-wrap">
<table className="admin-table">
<thead>
<tr>
<th>{t("Role")}</th>
<th>{t("Permissions")}</th>
<th className="hide-mobile">{t("Builds on")}</th>
</tr>
</thead>
<tbody>
{shown.map((r) => {
const kinds = defaultKinds(r.id, defaults);
return (
<tr
key={r.id}
className={r.id === selectedId ? "selected" : ""}
tabIndex={0}
onClick={() => navigate(`/admin/roles/${r.id}`)}
onKeyDown={(e) => {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
navigate(`/admin/roles/${r.id}`);
}
}}
aria-label={t("Open {name}", { name: r.description || r.id })}
>
<td>
<div className="admin-who-name truncate">{r.description || r.id}</div>
{kinds.length > 0 && <div className="hint truncate">{t("Default for {kinds}", { kinds: kinds.join(", ") })}</div>}
</td>
<td className="muted" style={{ fontVariantNumeric: "tabular-nums" }}>{effectivePermissions(r, byId, r.id).size}</td>
<td className="hide-mobile muted">
<span className="truncate admin-groups">{Object.keys(r.roleIds ?? {}).map((id) => byId.get(id)?.description || id).join(", ") || "—"}</span>
</td>
</tr>
);
})}
</tbody>
</table>
</div>
<p className="hint admin-count">{plural(roles.length, { one: "{n} role", other: "{n} roles" })}</p>
</>
)}
{(selectedId === "new" || selected) && roles && (
<RoleSheet
key={selectedId}
role={selectedId === "new" ? null : selected!}
roles={byId}
defaults={defaults}
entries={entries}
permissionsError={permissionsError}
onClose={close}
onChanged={changed}
onCreated={(id) => {
changed();
navigate(`/admin/roles/${id}`);
}}
onDeleted={() => {
changed();
close();
}}
/>
)}
</div>
);
}
@@ -0,0 +1,92 @@
import { act } from "react";
import { createRoot, type Root } from "react-dom/client";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { useSession } from "@/store/session";
import type { JmapSession } from "@/jmap/types";
import type { DirectoryRole } from "@/lib/adminRoles";
import type { PermissionEntry } from "@/lib/permissionLabels";
(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true;
const api = vi.hoisted(() => ({ updateRole: vi.fn(async () => {}) }));
vi.mock("@/lib/adminRoles", async (original) => ({ ...(await original<typeof import("@/lib/adminRoles")>()), updateRole: api.updateRole }));
const { RoleSheet } = await import("../RoleSheet");
const flags = (...n: string[]) => Object.fromEntries(n.map((x) => [x, true]));
const roles = new Map<string, DirectoryRole>([
["user", { id: "user", description: "User", enabledPermissions: flags("jmapEmailGet") }],
["help", { id: "help", description: "Helpdesk", enabledPermissions: flags("sysAccountGet"), roleIds: flags("user") }],
["admin", { id: "admin", description: "Admin", enabledPermissions: flags("sysTenantCreate") }],
]);
const entries: PermissionEntry[] = [
{ name: "jmapEmailGet", categoryKey: "JMAP", category: "JMAP", action: "Get emails" },
{ name: "sysAccountGet", categoryKey: "Accounts Management", category: "Accounts Management", action: "Get accounts" },
{ name: "sysAccountUpdate", categoryKey: "Accounts Management", category: "Accounts Management", action: "Update accounts" },
{ name: "sysTenantCreate", categoryKey: "Tenants Management", category: "Tenants Management", action: "Create tenants" },
];
const signIn = (permissions: string[]) =>
useSession.setState({ session: { capabilities: {}, accounts: {}, primaryAccounts: {}, username: "[email protected]", ihasmail: { permissions } } as unknown as JmapSession });
const button = (host: HTMLElement, label: string) => [...host.querySelectorAll("button")].find((b) => b.textContent?.trim() === label || b.textContent?.includes(label));
const change = async (el: HTMLSelectElement, value: string) => {
await act(async () => {
Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype, "value")!.set!.call(el, value);
el.dispatchEvent(new Event("change", { bubbles: true }));
});
};
describe("the role sheet", () => {
let host: HTMLDivElement;
let root: Root;
const render = async (role: DirectoryRole, defaults = null as { user: string[]; group: string[]; tenant: string[]; admin: string[] } | null) => {
await act(async () => {
root.render(<RoleSheet role={role} roles={roles} defaults={defaults} entries={entries} permissionsError={null} onClose={() => {}} onChanged={() => {}} onCreated={() => {}} onDeleted={() => {}} />);
});
};
const VIEWER = ["sysRoleGet", "sysRoleQuery", "sysRoleUpdate", "sysRoleDestroy", "jmapEmailGet", "sysAccountGet", "sysAccountUpdate"];
beforeEach(() => {
host = document.createElement("div");
document.body.appendChild(host);
root = createRoot(host);
api.updateRole.mockClear();
});
afterEach(async () => {
await act(async () => root.unmount());
host.remove();
});
it("shows where an inherited permission comes from, and saves only the change as a pointer", async () => {
signIn(VIEWER);
await render(roles.get("help")!);
await act(async () => button(host, "Accounts Management")!.click());
await act(async () => button(host, "JMAP")!.click());
expect(host.textContent).toContain("Granted by User");
await change(host.querySelector<HTMLSelectElement>('select[aria-label="Update accounts"]')!, "allow");
await change(host.querySelector<HTMLSelectElement>('select[aria-label="Get emails"]')!, "deny");
await act(async () => button(host, "Save changes")!.click());
expect(api.updateRole).toHaveBeenCalledWith("help", { "enabledPermissions/sysAccountUpdate": true, "disabledPermissions/jmapEmailGet": true });
});
it("will not let a viewer allow what they do not hold", async () => {
signIn(VIEWER);
await render(roles.get("help")!);
await act(async () => button(host, "Tenants Management")!.click());
const allow = host.querySelector<HTMLSelectElement>('select[aria-label="Create tenants"]')!.querySelector<HTMLOptionElement>('option[value="allow"]')!;
expect(allow.disabled).toBe(true);
});
it("opens a role that outranks the viewer read-only, with no delete", async () => {
signIn(VIEWER);
await render(roles.get("admin")!);
expect(host.textContent).toContain("This role carries permissions yours doesn't");
expect(button(host, "Save changes")).toBeUndefined();
expect(button(host, "Delete role…")?.disabled).toBe(true);
});
it("warns about a default role and will not delete it", async () => {
signIn(VIEWER);
await render(roles.get("user")!, { user: ["user"], group: [], tenant: [], admin: [] });
expect(host.textContent).toContain("Stalwart gives this role by default to users");
expect(button(host, "Delete role…")?.disabled).toBe(true);
});
});