import type { TranslationMap } from
"../lib/types.ts" ;
export
const en: TranslationMap = {
common: {
health:
"Health" ,
ok:
"OK" ,
yes:
"Yes" ,
no:
"No" ,
active:
"Active" ,
loading:
"Loading…" ,
refreshing:
"Refreshing…" ,
online:
"Online" ,
offline:
"Offline" ,
connect:
"Connect" ,
connected:
"Connected" ,
refresh:
"Refresh" ,
reload:
"Reload" ,
probe:
"Probe" ,
call:
"Call" ,
confirm:
"Confirm" ,
cancel:
"Cancel" ,
unselect:
"Unselect" ,
enabled:
"Enabled" ,
disabled:
"Disabled" ,
na:
"n/a" ,
configured:
"Configured" ,
running:
"Running" ,
linked:
"Linked" ,
mode:
"Mode" ,
baseUrl:
"Base URL" ,
lastStart:
"Last start" ,
lastProbe:
"Last probe" ,
lastInbound:
"Last inbound" ,
lastConnect:
"Last connect" ,
lastMessage:
"Last message" ,
authAge:
"Auth age" ,
credential:
"Credential" ,
audience:
"Audience" ,
publicKey:
"Public Key" ,
probeOk:
"Probe ok" ,
probeFailed:
"Probe failed" ,
reloadConfig:
"Reload Config" ,
loadConfig:
"Load config" ,
loadApprovals:
"Load approvals" ,
settingsSections:
"Settings sections" ,
version:
"Version" ,
docs:
"Docs" ,
theme:
"Theme" ,
resources:
"Resources" ,
search:
"Search" ,
save:
"Save" ,
saving:
"Saving…" ,
saveAndPublish:
"Save & Publish" ,
importing:
"Importing…" ,
importFromRelays:
"Import from Relays" ,
showAdvanced:
"Show Advanced" ,
hideAdvanced:
"Hide Advanced" ,
unsavedChanges:
"You have unsaved changes" ,
secondsAgo:
"{count}s ago" ,
working:
"Working…" ,
showQr:
"Show QR" ,
relink:
"Relink" ,
waitForScan:
"Wait for scan" ,
logout:
"Logout" ,
},
channels: {
health: {
title:
"Channel health" ,
subtitle:
"Channel status snapshots from the gateway." ,
noSnapshotYet:
"No snapshot yet." ,
},
generic: {
subtitle:
"Channel status and configuration." ,
},
gatewayUrlConfirmation: {
title:
"Change Gateway URL" ,
subtitle:
"This will reconnect to a different gateway server" ,
warning:
"Only confirm if you trust this URL. Malicious URLs can compromise your system." ,
},
nostr: {
profile:
"Profile" ,
editProfile:
"Edit Profile" ,
profilePicture:
"Profile picture" ,
noProfile:
"No profile set." ,
noProfileHint:
'Click "Edit Profile" to add your name, bio, and avatar.' ,
name:
"Name" ,
displayName:
"Display Name" ,
about:
"About" ,
advanced:
"Advanced" ,
profilePicturePreview:
"Profile picture preview" ,
account:
"Account" ,
username:
"Username" ,
usernameHelp:
"Short username (e.g., satoshi)" ,
bio:
"Bio" ,
bioPlaceholder:
"Tell people about yourself..." ,
bioHelp:
"A brief bio or description" ,
displayNameHelp:
"Your full display name" ,
avatarUrl:
"Avatar URL" ,
avatarHelp:
"HTTPS URL to your profile picture" ,
bannerUrl:
"Banner URL" ,
bannerHelp:
"HTTPS URL to a banner image" ,
website:
"Website" ,
websiteHelp:
"Your personal website" ,
nip05Identifier:
"NIP-05 Identifier" ,
nip05Help:
"Verifiable identifier (e.g., you@domain.com)" ,
lightningAddress:
"Lightning Address" ,
lightningHelp:
"Lightning address for tips (LUD-16)" ,
},
},
nodes: {
binding: {
loadConfigHint:
"Load config to edit bindings." ,
formModeHint:
"Switch the Config tab to Form mode to edit bindings here." ,
execNodeBinding:
"Exec node binding" ,
execNodeBindingSubtitle:
"Pin agents to a specific node when using exec host=node." ,
defaultBinding:
"Default binding" ,
defaultBindingHint:
"Used when agents do not override a node binding." ,
node:
"Node" ,
},
},
instances: {
title:
"Connected Instances" ,
subtitle:
"Presence beacons from the gateway and clients." ,
showHosts:
"Show hosts and IPs" ,
hideHosts:
"Hide hosts and IPs" ,
toggleHostVisibility:
"Toggle host visibility" ,
noInstances:
"No instances reported yet." ,
lastInput:
"Last input {time}" ,
reason:
"Reason {reason}" ,
},
agentTools: {
connectedSource:
"Connected: {id}" ,
connected:
"Connected" ,
channelSource:
"Channel: {id}" ,
channel:
"Channel" ,
builtIn:
"Built-in" ,
},
nav: {
chat:
"Chat" ,
control:
"Control" ,
agent:
"Agent" ,
settings:
"Settings" ,
expand:
"Expand sidebar" ,
collapse:
"Collapse sidebar" ,
resize:
"Resize sidebar" ,
},
tabs: {
agents:
"Agents" ,
overview:
"Overview" ,
channels:
"Channels" ,
instances:
"Instances" ,
sessions:
"Sessions" ,
usage:
"Usage" ,
cron:
"Cron Jobs" ,
skills:
"Skills" ,
nodes:
"Nodes" ,
chat:
"Chat" ,
config:
"Config" ,
communications:
"Communications" ,
appearance:
"Appearance" ,
automation:
"Automation" ,
infrastructure:
"Infrastructure" ,
aiAgents:
"AI & Agents" ,
debug:
"Debug" ,
logs:
"Logs" ,
dreams:
"Dreaming" ,
},
subtitles: {
agents:
"Workspaces, tools, identities." ,
overview:
"Status, entry points, health." ,
channels:
"Channels and settings." ,
instances:
"Connected clients and nodes." ,
sessions:
"Active sessions and defaults." ,
usage:
"API usage and costs." ,
cron:
"Wakeups and recurring runs." ,
skills:
"Skills and API keys." ,
nodes:
"Paired devices and commands." ,
chat:
"Gateway chat for quick interventions." ,
config:
"Edit openclaw.json." ,
communications:
"Channels, messages, and audio settings." ,
appearance:
"Theme, UI, and setup wizard settings." ,
automation:
"Commands, hooks, cron, and plugins." ,
infrastructure:
"Gateway, web, browser, and media settings." ,
aiAgents:
"Agents, models, skills, tools, memory, session." ,
debug:
"Snapshots, events, RPC." ,
logs:
"Live gateway logs." ,
dreams:
"Memory dreaming, consolidation, and reflection." ,
},
overview: {
access: {
title:
"Gateway Access" ,
subtitle:
"Where the dashboard connects and how it authenticates." ,
wsUrl:
"WebSocket URL" ,
token:
"Gateway Token" ,
password:
"Password (not stored)" ,
passwordPlaceholder:
"system or shared password" ,
sessionKey:
"Default Session Key" ,
language:
"Language" ,
connectHint:
"Click Connect to apply connection changes." ,
trustedProxy:
"Authenticated via trusted proxy." ,
showToken:
"Show token" ,
hideToken:
"Hide token" ,
toggleTokenVisibility:
"Toggle token visibility" ,
showPassword:
"Show password" ,
hidePassword:
"Hide password" ,
togglePasswordVisibility:
"Toggle password visibility" ,
},
snapshot: {
title:
"Snapshot" ,
subtitle:
"Latest gateway handshake information." ,
status:
"Status" ,
uptime:
"Uptime" ,
tickInterval:
"Tick Interval" ,
lastChannelsRefresh:
"Last Channels Refresh" ,
channelsHint:
"Use Channels to link WhatsApp, Telegram, Discord, Signal, or iMessage." ,
},
stats: {
instances:
"Instances" ,
instancesHint:
"Presence beacons in the last 5 minutes." ,
sessions:
"Sessions" ,
sessionsHint:
"Recent session keys tracked by the gateway." ,
cron:
"Cron" ,
cronNext:
"Next wake {time}" ,
},
notes: {
title:
"Notes" ,
subtitle:
"Quick reminders for remote control setups." ,
tailscaleTitle:
"Tailscale serve" ,
tailscaleText:
"Prefer serve mode to keep the gateway on loopback with tailnet auth." ,
sessionTitle:
"Session hygiene" ,
sessionText:
"Use /new or sessions.patch to reset context." ,
cronTitle:
"Cron reminders" ,
cronText:
"Use isolated sessions for recurring runs." ,
},
auth: {
required:
"This gateway requires auth. Add a token or password, then click Connect." ,
failed:
"Auth failed. Re-copy a tokenized URL with {command}, or update the token, then click Connect." ,
},
pairing: {
hint:
"This device needs pairing approval from the gateway host." ,
scopeUpgradeTitle:
"Scope upgrade pending approval." ,
scopeUpgradeSummary:
"This device is already paired, but the requested wider scope is waiting for approval." ,
roleUpgradeTitle:
"Role upgrade pending approval." ,
roleUpgradeSummary:
"This device is already paired, but the requested role change is waiting for approval." ,
metadataUpgradeTitle:
"Device metadata change pending approval." ,
metadataUpgradeSummary:
"This device is already paired, but the metadata change is waiting for approval." ,
mobileHint:
"On mobile? Copy the full URL (including #token=...) from openclaw dashboard --no-open on your desktop." ,
docsTitle:
"Device pairing docs (opens in new tab)" ,
docsLink:
"Docs: Device pairing" ,
},
insecure: {
hint:
"This page is HTTP, so the browser blocks device identity. Use HTTPS (Tailscale Serve) or open {url} on the gateway host." ,
stayHttp:
"If you must stay on HTTP, set {config} (token-only)." ,
},
connection: {
title:
"How to connect" ,
step1:
"Start the gateway on your host machine:" ,
step2:
"Get a tokenized dashboard URL:" ,
step3:
"Paste the WebSocket URL and token above, or open the tokenized URL directly." ,
step4:
"Or generate a reusable token:" ,
docsHint:
"For remote access, Tailscale Serve is recommended. " ,
docsLink:
"Read the docs →" ,
authDocsTitle:
"Control UI auth docs (opens in new tab)" ,
authDocsLink:
"Docs: Control UI auth" ,
tailscaleDocsTitle:
"Tailscale Serve docs (opens in new tab)" ,
tailscaleDocsLink:
"Docs: Tailscale Serve" ,
insecureHttpDocsTitle:
"Insecure HTTP docs (opens in new tab)" ,
insecureHttpDocsLink:
"Docs: Insecure HTTP" ,
},
cards: {
cost:
"Cost" ,
skills:
"Skills" ,
recentSessions:
"Recent Sessions" ,
modelAuth:
"Model Auth" ,
modelAuthOk:
"{count} ok" ,
modelAuthExpired:
"{count} expired" ,
modelAuthExpiring:
"{count} expiring" ,
modelAuthProviders:
"{count} providers" ,
modelAuthUsageLeft:
"{pct}% left" ,
modelAuthExpiresIn:
"expires {when}" ,
modelAuthAttentionExpiredTitle:
"Model auth expired" ,
modelAuthAttentionExpiringTitle:
"Model auth expiring soon" ,
modelAuthAttentionExpiredDesc:
"{providers} — re-authenticate with openclaw models auth" ,
modelAuthAttentionExpiringEntry: "{provider} ({when})" ,
},
attention: {
title: "Attention" ,
},
eventLog: {
title: "Event Log" ,
},
logTail: {
title: "Gateway Logs" ,
},
quickActions: {
newSession: "New Session" ,
automation: "Automation" ,
refreshAll: "Refresh All" ,
terminal: "Terminal" ,
},
palette: {
placeholder: "Type a command…" ,
noResults: "No results" ,
},
},
dreaming: {
tabs: {
scene: "Scene" ,
diary: "Diary" ,
advanced: "Advanced" ,
},
header: {
refresh: "Refresh" ,
refreshing: "Refreshing…" ,
on: "Dreaming On" ,
off: "Dreaming Off" ,
},
status: {
active: "Dreaming Active" ,
idle: "Dreaming Idle" ,
promotedSuffix: "promoted" ,
nextSweepPrefix: "next sweep" ,
},
scene: {
backfill: "Backfill" ,
dedupeDiary: "Dedupe Diary" ,
reset: "Reset" ,
clearGrounded: "Clear Replayed" ,
repairCache: "Repair Dream Cache" ,
working: "Working…" ,
},
phase: {
light: "Light" ,
deep: "Deep" ,
rem: "Rem" ,
off: "off" ,
},
advanced: {
eyebrow: "Review" ,
title: "Daily Log Review" ,
description:
"Review what came from the daily log, what is waiting for promotion, and what was promoted recently." ,
summaryFromDailyLog: "from daily log" ,
summaryWaiting: "waiting" ,
summaryPromotedToday: "promoted today" ,
stagedTitle: "From the Daily Log" ,
stagedDescription: "Replay candidates pulled from older daily log entries." ,
shortTermTitle: "Waiting for Promotion" ,
shortTermDescription: "Current short-term candidates waiting to graduate into real memory." ,
sortRecent: "Most recent" ,
sortSignals: "Strongest support" ,
originDailyLog: "replayed" ,
originLive: "live" ,
originMixed: "mixed" ,
promotedTitle: "Recent Promotions" ,
promotedDescription: "Items that already made it through promotion." ,
emptyGrounded: "No staged grounded replay entries right now." ,
emptyShortTerm: "No short-term entries to inspect." ,
emptyPromoted: "No recent promotions to inspect." ,
updatedPrefix: "updated" ,
},
stats: {
shortTerm: "Short-term" ,
grounded: "Grounded" ,
signals: "Signals" ,
promoted: "Promoted" ,
phaseHits: "Phase Hits" ,
},
trace: {
shortTerm: "Short-term" ,
grounded: "Grounded" ,
signals: "Signals" ,
promoted: "Promoted" ,
groundedLed: "grounded-led" ,
emptyShortTerm: "No active short-term items." ,
emptyGrounded: "No staged grounded items." ,
emptySignals: "No active signals." ,
emptyPromoted: "Nothing promoted yet today." ,
},
diary: {
title: "Dream Diary" ,
noDreamsYet: "No dreams yet" ,
noDreamsHint: "Dreams will appear here after the first dreaming cycle runs." ,
waitingTitle: "The diary is waiting" ,
waitingHint: "Narrative entries will appear after the next dreaming cycle." ,
older: "Older" ,
newer: "Newer" ,
reload: "Reload" ,
reloading: "Reloading…" ,
},
phrases: {
consolidatingMemories: "consolidating memories…" ,
tidyingKnowledgeGraph: "tidying the knowledge graph…" ,
replayingConversations: "replaying today's conversations…" ,
weavingShortTerm: "weaving short-term into long-term…" ,
defragmentingMindPalace: "defragmenting the mind palace…" ,
filingLooseThoughts: "filing away loose thoughts…" ,
connectingDots: "connecting distant dots…" ,
compostingContext: "composting old context windows…" ,
alphabetizingSubconscious: "alphabetizing the subconscious…" ,
promotingHunches: "promoting promising hunches…" ,
forgettingNoise: "forgetting what doesn't matter…" ,
dreamingEmbeddings: "dreaming in embeddings…" ,
reorganizingAttic: "reorganizing the memory attic…" ,
indexingDay: "softly indexing the day…" ,
nurturingInsights: "nurturing fledgling insights…" ,
simmeringIdeas: "simmering half-formed ideas…" ,
whisperingVectorStore: "whispering to the vector store…" ,
},
},
usage: {
page: {
subtitle: "See where tokens go, when sessions spike, and what drives cost." ,
},
common: {
emptyValue: "—" ,
unknown: "unknown" ,
},
loading: {
title: "Usage Overview" ,
badge: "Loading" ,
},
metrics: {
tokens: "Tokens" ,
cost: "Cost" ,
session: "session" ,
sessions: "sessions" ,
},
presets: {
today: "Today" ,
last7d: "7d" ,
last30d: "30d" ,
},
filters: {
title: "Filters" ,
to: "to" ,
startDate: "Start date" ,
endDate: "End date" ,
timeZone: "Time zone" ,
timeZoneLocal: "Local" ,
timeZoneUtc: "UTC" ,
pin: "Pin" ,
pinned: "Pinned" ,
unpin: "Unpin filters" ,
selectAll: "Select All" ,
clear: "Clear" ,
clearAll: "Clear All" ,
remove: "Remove filter" ,
all: "All" ,
days: "Days" ,
hours: "Hours" ,
session: "Session" ,
agent: "Agent" ,
channel: "Channel" ,
provider: "Provider" ,
model: "Model" ,
tool: "Tool" ,
daysCount: "{count} days" ,
hoursCount: "{count} hours" ,
sessionsCount: "{count} sessions" ,
},
query: {
placeholder:
"Filter sessions (e.g. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)" ,
apply: "Filter (client-side)" ,
matching: "{shown} of {total} sessions match" ,
inRange: "{total} sessions in range" ,
tip: "Tip: use filters or click bars to refine days." ,
},
export: {
label: "Export" ,
sessionsCsv: "Sessions CSV" ,
dailyCsv: "Daily CSV" ,
json: "JSON" ,
},
empty: {
title: "Start with a date range" ,
subtitle:
"Load usage data to compare costs, inspect sessions, and drill into timelines without leaving the dashboard." ,
hint: "Select a date range and click Refresh to load usage." ,
noData: "No data" ,
featureOverview: "Overview cards" ,
featureSessions: "Session ranking" ,
featureTimeline: "Timeline drilldown" ,
},
daily: {
title: "Daily Usage" ,
total: "Total" ,
byType: "By Type" ,
tokensTitle: "Daily Token Usage" ,
costTitle: "Daily Cost" ,
},
breakdown: {
output: "Output" ,
input: "Input" ,
cacheWrite: "Cache Write" ,
cacheRead: "Cache Read" ,
total: "Total" ,
tokensByType: "Tokens by Type" ,
costByType: "Cost by Type" ,
},
overview: {
title: "Usage Overview" ,
messages: "Messages" ,
messagesHint: "Total user and assistant messages in range." ,
messagesAbbrev: "msgs" ,
user: "user" ,
assistant: "assistant" ,
toolCalls: "Tool Calls" ,
toolCallsHint: "Total tool call count across sessions." ,
toolsUsed: "tools used" ,
errors: "Errors" ,
errorsHint: "Total message and tool errors in range." ,
toolResults: "tool results" ,
avgTokens: "Avg Tokens / Msg" ,
avgTokensHint: "Average tokens per message in this range." ,
avgCost: "Avg Cost / Msg" ,
avgCostHint: "Average cost per message when providers report costs." ,
avgCostHintMissing:
"Average cost per message when providers report costs. Cost data is missing for some or all sessions in this range." ,
acrossMessages: "Across {count} messages" ,
sessions: "Sessions" ,
sessionsHint: "Distinct sessions in the range." ,
sessionsInRange: "of {count} in range" ,
throughput: "Throughput" ,
throughputHint: "Throughput shows tokens per minute over active time. Higher is better." ,
tokensPerMinute: "tok/min" ,
perMinute: "/ min" ,
errorRate: "Error Rate" ,
errorHint: "Error rate = errors / total messages. Lower is better." ,
avgSession: "avg session" ,
cacheHitRate: "Cache Hit Rate" ,
cacheHint: "Cache hit rate = cache read / (input + cache read). Higher is better." ,
cached: "cached" ,
prompt: "prompt" ,
calls: "calls" ,
topModels: "Top Models" ,
topProviders: "Top Providers" ,
topTools: "Top Tools" ,
topAgents: "Top Agents" ,
topChannels: "Top Channels" ,
peakErrorDays: "Peak Error Days" ,
peakErrorHours: "Peak Error Hours" ,
noModelData: "No model data" ,
noProviderData: "No provider data" ,
noToolCalls: "No tool calls" ,
noAgentData: "No agent data" ,
noChannelData: "No channel data" ,
noErrorData: "No error data" ,
},
sessions: {
title: "Sessions" ,
shown: "{count} shown" ,
total: "{count} total" ,
avg: "avg" ,
all: "All" ,
recent: "Recently viewed" ,
recentShort: "Recent" ,
sort: "Sort" ,
ascending: "Ascending" ,
descending: "Descending" ,
clearSelection: "Clear Selection" ,
noRecent: "No recent sessions" ,
noneInRange: "No sessions in range" ,
more: "+{count} more" ,
selected: "Selected ({count})" ,
copy: "Copy" ,
copyName: "Copy session name" ,
limitReached: "Showing first 1,000 sessions. Narrow date range for complete results." ,
},
details: {
noUsageData: "No usage data for this session." ,
duration: "Duration" ,
modelMix: "Model Mix" ,
filtered: "(filtered)" ,
close: "Close session details" ,
noTimeline: "No timeline data" ,
noDataInRange: "No data in range" ,
usageOverTime: "Usage Over Time" ,
reset: "Reset" ,
perTurn: "Per Turn" ,
cumulative: "Cumulative" ,
turnRange: "Turns {start}–{end} of {total}" ,
assistantOutputTokens: "Assistant output tokens" ,
userToolInputTokens: "User + tool input tokens" ,
tokensWrittenToCache: "Tokens written to cache" ,
tokensReadFromCache: "Tokens read from cache" ,
noContextData: "No context data" ,
systemPromptBreakdown: "System Prompt Breakdown" ,
collapse: "Collapse" ,
collapseAll: "Collapse All" ,
expandAll: "Expand All" ,
baseContextPerMessage: "Base context per message" ,
system: "System" ,
systemShort: "Sys" ,
skills: "Skills" ,
tools: "Tools" ,
files: "Files" ,
ofInput: "of input" ,
of: "of" ,
timelineFiltered: "timeline filtered" ,
conversation: "Conversation" ,
noMessages: "No messages" ,
tool: "Tool" ,
toolResult: "Tool result" ,
hasTools: "Has tools" ,
searchConversation: "Search conversation" ,
you: "You" ,
noMessagesMatch: "No messages match the filters." ,
},
mosaic: {
title: "Activity by Time" ,
subtitleEmpty: "Estimates require session timestamps." ,
subtitle: "Estimated from session spans (first/last activity). Time zone: {zone}." ,
noTimelineData: "No timeline data yet." ,
dayOfWeek: "Day of Week" ,
midnight: "Midnight" ,
fourAm: "4am" ,
eightAm: "8am" ,
noon: "Noon" ,
fourPm: "4pm" ,
eightPm: "8pm" ,
legend: "Low → High token density" ,
sun: "Sun" ,
mon: "Mon" ,
tue: "Tue" ,
wed: "Wed" ,
thu: "Thu" ,
fri: "Fri" ,
sat: "Sat" ,
},
},
login: {
subtitle: "Gateway Dashboard" ,
passwordPlaceholder: "optional" ,
showToken: "Show token" ,
hideToken: "Hide token" ,
toggleTokenVisibility: "Toggle token visibility" ,
showPassword: "Show password" ,
hidePassword: "Hide password" ,
togglePasswordVisibility: "Toggle password visibility" ,
},
chat: {
disconnected: "Disconnected from gateway." ,
refreshTitle: "Refresh chat data" ,
thinkingToggle: "Toggle assistant thinking/working output" ,
toolCallsToggle: "Toggle tool calls and tool results" ,
focusToggle: "Toggle focus mode (hide sidebar + page header)" ,
hideCronSessions: "Hide cron sessions" ,
showCronSessions: "Show cron sessions" ,
showCronSessionsHidden: "Show cron sessions ({count} hidden)" ,
onboardingDisabled: "Disabled during setup" ,
},
languages: {
en: "English" ,
zhCN: "简体中文 (Simplified Chinese)" ,
zhTW: "繁體中文 (Traditional Chinese)" ,
ptBR: "Português (Brazilian Portuguese)" ,
de: "Deutsch (German)" ,
es: "Español (Spanish)" ,
jaJP: "日本語 (Japanese)" ,
ko: "한국어 (Korean)" ,
fr: "Français (French)" ,
tr: "Türkçe (Turkish)" ,
uk: "Українська (Ukrainian)" ,
id: "Bahasa Indonesia (Indonesian)" ,
pl: "Polski (Polish)" ,
th: "ไทย (Thai)" ,
},
cron: {
summary: {
enabled: "Enabled" ,
yes: "Yes" ,
no: "No" ,
jobs: "Jobs" ,
nextWake: "Next wake" ,
refreshing: "Refreshing..." ,
refresh: "Refresh" ,
},
jobs: {
title: "Jobs" ,
subtitle: "All scheduled jobs stored in the gateway." ,
shownOf: "{shown} shown of {total}" ,
searchJobs: "Search jobs" ,
searchPlaceholder: "Name, description, or agent" ,
enabled: "Enabled" ,
schedule: "Schedule" ,
lastRun: "Last run" ,
all: "All" ,
sort: "Sort" ,
nextRun: "Next run" ,
recentlyUpdated: "Recently updated" ,
name: "Name" ,
direction: "Direction" ,
ascending: "Ascending" ,
descending: "Descending" ,
reset: "Reset" ,
noMatching: "No matching jobs." ,
loading: "Loading..." ,
loadMore: "Load more jobs" ,
},
runs: {
title: "Run history" ,
subtitleAll: "Latest runs across all jobs." ,
subtitleJob: "Latest runs for {title}." ,
scope: "Scope" ,
allJobs: "All jobs" ,
selectedJob: "Selected job" ,
searchRuns: "Search runs" ,
searchPlaceholder: "Summary, error, or job" ,
newestFirst: "Newest first" ,
oldestFirst: "Oldest first" ,
status: "Status" ,
delivery: "Delivery" ,
clear: "Clear" ,
allStatuses: "All statuses" ,
allDelivery: "All delivery" ,
selectJobHint: "Select a job to inspect run history." ,
noMatching: "No matching runs." ,
loadMore: "Load more runs" ,
runStatusOk: "OK" ,
runStatusError: "Error" ,
runStatusSkipped: "Skipped" ,
runStatusUnknown: "Unknown" ,
deliveryDelivered: "Delivered" ,
deliveryNotDelivered: "Not delivered" ,
deliveryUnknown: "Unknown" ,
deliveryNotRequested: "Not requested" ,
},
form: {
editJob: "Edit Job" ,
newJob: "New Job" ,
updateSubtitle: "Update the selected scheduled job." ,
createSubtitle: "Create a scheduled wakeup or agent run." ,
required: "Required" ,
requiredSr: "required" ,
basics: "Basics" ,
basicsSub: "Name it, choose the assistant, and set enabled state." ,
fieldName: "Name" ,
description: "Description" ,
agentId: "Agent ID" ,
namePlaceholder: "Morning brief" ,
descriptionPlaceholder: "Optional context for this job" ,
agentPlaceholder: "main or ops" ,
agentHelp: "Start typing to pick a known agent, or enter a custom one." ,
schedule: "Schedule" ,
scheduleSub: "Control when this job runs." ,
every: "Every" ,
at: "At" ,
cronOption: "Cron" ,
runAt: "Run at" ,
unit: "Unit" ,
minutes: "Minutes" ,
hours: "Hours" ,
days: "Days" ,
expression: "Expression" ,
expressionPlaceholder: "0 7 * * *" ,
everyAmountPlaceholder: "30" ,
timezoneOptional: "Timezone (optional)" ,
timezonePlaceholder: "America/Los_Angeles" ,
timezoneHelp: "Pick a common timezone or enter any valid IANA timezone." ,
jitterHelp: "Need jitter? Use Advanced → Stagger window / Stagger unit." ,
execution: "Execution" ,
executionSub: "Choose when to wake, and what this job should do." ,
session: "Session" ,
main: "Main" ,
isolated: "Isolated" ,
sessionHelp: "Main posts a system event. Isolated runs a dedicated agent turn." ,
wakeMode: "Wake mode" ,
now: "Now" ,
nextHeartbeat: "Next heartbeat" ,
wakeModeHelp: "Now triggers immediately. Next heartbeat waits for the next cycle." ,
payloadKind: "What should run?" ,
systemEvent: "Post message to main timeline" ,
agentTurn: "Run assistant task (isolated)" ,
systemEventHelp:
"Sends your text to the gateway main timeline (good for reminders/triggers)." ,
agentTurnHelp: "Starts an assistant run in its own session using your prompt." ,
timeoutSeconds: "Timeout (seconds)" ,
timeoutPlaceholder: "Optional, e.g. 90" ,
timeoutHelp:
"Optional. Leave blank to use the gateway default timeout behavior for this run." ,
mainTimelineMessage: "Main timeline message" ,
assistantTaskPrompt: "Assistant task prompt" ,
deliverySection: "Delivery" ,
deliverySub: "Choose where run summaries are sent." ,
resultDelivery: "Result delivery" ,
announceDefault: "Announce summary (default)" ,
webhookPost: "Webhook POST" ,
noneInternal: "None (internal)" ,
deliveryHelp: "Announce posts a summary to chat. None keeps execution internal." ,
webhookUrl: "Webhook URL" ,
channel: "Channel" ,
webhookPlaceholder: "https://example.com/cron ",
channelHelp: "Choose which connected channel receives the summary." ,
webhookHelp: "Send run summaries to a webhook endpoint." ,
to: "To" ,
toPlaceholder: "+1555... or chat id" ,
toHelp: "Optional recipient override (chat id, phone, or user id)." ,
advanced: "Advanced" ,
advancedHelp:
"Optional overrides for delivery guarantees, schedule jitter, and model controls." ,
deleteAfterRun: "Delete after run" ,
deleteAfterRunHelp: "Best for one-shot reminders that should auto-clean up." ,
clearAgentOverride: "Clear agent override" ,
clearAgentHelp: "Force this job to use the gateway default assistant." ,
exactTiming: "Exact timing (no stagger)" ,
exactTimingHelp: "Run on exact cron boundaries with no spread." ,
staggerWindow: "Stagger window" ,
staggerUnit: "Stagger unit" ,
staggerPlaceholder: "30" ,
seconds: "Seconds" ,
model: "Model" ,
modelPlaceholder: "openai/gpt-5.2" ,
modelHelp: "Start typing to pick a known model, or enter a custom one." ,
thinking: "Thinking" ,
thinkingPlaceholder: "low" ,
thinkingHelp: "Use a suggested level or enter a provider-specific value." ,
bestEffortDelivery: "Best effort delivery" ,
bestEffortHelp: "Do not fail the job if delivery itself fails." ,
cantAddYet: "Can't add job yet" ,
fillRequired: "Fill the required fields below to enable submit." ,
fixFields: "Fix {count} field to continue." ,
fixFieldsPlural: "Fix {count} fields to continue." ,
saving: "Saving..." ,
saveChanges: "Save changes" ,
addJob: "Add job" ,
cancel: "Cancel" ,
},
jobList: {
allJobs: "all jobs" ,
selectJob: "(select a job)" ,
enabled: "enabled" ,
disabled: "disabled" ,
edit: "Edit" ,
clone: "Clone" ,
disable: "Disable" ,
enable: "Enable" ,
run: "Run" ,
history: "History" ,
remove: "Remove" ,
},
jobDetail: {
system: "System" ,
prompt: "Prompt" ,
delivery: "Delivery" ,
agent: "Agent" ,
},
jobState: {
status: "Status" ,
next: "Next" ,
last: "Last" ,
},
runEntry: {
noSummary: "No summary." ,
runAt: "Run at" ,
openRunChat: "Open run chat" ,
next: "Next {rel}" ,
due: "Due {rel}" ,
},
errors: {
nameRequired: "Name is required." ,
scheduleAtInvalid: "Enter a valid date/time." ,
everyAmountInvalid: "Interval must be greater than 0." ,
cronExprRequired: "Cron expression is required." ,
staggerAmountInvalid: "Stagger must be greater than 0." ,
systemTextRequired: "System text is required." ,
agentMessageRequired: "Agent message is required." ,
timeoutInvalid: "If set, timeout must be greater than 0 seconds." ,
webhookUrlRequired: "Webhook URL is required." ,
webhookUrlInvalid: "Webhook URL must start with http:// or https://.",
invalidRunTime: "Invalid run time." ,
invalidIntervalAmount: "Invalid interval amount." ,
cronExprRequiredShort: "Cron expression required." ,
invalidStaggerAmount: "Invalid stagger amount." ,
systemEventTextRequired: "System event text required." ,
agentMessageRequiredShort: "Agent message required." ,
nameRequiredShort: "Name required." ,
},
},
};
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-05-26)
¤
*© Formatika GbR, Deutschland