mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-09 00:40:45 +08:00
223 lines
11 KiB
JavaScript
223 lines
11 KiB
JavaScript
export default {
|
|
"auth.chatLoginDenied": "This account cannot use chat (contact an admin).",
|
|
"auth.consoleAdminOnly": "Only users with the admin role may sign in to the console.",
|
|
"auth.disabled": "Account is disabled",
|
|
"auth.invalid": "Login failed",
|
|
"auth.login": "Login",
|
|
"auth.loggingIn": "Signing in…",
|
|
"auth.logout": "Logout",
|
|
"auth.password": "Password",
|
|
"auth.username": "Username",
|
|
"boot.loadFailed": "Failed to load chat.js",
|
|
"boot.loadFailedHint": "Confirm the gateway is up and /admin/assets/chat.js is reachable.",
|
|
"boot.loading": "Loading chat…",
|
|
"boot.loadingHint": "If this stays too long, check whether the gateway is running.",
|
|
"boot.stillLoading": "Still loading…",
|
|
"boot.stillLoadingHint": "If the login form does not appear, refresh after confirming the gateway is up. Desktop: desktop.log / backend.log.",
|
|
"chat.activeModelLabel": "Model",
|
|
"chat.applyAfterTurn": "applies to history after current turn",
|
|
"chat.attach": "Attach",
|
|
"chat.attachment.download": "Download",
|
|
"chat.attachment.preview": "Preview",
|
|
"chat.attachment.previewEmpty": "(empty)",
|
|
"chat.attachment.previewError": "Preview failed",
|
|
"chat.attachment.previewLoading": "Loading…",
|
|
"chat.attachmentAcl": "Attachment ACL",
|
|
"chat.attachmentAclBackfill": "Backfill ACL",
|
|
"chat.attachmentAclBackfillFail": "Backfill failed: {error}",
|
|
"chat.attachmentAclBackfillOk": "Backfill done: inserted {inserted} rows (scanned {scanned_messages} messages)",
|
|
"chat.attachmentAclBackfillPrompt": "Backfill attachment_acl by scanning historical message attachments? Recommended during off-peak hours.",
|
|
"chat.attachmentLimits": "Attachment limits",
|
|
"chat.attachmentLimitsCancel": "Cancel",
|
|
"chat.attachmentLimitsCellChars": "Max chars per cell",
|
|
"chat.attachmentLimitsCols": "Max columns kept",
|
|
"chat.attachmentLimitsDenied": "Not authorized to change attachment limits",
|
|
"chat.attachmentLimitsHighPreviewWarn": "Large-table preview rows is above 200, which may significantly increase token usage. Continue?",
|
|
"chat.attachmentLimitsInvalidJson": "Invalid attachment limits JSON",
|
|
"chat.attachmentLimitsInvalidNumber": "Please enter valid positive integers",
|
|
"chat.attachmentLimitsLargePreviewRows": "Large-table preview rows",
|
|
"chat.attachmentLimitsMaxSheets": "Max Excel sheets",
|
|
"chat.attachmentLimitsPrompt": "Edit attachment limits JSON (empty to restore defaults)",
|
|
"chat.attachmentLimitsReset": "Reset defaults",
|
|
"chat.attachmentLimitsRows": "Max rows read",
|
|
"chat.attachmentLimitsSave": "Save",
|
|
"chat.attachmentLimitsSaved": "Attachment limits updated",
|
|
"chat.attachmentLimitsSqlTimeoutMs": "SQL timeout (ms)",
|
|
"chat.attachmentLimitsTitle": "Attachment limits",
|
|
"chat.attachmentLimitsToolEnabled": "Enable large-table tool mode",
|
|
"chat.attachmentLimitsToolMaxBytes": "Max file bytes for tool mode",
|
|
"chat.attachmentLimitsToolMinRows": "Min rows to trigger tool mode",
|
|
"chat.attachmentUploaded": "(attachment uploaded)",
|
|
"chat.audit": "Audit & trace",
|
|
"chat.backAdmin": "Admin console",
|
|
"chat.call": "call",
|
|
"chat.callBracket": "[call] {name}",
|
|
"chat.compressHistory": "Compress chat",
|
|
"chat.compressHistoryFail": "Compaction failed: {error}",
|
|
"chat.compressHistoryOk": "Compaction done: scanned {scanned} tool messages, rewritten {rewritten}, oversized compacted {compacted} (skipped {skipped} already compacted).",
|
|
"chat.compressHistoryPrompt": "Rewrite this session's historical tool outputs using replay-guard compaction (irreversible). Use only when a session is polluted by huge tool_result.",
|
|
"chat.connecting": "Connecting…",
|
|
"chat.copy": "Copy",
|
|
"chat.copyFail": "Copy failed",
|
|
"chat.copyOk": "Copied",
|
|
"chat.delete": "Delete",
|
|
"chat.deleteConfirm": "Delete this session?",
|
|
"chat.deleteMessage": "Delete message",
|
|
"chat.deleteMessageConfirm": "Delete this message?",
|
|
"chat.dispatchLabelsCancel": "Cancel",
|
|
"chat.dispatchLabelsClear": "Clear",
|
|
"chat.dispatchLabelsDiffOnly": "Show changed only",
|
|
"chat.dispatchLabelsEdit": "Edit reason labels",
|
|
"chat.dispatchLabelsEffectivePreview": "Effective preview",
|
|
"chat.dispatchLabelsExport": "Export effective",
|
|
"chat.dispatchLabelsImport": "Import JSON",
|
|
"chat.dispatchLabelsInvalidJson": "Invalid JSON format",
|
|
"chat.dispatchLabelsPrompt": "Edit dispatch reason override JSON (empty to clear)",
|
|
"chat.dispatchLabelsRestoreDefaults": "Restore defaults template",
|
|
"chat.dispatchLabelsSave": "Save",
|
|
"chat.dispatchLabelsSaved": "Reason labels updated",
|
|
"chat.dispatchLabelsTitle": "Edit reason label overrides",
|
|
"chat.dispatchLabelsUnsavedConfirm": "You have unsaved changes. Close anyway?",
|
|
"chat.dynamicAllReasons": "View full mix",
|
|
"chat.dynamicAllReasonsTitle": "Full reason mix",
|
|
"chat.dynamicStats": "Dynamic experts (recent): hit {dynamic}, fallback {fallback}",
|
|
"chat.dynamicStatsDetail": "Hit rate {rate}% · Top reason {reason}",
|
|
"chat.dynamicTopReasons": "Reason mix {items}",
|
|
"chat.empty": "No messages yet",
|
|
"chat.encodingAttachments": "Encoding attachments…",
|
|
"chat.error": "Request failed",
|
|
"chat.execApplied": "Applied: {mode} / {specialist}",
|
|
"chat.execModeAgent": "Agent",
|
|
"chat.execModeApplied": "Execution: {mode}",
|
|
"chat.execModeLabel": "Execution",
|
|
"chat.execModePlan": "Plan",
|
|
"chat.expandFull": "Load full text (may be slow)",
|
|
"chat.exportJson": "Export JSON",
|
|
"chat.exportMd": "Export Markdown",
|
|
"chat.fork": "Duplicate chat",
|
|
"chat.historyComplete": "Reached the start of this chat",
|
|
"chat.historyTruncated": "Showing latest {shown}/{total} · scroll up for older",
|
|
"chat.imageBlockedHint": "Image blocked from inline display; open original URL",
|
|
"chat.imageViewerClose": "Close",
|
|
"chat.imageViewerDownload": "Download image",
|
|
"chat.imageViewerHint": "Click image to enlarge; click outside or Esc to close",
|
|
"chat.jobs": "Background jobs",
|
|
"chat.jobsClose": "Close",
|
|
"chat.jobsEmpty": "No background jobs",
|
|
"chat.jobsHint": "Long agent jobs appear here and may keep running after the chat turn ends. Kill them manually if needed.",
|
|
"chat.jobsKill": "Kill",
|
|
"chat.jobsKillAll": "Kill all running",
|
|
"chat.jobsKillAllConfirm": "Kill all running jobs?",
|
|
"chat.jobsKillConfirm": "Kill this job? The process will be force-terminated.",
|
|
"chat.jobsPurge": "Purge",
|
|
"chat.jobsPurgeConfirm": "Remove local records/logs for this finished job?",
|
|
"chat.jobsRefresh": "Refresh",
|
|
"chat.jobsRunning": "{n} running",
|
|
"chat.jobsStatus.cancelled": "cancelled",
|
|
"chat.jobsStatus.failed": "failed",
|
|
"chat.jobsStatus.running": "running",
|
|
"chat.jobsStatus.succeeded": "succeeded",
|
|
"chat.jobsStatus.timeout": "timeout",
|
|
"chat.jobsTitle": "Background jobs",
|
|
"chat.langSwitchedWhileStreaming": "Language updated. Session is still streaming; refresh the page to reload all labels.",
|
|
"chat.liveFull": "[LIVE FULL]",
|
|
"chat.loadMore": "Load more",
|
|
"chat.loading": "Loading…",
|
|
"chat.loadingDots": "Loading...",
|
|
"chat.loadingOlder": "Loading older messages…",
|
|
"chat.logs": "Logs",
|
|
"chat.marker.reclaimed": "Turn markers reclaimed {n}",
|
|
"chat.marker.summary": "File markers: pointers {p}, envelope {e} (in-envelope {ep})",
|
|
"chat.marker.ttl": "TTL: turn {t} / session {s} / keep {k}",
|
|
"chat.memoryApplied": "Memory: {mode}",
|
|
"chat.memoryModeDefault": "Default (inject allowed)",
|
|
"chat.memoryModeDefaultShort": "default",
|
|
"chat.memoryModeLabel": "Memory Mode",
|
|
"chat.memoryModeStoreOnly": "Store only (no inject)",
|
|
"chat.memoryModeStoreOnlyShort": "store_only",
|
|
"chat.modeComprehensive": "Comprehensive",
|
|
"chat.modeComprehensiveShort": "Comprehensive",
|
|
"chat.modeExpert": "Expert",
|
|
"chat.modeExpertShort": "Expert",
|
|
"chat.modeLabel": "Mode",
|
|
"chat.modeNotPinned": "Mode not pinned: backend returned interaction_mode={mode} specialist={specialist} (want expert/{want})",
|
|
"chat.modelProfile": "Model",
|
|
"chat.myProfile": "Settings",
|
|
"chat.newSession": "New chat",
|
|
"chat.noSessions": "No sessions yet. Create one to start.",
|
|
"chat.pageTitle": "oliver",
|
|
"chat.placeholder": "Message…",
|
|
"chat.reason.dynamic_agent_build_failed": "Dynamic agent build failed",
|
|
"chat.reason.dynamic_agent_selected": "Dynamic agent selected",
|
|
"chat.reason.manager_factory_failed": "Specialist executor factory failed",
|
|
"chat.reason.manager_model_missing": "Manager model missing",
|
|
"chat.reason.manager_no_specialist_fallback": "No specialist; fallback to generalist",
|
|
"chat.reason.manager_route_missing": "Manager route missing",
|
|
"chat.reason.manager_select_failed": "Manager selection failed",
|
|
"chat.remove": "Remove",
|
|
"chat.rename": "Rename",
|
|
"chat.saveModeFailed": "Failed to save mode: {error}",
|
|
"chat.send": "Send",
|
|
"chat.sending": "Sending…",
|
|
"chat.sessionMenu": "Session actions",
|
|
"chat.sessions": "Sessions",
|
|
"chat.specialistGeneralist": "Generalist",
|
|
"chat.specialistGeneralistShort": "Generalist",
|
|
"chat.specialistImage": "Image",
|
|
"chat.specialistImageShort": "Image",
|
|
"chat.specialistLabel": "Specialist",
|
|
"chat.specialistManage": "Specialist Toggle",
|
|
"chat.specialistManageDenied": "Not authorized to change specialist flags",
|
|
"chat.specialistManagePromptOff": "Disable memory specialist?",
|
|
"chat.specialistManagePromptOn": "Enable memory specialist?",
|
|
"chat.specialistMemory": "Memory",
|
|
"chat.specialistMemoryShort": "Memory",
|
|
"chat.specialistOps": "Ops",
|
|
"chat.specialistOpsShort": "Ops",
|
|
"chat.specialistVideoShort": "Video",
|
|
"chat.stageLocalBoth": " · stage(start→run)={start}ms (run→first)={first}ms",
|
|
"chat.stageLocalStart": " · stage(start→run)={start}ms",
|
|
"chat.stageSeg": " · stage(A→G:{a2g} / G→M:{g2m} / M→F:{m2f})",
|
|
"chat.status.agent": "Agent",
|
|
"chat.status.end": "Done",
|
|
"chat.status.error": "Error",
|
|
"chat.status.oclaw": "Assistant",
|
|
"chat.status.plan": "Plan",
|
|
"chat.status.running": "Running",
|
|
"chat.status.start": "Starting",
|
|
"chat.status.tool": "Tool",
|
|
"chat.stop": "Stop",
|
|
"chat.timeoutRecovered": "Request timed out; recovered this turn from history.",
|
|
"chat.toolCall": "Tool call",
|
|
"chat.toolResult": "Tool result",
|
|
"chat.tools": "Reasoning",
|
|
"chat.tools.hidden": "Reasoning hidden",
|
|
"chat.tools.off": "Off",
|
|
"chat.tools.on": "On",
|
|
"chat.tools.visible": "Reasoning visible",
|
|
"chat.truncatedNote": "…(truncated {n} chars for UI performance)",
|
|
"chat.wikiPreviewClose": "Close",
|
|
"chat.wikiPreviewTitle": "Wiki preview: {path}",
|
|
"chat.wikiToastFailed": "Wiki capture failed: {error}",
|
|
"chat.wikiToastMerged": "Wiki captured: +{merged} (dedup skipped {skipped})",
|
|
"chat.wikiViewMerged": "View merged-turns",
|
|
"chat.wikiViewTopic": "View topic: {topic}",
|
|
"chat.wsInterruptedRecovered": "WS stream interrupted; recovered this turn from history.",
|
|
"chat.zoomIn": "Zoom in",
|
|
"chat.zoomOut": "Zoom out",
|
|
"chat.zoomReset": "Reset zoom",
|
|
"common.error": "Error",
|
|
"lang.switch": "中文",
|
|
"reasoning.processNotes": "Main-channel notes",
|
|
"reasoning.summary": "Model reasoning",
|
|
"theme.catppuccin": "Catppuccin Mocha",
|
|
"theme.deepseek": "DeepSeek",
|
|
"theme.dracula": "Dracula",
|
|
"theme.forest": "Forest",
|
|
"theme.github": "GitHub Dark",
|
|
"theme.label": "Color theme",
|
|
"theme.light": "Light",
|
|
"theme.netx": "NetX Dark",
|
|
"theme.nord": "Nord",
|
|
"tool.streamTitle": "Tools & progress (this turn)",
|
|
};
|