diff --git a/config/scripts/locale-ko-key-overrides.json b/config/scripts/locale-ko-key-overrides.json index 5479aba8435..39e7b3b5e44 100644 --- a/config/scripts/locale-ko-key-overrides.json +++ b/config/scripts/locale-ko-key-overrides.json @@ -515,9 +515,6 @@ "auto.components.activity.ActivityPrototypePage.b29191b3e0": { "ko": "워크트리" }, - "auto.components.activity.ActivityTitlebarControls.f915168c8e": { - "ko": "읽지 않음" - }, "auto.components.agent.AgentCombobox.48c6a5a9b4": { "ko": "agents 검색..." }, @@ -3479,9 +3476,6 @@ "auto.components.sidebar.AddRepoSteps.cloneParentFolder": { "ko": "상위 폴더" }, - "auto.components.sidebar.DeleteWorktreeWarningPanels.c4f96a6e18": { - "ko": "메인 워크트리" - }, "auto.components.sidebar.HostRemoveDialog.1a2b3c4d5e": { "ko": "{{value0}} 제거됨" }, @@ -3503,12 +3497,6 @@ "auto.components.sidebar.HostRemoveDialog.8b9c0d1e2f": { "ko": "호스트 제거" }, - "auto.components.sidebar.HostRemoveDialog.manyWorkspaces": { - "ko": "워크스페이스 {{count}}개" - }, - "auto.components.sidebar.HostRemoveDialog.oneWorkspace": { - "ko": "워크스페이스 1개" - }, "auto.components.sidebar.HostRemoveDialog.workspacesFailed": { "ko": "이 호스트에서 워크스페이스 {{count}}개를 제거할 수 없었습니다. 재시도할 수 있도록 호스트가 유지되었습니다." }, @@ -3593,9 +3581,6 @@ "auto.components.sidebar.ScrollToCurrentWorkspaceToolbarButton.23989bb663": { "ko": "활성 워크스페이스로 이동" }, - "auto.components.sidebar.SetupScriptPromptCardViews.bb879db364": { - "ko": "이 repo는 공유를 무시합니다" - }, "auto.components.sidebar.SidebarFeedbackDialog.3460258a54": { "ko": "X에서 팔로우" }, @@ -3923,12 +3908,6 @@ "auto.components.status.bar.StatusBar.25d8bbde69": { "ko": "재설정 사용 중…" }, - "auto.components.status.bar.StatusBar.5e5f9f5160": { - "ko": "rate-limit 재설정 1회 사용 가능" - }, - "auto.components.status.bar.StatusBar.5ecae9197c": { - "ko": "rate-limit 재설정 {{value0}}회 사용 가능" - }, "auto.components.status.bar.StatusBar.6d1042aa6f": { "ko": "활성 계정의 Codex rate-limit 재설정 크레딧 1회를 사용해 재설정 가능한 사용량 창을 즉시 초기화합니다." }, @@ -3962,12 +3941,6 @@ "auto.components.status.bar.WorkspaceSpaceManagerPanel.39801484e0": { "ko": "실패" }, - "auto.components.status.bar.WorkspaceSpaceManagerPanel.63efebe0e6": { - "ko": "{{value0}} {{value1}}이(가) Space에서 제거되었습니다." - }, - "auto.components.status.bar.WorkspaceSpaceManagerPanel.65402b7192": { - "ko": "선택됨" - }, "auto.components.status.bar.WorkspaceSpaceManagerPanel.81f14d9924": { "ko": "리포지토리" }, @@ -3986,12 +3959,6 @@ "auto.components.status.bar.tooltip.1292d4f2ee": { "ko": "사용할 수 없음" }, - "auto.components.status.bar.tooltip.45198c7d95": { - "ko": "rate-limit 재설정 1회 사용 가능" - }, - "auto.components.status.bar.tooltip.bce421cba3": { - "ko": "rate-limit 재설정 {{value0}}회 사용 가능" - }, "auto.components.tab.bar.BrowserTab.911542656f": { "ko": "탭 고정" }, @@ -5750,30 +5717,6 @@ "auto.components.TaskPage.memberCountPlural": { "ko": "멤버 {{count}}명" }, - "auto.components.terminal.pane.terminal.drop.handler.skippedSymlinkSingular": { - "ko": "심볼릭 링크 {{count}}개를 건너뛰었습니다." - }, - "auto.components.terminal.pane.terminal.drop.handler.skippedSymlinkPlural": { - "ko": "심볼릭 링크 {{count}}개를 건너뛰었습니다." - }, - "auto.components.terminal.pane.terminal.drop.handler.uploadingFileSingular": { - "ko": "파일 {{count}}개를 런타임에 업로드하는 중…" - }, - "auto.components.terminal.pane.terminal.drop.handler.uploadingFilePlural": { - "ko": "파일 {{count}}개를 런타임에 업로드하는 중…" - }, - "auto.components.sidebar.WorktreeList.groupProjectsRemainedSingular": { - "ko": "그룹을 삭제했지만, 포함된 프로젝트 {{count}}개 중 {{remaining}}개가 남아 있습니다." - }, - "auto.components.sidebar.WorktreeList.groupProjectsRemainedPlural": { - "ko": "그룹을 삭제했지만, 포함된 프로젝트 {{count}}개 중 {{remaining}}개가 남아 있습니다." - }, - "auto.components.sidebar.AddRemoteHostDialog.sshImportSyncedSingular": { - "ko": "호스트 {{count}}개를 Orca에 추가했습니다." - }, - "auto.components.sidebar.AddRemoteHostDialog.sshImportSyncedPlural": { - "ko": "호스트 {{count}}개를 Orca에 추가했습니다." - }, "auto.components.onboarding.IntegrationsStep.linearWorkspacesLinkedSingular": { "ko": "워크스페이스 {{count}}개가 연결되었습니다. 언제든지 다른 워크스페이스를 추가하거나 접근 권한이 제한된 API 키를 교체할 수 있습니다." }, diff --git a/src/renderer/src/components/activity/ActivityTitlebarControls.tsx b/src/renderer/src/components/activity/ActivityTitlebarControls.tsx index c3084ac42fc..958974ce885 100644 --- a/src/renderer/src/components/activity/ActivityTitlebarControls.tsx +++ b/src/renderer/src/components/activity/ActivityTitlebarControls.tsx @@ -45,8 +45,17 @@ export function ActivityTitlebarControls(): React.JSX.Element { {translate('auto.components.activity.ActivityTitlebarControls.d6a8de3934', 'agents')} - {unreadCount}{' '} - {translate('auto.components.activity.ActivityTitlebarControls.f915168c8e', 'unread')} + {unreadCount === 1 + ? translate( + 'auto.components.activity.ActivityTitlebarControls.unreadCount_one', + '{{count}} unread', + { count: unreadCount } + ) + : translate( + 'auto.components.activity.ActivityTitlebarControls.unreadCount_other', + '{{count}} unread', + { count: unreadCount } + )} diff --git a/src/renderer/src/components/activity/activity-clear-completed.ts b/src/renderer/src/components/activity/activity-clear-completed.ts index 3fc48fc9eb7..3f625337f22 100644 --- a/src/renderer/src/components/activity/activity-clear-completed.ts +++ b/src/renderer/src/components/activity/activity-clear-completed.ts @@ -167,9 +167,13 @@ export function clearCompletedActivity(threads: readonly AgentPaneThread[]): boo fallbackTimer = setTimeout(dropRetainedFromDiskCache, CLEAR_COMPLETED_EVICTION_FALLBACK_MS) toast( plan.clearedThreadCount === 1 - ? translate('auto.components.activity.clearCompleted.clearedOne', 'Cleared 1 completed agent') + ? translate( + 'auto.components.activity.clearCompleted.cleared_one', + 'Cleared {{count}} completed agent', + { count: plan.clearedThreadCount } + ) : translate( - 'auto.components.activity.clearCompleted.clearedMany', + 'auto.components.activity.clearCompleted.cleared_other', 'Cleared {{count}} completed agents', { count: plan.clearedThreadCount } ), diff --git a/src/renderer/src/components/cmd-j/quick-action-context.ts b/src/renderer/src/components/cmd-j/quick-action-context.ts index 158a836335d..f3b2dcff5a5 100644 --- a/src/renderer/src/components/cmd-j/quick-action-context.ts +++ b/src/renderer/src/components/cmd-j/quick-action-context.ts @@ -1,4 +1,5 @@ import type { AppState } from '@/store/types' +import { translate } from '@/i18n/i18n' import { findWorktreeById } from '@/store/slices/worktree-helpers' import type { Worktree } from '../../../../shared/worktree/types' import type { SshConnectionStatus } from '../../../../shared/ssh-types' @@ -209,18 +210,44 @@ export function getUnavailableQuickActionMessage( actionTitle: string, reason: CmdJUnavailableReason ): string { + // Quote the localized title instead of lowercasing it into the sentence. + const options = { action: actionTitle } switch (reason) { case 'loading': - return `Can't ${actionTitle.toLowerCase()} — workspace is still loading.` + return translate( + 'auto.components.cmdJ.quickActionUnavailable.workspaceLoading', + 'Can’t run “{{action}}” — workspace is still loading.', + options + ) case 'no-active-workspace': - return `Can't ${actionTitle.toLowerCase()} — no workspace is active.` + return translate( + 'auto.components.cmdJ.quickActionUnavailable.noActiveWorkspace', + 'Can’t run “{{action}}” — no workspace is active.', + options + ) case 'ssh-disconnected': - return `Can't ${actionTitle.toLowerCase()} — workspace is disconnected.` + return translate( + 'auto.components.cmdJ.quickActionUnavailable.workspaceDisconnected', + 'Can’t run “{{action}}” — workspace is disconnected.', + options + ) case 'no-active-group': - return `Can't ${actionTitle.toLowerCase()} — no tab group is available.` + return translate( + 'auto.components.cmdJ.quickActionUnavailable.noTabGroup', + 'Can’t run “{{action}}” — no tab group is available.', + options + ) case 'no-active-chat': - return `Can't ${actionTitle.toLowerCase()} — no movable chat is active.` + return translate( + 'auto.components.cmdJ.quickActionUnavailable.noMovableChat', + 'Can’t run “{{action}}” — no movable chat is active.', + options + ) case 'client-action-unsupported': - return `Can't ${actionTitle.toLowerCase()} — this client and runtime do not support it.` + return translate( + 'auto.components.cmdJ.quickActionUnavailable.clientUnsupported', + 'Can’t run “{{action}}” — this client and runtime do not support it.', + options + ) } } diff --git a/src/renderer/src/components/dashboard/DashboardAgentChildDisclosure.tsx b/src/renderer/src/components/dashboard/DashboardAgentChildDisclosure.tsx index 4e225a287dd..b8dde44f892 100644 --- a/src/renderer/src/components/dashboard/DashboardAgentChildDisclosure.tsx +++ b/src/renderer/src/components/dashboard/DashboardAgentChildDisclosure.tsx @@ -64,15 +64,31 @@ export function DashboardAgentChildDisclosure({ onKeyDown={stopKeyDown} data-agent-child-disclosure-button="" className="col-start-1 row-start-1 -mr-1.5" - aria-label={translate( - 'auto.components.dashboard.DashboardAgentChildDisclosure.1b57ce9fa4', - '{{value0}} {{value1}} child {{value2}}', - { - value0: childAgentsExpanded ? 'Hide' : 'Show', - value1: childAgentCount, - value2: childAgentCount === 1 ? 'agent' : 'agents' - } - )} + aria-label={ + childAgentsExpanded + ? childAgentCount === 1 + ? translate( + 'auto.components.dashboard.DashboardAgentChildDisclosure.hideChildAgents_one', + 'Hide {{count}} child agent', + { count: childAgentCount } + ) + : translate( + 'auto.components.dashboard.DashboardAgentChildDisclosure.hideChildAgents_other', + 'Hide {{count}} child agents', + { count: childAgentCount } + ) + : childAgentCount === 1 + ? translate( + 'auto.components.dashboard.DashboardAgentChildDisclosure.showChildAgents_one', + 'Show {{count}} child agent', + { count: childAgentCount } + ) + : translate( + 'auto.components.dashboard.DashboardAgentChildDisclosure.showChildAgents_other', + 'Show {{count}} child agents', + { count: childAgentCount } + ) + } aria-expanded={childAgentsExpanded} > 0 const identityTitle = lineageChildCount > 0 - ? `${formatAgentTypeLabel(agent.agentType)} - dispatched ${lineageChildCount} ${ - lineageChildCount === 1 ? 'agent' : 'agents' - }` + ? lineageChildCount === 1 + ? translate( + 'auto.components.dashboard.DashboardAgentRow.dispatchedAgents_one', + '{{agentType}} - dispatched {{count}} agent', + { + agentType: formatAgentTypeLabel(agent.agentType), + count: lineageChildCount + } + ) + : translate( + 'auto.components.dashboard.DashboardAgentRow.dispatchedAgents_other', + '{{agentType}} - dispatched {{count}} agents', + { + agentType: formatAgentTypeLabel(agent.agentType), + count: lineageChildCount + } + ) : [formatAgentTypeLabel(agent.agentType), model].filter(Boolean).join(' · ') // Surface failed main-agent outcomes even while subagents continue running. const dotState: AgentDotState = dotStateOverride ?? agentRowDisplayDotState(agent) @@ -198,10 +217,18 @@ const DashboardAgentRow = React.memo(function DashboardAgentRow({ const relativeTimestamp = noUpdateLabel ?? doneTimeAgo ?? startedTimeAgo const tsParts: string[] = noUpdateLabel ? [noUpdateLabel] : [] if (startedTimeAgo !== null) { - tsParts.push(`started ${startedTimeAgo}`) + tsParts.push( + translate('auto.components.dashboard.DashboardAgentRow.startedAgo', 'started {{time}}', { + time: startedTimeAgo + }) + ) } if (doneTimeAgo !== null) { - tsParts.push(`done ${doneTimeAgo}`) + tsParts.push( + translate('auto.components.dashboard.DashboardAgentRow.doneAgo', 'done {{time}}', { + time: doneTimeAgo + }) + ) } const titleParts = sendTargetDisabledReason ? [sendTargetDisabledReason, ...tsParts] : tsParts diff --git a/src/renderer/src/components/new-workspace/NewWorkspaceComposerProjectSection.tsx b/src/renderer/src/components/new-workspace/NewWorkspaceComposerProjectSection.tsx index ee91406df7b..ec6294c0839 100644 --- a/src/renderer/src/components/new-workspace/NewWorkspaceComposerProjectSection.tsx +++ b/src/renderer/src/components/new-workspace/NewWorkspaceComposerProjectSection.tsx @@ -183,8 +183,11 @@ export function NewWorkspaceComposerProjectSection({ >
- {translate('auto.components.NewWorkspaceComposerCard.b5a0796911', 'Connect')}{' '} - {selectedProjectName} + {translate( + 'auto.components.NewWorkspaceComposerCard.connectProject', + 'Connect {{name}}', + { name: selectedProjectName } + )}
{sshStatusLabel}
diff --git a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.ime-enter.test.tsx b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.ime-enter.test.tsx index fca7365b33e..45a07fd3c1c 100644 --- a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.ime-enter.test.tsx +++ b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.ime-enter.test.tsx @@ -5,6 +5,8 @@ import { createRoot, type Root } from 'react-dom/client' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { useAppStore } from '@/store' import SmartWorkspaceNameField from './SmartWorkspaceNameField' +import type * as ReactI18nextModule from 'react-i18next' +import type * as I18nModule from '@/i18n/i18n' vi.mock('@/store', () => { const state = { @@ -36,11 +38,13 @@ vi.mock('@/lib/local-preflight-context', () => ({ localPreflightContextKey: () => 'test-preflight-context' })) -vi.mock('react-i18next', () => ({ +vi.mock('react-i18next', async (importOriginal) => ({ + ...(await importOriginal()), useTranslation: () => ({ t: (key: string, fallback?: string) => fallback ?? key }) })) -vi.mock('@/i18n/i18n', () => ({ +vi.mock('@/i18n/i18n', async (importOriginal) => ({ + ...(await importOriginal()), translate: (_key: string, fallback: string) => fallback })) diff --git a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx index 8cd65cae173..e6ad90c9bab 100644 --- a/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx +++ b/src/renderer/src/components/new-workspace/SmartWorkspaceNameField.jira-accessibility.test.tsx @@ -6,6 +6,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type { JiraIssue } from '../../../../shared/jira/jira-types' import SmartWorkspaceNameField from './SmartWorkspaceNameField' import type { SmartWorkspaceNameSelection } from './smart-workspace-name-field-model' +import type * as ReactI18nextModule from 'react-i18next' +import type * as I18nModule from '@/i18n/i18n' const jiraMock = vi.hoisted(() => ({ retry: vi.fn(), @@ -90,11 +92,13 @@ vi.mock('@/lib/local-preflight-context', () => ({ localPreflightContextKey: () => 'test-preflight-context' })) -vi.mock('react-i18next', () => ({ +vi.mock('react-i18next', async (importOriginal) => ({ + ...(await importOriginal()), useTranslation: () => ({ t: (key: string, fallback?: string) => fallback ?? key }) })) -vi.mock('@/i18n/i18n', () => ({ +vi.mock('@/i18n/i18n', async (importOriginal) => ({ + ...(await importOriginal()), translate: (_key: string, fallback: string) => fallback })) diff --git a/src/renderer/src/components/new-workspace/project-combobox-matching.ts b/src/renderer/src/components/new-workspace/project-combobox-matching.ts index 9c80d7da6cf..03694680a3e 100644 --- a/src/renderer/src/components/new-workspace/project-combobox-matching.ts +++ b/src/renderer/src/components/new-workspace/project-combobox-matching.ts @@ -1,5 +1,6 @@ import type { NewWorkspaceProjectOption } from '@/lib/new-workspace-project-options' import { isNewWorkspaceProjectOptionQueryTooLarge } from '@/lib/new-workspace-project-options' +import { translate } from '@/i18n/i18n' export type ScoredProjectOption = { option: NewWorkspaceProjectOption @@ -105,15 +106,22 @@ export function sectionProjectOptions( recentSet.has(id) ? matches.filter((m) => m.option.id === id) : [] ) const sections: ProjectOptionSection[] = [ - { key: 'recent', heading: 'Recent', items: recent }, + { + key: 'recent', + heading: translate('auto.components.new.workspace.projectCombobox.recentHeading', 'Recent'), + items: recent + }, { key: 'projects', - heading: 'Projects', + heading: translate( + 'auto.components.new.workspace.projectCombobox.projectsHeading', + 'Projects' + ), items: matches.filter((m) => m.option.kind === 'project' && !recentSet.has(m.option.id)) }, { key: 'folders', - heading: 'Folders', + heading: translate('auto.components.new.workspace.projectCombobox.foldersHeading', 'Folders'), // Exclude recent rows from folders too; duplicate options would desynchronize arming/rendering. items: matches.filter((m) => m.option.kind === 'project-group' && !recentSet.has(m.option.id)) } diff --git a/src/renderer/src/components/new-workspace/smart-workspace-cross-repo-dialog.tsx b/src/renderer/src/components/new-workspace/smart-workspace-cross-repo-dialog.tsx index 30d59ec5b41..a5ef41fa155 100644 --- a/src/renderer/src/components/new-workspace/smart-workspace-cross-repo-dialog.tsx +++ b/src/renderer/src/components/new-workspace/smart-workspace-cross-repo-dialog.tsx @@ -18,7 +18,7 @@ export function renderSmartWorkspaceCrossRepoDialog( crossRepoPrompt, dismissCrossRepoPrompt, crossRepoSwitchTitle, - crossRepoSwitchDescriptionSuffix, + formatCrossRepoSwitchDescription, selectedRepo, crossRepoSwitchFallbackLabel, handleUseCurrentRepo, @@ -36,12 +36,9 @@ export function renderSmartWorkspaceCrossRepoDialog( {crossRepoSwitchTitle} - {translate( - 'auto.components.new.workspace.SmartWorkspaceNameField.ad188067ae', - 'The GitHub URL points to' - )}{' '} - {crossRepoPrompt?.link.slug.owner}/{crossRepoPrompt?.link.slug.repo} - {crossRepoSwitchDescriptionSuffix} + {formatCrossRepoSwitchDescription( + `${crossRepoPrompt?.link.slug.owner ?? ''}/${crossRepoPrompt?.link.slug.repo ?? ''}` + )} @@ -58,10 +55,10 @@ export function renderSmartWorkspaceCrossRepoDialog( > {translate( - 'auto.components.new.workspace.SmartWorkspaceNameField.eadf877af5', - 'Keep' - )}{' '} - {selectedRepo?.displayName ?? crossRepoSwitchFallbackLabel} + 'auto.components.new.workspace.SmartWorkspaceNameField.keepRepo', + 'Keep {{name}}', + { name: selectedRepo?.displayName ?? crossRepoSwitchFallbackLabel } + )} {crossRepoPrompt?.matchingRepo ? ( @@ -71,10 +68,10 @@ export function renderSmartWorkspaceCrossRepoDialog( > {translate( - 'auto.components.new.workspace.SmartWorkspaceNameField.a76fcb4fa0', - 'Switch to' - )}{' '} - {crossRepoPrompt.matchingRepo.displayName} + 'auto.components.new.workspace.SmartWorkspaceNameField.switchToRepo', + 'Switch to {{name}}', + { name: crossRepoPrompt.matchingRepo.displayName } + )} ) : allowCrossRepoProjectAdd ? ( diff --git a/src/renderer/src/components/new-workspace/smart-workspace-name-field-copy.ts b/src/renderer/src/components/new-workspace/smart-workspace-name-field-copy.ts index bae8b68ea6e..5f8ce2f7a0a 100644 --- a/src/renderer/src/components/new-workspace/smart-workspace-name-field-copy.ts +++ b/src/renderer/src/components/new-workspace/smart-workspace-name-field-copy.ts @@ -57,15 +57,18 @@ export function getSmartWorkspaceNameFieldCopy({ 'auto.components.new.workspace.SmartWorkspaceNameField.4bd98f1091', 'Switch project?' ) - const crossRepoSwitchDescriptionSuffix = crossRepoSwitchIsTaskSource - ? translate( - 'auto.components.new.workspace.SmartWorkspaceNameField.differentTaskSource', - ', which is different from the selected task source.' - ) - : translate( - 'auto.components.new.workspace.SmartWorkspaceNameField.9ef1a7c4b0', - ', which is different from the selected project.' - ) + const formatCrossRepoSwitchDescription = (repoSlug: string): string => + crossRepoSwitchIsTaskSource + ? translate( + 'auto.components.new.workspace.SmartWorkspaceNameField.crossRepoDifferentTaskSource', + 'The GitHub URL points to {{repo}}, which is different from the selected task source.', + { repo: repoSlug } + ) + : translate( + 'auto.components.new.workspace.SmartWorkspaceNameField.crossRepoDifferentProject', + 'The GitHub URL points to {{repo}}, which is different from the selected project.', + { repo: repoSlug } + ) const crossRepoSwitchFallbackLabel = crossRepoSwitchIsTaskSource ? translate( 'auto.components.new.workspace.SmartWorkspaceNameField.currentTaskSource', @@ -112,7 +115,7 @@ export function getSmartWorkspaceNameFieldCopy({ return { crossRepoSwitchTitle, - crossRepoSwitchDescriptionSuffix, + formatCrossRepoSwitchDescription, crossRepoSwitchFallbackLabel, placeholder } diff --git a/src/renderer/src/components/new-workspace/smart-workspace-source-row-content.tsx b/src/renderer/src/components/new-workspace/smart-workspace-source-row-content.tsx index 9d059e02544..faf2cce06dd 100644 --- a/src/renderer/src/components/new-workspace/smart-workspace-source-row-content.tsx +++ b/src/renderer/src/components/new-workspace/smart-workspace-source-row-content.tsx @@ -10,7 +10,8 @@ import { import { LinearIcon } from '@/components/icons/LinearIcon' import { JiraIcon } from '@/components/icons/JiraIcon' import { cn } from '@/lib/utils' -import { translate } from '@/i18n/i18n' +import { Trans } from 'react-i18next' +import { i18n, translate } from '@/i18n/i18n' import type { JiraSite } from '../../../../shared/jira/jira-types' import type { RowEntry, SmartWorkspaceNameSelection } from './smart-workspace-name-field-model' @@ -92,27 +93,32 @@ export function RowLabel({ if (row.kind === 'use-name') { return ( - {translate('auto.components.new.workspace.SmartWorkspaceNameField.b1a7d679ba', 'Use')}{' '} - - {translate('auto.components.new.workspace.SmartWorkspaceNameField.34ca97bce3', '"')} - {row.name} - {translate('auto.components.new.workspace.SmartWorkspaceNameField.766083a596', '"')} - {' '} - {translate( - 'auto.components.new.workspace.SmartWorkspaceNameField.a44229ce4d', - 'as workspace name' - )} + "{{name}}" as workspace name' + )} + values={{ name: row.name }} + components={{ name: }} + /> ) } if (row.kind === 'create-branch') { return ( - {translate( - 'auto.components.new.workspace.SmartWorkspaceNameField.2a0d535f69', - 'Create new branch' - )}{' '} - {row.name} + {{name}}' + )} + values={{ name: row.name }} + components={{ + name: + }} + /> ) } diff --git a/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx b/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx index 6366214bb66..083d3be8606 100644 --- a/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx +++ b/src/renderer/src/components/sidebar/AddRepoNestedImportStep.tsx @@ -60,22 +60,18 @@ export function AddRepoNestedImportStep({ setPendingImportMode('folder') onOpenAsFolder() } - const repoCountLabel = + const foundSentence = scan.repos.length === 1 - ? translate('auto.components.sidebar.AddRepoNestedImportStep.8401a7a0d0', '1 repository') + ? translate( + 'auto.components.sidebar.AddRepoNestedImportStep.foundRepositories_one', + 'Found {{count}} repository in {{path}}.', + { count: scan.repos.length, path: scan.selectedPath } + ) : translate( - 'auto.components.sidebar.AddRepoNestedImportStep.d4f1df62ef', - '{{value0}} repositories', - { value0: scan.repos.length } + 'auto.components.sidebar.AddRepoNestedImportStep.foundRepositories_other', + 'Found {{count}} repositories in {{path}}.', + { count: scan.repos.length, path: scan.selectedPath } ) - const foundSentence = translate( - 'auto.components.sidebar.AddRepoNestedImportStep.b4263a2ac4', - 'Found {{value0}} in {{value1}}.', - { - value0: repoCountLabel, - value1: scan.selectedPath - } - ) return ( <> diff --git a/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx b/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx index 9a9754ba424..e67e682a6f4 100644 --- a/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx +++ b/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx @@ -8,7 +8,8 @@ import { DialogTitle } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' -import { translate } from '@/i18n/i18n' +import { Trans } from 'react-i18next' +import { i18n, translate } from '@/i18n/i18n' type AutoRenameFailedDialogProps = { open: boolean @@ -36,17 +37,15 @@ export function AutoRenameFailedDialog({ 'Branch auto-name failed' )} description={ - <> - {translate( - 'auto.components.sidebar.AutoRenameFailedDialog.ff62a18580', - "Orca couldn't generate a branch name for" - )}{' '} - {worktreeName}{' '} - {translate( - 'auto.components.sidebar.AutoRenameFailedDialog.3afcad0497', - 'from the first agent message.' + {{name}} from the first agent message." )} - + values={{ name: worktreeName }} + components={{ name: }} + /> } readFullOutput={readFullOutput} /> diff --git a/src/renderer/src/components/sidebar/DeleteNestedWorktreesDialog.tsx b/src/renderer/src/components/sidebar/DeleteNestedWorktreesDialog.tsx index 04fdcb1251a..e302d243e94 100644 --- a/src/renderer/src/components/sidebar/DeleteNestedWorktreesDialog.tsx +++ b/src/renderer/src/components/sidebar/DeleteNestedWorktreesDialog.tsx @@ -62,7 +62,12 @@ export function DeleteNestedWorktreesDialog({ try { const preview = window.api.worktrees.previewNestedRemoval if (!preview) { - throw new Error('This host does not support nested worktree deletion.') + throw new Error( + translate( + 'auto.components.sidebar.DeleteNestedWorktreesDialog.unsupportedHost', + 'This host does not support nested worktree deletion.' + ) + ) } const result = await preview({ worktreeId: target.id, diff --git a/src/renderer/src/components/sidebar/DeleteWorktreeDirtyChangeHint.tsx b/src/renderer/src/components/sidebar/DeleteWorktreeDirtyChangeHint.tsx index 4ceb2a64995..51fbdfc662a 100644 --- a/src/renderer/src/components/sidebar/DeleteWorktreeDirtyChangeHint.tsx +++ b/src/renderer/src/components/sidebar/DeleteWorktreeDirtyChangeHint.tsx @@ -157,11 +157,17 @@ export function DeleteWorktreeDirtyChangeHint({ {preview.remainingPathCount > 0 ? (

- {translate( - 'auto.components.sidebar.DeleteWorktreeDirtyChangeHint.moreLoadedPaths', - 'and {{value0}} more loaded paths', - { value0: preview.remainingPathCount } - )} + {preview.remainingPathCount === 1 + ? translate( + 'auto.components.sidebar.DeleteWorktreeDirtyChangeHint.moreLoadedPaths_one', + 'and {{count}} more loaded path', + { count: preview.remainingPathCount } + ) + : translate( + 'auto.components.sidebar.DeleteWorktreeDirtyChangeHint.moreLoadedPaths_other', + 'and {{count}} more loaded paths', + { count: preview.remainingPathCount } + )}

) : null} diff --git a/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx b/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx index f97265cc415..479c7b4271f 100644 --- a/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx +++ b/src/renderer/src/components/sidebar/DeleteWorktreeLineageNotice.tsx @@ -72,13 +72,14 @@ export function DeleteWorktreeLineageNotice({
{childWorkspaceCount === 1 ? translate( - 'auto.components.sidebar.DeleteWorktreeLineageNotice.66798cc6a2', - 'Deleting this workspace also deletes 1 child workspace.' + 'auto.components.sidebar.DeleteWorktreeLineageNotice.alsoDeletesChildren_one', + 'Deleting this workspace also deletes {{count}} child workspace.', + { count: childWorkspaceCount } ) : translate( - 'auto.components.sidebar.DeleteWorktreeLineageNotice.29b98bf9cd', - 'Deleting this workspace also deletes {{value0}} child workspaces.', - { value0: childWorkspaceCount } + 'auto.components.sidebar.DeleteWorktreeLineageNotice.alsoDeletesChildren_other', + 'Deleting this workspace also deletes {{count}} child workspaces.', + { count: childWorkspaceCount } )} {foreignProjects.length > 0 ? ` (${foreignProjects.join(', ')})` : null}
@@ -108,11 +109,17 @@ export function DeleteWorktreeLineageNotice({ ))} {descendants.length > 4 ? (
- +{descendants.length - 4}{' '} - {translate( - 'auto.components.sidebar.DeleteWorktreeLineageNotice.ad407c2d55', - 'more' - )} + {descendants.length - 4 === 1 + ? translate( + 'auto.components.sidebar.DeleteWorktreeLineageNotice.moreChildren_one', + '+{{count}} more', + { count: descendants.length - 4 } + ) + : translate( + 'auto.components.sidebar.DeleteWorktreeLineageNotice.moreChildren_other', + '+{{count}} more', + { count: descendants.length - 4 } + )}
) : null} diff --git a/src/renderer/src/components/sidebar/DeleteWorktreeWarningPanels.tsx b/src/renderer/src/components/sidebar/DeleteWorktreeWarningPanels.tsx index b143148249c..95154aec7c0 100644 --- a/src/renderer/src/components/sidebar/DeleteWorktreeWarningPanels.tsx +++ b/src/renderer/src/components/sidebar/DeleteWorktreeWarningPanels.tsx @@ -1,6 +1,7 @@ import type { JSX } from 'react' import { AlertTriangle } from 'lucide-react' -import { translate } from '@/i18n/i18n' +import { Trans } from 'react-i18next' +import { i18n, translate } from '@/i18n/i18n' export function DeleteWorktreeWarningPanels({ isMainWorktree, @@ -18,20 +19,14 @@ export function DeleteWorktreeWarningPanels({
- {translate( - 'auto.components.sidebar.DeleteWorktreeWarningPanels.e3be9eba15', - 'This is the' - )}{' '} - - {translate( - 'auto.components.sidebar.DeleteWorktreeWarningPanels.c4f96a6e18', - 'main worktree' + main worktree (the original clone directory).' )} - {' '} - {translate( - 'auto.components.sidebar.DeleteWorktreeWarningPanels.026738155a', - '(the original clone directory).' - )} + components={{ strong: }} + /> {mainWorktreeBlocker ? <> {mainWorktreeBlocker} : null}
diff --git a/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx b/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx index a1452c2dfd0..b95ec74ab5e 100644 --- a/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx +++ b/src/renderer/src/components/sidebar/HiddenWorktreeRecoveryList.tsx @@ -84,11 +84,19 @@ export default function HiddenWorktreeRecoveryList({ 'auto.components.sidebar.WorktreeVisibilityDialog.search', 'Search hidden worktrees' )} - placeholder={translate( - 'auto.components.sidebar.WorktreeVisibilityDialog.searchPlaceholder', - 'Search {{value0}} worktrees…', - { value0: hidden.length } - )} + placeholder={ + hidden.length === 1 + ? translate( + 'auto.components.sidebar.WorktreeVisibilityDialog.searchHiddenPlaceholder_one', + 'Search {{count}} worktree…', + { count: hidden.length } + ) + : translate( + 'auto.components.sidebar.WorktreeVisibilityDialog.searchHiddenPlaceholder_other', + 'Search {{count}} worktrees…', + { count: hidden.length } + ) + } onChange={(event) => setQuery(event.target.value)} /> diff --git a/src/renderer/src/components/sidebar/HostRemoveDialog.tsx b/src/renderer/src/components/sidebar/HostRemoveDialog.tsx index fb56019ed3b..e1883e66cf7 100644 --- a/src/renderer/src/components/sidebar/HostRemoveDialog.tsx +++ b/src/renderer/src/components/sidebar/HostRemoveDialog.tsx @@ -164,17 +164,6 @@ export function HostRemoveDialog({ } } - const workspaceCountLabel = - workspaceCount === 1 - ? translate('auto.components.sidebar.HostRemoveDialog.oneWorkspace', '1 workspace') - : translate( - 'auto.components.sidebar.HostRemoveDialog.manyWorkspaces', - '{{count}} workspaces', - { - count: workspaceCount - } - ) - const description = target.kind === 'wsl' ? translate( @@ -188,21 +177,34 @@ export function HostRemoveDialog({ 'This opens the Orca servers settings where you can remove this server.' ) : hasWorkspaces - ? translate( - 'auto.components.sidebar.HostRemoveDialog.hostHasWorkspacesDefault', - 'Removes {{value0}} and its credentials from this computer. Its {{value1}} stay in Orca — remote files are not touched.', - { value0: label, value1: workspaceCountLabel } - ) + ? workspaceCount === 1 + ? translate( + 'auto.components.sidebar.HostRemoveDialog.hostKeepsWorkspaces_one', + 'Removes {{host}} and its credentials from this computer. Its {{count}} workspace stays in Orca — remote files are not touched.', + { host: label, count: workspaceCount } + ) + : translate( + 'auto.components.sidebar.HostRemoveDialog.hostKeepsWorkspaces_other', + 'Removes {{host}} and its credentials from this computer. Its {{count}} workspaces stay in Orca — remote files are not touched.', + { host: label, count: workspaceCount } + ) : translate( 'auto.components.sidebar.HostRemoveDialog.5e6f7a8b9c', 'This removes the saved SSH host and its credentials from this computer. Remote files are not deleted.' ) - const deleteOptionLabel = translate( - 'auto.components.sidebar.HostRemoveDialog.alsoForgetLocal', - 'Also remove these {{value0}} from Orca', - { value0: workspaceCountLabel } - ) + const deleteOptionLabel = + workspaceCount === 1 + ? translate( + 'auto.components.sidebar.HostRemoveDialog.alsoRemoveWorkspaces_one', + 'Also remove this workspace from Orca', + { count: workspaceCount } + ) + : translate( + 'auto.components.sidebar.HostRemoveDialog.alsoRemoveWorkspaces_other', + 'Also remove these {{count}} workspaces from Orca', + { count: workspaceCount } + ) return ( diff --git a/src/renderer/src/components/sidebar/ImportedWorktreesVisibilityLine.tsx b/src/renderer/src/components/sidebar/ImportedWorktreesVisibilityLine.tsx index 2c66cd211d0..2a7682f67be 100644 --- a/src/renderer/src/components/sidebar/ImportedWorktreesVisibilityLine.tsx +++ b/src/renderer/src/components/sidebar/ImportedWorktreesVisibilityLine.tsx @@ -312,11 +312,17 @@ export default function ImportedWorktreesVisibilityLine({ ))} {remainingGroupCount > 0 ? (
- + {remainingGroupCount}{' '} - {translate( - 'auto.components.sidebar.ImportedWorktreesVisibilityLine.b2bc47c080', - 'more locations' - )} + {remainingGroupCount === 1 + ? translate( + 'auto.components.sidebar.ImportedWorktreesVisibilityLine.moreLocations_one', + '+ {{count}} more location', + { count: remainingGroupCount } + ) + : translate( + 'auto.components.sidebar.ImportedWorktreesVisibilityLine.moreLocations_other', + '+ {{count}} more locations', + { count: remainingGroupCount } + )}
) : null}
diff --git a/src/renderer/src/components/sidebar/LocalGitToolchainScanBanner.tsx b/src/renderer/src/components/sidebar/LocalGitToolchainScanBanner.tsx index 6ebb7ee983c..b4af021f5de 100644 --- a/src/renderer/src/components/sidebar/LocalGitToolchainScanBanner.tsx +++ b/src/renderer/src/components/sidebar/LocalGitToolchainScanBanner.tsx @@ -98,11 +98,17 @@ export function LocalGitToolchainScanBanner(): React.JSX.Element | null { 'Worktree scan paused for {{value0}}', { value0: block.repos[0].displayName } ) - : translate( - 'auto.components.sidebar.LocalGitToolchainScanBanner.affectedMany', - 'Worktree scan paused for {{value0}} projects', - { value0: block.repos.length } - ) + : block.repos.length === 1 + ? translate( + 'auto.components.sidebar.LocalGitToolchainScanBanner.affectedProjects_one', + 'Worktree scan paused for {{count}} project', + { count: block.repos.length } + ) + : translate( + 'auto.components.sidebar.LocalGitToolchainScanBanner.affectedProjects_other', + 'Worktree scan paused for {{count}} projects', + { count: block.repos.length } + ) return (
@@ -153,19 +158,14 @@ export function SetupScriptPromptBody({ } if (sharedSetupIgnored) { return ( - <> - {translate( - 'auto.components.sidebar.SetupScriptPromptCardViews.bb879db364', - 'This repo ignores shared' - )}{' '} - - {translate('auto.components.sidebar.SetupScriptPromptCardViews.8f6be51aa1', 'orca.yaml')} - {' '} - {translate( - 'auto.components.sidebar.SetupScriptPromptCardViews.660cdc17f8', - 'setup scripts. Add a local command, or change the source in Settings.' + orca.yaml setup scripts. Add a local command, or change the source in Settings.' )} - + components={{ yaml: }} + /> ) } if (isPackageManagerSuggestion) { @@ -180,17 +180,15 @@ export function SetupScriptPromptBody({ } if (candidateSource) { return ( - <> - {translate( - 'auto.components.sidebar.SetupScriptPromptCardViews.b56d1322f7', - 'Found a setup command in' - )}{' '} - {candidateSource} - {translate( - 'auto.components.sidebar.SetupScriptPromptCardViews.8349e3fa4c', - '. Save it to run for new worktrees.' + {{source}}. Save it to run for new worktrees.' )} - + values={{ source: candidateSource }} + components={{ source: }} + /> ) } return ( diff --git a/src/renderer/src/components/sidebar/SetupScriptPromptToast.tsx b/src/renderer/src/components/sidebar/SetupScriptPromptToast.tsx index d75521d8636..f0badeed6f4 100644 --- a/src/renderer/src/components/sidebar/SetupScriptPromptToast.tsx +++ b/src/renderer/src/components/sidebar/SetupScriptPromptToast.tsx @@ -1,6 +1,7 @@ import React from 'react' import { toast } from 'sonner' -import { translate } from '@/i18n/i18n' +import { Trans } from 'react-i18next' +import { i18n, translate } from '@/i18n/i18n' type SavedInProjectSettingsToastProps = { onOpenSettings: () => void @@ -11,17 +12,22 @@ function SavedInProjectSettingsToast({ }: SavedInProjectSettingsToastProps): React.JSX.Element { return ( - {translate('auto.components.sidebar.SetupScriptPromptCard.a5bb8c5135', 'Saved in this')}{' '} - + components={{ + settings: ( + + values={{ + branch: suggestion.localBranch, + setting: keepLocalMainUpToDateTitle + }} + components={{ + settings: ( + ) : null} diff --git a/src/renderer/src/components/status-bar/resource-usage-popover-summary.tsx b/src/renderer/src/components/status-bar/resource-usage-popover-summary.tsx index ad30284bcef..b693abd92cb 100644 --- a/src/renderer/src/components/status-bar/resource-usage-popover-summary.tsx +++ b/src/renderer/src/components/status-bar/resource-usage-popover-summary.tsx @@ -205,14 +205,14 @@ export function renderResourceUsageSummary({ {orphanCount === 1 ? translate( - 'auto.components.status.bar.ResourceUsageStatusSegment.30ff2c3c31', - '{{value0}} orphan', - { value0: orphanCount } + 'auto.components.status.bar.ResourceUsageStatusSegment.orphanCount_one', + '{{count}} orphan', + { count: orphanCount } ) : translate( - 'auto.components.status.bar.ResourceUsageStatusSegment.b8f4a2c1d0e3', - '{{value0}} orphans', - { value0: orphanCount } + 'auto.components.status.bar.ResourceUsageStatusSegment.orphanCount_other', + '{{count}} orphans', + { count: orphanCount } )} )} diff --git a/src/renderer/src/components/status-bar/status-bar-runtime-targets.ts b/src/renderer/src/components/status-bar/status-bar-runtime-targets.ts index b97f2e58afc..56f371d32c8 100644 --- a/src/renderer/src/components/status-bar/status-bar-runtime-targets.ts +++ b/src/renderer/src/components/status-bar/status-bar-runtime-targets.ts @@ -2,6 +2,8 @@ import type { GlobalSettings } from '../../../../shared/global-settings-types' import type { RateLimitRuntimeTarget } from '../../../../shared/rate-limit-types' import { resolveLocalAccountRuntimeTarget } from '../../../../shared/local-account-runtime' import { getRendererAppPlatform } from '../../lib/renderer-app-platform' +import { translate } from '@/i18n/i18n' +import { getHostRuntimeLabel } from '../settings/accounts-pane-runtime' export type CodexStatusRuntimeTarget = { runtime: 'host' | 'wsl' @@ -47,10 +49,6 @@ export type StatusSwitchGroupOptions = { hostLabel?: string } -function getHostRuntimeLabel(): string { - return navigator.userAgent.includes('Windows') ? 'Windows' : 'This device' -} - export function getCodexStatusWslKey(wslDistro: string | null | undefined): string { const trimmed = wslDistro?.trim() return trimmed ? trimmed : '__default__' @@ -63,7 +61,9 @@ export function getCodexStatusRuntimeLabel( if (target.runtime === 'host') { return hostLabel } - return target.wslDistro ? `WSL ${target.wslDistro}` : 'WSL default' + return target.wslDistro + ? `WSL ${target.wslDistro}` + : translate('auto.components.status.bar.runtimeTargets.wslDefault', 'WSL default') } export function getCodexStatusRuntimeKey(target: CodexStatusRuntimeTarget): string { diff --git a/src/renderer/src/components/status-bar/tooltip.tsx b/src/renderer/src/components/status-bar/tooltip.tsx index 761e899d283..abd1d431c36 100644 --- a/src/renderer/src/components/status-bar/tooltip.tsx +++ b/src/renderer/src/components/status-bar/tooltip.tsx @@ -38,14 +38,16 @@ export { export function formatTimeAgo(ts: number): string { const diff = Date.now() - ts if (diff < 60_000) { - return 'just now' + return translate('auto.components.status.bar.tooltip.justNow', 'just now') } const mins = Math.floor(diff / 60_000) if (mins < 60) { - return `${mins}m ago` + return translate('auto.components.status.bar.tooltip.minutesAgo', '{{minutes}}m ago', { + minutes: mins + }) } const hours = Math.floor(mins / 60) - return `${hours}h ago` + return translate('auto.components.status.bar.tooltip.hoursAgo', '{{hours}}h ago', { hours }) } // Preserve tooltip imports while sharing countdown formatting with mobile. @@ -299,7 +301,11 @@ export function ProviderPanel({ ) } - const updatedAgo = p.updatedAt ? `Updated ${formatTimeAgo(p.updatedAt)}` : 'Not yet updated' + const updatedAgo = p.updatedAt + ? translate('auto.components.status.bar.tooltip.updatedAgo', 'Updated {{time}}', { + time: formatTimeAgo(p.updatedAt) + }) + : translate('auto.components.status.bar.tooltip.notYetUpdated', 'Not yet updated') const resetCreditCount = showResetCredits && p.provider === 'codex' ? (p.rateLimitResetCredits?.availableCount ?? null) @@ -321,13 +327,14 @@ export function ProviderPanel({
{resetCreditCount === 1 ? translate( - 'auto.components.status.bar.tooltip.45198c7d95', - '1 rate-limit reset available' + 'auto.components.status.bar.tooltip.rateLimitResetsAvailable_one', + '{{count}} rate-limit reset available', + { count: resetCreditCount } ) : translate( - 'auto.components.status.bar.tooltip.bce421cba3', - '{{value0}} rate-limit resets available', - { value0: resetCreditCount } + 'auto.components.status.bar.tooltip.rateLimitResetsAvailable_other', + '{{count}} rate-limit resets available', + { count: resetCreditCount } )}
) : null} diff --git a/src/renderer/src/components/status-bar/use-status-bar-controller.ts b/src/renderer/src/components/status-bar/use-status-bar-controller.ts index 417603b1462..969c07de431 100644 --- a/src/renderer/src/components/status-bar/use-status-bar-controller.ts +++ b/src/renderer/src/components/status-bar/use-status-bar-controller.ts @@ -16,6 +16,7 @@ import { CLOSE_ALL_CONTEXT_MENUS_EVENT } from '@/lib/close-all-context-menus' import { useStatusBarDensity } from './status-bar-density' import { getUsageOwnerHostScope, useOwnerUsageRateLimits } from './use-owner-usage-rate-limits' import { isOwnerNotSetUpPlaceholder } from './owner-usage-rate-limits' +import { translate } from '@/i18n/i18n' export function useStatusBarController(floatingTerminalOpen: boolean) { const floatingTerminalShortcut = useShortcutLabel('floatingTerminal.toggle') @@ -204,8 +205,11 @@ export function useStatusBarController(floatingTerminalOpen: boolean) { zcode?.status === 'fetching' const floatingTerminalActionLabel = floatingTerminalOpen - ? 'Minimize Floating Workspace' - : 'Show Floating Workspace' + ? translate( + 'auto.components.status.bar.floatingWorkspace.minimize', + 'Minimize Floating Workspace' + ) + : translate('auto.components.status.bar.floatingWorkspace.show', 'Show Floating Workspace') const showFloatingWorkspaceAttentionDot = !floatingTerminalOpen && hasFloatingUnread // Respect per-item visibility in the roster so its trigger cannot bypass hidden status items. diff --git a/src/renderer/src/components/status-bar/use-workspace-space-git-refresh-action.ts b/src/renderer/src/components/status-bar/use-workspace-space-git-refresh-action.ts index e44e2f3a9ca..07bd96e5bf2 100644 --- a/src/renderer/src/components/status-bar/use-workspace-space-git-refresh-action.ts +++ b/src/renderer/src/components/status-bar/use-workspace-space-git-refresh-action.ts @@ -6,6 +6,7 @@ import { useAppStore } from '../../store' import { findRepoForHost } from '../../store/slices/repo-host-identity' import { getRuntimeGitStatus } from '@/runtime/runtime-git-status-client' import type { useWorkspaceSpaceManagerBindings } from './use-workspace-space-manager-bindings' +import { translate } from '@/i18n/i18n' type WorkspaceSpaceManagerBindings = ReturnType @@ -62,7 +63,14 @@ export function useWorkspaceSpaceGitRefreshAction(bindings: WorkspaceSpaceManage }, { includeLineStats: false, admissionTier: 'background' } ) - : Promise.reject(new Error('Workspace owner is no longer available')) + : Promise.reject( + new Error( + translate( + 'auto.components.status.bar.workspaceSpaceGitRefresh.ownerUnavailable', + 'Workspace owner is no longer available' + ) + ) + ) ) .then((status) => { if (gitStatusScanGenerationRef.current !== scanGeneration) { diff --git a/src/renderer/src/components/status-bar/use-workspace-space-manager-panel.ts b/src/renderer/src/components/status-bar/use-workspace-space-manager-panel.ts index 8a239a27a73..994738a5a6f 100644 --- a/src/renderer/src/components/status-bar/use-workspace-space-manager-panel.ts +++ b/src/renderer/src/components/status-bar/use-workspace-space-manager-panel.ts @@ -140,14 +140,18 @@ export function useWorkspaceSpaceManagerPanel() { 'Workspaces deleted' ), { - description: translate( - 'auto.components.status.bar.WorkspaceSpaceManagerPanel.63efebe0e6', - '{{value0}} {{value1}} removed from Space.', - { - value0: deletedTargets.length, - value1: deletedTargets.length === 1 ? 'workspace' : 'workspaces' - } - ) + description: + deletedTargets.length === 1 + ? translate( + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.removedFromSpace_one', + '{{count}} workspace removed from Space.', + { count: deletedTargets.length } + ) + : translate( + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.removedFromSpace_other', + '{{count}} workspaces removed from Space.', + { count: deletedTargets.length } + ) } ) }, diff --git a/src/renderer/src/components/status-bar/workspace-space-breakdown-list.tsx b/src/renderer/src/components/status-bar/workspace-space-breakdown-list.tsx index 7e5449c4a7d..fb8e0d0820b 100644 --- a/src/renderer/src/components/status-bar/workspace-space-breakdown-list.tsx +++ b/src/renderer/src/components/status-bar/workspace-space-breakdown-list.tsx @@ -95,11 +95,23 @@ export function WorkspaceSpaceBreakdownList({ {formatBytes(worktree.sizeBytes)}
- {formatCompactCount(topLevelItemCount)}{' '} - {translate( - 'auto.components.status.bar.WorkspaceSpaceManagerPanel.b25c2c1086', - 'top-level items' - )} + {topLevelItemCount === 1 + ? translate( + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.topLevelItems_one', + '{{formattedCount}} top-level item', + { + count: topLevelItemCount, + formattedCount: formatCompactCount(topLevelItemCount) + } + ) + : translate( + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.topLevelItems_other', + '{{formattedCount}} top-level items', + { + count: topLevelItemCount, + formattedCount: formatCompactCount(topLevelItemCount) + } + )}
diff --git a/src/renderer/src/components/status-bar/workspace-space-decision-details.ts b/src/renderer/src/components/status-bar/workspace-space-decision-details.ts index 1a4bac8b572..f4ef204fe2b 100644 --- a/src/renderer/src/components/status-bar/workspace-space-decision-details.ts +++ b/src/renderer/src/components/status-bar/workspace-space-decision-details.ts @@ -17,6 +17,7 @@ import { countWorkspaceSpaceActiveAgents } from './workspace-space-presentation' import { getWorkspaceSpaceWorktreeIdentity } from './workspace-space-delete-selection' import { getWorkspaceSpaceBranchLabel } from './workspace-space-format' import { formatHostedReviewLabel } from './hosted-review-label' +import { translate } from '@/i18n/i18n' export type WorkspaceDecisionDetails = { isActive: boolean @@ -75,10 +76,6 @@ export type WorkspaceDecisionInputs = { now: number } -export function pluralize(count: number, singular: string, plural = `${singular}s`): string { - return `${count} ${count === 1 ? singular : plural}` -} - function countLiveTerminals( tabs: readonly TerminalTab[], ptyIdsByTabId: Record @@ -93,16 +90,28 @@ function getBranchStatus( return null } if (status.ahead === 0 && status.behind === 0) { - return 'Synced with upstream' + return translate( + 'auto.components.status.bar.workspaceSpaceDecision.syncedWithUpstream', + 'Synced with upstream' + ) } - const parts: string[] = [] - if (status.ahead > 0) { - parts.push(`${status.ahead} ahead`) + if (status.ahead > 0 && status.behind > 0) { + return translate( + 'auto.components.status.bar.workspaceSpaceDecision.aheadAndBehind', + '{{ahead}} ahead, {{behind}} behind', + { + ahead: status.ahead, + behind: status.behind + } + ) } - if (status.behind > 0) { - parts.push(`${status.behind} behind`) - } - return parts.join(', ') + return status.ahead > 0 + ? translate('auto.components.status.bar.workspaceSpaceDecision.ahead', '{{ahead}} ahead', { + ahead: status.ahead + }) + : translate('auto.components.status.bar.workspaceSpaceDecision.behind', '{{behind}} behind', { + behind: status.behind + }) } export function getWorkspaceDecisionDetails( diff --git a/src/renderer/src/components/status-bar/workspace-space-decision-hover-card.tsx b/src/renderer/src/components/status-bar/workspace-space-decision-hover-card.tsx index d3eddd9b9b3..43c2511548b 100644 --- a/src/renderer/src/components/status-bar/workspace-space-decision-hover-card.tsx +++ b/src/renderer/src/components/status-bar/workspace-space-decision-hover-card.tsx @@ -11,15 +11,18 @@ import type { WorkspaceSpaceWorktree } from '../../../../shared/workspace-space- import { cn } from '@/lib/utils' import { Button } from '../ui/button' import { HoverCardContent } from '../ui/hover-card' -import { - formatBytes, - getWorkspaceSpaceBranchLabel, - getWorkspaceSpaceStatusLabel -} from './workspace-space-format' +import { formatBytes, getWorkspaceSpaceBranchLabel } from './workspace-space-format' import { translate } from '@/i18n/i18n' -import { pluralize, type WorkspaceDecisionDetails } from './workspace-space-decision-details' +import type { WorkspaceDecisionDetails } from './workspace-space-decision-details' import type { WorkspaceGitRefreshState } from './workspace-space-manager-state-types' import { WorkspaceSpaceStatusBadge } from './workspace-space-status-badge' +import { + getAgentDecisionLabel, + getDeleteDecisionLabel, + getEditorDecisionLabel, + getGitDecisionLabel, + getTerminalDecisionLabel +} from './workspace-space-decision-labels' function DecisionLine({ icon, @@ -54,77 +57,6 @@ function DecisionLine({ ) } -function getAgentDecisionLabel(details: WorkspaceDecisionDetails): string { - if (details.activeAgentCount > 0 && details.completedAgentCount > 0) { - return `${pluralize(details.activeAgentCount, 'active agent')}, ${pluralize( - details.completedAgentCount, - 'completed agent' - )}` - } - if (details.activeAgentCount > 0) { - return pluralize(details.activeAgentCount, 'active agent') - } - if (details.completedAgentCount > 0) { - return `${pluralize(details.completedAgentCount, 'completed agent')} retained` - } - return 'No tracked agents running' -} - -function getTerminalDecisionLabel(details: WorkspaceDecisionDetails): string { - if (details.terminalTabCount === 0) { - return 'No terminal tabs' - } - return `${details.liveTerminalCount} live of ${pluralize(details.terminalTabCount, 'terminal tab')}` -} - -function getGitDecisionLabel( - details: WorkspaceDecisionDetails, - gitRefreshState?: WorkspaceGitRefreshState -): string { - if (details.changedFileCount === null) { - if (gitRefreshState?.error) { - return `Git status unavailable: ${gitRefreshState.error}` - } - return 'Git status has not loaded yet' - } - if (details.changedFileCount === 0) { - return 'No uncommitted files' - } - return pluralize(details.changedFileCount, 'changed file') -} - -function getEditorDecisionLabel(details: WorkspaceDecisionDetails): string { - if (details.openEditorFileCount === 0) { - return 'No editor files open' - } - if (details.dirtyEditorBufferCount === 0) { - return `${pluralize(details.openEditorFileCount, 'editor file')} open` - } - return `${pluralize(details.dirtyEditorBufferCount, 'dirty editor buffer')} of ${pluralize( - details.openEditorFileCount, - 'open file' - )}` -} - -function getDeleteDecisionLabel( - worktree: WorkspaceSpaceWorktree, - details: WorkspaceDecisionDetails -): string { - if (details.isActive) { - return 'This is the active workspace' - } - if (worktree.status !== 'ok') { - return worktree.error ?? getWorkspaceSpaceStatusLabel(worktree.status) - } - if (worktree.isMainWorktree) { - return 'Main worktree is protected' - } - if (!worktree.canDelete) { - return 'Workspace is protected' - } - return 'Can be deleted after review' -} - export function WorkspaceDecisionHoverCard({ worktree, details, @@ -138,7 +70,8 @@ export function WorkspaceDecisionHoverCard({ }): React.JSX.Element { const deleteDecision = getDeleteDecisionLabel(worktree, details) const issueLabel = - [details.issueLabel, details.linearIssueLabel].filter(Boolean).join(' · ') || 'No linked issue' + [details.issueLabel, details.linearIssueLabel].filter(Boolean).join(' · ') || + translate('auto.components.status.bar.workspaceSpaceDecision.noLinkedIssue', 'No linked issue') return ( } @@ -234,11 +173,17 @@ export function WorkspaceDecisionHoverCard({
{details.browserTabCount > 0 - ? translate( - 'auto.components.status.bar.WorkspaceSpaceManagerPanel.131662ac65', - '{{value0}} open', - { value0: pluralize(details.browserTabCount, 'browser tab') } - ) + ? details.browserTabCount === 1 + ? translate( + 'auto.components.status.bar.workspaceSpaceDecision.browserTabsOpen_one', + '{{count}} browser tab open', + { count: details.browserTabCount } + ) + : translate( + 'auto.components.status.bar.workspaceSpaceDecision.browserTabsOpen_other', + '{{count}} browser tabs open', + { count: details.browserTabCount } + ) : worktree.path}
diff --git a/src/renderer/src/components/status-bar/workspace-space-manager-toolbar.tsx b/src/renderer/src/components/status-bar/workspace-space-manager-toolbar.tsx index 5c46c984b7a..626ff6d5ea5 100644 --- a/src/renderer/src/components/status-bar/workspace-space-manager-toolbar.tsx +++ b/src/renderer/src/components/status-bar/workspace-space-manager-toolbar.tsx @@ -36,18 +36,26 @@ export function WorkspaceSpaceManagerToolbar({
- {selectedDeletableIds.length}{' '} - {translate( - 'auto.components.status.bar.WorkspaceSpaceManagerPanel.65402b7192', - 'selected' - )} + {selectedDeletableIds.length === 1 + ? translate( + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.selectedCount_one', + '{{count}} selected', + { count: selectedDeletableIds.length } + ) + : translate( + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.selectedCount_other', + '{{count}} selected', + { count: selectedDeletableIds.length } + )} · - {formatBytes(selectedReclaimableBytes)}{' '} {translate( - 'auto.components.status.bar.WorkspaceSpaceManagerPanel.0cb1501ccf', - 'reclaimable' + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.reclaimableSize', + '{{size}} reclaimable', + { + size: formatBytes(selectedReclaimableBytes) + } )}
diff --git a/src/renderer/src/components/status-bar/workspace-space-metrics.tsx b/src/renderer/src/components/status-bar/workspace-space-metrics.tsx index e816125c580..e408a54964f 100644 --- a/src/renderer/src/components/status-bar/workspace-space-metrics.tsx +++ b/src/renderer/src/components/status-bar/workspace-space-metrics.tsx @@ -75,7 +75,10 @@ export function UpdatedMetric({ value={ scannedAt === null ? isScanning - ? 'Scanning' + ? translate( + 'auto.components.status.bar.WorkspaceSpaceManagerPanel.scanning', + 'Scanning' + ) : '—' : getWorkspaceSpaceScanTimeLabel(scannedAt, now) } diff --git a/src/renderer/src/components/tab-bar/BrowserTab.tsx b/src/renderer/src/components/tab-bar/BrowserTab.tsx index 248bce10daa..01ae643dad8 100644 --- a/src/renderer/src/components/tab-bar/BrowserTab.tsx +++ b/src/renderer/src/components/tab-bar/BrowserTab.tsx @@ -39,7 +39,7 @@ import { useAppStore } from '@/store' export function formatBrowserTabUrlLabel(url: string): string { if (url === ORCA_BROWSER_BLANK_URL || url === 'about:blank') { - return 'New Tab' + return translate('auto.components.browser.pane.BrowserPane.366bf5d62c', 'New Tab') } try { const parsed = new URL(url) diff --git a/src/renderer/src/components/tab-bar/native-chat-cli-fork-run.ts b/src/renderer/src/components/tab-bar/native-chat-cli-fork-run.ts index 45ef6fc2de2..921c0223e3e 100644 --- a/src/renderer/src/components/tab-bar/native-chat-cli-fork-run.ts +++ b/src/renderer/src/components/tab-bar/native-chat-cli-fork-run.ts @@ -27,6 +27,7 @@ import { resolveNativeChatCliForkIdentity, type NativeChatCliForkIdentity } from './tab-session-history-switch' +import { translate } from '@/i18n/i18n' const pending = new Map() const listeners = new Set<() => void>() @@ -129,7 +130,12 @@ export async function runNativeChatCliFork(args: { ? buildAiVaultCopiedSessionStartupForWorktree(startupArgs, prepared.sourceAgent ?? args.agent) : buildAiVaultForkStartupForWorktree(startupArgs) if (!startup) { - throw new Error('This session cannot be opened in the CLI.') + throw new Error( + translate( + 'auto.components.tab.bar.nativeChatCliFork.cannotOpenInCli', + 'This session cannot be opened in the CLI.' + ) + ) } // The destination takes over synchronously; closing the source afterward must not cancel it. if (!isCurrent()) { diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-absolute-file.ts b/src/renderer/src/components/tab-bar/tab-create-entry-absolute-file.ts index ea20ad55c44..488a1c6f830 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-absolute-file.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-absolute-file.ts @@ -1,4 +1,8 @@ import { detectLanguage } from '@/lib/language-detect' +import { + getTabEntryCannotOpenDirectoryMessage, + getTabEntryFileNotFoundMessage +} from './tab-create-entry-copy' import { toWorktreeRelativePath } from '../../../../shared/terminal-links' import type { RuntimeFileOperationArgs } from '@/runtime/runtime-file-client-types' import type { OpenFile } from '@/store/slices/editor' @@ -32,10 +36,10 @@ export async function openAbsoluteTabEntryFile(args: { try { stat = await args.operations.statUserOpenedPath(args.context, filePath) } catch { - throw new Error(`File not found: ${filePath}`) + throw new Error(getTabEntryFileNotFoundMessage(filePath)) } if (stat.isDirectory) { - throw new Error(`Cannot open a directory: ${filePath}`) + throw new Error(getTabEntryCannotOpenDirectoryMessage(filePath)) } args.operations.assertAbsolutePathAllowed() diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-action.test.ts b/src/renderer/src/components/tab-bar/tab-create-entry-action.test.ts index c49b62b50e7..fa5e896b43c 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-action.test.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-action.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest' import { openTabEntryWithOperations, - TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE, + getTabEntryAbsolutePathRemoteBlockedMessage, type TabEntryOperations } from './tab-create-entry-action' @@ -348,7 +348,7 @@ describe('openTabEntryWithOperations', () => { query: '/tmp/notes.md', operations }) - ).rejects.toThrow(TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE) + ).rejects.toThrow(getTabEntryAbsolutePathRemoteBlockedMessage()) expect(operations.statUserOpenedPath).not.toHaveBeenCalled() expect(operations.createRuntimePath).not.toHaveBeenCalled() @@ -398,7 +398,7 @@ describe('openTabEntryWithOperations', () => { statUserOpenedPath: vi.fn(() => statResult), assertAbsolutePathAllowed: vi.fn(() => { if (!allowed) { - throw new Error(TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE) + throw new Error(getTabEntryAbsolutePathRemoteBlockedMessage()) } }) }) @@ -410,9 +410,7 @@ describe('openTabEntryWithOperations', () => { operations }) await vi.waitFor(() => expect(operations.statUserOpenedPath).toHaveBeenCalledTimes(1)) - const rejection = expect(opening).rejects.toThrow( - TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE - ) + const rejection = expect(opening).rejects.toThrow(getTabEntryAbsolutePathRemoteBlockedMessage()) allowed = false releaseStat?.() await rejection diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-action.ts b/src/renderer/src/components/tab-bar/tab-create-entry-action.ts index 12bd6384b0c..da5ded83f60 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-action.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-action.ts @@ -15,11 +15,17 @@ import type { RuntimeFileListState } from '../quick-open-file-list' import { openWorkspaceBrowserTab } from '@/lib/workspace-browser-tab-open' import { classifyTabEntryQuery, - TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE, + getTabEntryAbsolutePathRemoteBlockedMessage, type TabEntryActionClassification, type TabEntryOptionsContext } from './tab-create-entry-classifier' import { openAbsoluteTabEntryFile } from './tab-create-entry-absolute-file' +import { + getTabEntryCannotOpenDirectoryMessage, + getTabEntryFileNoLongerExistsMessage, + getTabEntryNoActiveWorktreeMessage, + getTabEntryParentNotDirectoryMessage +} from './tab-create-entry-copy' import { getNetworkTabRequest, isNetworkTabEntry } from './tab-create-entry-browser-request' import { getTabEntryAllowAbsolutePaths, @@ -30,7 +36,7 @@ export { classifyTabEntryQuery, getTabEntryOptions, isTabEntryAbsolutePathLike, - TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE, + getTabEntryAbsolutePathRemoteBlockedMessage, validateNewTabEntryAbsolutePath, validateNewTabEntryRelativePath, type TabEntryActionClassification, @@ -114,7 +120,7 @@ async function createParentDirectoriesForNewFile(args: { } const stat = await args.operations.statRuntimePath(args.context, currentPath) if (!stat.isDirectory) { - throw new Error(`Cannot create file because ${currentPath} is not a directory.`) + throw new Error(getTabEntryParentNotDirectoryMessage(currentPath)) } } } @@ -134,11 +140,11 @@ async function openExistingFile(args: { try { stat = await args.operations.statRuntimePath(args.context, filePath) } catch { - throw new Error(`File no longer exists: ${args.relativePath}`) + throw new Error(getTabEntryFileNoLongerExistsMessage(args.relativePath)) } args.assertCurrent() if (stat.isDirectory) { - throw new Error(`Cannot open a directory: ${args.relativePath}`) + throw new Error(getTabEntryCannotOpenDirectoryMessage(args.relativePath)) } args.operations.openFile( { @@ -192,7 +198,7 @@ export async function openTabEntryWithOperations({ if (classification.kind === 'absolute-file') { if (!allowAbsolutePaths) { - throw new Error(TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE) + throw new Error(getTabEntryAbsolutePathRemoteBlockedMessage()) } await openAbsoluteTabEntryFile({ context: runtimeContext, @@ -257,7 +263,7 @@ export async function openTabBarEntry(args: TabCreateEntryArgs): Promise { getFileContext: () => { const worktree = state.getKnownWorktreeById(args.worktreeId) if (!worktree) { - throw new Error('No active worktree.') + throw new Error(getTabEntryNoActiveWorktreeMessage()) } const provenance = captureEditorFileOperationProvenance( state, @@ -287,7 +293,7 @@ export async function openTabBarEntry(args: TabCreateEntryArgs): Promise { statUserOpenedPath, assertAbsolutePathAllowed: () => { if (!getTabEntryAllowAbsolutePaths(useAppStore.getState(), args.worktreeId)) { - throw new Error(TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE) + throw new Error(getTabEntryAbsolutePathRemoteBlockedMessage()) } } } diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-classifier.test.ts b/src/renderer/src/components/tab-bar/tab-create-entry-classifier.test.ts index cd3d53c4513..22b3ed05793 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-classifier.test.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-classifier.test.ts @@ -3,7 +3,7 @@ import { QUICK_OPEN_QUERY_MAX_BYTES } from '../quick-open-search' import { classifyTabEntryQuery, getTabEntryOptions, - TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE, + getTabEntryAbsolutePathRemoteBlockedMessage, validateNewTabEntryAbsolutePath, validateNewTabEntryRelativePath } from './tab-create-entry-classifier' @@ -564,7 +564,7 @@ describe('tab create entry classification', () => { ]) { expect(classifyTabEntryQuery(query, readyFiles([]))).toMatchObject({ kind: 'blocked', - message: TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE + message: getTabEntryAbsolutePathRemoteBlockedMessage() }) } }) diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-classifier.ts b/src/renderer/src/components/tab-bar/tab-create-entry-classifier.ts index 7a3e3b6393e..a97a3d0ead1 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-classifier.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-classifier.ts @@ -30,8 +30,12 @@ export type TabEntryOptionsContext = { searchEngine?: SearchEngine } -export const TAB_ENTRY_ABSOLUTE_PATH_REMOTE_BLOCKED_MESSAGE = - 'Absolute paths require a local workspace.' +export function getTabEntryAbsolutePathRemoteBlockedMessage(): string { + return translate( + 'auto.components.tab.bar.tab.create.entry.classifier.absolutePathRemoteBlocked', + 'Absolute paths require a local workspace.' + ) +} export type TabEntryClassification = | { kind: 'empty'; message: string } @@ -171,15 +175,7 @@ export function getTabEntryOptions( if (isTabEntryAbsolutePathLike(trimmed)) { if (!context.allowAbsolutePaths) { - return [ - blockedOption( - 'absolute-path-blocked', - translate( - 'auto.components.tab.bar.tab.create.entry.classifier.absolutePathRemoteBlocked', - 'Absolute paths require a local workspace.' - ) - ) - ] + return [blockedOption('absolute-path-blocked', getTabEntryAbsolutePathRemoteBlockedMessage())] } try { const filePath = validateNewTabEntryAbsolutePath(trimmed, context.localPlatform) diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-copy.ts b/src/renderer/src/components/tab-bar/tab-create-entry-copy.ts index d1c1300b495..cf82d1902c1 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-copy.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-copy.ts @@ -10,3 +10,39 @@ export function getTabEntryOmniboxPlaceholder(): string { export function getTabEntryChooseActionMessage(): string { return translate('auto.components.tab.bar.TabBarCreateEntry.chooseAction', 'Choose an action.') } + +export function getTabEntryFileNotFoundMessage(path: string): string { + return translate( + 'auto.components.tab.bar.tabCreateEntry.fileNotFound', + 'File not found: {{path}}', + { path } + ) +} + +export function getTabEntryFileNoLongerExistsMessage(path: string): string { + return translate( + 'auto.components.tab.bar.tabCreateEntry.fileNoLongerExists', + 'File no longer exists: {{path}}', + { path } + ) +} + +export function getTabEntryCannotOpenDirectoryMessage(path: string): string { + return translate( + 'auto.components.tab.bar.tabCreateEntry.cannotOpenDirectory', + 'Cannot open a directory: {{path}}', + { path } + ) +} + +export function getTabEntryParentNotDirectoryMessage(path: string): string { + return translate( + 'auto.components.tab.bar.tabCreateEntry.parentNotDirectory', + 'Cannot create file because {{path}} is not a directory.', + { path } + ) +} + +export function getTabEntryNoActiveWorktreeMessage(): string { + return translate('auto.components.tab.bar.tabCreateEntry.noActiveWorktree', 'No active worktree.') +} diff --git a/src/renderer/src/components/tab-bar/tab-create-entry-path-validation.ts b/src/renderer/src/components/tab-bar/tab-create-entry-path-validation.ts index 7004d67bb45..3672538beb1 100644 --- a/src/renderer/src/components/tab-bar/tab-create-entry-path-validation.ts +++ b/src/renderer/src/components/tab-bar/tab-create-entry-path-validation.ts @@ -1,3 +1,4 @@ +import { translate } from '@/i18n/i18n' import { normalizeAbsolutePath } from '../../../../shared/terminal-path-normalization' import { isAbsolutePathLike } from '../editor/editor-panel-file-mode' @@ -9,7 +10,12 @@ export function isTabEntryAbsolutePathLike(query: string): boolean { function assertTabEntryPathHasNoControlCharacters(trimmed: string): void { if (Array.from(trimmed).some((char) => char.charCodeAt(0) < 32 || char.charCodeAt(0) === 127)) { - throw new Error('File paths cannot contain control characters.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.filePathsCannotContainControlCharacters', + 'File paths cannot contain control characters.' + ) + ) } } @@ -19,21 +25,46 @@ export function validateNewTabEntryAbsolutePath( ): string { const trimmed = query.trim() if (!trimmed) { - throw new Error('Enter a URL or file path.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterAUrlOrFilePath', + 'Enter a URL or file path.' + ) + ) } assertTabEntryPathHasNoControlCharacters(trimmed) if (trimmed === '~' || trimmed.startsWith('~/') || trimmed.startsWith('~\\')) { - throw new Error('Home-relative paths are not supported here.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.homeRelativePathsAreNotSupported', + 'Home-relative paths are not supported here.' + ) + ) } if (/[\\/]$/.test(trimmed)) { - throw new Error('Enter a file path, not a directory path.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterAFilePathNotA', + 'Enter a file path, not a directory path.' + ) + ) } if (!isAbsolutePathLike(trimmed)) { - throw new Error('Enter an absolute file path.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterAnAbsoluteFilePath', + 'Enter an absolute file path.' + ) + ) } const normalized = normalizeAbsolutePath(trimmed) if (!normalized) { - throw new Error('Enter an absolute file path.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterAnAbsoluteFilePath', + 'Enter an absolute file path.' + ) + ) } const rootMatchesLocalPlatform = localPlatform === undefined || @@ -41,7 +72,12 @@ export function validateNewTabEntryAbsolutePath( (localPlatform === 'windows' && (normalized.rootKind === 'windows' || normalized.rootKind === 'unc')) if (!rootMatchesLocalPlatform) { - throw new Error('Enter an absolute path for this computer.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterAnAbsolutePathForThis', + 'Enter an absolute path for this computer.' + ) + ) } return normalized.normalized } @@ -50,35 +86,80 @@ export function validateNewTabEntryRelativePath(query: string): string { // Keep new-file paths workspace-relative; absolute/home/traversal/UNC syntax follows separate routes. const trimmed = query.trim() if (!trimmed) { - throw new Error('Enter a URL or file path.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterAUrlOrFilePath', + 'Enter a URL or file path.' + ) + ) } assertTabEntryPathHasNoControlCharacters(trimmed) if (trimmed.startsWith('/')) { - throw new Error('Enter a relative file path.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterARelativeFilePath', + 'Enter a relative file path.' + ) + ) } if (/^[A-Za-z]:/.test(trimmed)) { - throw new Error('Windows drive paths are not supported here.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.windowsDrivePathsAreNotSupported', + 'Windows drive paths are not supported here.' + ) + ) } if (/^[\\/]{2}/.test(trimmed)) { - throw new Error('UNC paths are not supported here.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.uncPathsAreNotSupportedHere', + 'UNC paths are not supported here.' + ) + ) } if (trimmed === '~' || trimmed.startsWith('~/') || trimmed.startsWith('~\\')) { - throw new Error('Home-relative paths are not supported here.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.homeRelativePathsAreNotSupported', + 'Home-relative paths are not supported here.' + ) + ) } if (/[\\/]$/.test(trimmed)) { - throw new Error('Enter a file path, not a directory path.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.enterAFilePathNotA', + 'Enter a file path, not a directory path.' + ) + ) } if (trimmed.split(/[\\/]/).some((segment) => segment.length === 0)) { - throw new Error('File paths cannot contain empty segments.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.filePathsCannotContainEmptySegments', + 'File paths cannot contain empty segments.' + ) + ) } const normalized = trimmed.replace(/\\/g, '/') const segments = normalized.split('/') if (segments.some((segment) => segment === '.' || segment === '..')) { - throw new Error('File paths cannot contain . or .. segments.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.filePathsCannotContainDotSegments', + 'File paths cannot contain . or .. segments.' + ) + ) } if (segments.some((segment) => segment === '~')) { - throw new Error('File paths cannot contain ~ segments.') + throw new Error( + translate( + 'auto.components.tab.bar.tabCreateEntryPath.filePathsCannotContainTildeSegments', + 'File paths cannot contain ~ segments.' + ) + ) } return normalized } diff --git a/src/renderer/src/components/tab-group/AiVaultSessionDropLayer.tsx b/src/renderer/src/components/tab-group/AiVaultSessionDropLayer.tsx index 656c7b4b853..497c8197c6d 100644 --- a/src/renderer/src/components/tab-group/AiVaultSessionDropLayer.tsx +++ b/src/renderer/src/components/tab-group/AiVaultSessionDropLayer.tsx @@ -253,8 +253,14 @@ export default function AiVaultSessionDropLayer({ // Refuse old payloads that cannot repin the startup command; silently using another account’s home is unsafe. throw new Error( result.substituteCodexHome - ? 'This session was dragged from an older Orca window, so Orca cannot retarget it to the selected Codex account. Resume it from the Session History panel instead.' - : 'Orca could not prepare this legacy Codex session. Retry resume.' + ? translate( + 'auto.components.tab.group.AiVaultSessionDropLayer.legacyDragCannotRetarget', + 'This session was dragged from an older Orca window, so Orca cannot retarget it to the selected Codex account. Resume it from the Session History panel instead.' + ) + : translate( + 'auto.components.tab.group.AiVaultSessionDropLayer.legacyDragPrepareFailed', + 'Orca could not prepare this legacy Codex session. Retry resume.' + ) ) } const providerSession = getAiVaultAgentProviderSession({ diff --git a/src/renderer/src/components/tab-group/useTabGroupCreationCommands.ts b/src/renderer/src/components/tab-group/useTabGroupCreationCommands.ts index d9a078e75c6..95c674cf9e8 100644 --- a/src/renderer/src/components/tab-group/useTabGroupCreationCommands.ts +++ b/src/renderer/src/components/tab-group/useTabGroupCreationCommands.ts @@ -13,6 +13,7 @@ import { runtimeEnvironmentIdOrLocalUnlessTwin } from '@/lib/worktree-runtime-ow import { browserWorkspaceHasRemoteOwner } from '@/runtime/remote-browser-tab-ownership' import { getClientCreationActionPolicy } from '@/lib/client-creation-action-policy' import type { TabGroupWorktreeSnapshot } from './useTabGroupItemProjections' +import { translate } from '@/i18n/i18n' export function useTabGroupCreationCommands({ groupId, @@ -90,7 +91,12 @@ export function useTabGroupCreationCommands({ if (created) { return } - throw new Error('The paired runtime could not duplicate the managed browser tab.') + throw new Error( + translate( + 'auto.components.tab.group.useTabGroupCreationCommands.duplicateBrowserTabFailed', + 'The paired runtime could not duplicate the managed browser tab.' + ) + ) } // Why no targetGroupId: a source-following duplicate joins the source's live group. createBrowserTab(worktreeId, source.url, { diff --git a/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.test.ts b/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.test.ts index cf3b4b65674..1e11e7ea252 100644 --- a/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.test.ts +++ b/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.test.ts @@ -33,9 +33,11 @@ describe('reportTerminalDropUploadSkipsAndFailures', () => { const mixedSkipKey = mocks.translate.mock.calls[0]?.[0] expect(symlinkOnlyKey).toBe( - 'auto.components.terminal.pane.terminal.drop.handler.skippedSymlinkSingular' + 'auto.components.terminal.pane.terminal.drop.handler.skippedSymlinks_one' + ) + expect(mixedSkipKey).toBe( + 'auto.components.terminal.pane.terminal.drop.handler.skippedItems_other' ) - expect(mixedSkipKey).toBe('auto.components.terminal.pane.terminal.drop.handler.b4cf68e889') expect(symlinkOnlyKey).not.toBe(mixedSkipKey) expect(toast.message).toHaveBeenCalledTimes(2) }) @@ -44,9 +46,9 @@ describe('reportTerminalDropUploadSkipsAndFailures', () => { reportTerminalDropUploadSkipsAndFailures([], [{ reason: '/secret/project/file.txt' }]) expect(mocks.translate).toHaveBeenCalledWith( - 'auto.components.terminal.pane.terminal.drop.handler.1e072f611e', - 'Failed to upload {{value0}} {{value1}}.', - { value0: 1, value1: 'file' } + 'auto.components.terminal.pane.terminal.drop.handler.failedUploads_one', + 'Failed to upload {{count}} file.', + { count: 1 } ) expect(toast.error).toHaveBeenCalledWith( expect.not.stringContaining('/secret/project/file.txt'), @@ -61,7 +63,7 @@ describe('reportTerminalDropUploadSkipsAndFailures', () => { ) expect(toast.message).toHaveBeenCalledWith( - 'auto.components.terminal.pane.terminal.drop.handler.b4cf68e889:Skipped {{value0}} {{value1}}.', + 'auto.components.terminal.pane.terminal.drop.handler.skippedItems_other:Skipped {{count}} items.', { description: 'auto.lib.dropSkipReason.permissionDenied:Permission denied.' } ) }) @@ -82,9 +84,9 @@ describe('reportTerminalDropUploadSkipsAndFailures', () => { reportTerminalDropUploadSkipsAndFailures([], [{ reason: 'a' }, { reason: 'b' }]) expect(mocks.translate).toHaveBeenCalledWith( - 'auto.components.terminal.pane.terminal.drop.handler.1e072f611e', - 'Failed to upload {{value0}} {{value1}}.', - { value0: 2, value1: 'files' } + 'auto.components.terminal.pane.terminal.drop.handler.failedUploads_other', + 'Failed to upload {{count}} files.', + { count: 2 } ) }) diff --git a/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.ts b/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.ts index d49d2358fd5..b12fb6079d3 100644 --- a/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.ts +++ b/src/renderer/src/components/terminal-pane/terminal-drop-upload-report.ts @@ -12,38 +12,48 @@ export function reportTerminalDropUploadSkipsAndFailures( if (skipped.length > 0) { // Why: symlink rejection is policy, not an error; mixed reasons stay generic. const allSymlinks = skipped.every((item) => item.reason === 'symlink') - const noun = skipped.length === 1 ? 'item' : 'items' toast.message( allSymlinks ? skipped.length === 1 ? translate( - 'auto.components.terminal.pane.terminal.drop.handler.skippedSymlinkSingular', + 'auto.components.terminal.pane.terminal.drop.handler.skippedSymlinks_one', 'Skipped {{count}} symlink.', { count: skipped.length } ) : translate( - 'auto.components.terminal.pane.terminal.drop.handler.skippedSymlinkPlural', + 'auto.components.terminal.pane.terminal.drop.handler.skippedSymlinks_other', 'Skipped {{count}} symlinks.', { count: skipped.length } ) - : translate( - 'auto.components.terminal.pane.terminal.drop.handler.b4cf68e889', - 'Skipped {{value0}} {{value1}}.', - { value0: skipped.length, value1: noun } - ), + : skipped.length === 1 + ? translate( + 'auto.components.terminal.pane.terminal.drop.handler.skippedItems_one', + 'Skipped {{count}} item.', + { count: skipped.length } + ) + : translate( + 'auto.components.terminal.pane.terminal.drop.handler.skippedItems_other', + 'Skipped {{count}} items.', + { count: skipped.length } + ), { description: allSymlinks ? undefined : describeSharedDropSkipReason(skipped) } ) } if (failed.length > 0) { - const noun = failed.length === 1 ? 'file' : 'files' toast.error( - translate( - 'auto.components.terminal.pane.terminal.drop.handler.1e072f611e', - 'Failed to upload {{value0}} {{value1}}.', - { value0: failed.length, value1: noun } - ), + failed.length === 1 + ? translate( + 'auto.components.terminal.pane.terminal.drop.handler.failedUploads_one', + 'Failed to upload {{count}} file.', + { count: failed.length } + ) + : translate( + 'auto.components.terminal.pane.terminal.drop.handler.failedUploads_other', + 'Failed to upload {{count}} files.', + { count: failed.length } + ), { description: describeSharedDropFailureReason(failed) } ) } diff --git a/src/renderer/src/components/terminal-pane/terminal-native-file-drop.ts b/src/renderer/src/components/terminal-pane/terminal-native-file-drop.ts index d8b6ea6f779..64b04ac961c 100644 --- a/src/renderer/src/components/terminal-pane/terminal-native-file-drop.ts +++ b/src/renderer/src/components/terminal-pane/terminal-native-file-drop.ts @@ -130,12 +130,12 @@ async function uploadRuntimeDropPaths( const pending = toast.loading( args.dataPaths.length === 1 ? translate( - 'auto.components.terminal.pane.terminal.drop.handler.uploadingFileSingular', + 'auto.components.terminal.pane.terminal.drop.handler.uploadingFiles_one', 'Uploading {{count}} file to runtime…', { count: args.dataPaths.length } ) : translate( - 'auto.components.terminal.pane.terminal.drop.handler.uploadingFilePlural', + 'auto.components.terminal.pane.terminal.drop.handler.uploadingFiles_other', 'Uploading {{count}} files to runtime…', { count: args.dataPaths.length } ) @@ -174,7 +174,10 @@ async function uploadRuntimeDropPaths( } async function pasteLocalDropPaths( - args: NativeDropFlowArgs & { localWslDrop: boolean; targetShell: 'posix' | 'windows' } + args: NativeDropFlowArgs & { + localWslDrop: boolean + targetShell: 'posix' | 'windows' + } ): Promise { // Local WSL shells need distro-aware POSIX paths despite their Windows host. if (isWslUncPath(args.worktreePath)) { @@ -200,17 +203,20 @@ async function pasteLocalDropPaths( } async function uploadRemoteDropPaths( - args: NativeDropFlowArgs & { connectionId: string; targetShell: 'posix' | 'windows' } + args: NativeDropFlowArgs & { + connectionId: string + targetShell: 'posix' | 'windows' + } ): Promise { const pending = toast.loading( args.dataPaths.length === 1 ? translate( - 'auto.components.terminal.pane.terminal.drop.handler.uploadingFileToRemoteSingular', + 'auto.components.terminal.pane.terminal.drop.handler.uploadingFilesToRemote_one', 'Uploading {{count}} file to remote…', { count: args.dataPaths.length } ) : translate( - 'auto.components.terminal.pane.terminal.drop.handler.uploadingFileToRemotePlural', + 'auto.components.terminal.pane.terminal.drop.handler.uploadingFilesToRemote_other', 'Uploading {{count}} files to remote…', { count: args.dataPaths.length } ) @@ -234,7 +240,10 @@ async function uploadRemoteDropPaths( } async function pasteResolvedDropPaths( - args: NativeDropFlowArgs & { paths: string[]; targetShell: 'posix' | 'windows' } + args: NativeDropFlowArgs & { + paths: string[] + targetShell: 'posix' | 'windows' + } ): Promise { args.assertCurrent?.() // Upload/resolution can outlive the pane; recheck before writing to its PTY. diff --git a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-confirm-remove.tsx b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-confirm-remove.tsx index 97a31aedc5c..07be91d6aa2 100644 --- a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-confirm-remove.tsx +++ b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-confirm-remove.tsx @@ -145,12 +145,12 @@ export function WorkspaceCleanupConfirmRemove({
{riskCount === 1 ? translate( - 'components.workspace.cleanup.browse.forceDeleteProjectionOne', + 'components.workspace.cleanup.browse.forceDeleteRisk_one', '{{count}} workspace currently shows risk and may need a force delete', { count: riskCount } ) : translate( - 'components.workspace.cleanup.browse.forceDeleteProjectionMany', + 'components.workspace.cleanup.browse.forceDeleteRisk_other', '{{count}} workspaces currently show risk and may need a force delete', { count: riskCount } )} diff --git a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-scan-notice.ts b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-scan-notice.ts index 5ac438b3484..9da70b8e1c1 100644 --- a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-scan-notice.ts +++ b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-scan-notice.ts @@ -32,17 +32,29 @@ export function formatWorkspaceCleanupScanNotice( .map((error) => formatScanErrorRepoName(error, repoNameById)) .join(', ') const moreCount = visibleErrors.length - 3 - const suffix = - moreCount > 0 - ? translate('components.workspace.cleanup.scan.moreErrors', ', +{{value0}} more', { - value0: moreCount - }) - : '' - return translate( - 'components.workspace.cleanup.scan.multipleErrors', - 'Could not check {{value0}} repositories ({{value1}}{{value2}}). Some workspaces may be missing. Refresh to try again.', - { value0: visibleErrors.length, value1: repoNames, value2: suffix } - ) + return moreCount > 0 + ? visibleErrors.length === 1 + ? translate( + 'components.workspace.cleanup.scan.multipleErrorsWithMore_one', + 'Could not check {{count}} repository ({{names}}, +{{moreCount}} more). Some workspaces may be missing. Refresh to try again.', + { count: visibleErrors.length, names: repoNames, moreCount } + ) + : translate( + 'components.workspace.cleanup.scan.multipleErrorsWithMore_other', + 'Could not check {{count}} repositories ({{names}}, +{{moreCount}} more). Some workspaces may be missing. Refresh to try again.', + { count: visibleErrors.length, names: repoNames, moreCount } + ) + : visibleErrors.length === 1 + ? translate( + 'components.workspace.cleanup.scan.multipleErrorsCount_one', + 'Could not check {{count}} repository ({{names}}). Some workspaces may be missing. Refresh to try again.', + { count: visibleErrors.length, names: repoNames } + ) + : translate( + 'components.workspace.cleanup.scan.multipleErrorsCount_other', + 'Could not check {{count}} repositories ({{names}}). Some workspaces may be missing. Refresh to try again.', + { count: visibleErrors.length, names: repoNames } + ) } export function formatWorkspaceCleanupReadyToast(workspaceCount: number): string { @@ -50,11 +62,17 @@ export function formatWorkspaceCleanupReadyToast(workspaceCount: number): string return translate('components.workspace.cleanup.scan.noWorkspaces', 'No workspaces found.') } if (workspaceCount === 1) { - return translate('components.workspace.cleanup.scan.readyOne', '1 workspace found.') + return translate( + 'components.workspace.cleanup.scan.readyCount_one', + '{{count}} workspace found.', + { count: workspaceCount } + ) } - return translate('components.workspace.cleanup.scan.readyMany', '{{value0}} workspaces found.', { - value0: workspaceCount - }) + return translate( + 'components.workspace.cleanup.scan.readyCount_other', + '{{count}} workspaces found.', + { count: workspaceCount } + ) } function formatScanErrorRepoName( diff --git a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-selection-model.ts b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-selection-model.ts index cf5262f91df..4689f50fd5b 100644 --- a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-selection-model.ts +++ b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-selection-model.ts @@ -3,26 +3,28 @@ import { translate } from '@/i18n/i18n' export function formatVanishedSelectionNotice(count: number): string { return count === 1 ? translate( - 'components.workspace.cleanup.browse.selectionVanishedOne', - '1 selected workspace no longer exists.' + 'components.workspace.cleanup.browse.selectionVanishedCount_one', + '{{count}} selected workspace no longer exists.', + { count } ) : translate( - 'components.workspace.cleanup.browse.selectionVanished', - '{{value0}} selected workspaces no longer exist.', - { value0: count } + 'components.workspace.cleanup.browse.selectionVanishedCount_other', + '{{count}} selected workspaces no longer exist.', + { count } ) } export function formatWithheldSelectionNotice(count: number): string { return count === 1 ? translate( - 'components.workspace.cleanup.browse.selectionWithheldOne', - '1 selected workspace is hidden by the current filters and was deselected.' + 'components.workspace.cleanup.browse.selectionWithheldCount_one', + '{{count}} selected workspace is hidden by the current filters and was deselected.', + { count } ) : translate( - 'components.workspace.cleanup.browse.selectionWithheld', - '{{value0}} selected workspaces are hidden by the current filters and were deselected.', - { value0: count } + 'components.workspace.cleanup.browse.selectionWithheldCount_other', + '{{count}} selected workspaces are hidden by the current filters and were deselected.', + { count } ) } diff --git a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-sort-header.tsx b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-sort-header.tsx index 3a3e78429c3..238b2ca8d12 100644 --- a/src/renderer/src/components/workspace-cleanup/workspace-cleanup-sort-header.tsx +++ b/src/renderer/src/components/workspace-cleanup/workspace-cleanup-sort-header.tsx @@ -34,13 +34,14 @@ export function WorkspaceCleanupSortHeader({ const selectAllLabel = selectableCount === 1 ? translate( - 'components.workspace.cleanup.browse.selectAllCountOne', - 'Select 1 safety-checked workspace' + 'components.workspace.cleanup.browse.selectAllSafetyChecked_one', + 'Select {{count}} safety-checked workspace', + { count: selectableCount } ) : translate( - 'components.workspace.cleanup.browse.selectAllCount', - 'Select all {{value0}} safety-checked workspaces', - { value0: selectableCount } + 'components.workspace.cleanup.browse.selectAllSafetyChecked_other', + 'Select all {{count}} safety-checked workspaces', + { count: selectableCount } ) return (
diff --git a/src/renderer/src/i18n/en-runtime-required.json b/src/renderer/src/i18n/en-runtime-required.json index 296e5220106..9e6ca4a4ccd 100644 --- a/src/renderer/src/i18n/en-runtime-required.json +++ b/src/renderer/src/i18n/en-runtime-required.json @@ -56,6 +56,10 @@ "resumingCount_one": "Resuming {{count}} chat", "resumingCount_other": "Resuming {{count}} chats" }, + "PullRequestPage": { + "filesViewed_one": "{{viewed}} / {{count}} file viewed", + "filesViewed_other": "{{viewed}} / {{count}} files viewed" + }, "QuickOpen": { "filesFound_one": "{{count}} file found", "filesFound_other": "{{count}} files found" @@ -78,10 +82,6 @@ "resultsFound_one": "{{count}} result found.", "resultsFound_other": "{{count}} results found." }, - "PullRequestPage": { - "filesViewed_one": "{{viewed}} / {{count}} file viewed", - "filesViewed_other": "{{viewed}} / {{count}} files viewed" - }, "activity": { "ActivityThreadContextMenu": { "clearMany_one": "Clear {{count}} Agent from List", @@ -90,6 +90,14 @@ "markManyRead_other": "Mark {{count}} Agents Read", "markManyUnread_one": "Mark {{count}} Agent Unread", "markManyUnread_other": "Mark {{count}} Agents Unread" + }, + "ActivityTitlebarControls": { + "unreadCount_one": "{{count}} unread", + "unreadCount_other": "{{count}} unread" + }, + "clearCompleted": { + "cleared_one": "Cleared {{count}} completed agent", + "cleared_other": "Cleared {{count}} completed agents" } }, "automations": { @@ -149,6 +157,18 @@ "errorUnavailable": "Screenshot markup is not available on this page." } }, + "dashboard": { + "DashboardAgentChildDisclosure": { + "hideChildAgents_one": "Hide {{count}} child agent", + "hideChildAgents_other": "Hide {{count}} child agents", + "showChildAgents_one": "Show {{count}} child agent", + "showChildAgents_other": "Show {{count}} child agents" + }, + "DashboardAgentRow": { + "dispatchedAgents_one": "{{agentType}} - dispatched {{count}} agent", + "dispatchedAgents_other": "{{agentType}} - dispatched {{count}} agents" + } + }, "editor": { "CombinedDiffViewer": { "skippedConflictsExcluded_one": "{{count}} unresolved conflict was excluded from this diff view.", @@ -670,9 +690,35 @@ } }, "sidebar": { + "AddRemoteHostDialog": { + "sshImportSynced_one": "Added {{count}} host to Orca.", + "sshImportSynced_other": "Added {{count}} hosts to Orca." + }, + "AddRepoNestedImportStep": { + "foundRepositories_one": "Found {{count}} repository in {{path}}.", + "foundRepositories_other": "Found {{count}} repositories in {{path}}." + }, "DeleteWorktreeDirtyChangeHint": { "changeCount_one": "{{count}} uncommitted or untracked change", - "changeCount_other": "{{count}} uncommitted or untracked changes" + "changeCount_other": "{{count}} uncommitted or untracked changes", + "moreLoadedPaths_one": "and {{count}} more loaded path", + "moreLoadedPaths_other": "and {{count}} more loaded paths" + }, + "DeleteWorktreeLineageNotice": { + "alsoDeletesChildren_one": "Deleting this workspace also deletes {{count}} child workspace.", + "alsoDeletesChildren_other": "Deleting this workspace also deletes {{count}} child workspaces.", + "moreChildren_one": "+{{count}} more", + "moreChildren_other": "+{{count}} more" + }, + "HostRemoveDialog": { + "alsoRemoveWorkspaces_one": "Also remove this workspace from Orca", + "alsoRemoveWorkspaces_other": "Also remove these {{count}} workspaces from Orca", + "hostKeepsWorkspaces_one": "Removes {{host}} and its credentials from this computer. Its {{count}} workspace stays in Orca — remote files are not touched.", + "hostKeepsWorkspaces_other": "Removes {{host}} and its credentials from this computer. Its {{count}} workspaces stay in Orca — remote files are not touched." + }, + "HostSectionHeader": { + "workspaceCount_one": "{{count}} workspace", + "workspaceCount_other": "{{count}} workspaces" }, "ImportedWorktreesVisibilityLine": { "hidingInRepo_one": "Hiding {{count}} discovered worktree in {{repo}}", @@ -680,16 +726,72 @@ "hiding_one": "Hiding {{count}} discovered worktree", "hiding_other": "Hiding {{count}} discovered worktrees", "keepHiddenAriaLabel_one": "Keep {{count}} discovered worktree hidden for {{repo}}; recover from the project menu", - "keepHiddenAriaLabel_other": "Keep {{count}} discovered worktrees hidden for {{repo}}; recover from the project menu" + "keepHiddenAriaLabel_other": "Keep {{count}} discovered worktrees hidden for {{repo}}; recover from the project menu", + "moreLocations_one": "+ {{count}} more location", + "moreLocations_other": "+ {{count}} more locations" + }, + "LocalGitToolchainScanBanner": { + "affectedProjects_one": "Worktree scan paused for {{count}} project", + "affectedProjects_other": "Worktree scan paused for {{count}} projects" + }, + "NewExternalWorktreesInboxLine": { + "hiddenWorktreesNoun_one": "hidden worktree", + "hiddenWorktreesNoun_other": "hidden worktrees", + "reviewHiddenWorktrees_one": "Review {{count}} hidden worktree in {{scope}}", + "reviewHiddenWorktrees_other": "Review {{count}} hidden worktrees in {{scope}}" }, "PreservedBranchBatchReviewDialog": { "a0f9863597_one": "Force Delete {{count}} Branch", "a0f9863597_other": "Force Delete {{count}} Branches" }, + "ProjectGroupDeleteDialog": { + "moreProjects_one": "+{{count}} more", + "moreProjects_other": "+{{count}} more", + "removeContainedProjects_one": "Remove {{count}} contained project", + "removeContainedProjects_other": "Remove {{count}} contained projects" + }, "SetupScriptPromptCard": { "savedWithSkippedFields_one": "{{count}} unsupported field skipped. Saved the setup command.", "savedWithSkippedFields_other": "{{count}} unsupported fields skipped. Saved the setup command." }, + "WorkspaceKanbanDrawerHeader": { + "selectedCount_one": "{{count}} selected", + "selectedCount_other": "{{count}} selected" + }, + "WorkspaceKanbanSearchField": { + "workspacesMatch_one": "{{matchCount}} of {{count}} workspace matches", + "workspacesMatch_other": "{{matchCount}} of {{count}} workspaces match" + }, + "WorktreeCardPorts": { + "livePorts_one": "{{count}} live port", + "livePorts_other": "{{count}} live ports" + }, + "WorktreeList": { + "childCount_one": "{{count}} child", + "childCount_other": "{{count}} children", + "groupProjectsRemained_one": "{{remaining}} of {{count}} contained project remained after deleting the group.", + "groupProjectsRemained_other": "{{remaining}} of {{count}} contained projects remained after deleting the group.", + "hideChildWorkspaces_one": "Hide {{count}} child workspace", + "hideChildWorkspaces_other": "Hide {{count}} child workspaces", + "showChildWorkspaces_one": "Show {{count}} child workspace", + "showChildWorkspaces_other": "Show {{count}} child workspaces" + }, + "WorktreeVisibilityDialog": { + "searchHiddenPlaceholder_one": "Search {{count}} worktree…", + "searchHiddenPlaceholder_other": "Search {{count}} worktrees…" + }, + "local": { + "base": { + "ref": { + "suggestion": { + "toast": { + "staleLocalBranch_one": "Your new worktree is current, but local {{branch}} is {{count}} commit behind, so AI diffs may compare to stale history. Let Orca keep it up to date automatically. Change this anytime in Settings › {{setting}}", + "staleLocalBranch_other": "Your new worktree is current, but local {{branch}} is {{count}} commits behind, so AI diffs may compare to stale history. Let Orca keep it up to date automatically. Change this anytime in Settings › {{setting}}" + } + } + } + } + }, "preserved": { "branch": { "batch": { @@ -716,6 +818,10 @@ "deleteCount_other": "Delete {{count}} Workspaces", "sleepCount_one": "Sleep {{count}} Workspace", "sleepCount_other": "Sleep {{count}} Workspaces" + }, + "worktreeCardModel": { + "sparsePreviewMore_one": "{{preview}}, +{{count}} more", + "sparsePreviewMore_other": "{{preview}}, +{{count}} more" } }, "skills": { @@ -726,6 +832,48 @@ }, "status": { "bar": { + "NativeChatResumeStatusSegment": { + "ariaLabelCount_one": "{{count}} chat available to resume", + "ariaLabelCount_other": "{{count}} chats available to resume", + "chatsFailedAria_one": "{{count}} chat failed to resume. Click for details.", + "chatsFailedAria_other": "{{count}} chats failed to resume. Click for details.", + "chatsFailedLabel_one": "{{count}} chat failed to resume", + "chatsFailedLabel_other": "{{count}} chats failed to resume", + "checkAriaCount_one": "{{count}} chat to check after resuming. Click for details.", + "checkAriaCount_other": "{{count}} chats to check after resuming. Click for details.", + "checkLabelCount_one": "{{count}} chat to check", + "checkLabelCount_other": "{{count}} chats to check", + "labelCount_one": "{{count}} chat to resume", + "labelCount_other": "{{count}} chats to resume", + "resumedAriaCount_one": "{{count}} chat resumed. Click to see it.", + "resumedAriaCount_other": "{{count}} chats resumed. Click to see them.", + "resumedLabelCount_one": "{{count}} chat resumed", + "resumedLabelCount_other": "{{count}} chats resumed" + }, + "PortsStatusSegment": { + "portsAria_one": "Ports, {{count}} workspace port", + "portsAria_other": "Ports, {{count}} workspace ports", + "portsTooltipWithExternal_one": "Ports — {{count}} workspace port · {{externalCount}} external", + "portsTooltipWithExternal_other": "Ports — {{count}} workspace ports · {{externalCount}} external", + "portsTooltip_one": "Ports — {{count}} workspace port", + "portsTooltip_other": "Ports — {{count}} workspace ports" + }, + "RemoteServerUpdateStatusSegment": { + "failedCount_one": "{{count}} server update failed", + "failedCount_other": "{{count}} server updates failed", + "updatedCount_one": "{{count}} server updated", + "updatedCount_other": "{{count}} servers updated" + }, + "ResourceUsageStatusSegment": { + "endOrphanTerminals_one": "End {{count}} orphan terminal", + "endOrphanTerminals_other": "End {{count}} orphan terminals", + "orphanCount_one": "{{count}} orphan", + "orphanCount_other": "{{count}} orphans" + }, + "SkillUpdateStatusSegment": { + "runningSkills_one": "Updating {{count}} skill…", + "runningSkills_other": "Updating {{count}} skills…" + }, "SshStatusSegment": { "connectedHostCount_one": "{{count}} host", "connectedHostCount_other": "{{count}} hosts", @@ -734,6 +882,20 @@ "moreSshHosts_one": "Find {{count}} more SSH host…", "moreSshHosts_other": "Find among {{count}} more SSH hosts…" }, + "StatusBar": { + "rateLimitResetsAvailable_one": "{{count}} rate-limit reset available", + "rateLimitResetsAvailable_other": "{{count}} rate-limit resets available", + "staleCodexSessions_one": "{{count}} Codex session is still on the old account.", + "staleCodexSessions_other": "{{count}} Codex sessions are still on the old account." + }, + "WorkspaceSpaceManagerPanel": { + "removedFromSpace_one": "{{count}} workspace removed from Space.", + "removedFromSpace_other": "{{count}} workspaces removed from Space.", + "selectedCount_one": "{{count}} selected", + "selectedCount_other": "{{count}} selected", + "topLevelItems_one": "{{formattedCount}} top-level item", + "topLevelItems_other": "{{formattedCount}} top-level items" + }, "resource": { "manager": { "terminal": { @@ -743,6 +905,34 @@ } } } + }, + "tooltip": { + "rateLimitResetsAvailable_one": "{{count}} rate-limit reset available", + "rateLimitResetsAvailable_other": "{{count}} rate-limit resets available" + }, + "workspaceSpaceDecision": { + "activeAgents_one": "{{count}} active agent", + "activeAgents_other": "{{count}} active agents", + "browserTabsOpen_one": "{{count}} browser tab open", + "browserTabsOpen_other": "{{count}} browser tabs open", + "changedFiles_one": "{{count}} changed file", + "changedFiles_other": "{{count}} changed files", + "completedAgentsRetained_one": "{{count}} completed agent retained", + "completedAgentsRetained_other": "{{count}} completed agents retained", + "completedAgents_one": "{{count}} completed agent", + "completedAgents_other": "{{count}} completed agents", + "dirtyEditorBuffers_one": "{{count}} dirty editor buffer", + "dirtyEditorBuffers_other": "{{count}} dirty editor buffers", + "editorFilesOpen_one": "{{count}} editor file open", + "editorFilesOpen_other": "{{count}} editor files open", + "liveTerminalTabs_one": "{{live}} live of {{count}} terminal tab", + "liveTerminalTabs_other": "{{live}} live of {{count}} terminal tabs", + "openFiles_one": "{{count}} open file", + "openFiles_other": "{{count}} open files" + }, + "workspaceSpaceFormat": { + "scanningRepos_one": "Scanning {{scanned}} of {{count}} repo · {{current}}", + "scanningRepos_other": "Scanning {{scanned}} of {{count}} repos · {{current}}" } } }, @@ -772,6 +962,22 @@ "hostTerminalCap": "The host is already running as many terminals as Orca allows. Close a terminal you no longer need, then try again.", "ptyAllocationLimit": "Your system cannot allocate any more pty devices. Close some terminals you are not using, in Orca or another program, then try again.", "terminalProcessLimit": "Your system cannot start another terminal process. Close unused terminals or quit unused processes, then try again." + }, + "terminal": { + "drop": { + "handler": { + "failedUploads_one": "Failed to upload {{count}} file.", + "failedUploads_other": "Failed to upload {{count}} files.", + "skippedItems_one": "Skipped {{count}} item.", + "skippedItems_other": "Skipped {{count}} items.", + "skippedSymlinks_one": "Skipped {{count}} symlink.", + "skippedSymlinks_other": "Skipped {{count}} symlinks.", + "uploadingFilesToRemote_one": "Uploading {{count}} file to remote…", + "uploadingFilesToRemote_other": "Uploading {{count}} files to remote…", + "uploadingFiles_one": "Uploading {{count}} file to runtime…", + "uploadingFiles_other": "Uploading {{count}} files to runtime…" + } + } } } } @@ -934,6 +1140,7 @@ "chooseClaudeAccountThenSend": "Choose or add one in Claude Accounts settings, then send your message again.", "claudeAccountFolderMissing": "The selected Claude account's folder is missing. Sign in to it again or choose another account.", "claudeAccountSetupFailed": "The selected Claude account could not be set up. Try again or choose another account.", + "claudeEffortInvalid": "Claude effort is invalid; choose low, medium, high, xhigh, or max and send again.", "claudeManagedNotSignedIn": "This Claude account isn't signed in. Sign in again in Claude Accounts settings.", "claudeSystemNotSignedIn": "Claude isn't signed in. Run `{{loginCommand}}`, or choose an account in Claude Accounts settings.", "cliMissing": "{{agent}} wasn't found on the computer running this chat. Install it, or check its Command in Settings → Agents.", @@ -976,7 +1183,6 @@ "providerExitedRejection": "{{agent}} stopped before this message was sent.", "providerExitedRow": "{{agent}} stopped while this response was in progress. You can continue in this conversation.", "providerRateLimited": "{{agent}} is rate-limited and retrying.", - "claudeEffortInvalid": "Claude effort is invalid; choose low, medium, high, xhigh, or max and send again.", "providerRejected": "{{agent}} didn't accept this message.", "providerRejectedQuoted": "{{agent}} didn't accept this message: {{detail}}.", "providerRetryLastError": "Last error: {{detail}}.", @@ -1210,6 +1416,26 @@ } }, "workspace": { + "cleanup": { + "browse": { + "forceDeleteRisk_one": "{{count}} workspace currently shows risk and may need a force delete", + "forceDeleteRisk_other": "{{count}} workspaces currently show risk and may need a force delete", + "selectAllSafetyChecked_one": "Select {{count}} safety-checked workspace", + "selectAllSafetyChecked_other": "Select all {{count}} safety-checked workspaces", + "selectionVanishedCount_one": "{{count}} selected workspace no longer exists.", + "selectionVanishedCount_other": "{{count}} selected workspaces no longer exist.", + "selectionWithheldCount_one": "{{count}} selected workspace is hidden by the current filters and was deselected.", + "selectionWithheldCount_other": "{{count}} selected workspaces are hidden by the current filters and were deselected." + }, + "scan": { + "multipleErrorsCount_one": "Could not check {{count}} repository ({{names}}). Some workspaces may be missing. Refresh to try again.", + "multipleErrorsCount_other": "Could not check {{count}} repositories ({{names}}). Some workspaces may be missing. Refresh to try again.", + "multipleErrorsWithMore_one": "Could not check {{count}} repository ({{names}}, +{{moreCount}} more). Some workspaces may be missing. Refresh to try again.", + "multipleErrorsWithMore_other": "Could not check {{count}} repositories ({{names}}, +{{moreCount}} more). Some workspaces may be missing. Refresh to try again.", + "readyCount_one": "{{count}} workspace found.", + "readyCount_other": "{{count}} workspaces found." + } + }, "delete": { "unsavedEdits": { "blocked_one": "Save or close {{count}} unsaved file in {{name}} first", @@ -1343,8 +1569,22 @@ "count_other": "{{count}} running terminals" } }, + "workspace": { + "links": { + "linkedCount_one": "{{count}} linked", + "linkedCount_other": "{{count}} linked", + "showLinked_one": "Show {{count}} linked review or task", + "showLinked_other": "Show {{count}} linked reviews and tasks" + } + }, "workspaceOptions": { "activeFilterCount_one": "{{count}} filter", "activeFilterCount_other": "{{count}} filters" + }, + "workspaceSpace": { + "compact": { + "linkedAndScannedCount_one": "{{size}} in linked worktrees · {{count}} workspace", + "linkedAndScannedCount_other": "{{size}} in linked worktrees · {{count}} workspaces" + } } } diff --git a/src/renderer/src/i18n/locales/de.json b/src/renderer/src/i18n/locales/de.json index 8cae442ccd5..6cc3a9b7e2a 100644 --- a/src/renderer/src/i18n/locales/de.json +++ b/src/renderer/src/i18n/locales/de.json @@ -2215,7 +2215,6 @@ "ba64270bdb": "Agenten konfigurieren", "ab63f25397": "Agenten-Einstellungen öffnen", "0c5d6a479c": "[Optional]", - "b5a0796911": "Verbinden", "dccd26d4e4": "Projekt auswählen", "d6b0a96f32": "Projekt hinzufügen", "969a8bff66": "Projekt", @@ -2276,7 +2275,8 @@ "runSetupNow": "Einrichtung jetzt ausführen", "runCommandsNow": "Befehle jetzt ausführen", "skipForNow": "Vorerst überspringen", - "skipCommands": "Befehle überspringen" + "skipCommands": "Befehle überspringen", + "connectProject": "{{name}} verbinden" }, "NewWorkspaceComposerModal": { "createWorktree": "Worktree erstellen", @@ -3772,21 +3772,23 @@ }, "drop": { "handler": { - "1e072f611e": "Hochladen von {{value0}} {{value1}} fehlgeschlagen.", "0c77693641": "Worktree noch nicht bereit — in Kürze erneut versuchen.", "ce8248b835": "Worktree-Pfad nicht verfügbar.", "internalTooManyPaths": "Die abgelegten Daten enthalten zu viele Pfade, um sie sicher in das Terminal einzufügen.", "internalPathsTooLarge": "Die Liste der abgelegten Pfade ist zu groß, um sie sicher in das Terminal einzufügen.", "internalHostMismatch": "Dateien vom selben Host wie dieses Terminal ablegen.", - "b4cf68e889": "{{value0}} {{value1}} übersprungen.", "writeTimeout": "Ablegen der Datei abgebrochen: Das Terminal hat den Pfad nicht vor Ablauf des Sicherheitszeitlimits angenommen.", "writeRejected": "Ablegen der Datei abgebrochen: Das Terminal konnte den Pfad nicht annehmen.", - "skippedSymlinkSingular": "Es wurde {{count}} symbolischer Link übersprungen.", - "skippedSymlinkPlural": "Es wurden {{count}} symbolische Links übersprungen.", - "uploadingFileSingular": "{{count}} Datei wird in die Laufzeitumgebung hochgeladen…", - "uploadingFilePlural": "{{count}} Dateien werden in die Laufzeitumgebung hochgeladen…", - "uploadingFileToRemoteSingular": "{{count}} Datei wird auf den Remote-Host hochgeladen…", - "uploadingFileToRemotePlural": "{{count}} Dateien werden auf den Remote-Host hochgeladen…" + "skippedSymlinks_one": "{{count}} symbolischer Link übersprungen.", + "skippedSymlinks_other": "{{count}} symbolische Links übersprungen.", + "skippedItems_one": "{{count}} Element übersprungen.", + "skippedItems_other": "{{count}} Elemente übersprungen.", + "failedUploads_one": "{{count}} Datei konnte nicht hochgeladen werden.", + "failedUploads_other": "{{count}} Dateien konnten nicht hochgeladen werden.", + "uploadingFiles_one": "{{count}} Datei wird in die Laufzeitumgebung hochgeladen…", + "uploadingFiles_other": "{{count}} Dateien werden in die Laufzeitumgebung hochgeladen…", + "uploadingFilesToRemote_one": "{{count}} Datei wird auf den Remote-Host hochgeladen…", + "uploadingFilesToRemote_other": "{{count}} Dateien werden auf den Remote-Host hochgeladen…" } } }, @@ -3904,10 +3906,15 @@ "sessionQueued": "Sitzung eingereiht", "openSupportedWorkspace": "Vor dem Fortsetzen einer Sitzung einen Arbeitsbereich öffnen.", "sessionHostMismatchUnsupported": "Diese Sitzung gehört zu einem anderen Host. Auf einem Arbeitsbereich desselben Hosts ablegen.", - "oldPayload": "Diese Sitzung wurde aus einem älteren Orca-Fenster gezogen. Stattdessen über den Sitzungsverlauf fortsetzen." + "oldPayload": "Diese Sitzung wurde aus einem älteren Orca-Fenster gezogen. Stattdessen über den Sitzungsverlauf fortsetzen.", + "legacyDragCannotRetarget": "Diese Sitzung wurde aus einem älteren Orca-Fenster gezogen. Orca kann sie daher nicht dem ausgewählten Codex-Konto zuordnen. Die Sitzung stattdessen über den Sitzungsverlauf fortsetzen.", + "legacyDragPrepareFailed": "Orca konnte diese ältere Codex-Sitzung nicht vorbereiten. Das Fortsetzen erneut versuchen." }, "TabGroupDropOverlay": { "paneColumnLabel": "Neuer Teilbereich" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "Die gekoppelte Laufzeitumgebung konnte den verwalteten Browser-Tab nicht duplizieren." } }, "bar": { @@ -4102,6 +4109,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "Host nicht verfügbar", "7c129b08ff": "Host wird geladen…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "Diese Sitzung kann nicht in der CLI geöffnet werden." + }, + "tabCreateEntry": { + "fileNotFound": "Datei nicht gefunden: {{path}}", + "cannotOpenDirectory": "Verzeichnis kann nicht geöffnet werden: {{path}}", + "parentNotDirectory": "Die Datei kann nicht erstellt werden, da {{path}} kein Verzeichnis ist.", + "fileNoLongerExists": "Datei existiert nicht mehr: {{path}}", + "noActiveWorktree": "Kein aktiver Worktree." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "Dateipfade dürfen keine Steuerzeichen enthalten.", + "enterAUrlOrFilePath": "Eine URL oder einen Dateipfad eingeben.", + "homeRelativePathsAreNotSupported": "Pfade relativ zum Benutzerverzeichnis werden hier nicht unterstützt.", + "enterAFilePathNotA": "Einen Dateipfad eingeben, keinen Verzeichnispfad.", + "enterAnAbsoluteFilePath": "Einen absoluten Dateipfad eingeben.", + "enterAnAbsolutePathForThis": "Einen absoluten Pfad für diesen Computer eingeben.", + "enterARelativeFilePath": "Einen relativen Dateipfad eingeben.", + "windowsDrivePathsAreNotSupported": "Windows-Laufwerkspfade werden hier nicht unterstützt.", + "uncPathsAreNotSupportedHere": "UNC-Pfade werden hier nicht unterstützt.", + "filePathsCannotContainEmptySegments": "Dateipfade dürfen keine leeren Segmente enthalten.", + "filePathsCannotContainDotSegments": "Dateipfade dürfen keine Segmente . oder .. enthalten.", + "filePathsCannotContainTildeSegments": "Dateipfade dürfen keine Segmente ~ enthalten." } } }, @@ -4129,15 +4160,16 @@ "4ebf90c12e": "Keine externen Ports erkannt", "7dac3ecc9d": "Externe Ports", "95495019ed": "Port-Scan auf {{value0}} nicht verfügbar: {{value1}}", - "a8e4bdb412": " · {{value0}} extern", "c22ea609fd": "Ports", - "ca41be2802": "Ports — {{value0}} {{value1}} im Arbeitsbereich{{value2}}", - "b8bc3e420a": "Ports, {{value0}} {{value1}} im Arbeitsbereich", "3a87d54dfb": "Keine Ports im Arbeitsbereich erkannt", "c174bbbfed": "Ports im Arbeitsbereich werden gesucht…", - "8caaa86e9a": "Ports", - "45834a9ace": "Port", - "2b84c4d11f": "{{value0}} im Arbeitsbereich · {{value1}} extern" + "2b84c4d11f": "{{value0}} im Arbeitsbereich · {{value1}} extern", + "portsAria_one": "Ports, {{count}} Port im Arbeitsbereich", + "portsAria_other": "Ports, {{count}} Ports im Arbeitsbereich", + "portsTooltipWithExternal_one": "Ports — {{count}} Port im Arbeitsbereich · {{externalCount}} extern", + "portsTooltipWithExternal_other": "Ports — {{count}} Ports im Arbeitsbereich · {{externalCount}} extern", + "portsTooltip_one": "Ports — {{count}} Port im Arbeitsbereich", + "portsTooltip_other": "Ports — {{count}} Ports im Arbeitsbereich" }, "ResourceUsageStatusSegment": { "946d9f94d0": "Abbrechen", @@ -4146,7 +4178,6 @@ "27a74f91f0": "Derzeit ist nichts aktiv", "298f4be7f2": "CPU", "2aa2de6cb9": "Name", - "30ff2c3c31": "{{value0}} verwaistes Terminal", "1fedf94eae": "Gesamte CPU-Auslastung. Werte über 100% bedeuten, dass mehrere Kerne gleichzeitig arbeiten.", "e7cf14ec78": "Terminal-Sitzungen sind nicht verfügbar. Die Liste ist möglicherweise veraltet.", "93b0de3c21": "Neu starten", @@ -4176,10 +4207,11 @@ "d406915b78": "Renderer", "81cd37af99": "Hauptprozess", "fa6d36758d": "Sitzung {{value0}} zwangsweise beenden", - "b8f4a2c1d0e3": "{{value0}} verwaiste Terminals", - "c7e3b1a0d9f2": "{{value0}} verwaistes Terminal beenden", - "d8f4c2b1e0a3": "{{value0}} verwaiste Terminals beenden", - "e9a5d3c2b1f0": "{{value0}} zwangsweise beenden?" + "e9a5d3c2b1f0": "{{value0}} zwangsweise beenden?", + "endOrphanTerminals_one": "{{count}} verwaistes Terminal beenden", + "endOrphanTerminals_other": "{{count}} verwaiste Terminals beenden", + "orphanCount_one": "{{count}} verwaistes Terminal", + "orphanCount_other": "{{count}} verwaiste Terminals" }, "SshStatusSegment": { "3ad70e0365": "Remote-Hosts verwalten…", @@ -4239,10 +4271,6 @@ "3325d996cb": "Ratenlimits aktualisieren", "cd9d7b40ff": "{{value0}} Sitzungen neu starten", "6cd6650b4c": "Sitzung neu starten", - "1446d0d8a0": "{{value0}} Codex-Sitzungen verwenden noch das alte Konto.", - "605901a495": "1 Codex-Sitzung verwendet noch das alte Konto", - "5e5f9f5160": "1 Ratenlimit-Zurücksetzung verfügbar", - "5ecae9197c": "{{value0}} Ratenlimit-Zurücksetzungen verfügbar", "25d8bbde69": "Zurücksetzung wird verwendet…", "e159fc1fd7": "Jetzt zurücksetzen", "972a1ff497": "Codex-Limits zurücksetzen?", @@ -4259,7 +4287,11 @@ "codexSignInError": "Anmeldung bei Codex fehlgeschlagen. Bitte erneut versuchen.", "cursorUsageMenu": "Cursor-Nutzung", "hiddenUsageProviders": "Außerdem: {{value0}}", - "zcodeUsageMenu": "ZCode-Nutzung" + "zcodeUsageMenu": "ZCode-Nutzung", + "rateLimitResetsAvailable_one": "{{count}} Ratenlimit-Zurücksetzung verfügbar", + "rateLimitResetsAvailable_other": "{{count}} Ratenlimit-Zurücksetzungen verfügbar", + "staleCodexSessions_one": "{{count}} Codex-Sitzung verwendet noch das alte Konto.", + "staleCodexSessions_other": "{{count}} Codex-Sitzungen verwenden noch das alte Konto." }, "StatusBarUsageEmptyCta": { "828c764a79": "Konto verbinden", @@ -4276,13 +4308,14 @@ "SkillUpdateStatusSegment": { "runningLabel": "Skills werden aktualisiert", "runningOne": "{{value0}} wird aktualisiert…", - "runningMany": "{{value0}} Skills werden aktualisiert…", "runningAria": "Skills werden aktualisiert. Zum Öffnen der Details klicken.", "successLabel": "Skills aktualisiert", "successAria": "Skills wurden aktualisiert. Zum Öffnen der Details klicken.", "attentionAria": "Einige Skill-Updates wurden übersprungen. Zum Öffnen der Details klicken.", "attentionLabel": "Skills erfordern Aufmerksamkeit", - "attentionTooltip": "Einige Skill-Updates wurden übersprungen — für Details klicken" + "attentionTooltip": "Einige Skill-Updates wurden übersprungen — für Details klicken", + "runningSkills_one": "{{count}} Skill wird aktualisiert…", + "runningSkills_other": "{{count}} Skills werden aktualisiert…" }, "UpdateStatusSegment": { "5cd13105a3": "Update fehlgeschlagen. Zum Ausklappen klicken.", @@ -4324,11 +4357,8 @@ "6f8f6a6b04": "Arbeitsbereiche filtern", "5caccea440": "Ausgewählte löschen", "e4a12c455b": "Leeren", - "0cb1501ccf": "freigebbar", - "65402b7192": "ausgewählt", "43171f3e60": "Arbeitsbereiche", "09960d86bd": "Gescannt", - "63efebe0e6": "{{value0}} {{value1}} aus „Speicherplatz“ entfernt.", "eee5240810": "Arbeitsbereiche gelöscht", "9afc97f9a3": "Arbeitsbereich gelöscht", "792a214457": "Arbeitsbereich löschen", @@ -4336,7 +4366,6 @@ "9155381019": "Partiell", "f39d291997": "Auswählen", "16988df079": "Keine Dateien gefunden.", - "b25c2c1086": "Einträge auf oberster Ebene", "d3f9c69ddc": "Zoomen", "ef890d31b9": "Alle", "c28643d3da": "Zum Arbeitsbereich wechseln", @@ -4375,8 +4404,15 @@ "c5135e7e4a": "Die Größen der Arbeitsbereiche werden ermittelt. Diese Seite kann verlassen werden.", "0990a63160": "Noch keine Größen von Arbeitsbereichen ermittelt.", "977bdf9a36": "Keine Einträge auf oberster Ebene vorhanden.", - "131662ac65": "{{value0}} geöffnet", - "0d1c78d749": "{{value0}} auswählen" + "0d1c78d749": "{{value0}} auswählen", + "removedFromSpace_one": "{{count}} Arbeitsbereich aus „Speicherplatz“ entfernt.", + "removedFromSpace_other": "{{count}} Arbeitsbereiche aus „Speicherplatz“ entfernt.", + "topLevelItems_one": "{{formattedCount}} Eintrag auf oberster Ebene", + "topLevelItems_other": "{{formattedCount}} Einträge auf oberster Ebene", + "selectedCount_one": "{{count}} ausgewählt", + "selectedCount_other": "{{count}} ausgewählt", + "reclaimableSize": "{{size}} freigebbar", + "scanning": "Scan läuft" }, "ports": { "status": { @@ -4390,7 +4426,8 @@ "e4a709548c": "Ports konnten nicht aktualisiert werden", "acdb6df590": "Prozess auf {{value0}} beendet", "480d8f2347": "{{value0}} kopiert", - "b854ec9ff5": "Browser konnte nicht geöffnet werden" + "b854ec9ff5": "Browser konnte nicht geöffnet werden", + "unknownProcess": "Unbekannter Prozess" } } } @@ -4419,8 +4456,6 @@ "7ad719c4bf": "Begrenzt", "e740f92596": "Aktualisierung fehlgeschlagen", "8418ec448d": "Die Nutzung von {{value0}} konnte nicht aktualisiert werden. Agentensitzungen sind möglicherweise weiterhin angemeldet.", - "45198c7d95": "1 Ratenlimit-Zurücksetzung verfügbar", - "bce421cba3": "{{value0}} Ratenlimit-Zurücksetzungen verfügbar", "7ec6e030a0": "Nächste läuft jetzt ab", "d1e442a9e5": "Läuft jetzt ab", "6cf9eaed10": "Nächste läuft in {{value0}} ab", @@ -4469,7 +4504,14 @@ "label": "Wird aktualisiert, wenn Claude läuft", "message": "Die Claude-Nutzung wird beim nächsten Start von Claude aktualisiert." } - } + }, + "justNow": "gerade eben", + "minutesAgo": "vor {{minutes}} Min.", + "hoursAgo": "vor {{hours}} Std.", + "updatedAgo": "Aktualisiert {{time}}", + "notYetUpdated": "Noch nicht aktualisiert", + "rateLimitResetsAvailable_one": "{{count}} Ratenlimit-Zurücksetzung verfügbar", + "rateLimitResetsAvailable_other": "{{count}} Ratenlimit-Zurücksetzungen verfügbar" }, "SshTargetStatusRow": { "sshHost": "SSH-Host" @@ -4504,12 +4546,12 @@ "RemoteServerUpdateStatusSegment": { "updating": "{{value0}}/{{value1}} werden aktualisiert", "updatingTooltip": "Updates für entfernte Orca-Server werden ausgeführt", - "failed": "{{value0}} Server-Updates fehlgeschlagen", "failedTooltip": "Updates für entfernte Orca-Server öffnen, um sie zu prüfen und erneut zu versuchen", - "updated": "{{value0}} Server aktualisiert", "updatedTooltip": "Updates für entfernte Orca-Server abgeschlossen", - "failedOne": "1 Server-Update fehlgeschlagen", - "updatedOne": "1 Server aktualisiert" + "failedCount_one": "{{count}} Serveraktualisierung fehlgeschlagen", + "failedCount_other": "{{count}} Serveraktualisierungen fehlgeschlagen", + "updatedCount_one": "{{count}} Server aktualisiert", + "updatedCount_other": "{{count}} Server aktualisiert" }, "resource": { "memory": { @@ -4517,7 +4559,10 @@ "workingSetDescription": "Summe des Arbeitssatzes (WS): Speicherseiten, die sich derzeit im RAM befinden. Gemeinsam genutzte Seiten können in mehreren Prozessen erscheinen. Speicher, den Windows ausgelagert hat, wird hier nicht mitgezählt.", "privateBytesDescription": "Summe der privaten Bytes: von diesen Prozessen zugesicherter Speicher, unabhängig davon, ob er sich im RAM befindet oder ausgelagert ist. Der Host rechnet diesen Wert auf sein Zusicherungslimit an. Daher steigt er weiter, während der obige Arbeitssatz durch Auslagerung schrumpft.", "footprintDescription": "Summe des Speicherbedarfs, derselbe Wert wie in Activity Monitor: Speicher, der den einzelnen Prozessen gehört, einschließlich Grafikspeicher. Gemeinsam genutzte Speicherseiten werden nicht doppelt gezählt.", - "rssDescription": "Summe des residenten Speichers (RSS). Gemeinsam genutzte oder mehrfach eingeblendete Speicherseiten können in mehreren Prozessen erscheinen." + "rssDescription": "Summe des residenten Speichers (RSS). Gemeinsam genutzte oder mehrfach eingeblendete Speicherseiten können in mehreren Prozessen erscheinen.", + "memColumn": "Speicher", + "memorySummary": "Σ Arbeitsspeicher", + "privateSummary": "Σ Privat" } }, "manager": { @@ -4566,29 +4611,29 @@ "repair": "Erneut koppeln…" }, "NativeChatResumeStatusSegment": { - "labelOne": "1 Chat zum Fortsetzen", - "label": "{{value0}} Chats zum Fortsetzen", - "ariaLabelOne": "1 Chat zum Fortsetzen verfügbar", - "ariaLabel": "{{value0}} Chats zum Fortsetzen verfügbar", "tooltip": "Unterbrochene Chats öffnen, die fortgesetzt werden können", - "failedLabelOne": "1 Chat konnte nicht fortgesetzt werden", - "failedLabel": "{{value0}} Chats konnten nicht fortgesetzt werden", - "failedAriaOne": "1 Chat konnte nicht fortgesetzt werden. Für Details klicken.", - "failedAria": "{{value0}} Chats konnten nicht fortgesetzt werden. Für Details klicken.", "failedTooltip": "Chats, die Orca nach dem Neustart nicht fortsetzen konnte. Für Details klicken.", - "checkLabelOne": "1 Chat zu prüfen", - "checkLabel": "{{value0}} Chats zu prüfen", - "checkAriaOne": "1 Chat nach dem Fortsetzen zu prüfen. Für Details klicken.", - "checkAria": "{{value0}} Chats nach dem Fortsetzen zu prüfen. Für Details klicken.", "checkTooltip": "Chats, die Orca nach dem Neustart nicht fortsetzen konnte oder deren Fortsetzung nicht bestätigt werden konnte. Für Details klicken.", "resumingTooltip": "Unterbrochene Chats werden wiederhergestellt und zum Fortfahren aufgefordert…", "resumingProgressLabel": "Chats werden fortgesetzt: {{value0}}/{{value1}}", "resumingProgressAria": "Chats werden fortgesetzt, {{value0}} von {{value1}} abgeschlossen. Zum Öffnen der Details klicken.", - "resumedLabelOne": "1 Chat fortgesetzt", - "resumedLabel": "{{value0}} Chats fortgesetzt", - "resumedAriaOne": "1 Chat fortgesetzt. Zum Anzeigen klicken.", - "resumedAria": "{{value0}} Chats fortgesetzt. Zum Anzeigen klicken.", - "resumedTooltip": "Chats, die Orca nach dem Neustart fortgesetzt hat. Zum Anzeigen klicken." + "resumedTooltip": "Chats, die Orca nach dem Neustart fortgesetzt hat. Zum Anzeigen klicken.", + "chatsFailedLabel_one": "{{count}} Chat konnte nicht fortgesetzt werden", + "chatsFailedLabel_other": "{{count}} Chats konnten nicht fortgesetzt werden", + "chatsFailedAria_one": "{{count}} Chat konnte nicht fortgesetzt werden. Für Details klicken.", + "chatsFailedAria_other": "{{count}} Chats konnten nicht fortgesetzt werden. Für Details klicken.", + "resumedLabelCount_one": "{{count}} Chat fortgesetzt", + "resumedLabelCount_other": "{{count}} Chats fortgesetzt", + "resumedAriaCount_one": "{{count}} Chat fortgesetzt. Zum Anzeigen klicken.", + "resumedAriaCount_other": "{{count}} Chats fortgesetzt. Zum Anzeigen klicken.", + "checkLabelCount_one": "{{count}} Chat zu prüfen", + "checkLabelCount_other": "{{count}} Chats zu prüfen", + "checkAriaCount_one": "{{count}} Chat nach dem Fortsetzen zu prüfen. Für Details klicken.", + "checkAriaCount_other": "{{count}} Chats nach dem Fortsetzen zu prüfen. Für Details klicken.", + "labelCount_one": "{{count}} Chat zum Fortsetzen", + "labelCount_other": "{{count}} Chats zum Fortsetzen", + "ariaLabelCount_one": "{{count}} Chat kann fortgesetzt werden", + "ariaLabelCount_other": "{{count}} Chats können fortgesetzt werden" }, "StatusBarUsageChangeNotices": { "compactTitle": "Nutzungsanzeige ist jetzt kompakt", @@ -4597,6 +4642,81 @@ "usageUnitLabel": { "used": "Verbraucht", "remaining": "Verbleibend" + }, + "mergeSnapshotAndSessions": { + "unattributed": "Nicht zugeordnet" + }, + "resourceSessionLabels": { + "terminalNumber": "Terminal {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "Sitzung {{id}}", + "unknownSession": "(unbekannte Sitzung)", + "unknown": "unbekannt" + }, + "runtimeTargets": { + "wslDefault": "WSL-Standard" + }, + "floatingWorkspace": { + "minimize": "Schwebenden Arbeitsbereich minimieren", + "show": "Schwebenden Arbeitsbereich anzeigen" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "Der Besitzer des Arbeitsbereichs ist nicht mehr verfügbar" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "Mit Upstream synchronisiert", + "aheadAndBehind": "{{ahead}} voraus, {{behind}} zurück", + "ahead": "{{ahead}} voraus", + "behind": "{{behind}} zurück", + "activeAgents_one": "{{count}} aktiver Agent", + "activeAgents_other": "{{count}} aktive Agenten", + "completedAgents_one": "{{count}} abgeschlossener Agent", + "completedAgents_other": "{{count}} abgeschlossene Agenten", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_one": "{{count}} abgeschlossener Agent beibehalten", + "completedAgentsRetained_other": "{{count}} abgeschlossene Agenten beibehalten", + "noTrackedAgents": "Keine erfassten Agenten aktiv", + "noTerminalTabs": "Keine Terminal-Tabs", + "liveTerminalTabs_one": "{{live}} aktiv von {{count}} Terminal-Tab", + "liveTerminalTabs_other": "{{live}} aktiv von {{count}} Terminal-Tabs", + "gitStatusUnavailable": "Git-Status nicht verfügbar: {{error}}", + "gitStatusNotLoaded": "Git-Status noch nicht geladen", + "noUncommittedFiles": "Keine Dateien mit nicht committeten Änderungen", + "changedFiles_one": "{{count}} geänderte Datei", + "changedFiles_other": "{{count}} geänderte Dateien", + "noEditorFiles": "Keine Dateien im Editor geöffnet", + "editorFilesOpen_one": "{{count}} Datei im Editor geöffnet", + "editorFilesOpen_other": "{{count}} Dateien im Editor geöffnet", + "dirtyOfOpen": "{{dirty}} von {{open}}", + "dirtyEditorBuffers_one": "{{count}} ungespeicherter Editor-Puffer", + "dirtyEditorBuffers_other": "{{count}} ungespeicherte Editor-Puffer", + "openFiles_one": "{{count}} geöffnete Datei", + "openFiles_other": "{{count}} geöffnete Dateien", + "activeWorkspace": "Dies ist der aktive Arbeitsbereich", + "mainWorktreeProtected": "Der Haupt-Worktree ist geschützt", + "workspaceProtected": "Der Arbeitsbereich ist geschützt", + "canDeleteAfterReview": "Kann nach Prüfung gelöscht werden", + "noLinkedIssue": "Kein verknüpftes Issue", + "noLinkedReview": "Kein verknüpfter PR", + "browserTabsOpen_one": "{{count}} Browser-Tab geöffnet", + "browserTabsOpen_other": "{{count}} Browser-Tabs geöffnet" + }, + "workspaceSpaceFormat": { + "cancellingScan": "Scan wird abgebrochen", + "currentWorkspaces": "Arbeitsbereiche", + "scanningWorkspaces": "{{scanned}} von {{total}} werden gescannt · {{current}}", + "scanningRepos_one": "{{scanned}} von {{count}} Repo wird gescannt · {{current}}", + "scanningRepos_other": "{{scanned}} von {{count}} Repos werden gescannt · {{current}}", + "scanningSizes": "Größen der Arbeitsbereiche werden ermittelt", + "status": { + "scanned": "Gescannt", + "missing": "Fehlt", + "noAccess": "Kein Zugriff", + "unavailable": "Nicht verfügbar", + "failed": "Fehlgeschlagen" + }, + "mainWorktree": "Haupt-Worktree", + "detached": "losgelöst" } } }, @@ -5372,12 +5492,10 @@ "670864ab52": "Lokaler Branch {{value0}} wird aktuell gehalten", "84c62e4d7f": "{{value0}} konnte nicht aktiviert werden", "442552c656": "Einstellungen öffnen und erneut versuchen.", - "f15fd80989": "Der neue Worktree ist aktuell, aber der lokale Branch {{value0}} liegt um {{value1}} {{value2}} zurück, sodass KI-Diffs möglicherweise einen veralteten Verlauf zum Vergleich verwenden. Orca kann ihn automatisch aktuell halten. Jederzeit änderbar in", - "3d260e1a5d": "Einstellungen › {{value0}}", "34a03a6565": "{{value0}} aktuell halten", "4a18052018": "Lokaler Branch {{value0}} liegt hinter {{value1}}", - "commit": "Commit", - "commits": "Commits" + "staleLocalBranch_one": "Der neue Worktree ist aktuell, aber der lokale Branch {{branch}} liegt {{count}} Commit zurück. KI-Diffs vergleichen daher möglicherweise mit einem veralteten Verlauf. Orca kann ihn automatisch aktuell halten. Dies lässt sich jederzeit unter Einstellungen › {{setting}} ändern", + "staleLocalBranch_other": "Der neue Worktree ist aktuell, aber der lokale Branch {{branch}} liegt {{count}} Commits zurück. KI-Diffs vergleichen daher möglicherweise mit einem veralteten Verlauf. Orca kann ihn automatisch aktuell halten. Dies lässt sich jederzeit unter Einstellungen › {{setting}} ändern" } } } @@ -5431,12 +5549,11 @@ "39d51212cc": "Gruppenname", "aa0247680d": "Nein, separat importieren", "a0bc4d1f8e": "Ja, als Gruppe importieren", - "8401a7a0d0": "1 Repository", - "d4f1df62ef": "{{value0}} Repositorys", - "b4263a2ac4": "{{value0}} in {{value1}} gefunden.", "24eda6c8b2": "Suche läuft… {{value0}}", "6149d5203f": "Keine Repositorys ausgewählt. Stattdessen den übergeordneten Ordner öffnen, um Editor, Terminal und Suche ohne Git-Funktionen zu verwenden.", - "e52454b7f6": "Als Ordner öffnen" + "e52454b7f6": "Als Ordner öffnen", + "foundRepositories_one": "{{count}} Repository in {{path}} gefunden.", + "foundRepositories_other": "{{count}} Repositorys in {{path}} gefunden." }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5505,9 +5622,8 @@ "eab8b45238": "Fehler kopieren", "a23b22d16f": "Kopiert", "74fc00776f": "Fehlerdetails", - "3afcad0497": "anhand der ersten Agentennachricht.", - "ff62a18580": "Orca konnte keinen Branch-Namen generieren für", - "ca3b225195": "Automatische Branch-Benennung fehlgeschlagen" + "ca3b225195": "Automatische Branch-Benennung fehlgeschlagen", + "couldNotGenerateBranchName": "Orca konnte aus der ersten Agentennachricht keinen Branch-Namen für {{name}} erzeugen." }, "CreateProjectLocationField": { "95548e33bf": "Übergeordneten Ordner auswählen…", @@ -5527,37 +5643,38 @@ "2b56b35f53": "Dies lässt sich in den Einstellungen ändern.", "dd3a45bbbd": "Diese Bestätigung wird beim nächsten Mal übersprungen.", "fc23c4cbdf": "Arbeitsbereich löschen", - "86f0ae1257": "Arbeitsbereiche löschen" + "86f0ae1257": "Arbeitsbereiche löschen", + "removeFolderProjectInstead": "Das Ordnerprojekt entfernen, statt diesen Arbeitsbereich zu löschen.", + "gitBlocksMainWorktree": "Git erlaubt das Entfernen des Haupt-Worktrees nicht." }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "Geladene Pfade anzeigen", "loadedPathsNotice": "Geladene Pfade sind möglicherweise unvollständig oder veraltet.", "loadedChangedPaths": "Geladene geänderte Pfade", "unresolvedConflict": "Ungelöster Konflikt", - "moreLoadedPaths": "und {{value0}} weitere geladene Pfade", "changeCount_one": "{{count}} nicht committete oder nicht verfolgte Änderung", "changeCount_other": "{{count}} nicht committete oder nicht verfolgte Änderungen", - "changes": "Nicht committete oder nicht verfolgte Änderungen" + "changes": "Nicht committete oder nicht verfolgte Änderungen", + "moreLoadedPaths_one": "und {{count}} weiterer geladener Pfad", + "moreLoadedPaths_other": "und {{count}} weitere geladene Pfade" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "weitere", "a940f3c96e": "Untergeordnete Arbeitsbereiche werden gelöscht", - "29b98bf9cd": "Beim Löschen dieses Arbeitsbereichs werden auch {{value0}} untergeordnete Arbeitsbereiche gelöscht.", - "66798cc6a2": "Beim Löschen dieses Arbeitsbereichs wird auch 1 untergeordneter Arbeitsbereich gelöscht." + "alsoDeletesChildren_one": "Beim Löschen dieses Arbeitsbereichs wird auch {{count}} untergeordneter Arbeitsbereich gelöscht.", + "alsoDeletesChildren_other": "Beim Löschen dieses Arbeitsbereichs werden auch {{count}} untergeordnete Arbeitsbereiche gelöscht.", + "moreChildren_one": "+{{count}} weiterer", + "moreChildren_other": "+{{count}} weitere" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "Nicht erneut fragen" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(das ursprüngliche Klonverzeichnis).", - "c4f96a6e18": "Haupt-Worktree", - "e3be9eba15": "Dies ist der" + "mainWorktreeNotice": "Dies ist der Haupt-Worktree (das ursprüngliche Klonverzeichnis)." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "In Worktree-Liste anzeigen", "ad99f4eea9": "Ausgeblendet lassen", "9f4f14e821": "Dies lässt sich später im Projektmenü ändern.", - "b2bc47c080": "weitere Speicherorte", "b47ba1a9d2": "Vorschau für {{value0}}", "2251d41ebb": "Ausgeblendete Worktree-Gruppen", "5a9688802a": "{{value0}} weitere anzeigen", @@ -5571,7 +5688,9 @@ "keepHiddenAriaLabel_one": "{{count}} entdeckten Worktree für {{repo}} ausgeblendet lassen; über das Projektmenü wieder einblenden", "keepHiddenAriaLabel_other": "{{count}} entdeckte Worktrees für {{repo}} ausgeblendet lassen; über das Projektmenü wieder einblenden", "keepHiddenTooltip": "Ausgeblendet lassen - über das Projektmenü wieder einblenden", - "repoOnHost": "{{repo}} auf {{host}}" + "repoOnHost": "{{repo}} auf {{host}}", + "moreLocations_one": "+ {{count}} weiterer Speicherort", + "moreLocations_other": "+ {{count}} weitere Speicherorte" }, "NonGitFolderDialog": { "e52454b7f6": "Als Ordner öffnen", @@ -5605,20 +5724,24 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "Abbrechen", - "69f5cb97d0": "Löschen", "591f330288": "Projektgruppe löschen", "2c14ce677a": "Wird gelöscht…", "0e0e6764af": "Enthaltene Projekte", - "ad407c2d55": "weitere", - "removeContainedProjectSingular": "1 enthaltenes Projekt entfernen", - "removeContainedProjectPlural": "{{value0}} enthaltene Projekte entfernen", "55f75628c0": "Projektordner auf dem Datenträger werden nicht gelöscht.", - "fec7e9c8ae": "Gruppe löschen" + "fec7e9c8ae": "Gruppe löschen", + "removeContainedProjects_one": "{{count}} enthaltenes Projekt entfernen", + "removeContainedProjects_other": "{{count}} enthaltene Projekte entfernen", + "deleteGroupDescription": "{{name}} löschen.", + "moreProjects_one": "+{{count}} weiteres", + "moreProjects_other": "+{{count}} weitere" }, "ProjectGroupNameDialog": { "d99a034073": "Abbrechen", "83dfbc5313": "Gruppenname", - "4a64e78822": "Wird gespeichert…" + "4a64e78822": "Wird gespeichert…", + "defaultGroupName": "Gruppe {{name}}", + "create": "Erstellen", + "rename": "Umbenennen" }, "RemoteFileBrowser": { "2300612806": "Zum Filtern tippen oder einen Pfad eingeben…", @@ -5630,7 +5753,9 @@ "largeInputNoMatches": "Keine Treffer für diese lange Eingabe", "entriesLabel": "Ordnereinträge", "inputLabel": "Filter oder Pfad", - "fileHint": "Dateien können nicht als Projekt geöffnet werden" + "fileHint": "Dateien können nicht als Projekt geöffnet werden", + "invalidPathRepeatedSeparators": "Ungültiger Pfad: wiederholte Trennzeichen", + "invalidPathControlCharacters": "Ungültiger Pfad: Steuerzeichen sind nicht erlaubt" }, "SleepTwinWorkspaceDialog": { "title": "Arbeitsbereich in Ruhezustand versetzen", @@ -5660,11 +5785,10 @@ "70715947fb": "Setup-Skript darf nicht leer sein", "888b83bf78": "Setup-Skript konnte nicht gespeichert werden", "a49196d538": "Wird ausgeführt, wenn Orca einen neuen Worktree erstellt.", - "d9f2db2738": "Einstellungen dieses Projekts", - "a5bb8c5135": "Gespeichert in den", "savedSetupCommand": "Setup-Befehl gespeichert.", "savedWithSkippedFields_one": "{{count}} nicht unterstütztes Feld übersprungen. Setup-Befehl gespeichert.", - "savedWithSkippedFields_other": "{{count}} nicht unterstützte Felder übersprungen. Setup-Befehl gespeichert." + "savedWithSkippedFields_other": "{{count}} nicht unterstützte Felder übersprungen. Setup-Befehl gespeichert.", + "savedInProjectSettings": "In den Einstellungen dieses Projekts gespeichert" }, "SetupScriptPromptCardViews": { "96a7f4198c": "Lokales Setup speichern", @@ -5672,20 +5796,17 @@ "31b8b01a45": "Einstellungen", "4a98f907ae": "Erneut versuchen", "0a98169776": "Einen Setup-Befehl hinzufügen, der ausgeführt wird, wenn Orca neue Worktrees erstellt.", - "8349e3fa4c": ". Speichern, um ihn für neue Worktrees auszuführen.", - "b56d1322f7": "Setup-Befehl gefunden in", "aef6c0a213": "Den erkannten Befehl speichern, damit er bei jeder Worktree-Erstellung durch Orca ausgeführt wird.", - "660cdc17f8": "für die Einrichtung. Einen lokalen Befehl hinzufügen oder die Quelle in den Einstellungen ändern.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "Dieses Repo ignoriert geteilte Setup-Skripte aus", "0155fb9ed3": "Das Setup-Skript dieses Repos konnte gerade nicht überprüft werden.", "eefa756190": "Manuell konfigurieren", "ca4efcbc25": "Speichern", - "d02e6a42b1": "Erkannt in", "fdbc6cb064": "Erkanntes Setup-Skript", "7275f674cc": "Erkanntes Setup", "822ff300ad": "Ausblenden", - "5bfd5c8779": "Setup-Skripte ausblenden" + "5bfd5c8779": "Setup-Skripte ausblenden", + "detectedFromSource": "In {{source}} erkannt", + "ignoresSharedSetup": "Dieses Repo ignoriert gemeinsame Einrichtungsskripte aus orca.yaml. Einen lokalen Befehl hinzufügen oder die Quelle in den Einstellungen ändern.", + "foundSetupCommandIn": "Ein Einrichtungsbefehl wurde in {{source}} gefunden. Speichern, um ihn für neue Worktrees auszuführen." }, "SidebarFeedbackDialog": { "8bf619e4cf": "Abbrechen", @@ -5868,8 +5989,9 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "Schließen", "e1a34450fc": "Arbeitsbereiche nach Status organisieren und Arbeitsbereichskarten öffnen.", - "81870af08f": "ausgewählt", - "c6a77ab0f4": "Arbeitsbereichsübersicht" + "c6a77ab0f4": "Arbeitsbereichsübersicht", + "selectedCount_one": "{{count}} ausgewählt", + "selectedCount_other": "{{count}} ausgewählt" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "Zum Anheften hier ablegen, ohne den Status zu ändern.", @@ -5970,7 +6092,8 @@ "2931b42b09": "Status: Entwurf {{value0}}", "e888362def": "Status: Geschlossen", "f394b3e86e": "Status: Gemergt", - "af2b07bda5": "Status: {{value0}}" + "af2b07bda5": "Status: {{value0}}", + "checksStatus": "Checks: {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "Aktive Ports", @@ -5981,8 +6104,9 @@ "5d1a5d51bb": "Prozess auf {{value0}} beendet", "c89f290e25": "{{value0}} kopiert", "d1113f4660": "Browser konnte nicht geöffnet werden", - "fed49903c9": "{{value0}} {{value1}} aktiv", - "unknownProcess": "Unbekannter Prozess" + "unknownProcess": "Unbekannter Prozess", + "livePorts_one": "{{count}} aktiver Port", + "livePorts_other": "{{count}} aktive Ports" }, "WorktreeContextMenu": { "c39c37676a": "Eine Gruppe erstellen und dieses Projekt dorthin verschieben.", @@ -6027,7 +6151,6 @@ "f9dc6cc5d3": "Projektgruppe umbenennen", "370c6a55dd": "Filter zurücksetzen", "b7acbf038b": "Keine Arbeitsbereiche gefunden", - "0c6ee14f23": "Untergeordnet", "c83968f87f": "Projekt entfernen", "64e55f7f01": "Aus Gruppe entfernen", "4a08fb55f2": "In Gruppe verschieben", @@ -6040,12 +6163,7 @@ "4d7b73658c": "Gruppe umbenennen", "79465e9034": "Gruppenaktionen für {{value0}}", "bfbedc547b": "Worktrees", - "045a8aed48": "Untergeordnete", "bb85cd86ba": "Arbeitsbereich für {{value0}} erstellen", - "20bebf9c7f": "{{value0}} untergeordneten Arbeitsbereich anzeigen", - "c1f4a31623": "{{value0}} untergeordnete Arbeitsbereiche anzeigen", - "e97297cb75": "{{value0}} untergeordneten Arbeitsbereich ausblenden", - "0cd15956d4": "{{value0}} untergeordnete Arbeitsbereiche ausblenden", "bd37a57ac8": "Arbeitsbereich für {{value0}} erstellen", "b667b59632": "Einige Projekte konnten nicht aus Orca entfernt werden", "groupDeleteFailed": "Gruppe konnte nicht gelöscht werden", @@ -6056,8 +6174,14 @@ "sidebarRowMissing": "Ziel existiert nicht mehr", "failedUnnestWorkspace": "Unterordnung des Arbeitsbereichs konnte nicht aufgehoben werden", "hostRepairRequired": "Erneute Kopplung erforderlich", - "groupProjectsRemainedSingular": "{{remaining}} von {{count}} enthaltenem Projekt blieb nach dem Löschen der Gruppe erhalten.", - "groupProjectsRemainedPlural": "Verbleibende Projekte nach dem Löschen der Gruppe: {{remaining}} von {{count}}." + "showChildWorkspaces_one": "{{count}} untergeordneten Arbeitsbereich anzeigen", + "hideChildWorkspaces_one": "{{count}} untergeordneten Arbeitsbereich ausblenden", + "showChildWorkspaces_other": "{{count}} untergeordnete Arbeitsbereiche anzeigen", + "hideChildWorkspaces_other": "{{count}} untergeordnete Arbeitsbereiche ausblenden", + "childCount_one": "{{count}} untergeordneter Arbeitsbereich", + "childCount_other": "{{count}} untergeordnete Arbeitsbereiche", + "groupProjectsRemained_one": "Verbleibende Projekte aus der gelöschten Gruppe: {{remaining}} von {{count}}.", + "groupProjectsRemained_other": "Verbleibende Projekte aus der gelöschten Gruppe: {{remaining}} von {{count}}." }, "WorktreeMetaDialog": { "3db0a2a593": "Abbrechen", @@ -6121,7 +6245,6 @@ "d40d436fc2": "Sichtbarkeit der Worktrees konnte nicht aktualisiert werden. Erneut versuchen.", "unsupportedHost": "Dieser Host unterstützt keine quellenspezifische Worktree-Sichtbarkeit. Orca auf dem Host aktualisieren, um diese Einstellung zu ändern.", "search": "Ausgeblendete Worktrees suchen", - "searchPlaceholder": "{{value0}} Worktrees durchsuchen…", "noMatches": "Keine passenden Worktrees", "allShown": "Alle gefundenen Worktrees werden angezeigt", "noneFound": "Keine außerhalb von Orca erstellten Worktrees gefunden", @@ -6129,7 +6252,9 @@ "disableSource": "Eine Quelle deaktivieren, um ihre Worktrees einzeln zu verwalten.", "appearWhenDetected": "Neue Worktrees erscheinen hier, sobald Orca sie erkennt.", "openGlobalSettings": "In globalen Einstellungen verwalten", - "globalSettingsSources": "Für diese Quellen gibt es eine globale Einstellung, die hier überschrieben werden kann:" + "globalSettingsSources": "Für diese Quellen gibt es eine globale Einstellung, die hier überschrieben werden kann:", + "searchHiddenPlaceholder_one": "{{count}} Worktree durchsuchen…", + "searchHiddenPlaceholder_other": "{{count}} Worktrees durchsuchen…" }, "add": { "repo": { @@ -6336,13 +6461,13 @@ "7a8b9c0d1e": "Einstellungen öffnen", "8b9c0d1e2f": "Host entfernen", "workspacesFailed": "Anzahl der Arbeitsbereiche dieses Hosts, die nicht entfernt werden konnten: {{count}}. Der Host wurde für einen erneuten Versuch beibehalten.", - "oneWorkspace": "1 Arbeitsbereich", - "manyWorkspaces": "{{count}} Arbeitsbereiche", - "hostHasWorkspacesDefault": "Entfernt {{value0}} und die zugehörigen Zugangsdaten von diesem Computer. Orca behält {{value1}} bei — entfernte Dateien bleiben unberührt.", - "alsoForgetLocal": "Auch {{value0}} aus Orca entfernen", "advanced": "Erweitert", "alsoForgetLocalHint": "Entfernt sie nur aus Orca. Entfernte Dateien, Worktrees und Branches bleiben unberührt.", - "wslHostEndsTerminalsUnlessShared": "Entfernt {{value0}} aus Orca. Sofern kein anderes auf diesem Computer geöffnetes Orca es verwendet, werden außerdem die offenen Terminals beendet und der Orca-Server in dieser Distribution gestoppt. Dateien in der Distribution bleiben unverändert." + "wslHostEndsTerminalsUnlessShared": "Entfernt {{value0}} aus Orca. Sofern kein anderes auf diesem Computer geöffnetes Orca es verwendet, werden außerdem die offenen Terminals beendet und der Orca-Server in dieser Distribution gestoppt. Dateien in der Distribution bleiben unverändert.", + "hostKeepsWorkspaces_one": "Entfernt {{host}} und dessen Zugangsdaten von diesem Computer. Der zugehörige {{count}} Arbeitsbereich bleibt in Orca — entfernte Dateien bleiben unberührt.", + "hostKeepsWorkspaces_other": "Entfernt {{host}} und dessen Zugangsdaten von diesem Computer. Die zugehörigen {{count}} Arbeitsbereiche bleiben in Orca — entfernte Dateien bleiben unberührt.", + "alsoRemoveWorkspaces_one": "Diesen Arbeitsbereich auch aus Orca entfernen", + "alsoRemoveWorkspaces_other": "Diese {{count}} Arbeitsbereiche auch aus Orca entfernen" }, "HostRenameDialog": { "1a2b3c4d5e": "Host umbenennen", @@ -6415,7 +6540,7 @@ "current": "Aktuell", "searchPlaceholder": "Worktrees suchen…", "empty": "Keine passenden auswählbaren Worktrees.", - "setParentFor": "Übergeordneten Worktree festlegen für" + "setParentForName": "Übergeordneten Arbeitsbereich für {{name}} festlegen" }, "WorktreeCardStatusSlot": { "branchIdentity": "Branch", @@ -6425,12 +6550,12 @@ }, "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "Externe Worktrees für {{value0}} dauerhaft ausblenden", - "2a6f31d8c7": "Ausgeblendeter Worktree", - "5b90e4a2f6": "Ausgeblendete Worktrees", - "7f18c5b0d3": "{{value0}} ausgeblendeten Worktree in {{value1}} prüfen", - "4e2b7a9c05": "{{value0}} ausgeblendete Worktrees in {{value1}} prüfen", "c3e8a1f4b2": "Nicht mehr anzeigen", - "6c07f3a91e": "{{value0}} auf {{value1}}" + "6c07f3a91e": "{{value0}} auf {{value1}}", + "hiddenWorktreesNoun_one": "ausgeblendeter Worktree", + "hiddenWorktreesNoun_other": "ausgeblendete Worktrees", + "reviewHiddenWorktrees_one": "{{count}} ausgeblendeten Worktree in {{scope}} prüfen", + "reviewHiddenWorktrees_other": "{{count}} ausgeblendete Worktrees in {{scope}} prüfen" }, "NoticeHostGlyph": { "hostDisconnected": "Verbindung zu {{hostName}} getrennt", @@ -6521,8 +6646,9 @@ "sshConfigPickerRetry": "Erneut versuchen", "sshConfigPickerResolving": "Wird gelesen…", "pairingHelpShareComputer": "Auf dem anderen Computer unter Einstellungen → Entfernte Orca-Server → Diesen Computer freigeben erstellen.", - "sshImportSyncedPlural": "{{count}} Hosts zu Orca hinzugefügt.", - "sshImportSyncedSingular": "{{count}} Host zu Orca hinzugefügt." + "sshImportSynced_one": "{{count}} Host zu Orca hinzugefügt.", + "sshImportSynced_other": "{{count}} Hosts zu Orca hinzugefügt.", + "sshConfigPickerInvalidResponse": "Ungültige Host-Antwort aus der SSH-Konfiguration" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} ist kein gespeicherter SSH-Host mehr. Daher ist dieser Arbeitsbereich nicht mehr mit einem aktiven Host verbunden. Er kann nur aus Orca entfernt werden — Dateien und Branches auf dem Remote-Host bleiben unverändert.", @@ -6545,11 +6671,12 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "Keine passenden Arbeitsbereiche", - "4d96c209d6": "{{value0}} von {{value1}} Arbeitsbereichen entsprechen der Suche", "c0cd6bdf6c": "Arbeitsbereiche durchsuchen", "3b7ea51793": "Suche leeren", "7f1c2e94a5": "Suchtext ist zu lang — das Board ist ungefiltert", - "9a4d0f6b21": "Zu lang" + "9a4d0f6b21": "Zu lang", + "workspacesMatch_one": "Passende Arbeitsbereiche: {{matchCount}} von {{count}}", + "workspacesMatch_other": "Passende Arbeitsbereiche: {{matchCount}} von {{count}}" }, "WorktreeCardSshHostControl": { "connectFailed": "SSH-Verbindung fehlgeschlagen", @@ -6647,11 +6774,12 @@ "developerToolsTitle": "Apples Befehlszeilenwerkzeuge installieren", "developerToolsBody": "Git benötigt die Apple-Entwicklerwerkzeuge. Diesen Befehl im Terminal ausführen und dann zu Orca zurückwechseln. Orca prüft automatisch erneut.", "affectedOne": "Worktree-Suche für {{value0}} pausiert", - "affectedMany": "Worktree-Suche für {{value0}} Projekte pausiert", "copyCommand": "Befehl kopieren", "copied": "Befehl kopiert", "retry": "Jetzt erneut versuchen", - "restored": "Git funktioniert wieder. Worktrees aktualisiert." + "restored": "Git funktioniert wieder. Worktrees aktualisiert.", + "affectedProjects_one": "Worktree-Scan für {{count}} Projekt pausiert", + "affectedProjects_other": "Worktree-Scan für {{count}} Projekte pausiert" }, "manualSortSwitch": { "title": "Sortierung auf „Manuell“ geändert", @@ -6696,7 +6824,8 @@ "wslHostRemoval": { "keptForOthers": "Aus diesem Orca entfernt. Der Host läuft für {{value0}} weiter.", "partial": "Der Host wurde entfernt, aber in der Distribution läuft noch etwas: {{value0}}", - "pending": "Orca hat den Host noch nicht entfernt: {{value0}} Zum Wiederholen erneut entfernen oder zum Beibehalten verbinden." + "pending": "Orca hat den Host noch nicht entfernt: {{value0}} Zum Wiederholen erneut entfernen oder zum Beibehalten verbinden.", + "unavailable": "WSL-Hosts sind auf diesem Computer nicht verfügbar." }, "addRepoWslHostFolderPicker": { "otherDistro": "Dieser Ordner befindet sich in {{value0}}, nicht in {{value1}}.", @@ -6737,6 +6866,42 @@ "openingProject": "Projekt wird geöffnet…", "openingFolder": "Ordner wird geöffnet…", "chooseFolder": "Ordner auswählen…" + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "Dieser Host unterstützt das Löschen verschachtelter Worktrees nicht." + }, + "WorktreeCardHelpers": { + "checksPassing": "Erfolgreich", + "checksFailing": "Fehlgeschlagen", + "checksPending": "Ausstehend", + "conflictMerging": "Merge läuft", + "conflictRebasing": "Rebase läuft", + "conflictCherryPicking": "Cherry-Pick läuft" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "Arbeitsbereich {{name}}" + }, + "workspaceKanbanStatus": { + "defaultLabel": "Status {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_one": "{{preview}}, +{{count}} mehr", + "sparsePreviewMore_other": "{{preview}}, +{{count}} mehr" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "MR-Details nicht verfügbar", + "prDetailsUnavailable": "PR-Details nicht verfügbar", + "loadingMr": "MR wird geladen…", + "loadingPr": "PR wird geladen…" + }, + "HostSectionHeader": { + "workspaceCount_one": "{{count}} Arbeitsbereich", + "workspaceCount_other": "{{count}} Arbeitsbereiche" + }, + "titleDerivedAgentRows": { + "needsInput": "Eingabe erforderlich", + "running": "Läuft", + "idle": "Inaktiv" } }, "shared": { @@ -14324,17 +14489,8 @@ "saveLocation": "Speicherort festlegen" }, "SmartWorkspaceNameField": { - "2a0d535f69": "Neuen Branch erstellen", - "a44229ce4d": "für den Arbeitsbereich verwenden", - "766083a596": "“", - "34ca97bce3": "„", - "b1a7d679ba": "Verwenden", "e57c53727c": "Projekt hinzufügen…", - "a76fcb4fa0": "Wechseln zu", - "eadf877af5": "Beibehalten", "6859e2896c": "Abbrechen", - "9ef1a7c4b0": ", das vom ausgewählten Projekt abweicht.", - "ad188067ae": "Die GitHub-URL verweist auf", "4bd98f1091": "Projekt wechseln?", "0c9e668e3a": "Leeren", "7199ff19c7": "Ausgewählte Quelle zurücksetzen", @@ -14353,7 +14509,6 @@ "fda67f0b61": "aktuelles Projekt", "3e8bb1176a": "Zum Suchen von Issues Linear in den Einstellungen verbinden.", "switchTaskSourceTitle": "Aufgabenquelle wechseln?", - "differentTaskSource": ", die von der ausgewählten Aufgabenquelle abweicht.", "currentTaskSource": "aktuelle Aufgabenquelle", "placeholderNameOrLinearUrl": "Namen, Linear-URL oder Jira-URL eingeben", "placeholderWorkspaceName": "Namen für den Arbeitsbereich eingeben", @@ -14382,7 +14537,13 @@ "emoji": "Emoji", "loadingLinearIssue": "Linear-Issue wird geladen…", "linearLoginUnreadableTitle": "Linear erneut verbinden", - "linearLoginUnreadableBody": "Die gespeicherten Linear-Anmeldedaten konnten nicht gelesen werden. Linear in den Einstellungen erneut verbinden." + "linearLoginUnreadableBody": "Die gespeicherten Linear-Anmeldedaten konnten nicht gelesen werden. Linear in den Einstellungen erneut verbinden.", + "keepRepo": "{{name}} beibehalten", + "switchToRepo": "Zu {{name}} wechseln", + "crossRepoDifferentTaskSource": "Die GitHub-URL verweist auf {{repo}} und damit auf eine andere als die ausgewählte Aufgabenquelle.", + "crossRepoDifferentProject": "Die GitHub-URL verweist auf {{repo}} und damit auf ein anderes als das ausgewählte Projekt.", + "useAsWorkspaceName": "„{{name}}“ als Namen für den Arbeitsbereich verwenden", + "createNewBranchNamed": "Neuen Branch {{name}} erstellen" }, "ProjectCombobox": { "empty": "Keine Projekte entsprechen der Suche.", @@ -14396,6 +14557,11 @@ "listLabel": "Ausführungsziele", "label": "Ausführen auf", "browse": "Ausführungsziele durchsuchen" + }, + "projectCombobox": { + "recentHeading": "Zuletzt verwendet", + "projectsHeading": "Projekte", + "foldersHeading": "Ordner" } } }, @@ -15995,7 +16161,10 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}}: {{value1}} {{value2}} (untergeordnet)" + "hideChildAgents_one": "{{count}} untergeordneten Agenten ausblenden", + "hideChildAgents_other": "{{count}} untergeordnete Agenten ausblenden", + "showChildAgents_one": "{{count}} untergeordneten Agenten anzeigen", + "showChildAgents_other": "{{count}} untergeordnete Agenten anzeigen" }, "DashboardAgentRow": { "912e136cd9": "Senden", @@ -16003,7 +16172,13 @@ "a41fb5376e": "Details einklappen", "5ae84475cc": "Ausblenden", "b06e13fcf7": "Agenten ausblenden", - "0272969e28": "An diesen Agenten senden" + "0272969e28": "An diesen Agenten senden", + "justNow": "gerade eben", + "timeAgo": "vor {{duration}}", + "dispatchedAgents_one": "{{agentType}} - {{count}} Agenten beauftragt", + "dispatchedAgents_other": "{{agentType}} - {{count}} Agenten beauftragt", + "startedAgo": "gestartet {{time}}", + "doneAgo": "abgeschlossen {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "unterbrochen", @@ -17119,18 +17294,19 @@ "activityOptionsActive": "Aktivitätsoptionen ({{value0}})" }, "clearCompleted": { - "clearedOne": "1 abgeschlossenen Agenten entfernt", - "clearedMany": "{{count}} abgeschlossene Agenten entfernt", - "undo": "Rückgängig machen" + "undo": "Rückgängig machen", + "cleared_one": "{{count}} abgeschlossenen Agenten entfernt", + "cleared_other": "{{count}} abgeschlossene Agenten entfernt" }, "standaloneWorktree": { "floatingTerminal": "Schwebendes Terminal", "standaloneTerminal": "Eigenständiges Terminal" }, "ActivityTitlebarControls": { - "f915168c8e": "ungelesen", "d6a8de3934": "Agenten", - "dc708f3eff": "Agenten schließen" + "dc708f3eff": "Agenten schließen", + "unreadCount_one": "{{count}} ungelesen", + "unreadCount_other": "{{count}} ungelesen" }, "ActivityScopeFilterControls": { "resetScope": "Alle Hosts und Projekte anzeigen", @@ -17925,6 +18101,16 @@ "unreachable": "Jira konnte nicht erreicht werden. Verbindung prüfen und erneut versuchen.", "loadFailed": "Jira-Issues konnten nicht geladen werden. In Kürze erneut versuchen.", "errorWithCode": "Fehler {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "„{{action}}“ kann nicht ausgeführt werden — der Arbeitsbereich wird noch geladen.", + "noActiveWorkspace": "„{{action}}“ kann nicht ausgeführt werden — kein Arbeitsbereich ist aktiv.", + "workspaceDisconnected": "„{{action}}“ kann nicht ausgeführt werden — der Arbeitsbereich ist nicht verbunden.", + "noTabGroup": "„{{action}}“ kann nicht ausgeführt werden — keine Tab-Gruppe verfügbar.", + "noMovableChat": "„{{action}}“ kann nicht ausgeführt werden — kein verschiebbarer Chat ist aktiv.", + "clientUnsupported": "„{{action}}“ kann nicht ausgeführt werden — dieser Client und diese Laufzeitumgebung unterstützen die Aktion nicht." + } } }, "i18n": { @@ -19137,8 +19323,6 @@ "none": "Nicht vorhanden" }, "idleSignalField": "Inaktivitätssignal", - "selectionVanishedOne": "1 ausgewählter Arbeitsbereich existiert nicht mehr.", - "selectionVanished": "{{value0}} ausgewählte Arbeitsbereiche existieren nicht mehr.", "updatedAgo": "{{value0}} aktualisiert", "refreshing": "Wird aktualisiert…", "refreshingProgress": "{{value0}}/{{value1}} werden aktualisiert", @@ -19153,12 +19337,6 @@ "gitStatusCheckFailed": "Prüfung des Git-Status fehlgeschlagen", "gitStatusUnverified": "Git-Status konnte nicht verifiziert werden", "deleteAnyway": "Trotzdem löschen", - "forceDeleteProjectionOne": "{{count}} Arbeitsbereich weist derzeit Risiken auf und muss möglicherweise zwangsweise gelöscht werden", - "forceDeleteProjectionMany": "{{count}} Arbeitsbereiche weisen derzeit Risiken auf und müssen möglicherweise zwangsweise gelöscht werden", - "selectionWithheldOne": "1 ausgewählter Arbeitsbereich wird durch die aktuellen Filter ausgeblendet und wurde abgewählt.", - "selectionWithheld": "{{value0}} ausgewählte Arbeitsbereiche werden durch die aktuellen Filter ausgeblendet und wurden abgewählt.", - "selectAllCountOne": "1 auf Sicherheit geprüften Arbeitsbereich auswählen", - "selectAllCount": "Alle {{value0}} auf Sicherheit geprüften Arbeitsbereiche auswählen", "appliedFilters": "Angewendete Filter", "removeFilter": "Filter {{value0}} entfernen", "chip": { @@ -19202,18 +19380,28 @@ "locked": "Gesperrt", "retainedAgents": "Abgeschlossene Agenten" } - } + }, + "forceDeleteRisk_one": "{{count}} Arbeitsbereich weist derzeit Risiken auf und muss möglicherweise zwangsweise gelöscht werden", + "forceDeleteRisk_other": "{{count}} Arbeitsbereiche weisen derzeit Risiken auf und müssen möglicherweise zwangsweise gelöscht werden", + "selectionVanishedCount_one": "{{count}} ausgewählter Arbeitsbereich existiert nicht mehr.", + "selectionVanishedCount_other": "{{count}} ausgewählte Arbeitsbereiche existieren nicht mehr.", + "selectionWithheldCount_one": "{{count}} ausgewählter Arbeitsbereich wird durch die aktuellen Filter ausgeblendet und wurde abgewählt.", + "selectionWithheldCount_other": "{{count}} ausgewählte Arbeitsbereiche werden durch die aktuellen Filter ausgeblendet und wurden abgewählt.", + "selectAllSafetyChecked_one": "{{count}} sicherheitsgeprüften Arbeitsbereich auswählen", + "selectAllSafetyChecked_other": "Alle {{count}} sicherheitsgeprüften Arbeitsbereiche auswählen" }, "scan": { "progress": "Arbeitsbereiche werden geprüft ({{value0}}/{{value1}})", "singleError": "{{value0}} konnte nicht geprüft werden: {{value1}}. Einige Arbeitsbereiche fehlen möglicherweise. Zum erneuten Versuchen aktualisieren.", - "moreErrors": ", +{{value0}} weitere", - "multipleErrors": "{{value0}} Repositorys konnten nicht geprüft werden ({{value1}}{{value2}}). Einige Arbeitsbereiche fehlen möglicherweise. Zum erneuten Versuchen aktualisieren.", "noWorkspaces": "Keine Arbeitsbereiche gefunden.", "fallbackRepository": "ein Repository", "gitListFailed": "Git konnte die Worktrees nicht auflisten", - "readyOne": "1 Arbeitsbereich gefunden.", - "readyMany": "{{value0}} Arbeitsbereiche gefunden." + "multipleErrorsWithMore_one": "{{count}} Repository konnte nicht geprüft werden ({{names}}, +{{moreCount}} weitere). Einige Arbeitsbereiche fehlen möglicherweise. Zum erneuten Versuchen aktualisieren.", + "multipleErrorsWithMore_other": "{{count}} Repositorys konnten nicht geprüft werden ({{names}}, +{{moreCount}} weitere). Einige Arbeitsbereiche fehlen möglicherweise. Zum erneuten Versuchen aktualisieren.", + "multipleErrorsCount_one": "{{count}} Repository konnte nicht geprüft werden ({{names}}). Einige Arbeitsbereiche fehlen möglicherweise. Zum erneuten Versuchen aktualisieren.", + "multipleErrorsCount_other": "{{count}} Repositorys konnten nicht geprüft werden ({{names}}). Einige Arbeitsbereiche fehlen möglicherweise. Zum erneuten Versuchen aktualisieren.", + "readyCount_one": "{{count}} Arbeitsbereich gefunden.", + "readyCount_other": "{{count}} Arbeitsbereiche gefunden." }, "relativeTime": { "never": "Nie", @@ -20340,7 +20528,6 @@ "repositoryLoading": "Die Repository-Identität wird noch geladen. Erneut versuchen, sobald sie verfügbar ist.", "duplicate": "Dieser Link ist bereits verknüpft.", "title": "Verknüpfte Vorgänge", - "count": "{{count}} verknüpft", "empty": "Alle Reviews und Aufgaben für diesen Arbeitsbereich bündeln.", "reviews": "Reviews", "tasks": "Issues und Aufgaben", @@ -20348,7 +20535,6 @@ "open": "Link öffnen", "unlinkItem": "Verknüpfung mit {{label}} aufheben", "unlink": "Verknüpfung mit Arbeitsbereich aufheben", - "show": "{{count}} verknüpfte Reviews und Aufgaben anzeigen", "details": "Arbeitsbereichsdetails", "description": "Reviews und Aufgaben verknüpfen und Notizen für diesen Arbeitsbereich festhalten.", "commentHelp": "Markdown wird unterstützt. Enter oder {{shortcut}} zum Speichern · Shift+Enter für eine neue Zeile.", @@ -20401,7 +20587,11 @@ "checksPassing": "Erfolgreich", "checksUnknown": "Unbekannt", "checksNeutral": "Neutral", - "allReviewChecks": "Reviews: {{count}} · Checks: {{status}}" + "allReviewChecks": "Reviews: {{count}} · Checks: {{status}}", + "showLinked_one": "{{count}} verknüpftes Review oder verknüpfte Aufgabe anzeigen", + "showLinked_other": "{{count}} verknüpfte Reviews und Aufgaben anzeigen", + "linkedCount_one": "{{count}} verknüpft", + "linkedCount_other": "{{count}} verknüpft" }, "attachments": { "updateRuntime": "Die entfernte Laufzeitumgebung aktualisieren, um Verknüpfungen des Arbeitsbereichs zu ändern", @@ -20583,8 +20773,9 @@ }, "compact": { "linkedAndUnavailable": "{{value0}} in verknüpften Worktrees · {{value1}} nicht verfügbar", - "linkedAndScanned": "{{value0}} in verknüpften Worktrees · {{value1}} Arbeitsbereiche", - "linked": "Verknüpft" + "linked": "Verknüpft", + "linkedAndScannedCount_one": "{{size}} in verknüpften Worktrees · {{count}} Arbeitsbereich", + "linkedAndScannedCount_other": "{{size}} in verknüpften Worktrees · {{count}} Arbeitsbereiche" }, "savedScan": { "folderDetailsUnavailable": "Für frühere Scans sind keine Ordnerdetails gespeichert. Aktualisieren, um diesen Arbeitsbereich zu untersuchen." diff --git a/src/renderer/src/i18n/locales/en.json b/src/renderer/src/i18n/locales/en.json index 2132d917a54..34a60baa633 100644 --- a/src/renderer/src/i18n/locales/en.json +++ b/src/renderer/src/i18n/locales/en.json @@ -2230,7 +2230,6 @@ "ba64270bdb": "Configure agents", "ab63f25397": "Open agent settings", "0c5d6a479c": "[Optional]", - "b5a0796911": "Connect", "dccd26d4e4": "Choose project", "d6b0a96f32": "Add project", "969a8bff66": "Project", @@ -2291,7 +2290,8 @@ "runSetupNow": "Run setup now", "runCommandsNow": "Run commands now", "skipForNow": "Skip for now", - "skipCommands": "Skip commands" + "skipCommands": "Skip commands", + "connectProject": "Connect {{name}}" }, "NewWorkspaceComposerModal": { "createWorktree": "Create worktree", @@ -3787,21 +3787,23 @@ }, "drop": { "handler": { - "1e072f611e": "Failed to upload {{value0}} {{value1}}.", "0c77693641": "Worktree not ready — try again in a moment.", "ce8248b835": "Worktree path not available.", "internalTooManyPaths": "Drop contains too many paths for a safe terminal paste.", "internalPathsTooLarge": "Drop path list is too large for a safe terminal paste.", "internalHostMismatch": "Drop files from the same host as this terminal.", - "b4cf68e889": "Skipped {{value0}} {{value1}}.", "writeTimeout": "File drop cancelled: terminal did not accept the path before the safety timeout.", "writeRejected": "File drop cancelled: terminal could not accept the path.", - "skippedSymlinkSingular": "Skipped {{count}} symlink.", - "skippedSymlinkPlural": "Skipped {{count}} symlinks.", - "uploadingFileSingular": "Uploading {{count}} file to runtime…", - "uploadingFilePlural": "Uploading {{count}} files to runtime…", - "uploadingFileToRemoteSingular": "Uploading {{count}} file to remote…", - "uploadingFileToRemotePlural": "Uploading {{count}} files to remote…" + "skippedSymlinks_one": "Skipped {{count}} symlink.", + "skippedSymlinks_other": "Skipped {{count}} symlinks.", + "skippedItems_one": "Skipped {{count}} item.", + "skippedItems_other": "Skipped {{count}} items.", + "failedUploads_one": "Failed to upload {{count}} file.", + "failedUploads_other": "Failed to upload {{count}} files.", + "uploadingFiles_one": "Uploading {{count}} file to runtime…", + "uploadingFiles_other": "Uploading {{count}} files to runtime…", + "uploadingFilesToRemote_one": "Uploading {{count}} file to remote…", + "uploadingFilesToRemote_other": "Uploading {{count}} files to remote…" } } }, @@ -3919,10 +3921,15 @@ "sessionQueued": "Session queued", "openSupportedWorkspace": "Open a workspace before resuming a session.", "sessionHostMismatchUnsupported": "This session belongs to a different host. Drop it onto a workspace on the same host.", - "oldPayload": "This session was dragged from an older Orca window. Resume it from Session History instead." + "oldPayload": "This session was dragged from an older Orca window. Resume it from Session History instead.", + "legacyDragCannotRetarget": "This session was dragged from an older Orca window, so Orca cannot retarget it to the selected Codex account. Resume it from the Session History panel instead.", + "legacyDragPrepareFailed": "Orca could not prepare this legacy Codex session. Retry resume." }, "TabGroupDropOverlay": { "paneColumnLabel": "New split" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "The paired runtime could not duplicate the managed browser tab." } }, "bar": { @@ -4117,6 +4124,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "Host unavailable", "7c129b08ff": "Loading host…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "This session cannot be opened in the CLI." + }, + "tabCreateEntry": { + "fileNotFound": "File not found: {{path}}", + "cannotOpenDirectory": "Cannot open a directory: {{path}}", + "parentNotDirectory": "Cannot create file because {{path}} is not a directory.", + "fileNoLongerExists": "File no longer exists: {{path}}", + "noActiveWorktree": "No active worktree." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "File paths cannot contain control characters.", + "enterAUrlOrFilePath": "Enter a URL or file path.", + "homeRelativePathsAreNotSupported": "Home-relative paths are not supported here.", + "enterAFilePathNotA": "Enter a file path, not a directory path.", + "enterAnAbsoluteFilePath": "Enter an absolute file path.", + "enterAnAbsolutePathForThis": "Enter an absolute path for this computer.", + "enterARelativeFilePath": "Enter a relative file path.", + "windowsDrivePathsAreNotSupported": "Windows drive paths are not supported here.", + "uncPathsAreNotSupportedHere": "UNC paths are not supported here.", + "filePathsCannotContainEmptySegments": "File paths cannot contain empty segments.", + "filePathsCannotContainDotSegments": "File paths cannot contain . or .. segments.", + "filePathsCannotContainTildeSegments": "File paths cannot contain ~ segments." } } }, @@ -4144,15 +4175,16 @@ "4ebf90c12e": "No external ports detected", "7dac3ecc9d": "External Ports", "95495019ed": "Port scan unavailable on {{value0}}: {{value1}}", - "a8e4bdb412": " · {{value0}} external", "c22ea609fd": "Ports", - "ca41be2802": "Ports — {{value0}} workspace {{value1}}{{value2}}", - "b8bc3e420a": "Ports, {{value0}} workspace {{value1}}", "3a87d54dfb": "No workspace ports detected", "c174bbbfed": "Scanning for workspace ports...", - "8caaa86e9a": "ports", - "45834a9ace": "port", - "2b84c4d11f": "{{value0}} workspace · {{value1}} external" + "2b84c4d11f": "{{value0}} workspace · {{value1}} external", + "portsAria_one": "Ports, {{count}} workspace port", + "portsAria_other": "Ports, {{count}} workspace ports", + "portsTooltipWithExternal_one": "Ports — {{count}} workspace port · {{externalCount}} external", + "portsTooltipWithExternal_other": "Ports — {{count}} workspace ports · {{externalCount}} external", + "portsTooltip_one": "Ports — {{count}} workspace port", + "portsTooltip_other": "Ports — {{count}} workspace ports" }, "ResourceUsageStatusSegment": { "946d9f94d0": "Cancel", @@ -4161,7 +4193,6 @@ "27a74f91f0": "Nothing running right now", "298f4be7f2": "CPU", "2aa2de6cb9": "Name", - "30ff2c3c31": "{{value0}} orphan", "1fedf94eae": "Combined CPU load. Values above 100% mean more than one core is working at once.", "e7cf14ec78": "Terminal sessions unavailable. The list may be stale.", "93b0de3c21": "Restart", @@ -4191,10 +4222,11 @@ "d406915b78": "Renderer", "81cd37af99": "Main", "fa6d36758d": "Kill session {{value0}}", - "b8f4a2c1d0e3": "{{value0}} orphans", - "c7e3b1a0d9f2": "End {{value0}} orphan terminal", - "d8f4c2b1e0a3": "End {{value0}} orphan terminals", - "e9a5d3c2b1f0": "Kill {{value0}}?" + "e9a5d3c2b1f0": "Kill {{value0}}?", + "endOrphanTerminals_one": "End {{count}} orphan terminal", + "endOrphanTerminals_other": "End {{count}} orphan terminals", + "orphanCount_one": "{{count}} orphan", + "orphanCount_other": "{{count}} orphans" }, "SshStatusSegment": { "3ad70e0365": "Manage Remote Hosts…", @@ -4254,10 +4286,6 @@ "3325d996cb": "Refresh rate limits", "cd9d7b40ff": "Restart {{value0}} Sessions", "6cd6650b4c": "Restart Session", - "1446d0d8a0": "{{value0}} Codex sessions are still on the old account.", - "605901a495": "1 Codex session is still on the old account", - "5e5f9f5160": "1 rate-limit reset available", - "5ecae9197c": "{{value0}} rate-limit resets available", "25d8bbde69": "Using reset…", "e159fc1fd7": "Reset now", "972a1ff497": "Reset Codex limits?", @@ -4276,7 +4304,11 @@ "codexSignInError": "Codex sign-in failed. Please try again.", "cursorUsageMenu": "Cursor Usage", "hiddenUsageProviders": "Also: {{value0}}", - "zcodeUsageMenu": "ZCode Usage" + "zcodeUsageMenu": "ZCode Usage", + "rateLimitResetsAvailable_one": "{{count}} rate-limit reset available", + "rateLimitResetsAvailable_other": "{{count}} rate-limit resets available", + "staleCodexSessions_one": "{{count}} Codex session is still on the old account.", + "staleCodexSessions_other": "{{count}} Codex sessions are still on the old account." }, "StatusBarUsageEmptyCta": { "828c764a79": "Connect an account", @@ -4293,13 +4325,14 @@ "SkillUpdateStatusSegment": { "runningLabel": "Updating skills", "runningOne": "Updating {{value0}}…", - "runningMany": "Updating {{value0}} skills…", "runningAria": "Skills updating. Click to open details.", "successLabel": "Skills updated", "successAria": "Skills updated. Click to open details.", "attentionAria": "Some skill updates were skipped. Click to open details.", "attentionLabel": "Skills need attention", - "attentionTooltip": "Some skill updates were skipped — click to see details" + "attentionTooltip": "Some skill updates were skipped — click to see details", + "runningSkills_one": "Updating {{count}} skill…", + "runningSkills_other": "Updating {{count}} skills…" }, "UpdateStatusSegment": { "5cd13105a3": "Update failed. Click to expand.", @@ -4341,11 +4374,8 @@ "6f8f6a6b04": "Filter workspaces", "5caccea440": "Delete selected", "e4a12c455b": "Clear", - "0cb1501ccf": "reclaimable", - "65402b7192": "selected", "43171f3e60": "Workspaces", "09960d86bd": "Scanned", - "63efebe0e6": "{{value0}} {{value1}} removed from Space.", "eee5240810": "Workspaces deleted", "9afc97f9a3": "Workspace deleted", "792a214457": "Delete workspace", @@ -4353,7 +4383,6 @@ "9155381019": "Sparse", "f39d291997": "Select", "16988df079": "No files found.", - "b25c2c1086": "top-level items", "d3f9c69ddc": "Zoom", "ef890d31b9": "All", "c28643d3da": "Go to workspace", @@ -4392,8 +4421,15 @@ "c5135e7e4a": "Scanning workspace sizes. You can leave this page.", "0990a63160": "No scanned workspace sizes yet.", "977bdf9a36": "No top-level items to show.", - "131662ac65": "{{value0}} open", - "0d1c78d749": "Select {{value0}}" + "0d1c78d749": "Select {{value0}}", + "removedFromSpace_one": "{{count}} workspace removed from Space.", + "removedFromSpace_other": "{{count}} workspaces removed from Space.", + "topLevelItems_one": "{{formattedCount}} top-level item", + "topLevelItems_other": "{{formattedCount}} top-level items", + "selectedCount_one": "{{count}} selected", + "selectedCount_other": "{{count}} selected", + "reclaimableSize": "{{size}} reclaimable", + "scanning": "Scanning" }, "ports": { "status": { @@ -4407,7 +4443,8 @@ "e4a709548c": "Failed to refresh ports", "acdb6df590": "Stopped process on {{value0}}", "480d8f2347": "Copied {{value0}}", - "b854ec9ff5": "Failed to open browser" + "b854ec9ff5": "Failed to open browser", + "unknownProcess": "Unknown process" } } } @@ -4437,8 +4474,6 @@ "7ad719c4bf": "Limited", "e740f92596": "Refresh failed", "8418ec448d": "{{value0}} usage could not be refreshed. Agent sessions may still be signed in.", - "45198c7d95": "1 rate-limit reset available", - "bce421cba3": "{{value0}} rate-limit resets available", "7ec6e030a0": "Next expires now", "d1e442a9e5": "Expires now", "6cf9eaed10": "Next expires in {{value0}}", @@ -4495,7 +4530,14 @@ "label": "Updates when Claude runs", "message": "Claude usage updates the next time Claude runs." } - } + }, + "justNow": "just now", + "minutesAgo": "{{minutes}}m ago", + "hoursAgo": "{{hours}}h ago", + "updatedAgo": "Updated {{time}}", + "notYetUpdated": "Not yet updated", + "rateLimitResetsAvailable_one": "{{count}} rate-limit reset available", + "rateLimitResetsAvailable_other": "{{count}} rate-limit resets available" }, "SshTargetStatusRow": { "sshHost": "SSH Host" @@ -4530,12 +4572,12 @@ "RemoteServerUpdateStatusSegment": { "updating": "Updating {{value0}}/{{value1}}", "updatingTooltip": "Remote Orca Server updates are in progress", - "failed": "{{value0}} server updates failed", "failedTooltip": "Open Remote Orca Server updates to review and retry", - "updated": "{{value0}} servers updated", "updatedTooltip": "Remote Orca Server updates completed", - "failedOne": "1 server update failed", - "updatedOne": "1 server updated" + "failedCount_one": "{{count}} server update failed", + "failedCount_other": "{{count}} server updates failed", + "updatedCount_one": "{{count}} server updated", + "updatedCount_other": "{{count}} servers updated" }, "resource": { "memory": { @@ -4543,7 +4585,10 @@ "workingSetDescription": "Summed working set (WS): pages resident in RAM right now. Shared pages can appear in more than one process, and memory Windows has paged out is not counted here.", "privateBytesDescription": "Summed private bytes: memory these processes have committed, counted whether it is resident or paged out. This is what the host charges against its commit limit, so it keeps rising while the working set above shrinks under paging.", "footprintDescription": "Summed memory footprint, the same figure Activity Monitor shows: memory each process owns, including graphics memory. Pages shared between processes are not counted twice.", - "rssDescription": "Summed resident set size (RSS). Shared or aliased pages can appear in more than one process." + "rssDescription": "Summed resident set size (RSS). Shared or aliased pages can appear in more than one process.", + "memColumn": "Mem", + "memorySummary": "Σ Memory", + "privateSummary": "Σ Private" } }, "manager": { @@ -4592,29 +4637,29 @@ "repair": "Re-pair…" }, "NativeChatResumeStatusSegment": { - "labelOne": "1 chat to resume", - "label": "{{value0}} chats to resume", - "ariaLabelOne": "1 chat available to resume", - "ariaLabel": "{{value0}} chats available to resume", "tooltip": "Open interrupted chats available to resume", - "failedLabelOne": "1 chat failed to resume", - "failedLabel": "{{value0}} chats failed to resume", - "failedAriaOne": "1 chat failed to resume. Click for details.", - "failedAria": "{{value0}} chats failed to resume. Click for details.", "failedTooltip": "Chats Orca could not resume after the restart. Click for details.", - "checkLabelOne": "1 chat to check", - "checkLabel": "{{value0}} chats to check", - "checkAriaOne": "1 chat to check after resuming. Click for details.", - "checkAria": "{{value0}} chats to check after resuming. Click for details.", "checkTooltip": "Chats Orca couldn’t resume, or couldn’t confirm it resumed, after the restart. Click for details.", "resumingTooltip": "Restoring interrupted chats and asking them to carry on…", "resumingProgressLabel": "Resuming chats {{value0}}/{{value1}}", "resumingProgressAria": "Resuming chats, {{value0}} of {{value1}} done. Click to open details.", - "resumedLabelOne": "1 chat resumed", - "resumedLabel": "{{value0}} chats resumed", - "resumedAriaOne": "1 chat resumed. Click to see it.", - "resumedAria": "{{value0}} chats resumed. Click to see them.", - "resumedTooltip": "Chats Orca resumed after the restart. Click to see them." + "resumedTooltip": "Chats Orca resumed after the restart. Click to see them.", + "chatsFailedLabel_one": "{{count}} chat failed to resume", + "chatsFailedLabel_other": "{{count}} chats failed to resume", + "chatsFailedAria_one": "{{count}} chat failed to resume. Click for details.", + "chatsFailedAria_other": "{{count}} chats failed to resume. Click for details.", + "resumedLabelCount_one": "{{count}} chat resumed", + "resumedLabelCount_other": "{{count}} chats resumed", + "resumedAriaCount_one": "{{count}} chat resumed. Click to see it.", + "resumedAriaCount_other": "{{count}} chats resumed. Click to see them.", + "checkLabelCount_one": "{{count}} chat to check", + "checkLabelCount_other": "{{count}} chats to check", + "checkAriaCount_one": "{{count}} chat to check after resuming. Click for details.", + "checkAriaCount_other": "{{count}} chats to check after resuming. Click for details.", + "labelCount_one": "{{count}} chat to resume", + "labelCount_other": "{{count}} chats to resume", + "ariaLabelCount_one": "{{count}} chat available to resume", + "ariaLabelCount_other": "{{count}} chats available to resume" }, "StatusBarUsageChangeNotices": { "compactTitle": "Usage display is now compact", @@ -4623,6 +4668,81 @@ "usageUnitLabel": { "used": "Used", "remaining": "Remaining" + }, + "mergeSnapshotAndSessions": { + "unattributed": "Unattributed" + }, + "resourceSessionLabels": { + "terminalNumber": "Terminal {{number}}", + "pid": "pid {{pid}}", + "sessionPrefix": "session {{id}}", + "unknownSession": "(unknown session)", + "unknown": "unknown" + }, + "runtimeTargets": { + "wslDefault": "WSL default" + }, + "floatingWorkspace": { + "minimize": "Minimize Floating Workspace", + "show": "Show Floating Workspace" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "Workspace owner is no longer available" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "Synced with upstream", + "aheadAndBehind": "{{ahead}} ahead, {{behind}} behind", + "ahead": "{{ahead}} ahead", + "behind": "{{behind}} behind", + "activeAgents_one": "{{count}} active agent", + "activeAgents_other": "{{count}} active agents", + "completedAgents_one": "{{count}} completed agent", + "completedAgents_other": "{{count}} completed agents", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_one": "{{count}} completed agent retained", + "completedAgentsRetained_other": "{{count}} completed agents retained", + "noTrackedAgents": "No tracked agents running", + "noTerminalTabs": "No terminal tabs", + "liveTerminalTabs_one": "{{live}} live of {{count}} terminal tab", + "liveTerminalTabs_other": "{{live}} live of {{count}} terminal tabs", + "gitStatusUnavailable": "Git status unavailable: {{error}}", + "gitStatusNotLoaded": "Git status has not loaded yet", + "noUncommittedFiles": "No uncommitted files", + "changedFiles_one": "{{count}} changed file", + "changedFiles_other": "{{count}} changed files", + "noEditorFiles": "No editor files open", + "editorFilesOpen_one": "{{count}} editor file open", + "editorFilesOpen_other": "{{count}} editor files open", + "dirtyOfOpen": "{{dirty}} of {{open}}", + "dirtyEditorBuffers_one": "{{count}} dirty editor buffer", + "dirtyEditorBuffers_other": "{{count}} dirty editor buffers", + "openFiles_one": "{{count}} open file", + "openFiles_other": "{{count}} open files", + "activeWorkspace": "This is the active workspace", + "mainWorktreeProtected": "Main worktree is protected", + "workspaceProtected": "Workspace is protected", + "canDeleteAfterReview": "Can be deleted after review", + "noLinkedIssue": "No linked issue", + "noLinkedReview": "No linked PR", + "browserTabsOpen_one": "{{count}} browser tab open", + "browserTabsOpen_other": "{{count}} browser tabs open" + }, + "workspaceSpaceFormat": { + "cancellingScan": "Cancelling scan", + "currentWorkspaces": "workspaces", + "scanningWorkspaces": "Scanning {{scanned}} of {{total}} · {{current}}", + "scanningRepos_one": "Scanning {{scanned}} of {{count}} repo · {{current}}", + "scanningRepos_other": "Scanning {{scanned}} of {{count}} repos · {{current}}", + "scanningSizes": "Scanning workspace sizes", + "status": { + "scanned": "Scanned", + "missing": "Missing", + "noAccess": "No access", + "unavailable": "Unavailable", + "failed": "Failed" + }, + "mainWorktree": "main worktree", + "detached": "detached" } } }, @@ -5400,12 +5520,10 @@ "670864ab52": "Keeping local {{value0}} up to date", "84c62e4d7f": "Could not turn on {{value0}}", "442552c656": "Open Settings and try again.", - "f15fd80989": "Your new worktree is current, but local {{value0}} is {{value1}} {{value2}} behind, so AI diffs may compare to stale history. Let Orca keep it up to date automatically. Change this anytime in", - "3d260e1a5d": "Settings › {{value0}}", "34a03a6565": "Keep {{value0}} up to date", "4a18052018": "Local {{value0}} is behind {{value1}}", - "commit": "commit", - "commits": "commits" + "staleLocalBranch_one": "Your new worktree is current, but local {{branch}} is {{count}} commit behind, so AI diffs may compare to stale history. Let Orca keep it up to date automatically. Change this anytime in Settings › {{setting}}", + "staleLocalBranch_other": "Your new worktree is current, but local {{branch}} is {{count}} commits behind, so AI diffs may compare to stale history. Let Orca keep it up to date automatically. Change this anytime in Settings › {{setting}}" } } } @@ -5459,12 +5577,11 @@ "39d51212cc": "Group name", "aa0247680d": "No, import separately", "a0bc4d1f8e": "Yes, import as group", - "8401a7a0d0": "1 repository", - "d4f1df62ef": "{{value0}} repositories", - "b4263a2ac4": "Found {{value0}} in {{value1}}.", "24eda6c8b2": "Scanning... {{value0}}", "6149d5203f": "No repositories are selected. Open the parent folder instead to use editor, terminal, and search without Git features.", - "e52454b7f6": "Open as Folder" + "e52454b7f6": "Open as Folder", + "foundRepositories_one": "Found {{count}} repository in {{path}}.", + "foundRepositories_other": "Found {{count}} repositories in {{path}}." }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5533,9 +5650,8 @@ "eab8b45238": "Copy error", "a23b22d16f": "Copied", "74fc00776f": "Error details", - "3afcad0497": "from the first agent message.", - "ff62a18580": "Orca couldn't generate a branch name for", - "ca3b225195": "Branch auto-name failed" + "ca3b225195": "Branch auto-name failed", + "couldNotGenerateBranchName": "Orca couldn't generate a branch name for {{name}} from the first agent message." }, "CreateProjectLocationField": { "95548e33bf": "Choose parent folder...", @@ -5555,37 +5671,38 @@ "2b56b35f53": "You can change this in Settings.", "dd3a45bbbd": "We'll skip this confirmation next time.", "fc23c4cbdf": "Delete Workspace", - "86f0ae1257": "Delete Workspaces" + "86f0ae1257": "Delete Workspaces", + "removeFolderProjectInstead": "Remove the folder project instead of deleting this workspace.", + "gitBlocksMainWorktree": "Git does not allow removing the main worktree." }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "Show loaded paths", "loadedPathsNotice": "Loaded paths may be incomplete or out of date.", "loadedChangedPaths": "Loaded changed paths", "unresolvedConflict": "Unresolved conflict", - "moreLoadedPaths": "and {{value0}} more loaded paths", "changeCount_one": "{{count}} uncommitted or untracked change", "changeCount_other": "{{count}} uncommitted or untracked changes", - "changes": "Uncommitted or untracked changes" + "changes": "Uncommitted or untracked changes", + "moreLoadedPaths_one": "and {{count}} more loaded path", + "moreLoadedPaths_other": "and {{count}} more loaded paths" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "more", "a940f3c96e": "Child workspaces will be deleted", - "29b98bf9cd": "Deleting this workspace also deletes {{value0}} child workspaces.", - "66798cc6a2": "Deleting this workspace also deletes 1 child workspace." + "alsoDeletesChildren_one": "Deleting this workspace also deletes {{count}} child workspace.", + "alsoDeletesChildren_other": "Deleting this workspace also deletes {{count}} child workspaces.", + "moreChildren_one": "+{{count}} more", + "moreChildren_other": "+{{count}} more" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "Don't ask again" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(the original clone directory).", - "c4f96a6e18": "main worktree", - "e3be9eba15": "This is the" + "mainWorktreeNotice": "This is the main worktree (the original clone directory)." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "Show in worktree list", "ad99f4eea9": "Keep hidden", "9f4f14e821": "Change this later from the project menu.", - "b2bc47c080": "more locations", "b47ba1a9d2": "{{value0}} preview", "2251d41ebb": "Hidden worktree groups", "5a9688802a": "Show {{value0}} more", @@ -5599,7 +5716,9 @@ "keepHiddenAriaLabel_one": "Keep {{count}} discovered worktree hidden for {{repo}}; recover from the project menu", "keepHiddenAriaLabel_other": "Keep {{count}} discovered worktrees hidden for {{repo}}; recover from the project menu", "keepHiddenTooltip": "Keep hidden - recover from the project menu", - "repoOnHost": "{{repo}} on {{host}}" + "repoOnHost": "{{repo}} on {{host}}", + "moreLocations_one": "+ {{count}} more location", + "moreLocations_other": "+ {{count}} more locations" }, "NonGitFolderDialog": { "e52454b7f6": "Open as Folder", @@ -5633,20 +5752,24 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "Cancel", - "69f5cb97d0": "Delete", "591f330288": "Delete Project Group", "2c14ce677a": "Deleting...", "0e0e6764af": "Contained projects", - "ad407c2d55": "more", - "removeContainedProjectSingular": "Remove 1 contained project", - "removeContainedProjectPlural": "Remove {{value0}} contained projects", "55f75628c0": "Project folders on disk are not deleted.", - "fec7e9c8ae": "Delete Group" + "fec7e9c8ae": "Delete Group", + "removeContainedProjects_one": "Remove {{count}} contained project", + "removeContainedProjects_other": "Remove {{count}} contained projects", + "deleteGroupDescription": "Delete {{name}}.", + "moreProjects_one": "+{{count}} more", + "moreProjects_other": "+{{count}} more" }, "ProjectGroupNameDialog": { "d99a034073": "Cancel", "83dfbc5313": "Group Name", - "4a64e78822": "Saving..." + "4a64e78822": "Saving...", + "defaultGroupName": "{{name}} group", + "create": "Create", + "rename": "Rename" }, "RemoteFileBrowser": { "2300612806": "Type to filter or enter a path…", @@ -5658,7 +5781,9 @@ "largeInputNoMatches": "No matches for this long input", "entriesLabel": "Folder entries", "inputLabel": "Filter or path", - "fileHint": "Files can't be opened as a project" + "fileHint": "Files can't be opened as a project", + "invalidPathRepeatedSeparators": "Invalid path: repeated separators", + "invalidPathControlCharacters": "Invalid path: control characters are not allowed" }, "SleepTwinWorkspaceDialog": { "title": "Sleep Workspace", @@ -5688,11 +5813,10 @@ "70715947fb": "Setup script cannot be empty", "888b83bf78": "Failed to save setup script", "a49196d538": "Runs when Orca creates a new worktree.", - "d9f2db2738": "project's settings", - "a5bb8c5135": "Saved in this", "savedSetupCommand": "Saved the setup command.", "savedWithSkippedFields_one": "{{count}} unsupported field skipped. Saved the setup command.", - "savedWithSkippedFields_other": "{{count}} unsupported fields skipped. Saved the setup command." + "savedWithSkippedFields_other": "{{count}} unsupported fields skipped. Saved the setup command.", + "savedInProjectSettings": "Saved in this project's settings" }, "SetupScriptPromptCardViews": { "96a7f4198c": "Save local setup", @@ -5700,20 +5824,17 @@ "31b8b01a45": "Settings", "4a98f907ae": "Retry", "0a98169776": "Add a setup command to run when Orca creates new worktrees.", - "8349e3fa4c": ". Save it to run for new worktrees.", - "b56d1322f7": "Found a setup command in", "aef6c0a213": "Save the detected command to run it whenever Orca creates a worktree.", - "660cdc17f8": "setup scripts. Add a local command, or change the source in Settings.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "This repo ignores shared", "0155fb9ed3": "Couldn't verify this repo's setup script right now.", "eefa756190": "Configure manually", "ca4efcbc25": "Save", - "d02e6a42b1": "Detected from", "fdbc6cb064": "Detected setup script", "7275f674cc": "Detected setup", "822ff300ad": "Dismiss", - "5bfd5c8779": "Dismiss setup scripts" + "5bfd5c8779": "Dismiss setup scripts", + "detectedFromSource": "Detected from {{source}}", + "ignoresSharedSetup": "This repo ignores shared orca.yaml setup scripts. Add a local command, or change the source in Settings.", + "foundSetupCommandIn": "Found a setup command in {{source}}. Save it to run for new worktrees." }, "SidebarFeedbackDialog": { "8bf619e4cf": "Cancel", @@ -5895,8 +6016,9 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "Close", "e1a34450fc": "Organize workspaces by status and open workspace cards.", - "81870af08f": "selected", - "c6a77ab0f4": "Workspace board" + "c6a77ab0f4": "Workspace board", + "selectedCount_one": "{{count}} selected", + "selectedCount_other": "{{count}} selected" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "Drop here to pin without changing status.", @@ -5997,7 +6119,8 @@ "2931b42b09": "State: Draft {{value0}}", "e888362def": "State: Closed", "f394b3e86e": "State: Merged", - "af2b07bda5": "State: {{value0}}" + "af2b07bda5": "State: {{value0}}", + "checksStatus": "Checks: {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "Live Ports", @@ -6008,8 +6131,9 @@ "5d1a5d51bb": "Stopped process on {{value0}}", "c89f290e25": "Copied {{value0}}", "d1113f4660": "Failed to open browser", - "fed49903c9": "{{value0}} live {{value1}}", - "unknownProcess": "Unknown process" + "unknownProcess": "Unknown process", + "livePorts_one": "{{count}} live port", + "livePorts_other": "{{count}} live ports" }, "WorktreeContextMenu": { "c39c37676a": "Create a group and move this project into it.", @@ -6054,7 +6178,6 @@ "f9dc6cc5d3": "Rename Project Group", "370c6a55dd": "Clear Filters", "b7acbf038b": "No workspaces found", - "0c6ee14f23": "child", "c83968f87f": "Remove Project", "64e55f7f01": "Remove from group", "4a08fb55f2": "Move to group", @@ -6067,12 +6190,7 @@ "4d7b73658c": "Rename group", "79465e9034": "Group actions for {{value0}}", "bfbedc547b": "Worktrees", - "045a8aed48": "children", "bb85cd86ba": "Create workspace for {{value0}}", - "20bebf9c7f": "Show {{value0}} child workspace", - "c1f4a31623": "Show {{value0}} child workspaces", - "e97297cb75": "Hide {{value0}} child workspace", - "0cd15956d4": "Hide {{value0}} child workspaces", "bd37a57ac8": "Create workspace for {{value0}}", "b667b59632": "Some projects could not be removed from Orca", "groupDeleteFailed": "Failed to delete group", @@ -6083,8 +6201,14 @@ "sidebarRowMissing": "Target no longer exists", "failedUnnestWorkspace": "Failed to unnest workspace", "hostRepairRequired": "Re-pair required", - "groupProjectsRemainedSingular": "{{remaining}} of {{count}} contained project remained after deleting the group.", - "groupProjectsRemainedPlural": "{{remaining}} of {{count}} contained projects remained after deleting the group." + "showChildWorkspaces_one": "Show {{count}} child workspace", + "hideChildWorkspaces_one": "Hide {{count}} child workspace", + "showChildWorkspaces_other": "Show {{count}} child workspaces", + "hideChildWorkspaces_other": "Hide {{count}} child workspaces", + "childCount_one": "{{count}} child", + "childCount_other": "{{count}} children", + "groupProjectsRemained_one": "{{remaining}} of {{count}} contained project remained after deleting the group.", + "groupProjectsRemained_other": "{{remaining}} of {{count}} contained projects remained after deleting the group." }, "WorktreeMetaDialog": { "3db0a2a593": "Cancel", @@ -6148,7 +6272,6 @@ "d40d436fc2": "Could not update worktree visibility. Try again.", "unsupportedHost": "This host doesn't support source-specific worktree visibility. Update Orca on the host to change this setting.", "search": "Search hidden worktrees", - "searchPlaceholder": "Search {{value0}} worktrees…", "noMatches": "No matching worktrees", "allShown": "All discovered worktrees are shown", "noneFound": "No non-Orca worktrees found", @@ -6156,7 +6279,9 @@ "disableSource": "Disable a source to manage its worktrees individually.", "appearWhenDetected": "New worktrees will appear here when Orca detects them.", "openGlobalSettings": "Manage in Global Settings", - "globalSettingsSources": "These sources have a global setting you can override here:" + "globalSettingsSources": "These sources have a global setting you can override here:", + "searchHiddenPlaceholder_one": "Search {{count}} worktree…", + "searchHiddenPlaceholder_other": "Search {{count}} worktrees…" }, "add": { "repo": { @@ -6363,13 +6488,13 @@ "7a8b9c0d1e": "Open settings", "8b9c0d1e2f": "Remove host", "workspacesFailed": "Could not remove {{count}} of this host’s workspaces. The host was kept so you can retry.", - "oneWorkspace": "1 workspace", - "manyWorkspaces": "{{count}} workspaces", - "hostHasWorkspacesDefault": "Removes {{value0}} and its credentials from this computer. Its {{value1}} stay in Orca — remote files are not touched.", - "alsoForgetLocal": "Also remove these {{value0}} from Orca", "advanced": "Advanced", "alsoForgetLocalHint": "Clears them from Orca only. Remote files, worktrees, and branches are left untouched.", - "wslHostEndsTerminalsUnlessShared": "Removes {{value0}} from Orca. Unless another Orca that’s open on this computer is using it, this also ends its open terminals and stops Orca’s server in that distro. Files in the distro are untouched." + "wslHostEndsTerminalsUnlessShared": "Removes {{value0}} from Orca. Unless another Orca that’s open on this computer is using it, this also ends its open terminals and stops Orca’s server in that distro. Files in the distro are untouched.", + "hostKeepsWorkspaces_one": "Removes {{host}} and its credentials from this computer. Its {{count}} workspace stays in Orca — remote files are not touched.", + "hostKeepsWorkspaces_other": "Removes {{host}} and its credentials from this computer. Its {{count}} workspaces stay in Orca — remote files are not touched.", + "alsoRemoveWorkspaces_one": "Also remove this workspace from Orca", + "alsoRemoveWorkspaces_other": "Also remove these {{count}} workspaces from Orca" }, "HostRenameDialog": { "1a2b3c4d5e": "Rename host", @@ -6442,7 +6567,7 @@ "current": "Current", "searchPlaceholder": "Search worktrees...", "empty": "No matching eligible worktrees.", - "setParentFor": "Set parent for" + "setParentForName": "Set parent for {{name}}" }, "WorktreeCardStatusSlot": { "branchIdentity": "Branch", @@ -6452,12 +6577,12 @@ }, "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "Hide external worktrees permanently for {{value0}}", - "2a6f31d8c7": "hidden worktree", - "5b90e4a2f6": "hidden worktrees", - "7f18c5b0d3": "Review {{value0}} hidden worktree in {{value1}}", - "4e2b7a9c05": "Review {{value0}} hidden worktrees in {{value1}}", "c3e8a1f4b2": "Don't show again", - "6c07f3a91e": "{{value0}} on {{value1}}" + "6c07f3a91e": "{{value0}} on {{value1}}", + "hiddenWorktreesNoun_one": "hidden worktree", + "hiddenWorktreesNoun_other": "hidden worktrees", + "reviewHiddenWorktrees_one": "Review {{count}} hidden worktree in {{scope}}", + "reviewHiddenWorktrees_other": "Review {{count}} hidden worktrees in {{scope}}" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} disconnected", @@ -6548,8 +6673,9 @@ "sshConfigPickerRetry": "Try again", "sshConfigPickerResolving": "Reading…", "pairingHelpShareComputer": "Create this under Settings → Remote Orca Servers → Share this computer on the other computer.", - "sshImportSyncedPlural": "Added {{count}} hosts to Orca.", - "sshImportSyncedSingular": "Added {{count}} host to Orca." + "sshImportSynced_one": "Added {{count}} host to Orca.", + "sshImportSynced_other": "Added {{count}} hosts to Orca.", + "sshConfigPickerInvalidResponse": "Invalid SSH config host response" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} is no longer a saved SSH host, so this workspace is no longer connected to a live host. It can only be removed from Orca — files and branches on the remote are left untouched.", @@ -6574,11 +6700,12 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "No workspaces match", - "4d96c209d6": "{{value0}} of {{value1}} workspaces match", "c0cd6bdf6c": "Search workspaces", "3b7ea51793": "Clear search", "7f1c2e94a5": "Search text is too long — the board is unfiltered", - "9a4d0f6b21": "Too long" + "9a4d0f6b21": "Too long", + "workspacesMatch_one": "{{matchCount}} of {{count}} workspace matches", + "workspacesMatch_other": "{{matchCount}} of {{count}} workspaces match" }, "WorktreeCardSshHostControl": { "connectFailed": "SSH connection failed", @@ -6676,11 +6803,12 @@ "developerToolsTitle": "Install Apple's command line tools", "developerToolsBody": "Git needs Apple's developer tools. Run this in Terminal, then switch back to Orca. It will check again automatically.", "affectedOne": "Worktree scan paused for {{value0}}", - "affectedMany": "Worktree scan paused for {{value0}} projects", "copyCommand": "Copy command", "copied": "Command copied", "retry": "Retry now", - "restored": "Git is working again. Worktrees refreshed." + "restored": "Git is working again. Worktrees refreshed.", + "affectedProjects_one": "Worktree scan paused for {{count}} project", + "affectedProjects_other": "Worktree scan paused for {{count}} projects" }, "manualSortSwitch": { "title": "Sort changed to Manual", @@ -6728,7 +6856,8 @@ "wslHostRemoval": { "keptForOthers": "Removed from this Orca. The host keeps running for {{value0}}.", "partial": "The host was removed, but something in the distro is still running: {{value0}}", - "pending": "Orca didn’t remove the host yet: {{value0}} Remove it again to retry, or connect it to keep it." + "pending": "Orca didn’t remove the host yet: {{value0}} Remove it again to retry, or connect it to keep it.", + "unavailable": "WSL hosts are not available on this computer." }, "addRepoWslHostFolderPicker": { "otherDistro": "That folder is in {{value0}}, not {{value1}}.", @@ -6769,6 +6898,42 @@ "openingProject": "Opening project...", "openingFolder": "Opening folder...", "chooseFolder": "Choose a folder..." + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "This host does not support nested worktree deletion." + }, + "WorktreeCardHelpers": { + "checksPassing": "Passing", + "checksFailing": "Failing", + "checksPending": "Pending", + "conflictMerging": "Merging", + "conflictRebasing": "Rebasing", + "conflictCherryPicking": "Cherry-picking" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "{{name}} workspace" + }, + "workspaceKanbanStatus": { + "defaultLabel": "Status {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_one": "{{preview}}, +{{count}} more", + "sparsePreviewMore_other": "{{preview}}, +{{count}} more" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "MR details unavailable", + "prDetailsUnavailable": "PR details unavailable", + "loadingMr": "Loading MR...", + "loadingPr": "Loading PR..." + }, + "HostSectionHeader": { + "workspaceCount_one": "{{count}} workspace", + "workspaceCount_other": "{{count}} workspaces" + }, + "titleDerivedAgentRows": { + "needsInput": "Needs input", + "running": "Running", + "idle": "Idle" } }, "shared": { @@ -14360,17 +14525,8 @@ "saveLocation": "Set location" }, "SmartWorkspaceNameField": { - "2a0d535f69": "Create new branch", - "a44229ce4d": "as workspace name", - "766083a596": "\"", - "34ca97bce3": "\"", - "b1a7d679ba": "Use", "e57c53727c": "Add project...", - "a76fcb4fa0": "Switch to", - "eadf877af5": "Keep", "6859e2896c": "Cancel", - "9ef1a7c4b0": ", which is different from the selected project.", - "ad188067ae": "The GitHub URL points to", "4bd98f1091": "Switch project?", "0c9e668e3a": "Clear", "7199ff19c7": "Clear selected source", @@ -14389,7 +14545,6 @@ "fda67f0b61": "current project", "3e8bb1176a": "Connect Linear in Settings to search issues.", "switchTaskSourceTitle": "Switch task source?", - "differentTaskSource": ", which is different from the selected task source.", "currentTaskSource": "current task source", "placeholderNameOrLinearUrl": "Type a name, Linear URL, or Jira URL", "placeholderWorkspaceName": "Type a workspace name", @@ -14418,7 +14573,13 @@ "emoji": "Emoji", "loadingLinearIssue": "Loading Linear issue…", "linearLoginUnreadableTitle": "Reconnect Linear", - "linearLoginUnreadableBody": "Unable to read saved Linear login. Reconnect it in Settings." + "linearLoginUnreadableBody": "Unable to read saved Linear login. Reconnect it in Settings.", + "keepRepo": "Keep {{name}}", + "switchToRepo": "Switch to {{name}}", + "crossRepoDifferentTaskSource": "The GitHub URL points to {{repo}}, which is different from the selected task source.", + "crossRepoDifferentProject": "The GitHub URL points to {{repo}}, which is different from the selected project.", + "useAsWorkspaceName": "Use \"{{name}}\" as workspace name", + "createNewBranchNamed": "Create new branch {{name}}" }, "ProjectCombobox": { "empty": "No projects match your search.", @@ -14432,6 +14593,11 @@ "listLabel": "Run targets", "label": "Run on", "browse": "Browse run targets" + }, + "projectCombobox": { + "recentHeading": "Recent", + "projectsHeading": "Projects", + "foldersHeading": "Folders" } } }, @@ -16031,7 +16197,10 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} child {{value2}}" + "hideChildAgents_one": "Hide {{count}} child agent", + "hideChildAgents_other": "Hide {{count}} child agents", + "showChildAgents_one": "Show {{count}} child agent", + "showChildAgents_other": "Show {{count}} child agents" }, "DashboardAgentRow": { "912e136cd9": "Send", @@ -16039,7 +16208,13 @@ "a41fb5376e": "Collapse details", "5ae84475cc": "Dismiss", "b06e13fcf7": "Dismiss agent", - "0272969e28": "Send to this agent" + "0272969e28": "Send to this agent", + "justNow": "just now", + "timeAgo": "{{duration}} ago", + "dispatchedAgents_one": "{{agentType}} - dispatched {{count}} agent", + "dispatchedAgents_other": "{{agentType}} - dispatched {{count}} agents", + "startedAgo": "started {{time}}", + "doneAgo": "done {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "interrupted", @@ -17155,18 +17330,19 @@ "activityOptionsActive": "Activity options ({{value0}})" }, "clearCompleted": { - "clearedOne": "Cleared 1 completed agent", - "clearedMany": "Cleared {{count}} completed agents", - "undo": "Undo" + "undo": "Undo", + "cleared_one": "Cleared {{count}} completed agent", + "cleared_other": "Cleared {{count}} completed agents" }, "standaloneWorktree": { "floatingTerminal": "Floating terminal", "standaloneTerminal": "Standalone terminal" }, "ActivityTitlebarControls": { - "f915168c8e": "unread", "d6a8de3934": "agents", - "dc708f3eff": "Close agents" + "dc708f3eff": "Close agents", + "unreadCount_one": "{{count}} unread", + "unreadCount_other": "{{count}} unread" }, "ActivityScopeFilterControls": { "resetScope": "Show all hosts and projects", @@ -17961,6 +18137,16 @@ "unreachable": "Couldn't reach Jira. Check your connection and try again.", "loadFailed": "Couldn't load Jira issues. Try again in a moment.", "errorWithCode": "Error {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "Can’t run “{{action}}” — workspace is still loading.", + "noActiveWorkspace": "Can’t run “{{action}}” — no workspace is active.", + "workspaceDisconnected": "Can’t run “{{action}}” — workspace is disconnected.", + "noTabGroup": "Can’t run “{{action}}” — no tab group is available.", + "noMovableChat": "Can’t run “{{action}}” — no movable chat is active.", + "clientUnsupported": "Can’t run “{{action}}” — this client and runtime do not support it." + } } }, "i18n": { @@ -19175,8 +19361,6 @@ "none": "Has none" }, "idleSignalField": "Idle signal", - "selectionVanishedOne": "1 selected workspace no longer exists.", - "selectionVanished": "{{value0}} selected workspaces no longer exist.", "updatedAgo": "Updated {{value0}}", "refreshing": "Refreshing…", "refreshingProgress": "Refreshing {{value0}}/{{value1}}", @@ -19191,12 +19375,6 @@ "gitStatusCheckFailed": "Git status check failed", "gitStatusUnverified": "Git status could not be verified", "deleteAnyway": "Delete anyway", - "forceDeleteProjectionOne": "{{count}} workspace currently shows risk and may need a force delete", - "forceDeleteProjectionMany": "{{count}} workspaces currently show risk and may need a force delete", - "selectionWithheldOne": "1 selected workspace is hidden by the current filters and was deselected.", - "selectionWithheld": "{{value0}} selected workspaces are hidden by the current filters and were deselected.", - "selectAllCountOne": "Select 1 safety-checked workspace", - "selectAllCount": "Select all {{value0}} safety-checked workspaces", "appliedFilters": "Applied filters", "removeFilter": "Remove filter {{value0}}", "chip": { @@ -19240,18 +19418,28 @@ "locked": "Locked", "retainedAgents": "Finished agents" } - } + }, + "forceDeleteRisk_one": "{{count}} workspace currently shows risk and may need a force delete", + "forceDeleteRisk_other": "{{count}} workspaces currently show risk and may need a force delete", + "selectionVanishedCount_one": "{{count}} selected workspace no longer exists.", + "selectionVanishedCount_other": "{{count}} selected workspaces no longer exist.", + "selectionWithheldCount_one": "{{count}} selected workspace is hidden by the current filters and was deselected.", + "selectionWithheldCount_other": "{{count}} selected workspaces are hidden by the current filters and were deselected.", + "selectAllSafetyChecked_one": "Select {{count}} safety-checked workspace", + "selectAllSafetyChecked_other": "Select all {{count}} safety-checked workspaces" }, "scan": { "progress": "Scanning workspaces ({{value0}}/{{value1}})", "singleError": "Could not check {{value0}}: {{value1}}. Some workspaces may be missing. Refresh to try again.", - "moreErrors": ", +{{value0}} more", - "multipleErrors": "Could not check {{value0}} repositories ({{value1}}{{value2}}). Some workspaces may be missing. Refresh to try again.", "noWorkspaces": "No workspaces found.", "fallbackRepository": "a repository", "gitListFailed": "Git could not list worktrees", - "readyOne": "1 workspace found.", - "readyMany": "{{value0}} workspaces found." + "multipleErrorsWithMore_one": "Could not check {{count}} repository ({{names}}, +{{moreCount}} more). Some workspaces may be missing. Refresh to try again.", + "multipleErrorsWithMore_other": "Could not check {{count}} repositories ({{names}}, +{{moreCount}} more). Some workspaces may be missing. Refresh to try again.", + "multipleErrorsCount_one": "Could not check {{count}} repository ({{names}}). Some workspaces may be missing. Refresh to try again.", + "multipleErrorsCount_other": "Could not check {{count}} repositories ({{names}}). Some workspaces may be missing. Refresh to try again.", + "readyCount_one": "{{count}} workspace found.", + "readyCount_other": "{{count}} workspaces found." }, "relativeTime": { "never": "Never", @@ -20376,7 +20564,6 @@ "repositoryLoading": "Repository identity is still loading. Try again once it is available.", "duplicate": "This link is already attached.", "title": "Linked work", - "count": "{{count}} linked", "empty": "Keep every review and task for this workspace together.", "reviews": "Reviews", "tasks": "Issues & tasks", @@ -20384,7 +20571,6 @@ "open": "Open link", "unlinkItem": "Unlink {{label}}", "unlink": "Unlink from workspace", - "show": "Show {{count}} linked reviews and tasks", "details": "Workspace details", "description": "Attach reviews and tasks, and keep notes for this workspace.", "commentHelp": "Markdown supported. Enter or {{shortcut}} to save · Shift+Enter for a new line.", @@ -20437,7 +20623,11 @@ "checksPassing": "Passing", "checksUnknown": "Unknown", "checksNeutral": "Neutral", - "allReviewChecks": "Reviews: {{count}} · Checks: {{status}}" + "allReviewChecks": "Reviews: {{count}} · Checks: {{status}}", + "showLinked_one": "Show {{count}} linked review or task", + "showLinked_other": "Show {{count}} linked reviews and tasks", + "linkedCount_one": "{{count}} linked", + "linkedCount_other": "{{count}} linked" }, "attachments": { "updateRuntime": "Update the remote runtime to change workspace links", @@ -20619,8 +20809,9 @@ }, "compact": { "linkedAndUnavailable": "{{value0}} in linked worktrees · {{value1}} unavailable", - "linkedAndScanned": "{{value0}} in linked worktrees · {{value1}} workspaces", - "linked": "Linked" + "linked": "Linked", + "linkedAndScannedCount_one": "{{size}} in linked worktrees · {{count}} workspace", + "linkedAndScannedCount_other": "{{size}} in linked worktrees · {{count}} workspaces" }, "savedScan": { "folderDetailsUnavailable": "Folder details are not saved with past scans. Refresh to inspect this workspace." diff --git a/src/renderer/src/i18n/locales/es.json b/src/renderer/src/i18n/locales/es.json index 65315828bc2..5e64ba77eeb 100644 --- a/src/renderer/src/i18n/locales/es.json +++ b/src/renderer/src/i18n/locales/es.json @@ -1926,7 +1926,6 @@ "ba64270bdb": "Configurar agentes", "ab63f25397": "Abrir configuración del agente", "0c5d6a479c": "[Opcional]", - "b5a0796911": "Conectar", "dccd26d4e4": "Elige proyecto", "d6b0a96f32": "Agregar proyecto", "969a8bff66": "Proyecto", @@ -1990,7 +1989,8 @@ "runSetupNow": "Ejecutar configuración ahora", "runCommandsNow": "Ejecutar comandos ahora", "skipForNow": "Omitir por ahora", - "skipCommands": "Omitir comandos" + "skipCommands": "Omitir comandos", + "connectProject": "Conectar {{name}}" }, "NewWorkspaceComposerModal": { "createWorktree": "Crear worktree", @@ -3410,21 +3410,23 @@ }, "drop": { "handler": { - "1e072f611e": "No se pudo subir {{value0}} {{value1}}.", "0c77693641": "El worktree no está listo; inténtalo de nuevo en un momento.", "ce8248b835": "Ruta del worktree no disponible.", "internalTooManyPaths": "El drop contiene demasiadas rutas para pegarlas de forma segura en el terminal.", "internalPathsTooLarge": "La lista de rutas del drop es demasiado grande para pegarla de forma segura en el terminal.", "internalHostMismatch": "Arrastra archivos del mismo host que este terminal.", - "b4cf68e889": "Se omitió {{value0}} {{value1}}.", "writeTimeout": "Se canceló el drop de archivos: el terminal no aceptó la ruta antes del tiempo límite de seguridad.", "writeRejected": "Se canceló el drop de archivos: el terminal no pudo aceptar la ruta.", - "skippedSymlinkSingular": "Se omitió {{count}} symlink.", - "skippedSymlinkPlural": "Se omitieron {{count}} symlinks.", - "uploadingFileSingular": "Subiendo {{count}} archivo al host…", - "uploadingFilePlural": "Subiendo {{count}} archivos al host…", - "uploadingFileToRemoteSingular": "Subiendo {{count}} archivo al host remoto…", - "uploadingFileToRemotePlural": "Subiendo {{count}} archivos al host remoto…" + "skippedSymlinks_one": "Se omitió {{count}} enlace simbólico.", + "skippedSymlinks_other": "Se omitieron {{count}} enlaces simbólicos.", + "skippedItems_one": "Se omitió {{count}} elemento.", + "skippedItems_other": "Se omitieron {{count}} elementos.", + "failedUploads_one": "No se pudo subir {{count}} archivo.", + "failedUploads_other": "No se pudieron subir {{count}} archivos.", + "uploadingFiles_one": "Subiendo {{count}} archivo al entorno de ejecución…", + "uploadingFiles_other": "Subiendo {{count}} archivos al entorno de ejecución…", + "uploadingFilesToRemote_one": "Subiendo {{count}} archivo al host remoto…", + "uploadingFilesToRemote_other": "Subiendo {{count}} archivos al host remoto…" } } }, @@ -3563,10 +3565,15 @@ "sessionQueued": "Sesión en cola", "openSupportedWorkspace": "Abre un espacio de trabajo antes de reanudar una sesión.", "sessionHostMismatchUnsupported": "Esta sesión pertenece a un host diferente. Suéltala en un espacio de trabajo del mismo host.", - "oldPayload": "Esta sesión se arrastró desde una ventana de Orca más antigua. Reanúdala desde el historial de sesiones." + "oldPayload": "Esta sesión se arrastró desde una ventana de Orca más antigua. Reanúdala desde el historial de sesiones.", + "legacyDragCannotRetarget": "Esta sesión se arrastró desde una ventana de una versión anterior de Orca, por lo que Orca no puede reasignarla a la cuenta de Codex seleccionada. Reanúdala desde el panel Historial de sesiones.", + "legacyDragPrepareFailed": "Orca no pudo preparar esta sesión antigua de Codex. Vuelve a intentar reanudarla." }, "TabGroupDropOverlay": { "paneColumnLabel": "Nueva división" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "El entorno de ejecución vinculado no pudo duplicar la pestaña del navegador administrado." } }, "bar": { @@ -3761,6 +3768,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "Anfitrión no disponible", "7c129b08ff": "Cargando host…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "Esta sesión no se puede abrir en la CLI." + }, + "tabCreateEntry": { + "fileNotFound": "Archivo no encontrado: {{path}}", + "cannotOpenDirectory": "No se puede abrir un directorio: {{path}}", + "parentNotDirectory": "No se puede crear el archivo porque {{path}} no es un directorio.", + "fileNoLongerExists": "El archivo ya no existe: {{path}}", + "noActiveWorktree": "No hay ningún worktree activo." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "Las rutas de archivo no pueden contener caracteres de control.", + "enterAUrlOrFilePath": "Introduce una URL o una ruta de archivo.", + "homeRelativePathsAreNotSupported": "Aquí no se admiten rutas relativas al directorio personal.", + "enterAFilePathNotA": "Introduce una ruta de archivo, no una ruta de directorio.", + "enterAnAbsoluteFilePath": "Introduce una ruta de archivo absoluta.", + "enterAnAbsolutePathForThis": "Introduce una ruta absoluta de este equipo.", + "enterARelativeFilePath": "Introduce una ruta de archivo relativa.", + "windowsDrivePathsAreNotSupported": "Aquí no se admiten rutas de unidades de Windows.", + "uncPathsAreNotSupportedHere": "Aquí no se admiten rutas UNC.", + "filePathsCannotContainEmptySegments": "Las rutas de archivo no pueden contener segmentos vacíos.", + "filePathsCannotContainDotSegments": "Las rutas de archivo no pueden contener segmentos . ni ..", + "filePathsCannotContainTildeSegments": "Las rutas de archivo no pueden contener segmentos ~." } } }, @@ -3788,15 +3819,16 @@ "4ebf90c12e": "No se detectaron puertos externos", "7dac3ecc9d": "Puertos externos", "95495019ed": "Escaneo de puertos no disponible en {{value0}}: {{value1}}", - "a8e4bdb412": "· {{value0}} externo", "c22ea609fd": "Puertos", - "ca41be2802": "Puertos: {{value0}} espacio de trabajo {{value1}}{{value2}}", - "b8bc3e420a": "Puertos, {{value0}} espacio de trabajo {{value1}}", "3a87d54dfb": "No se detectaron puertos del espacio de trabajo", "c174bbbfed": "Buscando puertos del espacio de trabajo...", - "8caaa86e9a": "puertos", - "45834a9ace": "puerto", - "2b84c4d11f": "{{value0}} espacio de trabajo · {{value1}} externo" + "2b84c4d11f": "{{value0}} espacio de trabajo · {{value1}} externo", + "portsAria_one": "Puertos, {{count}} puerto del espacio de trabajo", + "portsAria_other": "Puertos, {{count}} puertos del espacio de trabajo", + "portsTooltipWithExternal_one": "Puertos — {{count}} puerto del espacio de trabajo · externos: {{externalCount}}", + "portsTooltipWithExternal_other": "Puertos — {{count}} puertos del espacio de trabajo · externos: {{externalCount}}", + "portsTooltip_one": "Puertos — {{count}} puerto del espacio de trabajo", + "portsTooltip_other": "Puertos — {{count}} puertos del espacio de trabajo" }, "ResourceUsageStatusSegment": { "946d9f94d0": "Cancelar", @@ -3805,7 +3837,6 @@ "27a74f91f0": "No hay nada ejecutándose ahora mismo", "298f4be7f2": "CPU", "2aa2de6cb9": "Nombre", - "30ff2c3c31": "{{value0}} huérfano", "1fedf94eae": "Carga de CPU combinada. Los valores superiores al 100% significan que más de un núcleo está trabajando a la vez.", "e7cf14ec78": "Sesiones de terminal no disponibles. La lista puede estar obsoleta.", "93b0de3c21": "Reiniciar", @@ -3833,12 +3864,13 @@ "d406915b78": "Renderer", "81cd37af99": "Principal", "fa6d36758d": "Terminar sesión {{value0}}", - "b8f4a2c1d0e3": "{{value0}} huérfanos", - "c7e3b1a0d9f2": "Terminar {{value0}} terminal huérfano", - "d8f4c2b1e0a3": "Terminar {{value0}} terminales huérfanos", "e9a5d3c2b1f0": "¿Terminar {{value0}}?", "8a0472ab54": "No se pudo contactar con {{value0}}; se desconocen sus recursos.", - "1ea066b73f": "Actualiza {{value0}} para ver sus recursos." + "1ea066b73f": "Actualiza {{value0}} para ver sus recursos.", + "endOrphanTerminals_one": "Terminar {{count}} terminal huérfano", + "endOrphanTerminals_other": "Terminar {{count}} terminales huérfanos", + "orphanCount_one": "{{count}} huérfano", + "orphanCount_other": "{{count}} huérfanos" }, "SshStatusSegment": { "3ad70e0365": "Administrar hosts remotos…", @@ -3906,10 +3938,6 @@ "3325d996cb": "Actualizar rate limits", "cd9d7b40ff": "Reiniciar {{value0}} sesiones", "6cd6650b4c": "Reiniciar sesión", - "1446d0d8a0": "{{value0}} sesiones de Codex siguen en la cuenta anterior.", - "605901a495": "1 sesión de Codex sigue en la cuenta anterior", - "5e5f9f5160": "1 reset de rate limit disponible", - "5ecae9197c": "{{value0}} resets de rate limit disponibles", "25d8bbde69": "Aplicando reset…", "e159fc1fd7": "Reiniciar ahora", "972a1ff497": "¿Restablecer límites de Codex?", @@ -3926,7 +3954,11 @@ "codexSignInError": "No se pudo iniciar sesión en Codex. Inténtalo de nuevo.", "cursorUsageMenu": "Uso de Cursor", "hiddenUsageProviders": "También: {{value0}}", - "zcodeUsageMenu": "Uso del código Z" + "zcodeUsageMenu": "Uso del código Z", + "rateLimitResetsAvailable_one": "{{count}} reinicio de rate limit disponible", + "rateLimitResetsAvailable_other": "{{count}} reinicios de rate limit disponibles", + "staleCodexSessions_one": "{{count}} sesión de Codex sigue en la cuenta anterior.", + "staleCodexSessions_other": "{{count}} sesiones de Codex siguen en la cuenta anterior." }, "StatusBarUsageEmptyCta": { "828c764a79": "Conectar una cuenta", @@ -3980,11 +4012,8 @@ "6f8f6a6b04": "Filtrar espacios de trabajo", "5caccea440": "Eliminar seleccionados", "e4a12c455b": "Limpiar", - "0cb1501ccf": "recuperable", - "65402b7192": "seleccionado", "43171f3e60": "Espacios de trabajo", "09960d86bd": "escaneado", - "63efebe0e6": "{{value0}} {{value1}} eliminado de Space.", "eee5240810": "Espacios de trabajo eliminados", "9afc97f9a3": "Espacio de trabajo eliminado", "792a214457": "Eliminar espacio de trabajo", @@ -3992,7 +4021,6 @@ "9155381019": "Sparse", "f39d291997": "Seleccionar", "16988df079": "No se encontraron archivos.", - "b25c2c1086": "elementos de nivel superior", "d3f9c69ddc": "Zoom", "ef890d31b9": "Todo", "c28643d3da": "Ir al espacio de trabajo", @@ -4031,8 +4059,15 @@ "c5135e7e4a": "Escaneando tamaños de espacios de trabajo. Puedes salir de esta página.", "0990a63160": "Aún no hay tamaños de espacio de trabajo escaneados.", "977bdf9a36": "No hay elementos de nivel superior para mostrar.", - "131662ac65": "{{value0}} abierto", - "0d1c78d749": "Seleccione {{value0}}" + "0d1c78d749": "Seleccione {{value0}}", + "removedFromSpace_one": "Se quitó {{count}} espacio de trabajo de Espacio.", + "removedFromSpace_other": "Se quitaron {{count}} espacios de trabajo de Espacio.", + "topLevelItems_one": "{{formattedCount}} elemento de nivel superior", + "topLevelItems_other": "{{formattedCount}} elementos de nivel superior", + "selectedCount_one": "{{count}} seleccionado", + "selectedCount_other": "{{count}} seleccionados", + "reclaimableSize": "{{size}} recuperables", + "scanning": "Escaneando" }, "ports": { "status": { @@ -4046,7 +4081,8 @@ "e4a709548c": "No se pudieron actualizar los puertos", "acdb6df590": "Proceso detenido en {{value0}}", "480d8f2347": "Copiado {{value0}}", - "b854ec9ff5": "No se pudo abrir el navegador" + "b854ec9ff5": "No se pudo abrir el navegador", + "unknownProcess": "Proceso desconocido" } } } @@ -4063,8 +4099,6 @@ "7ad719c4bf": "Limitado", "e740f92596": "Error al actualizar", "8418ec448d": "No se pudo actualizar el uso de {{value0}}. Es posible que las sesiones de agentes sigan iniciadas.", - "45198c7d95": "1 reset de rate limit disponible", - "bce421cba3": "{{value0}} resets de rate limit disponibles", "7ec6e030a0": "El siguiente vence ahora", "d1e442a9e5": "Vence ahora", "6cf9eaed10": "El siguiente vence en {{value0}}", @@ -4116,7 +4150,14 @@ "claudeNoUsageFromHost": "Sin uso desde {{server}}", "claudeUnknownOnHost": "El uso de Claude no está disponible desde {{server}}. Puede que no haya una sesión iniciada allí o que use facturación por clave de API.", "remoteOwnerUnreachable": "Uso no disponible: no se puede acceder a {{server}}", - "remoteOwnerNoUsage": "Uso no disponible: {{server}} no informa el uso. Actualice Orca en ese host." + "remoteOwnerNoUsage": "Uso no disponible: {{server}} no informa el uso. Actualice Orca en ese host.", + "justNow": "ahora mismo", + "minutesAgo": "hace {{minutes}} min", + "hoursAgo": "hace {{hours}} h", + "updatedAgo": "Actualizado {{time}}", + "notYetUpdated": "Aún no se ha actualizado", + "rateLimitResetsAvailable_one": "{{count}} reinicio de rate limit disponible", + "rateLimitResetsAvailable_other": "{{count}} reinicios de rate limit disponibles" }, "SshTargetStatusRow": { "sshHost": "Host SSH" @@ -4159,12 +4200,12 @@ "RemoteServerUpdateStatusSegment": { "updating": "Updating {{value0}}/{{value1}}", "updatingTooltip": "Las actualizaciones remotas del servidor Orca están en curso", - "failed": "Fallaron {{value0}} actualizaciones de servidores", "failedTooltip": "Abra las actualizaciones del servidor remoto Orca para revisarlas y volver a intentarlas", - "updated": "{{value0}} servers updated", "updatedTooltip": "Actualizaciones remotas del servidor Orca completadas", - "failedOne": "1 actualización del servidor falló", - "updatedOne": "1 server updated" + "failedCount_one": "Falló {{count}} actualización de servidor", + "failedCount_other": "Fallaron {{count}} actualizaciones de servidores", + "updatedCount_one": "{{count}} servidor actualizado", + "updatedCount_other": "{{count}} servidores actualizados" }, "resource": { "memory": { @@ -4172,7 +4213,10 @@ "workingSetDescription": "Suma del conjunto de trabajo (WS): las páginas residentes en RAM en este momento. Las páginas compartidas pueden aparecer en más de un proceso, y la memoria que Windows ha paginado a disco no se cuenta aquí.", "privateBytesDescription": "Suma de bytes privados: la memoria que estos procesos han confirmado, contada tanto si está residente como si está paginada a disco. Es lo que el host imputa a su límite de confirmación, así que sigue subiendo mientras el conjunto de trabajo de arriba se reduce por la paginación.", "footprintDescription": "Suma de la huella de memoria, la misma cifra que muestra el Monitor de Actividad: la memoria propia de cada proceso, incluida la memoria gráfica. Las páginas compartidas entre procesos no se cuentan dos veces.", - "rssDescription": "Suma del tamaño del conjunto residente (RSS). Las páginas compartidas o con alias pueden aparecer en más de un proceso." + "rssDescription": "Suma del tamaño del conjunto residente (RSS). Las páginas compartidas o con alias pueden aparecer en más de un proceso.", + "memColumn": "Mem.", + "memorySummary": "Σ Memoria", + "privateSummary": "Σ Privada" } }, "manager": { @@ -4194,38 +4238,39 @@ "SkillUpdateStatusSegment": { "runningLabel": "Updating skills", "runningOne": "Updating {{value0}}…", - "runningMany": "Updating {{value0}} skills…", "runningAria": "Actualizando habilidades. Haz clic para ver los detalles.", "successLabel": "Skills updated", "successAria": "Habilidades actualizadas. Haz clic para ver los detalles.", "attentionAria": "Se omitieron algunas actualizaciones de skills. Haz clic para abrir los detalles.", "attentionLabel": "Skills requieren atención", - "attentionTooltip": "Se omitieron algunas actualizaciones de skills — haz clic para ver los detalles" + "attentionTooltip": "Se omitieron algunas actualizaciones de skills — haz clic para ver los detalles", + "runningSkills_one": "Actualizando {{count}} skill…", + "runningSkills_other": "Actualizando {{count}} skills…" }, "NativeChatResumeStatusSegment": { - "failedLabelOne": "1 chat no pudo reanudarse", - "failedLabel": "{{value0}} chats no pudieron reanudarse", - "failedAriaOne": "1 chat no pudo reanudarse. Haz clic para ver los detalles.", - "failedAria": "{{value0}} chats no pudieron reanudarse. Haz clic para ver los detalles.", "failedTooltip": "Chats que Orca no pudo reanudar tras el reinicio. Haz clic para ver los detalles.", - "checkLabelOne": "1 chat por revisar", - "checkLabel": "{{value0}} chats por revisar", - "checkAriaOne": "1 chat por revisar tras la reanudación. Haz clic para ver los detalles.", - "checkAria": "{{value0}} chats por revisar tras la reanudación. Haz clic para ver los detalles.", "checkTooltip": "Chats que Orca no pudo reanudar, o no pudo confirmar que reanudó, tras el reinicio. Haz clic para ver los detalles.", "resumingTooltip": "Restaurando los chats interrumpidos y pidiéndoles que continúen…", - "labelOne": "1 chat para reanudar", - "label": "{{value0}} chats para reanudar", - "ariaLabelOne": "1 chat disponible para reanudar", - "ariaLabel": "{{value0}} chats disponibles para reanudar", "tooltip": "Abrir chats interrumpidos disponibles para reanudar", "resumingProgressLabel": "Reanudando chats {{value0}}/{{value1}}", "resumingProgressAria": "Reanudando chats, {{value0}} de {{value1}} listos. Haz clic para ver los detalles.", - "resumedLabelOne": "1 chat reanudado", - "resumedLabel": "{{value0}} chats reanudados", - "resumedAriaOne": "1 chat reanudado. Haz clic para verlo.", - "resumedAria": "{{value0}} chats reanudados. Haz clic para verlos.", - "resumedTooltip": "Chats que Orca reanudó tras el reinicio. Haz clic para verlos." + "resumedTooltip": "Chats que Orca reanudó tras el reinicio. Haz clic para verlos.", + "chatsFailedLabel_one": "No se pudo reanudar {{count}} chat", + "chatsFailedLabel_other": "No se pudieron reanudar {{count}} chats", + "chatsFailedAria_one": "No se pudo reanudar {{count}} chat. Haz clic para ver los detalles.", + "chatsFailedAria_other": "No se pudieron reanudar {{count}} chats. Haz clic para ver los detalles.", + "resumedLabelCount_one": "{{count}} chat reanudado", + "resumedLabelCount_other": "{{count}} chats reanudados", + "resumedAriaCount_one": "{{count}} chat reanudado. Haz clic para verlo.", + "resumedAriaCount_other": "{{count}} chats reanudados. Haz clic para verlos.", + "checkLabelCount_one": "{{count}} chat por revisar", + "checkLabelCount_other": "{{count}} chats por revisar", + "checkAriaCount_one": "{{count}} chat por revisar tras reanudarlo. Haz clic para ver los detalles.", + "checkAriaCount_other": "{{count}} chats por revisar tras reanudarlos. Haz clic para ver los detalles.", + "labelCount_one": "{{count}} chat por reanudar", + "labelCount_other": "{{count}} chats por reanudar", + "ariaLabelCount_one": "{{count}} chat disponible para reanudar", + "ariaLabelCount_other": "{{count}} chats disponibles para reanudar" }, "RuntimeHostStatusRow": { "previous_connection_closed": "La conexión anterior cerrada.", @@ -4256,6 +4301,81 @@ } } } + }, + "mergeSnapshotAndSessions": { + "unattributed": "Sin asignar" + }, + "resourceSessionLabels": { + "terminalNumber": "Terminal {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "sesión {{id}}", + "unknownSession": "(sesión desconocida)", + "unknown": "desconocido" + }, + "runtimeTargets": { + "wslDefault": "WSL predeterminado" + }, + "floatingWorkspace": { + "minimize": "Minimizar espacio de trabajo flotante", + "show": "Mostrar espacio de trabajo flotante" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "El propietario del espacio de trabajo ya no está disponible" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "Sincronizado con upstream", + "aheadAndBehind": "{{ahead}} por delante, {{behind}} por detrás", + "ahead": "{{ahead}} por delante", + "behind": "{{behind}} por detrás", + "activeAgents_one": "{{count}} agente activo", + "activeAgents_other": "{{count}} agentes activos", + "completedAgents_one": "{{count}} agente completado", + "completedAgents_other": "{{count}} agentes completados", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_one": "{{count}} agente completado conservado", + "completedAgentsRetained_other": "{{count}} agentes completados conservados", + "noTrackedAgents": "No hay agentes registrados en ejecución", + "noTerminalTabs": "No hay pestañas de terminal", + "liveTerminalTabs_one": "{{live}} en ejecución de {{count}} pestaña de terminal", + "liveTerminalTabs_other": "{{live}} en ejecución de {{count}} pestañas de terminal", + "gitStatusUnavailable": "Estado de Git no disponible: {{error}}", + "gitStatusNotLoaded": "El estado de Git aún no se ha cargado", + "noUncommittedFiles": "No hay archivos con cambios sin commit", + "changedFiles_one": "{{count}} archivo modificado", + "changedFiles_other": "{{count}} archivos modificados", + "noEditorFiles": "No hay archivos abiertos en el editor", + "editorFilesOpen_one": "{{count}} archivo abierto en el editor", + "editorFilesOpen_other": "{{count}} archivos abiertos en el editor", + "dirtyOfOpen": "{{dirty}} de {{open}}", + "dirtyEditorBuffers_one": "{{count}} búfer del editor sin guardar", + "dirtyEditorBuffers_other": "{{count}} búferes del editor sin guardar", + "openFiles_one": "{{count}} archivo abierto", + "openFiles_other": "{{count}} archivos abiertos", + "activeWorkspace": "Este es el espacio de trabajo activo", + "mainWorktreeProtected": "El worktree principal está protegido", + "workspaceProtected": "El espacio de trabajo está protegido", + "canDeleteAfterReview": "Se puede eliminar tras revisarlo", + "noLinkedIssue": "No hay ninguna incidencia vinculada", + "noLinkedReview": "No hay ningún PR vinculado", + "browserTabsOpen_one": "{{count}} pestaña del navegador abierta", + "browserTabsOpen_other": "{{count}} pestañas del navegador abiertas" + }, + "workspaceSpaceFormat": { + "cancellingScan": "Cancelando escaneo", + "currentWorkspaces": "espacios de trabajo", + "scanningWorkspaces": "Escaneando {{scanned}} de {{total}} · {{current}}", + "scanningRepos_one": "Escaneando {{scanned}} de {{count}} repositorio · {{current}}", + "scanningRepos_other": "Escaneando {{scanned}} de {{count}} repositorios · {{current}}", + "scanningSizes": "Escaneando tamaños de los espacios de trabajo", + "status": { + "scanned": "Escaneado", + "missing": "No encontrado", + "noAccess": "Sin acceso", + "unavailable": "No disponible", + "failed": "Falló" + }, + "mainWorktree": "worktree principal", + "detached": "desacoplado" } } }, @@ -5033,12 +5153,10 @@ "670864ab52": "Manteniendo {{value0}} local actualizado", "84c62e4d7f": "No se pudo activar {{value0}}", "442552c656": "Abre Ajustes e inténtalo de nuevo.", - "f15fd80989": "Tu nuevo worktree está actualizado, pero {{value0}} local está {{value1}} {{value2}} atrás, así que los diffs de IA pueden compararse con historial obsoleto. Deja que Orca lo mantenga actualizado automáticamente. Puedes cambiar esto en cualquier momento en", - "3d260e1a5d": "Ajustes › {{value0}}", "34a03a6565": "Mantener {{value0}} actualizado", "4a18052018": "{{value0}} local está detrás de {{value1}}", - "commit": "commit", - "commits": "commits" + "staleLocalBranch_one": "Tu nuevo worktree está actualizado, pero la rama local {{branch}} está {{count}} commit por detrás, por lo que las diferencias generadas por IA pueden compararse con un historial desactualizado. Deja que Orca la mantenga actualizada automáticamente. Puedes cambiarlo cuando quieras en Ajustes › {{setting}}", + "staleLocalBranch_other": "Tu nuevo worktree está actualizado, pero la rama local {{branch}} está {{count}} commits por detrás, por lo que las diferencias generadas por IA pueden compararse con un historial desactualizado. Deja que Orca la mantenga actualizada automáticamente. Puedes cambiarlo cuando quieras en Ajustes › {{setting}}" } } } @@ -5077,12 +5195,11 @@ "39d51212cc": "Nombre del grupo", "aa0247680d": "No, importar por separado", "a0bc4d1f8e": "Sí, importar como grupo", - "8401a7a0d0": "1 repositorio", - "d4f1df62ef": "{{value0}} repositorios", - "b4263a2ac4": "Se encontró {{value0}} en {{value1}}.", "24eda6c8b2": "Escaneando... {{value0}}", "6149d5203f": "No hay repositorios seleccionados. Abre la carpeta principal para usar el editor, la terminal y la búsqueda sin funciones de Git.", - "e52454b7f6": "Abrir como carpeta" + "e52454b7f6": "Abrir como carpeta", + "foundRepositories_one": "Se encontró {{count}} repositorio en {{path}}.", + "foundRepositories_other": "Se encontraron {{count}} repositorios en {{path}}." }, "AddRepoRemoteStep": { "6680289908": "/inicio/usuario/proyecto", @@ -5151,9 +5268,8 @@ "eab8b45238": "Error al copiar", "a23b22d16f": "Copiado", "74fc00776f": "Detalles del error", - "3afcad0497": "desde el primer mensaje del agente.", - "ff62a18580": "Orca no pudo generar un nombre de rama para", - "ca3b225195": "Error en el nombre automático de rama" + "ca3b225195": "Error en el nombre automático de rama", + "couldNotGenerateBranchName": "Orca no pudo generar un nombre de rama para {{name}} a partir del primer mensaje del agente." }, "CreateProjectLocationField": { "95548e33bf": "Elige carpeta padre...", @@ -5173,37 +5289,38 @@ "2b56b35f53": "Puedes cambiar esto en Ajustes.", "dd3a45bbbd": "Omitiremos esta confirmación la próxima vez.", "fc23c4cbdf": "Eliminar espacio de trabajo", - "86f0ae1257": "Eliminar espacios de trabajo" + "86f0ae1257": "Eliminar espacios de trabajo", + "removeFolderProjectInstead": "Quita el proyecto de carpeta en lugar de eliminar este espacio de trabajo.", + "gitBlocksMainWorktree": "Git no permite quitar el worktree principal." }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "Mostrar rutas cargadas", "loadedPathsNotice": "Las rutas cargadas pueden estar incompletas o desactualizadas.", "loadedChangedPaths": "Rutas modificadas cargadas", "unresolvedConflict": "Conflicto sin resolver", - "moreLoadedPaths": "y {{value0}} rutas cargadas más", "changeCount_one": "{{count}} cambio sin confirmar o sin seguimiento", "changeCount_other": "{{count}} cambios sin confirmar o sin seguimiento", - "changes": "Cambios sin confirmar o sin seguimiento" + "changes": "Cambios sin confirmar o sin seguimiento", + "moreLoadedPaths_one": "y {{count}} ruta cargada más", + "moreLoadedPaths_other": "y {{count}} rutas cargadas más" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "más", "a940f3c96e": "Se eliminarán los espacios de trabajo secundarios", - "29b98bf9cd": "Al eliminar este espacio de trabajo, también se eliminan {{value0}} espacios de trabajo secundarios.", - "66798cc6a2": "Al eliminar este espacio de trabajo, también se elimina 1 espacio de trabajo secundario." + "alsoDeletesChildren_one": "Al eliminar este espacio de trabajo también se elimina {{count}} espacio de trabajo secundario.", + "alsoDeletesChildren_other": "Al eliminar este espacio de trabajo también se eliminan {{count}} espacios de trabajo secundarios.", + "moreChildren_one": "+{{count}} más", + "moreChildren_other": "+{{count}} más" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "No volver a preguntar" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(el directorio de clonación original).", - "c4f96a6e18": "worktree principal", - "e3be9eba15": "Este es el" + "mainWorktreeNotice": "Este es el worktree principal (el directorio de clonación original)." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "Mostrar en la lista de worktrees", "ad99f4eea9": "Mantener oculto", "9f4f14e821": "Cambia esto más tarde desde el menú del proyecto.", - "b2bc47c080": "más ubicaciones", "b47ba1a9d2": "Vista previa de {{value0}}", "2251d41ebb": "Grupos de worktrees ocultos", "5a9688802a": "Mostrar {{value0}} más", @@ -5217,7 +5334,9 @@ "keepHiddenAriaLabel_one": "Mantener oculto {{count}} worktree detectado de {{repo}}; recupéralo desde el menú del proyecto", "keepHiddenAriaLabel_other": "Mantener ocultos {{count}} worktrees detectados de {{repo}}; recupéralos desde el menú del proyecto", "keepHiddenTooltip": "Mantener oculto: recupéralo desde el menú del proyecto", - "repoOnHost": "{{repo}} en {{host}}" + "repoOnHost": "{{repo}} en {{host}}", + "moreLocations_one": "+ {{count}} ubicación más", + "moreLocations_other": "+ {{count}} ubicaciones más" }, "NonGitFolderDialog": { "e52454b7f6": "Abrir como carpeta", @@ -5251,20 +5370,24 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "Cancelar", - "69f5cb97d0": "Eliminar", "591f330288": "Eliminar grupo de proyectos", "2c14ce677a": "Eliminando...", "0e0e6764af": "Proyectos contenidos", - "ad407c2d55": "más", - "removeContainedProjectSingular": "Quitar 1 proyecto contenido", - "removeContainedProjectPlural": "Quitar {{value0}} proyectos contenidos", "55f75628c0": "Las carpetas de los proyectos en el disco no se eliminan.", - "fec7e9c8ae": "Eliminar grupo" + "fec7e9c8ae": "Eliminar grupo", + "removeContainedProjects_one": "Quitar {{count}} proyecto del grupo", + "removeContainedProjects_other": "Quitar {{count}} proyectos del grupo", + "deleteGroupDescription": "Eliminar {{name}}.", + "moreProjects_one": "+{{count}} más", + "moreProjects_other": "+{{count}} más" }, "ProjectGroupNameDialog": { "d99a034073": "Cancelar", "83dfbc5313": "Nombre del grupo", - "4a64e78822": "Guardando..." + "4a64e78822": "Guardando...", + "defaultGroupName": "Grupo {{name}}", + "create": "Crear", + "rename": "Renombrar" }, "RemoteFileBrowser": { "2300612806": "Escribe para filtrar o introducir una ruta...", @@ -5276,7 +5399,9 @@ "largeInputNoMatches": "No hay coincidencias para esta entrada larga", "entriesLabel": "Entradas de la carpeta", "inputLabel": "Filtro o ruta", - "fileHint": "Los archivos no se pueden abrir como proyecto" + "fileHint": "Los archivos no se pueden abrir como proyecto", + "invalidPathRepeatedSeparators": "Ruta no válida: separadores repetidos", + "invalidPathControlCharacters": "Ruta no válida: no se permiten caracteres de control" }, "SleepTwinWorkspaceDialog": { "title": "Sleep Workspace", @@ -5306,11 +5431,10 @@ "70715947fb": "El script de configuración no puede estar vacío", "888b83bf78": "No se pudo guardar el script de configuración", "a49196d538": "Se ejecuta cuando Orca crea un nuevo worktree.", - "d9f2db2738": "ajustes del proyecto", - "a5bb8c5135": "Guardado en este", "savedSetupCommand": "Se guardó el comando de configuración.", "savedWithSkippedFields_one": "Se omitió {{count}} campo no compatible. Se guardó el comando de configuración.", - "savedWithSkippedFields_other": "Se omitieron {{count}} campos no compatibles. Se guardó el comando de configuración." + "savedWithSkippedFields_other": "Se omitieron {{count}} campos no compatibles. Se guardó el comando de configuración.", + "savedInProjectSettings": "Guardado en los ajustes de este proyecto" }, "SetupScriptPromptCardViews": { "96a7f4198c": "Guardar configuración local", @@ -5318,20 +5442,17 @@ "31b8b01a45": "Ajustes", "4a98f907ae": "Reintentar", "0a98169776": "Agrega un comando de setup para ejecutar cuando Orca cree nuevos worktrees.", - "8349e3fa4c": ". Guárdalo para ejecutarlo en nuevos worktrees.", - "b56d1322f7": "Se encontró un comando de setup en", "aef6c0a213": "Guarda el comando detectado para ejecutarlo cada vez que Orca cree un worktree.", - "660cdc17f8": "scripts de setup. Agrega un comando local o cambia la fuente en Ajustes.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "Este repositorio ignora lo compartido", "0155fb9ed3": "No se pudo verificar el script de configuración de este repositorio en este momento.", "eefa756190": "Configurar manualmente", "ca4efcbc25": "Guardar", - "d02e6a42b1": "Detectado desde", "fdbc6cb064": "Script de setup detectado", "7275f674cc": "Setup detectado", "822ff300ad": "Descartar", - "5bfd5c8779": "Descartar scripts de configuración" + "5bfd5c8779": "Descartar scripts de configuración", + "detectedFromSource": "Detectado en {{source}}", + "ignoresSharedSetup": "Este repositorio ignora los scripts de configuración compartidos de orca.yaml. Añade un comando local o cambia la fuente en Ajustes.", + "foundSetupCommandIn": "Se encontró un comando de configuración en {{source}}. Guárdalo para ejecutarlo en los nuevos worktrees." }, "SidebarFeedbackDialog": { "8bf619e4cf": "Cancelar", @@ -5508,8 +5629,9 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "Cerrar", "e1a34450fc": "Organiza espacios de trabajo por estado y abre tarjetas de espacios de trabajo.", - "81870af08f": "seleccionado", - "c6a77ab0f4": "Tablero de espacios de trabajo" + "c6a77ab0f4": "Tablero de espacios de trabajo", + "selectedCount_one": "{{count}} seleccionado", + "selectedCount_other": "{{count}} seleccionados" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "Suelta aquí para fijar sin cambiar el estado.", @@ -5610,7 +5732,8 @@ "2931b42b09": "Estado: Borrador {{value0}}", "e888362def": "Estado: Cerrado", "f394b3e86e": "Estado: merged", - "af2b07bda5": "Estado: {{value0}}" + "af2b07bda5": "Estado: {{value0}}", + "checksStatus": "Comprobaciones: {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "Puertos en vivo", @@ -5621,8 +5744,9 @@ "5d1a5d51bb": "Proceso detenido en {{value0}}", "c89f290e25": "Copiado {{value0}}", "d1113f4660": "No se pudo abrir el navegador", - "fed49903c9": "{{value0}} en vivo {{value1}}", - "unknownProcess": "Proceso desconocido" + "unknownProcess": "Proceso desconocido", + "livePorts_one": "{{count}} puerto activo", + "livePorts_other": "{{count}} puertos activos" }, "WorktreeContextMenu": { "c39c37676a": "Crea un grupo y mueve este proyecto a él.", @@ -5664,7 +5788,6 @@ "f9dc6cc5d3": "Cambiar nombre del grupo de proyectos", "370c6a55dd": "Limpiar filtros", "b7acbf038b": "No se encontraron espacios de trabajo", - "0c6ee14f23": "hijo", "c83968f87f": "Eliminar proyecto", "64e55f7f01": "Quitar del grupo", "4a08fb55f2": "Mover al grupo", @@ -5677,12 +5800,7 @@ "4d7b73658c": "Cambiar nombre de grupo", "79465e9034": "Acciones del grupo para {{value0}}", "bfbedc547b": "Worktrees", - "045a8aed48": "hijos", "bb85cd86ba": "Crear espacio de trabajo para {{value0}}", - "20bebf9c7f": "Mostrar {{value0}} espacio de trabajo secundario", - "c1f4a31623": "Mostrar {{value0}} espacios de trabajo secundarios", - "e97297cb75": "Ocultar {{value0}} espacio de trabajo secundario", - "0cd15956d4": "Ocultar {{value0}} espacios de trabajo secundarios", "bd37a57ac8": "Crear espacio de trabajo para {{value0}}", "b667b59632": "Algunos proyectos no se pudieron eliminar de Orca", "groupDeleteFailed": "No se pudo eliminar el grupo", @@ -5696,8 +5814,14 @@ "groupRenameFailed": "No se pudo cambiar el nombre del grupo", "groupRenameFailedDesc": "Orca no pudo confirmar el nuevo nombre con el anfitrión del grupo. Vuelva a verificar el grupo después de volver a conectarse.", "hostRepairRequired": "Re-pair required", - "groupProjectsRemainedSingular": "{{remaining}} de {{count}} proyecto contenido permaneció tras eliminar el grupo.", - "groupProjectsRemainedPlural": "Proyectos contenidos que permanecieron tras eliminar el grupo: {{remaining}} de {{count}}." + "showChildWorkspaces_one": "Mostrar {{count}} espacio de trabajo secundario", + "hideChildWorkspaces_one": "Ocultar {{count}} espacio de trabajo secundario", + "showChildWorkspaces_other": "Mostrar {{count}} espacios de trabajo secundarios", + "hideChildWorkspaces_other": "Ocultar {{count}} espacios de trabajo secundarios", + "childCount_one": "{{count}} secundario", + "childCount_other": "{{count}} secundarios", + "groupProjectsRemained_one": "Proyectos del grupo que quedan tras eliminarlo: {{remaining}} de {{count}}.", + "groupProjectsRemained_other": "Proyectos del grupo que quedan tras eliminarlo: {{remaining}} de {{count}}." }, "WorktreeMetaDialog": { "3db0a2a593": "Cancelar", @@ -5761,7 +5885,6 @@ "d40d436fc2": "No se pudo actualizar la visibilidad de los worktrees. Inténtalo de nuevo.", "unsupportedHost": "Este host no admite la visibilidad de worktrees específica de cada fuente. Actualiza Orca en el host para cambiar esta opción.", "search": "Buscar worktrees ocultos", - "searchPlaceholder": "Buscar en {{value0}} worktrees…", "noMatches": "No hay worktrees coincidentes", "allShown": "Todos los worktrees detectados se muestran", "noneFound": "No se encontraron worktrees ajenos a Orca", @@ -5769,7 +5892,9 @@ "disableSource": "Desactiva una fuente para gestionar sus worktrees individualmente.", "appearWhenDetected": "Los worktrees nuevos aparecerán aquí cuando Orca los detecte.", "openGlobalSettings": "Gestionar en Ajustes globales", - "globalSettingsSources": "Estas fuentes tienen una configuración global que puedes anular aquí:" + "globalSettingsSources": "Estas fuentes tienen una configuración global que puedes anular aquí:", + "searchHiddenPlaceholder_one": "Buscar en {{count}} worktree…", + "searchHiddenPlaceholder_other": "Buscar en {{count}} worktrees…" }, "WorktreeVisibilitySourceList": { "claude": "Claude Code", @@ -6039,13 +6164,13 @@ "7a8b9c0d1e": "Abrir ajustes", "8b9c0d1e2f": "Quitar host", "workspacesFailed": "No se pudieron eliminar {{count}} espacios de trabajo de este anfitrión. El anfitrión se conservó para que pueda reintentar.", - "oneWorkspace": "1 espacio de trabajo", - "manyWorkspaces": "{{count}} espacios de trabajo", - "hostHasWorkspacesDefault": "Elimina {{value0}} y sus credenciales de esta computadora. Sus {{value1}} permanecen en Orca — los archivos remotos no se tocan.", - "alsoForgetLocal": "También eliminar estos {{value0}} de Orca", "advanced": "Avanzado", "alsoForgetLocalHint": "Solo limpia de Orca. Los archivos, espacios de trabajo y ramas remotas permanecen intactos.", - "wslHostEndsTerminalsUnlessShared": "Quita {{value0}} de Orca. Salvo que otro Orca abierto en este equipo lo esté usando, también cierra sus terminales abiertas y detiene el servidor de Orca en esa distro. Los archivos de la distro no se tocan." + "wslHostEndsTerminalsUnlessShared": "Quita {{value0}} de Orca. Salvo que otro Orca abierto en este equipo lo esté usando, también cierra sus terminales abiertas y detiene el servidor de Orca en esa distro. Los archivos de la distro no se tocan.", + "hostKeepsWorkspaces_one": "Quita {{host}} y sus credenciales de este equipo. Su {{count}} espacio de trabajo permanece en Orca — los archivos remotos no se modifican.", + "hostKeepsWorkspaces_other": "Quita {{host}} y sus credenciales de este equipo. Sus {{count}} espacios de trabajo permanecen en Orca — los archivos remotos no se modifican.", + "alsoRemoveWorkspaces_one": "Quitar también este espacio de trabajo de Orca", + "alsoRemoveWorkspaces_other": "Quitar también estos {{count}} espacios de trabajo de Orca" }, "HostRenameDialog": { "1a2b3c4d5e": "Renombrar host", @@ -6089,7 +6214,7 @@ "current": "Actual", "searchPlaceholder": "Buscar worktrees...", "empty": "No hay worktrees elegibles que coincidan.", - "setParentFor": "Establecer padre para" + "setParentForName": "Establecer el espacio de trabajo superior de {{name}}" }, "WorktreeCardStatusSlot": { "branchIdentity": "Rama", @@ -6100,11 +6225,11 @@ "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "Ocultar worktrees externos permanentemente para {{value0}}", "c3e8a1f4b2": "No volver a mostrar", - "2a6f31d8c7": "árbol de trabajo oculto", - "5b90e4a2f6": "árboles de trabajo ocultos", - "7f18c5b0d3": "Revisar el árbol de trabajo oculto {{value0}} en {{value1}}", - "4e2b7a9c05": "Revisar {{value0}} árboles de trabajo ocultos en {{value1}}", - "6c07f3a91e": "{{value0}} en {{value1}}" + "6c07f3a91e": "{{value0}} en {{value1}}", + "hiddenWorktreesNoun_one": "worktree oculto", + "hiddenWorktreesNoun_other": "worktrees ocultos", + "reviewHiddenWorktrees_one": "Revisar {{count}} worktree oculto en {{scope}}", + "reviewHiddenWorktrees_other": "Revisar {{count}} worktrees ocultos en {{scope}}" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} está desconectado", @@ -6195,8 +6320,9 @@ "sshConfigPickerRetry": "Probar de nuevo", "sshConfigPickerResolving": "Lectura…", "pairingHelpShareComputer": "Créalo en Ajustes → Servidores remotos de Orca → Compartir este equipo en el otro equipo.", - "sshImportSyncedPlural": "Se agregaron {{count}} hosts a Orca.", - "sshImportSyncedSingular": "Se agregó {{count}} host a Orca." + "sshImportSynced_one": "Se añadió {{count}} host a Orca.", + "sshImportSynced_other": "Se añadieron {{count}} hosts a Orca.", + "sshConfigPickerInvalidResponse": "Respuesta de host no válida de la configuración SSH" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} ya no es un host SSH guardado, por lo que este espacio de trabajo ya no está conectado a un host activo. Solo se puede eliminar de Orca — los archivos y ramas en el remoto permanecen intactos.", @@ -6219,11 +6345,12 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "Ningún espacio de trabajo coincide", - "4d96c209d6": "{{value0}} de {{value1}} espacios de trabajo coinciden", "c0cd6bdf6c": "Buscar espacios de trabajo", "3b7ea51793": "Borrar búsqueda", "7f1c2e94a5": "El texto de búsqueda es demasiado largo: el tablero no está filtrado", - "9a4d0f6b21": "Demasiado largo" + "9a4d0f6b21": "Demasiado largo", + "workspacesMatch_one": "Espacios de trabajo que coinciden: {{matchCount}} de {{count}}", + "workspacesMatch_other": "Espacios de trabajo que coinciden: {{matchCount}} de {{count}}" }, "LocalGitToolchainScanBanner": { "xcodeLicenseTitle": "Acepta la licencia de Xcode para usar Git", @@ -6231,11 +6358,12 @@ "developerToolsTitle": "Instala las herramientas de línea de comandos de Apple", "developerToolsBody": "Git necesita las herramientas de desarrollo de Apple. Ejecuta esto en la terminal y vuelve a Orca. Lo comprobará de nuevo automáticamente.", "affectedOne": "Escaneo de worktrees en pausa para {{value0}}", - "affectedMany": "Escaneo de worktrees en pausa para {{value0}} proyectos", "copyCommand": "Copiar comando", "copied": "Comando copiado", "retry": "Reintentar ahora", - "restored": "Git funciona de nuevo. Worktrees actualizados." + "restored": "Git funciona de nuevo. Worktrees actualizados.", + "affectedProjects_one": "Escaneo de worktrees pausado para {{count}} proyecto", + "affectedProjects_other": "Escaneo de worktrees pausado para {{count}} proyectos" }, "WorktreeCardSshHostControl": { "connectFailed": "La conexión SSH falló", @@ -6344,7 +6472,8 @@ "wslHostRemoval": { "keptForOthers": "Se quitó de este Orca. El host sigue en marcha para {{value0}}.", "partial": "Se quitó el host, pero algo en la distro sigue en ejecución: {{value0}}", - "pending": "Orca aún no eliminó el host: {{value0}} Vuelve a eliminarlo para reintentarlo o conéctalo para conservarlo." + "pending": "Orca aún no eliminó el host: {{value0}} Vuelve a eliminarlo para reintentarlo o conéctalo para conservarlo.", + "unavailable": "Los hosts WSL no están disponibles en este equipo." }, "addRepoWslHostFolderPicker": { "otherDistro": "Esa carpeta está en {{value0}}, no en {{value1}}.", @@ -6399,6 +6528,42 @@ "openingProject": "Abriendo proyecto...", "openingFolder": "Abriendo carpeta...", "chooseFolder": "Elige una carpeta..." + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "Este host no admite la eliminación de worktrees anidados." + }, + "WorktreeCardHelpers": { + "checksPassing": "Correctas", + "checksFailing": "Con errores", + "checksPending": "Pendientes", + "conflictMerging": "Fusionando", + "conflictRebasing": "Aplicando rebase", + "conflictCherryPicking": "Aplicando cherry-pick" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "Espacio de trabajo {{name}}" + }, + "workspaceKanbanStatus": { + "defaultLabel": "Estado {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_one": "{{preview}}, +{{count}} más", + "sparsePreviewMore_other": "{{preview}}, +{{count}} más" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "Detalles del MR no disponibles", + "prDetailsUnavailable": "Detalles del PR no disponibles", + "loadingMr": "Cargando MR…", + "loadingPr": "Cargando PR…" + }, + "HostSectionHeader": { + "workspaceCount_one": "{{count}} espacio de trabajo", + "workspaceCount_other": "{{count}} espacios de trabajo" + }, + "titleDerivedAgentRows": { + "needsInput": "Requiere intervención", + "running": "En ejecución", + "idle": "Inactivo" } }, "shared": { @@ -13982,17 +14147,8 @@ "new": { "workspace": { "SmartWorkspaceNameField": { - "2a0d535f69": "Crear nueva rama", - "a44229ce4d": "como nombre del espacio de trabajo", - "766083a596": "\"", - "34ca97bce3": "\"", - "b1a7d679ba": "Usar", "e57c53727c": "Añadir proyecto...", - "a76fcb4fa0": "Cambiar a", - "eadf877af5": "Mantener", "6859e2896c": "Cancelar", - "9ef1a7c4b0": ", que es diferente del proyecto seleccionado.", - "ad188067ae": "La URL de GitHub apunta a", "4bd98f1091": "¿Cambiar de proyecto?", "0c9e668e3a": "Borrar", "7199ff19c7": "Borrar fuente seleccionada", @@ -14011,7 +14167,6 @@ "fda67f0b61": "proyecto actual", "3e8bb1176a": "Conecta Linear en Configuración para buscar issues.", "switchTaskSourceTitle": "¿Cambiar el origen de tareas?", - "differentTaskSource": ", que es diferente del origen de tareas seleccionado.", "currentTaskSource": "origen de tareas actual", "placeholderNameOrLinearUrl": "Escribe un nombre o una URL de Linear o Jira", "placeholderWorkspaceName": "Escribe un nombre de espacio de trabajo", @@ -14040,7 +14195,13 @@ "emoji": "Emoji", "loadingLinearIssue": "Cargando problema Linear...", "linearLoginUnreadableTitle": "Vuelve a conectar Linear", - "linearLoginUnreadableBody": "No se puede leer el inicio de sesión guardado de Linear. Vuelve a conectarlo en Configuración." + "linearLoginUnreadableBody": "No se puede leer el inicio de sesión guardado de Linear. Vuelve a conectarlo en Configuración.", + "keepRepo": "Mantener {{name}}", + "switchToRepo": "Cambiar a {{name}}", + "crossRepoDifferentTaskSource": "La URL de GitHub apunta a {{repo}}, que es diferente de la fuente de tareas seleccionada.", + "crossRepoDifferentProject": "La URL de GitHub apunta a {{repo}}, que es diferente del proyecto seleccionado.", + "useAsWorkspaceName": "Usar «{{name}}» como nombre del espacio de trabajo", + "createNewBranchNamed": "Crear una nueva rama {{name}}" }, "ProjectCombobox": { "empty": "Ningún proyecto coincide con tu búsqueda.", @@ -14063,6 +14224,11 @@ "cloneFromUrl": "Clonar desde URL", "cloneFromUrlHelp": "Clona este repositorio en {{host}}.", "saveLocation": "Establecer ubicación" + }, + "projectCombobox": { + "recentHeading": "Recientes", + "projectsHeading": "Proyectos", + "foldersHeading": "Carpetas" } } }, @@ -15662,7 +15828,10 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} niño {{value2}}" + "hideChildAgents_one": "Ocultar {{count}} agente secundario", + "hideChildAgents_other": "Ocultar {{count}} agentes secundarios", + "showChildAgents_one": "Mostrar {{count}} agente secundario", + "showChildAgents_other": "Mostrar {{count}} agentes secundarios" }, "DashboardAgentRow": { "912e136cd9": "Enviar", @@ -15670,7 +15839,13 @@ "a41fb5376e": "Contraer detalles", "5ae84475cc": "Despedir", "b06e13fcf7": "Despedir agente", - "0272969e28": "Enviar a este agente" + "0272969e28": "Enviar a este agente", + "justNow": "ahora mismo", + "timeAgo": "hace {{duration}}", + "dispatchedAgents_one": "{{agentType}} - {{count}} agente enviado", + "dispatchedAgents_other": "{{agentType}} - {{count}} agentes enviados", + "startedAgo": "iniciado {{time}}", + "doneAgo": "completado {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "interrumpido", @@ -16796,9 +16971,10 @@ "clearNotification": "Borrar notificación" }, "ActivityTitlebarControls": { - "f915168c8e": "no leído", "d6a8de3934": "agentes", - "dc708f3eff": "Agents cercanos" + "dc708f3eff": "Agents cercanos", + "unreadCount_one": "{{count}} sin leer", + "unreadCount_other": "{{count}} sin leer" }, "ActivityThreadHoverCard": { "workspace": "Espacio de trabajo", @@ -16808,9 +16984,9 @@ "jumpToWorkspace": "Ir al espacio de trabajo" }, "clearCompleted": { - "clearedOne": "Se borró 1 agente completado", - "clearedMany": "Se borraron {{count}} agentes completados", - "undo": "Deshacer" + "undo": "Deshacer", + "cleared_one": "Se quitó {{count}} agente completado de la lista", + "cleared_other": "Se quitaron {{count}} agentes completados de la lista" }, "standaloneWorktree": { "floatingTerminal": "Terminal flotante", @@ -17633,6 +17809,16 @@ "unreachable": "No se pudo contactar con Jira. Comprueba tu conexión y vuelve a intentarlo.", "loadFailed": "No se pudieron cargar las incidencias de Jira. Vuelve a intentarlo en un momento.", "errorWithCode": "Error {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "No se puede ejecutar «{{action}}» — el espacio de trabajo aún se está cargando.", + "noActiveWorkspace": "No se puede ejecutar «{{action}}» — no hay ningún espacio de trabajo activo.", + "workspaceDisconnected": "No se puede ejecutar «{{action}}» — el espacio de trabajo está desconectado.", + "noTabGroup": "No se puede ejecutar «{{action}}» — no hay ningún grupo de pestañas disponible.", + "noMovableChat": "No se puede ejecutar «{{action}}» — no hay ningún chat activo que se pueda mover.", + "clientUnsupported": "No se puede ejecutar «{{action}}» — este cliente y este entorno de ejecución no lo admiten." + } } }, "i18n": { @@ -18838,8 +19024,6 @@ "exclude": "Excluir" }, "idleSignalField": "Señal de inactividad", - "selectionVanishedOne": "1 espacio de trabajo seleccionado ya no existe.", - "selectionVanished": "{{value0}} espacios de trabajo seleccionados ya no existen.", "updatedAgo": "Actualizado {{value0}}", "refreshing": "Actualizando…", "refreshingProgress": "Actualizando {{value0}}/{{value1}}", @@ -18853,25 +19037,29 @@ "gitStatusCheckFailed": "Falló la comprobación del estado de Git", "gitStatusUnverified": "No se pudo verificar el estado de Git", "deleteAnyway": "Eliminar de todos modos", - "forceDeleteProjectionOne": "{{count}} espacio de trabajo muestra riesgo actualmente y puede necesitar una eliminación forzada", - "forceDeleteProjectionMany": "{{count}} espacios de trabajo muestran riesgo actualmente y pueden necesitar una eliminación forzada", - "selectionWithheldOne": "1 espacio de trabajo seleccionado está oculto por los filtros actuales y se ha deseleccionado.", - "selectionWithheld": "{{value0}} espacios de trabajo seleccionados están ocultos por los filtros actuales y se han deseleccionado.", - "selectAllCountOne": "Seleccionar 1 espacio de trabajo con comprobación de seguridad", - "selectAllCount": "Seleccionar los {{value0}} espacios de trabajo con comprobación de seguridad", "appliedFilters": "Filtros aplicados", - "removeFilter": "Quitar filtro {{value0}}" + "removeFilter": "Quitar filtro {{value0}}", + "forceDeleteRisk_one": "{{count}} espacio de trabajo presenta riesgos actualmente y puede requerir una eliminación forzada", + "forceDeleteRisk_other": "{{count}} espacios de trabajo presentan riesgos actualmente y pueden requerir una eliminación forzada", + "selectionVanishedCount_one": "{{count}} espacio de trabajo seleccionado ya no existe.", + "selectionVanishedCount_other": "{{count}} espacios de trabajo seleccionados ya no existen.", + "selectionWithheldCount_one": "{{count}} espacio de trabajo seleccionado está oculto por los filtros actuales y se ha deseleccionado.", + "selectionWithheldCount_other": "{{count}} espacios de trabajo seleccionados están ocultos por los filtros actuales y se han deseleccionado.", + "selectAllSafetyChecked_one": "Seleccionar {{count}} espacio de trabajo con seguridad comprobada", + "selectAllSafetyChecked_other": "Seleccionar todos los {{count}} espacios de trabajo con seguridad comprobada" }, "scan": { "noWorkspaces": "No se encontraron espacios de trabajo.", "progress": "Escaneando espacios de trabajo ({{value0}}/{{value1}})", "singleError": "No se pudo comprobar {{value0}}: {{value1}}. Puede que falten espacios de trabajo. Actualiza para reintentar.", - "moreErrors": ", +{{value0}} más", - "multipleErrors": "No se pudieron comprobar {{value0}} repositorios ({{value1}}{{value2}}). Puede que falten espacios de trabajo. Actualiza para reintentar.", "fallbackRepository": "un repositorio", "gitListFailed": "Git no pudo listar los árboles de trabajo", - "readyOne": "1 espacio de trabajo encontrado.", - "readyMany": "{{value0}} espacios de trabajo encontrados." + "multipleErrorsWithMore_one": "No se pudo comprobar {{count}} repositorio ({{names}}, +{{moreCount}} más). Puede que falten algunos espacios de trabajo. Actualiza para volver a intentarlo.", + "multipleErrorsWithMore_other": "No se pudieron comprobar {{count}} repositorios ({{names}}, +{{moreCount}} más). Puede que falten algunos espacios de trabajo. Actualiza para volver a intentarlo.", + "multipleErrorsCount_one": "No se pudo comprobar {{count}} repositorio ({{names}}). Puede que falten algunos espacios de trabajo. Actualiza para volver a intentarlo.", + "multipleErrorsCount_other": "No se pudieron comprobar {{count}} repositorios ({{names}}). Puede que falten algunos espacios de trabajo. Actualiza para volver a intentarlo.", + "readyCount_one": "Se encontró {{count}} espacio de trabajo.", + "readyCount_other": "Se encontraron {{count}} espacios de trabajo." }, "host": { "candidateName": "{{value0}} en {{value1}}", @@ -20376,7 +20564,6 @@ "repositoryLoading": "La identidad del repositorio aún se está cargando. Vuelve a intentarlo cuando esté disponible.", "duplicate": "Este enlace ya está adjunto.", "title": "Trabajo vinculado", - "count": "{{count}} vinculados", "empty": "Mantén juntas todas las revisiones y tareas de este espacio de trabajo.", "reviews": "Revisiones", "tasks": "Issues y tareas", @@ -20384,7 +20571,6 @@ "open": "Abrir enlace", "unlinkItem": "Desvincular {{label}}", "unlink": "Desvincular del espacio de trabajo", - "show": "Mostrar {{count}} revisiones y tareas vinculadas", "details": "Detalles del espacio de trabajo", "description": "Adjunta revisiones y tareas, y guarda notas para este espacio de trabajo.", "commentHelp": "Se admite Markdown. Pulsa Enter o {{shortcut}} para guardar · Shift+Enter para una nueva línea.", @@ -20437,7 +20623,11 @@ "checksPassing": "Correcto", "checksUnknown": "Desconocido", "checksNeutral": "Neutral", - "allReviewChecks": "Revisiones: {{count}} · Checks: {{status}}" + "allReviewChecks": "Revisiones: {{count}} · Checks: {{status}}", + "showLinked_one": "Mostrar {{count}} revisión o tarea vinculada", + "showLinked_other": "Mostrar {{count}} revisiones y tareas vinculadas", + "linkedCount_one": "{{count}} vinculado", + "linkedCount_other": "{{count}} vinculados" }, "attachments": { "updateRuntime": "Actualiza el tiempo de ejecución remoto para cambiar los enlaces del espacio de trabajo", @@ -20638,7 +20828,8 @@ "compact": { "linked": "Vinculado", "linkedAndUnavailable": "{{value0}} en árboles de trabajo vinculados · {{value1}} no disponible", - "linkedAndScanned": "{{value0}} en árboles de trabajo vinculados · {{value1}} espacios de trabajo" + "linkedAndScannedCount_one": "{{size}} en worktrees vinculados · {{count}} espacio de trabajo", + "linkedAndScannedCount_other": "{{size}} en worktrees vinculados · {{count}} espacios de trabajo" }, "changes": { "empty": "No hay archivos coincidentes.", diff --git a/src/renderer/src/i18n/locales/fr.json b/src/renderer/src/i18n/locales/fr.json index d122601f025..290c32cc324 100644 --- a/src/renderer/src/i18n/locales/fr.json +++ b/src/renderer/src/i18n/locales/fr.json @@ -2115,7 +2115,6 @@ "ba64270bdb": "Configurer les agents", "ab63f25397": "Ouvrir les paramètres des agents", "0c5d6a479c": "[Optionnel]", - "b5a0796911": "Se connecter", "dccd26d4e4": "Choisir le projet", "d6b0a96f32": "Ajouter un projet", "969a8bff66": "Projet", @@ -2176,7 +2175,8 @@ "runSetupNow": "Exécuter le setup maintenant", "runCommandsNow": "Exécuter les commandes maintenant", "skipForNow": "Ignorer pour le moment", - "skipCommands": "Ignorer les commandes" + "skipCommands": "Ignorer les commandes", + "connectProject": "Connecter {{name}}" }, "NewWorkspaceComposerModal": { "createWorktree": "Créer un worktree", @@ -3617,21 +3617,23 @@ }, "drop": { "handler": { - "1e072f611e": "Échec de l'envoi de {{value0}} {{value1}}.", "0c77693641": "Worktree pas encore prêt — réessayez dans un instant.", "ce8248b835": "Chemin du worktree indisponible.", "internalTooManyPaths": "Le contenu déposé contient trop de chemins pour un collage sûr dans le terminal.", "internalPathsTooLarge": "La liste de chemins déposée est trop volumineuse pour un collage sûr dans le terminal.", "internalHostMismatch": "Déposez des fichiers provenant du même hôte que ce terminal.", - "b4cf68e889": "Ignoré : {{value0}} {{value1}}.", "writeTimeout": "Glisser-déposer de fichiers annulé : le terminal n'a pas accepté le chemin avant le délai de sécurité.", "writeRejected": "Glisser-déposer de fichiers annulé : le terminal n'a pas pu accepter le chemin.", - "skippedSymlinkSingular": "Ignoré : {{count}} symlink.", - "skippedSymlinkPlural": "Ignorés : {{count}} symlinks.", - "uploadingFileSingular": "Envoi de {{count}} fichier vers le runtime…", - "uploadingFilePlural": "Envoi de {{count}} fichiers vers le runtime…", - "uploadingFileToRemoteSingular": "Envoi de {{count}} fichier vers l’hôte distant…", - "uploadingFileToRemotePlural": "Envoi de {{count}} fichiers vers l’hôte distant…" + "skippedSymlinks_one": "{{count}} lien symbolique ignoré.", + "skippedSymlinks_other": "{{count}} liens symboliques ignorés.", + "skippedItems_one": "{{count}} élément ignoré.", + "skippedItems_other": "{{count}} éléments ignorés.", + "failedUploads_one": "Impossible de transférer {{count}} fichier.", + "failedUploads_other": "Impossible de transférer {{count}} fichiers.", + "uploadingFiles_one": "Transfert de {{count}} fichier vers l’environnement d’exécution…", + "uploadingFiles_other": "Transfert de {{count}} fichiers vers l’environnement d’exécution…", + "uploadingFilesToRemote_one": "Transfert de {{count}} fichier vers l’hôte distant…", + "uploadingFilesToRemote_other": "Transfert de {{count}} fichiers vers l’hôte distant…" } } }, @@ -3749,10 +3751,15 @@ "sessionQueued": "Session en attente", "openSupportedWorkspace": "Ouvrez un espace de travail avant de reprendre une session.", "sessionHostMismatchUnsupported": "Cette session appartient à un autre hôte. Déposez-la sur un espace de travail du même hôte.", - "oldPayload": "Cette session a été glissée depuis une fenêtre Orca plus ancienne. Reprenez-la plutôt depuis l'historique des sessions." + "oldPayload": "Cette session a été glissée depuis une fenêtre Orca plus ancienne. Reprenez-la plutôt depuis l'historique des sessions.", + "legacyDragCannotRetarget": "Cette session a été glissée depuis une fenêtre d’une ancienne version d’Orca. Orca ne peut donc pas la réaffecter au compte Codex sélectionné. Reprenez-la depuis le panneau Historique des sessions.", + "legacyDragPrepareFailed": "Orca n’a pas pu préparer cette ancienne session Codex. Réessayez de la reprendre." }, "TabGroupDropOverlay": { "paneColumnLabel": "Nouvelle scission" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "L’environnement d’exécution associé n’a pas pu dupliquer l’onglet du navigateur géré." } }, "bar": { @@ -3947,6 +3954,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "Hôte indisponible", "7c129b08ff": "Chargement de l'hôte…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "Cette session ne peut pas être ouverte dans la CLI." + }, + "tabCreateEntry": { + "fileNotFound": "Fichier introuvable : {{path}}", + "cannotOpenDirectory": "Impossible d’ouvrir un répertoire : {{path}}", + "parentNotDirectory": "Impossible de créer le fichier, car {{path}} n’est pas un répertoire.", + "fileNoLongerExists": "Le fichier n’existe plus : {{path}}", + "noActiveWorktree": "Aucun worktree actif." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "Les chemins de fichiers ne peuvent pas contenir de caractères de contrôle.", + "enterAUrlOrFilePath": "Saisissez une URL ou un chemin de fichier.", + "homeRelativePathsAreNotSupported": "Les chemins relatifs au répertoire personnel ne sont pas pris en charge ici.", + "enterAFilePathNotA": "Saisissez un chemin de fichier, pas un chemin de répertoire.", + "enterAnAbsoluteFilePath": "Saisissez un chemin de fichier absolu.", + "enterAnAbsolutePathForThis": "Saisissez un chemin absolu pour cet ordinateur.", + "enterARelativeFilePath": "Saisissez un chemin de fichier relatif.", + "windowsDrivePathsAreNotSupported": "Les chemins de lecteurs Windows ne sont pas pris en charge ici.", + "uncPathsAreNotSupportedHere": "Les chemins UNC ne sont pas pris en charge ici.", + "filePathsCannotContainEmptySegments": "Les chemins de fichiers ne peuvent pas contenir de segments vides.", + "filePathsCannotContainDotSegments": "Les chemins de fichiers ne peuvent pas contenir de segments . ou ..", + "filePathsCannotContainTildeSegments": "Les chemins de fichiers ne peuvent pas contenir de segments ~." } } }, @@ -3974,15 +4005,16 @@ "4ebf90c12e": "Aucun port externe détecté", "7dac3ecc9d": "Ports externes", "95495019ed": "Scan des ports indisponible sur {{value0}} : {{value1}}", - "a8e4bdb412": " · {{value0}} externe(s)", "c22ea609fd": "Ports", - "ca41be2802": "Ports — espace de travail {{value0}} {{value1}}{{value2}}", - "b8bc3e420a": "Ports, espace de travail {{value0}} {{value1}}", "3a87d54dfb": "Aucun port d'espace de travail détecté", "c174bbbfed": "Recherche des ports d'espace de travail...", - "8caaa86e9a": "ports", - "45834a9ace": "port", - "2b84c4d11f": "{{value0}} espace de travail · {{value1}} externes" + "2b84c4d11f": "{{value0}} espace de travail · {{value1}} externes", + "portsAria_one": "Ports, {{count}} port de l’espace de travail", + "portsAria_other": "Ports, {{count}} ports de l’espace de travail", + "portsTooltipWithExternal_one": "Ports — {{count}} port de l’espace de travail · externes : {{externalCount}}", + "portsTooltipWithExternal_other": "Ports — {{count}} ports de l’espace de travail · externes : {{externalCount}}", + "portsTooltip_one": "Ports — {{count}} port de l’espace de travail", + "portsTooltip_other": "Ports — {{count}} ports de l’espace de travail" }, "ResourceUsageStatusSegment": { "946d9f94d0": "Annuler", @@ -3991,7 +4023,6 @@ "27a74f91f0": "Rien en cours d'exécution pour le moment", "298f4be7f2": "CPU", "2aa2de6cb9": "Nom", - "30ff2c3c31": "{{value0}} orphelin", "1fedf94eae": "Charge CPU cumulée. Une valeur supérieure à 100 % signifie que plusieurs cœurs travaillent simultanément.", "e7cf14ec78": "Sessions de terminal indisponibles. La liste est peut-être obsolète.", "93b0de3c21": "Redémarrer", @@ -4019,12 +4050,13 @@ "d406915b78": "Renderer", "81cd37af99": "Main", "fa6d36758d": "Tuer la session {{value0}}", - "b8f4a2c1d0e3": "{{value0}} orphelins", - "c7e3b1a0d9f2": "Tuer {{value0}} terminal orphelin", - "d8f4c2b1e0a3": "Tuer {{value0}} terminaux orphelins", "e9a5d3c2b1f0": "Tuer {{value0}} ?", "8a0472ab54": "Impossible de joindre {{value0}} ; ses ressources sont inconnues.", - "1ea066b73f": "Mettez à jour {{value0}} pour voir ses ressources." + "1ea066b73f": "Mettez à jour {{value0}} pour voir ses ressources.", + "endOrphanTerminals_one": "Terminer {{count}} terminal orphelin", + "endOrphanTerminals_other": "Terminer {{count}} terminaux orphelins", + "orphanCount_one": "{{count}} orphelin", + "orphanCount_other": "{{count}} orphelins" }, "SshStatusSegment": { "3ad70e0365": "Gérer les hôtes distants…", @@ -4084,10 +4116,6 @@ "3325d996cb": "Actualiser les limites de débit", "cd9d7b40ff": "Redémarrer {{value0}} sessions", "6cd6650b4c": "Redémarrer la session", - "1446d0d8a0": "{{value0}} sessions Codex sont toujours sur l'ancien compte.", - "605901a495": "1 session Codex est encore sur l'ancien compte", - "5e5f9f5160": "1 réinitialisation de limite de débit disponible", - "5ecae9197c": "{{value0}} réinitialisations de limite de débit disponibles", "25d8bbde69": "Utilisation de la réinitialisation…", "e159fc1fd7": "Réinitialiser maintenant", "972a1ff497": "Réinitialiser les limites Codex ?", @@ -4104,7 +4132,11 @@ "codexSignInError": "Échec de la connexion à Codex. Veuillez réessayer.", "cursorUsageMenu": "Utilisation Cursor", "hiddenUsageProviders": "Aussi : {{value0}}", - "zcodeUsageMenu": "Utilisation du code Z" + "zcodeUsageMenu": "Utilisation du code Z", + "rateLimitResetsAvailable_one": "{{count}} réinitialisation de limite de débit disponible", + "rateLimitResetsAvailable_other": "{{count}} réinitialisations de limite de débit disponibles", + "staleCodexSessions_one": "{{count}} session Codex utilise encore l’ancien compte.", + "staleCodexSessions_other": "{{count}} sessions Codex utilisent encore l’ancien compte." }, "StatusBarUsageEmptyCta": { "828c764a79": "Connecter un compte", @@ -4121,13 +4153,14 @@ "SkillUpdateStatusSegment": { "runningLabel": "Mise à jour des skills", "runningOne": "Mise à jour de {{value0}}…", - "runningMany": "Mise à jour des skills de {{value0}}…", "runningAria": "Mise à jour des skills en cours. Cliquez pour ouvrir les détails.", "successLabel": "Skills mis à jour", "successAria": "Skills mis à jour. Cliquez pour ouvrir les détails.", "attentionAria": "Certaines mises à jour de skills ont été ignorées. Cliquez pour ouvrir les détails.", "attentionLabel": "Skills à vérifier", - "attentionTooltip": "Certaines mises à jour de skills ont été ignorées — cliquez pour voir les détails" + "attentionTooltip": "Certaines mises à jour de skills ont été ignorées — cliquez pour voir les détails", + "runningSkills_one": "Mise à jour de {{count}} skill…", + "runningSkills_other": "Mise à jour de {{count}} skills…" }, "UpdateStatusSegment": { "5cd13105a3": "Échec de la mise à jour. Cliquez pour déplier.", @@ -4169,11 +4202,8 @@ "6f8f6a6b04": "Filtrer les espaces de travail", "5caccea440": "Supprimer la sélection", "e4a12c455b": "Effacer", - "0cb1501ccf": "récupérable", - "65402b7192": "sélectionnés", "43171f3e60": "Espaces de travail", "09960d86bd": "Analysé", - "63efebe0e6": "{{value0}} {{value1}} supprimés de Space.", "eee5240810": "Espaces de travail supprimés", "9afc97f9a3": "Espace de travail supprimé", "792a214457": "Supprimer l'espace de travail", @@ -4181,7 +4211,6 @@ "9155381019": "Sparse", "f39d291997": "Sélectionner", "16988df079": "Aucun fichier trouvé.", - "b25c2c1086": "éléments de premier niveau", "d3f9c69ddc": "Zoom", "ef890d31b9": "Tous", "c28643d3da": "Aller à l'espace de travail", @@ -4220,8 +4249,15 @@ "c5135e7e4a": "Analyse de la taille des espaces de travail. Vous pouvez quitter cette page.", "0990a63160": "Aucune taille d'espace de travail analysée pour le moment.", "977bdf9a36": "Aucun élément de premier niveau à afficher.", - "131662ac65": "{{value0}} ouvert(s)", - "0d1c78d749": "Sélectionner {{value0}}" + "0d1c78d749": "Sélectionner {{value0}}", + "removedFromSpace_one": "{{count}} espace de travail retiré d’Espace.", + "removedFromSpace_other": "{{count}} espaces de travail retirés d’Espace.", + "topLevelItems_one": "{{formattedCount}} élément de premier niveau", + "topLevelItems_other": "{{formattedCount}} éléments de premier niveau", + "selectedCount_one": "{{count}} sélectionné", + "selectedCount_other": "{{count}} sélectionnés", + "reclaimableSize": "{{size}} récupérables", + "scanning": "Analyse en cours" }, "ports": { "status": { @@ -4235,7 +4271,8 @@ "e4a709548c": "Échec de l'actualisation des ports", "acdb6df590": "Processus arrêté sur {{value0}}", "480d8f2347": "{{value0}} copié", - "b854ec9ff5": "Échec de l'ouverture du navigateur" + "b854ec9ff5": "Échec de l'ouverture du navigateur", + "unknownProcess": "Processus inconnu" } } } @@ -4252,8 +4289,6 @@ "7ad719c4bf": "Limité", "e740f92596": "Échec de l'actualisation", "8418ec448d": "L'utilisation de {{value0}} n'a pas pu être actualisée. Des sessions d'agent sont peut-être encore connectées.", - "45198c7d95": "1 réinitialisation de limite de débit disponible", - "bce421cba3": "{{value0}} réinitialisations de limite de débit disponibles", "7ec6e030a0": "La prochaine expire maintenant", "d1e442a9e5": "Expire maintenant", "6cf9eaed10": "La prochaine expire dans {{value0}}", @@ -4305,7 +4340,14 @@ "claudeNoUsageFromHost": "Aucun usage depuis {{server}}", "claudeUnknownOnHost": "L’usage de Claude n’est pas disponible depuis {{server}}. Il n’y est peut-être pas connecté, ou il utilise peut-être la facturation par clé API.", "remoteOwnerUnreachable": "Utilisation indisponible – impossible d'atteindre {{server}}", - "remoteOwnerNoUsage": "Utilisation indisponible : {{server}} ne signale pas l'utilisation. Mettez à jour Orca sur cet hôte." + "remoteOwnerNoUsage": "Utilisation indisponible : {{server}} ne signale pas l'utilisation. Mettez à jour Orca sur cet hôte.", + "justNow": "à l’instant", + "minutesAgo": "il y a {{minutes}} min", + "hoursAgo": "il y a {{hours}} h", + "updatedAgo": "Mis à jour {{time}}", + "notYetUpdated": "Pas encore mis à jour", + "rateLimitResetsAvailable_one": "{{count}} réinitialisation de limite de débit disponible", + "rateLimitResetsAvailable_other": "{{count}} réinitialisations de limite de débit disponibles" }, "SshTargetStatusRow": { "sshHost": "Hôte SSH" @@ -4348,12 +4390,12 @@ "RemoteServerUpdateStatusSegment": { "updating": "Mise à jour de {{value0}}/{{value1}}", "updatingTooltip": "Des mises à jour de serveurs Orca distants sont en cours", - "failed": "Échec de la mise à jour de {{value0}} serveurs", "failedTooltip": "Ouvrez les mises à jour des serveurs Orca distants pour vérifier et relancer", - "updated": "{{value0}} serveurs mis à jour", "updatedTooltip": "Mises à jour des serveurs Orca distants terminées", - "failedOne": "Échec de la mise à jour d'un serveur", - "updatedOne": "1 serveur mis à jour" + "failedCount_one": "{{count}} mise à jour de serveur a échoué", + "failedCount_other": "{{count}} mises à jour de serveurs ont échoué", + "updatedCount_one": "{{count}} serveur mis à jour", + "updatedCount_other": "{{count}} serveurs mis à jour" }, "resource": { "memory": { @@ -4361,7 +4403,10 @@ "workingSetDescription": "Somme des working sets (WS). Les pages partagées peuvent apparaître dans plusieurs processus.", "footprintDescription": "Somme des empreintes mémoire, la valeur affichée par le Moniteur d’activité : la mémoire propre à chaque processus, mémoire graphique comprise. Les pages partagées entre processus ne sont pas comptées deux fois.", "rssDescription": "Somme des tailles résidentes (RSS). Les pages partagées ou aliasées peuvent apparaître dans plusieurs processus.", - "privateBytesDescription": "Octets privés additionnés : mémoire engagée par ces processus, comptée si elle est résidente ou paginée. C'est ce que l'hôte facture par rapport à sa limite de validation, de sorte qu'elle continue d'augmenter tandis que l'ensemble de travail ci-dessus diminue sous la pagination." + "privateBytesDescription": "Octets privés additionnés : mémoire engagée par ces processus, comptée si elle est résidente ou paginée. C'est ce que l'hôte facture par rapport à sa limite de validation, de sorte qu'elle continue d'augmenter tandis que l'ensemble de travail ci-dessus diminue sous la pagination.", + "memColumn": "Mém.", + "memorySummary": "Σ Mémoire", + "privateSummary": "Σ Privée" } }, "manager": { @@ -4410,29 +4455,29 @@ "repair": "Re-pair…" }, "NativeChatResumeStatusSegment": { - "labelOne": "1 chat à reprendre", - "label": "Reprise des discussions {{value0}}", - "ariaLabelOne": "1 chat disponible pour reprendre", - "ariaLabel": "Les discussions {{value0}} sont disponibles pour reprendre", "tooltip": "Ouvrir les discussions interrompues disponibles pour reprendre", - "failedLabelOne": "1 chat n'a pas pu reprendre", - "failedLabel": "{{value0}} chats n'ont pas pu reprendre", - "failedAriaOne": "1 chat n'a pas pu reprendre. Cliquez pour plus de détails.", - "failedAria": "{{value0}} chats n'ont pas pu reprendre. Cliquez pour plus de détails.", "failedTooltip": "Chats qu'Orca n'a pas pu reprendre après le redémarrage. Cliquez pour plus de détails.", - "checkLabelOne": "1 chat à vérifier", - "checkLabel": "{{value0}} chats à vérifier", - "checkAriaOne": "1 chat à vérifier après la reprise. Cliquez pour plus de détails.", - "checkAria": "{{value0}} chats à vérifier après la reprise. Cliquez pour plus de détails.", "checkTooltip": "Chats qu'Orca n'a pas pu reprendre, ou dont il n'a pas pu confirmer la reprise, après le redémarrage. Cliquez pour plus de détails.", "resumingTooltip": "Restauration des conversations interrompues et demande de poursuite…", "resumingProgressLabel": "Reprise des discussions {{value0}}/{{value1}}", "resumingProgressAria": "Reprise des discussions, {{value0}} sur {{value1}} terminées. Cliquez pour voir les détails.", - "resumedLabelOne": "1 discussion reprise", - "resumedLabel": "{{value0}} discussions reprises", - "resumedAriaOne": "1 discussion reprise. Cliquez pour la voir.", - "resumedAria": "{{value0}} discussions reprises. Cliquez pour les voir.", - "resumedTooltip": "Discussions reprises par Orca après le redémarrage. Cliquez pour les voir." + "resumedTooltip": "Discussions reprises par Orca après le redémarrage. Cliquez pour les voir.", + "chatsFailedLabel_one": "Impossible de reprendre {{count}} chat", + "chatsFailedLabel_other": "Impossible de reprendre {{count}} chats", + "chatsFailedAria_one": "Impossible de reprendre {{count}} chat. Cliquez pour voir les détails.", + "chatsFailedAria_other": "Impossible de reprendre {{count}} chats. Cliquez pour voir les détails.", + "resumedLabelCount_one": "{{count}} chat repris", + "resumedLabelCount_other": "{{count}} chats repris", + "resumedAriaCount_one": "{{count}} chat repris. Cliquez pour l’afficher.", + "resumedAriaCount_other": "{{count}} chats repris. Cliquez pour les afficher.", + "checkLabelCount_one": "{{count}} chat à vérifier", + "checkLabelCount_other": "{{count}} chats à vérifier", + "checkAriaCount_one": "{{count}} chat à vérifier après sa reprise. Cliquez pour voir les détails.", + "checkAriaCount_other": "{{count}} chats à vérifier après leur reprise. Cliquez pour voir les détails.", + "labelCount_one": "{{count}} chat à reprendre", + "labelCount_other": "{{count}} chats à reprendre", + "ariaLabelCount_one": "{{count}} chat peut être repris", + "ariaLabelCount_other": "{{count}} chats peuvent être repris" }, "provider": { "extra": { @@ -4442,6 +4487,81 @@ } } } + }, + "mergeSnapshotAndSessions": { + "unattributed": "Non attribué" + }, + "resourceSessionLabels": { + "terminalNumber": "Terminal {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "session {{id}}", + "unknownSession": "(session inconnue)", + "unknown": "inconnu" + }, + "runtimeTargets": { + "wslDefault": "WSL par défaut" + }, + "floatingWorkspace": { + "minimize": "Réduire l’espace de travail flottant", + "show": "Afficher l’espace de travail flottant" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "Le propriétaire de l’espace de travail n’est plus disponible" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "Synchronisé avec l’amont", + "aheadAndBehind": "{{ahead}} d’avance, {{behind}} de retard", + "ahead": "{{ahead}} d’avance", + "behind": "{{behind}} de retard", + "activeAgents_one": "{{count}} agent actif", + "activeAgents_other": "{{count}} agents actifs", + "completedAgents_one": "{{count}} agent terminé", + "completedAgents_other": "{{count}} agents terminés", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_one": "{{count}} agent terminé conservé", + "completedAgentsRetained_other": "{{count}} agents terminés conservés", + "noTrackedAgents": "Aucun agent suivi en cours d’exécution", + "noTerminalTabs": "Aucun onglet de terminal", + "liveTerminalTabs_one": "{{live}} en cours d’exécution sur {{count}} onglet de terminal", + "liveTerminalTabs_other": "{{live}} en cours d’exécution sur {{count}} onglets de terminal", + "gitStatusUnavailable": "État Git indisponible : {{error}}", + "gitStatusNotLoaded": "L’état Git n’est pas encore chargé", + "noUncommittedFiles": "Aucun fichier avec des modifications non committées", + "changedFiles_one": "{{count}} fichier modifié", + "changedFiles_other": "{{count}} fichiers modifiés", + "noEditorFiles": "Aucun fichier ouvert dans l’éditeur", + "editorFilesOpen_one": "{{count}} fichier ouvert dans l’éditeur", + "editorFilesOpen_other": "{{count}} fichiers ouverts dans l’éditeur", + "dirtyOfOpen": "{{dirty}} sur {{open}}", + "dirtyEditorBuffers_one": "{{count}} tampon d’éditeur non enregistré", + "dirtyEditorBuffers_other": "{{count}} tampons d’éditeur non enregistrés", + "openFiles_one": "{{count}} fichier ouvert", + "openFiles_other": "{{count}} fichiers ouverts", + "activeWorkspace": "C’est l’espace de travail actif", + "mainWorktreeProtected": "Le worktree principal est protégé", + "workspaceProtected": "L’espace de travail est protégé", + "canDeleteAfterReview": "Peut être supprimé après vérification", + "noLinkedIssue": "Aucun ticket lié", + "noLinkedReview": "Aucune PR liée", + "browserTabsOpen_one": "{{count}} onglet de navigateur ouvert", + "browserTabsOpen_other": "{{count}} onglets de navigateur ouverts" + }, + "workspaceSpaceFormat": { + "cancellingScan": "Annulation de l’analyse", + "currentWorkspaces": "espaces de travail", + "scanningWorkspaces": "Analyse de {{scanned}} sur {{total}} · {{current}}", + "scanningRepos_one": "Analyse de {{scanned}} sur {{count}} dépôt · {{current}}", + "scanningRepos_other": "Analyse de {{scanned}} sur {{count}} dépôts · {{current}}", + "scanningSizes": "Analyse des tailles des espaces de travail", + "status": { + "scanned": "Analysé", + "missing": "Manquant", + "noAccess": "Aucun accès", + "unavailable": "Indisponible", + "failed": "Échec" + }, + "mainWorktree": "worktree principal", + "detached": "détaché" } } }, @@ -5219,12 +5339,10 @@ "670864ab52": "Mise à jour du {{value0}} local en cours", "84c62e4d7f": "Impossible d'activer {{value0}}", "442552c656": "Ouvrez les paramètres et réessayez.", - "f15fd80989": "Votre nouveau worktree est à jour, mais le {{value0}} local est en retard de {{value1}} {{value2}}, les diffs IA peuvent donc se comparer à un historique obsolète. Laissez Orca le maintenir à jour automatiquement. Modifiable à tout moment dans", - "3d260e1a5d": "Paramètres › {{value0}}", "34a03a6565": "Garder {{value0}} à jour", "4a18052018": "Le {{value0}} local est en retard sur {{value1}}", - "commit": "commit", - "commits": "commits" + "staleLocalBranch_one": "Votre nouveau worktree est à jour, mais la branche locale {{branch}} a {{count}} commit de retard. Les diffs de l’IA peuvent donc utiliser un historique obsolète. Laissez Orca la maintenir à jour automatiquement. Vous pouvez modifier ce réglage à tout moment dans Paramètres › {{setting}}", + "staleLocalBranch_other": "Votre nouveau worktree est à jour, mais la branche locale {{branch}} a {{count}} commits de retard. Les diffs de l’IA peuvent donc utiliser un historique obsolète. Laissez Orca la maintenir à jour automatiquement. Vous pouvez modifier ce réglage à tout moment dans Paramètres › {{setting}}" } } } @@ -5278,12 +5396,11 @@ "39d51212cc": "Nom du groupe", "aa0247680d": "Non, importer séparément", "a0bc4d1f8e": "Oui, importer comme groupe", - "8401a7a0d0": "1 dépôt", - "d4f1df62ef": "{{value0}} dépôts", - "b4263a2ac4": "{{value0}} trouvé(s) dans {{value1}}.", "24eda6c8b2": "Analyse... {{value0}}", "6149d5203f": "Aucun dépôt sélectionné. Ouvrez plutôt le dossier parent pour utiliser l'éditeur, le terminal et la recherche sans les fonctionnalités Git.", - "e52454b7f6": "Ouvrir comme dossier" + "e52454b7f6": "Ouvrir comme dossier", + "foundRepositories_one": "{{count}} dépôt trouvé dans {{path}}.", + "foundRepositories_other": "{{count}} dépôts trouvés dans {{path}}." }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5352,9 +5469,8 @@ "eab8b45238": "Copier l'erreur", "a23b22d16f": "Copied", "74fc00776f": "Détails de l'erreur", - "3afcad0497": "à partir du premier message de l'agent.", - "ff62a18580": "Orca n'a pas pu générer un nom de branche pour", - "ca3b225195": "Échec du nommage automatique de la branche" + "ca3b225195": "Échec du nommage automatique de la branche", + "couldNotGenerateBranchName": "Orca n’a pas pu générer de nom de branche pour {{name}} à partir du premier message de l’agent." }, "CreateProjectLocationField": { "95548e33bf": "Choisir un dossier parent...", @@ -5374,37 +5490,38 @@ "2b56b35f53": "Vous pouvez changer cela dans les paramètres.", "dd3a45bbbd": "Cette confirmation sera ignorée la prochaine fois.", "fc23c4cbdf": "Supprimer l'espace de travail", - "86f0ae1257": "Supprimer les espaces de travail" + "86f0ae1257": "Supprimer les espaces de travail", + "removeFolderProjectInstead": "Retirez le projet de dossier au lieu de supprimer cet espace de travail.", + "gitBlocksMainWorktree": "Git ne permet pas de retirer le worktree principal." }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "Afficher les chemins chargés", "loadedPathsNotice": "Les chemins chargés peuvent être incomplets ou obsolètes.", "loadedChangedPaths": "Chemins modifiés chargés", "unresolvedConflict": "Conflit non résolu", - "moreLoadedPaths": "et {{value0}} autres chemins chargés", "changeCount_one": "{{count}} modification non commitée ou non suivie", "changeCount_other": "{{count}} modifications non commitées ou non suivies", - "changes": "Modifications non commitées ou non suivies" + "changes": "Modifications non commitées ou non suivies", + "moreLoadedPaths_one": "et {{count}} autre chemin chargé", + "moreLoadedPaths_other": "et {{count}} autres chemins chargés" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "de plus", "a940f3c96e": "Les espaces de travail enfants seront supprimés", - "29b98bf9cd": "La suppression de cet espace de travail supprime aussi {{value0}} espaces de travail enfants.", - "66798cc6a2": "La suppression de cet espace de travail supprime aussi 1 espace de travail enfant." + "alsoDeletesChildren_one": "Supprimer cet espace de travail supprime également {{count}} espace de travail enfant.", + "alsoDeletesChildren_other": "Supprimer cet espace de travail supprime également {{count}} espaces de travail enfants.", + "moreChildren_one": "+{{count}} de plus", + "moreChildren_other": "+{{count}} de plus" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "Ne plus demander" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(le répertoire de clone d'origine).", - "c4f96a6e18": "worktree principal", - "e3be9eba15": "Ceci est le" + "mainWorktreeNotice": "Il s’agit du worktree principal (le répertoire du clone d’origine)." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "Afficher dans la liste des worktrees", "ad99f4eea9": "Garder masqué", "9f4f14e821": "Modifiable plus tard depuis le menu du projet.", - "b2bc47c080": "autres emplacements", "b47ba1a9d2": "Aperçu de {{value0}}", "2251d41ebb": "Groupes de worktrees masqués", "5a9688802a": "Afficher {{value0}} de plus", @@ -5418,7 +5535,9 @@ "keepHiddenAriaLabel_one": "Garder {{count}} worktree détecté masqué pour {{repo}} ; récupérez-le depuis le menu du projet", "keepHiddenAriaLabel_other": "Garder {{count}} worktrees détectés masqués pour {{repo}} ; récupérez-les depuis le menu du projet", "keepHiddenTooltip": "Garder masqué - récupérable depuis le menu du projet", - "repoOnHost": "{{repo}} sur {{host}}" + "repoOnHost": "{{repo}} sur {{host}}", + "moreLocations_one": "+ {{count}} autre emplacement", + "moreLocations_other": "+ {{count}} autres emplacements" }, "NonGitFolderDialog": { "e52454b7f6": "Ouvrir comme dossier", @@ -5452,20 +5571,24 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "Annuler", - "69f5cb97d0": "Supprimer", "591f330288": "Supprimer le groupe de projets", "2c14ce677a": "Suppression...", "0e0e6764af": "Projets contenus", - "ad407c2d55": "de plus", - "removeContainedProjectSingular": "Retirer 1 projet contenu", - "removeContainedProjectPlural": "Retirer {{value0}} projets contenus", "55f75628c0": "Les dossiers de projets sur le disque ne sont pas supprimés.", - "fec7e9c8ae": "Supprimer le groupe" + "fec7e9c8ae": "Supprimer le groupe", + "removeContainedProjects_one": "Retirer {{count}} projet du groupe", + "removeContainedProjects_other": "Retirer {{count}} projets du groupe", + "deleteGroupDescription": "Supprimer {{name}}.", + "moreProjects_one": "+{{count}} de plus", + "moreProjects_other": "+{{count}} de plus" }, "ProjectGroupNameDialog": { "d99a034073": "Annuler", "83dfbc5313": "Nom du groupe", - "4a64e78822": "Enregistrement..." + "4a64e78822": "Enregistrement...", + "defaultGroupName": "Groupe {{name}}", + "create": "Créer", + "rename": "Renommer" }, "RemoteFileBrowser": { "2300612806": "Tapez pour filtrer ou saisissez un chemin…", @@ -5477,7 +5600,9 @@ "largeInputNoMatches": "Aucun résultat pour cette saisie longue", "entriesLabel": "Éléments du dossier", "inputLabel": "Filtre ou chemin", - "fileHint": "Les fichiers ne peuvent pas être ouverts comme projet" + "fileHint": "Les fichiers ne peuvent pas être ouverts comme projet", + "invalidPathRepeatedSeparators": "Chemin invalide : séparateurs répétés", + "invalidPathControlCharacters": "Chemin invalide : les caractères de contrôle ne sont pas autorisés" }, "SleepTwinWorkspaceDialog": { "title": "Sleep Workspace", @@ -5507,11 +5632,10 @@ "70715947fb": "Le script de setup ne peut pas être vide", "888b83bf78": "Échec de l'enregistrement du script de setup", "a49196d538": "S'exécute quand Orca crée un nouveau worktree.", - "d9f2db2738": "paramètres du projet", - "a5bb8c5135": "Enregistré dans les", "savedSetupCommand": "Commande de setup enregistrée.", "savedWithSkippedFields_one": "{{count}} champ non pris en charge ignoré. Commande de setup enregistrée.", - "savedWithSkippedFields_other": "{{count}} champs non pris en charge ignorés. Commande de setup enregistrée." + "savedWithSkippedFields_other": "{{count}} champs non pris en charge ignorés. Commande de setup enregistrée.", + "savedInProjectSettings": "Enregistré dans les paramètres de ce projet" }, "SetupScriptPromptCardViews": { "96a7f4198c": "Enregistrer le setup local", @@ -5519,20 +5643,17 @@ "31b8b01a45": "Paramètres", "4a98f907ae": "Réessayer", "0a98169776": "Ajoutez une commande de setup à exécuter quand Orca crée de nouveaux worktrees.", - "8349e3fa4c": ". Enregistrez-la pour l'exécuter sur les nouveaux worktrees.", - "b56d1322f7": "Une commande de setup a été trouvée dans", "aef6c0a213": "Enregistrez la commande détectée pour l'exécuter chaque fois qu'Orca crée un worktree.", - "660cdc17f8": "scripts de setup partagés. Ajoutez une commande locale, ou changez la source dans les paramètres.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "Ce dépôt ignore les", "0155fb9ed3": "Impossible de vérifier le script de setup de ce dépôt pour le moment.", "eefa756190": "Configurer manuellement", "ca4efcbc25": "Enregistrer", - "d02e6a42b1": "Détecté depuis", "fdbc6cb064": "Script de setup détecté", "7275f674cc": "Setup détecté", "822ff300ad": "Ignorer", - "5bfd5c8779": "Ignorer les scripts de setup" + "5bfd5c8779": "Ignorer les scripts de setup", + "detectedFromSource": "Détecté dans {{source}}", + "ignoresSharedSetup": "Ce dépôt ignore les scripts de setup partagés de orca.yaml. Ajoutez une commande locale ou changez la source dans les paramètres.", + "foundSetupCommandIn": "Une commande de setup a été trouvée dans {{source}}. Enregistrez-la pour l’exécuter pour les nouveaux worktrees." }, "SidebarFeedbackDialog": { "8bf619e4cf": "Annuler", @@ -5715,8 +5836,9 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "Fermer", "e1a34450fc": "Organisez les espaces de travail par statut et ouvrez les cartes d'espace de travail.", - "81870af08f": "sélectionnés", - "c6a77ab0f4": "Tableau des espaces de travail" + "c6a77ab0f4": "Tableau des espaces de travail", + "selectedCount_one": "{{count}} sélectionné", + "selectedCount_other": "{{count}} sélectionnés" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "Déposez ici pour épingler sans changer de statut.", @@ -5817,7 +5939,8 @@ "2931b42b09": "État : brouillon {{value0}}", "e888362def": "État : fermé", "f394b3e86e": "État : fusionné", - "af2b07bda5": "État : {{value0}}" + "af2b07bda5": "État : {{value0}}", + "checksStatus": "Vérifications : {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "Ports actifs", @@ -5828,8 +5951,9 @@ "5d1a5d51bb": "Processus arrêté sur {{value0}}", "c89f290e25": "{{value0}} copié", "d1113f4660": "Échec de l'ouverture du navigateur", - "fed49903c9": "{{value0}} {{value1}} actif(s)", - "unknownProcess": "Processus inconnu" + "unknownProcess": "Processus inconnu", + "livePorts_one": "{{count}} port actif", + "livePorts_other": "{{count}} ports actifs" }, "WorktreeContextMenu": { "c39c37676a": "Créez un groupe et déplacez-y ce projet.", @@ -5874,7 +5998,6 @@ "f9dc6cc5d3": "Renommer le groupe de projets", "370c6a55dd": "Réinitialiser les filtres", "b7acbf038b": "Aucun espace de travail trouvé", - "0c6ee14f23": "enfant", "c83968f87f": "Retirer le projet", "64e55f7f01": "Retirer du groupe", "4a08fb55f2": "Déplacer vers un groupe", @@ -5887,12 +6010,7 @@ "4d7b73658c": "Renommer le groupe", "79465e9034": "Actions du groupe pour {{value0}}", "bfbedc547b": "Worktrees", - "045a8aed48": "enfants", "bb85cd86ba": "Créer un espace de travail pour {{value0}}", - "20bebf9c7f": "Afficher {{value0}} espace de travail enfant", - "c1f4a31623": "Afficher {{value0}} espaces de travail enfants", - "e97297cb75": "Masquer {{value0}} espace de travail enfant", - "0cd15956d4": "Masquer {{value0}} espaces de travail enfants", "bd37a57ac8": "Créer un espace de travail pour {{value0}}", "b667b59632": "Certains projets n'ont pas pu être retirés d'Orca", "groupDeleteFailed": "Échec de la suppression du groupe", @@ -5903,8 +6021,14 @@ "sidebarRowMissing": "La cible n'existe plus", "failedUnnestWorkspace": "Échec de la désimbrication de l'espace de travail", "hostRepairRequired": "Re-pair required", - "groupProjectsRemainedSingular": "{{remaining}} projet sur {{count}} est resté après la suppression du groupe.", - "groupProjectsRemainedPlural": "Projets restés après la suppression du groupe : {{remaining}} sur {{count}}." + "showChildWorkspaces_one": "Afficher {{count}} espace de travail enfant", + "hideChildWorkspaces_one": "Masquer {{count}} espace de travail enfant", + "showChildWorkspaces_other": "Afficher {{count}} espaces de travail enfants", + "hideChildWorkspaces_other": "Masquer {{count}} espaces de travail enfants", + "childCount_one": "{{count}} enfant", + "childCount_other": "{{count}} enfants", + "groupProjectsRemained_one": "Projets conservés après suppression du groupe : {{remaining}} sur {{count}}.", + "groupProjectsRemained_other": "Projets conservés après suppression du groupe : {{remaining}} sur {{count}}." }, "WorktreeMetaDialog": { "3db0a2a593": "Annuler", @@ -5968,7 +6092,6 @@ "d40d436fc2": "Impossible de mettre à jour la visibilité du worktree. Réessayez.", "unsupportedHost": "Cet hôte ne prend pas en charge la visibilité des worktrees par source. Mettez à jour Orca sur l'hôte pour modifier ce paramètre.", "search": "Rechercher des worktrees masqués", - "searchPlaceholder": "Rechercher parmi {{value0}} worktrees…", "noMatches": "Aucun worktree correspondant", "allShown": "Tous les worktrees détectés sont affichés", "noneFound": "Aucun worktree non Orca trouvé", @@ -5976,7 +6099,9 @@ "disableSource": "Désactivez une source pour gérer ses worktrees individuellement.", "appearWhenDetected": "Les nouveaux worktrees apparaîtront ici quand Orca les détectera.", "openGlobalSettings": "Gérer dans les paramètres globaux", - "globalSettingsSources": "Ces sources ont un paramètre global que vous pouvez remplacer ici :" + "globalSettingsSources": "Ces sources ont un paramètre global que vous pouvez remplacer ici :", + "searchHiddenPlaceholder_one": "Rechercher parmi {{count}} worktree…", + "searchHiddenPlaceholder_other": "Rechercher parmi {{count}} worktrees…" }, "add": { "repo": { @@ -6170,13 +6295,13 @@ "7a8b9c0d1e": "Ouvrir les paramètres", "8b9c0d1e2f": "Retirer l'hôte", "workspacesFailed": "Impossible de retirer {{count}} espaces de travail de cet hôte. L'hôte a été conservé pour vous permettre de réessayer.", - "oneWorkspace": "1 espace de travail", - "manyWorkspaces": "{{count}} espaces de travail", - "hostHasWorkspacesDefault": "Retire {{value0}} et ses identifiants de cet ordinateur. Ses {{value1}} restent dans Orca — les fichiers distants ne sont pas touchés.", - "alsoForgetLocal": "Retirer aussi ces {{value0}} d'Orca", "advanced": "Avancé", "alsoForgetLocalHint": "Les retire uniquement d'Orca. Les fichiers, worktrees et branches distants restent intacts.", - "wslHostEndsTerminalsUnlessShared": "Retire {{value0}} d'Orca. Sauf si un autre Orca ouvert sur cet ordinateur l'utilise, cela ferme aussi ses terminaux ouverts et arrête le serveur d'Orca dans cette distro. Les fichiers de la distro restent intacts." + "wslHostEndsTerminalsUnlessShared": "Retire {{value0}} d'Orca. Sauf si un autre Orca ouvert sur cet ordinateur l'utilise, cela ferme aussi ses terminaux ouverts et arrête le serveur d'Orca dans cette distro. Les fichiers de la distro restent intacts.", + "hostKeepsWorkspaces_one": "Retire {{host}} et ses identifiants de cet ordinateur. Son {{count}} espace de travail reste dans Orca — les fichiers distants ne sont pas modifiés.", + "hostKeepsWorkspaces_other": "Retire {{host}} et ses identifiants de cet ordinateur. Ses {{count}} espaces de travail restent dans Orca — les fichiers distants ne sont pas modifiés.", + "alsoRemoveWorkspaces_one": "Retirer aussi cet espace de travail d’Orca", + "alsoRemoveWorkspaces_other": "Retirer aussi ces {{count}} espaces de travail d’Orca" }, "HostRenameDialog": { "1a2b3c4d5e": "Renommer l'hôte", @@ -6249,7 +6374,7 @@ "current": "Actuel", "searchPlaceholder": "Rechercher des worktrees...", "empty": "Aucun worktree éligible correspondant.", - "setParentFor": "Définir le parent pour" + "setParentForName": "Définir le parent de {{name}}" }, "WorktreeCardStatusSlot": { "branchIdentity": "Branche", @@ -6259,12 +6384,12 @@ }, "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "Masquer définitivement les worktrees externes pour {{value0}}", - "2a6f31d8c7": "worktree masqué", - "5b90e4a2f6": "worktrees masqués", - "7f18c5b0d3": "Examiner {{value0}} worktree masqué dans {{value1}}", - "4e2b7a9c05": "Examiner {{value0}} worktrees masqués dans {{value1}}", "c3e8a1f4b2": "Ne plus afficher", - "6c07f3a91e": "{{value0}} sur {{value1}}" + "6c07f3a91e": "{{value0}} sur {{value1}}", + "hiddenWorktreesNoun_one": "worktree masqué", + "hiddenWorktreesNoun_other": "worktrees masqués", + "reviewHiddenWorktrees_one": "Examiner {{count}} worktree masqué dans {{scope}}", + "reviewHiddenWorktrees_other": "Examiner {{count}} worktrees masqués dans {{scope}}" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} déconnecté", @@ -6355,8 +6480,9 @@ "sshConfigPickerRetry": "Réessayer", "sshConfigPickerResolving": "Lecture…", "pairingHelpShareComputer": "Créez-le dans Réglages → Serveurs Orca distants → Partager cet ordinateur sur l’autre ordinateur.", - "sshImportSyncedPlural": "Ajout de {{count}} hôtes à Orca.", - "sshImportSyncedSingular": "Ajout de {{count}} hôte à Orca." + "sshImportSynced_one": "{{count}} hôte ajouté à Orca.", + "sshImportSynced_other": "{{count}} hôtes ajoutés à Orca.", + "sshConfigPickerInvalidResponse": "Réponse d’hôte de configuration SSH invalide" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} n'est plus un hôte SSH enregistré ; cet espace de travail n'est donc plus connecté à un hôte actif. Il ne peut être que retiré d'Orca — les fichiers et branches distants restent intacts.", @@ -6379,11 +6505,12 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "Aucun espace de travail correspondant", - "4d96c209d6": "{{value0}} espaces de travail sur {{value1}} correspondent", "c0cd6bdf6c": "Rechercher des espaces de travail", "3b7ea51793": "Effacer la recherche", "7f1c2e94a5": "Texte de recherche trop long — le tableau n'est pas filtré", - "9a4d0f6b21": "Trop long" + "9a4d0f6b21": "Trop long", + "workspacesMatch_one": "Espaces de travail correspondants : {{matchCount}} sur {{count}}", + "workspacesMatch_other": "Espaces de travail correspondants : {{matchCount}} sur {{count}}" }, "WorktreeCardSshHostControl": { "connectFailed": "Échec de la connexion SSH", @@ -6481,11 +6608,12 @@ "developerToolsTitle": "Installez les outils en ligne de commande d'Apple", "developerToolsBody": "Git a besoin des outils de développement d'Apple. Exécutez ceci dans le terminal, puis revenez à Orca. Il vérifiera à nouveau automatiquement.", "affectedOne": "Analyse des worktrees en pause pour {{value0}}", - "affectedMany": "Analyse des worktrees en pause pour {{value0}} projets", "copyCommand": "Copier la commande", "copied": "Commande copiée", "retry": "Réessayer maintenant", - "restored": "Git fonctionne à nouveau. Worktrees actualisés." + "restored": "Git fonctionne à nouveau. Worktrees actualisés.", + "affectedProjects_one": "Analyse des worktrees en pause pour {{count}} projet", + "affectedProjects_other": "Analyse des worktrees en pause pour {{count}} projets" }, "manualSortSwitch": { "title": "Tri modifié en Manuel", @@ -6530,7 +6658,8 @@ "wslHostRemoval": { "keptForOthers": "Retiré de cet Orca. L'hôte reste actif pour {{value0}}.", "partial": "L'hôte a été retiré, mais quelque chose dans la distro est encore en cours d'exécution : {{value0}}", - "pending": "Orca n'a pas encore supprimé l'hôte : {{value0}} Supprimez-le à nouveau pour réessayer, ou connectez-le pour le conserver." + "pending": "Orca n'a pas encore supprimé l'hôte : {{value0}} Supprimez-le à nouveau pour réessayer, ou connectez-le pour le conserver.", + "unavailable": "Les hôtes WSL ne sont pas disponibles sur cet ordinateur." }, "addRepoWslHostFolderPicker": { "otherDistro": "Ce dossier se trouve dans {{value0}}, pas dans {{value1}}.", @@ -6585,6 +6714,42 @@ "openingProject": "Ouverture du projet...", "openingFolder": "Ouverture du dossier...", "chooseFolder": "Choisissez un dossier..." + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "Cet hôte ne prend pas en charge la suppression de worktrees imbriqués." + }, + "WorktreeCardHelpers": { + "checksPassing": "Réussies", + "checksFailing": "En échec", + "checksPending": "En attente", + "conflictMerging": "Merge en cours", + "conflictRebasing": "Rebase en cours", + "conflictCherryPicking": "Cherry-pick en cours" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "Espace de travail {{name}}" + }, + "workspaceKanbanStatus": { + "defaultLabel": "Statut {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_one": "{{preview}}, +{{count}} de plus", + "sparsePreviewMore_other": "{{preview}}, +{{count}} de plus" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "Détails de la MR indisponibles", + "prDetailsUnavailable": "Détails de la PR indisponibles", + "loadingMr": "Chargement de la MR…", + "loadingPr": "Chargement de la PR…" + }, + "HostSectionHeader": { + "workspaceCount_one": "{{count}} espace de travail", + "workspaceCount_other": "{{count}} espaces de travail" + }, + "titleDerivedAgentRows": { + "needsInput": "Intervention requise", + "running": "En cours", + "idle": "Inactif" } }, "shared": { @@ -14177,17 +14342,8 @@ "saveLocation": "Définir l'emplacement" }, "SmartWorkspaceNameField": { - "2a0d535f69": "Créer une nouvelle branche", - "a44229ce4d": "comme nom d'espace de travail", - "766083a596": "\"", - "34ca97bce3": "\"", - "b1a7d679ba": "Utiliser", "e57c53727c": "Ajouter un projet...", - "a76fcb4fa0": "Basculer vers", - "eadf877af5": "Conserver", "6859e2896c": "Annuler", - "9ef1a7c4b0": ", qui est différent du projet sélectionné.", - "ad188067ae": "L'URL GitHub pointe vers", "4bd98f1091": "Changer de projet ?", "0c9e668e3a": "Effacer", "7199ff19c7": "Effacer la source sélectionnée", @@ -14206,7 +14362,6 @@ "fda67f0b61": "projet actuel", "3e8bb1176a": "Connectez Linear dans les réglages pour rechercher des issues.", "switchTaskSourceTitle": "Changer de source de tâches ?", - "differentTaskSource": ", qui est différent de la source de tâches sélectionnée.", "currentTaskSource": "source de tâches actuelle", "placeholderNameOrLinearUrl": "Saisissez un nom, une URL Linear ou une URL Jira", "placeholderWorkspaceName": "Saisissez un nom d'espace de travail", @@ -14235,7 +14390,13 @@ "emoji": "Émoji", "loadingLinearIssue": "Chargement de l'issue Linear…", "linearLoginUnreadableTitle": "Reconnectez Linear", - "linearLoginUnreadableBody": "Impossible de lire la connexion Linear enregistrée. Reconnectez-la dans les réglages." + "linearLoginUnreadableBody": "Impossible de lire la connexion Linear enregistrée. Reconnectez-la dans les réglages.", + "keepRepo": "Conserver {{name}}", + "switchToRepo": "Passer à {{name}}", + "crossRepoDifferentTaskSource": "L’URL GitHub pointe vers {{repo}}, qui diffère de la source de tâches sélectionnée.", + "crossRepoDifferentProject": "L’URL GitHub pointe vers {{repo}}, qui diffère du projet sélectionné.", + "useAsWorkspaceName": "Utiliser « {{name}} » comme nom d’espace de travail", + "createNewBranchNamed": "Créer une nouvelle branche {{name}}" }, "ProjectCombobox": { "empty": "Aucun projet ne correspond à votre recherche.", @@ -14249,6 +14410,11 @@ "listLabel": "Cibles d'exécution", "label": "Exécuter sur", "browse": "Parcourir les cibles d'exécution" + }, + "projectCombobox": { + "recentHeading": "Récents", + "projectsHeading": "Projets", + "foldersHeading": "Dossiers" } } }, @@ -15848,7 +16014,10 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} enfant {{value2}}" + "hideChildAgents_one": "Masquer {{count}} agent enfant", + "hideChildAgents_other": "Masquer {{count}} agents enfants", + "showChildAgents_one": "Afficher {{count}} agent enfant", + "showChildAgents_other": "Afficher {{count}} agents enfants" }, "DashboardAgentRow": { "912e136cd9": "Envoyer", @@ -15856,7 +16025,13 @@ "a41fb5376e": "Réduire les détails", "5ae84475cc": "Ignorer", "b06e13fcf7": "Rejeter l'agent", - "0272969e28": "Envoyer à cet agent" + "0272969e28": "Envoyer à cet agent", + "justNow": "à l’instant", + "timeAgo": "il y a {{duration}}", + "dispatchedAgents_one": "{{agentType}} - {{count}} agent envoyé", + "dispatchedAgents_other": "{{agentType}} - {{count}} agents envoyés", + "startedAgo": "démarré {{time}}", + "doneAgo": "terminé {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "interrompu", @@ -16982,14 +17157,15 @@ "clearNotification": "Effacer la notification" }, "ActivityTitlebarControls": { - "f915168c8e": "non lu", "d6a8de3934": "agents", - "dc708f3eff": "Fermer les agents" + "dc708f3eff": "Fermer les agents", + "unreadCount_one": "{{count}} non lu", + "unreadCount_other": "{{count}} non lus" }, "clearCompleted": { - "clearedOne": "Effacé 1 agent terminé", - "clearedMany": "Agents terminés {{count}} autorisés", - "undo": "Défaire" + "undo": "Défaire", + "cleared_one": "{{count}} agent terminé retiré de la liste", + "cleared_other": "{{count}} agents terminés retirés de la liste" }, "standaloneWorktree": { "floatingTerminal": "Terminal flottant", @@ -17815,6 +17991,16 @@ "unreachable": "Impossible de joindre Jira. Vérifiez votre connexion et réessayez.", "loadFailed": "Impossible de charger les issues Jira. Réessayez dans un instant.", "errorWithCode": "Erreur {{code}} : {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "Impossible d’exécuter « {{action}} » — l’espace de travail est encore en cours de chargement.", + "noActiveWorkspace": "Impossible d’exécuter « {{action}} » — aucun espace de travail n’est actif.", + "workspaceDisconnected": "Impossible d’exécuter « {{action}} » — l’espace de travail est déconnecté.", + "noTabGroup": "Impossible d’exécuter « {{action}} » — aucun groupe d’onglets n’est disponible.", + "noMovableChat": "Impossible d’exécuter « {{action}} » — aucun chat déplaçable n’est actif.", + "clientUnsupported": "Impossible d’exécuter « {{action}} » — ce client et cet environnement d’exécution ne le prennent pas en charge." + } } }, "i18n": { @@ -18977,8 +19163,6 @@ "none": "Aucun" }, "idleSignalField": "Signal d'inactivité", - "selectionVanishedOne": "1 espace de travail sélectionné n'existe plus.", - "selectionVanished": "{{value0}} espaces de travail sélectionnés n'existent plus.", "updatedAgo": "{{value0}} mis à jour", "refreshing": "Actualisation…", "refreshingProgress": "Actualisation {{value0}}/{{value1}}", @@ -18993,12 +19177,6 @@ "gitStatusCheckFailed": "Échec de la vérification de l'état git", "gitStatusUnverified": "L'état git n'a pas pu être vérifié", "deleteAnyway": "Supprimer quand même", - "forceDeleteProjectionOne": "{{count}} espace de travail présente actuellement un risque et peut nécessiter une suppression forcée", - "forceDeleteProjectionMany": "{{count}} espaces de travail présentent actuellement un risque et peuvent nécessiter une suppression forcée", - "selectionWithheldOne": "1 espace de travail sélectionné est masqué par les filtres actuels et a été désélectionné.", - "selectionWithheld": "{{value0}} espaces de travail sélectionnés sont masqués par les filtres actuels et ont été désélectionnés.", - "selectAllCountOne": "Sélectionner 1 espace de travail vérifié côté sécurité", - "selectAllCount": "Sélectionner les {{value0}} espaces de travail vérifiés côté sécurité", "appliedFilters": "Filtres appliqués", "removeFilter": "Supprimer le filtre {{value0}}", "chip": { @@ -19042,18 +19220,28 @@ "locked": "Verrouillé", "retainedAgents": "Agents terminés" } - } + }, + "forceDeleteRisk_one": "{{count}} espace de travail présente actuellement un risque et peut nécessiter une suppression forcée", + "forceDeleteRisk_other": "{{count}} espaces de travail présentent actuellement un risque et peuvent nécessiter une suppression forcée", + "selectionVanishedCount_one": "{{count}} espace de travail sélectionné n’existe plus.", + "selectionVanishedCount_other": "{{count}} espaces de travail sélectionnés n’existent plus.", + "selectionWithheldCount_one": "{{count}} espace de travail sélectionné est masqué par les filtres actuels et a été désélectionné.", + "selectionWithheldCount_other": "{{count}} espaces de travail sélectionnés sont masqués par les filtres actuels et ont été désélectionnés.", + "selectAllSafetyChecked_one": "Sélectionner {{count}} espace de travail dont la sécurité a été vérifiée", + "selectAllSafetyChecked_other": "Sélectionner tous les {{count}} espaces de travail dont la sécurité a été vérifiée" }, "scan": { "progress": "Analyse des espaces de travail ({{value0}}/{{value1}})", "singleError": "Impossible de vérifier {{value0}} : {{value1}}. Certains espaces de travail peuvent manquer. Actualisez pour réessayer.", - "moreErrors": ", +{{value0}} autres", - "multipleErrors": "Impossible de vérifier les dépôts {{value0}} ({{value1}}{{value2}}). Certains espaces de travail peuvent manquer. Actualisez pour réessayer.", "noWorkspaces": "Aucun espace de travail trouvé.", "fallbackRepository": "un dépôt", "gitListFailed": "Git n'a pas pu lister les worktrees", - "readyOne": "1 espace de travail trouvé.", - "readyMany": "{{value0}} espaces de travail trouvés." + "multipleErrorsWithMore_one": "Impossible de vérifier {{count}} dépôt ({{names}}, +{{moreCount}} de plus). Certains espaces de travail peuvent manquer. Actualisez pour réessayer.", + "multipleErrorsWithMore_other": "Impossible de vérifier {{count}} dépôts ({{names}}, +{{moreCount}} de plus). Certains espaces de travail peuvent manquer. Actualisez pour réessayer.", + "multipleErrorsCount_one": "Impossible de vérifier {{count}} dépôt ({{names}}). Certains espaces de travail peuvent manquer. Actualisez pour réessayer.", + "multipleErrorsCount_other": "Impossible de vérifier {{count}} dépôts ({{names}}). Certains espaces de travail peuvent manquer. Actualisez pour réessayer.", + "readyCount_one": "{{count}} espace de travail trouvé.", + "readyCount_other": "{{count}} espaces de travail trouvés." }, "relativeTime": { "never": "Jamais", @@ -20376,7 +20564,6 @@ "repositoryLoading": "L'identité du dépôt est encore en cours de chargement. Réessayez dès qu'elle est disponible.", "duplicate": "Ce lien est déjà joint.", "title": "Travail lié", - "count": "{{count}} liés", "empty": "Regroupez toutes les revues et tâches de cet espace de travail.", "reviews": "Revues", "tasks": "Issues et tâches", @@ -20384,7 +20571,6 @@ "open": "Ouvrir le lien", "unlinkItem": "Dissocier {{label}}", "unlink": "Dissocier de l'espace de travail", - "show": "Afficher {{count}} revues et tâches liées", "details": "Détails de l'espace de travail", "description": "Joignez des revues et des tâches, et conservez des notes pour cet espace de travail.", "commentHelp": "Markdown pris en charge. Entrée ou {{shortcut}} pour enregistrer · Maj+Entrée pour un retour à la ligne.", @@ -20437,7 +20623,11 @@ "checksPassing": "Réussi", "checksUnknown": "Inconnu", "checksNeutral": "Neutre", - "allReviewChecks": "Revues : {{count}} · Vérifications : {{status}}" + "allReviewChecks": "Revues : {{count}} · Vérifications : {{status}}", + "showLinked_one": "Afficher {{count}} revue ou tâche liée", + "showLinked_other": "Afficher {{count}} revues et tâches liées", + "linkedCount_one": "{{count}} lié", + "linkedCount_other": "{{count}} liés" }, "attachments": { "updateRuntime": "Mettez à jour le runtime distant pour modifier les liens de l'espace de travail", @@ -20637,8 +20827,9 @@ }, "compact": { "linked": "Lié", - "linkedAndScanned": "{{value0}} dans les arbres de travail liés · {{value1}} espaces de travail", - "linkedAndUnavailable": "{{value0}} dans les arbres de travail liés · {{value1}} indisponible" + "linkedAndUnavailable": "{{value0}} dans les arbres de travail liés · {{value1}} indisponible", + "linkedAndScannedCount_one": "{{size}} dans les worktrees liés · {{count}} espace de travail", + "linkedAndScannedCount_other": "{{size}} dans les worktrees liés · {{count}} espaces de travail" }, "changes": { "empty": "Aucun fichier correspondant.", diff --git a/src/renderer/src/i18n/locales/ja.json b/src/renderer/src/i18n/locales/ja.json index fea01d58811..2f4ce1ab29d 100644 --- a/src/renderer/src/i18n/locales/ja.json +++ b/src/renderer/src/i18n/locales/ja.json @@ -1907,7 +1907,6 @@ "ba64270bdb": "Agent を構成する", "ab63f25397": "Agent 設定を開く", "0c5d6a479c": "[オプション]", - "b5a0796911": "接続", "dccd26d4e4": "プロジェクトを選択", "d6b0a96f32": "プロジェクトを追加", "969a8bff66": "プロジェクト", @@ -1971,7 +1970,8 @@ "runSetupNow": "今すぐセットアップを実行", "runCommandsNow": "今すぐコマンドを実行", "skipForNow": "今はスキップ", - "skipCommands": "コマンドをスキップ" + "skipCommands": "コマンドをスキップ", + "connectProject": "{{name}} に接続" }, "NewWorkspaceComposerModal": { "createWorktree": "ワークツリーを作成する", @@ -3379,21 +3379,18 @@ }, "drop": { "handler": { - "1e072f611e": "{{value0}} {{value1}} のアップロードに失敗しました。", "0c77693641": "ワークツリーが準備できていません — しばらくしてから再試行してください。", "ce8248b835": "ワークツリーのパスが使用できません。", "internalTooManyPaths": "安全にターミナルへ貼り付けるにはドロップされたパスが多すぎます。", "internalPathsTooLarge": "安全にターミナルへ貼り付けるにはパス一覧が大きすぎます。", "internalHostMismatch": "このターミナルと同じホストのファイルをドロップしてください。", - "b4cf68e889": "{{value0}} {{value1}} をスキップしました。", "writeTimeout": "ファイルドロップをキャンセルしました: 安全タイムアウト前にターミナルがパスを受け付けませんでした。", "writeRejected": "ファイルドロップをキャンセルしました: ターミナルがパスを受け付けられませんでした。", - "skippedSymlinkSingular": "{{count}} 個のシンボリックリンクをスキップしました。", - "skippedSymlinkPlural": "{{count}} 個のシンボリックリンクをスキップしました。", - "uploadingFileSingular": "{{count}} 個のファイルをランタイムにアップロードしています…", - "uploadingFilePlural": "{{count}} 個のファイルをランタイムにアップロードしています…", - "uploadingFileToRemoteSingular": "{{count}} 個のファイルをリモートホストにアップロードしています…", - "uploadingFileToRemotePlural": "{{count}} 個のファイルをリモートホストにアップロードしています…" + "skippedSymlinks_other": "シンボリックリンク {{count}} 件をスキップしました。", + "skippedItems_other": "{{count}} 件の項目をスキップしました。", + "failedUploads_other": "{{count}} 件のファイルをアップロードできませんでした。", + "uploadingFiles_other": "{{count}} 件のファイルをランタイムにアップロード中…", + "uploadingFilesToRemote_other": "{{count}} 件のファイルをリモートにアップロード中…" } } }, @@ -3532,10 +3529,15 @@ "sessionQueued": "セッションをキューに追加しました", "openSupportedWorkspace": "セッションを再開する前に、ワークスペースを開いてください。", "sessionHostMismatchUnsupported": "このセッションは別のホストに属しています。同じホスト上のワークスペースにドロップしてください。", - "oldPayload": "このセッションは古い Orca ウィンドウからドラッグされました。代わりにセッション履歴から再開してください。" + "oldPayload": "このセッションは古い Orca ウィンドウからドラッグされました。代わりにセッション履歴から再開してください。", + "legacyDragCannotRetarget": "このセッションは古いバージョンの Orca ウィンドウからドラッグされたため、選択した Codex アカウントに切り替えられません。セッション履歴パネルから再開してください。", + "legacyDragPrepareFailed": "Orca はこの旧形式の Codex セッションを準備できませんでした。もう一度再開を試してください。" }, "TabGroupDropOverlay": { "paneColumnLabel": "新規分割" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "ペアリングされたランタイムで管理対象のブラウザタブを複製できませんでした。" } }, "bar": { @@ -3730,6 +3732,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "ホストが利用不可", "7c129b08ff": "ホストを読み込み中…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "このセッションは CLI で開けません。" + }, + "tabCreateEntry": { + "fileNotFound": "ファイルが見つかりません: {{path}}", + "cannotOpenDirectory": "ディレクトリを開けません: {{path}}", + "parentNotDirectory": "{{path}} はディレクトリではないため、ファイルを作成できません。", + "fileNoLongerExists": "ファイルはすでに存在しません: {{path}}", + "noActiveWorktree": "アクティブなワークツリーがありません。" + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "ファイルパスに制御文字は使用できません。", + "enterAUrlOrFilePath": "URL またはファイルパスを入力してください。", + "homeRelativePathsAreNotSupported": "ここではホームディレクトリからの相対パスは使用できません。", + "enterAFilePathNotA": "ディレクトリパスではなく、ファイルパスを入力してください。", + "enterAnAbsoluteFilePath": "ファイルの絶対パスを入力してください。", + "enterAnAbsolutePathForThis": "このコンピュータ上の絶対パスを入力してください。", + "enterARelativeFilePath": "ファイルの相対パスを入力してください。", + "windowsDrivePathsAreNotSupported": "ここでは Windows のドライブパスは使用できません。", + "uncPathsAreNotSupportedHere": "ここでは UNC パスは使用できません。", + "filePathsCannotContainEmptySegments": "ファイルパスに空のパス要素は使用できません。", + "filePathsCannotContainDotSegments": "ファイルパスに . または .. のパス要素は使用できません。", + "filePathsCannotContainTildeSegments": "ファイルパスに ~ のパス要素は使用できません。" } } }, @@ -3757,15 +3783,13 @@ "4ebf90c12e": "外部ポートが検出されませんでした", "7dac3ecc9d": "外部ポート", "95495019ed": "{{value0}} ではポートスキャンを利用できません: {{value1}}", - "a8e4bdb412": " · 外部 {{value0}} 件", "c22ea609fd": "ポート", - "ca41be2802": "ポート — {{value0}} ワークスペース {{value1}}{{value2}}", - "b8bc3e420a": "ポート、{{value0}} ワークスペース {{value1}}", "3a87d54dfb": "ワークスペースポートが検出されませんでした", "c174bbbfed": "ワークスペースポートをスキャンしています…", - "8caaa86e9a": "ポート", - "45834a9ace": "ポート", - "2b84c4d11f": "{{value0}} ワークスペース · {{value1}} 外部" + "2b84c4d11f": "{{value0}} ワークスペース · {{value1}} 外部", + "portsAria_other": "ポート、ワークスペースのポート {{count}} 個", + "portsTooltipWithExternal_other": "ポート — ワークスペースのポート {{count}} 個 · 外部 {{externalCount}} 個", + "portsTooltip_other": "ポート — ワークスペースのポート {{count}} 個" }, "ResourceUsageStatusSegment": { "946d9f94d0": "キャンセル", @@ -3774,7 +3798,6 @@ "27a74f91f0": "現在何も実行されていません", "298f4be7f2": "CPU", "2aa2de6cb9": "名前", - "30ff2c3c31": "{{value0}} 件の孤立", "1fedf94eae": "合計の CPU 負荷。 100% を超える値は、複数のコアが同時に動作していることを意味します。", "e7cf14ec78": "ターミナルセッションは利用できません。リストは古い可能性があります。", "93b0de3c21": "再起動", @@ -3802,12 +3825,11 @@ "d406915b78": "レンダラー", "81cd37af99": "メイン", "fa6d36758d": "セッション {{value0}} を強制終了", - "b8f4a2c1d0e3": "{{value0}} 件の孤立", - "c7e3b1a0d9f2": "孤立したターミナル {{value0}} 件を終了", - "d8f4c2b1e0a3": "孤立したターミナル {{value0}} 件を終了", "e9a5d3c2b1f0": "{{value0}} を終了しますか?", "8a0472ab54": "{{value0}} に接続できませんでした。リソースは不明です。", - "1ea066b73f": "リソースを表示するには {{value0}} を更新してください。" + "1ea066b73f": "リソースを表示するには {{value0}} を更新してください。", + "endOrphanTerminals_other": "孤立したターミナル {{count}} 件を終了", + "orphanCount_other": "孤立 {{count}} 件" }, "SshStatusSegment": { "3ad70e0365": "リモートホストを管理…", @@ -3875,10 +3897,6 @@ "3325d996cb": "レート制限をリセット", "cd9d7b40ff": "{{value0}} セッションを再起動します", "6cd6650b4c": "セッションを再開する", - "1446d0d8a0": "{{value0}} Codex セッションはまだ古いアカウントにあります。", - "605901a495": "1 Codex セッションはまだ古いアカウントにあります", - "5e5f9f5160": "レート制限リセットが 1 回利用可能", - "5ecae9197c": "レート制限リセットが {{value0}} 回利用可能", "25d8bbde69": "リセットを使用中…", "e159fc1fd7": "今すぐリセット", "972a1ff497": "Codex の制限をリセットしますか?", @@ -3895,7 +3913,9 @@ "codexSignInError": "Codex のサインインに失敗しました。もう一度お試しください。", "cursorUsageMenu": "Cursor の使用状況", "hiddenUsageProviders": "ほかに: {{value0}}", - "zcodeUsageMenu": "ZCode の使用量" + "zcodeUsageMenu": "ZCode の使用量", + "rateLimitResetsAvailable_other": "レート制限リセットが {{count}} 回利用可能", + "staleCodexSessions_other": "{{count}} 件の Codex セッションがまだ以前のアカウントを使用しています。" }, "StatusBarUsageEmptyCta": { "828c764a79": "アカウントを接続する", @@ -3949,11 +3969,8 @@ "6f8f6a6b04": "ワークスペースのフィルタリング", "5caccea440": "選択したものを削除", "e4a12c455b": "クリア", - "0cb1501ccf": "回収可能な", - "65402b7192": "選択中", "43171f3e60": "ワークスペース", "09960d86bd": "スキャン済み", - "63efebe0e6": "{{value0}} {{value1}} がスペースから削除されました。", "eee5240810": "ワークスペースが削除されました", "9afc97f9a3": "ワークスペースが削除されました", "792a214457": "ワークスペースの削除", @@ -3961,7 +3978,6 @@ "9155381019": "スパース", "f39d291997": "選択", "16988df079": "ファイルが見つかりませんでした。", - "b25c2c1086": "最上位の項目", "d3f9c69ddc": "ズーム", "ef890d31b9": "全て", "c28643d3da": "ワークスペースに移動", @@ -4000,8 +4016,12 @@ "c5135e7e4a": "ワークスペースのサイズをスキャンしています。このページから離れても構いません。", "0990a63160": "スキャンされたワークスペースのサイズはまだありません。", "977bdf9a36": "表示するトップレベルの項目はありません。", - "131662ac65": "{{value0}} オープン", - "0d1c78d749": "{{value0}} を選択" + "0d1c78d749": "{{value0}} を選択", + "removedFromSpace_other": "{{count}} 件のワークスペースをスペースから削除しました。", + "topLevelItems_other": "最上位の項目 {{formattedCount}} 件", + "selectedCount_other": "{{count}} 件選択中", + "reclaimableSize": "{{size}} を解放可能", + "scanning": "スキャン中" }, "ports": { "status": { @@ -4015,7 +4035,8 @@ "e4a709548c": "ポートの更新に失敗しました", "acdb6df590": "{{value0}} でプロセスを停止しました", "480d8f2347": "{{value0}} をコピーしました", - "b854ec9ff5": "ブラウザを開けませんでした" + "b854ec9ff5": "ブラウザを開けませんでした", + "unknownProcess": "不明なプロセス" } } } @@ -4032,8 +4053,6 @@ "7ad719c4bf": "制限中", "e740f92596": "更新に失敗しました", "8418ec448d": "{{value0}} の使用状況を更新できませんでした。Agent セッションは引き続きサインイン済みの場合があります。", - "45198c7d95": "レート制限リセットが 1 回利用可能", - "bce421cba3": "レート制限リセットが {{value0}} 回利用可能", "7ec6e030a0": "次は今期限切れ", "d1e442a9e5": "今期限切れ", "6cf9eaed10": "次は {{value0}} 後に期限切れ", @@ -4085,7 +4104,13 @@ "claudeNoUsageFromHost": "{{server}} から使用状況なし", "claudeUnknownOnHost": "{{server}} から Claude の使用状況を取得できません。そこでサインインしていないか、API キー課金を使用している可能性があります。", "remoteOwnerUnreachable": "使用状況を取得できません — {{server}} に接続できません", - "remoteOwnerNoUsage": "使用状況を取得できません — {{server}} が使用状況を報告していません。そのホストの Orca を更新してください。" + "remoteOwnerNoUsage": "使用状況を取得できません — {{server}} が使用状況を報告していません。そのホストの Orca を更新してください。", + "justNow": "たった今", + "minutesAgo": "{{minutes}} 分前", + "hoursAgo": "{{hours}} 時間前", + "updatedAgo": "{{time}}に更新", + "notYetUpdated": "未更新", + "rateLimitResetsAvailable_other": "レート制限リセットが {{count}} 回利用可能" }, "SshTargetStatusRow": { "sshHost": "SSH ホスト" @@ -4128,12 +4153,10 @@ "RemoteServerUpdateStatusSegment": { "updating": "{{value0}}/{{value1}}を更新中", "updatingTooltip": "リモート Orca サーバーの更新が進行中", - "failed": "{{value0}}台のサーバー更新に失敗", "failedTooltip": "リモート Orca サーバーの更新を開いて確認し、再試行してください", - "updated": "{{value0}}台のサーバーを更新完了", "updatedTooltip": "リモート Orca サーバーの更新が完了しました", - "failedOne": "1台のサーバー更新に失敗", - "updatedOne": "1台のサーバーを更新完了" + "failedCount_other": "{{count}} 台のサーバーを更新できませんでした", + "updatedCount_other": "{{count}} 台のサーバーを更新しました" }, "resource": { "memory": { @@ -4141,7 +4164,10 @@ "workingSetDescription": "合計ワーキングセット(WS): 現在 RAM に常駐しているページです。共有ページが複数のプロセスに表示されることがあり、Windows がページアウトしたメモリはここには含まれません。", "privateBytesDescription": "合計プライベートバイト: これらのプロセスがコミットしたメモリで、常駐中かページアウト済みかを問わず計上されます。ホストがコミット制限に対して計上する値であるため、ページングによって上のワーキングセットが縮小しても増え続けます。", "footprintDescription": "合計メモリフットプリント。アクティビティモニタに表示される値と同じで、各プロセスが所有するメモリ(グラフィックスメモリを含む)です。プロセス間で共有されるページは二重に計上されません。", - "rssDescription": "合計レジデントセットサイズ(RSS)。共有またはエイリアスされたページが複数のプロセスに表示されることがあります。" + "rssDescription": "合計レジデントセットサイズ(RSS)。共有またはエイリアスされたページが複数のプロセスに表示されることがあります。", + "memColumn": "メモリ", + "memorySummary": "Σ メモリ", + "privateSummary": "Σ プライベート" } }, "manager": { @@ -4163,13 +4189,13 @@ "SkillUpdateStatusSegment": { "runningLabel": "スキルを更新しています", "runningOne": "{{value0}} を更新しています…", - "runningMany": "{{value0}} 件のスキルを更新しています…", "runningAria": "スキルを更新しています。クリックすると詳細を開きます。", "successLabel": "スキルを更新しました", "successAria": "スキルを更新しました。クリックすると詳細を開きます。", "attentionAria": "一部のスキルの更新はスキップされました。クリックして詳細を開きます。", "attentionLabel": "スキルに対応が必要", - "attentionTooltip": "一部のスキルの更新はスキップされました — クリックして詳細を表示" + "attentionTooltip": "一部のスキルの更新はスキップされました — クリックして詳細を表示", + "runningSkills_other": "{{count}} 件のスキルを更新中…" }, "RuntimeHostStatusRow": { "previous_connection_closed": "以前の接続が閉じられました", @@ -4193,29 +4219,21 @@ "repair": "Re-pair…" }, "NativeChatResumeStatusSegment": { - "labelOne": "再開するには 1 チャット", - "label": "{{value0}} チャットを再開します", - "ariaLabelOne": "再開可能なチャットが 1 件あります", - "ariaLabel": "{{value0}} チャットを再開できます", "tooltip": "中断されたチャットを開いて再開可能", - "failedLabelOne": "1 件のチャットを再開できませんでした", - "failedLabel": "{{value0}} 件のチャットを再開できませんでした", - "failedAriaOne": "1 件のチャットを再開できませんでした。詳細はクリックしてください。", - "failedAria": "{{value0}} 件のチャットを再開できませんでした。詳細はクリックしてください。", "failedTooltip": "再起動後に Orca が再開できなかったチャット。詳細はクリックしてください。", - "checkLabelOne": "確認が必要なチャット 1 件", - "checkLabel": "確認が必要なチャット {{value0}} 件", - "checkAriaOne": "再開後に確認が必要なチャット 1 件。詳細はクリックしてください。", - "checkAria": "再開後に確認が必要なチャット {{value0}} 件。詳細はクリックしてください。", "checkTooltip": "再起動後に Orca が再開できなかった、または再開を確認できなかったチャット。詳細はクリックしてください。", "resumingTooltip": "中断されたチャットを復元し、続行を依頼しています…", "resumingProgressLabel": "チャットを再開中 {{value0}}/{{value1}}", "resumingProgressAria": "チャットを再開中。{{value1}} 件中 {{value0}} 件完了。クリックすると詳細を表示します。", - "resumedLabelOne": "再開したチャット 1 件", - "resumedLabel": "再開したチャット {{value0}} 件", - "resumedAriaOne": "チャットを 1 件再開しました。クリックすると表示します。", - "resumedAria": "チャットを {{value0}} 件再開しました。クリックすると表示します。", - "resumedTooltip": "再起動後に Orca が再開したチャットです。クリックすると表示します。" + "resumedTooltip": "再起動後に Orca が再開したチャットです。クリックすると表示します。", + "chatsFailedLabel_other": "{{count}} 件のチャットを再開できませんでした", + "chatsFailedAria_other": "{{count}} 件のチャットを再開できませんでした。クリックして詳細を表示。", + "resumedLabelCount_other": "{{count}} 件のチャットを再開しました", + "resumedAriaCount_other": "{{count}} 件のチャットを再開しました。クリックして表示。", + "checkLabelCount_other": "確認が必要なチャット {{count}} 件", + "checkAriaCount_other": "再開後に確認が必要なチャットが {{count}} 件あります。クリックして詳細を表示。", + "labelCount_other": "再開するチャット {{count}} 件", + "ariaLabelCount_other": "再開可能なチャット {{count}} 件" }, "provider": { "extra": { @@ -4225,6 +4243,71 @@ } } } + }, + "mergeSnapshotAndSessions": { + "unattributed": "帰属不明" + }, + "resourceSessionLabels": { + "terminalNumber": "ターミナル {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "セッション {{id}}", + "unknownSession": "(不明なセッション)", + "unknown": "不明" + }, + "runtimeTargets": { + "wslDefault": "WSL のデフォルト" + }, + "floatingWorkspace": { + "minimize": "フローティングワークスペースを最小化", + "show": "フローティングワークスペースを表示" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "ワークスペースの所有者が利用できなくなりました" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "アップストリームと同期済み", + "aheadAndBehind": "{{ahead}} コミット先行、{{behind}} コミット遅延", + "ahead": "{{ahead}} コミット先行", + "behind": "{{behind}} コミット遅延", + "activeAgents_other": "稼働中の Agent {{count}} 件", + "completedAgents_other": "完了した Agent {{count}} 件", + "activeAndCompletedAgents": "{{active}}、{{completed}}", + "completedAgentsRetained_other": "完了した Agent {{count}} 件を保持", + "noTrackedAgents": "追跡中の Agent は実行されていません", + "noTerminalTabs": "ターミナルタブなし", + "liveTerminalTabs_other": "ターミナルタブ {{count}} 個中 {{live}} 個が稼働中", + "gitStatusUnavailable": "Git ステータスを取得できません: {{error}}", + "gitStatusNotLoaded": "Git ステータスはまだ読み込まれていません", + "noUncommittedFiles": "未コミットのファイルなし", + "changedFiles_other": "変更されたファイル {{count}} 件", + "noEditorFiles": "エディターで開いているファイルなし", + "editorFilesOpen_other": "エディターで開いているファイル {{count}} 件", + "dirtyOfOpen": "{{open}}のうち{{dirty}}", + "dirtyEditorBuffers_other": "未保存のエディターバッファー {{count}} 件", + "openFiles_other": "開いているファイル {{count}} 件", + "activeWorkspace": "これはアクティブなワークスペースです", + "mainWorktreeProtected": "メインワークツリーは保護されています", + "workspaceProtected": "ワークスペースは保護されています", + "canDeleteAfterReview": "確認後に削除可能", + "noLinkedIssue": "リンクされた Issue なし", + "noLinkedReview": "リンクされた PR なし", + "browserTabsOpen_other": "開いているブラウザタブ {{count}} 個" + }, + "workspaceSpaceFormat": { + "cancellingScan": "スキャンをキャンセル中", + "currentWorkspaces": "ワークスペース", + "scanningWorkspaces": "{{total}} 件中 {{scanned}} 件をスキャン中 · {{current}}", + "scanningRepos_other": "{{count}} 件のリポジトリ中 {{scanned}} 件をスキャン中 · {{current}}", + "scanningSizes": "ワークスペースのサイズをスキャン中", + "status": { + "scanned": "スキャン済み", + "missing": "不足", + "noAccess": "アクセス不可", + "unavailable": "利用不可", + "failed": "失敗" + }, + "mainWorktree": "メインワークツリー", + "detached": "分離状態" } } }, @@ -5027,12 +5110,10 @@ "39d51212cc": "グループ名", "aa0247680d": "いいえ、個別にインポート", "a0bc4d1f8e": "はい、グループとしてインポート", - "8401a7a0d0": "1 個のリポジトリ", - "d4f1df62ef": "{{value0}} 個のリポジトリ", - "b4263a2ac4": "{{value1}} で {{value0}} が見つかりました。", "24eda6c8b2": "スキャン中… {{value0}}", "6149d5203f": "選択されているリポジトリがありません。代わりに親フォルダーを開くと、Git 機能なしでエディター、ターミナル、検索を利用できます。", - "e52454b7f6": "フォルダーとして開く" + "e52454b7f6": "フォルダーとして開く", + "foundRepositories_other": "{{path}} で {{count}} 件のリポジトリが見つかりました。" }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5101,9 +5182,8 @@ "eab8b45238": "コピーエラー", "a23b22d16f": "コピーしました", "74fc00776f": "エラーの詳細", - "3afcad0497": "最初の Agent メッセージから。", - "ff62a18580": "Orca はブランチ名を生成できませんでした", - "ca3b225195": "ブランチの自動名前付けに失敗しました" + "ca3b225195": "ブランチの自動名前付けに失敗しました", + "couldNotGenerateBranchName": "Orca は最初の Agent メッセージから {{name}} のブランチ名を生成できませんでした。" }, "CreateProjectLocationField": { "95548e33bf": "親フォルダーを選択…", @@ -5123,37 +5203,35 @@ "2b56b35f53": "これは設定で変更できます。", "dd3a45bbbd": "次回からはこの確認は省略させていただきます。", "fc23c4cbdf": "ワークスペースの削除", - "86f0ae1257": "ワークスペースの削除" + "86f0ae1257": "ワークスペースの削除", + "removeFolderProjectInstead": "このワークスペースを削除する代わりに、フォルダープロジェクトを削除してください。", + "gitBlocksMainWorktree": "Git ではメインワークツリーを削除できません。" }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "読み込まれたパスを表示", "loadedPathsNotice": "読み込まれたパスは不完全な場合や古い場合があります。", "loadedChangedPaths": "読み込まれた変更済みパス", "unresolvedConflict": "未解決の競合", - "moreLoadedPaths": "ほかに読み込まれたパスが{{value0}}件", "changeCount_one": "未コミットまたは未追跡の変更: {{count}} 件", "changeCount_other": "未コミットまたは未追跡の変更: {{count}} 件", - "changes": "未コミットまたは未追跡の変更があります" + "changes": "未コミットまたは未追跡の変更があります", + "moreLoadedPaths_other": "ほかに読み込み済みのパス {{count}} 件" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "件以上", "a940f3c96e": "子ワークスペースは削除されます", - "29b98bf9cd": "このワークスペースを削除すると、子ワークスペース {{value0}} 個も削除されます。", - "66798cc6a2": "このワークスペースを削除すると、子ワークスペースも 1 つ削除されます。" + "alsoDeletesChildren_other": "このワークスペースを削除すると、{{count}} 件の子ワークスペースも削除されます。", + "moreChildren_other": "ほか {{count}} 件" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "今後表示しない" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(元のクローンディレクトリ)。", - "c4f96a6e18": "メインワークツリー", - "e3be9eba15": "これは、" + "mainWorktreeNotice": "これはメインワークツリー(元のクローンディレクトリ)です。" }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "ワークツリーリストに表示", "ad99f4eea9": "非表示のままにする", "9f4f14e821": "後でプロジェクトメニューから変更できます。", - "b2bc47c080": "さらに多くの場所", "b47ba1a9d2": "{{value0}} プレビュー", "2251d41ebb": "非表示のワークツリーグループ", "5a9688802a": "{{value0}} をもっと見る", @@ -5167,7 +5245,8 @@ "keepHiddenAriaLabel_one": "{{repo}} で検出されたワークツリー {{count}} 件を非表示のままにする(プロジェクトメニューから再表示できます)", "keepHiddenAriaLabel_other": "{{repo}} で検出されたワークツリー {{count}} 件を非表示のままにする(プロジェクトメニューから再表示できます)", "keepHiddenTooltip": "非表示のままにする(プロジェクトメニューから再表示できます)", - "repoOnHost": "{{repo}}({{host}})" + "repoOnHost": "{{repo}}({{host}})", + "moreLocations_other": "ほか {{count}} か所" }, "NonGitFolderDialog": { "e52454b7f6": "フォルダーとして開く", @@ -5201,20 +5280,22 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "キャンセル", - "69f5cb97d0": "削除", "591f330288": "プロジェクトグループの削除", "2c14ce677a": "削除中…", "0e0e6764af": "含まれるプロジェクト", - "ad407c2d55": "件以上", - "removeContainedProjectSingular": "含まれるプロジェクトを1件削除", - "removeContainedProjectPlural": "含まれるプロジェクトを{{value0}}件削除", "55f75628c0": "ディスク上のプロジェクトフォルダーは削除されません。", - "fec7e9c8ae": "グループを削除" + "fec7e9c8ae": "グループを削除", + "removeContainedProjects_other": "含まれる {{count}} 件のプロジェクトを削除", + "deleteGroupDescription": "{{name}} を削除します。", + "moreProjects_other": "ほか {{count}} 件" }, "ProjectGroupNameDialog": { "d99a034073": "キャンセル", "83dfbc5313": "グループ名", - "4a64e78822": "保存中…" + "4a64e78822": "保存中…", + "defaultGroupName": "{{name}} グループ", + "create": "作成", + "rename": "名前を変更" }, "RemoteFileBrowser": { "2300612806": "フィルタリングするために入力するか、パスを入力します…", @@ -5226,7 +5307,9 @@ "largeInputNoMatches": "この長い入力に一致するものはありません", "entriesLabel": "フォルダーの項目", "inputLabel": "フィルターまたはパス", - "fileHint": "ファイルはプロジェクトとして開けません" + "fileHint": "ファイルはプロジェクトとして開けません", + "invalidPathRepeatedSeparators": "無効なパス: 区切り文字が連続しています", + "invalidPathControlCharacters": "無効なパス: 制御文字は使用できません" }, "SleepTwinWorkspaceDialog": { "title": "Sleep Workspace", @@ -5256,11 +5339,10 @@ "70715947fb": "セットアップスクリプトを空にすることはできません", "888b83bf78": "セットアップスクリプトの保存に失敗しました", "a49196d538": "Orca が新規ワークツリーを作成するときに実行されます。", - "d9f2db2738": "プロジェクトの設定", - "a5bb8c5135": "これに保存されました", "savedSetupCommand": "セットアップコマンドを保存しました。", "savedWithSkippedFields_one": "未対応の項目を {{count}} 件スキップしました。セットアップコマンドを保存しました。", - "savedWithSkippedFields_other": "未対応の項目を {{count}} 件スキップしました。セットアップコマンドを保存しました。" + "savedWithSkippedFields_other": "未対応の項目を {{count}} 件スキップしました。セットアップコマンドを保存しました。", + "savedInProjectSettings": "このプロジェクトの設定に保存済み" }, "SetupScriptPromptCardViews": { "96a7f4198c": "ローカル設定を保存する", @@ -5268,20 +5350,17 @@ "31b8b01a45": "設定", "4a98f907ae": "再試行", "0a98169776": "Orca が新規ワークツリーを作成するときに実行するセットアップコマンドを追加します。", - "8349e3fa4c": "。新規ワークツリーに対して実行するために保存します。", - "b56d1322f7": "セットアップコマンドが見つかりました", "aef6c0a213": "Orca がワークツリーを作成するたびに実行できるように、検出されたコマンドを保存します。", - "660cdc17f8": "セットアップスクリプト。ローカルコマンドを追加するか、設定でソースを変更します。", - "8f6be51aa1": "orca.yaml", - "bb879db364": "このリポジトリは共有を無視します", "0155fb9ed3": "現在、このリポジトリのセットアップスクリプトを確認できませんでした。", "eefa756190": "手動で構成する", "ca4efcbc25": "保存", - "d02e6a42b1": "から検出されました", "fdbc6cb064": "検出されたセットアップスクリプト", "7275f674cc": "検出されたセットアップ", "822ff300ad": "閉じる", - "5bfd5c8779": "セットアップスクリプトを閉じる" + "5bfd5c8779": "セットアップスクリプトを閉じる", + "detectedFromSource": "{{source}} から検出", + "ignoresSharedSetup": "このリポジトリは共有の orca.yaml セットアップスクリプトを無視します。ローカルコマンドを追加するか、設定でソースを変更してください。", + "foundSetupCommandIn": "{{source}} でセットアップコマンドが見つかりました。新規ワークツリーで実行するには保存してください。" }, "SidebarFeedbackDialog": { "8bf619e4cf": "キャンセル", @@ -5458,8 +5537,8 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "閉じる", "e1a34450fc": "ワークスペースをステータスごとに整理し、ワークスペースカードを開きます。", - "81870af08f": "選択中", - "c6a77ab0f4": "ワークスペースボード" + "c6a77ab0f4": "ワークスペースボード", + "selectedCount_other": "{{count}} 件選択中" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "ここにドロップすると、ステータスを変更せずにピンを固定できます。", @@ -5560,7 +5639,8 @@ "2931b42b09": "状態: ドラフト {{value0}}", "e888362def": "状態: クローズ", "f394b3e86e": "状態: マージ済み", - "af2b07bda5": "状態: {{value0}}" + "af2b07bda5": "状態: {{value0}}", + "checksStatus": "チェック: {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "ライブポート", @@ -5571,8 +5651,8 @@ "5d1a5d51bb": "{{value0}} でプロセスを停止しました", "c89f290e25": "{{value0}} をコピーしました", "d1113f4660": "ブラウザを開けませんでした", - "fed49903c9": "{{value0}} ライブ {{value1}}", - "unknownProcess": "不明なプロセス" + "unknownProcess": "不明なプロセス", + "livePorts_other": "稼働中のポート {{count}} 個" }, "WorktreeContextMenu": { "c39c37676a": "グループを作成し、このプロジェクトをそのグループに移動します。", @@ -5614,7 +5694,6 @@ "f9dc6cc5d3": "プロジェクトグループの名前を変更", "370c6a55dd": "フィルターをクリアする", "b7acbf038b": "ワークスペースが見つかりません", - "0c6ee14f23": "子供", "c83968f87f": "プロジェクトの削除", "64e55f7f01": "グループから削除", "4a08fb55f2": "グループに移動", @@ -5627,12 +5706,7 @@ "4d7b73658c": "グループ名の変更", "79465e9034": "{{value0}} のグループ操作", "bfbedc547b": "ワークツリー", - "045a8aed48": "子供たち", "bb85cd86ba": "{{value0}} のワークスペースを作成", - "20bebf9c7f": "{{value0}} 個の子ワークスペースを表示", - "c1f4a31623": "{{value0}} 個の子ワークスペースを表示", - "e97297cb75": "{{value0}} 個の子ワークスペースを非表示", - "0cd15956d4": "{{value0}} 個の子ワークスペースを非表示", "bd37a57ac8": "{{value0}} のワークスペースを作成", "b667b59632": "一部のプロジェクトを Orca から削除できませんでした", "groupDeleteFailed": "グループの削除に失敗しました", @@ -5646,8 +5720,10 @@ "groupRenameFailed": "グループ名の変更に失敗しました", "groupRenameFailedDesc": "Orca はグループのホストに新規名前を確認できませんでした。再接続後、グループを再確認してください。", "hostRepairRequired": "Re-pair required", - "groupProjectsRemainedSingular": "グループ削除後も、含まれていたプロジェクト {{count}} 件中 {{remaining}} 件が残りました。", - "groupProjectsRemainedPlural": "グループ削除後も、含まれていたプロジェクト {{count}} 件中 {{remaining}} 件が残りました。" + "showChildWorkspaces_other": "{{count}} 件の子ワークスペースを表示", + "hideChildWorkspaces_other": "{{count}} 件の子ワークスペースを非表示", + "childCount_other": "子 {{count}} 件", + "groupProjectsRemained_other": "グループの削除後も、含まれていた {{count}} 件のプロジェクトのうち {{remaining}} 件が残りました。" }, "WorktreeMetaDialog": { "3db0a2a593": "キャンセル", @@ -5711,7 +5787,6 @@ "d40d436fc2": "ワークツリーの表示設定を更新できませんでした。もう一度お試しください。", "unsupportedHost": "このホストはソース別のワークツリー表示設定に対応していません。この設定を変更するには、ホストの Orca を更新してください。", "search": "非表示のワークツリーを検索", - "searchPlaceholder": "{{value0}} 件のワークツリーを検索…", "noMatches": "一致するワークツリーはありません", "allShown": "検出されたワークツリーはすべて表示されています", "noneFound": "Orca 以外のワークツリーは見つかりませんでした", @@ -5719,7 +5794,8 @@ "disableSource": "ソースを無効にするとワークツリーを個別に管理できます。", "appearWhenDetected": "Orca が新しいワークツリーを検出すると、ここに表示されます。", "openGlobalSettings": "グローバル設定で管理", - "globalSettingsSources": "これらのソースにはグローバル設定があり、ここで上書きできます:" + "globalSettingsSources": "これらのソースにはグローバル設定があり、ここで上書きできます:", + "searchHiddenPlaceholder_other": "{{count}} 件のワークツリーを検索…" }, "WorktreeVisibilitySourceList": { "claude": "Claude Code", @@ -5950,12 +6026,9 @@ "670864ab52": "ローカル {{value0}} を最新の状態に保つ", "84c62e4d7f": "{{value0}} をオンにできませんでした", "442552c656": "設定を開いてもう一度お試しください。", - "f15fd80989": "新規ワークツリーは最新ですが、ローカル {{value0}} は {{value1}} {{value2}} 遅れているため、AI diff が古い履歴と比較する可能性があります。Orca が自動で最新状態を保つようにできます。これはいつでもここで変更できます", - "3d260e1a5d": "設定 › {{value0}}", "34a03a6565": "{{value0}} を最新の状態に保つ", "4a18052018": "ローカル {{value0}} は {{value1}} より遅れています", - "commit": "commit", - "commits": "commits" + "staleLocalBranch_other": "新規ワークツリーは最新ですが、ローカルの {{branch}} は {{count}} コミット遅れているため、AI の差分比較に古い履歴が使われる可能性があります。Orca にこのブランチの自動更新を任せられます。設定 › {{setting}}でいつでも変更できます" } } } @@ -6020,13 +6093,11 @@ "7a8b9c0d1e": "設定を開く", "8b9c0d1e2f": "ホストを削除", "workspacesFailed": "このホストの {{count}} 個のワークスペースを削除できませんでした。ホストは保持されたので、再試行できます。", - "oneWorkspace": "1つのワークスペース", - "manyWorkspaces": "{{count}} 個のワークスペース", - "hostHasWorkspacesDefault": "このコンピュータから {{value0}} とその認証情報を削除します。{{value1}} は Orca に残ります — リモートファイルは変更されません。", - "alsoForgetLocal": "また、Orca からこれらの {{value0}} も削除", "advanced": "詳細設定", "alsoForgetLocalHint": "Orca からのみ削除します。リモートのファイル、ワークツリー、ブランチはそのまま残ります。", - "wslHostEndsTerminalsUnlessShared": "Orca から {{value0}} を削除します。このコンピューターで開いている別の Orca が使用していない場合は、開いているターミナルも終了し、そのディストリビューション内の Orca サーバーを停止します。ディストリビューション内のファイルは変更されません。" + "wslHostEndsTerminalsUnlessShared": "Orca から {{value0}} を削除します。このコンピューターで開いている別の Orca が使用していない場合は、開いているターミナルも終了し、そのディストリビューション内の Orca サーバーを停止します。ディストリビューション内のファイルは変更されません。", + "hostKeepsWorkspaces_other": "このコンピュータから {{host}} とその認証情報を削除します。ホストの {{count}} 件のワークスペースは Orca に残ります。リモートファイルは変更されません。", + "alsoRemoveWorkspaces_other": "この {{count}} 件のワークスペースも Orca から削除" }, "HostRenameDialog": { "1a2b3c4d5e": "ホスト名を変更", @@ -6070,7 +6141,7 @@ "current": "現在", "searchPlaceholder": "ワークツリーを検索…", "empty": "一致する対象ワークツリーがありません。", - "setParentFor": "次のワークツリーの親を設定" + "setParentForName": "{{name}} の親を設定" }, "WorktreeCardStatusSlot": { "branchIdentity": "ブランチ", @@ -6081,11 +6152,9 @@ "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "{{value0}} の外部ワークツリーを完全に非表示にする", "c3e8a1f4b2": "今後表示しない", - "2a6f31d8c7": "非表示のワークツリー", - "5b90e4a2f6": "非表示のワークツリー", - "7f18c5b0d3": "{{value1}} の {{value0}} 非表示ワークツリーを確認する", - "4e2b7a9c05": "{{value1}} の {{value0}} 非表示ワークツリーを確認する", - "6c07f3a91e": "{{value0}}、{{value1}}" + "6c07f3a91e": "{{value0}}、{{value1}}", + "hiddenWorktreesNoun_other": "非表示のワークツリー", + "reviewHiddenWorktrees_other": "{{scope}} の非表示ワークツリー {{count}} 件を確認" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} が切断されました", @@ -6176,8 +6245,8 @@ "sshConfigPickerRetry": "再試行", "sshConfigPickerResolving": "読む…", "pairingHelpShareComputer": "もう一方のコンピューターで「設定 → リモート Orca サーバー → このコンピューターを共有」から作成します。", - "sshImportSyncedPlural": "{{count}} 個のホストを Orca に追加しました。", - "sshImportSyncedSingular": "{{count}} 個のホストを Orca に追加しました。" + "sshImportSynced_other": "{{count}} 台のホストを Orca に追加しました。", + "sshConfigPickerInvalidResponse": "SSH 設定のホスト応答が無効です" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} は保存済みの SSH ホストではなくなったため、このワークスペースは稼働中のホストに接続されていません。Orca から削除することのみ可能です。リモート上のファイルとブランチはそのまま残ります。", @@ -6200,11 +6269,11 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "一致するワークスペースはありません", - "4d96c209d6": "{{value1}} 件中 {{value0}} 件のワークスペースが一致します", "c0cd6bdf6c": "ワークスペースの検索", "3b7ea51793": "検索をクリア", "7f1c2e94a5": "検索テキストが長すぎます — ボードは絞り込まれていません", - "9a4d0f6b21": "長すぎます" + "9a4d0f6b21": "長すぎます", + "workspacesMatch_other": "{{count}} 件のワークスペース中 {{matchCount}} 件が一致" }, "WorktreeCardSshHostControl": { "connectFailed": "SSH 接続に失敗しました", @@ -6276,11 +6345,11 @@ "developerToolsTitle": "Apple のコマンドラインツールをインストール", "developerToolsBody": "Git には Apple の開発者ツールが必要です。ターミナルでこれを実行し、Orca に戻ってください。自動的に再確認します。", "affectedOne": "{{value0}} のワークツリースキャンを一時停止中", - "affectedMany": "{{value0}} 件のプロジェクトのワークツリースキャンを一時停止中", "copyCommand": "コマンドをコピー", "copied": "コマンドをコピーしました", "retry": "今すぐ再試行", - "restored": "Git が再び動作しています。ワークツリーを更新しました。" + "restored": "Git が再び動作しています。ワークツリーを更新しました。", + "affectedProjects_other": "{{count}} 件のプロジェクトでワークツリーのスキャンを一時停止中" }, "manualSortSwitch": { "title": "並べ替えが手動に変更されました", @@ -6325,7 +6394,8 @@ "wslHostRemoval": { "keptForOthers": "この Orca から削除しました。ホストは {{value0}} のために動作し続けます。", "partial": "ホストは削除されましたが、ディストリビューション内でまだ実行中のものがあります: {{value0}}", - "pending": "Orca はまだホストを削除していません: {{value0}} 再試行するにはもう一度削除し、残す場合は接続してください。" + "pending": "Orca はまだホストを削除していません: {{value0}} 再試行するにはもう一度削除し、残す場合は接続してください。", + "unavailable": "このコンピュータでは WSL ホストを利用できません。" }, "addRepoWslHostFolderPicker": { "otherDistro": "そのフォルダーは {{value1}} ではなく {{value0}} にあります。", @@ -6366,6 +6436,40 @@ "openingProject": "プロジェクトを開いています…", "openingFolder": "フォルダーを開いています…", "chooseFolder": "フォルダーを選択中…" + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "このホストはネストされたワークツリーの削除に対応していません。" + }, + "WorktreeCardHelpers": { + "checksPassing": "成功", + "checksFailing": "失敗", + "checksPending": "保留中", + "conflictMerging": "マージ中", + "conflictRebasing": "リベース中", + "conflictCherryPicking": "チェリーピック中" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "{{name}} ワークスペース" + }, + "workspaceKanbanStatus": { + "defaultLabel": "ステータス {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_other": "{{preview}}、ほか {{count}} 件" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "MR の詳細を取得できません", + "prDetailsUnavailable": "PR の詳細を取得できません", + "loadingMr": "MR を読み込み中…", + "loadingPr": "PR を読み込み中…" + }, + "HostSectionHeader": { + "workspaceCount_other": "{{count}} 件のワークスペース" + }, + "titleDerivedAgentRows": { + "needsInput": "入力待ち", + "running": "実行中", + "idle": "アイドル" } }, "shared": { @@ -13918,17 +14022,8 @@ "new": { "workspace": { "SmartWorkspaceNameField": { - "2a0d535f69": "新規ブランチを作成する", - "a44229ce4d": "を使用", - "766083a596": "」", - "34ca97bce3": "「", - "b1a7d679ba": "ワークスペース名として", "e57c53727c": "プロジェクトを追加…", - "a76fcb4fa0": "切り替え先", - "eadf877af5": "保持", "6859e2896c": "キャンセル", - "9ef1a7c4b0": "、選択したプロジェクトとは異なります。", - "ad188067ae": "GitHub URL は次を指しています。", "4bd98f1091": "プロジェクトを切り替えますか?", "0c9e668e3a": "クリア", "7199ff19c7": "選択したソースをクリアする", @@ -13947,7 +14042,6 @@ "fda67f0b61": "現在のプロジェクト", "3e8bb1176a": "設定で Linear を接続して Issue を検索します。", "switchTaskSourceTitle": "タスクソースを切り替えますか?", - "differentTaskSource": "、選択中のタスクソースとは異なります。", "currentTaskSource": "現在のタスクソース", "placeholderNameOrLinearUrl": "名前、Linear URL、または Jira URL を入力", "placeholderWorkspaceName": "ワークスペース名を入力", @@ -13976,7 +14070,13 @@ "emoji": "絵文字", "loadingLinearIssue": "Linear Issue を読み込み中…", "linearLoginUnreadableTitle": "Linear を再接続", - "linearLoginUnreadableBody": "保存された Linear のログイン情報を読み取れません。設定で再接続してください。" + "linearLoginUnreadableBody": "保存された Linear のログイン情報を読み取れません。設定で再接続してください。", + "keepRepo": "{{name}} を維持", + "switchToRepo": "{{name}} に切り替え", + "crossRepoDifferentTaskSource": "GitHub URL は、選択したタスクソースとは異なる {{repo}} を指しています。", + "crossRepoDifferentProject": "GitHub URL は、選択したプロジェクトとは異なる {{repo}} を指しています。", + "useAsWorkspaceName": "「{{name}}」をワークスペース名に使用", + "createNewBranchNamed": "新規ブランチ {{name}} を作成" }, "ProjectCombobox": { "empty": "検索条件に一致するプロジェクトはありません。", @@ -13999,6 +14099,11 @@ "cloneFromUrl": "URL からクローン", "cloneFromUrlHelp": "このリポジトリのクローンを {{host}} に作成します。", "saveLocation": "場所を設定する" + }, + "projectCombobox": { + "recentHeading": "最近", + "projectsHeading": "プロジェクト", + "foldersHeading": "フォルダー" } } }, @@ -15598,7 +15703,8 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} 子 {{value2}}" + "hideChildAgents_other": "{{count}} 件の子 Agent を非表示", + "showChildAgents_other": "{{count}} 件の子 Agent を表示" }, "DashboardAgentRow": { "912e136cd9": "送信", @@ -15606,7 +15712,12 @@ "a41fb5376e": "詳細を折りたたむ", "5ae84475cc": "閉じる", "b06e13fcf7": "Agent を閉じる", - "0272969e28": "この Agent に送信" + "0272969e28": "この Agent に送信", + "justNow": "たった今", + "timeAgo": "{{duration}}前", + "dispatchedAgents_other": "{{agentType}} - {{count}} 件の Agent を割り当て済み", + "startedAgo": "{{time}}に開始", + "doneAgo": "{{time}}に完了" }, "DashboardAgentRowMessage": { "0a01046763": "中断された", @@ -16722,14 +16833,13 @@ "clearNotification": "通知を消去" }, "ActivityTitlebarControls": { - "f915168c8e": "未読", "d6a8de3934": "Agent", - "dc708f3eff": "Agent を閉じる" + "dc708f3eff": "Agent を閉じる", + "unreadCount_other": "未読 {{count}} 件" }, "clearCompleted": { - "clearedOne": "完了した Agent を 1 人クリアした", - "clearedMany": "{{count}} 個の完了した Agent をクリアしました", - "undo": "元に戻す" + "undo": "元に戻す", + "cleared_other": "完了した Agent {{count}} 件を消去しました" }, "standaloneWorktree": { "floatingTerminal": "フローティングターミナル", @@ -17552,6 +17662,16 @@ "unreachable": "Jira に接続できませんでした。接続を確認して再試行してください。", "loadFailed": "Jira Issue を読み込めませんでした。しばらくしてから再試行してください。", "errorWithCode": "エラー {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "「{{action}}」を実行できません。ワークスペースを読み込み中です。", + "noActiveWorkspace": "「{{action}}」を実行できません。アクティブなワークスペースがありません。", + "workspaceDisconnected": "「{{action}}」を実行できません。ワークスペースが切断されています。", + "noTabGroup": "「{{action}}」を実行できません。利用可能なタブグループがありません。", + "noMovableChat": "「{{action}}」を実行できません。移動できるアクティブなチャットがありません。", + "clientUnsupported": "「{{action}}」を実行できません。このクライアントとランタイムは対応していません。" + } } }, "i18n": { @@ -18749,8 +18869,6 @@ "none": "何もありません" }, "idleSignalField": "アイドル信号", - "selectionVanishedOne": "選択した 1 つのワークスペースは存在しません。", - "selectionVanished": "{{value0}} 選択されたワークスペースはもう存在しません。", "updatedAgo": "{{value0}} を更新しました", "refreshing": "更新中…", "refreshingProgress": "リフレッシュ {{value0}}/{{value1}}", @@ -18765,12 +18883,6 @@ "gitStatusCheckFailed": "Git ステータスチェックに失敗しました", "gitStatusUnverified": "Git のステータスを確認できませんでした", "deleteAnyway": "とにかく削除する", - "forceDeleteProjectionOne": "{{count}} ワークスペースは現在リスクを示しているため、強制削除が必要になる可能性があります", - "forceDeleteProjectionMany": "{{count}} ワークスペースには現在リスクがあるため、強制削除が必要になる可能性があります", - "selectionWithheldOne": "選択した 1 つのワークスペースが現在のフィルターで非表示になっており、選択が解除されました。", - "selectionWithheld": "{{value0}} 選択されたワークスペースは現在のフィルターによって非表示になっており、選択が解除されました。", - "selectAllCountOne": "安全性が確認されたワークスペースを 1 つ選択してください", - "selectAllCount": "{{value0}} 安全性がチェックされたワークスペースをすべて選択します", "appliedFilters": "適用されたフィルター", "removeFilter": "フィルター {{value0}} を削除します", "chip": { @@ -18814,18 +18926,21 @@ "locked": "ロックされています", "retainedAgents": "完成した Agent" } - } + }, + "forceDeleteRisk_other": "現在 {{count}} 件のワークスペースにリスクがあり、強制削除が必要になる可能性があります", + "selectionVanishedCount_other": "選択した {{count}} 件のワークスペースはすでに存在しません。", + "selectionWithheldCount_other": "選択した {{count}} 件のワークスペースは現在のフィルターで非表示になっているため、選択を解除しました。", + "selectAllSafetyChecked_other": "安全性を確認した {{count}} 件のワークスペースをすべて選択" }, "scan": { "progress": "ワークスペースのスキャン ({{value0}}/{{value1}})", "singleError": "{{value0}}: {{value1}} をチェックできませんでした。一部のワークスペースが見つからない可能性があります。更新して再試行してください。", - "moreErrors": "、+{{value0}} 詳細", - "multipleErrors": "{{value0}} リポジトリ ({{value1}}{{value2}}) をチェックできませんでした。一部のワークスペースが見つからない可能性があります。更新して再試行してください。", "noWorkspaces": "ワークスペースが見つかりません。", "fallbackRepository": "リポジトリ", "gitListFailed": "Git はワークツリーをリストできませんでした", - "readyOne": "1 つのワークスペースが見つかりました。", - "readyMany": "{{value0}} ワークスペースが見つかりました。" + "multipleErrorsWithMore_other": "{{count}} 件のリポジトリ({{names}}、ほか {{moreCount}} 件)を確認できませんでした。一部のワークスペースが表示されていない可能性があります。更新して再試行してください。", + "multipleErrorsCount_other": "{{count}} 件のリポジトリ({{names}})を確認できませんでした。一部のワークスペースが表示されていない可能性があります。更新して再試行してください。", + "readyCount_other": "{{count}} 件のワークスペースが見つかりました。" }, "relativeTime": { "never": "一度もない", @@ -20228,7 +20343,6 @@ "repositoryLoading": "リポジトリの識別情報をまだ読み込んでいます。利用可能になってから再試行してください。", "duplicate": "このリンクはすでに添付されています。", "title": "リンクされた作業", - "count": "{{count}} 件リンク済み", "empty": "このワークスペースのすべてのレビューとタスクをまとめて管理します。", "reviews": "レビュー", "tasks": "Issue とタスク", @@ -20236,7 +20350,6 @@ "open": "リンクを開く", "unlinkItem": "{{label}} のリンクを解除", "unlink": "ワークスペースからリンクを解除", - "show": "リンク済みのレビューとタスク {{count}} 件を表示", "details": "ワークスペースの詳細", "description": "このワークスペースにレビューとタスクを添付し、ノートを保管します。", "commentHelp": "Markdown に対応しています。保存するには Enter または {{shortcut}} を押します · 改行するには Shift+Enter を押します。", @@ -20289,7 +20402,9 @@ "checksPassing": "成功", "checksUnknown": "不明", "checksNeutral": "中立", - "allReviewChecks": "レビュー: {{count}} · チェック: {{status}}" + "allReviewChecks": "レビュー: {{count}} · チェック: {{status}}", + "showLinked_other": "リンクされたレビューとタスク {{count}} 件を表示", + "linkedCount_other": "{{count}} 件リンク済み" }, "attachments": { "updateRuntime": "ワークスペースのリンクを変更するには、リモートランタイムを更新してください", @@ -20546,8 +20661,8 @@ }, "compact": { "linked": "リンク済み", - "linkedAndScanned": "リンクされたワークツリーの {{value0}} · {{value1}} ワークスペース", - "linkedAndUnavailable": "リンクされたワークツリーの {{value0}} · {{value1}} は使用できません" + "linkedAndUnavailable": "リンクされたワークツリーの {{value0}} · {{value1}} は使用できません", + "linkedAndScannedCount_other": "リンクされたワークツリーで {{size}} 使用 · ワークスペース {{count}} 件" }, "changes": { "empty": "一致するファイルはありません。", diff --git a/src/renderer/src/i18n/locales/ko.json b/src/renderer/src/i18n/locales/ko.json index 4b83269f1f4..6d85e11ebdb 100644 --- a/src/renderer/src/i18n/locales/ko.json +++ b/src/renderer/src/i18n/locales/ko.json @@ -1907,7 +1907,6 @@ "ba64270bdb": "agents 구성", "ab63f25397": "agent 설정 열기", "0c5d6a479c": "[선택 사항]", - "b5a0796911": "연결", "dccd26d4e4": "프로젝트 선택", "d6b0a96f32": "프로젝트 추가", "969a8bff66": "프로젝트", @@ -1971,7 +1970,8 @@ "runSetupNow": "지금 설정 실행", "runCommandsNow": "지금 명령 실행", "skipForNow": "지금은 건너뛰기", - "skipCommands": "명령 건너뛰기" + "skipCommands": "명령 건너뛰기", + "connectProject": "{{name}} 연결" }, "NewWorkspaceComposerModal": { "createWorktree": "작업 트리 만들기", @@ -3379,21 +3379,18 @@ }, "drop": { "handler": { - "1e072f611e": "{{value0}} {{value1}}을(를) 업로드하지 못했습니다.", "0c77693641": "Worktree가 준비되지 않았습니다. 잠시 후에 다시 시도하세요.", "ce8248b835": "작업 트리 경로를 사용할 수 없습니다.", "internalTooManyPaths": "터미널에 안전하게 붙여넣기에는 드롭된 경로가 너무 많습니다.", "internalPathsTooLarge": "터미널에 안전하게 붙여넣기에는 경로 목록이 너무 큽니다.", "internalHostMismatch": "이 터미널과 같은 호스트의 파일을 드롭하세요.", - "b4cf68e889": "{{value0}} {{value1}}을(를) 건너뛰었습니다.", "writeTimeout": "파일 드롭이 취소되었습니다. 안전 시간 제한 전에 터미널이 경로를 받지 않았습니다.", "writeRejected": "파일 드롭이 취소되었습니다. 터미널이 경로를 받을 수 없습니다.", - "skippedSymlinkSingular": "심볼릭 링크 {{count}}개를 건너뛰었습니다.", - "skippedSymlinkPlural": "심볼릭 링크 {{count}}개를 건너뛰었습니다.", - "uploadingFileSingular": "파일 {{count}}개를 런타임에 업로드하는 중…", - "uploadingFilePlural": "파일 {{count}}개를 런타임에 업로드하는 중…", - "uploadingFileToRemoteSingular": "파일 {{count}}개를 원격 호스트에 업로드하는 중…", - "uploadingFileToRemotePlural": "파일 {{count}}개를 원격 호스트에 업로드하는 중…" + "skippedSymlinks_other": "심볼릭 링크 {{count}}개를 건너뛰었습니다.", + "skippedItems_other": "항목 {{count}}개를 건너뛰었습니다.", + "failedUploads_other": "파일 {{count}}개를 업로드하지 못했습니다.", + "uploadingFiles_other": "파일 {{count}}개를 런타임에 업로드 중…", + "uploadingFilesToRemote_other": "파일 {{count}}개를 원격으로 업로드 중…" } } }, @@ -3532,10 +3529,15 @@ "sessionQueued": "세션이 대기열에 추가됨", "openSupportedWorkspace": "세션을 재개하기 전에 워크스페이스를 여세요.", "sessionHostMismatchUnsupported": "이 세션은 다른 호스트에 속합니다. 같은 호스트의 워크스페이스에 놓으세요.", - "oldPayload": "이 세션은 이전 버전의 Orca 창에서 끌어왔습니다. 대신 세션 기록에서 재개하세요." + "oldPayload": "이 세션은 이전 버전의 Orca 창에서 끌어왔습니다. 대신 세션 기록에서 재개하세요.", + "legacyDragCannotRetarget": "이 세션은 이전 버전의 Orca 창에서 드래그되어 선택한 Codex 계정으로 전환할 수 없습니다. 세션 기록 패널에서 재개하세요.", + "legacyDragPrepareFailed": "Orca에서 이 이전 형식의 Codex 세션을 준비하지 못했습니다. 재개를 다시 시도하세요." }, "TabGroupDropOverlay": { "paneColumnLabel": "새 분할" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "페어링된 런타임에서 관리되는 브라우저 탭을 복제하지 못했습니다." } }, "bar": { @@ -3730,6 +3732,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "호스트를 사용할 수 없음", "7c129b08ff": "호스트 로드 중…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "이 세션은 CLI에서 열 수 없습니다." + }, + "tabCreateEntry": { + "fileNotFound": "파일을 찾을 수 없음: {{path}}", + "cannotOpenDirectory": "디렉터리를 열 수 없음: {{path}}", + "parentNotDirectory": "{{path}} 경로가 디렉터리가 아니므로 파일을 만들 수 없습니다.", + "fileNoLongerExists": "파일이 더 이상 존재하지 않음: {{path}}", + "noActiveWorktree": "활성 워크트리가 없습니다." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "파일 경로에는 제어 문자를 사용할 수 없습니다.", + "enterAUrlOrFilePath": "URL 또는 파일 경로를 입력하세요.", + "homeRelativePathsAreNotSupported": "여기서는 홈 디렉터리 기준 상대 경로를 지원하지 않습니다.", + "enterAFilePathNotA": "디렉터리 경로가 아닌 파일 경로를 입력하세요.", + "enterAnAbsoluteFilePath": "절대 파일 경로를 입력하세요.", + "enterAnAbsolutePathForThis": "이 컴퓨터의 절대 경로를 입력하세요.", + "enterARelativeFilePath": "상대 파일 경로를 입력하세요.", + "windowsDrivePathsAreNotSupported": "여기서는 Windows 드라이브 경로를 지원하지 않습니다.", + "uncPathsAreNotSupportedHere": "여기서는 UNC 경로를 지원하지 않습니다.", + "filePathsCannotContainEmptySegments": "파일 경로에는 빈 경로 구간을 사용할 수 없습니다.", + "filePathsCannotContainDotSegments": "파일 경로에는 . 또는 .. 경로 구간을 사용할 수 없습니다.", + "filePathsCannotContainTildeSegments": "파일 경로에는 ~ 경로 구간을 사용할 수 없습니다." } } }, @@ -3757,15 +3783,13 @@ "4ebf90c12e": "외부 포트가 감지되지 않았습니다.", "7dac3ecc9d": "외부 포트", "95495019ed": "{{value0}}에서 포트 스캔을 사용할 수 없습니다: {{value1}}", - "a8e4bdb412": "· {{value0}} 외부", "c22ea609fd": "포트", - "ca41be2802": "포트 — {{value0}}개 워크스페이스 {{value1}}{{value2}}", - "b8bc3e420a": "포트, {{value0}} 워크스페이스 {{value1}}", "3a87d54dfb": "워크스페이스 포트가 감지되지 않았습니다.", "c174bbbfed": "워크스페이스 포트를 검색하는 중...", - "8caaa86e9a": "포트", - "45834a9ace": "포트", - "2b84c4d11f": "{{value0}} 워크스페이스 · {{value1}} 외부" + "2b84c4d11f": "{{value0}} 워크스페이스 · {{value1}} 외부", + "portsAria_other": "포트, 워크스페이스 포트 {{count}}개", + "portsTooltipWithExternal_other": "포트 — 워크스페이스 포트 {{count}}개 · 외부 {{externalCount}}개", + "portsTooltip_other": "포트 — 워크스페이스 포트 {{count}}개" }, "ResourceUsageStatusSegment": { "946d9f94d0": "취소", @@ -3774,7 +3798,6 @@ "27a74f91f0": "지금은 실행 중인 항목이 없습니다.", "298f4be7f2": "CPU", "2aa2de6cb9": "이름", - "30ff2c3c31": "고아 {{value0}}개", "1fedf94eae": "결합된 CPU 로드. 100%를 초과하는 값은 두 개 이상의 코어가 동시에 작동하고 있음을 의미합니다.", "e7cf14ec78": "Terminal 세션을 사용할 수 없습니다. 목록이 오래되었을 수 있습니다.", "93b0de3c21": "다시 시작", @@ -3802,12 +3825,11 @@ "d406915b78": "렌더러", "81cd37af99": "메인", "fa6d36758d": "세션 {{value0}} 강제 종료", - "b8f4a2c1d0e3": "고아 {{value0}}개", - "c7e3b1a0d9f2": "고아 terminal {{value0}}개 종료", - "d8f4c2b1e0a3": "고아 terminals {{value0}}개 종료", "e9a5d3c2b1f0": "{{value0}}을(를) 종료할까요?", "8a0472ab54": "{{value0}}에 연결할 수 없어 리소스를 알 수 없습니다.", - "1ea066b73f": "리소스를 보려면 {{value0}}을(를) 업데이트하세요." + "1ea066b73f": "리소스를 보려면 {{value0}}을(를) 업데이트하세요.", + "endOrphanTerminals_other": "고아 터미널 {{count}}개 종료", + "orphanCount_other": "고아 {{count}}개" }, "SshStatusSegment": { "3ad70e0365": "원격 호스트 관리…", @@ -3875,10 +3897,6 @@ "3325d996cb": "rate-limit 새로고침", "cd9d7b40ff": "{{value0}} 세션 다시 시작", "6cd6650b4c": "세션 다시 시작", - "1446d0d8a0": "{{value0}} Codex 세션은 여전히 ​​이전 계정에 있습니다.", - "605901a495": "1개의 Codex 세션이 여전히 이전 계정에 있습니다.", - "5e5f9f5160": "rate-limit 재설정 1회 사용 가능", - "5ecae9197c": "rate-limit 재설정 {{value0}}회 사용 가능", "25d8bbde69": "재설정 사용 중…", "e159fc1fd7": "지금 재설정", "972a1ff497": "Codex 한도를 재설정할까요?", @@ -3895,7 +3913,9 @@ "codexSignInError": "Codex 로그인에 실패했습니다. 다시 시도해 주세요.", "cursorUsageMenu": "Cursor 사용량", "hiddenUsageProviders": "그 외: {{value0}}", - "zcodeUsageMenu": "ZCode 사용" + "zcodeUsageMenu": "ZCode 사용", + "rateLimitResetsAvailable_other": "속도 제한 재설정 {{count}}회 사용 가능", + "staleCodexSessions_other": "Codex 세션 {{count}}개가 아직 이전 계정을 사용하고 있습니다." }, "StatusBarUsageEmptyCta": { "828c764a79": "계정 연결", @@ -3949,11 +3969,8 @@ "6f8f6a6b04": "워크스페이스 필터링", "5caccea440": "선택 항목 삭제", "e4a12c455b": "지우기", - "0cb1501ccf": "회수 가능", - "65402b7192": "선택됨", "43171f3e60": "워크스페이스", "09960d86bd": "스캔됨", - "63efebe0e6": "{{value0}} {{value1}}이(가) Space에서 제거되었습니다.", "eee5240810": "워크스페이스가 삭제되었습니다.", "9afc97f9a3": "워크스페이스가 삭제되었습니다.", "792a214457": "워크스페이스 삭제", @@ -3961,7 +3978,6 @@ "9155381019": "스파스", "f39d291997": "선택", "16988df079": "파일을 찾을 수 없습니다.", - "b25c2c1086": "최상위 항목", "d3f9c69ddc": "줌", "ef890d31b9": "모두", "c28643d3da": "워크스페이스로 이동", @@ -4000,8 +4016,12 @@ "c5135e7e4a": "워크스페이스 크기를 스캔하는 중입니다. 이 페이지를 떠날 수 있습니다.", "0990a63160": "아직 스캔된 워크스페이스 크기가 없습니다.", "977bdf9a36": "표시할 최상위 항목이 없습니다.", - "131662ac65": "{{value0}} 열려 있음", - "0d1c78d749": "{{value0}} 선택" + "0d1c78d749": "{{value0}} 선택", + "removedFromSpace_other": "저장 공간에서 워크스페이스 {{count}}개를 제거했습니다.", + "topLevelItems_other": "최상위 항목 {{formattedCount}}개", + "selectedCount_other": "{{count}}개 선택됨", + "reclaimableSize": "{{size}} 확보 가능", + "scanning": "스캔 중" }, "ports": { "status": { @@ -4015,7 +4035,8 @@ "e4a709548c": "포트를 새로고침하지 못했습니다.", "acdb6df590": "{{value0}}에서 프로세스가 중지되었습니다.", "480d8f2347": "{{value0}} 복사됨", - "b854ec9ff5": "브라우저를 열지 못했습니다." + "b854ec9ff5": "브라우저를 열지 못했습니다.", + "unknownProcess": "알 수 없는 프로세스" } } } @@ -4032,8 +4053,6 @@ "7ad719c4bf": "제한됨", "e740f92596": "새로 고침 실패", "8418ec448d": "{{value0}} 사용량을 새로 고칠 수 없습니다. Agent 세션은 여전히 로그인되어 있을 수 있습니다.", - "45198c7d95": "rate-limit 재설정 1회 사용 가능", - "bce421cba3": "rate-limit 재설정 {{value0}}회 사용 가능", "7ec6e030a0": "다음 항목이 지금 만료됨", "d1e442a9e5": "지금 만료됨", "6cf9eaed10": "다음 항목이 {{value0}} 후 만료됨", @@ -4085,7 +4104,13 @@ "claudeNoUsageFromHost": "{{server}}에서 사용량 없음", "claudeUnknownOnHost": "{{server}}에서 Claude 사용량을 가져올 수 없습니다. 그곳에서 로그인하지 않았거나 API 키 결제를 사용 중일 수 있습니다.", "remoteOwnerUnreachable": "사용량 확인 불가 — {{server}}에 연결할 수 없습니다", - "remoteOwnerNoUsage": "사용량 확인 불가 — {{server}}에서 사용량을 제공하지 않습니다. 해당 호스트의 Orca를 업데이트하세요." + "remoteOwnerNoUsage": "사용량 확인 불가 — {{server}}에서 사용량을 제공하지 않습니다. 해당 호스트의 Orca를 업데이트하세요.", + "justNow": "방금", + "minutesAgo": "{{minutes}}분 전", + "hoursAgo": "{{hours}}시간 전", + "updatedAgo": "{{time}} 업데이트됨", + "notYetUpdated": "아직 업데이트되지 않음", + "rateLimitResetsAvailable_other": "속도 제한 재설정 {{count}}회 사용 가능" }, "SshTargetStatusRow": { "sshHost": "SSH 호스트" @@ -4128,12 +4153,10 @@ "RemoteServerUpdateStatusSegment": { "updating": "{{value0}}/{{value1}} 업데이트 중", "updatingTooltip": "원격 Orca 서버 업데이트 진행 중", - "failed": "{{value0}} 서버 업데이트 실패", "failedTooltip": "원격 Orca 서버 업데이트를 열어 확인하고 다시 시도하세요", - "updated": "{{value0}} 서버 업데이트 완료", "updatedTooltip": "원격 Orca 서버 업데이트 완료", - "failedOne": "1개 서버 업데이트 실패", - "updatedOne": "1개 서버 업데이트 완료" + "failedCount_other": "서버 {{count}}개 업데이트 실패", + "updatedCount_other": "서버 {{count}}개 업데이트됨" }, "resource": { "memory": { @@ -4141,7 +4164,10 @@ "workingSetDescription": "합산된 워킹 세트(WS): 지금 RAM에 상주 중인 페이지입니다. 공유 페이지가 둘 이상의 프로세스에 나타날 수 있으며, Windows가 페이지 아웃한 메모리는 여기에 포함되지 않습니다.", "privateBytesDescription": "합산된 프라이빗 바이트: 이 프로세스들이 커밋한 메모리로, 상주 여부와 관계없이 계산됩니다. 호스트가 커밋 한도에 반영하는 값이므로, 페이징으로 위의 워킹 세트가 줄어드는 동안에도 계속 늘어납니다.", "footprintDescription": "합산된 메모리 사용 공간으로, 활성 상태 보기에 표시되는 값과 같습니다. 그래픽 메모리를 포함해 각 프로세스가 소유한 메모리이며, 프로세스 간에 공유되는 페이지는 중복으로 계산되지 않습니다.", - "rssDescription": "합산된 레지던트 세트 크기(RSS). 공유 또는 별칭된 페이지가 둘 이상의 프로세스에 나타날 수 있습니다." + "rssDescription": "합산된 레지던트 세트 크기(RSS). 공유 또는 별칭된 페이지가 둘 이상의 프로세스에 나타날 수 있습니다.", + "memColumn": "메모리", + "memorySummary": "Σ 메모리", + "privateSummary": "Σ 프라이빗" } }, "manager": { @@ -4163,13 +4189,13 @@ "SkillUpdateStatusSegment": { "runningLabel": "Updating skills", "runningOne": "Updating {{value0}}…", - "runningMany": "Updating {{value0}} skills…", "runningAria": "스킬 업데이트 중입니다. 세부정보를 열려면 클릭하세요.", "successLabel": "Skills updated", "successAria": "스킬이 업데이트되었습니다. 세부정보를 열려면 클릭하세요.", "attentionAria": "일부 스킬 업데이트를 건너뛰었습니다. 클릭하여 세부 정보를 여세요.", "attentionLabel": "스킬 확인 필요", - "attentionTooltip": "일부 스킬 업데이트를 건너뛰었습니다 — 클릭하여 세부 정보 보기" + "attentionTooltip": "일부 스킬 업데이트를 건너뛰었습니다 — 클릭하여 세부 정보 보기", + "runningSkills_other": "스킬 {{count}}개 업데이트 중…" }, "RuntimeHostStatusRow": { "previous_connection_closed": "이전 연결이 종료되었습니다.", @@ -4193,29 +4219,21 @@ "repair": "Re-pair…" }, "NativeChatResumeStatusSegment": { - "labelOne": "재개할 채팅 1개", - "label": "{{value0}} 재개할 채팅", - "ariaLabelOne": "재개할 수 있는 채팅 1개", - "ariaLabel": "{{value0}} 재개 가능한 채팅", "tooltip": "중단된 채팅을 열어 재개할 수 있습니다.", - "failedLabelOne": "채팅 1개를 재개하지 못했습니다", - "failedLabel": "{{value0}}개의 채팅을 재개하지 못했습니다", - "failedAriaOne": "채팅 1개를 재개하지 못했습니다. 자세히 보려면 클릭하세요.", - "failedAria": "{{value0}}개의 채팅을 재개하지 못했습니다. 자세히 보려면 클릭하세요.", "failedTooltip": "다시 시작한 후 Orca가 재개하지 못한 채팅. 자세히 보려면 클릭하세요.", - "checkLabelOne": "확인할 채팅 1개", - "checkLabel": "확인할 채팅 {{value0}}개", - "checkAriaOne": "재개한 후 확인할 채팅 1개. 자세히 보려면 클릭하세요.", - "checkAria": "재개한 후 확인할 채팅 {{value0}}개. 자세히 보려면 클릭하세요.", "checkTooltip": "다시 시작한 후 Orca가 재개하지 못했거나 재개했는지 확인하지 못한 채팅. 자세히 보려면 클릭하세요.", "resumingTooltip": "중단된 채팅을 복원하고 계속하도록 요청하는 중…", "resumingProgressLabel": "채팅 재개 중 {{value0}}/{{value1}}", "resumingProgressAria": "채팅 재개 중, {{value1}}개 중 {{value0}}개 완료. 자세히 보려면 클릭하세요.", - "resumedLabelOne": "재개된 채팅 1개", - "resumedLabel": "재개된 채팅 {{value0}}개", - "resumedAriaOne": "채팅 1개를 재개했습니다. 클릭하여 확인하세요.", - "resumedAria": "채팅 {{value0}}개를 재개했습니다. 클릭하여 확인하세요.", - "resumedTooltip": "다시 시작한 후 Orca가 재개한 채팅입니다. 클릭하여 확인하세요." + "resumedTooltip": "다시 시작한 후 Orca가 재개한 채팅입니다. 클릭하여 확인하세요.", + "chatsFailedLabel_other": "채팅 {{count}}개 재개 실패", + "chatsFailedAria_other": "채팅 {{count}}개를 재개하지 못했습니다. 자세한 내용을 보려면 클릭하세요.", + "resumedLabelCount_other": "채팅 {{count}}개 재개됨", + "resumedAriaCount_other": "채팅 {{count}}개가 재개되었습니다. 확인하려면 클릭하세요.", + "checkLabelCount_other": "확인이 필요한 채팅 {{count}}개", + "checkAriaCount_other": "재개 후 확인이 필요한 채팅이 {{count}}개 있습니다. 자세한 내용을 보려면 클릭하세요.", + "labelCount_other": "재개할 채팅 {{count}}개", + "ariaLabelCount_other": "재개 가능한 채팅 {{count}}개" }, "provider": { "extra": { @@ -4225,6 +4243,71 @@ } } } + }, + "mergeSnapshotAndSessions": { + "unattributed": "귀속 불명" + }, + "resourceSessionLabels": { + "terminalNumber": "터미널 {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "세션 {{id}}", + "unknownSession": "(알 수 없는 세션)", + "unknown": "알 수 없음" + }, + "runtimeTargets": { + "wslDefault": "WSL 기본값" + }, + "floatingWorkspace": { + "minimize": "플로팅 워크스페이스 최소화", + "show": "플로팅 워크스페이스 표시" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "워크스페이스 소유자를 더 이상 사용할 수 없음" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "업스트림과 동기화됨", + "aheadAndBehind": "{{ahead}}개 앞섬, {{behind}}개 뒤처짐", + "ahead": "{{ahead}}개 앞섬", + "behind": "{{behind}}개 뒤처짐", + "activeAgents_other": "활성 에이전트 {{count}}개", + "completedAgents_other": "완료된 에이전트 {{count}}개", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_other": "완료된 에이전트 {{count}}개 보관됨", + "noTrackedAgents": "실행 중인 추적 대상 에이전트 없음", + "noTerminalTabs": "터미널 탭 없음", + "liveTerminalTabs_other": "터미널 탭 {{count}}개 중 {{live}}개 실행 중", + "gitStatusUnavailable": "Git 상태를 가져올 수 없음: {{error}}", + "gitStatusNotLoaded": "Git 상태가 아직 로드되지 않음", + "noUncommittedFiles": "커밋되지 않은 파일 없음", + "changedFiles_other": "변경된 파일 {{count}}개", + "noEditorFiles": "편집기에서 열린 파일 없음", + "editorFilesOpen_other": "편집기에서 열린 파일 {{count}}개", + "dirtyOfOpen": "{{open}} 중 {{dirty}}", + "dirtyEditorBuffers_other": "저장되지 않은 편집기 버퍼 {{count}}개", + "openFiles_other": "열린 파일 {{count}}개", + "activeWorkspace": "현재 활성 워크스페이스", + "mainWorktreeProtected": "메인 워크트리가 보호됨", + "workspaceProtected": "워크스페이스가 보호됨", + "canDeleteAfterReview": "검토 후 삭제 가능", + "noLinkedIssue": "연결된 이슈 없음", + "noLinkedReview": "연결된 PR 없음", + "browserTabsOpen_other": "열린 브라우저 탭 {{count}}개" + }, + "workspaceSpaceFormat": { + "cancellingScan": "스캔 취소 중", + "currentWorkspaces": "워크스페이스", + "scanningWorkspaces": "{{total}}개 중 {{scanned}}개 스캔 중 · {{current}}", + "scanningRepos_other": "저장소 {{count}}개 중 {{scanned}}개 스캔 중 · {{current}}", + "scanningSizes": "워크스페이스 크기 스캔 중", + "status": { + "scanned": "스캔됨", + "missing": "누락", + "noAccess": "접근 권한 없음", + "unavailable": "사용 불가", + "failed": "실패" + }, + "mainWorktree": "메인 워크트리", + "detached": "분리됨" } } }, @@ -5027,12 +5110,10 @@ "39d51212cc": "그룹 이름", "aa0247680d": "아니요, 별도로 가져오기", "a0bc4d1f8e": "예, 그룹으로 가져오기", - "8401a7a0d0": "repos 1개", - "d4f1df62ef": "repos {{value0}}개", - "b4263a2ac4": "{{value1}}에서 {{value0}}을(를) 찾았습니다.", "24eda6c8b2": "스캔 중... {{value0}}", "6149d5203f": "선택된 repos가 없습니다. 대신 상위 폴더를 열면 Git 기능 없이 편집기, terminal, 검색을 사용할 수 있습니다.", - "e52454b7f6": "폴더로 열기" + "e52454b7f6": "폴더로 열기", + "foundRepositories_other": "{{path}}에서 저장소 {{count}}개를 찾았습니다." }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5101,9 +5182,8 @@ "eab8b45238": "복사 오류", "a23b22d16f": "복사됨", "74fc00776f": "오류 세부정보", - "3afcad0497": "첫 번째 agent 메시지에서.", - "ff62a18580": "Orca가 다음에 대한 브랜치 이름을 생성할 수 없습니다.", - "ca3b225195": "브랜치 자동 이름 지정에 실패했습니다." + "ca3b225195": "브랜치 자동 이름 지정에 실패했습니다.", + "couldNotGenerateBranchName": "Orca에서 첫 번째 에이전트 메시지를 바탕으로 {{name}}의 브랜치 이름을 생성하지 못했습니다." }, "CreateProjectLocationField": { "95548e33bf": "상위 폴더 선택...", @@ -5123,37 +5203,35 @@ "2b56b35f53": "설정에서 이를 변경할 수 있습니다.", "dd3a45bbbd": "다음번에는 이 확인을 건너뛰겠습니다.", "fc23c4cbdf": "워크스페이스 삭제", - "86f0ae1257": "워크스페이스 삭제" + "86f0ae1257": "워크스페이스 삭제", + "removeFolderProjectInstead": "이 워크스페이스를 삭제하는 대신 폴더 프로젝트를 제거하세요.", + "gitBlocksMainWorktree": "Git에서는 메인 워크트리를 제거할 수 없습니다." }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "불러온 경로 표시", "loadedPathsNotice": "불러온 경로가 일부 누락되었거나 오래되었을 수 있습니다.", "loadedChangedPaths": "불러온 변경된 경로", "unresolvedConflict": "해결되지 않은 충돌", - "moreLoadedPaths": "불러온 경로 {{value0}}개 더", "changeCount_one": "커밋되지 않았거나 추적되지 않는 변경 {{count}}개", "changeCount_other": "커밋되지 않았거나 추적되지 않는 변경 {{count}}개", - "changes": "커밋되지 않았거나 추적되지 않는 변경 사항" + "changes": "커밋되지 않았거나 추적되지 않는 변경 사항", + "moreLoadedPaths_other": "그 외 로드된 경로 {{count}}개" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "더", "a940f3c96e": "하위 워크스페이스가 삭제됩니다.", - "29b98bf9cd": "이 워크스페이스를 삭제하면 {{value0}} 하위 워크스페이스도 삭제됩니다.", - "66798cc6a2": "이 워크스페이스를 삭제하면 하위 워크스페이스 1개도 삭제됩니다." + "alsoDeletesChildren_other": "이 워크스페이스를 삭제하면 하위 워크스페이스 {{count}}개도 삭제됩니다.", + "moreChildren_other": "+{{count}}개 더" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "다시 묻지 마세요" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(원본 복제 디렉터리).", - "c4f96a6e18": "메인 워크트리", - "e3be9eba15": "이것은" + "mainWorktreeNotice": "이 워크트리는 메인 워크트리(원래 복제 디렉터리)입니다." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "워크트리 목록에 표시", "ad99f4eea9": "숨김 유지", "9f4f14e821": "나중에 프로젝트 메뉴에서 이를 변경하세요.", - "b2bc47c080": "더 많은 위치", "b47ba1a9d2": "{{value0}} 미리보기", "2251d41ebb": "숨겨진 워크트리 그룹", "5a9688802a": "{{value0}} 더 보기", @@ -5167,7 +5245,8 @@ "keepHiddenAriaLabel_one": "{{repo}}에서 발견된 워크트리 {{count}}개를 숨김 상태로 유지합니다. 프로젝트 메뉴에서 복구할 수 있습니다", "keepHiddenAriaLabel_other": "{{repo}}에서 발견된 워크트리 {{count}}개를 숨김 상태로 유지합니다. 프로젝트 메뉴에서 복구할 수 있습니다", "keepHiddenTooltip": "숨김 유지 - 프로젝트 메뉴에서 복구", - "repoOnHost": "{{host}}의 {{repo}}" + "repoOnHost": "{{host}}의 {{repo}}", + "moreLocations_other": "+ 위치 {{count}}개 더" }, "NonGitFolderDialog": { "e52454b7f6": "폴더로 열기", @@ -5201,20 +5280,22 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "취소", - "69f5cb97d0": "삭제", "591f330288": "프로젝트 그룹 삭제", "2c14ce677a": "삭제 중...", "0e0e6764af": "포함된 프로젝트", - "ad407c2d55": "개 더", - "removeContainedProjectSingular": "포함된 프로젝트 1개 제거", - "removeContainedProjectPlural": "포함된 프로젝트 {{value0}}개 제거", "55f75628c0": "디스크의 프로젝트 폴더는 삭제되지 않습니다.", - "fec7e9c8ae": "그룹 삭제" + "fec7e9c8ae": "그룹 삭제", + "removeContainedProjects_other": "포함된 프로젝트 {{count}}개 제거", + "deleteGroupDescription": "{{name}} 그룹을 삭제합니다.", + "moreProjects_other": "+{{count}}개 더" }, "ProjectGroupNameDialog": { "d99a034073": "취소", "83dfbc5313": "그룹 이름", - "4a64e78822": "저장 중..." + "4a64e78822": "저장 중...", + "defaultGroupName": "{{name}} 그룹", + "create": "생성", + "rename": "이름 변경" }, "RemoteFileBrowser": { "2300612806": "필터링하려면 입력하거나 경로를 입력하세요…", @@ -5226,7 +5307,9 @@ "largeInputNoMatches": "이 긴 입력과 일치하는 항목 없음", "entriesLabel": "폴더 항목", "inputLabel": "필터 또는 경로", - "fileHint": "파일은 프로젝트로 열 수 없습니다" + "fileHint": "파일은 프로젝트로 열 수 없습니다", + "invalidPathRepeatedSeparators": "잘못된 경로: 구분자가 반복됨", + "invalidPathControlCharacters": "잘못된 경로: 제어 문자는 사용할 수 없음" }, "SleepTwinWorkspaceDialog": { "title": "Sleep Workspace", @@ -5256,11 +5339,10 @@ "70715947fb": "설정 스크립트는 비워둘 수 없습니다.", "888b83bf78": "설정 스크립트를 저장하지 못했습니다.", "a49196d538": "Orca가 새 작업 트리를 생성할 때 실행됩니다.", - "d9f2db2738": "프로젝트 설정", - "a5bb8c5135": "여기에 저장됨", "savedSetupCommand": "설정 명령을 저장했습니다.", "savedWithSkippedFields_one": "지원되지 않는 필드 {{count}}개를 건너뛰었습니다. 설정 명령을 저장했습니다.", - "savedWithSkippedFields_other": "지원되지 않는 필드 {{count}}개를 건너뛰었습니다. 설정 명령을 저장했습니다." + "savedWithSkippedFields_other": "지원되지 않는 필드 {{count}}개를 건너뛰었습니다. 설정 명령을 저장했습니다.", + "savedInProjectSettings": "이 프로젝트의 설정에 저장됨" }, "SetupScriptPromptCardViews": { "96a7f4198c": "로컬 설정 저장", @@ -5268,20 +5350,17 @@ "31b8b01a45": "설정", "4a98f907ae": "다시 시도", "0a98169776": "Orca가 새 작업 트리를 생성할 때 실행할 설정 명령을 추가합니다.", - "8349e3fa4c": ". 새 작업 트리에 대해 실행되도록 저장하세요.", - "b56d1322f7": "다음에서 설정 명령을 찾았습니다.", "aef6c0a213": "Orca가 작업 트리를 생성할 때마다 실행되도록 감지된 명령을 저장합니다.", - "660cdc17f8": "설정 스크립트. 로컬 명령을 추가하거나 설정에서 소스를 변경하세요.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "이 repo는 공유를 무시합니다", "0155fb9ed3": "지금은 이 repo의 설정 스크립트를 확인할 수 없습니다.", "eefa756190": "수동으로 구성", "ca4efcbc25": "저장", - "d02e6a42b1": "다음에서 감지됨", "fdbc6cb064": "감지된 설정 스크립트", "7275f674cc": "감지된 설정", "822ff300ad": "닫기", - "5bfd5c8779": "설정 스크립트 닫기" + "5bfd5c8779": "설정 스크립트 닫기", + "detectedFromSource": "{{source}}에서 감지됨", + "ignoresSharedSetup": "이 저장소는 공유 orca.yaml 설정 스크립트를 무시합니다. 로컬 명령을 추가하거나 설정에서 소스를 변경하세요.", + "foundSetupCommandIn": "{{source}}에서 설정 명령을 찾았습니다. 새 워크트리에서 실행하려면 저장하세요." }, "SidebarFeedbackDialog": { "8bf619e4cf": "취소", @@ -5458,8 +5537,8 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "닫기", "e1a34450fc": "상태별로 워크스페이스를 구성하고 워크스페이스 카드를 엽니다.", - "81870af08f": "선택된", - "c6a77ab0f4": "워크스페이스 보드" + "c6a77ab0f4": "워크스페이스 보드", + "selectedCount_other": "{{count}}개 선택됨" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "상태를 변경하지 않고 고정하려면 여기에 드롭하세요.", @@ -5560,7 +5639,8 @@ "2931b42b09": "상태: 초안 {{value0}}", "e888362def": "상태: 폐쇄됨", "f394b3e86e": "상태: 병합됨", - "af2b07bda5": "상태: {{value0}}" + "af2b07bda5": "상태: {{value0}}", + "checksStatus": "검사: {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "라이브 포트", @@ -5571,8 +5651,8 @@ "5d1a5d51bb": "{{value0}}에서 프로세스가 중지되었습니다.", "c89f290e25": "{{value0}} 복사됨", "d1113f4660": "브라우저를 열지 못했습니다.", - "fed49903c9": "{{value0}} 실시간 {{value1}}", - "unknownProcess": "알 수 없는 프로세스" + "unknownProcess": "알 수 없는 프로세스", + "livePorts_other": "활성 포트 {{count}}개" }, "WorktreeContextMenu": { "c39c37676a": "그룹을 만들고 이 프로젝트를 그룹으로 이동하세요.", @@ -5614,7 +5694,6 @@ "f9dc6cc5d3": "프로젝트 그룹 이름 바꾸기", "370c6a55dd": "필터 지우기", "b7acbf038b": "워크스페이스를 찾을 수 없습니다.", - "0c6ee14f23": "하위", "c83968f87f": "프로젝트 제거", "64e55f7f01": "그룹에서 제거", "4a08fb55f2": "그룹으로 이동", @@ -5627,12 +5706,7 @@ "4d7b73658c": "그룹 이름 바꾸기", "79465e9034": "{{value0}}에 대한 그룹 작업", "bfbedc547b": "워크트리", - "045a8aed48": "하위", "bb85cd86ba": "{{value0}}에 대한 워크스페이스 만들기", - "20bebf9c7f": "{{value0}}개 하위 워크스페이스 표시", - "c1f4a31623": "{{value0}}개 하위 워크스페이스 표시", - "e97297cb75": "{{value0}}개 하위 워크스페이스 숨기기", - "0cd15956d4": "{{value0}}개 하위 워크스페이스 숨기기", "bd37a57ac8": "{{value0}}에 대한 워크스페이스 만들기", "b667b59632": "일부 프로젝트를 Orca에서 제거하지 못했습니다.", "groupDeleteFailed": "그룹을 삭제하지 못했습니다.", @@ -5646,8 +5720,10 @@ "groupRenameFailed": "그룹 이름을 바꾸지 못했습니다.", "groupRenameFailedDesc": "Orca는 그룹 호스트에게 새 이름을 확인할 수 없습니다. 다시 연결한 후 그룹을 다시 확인하세요.", "hostRepairRequired": "Re-pair required", - "groupProjectsRemainedSingular": "그룹을 삭제했지만, 포함된 프로젝트 {{count}}개 중 {{remaining}}개가 남아 있습니다.", - "groupProjectsRemainedPlural": "그룹을 삭제했지만, 포함된 프로젝트 {{count}}개 중 {{remaining}}개가 남아 있습니다." + "showChildWorkspaces_other": "하위 워크스페이스 {{count}}개 표시", + "hideChildWorkspaces_other": "하위 워크스페이스 {{count}}개 숨기기", + "childCount_other": "하위 {{count}}개", + "groupProjectsRemained_other": "그룹을 삭제한 후 포함된 프로젝트 {{count}}개 중 {{remaining}}개가 남았습니다." }, "WorktreeMetaDialog": { "3db0a2a593": "취소", @@ -5711,7 +5787,6 @@ "d40d436fc2": "워크트리 표시 설정을 업데이트하지 못했습니다. 다시 시도하세요.", "unsupportedHost": "이 호스트는 소스별 워크트리 표시 설정을 지원하지 않습니다. 이 설정을 변경하려면 호스트의 Orca를 업데이트하세요.", "search": "숨겨진 워크트리 검색", - "searchPlaceholder": "워크트리 {{value0}}개 검색…", "noMatches": "일치하는 워크트리가 없습니다", "allShown": "발견된 모든 워크트리가 표시 중입니다", "noneFound": "Orca 외부 워크트리를 찾지 못했습니다", @@ -5719,7 +5794,8 @@ "disableSource": "소스를 비활성화하면 워크트리를 개별적으로 관리할 수 있습니다.", "appearWhenDetected": "Orca가 새 워크트리를 발견하면 여기에 표시됩니다.", "openGlobalSettings": "전역 설정에서 관리", - "globalSettingsSources": "다음 소스에는 여기에서 재정의할 수 있는 전역 설정이 있습니다:" + "globalSettingsSources": "다음 소스에는 여기에서 재정의할 수 있는 전역 설정이 있습니다:", + "searchHiddenPlaceholder_other": "워크트리 {{count}}개 검색…" }, "WorktreeVisibilitySourceList": { "claude": "Claude Code", @@ -5950,12 +6026,9 @@ "670864ab52": "로컬 {{value0}}을 최신 상태로 유지", "84c62e4d7f": "{{value0}}을(를) 켤 수 없습니다.", "442552c656": "설정을 열고 다시 시도하세요.", - "f15fd80989": "새 워크트리는 최신 상태이지만 로컬 {{value0}}이(가) {{value1}} {{value2}} 뒤처져 있어 AI diff가 오래된 기록과 비교될 수 있습니다. Orca가 자동으로 최신 상태를 유지하도록 하세요. 언제든지 여기에서 변경할 수 있습니다", - "3d260e1a5d": "설정 › {{value0}}", "34a03a6565": "{{value0}} 최신 상태로 유지", "4a18052018": "로컬 {{value0}}이(가) {{value1}}보다 뒤처져 있습니다", - "commit": "commit", - "commits": "commits" + "staleLocalBranch_other": "새 워크트리는 최신 상태이지만 로컬 {{branch}} 브랜치가 커밋 {{count}}개 뒤처져 있어 AI diff에 오래된 기록이 사용될 수 있습니다. Orca가 이 브랜치를 자동으로 최신 상태로 유지하도록 설정하세요. 설정 › {{setting}}에서 언제든 변경할 수 있습니다" } } } @@ -6020,13 +6093,11 @@ "7a8b9c0d1e": "설정 열기", "8b9c0d1e2f": "호스트 제거", "workspacesFailed": "이 호스트에서 워크스페이스 {{count}}개를 제거할 수 없었습니다. 재시도할 수 있도록 호스트가 유지되었습니다.", - "oneWorkspace": "워크스페이스 1개", - "manyWorkspaces": "워크스페이스 {{count}}개", - "hostHasWorkspacesDefault": "이 컴퓨터에서 {{value0}}과(와) 해당 자격 증명을 제거합니다. {{value1}}은(는) Orca에 남아 있습니다 — 원격 파일은 변경되지 않습니다.", - "alsoForgetLocal": "Orca에서 이러한 {{value0}}도 제거", "advanced": "고급", "alsoForgetLocalHint": "Orca에서만 제거합니다. 원격 파일, 워크트리, 브랜치는 그대로 남아 있습니다.", - "wslHostEndsTerminalsUnlessShared": "Orca에서 {{value0}}을(를) 제거합니다. 이 컴퓨터에서 열려 있는 다른 Orca가 사용 중이지 않다면 열린 터미널도 종료하고 해당 배포판의 Orca 서버를 중지합니다. 배포판의 파일은 변경되지 않습니다." + "wslHostEndsTerminalsUnlessShared": "Orca에서 {{value0}}을(를) 제거합니다. 이 컴퓨터에서 열려 있는 다른 Orca가 사용 중이지 않다면 열린 터미널도 종료하고 해당 배포판의 Orca 서버를 중지합니다. 배포판의 파일은 변경되지 않습니다.", + "hostKeepsWorkspaces_other": "이 컴퓨터에서 {{host}} 호스트와 해당 자격 증명을 제거합니다. 해당 워크스페이스 {{count}}개는 Orca에 남으며 원격 파일은 변경되지 않습니다.", + "alsoRemoveWorkspaces_other": "이 워크스페이스 {{count}}개도 Orca에서 제거" }, "HostRenameDialog": { "1a2b3c4d5e": "호스트 이름 바꾸기", @@ -6070,7 +6141,7 @@ "current": "현재", "searchPlaceholder": "워크트리 검색...", "empty": "일치하는 적격 워크트리가 없습니다.", - "setParentFor": "다음 워크트리의 상위 설정" + "setParentForName": "{{name}}의 상위 항목 설정" }, "WorktreeCardStatusSlot": { "branchIdentity": "브랜치", @@ -6081,11 +6152,9 @@ "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "{{value0}}의 외부 워크트리를 영구적으로 숨기기", "c3e8a1f4b2": "다시 표시하지 않기", - "2a6f31d8c7": "숨겨진 작업 트리", - "5b90e4a2f6": "숨겨진 작업 트리", - "7f18c5b0d3": "{{value1}}의 {{value0}} 숨겨진 작업 트리를 검토합니다.", - "4e2b7a9c05": "{{value1}}에서 {{value0}} 숨겨진 작업 트리를 검토합니다.", - "6c07f3a91e": "{{value1}}의 {{value0}}" + "6c07f3a91e": "{{value1}}의 {{value0}}", + "hiddenWorktreesNoun_other": "숨겨진 워크트리", + "reviewHiddenWorktrees_other": "{{scope}}의 숨겨진 워크트리 {{count}}개 검토" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} 연결 끊김", @@ -6176,8 +6245,8 @@ "sshConfigPickerRetry": "다시 시도하세요", "sshConfigPickerResolving": "독서…", "pairingHelpShareComputer": "다른 컴퓨터의 설정 → 원격 Orca 서버 → 이 컴퓨터 공유에서 만드세요.", - "sshImportSyncedPlural": "호스트 {{count}}개를 Orca에 추가했습니다.", - "sshImportSyncedSingular": "호스트 {{count}}개를 Orca에 추가했습니다." + "sshImportSynced_other": "Orca에 호스트 {{count}}개를 추가했습니다.", + "sshConfigPickerInvalidResponse": "잘못된 SSH 설정 호스트 응답" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}}은(는) 더 이상 저장된 SSH 호스트가 아니므로 이 워크스페이스는 라이브 호스트에 연결되어 있지 않습니다. Orca에서 제거만 할 수 있으며, 원격의 파일과 브랜치는 그대로 유지됩니다.", @@ -6200,11 +6269,11 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "일치하는 워크스페이스가 없습니다", - "4d96c209d6": "워크스페이스 {{value1}}개 중 {{value0}}개 일치", "c0cd6bdf6c": "워크스페이스 검색", "3b7ea51793": "검색 지우기", "7f1c2e94a5": "검색어가 너무 깁니다 — 보드가 필터링되지 않았습니다", - "9a4d0f6b21": "너무 김" + "9a4d0f6b21": "너무 김", + "workspacesMatch_other": "워크스페이스 {{count}}개 중 {{matchCount}}개 일치" }, "WorktreeCardSshHostControl": { "connectFailed": "SSH 연결 실패", @@ -6276,11 +6345,11 @@ "developerToolsTitle": "Apple 명령줄 도구 설치", "developerToolsBody": "Git에는 Apple 개발자 도구가 필요합니다. 터미널에서 이 명령을 실행한 뒤 Orca로 돌아오세요. 자동으로 다시 확인합니다.", "affectedOne": "{{value0}}에 대한 워크트리 검사가 일시 중지됨", - "affectedMany": "{{value0}}개 프로젝트의 워크트리 검사가 일시 중지됨", "copyCommand": "명령 복사", "copied": "명령이 복사됨", "retry": "지금 다시 시도", - "restored": "Git이 다시 작동합니다. 워크트리를 새로고침했습니다." + "restored": "Git이 다시 작동합니다. 워크트리를 새로고침했습니다.", + "affectedProjects_other": "프로젝트 {{count}}개의 워크트리 스캔 일시 중지됨" }, "manualSortSwitch": { "title": "정렬이 수동으로 변경됨", @@ -6325,7 +6394,8 @@ "wslHostRemoval": { "keptForOthers": "이 Orca에서 제거했습니다. 호스트는 {{value0}}을(를) 위해 계속 실행됩니다.", "partial": "호스트는 제거되었지만 배포판에서 아직 실행 중인 항목이 있습니다: {{value0}}", - "pending": "Orca가 아직 호스트를 제거하지 않았습니다: {{value0}} 다시 시도하려면 다시 제거하고, 유지하려면 연결하세요." + "pending": "Orca가 아직 호스트를 제거하지 않았습니다: {{value0}} 다시 시도하려면 다시 제거하고, 유지하려면 연결하세요.", + "unavailable": "이 컴퓨터에서는 WSL 호스트를 사용할 수 없습니다." }, "addRepoWslHostFolderPicker": { "otherDistro": "해당 폴더는 {{value1}}이(가) 아니라 {{value0}}에 있습니다.", @@ -6366,6 +6436,40 @@ "openingProject": "프로젝트 여는 중...", "openingFolder": "폴더 여는 중...", "chooseFolder": "폴더 선택..." + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "이 호스트는 중첩된 워크트리 삭제를 지원하지 않습니다." + }, + "WorktreeCardHelpers": { + "checksPassing": "통과", + "checksFailing": "실패", + "checksPending": "대기 중", + "conflictMerging": "병합 중", + "conflictRebasing": "리베이스 중", + "conflictCherryPicking": "체리픽 중" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "{{name}} 워크스페이스" + }, + "workspaceKanbanStatus": { + "defaultLabel": "상태 {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_other": "{{preview}}, +{{count}}개 더" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "MR 세부정보를 사용할 수 없음", + "prDetailsUnavailable": "PR 세부정보를 사용할 수 없음", + "loadingMr": "MR 로드 중…", + "loadingPr": "PR 로드 중…" + }, + "HostSectionHeader": { + "workspaceCount_other": "워크스페이스 {{count}}개" + }, + "titleDerivedAgentRows": { + "needsInput": "입력 필요", + "running": "실행 중", + "idle": "유휴" } }, "shared": { @@ -13918,17 +14022,8 @@ "new": { "workspace": { "SmartWorkspaceNameField": { - "2a0d535f69": "새 브랜치 만들기", - "a44229ce4d": "워크스페이스 이름으로", - "766083a596": "\"", - "34ca97bce3": "\"", - "b1a7d679ba": "사용", "e57c53727c": "프로젝트 추가...", - "a76fcb4fa0": "다음으로 전환", - "eadf877af5": "유지", "6859e2896c": "취소", - "9ef1a7c4b0": ", 선택한 프로젝트와 다릅니다.", - "ad188067ae": "GitHub URL은 다음을 가리킵니다.", "4bd98f1091": "프로젝트를 전환하시겠습니까?", "0c9e668e3a": "지우기", "7199ff19c7": "선택한 소스 지우기", @@ -13947,7 +14042,6 @@ "fda67f0b61": "현재 프로젝트", "3e8bb1176a": "이슈를 검색하려면 설정에서 Linear를 연결하세요.", "switchTaskSourceTitle": "작업 소스를 전환할까요?", - "differentTaskSource": ", 선택한 작업 소스와 다릅니다.", "currentTaskSource": "현재 작업 소스", "placeholderNameOrLinearUrl": "이름, Linear URL 또는 Jira URL 입력", "placeholderWorkspaceName": "워크스페이스 이름 입력", @@ -13976,7 +14070,13 @@ "emoji": "Emoji", "loadingLinearIssue": "Linear 문제 로드 중…", "linearLoginUnreadableTitle": "Linear 다시 연결", - "linearLoginUnreadableBody": "저장된 Linear 로그인을 읽을 수 없습니다. 설정에서 다시 연결하세요." + "linearLoginUnreadableBody": "저장된 Linear 로그인을 읽을 수 없습니다. 설정에서 다시 연결하세요.", + "keepRepo": "{{name}} 유지", + "switchToRepo": "{{name}}(으)로 전환", + "crossRepoDifferentTaskSource": "GitHub URL이 선택한 작업 소스와 다른 {{repo}} 저장소를 가리킵니다.", + "crossRepoDifferentProject": "GitHub URL이 선택한 프로젝트와 다른 {{repo}} 저장소를 가리킵니다.", + "useAsWorkspaceName": "\"{{name}}\"을(를) 워크스페이스 이름으로 사용", + "createNewBranchNamed": "새 브랜치 {{name}} 만들기" }, "ProjectCombobox": { "empty": "검색과 일치하는 프로젝트가 없습니다.", @@ -13999,6 +14099,11 @@ "cloneFromUrl": "URL에서 복제", "cloneFromUrlHelp": "이 저장소를 {{host}}에 복제하세요.", "saveLocation": "위치 설정" + }, + "projectCombobox": { + "recentHeading": "최근", + "projectsHeading": "프로젝트", + "foldersHeading": "폴더" } } }, @@ -15598,7 +15703,8 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} 하위 {{value2}}" + "hideChildAgents_other": "하위 에이전트 {{count}}개 숨기기", + "showChildAgents_other": "하위 에이전트 {{count}}개 표시" }, "DashboardAgentRow": { "912e136cd9": "보내기", @@ -15606,7 +15712,12 @@ "a41fb5376e": "세부정보 접기", "5ae84475cc": "닫기", "b06e13fcf7": "agent 닫기", - "0272969e28": "이 agent에게 보내기" + "0272969e28": "이 agent에게 보내기", + "justNow": "방금", + "timeAgo": "{{duration}} 전", + "dispatchedAgents_other": "{{agentType}} - 에이전트 {{count}}개 배정됨", + "startedAgo": "{{time}} 시작", + "doneAgo": "{{time}} 완료" }, "DashboardAgentRowMessage": { "0a01046763": "중단됨", @@ -16722,14 +16833,13 @@ "clearNotification": "알림 지우기" }, "ActivityTitlebarControls": { - "f915168c8e": "읽지 않음", "d6a8de3934": "에이전트", - "dc708f3eff": "agents 닫기" + "dc708f3eff": "agents 닫기", + "unreadCount_other": "읽지 않음 {{count}}개" }, "clearCompleted": { - "clearedOne": "완료된 에이전트 1개를 클리어했습니다.", - "clearedMany": "{{count}} 완료된 에이전트를 삭제했습니다.", - "undo": "끄르다" + "undo": "끄르다", + "cleared_other": "완료된 에이전트 {{count}}개를 지웠습니다" }, "standaloneWorktree": { "floatingTerminal": "플로팅 터미널", @@ -17552,6 +17662,16 @@ "unreachable": "Jira에 연결할 수 없습니다. 연결을 확인하고 다시 시도하세요.", "loadFailed": "Jira 이슈를 불러올 수 없습니다. 잠시 후 다시 시도하세요.", "errorWithCode": "오류 {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "“{{action}}” 실행 불가 — 워크스페이스를 아직 로드 중입니다.", + "noActiveWorkspace": "“{{action}}” 실행 불가 — 활성 워크스페이스가 없습니다.", + "workspaceDisconnected": "“{{action}}” 실행 불가 — 워크스페이스 연결이 끊어졌습니다.", + "noTabGroup": "“{{action}}” 실행 불가 — 사용 가능한 탭 그룹이 없습니다.", + "noMovableChat": "“{{action}}” 실행 불가 — 이동 가능한 활성 채팅이 없습니다.", + "clientUnsupported": "“{{action}}” 실행 불가 — 이 클라이언트와 런타임에서 지원하지 않습니다." + } } }, "i18n": { @@ -18625,12 +18745,6 @@ "gitStatusCheckFailed": "Git 상태 확인 실패", "gitStatusUnverified": "Git 상태를 확인할 수 없음", "deleteAnyway": "그래도 삭제", - "forceDeleteProjectionOne": "현재 워크스페이스 {{count}}개에 위험 요소가 표시되며 강제 삭제가 필요할 수 있습니다", - "forceDeleteProjectionMany": "현재 워크스페이스 {{count}}개에 위험 요소가 표시되며 강제 삭제가 필요할 수 있습니다", - "selectionWithheldOne": "선택한 워크스페이스 1개가 현재 필터에 의해 숨겨져 선택이 해제되었습니다.", - "selectionWithheld": "선택한 워크스페이스 {{value0}}개가 현재 필터에 의해 숨겨져 선택이 해제되었습니다.", - "selectAllCountOne": "안전 검사를 통과한 워크스페이스 1개 선택", - "selectAllCount": "안전 검사를 통과한 워크스페이스 {{value0}}개 모두 선택", "appliedFilters": "적용된 필터", "removeFilter": "{{value0}} 필터 제거", "chip": { @@ -18795,8 +18909,6 @@ "none": "없음" }, "idleSignalField": "유휴 신호", - "selectionVanishedOne": "선택한 워크스페이스 1개가 더 이상 존재하지 않습니다.", - "selectionVanished": "{{value0}} 선택한 워크스페이스가 더 이상 존재하지 않습니다.", "updatedAgo": "{{value0}} 업데이트됨", "refreshing": "새로고침 중…", "refreshingProgress": "새로 고침 {{value0}}/{{value1}}", @@ -18807,18 +18919,21 @@ "measuringSizesProgress": "{{value0}}/{{value1}} 스캔 중", "measuringSizes": "스캔 크기", "measureSizesFailed": "워크스페이스 크기를 스캔할 수 없습니다.", - "selectedCount": "{{value0}} 선택됨" + "selectedCount": "{{value0}} 선택됨", + "forceDeleteRisk_other": "현재 워크스페이스 {{count}}개에 위험 요소가 있으며 강제 삭제가 필요할 수 있음", + "selectionVanishedCount_other": "선택한 워크스페이스 {{count}}개가 더 이상 존재하지 않습니다.", + "selectionWithheldCount_other": "선택한 워크스페이스 {{count}}개가 현재 필터에 의해 숨겨져 선택 해제되었습니다.", + "selectAllSafetyChecked_other": "안전성 검사를 마친 워크스페이스 {{count}}개 모두 선택" }, "scan": { - "readyOne": "워크스페이스 1개를 찾았습니다.", - "readyMany": "워크스페이스 {{value0}}개를 찾았습니다.", "progress": "워크스페이스 스캔 중({{value0}}/{{value1}})", "singleError": "{{value0}}: {{value1}}을(를) 확인할 수 없습니다. 일부 워크스페이스가 누락되었을 수 있습니다. 다시 시도하려면 새로고침하세요.", - "moreErrors": ", +{{value0}} 더보기", - "multipleErrors": "{{value0}} 저장소({{value1}}{{value2}})를 확인할 수 없습니다. 일부 워크스페이스가 누락되었을 수 있습니다. 다시 시도하려면 새로고침하세요.", "noWorkspaces": "워크스페이스를 찾을 수 없습니다.", "fallbackRepository": "저장소", - "gitListFailed": "Git이 작업 트리를 나열할 수 없습니다." + "gitListFailed": "Git이 작업 트리를 나열할 수 없습니다.", + "multipleErrorsWithMore_other": "저장소 {{count}}개({{names}}, 외 {{moreCount}}개)를 확인하지 못했습니다. 일부 워크스페이스가 누락되었을 수 있습니다. 새로고침하여 다시 시도하세요.", + "multipleErrorsCount_other": "저장소 {{count}}개({{names}})를 확인하지 못했습니다. 일부 워크스페이스가 누락되었을 수 있습니다. 새로고침하여 다시 시도하세요.", + "readyCount_other": "워크스페이스 {{count}}개를 찾았습니다." }, "presentationFixtures": { "reviewAlphaCleanup": "알파 정리 검토" @@ -20228,7 +20343,6 @@ "repositoryLoading": "리포지토리 정보를 아직 불러오는 중입니다. 사용할 수 있게 되면 다시 시도하세요.", "duplicate": "이 링크는 이미 첨부되어 있습니다.", "title": "연결된 작업", - "count": "{{count}}개 연결됨", "empty": "이 워크스페이스의 모든 리뷰와 작업을 한곳에 모아 두세요.", "reviews": "리뷰", "tasks": "이슈 및 작업", @@ -20236,7 +20350,6 @@ "open": "링크 열기", "unlinkItem": "{{label}} 연결 해제", "unlink": "워크스페이스에서 연결 해제", - "show": "연결된 리뷰와 작업 {{count}}개 표시", "details": "워크스페이스 세부정보", "description": "리뷰와 작업을 첨부하고 이 워크스페이스의 메모를 보관하세요.", "commentHelp": "Markdown을 지원합니다. 저장하려면 Enter 또는 {{shortcut}} · 새 줄은 Shift+Enter를 누르세요.", @@ -20289,7 +20402,9 @@ "checksPassing": "통과", "checksUnknown": "알 수 없음", "checksNeutral": "중립", - "allReviewChecks": "리뷰: {{count}} · 체크: {{status}}" + "allReviewChecks": "리뷰: {{count}} · 체크: {{status}}", + "showLinked_other": "연결된 리뷰 및 작업 {{count}}개 표시", + "linkedCount_other": "{{count}}개 연결됨" }, "attachments": { "updateRuntime": "워크스페이스 링크를 변경하려면 원격 런타임을 업데이트하세요", @@ -20547,7 +20662,7 @@ "compact": { "linked": "연결됨", "linkedAndUnavailable": "연결된 작업 트리의 {{value0}} · {{value1}}을(를) 사용할 수 없습니다.", - "linkedAndScanned": "연결된 작업 트리의 {{value0}} · {{value1}} 워크스페이스" + "linkedAndScannedCount_other": "연결된 워크트리에서 {{size}} 사용 · 워크스페이스 {{count}}개" }, "changes": { "empty": "일치하는 파일이 없습니다.", diff --git a/src/renderer/src/i18n/locales/pt.json b/src/renderer/src/i18n/locales/pt.json index e93a7db82a4..f6917479840 100644 --- a/src/renderer/src/i18n/locales/pt.json +++ b/src/renderer/src/i18n/locales/pt.json @@ -2422,15 +2422,16 @@ "4ebf90c12e": "Nenhuma porta externa detectada", "7dac3ecc9d": "Portas Externas", "95495019ed": "Verificação de portas indisponível em {{value0}}: {{value1}}", - "a8e4bdb412": " · {{value0}} externa(s)", "c22ea609fd": "Portas", - "ca41be2802": "Portas — {{value0}} espaço de trabalho {{value1}}{{value2}}", - "b8bc3e420a": "Portas, {{value0}} espaço de trabalho {{value1}}", "3a87d54dfb": "Nenhuma porta de espaço de trabalho detectada", "c174bbbfed": "Verificando portas do espaço de trabalho...", - "8caaa86e9a": "portas", - "45834a9ace": "porta", - "2b84c4d11f": "{{value0}} espaço de trabalho · {{value1}} externa(s)" + "2b84c4d11f": "{{value0}} espaço de trabalho · {{value1}} externa(s)", + "portsAria_one": "Portas, {{count}} porta do espaço de trabalho", + "portsAria_other": "Portas, {{count}} portas do espaço de trabalho", + "portsTooltipWithExternal_one": "Portas — {{count}} porta do espaço de trabalho · externas: {{externalCount}}", + "portsTooltipWithExternal_other": "Portas — {{count}} portas do espaço de trabalho · externas: {{externalCount}}", + "portsTooltip_one": "Portas — {{count}} porta do espaço de trabalho", + "portsTooltip_other": "Portas — {{count}} portas do espaço de trabalho" }, "ResourceUsageStatusSegment": { "946d9f94d0": "Cancelar", @@ -2439,7 +2440,6 @@ "27a74f91f0": "Nada em execução agora", "298f4be7f2": "CPU", "2aa2de6cb9": "Nome", - "30ff2c3c31": "{{value0}} órfão", "1fedf94eae": "Carga combinada de CPU. Valores acima de 100% significam que mais de um núcleo está trabalhando ao mesmo tempo.", "e7cf14ec78": "Sessões de terminal indisponíveis. A lista pode estar desatualizada.", "93b0de3c21": "Reiniciar", @@ -2467,12 +2467,13 @@ "d406915b78": "Renderer", "81cd37af99": "Principal", "fa6d36758d": "Encerrar sessão {{value0}}", - "b8f4a2c1d0e3": "{{value0}} órfãos", - "c7e3b1a0d9f2": "Encerrar {{value0}} terminal órfão", - "d8f4c2b1e0a3": "Encerrar {{value0}} terminais órfãos", "e9a5d3c2b1f0": "Encerrar {{value0}}?", "8a0472ab54": "Não foi possível acessar {{value0}}; seus recursos são desconhecidos.", - "1ea066b73f": "Atualize {{value0}} para ver seus recursos." + "1ea066b73f": "Atualize {{value0}} para ver seus recursos.", + "endOrphanTerminals_one": "Encerrar {{count}} terminal órfão", + "endOrphanTerminals_other": "Encerrar {{count}} terminais órfãos", + "orphanCount_one": "{{count}} órfão", + "orphanCount_other": "{{count}} órfãos" }, "SshStatusSegment": { "3ad70e0365": "Gerenciar Hosts Remotos…", @@ -2532,10 +2533,6 @@ "3325d996cb": "Atualizar limites de taxa", "cd9d7b40ff": "Reiniciar {{value0}} Sessões", "6cd6650b4c": "Reiniciar Sessão", - "1446d0d8a0": "{{value0}} sessões do Codex ainda estão na conta antiga.", - "605901a495": "1 sessão do Codex ainda está na conta antiga", - "5e5f9f5160": "1 redefinição de limite de taxa disponível", - "5ecae9197c": "{{value0}} redefinições de limite de taxa disponíveis", "25d8bbde69": "Usando redefinição…", "e159fc1fd7": "Redefinir agora", "972a1ff497": "Redefinir limites do Codex?", @@ -2554,7 +2551,11 @@ "a95969101f": "{{value0}} créditos", "cursorUsageMenu": "Uso do Cursor", "hiddenUsageProviders": "Também: {{value0}}", - "zcodeUsageMenu": "Uso do ZCode" + "zcodeUsageMenu": "Uso do ZCode", + "rateLimitResetsAvailable_one": "{{count}} redefinição de limite de taxa disponível", + "rateLimitResetsAvailable_other": "{{count}} redefinições de limite de taxa disponíveis", + "staleCodexSessions_one": "{{count}} sessão do Codex ainda está na conta antiga.", + "staleCodexSessions_other": "{{count}} sessões do Codex ainda estão na conta antiga." }, "StatusBarUsageEmptyCta": { "828c764a79": "Conectar uma conta", @@ -2571,13 +2572,14 @@ "SkillUpdateStatusSegment": { "runningLabel": "Atualizando skills", "runningOne": "Atualizando {{value0}}…", - "runningMany": "Atualizando {{value0}} skills…", "runningAria": "Skills sendo atualizadas. Clique para abrir os detalhes.", "successLabel": "Skills atualizadas", "successAria": "Skills atualizadas. Clique para abrir os detalhes.", "attentionAria": "Algumas atualizações de skills foram ignoradas. Clique para abrir os detalhes.", "attentionLabel": "Skills precisam de atenção", - "attentionTooltip": "Algumas atualizações de skills foram ignoradas — clique para ver os detalhes" + "attentionTooltip": "Algumas atualizações de skills foram ignoradas — clique para ver os detalhes", + "runningSkills_one": "Atualizando {{count}} skill…", + "runningSkills_other": "Atualizando {{count}} skills…" }, "UpdateStatusSegment": { "5cd13105a3": "Falha na atualização. Clique para expandir.", @@ -2619,11 +2621,8 @@ "6f8f6a6b04": "Filtrar espaços de trabalho", "5caccea440": "Excluir selecionados", "e4a12c455b": "Limpar", - "0cb1501ccf": "recuperável", - "65402b7192": "selecionado(s)", "43171f3e60": "Espaços de trabalho", "09960d86bd": "Verificado", - "63efebe0e6": "{{value0}} {{value1}} removido(s) do Espaço.", "eee5240810": "Espaços de trabalho excluídos", "9afc97f9a3": "Espaço de trabalho excluído", "792a214457": "Excluir espaço de trabalho", @@ -2631,7 +2630,6 @@ "9155381019": "Sparse", "f39d291997": "Selecionar", "16988df079": "Nenhum arquivo encontrado.", - "b25c2c1086": "itens de nível superior", "d3f9c69ddc": "Zoom", "ef890d31b9": "Todos", "c28643d3da": "Ir para o espaço de trabalho", @@ -2670,8 +2668,15 @@ "c5135e7e4a": "Verificando os tamanhos dos espaços de trabalho. Você pode sair desta página.", "0990a63160": "Nenhum tamanho de espaço de trabalho verificado ainda.", "977bdf9a36": "Nenhum item de nível superior para mostrar.", - "131662ac65": "{{value0}} aberto(s)", - "0d1c78d749": "Selecionar {{value0}}" + "0d1c78d749": "Selecionar {{value0}}", + "removedFromSpace_one": "{{count}} espaço de trabalho removido do Espaço.", + "removedFromSpace_other": "{{count}} espaços de trabalho removidos do Espaço.", + "topLevelItems_one": "{{formattedCount}} item de nível superior", + "topLevelItems_other": "{{formattedCount}} itens de nível superior", + "selectedCount_one": "{{count}} selecionado", + "selectedCount_other": "{{count}} selecionados", + "reclaimableSize": "{{size}} recuperáveis", + "scanning": "Verificando" }, "ports": { "status": { @@ -2685,7 +2690,8 @@ "e4a709548c": "Falha ao atualizar portas", "acdb6df590": "Processo interrompido em {{value0}}", "480d8f2347": "{{value0}} copiado", - "b854ec9ff5": "Falha ao abrir o navegador" + "b854ec9ff5": "Falha ao abrir o navegador", + "unknownProcess": "Processo desconhecido" } } } @@ -2702,8 +2708,6 @@ "7ad719c4bf": "Limitado", "e740f92596": "Falha ao atualizar", "8418ec448d": "Não foi possível atualizar o uso de {{value0}}. As sessões de agente podem continuar conectadas.", - "45198c7d95": "1 redefinição de limite de taxa disponível", - "bce421cba3": "{{value0}} redefinições de limite de taxa disponíveis", "7ec6e030a0": "O próximo expira agora", "d1e442a9e5": "Expira agora", "6cf9eaed10": "O próximo expira em {{value0}}", @@ -2763,7 +2767,14 @@ "label": "Atualiza quando o Claude é executado", "message": "O uso do Claude será atualizado na próxima vez que ele for executado." } - } + }, + "justNow": "agora mesmo", + "minutesAgo": "há {{minutes}} min", + "hoursAgo": "há {{hours}} h", + "updatedAgo": "Atualizado {{time}}", + "notYetUpdated": "Ainda não atualizado", + "rateLimitResetsAvailable_one": "{{count}} redefinição de limite de taxa disponível", + "rateLimitResetsAvailable_other": "{{count}} redefinições de limite de taxa disponíveis" }, "SshTargetStatusRow": { "sshHost": "Host SSH" @@ -2798,12 +2809,12 @@ "RemoteServerUpdateStatusSegment": { "updating": "Atualizando {{value0}}/{{value1}}", "updatingTooltip": "As atualizações do Servidor Orca Remoto estão em andamento", - "failed": "{{value0}} atualizações de servidor falharam", "failedTooltip": "Abra as atualizações do Servidor Orca Remoto para revisar e tentar novamente", - "updated": "{{value0}} servidores atualizados", "updatedTooltip": "Atualizações do Servidor Orca Remoto concluídas", - "failedOne": "1 atualização de servidor falhou", - "updatedOne": "1 servidor atualizado" + "failedCount_one": "{{count}} atualização de servidor falhou", + "failedCount_other": "{{count}} atualizações de servidores falharam", + "updatedCount_one": "{{count}} servidor atualizado", + "updatedCount_other": "{{count}} servidores atualizados" }, "resource": { "memory": { @@ -2811,7 +2822,10 @@ "workingSetDescription": "Working set somado (WS): páginas residentes na RAM agora. Páginas compartilhadas podem aparecer em mais de um processo, e a memória que o Windows paginou para o disco não é contada aqui.", "privateBytesDescription": "Bytes privados somados: memória que esses processos comprometeram, contada esteja ela residente ou paginada para o disco. É isso que o host cobra contra seu limite de comprometimento, então continua subindo enquanto o working set acima diminui sob paginação.", "footprintDescription": "Pegada de memória somada, o mesmo valor que o Monitor de Atividade mostra: a memória de cada processo, incluindo memória gráfica. Páginas compartilhadas entre processos não são contadas duas vezes.", - "rssDescription": "Tamanho do conjunto residente somado (RSS). Páginas compartilhadas ou com alias podem aparecer em mais de um processo." + "rssDescription": "Tamanho do conjunto residente somado (RSS). Páginas compartilhadas ou com alias podem aparecer em mais de um processo.", + "memColumn": "Mem.", + "memorySummary": "Σ Memória", + "privateSummary": "Σ Privada" } }, "manager": { @@ -2870,29 +2884,29 @@ } }, "NativeChatResumeStatusSegment": { - "labelOne": "1 chat para retomar", - "label": "{{value0}} chats para retomar", - "ariaLabelOne": "1 chat disponível para retomar", - "ariaLabel": "{{value0}} chats disponíveis para retomar", "tooltip": "Abrir chats interrompidos disponíveis para retomar", - "failedLabelOne": "Falha ao retomar 1 chat", - "failedLabel": "Falha ao retomar {{value0}} chats", - "failedAriaOne": "Falha ao retomar 1 chat. Clique para ver detalhes.", - "failedAria": "Falha ao retomar {{value0}} chats. Clique para ver detalhes.", "failedTooltip": "Chats que o Orca não conseguiu retomar após reiniciar. Clique para ver detalhes.", - "checkLabelOne": "1 chat para verificar", - "checkLabel": "{{value0}} conversas para verificar", - "checkAriaOne": "1 conversa para verificar após a retomada. Clique para ver os detalhes.", - "checkAria": "{{value0}} conversas para verificar após a retomada. Clique para ver os detalhes.", "checkTooltip": "Conversas que o Orca não conseguiu retomar, ou cuja retomada não conseguiu confirmar, após a reinicialização. Clique para ver os detalhes.", "resumingTooltip": "Restaurando conversas interrompidas e pedindo que continuem…", "resumingProgressLabel": "Retomando conversas {{value0}}/{{value1}}", "resumingProgressAria": "Retomando conversas, {{value0}} de {{value1}} concluídas. Clique para abrir os detalhes.", - "resumedLabelOne": "1 conversa retomada", - "resumedLabel": "{{value0}} conversas retomadas", - "resumedAriaOne": "1 conversa retomada. Clique para vê-la.", - "resumedAria": "{{value0}} conversas retomadas. Clique para vê-las.", - "resumedTooltip": "Conversas que o Orca retomou após a reinicialização. Clique para vê-las." + "resumedTooltip": "Conversas que o Orca retomou após a reinicialização. Clique para vê-las.", + "chatsFailedLabel_one": "Não foi possível retomar {{count}} chat", + "chatsFailedLabel_other": "Não foi possível retomar {{count}} chats", + "chatsFailedAria_one": "Não foi possível retomar {{count}} chat. Clique para ver os detalhes.", + "chatsFailedAria_other": "Não foi possível retomar {{count}} chats. Clique para ver os detalhes.", + "resumedLabelCount_one": "{{count}} chat retomado", + "resumedLabelCount_other": "{{count}} chats retomados", + "resumedAriaCount_one": "{{count}} chat retomado. Clique para vê-lo.", + "resumedAriaCount_other": "{{count}} chats retomados. Clique para vê-los.", + "checkLabelCount_one": "{{count}} chat para verificar", + "checkLabelCount_other": "{{count}} chats para verificar", + "checkAriaCount_one": "{{count}} chat para verificar após a retomada. Clique para ver os detalhes.", + "checkAriaCount_other": "{{count}} chats para verificar após a retomada. Clique para ver os detalhes.", + "labelCount_one": "{{count}} chat para retomar", + "labelCount_other": "{{count}} chats para retomar", + "ariaLabelCount_one": "{{count}} chat disponível para retomar", + "ariaLabelCount_other": "{{count}} chats disponíveis para retomar" }, "StatusBarUsageChangeNotices": { "compactTitle": "A exibição de uso agora é compacta", @@ -2901,6 +2915,81 @@ "usageUnitLabel": { "used": "Usado", "remaining": "Restante" + }, + "mergeSnapshotAndSessions": { + "unattributed": "Sem atribuição" + }, + "resourceSessionLabels": { + "terminalNumber": "Terminal {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "sessão {{id}}", + "unknownSession": "(sessão desconhecida)", + "unknown": "desconhecido" + }, + "runtimeTargets": { + "wslDefault": "WSL padrão" + }, + "floatingWorkspace": { + "minimize": "Minimizar espaço de trabalho flutuante", + "show": "Mostrar espaço de trabalho flutuante" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "O proprietário do espaço de trabalho não está mais disponível" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "Sincronizado com upstream", + "aheadAndBehind": "{{ahead}} à frente, {{behind}} atrás", + "ahead": "{{ahead}} à frente", + "behind": "{{behind}} atrás", + "activeAgents_one": "{{count}} agente ativo", + "activeAgents_other": "{{count}} agentes ativos", + "completedAgents_one": "{{count}} agente concluído", + "completedAgents_other": "{{count}} agentes concluídos", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_one": "{{count}} agente concluído mantido", + "completedAgentsRetained_other": "{{count}} agentes concluídos mantidos", + "noTrackedAgents": "Nenhum agente monitorado em execução", + "noTerminalTabs": "Nenhuma aba de terminal", + "liveTerminalTabs_one": "{{live}} em execução de {{count}} aba de terminal", + "liveTerminalTabs_other": "{{live}} em execução de {{count}} abas de terminal", + "gitStatusUnavailable": "Status do Git indisponível: {{error}}", + "gitStatusNotLoaded": "O status do Git ainda não foi carregado", + "noUncommittedFiles": "Nenhum arquivo com alterações sem commit", + "changedFiles_one": "{{count}} arquivo alterado", + "changedFiles_other": "{{count}} arquivos alterados", + "noEditorFiles": "Nenhum arquivo aberto no editor", + "editorFilesOpen_one": "{{count}} arquivo aberto no editor", + "editorFilesOpen_other": "{{count}} arquivos abertos no editor", + "dirtyOfOpen": "{{dirty}} de {{open}}", + "dirtyEditorBuffers_one": "{{count}} buffer do editor não salvo", + "dirtyEditorBuffers_other": "{{count}} buffers do editor não salvos", + "openFiles_one": "{{count}} arquivo aberto", + "openFiles_other": "{{count}} arquivos abertos", + "activeWorkspace": "Este é o espaço de trabalho ativo", + "mainWorktreeProtected": "A worktree principal está protegida", + "workspaceProtected": "O espaço de trabalho está protegido", + "canDeleteAfterReview": "Pode ser excluído após revisão", + "noLinkedIssue": "Nenhuma issue vinculada", + "noLinkedReview": "Nenhum PR vinculado", + "browserTabsOpen_one": "{{count}} aba do navegador aberta", + "browserTabsOpen_other": "{{count}} abas do navegador abertas" + }, + "workspaceSpaceFormat": { + "cancellingScan": "Cancelando verificação", + "currentWorkspaces": "espaços de trabalho", + "scanningWorkspaces": "Verificando {{scanned}} de {{total}} · {{current}}", + "scanningRepos_one": "Verificando {{scanned}} de {{count}} repositório · {{current}}", + "scanningRepos_other": "Verificando {{scanned}} de {{count}} repositórios · {{current}}", + "scanningSizes": "Verificando os tamanhos dos espaços de trabalho", + "status": { + "scanned": "Verificado", + "missing": "Ausente", + "noAccess": "Sem acesso", + "unavailable": "Indisponível", + "failed": "Falhou" + }, + "mainWorktree": "worktree principal", + "detached": "desanexado" } } }, @@ -10274,8 +10363,9 @@ "serverSshTitle": "Adicionar host SSH a {{server}}", "serverSshDescription": "{{server}} salva este host e se conecta a ele. Senhas e frases-senha são solicitadas ao conectar.", "pairingHelpShareComputer": "Crie isto em Configurações → Servidores Orca remotos → Compartilhar este computador no outro computador.", - "sshImportSyncedPlural": "{{count}} hosts adicionados ao Orca.", - "sshImportSyncedSingular": "{{count}} host adicionado ao Orca." + "sshImportSynced_one": "{{count}} host adicionado ao Orca.", + "sshImportSynced_other": "{{count}} hosts adicionados ao Orca.", + "sshConfigPickerInvalidResponse": "Resposta de host da configuração SSH inválida" }, "SidebarWorkspaceOptionsMenu": { "hosts": "Hosts", @@ -10343,7 +10433,6 @@ "f9dc6cc5d3": "Renomear Grupo de Projeto", "370c6a55dd": "Limpar Filtros", "b7acbf038b": "Nenhum espaço de trabalho encontrado", - "0c6ee14f23": "filho", "c83968f87f": "Remover Projeto", "64e55f7f01": "Remover do grupo", "4a08fb55f2": "Mover para o grupo", @@ -10356,12 +10445,7 @@ "4d7b73658c": "Renomear grupo", "79465e9034": "Ações do grupo para {{value0}}", "bfbedc547b": "Worktrees", - "045a8aed48": "filhos", "bb85cd86ba": "Criar espaço de trabalho para {{value0}}", - "20bebf9c7f": "Mostrar {{value0}} espaço de trabalho filho", - "c1f4a31623": "Mostrar {{value0}} espaços de trabalho filhos", - "e97297cb75": "Ocultar {{value0}} espaço de trabalho filho", - "0cd15956d4": "Ocultar {{value0}} espaços de trabalho filhos", "bd37a57ac8": "Criar espaço de trabalho para {{value0}}", "b667b59632": "Alguns projetos não puderam ser removidos do Orca", "groupDeleteFailed": "Falha ao excluir o grupo", @@ -10372,8 +10456,14 @@ "sidebarRowMissing": "O destino não existe mais", "failedUnnestWorkspace": "Falha ao desaninhar o espaço de trabalho", "hostRepairRequired": "É necessário parear novamente", - "groupProjectsRemainedSingular": "{{remaining}} de {{count}} projeto contido permaneceu após excluir o grupo.", - "groupProjectsRemainedPlural": "Projetos contidos que permaneceram após excluir o grupo: {{remaining}} de {{count}}." + "showChildWorkspaces_one": "Mostrar {{count}} espaço de trabalho filho", + "hideChildWorkspaces_one": "Ocultar {{count}} espaço de trabalho filho", + "showChildWorkspaces_other": "Mostrar {{count}} espaços de trabalho filhos", + "hideChildWorkspaces_other": "Ocultar {{count}} espaços de trabalho filhos", + "childCount_one": "{{count}} filho", + "childCount_other": "{{count}} filhos", + "groupProjectsRemained_one": "Projetos do grupo restantes após excluí-lo: {{remaining}} de {{count}}.", + "groupProjectsRemained_other": "Projetos do grupo restantes após excluí-lo: {{remaining}} de {{count}}." }, "WorktreeCardMeta": { "3e65e11cc6": "Metadados do espaço de trabalho", @@ -10534,7 +10624,6 @@ "d40d436fc2": "Não foi possível atualizar a visibilidade da worktree. Tente novamente.", "unsupportedHost": "Este host não suporta visibilidade de worktree por origem. Atualize o Orca no host para alterar esta configuração.", "search": "Buscar worktrees ocultas", - "searchPlaceholder": "Buscar worktrees de {{value0}}…", "noMatches": "Nenhuma worktree correspondente", "allShown": "Todas as worktrees descobertas estão sendo exibidas", "noneFound": "Nenhuma worktree não-Orca encontrada", @@ -10542,7 +10631,9 @@ "disableSource": "Desative uma origem para gerenciar suas worktrees individualmente.", "appearWhenDetected": "Novas worktrees vão aparecer aqui quando o Orca as detectar.", "openGlobalSettings": "Gerenciar nas Configurações Globais", - "globalSettingsSources": "Estas origens têm uma configuração global que você pode substituir aqui:" + "globalSettingsSources": "Estas origens têm uma configuração global que você pode substituir aqui:", + "searchHiddenPlaceholder_one": "Pesquisar em {{count}} worktree…", + "searchHiddenPlaceholder_other": "Pesquisar em {{count}} worktrees…" }, "WorktreeMetaDialog": { "3db0a2a593": "Cancelar", @@ -10616,12 +10707,11 @@ "39d51212cc": "Nome do grupo", "aa0247680d": "Não, importar separadamente", "a0bc4d1f8e": "Sim, importar como grupo", - "8401a7a0d0": "1 repositório", - "d4f1df62ef": "{{value0}} repositórios", - "b4263a2ac4": "Encontrado(s) {{value0}} em {{value1}}.", "24eda6c8b2": "Escaneando... {{value0}}", "6149d5203f": "Nenhum repositório está selecionado. Abra a pasta pai em vez disso para usar editor, terminal e busca sem recursos do Git.", - "e52454b7f6": "Abrir como Pasta" + "e52454b7f6": "Abrir como Pasta", + "foundRepositories_one": "{{count}} repositório encontrado em {{path}}.", + "foundRepositories_other": "{{count}} repositórios encontrados em {{path}}." }, "SidebarFeedbackDialog": { "8bf619e4cf": "Cancelar", @@ -10674,20 +10764,17 @@ "31b8b01a45": "Configurações", "4a98f907ae": "Tentar novamente", "0a98169776": "Adicione um comando de configuração para executar quando o Orca criar novas worktrees.", - "8349e3fa4c": ". Salve-o para executar em novas worktrees.", - "b56d1322f7": "Encontrado um comando de configuração em", "aef6c0a213": "Salve o comando detectado para executá-lo sempre que o Orca criar uma worktree.", - "660cdc17f8": "de scripts de configuração. Adicione um comando local, ou altere a origem em Configurações.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "Este repositório ignora o compartilhado", "0155fb9ed3": "Não foi possível verificar o script de configuração deste repositório agora.", "eefa756190": "Configurar manualmente", "ca4efcbc25": "Salvar", - "d02e6a42b1": "Detectado a partir de", "fdbc6cb064": "Script de configuração detectado", "7275f674cc": "Configuração detectada", "822ff300ad": "Descartar", - "5bfd5c8779": "Descartar scripts de configuração" + "5bfd5c8779": "Descartar scripts de configuração", + "detectedFromSource": "Detectado em {{source}}", + "ignoresSharedSetup": "Este repositório ignora scripts de configuração compartilhados de orca.yaml. Adicione um comando local ou altere a origem em Configurações.", + "foundSetupCommandIn": "Foi encontrado um comando de configuração em {{source}}. Salve-o para executá-lo nas novas worktrees." }, "preserved": { "branch": { @@ -10795,13 +10882,13 @@ "7a8b9c0d1e": "Abrir configurações", "8b9c0d1e2f": "Remover host", "workspacesFailed": "Não foi possível remover {{count}} dos espaços de trabalho deste host. O host foi mantido para que você possa tentar novamente.", - "oneWorkspace": "1 espaço de trabalho", - "manyWorkspaces": "{{count}} espaços de trabalho", - "hostHasWorkspacesDefault": "Remove {{value0}} e suas credenciais deste computador. Seus(Suas) {{value1}} permanecem no Orca — os arquivos remotos não são tocados.", - "alsoForgetLocal": "Também remover estes(as) {{value0}} do Orca", "advanced": "Avançado", "alsoForgetLocalHint": "Limpa-os apenas do Orca. Os arquivos, worktrees e branches remotos permanecem intocados.", - "wslHostEndsTerminalsUnlessShared": "Remove {{value0}} do Orca. A menos que outro Orca aberto neste computador o esteja usando, também encerra seus terminais abertos e para o servidor do Orca nessa distro. Os arquivos da distro não são alterados." + "wslHostEndsTerminalsUnlessShared": "Remove {{value0}} do Orca. A menos que outro Orca aberto neste computador o esteja usando, também encerra seus terminais abertos e para o servidor do Orca nessa distro. Os arquivos da distro não são alterados.", + "hostKeepsWorkspaces_one": "Remove {{host}} e suas credenciais deste computador. Seu {{count}} espaço de trabalho permanece no Orca — os arquivos remotos não são alterados.", + "hostKeepsWorkspaces_other": "Remove {{host}} e suas credenciais deste computador. Seus {{count}} espaços de trabalho permanecem no Orca — os arquivos remotos não são alterados.", + "alsoRemoveWorkspaces_one": "Também remover este espaço de trabalho do Orca", + "alsoRemoveWorkspaces_other": "Também remover estes {{count}} espaços de trabalho do Orca" }, "AddRepoSteps": { "569326d9cc": "Escolher pasta", @@ -10897,15 +10984,16 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "Cancelar", - "69f5cb97d0": "Excluir", "591f330288": "Excluir Grupo de Projeto", "2c14ce677a": "Excluindo...", "0e0e6764af": "Projetos contidos", - "ad407c2d55": "mais", - "removeContainedProjectSingular": "Remover 1 projeto contido", - "removeContainedProjectPlural": "Remover {{value0}} projetos contidos", "55f75628c0": "As pastas de projeto no disco não são excluídas.", - "fec7e9c8ae": "Excluir Grupo" + "fec7e9c8ae": "Excluir Grupo", + "removeContainedProjects_one": "Remover {{count}} projeto contido no grupo", + "removeContainedProjects_other": "Remover {{count}} projetos contidos no grupo", + "deleteGroupDescription": "Excluir {{name}}.", + "moreProjects_one": "+{{count}} a mais", + "moreProjects_other": "+{{count}} a mais" }, "HostSectionHeaderMenu": { "5b8b4b6a01": "Atualização do servidor necessária", @@ -10950,8 +11038,9 @@ "5d1a5d51bb": "Processo parado em {{value0}}", "c89f290e25": "{{value0}} copiado", "d1113f4660": "Falha ao abrir o navegador", - "fed49903c9": "{{value0}} ativa(s) {{value1}}", - "unknownProcess": "Processo desconhecido" + "unknownProcess": "Processo desconhecido", + "livePorts_one": "{{count}} porta ativa", + "livePorts_other": "{{count}} portas ativas" }, "WorkspaceKanbanDrawer": { "1975a4e480": "Falha na sincronização do status da tarefa", @@ -11024,12 +11113,10 @@ "670864ab52": "Mantendo {{value0}} local atualizado", "84c62e4d7f": "Não foi possível ativar {{value0}}", "442552c656": "Abra as Configurações e tente novamente.", - "f15fd80989": "Sua nova worktree está atualizada, mas {{value0}} local está {{value1}} {{value2}} atrás, então os diffs de IA podem comparar com um histórico obsoleto. Deixe o Orca mantê-lo atualizado automaticamente. Altere isso a qualquer momento em", - "3d260e1a5d": "Configurações › {{value0}}", "34a03a6565": "Manter {{value0}} atualizado", "4a18052018": "{{value0}} local está atrás de {{value1}}", - "commit": "commit", - "commits": "commits" + "staleLocalBranch_one": "Sua nova worktree está atualizada, mas a branch local {{branch}} está {{count}} commit atrás, então os diffs da IA podem usar um histórico desatualizado na comparação. Deixe o Orca mantê-la atualizada automaticamente. Altere isso a qualquer momento em Configurações › {{setting}}", + "staleLocalBranch_other": "Sua nova worktree está atualizada, mas a branch local {{branch}} está {{count}} commits atrás, então os diffs da IA podem usar um histórico desatualizado na comparação. Deixe o Orca mantê-la atualizada automaticamente. Altere isso a qualquer momento em Configurações › {{setting}}" } } } @@ -11044,13 +11131,14 @@ "2b56b35f53": "Você pode alterar isso nas Configurações.", "dd3a45bbbd": "Vamos pular esta confirmação na próxima vez.", "fc23c4cbdf": "Excluir Espaço de Trabalho", - "86f0ae1257": "Excluir Espaços de Trabalho" + "86f0ae1257": "Excluir Espaços de Trabalho", + "removeFolderProjectInstead": "Remova o projeto de pasta em vez de excluir este espaço de trabalho.", + "gitBlocksMainWorktree": "O Git não permite remover a worktree principal." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "Mostrar na lista de worktrees", "ad99f4eea9": "Manter oculta", "9f4f14e821": "Altere isso depois no menu do projeto.", - "b2bc47c080": "mais locais", "b47ba1a9d2": "Pré-visualização de {{value0}}", "2251d41ebb": "Grupos de worktrees ocultas", "5a9688802a": "Mostrar mais {{value0}}", @@ -11064,7 +11152,9 @@ "keepHiddenAriaLabel_one": "Manter {{count}} worktree descoberta oculta para {{repo}}; recupere-a pelo menu do projeto", "keepHiddenAriaLabel_other": "Manter {{count}} worktrees descobertas ocultas para {{repo}}; recupere-as pelo menu do projeto", "keepHiddenTooltip": "Manter oculto - recupere pelo menu do projeto", - "repoOnHost": "{{repo}} em {{host}}" + "repoOnHost": "{{repo}} em {{host}}", + "moreLocations_one": "+ {{count}} local a mais", + "moreLocations_other": "+ {{count}} locais a mais" }, "WorkspaceKanbanSettingsMenu": { "79eb990aa4": "Adicionar status", @@ -11104,12 +11194,12 @@ }, "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "Ocultar worktrees externas permanentemente para {{value0}}", - "2a6f31d8c7": "worktree oculta", - "5b90e4a2f6": "worktrees ocultas", - "7f18c5b0d3": "Revisar {{value0}} worktree oculta em {{value1}}", - "4e2b7a9c05": "Revisar {{value0}} worktrees ocultas em {{value1}}", "c3e8a1f4b2": "Não mostrar novamente", - "6c07f3a91e": "{{value0}} em {{value1}}" + "6c07f3a91e": "{{value0}} em {{value1}}", + "hiddenWorktreesNoun_one": "worktree oculta", + "hiddenWorktreesNoun_other": "worktrees ocultas", + "reviewHiddenWorktrees_one": "Revisar {{count}} worktree oculta em {{scope}}", + "reviewHiddenWorktrees_other": "Revisar {{count}} worktrees ocultas em {{scope}}" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} não é mais um host SSH salvo, então este espaço de trabalho não está mais conectado a um host ativo. Ele só pode ser removido do Orca — os arquivos e branches no remoto permanecem intocados.", @@ -11130,9 +11220,8 @@ "eab8b45238": "Copiar erro", "a23b22d16f": "Copiado", "74fc00776f": "Detalhes do erro", - "3afcad0497": "a partir da primeira mensagem do agente.", - "ff62a18580": "O Orca não conseguiu gerar um nome de branch para", - "ca3b225195": "Falha na renomeação automática da branch" + "ca3b225195": "Falha na renomeação automática da branch", + "couldNotGenerateBranchName": "O Orca não conseguiu gerar um nome de branch para {{name}} a partir da primeira mensagem do agente." }, "CreateProjectLocationField": { "95548e33bf": "Escolher pasta pai...", @@ -11162,18 +11251,19 @@ "largeInputNoMatches": "Nenhuma correspondência para esta entrada longa", "entriesLabel": "Entradas da pasta", "inputLabel": "Filtro ou caminho", - "fileHint": "Arquivos não podem ser abertos como projeto" + "fileHint": "Arquivos não podem ser abertos como projeto", + "invalidPathRepeatedSeparators": "Caminho inválido: separadores repetidos", + "invalidPathControlCharacters": "Caminho inválido: caracteres de controle não são permitidos" }, "SetupScriptPromptCard": { "ff1e819a11": "Adicionar um script de configuração", "70715947fb": "O script de configuração não pode estar vazio", "888b83bf78": "Falha ao salvar o script de configuração", "a49196d538": "Executa quando o Orca cria uma nova worktree.", - "d9f2db2738": "configurações do projeto", - "a5bb8c5135": "Salvo nestas", "savedSetupCommand": "O comando de configuração foi salvo.", "savedWithSkippedFields_one": "{{count}} campo não compatível foi ignorado. O comando de configuração foi salvo.", - "savedWithSkippedFields_other": "{{count}} campos não compatíveis foram ignorados. O comando de configuração foi salvo." + "savedWithSkippedFields_other": "{{count}} campos não compatíveis foram ignorados. O comando de configuração foi salvo.", + "savedInProjectSettings": "Salvo nas configurações deste projeto" }, "FolderWorkspaceComposerDialog": { "title": "Criar Espaço de Trabalho de Pasta", @@ -11202,7 +11292,8 @@ "2931b42b09": "Estado: Rascunho {{value0}}", "e888362def": "Estado: Fechado", "f394b3e86e": "Estado: Mergeado", - "af2b07bda5": "Estado: {{value0}}" + "af2b07bda5": "Estado: {{value0}}", + "checksStatus": "Verificações: {{status}}" }, "sidebar": { "project": { @@ -11236,11 +11327,12 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "Nenhum espaço de trabalho corresponde", - "4d96c209d6": "{{value0}} de {{value1}} espaços de trabalho correspondem", "c0cd6bdf6c": "Buscar espaços de trabalho", "3b7ea51793": "Limpar busca", "7f1c2e94a5": "O texto de busca é muito longo — o quadro está sem filtro", - "9a4d0f6b21": "Muito longo" + "9a4d0f6b21": "Muito longo", + "workspacesMatch_one": "Espaços de trabalho correspondentes: {{matchCount}} de {{count}}", + "workspacesMatch_other": "Espaços de trabalho correspondentes: {{matchCount}} de {{count}}" }, "SidebarToolbar": { "87d0064026": "O quadro do espaço de trabalho foi movido para a barra inferior", @@ -11293,7 +11385,7 @@ "current": "Atual", "searchPlaceholder": "Buscar worktrees...", "empty": "Nenhuma worktree elegível correspondente.", - "setParentFor": "Definir pai para" + "setParentForName": "Definir o espaço de trabalho pai de {{name}}" }, "AddProjectFromFolderDialog": { "7d1f51678c": "Adicionar Projeto", @@ -11301,16 +11393,18 @@ "046751dbfb": "Adicione esta pasta como um projeto separado do Orca." }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "mais", "a940f3c96e": "Os espaços de trabalho filhos serão excluídos", - "29b98bf9cd": "Excluir este espaço de trabalho também exclui {{value0}} espaços de trabalho filhos.", - "66798cc6a2": "Excluir este espaço de trabalho também exclui 1 espaço de trabalho filho." + "alsoDeletesChildren_one": "Excluir este espaço de trabalho também exclui {{count}} espaço de trabalho filho.", + "alsoDeletesChildren_other": "Excluir este espaço de trabalho também exclui {{count}} espaços de trabalho filhos.", + "moreChildren_one": "+{{count}} a mais", + "moreChildren_other": "+{{count}} a mais" }, "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "Fechar", "e1a34450fc": "Organize os espaços de trabalho por status e abra os cartões de espaço de trabalho.", - "81870af08f": "selecionado", - "c6a77ab0f4": "Quadro do espaço de trabalho" + "c6a77ab0f4": "Quadro do espaço de trabalho", + "selectedCount_one": "{{count}} selecionado", + "selectedCount_other": "{{count}} selecionados" }, "WorktreeVisibilityHelpPopover": { "c41f2d7e90": "Quais worktrees ficam ocultas por padrão?", @@ -11337,14 +11431,15 @@ "runtimeHostProject": "Projeto em {{hostName}}" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(o diretório de clone original).", - "c4f96a6e18": "worktree principal", - "e3be9eba15": "Esta é a" + "mainWorktreeNotice": "Esta é a worktree principal (o diretório do clone original)." }, "ProjectGroupNameDialog": { "d99a034073": "Cancelar", "83dfbc5313": "Nome do Grupo", - "4a64e78822": "Salvando..." + "4a64e78822": "Salvando...", + "defaultGroupName": "Grupo {{name}}", + "create": "Criar", + "rename": "Renomear" }, "WorkspaceKanbanStatusLane": { "8ad104642b": "Vazio", @@ -11450,10 +11545,11 @@ "loadedPathsNotice": "Os caminhos carregados podem estar incompletos ou desatualizados.", "loadedChangedPaths": "Caminhos alterados carregados", "unresolvedConflict": "Conflito não resolvido", - "moreLoadedPaths": "e mais {{value0}} caminhos carregados", "changeCount_one": "{{count}} alteração não commitada ou não rastreada", "changeCount_other": "{{count}} alterações não commitadas ou não rastreadas", - "changes": "Alterações não commitadas ou não rastreadas" + "changes": "Alterações não commitadas ou não rastreadas", + "moreLoadedPaths_one": "e mais {{count}} caminho carregado", + "moreLoadedPaths_other": "e mais {{count}} caminhos carregados" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "Não perguntar novamente" @@ -11491,11 +11587,12 @@ "developerToolsTitle": "Instale as ferramentas de linha de comando da Apple", "developerToolsBody": "O Git precisa das ferramentas de desenvolvimento da Apple. Execute isto no Terminal e volte ao Orca. Ele verificará novamente de forma automática.", "affectedOne": "Busca de worktrees pausada para {{value0}}", - "affectedMany": "Busca de worktrees pausada para {{value0}} projetos", "copyCommand": "Copiar comando", "copied": "Comando copiado", "retry": "Tentar novamente agora", - "restored": "O Git voltou a funcionar. Worktrees atualizadas." + "restored": "O Git voltou a funcionar. Worktrees atualizadas.", + "affectedProjects_one": "Verificação de worktrees pausada para {{count}} projeto", + "affectedProjects_other": "Verificação de worktrees pausada para {{count}} projetos" }, "manualSortSwitch": { "title": "Ordenação alterada para Manual", @@ -11540,7 +11637,8 @@ "wslHostRemoval": { "keptForOthers": "Removido deste Orca. O host continua em execução para {{value0}}.", "partial": "O host foi removido, mas algo na distribuição ainda está em execução: {{value0}}", - "pending": "O Orca ainda não removeu o host: {{value0}} Remova-o novamente para tentar de novo, ou conecte-o para mantê-lo." + "pending": "O Orca ainda não removeu o host: {{value0}} Remova-o novamente para tentar de novo, ou conecte-o para mantê-lo.", + "unavailable": "Os hosts WSL não estão disponíveis neste computador." }, "addRepoWslHostFolderPicker": { "otherDistro": "Essa pasta está em {{value0}}, não em {{value1}}.", @@ -11581,6 +11679,42 @@ "openingProject": "Abrindo projeto...", "openingFolder": "Abrindo pasta...", "chooseFolder": "Escolha uma pasta..." + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "Este host não oferece suporte à exclusão de worktrees aninhadas." + }, + "WorktreeCardHelpers": { + "checksPassing": "Aprovadas", + "checksFailing": "Com falha", + "checksPending": "Pendentes", + "conflictMerging": "Fazendo merge", + "conflictRebasing": "Fazendo rebase", + "conflictCherryPicking": "Aplicando cherry-pick" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "Espaço de trabalho {{name}}" + }, + "workspaceKanbanStatus": { + "defaultLabel": "Status {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_one": "{{preview}}, +{{count}} a mais", + "sparsePreviewMore_other": "{{preview}}, +{{count}} a mais" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "Detalhes do MR indisponíveis", + "prDetailsUnavailable": "Detalhes do PR indisponíveis", + "loadingMr": "Carregando MR…", + "loadingPr": "Carregando PR…" + }, + "HostSectionHeader": { + "workspaceCount_one": "{{count}} espaço de trabalho", + "workspaceCount_other": "{{count}} espaços de trabalho" + }, + "titleDerivedAgentRows": { + "needsInput": "Precisa de interação", + "running": "Em execução", + "idle": "Ocioso" } }, "editor": { @@ -14911,21 +15045,23 @@ }, "drop": { "handler": { - "1e072f611e": "Falha ao enviar {{value0}} {{value1}}.", "0c77693641": "Worktree não está pronta — tente novamente em um momento.", "ce8248b835": "Caminho da worktree não disponível.", "internalTooManyPaths": "O drop contém muitos caminhos para uma colagem segura no terminal.", "internalPathsTooLarge": "A lista de caminhos do drop é muito grande para uma colagem segura no terminal.", - "b4cf68e889": "{{value0}} {{value1}} ignorado(s).", "writeTimeout": "Drop de arquivo cancelado: o terminal não aceitou o caminho antes do tempo limite de segurança.", "writeRejected": "Drop de arquivo cancelado: o terminal não conseguiu aceitar o caminho.", "internalHostMismatch": "Arraste arquivos do mesmo host deste terminal.", - "skippedSymlinkSingular": "{{count}} link simbólico ignorado.", - "skippedSymlinkPlural": "{{count}} links simbólicos ignorados.", - "uploadingFileSingular": "Enviando {{count}} arquivo para o runtime…", - "uploadingFilePlural": "Enviando {{count}} arquivos para o runtime…", - "uploadingFileToRemoteSingular": "Enviando {{count}} arquivo para o host remoto…", - "uploadingFileToRemotePlural": "Enviando {{count}} arquivos para o host remoto…" + "skippedSymlinks_one": "{{count}} link simbólico ignorado.", + "skippedSymlinks_other": "{{count}} links simbólicos ignorados.", + "skippedItems_one": "{{count}} item ignorado.", + "skippedItems_other": "{{count}} itens ignorados.", + "failedUploads_one": "Não foi possível enviar {{count}} arquivo.", + "failedUploads_other": "Não foi possível enviar {{count}} arquivos.", + "uploadingFiles_one": "Enviando {{count}} arquivo para o runtime…", + "uploadingFiles_other": "Enviando {{count}} arquivos para o runtime…", + "uploadingFilesToRemote_one": "Enviando {{count}} arquivo para o host remoto…", + "uploadingFilesToRemote_other": "Enviando {{count}} arquivos para o host remoto…" } } }, @@ -15799,6 +15935,30 @@ }, "TerminalTabLeadingIcon": { "7ab2964bea": "Conclusão de agente não lida" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "Esta sessão não pode ser aberta na CLI." + }, + "tabCreateEntry": { + "fileNotFound": "Arquivo não encontrado: {{path}}", + "cannotOpenDirectory": "Não é possível abrir um diretório: {{path}}", + "parentNotDirectory": "Não é possível criar o arquivo porque {{path}} não é um diretório.", + "fileNoLongerExists": "O arquivo não existe mais: {{path}}", + "noActiveWorktree": "Nenhuma worktree ativa." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "Os caminhos de arquivo não podem conter caracteres de controle.", + "enterAUrlOrFilePath": "Insira uma URL ou um caminho de arquivo.", + "homeRelativePathsAreNotSupported": "Caminhos relativos à pasta pessoal não são compatíveis aqui.", + "enterAFilePathNotA": "Insira um caminho de arquivo, não um caminho de diretório.", + "enterAnAbsoluteFilePath": "Insira um caminho de arquivo absoluto.", + "enterAnAbsolutePathForThis": "Insira um caminho absoluto deste computador.", + "enterARelativeFilePath": "Insira um caminho de arquivo relativo.", + "windowsDrivePathsAreNotSupported": "Caminhos de unidades do Windows não são compatíveis aqui.", + "uncPathsAreNotSupportedHere": "Caminhos UNC não são compatíveis aqui.", + "filePathsCannotContainEmptySegments": "Os caminhos de arquivo não podem conter segmentos vazios.", + "filePathsCannotContainDotSegments": "Os caminhos de arquivo não podem conter segmentos . ou ..", + "filePathsCannotContainTildeSegments": "Os caminhos de arquivo não podem conter segmentos ~." } }, "group": { @@ -15813,10 +15973,15 @@ "sessionQueued": "Sessão na fila", "openSupportedWorkspace": "Abra um espaço de trabalho antes de retomar uma sessão.", "sessionHostMismatchUnsupported": "Esta sessão pertence a um host diferente. Solte-a em um espaço de trabalho no mesmo host.", - "oldPayload": "Esta sessão foi arrastada de uma janela antiga do Orca. Retome-a pelo Histórico de sessões." + "oldPayload": "Esta sessão foi arrastada de uma janela antiga do Orca. Retome-a pelo Histórico de sessões.", + "legacyDragCannotRetarget": "Esta sessão foi arrastada de uma janela de uma versão anterior do Orca, então o Orca não pode reatribuí-la à conta do Codex selecionada. Retome-a pelo painel Histórico de sessões.", + "legacyDragPrepareFailed": "O Orca não conseguiu preparar esta sessão legada do Codex. Tente retomá-la novamente." }, "TabGroupDropOverlay": { "paneColumnLabel": "Nova divisão" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "O runtime pareado não conseguiu duplicar a aba do navegador gerenciado." } } }, @@ -16280,7 +16445,6 @@ "ba64270bdb": "Configurar agentes", "ab63f25397": "Abrir configurações de agente", "0c5d6a479c": "[Opcional]", - "b5a0796911": "Conectar", "dccd26d4e4": "Escolher projeto", "d6b0a96f32": "Adicionar projeto", "969a8bff66": "Projeto", @@ -16341,7 +16505,8 @@ "runSetupNow": "Executar configuração agora", "runCommandsNow": "Executar comandos agora", "skipForNow": "Pular por enquanto", - "skipCommands": "Pular comandos" + "skipCommands": "Pular comandos", + "connectProject": "Conectar {{name}}" }, "new": { "workspace": { @@ -16355,17 +16520,8 @@ "saveLocation": "Definir local" }, "SmartWorkspaceNameField": { - "2a0d535f69": "Criar nova branch", - "a44229ce4d": "como nome do espaço de trabalho", - "766083a596": "\"", - "34ca97bce3": "\"", - "b1a7d679ba": "Usar", "e57c53727c": "Adicionar projeto...", - "a76fcb4fa0": "Mudar para", - "eadf877af5": "Manter", "6859e2896c": "Cancelar", - "9ef1a7c4b0": ", que é diferente do projeto selecionado.", - "ad188067ae": "A URL do GitHub aponta para", "4bd98f1091": "Mudar de projeto?", "0c9e668e3a": "Limpar", "7199ff19c7": "Limpar origem selecionada", @@ -16384,7 +16540,6 @@ "fda67f0b61": "projeto atual", "3e8bb1176a": "Conecte o Linear em Configurações para buscar issues.", "switchTaskSourceTitle": "Mudar a origem da tarefa?", - "differentTaskSource": ", que é diferente da origem de tarefa selecionada.", "currentTaskSource": "origem de tarefa atual", "placeholderNameOrLinearUrl": "Digite um nome, URL do Linear, ou URL do Jira", "placeholderWorkspaceName": "Digite um nome de espaço de trabalho", @@ -16413,7 +16568,13 @@ "emoji": "Emoji", "loadingLinearIssue": "Carregando issue do Linear…", "linearLoginUnreadableTitle": "Reconectar Linear", - "linearLoginUnreadableBody": "Não foi possível ler o login salvo do Linear. Reconecte-o nas Configurações." + "linearLoginUnreadableBody": "Não foi possível ler o login salvo do Linear. Reconecte-o nas Configurações.", + "keepRepo": "Manter {{name}}", + "switchToRepo": "Mudar para {{name}}", + "crossRepoDifferentTaskSource": "A URL do GitHub aponta para {{repo}}, que é diferente da origem de tarefas selecionada.", + "crossRepoDifferentProject": "A URL do GitHub aponta para {{repo}}, que é diferente do projeto selecionado.", + "useAsWorkspaceName": "Usar “{{name}}” como nome do espaço de trabalho", + "createNewBranchNamed": "Criar nova branch {{name}}" }, "ProjectCombobox": { "empty": "Nenhum projeto corresponde à sua busca.", @@ -16427,6 +16588,11 @@ "listLabel": "Destinos de execução", "label": "Executar em", "browse": "Navegar pelos destinos de execução" + }, + "projectCombobox": { + "recentHeading": "Recentes", + "projectsHeading": "Projetos", + "foldersHeading": "Pastas" } } }, @@ -16633,18 +16799,19 @@ "activityOptionsActive": "Opções de atividade ({{value0}})" }, "clearCompleted": { - "clearedOne": "1 agente concluído limpo", - "clearedMany": "{{count}} agentes concluídos limpos", - "undo": "Desfazer" + "undo": "Desfazer", + "cleared_one": "{{count}} agente concluído removido", + "cleared_other": "{{count}} agentes concluídos removidos" }, "standaloneWorktree": { "floatingTerminal": "Terminal flutuante", "standaloneTerminal": "Terminal autônomo" }, "ActivityTitlebarControls": { - "f915168c8e": "não lida(s)", "d6a8de3934": "agentes", - "dc708f3eff": "Fechar agentes" + "dc708f3eff": "Fechar agentes", + "unreadCount_one": "{{count}} não lido", + "unreadCount_other": "{{count}} não lidos" }, "ActivityScopeFilterControls": { "resetScope": "Mostrar todos os hosts e projetos", @@ -17814,7 +17981,10 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} filho {{value2}}" + "hideChildAgents_one": "Ocultar {{count}} agente filho", + "hideChildAgents_other": "Ocultar {{count}} agentes filhos", + "showChildAgents_one": "Mostrar {{count}} agente filho", + "showChildAgents_other": "Mostrar {{count}} agentes filhos" }, "DashboardAgentRow": { "912e136cd9": "Enviar", @@ -17822,7 +17992,13 @@ "a41fb5376e": "Recolher detalhes", "5ae84475cc": "Descartar", "b06e13fcf7": "Descartar agente", - "0272969e28": "Enviar para este agente" + "0272969e28": "Enviar para este agente", + "justNow": "agora mesmo", + "timeAgo": "há {{duration}}", + "dispatchedAgents_one": "{{agentType}} - {{count}} agente enviado", + "dispatchedAgents_other": "{{agentType}} - {{count}} agentes enviados", + "startedAgo": "iniciado {{time}}", + "doneAgo": "concluído {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "interrompido", @@ -18417,6 +18593,16 @@ "unreachable": "Não foi possível acessar o Jira. Verifique sua conexão e tente novamente.", "loadFailed": "Não foi possível carregar as issues do Jira. Tente novamente em instantes.", "errorWithCode": "Erro {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "Não é possível executar “{{action}}” — o espaço de trabalho ainda está carregando.", + "noActiveWorkspace": "Não é possível executar “{{action}}” — nenhum espaço de trabalho está ativo.", + "workspaceDisconnected": "Não é possível executar “{{action}}” — o espaço de trabalho está desconectado.", + "noTabGroup": "Não é possível executar “{{action}}” — nenhum grupo de abas está disponível.", + "noMovableChat": "Não é possível executar “{{action}}” — nenhum chat que possa ser movido está ativo.", + "clientUnsupported": "Não é possível executar “{{action}}” — este cliente e este runtime não oferecem suporte a essa ação." + } } }, "startup": { @@ -19515,8 +19701,6 @@ "none": "Não tem nenhum" }, "idleSignalField": "Sinal de inatividade", - "selectionVanishedOne": "1 espaço de trabalho selecionado não existe mais.", - "selectionVanished": "{{value0}} espaços de trabalho selecionados não existem mais.", "updatedAgo": "Atualizado {{value0}}", "refreshing": "Atualizando…", "refreshingProgress": "Atualizando {{value0}}/{{value1}}", @@ -19531,12 +19715,6 @@ "gitStatusCheckFailed": "Falha na verificação do status do git", "gitStatusUnverified": "Não foi possível verificar o status do git", "deleteAnyway": "Excluir assim mesmo", - "forceDeleteProjectionOne": "{{count}} espaço de trabalho atualmente mostra risco e pode precisar de exclusão forçada", - "forceDeleteProjectionMany": "{{count}} espaços de trabalho atualmente mostram risco e podem precisar de exclusão forçada", - "selectionWithheldOne": "1 espaço de trabalho selecionado está oculto pelos filtros atuais e foi desmarcado.", - "selectionWithheld": "{{value0}} espaços de trabalho selecionados estão ocultos pelos filtros atuais e foram desmarcados.", - "selectAllCountOne": "Selecionar 1 espaço de trabalho verificado quanto à segurança", - "selectAllCount": "Selecionar todos os {{value0}} espaços de trabalho verificados quanto à segurança", "appliedFilters": "Filtros aplicados", "removeFilter": "Remover filtro {{value0}}", "chip": { @@ -19580,18 +19758,28 @@ "locked": "Bloqueado", "retainedAgents": "Agentes concluídos" } - } + }, + "forceDeleteRisk_one": "{{count}} espaço de trabalho apresenta riscos no momento e pode exigir uma exclusão forçada", + "forceDeleteRisk_other": "{{count}} espaços de trabalho apresentam riscos no momento e podem exigir uma exclusão forçada", + "selectionVanishedCount_one": "{{count}} espaço de trabalho selecionado não existe mais.", + "selectionVanishedCount_other": "{{count}} espaços de trabalho selecionados não existem mais.", + "selectionWithheldCount_one": "{{count}} espaço de trabalho selecionado está oculto pelos filtros atuais e foi desmarcado.", + "selectionWithheldCount_other": "{{count}} espaços de trabalho selecionados estão ocultos pelos filtros atuais e foram desmarcados.", + "selectAllSafetyChecked_one": "Selecionar {{count}} espaço de trabalho com segurança verificada", + "selectAllSafetyChecked_other": "Selecionar todos os {{count}} espaços de trabalho com segurança verificada" }, "scan": { "progress": "Verificando espaços de trabalho ({{value0}}/{{value1}})", "singleError": "Não foi possível verificar {{value0}}: {{value1}}. Alguns espaços de trabalho podem estar faltando. Atualize para tentar novamente.", - "moreErrors": ", +{{value0}} mais", - "multipleErrors": "Não foi possível verificar {{value0}} repositórios ({{value1}}{{value2}}). Alguns espaços de trabalho podem estar faltando. Atualize para tentar novamente.", "noWorkspaces": "Nenhum espaço de trabalho encontrado.", "fallbackRepository": "um repositório", "gitListFailed": "O Git não conseguiu listar as worktrees", - "readyOne": "1 espaço de trabalho encontrado.", - "readyMany": "{{value0}} espaços de trabalho encontrados." + "multipleErrorsWithMore_one": "Não foi possível verificar {{count}} repositório ({{names}}, +{{moreCount}} a mais). Alguns espaços de trabalho podem estar faltando. Atualize para tentar novamente.", + "multipleErrorsWithMore_other": "Não foi possível verificar {{count}} repositórios ({{names}}, +{{moreCount}} a mais). Alguns espaços de trabalho podem estar faltando. Atualize para tentar novamente.", + "multipleErrorsCount_one": "Não foi possível verificar {{count}} repositório ({{names}}). Alguns espaços de trabalho podem estar faltando. Atualize para tentar novamente.", + "multipleErrorsCount_other": "Não foi possível verificar {{count}} repositórios ({{names}}). Alguns espaços de trabalho podem estar faltando. Atualize para tentar novamente.", + "readyCount_one": "{{count}} espaço de trabalho encontrado.", + "readyCount_other": "{{count}} espaços de trabalho encontrados." }, "relativeTime": { "never": "Nunca", @@ -20323,7 +20511,6 @@ "repositoryLoading": "A identidade do repositório ainda está carregando. Tente novamente quando estiver disponível.", "duplicate": "Este link já está vinculado.", "title": "Trabalho vinculado", - "count": "{{count}} vinculados", "empty": "Mantenha juntas todas as revisões e tarefas deste espaço de trabalho.", "reviews": "Revisões", "tasks": "Issues e tarefas", @@ -20331,7 +20518,6 @@ "open": "Abrir link", "unlinkItem": "Desvincular {{label}}", "unlink": "Desvincular do espaço de trabalho", - "show": "Mostrar {{count}} revisões e tarefas vinculadas", "details": "Detalhes do espaço de trabalho", "description": "Vincule revisões e tarefas e mantenha notas para este espaço de trabalho.", "commentHelp": "Aceita Markdown. Enter ou {{shortcut}} para salvar · Shift+Enter para uma nova linha.", @@ -20384,7 +20570,11 @@ "checksPassing": "Passando", "checksUnknown": "Desconhecido", "checksNeutral": "Neutro", - "allReviewChecks": "Revisões: {{count}} · Verificações: {{status}}" + "allReviewChecks": "Revisões: {{count}} · Verificações: {{status}}", + "showLinked_one": "Mostrar {{count}} revisão ou tarefa vinculada", + "showLinked_other": "Mostrar {{count}} revisões e tarefas vinculadas", + "linkedCount_one": "{{count}} vinculado", + "linkedCount_other": "{{count}} vinculados" }, "attachments": { "updateRuntime": "Atualize o runtime remoto para alterar os links do espaço de trabalho", @@ -20566,8 +20756,9 @@ }, "compact": { "linkedAndUnavailable": "{{value0}} em worktrees vinculadas · {{value1}} indisponível", - "linkedAndScanned": "{{value0}} em worktrees vinculadas · {{value1}} espaços de trabalho", - "linked": "Vinculado" + "linked": "Vinculado", + "linkedAndScannedCount_one": "{{size}} em worktrees vinculadas · {{count}} espaço de trabalho", + "linkedAndScannedCount_other": "{{size}} em worktrees vinculadas · {{count}} espaços de trabalho" }, "savedScan": { "folderDetailsUnavailable": "Os detalhes das pastas não são salvos nas verificações anteriores. Atualize para inspecionar este espaço de trabalho." diff --git a/src/renderer/src/i18n/locales/ru.json b/src/renderer/src/i18n/locales/ru.json index b7cb329e1d8..1a0a9159225 100644 --- a/src/renderer/src/i18n/locales/ru.json +++ b/src/renderer/src/i18n/locales/ru.json @@ -2215,7 +2215,6 @@ "ba64270bdb": "Настроить агентов", "ab63f25397": "Открыть настройки агентов", "0c5d6a479c": "[Необязательно]", - "b5a0796911": "Подключиться", "dccd26d4e4": "Выбрать проект", "d6b0a96f32": "Добавить проект", "969a8bff66": "Проект", @@ -2276,7 +2275,8 @@ "runSetupNow": "Выполнить настройку сейчас", "runCommandsNow": "Выполнить команды сейчас", "skipForNow": "Пока пропустить", - "skipCommands": "Пропустить команды" + "skipCommands": "Пропустить команды", + "connectProject": "Подключить {{name}}" }, "NewWorkspaceComposerModal": { "createWorktree": "Создать рабочее дерево", @@ -3809,21 +3809,33 @@ }, "drop": { "handler": { - "1e072f611e": "Не удалось загрузить {{value0}} {{value1}}.", "0c77693641": "Рабочее дерево ещё не готово. Повторите через несколько секунд.", "ce8248b835": "Путь рабочего дерева недоступен.", "internalTooManyPaths": "Перетащено слишком много путей для безопасной вставки в терминал.", "internalPathsTooLarge": "Список путей слишком велик для безопасной вставки в терминал.", "internalHostMismatch": "Перетаскивайте файлы с того же компьютера, на котором работает терминал.", - "b4cf68e889": "Пропущено: {{value0}} {{value1}}.", "writeTimeout": "Перетаскивание отменено: терминал не принял путь за отведённое безопасное время.", "writeRejected": "Перетаскивание отменено: терминал не смог принять путь.", - "skippedSymlinkPlural": "Пропущено символических ссылок: {{count}}.", - "skippedSymlinkSingular": "Пропущена {{count}} символическая ссылка.", - "uploadingFilePlural": "Загрузка файлов в среду выполнения: {{count}}…", - "uploadingFileSingular": "Загрузка {{count}} файла в среду выполнения…", - "uploadingFileToRemotePlural": "Загрузка файлов на удалённый сервер: {{count}}…", - "uploadingFileToRemoteSingular": "Загрузка {{count}} файла на удалённый сервер…" + "skippedSymlinks_one": "Пропущена {{count}} символическая ссылка.", + "skippedSymlinks_few": "Пропущены {{count}} символические ссылки.", + "skippedSymlinks_many": "Пропущено {{count}} символических ссылок.", + "skippedSymlinks_other": "Пропущено {{count}} символической ссылки.", + "skippedItems_one": "Пропущен {{count}} элемент.", + "skippedItems_few": "Пропущены {{count}} элемента.", + "skippedItems_many": "Пропущено {{count}} элементов.", + "skippedItems_other": "Пропущено {{count}} элемента.", + "failedUploads_one": "Не удалось загрузить {{count}} файл.", + "failedUploads_few": "Не удалось загрузить {{count}} файла.", + "failedUploads_many": "Не удалось загрузить {{count}} файлов.", + "failedUploads_other": "Не удалось загрузить {{count}} файла.", + "uploadingFiles_one": "Загружается {{count}} файл в среду выполнения…", + "uploadingFiles_few": "Загружаются {{count}} файла в среду выполнения…", + "uploadingFiles_many": "Загружается {{count}} файлов в среду выполнения…", + "uploadingFiles_other": "Загружается {{count}} файла в среду выполнения…", + "uploadingFilesToRemote_one": "Загружается {{count}} файл на удалённый сервер…", + "uploadingFilesToRemote_few": "Загружаются {{count}} файла на удалённый сервер…", + "uploadingFilesToRemote_many": "Загружается {{count}} файлов на удалённый сервер…", + "uploadingFilesToRemote_other": "Загружается {{count}} файла на удалённый сервер…" } } }, @@ -3941,10 +3953,15 @@ "sessionQueued": "Сессия поставлена в очередь", "openSupportedWorkspace": "Откройте рабочее пространство, прежде чем продолжить сессию.", "sessionHostMismatchUnsupported": "Эта сессия принадлежит другому компьютеру. Перетащите её в рабочее пространство на том же компьютере.", - "oldPayload": "Эта сессия перетащена из окна старой версии Orca. Продолжите её из истории сессий." + "oldPayload": "Эта сессия перетащена из окна старой версии Orca. Продолжите её из истории сессий.", + "legacyDragCannotRetarget": "Эта сессия перетащена из окна старой версии Orca, поэтому Orca не может привязать её к выбранной учётной записи Codex. Возобновите её на панели истории сессий.", + "legacyDragPrepareFailed": "Orca не удалось подготовить эту устаревшую сессию Codex. Повторите попытку возобновления." }, "TabGroupDropOverlay": { "paneColumnLabel": "Новое разделение" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "Сопряжённой среде выполнения не удалось дублировать вкладку управляемого браузера." } }, "bar": { @@ -4139,6 +4156,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "Сервер недоступен", "7c129b08ff": "Загрузка сервера…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "Эту сессию нельзя открыть в CLI." + }, + "tabCreateEntry": { + "fileNotFound": "Файл не найден: {{path}}", + "cannotOpenDirectory": "Нельзя открыть папку: {{path}}", + "parentNotDirectory": "Нельзя создать файл, поскольку {{path}} — не папка.", + "fileNoLongerExists": "Файл больше не существует: {{path}}", + "noActiveWorktree": "Нет активного рабочего дерева." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "Пути к файлам не могут содержать управляющие символы.", + "enterAUrlOrFilePath": "Введите URL или путь к файлу.", + "homeRelativePathsAreNotSupported": "Пути относительно домашней папки здесь не поддерживаются.", + "enterAFilePathNotA": "Введите путь к файлу, а не к папке.", + "enterAnAbsoluteFilePath": "Введите абсолютный путь к файлу.", + "enterAnAbsolutePathForThis": "Введите абсолютный путь для этого компьютера.", + "enterARelativeFilePath": "Введите относительный путь к файлу.", + "windowsDrivePathsAreNotSupported": "Пути с буквой диска Windows здесь не поддерживаются.", + "uncPathsAreNotSupportedHere": "Пути UNC здесь не поддерживаются.", + "filePathsCannotContainEmptySegments": "Пути к файлам не могут содержать пустые сегменты.", + "filePathsCannotContainDotSegments": "Пути к файлам не могут содержать сегменты . или ..", + "filePathsCannotContainTildeSegments": "Пути к файлам не могут содержать сегменты ~." } } }, @@ -4166,15 +4207,22 @@ "4ebf90c12e": "Внешние порты не обнаружены", "7dac3ecc9d": "Внешние порты", "95495019ed": "Сканирование портов недоступно на {{value0}}: {{value1}}", - "a8e4bdb412": " · внешних: {{value0}}", "c22ea609fd": "Порты", - "ca41be2802": "{{value1}} рабочего пространства: {{value0}}{{value2}}", - "b8bc3e420a": "Порты, в рабочем пространстве: {{value0}} {{value1}}", "3a87d54dfb": "Порты рабочего пространства не обнаружены", "c174bbbfed": "Поиск портов рабочего пространства…", - "8caaa86e9a": "порты", - "45834a9ace": "порт", - "2b84c4d11f": "в рабочем пространстве: {{value0}} · внешних: {{value1}}" + "2b84c4d11f": "в рабочем пространстве: {{value0}} · внешних: {{value1}}", + "portsAria_one": "Порты, {{count}} порт рабочего пространства", + "portsAria_few": "Порты, {{count}} порта рабочего пространства", + "portsAria_many": "Порты, {{count}} портов рабочего пространства", + "portsAria_other": "Порты, {{count}} порта рабочего пространства", + "portsTooltipWithExternal_one": "Порты — {{count}} порт рабочего пространства · внешних: {{externalCount}}", + "portsTooltipWithExternal_few": "Порты — {{count}} порта рабочего пространства · внешних: {{externalCount}}", + "portsTooltipWithExternal_many": "Порты — {{count}} портов рабочего пространства · внешних: {{externalCount}}", + "portsTooltipWithExternal_other": "Порты — {{count}} порта рабочего пространства · внешних: {{externalCount}}", + "portsTooltip_one": "Порты — {{count}} порт рабочего пространства", + "portsTooltip_few": "Порты — {{count}} порта рабочего пространства", + "portsTooltip_many": "Порты — {{count}} портов рабочего пространства", + "portsTooltip_other": "Порты — {{count}} порта рабочего пространства" }, "ResourceUsageStatusSegment": { "946d9f94d0": "Отмена", @@ -4183,7 +4231,6 @@ "27a74f91f0": "Сейчас ничего не работает", "298f4be7f2": "ЦП", "2aa2de6cb9": "Название", - "30ff2c3c31": "без владельца: {{value0}}", "1fedf94eae": "Общая нагрузка на ЦП. Значение выше 100% означает одновременную работу нескольких ядер.", "e7cf14ec78": "Сессии терминалов недоступны. Список может быть устаревшим.", "93b0de3c21": "Перезапустить", @@ -4213,10 +4260,15 @@ "d406915b78": "Процесс отрисовки", "81cd37af99": "Основной процесс", "fa6d36758d": "Завершить сессию {{value0}}", - "b8f4a2c1d0e3": "без владельца: {{value0}}", - "c7e3b1a0d9f2": "Завершить {{value0}} терминал без владельца", - "d8f4c2b1e0a3": "Завершить терминалы без владельца: {{value0}}", - "e9a5d3c2b1f0": "Завершить {{value0}}?" + "e9a5d3c2b1f0": "Завершить {{value0}}?", + "endOrphanTerminals_one": "Завершить {{count}} терминал без владельца", + "endOrphanTerminals_few": "Завершить {{count}} терминала без владельца", + "endOrphanTerminals_many": "Завершить {{count}} терминалов без владельца", + "endOrphanTerminals_other": "Завершить {{count}} терминала без владельца", + "orphanCount_one": "без владельца: {{count}}", + "orphanCount_few": "без владельца: {{count}}", + "orphanCount_many": "без владельца: {{count}}", + "orphanCount_other": "без владельца: {{count}}" }, "SshStatusSegment": { "3ad70e0365": "Управление удалёнными серверами…", @@ -4282,10 +4334,6 @@ "3325d996cb": "Обновить лимиты запросов", "cd9d7b40ff": "Перезапустить сессии: {{value0}}", "6cd6650b4c": "Перезапустить сессию", - "1446d0d8a0": "Сессии Codex, всё ещё использующие старую учётную запись: {{value0}}.", - "605901a495": "1 сессия Codex всё ещё использует старую учётную запись", - "5e5f9f5160": "Доступен 1 сброс лимита", - "5ecae9197c": "Доступно сбросов лимита: {{value0}}", "25d8bbde69": "Сброс лимита…", "e159fc1fd7": "Сбросить сейчас", "972a1ff497": "Сбросить лимиты Codex?", @@ -4304,7 +4352,15 @@ "codexSignInError": "Не удалось войти в Codex. Повторите попытку.", "cursorUsageMenu": "Использование Cursor", "hiddenUsageProviders": "Также: {{value0}}", - "zcodeUsageMenu": "Использование ZCode" + "zcodeUsageMenu": "Использование ZCode", + "rateLimitResetsAvailable_one": "Доступен {{count}} сброс лимита", + "rateLimitResetsAvailable_few": "Доступны {{count}} сброса лимита", + "rateLimitResetsAvailable_many": "Доступно {{count}} сбросов лимита", + "rateLimitResetsAvailable_other": "Доступно {{count}} сброса лимита", + "staleCodexSessions_one": "{{count}} сессия Codex всё ещё использует старую учётную запись.", + "staleCodexSessions_few": "{{count}} сессии Codex всё ещё используют старую учётную запись.", + "staleCodexSessions_many": "{{count}} сессий Codex всё ещё используют старую учётную запись.", + "staleCodexSessions_other": "На старой учётной записи всё ещё остаётся {{count}} сессии Codex." }, "StatusBarUsageEmptyCta": { "828c764a79": "Подключить учётную запись", @@ -4321,13 +4377,16 @@ "SkillUpdateStatusSegment": { "runningLabel": "Обновление навыков", "runningOne": "Обновление {{value0}}…", - "runningMany": "Обновление навыков: {{value0}}…", "runningAria": "Навыки обновляются. Нажмите, чтобы открыть подробности.", "successLabel": "Навыки обновлены", "successAria": "Навыки обновлены. Нажмите, чтобы открыть подробности.", "attentionAria": "Некоторые обновления навыков пропущены. Нажмите, чтобы открыть подробности.", "attentionLabel": "Навыки требуют внимания", - "attentionTooltip": "Некоторые обновления навыков пропущены — нажмите для подробностей" + "attentionTooltip": "Некоторые обновления навыков пропущены — нажмите для подробностей", + "runningSkills_one": "Обновляется {{count}} навык…", + "runningSkills_few": "Обновляются {{count}} навыка…", + "runningSkills_many": "Обновляется {{count}} навыков…", + "runningSkills_other": "Обновляется {{count}} навыка…" }, "UpdateStatusSegment": { "5cd13105a3": "Обновление не удалось. Нажмите, чтобы развернуть.", @@ -4369,11 +4428,8 @@ "6f8f6a6b04": "Фильтр рабочих пространств", "5caccea440": "Удалить выбранные", "e4a12c455b": "Очистить", - "0cb1501ccf": "можно освободить", - "65402b7192": "выбрано", "43171f3e60": "Рабочие пространства", "09960d86bd": "Проверено", - "63efebe0e6": "Удалено из раздела «Место на диске»: {{value0}} {{value1}}.", "eee5240810": "Рабочие пространства удалены", "9afc97f9a3": "Рабочее пространство удалено", "792a214457": "Удалить рабочее пространство", @@ -4381,7 +4437,6 @@ "9155381019": "Выборочная выгрузка", "f39d291997": "Выбрать", "16988df079": "Файлы не найдены.", - "b25c2c1086": "элементы верхнего уровня", "d3f9c69ddc": "Масштаб", "ef890d31b9": "Все", "c28643d3da": "Перейти к рабочему пространству", @@ -4420,8 +4475,21 @@ "c5135e7e4a": "Проверка размеров рабочих пространств. Можно уйти с этой страницы.", "0990a63160": "Размеры рабочих пространств ещё не проверены.", "977bdf9a36": "Нет элементов верхнего уровня для отображения.", - "131662ac65": "Открыто: {{value0}}", - "0d1c78d749": "Выбрать {{value0}}" + "0d1c78d749": "Выбрать {{value0}}", + "removedFromSpace_one": "Из раздела «Место на диске» удалено {{count}} рабочее пространство.", + "removedFromSpace_few": "Из раздела «Место на диске» удалены {{count}} рабочих пространства.", + "removedFromSpace_many": "Из раздела «Место на диске» удалено {{count}} рабочих пространств.", + "removedFromSpace_other": "Из раздела «Место на диске» удалено {{count}} рабочего пространства.", + "topLevelItems_one": "{{formattedCount}} элемент верхнего уровня", + "topLevelItems_few": "{{formattedCount}} элемента верхнего уровня", + "topLevelItems_many": "{{formattedCount}} элементов верхнего уровня", + "topLevelItems_other": "{{formattedCount}} элемента верхнего уровня", + "selectedCount_one": "Выбрано: {{count}}", + "selectedCount_few": "Выбрано: {{count}}", + "selectedCount_many": "Выбрано: {{count}}", + "selectedCount_other": "Выбрано: {{count}}", + "reclaimableSize": "Можно освободить {{size}}", + "scanning": "Сканирование" }, "ports": { "status": { @@ -4435,7 +4503,8 @@ "e4a709548c": "Не удалось обновить порты", "acdb6df590": "Процесс на {{value0}} остановлен", "480d8f2347": "Скопировано: {{value0}}", - "b854ec9ff5": "Не удалось открыть браузер" + "b854ec9ff5": "Не удалось открыть браузер", + "unknownProcess": "Неизвестный процесс" } } } @@ -4465,8 +4534,6 @@ "7ad719c4bf": "Ограничено", "e740f92596": "Не удалось обновить", "8418ec448d": "Не удалось обновить данные об использовании {{value0}}. Сессии агента могут оставаться авторизованными.", - "45198c7d95": "Доступен 1 сброс лимита", - "bce421cba3": "Доступно сбросов лимита: {{value0}}", "7ec6e030a0": "Ближайший срок истекает сейчас", "d1e442a9e5": "Срок истекает сейчас", "6cf9eaed10": "Ближайший срок истекает через {{value0}}", @@ -4523,7 +4590,16 @@ "label": "Обновится при запуске Claude", "message": "Данные об использовании Claude обновятся при следующем запуске Claude." } - } + }, + "justNow": "только что", + "minutesAgo": "{{minutes}} мин назад", + "hoursAgo": "{{hours}} ч назад", + "updatedAgo": "Обновлено {{time}}", + "notYetUpdated": "Ещё не обновлено", + "rateLimitResetsAvailable_one": "Доступен {{count}} сброс лимита", + "rateLimitResetsAvailable_few": "Доступны {{count}} сброса лимита", + "rateLimitResetsAvailable_many": "Доступно {{count}} сбросов лимита", + "rateLimitResetsAvailable_other": "Доступно {{count}} сброса лимита" }, "SshTargetStatusRow": { "sshHost": "SSH-сервер" @@ -4558,12 +4634,16 @@ "RemoteServerUpdateStatusSegment": { "updating": "Обновление {{value0}}/{{value1}}", "updatingTooltip": "Обновляются удалённые серверы Orca", - "failed": "Не удалось обновить серверы: {{value0}}", "failedTooltip": "Откройте обновления удалённых серверов Orca для проверки и повторной попытки", - "updated": "Обновлено серверов: {{value0}}", "updatedTooltip": "Обновление удалённых серверов Orca завершено", - "failedOne": "Не удалось обновить 1 сервер", - "updatedOne": "Обновлён 1 сервер" + "failedCount_one": "Не удалось обновить {{count}} сервер", + "failedCount_few": "Не удалось обновить {{count}} сервера", + "failedCount_many": "Не удалось обновить {{count}} серверов", + "failedCount_other": "Не удалось обновить {{count}} сервера", + "updatedCount_one": "Обновлён {{count}} сервер", + "updatedCount_few": "Обновлены {{count}} сервера", + "updatedCount_many": "Обновлено {{count}} серверов", + "updatedCount_other": "Обновлено {{count}} сервера" }, "resource": { "memory": { @@ -4571,7 +4651,10 @@ "workingSetDescription": "Суммарный рабочий набор (WS): страницы, находящиеся в ОЗУ прямо сейчас. Общие страницы могут учитываться в нескольких процессах; память, выгруженная Windows на диск, здесь не учитывается.", "privateBytesDescription": "Суммарная частная память: память, выделенная этим процессам, независимо от того, находится ли она в ОЗУ или выгружена на диск. Именно её компьютер учитывает в лимите выделенной памяти, поэтому показатель продолжает расти, когда рабочий набор выше уменьшается при подкачке.", "footprintDescription": "Суммарное потребление памяти — тот же показатель, что и в «Мониторинге системы»: память, принадлежащая каждому процессу, включая графическую. Страницы, общие для нескольких процессов, не учитываются дважды.", - "rssDescription": "Суммарный размер резидентной памяти (RSS). Общие страницы или страницы с несколькими отображениями могут учитываться в нескольких процессах." + "rssDescription": "Суммарный размер резидентной памяти (RSS). Общие страницы или страницы с несколькими отображениями могут учитываться в нескольких процессах.", + "memColumn": "Память", + "memorySummary": "Σ Память", + "privateSummary": "Σ Частная память" } }, "manager": { @@ -4622,29 +4705,45 @@ "repair": "Создать сопряжение заново…" }, "NativeChatResumeStatusSegment": { - "labelOne": "1 чат для продолжения", - "label": "Чатов для продолжения: {{value0}}", - "ariaLabelOne": "1 чат доступен для продолжения", - "ariaLabel": "Доступно чатов для продолжения: {{value0}}", "tooltip": "Открыть прерванные чаты, доступные для продолжения", - "failedLabelOne": "Не удалось возобновить 1 чат", - "failedLabel": "Не удалось возобновить чаты: {{value0}}", - "failedAriaOne": "Не удалось возобновить 1 чат. Нажмите для подробностей.", - "failedAria": "Не удалось возобновить чаты: {{value0}}. Нажмите для подробностей.", "failedTooltip": "Чаты, которые Orca не смогла возобновить после перезапуска. Нажмите для подробностей.", - "checkLabelOne": "1 чат для проверки", - "checkLabel": "Чатов для проверки: {{value0}}", - "checkAriaOne": "После возобновления нужно проверить 1 чат. Нажмите для подробностей.", - "checkAria": "После возобновления нужно проверить чаты: {{value0}}. Нажмите для подробностей.", "checkTooltip": "Чаты, которые Orca не смогла возобновить после перезапуска или для которых не смогла подтвердить возобновление. Нажмите для подробностей.", "resumingTooltip": "Восстанавливаем прерванные чаты и просим агентов продолжить…", "resumingProgressLabel": "Возобновление чатов: {{value0}}/{{value1}}", "resumingProgressAria": "Возобновление чатов: готово {{value0}} из {{value1}}. Нажмите для подробностей.", - "resumedLabelOne": "1 чат возобновлён", - "resumedLabel": "Возобновлено чатов: {{value0}}", - "resumedAriaOne": "1 чат возобновлён. Нажмите, чтобы открыть.", - "resumedAria": "Возобновлено чатов: {{value0}}. Нажмите, чтобы открыть их.", - "resumedTooltip": "Чаты, возобновлённые Orca после перезапуска. Нажмите, чтобы открыть их." + "resumedTooltip": "Чаты, возобновлённые Orca после перезапуска. Нажмите, чтобы открыть их.", + "chatsFailedLabel_one": "Не удалось возобновить {{count}} чат", + "chatsFailedLabel_few": "Не удалось возобновить {{count}} чата", + "chatsFailedLabel_many": "Не удалось возобновить {{count}} чатов", + "chatsFailedLabel_other": "Не удалось возобновить {{count}} чата", + "chatsFailedAria_one": "Не удалось возобновить {{count}} чат. Нажмите, чтобы узнать подробности.", + "chatsFailedAria_few": "Не удалось возобновить {{count}} чата. Нажмите, чтобы узнать подробности.", + "chatsFailedAria_many": "Не удалось возобновить {{count}} чатов. Нажмите, чтобы узнать подробности.", + "chatsFailedAria_other": "Не удалось возобновить {{count}} чата. Нажмите, чтобы узнать подробности.", + "resumedLabelCount_one": "Возобновлён {{count}} чат", + "resumedLabelCount_few": "Возобновлены {{count}} чата", + "resumedLabelCount_many": "Возобновлено {{count}} чатов", + "resumedLabelCount_other": "Возобновлено {{count}} чата", + "resumedAriaCount_one": "Возобновлён {{count}} чат. Нажмите, чтобы открыть его.", + "resumedAriaCount_few": "Возобновлены {{count}} чата. Нажмите, чтобы открыть их.", + "resumedAriaCount_many": "Возобновлено {{count}} чатов. Нажмите, чтобы открыть их.", + "resumedAriaCount_other": "Возобновлено {{count}} чата. Нажмите, чтобы открыть их.", + "checkLabelCount_one": "Нужно проверить {{count}} чат", + "checkLabelCount_few": "Нужно проверить {{count}} чата", + "checkLabelCount_many": "Нужно проверить {{count}} чатов", + "checkLabelCount_other": "Нужно проверить {{count}} чата", + "checkAriaCount_one": "Нужно проверить {{count}} чат после возобновления. Нажмите, чтобы узнать подробности.", + "checkAriaCount_few": "Нужно проверить {{count}} чата после возобновления. Нажмите, чтобы узнать подробности.", + "checkAriaCount_many": "Нужно проверить {{count}} чатов после возобновления. Нажмите, чтобы узнать подробности.", + "checkAriaCount_other": "Нужно проверить {{count}} чата после возобновления. Нажмите, чтобы узнать подробности.", + "labelCount_one": "{{count}} чат для возобновления", + "labelCount_few": "{{count}} чата для возобновления", + "labelCount_many": "{{count}} чатов для возобновления", + "labelCount_other": "{{count}} чата для возобновления", + "ariaLabelCount_one": "Доступен {{count}} чат для возобновления", + "ariaLabelCount_few": "Доступны {{count}} чата для возобновления", + "ariaLabelCount_many": "Доступно {{count}} чатов для возобновления", + "ariaLabelCount_other": "Доступно {{count}} чата для возобновления" }, "StatusBarUsageChangeNotices": { "compactTitle": "Вид данных об использовании стал компактным", @@ -4653,6 +4752,101 @@ "usageUnitLabel": { "used": "Использовано", "remaining": "Осталось" + }, + "mergeSnapshotAndSessions": { + "unattributed": "Без привязки" + }, + "resourceSessionLabels": { + "terminalNumber": "Терминал {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "сессия {{id}}", + "unknownSession": "(неизвестная сессия)", + "unknown": "неизвестно" + }, + "runtimeTargets": { + "wslDefault": "WSL по умолчанию" + }, + "floatingWorkspace": { + "minimize": "Свернуть плавающее рабочее пространство", + "show": "Показать плавающее рабочее пространство" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "Владелец рабочего пространства больше недоступен" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "Синхронизировано с вышестоящей веткой", + "aheadAndBehind": "{{ahead}} впереди, {{behind}} позади", + "ahead": "{{ahead}} впереди", + "behind": "{{behind}} позади", + "activeAgents_one": "{{count}} активный агент", + "activeAgents_few": "{{count}} активных агента", + "activeAgents_many": "{{count}} активных агентов", + "activeAgents_other": "{{count}} активного агента", + "completedAgents_one": "{{count}} завершённый агент", + "completedAgents_few": "{{count}} завершённых агента", + "completedAgents_many": "{{count}} завершённых агентов", + "completedAgents_other": "{{count}} завершённого агента", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_one": "Сохранён {{count}} завершённый агент", + "completedAgentsRetained_few": "Сохранены {{count}} завершённых агента", + "completedAgentsRetained_many": "Сохранено {{count}} завершённых агентов", + "completedAgentsRetained_other": "Сохранено {{count}} завершённого агента", + "noTrackedAgents": "Нет запущенных отслеживаемых агентов", + "noTerminalTabs": "Нет вкладок терминала", + "liveTerminalTabs_one": "Активных вкладок терминала: {{live}} из {{count}}", + "liveTerminalTabs_few": "Активных вкладок терминала: {{live}} из {{count}}", + "liveTerminalTabs_many": "Активных вкладок терминала: {{live}} из {{count}}", + "liveTerminalTabs_other": "Активных вкладок терминала: {{live}} из {{count}}", + "gitStatusUnavailable": "Статус Git недоступен: {{error}}", + "gitStatusNotLoaded": "Статус Git ещё не загружен", + "noUncommittedFiles": "Нет файлов с незакоммиченными изменениями", + "changedFiles_one": "{{count}} изменённый файл", + "changedFiles_few": "{{count}} изменённых файла", + "changedFiles_many": "{{count}} изменённых файлов", + "changedFiles_other": "{{count}} изменённого файла", + "noEditorFiles": "В редакторе нет открытых файлов", + "editorFilesOpen_one": "В редакторе открыт {{count}} файл", + "editorFilesOpen_few": "В редакторе открыты {{count}} файла", + "editorFilesOpen_many": "В редакторе открыто {{count}} файлов", + "editorFilesOpen_other": "В редакторе открыто {{count}} файла", + "dirtyOfOpen": "{{dirty}} из {{open}}", + "dirtyEditorBuffers_one": "{{count}} несохранённый буфер редактора", + "dirtyEditorBuffers_few": "{{count}} несохранённых буфера редактора", + "dirtyEditorBuffers_many": "{{count}} несохранённых буферов редактора", + "dirtyEditorBuffers_other": "{{count}} несохранённого буфера редактора", + "openFiles_one": "{{count}} открытый файл", + "openFiles_few": "{{count}} открытых файла", + "openFiles_many": "{{count}} открытых файлов", + "openFiles_other": "{{count}} открытого файла", + "activeWorkspace": "Это активное рабочее пространство", + "mainWorktreeProtected": "Основное рабочее дерево защищено", + "workspaceProtected": "Рабочее пространство защищено", + "canDeleteAfterReview": "Можно удалить после проверки", + "noLinkedIssue": "Нет связанной задачи", + "noLinkedReview": "Нет связанного PR", + "browserTabsOpen_one": "Открыта {{count}} вкладка браузера", + "browserTabsOpen_few": "Открыты {{count}} вкладки браузера", + "browserTabsOpen_many": "Открыто {{count}} вкладок браузера", + "browserTabsOpen_other": "Открыто {{count}} вкладки браузера" + }, + "workspaceSpaceFormat": { + "cancellingScan": "Отмена сканирования", + "currentWorkspaces": "рабочие пространства", + "scanningWorkspaces": "Сканирование {{scanned}} из {{total}} · {{current}}", + "scanningRepos_one": "Сканирование {{scanned}} из {{count}} репозитория · {{current}}", + "scanningRepos_few": "Сканирование {{scanned}} из {{count}} репозиториев · {{current}}", + "scanningRepos_many": "Сканирование {{scanned}} из {{count}} репозиториев · {{current}}", + "scanningRepos_other": "Сканирование {{scanned}} из {{count}} репозитория · {{current}}", + "scanningSizes": "Сканирование размеров рабочих пространств", + "status": { + "scanned": "Просканировано", + "missing": "Отсутствует", + "noAccess": "Нет доступа", + "unavailable": "Недоступно", + "failed": "Ошибка" + }, + "mainWorktree": "основное рабочее дерево", + "detached": "отсоединено" } } }, @@ -5430,12 +5624,12 @@ "670864ab52": "Обновление локальной {{value0}}", "84c62e4d7f": "Не удалось включить {{value0}}", "442552c656": "Откройте настройки и повторите попытку.", - "f15fd80989": "Новое рабочее дерево актуально, но локальная {{value0}} отстаёт на {{value1}} {{value2}}, поэтому сравнение изменений с помощью ИИ может использовать устаревшую историю. Разрешите Orca обновлять её автоматически. Это можно изменить в любой момент:", - "3d260e1a5d": "Настройки › {{value0}}", "34a03a6565": "Поддерживать {{value0}} в актуальном состоянии", "4a18052018": "Локальная {{value0}} отстаёт от {{value1}}", - "commit": "коммит", - "commits": "коммитов" + "staleLocalBranch_one": "Новое рабочее дерево актуально, но локальная ветка {{branch}} отстаёт на {{count}} коммит, поэтому ИИ может сравнивать изменения с устаревшей историей. Разрешите Orca автоматически поддерживать её в актуальном состоянии. Изменить это можно в любое время в разделе Настройки › {{setting}}", + "staleLocalBranch_few": "Новое рабочее дерево актуально, но локальная ветка {{branch}} отстаёт на {{count}} коммита, поэтому ИИ может сравнивать изменения с устаревшей историей. Разрешите Orca автоматически поддерживать её в актуальном состоянии. Изменить это можно в любое время в разделе Настройки › {{setting}}", + "staleLocalBranch_many": "Новое рабочее дерево актуально, но локальная ветка {{branch}} отстаёт на {{count}} коммитов, поэтому ИИ может сравнивать изменения с устаревшей историей. Разрешите Orca автоматически поддерживать её в актуальном состоянии. Изменить это можно в любое время в разделе Настройки › {{setting}}", + "staleLocalBranch_other": "Новое рабочее дерево актуально, но локальная ветка {{branch}} отстаёт на {{count}} коммита, поэтому ИИ может сравнивать изменения с устаревшей историей. Разрешите Orca автоматически поддерживать её в актуальном состоянии. Изменить это можно в любое время в разделе Настройки › {{setting}}" } } } @@ -5489,12 +5683,13 @@ "39d51212cc": "Название группы", "aa0247680d": "Нет, импортировать отдельно", "a0bc4d1f8e": "Да, импортировать как группу", - "8401a7a0d0": "1 репозиторий", - "d4f1df62ef": "Репозиториев: {{value0}}", - "b4263a2ac4": "Найдено {{value0}} в {{value1}}.", "24eda6c8b2": "Сканирование… {{value0}}", "6149d5203f": "Репозитории не выбраны. Откройте родительскую папку, чтобы пользоваться редактором, терминалом и поиском без функций Git.", - "e52454b7f6": "Открыть как папку" + "e52454b7f6": "Открыть как папку", + "foundRepositories_one": "В {{path}} найден {{count}} репозиторий.", + "foundRepositories_few": "В {{path}} найдены {{count}} репозитория.", + "foundRepositories_many": "В {{path}} найдено {{count}} репозиториев.", + "foundRepositories_other": "В {{path}} найдено {{count}} репозитория." }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5563,9 +5758,8 @@ "eab8b45238": "Копировать ошибку", "a23b22d16f": "Скопировано", "74fc00776f": "Сведения об ошибке", - "3afcad0497": "по первому сообщению агенту.", - "ff62a18580": "Orca не удалось создать имя ветки для", - "ca3b225195": "Не удалось автоматически назвать ветку" + "ca3b225195": "Не удалось автоматически назвать ветку", + "couldNotGenerateBranchName": "Orca не удалось создать имя ветки для {{name}} из первого сообщения агента." }, "CreateProjectLocationField": { "95548e33bf": "Выберите родительскую папку…", @@ -5585,39 +5779,46 @@ "2b56b35f53": "Это можно изменить в настройках.", "dd3a45bbbd": "В следующий раз подтверждение не потребуется.", "fc23c4cbdf": "Удалить рабочее пространство", - "86f0ae1257": "Удалить рабочие пространства" + "86f0ae1257": "Удалить рабочие пространства", + "removeFolderProjectInstead": "Удалите проект папки из списка вместо удаления этого рабочего пространства.", + "gitBlocksMainWorktree": "Git не позволяет удалить основное рабочее дерево." }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "Показать загруженные пути", "loadedPathsNotice": "Загруженные пути могут быть неполными или устаревшими.", "loadedChangedPaths": "Загруженные пути изменённых файлов", "unresolvedConflict": "Неразрешённый конфликт", - "moreLoadedPaths": "и ещё загруженных путей: {{value0}}", "changeCount_few": "{{count}} незакоммиченных или неотслеживаемых изменения", "changeCount_many": "{{count}} незакоммиченных или неотслеживаемых изменений", "changeCount_one": "{{count}} незакоммиченное или неотслеживаемое изменение", "changeCount_other": "{{count}} незакоммиченного или неотслеживаемого изменения", - "changes": "Незакоммиченные или неотслеживаемые изменения" + "changes": "Незакоммиченные или неотслеживаемые изменения", + "moreLoadedPaths_one": "и ещё {{count}} загруженный путь", + "moreLoadedPaths_few": "и ещё {{count}} загруженных пути", + "moreLoadedPaths_many": "и ещё {{count}} загруженных путей", + "moreLoadedPaths_other": "и ещё {{count}} загруженного пути" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "ещё", "a940f3c96e": "Дочерние рабочие пространства будут удалены", - "29b98bf9cd": "При удалении этого рабочего пространства также будут удалены дочерние рабочие пространства: {{value0}}.", - "66798cc6a2": "При удалении этого рабочего пространства также будет удалено 1 дочернее рабочее пространство." + "alsoDeletesChildren_one": "При удалении этого рабочего пространства также будет удалено {{count}} дочернее рабочее пространство.", + "alsoDeletesChildren_few": "При удалении этого рабочего пространства также будут удалены {{count}} дочерних рабочих пространства.", + "alsoDeletesChildren_many": "При удалении этого рабочего пространства также будет удалено {{count}} дочерних рабочих пространств.", + "alsoDeletesChildren_other": "При удалении этого рабочего пространства также будет удалено {{count}} дочернего рабочего пространства.", + "moreChildren_one": "+{{count}} ещё", + "moreChildren_few": "+{{count}} ещё", + "moreChildren_many": "+{{count}} ещё", + "moreChildren_other": "+{{count}} ещё" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "Больше не спрашивать" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(исходная папка клонирования).", - "c4f96a6e18": "основное рабочее дерево", - "e3be9eba15": "Это" + "mainWorktreeNotice": "Это основное рабочее дерево (исходная папка клонирования)." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "Показать в списке рабочих деревьев", "ad99f4eea9": "Оставить скрытыми", "9f4f14e821": "Это можно изменить позже в меню проекта.", - "b2bc47c080": "другие расположения", "b47ba1a9d2": "Просмотр {{value0}}", "2251d41ebb": "Скрытые группы рабочих деревьев", "5a9688802a": "Показать ещё {{value0}}", @@ -5637,7 +5838,11 @@ "keepHiddenAriaLabel_one": "Оставить скрытым {{count}} найденное рабочее дерево в {{repo}}; показать его снова можно через меню проекта", "keepHiddenAriaLabel_other": "Оставить скрытыми {{count}} найденного рабочего дерева в {{repo}}; показать их снова можно через меню проекта", "keepHiddenTooltip": "Оставить скрытыми — показать снова можно через меню проекта", - "repoOnHost": "{{repo}} на {{host}}" + "repoOnHost": "{{repo}} на {{host}}", + "moreLocations_one": "+ ещё {{count}} расположение", + "moreLocations_few": "+ ещё {{count}} расположения", + "moreLocations_many": "+ ещё {{count}} расположений", + "moreLocations_other": "+ ещё {{count}} расположения" }, "NonGitFolderDialog": { "e52454b7f6": "Открыть как папку", @@ -5671,20 +5876,28 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "Отмена", - "69f5cb97d0": "Удалить", "591f330288": "Удалить группу проектов", "2c14ce677a": "Удаление…", "0e0e6764af": "Проекты в группе", - "ad407c2d55": "ещё", - "removeContainedProjectSingular": "Убрать из Orca 1 проект этой группы", - "removeContainedProjectPlural": "Убрать из Orca проекты этой группы: {{value0}}", "55f75628c0": "Папки проектов на диске не удаляются.", - "fec7e9c8ae": "Удалить группу" + "fec7e9c8ae": "Удалить группу", + "removeContainedProjects_one": "Удалить {{count}} входящий в группу проект из списка", + "removeContainedProjects_few": "Удалить {{count}} входящих в группу проекта из списка", + "removeContainedProjects_many": "Удалить {{count}} входящих в группу проектов из списка", + "removeContainedProjects_other": "Удалить {{count}} входящего в группу проекта из списка", + "deleteGroupDescription": "Удалить {{name}}.", + "moreProjects_one": "+{{count}} ещё", + "moreProjects_few": "+{{count}} ещё", + "moreProjects_many": "+{{count}} ещё", + "moreProjects_other": "+{{count}} ещё" }, "ProjectGroupNameDialog": { "d99a034073": "Отмена", "83dfbc5313": "Название группы", - "4a64e78822": "Сохранение…" + "4a64e78822": "Сохранение…", + "defaultGroupName": "Группа {{name}}", + "create": "Создать", + "rename": "Переименовать" }, "RemoteFileBrowser": { "2300612806": "Начните вводить фильтр или укажите путь…", @@ -5696,7 +5909,9 @@ "largeInputNoMatches": "Нет совпадений для этого длинного запроса", "entriesLabel": "Содержимое папки", "inputLabel": "Фильтр или путь", - "fileHint": "Файлы нельзя открывать как проекты" + "fileHint": "Файлы нельзя открывать как проекты", + "invalidPathRepeatedSeparators": "Недопустимый путь: повторяющиеся разделители", + "invalidPathControlCharacters": "Недопустимый путь: управляющие символы запрещены" }, "SleepTwinWorkspaceDialog": { "title": "Перевести рабочее пространство в сон", @@ -5726,13 +5941,12 @@ "70715947fb": "Скрипт настройки не может быть пустым", "888b83bf78": "Не удалось сохранить сценарий установки", "a49196d538": "Выполняется при создании нового рабочего дерева в Orca.", - "d9f2db2738": "настройках проекта", - "a5bb8c5135": "Сохраняется в", "savedSetupCommand": "Команда настройки сохранена.", "savedWithSkippedFields_few": "Пропущены {{count}} неподдерживаемых поля. Команда настройки сохранена.", "savedWithSkippedFields_many": "Пропущено {{count}} неподдерживаемых полей. Команда настройки сохранена.", "savedWithSkippedFields_one": "Пропущено {{count}} неподдерживаемое поле. Команда настройки сохранена.", - "savedWithSkippedFields_other": "Пропущено {{count}} неподдерживаемого поля. Команда настройки сохранена." + "savedWithSkippedFields_other": "Пропущено {{count}} неподдерживаемого поля. Команда настройки сохранена.", + "savedInProjectSettings": "Сохранено в настройках этого проекта" }, "SetupScriptPromptCardViews": { "96a7f4198c": "Сохранить локальную настройку", @@ -5740,20 +5954,17 @@ "31b8b01a45": "Настройки", "4a98f907ae": "Повторить попытку", "0a98169776": "Добавьте команду настройки для выполнения при создании новых рабочих деревьев в Orca.", - "8349e3fa4c": ". Сохраните её для запуска в новых рабочих деревьях.", - "b56d1322f7": "Найдена команда настройки в", "aef6c0a213": "Сохраните найденную команду, чтобы запускать её при каждом создании рабочего дерева в Orca.", - "660cdc17f8": "скрипты настройки. Добавьте локальную команду или измените источник в настройках.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "Этот репозиторий игнорирует общие", "0155fb9ed3": "Сейчас не удалось проверить скрипт настройки этого репозитория.", "eefa756190": "Настроить вручную", "ca4efcbc25": "Сохранить", - "d02e6a42b1": "Обнаружено в", "fdbc6cb064": "Найденный скрипт настройки", "7275f674cc": "Найденная настройка", "822ff300ad": "Скрыть", - "5bfd5c8779": "Скрыть скрипты настройки" + "5bfd5c8779": "Скрыть скрипты настройки", + "detectedFromSource": "Обнаружено в {{source}}", + "ignoresSharedSetup": "Этот репозиторий игнорирует общие скрипты настройки из orca.yaml. Добавьте локальную команду или измените источник в настройках.", + "foundSetupCommandIn": "В {{source}} найдена команда настройки. Сохраните её для запуска в новых рабочих деревьях." }, "SidebarFeedbackDialog": { "8bf619e4cf": "Отмена", @@ -5938,8 +6149,11 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "Закрыть", "e1a34450fc": "Распределяйте рабочие пространства по статусам и открывайте их карточки.", - "81870af08f": "выбрано", - "c6a77ab0f4": "Доска рабочих пространств" + "c6a77ab0f4": "Доска рабочих пространств", + "selectedCount_one": "Выбрано: {{count}}", + "selectedCount_few": "Выбрано: {{count}}", + "selectedCount_many": "Выбрано: {{count}}", + "selectedCount_other": "Выбрано: {{count}}" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "Перетащите сюда для закрепления без изменения статуса.", @@ -6040,7 +6254,8 @@ "2931b42b09": "Состояние: черновик {{value0}}", "e888362def": "Состояние: закрыт", "f394b3e86e": "Состояние: слит", - "af2b07bda5": "Состояние: {{value0}}" + "af2b07bda5": "Состояние: {{value0}}", + "checksStatus": "Проверки: {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "Открытые порты", @@ -6051,8 +6266,11 @@ "5d1a5d51bb": "Процесс на {{value0}} остановлен", "c89f290e25": "Скопировано: {{value0}}", "d1113f4660": "Не удалось открыть браузер", - "fed49903c9": "Открыто: {{value0}} {{value1}}", - "unknownProcess": "Неизвестный процесс" + "unknownProcess": "Неизвестный процесс", + "livePorts_one": "{{count}} активный порт", + "livePorts_few": "{{count}} активных порта", + "livePorts_many": "{{count}} активных портов", + "livePorts_other": "{{count}} активного порта" }, "WorktreeContextMenu": { "c39c37676a": "Создайте группу и переместите в нее этот проект.", @@ -6097,7 +6315,6 @@ "f9dc6cc5d3": "Переименовать группу проектов", "370c6a55dd": "Сбросить фильтры", "b7acbf038b": "Рабочие пространства не найдены", - "0c6ee14f23": "дочернее", "c83968f87f": "Удалить проект", "64e55f7f01": "Удалить из группы", "4a08fb55f2": "Переместить в группу", @@ -6110,12 +6327,7 @@ "4d7b73658c": "Переименовать группу", "79465e9034": "Действия с группой {{value0}}", "bfbedc547b": "Рабочие деревья", - "045a8aed48": "дочерние", "bb85cd86ba": "Создать рабочее пространство для {{value0}}", - "20bebf9c7f": "Показать {{value0}} дочернее рабочее пространство", - "c1f4a31623": "Показать дочерние рабочие пространства: {{value0}}", - "e97297cb75": "Скрыть {{value0}} дочернее рабочее пространство", - "0cd15956d4": "Скрыть дочерние рабочие пространства: {{value0}}", "bd37a57ac8": "Создать рабочее пространство для {{value0}}", "b667b59632": "Некоторые проекты не удалось убрать из Orca", "groupDeleteFailed": "Не удалось удалить группу", @@ -6126,8 +6338,22 @@ "sidebarRowMissing": "Целевой объект больше не существует", "failedUnnestWorkspace": "Не удалось убрать вложение рабочего пространства", "hostRepairRequired": "Нужно создать сопряжение заново", - "groupProjectsRemainedPlural": "После удаления группы осталось проектов: {{remaining}} из {{count}}.", - "groupProjectsRemainedSingular": "После удаления группы осталось проектов: {{remaining}} из {{count}}." + "showChildWorkspaces_one": "Показать {{count}} дочернее рабочее пространство", + "showChildWorkspaces_few": "Показать {{count}} дочерних рабочих пространства", + "showChildWorkspaces_many": "Показать {{count}} дочерних рабочих пространств", + "showChildWorkspaces_other": "Показать {{count}} дочернего рабочего пространства", + "hideChildWorkspaces_one": "Скрыть {{count}} дочернее рабочее пространство", + "hideChildWorkspaces_few": "Скрыть {{count}} дочерних рабочих пространства", + "hideChildWorkspaces_many": "Скрыть {{count}} дочерних рабочих пространств", + "hideChildWorkspaces_other": "Скрыть {{count}} дочернего рабочего пространства", + "childCount_one": "{{count}} дочернее пространство", + "childCount_few": "{{count}} дочерних пространства", + "childCount_many": "{{count}} дочерних пространств", + "childCount_other": "{{count}} дочернего пространства", + "groupProjectsRemained_one": "Проектов группы, оставшихся после её удаления: {{remaining}} из {{count}}.", + "groupProjectsRemained_few": "Проектов группы, оставшихся после её удаления: {{remaining}} из {{count}}.", + "groupProjectsRemained_many": "Проектов группы, оставшихся после её удаления: {{remaining}} из {{count}}.", + "groupProjectsRemained_other": "Проектов группы, оставшихся после её удаления: {{remaining}} из {{count}}." }, "WorktreeMetaDialog": { "3db0a2a593": "Отмена", @@ -6191,7 +6417,6 @@ "d40d436fc2": "Не удалось изменить видимость рабочего дерева. Повторите попытку.", "unsupportedHost": "Этот компьютер не поддерживает видимость рабочих деревьев по источникам. Обновите на нём Orca, чтобы изменить настройку.", "search": "Поиск скрытых рабочих деревьев", - "searchPlaceholder": "Поиск рабочих деревьев {{value0}}…", "noMatches": "Подходящих рабочих деревьев нет", "allShown": "Все найденные рабочие деревья показаны", "noneFound": "Рабочие деревья, созданные вне Orca, не найдены", @@ -6199,7 +6424,11 @@ "disableSource": "Отключите источник, чтобы управлять его рабочими деревьями по отдельности.", "appearWhenDetected": "Новые рабочие деревья появятся здесь, когда Orca обнаружит их.", "openGlobalSettings": "Управлять в общих настройках", - "globalSettingsSources": "Для этих источников есть общая настройка, которую можно переопределить здесь:" + "globalSettingsSources": "Для этих источников есть общая настройка, которую можно переопределить здесь:", + "searchHiddenPlaceholder_one": "Поиск среди {{count}} рабочего дерева…", + "searchHiddenPlaceholder_few": "Поиск среди {{count}} рабочих деревьев…", + "searchHiddenPlaceholder_many": "Поиск среди {{count}} рабочих деревьев…", + "searchHiddenPlaceholder_other": "Поиск среди {{count}} рабочего дерева…" }, "add": { "repo": { @@ -6402,13 +6631,17 @@ "7a8b9c0d1e": "Открыть настройки", "8b9c0d1e2f": "Удалить компьютер", "workspacesFailed": "Не удалось убрать рабочие пространства этого компьютера: {{count}}. Компьютер сохранён, чтобы можно было повторить попытку.", - "oneWorkspace": "1 рабочее пространство", - "manyWorkspaces": "рабочие пространства ({{count}})", - "hostHasWorkspacesDefault": "Удаляет {{value0}} и его учётные данные с этого компьютера. В Orca без изменений: {{value1}}. Файлы на сервере сохранятся.", - "alsoForgetLocal": "Также убрать {{value0}} из Orca", "advanced": "Дополнительно", "alsoForgetLocalHint": "Только убирает их из Orca. Удалённые файлы, рабочие деревья и ветки сохранятся.", - "wslHostEndsTerminalsUnlessShared": "Удаляет {{value0}} из Orca. Если только его не использует другой Orca, открытый на этом компьютере, также закрывает его открытые терминалы и останавливает сервер Orca в этом дистрибутиве. Файлы в дистрибутиве не затрагиваются." + "wslHostEndsTerminalsUnlessShared": "Удаляет {{value0}} из Orca. Если только его не использует другой Orca, открытый на этом компьютере, также закрывает его открытые терминалы и останавливает сервер Orca в этом дистрибутиве. Файлы в дистрибутиве не затрагиваются.", + "hostKeepsWorkspaces_one": "Удаляет {{host}} и его учётные данные с этого компьютера. Его {{count}} рабочее пространство остаётся в Orca — удалённые файлы не затрагиваются.", + "hostKeepsWorkspaces_few": "Удаляет {{host}} и его учётные данные с этого компьютера. Его {{count}} рабочих пространства остаются в Orca — удалённые файлы не затрагиваются.", + "hostKeepsWorkspaces_many": "Удаляет {{host}} и его учётные данные с этого компьютера. Его {{count}} рабочих пространств остаются в Orca — удалённые файлы не затрагиваются.", + "hostKeepsWorkspaces_other": "Удаляет {{host}} и его учётные данные с этого компьютера. В Orca остаётся {{count}} его рабочего пространства — удалённые файлы не затрагиваются.", + "alsoRemoveWorkspaces_one": "Также удалить это рабочее пространство из Orca", + "alsoRemoveWorkspaces_few": "Также удалить эти {{count}} рабочих пространства из Orca", + "alsoRemoveWorkspaces_many": "Также удалить эти {{count}} рабочих пространств из Orca", + "alsoRemoveWorkspaces_other": "Также удалить из Orca эти рабочие пространства ({{count}})" }, "HostRenameDialog": { "1a2b3c4d5e": "Переименовать компьютер", @@ -6481,7 +6714,7 @@ "current": "Текущий", "searchPlaceholder": "Поиск рабочих деревьев…", "empty": "Подходящих доступных рабочих деревьев нет.", - "setParentFor": "Задать родительское пространство для" + "setParentForName": "Задать родительское пространство для {{name}}" }, "WorktreeCardStatusSlot": { "branchIdentity": "Ветка", @@ -6491,12 +6724,16 @@ }, "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "Всегда скрывать внешние рабочие деревья для {{value0}}", - "2a6f31d8c7": "скрытое рабочее дерево", - "5b90e4a2f6": "скрытые рабочие деревья", - "7f18c5b0d3": "Проверить {{value0}} скрытое рабочее дерево в {{value1}}", - "4e2b7a9c05": "Проверить скрытые рабочие деревья в {{value1}}: {{value0}}", "c3e8a1f4b2": "Больше не показывать", - "6c07f3a91e": "{{value0}} на {{value1}}" + "6c07f3a91e": "{{value0}} на {{value1}}", + "hiddenWorktreesNoun_one": "скрытое рабочее дерево", + "hiddenWorktreesNoun_few": "скрытых рабочих дерева", + "hiddenWorktreesNoun_many": "скрытых рабочих деревьев", + "hiddenWorktreesNoun_other": "скрытого рабочего дерева", + "reviewHiddenWorktrees_one": "Проверить {{count}} скрытое рабочее дерево в {{scope}}", + "reviewHiddenWorktrees_few": "Проверить {{count}} скрытых рабочих дерева в {{scope}}", + "reviewHiddenWorktrees_many": "Проверить {{count}} скрытых рабочих деревьев в {{scope}}", + "reviewHiddenWorktrees_other": "Проверить {{count}} скрытого рабочего дерева в {{scope}}" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} отключён", @@ -6587,8 +6824,11 @@ "pairingHelpShareComputer": "Создайте это на другом компьютере: Настройки → Удалённые серверы Orca → Поделиться этим компьютером.", "nameInOrca": "Имя в Orca", "sshConfigPickerImportDescription": "Выберите сервер, чтобы заполнить форму, или добавьте все новые серверы в список серверов Orca.", - "sshImportSyncedPlural": "В Orca добавлено серверов: {{count}}.", - "sshImportSyncedSingular": "В Orca добавлен {{count}} сервер." + "sshImportSynced_one": "В Orca добавлен {{count}} сервер.", + "sshImportSynced_few": "В Orca добавлены {{count}} сервера.", + "sshImportSynced_many": "В Orca добавлено {{count}} серверов.", + "sshImportSynced_other": "В Orca добавлено {{count}} сервера.", + "sshConfigPickerInvalidResponse": "Недопустимый ответ о сервере из конфигурации SSH" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} больше не сохранён как SSH-сервер, поэтому рабочее пространство не связано с действующим компьютером. Его можно только убрать из Orca — файлы и ветки на сервере сохранятся.", @@ -6611,11 +6851,14 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "Подходящих рабочих пространств нет", - "4d96c209d6": "Подходящих рабочих пространств: {{value0}} из {{value1}}", "c0cd6bdf6c": "Поиск рабочих пространств", "3b7ea51793": "Очистить поиск", "7f1c2e94a5": "Поисковый текст слишком длинный — доска показана без фильтра", - "9a4d0f6b21": "Слишком длинный запрос" + "9a4d0f6b21": "Слишком длинный запрос", + "workspacesMatch_one": "Совпадений: {{matchCount}} из {{count}} рабочего пространства", + "workspacesMatch_few": "Совпадений: {{matchCount}} из {{count}} рабочих пространств", + "workspacesMatch_many": "Совпадений: {{matchCount}} из {{count}} рабочих пространств", + "workspacesMatch_other": "Совпадений: {{matchCount}} из {{count}} рабочего пространства" }, "WorktreeCardSshHostControl": { "connectFailed": "Не удалось подключиться по SSH", @@ -6725,11 +6968,14 @@ "developerToolsTitle": "Установите инструменты командной строки Apple", "developerToolsBody": "Для Git нужны инструменты разработки Apple. Выполните эту команду в Терминале и вернитесь в Orca. Проверка повторится автоматически.", "affectedOne": "Сканирование рабочих деревьев приостановлено для {{value0}}", - "affectedMany": "Сканирование рабочих деревьев приостановлено для проектов: {{value0}}", "copyCommand": "Копировать команду", "copied": "Команда скопирована", "retry": "Повторить сейчас", - "restored": "Git снова работает. Рабочие деревья обновлены." + "restored": "Git снова работает. Рабочие деревья обновлены.", + "affectedProjects_one": "Сканирование рабочих деревьев приостановлено для {{count}} проекта", + "affectedProjects_few": "Сканирование рабочих деревьев приостановлено для {{count}} проектов", + "affectedProjects_many": "Сканирование рабочих деревьев приостановлено для {{count}} проектов", + "affectedProjects_other": "Сканирование рабочих деревьев приостановлено для {{count}} проекта" }, "manualSortSwitch": { "title": "Включена ручная сортировка", @@ -6774,7 +7020,8 @@ "wslHostRemoval": { "keptForOthers": "Удалено из этого Orca. Хост продолжает работать для {{value0}}.", "partial": "Компьютер убран, но в дистрибутиве что-то ещё работает: {{value0}}", - "pending": "Orca пока не удалила хост: {{value0}} Повторите удаление или подключитесь, чтобы оставить его." + "pending": "Orca пока не удалила хост: {{value0}} Повторите удаление или подключитесь, чтобы оставить его.", + "unavailable": "Серверы WSL недоступны на этом компьютере." }, "addRepoWslHostFolderPicker": { "otherDistro": "Эта папка находится в {{value0}}, а не в {{value1}}.", @@ -6823,6 +7070,46 @@ "sleepCount_many": "Перевести в сон {{count}} рабочих пространств", "sleepCount_one": "Перевести в сон {{count}} рабочее пространство", "sleepCount_other": "Перевести в сон {{count}} рабочего пространства" + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "Этот сервер не поддерживает удаление вложенных рабочих деревьев." + }, + "WorktreeCardHelpers": { + "checksPassing": "Пройдены", + "checksFailing": "Ошибки", + "checksPending": "Ожидание", + "conflictMerging": "Выполняется слияние", + "conflictRebasing": "Выполняется перебазирование", + "conflictCherryPicking": "Выполняется cherry-pick" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "Рабочее пространство {{name}}" + }, + "workspaceKanbanStatus": { + "defaultLabel": "Статус {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_one": "{{preview}}, +{{count}} ещё", + "sparsePreviewMore_few": "{{preview}}, +{{count}} ещё", + "sparsePreviewMore_many": "{{preview}}, +{{count}} ещё", + "sparsePreviewMore_other": "{{preview}}, +{{count}} ещё" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "Сведения о MR недоступны", + "prDetailsUnavailable": "Сведения о PR недоступны", + "loadingMr": "Загрузка MR…", + "loadingPr": "Загрузка PR…" + }, + "HostSectionHeader": { + "workspaceCount_one": "{{count}} рабочее пространство", + "workspaceCount_few": "{{count}} рабочих пространства", + "workspaceCount_many": "{{count}} рабочих пространств", + "workspaceCount_other": "{{count}} рабочего пространства" + }, + "titleDerivedAgentRows": { + "needsInput": "Требуется ввод", + "running": "Работает", + "idle": "Бездействует" } }, "shared": { @@ -14526,17 +14813,8 @@ "saveLocation": "Задать расположение" }, "SmartWorkspaceNameField": { - "2a0d535f69": "Создать новую ветку", - "a44229ce4d": "как название рабочего пространства", - "766083a596": "\"", - "34ca97bce3": "\"", - "b1a7d679ba": "Использовать", "e57c53727c": "Добавить проект", - "a76fcb4fa0": "Переключиться на", - "eadf877af5": "Оставить", "6859e2896c": "Отмена", - "9ef1a7c4b0": ", что отличается от выбранного проекта.", - "ad188067ae": "URL GitHub указывает на", "4bd98f1091": "Переключить проект?", "0c9e668e3a": "Очистить", "7199ff19c7": "Убрать выбранный источник", @@ -14555,7 +14833,6 @@ "fda67f0b61": "текущий проект", "3e8bb1176a": "Подключите Linear в настройках для поиска задач.", "switchTaskSourceTitle": "Переключить источник задач?", - "differentTaskSource": ", что отличается от выбранного источника задач.", "currentTaskSource": "текущий источник задач", "placeholderNameOrLinearUrl": "Введите название, URL Linear или Jira", "placeholderWorkspaceName": "Введите название рабочего пространства", @@ -14584,7 +14861,13 @@ "emoji": "Эмодзи", "loadingLinearIssue": "Загрузка задачи Linear…", "linearLoginUnreadableTitle": "Подключить Linear заново", - "linearLoginUnreadableBody": "Не удалось прочитать сохранённые данные входа Linear. Подключите его заново в настройках." + "linearLoginUnreadableBody": "Не удалось прочитать сохранённые данные входа Linear. Подключите его заново в настройках.", + "keepRepo": "Оставить {{name}}", + "switchToRepo": "Переключиться на {{name}}", + "crossRepoDifferentTaskSource": "URL GitHub указывает на {{repo}}, который отличается от выбранного источника задач.", + "crossRepoDifferentProject": "URL GitHub указывает на {{repo}}, который отличается от выбранного проекта.", + "useAsWorkspaceName": "Использовать «{{name}}» как имя рабочего пространства", + "createNewBranchNamed": "Создать новую ветку {{name}}" }, "ProjectCombobox": { "empty": "По вашему запросу проекты не найдены.", @@ -14598,6 +14881,11 @@ "listLabel": "Цели запуска", "label": "Запустить на", "browse": "Просмотреть цели запуска" + }, + "projectCombobox": { + "recentHeading": "Недавние", + "projectsHeading": "Проекты", + "foldersHeading": "Папки" } } }, @@ -16201,7 +16489,14 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} дочерних {{value2}}" + "hideChildAgents_one": "Скрыть {{count}} дочернего агента", + "hideChildAgents_few": "Скрыть {{count}} дочерних агентов", + "hideChildAgents_many": "Скрыть {{count}} дочерних агентов", + "hideChildAgents_other": "Скрыть {{count}} дочернего агента", + "showChildAgents_one": "Показать {{count}} дочернего агента", + "showChildAgents_few": "Показать {{count}} дочерних агентов", + "showChildAgents_many": "Показать {{count}} дочерних агентов", + "showChildAgents_other": "Показать {{count}} дочернего агента" }, "DashboardAgentRow": { "912e136cd9": "Отправить", @@ -16209,7 +16504,15 @@ "a41fb5376e": "Свернуть подробности", "5ae84475cc": "Скрыть", "b06e13fcf7": "Убрать агента из списка", - "0272969e28": "Отправить этому агенту" + "0272969e28": "Отправить этому агенту", + "justNow": "только что", + "timeAgo": "{{duration}} назад", + "dispatchedAgents_one": "{{agentType}} - отправлен {{count}} агент", + "dispatchedAgents_few": "{{agentType}} - отправлены {{count}} агента", + "dispatchedAgents_many": "{{agentType}} - отправлено {{count}} агентов", + "dispatchedAgents_other": "{{agentType}} - отправлено {{count}} агента", + "startedAgo": "запущен {{time}}", + "doneAgo": "завершён {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "прервано", @@ -17345,18 +17648,23 @@ "groupAgentActivityBy": "Группировать события агентов по" }, "clearCompleted": { - "clearedOne": "Убран 1 завершённый агент", - "clearedMany": "Убрано завершённых агентов: {{count}}", - "undo": "Отменить действие" + "undo": "Отменить действие", + "cleared_one": "Убран {{count}} завершённый агент", + "cleared_few": "Убраны {{count}} завершённых агента", + "cleared_many": "Убрано {{count}} завершённых агентов", + "cleared_other": "Убрано {{count}} завершённого агента" }, "standaloneWorktree": { "floatingTerminal": "Плавающий терминал", "standaloneTerminal": "Отдельный терминал" }, "ActivityTitlebarControls": { - "f915168c8e": "непрочитано", "d6a8de3934": "агенты", - "dc708f3eff": "Закрыть агентов" + "dc708f3eff": "Закрыть агентов", + "unreadCount_one": "Непрочитанных: {{count}}", + "unreadCount_few": "Непрочитанных: {{count}}", + "unreadCount_many": "Непрочитанных: {{count}}", + "unreadCount_other": "Непрочитанных: {{count}}" }, "ActivityScopeFilterControls": { "resetScope": "Показывать все серверы и проекты", @@ -18187,6 +18495,16 @@ "unreachable": "Не удалось связаться с Jira. Проверьте подключение и повторите попытку.", "loadFailed": "Не удалось загрузить задачи Jira. Повторите попытку чуть позже.", "errorWithCode": "Ошибка {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "Невозможно выполнить «{{action}}» — рабочее пространство ещё загружается.", + "noActiveWorkspace": "Невозможно выполнить «{{action}}» — нет активного рабочего пространства.", + "workspaceDisconnected": "Невозможно выполнить «{{action}}» — рабочее пространство отключено.", + "noTabGroup": "Невозможно выполнить «{{action}}» — нет доступной группы вкладок.", + "noMovableChat": "Невозможно выполнить «{{action}}» — нет активного чата, который можно переместить.", + "clientUnsupported": "Невозможно выполнить «{{action}}» — этот клиент и среда выполнения не поддерживают действие." + } } }, "i18n": { @@ -19397,8 +19715,6 @@ "none": "Нет" }, "idleSignalField": "Признак неактивности", - "selectionVanishedOne": "1 выбранное рабочее пространство больше не существует.", - "selectionVanished": "Больше не существуют выбранные рабочие пространства: {{value0}}.", "updatedAgo": "Обновлено {{value0}}", "refreshing": "Обновление…", "refreshingProgress": "Обновление {{value0}}/{{value1}}", @@ -19413,12 +19729,6 @@ "gitStatusCheckFailed": "Ошибка проверки статуса Git", "gitStatusUnverified": "Не удалось проверить статус Git", "deleteAnyway": "Всё равно удалить", - "forceDeleteProjectionOne": "У {{count}} рабочего пространства обнаружен риск; может потребоваться принудительное удаление", - "forceDeleteProjectionMany": "Обнаружен риск у рабочих пространств ({{count}}); может потребоваться принудительное удаление", - "selectionWithheldOne": "1 выбранное рабочее пространство скрыто текущими фильтрами и исключено из выбора.", - "selectionWithheld": "Текущие фильтры скрыли выбранные рабочие пространства ({{value0}}), и они исключены из выбора.", - "selectAllCountOne": "Выбрать 1 рабочее пространство, прошедшее проверку безопасности", - "selectAllCount": "Выбрать все рабочие пространства, прошедшие проверку безопасности: {{value0}}", "appliedFilters": "Применённые фильтры", "removeFilter": "Убрать фильтр {{value0}}", "chip": { @@ -19462,18 +19772,42 @@ "locked": "Заблокировано", "retainedAgents": "Завершённые агенты" } - } + }, + "forceDeleteRisk_one": "Для {{count}} рабочего пространства сейчас выявлены риски; может потребоваться принудительное удаление", + "forceDeleteRisk_few": "Для {{count}} рабочих пространств сейчас выявлены риски; может потребоваться принудительное удаление", + "forceDeleteRisk_many": "Для {{count}} рабочих пространств сейчас выявлены риски; может потребоваться принудительное удаление", + "forceDeleteRisk_other": "Для {{count}} рабочего пространства сейчас выявлены риски; может потребоваться принудительное удаление", + "selectionVanishedCount_one": "{{count}} выбранное рабочее пространство больше не существует.", + "selectionVanishedCount_few": "{{count}} выбранных рабочих пространства больше не существуют.", + "selectionVanishedCount_many": "{{count}} выбранных рабочих пространств больше не существуют.", + "selectionVanishedCount_other": "{{count}} выбранного рабочего пространства больше не существует.", + "selectionWithheldCount_one": "{{count}} выбранное рабочее пространство скрыто текущими фильтрами, поэтому выбор снят.", + "selectionWithheldCount_few": "{{count}} выбранных рабочих пространства скрыты текущими фильтрами, поэтому выбор снят.", + "selectionWithheldCount_many": "{{count}} выбранных рабочих пространств скрыты текущими фильтрами, поэтому выбор снят.", + "selectionWithheldCount_other": "{{count}} выбранного рабочего пространства скрыто текущими фильтрами, поэтому выбор снят.", + "selectAllSafetyChecked_one": "Выбрать {{count}} рабочее пространство, прошедшее проверку безопасности", + "selectAllSafetyChecked_few": "Выбрать все {{count}} рабочих пространства, прошедших проверку безопасности", + "selectAllSafetyChecked_many": "Выбрать все {{count}} рабочих пространств, прошедших проверку безопасности", + "selectAllSafetyChecked_other": "Выбрать все рабочие пространства, прошедшие проверку безопасности ({{count}})" }, "scan": { "progress": "Сканирование рабочих пространств ({{value0}}/{{value1}})", "singleError": "Не удалось проверить {{value0}}: {{value1}}. Некоторые рабочие пространства могут отсутствовать. Обновите для повторной попытки.", - "moreErrors": ", ещё {{value0}}", - "multipleErrors": "Не удалось проверить репозитории: {{value0}} ({{value1}}{{value2}}). Некоторые рабочие пространства могут отсутствовать. Обновите для повторной попытки.", "noWorkspaces": "Рабочие пространства не найдены.", "fallbackRepository": "репозиторий", "gitListFailed": "Git не смог получить список рабочих деревьев", - "readyOne": "Найдено 1 рабочее пространство.", - "readyMany": "Найдено рабочих пространств: {{value0}}." + "multipleErrorsWithMore_one": "Не удалось проверить {{count}} репозиторий ({{names}}, ещё +{{moreCount}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "multipleErrorsWithMore_few": "Не удалось проверить {{count}} репозитория ({{names}}, ещё +{{moreCount}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "multipleErrorsWithMore_many": "Не удалось проверить {{count}} репозиториев ({{names}}, ещё +{{moreCount}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "multipleErrorsWithMore_other": "Не удалось проверить {{count}} репозитория ({{names}}, ещё +{{moreCount}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "multipleErrorsCount_one": "Не удалось проверить {{count}} репозиторий ({{names}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "multipleErrorsCount_few": "Не удалось проверить {{count}} репозитория ({{names}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "multipleErrorsCount_many": "Не удалось проверить {{count}} репозиториев ({{names}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "multipleErrorsCount_other": "Не удалось проверить {{count}} репозитория ({{names}}). Некоторые рабочие пространства могут отсутствовать. Обновите, чтобы повторить попытку.", + "readyCount_one": "Найдено {{count}} рабочее пространство.", + "readyCount_few": "Найдены {{count}} рабочих пространства.", + "readyCount_many": "Найдено {{count}} рабочих пространств.", + "readyCount_other": "Найдено {{count}} рабочего пространства." }, "relativeTime": { "never": "Никогда", @@ -20631,7 +20965,6 @@ "repositoryLoading": "Данные репозитория ещё загружаются. Повторите попытку после загрузки.", "duplicate": "Эта ссылка уже прикреплена.", "title": "Связанная работа", - "count": "Связано: {{count}}", "empty": "Храните все ревью и задачи этого рабочего пространства вместе.", "reviews": "Ревью", "tasks": "Задачи", @@ -20639,7 +20972,6 @@ "open": "Открыть ссылку", "unlinkItem": "Отвязать {{label}}", "unlink": "Отвязать от рабочего пространства", - "show": "Показать связанные ревью и задачи: {{count}}", "details": "Сведения о рабочем пространстве", "description": "Прикрепляйте ревью и задачи и ведите заметки для этого рабочего пространства.", "commentHelp": "Поддерживается Markdown. Enter или {{shortcut}} — сохранить · Shift+Enter — новая строка.", @@ -20692,7 +21024,15 @@ "checksPassing": "Пройдено", "checksUnknown": "Неизвестно", "checksNeutral": "Нейтрально", - "allReviewChecks": "Ревью: {{count}} · Проверки: {{status}}" + "allReviewChecks": "Ревью: {{count}} · Проверки: {{status}}", + "showLinked_one": "Показать {{count}} связанную проверку или задачу", + "showLinked_few": "Показать {{count}} связанные проверки и задачи", + "showLinked_many": "Показать {{count}} связанных проверок и задач", + "showLinked_other": "Показать связанные проверки и задачи: {{count}}", + "linkedCount_one": "Связано: {{count}}", + "linkedCount_few": "Связано: {{count}}", + "linkedCount_many": "Связано: {{count}}", + "linkedCount_other": "Связано: {{count}}" }, "attachments": { "updateRuntime": "Обновите удалённую среду выполнения, чтобы менять ссылки рабочего пространства", @@ -20876,8 +21216,11 @@ }, "compact": { "linkedAndUnavailable": "В связанных рабочих деревьях: {{value0}} · недоступно: {{value1}}", - "linkedAndScanned": "В связанных рабочих деревьях: {{value0}} · рабочих пространств: {{value1}}", - "linked": "Связанные" + "linked": "Связанные", + "linkedAndScannedCount_one": "{{size}} в связанных рабочих деревьях · {{count}} рабочее пространство", + "linkedAndScannedCount_few": "{{size}} в связанных рабочих деревьях · {{count}} рабочих пространства", + "linkedAndScannedCount_many": "{{size}} в связанных рабочих деревьях · {{count}} рабочих пространств", + "linkedAndScannedCount_other": "{{size}} в связанных рабочих деревьях · {{count}} рабочего пространства" }, "savedScan": { "folderDetailsUnavailable": "Сведения о папках не сохраняются с прошлыми сканированиями. Обновите данные для просмотра этого рабочего пространства." diff --git a/src/renderer/src/i18n/locales/tr.json b/src/renderer/src/i18n/locales/tr.json index aa0707f266b..0328423defb 100644 --- a/src/renderer/src/i18n/locales/tr.json +++ b/src/renderer/src/i18n/locales/tr.json @@ -2189,7 +2189,6 @@ "ba64270bdb": "Ajanları yapılandır", "ab63f25397": "Ajan ayarlarını aç", "0c5d6a479c": "[İsteğe bağlı]", - "b5a0796911": "Bağlan", "dccd26d4e4": "Proje seçin", "d6b0a96f32": "Proje ekle", "969a8bff66": "Proje", @@ -2250,7 +2249,8 @@ "runSetupNow": "Kurulumu şimdi çalıştır", "runCommandsNow": "Komutları şimdi çalıştır", "skipForNow": "Şimdilik atla", - "skipCommands": "Komutları atla" + "skipCommands": "Komutları atla", + "connectProject": "{{name}} bağlantısını kur" }, "NewWorkspaceComposerModal": { "createWorktree": "Worktree oluştur", @@ -3724,21 +3724,18 @@ }, "drop": { "handler": { - "1e072f611e": "{{value0}} {{value1}} yüklenemedi.", "0c77693641": "Worktree hazır değil, birazdan tekrar deneyin.", "ce8248b835": "Worktree yolu kullanılamıyor.", "internalTooManyPaths": "Bırakılan öğe, güvenli bir terminal yapıştırması için çok fazla yol içeriyor.", "internalPathsTooLarge": "Bırakılan yol listesi, güvenli bir terminal yapıştırması için çok büyük.", "internalHostMismatch": "Bu terminalle aynı ana makinede bulunan dosyaları bırakın.", - "b4cf68e889": "{{value0}} {{value1}} atlandı.", "writeTimeout": "Dosya bırakma iptal edildi: terminal, güvenlik zaman aşımından önce yolu kabul etmedi.", "writeRejected": "Dosya bırakma iptal edildi: terminal yolu kabul edemedi.", - "skippedSymlinkSingular": "{{count}} sembolik bağlantı atlandı.", - "skippedSymlinkPlural": "{{count}} sembolik bağlantı atlandı.", - "uploadingFileSingular": "Çalışma zamanına {{count}} dosya yükleniyor…", - "uploadingFilePlural": "Çalışma zamanına {{count}} dosya yükleniyor…", - "uploadingFileToRemoteSingular": "Uzak sunucuya {{count}} dosya yükleniyor…", - "uploadingFileToRemotePlural": "Uzak sunucuya {{count}} dosya yükleniyor…" + "skippedSymlinks_other": "{{count}} sembolik bağlantı atlandı.", + "skippedItems_other": "{{count}} öğe atlandı.", + "failedUploads_other": "{{count}} dosya yüklenemedi.", + "uploadingFiles_other": "{{count}} dosya çalışma zamanına yükleniyor…", + "uploadingFilesToRemote_other": "{{count}} dosya uzak ortama yükleniyor…" } } }, @@ -3856,10 +3853,15 @@ "sessionQueued": "Oturum sıraya alındı", "openSupportedWorkspace": "Bir oturuma devam etmeden önce bir çalışma alanı açın.", "sessionHostMismatchUnsupported": "Bu oturum farklı bir ana bilgisayara ait. Aynı ana bilgisayardaki bir çalışma alanına bırakın.", - "oldPayload": "Bu oturum eski bir Orca penceresinden sürüklendi. Bunun yerine Oturum Geçmişi'nden devam ettirin." + "oldPayload": "Bu oturum eski bir Orca penceresinden sürüklendi. Bunun yerine Oturum Geçmişi'nden devam ettirin.", + "legacyDragCannotRetarget": "Bu oturum eski sürümdeki bir Orca penceresinden sürüklendiği için Orca onu seçili Codex hesabına yönlendiremiyor. Oturum Geçmişi panelinden devam ettirin.", + "legacyDragPrepareFailed": "Bu eski Codex oturumu Orca tarafından hazırlanamadı. Devam ettirmeyi yeniden deneyin." }, "TabGroupDropOverlay": { "paneColumnLabel": "Yeni bölüm" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "Eşleştirilmiş çalışma zamanında yönetilen tarayıcı sekmesi çoğaltılamadı." } }, "bar": { @@ -4054,6 +4056,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "Ana bilgisayar kullanılamıyor", "7c129b08ff": "Ana bilgisayar yükleniyor…" + }, + "nativeChatCliFork": { + "cannotOpenInCli": "Bu oturum CLI'de açılamaz." + }, + "tabCreateEntry": { + "fileNotFound": "Dosya bulunamadı: {{path}}", + "cannotOpenDirectory": "Dizin açılamadı: {{path}}", + "parentNotDirectory": "{{path}} bir dizin olmadığı için dosya oluşturulamadı.", + "fileNoLongerExists": "Dosya artık mevcut değil: {{path}}", + "noActiveWorktree": "Etkin worktree yok." + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "Dosya yolları kontrol karakteri içeremez.", + "enterAUrlOrFilePath": "Bir URL veya dosya yolu girin.", + "homeRelativePathsAreNotSupported": "Ev dizinini temel alan göreli yollar burada desteklenmiyor.", + "enterAFilePathNotA": "Dizin yolu yerine bir dosya yolu girin.", + "enterAnAbsoluteFilePath": "Mutlak bir dosya yolu girin.", + "enterAnAbsolutePathForThis": "Bu bilgisayar için mutlak bir yol girin.", + "enterARelativeFilePath": "Göreli bir dosya yolu girin.", + "windowsDrivePathsAreNotSupported": "Windows sürücü yolları burada desteklenmiyor.", + "uncPathsAreNotSupportedHere": "UNC yolları burada desteklenmiyor.", + "filePathsCannotContainEmptySegments": "Dosya yolları boş yol bileşeni içeremez.", + "filePathsCannotContainDotSegments": "Dosya yolları . veya .. yol bileşeni içeremez.", + "filePathsCannotContainTildeSegments": "Dosya yolları ~ yol bileşeni içeremez." } } }, @@ -4081,15 +4107,13 @@ "4ebf90c12e": "Harici bağlantı noktası bulunamadı", "7dac3ecc9d": "Harici Bağlantı Noktaları", "95495019ed": "{{value0}} üzerinde bağlantı noktası taraması kullanılamıyor: {{value1}}", - "a8e4bdb412": " · {{value0}} harici", "c22ea609fd": "Bağlantı Noktaları", - "ca41be2802": "Bağlantı Noktaları - {{value0}} çalışma alanı {{value1}}{{value2}}", - "b8bc3e420a": "Bağlantı Noktaları, {{value0}} çalışma alanı {{value1}}", "3a87d54dfb": "Çalışma alanı bağlantı noktası bulunamadı", "c174bbbfed": "Çalışma alanı bağlantı noktaları taranıyor...", - "8caaa86e9a": "bağlantı noktaları", - "45834a9ace": "bağlantı noktası", - "2b84c4d11f": "{{value0}} çalışma alanı · {{value1}} harici" + "2b84c4d11f": "{{value0}} çalışma alanı · {{value1}} harici", + "portsAria_other": "Portlar, {{count}} çalışma alanı portu", + "portsTooltipWithExternal_other": "Portlar — {{count}} çalışma alanı portu · {{externalCount}} harici", + "portsTooltip_other": "Portlar — {{count}} çalışma alanı portu" }, "ResourceUsageStatusSegment": { "946d9f94d0": "İptal", @@ -4098,7 +4122,6 @@ "27a74f91f0": "Şu anda çalışan bir şey yok", "298f4be7f2": "CPU", "2aa2de6cb9": "Ad", - "30ff2c3c31": "{{value0}} yetim", "1fedf94eae": "Birleşik CPU yükü. %100'ün üzerindeki değerler, aynı anda birden fazla çekirdeğin çalıştığı anlamına gelir.", "e7cf14ec78": "Terminal oturumları kullanılamıyor. Liste güncel olmayabilir.", "93b0de3c21": "Yeniden Başlat", @@ -4128,10 +4151,9 @@ "d406915b78": "Renderer", "81cd37af99": "Main", "fa6d36758d": "{{value0}} oturumunu sonlandır", - "b8f4a2c1d0e3": "{{value0}} yetim", - "c7e3b1a0d9f2": "{{value0}} yetim terminali sonlandır", - "d8f4c2b1e0a3": "{{value0}} yetim terminali sonlandır", - "e9a5d3c2b1f0": "{{value0}} sonlandırılsın mı?" + "e9a5d3c2b1f0": "{{value0}} sonlandırılsın mı?", + "endOrphanTerminals_other": "{{count}} sahipsiz terminali sonlandır", + "orphanCount_other": "{{count}} sahipsiz" }, "SshStatusSegment": { "3ad70e0365": "Uzak Ana Bilgisayarları Yönet…", @@ -4191,10 +4213,6 @@ "3325d996cb": "Hız sınırlarını yenile", "cd9d7b40ff": "{{value0}} Oturumu Yeniden Başlat", "6cd6650b4c": "Oturumu Yeniden Başlat", - "1446d0d8a0": "{{value0}} Codex oturumu hâlâ eski hesapta.", - "605901a495": "1 Codex oturumu hâlâ eski hesapta", - "5e5f9f5160": "1 hız sınırı sıfırlama kullanılabilir", - "5ecae9197c": "{{value0}} hız sınırı sıfırlama kullanılabilir", "25d8bbde69": "Sıfırlama kullanılıyor…", "e159fc1fd7": "Şimdi sıfırla", "972a1ff497": "Codex sınırları sıfırlansın mı?", @@ -4213,7 +4231,9 @@ "codexSignInError": "Codex'te oturum açılamadı. Lütfen tekrar deneyin.", "cursorUsageMenu": "Cursor Kullanımı", "hiddenUsageProviders": "Ayrıca: {{value0}}", - "zcodeUsageMenu": "ZCode Kullanımı" + "zcodeUsageMenu": "ZCode Kullanımı", + "rateLimitResetsAvailable_other": "{{count}} hız sınırı sıfırlama hakkı kullanılabilir", + "staleCodexSessions_other": "{{count}} Codex oturumu hâlâ eski hesapta." }, "StatusBarUsageEmptyCta": { "828c764a79": "Bir hesap bağlayın", @@ -4230,13 +4250,13 @@ "SkillUpdateStatusSegment": { "runningLabel": "Beceriler güncelleniyor", "runningOne": "{{value0}} güncelleniyor…", - "runningMany": "{{value0}} beceri güncelleniyor…", "runningAria": "Beceriler güncelleniyor. Ayrıntıları açmak için tıklayın.", "successLabel": "Beceriler güncellendi", "successAria": "Beceriler güncellendi. Ayrıntıları açmak için tıklayın.", "attentionAria": "Bazı beceri güncellemeleri atlandı. Ayrıntıları açmak için tıklayın.", "attentionLabel": "Becerilerin incelenmesi gerekiyor", - "attentionTooltip": "Bazı beceri güncellemeleri atlandı — ayrıntıları görmek için tıklayın" + "attentionTooltip": "Bazı beceri güncellemeleri atlandı — ayrıntıları görmek için tıklayın", + "runningSkills_other": "{{count}} beceri güncelleniyor…" }, "UpdateStatusSegment": { "5cd13105a3": "Güncelleme başarısız oldu. Genişletmek için tıklayın.", @@ -4278,11 +4298,8 @@ "6f8f6a6b04": "Çalışma alanlarını filtrele", "5caccea440": "Seçilenleri sil", "e4a12c455b": "Temizle", - "0cb1501ccf": "geri kazanılabilir", - "65402b7192": "seçili", "43171f3e60": "Çalışma Alanları", "09960d86bd": "Tarandı", - "63efebe0e6": "{{value0}} {{value1}}, Alan'dan kaldırıldı.", "eee5240810": "Çalışma alanları silindi", "9afc97f9a3": "Çalışma alanı silindi", "792a214457": "Çalışma alanını sil", @@ -4290,7 +4307,6 @@ "9155381019": "Seyrek", "f39d291997": "Seç", "16988df079": "Dosya bulunamadı.", - "b25c2c1086": "üst düzey öğeler", "d3f9c69ddc": "Yakınlaştır", "ef890d31b9": "Tümü", "c28643d3da": "Çalışma alanına git", @@ -4329,8 +4345,12 @@ "c5135e7e4a": "Çalışma alanı boyutları taranıyor. Bu sayfadan ayrılabilirsiniz.", "0990a63160": "Henüz taranmış çalışma alanı boyutu yok.", "977bdf9a36": "Gösterilecek üst düzey öğe yok.", - "131662ac65": "{{value0}} açık", - "0d1c78d749": "{{value0}} seç" + "0d1c78d749": "{{value0}} seç", + "removedFromSpace_other": "{{count}} çalışma alanı, Alan bölümünden kaldırıldı.", + "topLevelItems_other": "{{formattedCount}} üst düzey öğe", + "selectedCount_other": "{{count}} seçili", + "reclaimableSize": "{{size}} geri kazanılabilir", + "scanning": "Taranıyor" }, "ports": { "status": { @@ -4344,7 +4364,8 @@ "e4a709548c": "Bağlantı noktaları yenilenemedi", "acdb6df590": "{{value0}} üzerindeki işlem durduruldu", "480d8f2347": "{{value0}} kopyalandı", - "b854ec9ff5": "Tarayıcı açılamadı" + "b854ec9ff5": "Tarayıcı açılamadı", + "unknownProcess": "Bilinmeyen işlem" } } } @@ -4374,8 +4395,6 @@ "7ad719c4bf": "Sınırlı", "e740f92596": "Yenileme başarısız oldu", "8418ec448d": "{{value0}} kullanımı yenilenemedi. Ajan oturumları hâlâ açık olabilir.", - "45198c7d95": "1 hız sınırı sıfırlama kullanılabilir", - "bce421cba3": "{{value0}} hız sınırı sıfırlama kullanılabilir", "7ec6e030a0": "Sıradaki şimdi sona eriyor", "d1e442a9e5": "Şimdi sona eriyor", "6cf9eaed10": "Sıradaki {{value0}} içinde sona eriyor", @@ -4432,7 +4451,13 @@ "label": "Claude çalıştığında güncellenir", "message": "Claude kullanım bilgisi, Claude bir sonraki çalıştığında güncellenir." } - } + }, + "justNow": "az önce", + "minutesAgo": "{{minutes}} dk önce", + "hoursAgo": "{{hours}} sa önce", + "updatedAgo": "{{time}} güncellendi", + "notYetUpdated": "Henüz güncellenmedi", + "rateLimitResetsAvailable_other": "{{count}} hız sınırı sıfırlama hakkı kullanılabilir" }, "SshTargetStatusRow": { "sshHost": "SSH sunucusu" @@ -4467,12 +4492,10 @@ "RemoteServerUpdateStatusSegment": { "updating": "{{value0}}/{{value1}} güncelleniyor", "updatingTooltip": "Uzak Orca Sunucusu güncellemeleri sürüyor", - "failed": "{{value0}} sunucu güncellemesi başarısız oldu", "failedTooltip": "İncelemek ve tekrar denemek için Uzak Orca Sunucusu güncellemelerini aç", - "updated": "{{value0}} sunucu güncellendi", "updatedTooltip": "Uzak Orca Sunucusu güncellemeleri tamamlandı", - "failedOne": "1 sunucu güncellemesi başarısız oldu", - "updatedOne": "1 sunucu güncellendi" + "failedCount_other": "{{count}} sunucu güncellemesi başarısız", + "updatedCount_other": "{{count}} sunucu güncellendi" }, "resource": { "memory": { @@ -4480,7 +4503,10 @@ "workingSetDescription": "Toplam çalışma kümesi (WS): şu anda RAM'de yer alan sayfalar. Paylaşılan sayfalar birden fazla işlemde görünebilir ve Windows'un disk belleğine attığı bellek burada sayılmaz.", "privateBytesDescription": "Toplam özel bayt: bu işlemlerin ayırdığı bellek, RAM'de olsun ya da disk belleğine atılmış olsun sayılır. Ana bilgisayarın taahhüt sınırından düştüğü değer budur, bu yüzden yukarıdaki çalışma kümesi disk belleğine atma nedeniyle küçülürken bu değer artmaya devam eder.", "footprintDescription": "Toplam bellek kullanımı, Activity Monitor uygulamasında gösterilenle aynı değer: grafik belleği dahil her işleme ait bellek. İşlemler arasında paylaşılan sayfalar iki kez sayılmaz.", - "rssDescription": "Toplam yerleşik küme boyutu (RSS). Paylaşılan veya takma adlı sayfalar birden fazla işlemde görünebilir." + "rssDescription": "Toplam yerleşik küme boyutu (RSS). Paylaşılan veya takma adlı sayfalar birden fazla işlemde görünebilir.", + "memColumn": "Bellek", + "memorySummary": "Σ Bellek", + "privateSummary": "Σ Özel" } }, "manager": { @@ -4529,29 +4555,21 @@ "repair": "Yeniden eşleştir…" }, "NativeChatResumeStatusSegment": { - "labelOne": "Devam edilecek 1 sohbet", - "label": "Devam edilecek {{value0}} sohbet", - "ariaLabelOne": "Devam edilebilecek 1 sohbet", - "ariaLabel": "Devam edilebilecek {{value0}} sohbet", "tooltip": "Devam edilebilecek yarım kalmış sohbetleri aç", - "failedLabelOne": "1 sohbete devam edilemedi", - "failedLabel": "{{value0}} sohbete devam edilemedi", - "failedAriaOne": "1 sohbete devam edilemedi. Ayrıntılar için tıklayın.", - "failedAria": "{{value0}} sohbete devam edilemedi. Ayrıntılar için tıklayın.", "failedTooltip": "Orca'nın yeniden başlatma sonrasında devam edemediği sohbetler. Ayrıntılar için tıklayın.", - "checkLabelOne": "Kontrol edilecek 1 sohbet", - "checkLabel": "Kontrol edilecek {{value0}} sohbet", - "checkAriaOne": "Devam edildikten sonra kontrol edilecek 1 sohbet. Ayrıntılar için tıklayın.", - "checkAria": "Devam edildikten sonra kontrol edilecek {{value0}} sohbet. Ayrıntılar için tıklayın.", "checkTooltip": "Orca'nın yeniden başlatma sonrasında devam edemediği veya devam edildiğini doğrulayamadığı sohbetler. Ayrıntılar için tıklayın.", "resumingTooltip": "Yarım kalan sohbetler geri yükleniyor ve devam etmeleri isteniyor…", "resumingProgressLabel": "Sohbetlere devam ediliyor {{value0}}/{{value1}}", "resumingProgressAria": "Sohbetlere devam ediliyor, {{value1}} sohbetten {{value0}} tanesi tamamlandı. Ayrıntıları açmak için tıklayın.", - "resumedLabelOne": "1 sohbete devam edildi", - "resumedLabel": "{{value0}} sohbete devam edildi", - "resumedAriaOne": "1 sohbete devam edildi. Görmek için tıklayın.", - "resumedAria": "{{value0}} sohbete devam edildi. Görmek için tıklayın.", - "resumedTooltip": "Orca'nın yeniden başlatıldıktan sonra devam ettirdiği sohbetler. Görmek için tıklayın." + "resumedTooltip": "Orca'nın yeniden başlatıldıktan sonra devam ettirdiği sohbetler. Görmek için tıklayın.", + "chatsFailedLabel_other": "{{count}} sohbet devam ettirilemedi", + "chatsFailedAria_other": "{{count}} sohbet devam ettirilemedi. Ayrıntılar için tıklayın.", + "resumedLabelCount_other": "{{count}} sohbet devam ettirildi", + "resumedAriaCount_other": "{{count}} sohbet devam ettirildi. Görmek için tıklayın.", + "checkLabelCount_other": "Kontrol edilecek {{count}} sohbet", + "checkAriaCount_other": "Devam ettirdikten sonra kontrol edilecek {{count}} sohbet var. Ayrıntılar için tıklayın.", + "labelCount_other": "Devam ettirilecek {{count}} sohbet", + "ariaLabelCount_other": "Devam ettirilebilecek {{count}} sohbet" }, "StatusBarUsageChangeNotices": { "compactTitle": "Kullanım görünümü artık kompakt", @@ -4560,6 +4578,71 @@ "usageUnitLabel": { "used": "Kullanılan", "remaining": "Kalan" + }, + "mergeSnapshotAndSessions": { + "unattributed": "İlişkilendirilmemiş" + }, + "resourceSessionLabels": { + "terminalNumber": "Terminal {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "oturum {{id}}", + "unknownSession": "(bilinmeyen oturum)", + "unknown": "bilinmiyor" + }, + "runtimeTargets": { + "wslDefault": "WSL varsayılanı" + }, + "floatingWorkspace": { + "minimize": "Yüzen Çalışma Alanını Küçült", + "show": "Yüzen Çalışma Alanını Göster" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "Çalışma alanının sahibi artık kullanılamıyor" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "Upstream ile eşitlendi", + "aheadAndBehind": "{{ahead}} ileride, {{behind}} geride", + "ahead": "{{ahead}} ileride", + "behind": "{{behind}} geride", + "activeAgents_other": "{{count}} etkin ajan", + "completedAgents_other": "{{count}} tamamlanmış ajan", + "activeAndCompletedAgents": "{{active}}, {{completed}}", + "completedAgentsRetained_other": "{{count}} tamamlanmış ajan tutuluyor", + "noTrackedAgents": "Çalışan izlenen ajan yok", + "noTerminalTabs": "Terminal sekmesi yok", + "liveTerminalTabs_other": "{{count}} terminal sekmesinden {{live}} tanesi etkin", + "gitStatusUnavailable": "Git durumu alınamıyor: {{error}}", + "gitStatusNotLoaded": "Git durumu henüz yüklenmedi", + "noUncommittedFiles": "Commit edilmemiş dosya yok", + "changedFiles_other": "{{count}} değiştirilmiş dosya", + "noEditorFiles": "Düzenleyicide açık dosya yok", + "editorFilesOpen_other": "Düzenleyicide {{count}} dosya açık", + "dirtyOfOpen": "{{open}} içinde {{dirty}}", + "dirtyEditorBuffers_other": "{{count}} kaydedilmemiş düzenleyici arabelleği", + "openFiles_other": "{{count}} açık dosya", + "activeWorkspace": "Bu, etkin çalışma alanı", + "mainWorktreeProtected": "Ana worktree korunuyor", + "workspaceProtected": "Çalışma alanı korunuyor", + "canDeleteAfterReview": "İncelemeden sonra silinebilir", + "noLinkedIssue": "Bağlantılı sorun yok", + "noLinkedReview": "Bağlantılı PR yok", + "browserTabsOpen_other": "{{count}} tarayıcı sekmesi açık" + }, + "workspaceSpaceFormat": { + "cancellingScan": "Tarama iptal ediliyor", + "currentWorkspaces": "çalışma alanları", + "scanningWorkspaces": "{{total}} öğeden {{scanned}} tanesi taranıyor · {{current}}", + "scanningRepos_other": "{{count}} repodan {{scanned}} tanesi taranıyor · {{current}}", + "scanningSizes": "Çalışma alanı boyutları taranıyor", + "status": { + "scanned": "Tarandı", + "missing": "Eksik", + "noAccess": "Erişim yok", + "unavailable": "Kullanılamıyor", + "failed": "Başarısız" + }, + "mainWorktree": "ana worktree", + "detached": "ayrık" } } }, @@ -5335,12 +5418,9 @@ "670864ab52": "Yerel {{value0}} güncel tutuluyor", "84c62e4d7f": "{{value0}} açılamadı", "442552c656": "Ayarlar'ı açın ve tekrar deneyin.", - "f15fd80989": "Yeni worktree'niz güncel, ancak yerel {{value0}}, {{value1}} {{value2}} geride, bu yüzden AI diff'leri eski bir geçmişle karşılaştırma yapabilir. Orca'nın bunu otomatik olarak güncel tutmasına izin verin. Bunu istediğiniz zaman şuradan değiştirebilirsiniz:", - "3d260e1a5d": "Ayarlar › {{value0}}", "34a03a6565": "{{value0}} referansını güncel tut", "4a18052018": "Yerel {{value0}}, {{value1}} referansının gerisinde", - "commit": "commit", - "commits": "commit" + "staleLocalBranch_other": "Yeni worktree'niz güncel, ancak yerel {{branch}} branch'i {{count}} commit geride olduğu için AI diff'leri güncel olmayan geçmişe dayanabilir. Orca'nın bu branch'i otomatik olarak güncel tutmasını sağlayın. Bunu Ayarlar › {{setting}} bölümünden istediğiniz zaman değiştirebilirsiniz" } } } @@ -5394,12 +5474,10 @@ "39d51212cc": "Grup adı", "aa0247680d": "Hayır, ayrı ayrı içe aktar", "a0bc4d1f8e": "Evet, grup olarak içe aktar", - "8401a7a0d0": "1 repo", - "d4f1df62ef": "{{value0}} repo", - "b4263a2ac4": "{{value1}} içinde {{value0}} bulundu.", "24eda6c8b2": "Taranıyor... {{value0}}", "6149d5203f": "Repo seçilmedi. Git özellikleri olmadan düzenleyici, terminal ve arama kullanmak için bunun yerine üst klasörü açın.", - "e52454b7f6": "Klasör Olarak Aç" + "e52454b7f6": "Klasör Olarak Aç", + "foundRepositories_other": "{{path}} konumunda {{count}} repository bulundu." }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5468,9 +5546,8 @@ "eab8b45238": "Hatayı kopyala", "a23b22d16f": "Kopyalandı", "74fc00776f": "Hata ayrıntıları", - "3afcad0497": "ilk ajan mesajından.", - "ff62a18580": "Orca şunun için bir branch adı oluşturamadı:", - "ca3b225195": "Branch otomatik adlandırması başarısız oldu" + "ca3b225195": "Branch otomatik adlandırması başarısız oldu", + "couldNotGenerateBranchName": "Orca'da {{name}} için ilk ajan mesajından bir branch adı oluşturulamadı." }, "CreateProjectLocationField": { "95548e33bf": "Üst klasör seçin...", @@ -5490,37 +5567,35 @@ "2b56b35f53": "Bunu Ayarlar'dan değiştirebilirsiniz.", "dd3a45bbbd": "Bir dahaki sefere bu onayı atlayacağız.", "fc23c4cbdf": "Çalışma Alanını Sil", - "86f0ae1257": "Çalışma Alanlarını Sil" + "86f0ae1257": "Çalışma Alanlarını Sil", + "removeFolderProjectInstead": "Bu çalışma alanını silmek yerine klasör projesini kaldırın.", + "gitBlocksMainWorktree": "Git, ana worktree'nin kaldırılmasına izin vermez." }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "Yüklenen yolları göster", "loadedPathsNotice": "Yüklenen yollar eksik veya güncelliğini yitirmiş olabilir.", "loadedChangedPaths": "Yüklenen değişmiş yollar", "unresolvedConflict": "Çözülmemiş çakışma", - "moreLoadedPaths": "ve yüklenen {{value0}} yol daha", "changeCount_one": "{{count}} commit'lenmemiş veya izlenmeyen değişiklik", "changeCount_other": "{{count}} commit'lenmemiş veya izlenmeyen değişiklik", - "changes": "Commit'lenmemiş veya izlenmeyen değişiklikler" + "changes": "Commit'lenmemiş veya izlenmeyen değişiklikler", + "moreLoadedPaths_other": "ve yüklenmiş {{count}} yol daha" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "daha fazla", "a940f3c96e": "Alt çalışma alanları silinecek", - "29b98bf9cd": "Bu çalışma alanını silmek, {{value0}} alt çalışma alanını da siler.", - "66798cc6a2": "Bu çalışma alanını silmek, 1 alt çalışma alanını da siler." + "alsoDeletesChildren_other": "Bu çalışma alanı silindiğinde {{count}} alt çalışma alanı da silinir.", + "moreChildren_other": "+{{count}} tane daha" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "Tekrar sorma" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(orijinal klon dizini).", - "c4f96a6e18": "ana worktree", - "e3be9eba15": "Bu," + "mainWorktreeNotice": "Bu, ana worktree (ilk klonlama dizini)." }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "Worktree listesinde göster", "ad99f4eea9": "Gizli tut", "9f4f14e821": "Bunu daha sonra proje menüsünden değiştirebilirsiniz.", - "b2bc47c080": "daha fazla konum", "b47ba1a9d2": "{{value0}} önizlemesi", "2251d41ebb": "Gizli worktree grupları", "5a9688802a": "{{value0}} tane daha göster", @@ -5534,7 +5609,8 @@ "keepHiddenAriaLabel_one": "{{repo}} için bulunan {{count}} worktree'yi gizli tut; proje menüsünden geri getir", "keepHiddenAriaLabel_other": "{{repo}} için bulunan {{count}} worktree'yi gizli tut; proje menüsünden geri getir", "keepHiddenTooltip": "Gizli tut - proje menüsünden geri getir", - "repoOnHost": "{{host}} üzerindeki {{repo}}" + "repoOnHost": "{{host}} üzerindeki {{repo}}", + "moreLocations_other": "+ {{count}} konum daha" }, "NonGitFolderDialog": { "e52454b7f6": "Klasör Olarak Aç", @@ -5568,20 +5644,22 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "İptal", - "69f5cb97d0": "Sil", "591f330288": "Proje Grubunu Sil", "2c14ce677a": "Siliniyor...", "0e0e6764af": "İçerdiği projeler", - "ad407c2d55": "daha fazla", - "removeContainedProjectSingular": "İçerdiği 1 projeyi kaldır", - "removeContainedProjectPlural": "İçerdiği {{value0}} projeyi kaldır", "55f75628c0": "Diskteki proje klasörleri silinmez.", - "fec7e9c8ae": "Grubu Sil" + "fec7e9c8ae": "Grubu Sil", + "removeContainedProjects_other": "İçerdiği {{count}} projeyi kaldır", + "deleteGroupDescription": "{{name}} silinecek.", + "moreProjects_other": "+{{count}} tane daha" }, "ProjectGroupNameDialog": { "d99a034073": "İptal", "83dfbc5313": "Grup Adı", - "4a64e78822": "Kaydediliyor..." + "4a64e78822": "Kaydediliyor...", + "defaultGroupName": "{{name}} grubu", + "create": "Oluştur", + "rename": "Yeniden adlandır" }, "RemoteFileBrowser": { "2300612806": "Filtrelemek için yazın veya bir yol girin…", @@ -5593,7 +5671,9 @@ "largeInputNoMatches": "Bu uzun girdi için eşleşme yok", "entriesLabel": "Klasör içeriği", "inputLabel": "Filtre veya yol", - "fileHint": "Dosyalar proje olarak açılamaz" + "fileHint": "Dosyalar proje olarak açılamaz", + "invalidPathRepeatedSeparators": "Geçersiz yol: yinelenen ayırıcılar", + "invalidPathControlCharacters": "Geçersiz yol: kontrol karakterlerine izin verilmez" }, "SleepTwinWorkspaceDialog": { "title": "Çalışma alanını uyut", @@ -5623,11 +5703,10 @@ "70715947fb": "Kurulum betiği boş olamaz", "888b83bf78": "Kurulum betiği kaydedilemedi", "a49196d538": "Orca yeni bir worktree oluşturduğunda çalışır.", - "d9f2db2738": "projenin ayarları", - "a5bb8c5135": "Şurada kaydedildi:", "savedSetupCommand": "Kurulum komutu kaydedildi.", "savedWithSkippedFields_one": "Desteklenmeyen {{count}} alan atlandı. Kurulum komutu kaydedildi.", - "savedWithSkippedFields_other": "Desteklenmeyen {{count}} alan atlandı. Kurulum komutu kaydedildi." + "savedWithSkippedFields_other": "Desteklenmeyen {{count}} alan atlandı. Kurulum komutu kaydedildi.", + "savedInProjectSettings": "Bu projenin ayarlarında kayıtlı" }, "SetupScriptPromptCardViews": { "96a7f4198c": "Yerel kurulumu kaydet", @@ -5635,20 +5714,17 @@ "31b8b01a45": "Ayarlar", "4a98f907ae": "Yeniden dene", "0a98169776": "Orca yeni worktree'ler oluşturduğunda çalıştırılacak bir kurulum komutu ekleyin.", - "8349e3fa4c": ". Yeni worktree'ler için çalıştırmak üzere kaydedin.", - "b56d1322f7": "Şurada bir kurulum komutu bulundu:", "aef6c0a213": "Orca bir worktree oluşturduğunda çalıştırmak için algılanan komutu kaydedin.", - "660cdc17f8": "kurulum betiklerini yok sayıyor. Yerel bir komut ekleyin veya kaynağı Ayarlar'dan değiştirin.", - "8f6be51aa1": "orca.yaml", - "bb879db364": "Bu repo paylaşılan", "0155fb9ed3": "Bu reponun kurulum betiği şu anda doğrulanamadı.", "eefa756190": "Manuel yapılandır", "ca4efcbc25": "Kaydet", - "d02e6a42b1": "Şuradan algılandı:", "fdbc6cb064": "Algılanan kurulum betiği", "7275f674cc": "Algılanan kurulum", "822ff300ad": "Kapat", - "5bfd5c8779": "Kurulum betiklerini kapat" + "5bfd5c8779": "Kurulum betiklerini kapat", + "detectedFromSource": "{{source}} kaynağından algılandı", + "ignoresSharedSetup": "Bu repo, paylaşılan orca.yaml kurulum betiklerini yok sayıyor. Yerel bir komut ekleyin veya Ayarlar bölümünde kaynağı değiştirin.", + "foundSetupCommandIn": "{{source}} içinde bir kurulum komutu bulundu. Yeni worktree'lerde çalıştırmak için kaydedin." }, "SidebarFeedbackDialog": { "8bf619e4cf": "İptal", @@ -5831,8 +5907,8 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "Kapat", "e1a34450fc": "Çalışma alanlarını duruma göre düzenleyin ve çalışma alanı kartlarını açın.", - "81870af08f": "seçildi", - "c6a77ab0f4": "Çalışma alanı panosu" + "c6a77ab0f4": "Çalışma alanı panosu", + "selectedCount_other": "{{count}} seçili" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "Durumu değiştirmeden sabitlemek için buraya bırakın.", @@ -5933,7 +6009,8 @@ "2931b42b09": "Durum: Taslak {{value0}}", "e888362def": "Durum: Kapalı", "f394b3e86e": "Durum: Merge edildi", - "af2b07bda5": "Durum: {{value0}}" + "af2b07bda5": "Durum: {{value0}}", + "checksStatus": "Kontroller: {{status}}" }, "WorktreeCardPorts": { "3240f320d7": "Canlı Portlar", @@ -5944,8 +6021,8 @@ "5d1a5d51bb": "{{value0}} üzerindeki işlem durduruldu", "c89f290e25": "{{value0}} kopyalandı", "d1113f4660": "Tarayıcı açılamadı", - "fed49903c9": "{{value0}} canlı {{value1}}", - "unknownProcess": "Bilinmeyen işlem" + "unknownProcess": "Bilinmeyen işlem", + "livePorts_other": "{{count}} etkin port" }, "WorktreeContextMenu": { "c39c37676a": "Bir grup oluşturun ve bu projeyi içine taşıyın.", @@ -5990,7 +6067,6 @@ "f9dc6cc5d3": "Proje Grubunu Yeniden Adlandır", "370c6a55dd": "Filtreleri Temizle", "b7acbf038b": "Çalışma alanı bulunamadı", - "0c6ee14f23": "alt", "c83968f87f": "Projeyi Kaldır", "64e55f7f01": "Gruptan kaldır", "4a08fb55f2": "Gruba taşı", @@ -6003,12 +6079,7 @@ "4d7b73658c": "Grubu yeniden adlandır", "79465e9034": "{{value0}} için grup işlemleri", "bfbedc547b": "Worktree'ler", - "045a8aed48": "alt öğeler", "bb85cd86ba": "{{value0}} için çalışma alanı oluştur", - "20bebf9c7f": "{{value0}} alt çalışma alanını göster", - "c1f4a31623": "{{value0}} alt çalışma alanını göster", - "e97297cb75": "{{value0}} alt çalışma alanını gizle", - "0cd15956d4": "{{value0}} alt çalışma alanını gizle", "bd37a57ac8": "{{value0}} için çalışma alanı oluştur", "b667b59632": "Bazı projeler Orca'dan kaldırılamadı", "groupDeleteFailed": "Grup silinemedi", @@ -6019,8 +6090,10 @@ "sidebarRowMissing": "Hedef artık mevcut değil", "failedUnnestWorkspace": "Çalışma alanının iç içe yerleşimi kaldırılamadı", "hostRepairRequired": "Yeniden eşleştirme gerekiyor", - "groupProjectsRemainedSingular": "Grup silindikten sonra içindeki {{count}} projeden {{remaining}} tanesi kaldı.", - "groupProjectsRemainedPlural": "Grup silindikten sonra içindeki {{count}} projeden {{remaining}} tanesi kaldı." + "showChildWorkspaces_other": "{{count}} alt çalışma alanını göster", + "hideChildWorkspaces_other": "{{count}} alt çalışma alanını gizle", + "childCount_other": "{{count}} alt öğe", + "groupProjectsRemained_other": "Grup silindikten sonra içerdiği {{count}} projeden {{remaining}} tanesi kaldı." }, "WorktreeMetaDialog": { "3db0a2a593": "İptal", @@ -6084,7 +6157,6 @@ "d40d436fc2": "Worktree görünürlüğü güncellenemedi. Tekrar deneyin.", "unsupportedHost": "Bu host, kaynağa özel worktree görünürlüğünü desteklemiyor. Bu ayarı değiştirmek için host'taki Orca'yı güncelleyin.", "search": "Gizli worktree'lerde ara", - "searchPlaceholder": "{{value0}} worktree'lerinde ara…", "noMatches": "Eşleşen worktree yok", "allShown": "Bulunan tüm worktree'ler gösteriliyor", "noneFound": "Orca dışı worktree bulunamadı", @@ -6092,7 +6164,8 @@ "disableSource": "Worktree'lerini tek tek yönetmek için bir kaynağı devre dışı bırakın.", "appearWhenDetected": "Orca yeni worktree'ler algıladığında burada görünecekler.", "openGlobalSettings": "Genel Ayarlar'da Yönet", - "globalSettingsSources": "Bu kaynakların, burada geçersiz kılabileceğiniz genel bir ayarı vardır:" + "globalSettingsSources": "Bu kaynakların, burada geçersiz kılabileceğiniz genel bir ayarı vardır:", + "searchHiddenPlaceholder_other": "{{count}} worktree içinde ara…" }, "add": { "repo": { @@ -6299,13 +6372,11 @@ "7a8b9c0d1e": "Ayarları aç", "8b9c0d1e2f": "Host'u kaldır", "workspacesFailed": "Bu host'un {{count}} çalışma alanı kaldırılamadı. Tekrar deneyebilmeniz için host korundu.", - "oneWorkspace": "1 çalışma alanı", - "manyWorkspaces": "{{count}} çalışma alanı", - "hostHasWorkspacesDefault": "{{value0}} öğesini ve kimlik bilgilerini bu bilgisayardan kaldırır. {{value1}} Orca'da kalır, uzak dosyalara dokunulmaz.", - "alsoForgetLocal": "Bu {{value0}} öğesini Orca'dan da kaldır", "advanced": "Gelişmiş", "alsoForgetLocalHint": "Yalnızca Orca'dan temizler. Uzak dosyalar, worktree'ler ve branch'ler dokunulmadan bırakılır.", - "wslHostEndsTerminalsUnlessShared": "{{value0}} öğesini Orca'dan kaldırır. Bu bilgisayarda açık olan başka bir Orca onu kullanmıyorsa açık terminallerini de sonlandırır ve bu dağıtımdaki Orca sunucusunu durdurur. Dağıtımdaki dosyalar değiştirilmez." + "wslHostEndsTerminalsUnlessShared": "{{value0}} öğesini Orca'dan kaldırır. Bu bilgisayarda açık olan başka bir Orca onu kullanmıyorsa açık terminallerini de sonlandırır ve bu dağıtımdaki Orca sunucusunu durdurur. Dağıtımdaki dosyalar değiştirilmez.", + "hostKeepsWorkspaces_other": "{{host}} sunucusunu ve kimlik bilgilerini bu bilgisayardan kaldırır. Sunucudaki {{count}} çalışma alanı Orca'da kalır — uzak dosyalara dokunulmaz.", + "alsoRemoveWorkspaces_other": "Bu {{count}} çalışma alanını da Orca'dan kaldır" }, "HostRenameDialog": { "1a2b3c4d5e": "Host'u yeniden adlandır", @@ -6378,7 +6449,7 @@ "current": "Mevcut", "searchPlaceholder": "Worktree'lerde ara...", "empty": "Eşleşen uygun worktree yok.", - "setParentFor": "Şunun için üst ayarla:" + "setParentForName": "{{name}} için üst öğe ayarla" }, "WorktreeCardStatusSlot": { "branchIdentity": "Branch", @@ -6388,12 +6459,10 @@ }, "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "{{value0}} için harici worktree'leri kalıcı olarak gizle", - "2a6f31d8c7": "gizli worktree", - "5b90e4a2f6": "gizli worktree", - "7f18c5b0d3": "{{value1}} içindeki {{value0}} gizli worktree'yi incele", - "4e2b7a9c05": "{{value1}} içindeki {{value0}} gizli worktree'yi incele", "c3e8a1f4b2": "Bir daha gösterme", - "6c07f3a91e": "{{value1}} üzerinde {{value0}}" + "6c07f3a91e": "{{value1}} üzerinde {{value0}}", + "hiddenWorktreesNoun_other": "gizli worktree'ler", + "reviewHiddenWorktrees_other": "{{scope}} kapsamındaki {{count}} gizli worktree'yi incele" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} bağlantısı kesildi", @@ -6484,8 +6553,8 @@ "sshConfigPickerRetry": "Tekrar dene", "sshConfigPickerResolving": "Okunuyor…", "pairingHelpShareComputer": "Bunu diğer bilgisayarda Ayarlar → Uzak Orca Sunucuları → Bu bilgisayarı paylaş bölümünden oluşturun.", - "sshImportSyncedPlural": "Orca'ya {{count}} sunucu eklendi.", - "sshImportSyncedSingular": "Orca'ya {{count}} sunucu eklendi." + "sshImportSynced_other": "Orca'ya {{count}} sunucu eklendi.", + "sshConfigPickerInvalidResponse": "SSH yapılandırmasındaki sunucular için geçersiz yanıt" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} artık kayıtlı bir SSH sunucusu olmadığı için bu çalışma alanı etkin bir sunucuya bağlı değil. Yalnızca Orca'dan kaldırılabilir; uzak sunucudaki dosyalar ve branch'ler değiştirilmez.", @@ -6508,11 +6577,11 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "Eşleşen çalışma alanı yok", - "4d96c209d6": "{{value1}} çalışma alanından {{value0}} tanesi eşleşiyor", "c0cd6bdf6c": "Çalışma alanlarında ara", "3b7ea51793": "Aramayı temizle", "7f1c2e94a5": "Arama metni çok uzun, pano filtrelenmedi", - "9a4d0f6b21": "Çok uzun" + "9a4d0f6b21": "Çok uzun", + "workspacesMatch_other": "{{count}} çalışma alanından {{matchCount}} tanesi eşleşiyor" }, "WorktreeCardSshHostControl": { "connectFailed": "SSH bağlantısı başarısız oldu", @@ -6610,11 +6679,11 @@ "developerToolsTitle": "Apple'ın komut satırı araçlarını yükleyin", "developerToolsBody": "Git, Apple'ın geliştirici araçlarına ihtiyaç duyar. Bunu Terminal'de çalıştırıp Orca'ya dönün. Otomatik olarak yeniden kontrol edilecek.", "affectedOne": "{{value0}} için worktree taraması duraklatıldı", - "affectedMany": "{{value0}} proje için worktree taraması duraklatıldı", "copyCommand": "Komutu kopyala", "copied": "Komut kopyalandı", "retry": "Şimdi tekrar dene", - "restored": "Git yeniden çalışıyor. Worktree'ler yenilendi." + "restored": "Git yeniden çalışıyor. Worktree'ler yenilendi.", + "affectedProjects_other": "{{count}} proje için worktree taraması duraklatıldı" }, "manualSortSwitch": { "title": "Sıralama Manuel olarak değiştirildi", @@ -6659,7 +6728,8 @@ "wslHostRemoval": { "keptForOthers": "Bu Orca’dan kaldırıldı. Ana bilgisayar {{value0}} için çalışmaya devam ediyor.", "partial": "Ana makine kaldırıldı ancak dağıtım içinde hâlâ çalışan bir şey var: {{value0}}", - "pending": "Orca ana makineyi henüz kaldırmadı: {{value0}} Tekrar denemek için yeniden kaldırın veya tutmak için bağlanın." + "pending": "Orca ana makineyi henüz kaldırmadı: {{value0}} Tekrar denemek için yeniden kaldırın veya tutmak için bağlanın.", + "unavailable": "Bu bilgisayarda WSL sunucuları kullanılamıyor." }, "addRepoWslHostFolderPicker": { "otherDistro": "Bu klasör {{value1}} içinde değil, {{value0}} içinde.", @@ -6700,6 +6770,40 @@ "openingProject": "Proje açılıyor…", "openingFolder": "Klasör açılıyor…", "chooseFolder": "Klasör seç…" + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "Bu sunucu iç içe worktree silmeyi desteklemiyor." + }, + "WorktreeCardHelpers": { + "checksPassing": "Başarılı", + "checksFailing": "Başarısız", + "checksPending": "Beklemede", + "conflictMerging": "Merge ediliyor", + "conflictRebasing": "Rebase ediliyor", + "conflictCherryPicking": "Cherry-pick ediliyor" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "{{name}} çalışma alanı" + }, + "workspaceKanbanStatus": { + "defaultLabel": "Durum {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_other": "{{preview}}, +{{count}} tane daha" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "MR ayrıntıları kullanılamıyor", + "prDetailsUnavailable": "PR ayrıntıları kullanılamıyor", + "loadingMr": "MR yükleniyor…", + "loadingPr": "PR yükleniyor…" + }, + "HostSectionHeader": { + "workspaceCount_other": "{{count}} çalışma alanı" + }, + "titleDerivedAgentRows": { + "needsInput": "Girdi gerekiyor", + "running": "Çalışıyor", + "idle": "Boşta" } }, "shared": { @@ -14258,17 +14362,8 @@ "saveLocation": "Konumu ayarla" }, "SmartWorkspaceNameField": { - "2a0d535f69": "Yeni branch oluştur", - "a44229ce4d": "çalışma alanı adı olarak", - "766083a596": "\"", - "34ca97bce3": "\"", - "b1a7d679ba": "Kullan", "e57c53727c": "Proje ekle...", - "a76fcb4fa0": "Şuna geç:", - "eadf877af5": "Koru", "6859e2896c": "İptal", - "9ef1a7c4b0": ", bu seçili projeden farklı.", - "ad188067ae": "GitHub URL'si şunu gösteriyor:", "4bd98f1091": "Proje değiştirilsin mi?", "0c9e668e3a": "Temizle", "7199ff19c7": "Seçili kaynağı temizle", @@ -14287,7 +14382,6 @@ "fda67f0b61": "mevcut proje", "3e8bb1176a": "Sorunları aramak için Ayarlar'da Linear'ı bağlayın.", "switchTaskSourceTitle": "Görev kaynağı değiştirilsin mi?", - "differentTaskSource": ", bu seçili görev kaynağından farklı.", "currentTaskSource": "mevcut görev kaynağı", "placeholderNameOrLinearUrl": "Bir ad, Linear URL'si veya Jira URL'si yazın", "placeholderWorkspaceName": "Bir çalışma alanı adı yazın", @@ -14316,7 +14410,13 @@ "emoji": "Emoji", "loadingLinearIssue": "Linear sorunu yükleniyor…", "linearLoginUnreadableTitle": "Linear'ı yeniden bağla", - "linearLoginUnreadableBody": "Kayıtlı Linear oturum açma bilgisi okunamıyor. Ayarlar'dan yeniden bağlayın." + "linearLoginUnreadableBody": "Kayıtlı Linear oturum açma bilgisi okunamıyor. Ayarlar'dan yeniden bağlayın.", + "keepRepo": "{{name}} seçimini koru", + "switchToRepo": "{{name}} seçimine geç", + "crossRepoDifferentTaskSource": "GitHub URL'si, seçili görev kaynağından farklı olan {{repo}} reposunu gösteriyor.", + "crossRepoDifferentProject": "GitHub URL'si, seçili projeden farklı olan {{repo}} reposunu gösteriyor.", + "useAsWorkspaceName": "Çalışma alanı adı olarak \"{{name}}\" kullan", + "createNewBranchNamed": "{{name}} adlı yeni branch oluştur" }, "ProjectCombobox": { "empty": "Aramanızla eşleşen proje yok.", @@ -14330,6 +14430,11 @@ "listLabel": "Çalıştırma hedefleri", "label": "Çalıştırma yeri", "browse": "Çalıştırma hedeflerine göz at" + }, + "projectCombobox": { + "recentHeading": "Son kullanılanlar", + "projectsHeading": "Projeler", + "foldersHeading": "Klasörler" } } }, @@ -15929,7 +16034,8 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value1}} alt {{value2}} {{value0}}" + "hideChildAgents_other": "{{count}} alt ajanı gizle", + "showChildAgents_other": "{{count}} alt ajanı göster" }, "DashboardAgentRow": { "912e136cd9": "Gönder", @@ -15937,7 +16043,12 @@ "a41fb5376e": "Ayrıntıları daralt", "5ae84475cc": "Kapat", "b06e13fcf7": "Ajanı kapat", - "0272969e28": "Bu ajana gönder" + "0272969e28": "Bu ajana gönder", + "justNow": "az önce", + "timeAgo": "{{duration}} önce", + "dispatchedAgents_other": "{{agentType}} - {{count}} ajan görevlendirildi", + "startedAgo": "{{time}} başladı", + "doneAgo": "{{time}} tamamlandı" }, "DashboardAgentRowMessage": { "0a01046763": "kesildi", @@ -17043,18 +17154,17 @@ "activityOptionsActive": "Etkinlik seçenekleri ({{value0}})" }, "clearCompleted": { - "clearedOne": "1 tamamlanmış ajan temizlendi", - "clearedMany": "{{count}} tamamlanmış ajan temizlendi", - "undo": "Geri al" + "undo": "Geri al", + "cleared_other": "{{count}} tamamlanmış ajan temizlendi" }, "standaloneWorktree": { "floatingTerminal": "Yüzen terminal", "standaloneTerminal": "Bağımsız terminal" }, "ActivityTitlebarControls": { - "f915168c8e": "okunmadı", "d6a8de3934": "ajan", - "dc708f3eff": "Ajanları kapat" + "dc708f3eff": "Ajanları kapat", + "unreadCount_other": "{{count}} okunmamış" }, "ActivityScopeFilterControls": { "resetScope": "Tüm sunucuları ve projeleri göster", @@ -17834,6 +17944,16 @@ "unreachable": "Jira'ya ulaşılamadı. Bağlantınızı kontrol edip yeniden deneyin.", "loadFailed": "Jira sorunları yüklenemedi. Biraz sonra yeniden deneyin.", "errorWithCode": "Hata {{code}}: {{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "“{{action}}” çalıştırılamıyor — çalışma alanı hâlâ yükleniyor.", + "noActiveWorkspace": "“{{action}}” çalıştırılamıyor — etkin çalışma alanı yok.", + "workspaceDisconnected": "“{{action}}” çalıştırılamıyor — çalışma alanının bağlantısı kesildi.", + "noTabGroup": "“{{action}}” çalıştırılamıyor — kullanılabilir sekme grubu yok.", + "noMovableChat": "“{{action}}” çalıştırılamıyor — taşınabilir etkin sohbet yok.", + "clientUnsupported": "“{{action}}” çalıştırılamıyor — bu istemci ve çalışma zamanı bunu desteklemiyor." + } } }, "i18n": { @@ -19042,8 +19162,6 @@ "none": "Hiçbiri yok" }, "idleSignalField": "Boşta kalma sinyali", - "selectionVanishedOne": "Seçilen 1 çalışma alanı artık mevcut değil.", - "selectionVanished": "Seçilen {{value0}} çalışma alanı artık mevcut değil.", "updatedAgo": "{{value0}} güncellendi", "refreshing": "Yenileniyor…", "refreshingProgress": "Yenileniyor {{value0}}/{{value1}}", @@ -19058,12 +19176,6 @@ "gitStatusCheckFailed": "Git durumu kontrolü başarısız oldu", "gitStatusUnverified": "Git durumu doğrulanamadı", "deleteAnyway": "Yine de sil", - "forceDeleteProjectionOne": "{{count}} çalışma alanı şu anda risk gösteriyor ve zorla silme gerekebilir", - "forceDeleteProjectionMany": "{{count}} çalışma alanı şu anda risk gösteriyor ve zorla silme gerekebilir", - "selectionWithheldOne": "Seçilen 1 çalışma alanı mevcut filtreler tarafından gizlendi ve seçimi kaldırıldı.", - "selectionWithheld": "Seçilen {{value0}} çalışma alanı mevcut filtreler tarafından gizlendi ve seçimleri kaldırıldı.", - "selectAllCountOne": "Güvenlik kontrolünden geçmiş 1 çalışma alanını seç", - "selectAllCount": "Güvenlik kontrolünden geçmiş {{value0}} çalışma alanının tümünü seç", "appliedFilters": "Uygulanan filtreler", "removeFilter": "{{value0}} filtresini kaldır", "chip": { @@ -19107,18 +19219,21 @@ "locked": "Kilitli", "retainedAgents": "Tamamlanmış ajanlar" } - } + }, + "forceDeleteRisk_other": "Şu anda {{count}} çalışma alanında risk var ve bunların zorla silinmesi gerekebilir", + "selectionVanishedCount_other": "Seçili {{count}} çalışma alanı artık mevcut değil.", + "selectionWithheldCount_other": "Seçili {{count}} çalışma alanı geçerli filtreler tarafından gizlendiği için seçimden çıkarıldı.", + "selectAllSafetyChecked_other": "Güvenlik kontrolünden geçen {{count}} çalışma alanının tümünü seç" }, "scan": { "progress": "Çalışma alanları taranıyor ({{value0}}/{{value1}})", "singleError": "{{value0}} kontrol edilemedi: {{value1}}. Bazı çalışma alanları eksik olabilir. Tekrar denemek için yenileyin.", - "moreErrors": ", +{{value0}} daha", - "multipleErrors": "{{value0}} repository kontrol edilemedi ({{value1}}{{value2}}). Bazı çalışma alanları eksik olabilir. Tekrar denemek için yenileyin.", "noWorkspaces": "Çalışma alanı bulunamadı.", "fallbackRepository": "bir repository", "gitListFailed": "Git worktree'leri listeleyemedi", - "readyOne": "1 çalışma alanı bulundu.", - "readyMany": "{{value0}} çalışma alanı bulundu." + "multipleErrorsWithMore_other": "{{count}} repository ({{names}}, +{{moreCount}} tane daha) kontrol edilemedi. Bazı çalışma alanları eksik olabilir. Yeniden denemek için yenileyin.", + "multipleErrorsCount_other": "{{count}} repository ({{names}}) kontrol edilemedi. Bazı çalışma alanları eksik olabilir. Yeniden denemek için yenileyin.", + "readyCount_other": "{{count}} çalışma alanı bulundu." }, "relativeTime": { "never": "Hiçbir zaman", @@ -20237,7 +20352,6 @@ "repositoryLoading": "Repo kimliği hâlâ yükleniyor. Kullanılabilir olduğunda yeniden deneyin.", "duplicate": "Bu bağlantı zaten eklenmiş.", "title": "Bağlı işler", - "count": "{{count}} bağlı", "empty": "Bu çalışma alanına ait tüm inceleme ve görevleri bir arada tutun.", "reviews": "İncelemeler", "tasks": "Sorunlar ve görevler", @@ -20245,7 +20359,6 @@ "open": "Bağlantıyı aç", "unlinkItem": "{{label}} bağlantısını kaldır", "unlink": "Çalışma alanıyla bağlantısını kaldır", - "show": "Bağlı {{count}} inceleme ve görevi göster", "details": "Çalışma alanı ayrıntıları", "description": "Bu çalışma alanına inceleme ve görevler ekleyin, notlar tutun.", "commentHelp": "Markdown desteklenir. Kaydetmek için Enter veya {{shortcut}} · Yeni satır için Shift+Enter.", @@ -20298,7 +20411,9 @@ "checksPassing": "Başarılı", "checksUnknown": "Bilinmiyor", "checksNeutral": "Nötr", - "allReviewChecks": "İncelemeler: {{count}} · Kontroller: {{status}}" + "allReviewChecks": "İncelemeler: {{count}} · Kontroller: {{status}}", + "showLinked_other": "Bağlantılı {{count}} inceleme ve görevi göster", + "linkedCount_other": "{{count}} bağlantılı" }, "attachments": { "updateRuntime": "Çalışma alanı bağlantılarını değiştirmek için uzak çalışma zamanını güncelleyin", @@ -20479,8 +20594,8 @@ }, "compact": { "linkedAndUnavailable": "Bağlı worktree'lerde {{value0}} · {{value1}} kullanılamıyor", - "linkedAndScanned": "Bağlı worktree'lerde {{value0}} · {{value1}} çalışma alanı", - "linked": "Bağlı" + "linked": "Bağlı", + "linkedAndScannedCount_other": "Bağlantılı worktree'lerde {{size}} · {{count}} çalışma alanı" }, "savedScan": { "folderDetailsUnavailable": "Klasör ayrıntıları geçmiş taramalarla birlikte kaydedilmez. Bu çalışma alanını incelemek için yenileyin." diff --git a/src/renderer/src/i18n/locales/zh-Hant.json b/src/renderer/src/i18n/locales/zh-Hant.json index ebd2ff05279..767d0bf60d7 100644 --- a/src/renderer/src/i18n/locales/zh-Hant.json +++ b/src/renderer/src/i18n/locales/zh-Hant.json @@ -2189,7 +2189,6 @@ "ba64270bdb": "設定代理程式", "ab63f25397": "開啟代理程式設定", "0c5d6a479c": "[可選]", - "b5a0796911": "連線", "dccd26d4e4": "選擇專案", "d6b0a96f32": "新增專案", "969a8bff66": "專案", @@ -2250,7 +2249,8 @@ "runSetupNow": "立即執行設定", "runCommandsNow": "立即執行指令", "skipForNow": "暫時略過", - "skipCommands": "略過指令" + "skipCommands": "略過指令", + "connectProject": "連線至 {{name}}" }, "NewWorkspaceComposerModal": { "createWorktree": "建立工作樹", @@ -3724,21 +3724,18 @@ }, "drop": { "handler": { - "1e072f611e": "無法上傳 {{value0}} {{value1}}。", "0c77693641": "工作樹尚未準備好 - 請稍後再試。", "ce8248b835": "工作樹路徑不可用。", "internalTooManyPaths": "拖放的路徑過多,無法安全貼上到終端機。", "internalPathsTooLarge": "拖放的路徑清單過大,無法安全貼上到終端機。", "internalHostMismatch": "請拖放與此終端機位於同一主機的檔案。", - "b4cf68e889": "已跳過 {{value0}} {{value1}}。", "writeTimeout": "檔案拖放已取消:終端機在安全逾時前未接受路徑。", "writeRejected": "檔案拖放已取消:終端機無法接受路徑。", - "skippedSymlinkSingular": "已略過 {{count}} 個符號連結。", - "skippedSymlinkPlural": "已略過 {{count}} 個符號連結。", - "uploadingFileSingular": "正在將 {{count}} 個檔案上傳至執行環境…", - "uploadingFilePlural": "正在將 {{count}} 個檔案上傳至執行環境…", - "uploadingFileToRemoteSingular": "正在將 {{count}} 個檔案上傳至遠端…", - "uploadingFileToRemotePlural": "正在將 {{count}} 個檔案上傳至遠端…" + "skippedSymlinks_other": "已略過 {{count}} 個符號連結。", + "skippedItems_other": "已略過 {{count}} 個項目。", + "failedUploads_other": "{{count}} 個檔案上傳失敗。", + "uploadingFiles_other": "正在將 {{count}} 個檔案上傳至執行環境…", + "uploadingFilesToRemote_other": "正在將 {{count}} 個檔案上傳至遠端…" } } }, @@ -3856,10 +3853,15 @@ "sessionQueued": "工作階段已排隊", "openSupportedWorkspace": "在恢復工作階段之前,請先開啟一個工作區。", "sessionHostMismatchUnsupported": "此工作階段屬於其他主機。請將其拖放到同一主機上的工作區。", - "oldPayload": "此工作階段是從較早版本的 Orca 視窗拖入的。請改從工作階段歷史恢復。" + "oldPayload": "此工作階段是從較早版本的 Orca 視窗拖入的。請改從工作階段歷史恢復。", + "legacyDragCannotRetarget": "此工作階段是從舊版 Orca 視窗拖曳而來,因此 Orca 無法將其切換至所選的 Codex 帳戶。請改從工作階段歷史記錄面板恢復。", + "legacyDragPrepareFailed": "Orca 無法準備此舊版 Codex 工作階段。請再次嘗試恢復。" }, "TabGroupDropOverlay": { "paneColumnLabel": "新增分割" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "配對的執行環境無法複製受管理的瀏覽器分頁。" } }, "bar": { @@ -4054,6 +4056,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "主機不可用", "7c129b08ff": "正在載入主機..." + }, + "nativeChatCliFork": { + "cannotOpenInCli": "無法在 CLI 中開啟此工作階段。" + }, + "tabCreateEntry": { + "fileNotFound": "找不到檔案:{{path}}", + "cannotOpenDirectory": "無法開啟目錄:{{path}}", + "parentNotDirectory": "無法建立檔案,因為 {{path}} 不是目錄。", + "fileNoLongerExists": "檔案已不存在:{{path}}", + "noActiveWorktree": "沒有作用中的工作樹。" + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "檔案路徑不能包含控制字元。", + "enterAUrlOrFilePath": "請輸入 URL 或檔案路徑。", + "homeRelativePathsAreNotSupported": "此處不支援相對於家目錄的路徑。", + "enterAFilePathNotA": "請輸入檔案路徑,而非目錄路徑。", + "enterAnAbsoluteFilePath": "請輸入檔案的絕對路徑。", + "enterAnAbsolutePathForThis": "請輸入這部電腦上的絕對路徑。", + "enterARelativeFilePath": "請輸入檔案的相對路徑。", + "windowsDrivePathsAreNotSupported": "此處不支援 Windows 磁碟機路徑。", + "uncPathsAreNotSupportedHere": "此處不支援 UNC 路徑。", + "filePathsCannotContainEmptySegments": "檔案路徑不能包含空的路徑區段。", + "filePathsCannotContainDotSegments": "檔案路徑不能包含 . 或 .. 路徑區段。", + "filePathsCannotContainTildeSegments": "檔案路徑不能包含 ~ 路徑區段。" } } }, @@ -4081,15 +4107,13 @@ "4ebf90c12e": "未偵測到外部連接埠", "7dac3ecc9d": "外部連接埠", "95495019ed": "{{value0}} 上無法進行連接埠掃描:{{value1}}", - "a8e4bdb412": "· {{value0}} 外部", "c22ea609fd": "連接埠", - "ca41be2802": "連接埠 — 工作區內有 {{value0}} 個{{value1}}{{value2}}", - "b8bc3e420a": "連接埠,工作區:{{value0}} 個{{value1}}", "3a87d54dfb": "未偵測到工作區連接埠", "c174bbbfed": "正在掃描工作區連接埠...", - "8caaa86e9a": "連接埠", - "45834a9ace": "連接埠", - "2b84c4d11f": "工作區連接埠:{{value0}} · 外部連接埠:{{value1}}" + "2b84c4d11f": "工作區連接埠:{{value0}} · 外部連接埠:{{value1}}", + "portsAria_other": "連接埠,{{count}} 個工作區連接埠", + "portsTooltipWithExternal_other": "連接埠 — {{count}} 個工作區連接埠 · {{externalCount}} 個外部連接埠", + "portsTooltip_other": "連接埠 — {{count}} 個工作區連接埠" }, "ResourceUsageStatusSegment": { "946d9f94d0": "取消", @@ -4098,7 +4122,6 @@ "27a74f91f0": "目前沒有任何行程正在執行", "298f4be7f2": "CPU", "2aa2de6cb9": "名稱", - "30ff2c3c31": "{{value0}} 個孤立項", "1fedf94eae": "CPU 總負載。高於 100% 的值意味著多個核心同時工作。", "e7cf14ec78": "終端機工作階段不可用。該清單可能已過時。", "93b0de3c21": "重新啟動", @@ -4128,10 +4151,9 @@ "d406915b78": "渲染器", "81cd37af99": "主行程", "fa6d36758d": "終止工作階段 {{value0}}", - "b8f4a2c1d0e3": "{{value0}} 個孤立項", - "c7e3b1a0d9f2": "結束 {{value0}} 個孤立終端機", - "d8f4c2b1e0a3": "結束 {{value0}} 個孤立終端機", - "e9a5d3c2b1f0": "終止 {{value0}}?" + "e9a5d3c2b1f0": "終止 {{value0}}?", + "endOrphanTerminals_other": "結束 {{count}} 個孤立終端機", + "orphanCount_other": "{{count}} 個孤立項" }, "SshStatusSegment": { "3ad70e0365": "管理遠端主機…", @@ -4191,10 +4213,6 @@ "3325d996cb": "重新整理速率限制", "cd9d7b40ff": "重新啟動 {{value0}} 工作階段", "6cd6650b4c": "重新啟動工作階段", - "1446d0d8a0": "{{value0}} 個 Codex 工作階段仍使用舊帳戶。", - "605901a495": "1 個 Codex 工作階段仍使用舊帳戶", - "5e5f9f5160": "1 次速率限制重設可用", - "5ecae9197c": "{{value0}} 次速率限制重設可用", "25d8bbde69": "正在使用重設…", "e159fc1fd7": "立即重設", "972a1ff497": "重設 Codex 限額?", @@ -4211,7 +4229,9 @@ "codexSignInError": "Codex 登入失敗。請再試一次。", "cursorUsageMenu": "Cursor 用量", "hiddenUsageProviders": "另有:{{value0}}", - "zcodeUsageMenu": "ZCode 用量" + "zcodeUsageMenu": "ZCode 用量", + "rateLimitResetsAvailable_other": "可重設速率限制 {{count}} 次", + "staleCodexSessions_other": "{{count}} 個 Codex 工作階段仍在使用舊帳戶。" }, "StatusBarUsageEmptyCta": { "828c764a79": "連結帳戶", @@ -4228,13 +4248,13 @@ "SkillUpdateStatusSegment": { "runningLabel": "正在更新技能", "runningOne": "正在更新 {{value0}}…", - "runningMany": "正在更新 {{value0}} 項技能…", "runningAria": "技能正在更新。點選檢視詳情。", "successLabel": "技能已更新", "successAria": "技能已更新。點選檢視詳情。", "attentionAria": "已略過部分技能更新。點選檢視詳情。", "attentionLabel": "技能需要處理", - "attentionTooltip": "已略過部分技能更新,點選檢視詳情" + "attentionTooltip": "已略過部分技能更新,點選檢視詳情", + "runningSkills_other": "正在更新 {{count}} 個技能…" }, "UpdateStatusSegment": { "5cd13105a3": "更新失敗。按一下以展開。", @@ -4276,11 +4296,8 @@ "6f8f6a6b04": "篩選工作區", "5caccea440": "刪除所選內容", "e4a12c455b": "清除", - "0cb1501ccf": "可回收的", - "65402b7192": "已選擇", "43171f3e60": "工作區", "09960d86bd": "已掃描", - "63efebe0e6": "{{value0}} {{value1}} 從空間中移除。", "eee5240810": "工作區已刪除", "9afc97f9a3": "工作區已刪除", "792a214457": "刪除工作區", @@ -4288,7 +4305,6 @@ "9155381019": "稀疏", "f39d291997": "選擇", "16988df079": "沒有找到檔案。", - "b25c2c1086": "最上層項目", "d3f9c69ddc": "縮放", "ef890d31b9": "全部", "c28643d3da": "轉到工作區", @@ -4327,8 +4343,12 @@ "c5135e7e4a": "掃描工作區大小。您可以離開此頁面。", "0990a63160": "尚無掃描的工作區大小。", "977bdf9a36": "沒有可顯示的最上層項目。", - "131662ac65": "已開啟 {{value0}} 個", - "0d1c78d749": "選擇 {{value0}}" + "0d1c78d749": "選擇 {{value0}}", + "removedFromSpace_other": "已從空間中移除 {{count}} 個工作區。", + "topLevelItems_other": "{{formattedCount}} 個頂層項目", + "selectedCount_other": "已選取 {{count}} 項", + "reclaimableSize": "可回收 {{size}}", + "scanning": "掃描中" }, "ports": { "status": { @@ -4342,7 +4362,8 @@ "e4a709548c": "重新整理連接埠失敗", "acdb6df590": "已停止 {{value0}} 上的行程", "480d8f2347": "已複製 {{value0}}", - "b854ec9ff5": "無法開啟瀏覽器" + "b854ec9ff5": "無法開啟瀏覽器", + "unknownProcess": "未知行程" } } } @@ -4371,8 +4392,6 @@ "7ad719c4bf": "受限", "e740f92596": "重新整理失敗", "8418ec448d": "{{value0}} 用量無法重新整理。代理程式工作階段可能仍處於登入狀態。", - "45198c7d95": "1 次速率限制重設可用", - "bce421cba3": "{{value0}} 次速率限制重設可用", "7ec6e030a0": "下一個現在過期", "d1e442a9e5": "現在過期", "6cf9eaed10": "下一個將在 {{value0}} 後過期", @@ -4421,7 +4440,13 @@ "label": "執行 Claude 時更新", "message": "Claude 用量將在下次執行 Claude 時更新。" } - } + }, + "justNow": "剛剛", + "minutesAgo": "{{minutes}} 分鐘前", + "hoursAgo": "{{hours}} 小時前", + "updatedAgo": "更新於 {{time}}", + "notYetUpdated": "尚未更新", + "rateLimitResetsAvailable_other": "可重設速率限制 {{count}} 次" }, "SshTargetStatusRow": { "sshHost": "SSH 主機" @@ -4456,12 +4481,10 @@ "RemoteServerUpdateStatusSegment": { "updating": "正在更新 {{value0}}/{{value1}}", "updatingTooltip": "遠端 Orca 伺服器更新正在進行中", - "failed": "{{value0}} 個伺服器更新失敗", "failedTooltip": "開啟遠端 Orca 伺服器更新以檢視並重試", - "updated": "{{value0}} 個伺服器已更新", "updatedTooltip": "遠端 Orca 伺服器更新已完成", - "failedOne": "1 個伺服器更新失敗", - "updatedOne": "1 個伺服器已更新" + "failedCount_other": "{{count}} 個伺服器更新失敗", + "updatedCount_other": "已更新 {{count}} 個伺服器" }, "resource": { "memory": { @@ -4469,7 +4492,10 @@ "workingSetDescription": "工作集 (WS) 的總和:目前駐留在 RAM 中的頁面。共用頁面可能會出現在多個行程中,Windows 已換出的記憶體不計入其中。", "privateBytesDescription": "私有位元組總和:這些行程已提交的記憶體,無論目前駐留在記憶體中或已換出都會計入。主機會將其計入提交上限,因此當上方的工作集因分頁而縮小時,此數值仍會持續增加。", "footprintDescription": "記憶體佔用總和,與 Activity Monitor 顯示的數值相同:各行程擁有的記憶體,包括圖形記憶體。行程間共用的記憶體分頁不會重複計算。", - "rssDescription": "駐留集大小 (RSS) 的總和。共用頁或別名對映頁可能會出現在多個行程中。" + "rssDescription": "駐留集大小 (RSS) 的總和。共用頁或別名對映頁可能會出現在多個行程中。", + "memColumn": "記憶體", + "memorySummary": "Σ 記憶體", + "privateSummary": "Σ 私有" } }, "manager": { @@ -4518,29 +4544,21 @@ "repair": "重新配對…" }, "NativeChatResumeStatusSegment": { - "labelOne": "1 個聊天待恢復", - "label": "{{value0}} 個聊天待恢復", - "ariaLabelOne": "1 個聊天可恢復", - "ariaLabel": "{{value0}} 聊天可恢復", "tooltip": "開啟可恢復的中斷聊天", - "failedLabelOne": "1 個聊天恢復失敗", - "failedLabel": "{{value0}} 個聊天恢復失敗", - "failedAriaOne": "1 個聊天恢復失敗。點選檢視詳情。", - "failedAria": "{{value0}} 個聊天恢復失敗。點選檢視詳情。", "failedTooltip": "重啟後 Orca 未能恢復的聊天。點選檢視詳情。", - "checkLabelOne": "1 個待檢查的聊天", - "checkLabel": "{{value0}} 個待檢查的聊天", - "checkAriaOne": "恢復後有 1 個待檢查的聊天。點選檢視詳情。", - "checkAria": "恢復後有 {{value0}} 個待檢查的聊天。點選檢視詳情。", "checkTooltip": "重啟後 Orca 未能恢復或未能確認已恢復的聊天。點選檢視詳情。", "resumingTooltip": "正在恢復中斷的聊天並請它們繼續…", "resumingProgressLabel": "正在恢復聊天 {{value0}}/{{value1}}", "resumingProgressAria": "正在恢復聊天,已完成 {{value0}}/{{value1}}。點選檢視詳情。", - "resumedLabelOne": "已恢復 1 個聊天", - "resumedLabel": "已恢復 {{value0}} 個聊天", - "resumedAriaOne": "已恢復 1 個聊天。點選檢視。", - "resumedAria": "已恢復 {{value0}} 個聊天。點選檢視。", - "resumedTooltip": "重啟後 Orca 恢復的聊天。點選檢視。" + "resumedTooltip": "重啟後 Orca 恢復的聊天。點選檢視。", + "chatsFailedLabel_other": "{{count}} 個聊天恢復失敗", + "chatsFailedAria_other": "{{count}} 個聊天恢復失敗。按一下以查看詳情。", + "resumedLabelCount_other": "已恢復 {{count}} 個聊天", + "resumedAriaCount_other": "已恢復 {{count}} 個聊天。按一下以查看。", + "checkLabelCount_other": "{{count}} 個聊天待檢查", + "checkAriaCount_other": "{{count}} 個聊天在恢復後需要檢查。按一下以查看詳情。", + "labelCount_other": "{{count}} 個聊天待恢復", + "ariaLabelCount_other": "{{count}} 個聊天可恢復" }, "StatusBarUsageChangeNotices": { "compactTitle": "用量顯示現已精簡", @@ -4549,6 +4567,71 @@ "usageUnitLabel": { "used": "已用", "remaining": "剩餘" + }, + "mergeSnapshotAndSessions": { + "unattributed": "歸屬不明" + }, + "resourceSessionLabels": { + "terminalNumber": "終端機 {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "工作階段 {{id}}", + "unknownSession": "(未知工作階段)", + "unknown": "未知" + }, + "runtimeTargets": { + "wslDefault": "WSL 預設值" + }, + "floatingWorkspace": { + "minimize": "最小化浮動工作區", + "show": "顯示浮動工作區" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "工作區擁有者已無法使用" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "已與上游同步", + "aheadAndBehind": "領先 {{ahead}},落後 {{behind}}", + "ahead": "領先 {{ahead}}", + "behind": "落後 {{behind}}", + "activeAgents_other": "{{count}} 個作用中的代理程式", + "completedAgents_other": "{{count}} 個已完成的代理程式", + "activeAndCompletedAgents": "{{active}}、{{completed}}", + "completedAgentsRetained_other": "保留了 {{count}} 個已完成的代理程式", + "noTrackedAgents": "沒有追蹤中的代理程式正在執行", + "noTerminalTabs": "沒有終端機分頁", + "liveTerminalTabs_other": "{{count}} 個終端機分頁中有 {{live}} 個執行中", + "gitStatusUnavailable": "無法取得 Git 狀態:{{error}}", + "gitStatusNotLoaded": "尚未載入 Git 狀態", + "noUncommittedFiles": "沒有未提交的檔案", + "changedFiles_other": "{{count}} 個已變更的檔案", + "noEditorFiles": "編輯器中沒有開啟的檔案", + "editorFilesOpen_other": "編輯器中開啟了 {{count}} 個檔案", + "dirtyOfOpen": "{{open}} 中有 {{dirty}}", + "dirtyEditorBuffers_other": "{{count}} 個未儲存的編輯器緩衝區", + "openFiles_other": "{{count}} 個開啟的檔案", + "activeWorkspace": "這是目前作用中的工作區", + "mainWorktreeProtected": "主工作樹受保護", + "workspaceProtected": "工作區受保護", + "canDeleteAfterReview": "檢查後可刪除", + "noLinkedIssue": "沒有連結的議題", + "noLinkedReview": "沒有連結的 PR", + "browserTabsOpen_other": "開啟了 {{count}} 個瀏覽器分頁" + }, + "workspaceSpaceFormat": { + "cancellingScan": "正在取消掃描", + "currentWorkspaces": "工作區", + "scanningWorkspaces": "正在掃描 {{scanned}} / {{total}} · {{current}}", + "scanningRepos_other": "正在掃描 {{scanned}} / {{count}} 個存放庫 · {{current}}", + "scanningSizes": "正在掃描工作區大小", + "status": { + "scanned": "已掃描", + "missing": "遺失", + "noAccess": "無存取權限", + "unavailable": "無法使用", + "failed": "失敗" + }, + "mainWorktree": "主工作樹", + "detached": "分離狀態" } } }, @@ -5324,12 +5407,9 @@ "670864ab52": "使本機 {{value0}} 保持最新", "84c62e4d7f": "無法開啟 {{value0}}", "442552c656": "開啟設定並重試。", - "f15fd80989": "新工作樹已是最新狀態,但本機 {{value0}} 落後 {{value1}} {{value2}},因此 AI 差異可能會以過時的歷史記錄為比較基準。讓 Orca 自動將其維持在最新狀態。您可隨時在此變更設定:", - "3d260e1a5d": "設定 › {{value0}}", "34a03a6565": "保持 {{value0}} 最新", "4a18052018": "本機 {{value0}} 落後於 {{value1}}", - "commit": "提交", - "commits": "提交" + "staleLocalBranch_other": "新工作樹已是最新狀態,但本機分支 {{branch}} 落後 {{count}} 個提交,因此 AI 差異比較可能會依據過時的歷史記錄。讓 Orca 自動更新此分支。隨時可在設定 › {{setting}}中變更此設定" } } } @@ -5383,12 +5463,10 @@ "39d51212cc": "群組名稱", "aa0247680d": "否,單獨匯入", "a0bc4d1f8e": "是,作為群組匯入", - "8401a7a0d0": "1 個存放庫", - "d4f1df62ef": "{{value0}} 個存放庫", - "b4263a2ac4": "在 {{value1}} 中找到 {{value0}}。", "24eda6c8b2": "正在掃描... {{value0}}", "6149d5203f": "未選擇任何存放庫。改為開啟父資料夾,即可在沒有 Git 功能的情況下使用編輯器、終端機和搜尋。", - "e52454b7f6": "作為資料夾開啟" + "e52454b7f6": "作為資料夾開啟", + "foundRepositories_other": "在 {{path}} 中找到 {{count}} 個存放庫。" }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5457,9 +5535,8 @@ "eab8b45238": "複製錯誤", "a23b22d16f": "已複製", "74fc00776f": "錯誤詳情", - "3afcad0497": "根據第一則代理程式訊息。", - "ff62a18580": "Orca 無法產生分支名稱", - "ca3b225195": "分支自動命名失敗" + "ca3b225195": "分支自動命名失敗", + "couldNotGenerateBranchName": "Orca 無法根據代理程式的第一則訊息為 {{name}} 產生分支名稱。" }, "CreateProjectLocationField": { "95548e33bf": "選擇父資料夾...", @@ -5479,37 +5556,35 @@ "2b56b35f53": "您可以在「設定」中變更此設定。", "dd3a45bbbd": "下次我們將跳過此確認。", "fc23c4cbdf": "刪除工作區", - "86f0ae1257": "刪除工作區" + "86f0ae1257": "刪除工作區", + "removeFolderProjectInstead": "請移除資料夾專案,而非刪除此工作區。", + "gitBlocksMainWorktree": "Git 不允許移除主工作樹。" }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "顯示已載入的路徑", "loadedPathsNotice": "已載入的路徑可能不完整或已過時。", "loadedChangedPaths": "已載入且有變更的路徑", "unresolvedConflict": "未解決的衝突", - "moreLoadedPaths": "以及另外 {{value0}} 個已載入的路徑", "changeCount_one": "{{count}} 項未提交或未追蹤的變更", "changeCount_other": "{{count}} 項未提交或未追蹤的變更", - "changes": "未提交或未追蹤的變更" + "changes": "未提交或未追蹤的變更", + "moreLoadedPaths_other": "以及另外 {{count}} 個已載入的路徑" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "更多的", "a940f3c96e": "子工作區將被刪除", - "29b98bf9cd": "刪除此工作區也會刪除 {{value0}} 個子工作區。", - "66798cc6a2": "刪除此工作區也會刪除 1 個子工作區。" + "alsoDeletesChildren_other": "刪除此工作區也會刪除 {{count}} 個子工作區。", + "moreChildren_other": "另有 {{count}} 個" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "不要再問" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(原始複製目錄)。", - "c4f96a6e18": "主工作樹", - "e3be9eba15": "這是" + "mainWorktreeNotice": "這是主工作樹(原始複製目錄)。" }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "在工作樹清單中顯示", "ad99f4eea9": "保持隱藏", "9f4f14e821": "稍後從專案選單中變更此設定。", - "b2bc47c080": "更多位置", "b47ba1a9d2": "{{value0}} 預覽", "2251d41ebb": "隱藏的工作樹群組", "5a9688802a": "再顯示 {{value0}} 個", @@ -5523,7 +5598,8 @@ "keepHiddenAriaLabel_one": "讓 {{repo}} 中的 {{count}} 個偵測到的工作樹保持隱藏;可從專案選單恢復顯示", "keepHiddenAriaLabel_other": "讓 {{repo}} 中的 {{count}} 個偵測到的工作樹保持隱藏;可從專案選單恢復顯示", "keepHiddenTooltip": "保持隱藏,可從專案選單恢復顯示", - "repoOnHost": "{{host}} 上的 {{repo}}" + "repoOnHost": "{{host}} 上的 {{repo}}", + "moreLocations_other": "另有 {{count}} 個位置" }, "NonGitFolderDialog": { "e52454b7f6": "作為資料夾開啟", @@ -5557,20 +5633,22 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "取消", - "69f5cb97d0": "刪除", "591f330288": "刪除專案群組", "2c14ce677a": "正在刪除...", "0e0e6764af": "包含的專案", - "ad407c2d55": "更多", - "removeContainedProjectSingular": "移除 1 個包含的專案", - "removeContainedProjectPlural": "移除 {{value0}} 個包含的專案", "55f75628c0": "不會刪除磁碟上的專案資料夾。", - "fec7e9c8ae": "刪除群組" + "fec7e9c8ae": "刪除群組", + "removeContainedProjects_other": "移除內含的 {{count}} 個專案", + "deleteGroupDescription": "刪除 {{name}}。", + "moreProjects_other": "另有 {{count}} 個" }, "ProjectGroupNameDialog": { "d99a034073": "取消", "83dfbc5313": "群組名稱", - "4a64e78822": "儲存中..." + "4a64e78822": "儲存中...", + "defaultGroupName": "{{name}} 群組", + "create": "建立", + "rename": "重新命名" }, "RemoteFileBrowser": { "2300612806": "輸入文字以篩選或輸入路徑…", @@ -5582,7 +5660,9 @@ "largeInputNoMatches": "沒有符合此長輸入的結果", "entriesLabel": "資料夾內容", "inputLabel": "篩選或路徑", - "fileHint": "無法將檔案作為專案開啟" + "fileHint": "無法將檔案作為專案開啟", + "invalidPathRepeatedSeparators": "無效路徑:分隔符號重複", + "invalidPathControlCharacters": "無效路徑:不允許使用控制字元" }, "SleepTwinWorkspaceDialog": { "title": "讓工作區進入休眠", @@ -5612,11 +5692,10 @@ "70715947fb": "設定指令碼不能為空", "888b83bf78": "無法儲存設定指令碼", "a49196d538": "當 Orca 建立新工作樹時執行。", - "d9f2db2738": "專案的設定", - "a5bb8c5135": "儲存在這個", "savedSetupCommand": "已儲存設定命令。", "savedWithSkippedFields_one": "已略過 {{count}} 個不支援的欄位。已儲存設定命令。", - "savedWithSkippedFields_other": "已略過 {{count}} 個不支援的欄位。已儲存設定命令。" + "savedWithSkippedFields_other": "已略過 {{count}} 個不支援的欄位。已儲存設定命令。", + "savedInProjectSettings": "已儲存於此專案的設定中" }, "SetupScriptPromptCardViews": { "96a7f4198c": "儲存本機設定", @@ -5624,20 +5703,17 @@ "31b8b01a45": "設定", "4a98f907ae": "重試", "0a98169776": "新增在 Orca 建立新工作樹時執行的設定命令。", - "8349e3fa4c": "。儲存後即可在新工作樹中執行。", - "b56d1322f7": "找到設定命令,來源為", "aef6c0a213": "儲存已偵測的命令,以便在 Orca 建立工作樹時執行它。", - "660cdc17f8": "設定指令碼。新增本機命令,或在「設定」中變更來源。", - "8f6be51aa1": "orca.yaml", - "bb879db364": "此存放庫忽略共用", "0155fb9ed3": "目前無法驗證此存放庫的設定指令碼。", "eefa756190": "手動設定", "ca4efcbc25": "儲存", - "d02e6a42b1": "偵測自", "fdbc6cb064": "已偵測的設定指令碼", "7275f674cc": "已偵測的設定", "822ff300ad": "關閉", - "5bfd5c8779": "關閉設定指令碼" + "5bfd5c8779": "關閉設定指令碼", + "detectedFromSource": "從 {{source}} 偵測到", + "ignoresSharedSetup": "此存放庫會忽略共用的 orca.yaml 設定指令碼。請新增本機命令,或在「設定」中變更來源。", + "foundSetupCommandIn": "在 {{source}} 中找到設定命令。儲存後即可在新工作樹中執行。" }, "SidebarFeedbackDialog": { "8bf619e4cf": "取消", @@ -5819,8 +5895,8 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "關閉", "e1a34450fc": "按狀態組織工作區並開啟工作區卡。", - "81870af08f": "已選擇", - "c6a77ab0f4": "工作區看板" + "c6a77ab0f4": "工作區看板", + "selectedCount_other": "已選取 {{count}} 項" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "拖放到此處即可固定,無需變更狀態。", @@ -5921,7 +5997,8 @@ "2931b42b09": "狀態:草稿 {{value0}}", "e888362def": "狀態:已關閉", "f394b3e86e": "狀態:已合併", - "af2b07bda5": "狀態:{{value0}}" + "af2b07bda5": "狀態:{{value0}}", + "checksStatus": "檢查:{{status}}" }, "WorktreeCardPorts": { "3240f320d7": "使用中的連接埠", @@ -5932,8 +6009,8 @@ "5d1a5d51bb": "已停止 {{value0}} 上的行程", "c89f290e25": "已複製 {{value0}}", "d1113f4660": "無法開啟瀏覽器", - "fed49903c9": "{{value0}} 個使用中的 {{value1}}", - "unknownProcess": "未知行程" + "unknownProcess": "未知行程", + "livePorts_other": "{{count}} 個作用中的連接埠" }, "WorktreeContextMenu": { "c39c37676a": "建立一個群組並將該專案移入其中。", @@ -5978,7 +6055,6 @@ "f9dc6cc5d3": "重新命名專案群組", "370c6a55dd": "清除篩選條件", "b7acbf038b": "未找到工作區", - "0c6ee14f23": "子工作區", "c83968f87f": "移除專案", "64e55f7f01": "從群組中移除", "4a08fb55f2": "移至群組", @@ -5991,12 +6067,7 @@ "4d7b73658c": "重新命名群組", "79465e9034": "{{value0}} 的群組操作", "bfbedc547b": "工作樹", - "045a8aed48": "子工作區", "bb85cd86ba": "為 {{value0}} 建立工作區", - "20bebf9c7f": "顯示 {{value0}} 個子工作區", - "c1f4a31623": "顯示 {{value0}} 個子工作區", - "e97297cb75": "隱藏 {{value0}} 個子工作區", - "0cd15956d4": "隱藏 {{value0}} 個子工作區", "bd37a57ac8": "為 {{value0}} 建立工作區", "b667b59632": "部分專案無法從 Orca 中移除", "groupDeleteFailed": "刪除群組失敗", @@ -6007,8 +6078,10 @@ "sidebarRowMissing": "目標不再存在", "failedUnnestWorkspace": "無法將工作區移出上層工作區", "hostRepairRequired": "需要重新配對", - "groupProjectsRemainedSingular": "刪除群組後,所含的 {{count}} 個專案中仍有 {{remaining}} 個未刪除。", - "groupProjectsRemainedPlural": "刪除群組後,所含的 {{count}} 個專案中仍有 {{remaining}} 個未刪除。" + "showChildWorkspaces_other": "顯示 {{count}} 個子工作區", + "hideChildWorkspaces_other": "隱藏 {{count}} 個子工作區", + "childCount_other": "{{count}} 個子項目", + "groupProjectsRemained_other": "刪除群組後,原先內含的 {{count}} 個專案中仍保留了 {{remaining}} 個。" }, "WorktreeMetaDialog": { "3db0a2a593": "取消", @@ -6072,7 +6145,6 @@ "d40d436fc2": "無法更新工作樹可見性。請重試。", "unsupportedHost": "該主機不支援特定於來源的工作樹可見性。更新主機上的 Orca 以變更此設定。", "search": "搜尋隱藏的工作樹", - "searchPlaceholder": "搜尋 {{value0}} 個工作樹…", "noMatches": "沒有符合的工作樹", "allShown": "已顯示所有偵測到的工作樹", "noneFound": "未找到非 Orca 工作樹", @@ -6080,7 +6152,8 @@ "disableSource": "停用來源後可單獨管理其工作樹。", "appearWhenDetected": "當 Orca 偵測到新的工作樹時,它們將出現在此。", "openGlobalSettings": "在全域設定中管理", - "globalSettingsSources": "以下來源有全域設定,可在此處覆寫:" + "globalSettingsSources": "以下來源有全域設定,可在此處覆寫:", + "searchHiddenPlaceholder_other": "搜尋 {{count}} 個工作樹…" }, "add": { "repo": { @@ -6287,13 +6360,11 @@ "7a8b9c0d1e": "開啟設定", "8b9c0d1e2f": "移除主機", "workspacesFailed": "無法移除此主機的 {{count}} 個工作區。主機已保留,您可以重試。", - "oneWorkspace": "1 個工作區", - "manyWorkspaces": "{{count}} 個工作區", - "hostHasWorkspacesDefault": "從此電腦移除 {{value0}} 及其憑證。其 {{value1}} 保留在 Orca 中 — 遠端檔案不會被刪除。", - "alsoForgetLocal": "同時從 Orca 中移除這些 {{value0}}", "advanced": "進階", "alsoForgetLocalHint": "僅從 Orca 中清除。遠端檔案、工作樹和分支不受影響。", - "wslHostEndsTerminalsUnlessShared": "從 Orca 移除 {{value0}}。除非此電腦上開啟的另一個 Orca 正在使用它,否則也會結束其開啟的終端機,並停止該發行版中的 Orca 伺服器。發行版中的檔案不受影響。" + "wslHostEndsTerminalsUnlessShared": "從 Orca 移除 {{value0}}。除非此電腦上開啟的另一個 Orca 正在使用它,否則也會結束其開啟的終端機,並停止該發行版中的 Orca 伺服器。發行版中的檔案不受影響。", + "hostKeepsWorkspaces_other": "從這部電腦移除 {{host}} 及其憑證。其 {{count}} 個工作區會保留在 Orca 中,遠端檔案不會受到影響。", + "alsoRemoveWorkspaces_other": "同時從 Orca 移除這 {{count}} 個工作區" }, "HostRenameDialog": { "1a2b3c4d5e": "重新命名主機", @@ -6366,7 +6437,7 @@ "current": "目前", "searchPlaceholder": "搜尋工作樹...", "empty": "沒有符合的可用工作樹。", - "setParentFor": "為以下工作樹設定父工作樹" + "setParentForName": "為 {{name}} 設定父項目" }, "WorktreeCardStatusSlot": { "branchIdentity": "分支", @@ -6376,12 +6447,10 @@ }, "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "永久隱藏 {{value0}} 的外部工作樹", - "2a6f31d8c7": "隱藏的工作樹", - "5b90e4a2f6": "隱藏的工作樹", - "7f18c5b0d3": "審查 {{value1}} 中的 {{value0}} 個隱藏工作樹", - "4e2b7a9c05": "審查 {{value1}} 中的 {{value0}} 個隱藏工作樹", "c3e8a1f4b2": "不再顯示", - "6c07f3a91e": "{{value0}} 在 {{value1}} 上" + "6c07f3a91e": "{{value0}} 在 {{value1}} 上", + "hiddenWorktreesNoun_other": "隱藏的工作樹", + "reviewHiddenWorktrees_other": "檢視 {{scope}} 中 {{count}} 個隱藏的工作樹" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} 已斷開連線", @@ -6472,8 +6541,8 @@ "sshConfigPickerRetry": "重試", "sshConfigPickerResolving": "正在讀取…", "pairingHelpShareComputer": "在另一台電腦的「設定 → 遠端 Orca 伺服器 → 共用此電腦」中建立。", - "sshImportSyncedPlural": "已將 {{count}} 台主機新增至 Orca。", - "sshImportSyncedSingular": "已將 {{count}} 台主機新增至 Orca。" + "sshImportSynced_other": "已將 {{count}} 個主機新增至 Orca。", + "sshConfigPickerInvalidResponse": "SSH 設定主機回應無效" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} 不再是已儲存的 SSH 主機,因此此工作區不再連線到活躍主機。只能從 Orca 中移除 — 遠端檔案和分支保持不變。", @@ -6496,11 +6565,11 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "沒有符合的工作區", - "4d96c209d6": "{{value1}} 個工作區中有 {{value0}} 個符合", "c0cd6bdf6c": "搜尋工作區", "3b7ea51793": "清除搜尋", "7f1c2e94a5": "搜尋文字過長 — 看板未被篩選", - "9a4d0f6b21": "過長" + "9a4d0f6b21": "過長", + "workspacesMatch_other": "{{count}} 個工作區中有 {{matchCount}} 個符合" }, "WorktreeCardSshHostControl": { "connectFailed": "SSH 連線失敗", @@ -6598,11 +6667,11 @@ "developerToolsTitle": "安裝 Apple 命令列工具", "developerToolsBody": "Git 需要 Apple 開發者工具。請在終端機中執行此命令,然後切回 Orca。它會自動重新檢查。", "affectedOne": "已暫停 {{value0}} 的工作樹掃描", - "affectedMany": "已暫停 {{value0}} 個專案的工作樹掃描", "copyCommand": "複製命令", "copied": "命令已複製", "retry": "立即重試", - "restored": "Git 已恢復正常。工作樹已重新整理。" + "restored": "Git 已恢復正常。工作樹已重新整理。", + "affectedProjects_other": "{{count}} 個專案的工作樹掃描已暫停" }, "manualSortSwitch": { "title": "排序更改為手動", @@ -6647,7 +6716,8 @@ "wslHostRemoval": { "keptForOthers": "已從此 Orca 移除。該主機將繼續為 {{value0}} 執行。", "partial": "主機已被移除,但發行版中仍有內容在執行:{{value0}}", - "pending": "Orca 尚未移除此主機:{{value0}}。請再次移除以重試,或連線至此主機以保留它。" + "pending": "Orca 尚未移除此主機:{{value0}}。請再次移除以重試,或連線至此主機以保留它。", + "unavailable": "這部電腦無法使用 WSL 主機。" }, "addRepoWslHostFolderPicker": { "otherDistro": "該資料夾位於 {{value0}} 中,而不是 {{value1}}。", @@ -6688,6 +6758,40 @@ "openingProject": "正在開啟專案...", "openingFolder": "正在開啟資料夾...", "chooseFolder": "選擇資料夾..." + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "此主機不支援刪除巢狀工作樹。" + }, + "WorktreeCardHelpers": { + "checksPassing": "通過", + "checksFailing": "失敗", + "checksPending": "待處理", + "conflictMerging": "合併中", + "conflictRebasing": "變基中", + "conflictCherryPicking": "揀選中" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "{{name}} 工作區" + }, + "workspaceKanbanStatus": { + "defaultLabel": "狀態 {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_other": "{{preview}},另有 {{count}} 個" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "無法取得 MR 詳情", + "prDetailsUnavailable": "無法取得 PR 詳情", + "loadingMr": "正在載入 MR…", + "loadingPr": "正在載入 PR…" + }, + "HostSectionHeader": { + "workspaceCount_other": "{{count}} 個工作區" + }, + "titleDerivedAgentRows": { + "needsInput": "需要輸入", + "running": "執行中", + "idle": "閒置" } }, "shared": { @@ -14244,17 +14348,8 @@ "saveLocation": "設定位置" }, "SmartWorkspaceNameField": { - "2a0d535f69": "建立新分支", - "a44229ce4d": "作為工作區名稱", - "766083a596": "」", - "34ca97bce3": "「", - "b1a7d679ba": "使用", "e57c53727c": "新增專案...", - "a76fcb4fa0": "切換到", - "eadf877af5": "保持", "6859e2896c": "取消", - "9ef1a7c4b0": ",與所選專案不同。", - "ad188067ae": "GitHub URL 指向", "4bd98f1091": "切換專案?", "0c9e668e3a": "清除", "7199ff19c7": "清除選定的來源", @@ -14273,7 +14368,6 @@ "fda67f0b61": "目前專案", "3e8bb1176a": "在設定中連線 Linear 以搜尋議題。", "switchTaskSourceTitle": "切換任務來源?", - "differentTaskSource": ",與所選任務來源不同。", "currentTaskSource": "目前任務來源", "placeholderNameOrLinearUrl": "輸入名稱、Linear URL 或 Jira URL", "placeholderWorkspaceName": "輸入工作區名稱", @@ -14302,7 +14396,13 @@ "emoji": "Emoji", "loadingLinearIssue": "正在載入 Linear 議題…", "linearLoginUnreadableTitle": "重新連線至 Linear", - "linearLoginUnreadableBody": "無法讀取已儲存的 Linear 登入資訊。請在「設定」中重新連線。" + "linearLoginUnreadableBody": "無法讀取已儲存的 Linear 登入資訊。請在「設定」中重新連線。", + "keepRepo": "保留 {{name}}", + "switchToRepo": "切換至 {{name}}", + "crossRepoDifferentTaskSource": "GitHub URL 指向 {{repo}},與所選的任務來源不同。", + "crossRepoDifferentProject": "GitHub URL 指向 {{repo}},與所選的專案不同。", + "useAsWorkspaceName": "以 「{{name}}」 作為工作區名稱", + "createNewBranchNamed": "建立新分支 {{name}}" }, "ProjectCombobox": { "empty": "沒有符合搜尋的專案。", @@ -14316,6 +14416,11 @@ "listLabel": "執行目標", "label": "執行在", "browse": "瀏覽執行目標" + }, + "projectCombobox": { + "recentHeading": "最近", + "projectsHeading": "專案", + "foldersHeading": "資料夾" } } }, @@ -15915,7 +16020,8 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} 個子 {{value2}}" + "hideChildAgents_other": "隱藏 {{count}} 個子代理程式", + "showChildAgents_other": "顯示 {{count}} 個子代理程式" }, "DashboardAgentRow": { "912e136cd9": "傳送", @@ -15923,7 +16029,12 @@ "a41fb5376e": "摺疊詳情", "5ae84475cc": "關閉", "b06e13fcf7": "關閉代理程式", - "0272969e28": "傳送給該代理程式" + "0272969e28": "傳送給該代理程式", + "justNow": "剛剛", + "timeAgo": "{{duration}} 前", + "dispatchedAgents_other": "{{agentType}} - 已指派 {{count}} 個代理程式", + "startedAgo": "開始於 {{time}}", + "doneAgo": "完成於 {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "被打斷", @@ -17029,18 +17140,17 @@ "activityOptionsActive": "活動選項({{value0}})" }, "clearCompleted": { - "clearedOne": "已清除 1 個已完成的代理程式", - "clearedMany": "已清除 {{count}} 個已完成的代理程式", - "undo": "復原" + "undo": "復原", + "cleared_other": "已清除 {{count}} 個已完成的代理程式" }, "standaloneWorktree": { "floatingTerminal": "浮動終端機", "standaloneTerminal": "獨立終端機" }, "ActivityTitlebarControls": { - "f915168c8e": "未讀", "d6a8de3934": "代理程式", - "dc708f3eff": "關閉代理程式" + "dc708f3eff": "關閉代理程式", + "unreadCount_other": "{{count}} 則未讀" }, "ActivityScopeFilterControls": { "resetScope": "顯示所有主機和專案", @@ -17820,6 +17930,16 @@ "unreachable": "無法連線至 Jira。請檢查連線後再試一次。", "loadFailed": "無法載入 Jira 議題。請稍後再試。", "errorWithCode": "錯誤 {{code}}:{{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "無法執行「{{action}}」— 工作區仍在載入中。", + "noActiveWorkspace": "無法執行「{{action}}」— 沒有作用中的工作區。", + "workspaceDisconnected": "無法執行「{{action}}」— 工作區已中斷連線。", + "noTabGroup": "無法執行「{{action}}」— 沒有可用的分頁群組。", + "noMovableChat": "無法執行「{{action}}」— 沒有作用中且可移動的聊天。", + "clientUnsupported": "無法執行「{{action}}」— 此用戶端與執行環境不支援此操作。" + } } }, "i18n": { @@ -19028,8 +19148,6 @@ "none": "沒有" }, "idleSignalField": "閒置依據", - "selectionVanishedOne": "1 個選取的工作區已不存在。", - "selectionVanished": "{{value0}} 個選取的工作區已不存在。", "updatedAgo": "更新於 {{value0}}", "refreshing": "重新整理中…", "refreshingProgress": "正在重新整理 {{value0}}/{{value1}}", @@ -19044,12 +19162,6 @@ "gitStatusCheckFailed": "Git 狀態檢查失敗", "gitStatusUnverified": "無法驗證 Git 狀態", "deleteAnyway": "仍然刪除", - "forceDeleteProjectionOne": "目前有 {{count}} 個工作區顯示風險,可能需要強制刪除", - "forceDeleteProjectionMany": "目前有 {{count}} 個工作區顯示風險,可能需要強制刪除", - "selectionWithheldOne": "目前篩選條件隱藏了 1 個已選工作區,已取消選擇。", - "selectionWithheld": "目前篩選條件隱藏了 {{value0}} 個已選工作區,已取消選擇。", - "selectAllCountOne": "選擇 1 個通過安全檢查的工作區", - "selectAllCount": "選擇全部 {{value0}} 個通過安全檢查的工作區", "appliedFilters": "已套用的篩選", "removeFilter": "移除篩選 {{value0}}", "chip": { @@ -19093,18 +19205,21 @@ "locked": "已鎖定", "retainedAgents": "已完成的代理程式" } - } + }, + "forceDeleteRisk_other": "{{count}} 個工作區目前存在風險,可能需要強制刪除", + "selectionVanishedCount_other": "所選的 {{count}} 個工作區已不存在。", + "selectionWithheldCount_other": "所選的 {{count}} 個工作區已被目前的篩選條件隱藏,因此已取消選取。", + "selectAllSafetyChecked_other": "選取全部 {{count}} 個已通過安全檢查的工作區" }, "scan": { "progress": "正在掃描工作區({{value0}}/{{value1}})", "singleError": "無法檢查 {{value0}}:{{value1}}。部分工作區可能未顯示。請重新整理後重試。", - "moreErrors": ",另有 {{value0}} 個", - "multipleErrors": "無法檢查 {{value0}} 個存放庫({{value1}}{{value2}})。部分工作區可能未顯示。請重新整理後重試。", "noWorkspaces": "未找到工作區。", "fallbackRepository": "一個存放庫", "gitListFailed": "Git 無法列出工作樹", - "readyOne": "找到 1 個工作區。", - "readyMany": "找到 {{value0}} 個工作區。" + "multipleErrorsWithMore_other": "無法檢查 {{count}} 個存放庫({{names}},另有 {{moreCount}} 個)。部分工作區可能未顯示。請重新整理後再試一次。", + "multipleErrorsCount_other": "無法檢查 {{count}} 個存放庫({{names}})。部分工作區可能未顯示。請重新整理後再試一次。", + "readyCount_other": "找到 {{count}} 個工作區。" }, "relativeTime": { "never": "從未", @@ -20221,7 +20336,6 @@ "repositoryLoading": "存放庫身分資訊仍在載入。待其可用後重試。", "duplicate": "此連結已附加。", "title": "已連結的工作", - "count": "已連結 {{count}} 項", "empty": "將此工作區的所有審查和任務集中在一起。", "reviews": "審查", "tasks": "議題和任務", @@ -20229,7 +20343,6 @@ "open": "開啟連結", "unlinkItem": "取消連結 {{label}}", "unlink": "從工作區取消連結", - "show": "顯示 {{count}} 個已連結的審查和任務", "details": "工作區詳情", "description": "為此工作區關聯審查和任務,並保留筆記。", "commentHelp": "支援 Markdown。按 Enter 或 {{shortcut}} 儲存 · Shift+Enter 換行。", @@ -20282,7 +20395,9 @@ "checksPassing": "通過", "checksUnknown": "未知", "checksNeutral": "中性", - "allReviewChecks": "審查:{{count}} · 檢查:{{status}}" + "allReviewChecks": "審查:{{count}} · 檢查:{{status}}", + "showLinked_other": "顯示 {{count}} 個已連結的審查與任務", + "linkedCount_other": "已連結 {{count}} 項" }, "attachments": { "updateRuntime": "更新遠端執行環境以更改工作區連結", @@ -20463,8 +20578,8 @@ }, "compact": { "linkedAndUnavailable": "連結的工作樹佔用 {{value0}} · {{value1}} 無法取得", - "linkedAndScanned": "連結的工作樹佔用 {{value0}} · {{value1}} 個工作區", - "linked": "已連結" + "linked": "已連結", + "linkedAndScannedCount_other": "連結的工作樹佔用 {{size}} · {{count}} 個工作區" }, "savedScan": { "folderDetailsUnavailable": "過去的掃描記錄不含資料夾詳細資訊。請重新整理以查看此工作區。" diff --git a/src/renderer/src/i18n/locales/zh.json b/src/renderer/src/i18n/locales/zh.json index 61fcfcc34e6..1755cf4e1bc 100644 --- a/src/renderer/src/i18n/locales/zh.json +++ b/src/renderer/src/i18n/locales/zh.json @@ -1907,7 +1907,6 @@ "ba64270bdb": "配置智能体", "ab63f25397": "打开智能体设置", "0c5d6a479c": "[可选]", - "b5a0796911": "连接", "dccd26d4e4": "选择项目", "d6b0a96f32": "添加项目", "969a8bff66": "项目", @@ -1971,7 +1970,8 @@ "runSetupNow": "立即运行设置", "runCommandsNow": "立即运行命令", "skipForNow": "暂时跳过", - "skipCommands": "跳过命令" + "skipCommands": "跳过命令", + "connectProject": "连接 {{name}}" }, "NewWorkspaceComposerModal": { "createWorktree": "创建工作树", @@ -3379,21 +3379,18 @@ }, "drop": { "handler": { - "1e072f611e": "无法上传 {{value0}} {{value1}}。", "0c77693641": "工作树尚未准备好 - 请稍后再试。", "ce8248b835": "工作树路径不可用。", "internalTooManyPaths": "拖放的路径过多,无法安全粘贴到终端。", "internalPathsTooLarge": "拖放的路径列表过大,无法安全粘贴到终端。", "internalHostMismatch": "请拖放与此终端位于同一主机的文件。", - "b4cf68e889": "已跳过 {{value0}} {{value1}}。", "writeTimeout": "文件拖放已取消:终端在安全超时前未接受路径。", "writeRejected": "文件拖放已取消:终端无法接受路径。", - "skippedSymlinkSingular": "已跳过 {{count}} 个符号链接。", - "skippedSymlinkPlural": "已跳过 {{count}} 个符号链接。", - "uploadingFileSingular": "正在将 {{count}} 个文件上传到运行时…", - "uploadingFilePlural": "正在将 {{count}} 个文件上传到运行时…", - "uploadingFileToRemoteSingular": "正在将 {{count}} 个文件上传到远程主机…", - "uploadingFileToRemotePlural": "正在将 {{count}} 个文件上传到远程主机…" + "skippedSymlinks_other": "已跳过 {{count}} 个符号链接。", + "skippedItems_other": "已跳过 {{count}} 个条目。", + "failedUploads_other": "{{count}} 个文件上传失败。", + "uploadingFiles_other": "正在将 {{count}} 个文件上传到运行时…", + "uploadingFilesToRemote_other": "正在将 {{count}} 个文件上传到远端…" } } }, @@ -3532,10 +3529,15 @@ "sessionQueued": "会话已排队", "openSupportedWorkspace": "在恢复会话之前,请先打开一个工作区。", "sessionHostMismatchUnsupported": "此会话属于其他主机。请将其拖放到同一主机上的工作区。", - "oldPayload": "此会话是从较早版本的 Orca 窗口拖入的。请改从会话历史恢复。" + "oldPayload": "此会话是从较早版本的 Orca 窗口拖入的。请改从会话历史恢复。", + "legacyDragCannotRetarget": "此会话是从旧版 Orca 窗口拖入的,因此 Orca 无法将其切换到所选的 Codex 账户。请从会话历史面板恢复。", + "legacyDragPrepareFailed": "Orca 无法准备此旧版 Codex 会话。请再次尝试恢复。" }, "TabGroupDropOverlay": { "paneColumnLabel": "新建拆分" + }, + "useTabGroupCreationCommands": { + "duplicateBrowserTabFailed": "配对的运行时无法复制受管理的浏览器标签页。" } }, "bar": { @@ -3730,6 +3732,30 @@ "TabBarQuickCommandHostLoadStatus": { "82e294f3ca": "主机不可用", "7c129b08ff": "正在加载主机..." + }, + "nativeChatCliFork": { + "cannotOpenInCli": "无法在 CLI 中打开此会话。" + }, + "tabCreateEntry": { + "fileNotFound": "找不到文件:{{path}}", + "cannotOpenDirectory": "无法打开目录:{{path}}", + "parentNotDirectory": "无法创建文件,因为 {{path}} 不是目录。", + "fileNoLongerExists": "文件已不存在:{{path}}", + "noActiveWorktree": "没有活动的工作树。" + }, + "tabCreateEntryPath": { + "filePathsCannotContainControlCharacters": "文件路径不能包含控制字符。", + "enterAUrlOrFilePath": "请输入 URL 或文件路径。", + "homeRelativePathsAreNotSupported": "此处不支持相对于主目录的路径。", + "enterAFilePathNotA": "请输入文件路径,而非目录路径。", + "enterAnAbsoluteFilePath": "请输入文件的绝对路径。", + "enterAnAbsolutePathForThis": "请输入此电脑上的绝对路径。", + "enterARelativeFilePath": "请输入文件的相对路径。", + "windowsDrivePathsAreNotSupported": "此处不支持 Windows 驱动器路径。", + "uncPathsAreNotSupportedHere": "此处不支持 UNC 路径。", + "filePathsCannotContainEmptySegments": "文件路径不能包含空路径段。", + "filePathsCannotContainDotSegments": "文件路径不能包含 . 或 .. 路径段。", + "filePathsCannotContainTildeSegments": "文件路径不能包含 ~ 路径段。" } } }, @@ -3757,15 +3783,13 @@ "4ebf90c12e": "未检测到外部端口", "7dac3ecc9d": "外部端口", "95495019ed": "{{value0}} 上无法进行端口扫描:{{value1}}", - "a8e4bdb412": "· {{value0}} 外部", "c22ea609fd": "端口", - "ca41be2802": "端口 — {{value0}} 个工作区 {{value1}}{{value2}}", - "b8bc3e420a": "端口,{{value0}} 工作区 {{value1}}", "3a87d54dfb": "未检测到工作区端口", "c174bbbfed": "正在扫描工作区端口...", - "8caaa86e9a": "端口", - "45834a9ace": "端口", - "2b84c4d11f": "{{value0}} 个工作区 · {{value1}} 个外部" + "2b84c4d11f": "{{value0}} 个工作区 · {{value1}} 个外部", + "portsAria_other": "端口,{{count}} 个工作区端口", + "portsTooltipWithExternal_other": "端口 — {{count}} 个工作区端口 · {{externalCount}} 个外部端口", + "portsTooltip_other": "端口 — {{count}} 个工作区端口" }, "ResourceUsageStatusSegment": { "946d9f94d0": "取消", @@ -3774,7 +3798,6 @@ "27a74f91f0": "现在没有任何运行", "298f4be7f2": "CPU", "2aa2de6cb9": "名称", - "30ff2c3c31": "{{value0}} 个孤立项", "1fedf94eae": "组合 CPU 负载。高于 100% 的值意味着多个核心同时工作。", "e7cf14ec78": "终端会话不可用。该列表可能已过时。", "93b0de3c21": "重新启动", @@ -3802,12 +3825,11 @@ "d406915b78": "渲染器", "81cd37af99": "主进程", "fa6d36758d": "终止会话 {{value0}}", - "b8f4a2c1d0e3": "{{value0}} 个孤立项", - "c7e3b1a0d9f2": "终止 {{value0}} 个孤立终端", - "d8f4c2b1e0a3": "终止 {{value0}} 个孤立终端", "e9a5d3c2b1f0": "终止 {{value0}}?", "8a0472ab54": "无法连接 {{value0}};其资源未知。", - "1ea066b73f": "更新 {{value0}} 以查看其资源。" + "1ea066b73f": "更新 {{value0}} 以查看其资源。", + "endOrphanTerminals_other": "终止 {{count}} 个孤立终端", + "orphanCount_other": "{{count}} 个孤立项" }, "SshStatusSegment": { "3ad70e0365": "管理远程主机", @@ -3875,10 +3897,6 @@ "3325d996cb": "刷新速率限制", "cd9d7b40ff": "重新启动 {{value0}} 会话", "6cd6650b4c": "重新启动会话", - "1446d0d8a0": "{{value0}} 个 Codex 会话仍使用旧账户。", - "605901a495": "1 个 Codex 会话仍使用旧账户", - "5e5f9f5160": "1 次速率限制重置可用", - "5ecae9197c": "{{value0}} 次速率限制重置可用", "25d8bbde69": "正在使用重置…", "e159fc1fd7": "立即重置", "972a1ff497": "重置 Codex 限额?", @@ -3895,7 +3913,9 @@ "codexSignInError": "Codex 登录失败,请重试。", "cursorUsageMenu": "Cursor 用量", "hiddenUsageProviders": "另有:{{value0}}", - "zcodeUsageMenu": "Z代码使用" + "zcodeUsageMenu": "Z代码使用", + "rateLimitResetsAvailable_other": "可重置速率限制 {{count}} 次", + "staleCodexSessions_other": "{{count}} 个 Codex 会话仍在使用旧账户。" }, "StatusBarUsageEmptyCta": { "828c764a79": "连接账户", @@ -3949,11 +3969,8 @@ "6f8f6a6b04": "搜索工作区", "5caccea440": "删除所选内容", "e4a12c455b": "清除", - "0cb1501ccf": "可回收的", - "65402b7192": "已选择", "43171f3e60": "工作区", "09960d86bd": "已扫描", - "63efebe0e6": "{{value0}} {{value1}} 从空间中移除。", "eee5240810": "工作区已删除", "9afc97f9a3": "工作区已删除", "792a214457": "删除工作区", @@ -3961,7 +3978,6 @@ "9155381019": "疏", "f39d291997": "选择", "16988df079": "没有找到文件。", - "b25c2c1086": "顶级项目", "d3f9c69ddc": "飞涨", "ef890d31b9": "全部", "c28643d3da": "转到工作区", @@ -4000,8 +4016,12 @@ "c5135e7e4a": "扫描工作区大小。您可以离开此页面。", "0990a63160": "尚无扫描的工作区大小。", "977bdf9a36": "没有可显示的顶级项目。", - "131662ac65": "{{value0}} 打开", - "0d1c78d749": "选择 {{value0}}" + "0d1c78d749": "选择 {{value0}}", + "removedFromSpace_other": "已从空间中移除 {{count}} 个工作区。", + "topLevelItems_other": "{{formattedCount}} 个顶层条目", + "selectedCount_other": "已选择 {{count}} 项", + "reclaimableSize": "可回收 {{size}}", + "scanning": "正在扫描" }, "ports": { "status": { @@ -4015,7 +4035,8 @@ "e4a709548c": "刷新端口失败", "acdb6df590": "已停止 {{value0}} 上的进程", "480d8f2347": "已复制 {{value0}}", - "b854ec9ff5": "无法打开浏览器" + "b854ec9ff5": "无法打开浏览器", + "unknownProcess": "未知进程" } } } @@ -4032,8 +4053,6 @@ "7ad719c4bf": "受限", "e740f92596": "刷新失败", "8418ec448d": "{{value0}} 用量无法刷新。智能体会话可能仍处于登录状态。", - "45198c7d95": "1 次速率限制重置可用", - "bce421cba3": "{{value0}} 次速率限制重置可用", "7ec6e030a0": "下一个现在过期", "d1e442a9e5": "现在过期", "6cf9eaed10": "下一个将在 {{value0}} 后过期", @@ -4085,7 +4104,13 @@ "claudeNoUsageFromHost": "{{server}} 无用量数据", "claudeUnknownOnHost": "无法从 {{server}} 获取 Claude 用量。可能未在那里登录,或使用的是 API 密钥计费。", "remoteOwnerUnreachable": "用量不可用 — 无法连接到 {{server}}", - "remoteOwnerNoUsage": "用量不可用 — {{server}} 未提供用量信息。请更新该主机上的 Orca。" + "remoteOwnerNoUsage": "用量不可用 — {{server}} 未提供用量信息。请更新该主机上的 Orca。", + "justNow": "刚刚", + "minutesAgo": "{{minutes}} 分钟前", + "hoursAgo": "{{hours}} 小时前", + "updatedAgo": "更新于 {{time}}", + "notYetUpdated": "尚未更新", + "rateLimitResetsAvailable_other": "可重置速率限制 {{count}} 次" }, "SshTargetStatusRow": { "sshHost": "SSH 主机" @@ -4128,12 +4153,10 @@ "RemoteServerUpdateStatusSegment": { "updating": "Updating {{value0}}/{{value1}}", "updatingTooltip": "远程 Orca 服务器更新正在进行中", - "failed": "{{value0}} 个服务器更新失败", "failedTooltip": "打开远程 Orca 服务器更新以查看并重试", - "updated": "{{value0}} servers updated", "updatedTooltip": "远程 Orca 服务器更新已完成", - "failedOne": "1 个服务器更新失败", - "updatedOne": "1 server updated" + "failedCount_other": "{{count}} 个服务器更新失败", + "updatedCount_other": "已更新 {{count}} 个服务器" }, "resource": { "memory": { @@ -4141,7 +4164,10 @@ "workingSetDescription": "工作集 (WS) 的总和:当前驻留在 RAM 中的页。共享页可能会出现在多个进程中,被 Windows 换出到页面文件的内存不计入其中。", "privateBytesDescription": "专用字节的总和:这些进程已提交的内存,无论驻留还是已换出都会计入。这是主机计入提交限制的数值,因此在分页导致上方工作集缩小时它仍会继续上升。", "footprintDescription": "内存占用的总和,与“活动监视器”显示的数值相同:每个进程自身占用的内存,包括图形内存。进程之间共享的页不会被重复计算。", - "rssDescription": "驻留集大小 (RSS) 的总和。共享页或别名映射页可能会出现在多个进程中。" + "rssDescription": "驻留集大小 (RSS) 的总和。共享页或别名映射页可能会出现在多个进程中。", + "memColumn": "内存", + "memorySummary": "Σ 内存", + "privateSummary": "Σ 专用" } }, "manager": { @@ -4163,13 +4189,13 @@ "SkillUpdateStatusSegment": { "runningLabel": "Updating skills", "runningOne": "Updating {{value0}}…", - "runningMany": "Updating {{value0}} skills…", "runningAria": "技能正在更新。点击查看详情。", "successLabel": "Skills updated", "successAria": "技能已更新。点击查看详情。", "attentionAria": "已跳过部分技能更新。点击打开详情。", "attentionLabel": "技能需要处理", - "attentionTooltip": "已跳过部分技能更新 — 点击查看详情" + "attentionTooltip": "已跳过部分技能更新 — 点击查看详情", + "runningSkills_other": "正在更新 {{count}} 个技能…" }, "RuntimeHostStatusRow": { "previous_connection_closed": "之前的连接关闭了", @@ -4193,29 +4219,21 @@ "repair": "Re-pair…" }, "NativeChatResumeStatusSegment": { - "labelOne": "恢复 1 次聊天", - "label": "{{value0}} 聊天恢复", - "ariaLabelOne": "1 个聊天可恢复", - "ariaLabel": "{{value0}} 聊天可恢复", "tooltip": "打开可恢复的中断聊天", - "failedLabelOne": "1 个聊天恢复失败", - "failedLabel": "{{value0}} 个聊天恢复失败", - "failedAriaOne": "1 个聊天恢复失败。点击查看详情。", - "failedAria": "{{value0}} 个聊天恢复失败。点击查看详情。", "failedTooltip": "重启后 Orca 未能恢复的聊天。点击查看详情。", - "checkLabelOne": "1 个待检查的聊天", - "checkLabel": "{{value0}} 个待检查的聊天", - "checkAriaOne": "恢复后有 1 个待检查的聊天。点击查看详情。", - "checkAria": "恢复后有 {{value0}} 个待检查的聊天。点击查看详情。", "checkTooltip": "重启后 Orca 未能恢复或未能确认已恢复的聊天。点击查看详情。", "resumingTooltip": "正在恢复中断的聊天并请它们继续…", "resumingProgressLabel": "正在恢复聊天 {{value0}}/{{value1}}", "resumingProgressAria": "正在恢复聊天,已完成 {{value0}}/{{value1}}。点击查看详情。", - "resumedLabelOne": "已恢复 1 个聊天", - "resumedLabel": "已恢复 {{value0}} 个聊天", - "resumedAriaOne": "已恢复 1 个聊天。点击查看。", - "resumedAria": "已恢复 {{value0}} 个聊天。点击查看。", - "resumedTooltip": "重启后 Orca 恢复的聊天。点击查看。" + "resumedTooltip": "重启后 Orca 恢复的聊天。点击查看。", + "chatsFailedLabel_other": "{{count}} 个聊天恢复失败", + "chatsFailedAria_other": "{{count}} 个聊天恢复失败。点击查看详情。", + "resumedLabelCount_other": "已恢复 {{count}} 个聊天", + "resumedAriaCount_other": "已恢复 {{count}} 个聊天。点击查看。", + "checkLabelCount_other": "{{count}} 个聊天待检查", + "checkAriaCount_other": "{{count}} 个聊天恢复后需要检查。点击查看详情。", + "labelCount_other": "{{count}} 个聊天待恢复", + "ariaLabelCount_other": "{{count}} 个聊天可恢复" }, "provider": { "extra": { @@ -4225,6 +4243,71 @@ } } } + }, + "mergeSnapshotAndSessions": { + "unattributed": "归属未知" + }, + "resourceSessionLabels": { + "terminalNumber": "终端 {{number}}", + "pid": "PID {{pid}}", + "sessionPrefix": "会话 {{id}}", + "unknownSession": "(未知会话)", + "unknown": "未知" + }, + "runtimeTargets": { + "wslDefault": "WSL 默认值" + }, + "floatingWorkspace": { + "minimize": "最小化浮动工作区", + "show": "显示浮动工作区" + }, + "workspaceSpaceGitRefresh": { + "ownerUnavailable": "工作区所有者已不可用" + }, + "workspaceSpaceDecision": { + "syncedWithUpstream": "已与上游同步", + "aheadAndBehind": "领先 {{ahead}},落后 {{behind}}", + "ahead": "领先 {{ahead}}", + "behind": "落后 {{behind}}", + "activeAgents_other": "{{count}} 个活动智能体", + "completedAgents_other": "{{count}} 个已完成的智能体", + "activeAndCompletedAgents": "{{active}},{{completed}}", + "completedAgentsRetained_other": "保留了 {{count}} 个已完成的智能体", + "noTrackedAgents": "没有正在运行的受跟踪智能体", + "noTerminalTabs": "没有终端标签页", + "liveTerminalTabs_other": "{{count}} 个终端标签页中有 {{live}} 个正在运行", + "gitStatusUnavailable": "无法获取 Git 状态:{{error}}", + "gitStatusNotLoaded": "尚未加载 Git 状态", + "noUncommittedFiles": "没有未提交的文件", + "changedFiles_other": "{{count}} 个已更改的文件", + "noEditorFiles": "编辑器中没有打开的文件", + "editorFilesOpen_other": "编辑器中打开了 {{count}} 个文件", + "dirtyOfOpen": "{{open}},其中 {{dirty}}", + "dirtyEditorBuffers_other": "{{count}} 个未保存的编辑器缓冲区", + "openFiles_other": "{{count}} 个打开的文件", + "activeWorkspace": "这是当前活动工作区", + "mainWorktreeProtected": "主工作树受保护", + "workspaceProtected": "工作区受保护", + "canDeleteAfterReview": "检查后可删除", + "noLinkedIssue": "没有关联的议题", + "noLinkedReview": "没有关联的 PR", + "browserTabsOpen_other": "打开了 {{count}} 个浏览器标签页" + }, + "workspaceSpaceFormat": { + "cancellingScan": "正在取消扫描", + "currentWorkspaces": "工作区", + "scanningWorkspaces": "正在扫描 {{scanned}} / {{total}} · {{current}}", + "scanningRepos_other": "正在扫描 {{scanned}} / {{count}} 个仓库 · {{current}}", + "scanningSizes": "正在扫描工作区大小", + "status": { + "scanned": "已扫描", + "missing": "缺失", + "noAccess": "无访问权限", + "unavailable": "不可用", + "failed": "失败" + }, + "mainWorktree": "主工作树", + "detached": "分离状态" } } }, @@ -5027,12 +5110,10 @@ "39d51212cc": "组名称", "aa0247680d": "否,单独导入", "a0bc4d1f8e": "是,作为组导入", - "8401a7a0d0": "1 个仓库", - "d4f1df62ef": "{{value0}} 个仓库", - "b4263a2ac4": "在 {{value1}} 中找到 {{value0}}。", "24eda6c8b2": "正在扫描... {{value0}}", "6149d5203f": "未选择任何仓库。改为打开父文件夹,即可在没有 Git 功能的情况下使用编辑器、终端和搜索。", - "e52454b7f6": "作为文件夹打开" + "e52454b7f6": "作为文件夹打开", + "foundRepositories_other": "在 {{path}} 中找到 {{count}} 个仓库。" }, "AddRepoRemoteStep": { "6680289908": "/home/user/project", @@ -5101,9 +5182,8 @@ "eab8b45238": "复制错误", "a23b22d16f": "已复制", "74fc00776f": "错误详情", - "3afcad0497": "从第一条智能体消息开始。", - "ff62a18580": "Orca 无法生成分支名称", - "ca3b225195": "分支自动命名失败" + "ca3b225195": "分支自动命名失败", + "couldNotGenerateBranchName": "Orca 无法根据智能体的第一条消息为 {{name}} 生成分支名称。" }, "CreateProjectLocationField": { "95548e33bf": "选择父文件夹...", @@ -5123,37 +5203,35 @@ "2b56b35f53": "您可以在“设置”中更改此设置。", "dd3a45bbbd": "下次我们将跳过此确认。", "fc23c4cbdf": "删除工作区", - "86f0ae1257": "删除工作区" + "86f0ae1257": "删除工作区", + "removeFolderProjectInstead": "请移除文件夹项目,而不是删除此工作区。", + "gitBlocksMainWorktree": "Git 不允许移除主工作树。" }, "DeleteWorktreeDirtyChangeHint": { "showLoadedPaths": "显示已加载的路径", "loadedPathsNotice": "已加载的路径可能不完整或已过时。", "loadedChangedPaths": "已加载的更改路径", "unresolvedConflict": "未解决的冲突", - "moreLoadedPaths": "以及另外 {{value0}} 个已加载的路径", "changeCount_one": "{{count}} 处未提交或未跟踪的更改", "changeCount_other": "{{count}} 处未提交或未跟踪的更改", - "changes": "未提交或未跟踪的更改" + "changes": "未提交或未跟踪的更改", + "moreLoadedPaths_other": "以及另外 {{count}} 个已加载的路径" }, "DeleteWorktreeLineageNotice": { - "ad407c2d55": "更多的", "a940f3c96e": "子工作区将被删除", - "29b98bf9cd": "删除此工作区也会删除 {{value0}} 子工作区。", - "66798cc6a2": "删除此工作区也会删除 1 个子工作区。" + "alsoDeletesChildren_other": "删除此工作区也会删除 {{count}} 个子工作区。", + "moreChildren_other": "另有 {{count}} 个" }, "DeleteWorktreeSkipConfirmOption": { "29aefb7e52": "不要再问" }, "DeleteWorktreeWarningPanels": { - "026738155a": "(原始克隆目录)。", - "c4f96a6e18": "主工作树", - "e3be9eba15": "这是" + "mainWorktreeNotice": "这是主工作树(最初的克隆目录)。" }, "ImportedWorktreesVisibilityLine": { "b7a87dc32f": "在工作树列表中显示", "ad99f4eea9": "保持隐藏", "9f4f14e821": "稍后从项目菜单中更改此设置。", - "b2bc47c080": "更多位置", "b47ba1a9d2": "{{value0}} 预览", "2251d41ebb": "隐藏的工作树组", "5a9688802a": "显示 {{value0}} 更多", @@ -5167,7 +5245,8 @@ "keepHiddenAriaLabel_one": "为 {{repo}} 保留 {{count}} 个检测到的工作树为隐藏状态;可从项目菜单恢复", "keepHiddenAriaLabel_other": "为 {{repo}} 保留 {{count}} 个检测到的工作树为隐藏状态;可从项目菜单恢复", "keepHiddenTooltip": "保持隐藏 - 从项目菜单恢复", - "repoOnHost": "{{host}} 上的 {{repo}}" + "repoOnHost": "{{host}} 上的 {{repo}}", + "moreLocations_other": "另有 {{count}} 个位置" }, "NonGitFolderDialog": { "e52454b7f6": "作为文件夹打开", @@ -5201,20 +5280,22 @@ }, "ProjectGroupDeleteDialog": { "ca65b78f78": "取消", - "69f5cb97d0": "删除", "591f330288": "删除项目组", "2c14ce677a": "正在删除...", "0e0e6764af": "包含的项目", - "ad407c2d55": "更多", - "removeContainedProjectSingular": "移除 1 个包含的项目", - "removeContainedProjectPlural": "移除 {{value0}} 个包含的项目", "55f75628c0": "不会删除磁盘上的项目文件夹。", - "fec7e9c8ae": "删除组" + "fec7e9c8ae": "删除组", + "removeContainedProjects_other": "移除包含的 {{count}} 个项目", + "deleteGroupDescription": "删除 {{name}}。", + "moreProjects_other": "另有 {{count}} 个" }, "ProjectGroupNameDialog": { "d99a034073": "取消", "83dfbc5313": "群组名称", - "4a64e78822": "保存中..." + "4a64e78822": "保存中...", + "defaultGroupName": "{{name}} 组", + "create": "创建", + "rename": "重命名" }, "RemoteFileBrowser": { "2300612806": "键入要搜索的内容或输入路径...", @@ -5226,7 +5307,9 @@ "largeInputNoMatches": "没有匹配此长输入的结果", "entriesLabel": "文件夹条目", "inputLabel": "筛选或路径", - "fileHint": "文件无法作为项目打开" + "fileHint": "文件无法作为项目打开", + "invalidPathRepeatedSeparators": "无效路径:分隔符重复", + "invalidPathControlCharacters": "无效路径:不允许使用控制字符" }, "SleepTwinWorkspaceDialog": { "title": "Sleep Workspace", @@ -5256,11 +5339,10 @@ "70715947fb": "安装脚本不能为空", "888b83bf78": "无法保存设置脚本", "a49196d538": "当 Orca 创建新工作树时运行。", - "d9f2db2738": "项目的设置", - "a5bb8c5135": "保存在这个", "savedSetupCommand": "已保存设置命令。", "savedWithSkippedFields_one": "已跳过 {{count}} 个不受支持的字段。设置命令已保存。", - "savedWithSkippedFields_other": "已跳过 {{count}} 个不受支持的字段。设置命令已保存。" + "savedWithSkippedFields_other": "已跳过 {{count}} 个不受支持的字段。设置命令已保存。", + "savedInProjectSettings": "已保存在此项目的设置中" }, "SetupScriptPromptCardViews": { "96a7f4198c": "保存本地设置", @@ -5268,20 +5350,17 @@ "31b8b01a45": "设置", "4a98f907ae": "重试", "0a98169776": "添加在 Orca 创建新工作树时运行的设置命令。", - "8349e3fa4c": "。保存它以运行新的工作树。", - "b56d1322f7": "找到一个设置命令", "aef6c0a213": "保存已检测的命令,以便在 Orca 创建工作树时运行它。", - "660cdc17f8": "设置脚本。添加本地命令,或在“设置”中更改源。", - "8f6be51aa1": "orca.yaml", - "bb879db364": "此仓库忽略共享", "0155fb9ed3": "目前无法验证此仓库的设置脚本。", "eefa756190": "手动配置", "ca4efcbc25": "保存", - "d02e6a42b1": "检测自", "fdbc6cb064": "已检测的安装脚本", "7275f674cc": "已检测的设置", "822ff300ad": "关闭", - "5bfd5c8779": "关闭安装脚本" + "5bfd5c8779": "关闭安装脚本", + "detectedFromSource": "从 {{source}} 已检测", + "ignoresSharedSetup": "此仓库会忽略共享的 orca.yaml 设置脚本。请添加本地命令,或在“设置”中更改来源。", + "foundSetupCommandIn": "在 {{source}} 中找到设置命令。保存后即可在新工作树中运行。" }, "SidebarFeedbackDialog": { "8bf619e4cf": "取消", @@ -5458,8 +5537,8 @@ "WorkspaceKanbanDrawerHeader": { "f369f5c5a3": "关闭", "e1a34450fc": "按状态组织工作区并打开工作区卡。", - "81870af08f": "已选择", - "c6a77ab0f4": "工作区看板" + "c6a77ab0f4": "工作区看板", + "selectedCount_other": "已选择 {{count}} 项" }, "WorkspaceKanbanPinDropTarget": { "c30151c5ee": "拖放到此处即可固定,无需更改状态。", @@ -5560,7 +5639,8 @@ "2931b42b09": "状态:草案 {{value0}}", "e888362def": "状态: 关闭", "f394b3e86e": "状态:合并", - "af2b07bda5": "状态:{{value0}}" + "af2b07bda5": "状态:{{value0}}", + "checksStatus": "检查:{{status}}" }, "WorktreeCardPorts": { "3240f320d7": "实时端口", @@ -5571,8 +5651,8 @@ "5d1a5d51bb": "已停止 {{value0}} 上的进程", "c89f290e25": "已复制 {{value0}}", "d1113f4660": "无法打开浏览器", - "fed49903c9": "{{value0}} 个正在运行的 {{value1}}", - "unknownProcess": "未知进程" + "unknownProcess": "未知进程", + "livePorts_other": "{{count}} 个活动端口" }, "WorktreeContextMenu": { "c39c37676a": "创建一个组并将该项目移入其中。", @@ -5614,7 +5694,6 @@ "f9dc6cc5d3": "重命名项目组", "370c6a55dd": "清除筛选条件", "b7acbf038b": "未找到工作区", - "0c6ee14f23": "子", "c83968f87f": "删除项目", "64e55f7f01": "从组中删除", "4a08fb55f2": "移至群组", @@ -5627,12 +5706,7 @@ "4d7b73658c": "重命名组", "79465e9034": "{{value0}} 的分组操作", "bfbedc547b": "工作树", - "045a8aed48": "子工作区", "bb85cd86ba": "为 {{value0}} 创建工作区", - "20bebf9c7f": "显示 {{value0}} 个子工作区", - "c1f4a31623": "显示 {{value0}} 个子工作区", - "e97297cb75": "隐藏 {{value0}} 个子工作区", - "0cd15956d4": "隐藏 {{value0}} 个子工作区", "bd37a57ac8": "为 {{value0}} 创建工作区", "b667b59632": "部分项目无法从 Orca 中移除", "groupDeleteFailed": "删除分组失败", @@ -5646,8 +5720,10 @@ "groupRenameFailed": "重命名组失败", "groupRenameFailedDesc": "Orca 无法与该分组所在的主机确认新名称。重新连接后请再次检查该分组。", "hostRepairRequired": "Re-pair required", - "groupProjectsRemainedSingular": "删除分组后,{{count}} 个包含项目中仍剩 {{remaining}} 个。", - "groupProjectsRemainedPlural": "删除分组后,{{count}} 个包含项目中仍剩 {{remaining}} 个。" + "showChildWorkspaces_other": "显示 {{count}} 个子工作区", + "hideChildWorkspaces_other": "隐藏 {{count}} 个子工作区", + "childCount_other": "{{count}} 个子项", + "groupProjectsRemained_other": "删除组后,原先包含的 {{count}} 个项目中仍保留了 {{remaining}} 个。" }, "WorktreeMetaDialog": { "3db0a2a593": "取消", @@ -5711,7 +5787,6 @@ "d40d436fc2": "无法更新工作树可见性。请重试。", "unsupportedHost": "此主机不支持按来源设置工作树可见性。请更新主机上的 Orca 以更改此设置。", "search": "搜索隐藏的工作树", - "searchPlaceholder": "搜索 {{value0}} 个工作树…", "noMatches": "没有匹配的工作树", "allShown": "已显示所有检测到的工作树", "noneFound": "未找到非 Orca 工作树", @@ -5719,7 +5794,8 @@ "disableSource": "禁用来源后可单独管理其工作树。", "appearWhenDetected": "Orca 检测到新工作树后,它们会显示在这里。", "openGlobalSettings": "在全局设置中管理", - "globalSettingsSources": "以下来源有全局设置,可在此处覆盖:" + "globalSettingsSources": "以下来源有全局设置,可在此处覆盖:", + "searchHiddenPlaceholder_other": "搜索 {{count}} 个工作树…" }, "WorktreeVisibilitySourceList": { "claude": "Claude Code", @@ -5950,12 +6026,9 @@ "670864ab52": "使本地 {{value0}} 保持最新", "84c62e4d7f": "无法开启 {{value0}}", "442552c656": "打开设置并重试。", - "f15fd80989": "新工作树是最新的,但本地 {{value0}} 落后 {{value1}} {{value2}},因此 AI 差异可能会与过时历史比较。让 Orca 自动保持它最新。可随时在", - "3d260e1a5d": "设置 › {{value0}}", "34a03a6565": "保持 {{value0}} 最新", "4a18052018": "本地 {{value0}} 落后于 {{value1}}", - "commit": "提交", - "commits": "提交" + "staleLocalBranch_other": "新工作树已是最新状态,但本地分支 {{branch}} 落后 {{count}} 个提交,因此 AI 差异比较可能会基于过时的历史记录。让 Orca 自动更新此分支。你可以随时在设置 › {{setting}}中更改此设置" } } } @@ -6020,13 +6093,11 @@ "7a8b9c0d1e": "打开设置", "8b9c0d1e2f": "删除主机", "workspacesFailed": "无法移除此主机的 {{count}} 个工作区。主机已保留,您可以重试。", - "oneWorkspace": "1 个工作区", - "manyWorkspaces": "{{count}} 个工作区", - "hostHasWorkspacesDefault": "从此计算机移除 {{value0}} 及其凭据。其 {{value1}} 保留在 Orca 中 — 远程文件不会被删除。", - "alsoForgetLocal": "同时从 Orca 中移除这些 {{value0}}", "advanced": "高级", "alsoForgetLocalHint": "仅从 Orca 中清除。远程文件、工作树和分支均不受影响。", - "wslHostEndsTerminalsUnlessShared": "从 Orca 中移除 {{value0}}。除非此计算机上打开的另一个 Orca 正在使用它,否则还会结束其打开的终端,并停止该发行版中的 Orca 服务器。发行版中的文件不受影响。" + "wslHostEndsTerminalsUnlessShared": "从 Orca 中移除 {{value0}}。除非此计算机上打开的另一个 Orca 正在使用它,否则还会结束其打开的终端,并停止该发行版中的 Orca 服务器。发行版中的文件不受影响。", + "hostKeepsWorkspaces_other": "从此电脑移除 {{host}} 及其凭据。其 {{count}} 个工作区会保留在 Orca 中,远程文件不会受到影响。", + "alsoRemoveWorkspaces_other": "同时从 Orca 移除这 {{count}} 个工作区" }, "HostRenameDialog": { "1a2b3c4d5e": "重命名主机", @@ -6070,7 +6141,7 @@ "current": "当前", "searchPlaceholder": "搜索工作树...", "empty": "没有匹配的可用工作树。", - "setParentFor": "为以下工作树设置父级" + "setParentForName": "为 {{name}} 设置父级" }, "WorktreeCardStatusSlot": { "branchIdentity": "分支", @@ -6081,11 +6152,9 @@ "NewExternalWorktreesInboxLine": { "9f2d4c8b17": "永久隐藏 {{value0}} 的外部工作树", "c3e8a1f4b2": "不再显示", - "2a6f31d8c7": "隐藏的工作树", - "5b90e4a2f6": "隐藏的工作树", - "7f18c5b0d3": "查看 {{value1}} 中的 {{value0}} 隐藏工作树", - "4e2b7a9c05": "查看 {{value1}} 中的 {{value0}} 隐藏工作树", - "6c07f3a91e": "{{value0}} 在 {{value1}} 上" + "6c07f3a91e": "{{value0}} 在 {{value1}} 上", + "hiddenWorktreesNoun_other": "隐藏的工作树", + "reviewHiddenWorktrees_other": "查看 {{scope}} 中 {{count}} 个隐藏的工作树" }, "NoticeHostGlyph": { "hostDisconnected": "{{hostName}} 已断开连接", @@ -6176,8 +6245,8 @@ "sshConfigPickerRetry": "重试", "sshConfigPickerResolving": "阅读…", "pairingHelpShareComputer": "在另一台电脑上通过“设置 → 远程 Orca 服务器 → 共享此电脑”创建。", - "sshImportSyncedPlural": "已将 {{count}} 个主机添加到 Orca。", - "sshImportSyncedSingular": "已将 {{count}} 个主机添加到 Orca。" + "sshImportSynced_other": "已向 Orca 添加 {{count}} 个主机。", + "sshConfigPickerInvalidResponse": "SSH 配置主机响应无效" }, "ForgetSshWorkspaceDialog": { "ghostBody": "{{host}} 不再是已保存的 SSH 主机,因此此工作区不再连接到活跃主机。只能从 Orca 中移除 — 远程文件和分支保持不变。", @@ -6200,11 +6269,11 @@ }, "WorkspaceKanbanSearchField": { "bdb753c78d": "没有匹配的工作区", - "4d96c209d6": "{{value1}} 个工作区中有 {{value0}} 个匹配", "c0cd6bdf6c": "搜索工作区", "3b7ea51793": "清除搜索", "7f1c2e94a5": "搜索文本过长 — 看板未被筛选", - "9a4d0f6b21": "过长" + "9a4d0f6b21": "过长", + "workspacesMatch_other": "{{count}} 个工作区中有 {{matchCount}} 个匹配" }, "WorktreeCardSshHostControl": { "connectFailed": "SSH 连接失败", @@ -6276,11 +6345,11 @@ "developerToolsTitle": "安装 Apple 命令行工具", "developerToolsBody": "Git 需要 Apple 开发者工具。请在终端中运行此命令,然后切回 Orca。它会自动重新检查。", "affectedOne": "已暂停 {{value0}} 的工作树扫描", - "affectedMany": "已暂停 {{value0}} 个项目的工作树扫描", "copyCommand": "复制命令", "copied": "命令已复制", "retry": "立即重试", - "restored": "Git 已恢复正常。工作树已刷新。" + "restored": "Git 已恢复正常。工作树已刷新。", + "affectedProjects_other": "{{count}} 个项目的工作树扫描已暂停" }, "manualSortSwitch": { "title": "排序更改为手动", @@ -6325,7 +6394,8 @@ "wslHostRemoval": { "keptForOthers": "已从此 Orca 中移除。该主机将继续为 {{value0}} 运行。", "partial": "主机已被移除,但发行版中仍有内容在运行:{{value0}}", - "pending": "Orca 尚未移除该主机:{{value0}} 可再次移除以重试,或连接以保留它。" + "pending": "Orca 尚未移除该主机:{{value0}} 可再次移除以重试,或连接以保留它。", + "unavailable": "此电脑上无法使用 WSL 主机。" }, "addRepoWslHostFolderPicker": { "otherDistro": "该文件夹位于 {{value0}} 中,而不是 {{value1}}。", @@ -6366,6 +6436,40 @@ "openingProject": "正在打开项目…", "openingFolder": "正在打开文件夹…", "chooseFolder": "选择文件夹…" + }, + "DeleteNestedWorktreesDialog": { + "unsupportedHost": "此主机不支持删除嵌套工作树。" + }, + "WorktreeCardHelpers": { + "checksPassing": "通过", + "checksFailing": "失败", + "checksPending": "待处理", + "conflictMerging": "合并中", + "conflictRebasing": "变基中", + "conflictCherryPicking": "挑拣中" + }, + "folderWorkspaceComposer": { + "defaultWorkspaceName": "{{name}} 工作区" + }, + "workspaceKanbanStatus": { + "defaultLabel": "状态 {{number}}" + }, + "worktreeCardModel": { + "sparsePreviewMore_other": "{{preview}},另有 {{count}} 个" + }, + "worktreeCardPrDisplay": { + "mrDetailsUnavailable": "无法获取 MR 详情", + "prDetailsUnavailable": "无法获取 PR 详情", + "loadingMr": "正在加载 MR…", + "loadingPr": "正在加载 PR…" + }, + "HostSectionHeader": { + "workspaceCount_other": "{{count}} 个工作区" + }, + "titleDerivedAgentRows": { + "needsInput": "需要输入", + "running": "运行中", + "idle": "空闲" } }, "shared": { @@ -13918,17 +14022,8 @@ "new": { "workspace": { "SmartWorkspaceNameField": { - "2a0d535f69": "创建新分支", - "a44229ce4d": "作为工作区名称", - "766083a596": "”", - "34ca97bce3": "“", - "b1a7d679ba": "使用", "e57c53727c": "添加项目...", - "a76fcb4fa0": "切换到", - "eadf877af5": "保持", "6859e2896c": "取消", - "9ef1a7c4b0": ",与所选项目不同。", - "ad188067ae": "GitHub URL 指向", "4bd98f1091": "切换项目?", "0c9e668e3a": "清除", "7199ff19c7": "清除选定的来源", @@ -13947,7 +14042,6 @@ "fda67f0b61": "当前项目", "3e8bb1176a": "在设置中连接 Linear 以搜索议题。", "switchTaskSourceTitle": "切换任务来源?", - "differentTaskSource": ",与所选任务来源不同。", "currentTaskSource": "当前任务来源", "placeholderNameOrLinearUrl": "输入名称、Linear URL 或 Jira URL", "placeholderWorkspaceName": "输入工作区名称", @@ -13976,7 +14070,13 @@ "emoji": "Emoji", "loadingLinearIssue": "正在加载 Linear 议题...", "linearLoginUnreadableTitle": "重新连接 Linear", - "linearLoginUnreadableBody": "无法读取已保存的 Linear 登录信息。请在设置中重新连接。" + "linearLoginUnreadableBody": "无法读取已保存的 Linear 登录信息。请在设置中重新连接。", + "keepRepo": "保留 {{name}}", + "switchToRepo": "切换到 {{name}}", + "crossRepoDifferentTaskSource": "GitHub URL 指向 {{repo}},与所选任务来源不同。", + "crossRepoDifferentProject": "GitHub URL 指向 {{repo}},与所选项目不同。", + "useAsWorkspaceName": "使用 “{{name}}” 作为工作区名称", + "createNewBranchNamed": "创建新分支 {{name}}" }, "ProjectCombobox": { "empty": "没有匹配搜索的项目。", @@ -13999,6 +14099,11 @@ "cloneFromUrl": "从 URL 克隆", "cloneFromUrlHelp": "将此仓库克隆到 {{host}} 上。", "saveLocation": "设置位置" + }, + "projectCombobox": { + "recentHeading": "最近", + "projectsHeading": "项目", + "foldersHeading": "文件夹" } } }, @@ -15598,7 +15703,8 @@ }, "dashboard": { "DashboardAgentChildDisclosure": { - "1b57ce9fa4": "{{value0}} {{value1}} 子 {{value2}}" + "hideChildAgents_other": "隐藏 {{count}} 个子智能体", + "showChildAgents_other": "显示 {{count}} 个子智能体" }, "DashboardAgentRow": { "912e136cd9": "发送", @@ -15606,7 +15712,12 @@ "a41fb5376e": "折叠详情", "5ae84475cc": "关闭", "b06e13fcf7": "关闭智能体", - "0272969e28": "发送给该智能体" + "0272969e28": "发送给该智能体", + "justNow": "刚刚", + "timeAgo": "{{duration}} 前", + "dispatchedAgents_other": "{{agentType}} - 已分派 {{count}} 个智能体", + "startedAgo": "开始于 {{time}}", + "doneAgo": "完成于 {{time}}" }, "DashboardAgentRowMessage": { "0a01046763": "被打断", @@ -16722,14 +16833,13 @@ "clearNotification": "清除通知" }, "ActivityTitlebarControls": { - "f915168c8e": "未读", "d6a8de3934": "智能体", - "dc708f3eff": "紧密智能体" + "dc708f3eff": "紧密智能体", + "unreadCount_other": "{{count}} 条未读" }, "clearCompleted": { - "clearedOne": "清除 1 个已完成的智能体", - "clearedMany": "已清除 {{count}} 已完成的智能体", - "undo": "撤消" + "undo": "撤消", + "cleared_other": "已清除 {{count}} 个已完成的智能体" }, "standaloneWorktree": { "floatingTerminal": "浮动终端", @@ -17552,6 +17662,16 @@ "unreachable": "无法连接 Jira。请检查连接后重试。", "loadFailed": "无法加载 Jira 议题。请稍后重试。", "errorWithCode": "错误 {{code}}:{{summary}}" + }, + "cmdJ": { + "quickActionUnavailable": { + "workspaceLoading": "无法运行“{{action}}” — 工作区仍在加载中。", + "noActiveWorkspace": "无法运行“{{action}}” — 没有活动的工作区。", + "workspaceDisconnected": "无法运行“{{action}}” — 工作区已断开连接。", + "noTabGroup": "无法运行“{{action}}” — 没有可用的标签页组。", + "noMovableChat": "无法运行“{{action}}” — 没有活动且可移动的聊天。", + "clientUnsupported": "无法运行“{{action}}” — 此客户端和运行时不支持该操作。" + } } }, "i18n": { @@ -18590,12 +18710,6 @@ "gitStatusCheckFailed": "Git 状态检查失败", "gitStatusUnverified": "无法验证 Git 状态", "deleteAnyway": "仍然删除", - "forceDeleteProjectionOne": "当前有 {{count}} 个工作区显示风险,可能需要强制删除", - "forceDeleteProjectionMany": "当前有 {{count}} 个工作区显示风险,可能需要强制删除", - "selectionWithheldOne": "当前筛选条件隐藏了 1 个已选工作区,已取消选择。", - "selectionWithheld": "当前筛选条件隐藏了 {{value0}} 个已选工作区,已取消选择。", - "selectAllCountOne": "选择 1 个通过安全检查的工作区", - "selectAllCount": "选择全部 {{value0}} 个通过安全检查的工作区", "appliedFilters": "已应用的筛选", "removeFilter": "移除筛选 {{value0}}", "chip": { @@ -18760,8 +18874,6 @@ "none": "没有" }, "idleSignalField": "空闲信号", - "selectionVanishedOne": "1 个选定的工作区不再存在。", - "selectionVanished": "{{value0}} 选定的工作区不再存在。", "updatedAgo": "已更新 {{value0}}", "refreshing": "刷新中…", "refreshingProgress": "刷新中{{value0}}/{{value1}}", @@ -18772,18 +18884,21 @@ "measuringSizesProgress": "扫描 {{value0}}/{{value1}}", "measuringSizes": "扫描尺寸", "measureSizesFailed": "无法扫描工作区大小", - "selectedCount": "已选择 {{value0}}" + "selectedCount": "已选择 {{value0}}", + "forceDeleteRisk_other": "{{count}} 个工作区目前存在风险,可能需要强制删除", + "selectionVanishedCount_other": "所选的 {{count}} 个工作区已不存在。", + "selectionWithheldCount_other": "所选的 {{count}} 个工作区被当前筛选条件隐藏,已取消选择。", + "selectAllSafetyChecked_other": "选择全部 {{count}} 个已通过安全检查的工作区" }, "scan": { - "readyOne": "找到 1 个工作区。", - "readyMany": "找到 {{value0}} 个工作区。", "progress": "扫描工作区 ({{value0}}/{{value1}})", "singleError": "无法检查 {{value0}}:{{value1}}。某些工作区可能会丢失。刷新再试一次。", - "moreErrors": ", +{{value0}} 更多", - "multipleErrors": "无法检查 {{value0}} 仓库 ({{value1}}{{value2}})。某些工作区可能会丢失。刷新再试一次。", "noWorkspaces": "未找到工作区。", "fallbackRepository": "一个仓库", - "gitListFailed": "Git 无法列出工作树" + "gitListFailed": "Git 无法列出工作树", + "multipleErrorsWithMore_other": "无法检查 {{count}} 个仓库({{names}},另有 {{moreCount}} 个)。部分工作区可能未显示。请刷新后重试。", + "multipleErrorsCount_other": "无法检查 {{count}} 个仓库({{names}})。部分工作区可能未显示。请刷新后重试。", + "readyCount_other": "找到 {{count}} 个工作区。" }, "presentationFixtures": { "reviewAlphaCleanup": "评审 Alpha 清理" @@ -20228,7 +20343,6 @@ "repositoryLoading": "仓库身份仍在加载。待其可用后重试。", "duplicate": "此链接已附加。", "title": "已链接的工作", - "count": "已链接 {{count}} 项", "empty": "将此工作区的所有评审和任务集中在一起。", "reviews": "评审", "tasks": "议题和任务", @@ -20236,7 +20350,6 @@ "open": "打开链接", "unlinkItem": "取消链接 {{label}}", "unlink": "从工作区取消链接", - "show": "显示 {{count}} 个已链接的评审和任务", "details": "工作区详情", "description": "为此工作区关联评审和任务,并保留笔记。", "commentHelp": "支持 Markdown。按 Enter 或 {{shortcut}} 保存 · Shift+Enter 换行。", @@ -20289,7 +20402,9 @@ "checksPassing": "通过", "checksUnknown": "未知", "checksNeutral": "中性", - "allReviewChecks": "评审:{{count}} · 检查:{{status}}" + "allReviewChecks": "评审:{{count}} · 检查:{{status}}", + "showLinked_other": "显示 {{count}} 个关联的审查和任务", + "linkedCount_other": "已关联 {{count}} 项" }, "attachments": { "updateRuntime": "更新远程运行时以更改工作区链接", @@ -20595,7 +20710,7 @@ "compact": { "linked": "已链接", "linkedAndUnavailable": "链接工作树中的 {{value0}} · {{value1}} 不可用", - "linkedAndScanned": "链接工作树中的 {{value0}} · {{value1}} 工作区" + "linkedAndScannedCount_other": "关联工作树占用 {{size}} · {{count}} 个工作区" }, "changes": { "empty": "没有匹配的文件。",