_version: 1
tab.cluster: "Cluster"
tab.topics: "Topics"
tab.tokens: "Tokens"
tab.profiles: "Profiles"
frame.too-small: "The terminal is %{width}x%{height}. Taba needs at least %{min_width}x%{min_height}: enlarge the window."
health.ok: "healthy"
health.offline: "offline"
health.degraded: "degraded"
health.unknown: "checking"
seal.partial: "incomplete: some node did not answer"
seal.partial-nodes: "incomplete: did not answer: %{nodes}"
seal.short: "incomplete"
denied.root: "Your token must be the root token to see this."
denied.permission: "Your token needs the %{permission} permission to do this."
denied.unauthorized: "The server did not accept the token (401). Check the token of the profile."
denied.generic: "The server refused this request (403)."
gate.not-root: "This needs the root token."
gate.not-admin: "This needs the admin permission or the root token."
gate.root-for-admin: "Only the root token changes or revokes an admin token."
gate.no-node: "Select a node first."
gate.unreachable: "The selected node did not answer."
gate.not-active: "The node is already draining or drained."
gate.not-draining: "The node is not draining: there is nothing to return."
gate.busy: "Another action is still running."
state.loading: "Loading..."
state.unreachable: "unreachable"
state.stale: "old data"
error.offline: "Cannot reach %{url}. %{message} Trying again."
error.api: "%{code}: %{message}"
cluster.nodes.one: "%{n} node"
cluster.nodes.other: "%{n} nodes"
cluster.conditions: "Conditions"
col.node: "Node"
col.state: "State"
col.drain: "Drain"
col.version: "Version"
col.memory: "Memory"
col.messages: "Msgs mem/disk"
col.disk-free: "Disk free"
col.sync: "Sync"
col.requests: "Req"
col.rejected: "429"
summary.members: "Members"
summary.quorum: "quorum"
summary.no-quorum: "no quorum"
summary.table: "table v"
summary.syncing: "syncing blocks"
condition.means: "What it means"
condition.todo: "What to do"
condition.write-quorum-at-risk: "write quorum at risk"
condition.write-quorum-at-risk.meaning: "One more node failure and writes would lose their quorum."
condition.write-quorum-at-risk.action: "Bring the missing node back, or add capacity, before another one fails."
condition.quorum-lost: "quorum lost"
condition.quorum-lost.meaning: "Too few nodes are reachable: writes are being refused."
condition.quorum-lost.action: "Restore the unreachable nodes now. Check their processes and the network between them."
condition.membership-divergent: "membership divergent"
condition.membership-divergent.meaning: "The nodes disagree about who is in the cluster."
condition.membership-divergent.action: "Wait a few seconds. If it persists, compare the members table version of each node and restart the one that is behind."
condition.member-unreachable: "member unreachable"
condition.member-unreachable.meaning: "A member of the cluster does not answer."
condition.member-unreachable.action: "Check that its process is running and that its cluster port is reachable."
condition.node-frozen: "node frozen"
condition.node-frozen.meaning: "A node was excluded from the cluster and no longer takes part in it."
condition.node-frozen.action: "Return it (it comes back as a new node) or replace it."
condition.syncing: "syncing"
condition.syncing.meaning: "A node is catching up with the cluster's data."
condition.syncing.action: "Wait for it to finish, and avoid draining other nodes meanwhile."
condition.under-replicated: "under-replicated"
condition.under-replicated.meaning: "Some blocks have fewer copies than configured."
condition.under-replicated.action: "Wait for the sync. If it persists, check the free disk space and the channels between the nodes."
condition.storage-pressure: "storage pressure"
condition.storage-pressure.meaning: "A node is short on disk space."
condition.storage-pressure.action: "Free or add disk space on that node before it stops accepting messages."
detail.no-node: "No node selected."
detail.node: "Node"
detail.started: "Started"
detail.storage: "Storage"
detail.messages: "Messages"
detail.messages-value: "%{memory} in memory, %{disk} on disk"
detail.signals: "Signals"
detail.quorum: "Quorum"
detail.channels: "Channels"
detail.below-replication: "Blocks below replication"
detail.below-quorum: "Blocks below quorum"
detail.frozen: "Frozen nodes"
detail.syncing: "Syncing blocks"
detail.requests: "Requests in flight"
detail.rejected: "Requests refused (429), total"
detail.no-limit: "no limit"
detail.rtt: "Channel round trip (p95)"
detail.backup: "S3 backup"
detail.backup-off: "S3 backup is not configured."
detail.s3-reachable: "S3 reachable"
detail.pending: "Pending"
detail.last-success: "Last success"
detail.segments: "Segments"
detail.drain: "Drain"
detail.drain-progress: "%{state}: %{pending} messages still in memory"
detail.metrics: "Metrics of the node (Prometheus)"
value.yes: "yes"
value.no: "no"
chart.memory: "Memory"
chart.ready: "Messages in memory"
chart.disk: "Messages on disk"
chart.requests: "Requests in flight"
chart.rejected: "Requests refused (429)"
chart.rtt: "Channel round trip"
chart.line.used: "used"
chart.line.limit: "limit"
chart.line.in-memory: "in memory"
chart.line.on-disk: "on disk"
chart.line.requests: "requests"
chart.line.rejected: "refused per second"
chart.line.rtt: "p95"
chart.total: "total %{value}"
chart.worst: "worst %{value}"
chart.no-data: "No samples yet."
chart.now: "now"
chart.collected: "%{time} collected: the history is only what was sampled since the app opened"
chart.history-note: "History is only what was sampled since the app opened; for longer history use Prometheus"
chart.paused: "paused"
chart.scale-fixed: "scale from zero"
chart.scale-auto: "automatic scale"
chart.partial-samples: "some samples come from incomplete reads"
hint.detail: "detail"
hint.drain: "drain"
hint.return: "return"
hint.flush: "flush"
hint.flush-all: "flush all"
hint.stop: "stop cluster"
hint.monitor: "charts"
hint.help: "help"
hint.palette: "commands"
hint.quit: "quit"
hint.back: "back"
hint.chart: "scroll"
hint.window: "window"
hint.freeze: "freeze"
hint.scale: "scale"
hint.export: "export"
hint.language: "language"
hint.refresh: "refresh"
hint.pause: "pause"
hint.more: "more"
footer.paused: "paused"
footer.stale: "old data from %{since} UTC, retry in %{retry}s"
footer.working: "working"
keys.tab: "Go to a tab"
keys.tab-next: "Next tab"
keys.tab-prev: "Previous tab"
keys.pane-next: "Next panel"
keys.pane-prev: "Previous panel"
keys.up: "Move up"
keys.down: "Move down"
keys.page-up: "Scroll up a page"
keys.page-down: "Scroll down a page"
keys.first: "First"
keys.last: "Last"
keys.left: "Back, or move left"
keys.right: "Open, or move right"
keys.esc: "Close or cancel"
keys.filter: "Filter"
keys.sort: "Sort"
keys.sort-reverse: "Reverse the sort"
keys.refresh: "Refresh now"
keys.pause: "Pause or resume the refresh"
keys.palette: "Command palette"
keys.language: "Choose the language"
keys.help: "Help"
keys.quit: "Quit"
keys.submit: "Send the form"
keys.cluster.drain: "Drain the node"
keys.cluster.return: "Return the node"
keys.cluster.flush-node: "Flush the backup of the node"
keys.cluster.flush-all: "Flush the backup of every node"
keys.cluster.stop: "Stop the cluster"
keys.cluster.monitor: "Charts of the cluster"
keys.monitor.wider: "Wider window"
keys.monitor.narrower: "Narrower window"
keys.monitor.pause: "Freeze or resume the chart"
keys.monitor.scale: "Automatic or zero-based scale"
keys.monitor.export: "Export the chart as CSV"
help.title: "Help"
help.close: "Esc closes"
popup.close: "Enter or Esc closes"
palette.title: "Commands"
palette.go-to: "Go to %{tab}"
palette.empty: "No command matches."
language.title: "Language"
language.hint: "Enter chooses, Esc cancels. It is kept in ui.language."
confirm.cancel: "Cancel"
confirm.ok: "Confirm"
confirm.type: "Type %{name} to confirm:"
confirm.drain.title: "Drain the node?"
confirm.drain.body: "Node %{node} will write everything in memory to disk, stop taking requests and leave the cluster. The process keeps running as drained; you can return the node later."
confirm.return.title: "Return the node?"
confirm.return.body: "Node %{node} will come back to the cluster as a new node: a new id, a full bootstrap, recovering what was lost meanwhile."
confirm.flush-node.title: "Flush the backup of this node?"
confirm.flush-node.body: "Node %{node} will move memory to disk and send segments and journals to S3. It is safe in production: the node keeps running."
confirm.flush-all.title: "Flush the backup of every node?"
confirm.flush-all.body: "Every node will move memory to disk and send segments and journals to S3. A slow or unreachable node is reported, and you can repeat the flush."
confirm.stop.title: "Stop the cluster?"
confirm.stop.body: "Every node will be drained with its backup sent. The processes keep running as drained: stopping them is up to your orchestrator. Clients are refused until the nodes return."
report.flush.title: "Backup flush"
report.flush.complete: "Complete: nothing was left behind."
report.flush.incomplete: "Incomplete: something was left behind."
report.flush.node-complete: "complete"
report.flush.node-error: "failed: %{error}"
report.flush.node-timeout: "timed out"
report.flush.node-pending: "pending: %{outbox} in the outbox, %{memory} still in memory"
report.flush.repeat: "A node that is not complete can be flushed again."
report.stop.title: "Cluster stop"
report.stop.stopped.one: "%{n} node stopped"
report.stop.stopped.other: "%{n} nodes stopped"
report.stop.drained: "drained"
report.stop.not-drained: "not drained"
report.stop.list: "The stop list was written."
report.stop.no-list: "The stop list was not written."
report.stop.processes: "The processes keep running as drained. Stopping them is up to your orchestrator, for example docker compose stop."
report.failure.title: "The action failed"
report.failure.offline: "The server could not be reached. Nothing was changed on this screen."
report.failure.no-ops-port: "This route is only served when the operations API has its own port (operations.port)."
report.failure.node-hint: "A node did not answer in time. The other nodes keep their data; check that node and try again."
report.failure.no-backup: "The S3 backup is not configured on this cluster (backup.s3.bucket): there is nothing to send."
report.failure.request-id: "request id: %{id}"
export.title: "Export the chart"
export.prompt: "File to write (an existing file is never overwritten):"
export.hint: "Enter writes, Esc cancels."
notice.file-written: "Wrote %{path}"
notice.file-failed: "Could not write %{path}: %{error}"
notice.language-not-saved: "The language changed but could not be saved: %{error}"
notice.drain-started: "Drain started on %{node}"
notice.return-started: "Return started on %{node}"
notice.drained: "Node %{node} is drained"
notice.returned: "Node %{node} is active again"
notice.bad-reply: "The server answered something unexpected: %{error}"
summary.stopped: "Cluster stopped: every node is in drain and refuses data calls. Return a node (u) or restart the nodes."
summary.stopped-planned: "Cluster stopped by a planned stop (%{at}): restart the nodes and the next start restores it from S3, or return a node (u)."
error.draining: "The node is in drain and no other node can serve: the cluster may be stopped. Restart the nodes or return one."
gate.tokens-unknown: "Still checking who this token is."
gate.tokens-no-auth: "The server runs without authentication: there are no tokens."
gate.no-token: "Select a token first."
gate.no-profile: "There is no profile: create one with n on the Profiles tab."
col.name: "Name"
col.id: "Id"
col.permissions: "Permissions"
col.prefixes: "Topic prefixes"
col.expires: "Expires"
col.url: "Address"
col.token: "Token"
col.default: "Default"
sort.newest: "newest first"
sort.oldest: "oldest first"
sort.name: "name"
sort.id: "id"
tokens.no-auth: "The server runs without authentication, so it has no tokens. Turn authentication on to create them."
tokens.using: "You are using the token %{name} of the profile %{profile}. Choose another profile (o) or ask for a token with the admin permission."
tokens.count.one: "%{n} token"
tokens.count.other: "%{n} tokens"
tokens.sorted: "sorted by %{by} (s)"
tokens.filtered: "filter \"%{text}\": %{shown} shown (/)"
tokens.never: "never"
tokens.detail: "Token"
tokens.none: "There are no tokens to show. Press n to create one."
tokens.created: "Created"
tokens.expired: "expired"
tokens.soon: "expires soon"
tokens.all-topics: "every topic"
tokens.immutable: "Permissions and prefixes never change: to change them, clone the token (c) and revoke the old one."
filter.title: "Filter the tokens"
filter.prompt: "Part of the name (empty shows every token):"
filter.hint: "Enter applies, Esc cancels."
editor.token-create: "New token"
editor.token-clone: "Clone the token"
editor.token-edit: "Edit the token"
editor.profile-new: "New profile"
editor.profile-edit: "Edit the profile"
editor.field.name: "Name"
editor.field.prefixes: "Topic prefixes"
editor.field.expires: "Expires"
editor.field.url: "Address (url)"
editor.field.ops-url: "Operations address"
editor.field.token-file: "Token file"
editor.field.token: "Token (kept in the file)"
editor.field.ca-file: "CA certificate file"
editor.field.default: "Default profile"
editor.perm.publish: "publish"
editor.perm.consume: "consume"
editor.perm.create: "create"
editor.perm.manage: "manage"
editor.perm.admin: "admin"
editor.locked.clone: "cannot change: clone the token"
editor.locked.root: "only the root token creates it"
editor.error.name: "Give it a name."
editor.error.permissions: "Choose at least one permission."
editor.error.expiry: "Not understood: use 30d, 12h, 90m, a date such as 2027-01-31, or leave it empty."
editor.error.nothing: "Nothing changed."
editor.error.profile-exists: "There is already a profile called %{name}."
editor.error.profile-gone: "The profile %{name} no longer exists."
editor.help-token: "Prefixes: separated by spaces, empty for every topic. Expires: 30d, 12h, 90m, a date such as 2027-01-31, or empty for never."
editor.help-profile: "Empty fields use the built-in value. Prefer a token file: a token typed here is kept in the file as written."
editor.saving: "Saving..."
editor.hint: "Tab next field · Space ticks · Enter on the last field or Ctrl+S saves · Esc cancels"
editor.hint-profile: "Tab next field · Space ticks · Ctrl+S saves · Ctrl+T tests the connection · Esc cancels"
check.ok: "%{url} answered in %{ms} ms"
check.refused: "%{url} answered %{status}: check the token"
check.answered: "%{url} answered %{status} (%{code})"
check.failed: "Could not connect: %{error}"
profiles.none: "There are no profiles in the file."
profiles.builtin: "Without a profile the built-in address applies (%{url})."
profiles.create-first: "Press n to create the first one."
profiles.in-use: "in use"
profiles.token-file: "file"
profiles.token-inline: "in the file"
profiles.token-none: "none"
profiles.detail: "Profile"
profiles.session-note: "Enter connects with this profile now; the default (d) is the one used when none is given."
profiles.pick-title: "Which profile?"
profiles.switch-title: "Switch profile"
profiles.pick-hint: "Enter connects · Esc uses the default (●) · ↑↓ choose. The filled dot marks the default."
profiles.switch-hint: "Enter connects · Esc closes · ↑↓ choose. The filled dot marks the default."
confirm.revoke.title: "Revoke the token?"
confirm.revoke.body: "The token %{name} stops working on every node as soon as the revoke is committed. Applications that use it will be refused."
confirm.remove-profile.title: "Remove the profile?"
confirm.remove-profile.body: "The profile %{name} is removed from the configuration file. The tokens and servers are not touched."
secret.title: "Token secret"
secret.created: "Token %{name} created."
secret.once: "This secret is shown only now. The server does not keep it and cannot show it again."
secret.masked: "Hidden after 30 seconds or when the window loses the focus. c still copies it."
secret.revoke-old: "Revoke the old token %{name} when closing (r)"
secret.not-kept: "You have not copied or saved it. Press Esc again to close anyway."
secret.copied: "Sent to the clipboard (the terminal must allow it)."
secret.saved: "Saved to a file only you can read."
secret.copied-saved: "Sent to the clipboard and saved to a file only you can read."
secret.hint: "c copies · s saves to a file · Esc closes"
secret.hint-clone: "c copies · s saves to a file · r revokes the old token on closing · Esc closes"
notice.token-updated: "Token updated"
notice.token-revoked: "Token revoked on every node"
notice.secret-copied: "Secret sent to the clipboard"
notice.profiles-saved: "Profiles saved"
notice.profiles-not-saved: "Could not save the profiles: %{error}"
notice.profile-already-default: "%{name} is already the default profile"
notice.connected: "Connected with %{profile} (%{url})"
notice.connect-failed: "Could not use the profile %{profile}: %{error}"
hint.filter: "filter"
hint.sort: "sort"
hint.profile: "profile"
hint.new: "new"
hint.edit: "edit"
hint.clone: "clone"
hint.revoke: "revoke"
hint.use: "connect"
hint.default: "default"
hint.remove: "remove"
hint.test: "test"
keys.profile-switch: "Switch profile"
keys.tokens.new: "New token"
keys.tokens.edit: "Edit the name or the expiry of the token"
keys.tokens.clone: "Clone the token into a new one"
keys.tokens.revoke: "Revoke the token"
keys.profiles.new: "New profile"
keys.profiles.edit: "Edit the profile"
keys.profiles.default: "Make it the default profile"
keys.profiles.remove: "Remove the profile"
keys.profiles.test: "Test the connection of the profile"
editor.help-first-profile: "There is no profile yet. Create the first one to connect with it; Esc skips this and uses the built-in address."
gate.me-unknown: "Still checking who this token is."
gate.need-create: "Creating a topic needs the create permission."
gate.need-manage: "Changing or deleting a topic needs the manage permission."
gate.no-topic: "Select a topic first."
gate.topic-read-only: "A dead-letter queue follows its source queue: change or delete the source queue instead."
col.type: "Type"
col.depth: "Depth"
col.publish: "Pub/s"
col.consume: "Cons/s"
col.age: "Age"
sort.depth: "depth"
topics.count.one: "%{n} topic"
topics.count.other: "%{n} topics"
topics.no-numbers: "numbers unavailable"
topics.kind.queue: "queue"
topics.kind.distributor: "distributor"
topics.kind.dead-letter: "dead-letter"
topics.ok: "ok"
topics.detail: "Topic"
topics.none: "There are no topics to show. Press n to create one."
topics.none-filtered: "No topic matches the filter (/)."
topics.created: "Created"
topics.tags: "Tags"
topics.prefixes: "Prefixes"
topics.limits: "Limits"
topics.limits-value: "message %{bytes} · ttl %{ttl} · deliveries %{deliveries}"
topics.idle: "Idle timeout"
topics.default: "(default)"
topics.dead-letter-note: "Dead-letter queue of %{source}: it follows that queue and cannot be changed or deleted on its own."
topics.immutable: "The type, FIFO and volatile never change after the topic is created."
topic-filter.title: "Filter the topics"
topic-filter.prompt: "Part of the name (empty shows every topic):"
editor.topic-create: "New topic"
editor.topic-edit: "Edit the topic"
editor.field.distributor: "Type: distributor"
editor.field.fifo: "FIFO"
editor.field.volatile: "Volatile"
editor.field.idle: "Idle timeout (s)"
editor.field.max-bytes: "Max message bytes"
editor.field.ttl: "TTL (s)"
editor.field.max-deliveries: "Max deliveries"
editor.field.tags: "Tags (key=value)"
editor.field.topic-prefixes: "Prefixes"
editor.locked.topic: "does not change after creation"
editor.locked.not-queue: "queues only"
editor.locked.not-volatile: "volatile queues only"
editor.locked.not-distributor: "distributors only"
editor.error.topic-name: "A name has only letters, digits, _ and -."
editor.error.number: "Use a whole number."
editor.error.tags: "Tags are key=value pairs separated by spaces."
editor.error.prefixes-needed: "A distributor needs at least one prefix."
editor.error.distributor-fields: "A distributor has no FIFO, volatile, idle timeout or limits: clear them."
editor.error.queue-prefixes: "Only a distributor has prefixes."
editor.error.idle-needs-volatile: "The idle timeout is for volatile queues."
editor.help-topic: "Unticked type is a queue. Tags and prefixes: separated by spaces. Empty limits (or default) use the node's values. The server checks the rest."
confirm.delete-topic.title: "Delete the topic?"
confirm.delete-topic.body: "The topic %{name} and every message in it are lost for good, and so is its dead-letter queue. This cannot be undone."
notice.topic-created: "Topic %{name} created"
notice.topic-updated: "Topic %{name} updated"
notice.topic-deleted: "Topic %{name} deleted"
hint.delete: "delete"
keys.topics.new: "New topic"
keys.topics.edit: "Edit the tags, prefixes, idle timeout and limits of the topic"
keys.topics.delete: "Delete the topic and its messages"
gate.topic-no-charts: "A distributor has no queue, so there is nothing to chart."
topic-chart.messages: "Messages"
topic-chart.visible: "visible"
topic-chart.invisible: "invisible"
topic-chart.flow: "Flow per second"
topic-chart.published: "in"
topic-chart.consumed: "out"
topic-chart.acked: "deleted"
topic-chart.age: "Oldest message"
topic-chart.oldest: "queue"
topic-chart.group: "%{group}"
hint.dead: "dead-letter"
keys.topics.dead: "Show or hide the dead-letter queues"
topics.dead-hidden: "dead-letter hidden: %{n} (v)"
keys.topics.messages: "Open the messages of the topic: publish, read, acknowledge, prune"
hint.messages: "messages"
hint.publish: "publish"
hint.receive: "read"
hint.ack: "ack"
hint.ack-all: "ack all"
hint.release: "give back"
hint.prune: "prune"
keys.messages.publish: "Publish a message to the topic"
keys.messages.receive: "Read up to 10 messages (they turn invisible to the others for 30 s)"
keys.messages.ack: "Acknowledge the selected message (it is deleted)"
keys.messages.ack-all: "Acknowledge every message still held"
keys.messages.release: "Give the selected message back to the queue now"
keys.messages.prune: "Prune the topic: delete every message, on every node"
gate.need-publish: "Publishing needs the publish permission."
gate.need-consume: "Reading and acknowledging need the consume permission."
gate.topic-no-receive: "A distributor has no queue: it only publishes."
gate.no-held-message: "The selected message is not held any more: read the queue again."
editor.message-publish: "Publish a message"
editor.field.body: "Body"
editor.field.content-type: "Content type"
editor.field.group: "Group id"
editor.field.dedup: "Deduplication id"
editor.error.body: "The body is empty."
editor.error.content-type: "The content type is empty."
confirm.prune.title: "Prune the topic?"
confirm.prune.body: "Every message of %{name} is deleted, on every node. Messages published while it runs are not covered. This cannot be undone."
col.time: "Time"
col.group: "Group"
col.deliveries: "Del"
col.size: "Bytes"
col.body: "Body"
messages.counters: "Queue: %{visible} visible · %{invisible} invisible · depth %{depth} · oldest %{age}"
messages.distributor: "No queue here: published messages are copied to the matching queues."
messages.title: "Received by this session (%{n})"
messages.empty: "The API does not list a queue: the rows are the messages you read here. r reads up to 10, p publishes."
messages.empty-distributor: "A distributor keeps nothing. p publishes to the queues that match its prefixes."
messages.detail: "Message"
messages.no-selection: "Select a message to see it."
messages.facts: "%{type} · %{size} bytes · %{deliveries} deliveries"
messages.truncated: "… only the start is kept here (%{size} bytes in all)"
messages.state.deleted: "deleted"
messages.state.held: "invisible %{secs}s"
messages.state.visible: "visible again"
messages.published: "Published %{id}"
messages.published-duplicate: "Not published: the deduplication id was already used"
messages.published-matched: "Published to %{n} queues"
messages.nothing: "No visible message to read"
messages.received: "Read %{n}: held for %{secs} s"
messages.acked: "Acknowledged %{id}"
messages.released: "Gave %{id} back to the queue"
messages.refused: "Message %{id} was not changed: %{error}"
messages.pruned: "Pruned: %{n} messages removed"
hint.actions: "actions"
hint.charts: "charts"
keys.enter: "Open the actions of the item, or confirm"
keys.cluster.detail: "Detail of the node, or what a condition means"
keys.profiles.use: "Connect with the profile"
keys.topics.charts: "Open the charts of the topic"
menu.hint: "↑↓ choose · Enter run · Esc close"
menu.title-topic: "Topic %{name}"
menu.title-token: "Token %{name}"
menu.title-profile: "Profile %{name}"
menu.title-node: "Node %{name}"
menu.topic-charts: "Charts of the topic"
menu.topic-messages: "Messages of the topic"
menu.msg-publish: "Publish a message"
menu.msg-receive: "Read messages"
menu.msg-prune: "Empty the queue (delete all messages)"
menu.topic-edit: "Edit the topic"
menu.topic-delete: "Delete the topic"
menu.token-edit: "Edit the token"
menu.token-clone: "Clone the token"
menu.token-revoke: "Revoke the token"
menu.profile-use: "Connect with this profile"
menu.profile-edit: "Edit the profile"
menu.profile-default: "Make it the default profile"
menu.profile-test: "Test the connection"
menu.profile-remove: "Remove the profile"
menu.node-detail: "Details of the node"
menu.node-monitor: "Charts of the node"
menu.node-drain: "Drain the node"
menu.node-return: "Bring the node back"
menu.node-flush: "Flush the node"
menu.node-flush-all: "Flush every node"
menu.node-stop: "Stop the cluster"
editor.area-lines: "(%{n} lines)"
editor.hint-publish: "Tab next field · Enter new line in the body · Ctrl+s send · Esc cancel"
keys.topics.summary: "Summary of the topic: id, creation, tags and limits"
menu.topic-summary: "Summary of the topic"
topic.dialog-summary: "Summary of the topic %{name}"
summary.hint: "Esc close"
editor.message-receive: "Read messages"
editor.field.hold: "Invisible for (s)"
editor.error.hold: "Enter the seconds as a whole number above zero."
chart.list: "Charts"
keys.monitor.full: "Show the chart on the whole screen, or go back to the list"
hint.full: "full screen"
topic.screen-charts: "Topics › %{name} · Charts"
topic.screen-messages: "Topics › %{name} · Messages"
editor.field.max: "How many messages"
editor.error.max: "Enter how many messages as a whole number above zero."
editor.help-receive: "Reads up to that many messages and hides them from every other consumer for the time below, or until you acknowledge or give them back. Reading changes the queue."
editor.message-visibility: "Change the time of the message"
editor.help-visibility: "The message stays invisible for this many seconds from now. 0 gives it back to the queue right away."
editor.field.seconds: "Invisible for (s)"
editor.error.seconds: "Enter the seconds as a whole number (0 gives the message back)."
messages.visibility: "Message %{id} is invisible for %{secs} s from now"
messages.dialog-title: "Message %{id}"
messages.dialog.held: "Invisible for %{secs} s more: you can still change its time or delete it."
messages.dialog.expired: "The time ran out: the receipt no longer works, so this message cannot be changed or deleted from here. The queue gives it to a consumer again."
messages.dialog.deleted: "Deleted: it is gone from the queue."
messages.dialog.facts: "Group %{group} · %{type} · %{size} bytes · %{deliveries} deliveries · received at %{at}"
messages.dialog.change: "change time"
messages.dialog.delete: "delete"
messages.dialog.close: "close"
editor.field.base64: "Body is base64"
editor.error.base64: "The body is not valid base64: untick the box to send the text as typed."
editor.help-publish: "The body goes as typed and can have several lines. Tick base64 to type the bytes in base64 (sent decoded). Group and deduplication id are optional (FIFO queues use both)."
messages.dialog.as-sent: "as sent"
messages.dialog.formatted: "formatted"
messages.dialog.base64: "base64"
messages.dialog.format: "format"
messages.dialog.not-formattable: "Not valid JSON or simple YAML (maps and texts): shown as sent."