Files
AgentHub/client/src/i18n/locales/en/common.json
T
nntrivi2001 cd25791160 feat(select): long lists become a combobox; the branch switcher uses it (#88)
Select opens with a focused search box when it has more than 8 options
(or searchable): typing narrows by label/value, ↑/↓ move, Enter picks,
Esc closes; role=combobox drives the listbox via aria-activedescendant,
and options may carry a group heading. The git bar's native branch
select (and the separate search box added for #88) is replaced by it,
remote branches under their own heading.
2026-11-03 13:25:16 +07:00

232 lines
9.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"refresh": "Refresh",
"retry": "Retry",
"cancel": "Cancel",
"export": "Export",
"loading": "Loading...",
"noData": "No data",
"total": "Total",
"active": "active",
"total_lower": "total",
"subagent": "subagent",
"subagents": "subagents",
"subagent_label_one": "{{count}} subagent",
"subagent_label_other": "{{count}} subagents",
"events": "events",
"event": "event",
"sessions": "sessions",
"session": "session",
"agents": "agents",
"agent": "agent",
"live": "Live",
"offline": "Offline",
"running": "running",
"days": "days",
"hours": "hours",
"updated": "Updated ",
"lastUpdated": "Last updated: ",
"plusMore": "+{{count}} more",
"save": "Save",
"edit": "Edit",
"delete": "Delete",
"actions": "Actions",
"close": "Close",
"unexpectedError": "Unexpected error",
"depth": "Depth",
"type": "Type",
"statusLabel": "Status",
"status": {
"working": "Working",
"waiting": "Waiting",
"completed": "Completed",
"error": "Error",
"active": "Active",
"abandoned": "Abandoned"
},
"awaitingReason": {
"notification": {
"label": "Needs input",
"desc": "Blocked on a permission prompt or an input request — Claude can't continue until you respond."
},
"stop": {
"label": "Turn done",
"desc": "Claude finished its reply; the session is idle until you send the next prompt."
},
"session_start": {
"label": "At prompt",
"desc": "The session just started or resumed and is sitting at an empty prompt — nothing has been asked yet."
},
"interrupted": {
"label": "Interrupted",
"desc": "The last turn was interrupted (Esc or a recovered hook) — Claude is waiting for direction."
}
},
"time": {
"justNow": "just now",
"mAgo": "{{count}}m ago",
"hAgo": "{{count}}h ago",
"dAgo": "{{count}}d ago",
"justNowShort": "now",
"mAgoShort": "{{count}}m",
"hAgoShort": "{{count}}h",
"dAgoShort": "{{count}}d"
},
"pagination": {
"previous": "Previous",
"next": "Next",
"showing": "Showing {{from}}-{{to}} of {{total}}"
},
"token": {
"input": "Input",
"output": "Output",
"cacheRead": "Cache Read",
"cacheWrite": "Cache Write",
"totalTokens": "Total tokens"
},
"cost": {
"model": "Model",
"cost": "Cost",
"totalEstimatedCost": "Total Estimated Cost"
},
"eventDetail": {
"summary": "Summary",
"seeDetailsBelow": "Check below for full details in {{fields}}",
"eventId": "Event ID",
"recordedAt": "Recorded at",
"session": "Session",
"sessionId": "Session ID",
"agentId": "Agent ID",
"agent": "Agent",
"cwd": "Working directory",
"permissionMode": "Permission mode",
"toolUseId": "Tool Use ID",
"toolName": "Tool",
"toolInput": "Tool Input",
"toolResponse": "Tool Response",
"isError": "Error",
"transcriptPath": "Transcript Path",
"agentTranscriptPath": "Subagent Transcript Path",
"hookEventName": "Hook Event Name",
"stopReason": "Stop Reason",
"stopHookActive": "Stop Hook Active",
"subagentType": "Subagent Type",
"agentType": "Agent Type",
"notificationType": "Notification Type",
"message": "Message",
"prompt": "Prompt",
"model": "Model",
"reason": "Reason",
"source": "Source",
"imported": "Imported",
"type": "Type",
"timestamp": "Timestamp",
"uuid": "UUID",
"durationMs": "Duration (ms)",
"compactionNumber": "Compaction Number",
"totalCompactions": "Total Compactions",
"lastAssistantMessage": "Last Assistant Message",
"rawPayload": "Raw Payload",
"copy": "Copy",
"copied": "Copied",
"expand": "Expand event",
"collapse": "Collapse event"
},
"eventFilters": {
"searchPlaceholder": "Search summary, tool, payload...",
"status": "Status",
"eventType": "Event type",
"toolName": "Tool",
"agentId": "Agent",
"sessionId": "Session",
"from": "From",
"to": "To",
"clearAll": "Clear filters",
"noOptions": "No options",
"showing": "Showing {{shown}} of {{total}}",
"loadMore": "Load more",
"loading": "Loading...",
"noResults": "No events match the current filters",
"help": {
"title": "About events, filters, and grouping",
"subtitle": "Unlock deeper insights: badges, lifecycles, and filter mechanics explained.",
"valuesTitle": "What each filter accepts",
"valueStatusDesc": "Preset shortcut that expands to event_type values (Working → PreToolUse, Completed → Stop/SubagentStop/Compaction, ...).",
"valueEventTypeDesc": "Raw event_type strings from the DB. Pulled from /api/events/facets.",
"valueToolNameDesc": "tool_name values currently in the DB (Bash, Edit, Read, Grep, mcp__... tools). Pulled from /api/events/facets.",
"valueAgentIdDesc": "Full agent UUIDs (main + subagents). Select one or more to scope to specific agents.",
"valueSessionIdDesc": "Session UUIDs. Typically you'd navigate to /sessions/:id instead, but this lets you intersect multiple sessions.",
"valueSearchDesc": "Substring match on summary, tool_name, and the raw JSON payload. Debounced 300ms.",
"valueDateRangeDesc": "ISO datetime lower/upper bounds on the event's created_at.",
"statusesTitle": "Status badges",
"statusesIntro": "Status is derived from event_type. It's what you see on each row.",
"statusWorkingDesc": "Agent started a tool call (PreToolUse). The tool is about to run.",
"statusCompletedDesc": "Turn or lifecycle boundary (Stop, SubagentStop, Compaction).",
"statusErrorDesc": "An error was recorded (error, APIError).",
"lifecycleTitle": "Event lifecycle",
"lifecycleDesc": "A typical tool call emits two events sharing the same tool_use_id:",
"lifecycleFlow": "PreToolUse (Working) → PostToolUse (Connected) → ... → Stop (Completed)",
"filtersTitle": "How filters work",
"filterTip1": "Filters compose with AND across categories. Within one category, multi-select is OR.",
"filterTip2": "Status is a shortcut that expands to event_type values (Working → PreToolUse, Completed → Stop/SubagentStop/Compaction, ...). Status + Event type compose as OR on event_type.",
"filterTipGrouping": "Grouping tip: a grouped row needs both Pre and Post events. If you filter by Status, pick Working + Connected together to keep pairs intact - otherwise a group will only show half of the call.",
"filterTip3": "Text search matches summary, tool_name, and the raw payload (data column).",
"filterTip4": "Date range applies to each event's created_at."
}
},
"examples": "Examples",
"help": "Help",
"copied": "Copied",
"copyFailed": "Could not copy to the clipboard",
"dismiss": "Dismiss",
"confirm": "Confirm",
"unsaved": {
"title": "Discard unsaved changes?",
"message": "Your edits have not been saved and will be lost.",
"discard": "Discard",
"keep": "Keep editing"
},
"auth": {
"title": "Welcome back",
"subtitle": "Sign in to AgentHub with your account",
"username": "Username",
"password": "Password",
"showPassword": "Show password",
"hidePassword": "Hide password",
"submit": "Sign in",
"submitting": "Signing in…",
"failed": "Wrong username or password",
"tooMany": "Too many failed attempts — try again in a few minutes",
"logout": "Sign out",
"noAccount": "No account yet? Ask your administrator to create one.",
"signedInAs": "Signed in as {{name}} ({{role}})",
"mustChangeTitle": "Choose your own password",
"mustChangeSubtitle": "Your administrator gave you a starting password. Choose your own before you continue.",
"currentPassword": "Current password",
"newPassword": "New password",
"confirmPassword": "Confirm new password",
"mismatch": "The two new passwords differ",
"mustChangeSubmit": "Save and continue",
"saving": "Saving…"
},
"insights": {
"help": {
"sessions": "A session is one conversation with an AI agent, from start to finish.",
"agents": "Agents are the AI workers: the main one in each session plus any helpers it started.",
"tokens": "Tokens are the pieces of text the AI reads and writes. Roughly 1 token ≈ 4 characters. More tokens = more cost.",
"cost": "Estimated money spent, calculated from token counts and each model's price.",
"events": "Every step the AI takes (running a tool, finishing a reply…) is recorded as one event.",
"tokenMix": "Input = what you and the files sent the AI. Output = what the AI wrote. Cache read = text reused from memory (about 10× cheaper). Cache write = text saved to memory for reuse.",
"spendPace": "How fast money is being spent, and where this month will end up if that speed continues.",
"toolCalls": "How many actions the AI took: reading a file, editing, running a command…",
"subagents": "Helper agents the main AI started to work on part of the task in parallel.",
"compactions": "When a conversation gets too long, it is summarized to make room. Early details can be lost.",
"errors": "Steps that failed. A few are normal; many may mean the AI got stuck.",
"tokenFlow": "Input = sent to the AI, Output = written by the AI, Cache = reused from memory (cheaper)."
}
},
"select": {
"search": "Search…",
"noMatch": "No match"
}
}