codex-overleaf-link 2.5.1 → 2.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +149 -398
- package/README.zh-CN.md +153 -404
- package/extension/bootstrap/manifest.template.json +1 -1
- package/extension/src/background.js +148 -3
- package/extension/src/backgroundSharedSessions.js +55 -2
- package/extension/src/backgroundUpdateCoordinator.js +128 -12
- package/extension/src/content/activeTurnControl.js +164 -7
- package/extension/src/content/composerAttachments.js +46 -10
- package/extension/src/content/composerPanel.js +92 -12
- package/extension/src/content/contentRuntime.js +1114 -321
- package/extension/src/content/contextTray.js +8 -2
- package/extension/src/content/contextUsageView.js +267 -0
- package/extension/src/content/diagnosticsController.js +77 -34
- package/extension/src/content/diagnosticsExport.js +1 -1
- package/extension/src/content/diagnosticsPanel.js +147 -42
- package/extension/src/content/generated/content.bundle.js +5761 -1237
- package/extension/src/content/generated/content.bundle.meta.json +6 -3
- package/extension/src/content/legacyGlobalRegistry.js +4 -0
- package/extension/src/content/localSkillsPanel.js +6 -4
- package/extension/src/content/markdownDomRenderer.js +5 -3
- package/extension/src/content/markdownText.js +53 -14
- package/extension/src/content/modelPicker.js +29 -19
- package/extension/src/content/nativeCompatibilityController.js +52 -19
- package/extension/src/content/otWarmMirror.js +1 -1
- package/extension/src/content/pageBridgeClient.js +7 -7
- package/extension/src/content/panelMaintenance.js +10 -2
- package/extension/src/content/panelRenderer.js +55 -28
- package/extension/src/content/pendingInputView.js +1 -1
- package/extension/src/content/projectSettingsCoordinator.js +30 -6
- package/extension/src/content/providerSettingsDialog.js +28 -19
- package/extension/src/content/recentProjects.js +30 -19
- package/extension/src/content/runActivitySummary.js +122 -14
- package/extension/src/content/runCompletionMeta.js +194 -6
- package/extension/src/content/runController.js +2 -1
- package/extension/src/content/runFailureNotice.js +8 -1
- package/extension/src/content/runPresence.js +18 -8
- package/extension/src/content/runQueueScheduler.js +27 -13
- package/extension/src/content/runRecoveryActions.js +2 -1
- package/extension/src/content/runResultActions.js +73 -24
- package/extension/src/content/runReviewController.js +102 -37
- package/extension/src/content/runTimelineView.js +224 -25
- package/extension/src/content/scopedPersistencePanelState.js +124 -46
- package/extension/src/content/selectionContextView.js +30 -3
- package/extension/src/content/sensitivePreflight.js +14 -1
- package/extension/src/content/sessionManager.js +49 -3
- package/extension/src/content/sessionMenuView.js +54 -18
- package/extension/src/content/sessionPersistence.js +25 -5
- package/extension/src/content/settingsPanel.js +15 -2
- package/extension/src/content/settingsWorkbench.js +127 -89
- package/extension/src/content/sharedSessionViewSync.js +13 -4
- package/extension/src/content/subagentActivityView.js +23 -7
- package/extension/src/content/updateNotice.js +60 -6
- package/extension/src/content/writebackOrchestrator.js +301 -72
- package/extension/src/content/writingStyleSettings.js +70 -17
- package/extension/src/page/compileBridge.js +193 -180
- package/extension/src/page/overleafCapabilities.js +4 -1
- package/extension/src/page/overleafEditor.js +12 -3
- package/extension/src/page/overleafProjectSnapshot.js +56 -3
- package/extension/src/page/snapshotRouter.js +75 -66
- package/extension/src/page/textCoordinates.js +17 -1
- package/extension/src/page/textFileCreator.js +9 -1
- package/extension/src/page/treeOperations.js +200 -19
- package/extension/src/page/writebackRouter.js +172 -113
- package/extension/src/pageBridge.js +124 -73
- package/extension/src/popup.js +1 -1
- package/extension/src/shared/agentTranscript.js +372 -18
- package/extension/src/shared/auditRecords.js +3 -0
- package/extension/src/shared/compatibility.js +1 -1
- package/extension/src/shared/compileAdapter.js +58 -17
- package/extension/src/shared/composerAttachmentDraft.js +27 -7
- package/extension/src/shared/contextUsage.js +125 -0
- package/extension/src/shared/failureReasons.js +57 -3
- package/extension/src/shared/i18n.js +315 -29
- package/extension/src/shared/lineReferences.js +38 -31
- package/extension/src/shared/pageRpcContract.js +1 -1
- package/extension/src/shared/panelIcons.js +39 -0
- package/extension/src/shared/projectFiles.js +2 -1
- package/extension/src/shared/reviewing.js +130 -1
- package/extension/src/shared/runActivityModel.js +70 -4
- package/extension/src/shared/runExecutionSnapshot.js +13 -0
- package/extension/src/shared/scopedPersistenceBrowserAdapter.js +34 -0
- package/extension/src/shared/sessionState.js +63 -4
- package/extension/src/shared/sessionTitle.js +14 -1
- package/extension/src/shared/sharedSessionBridge.js +81 -13
- package/extension/src/shared/staleGuard.js +130 -63
- package/extension/src/shared/storageDb.js +35 -3
- package/extension/src/shared/storageMigration.js +111 -2
- package/extension/src/shared/storageRunActions.js +62 -8
- package/extension/src/shared/undoOperations.js +126 -28
- package/extension/src/shared/updateRuntimeIdentity.js +16 -2
- package/extension/src/shared/writebackSettlement.js +21 -3
- package/extension/styles/panel.css +1293 -549
- package/native-host/src/bootstrapUpdate.js +52 -16
- package/native-host/src/chatBridgeRequest.js +60 -6
- package/native-host/src/chatBridgeResponse.js +10 -1
- package/native-host/src/chatCompletionsBridge.js +29 -2
- package/native-host/src/codexPromptAssembly.js +86 -118
- package/native-host/src/codexSessionRunner.js +127 -17
- package/native-host/src/debugLog.js +27 -3
- package/native-host/src/index.js +42 -11
- package/native-host/src/localSkills.js +1 -1
- package/native-host/src/mirrorWorkspace.js +47 -3
- package/native-host/src/nativeEnvironment.js +27 -5
- package/native-host/src/providerContextError.js +20 -0
- package/native-host/src/providerRuntime.js +1 -0
- package/native-host/src/skills/reviewer-response/SKILL.md +65 -0
- package/native-host/src/taskRunnerRuntime.js +28 -8
- package/native-host/src/textPatch.js +473 -377
- package/native-host/src/updateManager.js +144 -21
- package/native-host/src/writingStyleRuntime.js +1 -1
- package/package.json +5 -8
|
@@ -12,6 +12,63 @@
|
|
|
12
12
|
|
|
13
13
|
const MESSAGES = {
|
|
14
14
|
en: {
|
|
15
|
+
runOutcomeIncomplete: "Didn't finish",
|
|
16
|
+
runOutcomePartial: "Partly written",
|
|
17
|
+
runOutcomeNotWritten: "Not written",
|
|
18
|
+
runOutcomeCheck: "Check Overleaf",
|
|
19
|
+
runOutcomeNoWrites: "Nothing was written to Overleaf.",
|
|
20
|
+
runOutcomeNotWrittenBody: "Codex did not overwrite it. Nothing was written.",
|
|
21
|
+
runOutcomePartialTitle: "{wrote} of {total} changes written",
|
|
22
|
+
runOutcomePartialNext: "Review the skipped files, then send again. You can also use \"Undo written parts\" above.",
|
|
23
|
+
runOutcomeUnconfirmedFile: "Couldn't confirm the write to {file}",
|
|
24
|
+
runOutcomeUnconfirmed: "Couldn't confirm the write",
|
|
25
|
+
runOutcomeUnconfirmedBody: "Some changes may already be in Overleaf.",
|
|
26
|
+
runOutcomeCheckNext: "Check {file} before sending again.",
|
|
27
|
+
runOutcomeContextNext: "Use /compact or start a new conversation with less context, then retry.",
|
|
28
|
+
runOutcomeNativeNext: "Send again. If it keeps happening, open Diagnostics to check the bridge.",
|
|
29
|
+
runOutcomeStaleNext: "Review the current file, then send again.",
|
|
30
|
+
runOutcomeStaleReason: "Changed while Codex was working, so it was not overwritten.",
|
|
31
|
+
runOutcomeSkipped: "Skipped",
|
|
32
|
+
runOutcomeWritten: "Written",
|
|
33
|
+
runOutcomeNext: "Review the details, then retry.",
|
|
34
|
+
runOutcomeDetails: "Details",
|
|
35
|
+
runOutcomeCode: "Code",
|
|
36
|
+
runOutcomeStage: "Stage",
|
|
37
|
+
runOutcomeWrites: "Writes",
|
|
38
|
+
runOutcomeNoneAttempted: "None attempted",
|
|
39
|
+
runOutcomeCompileChip: "{count} compile error{plural}",
|
|
40
|
+
runOutcomeCompileTitle: "Overleaf compile: {count} error{plural}",
|
|
41
|
+
runCompileUnconfirmed: 'Post-write compile check: Result unconfirmed.',
|
|
42
|
+
runOutcomeCause_stale_source_changed: "{file} changed while Codex was working",
|
|
43
|
+
runOutcomeCause_target_editor_not_ready: "The editor for {file} wasn't ready",
|
|
44
|
+
runOutcomeCause_write_timeout: "Write confirmation timed out",
|
|
45
|
+
runOutcomeCause_write_observed_mismatch: "The write didn't match the expected content",
|
|
46
|
+
runOutcomeCause_codex_context_limit: "Model context limit exceeded",
|
|
47
|
+
runOutcomeCause_codex_timeout: "Local Codex timed out",
|
|
48
|
+
runOutcomeCause_codex_output_limit: "Model output limit exceeded",
|
|
49
|
+
runOutcomeCause_codex_no_usable_result: "Local Codex returned no usable result",
|
|
50
|
+
runOutcomeCause_native_request_failed: "Lost connection to local Codex",
|
|
51
|
+
runOutcomeCause_panel_reload_interrupted: "The page was refreshed while Codex was working",
|
|
52
|
+
runOutcomeReloadUnknownBody: "No write was recorded before the refresh. Check the files in Overleaf before sending again.",
|
|
53
|
+
runOutcomeCause_governance_readonly: "{file} is read-only under this project's path rules",
|
|
54
|
+
runOutcomeCause_governance_writable_allowlist: "{file} is outside this project's writable paths",
|
|
55
|
+
runOutcomeCause_sensitive_content_blocked: "Possible {finding} found before sending",
|
|
56
|
+
sensitiveFinding_private_key: "private key",
|
|
57
|
+
sensitiveFinding_bearer_token: "bearer token",
|
|
58
|
+
sensitiveFinding_api_token: "API token",
|
|
59
|
+
sensitiveFinding_aws_access_key: "AWS access key",
|
|
60
|
+
sensitiveFinding_google_api_key: "Google API key",
|
|
61
|
+
sensitiveFinding_huggingface_token: "Hugging Face token",
|
|
62
|
+
sensitiveFinding_gitlab_token: "GitLab token",
|
|
63
|
+
sensitiveFinding_stripe_live_secret: "Stripe secret key",
|
|
64
|
+
sensitiveFinding_jwt_token: "JWT",
|
|
65
|
+
sensitiveFinding_secret_assignment: "secret value",
|
|
66
|
+
sensitiveFinding_mixed: "sensitive content",
|
|
67
|
+
runOutcomeCause_native_bridge_unavailable: "Couldn't connect to local Codex",
|
|
68
|
+
runOutcomeCause_project_snapshot_unavailable: "Couldn't read the Overleaf project",
|
|
69
|
+
runOutcomeCause_patch_anchor_not_found: "Couldn't locate the change in {file}",
|
|
70
|
+
runOutcomeCause_undo_not_verified: "Couldn't confirm Undo",
|
|
71
|
+
runOutcomeCause_undo_operation_failed: "Couldn't finish Undo",
|
|
15
72
|
failureReason_base_file_missing_at_start_user: "A file needed for this task was missing during the initial project read.",
|
|
16
73
|
failureReason_base_file_missing_at_start_next: "Refresh project context and rerun.",
|
|
17
74
|
failureReason_target_file_missing_path_user: "The change did not include a target file path.",
|
|
@@ -40,6 +97,24 @@
|
|
|
40
97
|
failureReason_subagent_unfinished_output_next: "Have the main agent complete and adopt the pending file.",
|
|
41
98
|
failureReason_subagent_unauthorized_edit_user: "A file changed outside the subagent ownership boundary and was not synced.",
|
|
42
99
|
failureReason_subagent_unauthorized_edit_next: "Review the ownership violation; it cannot be cleared through output adoption.",
|
|
100
|
+
failureReason_reviewing_unavailable_user: "Track Changes is unavailable for this project. It depends on the project owner's Overleaf plan.",
|
|
101
|
+
failureReason_reviewing_unavailable_next: "Turn off Track in the composer to write without tracked changes. Codex still records each change so you can undo it.",
|
|
102
|
+
failureReason_reviewing_unavailable_cancelled_next: "Nothing ran and your Track setting is unchanged. Send again to choose an option.",
|
|
103
|
+
runNotStarted: 'Not started',
|
|
104
|
+
runNotStartedCancelled: 'Not started · cancelled',
|
|
105
|
+
runNotStartedTrackTitle: "Track Changes isn't available for this project",
|
|
106
|
+
runNotStartedModeTitle: "Couldn't confirm Overleaf's editing mode",
|
|
107
|
+
runNotStartedTrackBody: "Track Changes depends on the project owner's Overleaf plan; nothing ran and no files were written.",
|
|
108
|
+
runNotStartedModeBody: 'Overleaf did not confirm the required editing mode; nothing ran and no files were written.',
|
|
109
|
+
runNotStartedCancelledNext: 'Your Track setting is unchanged. Send again to choose an option.',
|
|
110
|
+
runNotStartedNext: 'Check the editing mode in Overleaf, then retry.',
|
|
111
|
+
reviewingUnavailableTitle: "Track Changes unavailable",
|
|
112
|
+
reviewingUnavailableChoiceMessage: "Track Changes is unavailable for this project. It depends on the project owner's Overleaf plan. Codex can still write without tracked changes and records each change so you can undo it.",
|
|
113
|
+
reviewingUnavailableContinue: "Continue without tracking",
|
|
114
|
+
reviewingUnavailableDisable: "Turn off Track for this project",
|
|
115
|
+
reviewingUnavailableStatus: "Track Changes unavailable",
|
|
116
|
+
reviewingUnavailableTooltip: "Track Changes is unavailable for this project. Codex will ask before each run. Turn Track off and on to check again.",
|
|
117
|
+
reviewingUnavailableRunUntracked: "This run writes without tracked changes because Track Changes is unavailable. Codex still records changes for Undo.",
|
|
43
118
|
failureReason_reviewing_enable_failed_user: "Codex could not enable Reviewing when it needed to.",
|
|
44
119
|
failureReason_reviewing_enable_failed_next: "Enable Reviewing manually or retry.",
|
|
45
120
|
failureReason_reviewing_disable_failed_user: "Codex could not switch to Editing / no-trace mode.",
|
|
@@ -76,6 +151,8 @@
|
|
|
76
151
|
failureReason_provider_request_rejected_next: "Review the model ID, reasoning controls, tool support, and request overrides.",
|
|
77
152
|
failureReason_provider_rate_limited_user: "The provider rate limit was reached.",
|
|
78
153
|
failureReason_provider_rate_limited_next: "Wait for the rate-limit window to recover and retry.",
|
|
154
|
+
failureReason_provider_quota_exceeded_user: "The model provider quota or billing limit was reached.",
|
|
155
|
+
failureReason_provider_quota_exceeded_next: "Check the provider account and plan, or switch model or provider before retrying.",
|
|
79
156
|
failureReason_provider_connection_timeout_user: "The provider connection timed out.",
|
|
80
157
|
failureReason_provider_connection_timeout_next: "Check the endpoint and network, then retry.",
|
|
81
158
|
failureReason_provider_dns_failed_user: "The provider hostname could not be resolved.",
|
|
@@ -130,6 +207,8 @@
|
|
|
130
207
|
resizePanel: 'Drag to resize the Codex panel. Double click to reset.',
|
|
131
208
|
codexActions: 'Codex actions',
|
|
132
209
|
refreshProbe: 'Refresh current file status. This will not sync or modify files.',
|
|
210
|
+
refreshProbeTitle: 'Refresh file status',
|
|
211
|
+
refreshProbeSubtitle: 'Re-reads Overleaf state; does not sync or modify files',
|
|
133
212
|
diagnosticsMenu: 'Diagnostics',
|
|
134
213
|
diagnosticsHint: 'Use when Codex cannot run, write, or read files',
|
|
135
214
|
diagnosticsRunAllTitle: 'Run all checks',
|
|
@@ -189,6 +268,9 @@
|
|
|
189
268
|
nativeCompatibilityBlockedProtocol: 'Native host protocol mismatch before {method}. Update the extension and native host together.',
|
|
190
269
|
nativeCompatibilityBlockedUnhealthy: 'Local Codex is not ready for {method}. Open Diagnostics > Check Local Connection for details.',
|
|
191
270
|
nativeCompatibilityBlockedMissing: 'Native host is not connected for {method}. Install the local native host, reload the extension, and try again.',
|
|
271
|
+
nativeCompatibilityMissingTitle: 'Native host is not connected',
|
|
272
|
+
nativeCompatibilityMissingGuidance: 'Install the local native host, reload the extension, and try again.',
|
|
273
|
+
nativeCompatibilityUnavailableFeatures: '{count} features unavailable',
|
|
192
274
|
nativeCompatibilityBlockedGeneric: 'Native host is not compatible with this extension for {method}. Update the native host and extension, then try again.',
|
|
193
275
|
diagnosticsPageLoading: 'Checking the current file, write access, and track changes.',
|
|
194
276
|
diagnosticsLoading: 'Checking current state.',
|
|
@@ -208,6 +290,9 @@
|
|
|
208
290
|
threadResumeNew: 'New thread',
|
|
209
291
|
sessionsHead: 'Sessions',
|
|
210
292
|
sessionMenuOpen: 'Switch session',
|
|
293
|
+
sessionMenuNewShort: 'New',
|
|
294
|
+
sessionMenuRenameShort: 'Rename',
|
|
295
|
+
sessionMenuDeleteShort: 'Delete',
|
|
211
296
|
sessionListEmpty: 'No saved sessions yet — start a task to create one.',
|
|
212
297
|
deleteSessionDeletedToast: 'Session deleted.',
|
|
213
298
|
resetSessionTitle: 'Start a fresh session?',
|
|
@@ -254,6 +339,7 @@
|
|
|
254
339
|
undoRunTitle: 'Undo this run\'s Overleaf writes',
|
|
255
340
|
undoPartialRunTitle: 'Undo the parts of this run already written to Overleaf',
|
|
256
341
|
undoAppliedTitle: 'This run\'s writes have been undone',
|
|
342
|
+
undoAcceptedTitle: 'These changes were accepted in Overleaf, so Undo is no longer available.',
|
|
257
343
|
undoNoWritesTitle: 'No writes in this run; nothing to undo.',
|
|
258
344
|
undoUnsafeFullFileTitle: 'Blocked legacy full-file undo',
|
|
259
345
|
undoUnsafeFullFileReason: 'This undo point would restore the file with a full-text replacement, which can mark the whole document as changed in Overleaf Track Changes. Run the task again to create a local undo point, or handle this old change manually.',
|
|
@@ -262,11 +348,11 @@
|
|
|
262
348
|
undoConfirm: 'Undo writes',
|
|
263
349
|
undoNoTraceStarted: 'Starting no-track undo for this run',
|
|
264
350
|
undoResult: 'Undo result: undone {applied} item(s), skipped {skipped} item(s)',
|
|
265
|
-
undoTrackedTitle: '
|
|
351
|
+
undoTrackedTitle: 'Undo this run\'s tracked changes?',
|
|
266
352
|
undoNativeTitle: 'Undo this run\'s Overleaf writes?',
|
|
267
353
|
undoTrackedMessage: 'This will use Overleaf Reject to undo {files}.\n\nIt will not rewrite files with text patches. If the extension cannot verify the matching tracked changes, it will stop and let you handle them in Overleaf review tools.',
|
|
268
354
|
undoNativeMessage: 'Undo this run\'s changes in {files}.',
|
|
269
|
-
undoTrackedConfirm: '
|
|
355
|
+
undoTrackedConfirm: 'Undo changes',
|
|
270
356
|
undoTrackedStarted: 'Starting rejection of this run\'s Overleaf tracked changes',
|
|
271
357
|
undoNativeStarted: 'Undoing this run\'s changes',
|
|
272
358
|
undoTrackedResult: 'Undo result: rejected {applied} tracked change(s), skipped {skipped}',
|
|
@@ -363,8 +449,14 @@
|
|
|
363
449
|
codexLocalSkillsSkipped: '{count} local skills could not be loaded.',
|
|
364
450
|
codexLocalSkillsLoadFailed: 'Could not load local Codex skills. Open Skills again to retry.',
|
|
365
451
|
codexLocalSkillsDisabled: 'Local Codex skills are disabled for runs.',
|
|
366
|
-
slashUseLocalSkillSubtitle: '
|
|
367
|
-
slashUseOverleafSkillSubtitle: '
|
|
452
|
+
slashUseLocalSkillSubtitle: 'Use for this turn',
|
|
453
|
+
slashUseOverleafSkillSubtitle: 'Use for this turn',
|
|
454
|
+
slashGroupCommands: 'Commands',
|
|
455
|
+
slashGroupOverleafSkills: 'Codex Overleaf skills',
|
|
456
|
+
slashGroupLocalSkills: 'Local Codex skills',
|
|
457
|
+
slashKeyMove: 'Move',
|
|
458
|
+
slashKeyRun: 'Run',
|
|
459
|
+
slashKeyClose: 'Close',
|
|
368
460
|
codexOverleafSkillsEmpty: 'No Codex Overleaf skills installed.',
|
|
369
461
|
codexOverleafSkillsDisabled: 'Codex Overleaf skills are disabled for runs.',
|
|
370
462
|
loadCodexLocalSkills: 'Load local Codex skills',
|
|
@@ -382,6 +474,13 @@
|
|
|
382
474
|
codexOverleafSkillsSummaryOff: 'Off',
|
|
383
475
|
codexOverleafSkillsSummaryCount: '{count} enabled',
|
|
384
476
|
slashInstallSkillTitle: 'Install skill',
|
|
477
|
+
slashCompactTitle: 'Compact context',
|
|
478
|
+
slashCompactSubtitle: 'Summarize earlier turns to free the context window',
|
|
479
|
+
compactNoThread: 'Start a conversation before compacting its context.',
|
|
480
|
+
compactBusy: 'Wait for the current task to finish before compacting context.',
|
|
481
|
+
compactUnsupported: 'This local Codex connection does not support manual compaction. Update Codex and reload the extension.',
|
|
482
|
+
compactCompleted: 'Conversation context compacted.',
|
|
483
|
+
compactFailed: 'Context compaction did not complete. Check Technical Details before retrying.',
|
|
385
484
|
slashInstallSkillSubtitle: 'Use the Codex skill installer with natural language.',
|
|
386
485
|
slashUseSkillSubtitle: 'Use this skill for the next Codex turn.',
|
|
387
486
|
skillInstallerComposerLabel: 'Skill Installer',
|
|
@@ -396,18 +495,14 @@
|
|
|
396
495
|
settingsSaved: 'Saved',
|
|
397
496
|
appearanceTitle: 'Appearance',
|
|
398
497
|
settingsWorkbenchTitle: 'Settings',
|
|
399
|
-
|
|
400
|
-
settingsWorkbenchGeneral: 'General & appearance',
|
|
498
|
+
settingsWorkbenchWriting: 'Writing',
|
|
401
499
|
settingsWorkbenchModels: 'Models & connections',
|
|
402
|
-
|
|
403
|
-
settingsWorkbenchInstructions: 'Instructions & skills',
|
|
500
|
+
settingsWorkbenchContextSkills: 'Context & skills',
|
|
404
501
|
settingsWorkbenchProtection: 'Protection & privacy',
|
|
405
|
-
|
|
406
|
-
settingsWorkbenchAll: 'All settings',
|
|
407
|
-
settingsWorkbenchFilter: 'Filter settings by scope',
|
|
502
|
+
settingsWorkbenchChanges: 'History',
|
|
408
503
|
settingsWorkbenchCategories: 'Settings categories',
|
|
409
|
-
|
|
410
|
-
|
|
504
|
+
settingsPageScopeProject: 'Only for this project',
|
|
505
|
+
settingsPageScopeGlobal: 'Applies to all projects',
|
|
411
506
|
settingsWorkbenchClose: 'Close settings',
|
|
412
507
|
settingsWorkbenchEnableSkills: 'Enable Overleaf skills',
|
|
413
508
|
settingsWorkbenchSkillsHelp: 'Turn off Overleaf skills without changing individual selections.',
|
|
@@ -480,6 +575,10 @@
|
|
|
480
575
|
diagnosticsDotWarn: 'Diagnostics — something needs attention',
|
|
481
576
|
diagnosticsDotFail: 'Diagnostics — a check failed, click to inspect',
|
|
482
577
|
diagnosticsDotUnknown: 'Diagnostics',
|
|
578
|
+
diagnosticsPillOk: 'Ready',
|
|
579
|
+
diagnosticsPillWarn: 'Attention',
|
|
580
|
+
diagnosticsPillFail: 'Problem',
|
|
581
|
+
diagnosticsPillUnknown: 'Checking',
|
|
483
582
|
reasoningLabel: 'Reasoning effort',
|
|
484
583
|
speedLabel: 'Speed',
|
|
485
584
|
requireReviewing: 'Track',
|
|
@@ -542,11 +641,39 @@
|
|
|
542
641
|
queuedInputResume: 'Resume',
|
|
543
642
|
queuedInputRemove: 'Remove',
|
|
544
643
|
queuedInputAttachmentsUnsupported: 'Queued follow-ups currently support text and @context. Remove binary attachments before queuing.',
|
|
644
|
+
attachmentsLoading: 'Attachments are still loading',
|
|
545
645
|
queuedInputError_empty_input: 'Enter a follow-up first.',
|
|
546
646
|
queuedInputError_input_too_long: 'This follow-up is too long to queue.',
|
|
547
647
|
queuedInputError_queue_full: 'The follow-up queue is full.',
|
|
548
648
|
queuedInputError_queue_too_large: 'The follow-up queue reached its storage limit.',
|
|
549
649
|
contextTitle: '@ Context',
|
|
650
|
+
contextUsageTitle: 'Context window',
|
|
651
|
+
contextUsageAmount: '{used} / {capacity} tokens',
|
|
652
|
+
contextUsageSummary: 'Context window: {amount} ({percentage})',
|
|
653
|
+
contextUsageEstimate: 'Latest reported context estimate.',
|
|
654
|
+
contextUsageUnavailable: 'Context usage is not available yet.',
|
|
655
|
+
contextUsageBeforeFirstMessage: 'Usage appears after your first message.',
|
|
656
|
+
contextUsageCapacityUnknown: 'Latest reported usage; window size is unavailable.',
|
|
657
|
+
contextUsageCompacting: 'Compacting context…',
|
|
658
|
+
contextUsageCompactingAuto: 'Compacting context; Codex will continue.',
|
|
659
|
+
contextUsagePending: 'Context compacted. Usage updates after the next reply.',
|
|
660
|
+
contextUsagePendingDetail: 'Usage updates after the next reply.',
|
|
661
|
+
contextUsageCompactedChip: 'Compacted',
|
|
662
|
+
contextUsageHigh: 'High',
|
|
663
|
+
contextUsageNearLimit: 'Near limit',
|
|
664
|
+
contextUsageInput: 'Input',
|
|
665
|
+
contextUsageOutput: 'Output',
|
|
666
|
+
contextUsageBreakdownBasis: 'Shares of reported input + output.',
|
|
667
|
+
contextUsageCacheHit: 'Cached',
|
|
668
|
+
contextUsageCacheHitRate: 'Input cache hit rate',
|
|
669
|
+
contextUsageLatestReply: 'Latest reply · {time}',
|
|
670
|
+
contextUsageJustNow: 'just now',
|
|
671
|
+
contextUsageMinutesAgo: '{count} min ago',
|
|
672
|
+
contextUsageHoursAgo: '{count} hr ago',
|
|
673
|
+
contextUsageDayAgo: '1 day ago',
|
|
674
|
+
contextUsageDaysAgo: '{count} days ago',
|
|
675
|
+
contextUsageCompactAction: 'Compact',
|
|
676
|
+
contextUsageCompactHint: 'Summarize earlier turns to free the window. Documents are not read or changed.',
|
|
550
677
|
refreshFileList: 'Refresh file list',
|
|
551
678
|
contextStatus: 'Type @ to add files, or click +: files, attachments (PDF/images), @compile-log.',
|
|
552
679
|
contextLoadingFiles: 'Reading available @files...',
|
|
@@ -583,6 +710,11 @@
|
|
|
583
710
|
fileContext: 'has selected @file context',
|
|
584
711
|
contextContext: 'has selected @context',
|
|
585
712
|
refreshProbeLoading: 'Refreshing current file, write access, and track changes...',
|
|
713
|
+
probeScopeCurrentFile: 'Current file',
|
|
714
|
+
probeScopeSelection: 'Selected text',
|
|
715
|
+
probeScopeFiles: 'Selected files',
|
|
716
|
+
probeScopeContext: 'Selected context',
|
|
717
|
+
probeScopeProject: 'Whole project',
|
|
586
718
|
refreshProbeDone: 'Refreshed: {status}',
|
|
587
719
|
refreshProbeFailed: 'Refresh failed. Reload Overleaf and try again.',
|
|
588
720
|
processedFailed: 'Failed {elapsed}',
|
|
@@ -630,6 +762,12 @@
|
|
|
630
762
|
failureReason_accept_replay_failed_next: 'Inspect the file in Overleaf, then retry.',
|
|
631
763
|
failureReason_native_request_failed_user: 'The request to the local Codex bridge failed.',
|
|
632
764
|
failureReason_native_request_failed_next: 'Open Diagnostics to check the bridge, then retry.',
|
|
765
|
+
failureReason_native_request_timeout_user: 'The local service did not respond.',
|
|
766
|
+
failureReason_native_request_timeout_next: 'Retry, or open Diagnostics to check the local connection.',
|
|
767
|
+
failureReason_panel_reload_interrupted_user: 'This run was interrupted by a page refresh.',
|
|
768
|
+
failureReason_panel_reload_interrupted_next: 'Edit and resend the task to continue.',
|
|
769
|
+
failureReason_sensitive_content_blocked_user: 'Sensitive content was found before sending, so Codex did not receive this request.',
|
|
770
|
+
failureReason_sensitive_content_blocked_next: 'Remove the sensitive content, narrow @context, or enable explicit sensitive confirmation in Project Settings.',
|
|
633
771
|
failureReason_project_snapshot_unavailable_user: 'Codex could not read the Overleaf project snapshot.',
|
|
634
772
|
failureReason_project_snapshot_unavailable_next: 'Refresh Overleaf, then rerun the task.',
|
|
635
773
|
failureReason_selected_context_unresolved_user: 'Codex could not resolve the requested selection or context.',
|
|
@@ -652,6 +790,8 @@
|
|
|
652
790
|
failureReason_target_editor_not_ready_next: 'Wait for Overleaf to finish loading, then retry.',
|
|
653
791
|
failureReason_stale_source_changed_user: '{file} changed while Codex was working, so Codex did not overwrite it.',
|
|
654
792
|
failureReason_stale_source_changed_next: 'Review the current file, then rerun the task.',
|
|
793
|
+
failureReason_document_identity_mismatch_user: 'Codex could not confirm that the editor content belongs to the target file, so it was not used.',
|
|
794
|
+
failureReason_document_identity_mismatch_next: 'Wait for the target file to open and settle, then retry. Reload Overleaf if this continues.',
|
|
655
795
|
failureReason_patch_anchor_not_found_user: 'The edit anchor for {file} no longer matches current Overleaf content.',
|
|
656
796
|
failureReason_patch_anchor_not_found_next: 'Rerun the task against the current document.',
|
|
657
797
|
failureReason_write_observed_mismatch_user: 'Codex attempted to write {file}, but the content read back from Overleaf did not match the approved change.',
|
|
@@ -668,6 +808,8 @@
|
|
|
668
808
|
failureReason_accept_not_verified_next: 'Inspect Overleaf Reviewing before continuing.',
|
|
669
809
|
failureReason_native_bridge_unavailable_user: 'Extension cannot connect to the Codex native host.',
|
|
670
810
|
failureReason_native_bridge_unavailable_next: 'Run install-native or reload the extension.',
|
|
811
|
+
failureReason_codex_context_limit_user: 'This run stopped because the model context limit was exceeded.',
|
|
812
|
+
failureReason_codex_context_limit_next: 'Retry the task. If the context limit is reached again, use /compact or start a new conversation with less context.',
|
|
671
813
|
failureReason_codex_no_usable_result_user: 'Local Codex returned no usable final report or operations.',
|
|
672
814
|
failureReason_codex_no_usable_result_next: 'Open Technical Details and resolve the local Codex error.',
|
|
673
815
|
failureReason_codex_project_locked_user: 'Another Codex task is already running for this Overleaf project.',
|
|
@@ -716,6 +858,7 @@
|
|
|
716
858
|
recentProjects_previewUnavailableHint: 'Saved conversation could not be loaded.',
|
|
717
859
|
recentProjects_conversationGone: 'This conversation is no longer available. Choose another conversation from the refreshed list.',
|
|
718
860
|
recentProjects_continueFailed: 'Could not open the conversation. Please try again.',
|
|
861
|
+
recentProjects_renameFailed: 'Could not rename the conversation. Your title is still available to edit or copy.',
|
|
719
862
|
recentProjects_welcome_subtitle: 'Conversations saved in this browser',
|
|
720
863
|
recentProjects_empty: 'No conversations saved in this browser yet. Open an Overleaf project and start a Codex conversation.',
|
|
721
864
|
recentProjects_sessions_empty: 'No saved conversations in this project',
|
|
@@ -761,6 +904,63 @@
|
|
|
761
904
|
recentProjects_badge_abandoned_after_navigation: 'Last run stopped after navigation'
|
|
762
905
|
},
|
|
763
906
|
zh: {
|
|
907
|
+
runOutcomeIncomplete: "未完成",
|
|
908
|
+
runOutcomePartial: "部分写入",
|
|
909
|
+
runOutcomeNotWritten: "未写入",
|
|
910
|
+
runOutcomeCheck: "请检查 Overleaf",
|
|
911
|
+
runOutcomeNoWrites: "没有向 Overleaf 写入任何内容。",
|
|
912
|
+
runOutcomeNotWrittenBody: "Codex 没有覆盖文件,没有写入任何内容。",
|
|
913
|
+
runOutcomePartialTitle: "已写入 {wrote}/{total} 项修改",
|
|
914
|
+
runOutcomePartialNext: "请检查跳过的文件后重新发送,也可以点击上方的“撤销已写入部分”。",
|
|
915
|
+
runOutcomeUnconfirmedFile: "无法确认对 {file} 的写入",
|
|
916
|
+
runOutcomeUnconfirmed: "无法确认写入结果",
|
|
917
|
+
runOutcomeUnconfirmedBody: "部分改动可能已经写入 Overleaf。",
|
|
918
|
+
runOutcomeCheckNext: "请先检查 {file} 再重新发送。",
|
|
919
|
+
runOutcomeContextNext: "请使用 /compact 或以更少的上下文开始新对话后重试。",
|
|
920
|
+
runOutcomeNativeNext: "请重新发送;若持续中断,请打开诊断检查桥接连接。",
|
|
921
|
+
runOutcomeStaleNext: "请检查当前文件后重新发送。",
|
|
922
|
+
runOutcomeStaleReason: "文件在 Codex 工作期间发生变化,因此没有覆盖。",
|
|
923
|
+
runOutcomeSkipped: "已跳过",
|
|
924
|
+
runOutcomeWritten: "已写入",
|
|
925
|
+
runOutcomeNext: "请检查详情后重试。",
|
|
926
|
+
runOutcomeDetails: "详情",
|
|
927
|
+
runOutcomeCode: "代码",
|
|
928
|
+
runOutcomeStage: "阶段",
|
|
929
|
+
runOutcomeWrites: "写入",
|
|
930
|
+
runOutcomeNoneAttempted: "未尝试写入",
|
|
931
|
+
runOutcomeCompileChip: "{count} 个编译错误",
|
|
932
|
+
runOutcomeCompileTitle: "Overleaf 编译:{count} 个错误",
|
|
933
|
+
runCompileUnconfirmed: '写后编译检查:结果待确认。',
|
|
934
|
+
runOutcomeCause_stale_source_changed: "{file} 在 Codex 工作期间发生变化",
|
|
935
|
+
runOutcomeCause_target_editor_not_ready: "{file} 的编辑器尚未就绪",
|
|
936
|
+
runOutcomeCause_write_timeout: "写入确认超时",
|
|
937
|
+
runOutcomeCause_write_observed_mismatch: "写入后的内容与预期不符",
|
|
938
|
+
runOutcomeCause_codex_context_limit: "超出模型上下文限制",
|
|
939
|
+
runOutcomeCause_codex_timeout: "本地 Codex 超时",
|
|
940
|
+
runOutcomeCause_codex_output_limit: "超出模型输出限制",
|
|
941
|
+
runOutcomeCause_codex_no_usable_result: "本地 Codex 没有返回可用结果",
|
|
942
|
+
runOutcomeCause_native_request_failed: "与本地 Codex 的连接中断",
|
|
943
|
+
runOutcomeCause_panel_reload_interrupted: "Codex 工作时页面被刷新了",
|
|
944
|
+
runOutcomeReloadUnknownBody: "刷新前没有记录到写入。再次发送前,请先在 Overleaf 中检查文件。",
|
|
945
|
+
runOutcomeCause_governance_readonly: "{file} 在本项目的路径规则中设为只读",
|
|
946
|
+
runOutcomeCause_governance_writable_allowlist: "{file} 不在本项目允许写入的路径内",
|
|
947
|
+
runOutcomeCause_sensitive_content_blocked: "发送前发现疑似{finding}",
|
|
948
|
+
sensitiveFinding_private_key: "私钥",
|
|
949
|
+
sensitiveFinding_bearer_token: "Bearer 令牌",
|
|
950
|
+
sensitiveFinding_api_token: "API 令牌",
|
|
951
|
+
sensitiveFinding_aws_access_key: "AWS 访问密钥",
|
|
952
|
+
sensitiveFinding_google_api_key: "Google API 密钥",
|
|
953
|
+
sensitiveFinding_huggingface_token: "Hugging Face 令牌",
|
|
954
|
+
sensitiveFinding_gitlab_token: "GitLab 令牌",
|
|
955
|
+
sensitiveFinding_stripe_live_secret: "Stripe 密钥",
|
|
956
|
+
sensitiveFinding_jwt_token: "JWT",
|
|
957
|
+
sensitiveFinding_secret_assignment: "密钥值",
|
|
958
|
+
sensitiveFinding_mixed: "敏感内容",
|
|
959
|
+
runOutcomeCause_native_bridge_unavailable: "无法连接到本地 Codex",
|
|
960
|
+
runOutcomeCause_project_snapshot_unavailable: "无法读取 Overleaf 项目",
|
|
961
|
+
runOutcomeCause_patch_anchor_not_found: "无法在 {file} 中定位修改位置",
|
|
962
|
+
runOutcomeCause_undo_not_verified: "无法确认撤销结果",
|
|
963
|
+
runOutcomeCause_undo_operation_failed: "无法完成撤销",
|
|
764
964
|
failureReason_base_file_missing_at_start_user: "首次读取项目时,缺少本任务所需的文件。",
|
|
765
965
|
failureReason_base_file_missing_at_start_next: "请刷新项目上下文后重新运行。",
|
|
766
966
|
failureReason_target_file_missing_path_user: "改动中未包含目标文件路径。",
|
|
@@ -789,6 +989,24 @@
|
|
|
789
989
|
failureReason_subagent_unfinished_output_next: "请由主代理完成并采纳待处理文件。",
|
|
790
990
|
failureReason_subagent_unauthorized_edit_user: "文件修改超出了子代理负责的范围,因此未同步。",
|
|
791
991
|
failureReason_subagent_unauthorized_edit_next: "请检查超出负责范围的修改;采纳输出无法解除此限制。",
|
|
992
|
+
failureReason_reviewing_unavailable_user: "此项目无法使用 Track Changes(留痕),是否可用取决于项目所有者的 Overleaf 订阅方案。",
|
|
993
|
+
failureReason_reviewing_unavailable_next: "关闭输入框旁的“留痕”即可不留痕写入。Codex 仍会记录每次改动,方便你撤销。",
|
|
994
|
+
failureReason_reviewing_unavailable_cancelled_next: "没有运行,Track 设置保持不变。重新发送即可再次选择。",
|
|
995
|
+
runNotStarted: '未开始',
|
|
996
|
+
runNotStartedCancelled: '未开始 · 已取消',
|
|
997
|
+
runNotStartedTrackTitle: '此项目无法使用 Track Changes(留痕)',
|
|
998
|
+
runNotStartedModeTitle: '无法确认 Overleaf 的编辑模式',
|
|
999
|
+
runNotStartedTrackBody: '留痕功能取决于项目所有者的 Overleaf 订阅方案;任务没有运行,也没有写入文件。',
|
|
1000
|
+
runNotStartedModeBody: 'Overleaf 未确认所需的编辑模式;任务没有运行,也没有写入文件。',
|
|
1001
|
+
runNotStartedCancelledNext: 'Track 设置保持不变。重新发送即可再次选择。',
|
|
1002
|
+
runNotStartedNext: '请检查 Overleaf 的编辑模式后重试。',
|
|
1003
|
+
reviewingUnavailableTitle: "此项目无法留痕",
|
|
1004
|
+
reviewingUnavailableChoiceMessage: "此项目无法使用 Track Changes(留痕),是否可用取决于项目所有者的 Overleaf 订阅方案。Codex 仍可不留痕写入,并记录每次改动,方便你撤销。",
|
|
1005
|
+
reviewingUnavailableContinue: "本轮不留痕继续",
|
|
1006
|
+
reviewingUnavailableDisable: "关闭此项目的留痕",
|
|
1007
|
+
reviewingUnavailableStatus: "无法留痕",
|
|
1008
|
+
reviewingUnavailableTooltip: "此项目无法使用 Track Changes(留痕)。Codex 会在每轮运行前询问是否不留痕继续。关闭再开启留痕可重新检查。",
|
|
1009
|
+
reviewingUnavailableRunUntracked: "此项目无法使用 Track Changes,本轮将不留痕写入。Codex 仍会记录改动,方便撤销。",
|
|
792
1010
|
failureReason_reviewing_enable_failed_user: "Codex 无法在需要时启用审阅模式。",
|
|
793
1011
|
failureReason_reviewing_enable_failed_next: "请手动启用审阅模式,或重试。",
|
|
794
1012
|
failureReason_reviewing_disable_failed_user: "Codex 无法切换到不留痕的编辑模式。",
|
|
@@ -825,6 +1043,8 @@
|
|
|
825
1043
|
failureReason_provider_request_rejected_next: "请检查模型标识、推理设置、工具支持及自定义请求参数。",
|
|
826
1044
|
failureReason_provider_rate_limited_user: "模型服务已达到请求频率限制。",
|
|
827
1045
|
failureReason_provider_rate_limited_next: "请等待限流窗口恢复后重试。",
|
|
1046
|
+
failureReason_provider_quota_exceeded_user: "模型服务的配额或账单限额已达到。",
|
|
1047
|
+
failureReason_provider_quota_exceeded_next: "请检查模型服务账户和套餐,或切换模型或模型服务后重试。",
|
|
828
1048
|
failureReason_provider_connection_timeout_user: "模型服务连接超时。",
|
|
829
1049
|
failureReason_provider_connection_timeout_next: "请检查服务端点和网络,然后重试。",
|
|
830
1050
|
failureReason_provider_dns_failed_user: "无法解析模型服务的主机名。",
|
|
@@ -879,6 +1099,8 @@
|
|
|
879
1099
|
resizePanel: '拖动调整 Codex 面板宽度,双击恢复默认宽度',
|
|
880
1100
|
codexActions: 'Codex 操作',
|
|
881
1101
|
refreshProbe: '重新检测当前文件状态;不会同步或修改文件',
|
|
1102
|
+
refreshProbeTitle: '刷新文件状态',
|
|
1103
|
+
refreshProbeSubtitle: '重新读取 Overleaf 状态;不会同步或修改文件',
|
|
882
1104
|
diagnosticsMenu: '排查问题',
|
|
883
1105
|
diagnosticsHint: '遇到无法运行、无法写入、读不到文件时使用',
|
|
884
1106
|
diagnosticsRunAllTitle: '运行全部检查',
|
|
@@ -938,6 +1160,9 @@
|
|
|
938
1160
|
nativeCompatibilityBlockedProtocol: '执行 {method} 前发现 native host 协议不匹配。请同时更新扩展和 native host。',
|
|
939
1161
|
nativeCompatibilityBlockedUnhealthy: '本机 Codex 还不能执行 {method}。请打开“排查问题 > 检查本机连接”查看详情。',
|
|
940
1162
|
nativeCompatibilityBlockedMissing: '执行 {method} 时没有连接到 native host。请安装本机 native host,重新加载扩展后再试。',
|
|
1163
|
+
nativeCompatibilityMissingTitle: 'Native host 未连接',
|
|
1164
|
+
nativeCompatibilityMissingGuidance: '请安装本机 native host,重新加载扩展后再试。',
|
|
1165
|
+
nativeCompatibilityUnavailableFeatures: '{count} 项功能不可用',
|
|
941
1166
|
nativeCompatibilityBlockedGeneric: '当前 native host 与扩展不兼容,不能执行 {method}。请更新 native host 和扩展后再试。',
|
|
942
1167
|
diagnosticsPageLoading: '确认当前文件、写入能力和留痕状态。',
|
|
943
1168
|
diagnosticsLoading: '正在检查当前状态。',
|
|
@@ -957,6 +1182,9 @@
|
|
|
957
1182
|
threadResumeNew: '新建线程',
|
|
958
1183
|
sessionsHead: '会话',
|
|
959
1184
|
sessionMenuOpen: '切换会话',
|
|
1185
|
+
sessionMenuNewShort: '新建',
|
|
1186
|
+
sessionMenuRenameShort: '重命名',
|
|
1187
|
+
sessionMenuDeleteShort: '删除',
|
|
960
1188
|
sessionListEmpty: '还没有保存的会话——发起一个任务即可创建。',
|
|
961
1189
|
deleteSessionDeletedToast: '已删除会话。',
|
|
962
1190
|
resetSessionTitle: '开一个新会话?',
|
|
@@ -1003,6 +1231,7 @@
|
|
|
1003
1231
|
undoRunTitle: '撤销本轮写入到 Overleaf 的改动',
|
|
1004
1232
|
undoPartialRunTitle: '撤销本轮已经写入 Overleaf 的部分改动',
|
|
1005
1233
|
undoAppliedTitle: '本轮写入已经撤销',
|
|
1234
|
+
undoAcceptedTitle: '这些改动已在 Overleaf 中接受,无法再撤销。',
|
|
1006
1235
|
undoNoWritesTitle: '本轮没有写入,无需撤销。',
|
|
1007
1236
|
undoUnsafeFullFileTitle: '已阻止旧格式全文撤销',
|
|
1008
1237
|
undoUnsafeFullFileReason: '这个撤销点会用全文替换恢复文件,在 Overleaf 留痕模式下会把整篇文档标成改动。请重新运行任务生成局部撤销点,或手动处理这次历史改动。',
|
|
@@ -1011,11 +1240,11 @@
|
|
|
1011
1240
|
undoConfirm: '撤销写入',
|
|
1012
1241
|
undoNoTraceStarted: '开始无留痕撤销本轮写入',
|
|
1013
1242
|
undoResult: '撤销结果:已撤销 {applied} 项,跳过 {skipped} 项',
|
|
1014
|
-
undoTrackedTitle: '
|
|
1243
|
+
undoTrackedTitle: '撤销本轮留痕改动?',
|
|
1015
1244
|
undoNativeTitle: '撤销本轮 Overleaf 写入?',
|
|
1016
1245
|
undoTrackedMessage: '将通过 Overleaf 自己的 Reject/拒绝功能撤销 {files}。\n\n这不会用文本补丁重写文件;如果插件不能确认对应留痕记录,会停止并让你在 Overleaf 审阅面板手动处理。',
|
|
1017
1246
|
undoNativeMessage: '撤销本轮在 {files} 中的改动。',
|
|
1018
|
-
undoTrackedConfirm: '
|
|
1247
|
+
undoTrackedConfirm: '撤销改动',
|
|
1019
1248
|
undoTrackedStarted: '开始拒绝本轮 Overleaf 留痕改动',
|
|
1020
1249
|
undoNativeStarted: '正在撤销本轮改动',
|
|
1021
1250
|
undoTrackedResult: '撤销结果:已拒绝 {applied} 条留痕,跳过 {skipped} 条',
|
|
@@ -1112,8 +1341,14 @@
|
|
|
1112
1341
|
codexLocalSkillsSkipped: '有 {count} 个本地技能未能加载。',
|
|
1113
1342
|
codexLocalSkillsLoadFailed: '无法加载 Codex 本地技能,请重新打开技能页重试。',
|
|
1114
1343
|
codexLocalSkillsDisabled: '运行时已禁用 Codex 本地技能。',
|
|
1115
|
-
slashUseLocalSkillSubtitle: '
|
|
1116
|
-
slashUseOverleafSkillSubtitle: '
|
|
1344
|
+
slashUseLocalSkillSubtitle: '本轮使用',
|
|
1345
|
+
slashUseOverleafSkillSubtitle: '本轮使用',
|
|
1346
|
+
slashGroupCommands: '命令',
|
|
1347
|
+
slashGroupOverleafSkills: 'Codex Overleaf 技能',
|
|
1348
|
+
slashGroupLocalSkills: 'Codex 本地技能',
|
|
1349
|
+
slashKeyMove: '选择',
|
|
1350
|
+
slashKeyRun: '执行',
|
|
1351
|
+
slashKeyClose: '关闭',
|
|
1117
1352
|
codexOverleafSkillsEmpty: '没有安装 Codex Overleaf 专属技能。',
|
|
1118
1353
|
codexOverleafSkillsDisabled: '运行时已禁用 Codex Overleaf 专属技能。',
|
|
1119
1354
|
loadCodexLocalSkills: '加载 Codex 本地技能',
|
|
@@ -1131,6 +1366,13 @@
|
|
|
1131
1366
|
codexOverleafSkillsSummaryOff: '已关闭',
|
|
1132
1367
|
codexOverleafSkillsSummaryCount: '已启用 {count} 个',
|
|
1133
1368
|
slashInstallSkillTitle: '安装 skill',
|
|
1369
|
+
slashCompactTitle: '压缩上下文',
|
|
1370
|
+
slashCompactSubtitle: '整理此前的对话,释放上下文窗口',
|
|
1371
|
+
compactNoThread: '请先开始一轮对话,再压缩上下文。',
|
|
1372
|
+
compactBusy: '请等待当前任务结束后再压缩上下文。',
|
|
1373
|
+
compactUnsupported: '当前本地 Codex 连接不支持手动压缩,请更新 Codex 并重新加载扩展。',
|
|
1374
|
+
compactCompleted: '会话上下文已压缩。',
|
|
1375
|
+
compactFailed: '上下文压缩未完成,请查看技术详情后再重试。',
|
|
1134
1376
|
slashInstallSkillSubtitle: '用自然语言调用 Codex 的 skill installer。',
|
|
1135
1377
|
slashUseSkillSubtitle: '本轮使用这个 skill。',
|
|
1136
1378
|
skillInstallerComposerLabel: 'Skill Installer',
|
|
@@ -1145,18 +1387,14 @@
|
|
|
1145
1387
|
settingsSaved: '已保存',
|
|
1146
1388
|
appearanceTitle: '外观',
|
|
1147
1389
|
settingsWorkbenchTitle: '设置',
|
|
1148
|
-
|
|
1149
|
-
settingsWorkbenchGeneral: '常规与外观',
|
|
1390
|
+
settingsWorkbenchWriting: '写作',
|
|
1150
1391
|
settingsWorkbenchModels: '模型与连接',
|
|
1151
|
-
|
|
1152
|
-
settingsWorkbenchInstructions: '指令与技能',
|
|
1392
|
+
settingsWorkbenchContextSkills: '上下文与技能',
|
|
1153
1393
|
settingsWorkbenchProtection: '文件保护与隐私',
|
|
1154
|
-
|
|
1155
|
-
settingsWorkbenchAll: '全部设置',
|
|
1156
|
-
settingsWorkbenchFilter: '按作用范围筛选设置',
|
|
1394
|
+
settingsWorkbenchChanges: '修改记录',
|
|
1157
1395
|
settingsWorkbenchCategories: '设置分类',
|
|
1158
|
-
|
|
1159
|
-
|
|
1396
|
+
settingsPageScopeProject: '仅当前项目',
|
|
1397
|
+
settingsPageScopeGlobal: '适用于所有项目',
|
|
1160
1398
|
settingsWorkbenchClose: '关闭设置',
|
|
1161
1399
|
settingsWorkbenchEnableSkills: '启用 Overleaf 技能',
|
|
1162
1400
|
settingsWorkbenchSkillsHelp: '关闭 Overleaf 技能时,各项选择会保留。',
|
|
@@ -1229,6 +1467,10 @@
|
|
|
1229
1467
|
diagnosticsDotWarn: '诊断——有需要留意的项',
|
|
1230
1468
|
diagnosticsDotFail: '诊断——有检查未通过,点击查看',
|
|
1231
1469
|
diagnosticsDotUnknown: '诊断',
|
|
1470
|
+
diagnosticsPillOk: '就绪',
|
|
1471
|
+
diagnosticsPillWarn: '需留意',
|
|
1472
|
+
diagnosticsPillFail: '有问题',
|
|
1473
|
+
diagnosticsPillUnknown: '检查中',
|
|
1232
1474
|
reasoningLabel: '推理强度',
|
|
1233
1475
|
speedLabel: '速度',
|
|
1234
1476
|
requireReviewing: '留痕',
|
|
@@ -1291,11 +1533,39 @@
|
|
|
1291
1533
|
queuedInputResume: '继续',
|
|
1292
1534
|
queuedInputRemove: '删除',
|
|
1293
1535
|
queuedInputAttachmentsUnsupported: '当前排队消息支持文本和 @context;请先移除二进制附件。',
|
|
1536
|
+
attachmentsLoading: '附件读取中',
|
|
1294
1537
|
queuedInputError_empty_input: '请先输入后续任务。',
|
|
1295
1538
|
queuedInputError_input_too_long: '这条后续任务太长,无法排队。',
|
|
1296
1539
|
queuedInputError_queue_full: '后续任务队列已满。',
|
|
1297
1540
|
queuedInputError_queue_too_large: '后续任务队列已达到存储上限。',
|
|
1298
1541
|
contextTitle: '@ 上下文',
|
|
1542
|
+
contextUsageTitle: '上下文窗口',
|
|
1543
|
+
contextUsageAmount: '{used} / {capacity} 词元',
|
|
1544
|
+
contextUsageSummary: '上下文窗口:{amount}({percentage})',
|
|
1545
|
+
contextUsageEstimate: '最近上报的上下文用量估计。',
|
|
1546
|
+
contextUsageUnavailable: '尚无上下文用量数据。',
|
|
1547
|
+
contextUsageBeforeFirstMessage: '发送第一条消息后,这里会显示用量。',
|
|
1548
|
+
contextUsageCapacityUnknown: '显示最近上报的用量;窗口容量未知。',
|
|
1549
|
+
contextUsageCompacting: '正在压缩上下文…',
|
|
1550
|
+
contextUsageCompactingAuto: '正在压缩上下文,Codex 会继续处理。',
|
|
1551
|
+
contextUsagePending: '上下文已压缩,下一次回复后会更新用量。',
|
|
1552
|
+
contextUsagePendingDetail: '下一次回复后会更新用量。',
|
|
1553
|
+
contextUsageCompactedChip: '已压缩',
|
|
1554
|
+
contextUsageHigh: '偏高',
|
|
1555
|
+
contextUsageNearLimit: '接近上限',
|
|
1556
|
+
contextUsageInput: '输入',
|
|
1557
|
+
contextUsageOutput: '输出',
|
|
1558
|
+
contextUsageBreakdownBasis: '占比按上报的输入 + 输出计算。',
|
|
1559
|
+
contextUsageCacheHit: '其中缓存命中',
|
|
1560
|
+
contextUsageCacheHitRate: '输入缓存命中率',
|
|
1561
|
+
contextUsageLatestReply: '最近一次回复 · {time}',
|
|
1562
|
+
contextUsageJustNow: '刚刚',
|
|
1563
|
+
contextUsageMinutesAgo: '{count} 分钟前',
|
|
1564
|
+
contextUsageHoursAgo: '{count} 小时前',
|
|
1565
|
+
contextUsageDayAgo: '1 天前',
|
|
1566
|
+
contextUsageDaysAgo: '{count} 天前',
|
|
1567
|
+
contextUsageCompactAction: '压缩',
|
|
1568
|
+
contextUsageCompactHint: '把此前的对话整理为摘要,释放上下文窗口;不读取或修改文档。',
|
|
1299
1569
|
refreshFileList: '刷新文件列表',
|
|
1300
1570
|
contextStatus: '输入 @ 添加文件,或点 +:文件、附件(PDF/图片)、@compile-log。',
|
|
1301
1571
|
contextLoadingFiles: '正在读取可添加的 @文件...',
|
|
@@ -1332,6 +1602,11 @@
|
|
|
1332
1602
|
fileContext: '已选择 @file 上下文',
|
|
1333
1603
|
contextContext: '已选择 @context',
|
|
1334
1604
|
refreshProbeLoading: '正在重新检测当前文件、写入权限和留痕状态...',
|
|
1605
|
+
probeScopeCurrentFile: '当前文件',
|
|
1606
|
+
probeScopeSelection: '已选文本',
|
|
1607
|
+
probeScopeFiles: '已选文件',
|
|
1608
|
+
probeScopeContext: '已选上下文',
|
|
1609
|
+
probeScopeProject: '整个项目',
|
|
1335
1610
|
refreshProbeDone: '已重新检测:{status}',
|
|
1336
1611
|
refreshProbeFailed: '检测失败:请刷新 Overleaf 页面后重试',
|
|
1337
1612
|
processedFailed: '处理失败 {elapsed}',
|
|
@@ -1378,6 +1653,12 @@
|
|
|
1378
1653
|
failureReason_accept_replay_failed_next: '请在 Overleaf 中检查该文件后重试。',
|
|
1379
1654
|
failureReason_native_request_failed_user: '向本地 Codex bridge 的请求失败。',
|
|
1380
1655
|
failureReason_native_request_failed_next: '打开「诊断」检查 bridge 后重试。',
|
|
1656
|
+
failureReason_native_request_timeout_user: '本机服务没有响应。',
|
|
1657
|
+
failureReason_native_request_timeout_next: '请重试,或打开「诊断」检查本机连接。',
|
|
1658
|
+
failureReason_panel_reload_interrupted_user: '页面刷新导致本轮中断。',
|
|
1659
|
+
failureReason_panel_reload_interrupted_next: '可编辑后重发任务以继续。',
|
|
1660
|
+
failureReason_sensitive_content_blocked_user: '发送前发现敏感内容,Codex 没有收到这次请求。',
|
|
1661
|
+
failureReason_sensitive_content_blocked_next: '请移除敏感内容、缩小 @context,或在项目设置里允许敏感内容显式确认。',
|
|
1381
1662
|
failureReason_project_snapshot_unavailable_user: 'Codex 没能读到 Overleaf 项目快照。',
|
|
1382
1663
|
failureReason_project_snapshot_unavailable_next: '请刷新 Overleaf,然后重试本轮任务。',
|
|
1383
1664
|
failureReason_selected_context_unresolved_user: 'Codex 没能解析所选的内容或上下文。',
|
|
@@ -1385,11 +1666,11 @@
|
|
|
1385
1666
|
failureReason_selection_scope_violation_user: '生成的一项改动超出了已附加的选区,已阻止写回。',
|
|
1386
1667
|
failureReason_selection_scope_violation_next: '请重新选择目标范围,仅请求修改该范围。已写入的合法部分可撤销。',
|
|
1387
1668
|
failureReason_governance_blocked_user: '项目文件规则阻止了此次写入。Codex 未写入受影响的路径。',
|
|
1388
|
-
failureReason_governance_blocked_next: '请在「设置 >
|
|
1669
|
+
failureReason_governance_blocked_next: '请在「设置 > 文件保护与隐私」中查看项目文件规则,然后请求修改允许写入的路径。',
|
|
1389
1670
|
failureReason_governance_readonly_user: '项目文件规则将此操作涉及的路径标记为只读。Codex 未执行此操作。',
|
|
1390
|
-
failureReason_governance_readonly_next: '请在「设置 >
|
|
1671
|
+
failureReason_governance_readonly_next: '请在「设置 > 文件保护与隐私」中查看只读路径规则,然后请求修改允许写入的路径。',
|
|
1391
1672
|
failureReason_governance_writable_allowlist_user: '此操作涉及的路径不在配置的可写路径范围内。Codex 未执行此操作。',
|
|
1392
|
-
failureReason_governance_writable_allowlist_next: '请在「设置 >
|
|
1673
|
+
failureReason_governance_writable_allowlist_next: '请在「设置 > 文件保护与隐私」中查看可写路径规则,然后请求修改允许范围内的路径。',
|
|
1393
1674
|
failureReason_target_file_not_found_user: 'Codex 在当前 Overleaf 项目中没有找到 {file}。',
|
|
1394
1675
|
failureReason_target_file_not_found_next: '请在 Overleaf 中核对文件名和路径后重试。',
|
|
1395
1676
|
failureReason_target_file_open_failed_user: 'Codex 没能在 Overleaf 中打开 {file}。',
|
|
@@ -1400,6 +1681,8 @@
|
|
|
1400
1681
|
failureReason_target_editor_not_ready_next: '请等 Overleaf 加载完成后再重试。',
|
|
1401
1682
|
failureReason_stale_source_changed_user: '{file} 在任务执行期间被修改过,Codex 没有覆盖它。',
|
|
1402
1683
|
failureReason_stale_source_changed_next: '请先查看当前文件内容,再重新运行本轮任务。',
|
|
1684
|
+
failureReason_document_identity_mismatch_user: 'Codex 无法确认编辑器内容属于目标文件,因此没有使用这些内容。',
|
|
1685
|
+
failureReason_document_identity_mismatch_next: '请等目标文件打开并稳定后重试;如果问题持续,请重新加载 Overleaf。',
|
|
1403
1686
|
failureReason_patch_anchor_not_found_user: '{file} 的修改锚点已经无法和当前 Overleaf 内容对齐。',
|
|
1404
1687
|
failureReason_patch_anchor_not_found_next: '请基于当前文档重新运行任务。',
|
|
1405
1688
|
failureReason_write_observed_mismatch_user: 'Codex 尝试写入 {file},但写入后从 Overleaf 读回的内容与批准的改动不一致。',
|
|
@@ -1416,6 +1699,8 @@
|
|
|
1416
1699
|
failureReason_accept_not_verified_next: '请先在 Overleaf 审阅面板核对后再继续。',
|
|
1417
1700
|
failureReason_native_bridge_unavailable_user: '扩展无法连接到 Codex Native Host。',
|
|
1418
1701
|
failureReason_native_bridge_unavailable_next: '请运行 install-native,或者重新加载扩展。',
|
|
1702
|
+
failureReason_codex_context_limit_user: '本轮已停止:上下文超出模型的容量限制。',
|
|
1703
|
+
failureReason_codex_context_limit_next: '请重试任务;如果再次超限,可使用 /compact,或新建会话并减少上下文。',
|
|
1419
1704
|
failureReason_codex_no_usable_result_user: '本地 Codex 没有返回可用的最终报告或操作。',
|
|
1420
1705
|
failureReason_codex_no_usable_result_next: '请打开“技术细节”排查本地 Codex 错误。',
|
|
1421
1706
|
failureReason_codex_project_locked_user: '同一个 Overleaf 项目里已经有一轮 Codex 任务正在运行。',
|
|
@@ -1464,6 +1749,7 @@
|
|
|
1464
1749
|
recentProjects_previewUnavailableHint: '已保存的对话暂时无法读取。',
|
|
1465
1750
|
recentProjects_conversationGone: '该对话已不可用,请从更新后的列表中选择其他对话。',
|
|
1466
1751
|
recentProjects_continueFailed: '暂时无法打开对话,请重试。',
|
|
1752
|
+
recentProjects_renameFailed: '暂时无法重命名对话,输入的标题仍保留,可继续编辑或复制。',
|
|
1467
1753
|
recentProjects_welcome_subtitle: '当前浏览器保存的对话',
|
|
1468
1754
|
recentProjects_empty: '当前浏览器还没有保存的对话。打开一个 Overleaf 项目,与 Codex 开始对话即可。',
|
|
1469
1755
|
recentProjects_sessions_empty: '该项目还没有保存的对话',
|