Decouple bundled UI from runtime API and add remote instance tooling (#1228)
Add a packaged-client runtime boundary so the shared UI can talk to local, desktop, remote, and VS Code runtimes through the right transport instead of assuming one same-origin web server. Centralize OpenChamber-owned API access behind RuntimeAPIs, runtimeFetch, and runtime URL helpers, while keeping official OpenCode traffic on the SDK path. Support runtime switching, remote host selection, desktop client credentials, and headless connection links for pairing packaged clients with remote OpenChamber servers. Harden the new auth model by moving long-lived client tokens out of browser URLs, introducing short-lived scoped URL tokens for browser-owned transports, restricting URL-token access to explicit readable/realtime routes, and making client-token management session-scoped or self-scoped as appropriate. Update browser-owned assets and preview proxy flows to work with the split runtime model, including authenticated project icons, preview token propagation, CSP-safe preview bridge injection, and preview proxy auth that survives short-lived URL-token expiry. Tighten Electron security boundaries for packaged clients by gating privileged preload state to trusted origins and requiring explicit confirmation before connect deep-links import or switch remote runtimes. Also refresh agent guidance and project skills so future runtime/API, auth, preview, UI, CLI, settings, locale, and drag-to-reorder work follows the new architecture.
This commit is contained in:
committed by
GitHub
parent
a4314c189b
commit
2031e3b4a8
@@ -231,19 +231,50 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion',
|
||||
'settings.remoteInstances.sidebar.title': 'Remote Instances',
|
||||
'settings.remoteInstances.sidebar.total': 'Total {count}',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': 'New SSH Instance',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': 'Add SSH instance',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': 'New SSH connection',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': 'Add SSH connection',
|
||||
'settings.remoteInstances.sidebar.actions.connect': 'Connect',
|
||||
'settings.remoteInstances.sidebar.actions.disconnect': 'Disconnect',
|
||||
'settings.remoteInstances.sidebar.actions.retry': 'Retry',
|
||||
'settings.remoteInstances.sidebar.actions.remove': 'Remove',
|
||||
'settings.remoteInstances.sidebar.confirm.localPortInUseRetry': 'Local port is already in use. Pick a random free local port and retry?',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': 'Failed to create SSH instance',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': 'Failed to create SSH connection',
|
||||
'settings.remoteInstances.sidebar.toast.retriedWithRandomPort': 'Retried with a random local port',
|
||||
'settings.remoteInstances.sidebar.toast.connectFailed': 'Failed to connect instance',
|
||||
'settings.remoteInstances.sidebar.toast.disconnectFailed': 'Failed to disconnect instance',
|
||||
'settings.remoteInstances.sidebar.toast.retryFailed': 'Failed to retry connection',
|
||||
'settings.remoteInstances.sidebar.toast.removeFailed': 'Failed to remove instance',
|
||||
'settings.remoteInstances.direct.sidebarTitle': 'Server links',
|
||||
'settings.remoteInstances.direct.sidebarDescription': 'Connect with a link or token',
|
||||
'settings.remoteInstances.direct.title': 'Other OpenChamber servers',
|
||||
'settings.remoteInstances.direct.description': 'Add another OpenChamber server by URL. Use this when the server is already running and you have a connection token.',
|
||||
'settings.remoteInstances.direct.field.labelPlaceholder': 'Label (optional)',
|
||||
'settings.remoteInstances.direct.field.urlPlaceholder': 'https://host:port',
|
||||
'settings.remoteInstances.direct.field.tokenPlaceholder': 'Connection token (optional for trusted local servers)',
|
||||
'settings.remoteInstances.direct.note': 'Connection tokens are saved on this device and used only when this app connects to that server.',
|
||||
'settings.remoteInstances.direct.actions.add': 'Add Server',
|
||||
'settings.remoteInstances.direct.import.description': 'Paste a connection link from another OpenChamber server.',
|
||||
'settings.remoteInstances.direct.import.placeholder': 'openchamber://connect?...',
|
||||
'settings.remoteInstances.direct.import.action': 'Import Link',
|
||||
'settings.remoteInstances.direct.error.invalidConnectLink': 'Invalid OpenChamber connection link.',
|
||||
'settings.remoteInstances.direct.state.loading': 'Loading instances...',
|
||||
'settings.remoteInstances.direct.state.empty': 'No other servers added yet.',
|
||||
'settings.remoteInstances.clientAuth.title': 'Connect to this server',
|
||||
'settings.remoteInstances.clientAuth.description': 'Create a secure link or token so OpenChamber Desktop can connect to this server.',
|
||||
'settings.remoteInstances.clientAuth.field.labelPlaceholder': 'Device name (optional)',
|
||||
'settings.remoteInstances.clientAuth.actions.create': 'Create Token',
|
||||
'settings.remoteInstances.clientAuth.actions.pair': 'Create Link',
|
||||
'settings.remoteInstances.clientAuth.actions.revoke': 'Revoke',
|
||||
'settings.remoteInstances.clientAuth.actions.clearRevoked': 'Clear revoked',
|
||||
'settings.remoteInstances.clientAuth.qrAlt': 'OpenChamber connection QR code',
|
||||
'settings.remoteInstances.clientAuth.pairingUrl': 'Connection link',
|
||||
'settings.remoteInstances.clientAuth.createdToken': 'Copy this token now. For security, it will not be shown again.',
|
||||
'settings.remoteInstances.clientAuth.state.loading': 'Loading tokens...',
|
||||
'settings.remoteInstances.clientAuth.state.empty': 'No devices connected yet.',
|
||||
'settings.remoteInstances.clientAuth.state.revoked': 'Revoked',
|
||||
'settings.remoteInstances.clientAuth.state.thisDevice': 'This device',
|
||||
'settings.remoteInstances.clientAuth.lastUsed': 'Last used {date}',
|
||||
'settings.remoteInstances.clientAuth.neverUsed': 'Never used',
|
||||
'settings.remoteInstances.sidebar.phase.ready': 'Ready',
|
||||
'settings.remoteInstances.sidebar.phase.error': 'Error',
|
||||
'settings.remoteInstances.sidebar.phase.reconnect': 'Reconnect',
|
||||
@@ -254,20 +285,20 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.sidebar.phase.connecting': 'Connecting',
|
||||
'settings.remoteInstances.sidebar.phase.idle': 'Idle',
|
||||
'settings.remoteInstances.page.section.instance': 'Instance',
|
||||
'settings.remoteInstances.page.section.instanceDescription': 'Core SSH settings.',
|
||||
'settings.remoteInstances.page.section.instanceDescription': 'Choose the SSH command and a display name for this connection.',
|
||||
'settings.remoteInstances.page.field.mode': 'Mode',
|
||||
'settings.remoteInstances.page.field.modeHint': 'Managed installs/updates and starts OpenChamber remotely. External assumes it is already running.',
|
||||
'settings.remoteInstances.page.field.modeHint': 'Choose whether OpenChamber should start the server for you, or connect to one that is already running.',
|
||||
'settings.remoteInstances.page.field.modePlaceholder': 'Select mode',
|
||||
'settings.remoteInstances.page.field.modeManaged': 'Managed (auto start)',
|
||||
'settings.remoteInstances.page.field.modeExternal': 'External (already running)',
|
||||
'settings.remoteInstances.page.field.modeManaged': 'Start it for me',
|
||||
'settings.remoteInstances.page.field.modeExternal': 'Already running',
|
||||
'settings.remoteInstances.page.field.preferredRemotePort': 'Preferred remote port',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': 'Port OpenChamber should use on the remote host. Leave empty to let the runtime choose.',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': 'Port to use on the remote machine. Leave empty to choose one automatically.',
|
||||
'settings.remoteInstances.page.field.keepServerRunning': 'Keep server running',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': 'If enabled, OpenChamber daemon is left running remotely when you disconnect.',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': 'Keep OpenChamber running on the remote machine after you disconnect.',
|
||||
'settings.remoteInstances.page.field.bindHost': 'Bind host',
|
||||
'settings.remoteInstances.page.field.bindHostHint': 'Network interface for the main local URL. Use 127.0.0.1/localhost for local-only access.',
|
||||
'settings.remoteInstances.page.field.bindHostHint': 'Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.',
|
||||
'settings.remoteInstances.page.field.preferredLocalPort': 'Preferred local port',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': 'Preferred local port for the main OpenChamber tunnel. Leave empty for auto-select.',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': 'Local port to open for this connection. Leave empty to choose one automatically.',
|
||||
'settings.remoteInstances.page.field.forwardType': 'Forward type',
|
||||
'settings.remoteInstances.page.field.localHostPlaceholder': '127.0.0.1',
|
||||
'settings.remoteInstances.page.field.remoteHostPlaceholder': '127.0.0.1',
|
||||
@@ -276,7 +307,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.preview.localSocks5': '(local SOCKS5)',
|
||||
'settings.remoteInstances.page.preview.local': '(local)',
|
||||
'settings.remoteInstances.page.preview.remote': '(remote)',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': 'Failed to open local endpoint',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': 'Failed to open local address',
|
||||
'settings.remoteInstances.page.toast.localUrlCopied': 'Local URL copied',
|
||||
'settings.remoteInstances.page.actions.copyLocalUrl': 'Copy local URL',
|
||||
'settings.remoteInstances.page.actions.open': 'Open',
|
||||
@@ -978,26 +1009,26 @@ export const settingsDict = {
|
||||
'settings.usage.pace.waitSeparator': ' · Wait ',
|
||||
'settings.usage.pace.predictionLabel': 'Pred: ',
|
||||
'settings.remoteInstances.page.title': 'Remote Instance',
|
||||
'settings.remoteInstances.page.description': 'Configure SSH connection, remote server, and forwarding settings.',
|
||||
'settings.remoteInstances.page.description': 'Connect to another machine over SSH and open OpenChamber there.',
|
||||
'settings.remoteInstances.page.empty.selectInstance': 'Select an instance to view and edit its settings.',
|
||||
'settings.remoteInstances.page.empty.noExtraForwards': 'No extra port forwards configured.',
|
||||
'settings.remoteInstances.page.section.actions': 'Actions',
|
||||
'settings.remoteInstances.page.section.actionsDescription': 'Connect, reconnect, inspect logs, or remove this instance.',
|
||||
'settings.remoteInstances.page.section.remoteServer': 'Remote Server',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': 'How OpenChamber is managed and started on the remote host.',
|
||||
'settings.remoteInstances.page.section.mainTunnel': 'Main Tunnel',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': 'Primary local endpoint for this remote instance.',
|
||||
'settings.remoteInstances.page.section.actionsDescription': 'Connect, reconnect, view logs, or remove this connection.',
|
||||
'settings.remoteInstances.page.section.remoteServer': 'OpenChamber on the remote machine',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': 'Choose how OpenChamber should run after SSH connects.',
|
||||
'settings.remoteInstances.page.section.mainTunnel': 'Local access',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': 'Choose the local address used to open this remote OpenChamber server.',
|
||||
'settings.remoteInstances.page.section.authentication': 'Authentication',
|
||||
'settings.remoteInstances.page.section.authenticationDescription': 'Optional credentials for SSH and the remote OpenChamber UI.',
|
||||
'settings.remoteInstances.page.section.portForwards': 'Port Forwards',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': 'Additional SSH forwards beyond the main tunnel.',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': 'Optional extra ports to make available through this SSH connection.',
|
||||
'settings.remoteInstances.page.field.sshCommand': 'SSH command',
|
||||
'settings.remoteInstances.page.field.sshCommandPlaceholder': 'ssh user@host',
|
||||
'settings.remoteInstances.page.field.nickname': 'Nickname',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': 'My remote host',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': 'Work laptop',
|
||||
'settings.remoteInstances.page.field.connectionTimeoutSeconds': 'Connection timeout (seconds)',
|
||||
'settings.remoteInstances.page.field.installMethod': 'Install method',
|
||||
'settings.remoteInstances.page.field.installMethodHint': 'How OpenChamber is installed when running in managed mode.',
|
||||
'settings.remoteInstances.page.field.installMethodHint': 'How OpenChamber should be placed on the remote machine when this app starts it for you.',
|
||||
'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': 'Select install method',
|
||||
'settings.remoteInstances.page.field.installMethodDownloadRelease': 'Download release',
|
||||
'settings.remoteInstances.page.field.installMethodUploadBundle': 'Upload bundle',
|
||||
@@ -1006,14 +1037,14 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.field.sshPasswordPlaceholder': 'Enter SSH password',
|
||||
'settings.remoteInstances.page.field.uiPasswordOptional': 'UI password (optional)',
|
||||
'settings.remoteInstances.page.field.uiPasswordPlaceholder': 'Enter UI password',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': 'Choose local (-L), remote (-R), or dynamic (-D) forwarding.',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': 'Choose what kind of port access this SSH connection should provide.',
|
||||
'settings.remoteInstances.page.field.typePlaceholder': 'Type',
|
||||
'settings.remoteInstances.page.forwardType.local': 'Local (-L)',
|
||||
'settings.remoteInstances.page.forwardType.remote': 'Remote (-R)',
|
||||
'settings.remoteInstances.page.forwardType.dynamic': 'Dynamic (-D)',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': 'Forward local traffic to a remote destination.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': 'Expose a remote endpoint and forward it back to your local machine.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': 'Expose a local SOCKS5 proxy over SSH.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': 'Open a local port that connects to something on the remote machine.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': 'Open a port on the remote machine that connects back to your computer.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': 'Open a local SOCKS proxy through the SSH connection.',
|
||||
'settings.remoteInstances.page.actions.create': 'Create',
|
||||
'settings.remoteInstances.page.actions.cancel': 'Cancel',
|
||||
'settings.remoteInstances.page.actions.connecting': 'Connecting...',
|
||||
@@ -1024,7 +1055,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.actions.enableForwardAria': 'Enable forward',
|
||||
'settings.remoteInstances.page.actions.openLocal': 'Open local',
|
||||
'settings.remoteInstances.page.actions.addForward': 'Add forward',
|
||||
'settings.remoteInstances.page.import.sectionTitle': 'Import from SSH config',
|
||||
'settings.remoteInstances.page.import.sectionTitle': 'Saved SSH hosts',
|
||||
'settings.remoteInstances.page.import.loading': 'Loading SSH hosts...',
|
||||
'settings.remoteInstances.page.import.noneFound': 'No SSH hosts found.',
|
||||
'settings.remoteInstances.page.import.noneAvailable': 'No SSH hosts available to import.',
|
||||
@@ -1034,12 +1065,12 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.logsDialog.title': 'SSH Logs',
|
||||
'settings.remoteInstances.page.logsDialog.loading': 'Loading logs...',
|
||||
'settings.remoteInstances.page.logsDialog.empty': 'No SSH logs yet.',
|
||||
'settings.remoteInstances.page.patternDialog.title': 'Create from wildcard pattern',
|
||||
'settings.remoteInstances.page.patternDialog.title': 'Choose an SSH destination',
|
||||
'settings.remoteInstances.page.patternDialog.destinationPlaceholder': 'user@host',
|
||||
'settings.remoteInstances.page.phase.resolvingConfiguration': 'Resolving configuration',
|
||||
'settings.remoteInstances.page.phase.checkingAuth': 'Checking authentication',
|
||||
'settings.remoteInstances.page.phase.establishingSsh': 'Establishing SSH connection',
|
||||
'settings.remoteInstances.page.phase.probingRemote': 'Probing remote host',
|
||||
'settings.remoteInstances.page.phase.probingRemote': 'Checking remote machine',
|
||||
'settings.remoteInstances.page.phase.installingOpenChamber': 'Installing OpenChamber',
|
||||
'settings.remoteInstances.page.phase.updatingOpenChamber': 'Updating OpenChamber',
|
||||
'settings.remoteInstances.page.phase.detectingServer': 'Detecting server',
|
||||
@@ -1504,6 +1535,9 @@ export const settingsDict = {
|
||||
'settings.voice.page.preview.voiceLine': 'Hello! I\'m {voiceName}. This is how I sound.',
|
||||
'settings.voice.page.preview.customServerLine': 'Hello! This is a preview of the custom TTS server.',
|
||||
'settings.openchamber.visual.section.colorMode': 'Color Mode',
|
||||
'settings.openchamber.visual.section.mobileLayout': 'Mobile Layout',
|
||||
'settings.openchamber.visual.option.mobileLayout.default': 'Default',
|
||||
'settings.openchamber.visual.option.mobileLayout.new': 'New',
|
||||
'settings.openchamber.visual.section.localization': 'Localization',
|
||||
'settings.openchamber.visual.section.spacingAndLayout': 'Spacing & Layout',
|
||||
'settings.openchamber.visual.section.navigation': 'Navigation',
|
||||
|
||||
@@ -26,6 +26,94 @@ export const dict = {
|
||||
'layout.mainTab.files': 'Files',
|
||||
'layout.mainTab.terminal': 'Terminal',
|
||||
'layout.mainTab.context': 'Context',
|
||||
'mobile.nav.aria': 'Mobile navigation',
|
||||
'mobile.nav.changes': 'Changes',
|
||||
'mobile.nav.settings': 'Settings',
|
||||
'mobile.surface.closeAria': 'Close',
|
||||
'mobile.header.openMenuAria': 'Open menu',
|
||||
'mobile.menu.titleAria': 'Workspace tools',
|
||||
'mobile.menu.files': 'Files',
|
||||
'mobile.menu.changes': 'Changes',
|
||||
'mobile.menu.settings': 'Settings',
|
||||
'mobile.sessions.newChatCta': 'New chat in {project}',
|
||||
'mobile.sessions.dateGroup.today': 'Today',
|
||||
'mobile.sessions.dateGroup.yesterday': 'Yesterday',
|
||||
'mobile.sessions.dateGroup.thisWeek': 'Earlier this week',
|
||||
'mobile.sessions.dateGroup.older': 'Older',
|
||||
'mobile.sessions.section.worktrees': 'Worktrees',
|
||||
'mobile.sessions.section.otherProjects': 'Switch project',
|
||||
'mobile.sessions.section.projects': 'Projects',
|
||||
'mobile.sessions.empty.noProjectsTitle': 'No projects yet',
|
||||
'mobile.sessions.empty.noProjectsDescription': 'Add a project to start chatting with your code.',
|
||||
'mobile.sessions.empty.noSessionsTitle': 'No sessions yet',
|
||||
'mobile.sessions.empty.noSessionsDescription': 'Start your first chat to see it here.',
|
||||
'mobile.sessions.empty.searchTitle': 'No matches',
|
||||
'mobile.sessions.empty.searchDescription': 'Try a different search term.',
|
||||
'mobile.sessions.showArchived': 'Show archived ({count})',
|
||||
'mobile.sessions.hideArchived': 'Hide archived',
|
||||
'mobile.sessions.activeWorktreeAria': 'Active worktree',
|
||||
'mobile.sessions.activeProjectAria': 'Active project',
|
||||
'mobile.sessions.startNewChat': 'Start new chat',
|
||||
'mobile.sessions.newChat': 'New chat',
|
||||
'mobile.sessions.editOrder': 'Reorder projects',
|
||||
'mobile.sessions.doneEditing': 'Done',
|
||||
'mobile.sessions.editOrderHint': 'Drag the handle or use the arrows to reorder projects. Tap the check to finish.',
|
||||
'mobile.sessions.dragHandleAria': 'Drag {label} to reorder',
|
||||
'mobile.sessions.moveUpAria': 'Move {label} up',
|
||||
'mobile.sessions.moveDownAria': 'Move {label} down',
|
||||
'mobile.sessions.removeProjectAria': 'Remove {label}',
|
||||
'mobile.sessions.cancelRemoveProjectAria': 'Cancel removing {label}',
|
||||
'mobile.sessions.confirmRemoveProject': 'Delete',
|
||||
'mobile.sessions.confirmRemoveProjectAria': 'Confirm removing {label}',
|
||||
'mobile.sessions.toast.projectRemoved': 'Removed {label}',
|
||||
'mobile.sessions.showMore': 'Show {count} more',
|
||||
'mobile.sessions.search.section.sessions': 'Sessions',
|
||||
'mobile.sessions.search.section.archived': 'Archived',
|
||||
'mobile.sessions.search.section.projects': 'Projects',
|
||||
'mobile.sessions.clearSearchAria': 'Clear search',
|
||||
'mobile.header.noProject': 'Select a project',
|
||||
'mobile.header.activeSession': 'Active session',
|
||||
'mobile.header.noSession': 'No active session',
|
||||
'mobile.sessions.openSheetAria': 'Open sessions and projects',
|
||||
'mobile.sessions.closeSheetAria': 'Close sessions and projects',
|
||||
'mobile.sessions.sheet.title': 'Sessions',
|
||||
'mobile.sessions.sheet.description': 'Switch projects, open sessions, or start a new chat.',
|
||||
'mobile.sessions.search.placeholder': 'Search sessions',
|
||||
'mobile.sessions.empty': 'No sessions found.',
|
||||
'mobile.sessions.unassignedProject': 'Other sessions',
|
||||
'mobile.sessions.newSessionAria': 'Start a new session in this project',
|
||||
'mobile.sessions.untitled': 'Untitled session',
|
||||
'mobile.sessions.project.sessionsSingle': '1 session',
|
||||
'mobile.sessions.project.sessionsPlural': '{count} sessions',
|
||||
'mobile.files.refreshAria': 'Refresh files',
|
||||
'mobile.files.backToParentAria': 'Back to {name}',
|
||||
'mobile.files.rootDirectory': 'Project files',
|
||||
'mobile.files.search.placeholder': 'Search files',
|
||||
'mobile.files.search.empty': 'No files found.',
|
||||
'mobile.files.parentDirectory': 'Parent directory',
|
||||
'mobile.files.empty.noDirectory': 'Select a project to browse files.',
|
||||
'mobile.files.empty.directory': 'This directory is empty.',
|
||||
'mobile.files.error.listFailed': 'Failed to load files',
|
||||
'mobile.files.error.readUnavailable': 'File preview is unavailable in this runtime.',
|
||||
'mobile.files.file.truncated': 'File preview truncated for mobile.',
|
||||
'mobile.files.copyPathAria': 'Copy file path',
|
||||
'mobile.files.copyContent': 'Copy content',
|
||||
'mobile.files.copyContentAria': 'Copy file content',
|
||||
'mobile.files.toast.pathCopied': 'Path copied',
|
||||
'mobile.files.toast.contentCopied': 'Content copied',
|
||||
'mobile.files.toast.copyFailed': 'Copy failed',
|
||||
'mobile.changes.placeholder.title': 'Changes',
|
||||
'mobile.changes.placeholder.description': 'Working-tree review, sync, and commit actions will live here.',
|
||||
'mobile.changes.branchLabel': 'Branch: {branch}',
|
||||
'mobile.changes.noRemote': 'No remote available',
|
||||
'mobile.changes.cleanDescription': 'There are no changed files in this workspace.',
|
||||
'mobile.changes.diffDetail.subtitle': 'Read-only diff',
|
||||
'mobile.changes.diffDetail.loadFailed': 'Failed to load diff',
|
||||
'mobile.changes.diffDetail.missingTitle': 'File is no longer changed',
|
||||
'mobile.changes.diffDetail.missingDescription': 'Go back to Changes and refresh the list.',
|
||||
'mobile.changes.diffDetail.imageUnavailable': 'Image diffs are not available in mobile Changes yet.',
|
||||
'mobile.settings.placeholder.title': 'Settings',
|
||||
'mobile.settings.placeholder.description': 'Focused mobile connection and app settings will live here.',
|
||||
'layout.rightSidebar.git': 'Git',
|
||||
'layout.rightSidebar.files': 'Files',
|
||||
'layout.rightSidebar.context': 'Context',
|
||||
@@ -1159,6 +1247,12 @@ export const dict = {
|
||||
'header.services.refreshRateLimitsAria': 'Refresh rate limits',
|
||||
'header.services.noRateLimits': 'No rate limits available.',
|
||||
'header.services.noRateLimitsReported': 'No rate limits reported.',
|
||||
'header.services.remoteUpdate.title': 'Remote instance update',
|
||||
'header.services.remoteUpdate.checking': 'Looking for updates...',
|
||||
'header.services.remoteUpdate.upToDate': 'This instance is up to date.',
|
||||
'header.services.remoteUpdate.available': 'Version {version} is available for this instance.',
|
||||
'header.services.remoteUpdate.error': 'Failed to check remote instance updates',
|
||||
'header.services.remoteUpdate.actions.open': 'Update',
|
||||
'header.services.used': 'Used',
|
||||
'header.services.remaining': 'Remaining',
|
||||
'header.services.modelFamily.other': 'Other',
|
||||
@@ -2069,6 +2163,9 @@ export const dict = {
|
||||
'desktopHostSwitcher.header.currentDefaultColon': 'Current default:',
|
||||
'desktopHostSwitcher.status.connected': 'Connected',
|
||||
'desktopHostSwitcher.status.authRequired': 'Auth required',
|
||||
'desktopHostSwitcher.status.checking': 'Checking',
|
||||
'desktopHostSwitcher.status.updateRecommended': 'Update recommended',
|
||||
'desktopHostSwitcher.status.incompatible': 'Incompatible',
|
||||
'desktopHostSwitcher.status.wrongService': 'Wrong service',
|
||||
'desktopHostSwitcher.status.unreachable': 'Unreachable',
|
||||
'desktopHostSwitcher.status.unknown': 'Unknown',
|
||||
@@ -2255,6 +2352,8 @@ export const dict = {
|
||||
'onboarding.remoteConnection.actions.chooseDifferentServer': 'Choose Different Server',
|
||||
'onboarding.remoteConnection.actions.useLocalInstead': 'Use Local Instead',
|
||||
'onboarding.remoteConnection.probe.authMessage': 'Server requires authentication. You can still connect, but may need to provide credentials.',
|
||||
'onboarding.remoteConnection.probe.updateRecommendedMessage': 'This instance is running a different OpenChamber version. You can connect, but update both apps if something does not work.',
|
||||
'onboarding.remoteConnection.probe.incompatibleMessage': 'Server is running OpenChamber but is not compatible with this app version. Update OpenChamber on the server, then try again.',
|
||||
'onboarding.remoteConnection.probe.wrongServiceMessage': 'Server responded but is not running OpenChamber. Verify the address points to an OpenChamber server.',
|
||||
'onboarding.remoteConnection.probe.unreachableMessage': 'Server is unreachable. Check your network connection and verify the server address.',
|
||||
'onboarding.desktopRecovery.localUnavailable.title': 'Local OpenCode Unavailable',
|
||||
@@ -2268,6 +2367,8 @@ export const dict = {
|
||||
'onboarding.desktopRecovery.remoteUnreachable.retry': 'Retry Connection',
|
||||
'onboarding.desktopRecovery.incompatibleServer.title': 'Incompatible Server',
|
||||
'onboarding.desktopRecovery.incompatibleServer.description': 'The server at "{host}" is not running OpenChamber. Verify the address points to an OpenChamber server.',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.title': 'Server Update Required',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.description': 'The OpenChamber server at "{host}" is not compatible with this app version. Update OpenChamber on the server, then try again.',
|
||||
'onboarding.desktopRecovery.common.useLocal': 'Use Local',
|
||||
'onboarding.desktopRecovery.common.useRemote': 'Use Remote',
|
||||
'onboarding.desktopRecovery.actions.retrying': 'Retrying…',
|
||||
|
||||
@@ -198,19 +198,50 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.sidebar.item.sessionFusion": "Fusion",
|
||||
"settings.remoteInstances.sidebar.title": "Instancias remotas",
|
||||
"settings.remoteInstances.sidebar.total": "Total {count}",
|
||||
"settings.remoteInstances.sidebar.newSshInstanceName": "Nueva instancia SSH",
|
||||
"settings.remoteInstances.sidebar.actions.addSshInstance": "Añadir instancia SSH",
|
||||
"settings.remoteInstances.sidebar.newSshInstanceName": "Nueva conexión SSH",
|
||||
"settings.remoteInstances.sidebar.actions.addSshInstance": "Añadir conexión SSH",
|
||||
"settings.remoteInstances.sidebar.actions.connect": "Conectar",
|
||||
"settings.remoteInstances.sidebar.actions.disconnect": "Desconectar",
|
||||
"settings.remoteInstances.sidebar.actions.retry": "Reintentar",
|
||||
"settings.remoteInstances.sidebar.actions.remove": "Eliminar",
|
||||
"settings.remoteInstances.sidebar.confirm.localPortInUseRetry": "El puerto local ya está en uso. ¿Elegir un puerto libre aleatorio y reintentar?",
|
||||
"settings.remoteInstances.sidebar.toast.createFailed": "No se pudo crear la instancia SSH",
|
||||
"settings.remoteInstances.sidebar.toast.createFailed": "No se pudo crear la conexión SSH",
|
||||
"settings.remoteInstances.sidebar.toast.retriedWithRandomPort": "Reintentado con un puerto local aleatorio",
|
||||
"settings.remoteInstances.sidebar.toast.connectFailed": "No se pudo conectar la instancia",
|
||||
"settings.remoteInstances.sidebar.toast.disconnectFailed": "No se pudo desconectar la instancia",
|
||||
"settings.remoteInstances.sidebar.toast.retryFailed": "No se pudo reintentar la conexión",
|
||||
"settings.remoteInstances.sidebar.toast.removeFailed": "No se pudo eliminar la instancia",
|
||||
"settings.remoteInstances.direct.sidebarTitle": "Enlaces a servidores",
|
||||
"settings.remoteInstances.direct.sidebarDescription": "Conecta con un enlace o token",
|
||||
"settings.remoteInstances.direct.title": "Otros servidores de OpenChamber",
|
||||
"settings.remoteInstances.direct.description": "Añade otro servidor de OpenChamber por URL. Úsalo cuando el servidor ya esté en marcha y tengas un token de conexión.",
|
||||
"settings.remoteInstances.direct.field.labelPlaceholder": "Etiqueta (opcional)",
|
||||
"settings.remoteInstances.direct.field.urlPlaceholder": "https://host:port",
|
||||
"settings.remoteInstances.direct.field.tokenPlaceholder": "Token de conexión (opcional para servidores locales de confianza)",
|
||||
"settings.remoteInstances.direct.note": "Los tokens de conexión se guardan en este dispositivo y solo se usan cuando esta app se conecta a ese servidor.",
|
||||
"settings.remoteInstances.direct.actions.add": "Añadir servidor",
|
||||
"settings.remoteInstances.direct.import.description": "Pega un enlace de conexión de otro servidor de OpenChamber.",
|
||||
"settings.remoteInstances.direct.import.placeholder": "openchamber://connect?...",
|
||||
"settings.remoteInstances.direct.import.action": "Importar enlace",
|
||||
"settings.remoteInstances.direct.error.invalidConnectLink": "Enlace de conexión de OpenChamber no válido.",
|
||||
"settings.remoteInstances.direct.state.loading": "Cargando servidores...",
|
||||
"settings.remoteInstances.direct.state.empty": "Todavía no se han añadido otros servidores.",
|
||||
"settings.remoteInstances.clientAuth.title": "Conectarse a este servidor",
|
||||
"settings.remoteInstances.clientAuth.description": "Crea un enlace o token seguro para que OpenChamber Desktop pueda conectarse a este servidor.",
|
||||
"settings.remoteInstances.clientAuth.field.labelPlaceholder": "Nombre del dispositivo (opcional)",
|
||||
"settings.remoteInstances.clientAuth.actions.create": "Crear token",
|
||||
"settings.remoteInstances.clientAuth.actions.pair": "Crear enlace",
|
||||
"settings.remoteInstances.clientAuth.actions.revoke": "Revocar",
|
||||
"settings.remoteInstances.clientAuth.actions.clearRevoked": "Borrar revocados",
|
||||
"settings.remoteInstances.clientAuth.qrAlt": "OpenChamber connection QR code",
|
||||
"settings.remoteInstances.clientAuth.pairingUrl": "Enlace de conexión",
|
||||
"settings.remoteInstances.clientAuth.createdToken": "Copia este token ahora. Por seguridad, no se volverá a mostrar.",
|
||||
"settings.remoteInstances.clientAuth.state.loading": "Cargando tokens...",
|
||||
"settings.remoteInstances.clientAuth.state.empty": "Todavía no hay dispositivos conectados.",
|
||||
"settings.remoteInstances.clientAuth.state.revoked": "Revocado",
|
||||
"settings.remoteInstances.clientAuth.state.thisDevice": "Este dispositivo",
|
||||
"settings.remoteInstances.clientAuth.lastUsed": "Último uso {date}",
|
||||
"settings.remoteInstances.clientAuth.neverUsed": "Nunca usado",
|
||||
"settings.remoteInstances.sidebar.phase.ready": "Listo",
|
||||
"settings.remoteInstances.sidebar.phase.error": "Error",
|
||||
"settings.remoteInstances.sidebar.phase.reconnect": "Reconectar",
|
||||
@@ -221,20 +252,20 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.sidebar.phase.connecting": "Conectando",
|
||||
"settings.remoteInstances.sidebar.phase.idle": "Inactivo",
|
||||
"settings.remoteInstances.page.section.instance": "Instancia",
|
||||
"settings.remoteInstances.page.section.instanceDescription": "Configuración básica de SSH.",
|
||||
"settings.remoteInstances.page.section.instanceDescription": "Choose the SSH command and a display name for this connection.",
|
||||
"settings.remoteInstances.page.field.mode": "Modo",
|
||||
"settings.remoteInstances.page.field.modeHint": "Instalaciones/actualizaciones gestionadas y arranque remoto de OpenChamber. Externo asume que ya está en ejecución.",
|
||||
"settings.remoteInstances.page.field.modeHint": "Elige si OpenChamber debe iniciar el servidor por ti o conectarse a uno que ya está en marcha.",
|
||||
"settings.remoteInstances.page.field.modePlaceholder": "Seleccionar modo",
|
||||
"settings.remoteInstances.page.field.modeManaged": "Gestionado (arranque automático)",
|
||||
"settings.remoteInstances.page.field.modeExternal": "Externo (ya en ejecución)",
|
||||
"settings.remoteInstances.page.field.modeManaged": "Iniciarlo por mí",
|
||||
"settings.remoteInstances.page.field.modeExternal": "Ya está en marcha",
|
||||
"settings.remoteInstances.page.field.preferredRemotePort": "Puerto remoto preferido",
|
||||
"settings.remoteInstances.page.field.preferredRemotePortHint": "Puerto que debe usar OpenChamber en el host remoto. Dejar vacío para que el entorno lo elija.",
|
||||
"settings.remoteInstances.page.field.preferredRemotePortHint": "Port to use on the remote machine. Leave empty to choose one automatically.",
|
||||
"settings.remoteInstances.page.field.keepServerRunning": "Mantener servidor en ejecución",
|
||||
"settings.remoteInstances.page.field.keepServerRunningHint": "Si está habilitado, el demonio de OpenChamber permanece en ejecución remotamente al desconectar.",
|
||||
"settings.remoteInstances.page.field.keepServerRunningHint": "Keep OpenChamber running on the remote machine after you disconnect.",
|
||||
"settings.remoteInstances.page.field.bindHost": "Host de enlace",
|
||||
"settings.remoteInstances.page.field.bindHostHint": "Interfaz de red para la URL local principal. Usar 127.0.0.1/localhost para acceso local solamente.",
|
||||
"settings.remoteInstances.page.field.bindHostHint": "Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.",
|
||||
"settings.remoteInstances.page.field.preferredLocalPort": "Puerto local preferido",
|
||||
"settings.remoteInstances.page.field.preferredLocalPortHint": "Puerto local preferido para el túnel de OpenChamber principal. Dejar vacío para selección automática.",
|
||||
"settings.remoteInstances.page.field.preferredLocalPortHint": "Local port to open for this connection. Leave empty to choose one automatically.",
|
||||
"settings.remoteInstances.page.field.forwardType": "Tipo de redirección",
|
||||
"settings.remoteInstances.page.field.localHostPlaceholder": "127.0.0.1",
|
||||
"settings.remoteInstances.page.field.remoteHostPlaceholder": "127.0.0.1",
|
||||
@@ -243,7 +274,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.preview.localSocks5": "(local SOCKS5)",
|
||||
"settings.remoteInstances.page.preview.local": "(local)",
|
||||
"settings.remoteInstances.page.preview.remote": "(remoto)",
|
||||
"settings.remoteInstances.page.toast.openLocalEndpointFailed": "No se pudo abrir el endpoint local",
|
||||
"settings.remoteInstances.page.toast.openLocalEndpointFailed": "No se pudo abrir la dirección local",
|
||||
"settings.remoteInstances.page.toast.localUrlCopied": "URL local copiada",
|
||||
"settings.remoteInstances.page.actions.copyLocalUrl": "Copiar URL local",
|
||||
"settings.remoteInstances.page.actions.open": "Abrir",
|
||||
@@ -945,26 +976,26 @@ export const settingsDict = {
|
||||
"settings.usage.pace.waitSeparator": " · Esperar ",
|
||||
"settings.usage.pace.predictionLabel": "Pred.: ",
|
||||
"settings.remoteInstances.page.title": "Instancia remota",
|
||||
"settings.remoteInstances.page.description": "Configura la conexión SSH, el servidor remoto y la configuración de redirección.",
|
||||
"settings.remoteInstances.page.description": "Conéctate a otra máquina por SSH y abre OpenChamber allí.",
|
||||
"settings.remoteInstances.page.empty.selectInstance": "Selecciona una instancia para ver y editar sus configuraciones.",
|
||||
"settings.remoteInstances.page.empty.noExtraForwards": "No hay redirecciones adicionales de puerto configuradas.",
|
||||
"settings.remoteInstances.page.section.actions": "Acciones",
|
||||
"settings.remoteInstances.page.section.actionsDescription": "Conectar, reconectar, inspeccionar registros o eliminar esta instancia.",
|
||||
"settings.remoteInstances.page.section.remoteServer": "Servidor remoto",
|
||||
"settings.remoteInstances.page.section.remoteServerDescription": "Cómo OpenChamber se gestiona y inicia en el host remoto.",
|
||||
"settings.remoteInstances.page.section.mainTunnel": "Túnel principal",
|
||||
"settings.remoteInstances.page.section.mainTunnelDescription": "Punto de conexión local principal para esta instancia remota.",
|
||||
"settings.remoteInstances.page.section.actionsDescription": "Conecta, reconecta, revisa registros o elimina esta conexión.",
|
||||
"settings.remoteInstances.page.section.remoteServer": "OpenChamber en la máquina remota",
|
||||
"settings.remoteInstances.page.section.remoteServerDescription": "Elige cómo debe ejecutarse OpenChamber después de conectar por SSH.",
|
||||
"settings.remoteInstances.page.section.mainTunnel": "Acceso local",
|
||||
"settings.remoteInstances.page.section.mainTunnelDescription": "Elige la dirección local que se usará para abrir este servidor remoto de OpenChamber.",
|
||||
"settings.remoteInstances.page.section.authentication": "Autenticación",
|
||||
"settings.remoteInstances.page.section.authenticationDescription": "Credenciales opcionales para SSH y la interfaz de usuario de OpenChamber remoto.",
|
||||
"settings.remoteInstances.page.section.portForwards": "Redirecciones de puerto",
|
||||
"settings.remoteInstances.page.section.portForwardsDescription": "Redirecciones SSH adicionales más allá del túnel principal.",
|
||||
"settings.remoteInstances.page.section.portForwardsDescription": "Puertos adicionales opcionales que estarán disponibles a través de esta conexión SSH.",
|
||||
"settings.remoteInstances.page.field.sshCommand": "Comando SSH",
|
||||
"settings.remoteInstances.page.field.sshCommandPlaceholder": "ssh user@host",
|
||||
"settings.remoteInstances.page.field.nickname": "Apodo",
|
||||
"settings.remoteInstances.page.field.nicknamePlaceholder": "Mi host remoto",
|
||||
"settings.remoteInstances.page.field.nicknamePlaceholder": "Portátil de trabajo",
|
||||
"settings.remoteInstances.page.field.connectionTimeoutSeconds": "Tiempo de espera de conexión (segundos)",
|
||||
"settings.remoteInstances.page.field.installMethod": "Método de instalación",
|
||||
"settings.remoteInstances.page.field.installMethodHint": "Cómo se instala OpenChamber cuando se ejecuta en modo gestionado.",
|
||||
"settings.remoteInstances.page.field.installMethodHint": "Cómo debe colocarse OpenChamber en la máquina remota cuando esta app lo inicia por ti.",
|
||||
"settings.remoteInstances.page.field.selectInstallMethodPlaceholder": "Seleccionar método de instalación",
|
||||
"settings.remoteInstances.page.field.installMethodDownloadRelease": "Descargar versión",
|
||||
"settings.remoteInstances.page.field.installMethodUploadBundle": "Subir paquete",
|
||||
@@ -973,14 +1004,14 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.field.sshPasswordPlaceholder": "Introducir contraseña SSH",
|
||||
"settings.remoteInstances.page.field.uiPasswordOptional": "Contraseña de interfaz de usuario (opcional)",
|
||||
"settings.remoteInstances.page.field.uiPasswordPlaceholder": "Introducir contraseña de interfaz de usuario",
|
||||
"settings.remoteInstances.page.field.forwardTypeHint": "Elige redirección local (-L), remota (-R) o dinámica (-D).",
|
||||
"settings.remoteInstances.page.field.forwardTypeHint": "Elige qué tipo de acceso a puertos debe ofrecer esta conexión SSH.",
|
||||
"settings.remoteInstances.page.field.typePlaceholder": "Tipo",
|
||||
"settings.remoteInstances.page.forwardType.local": "Local (-L)",
|
||||
"settings.remoteInstances.page.forwardType.remote": "Remota (-R)",
|
||||
"settings.remoteInstances.page.forwardType.dynamic": "Dinámica (-D)",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.local": "Redirige el tráfico local a un destino remoto.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.remote": "Expón un endpoint remoto y redirígelo de vuelta a su máquina local.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.dynamic": "Expón un proxy SOCKS5 local sobre SSH.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.local": "Abre un puerto local que se conecta a un servicio en la máquina remota.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.remote": "Abre un puerto en la máquina remota que vuelve a conectarse a tu ordenador.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.dynamic": "Abre un proxy SOCKS local a través de la conexión SSH.",
|
||||
"settings.remoteInstances.page.actions.create": "Crear",
|
||||
"settings.remoteInstances.page.actions.cancel": "Cancelar",
|
||||
"settings.remoteInstances.page.actions.connecting": "Conectando...",
|
||||
@@ -991,7 +1022,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.actions.enableForwardAria": "Habilitar redirección",
|
||||
"settings.remoteInstances.page.actions.openLocal": "Abrir local",
|
||||
"settings.remoteInstances.page.actions.addForward": "Añadir redirección",
|
||||
"settings.remoteInstances.page.import.sectionTitle": "Importar desde configuración SSH",
|
||||
"settings.remoteInstances.page.import.sectionTitle": "Hosts SSH guardados",
|
||||
"settings.remoteInstances.page.import.loading": "Cargando hosts SSH...",
|
||||
"settings.remoteInstances.page.import.noneFound": "No se encontraron hosts SSH.",
|
||||
"settings.remoteInstances.page.import.noneAvailable": "No hay hosts SSH disponibles para importar.",
|
||||
@@ -1006,7 +1037,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.phase.resolvingConfiguration": "Resolviendo configuración",
|
||||
"settings.remoteInstances.page.phase.checkingAuth": "Verificando autenticación",
|
||||
"settings.remoteInstances.page.phase.establishingSsh": "Estableciendo conexión SSH",
|
||||
"settings.remoteInstances.page.phase.probingRemote": "Explorando host remoto",
|
||||
"settings.remoteInstances.page.phase.probingRemote": "Comprobando la máquina remota",
|
||||
"settings.remoteInstances.page.phase.installingOpenChamber": "Instalando OpenChamber",
|
||||
"settings.remoteInstances.page.phase.updatingOpenChamber": "Actualizando OpenChamber",
|
||||
"settings.remoteInstances.page.phase.detectingServer": "Detectando servidor",
|
||||
@@ -1471,6 +1502,9 @@ export const settingsDict = {
|
||||
"settings.voice.page.preview.voiceLine": "¡Hola! Soy {voiceName}. Así suena mi voz.",
|
||||
"settings.voice.page.preview.customServerLine": "¡Hola! Esta es una previsualización del servidor TTS personalizado.",
|
||||
"settings.openchamber.visual.section.colorMode": "Modo de color",
|
||||
"settings.openchamber.visual.section.mobileLayout": "Diseño móvil",
|
||||
"settings.openchamber.visual.option.mobileLayout.default": "Predeterminado",
|
||||
"settings.openchamber.visual.option.mobileLayout.new": "Nuevo",
|
||||
"settings.openchamber.visual.section.localization": "Localización",
|
||||
"settings.openchamber.visual.section.spacingAndLayout": "Espaciado y diseño",
|
||||
"settings.openchamber.visual.section.navigation": "Navegación",
|
||||
|
||||
@@ -27,6 +27,94 @@ export const dict: Record<I18nKey, string> = {
|
||||
"layout.mainTab.files": "Archivos",
|
||||
"layout.mainTab.terminal": "Terminal",
|
||||
"layout.mainTab.context": "Contexto",
|
||||
"mobile.nav.aria": "Navegación móvil",
|
||||
"mobile.nav.changes": "Cambios",
|
||||
"mobile.nav.settings": "Ajustes",
|
||||
"mobile.surface.closeAria": "Cerrar",
|
||||
"mobile.header.openMenuAria": "Abrir menú",
|
||||
"mobile.menu.titleAria": "Herramientas del espacio de trabajo",
|
||||
"mobile.menu.files": "Archivos",
|
||||
"mobile.menu.changes": "Cambios",
|
||||
"mobile.menu.settings": "Ajustes",
|
||||
"mobile.sessions.newChatCta": "Nuevo chat en {project}",
|
||||
"mobile.sessions.dateGroup.today": "Hoy",
|
||||
"mobile.sessions.dateGroup.yesterday": "Ayer",
|
||||
"mobile.sessions.dateGroup.thisWeek": "Antes esta semana",
|
||||
"mobile.sessions.dateGroup.older": "Más antiguos",
|
||||
"mobile.sessions.section.worktrees": "Worktrees",
|
||||
"mobile.sessions.section.otherProjects": "Cambiar de proyecto",
|
||||
"mobile.sessions.section.projects": "Proyectos",
|
||||
"mobile.sessions.empty.noProjectsTitle": "Sin proyectos",
|
||||
"mobile.sessions.empty.noProjectsDescription": "Agrega un proyecto para empezar a chatear con tu código.",
|
||||
"mobile.sessions.empty.noSessionsTitle": "Sin sesiones",
|
||||
"mobile.sessions.empty.noSessionsDescription": "Inicia tu primer chat para verlo aquí.",
|
||||
"mobile.sessions.empty.searchTitle": "Sin resultados",
|
||||
"mobile.sessions.empty.searchDescription": "Prueba con otro término de búsqueda.",
|
||||
"mobile.sessions.showArchived": "Mostrar archivadas ({count})",
|
||||
"mobile.sessions.hideArchived": "Ocultar archivadas",
|
||||
"mobile.sessions.activeWorktreeAria": "Worktree activo",
|
||||
"mobile.sessions.activeProjectAria": "Proyecto activo",
|
||||
"mobile.sessions.startNewChat": "Iniciar nuevo chat",
|
||||
"mobile.sessions.newChat": "Nuevo chat",
|
||||
"mobile.sessions.editOrder": "Reordenar proyectos",
|
||||
"mobile.sessions.doneEditing": "Listo",
|
||||
"mobile.sessions.editOrderHint": "Arrastra el asa o usa las flechas para reordenar los proyectos. Toca la marca para finalizar.",
|
||||
"mobile.sessions.dragHandleAria": "Arrastra {label} para reordenar",
|
||||
"mobile.sessions.moveUpAria": "Mover {label} arriba",
|
||||
"mobile.sessions.moveDownAria": "Mover {label} abajo",
|
||||
"mobile.sessions.removeProjectAria": "Eliminar {label}",
|
||||
"mobile.sessions.cancelRemoveProjectAria": "Cancelar eliminación de {label}",
|
||||
"mobile.sessions.confirmRemoveProject": "Eliminar",
|
||||
"mobile.sessions.confirmRemoveProjectAria": "Confirmar eliminación de {label}",
|
||||
"mobile.sessions.toast.projectRemoved": "Se eliminó {label}",
|
||||
"mobile.sessions.showMore": "Mostrar {count} más",
|
||||
"mobile.sessions.search.section.sessions": "Sesiones",
|
||||
"mobile.sessions.search.section.archived": "Archivadas",
|
||||
"mobile.sessions.search.section.projects": "Proyectos",
|
||||
"mobile.sessions.clearSearchAria": "Limpiar búsqueda",
|
||||
"mobile.header.noProject": "Selecciona un proyecto",
|
||||
"mobile.header.activeSession": "Sesión activa",
|
||||
"mobile.header.noSession": "No hay sesión activa",
|
||||
"mobile.sessions.openSheetAria": "Abrir sesiones y proyectos",
|
||||
"mobile.sessions.closeSheetAria": "Cerrar sesiones y proyectos",
|
||||
"mobile.sessions.sheet.title": "Sesiones",
|
||||
"mobile.sessions.sheet.description": "Cambia proyectos, abre sesiones o inicia un nuevo chat.",
|
||||
"mobile.sessions.search.placeholder": "Buscar sesiones",
|
||||
"mobile.sessions.empty": "No se encontraron sesiones.",
|
||||
"mobile.sessions.unassignedProject": "Otras sesiones",
|
||||
"mobile.sessions.newSessionAria": "Iniciar una nueva sesión en este proyecto",
|
||||
"mobile.sessions.untitled": "Sesión sin título",
|
||||
"mobile.sessions.project.sessionsSingle": "1 sesión",
|
||||
"mobile.sessions.project.sessionsPlural": "{count} sesiones",
|
||||
"mobile.files.refreshAria": "Actualizar archivos",
|
||||
"mobile.files.backToParentAria": "Volver a {name}",
|
||||
"mobile.files.rootDirectory": "Archivos del proyecto",
|
||||
"mobile.files.search.placeholder": "Buscar archivos",
|
||||
"mobile.files.search.empty": "No se encontraron archivos.",
|
||||
"mobile.files.parentDirectory": "Directorio superior",
|
||||
"mobile.files.empty.noDirectory": "Selecciona un proyecto para explorar archivos.",
|
||||
"mobile.files.empty.directory": "Este directorio está vacío.",
|
||||
"mobile.files.error.listFailed": "No se pudieron cargar los archivos",
|
||||
"mobile.files.error.readUnavailable": "La vista previa del archivo no está disponible en este entorno.",
|
||||
"mobile.files.file.truncated": "Vista previa del archivo truncada para móvil.",
|
||||
"mobile.files.copyPathAria": "Copiar ruta del archivo",
|
||||
"mobile.files.copyContent": "Copiar contenido",
|
||||
"mobile.files.copyContentAria": "Copiar contenido del archivo",
|
||||
"mobile.files.toast.pathCopied": "Ruta copiada",
|
||||
"mobile.files.toast.contentCopied": "Contenido copiado",
|
||||
"mobile.files.toast.copyFailed": "No se pudo copiar",
|
||||
"mobile.changes.placeholder.title": "Cambios",
|
||||
"mobile.changes.placeholder.description": "Aquí vivirán la revisión del árbol de trabajo, sync y commits.",
|
||||
"mobile.changes.branchLabel": "Rama: {branch}",
|
||||
"mobile.changes.noRemote": "No hay remoto disponible",
|
||||
"mobile.changes.cleanDescription": "No hay archivos modificados en este workspace.",
|
||||
"mobile.changes.diffDetail.subtitle": "Diff de solo lectura",
|
||||
"mobile.changes.diffDetail.loadFailed": "No se pudo cargar el diff",
|
||||
"mobile.changes.diffDetail.missingTitle": "El archivo ya no tiene cambios",
|
||||
"mobile.changes.diffDetail.missingDescription": "Vuelve a Cambios y actualiza la lista.",
|
||||
"mobile.changes.diffDetail.imageUnavailable": "Los diffs de imagen aún no están disponibles en Cambios móvil.",
|
||||
"mobile.settings.placeholder.title": "Ajustes",
|
||||
"mobile.settings.placeholder.description": "Aquí vivirán los ajustes móviles de conexión y app.",
|
||||
"layout.rightSidebar.git": "Git",
|
||||
"layout.rightSidebar.files": "Archivos",
|
||||
"layout.rightSidebar.context": "Contexto",
|
||||
@@ -1125,6 +1213,12 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.services.refreshRateLimitsAria": "Actualizar límites de tasa",
|
||||
"header.services.noRateLimits": "No hay límites de tasa disponibles.",
|
||||
"header.services.noRateLimitsReported": "No se reportaron límites de tasa.",
|
||||
"header.services.remoteUpdate.title": "Actualización de instancia remota",
|
||||
"header.services.remoteUpdate.checking": "Buscando actualizaciones...",
|
||||
"header.services.remoteUpdate.upToDate": "Esta instancia está actualizada.",
|
||||
"header.services.remoteUpdate.available": "La versión {version} está disponible para esta instancia.",
|
||||
"header.services.remoteUpdate.error": "No se pudieron comprobar las actualizaciones de la instancia remota",
|
||||
"header.services.remoteUpdate.actions.open": "Actualizar",
|
||||
"header.services.used": "Usado",
|
||||
"header.services.remaining": "Restante",
|
||||
"header.services.modelFamily.other": "Otro",
|
||||
@@ -2035,6 +2129,9 @@ export const dict: Record<I18nKey, string> = {
|
||||
"desktopHostSwitcher.header.currentDefaultColon": "Predeterminado actual:",
|
||||
"desktopHostSwitcher.status.connected": "Conectado",
|
||||
"desktopHostSwitcher.status.authRequired": "Autenticación requerida",
|
||||
"desktopHostSwitcher.status.checking": "Comprobando",
|
||||
"desktopHostSwitcher.status.updateRecommended": "Actualización recomendada",
|
||||
"desktopHostSwitcher.status.incompatible": "Incompatible",
|
||||
"desktopHostSwitcher.status.wrongService": "Servicio incorrecto",
|
||||
"desktopHostSwitcher.status.unreachable": "Inalcanzable",
|
||||
"desktopHostSwitcher.status.unknown": "Desconocido",
|
||||
@@ -2221,6 +2318,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
"onboarding.remoteConnection.actions.chooseDifferentServer": "Elegir otro servidor",
|
||||
"onboarding.remoteConnection.actions.useLocalInstead": "Usar Local en su lugar",
|
||||
"onboarding.remoteConnection.probe.authMessage": "El servidor requiere autenticación. Puedes conectarte aún así, pero puede que tengas que proporcionar credenciales.",
|
||||
"onboarding.remoteConnection.probe.updateRecommendedMessage": "Esta instancia ejecuta una versión diferente de OpenChamber. Puedes conectarte, pero actualiza ambas apps si algo no funciona.",
|
||||
"onboarding.remoteConnection.probe.incompatibleMessage": "El servidor ejecuta OpenChamber pero no es compatible con esta versión de la app. Actualiza OpenChamber en el servidor y vuelve a intentarlo.",
|
||||
"onboarding.remoteConnection.probe.wrongServiceMessage": "El servidor respondió pero no está ejecutando OpenChamber. Verifica que la dirección apunte a un servidor OpenChamber.",
|
||||
"onboarding.remoteConnection.probe.unreachableMessage": "El servidor no está disponible. Revisa tu conexión de red y verifica la dirección del servidor.",
|
||||
"onboarding.desktopRecovery.localUnavailable.title": "OpenCode Local no disponible",
|
||||
@@ -2234,6 +2333,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
"onboarding.desktopRecovery.remoteUnreachable.retry": "Reintentar conexión",
|
||||
"onboarding.desktopRecovery.incompatibleServer.title": "Servidor incompatible",
|
||||
"onboarding.desktopRecovery.incompatibleServer.description": "El servidor en \"{host}\" no está ejecutando OpenChamber. Verifica que la dirección apunte a un servidor OpenChamber.",
|
||||
"onboarding.desktopRecovery.remoteIncompatible.title": "Actualización del servidor requerida",
|
||||
"onboarding.desktopRecovery.remoteIncompatible.description": "El servidor OpenChamber en \"{host}\" no es compatible con esta versión de la app. Actualiza OpenChamber en el servidor y vuelve a intentarlo.",
|
||||
"onboarding.desktopRecovery.common.useLocal": "Usar Local",
|
||||
"onboarding.desktopRecovery.common.useRemote": "Usar remoto",
|
||||
"onboarding.desktopRecovery.actions.retrying": "Reintentando…",
|
||||
|
||||
@@ -198,19 +198,50 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion',
|
||||
'settings.remoteInstances.sidebar.title': '원격 인스턴스',
|
||||
'settings.remoteInstances.sidebar.total': '총 {count}개',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': '새 SSH 인스턴스',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': 'SSH 인스턴스 추가',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': '새 SSH 연결',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': 'SSH 연결 추가',
|
||||
'settings.remoteInstances.sidebar.actions.connect': '연결',
|
||||
'settings.remoteInstances.sidebar.actions.disconnect': '연결 해제',
|
||||
'settings.remoteInstances.sidebar.actions.retry': '다시 시도',
|
||||
'settings.remoteInstances.sidebar.actions.remove': '제거',
|
||||
'settings.remoteInstances.sidebar.confirm.localPortInUseRetry': '로컬 포트가 이미 사용 중입니다. 임의의 사용 가능한 로컬 포트를 선택해 다시 시도할까요?',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': 'SSH 인스턴스를 생성하지 못했습니다',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': 'SSH 연결을 만들지 못했습니다',
|
||||
'settings.remoteInstances.sidebar.toast.retriedWithRandomPort': '임의의 로컬 포트로 다시 시도했습니다',
|
||||
'settings.remoteInstances.sidebar.toast.connectFailed': '인스턴스에 연결하지 못했습니다',
|
||||
'settings.remoteInstances.sidebar.toast.disconnectFailed': '인스턴스 연결을 해제하지 못했습니다',
|
||||
'settings.remoteInstances.sidebar.toast.retryFailed': '연결을 다시 시도하지 못했습니다',
|
||||
'settings.remoteInstances.sidebar.toast.removeFailed': '인스턴스를 제거하지 못했습니다',
|
||||
'settings.remoteInstances.direct.sidebarTitle': '서버 링크',
|
||||
'settings.remoteInstances.direct.sidebarDescription': '링크나 토큰으로 연결',
|
||||
'settings.remoteInstances.direct.title': '다른 OpenChamber 서버',
|
||||
'settings.remoteInstances.direct.description': 'URL로 다른 OpenChamber 서버를 추가합니다. 서버가 이미 실행 중이고 연결 토큰이 있을 때 사용하세요.',
|
||||
'settings.remoteInstances.direct.field.labelPlaceholder': '라벨(선택 사항)',
|
||||
'settings.remoteInstances.direct.field.urlPlaceholder': 'https://host:port',
|
||||
'settings.remoteInstances.direct.field.tokenPlaceholder': '연결 토큰(신뢰할 수 있는 로컬 서버는 선택 사항)',
|
||||
'settings.remoteInstances.direct.note': '연결 토큰은 이 기기에 저장되며 이 앱이 해당 서버에 연결할 때만 사용됩니다.',
|
||||
'settings.remoteInstances.direct.actions.add': '서버 추가',
|
||||
'settings.remoteInstances.direct.import.description': '다른 OpenChamber 서버에서 만든 연결 링크를 붙여넣으세요.',
|
||||
'settings.remoteInstances.direct.import.placeholder': 'openchamber://connect?...',
|
||||
'settings.remoteInstances.direct.import.action': '링크 가져오기',
|
||||
'settings.remoteInstances.direct.error.invalidConnectLink': '잘못된 OpenChamber 연결 링크입니다.',
|
||||
'settings.remoteInstances.direct.state.loading': '서버를 불러오는 중...',
|
||||
'settings.remoteInstances.direct.state.empty': '아직 추가된 다른 서버가 없습니다.',
|
||||
'settings.remoteInstances.clientAuth.title': '이 서버에 연결',
|
||||
'settings.remoteInstances.clientAuth.description': 'OpenChamber Desktop이 이 서버에 연결할 수 있도록 안전한 링크나 토큰을 만듭니다.',
|
||||
'settings.remoteInstances.clientAuth.field.labelPlaceholder': '기기 이름(선택 사항)',
|
||||
'settings.remoteInstances.clientAuth.actions.create': '토큰 만들기',
|
||||
'settings.remoteInstances.clientAuth.actions.pair': '링크 만들기',
|
||||
'settings.remoteInstances.clientAuth.actions.revoke': '해지',
|
||||
'settings.remoteInstances.clientAuth.actions.clearRevoked': '해지된 항목 지우기',
|
||||
'settings.remoteInstances.clientAuth.qrAlt': 'OpenChamber connection QR code',
|
||||
'settings.remoteInstances.clientAuth.pairingUrl': '연결 링크',
|
||||
'settings.remoteInstances.clientAuth.createdToken': '지금 이 토큰을 복사하세요. 보안을 위해 다시 표시되지 않습니다.',
|
||||
'settings.remoteInstances.clientAuth.state.loading': '토큰을 불러오는 중...',
|
||||
'settings.remoteInstances.clientAuth.state.empty': '아직 연결된 기기가 없습니다.',
|
||||
'settings.remoteInstances.clientAuth.state.revoked': '해지됨',
|
||||
'settings.remoteInstances.clientAuth.state.thisDevice': '이 기기',
|
||||
'settings.remoteInstances.clientAuth.lastUsed': '마지막 사용 {date}',
|
||||
'settings.remoteInstances.clientAuth.neverUsed': '사용한 적 없음',
|
||||
'settings.remoteInstances.sidebar.phase.ready': '준비됨',
|
||||
'settings.remoteInstances.sidebar.phase.error': '오류',
|
||||
'settings.remoteInstances.sidebar.phase.reconnect': '재연결',
|
||||
@@ -221,20 +252,20 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.sidebar.phase.connecting': '연결 중',
|
||||
'settings.remoteInstances.sidebar.phase.idle': '대기 중',
|
||||
'settings.remoteInstances.page.section.instance': '인스턴스',
|
||||
'settings.remoteInstances.page.section.instanceDescription': '핵심 SSH 설정입니다.',
|
||||
'settings.remoteInstances.page.section.instanceDescription': '이 연결에 사용할 SSH 명령과 표시 이름을 선택하세요.',
|
||||
'settings.remoteInstances.page.field.mode': '모드',
|
||||
'settings.remoteInstances.page.field.modeHint': 'Managed는 원격에서 OpenChamber를 설치·업데이트하고 시작합니다. External은 이미 실행 중인 서버에 연결합니다.',
|
||||
'settings.remoteInstances.page.field.modeHint': 'OpenChamber가 서버를 대신 시작할지, 이미 실행 중인 서버에 연결할지 선택하세요.',
|
||||
'settings.remoteInstances.page.field.modePlaceholder': '모드 선택',
|
||||
'settings.remoteInstances.page.field.modeManaged': 'Managed(자동 시작)',
|
||||
'settings.remoteInstances.page.field.modeExternal': 'External(이미 실행 중)',
|
||||
'settings.remoteInstances.page.field.modeManaged': '대신 시작하기',
|
||||
'settings.remoteInstances.page.field.modeExternal': '이미 실행 중',
|
||||
'settings.remoteInstances.page.field.preferredRemotePort': '기본 원격 포트',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': '원격 host에서 OpenChamber가 사용할 포트입니다. 비워 두면 런타임이 자동으로 선택합니다.',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': '원격 컴퓨터에서 사용할 포트입니다. 비워 두면 자동으로 선택합니다.',
|
||||
'settings.remoteInstances.page.field.keepServerRunning': '서버 유지',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': '활성화하면 연결 해제 후에도 OpenChamber daemon이 원격에서 계속 실행됩니다.',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': '연결을 끊은 뒤에도 원격 컴퓨터에서 OpenChamber를 계속 실행합니다.',
|
||||
'settings.remoteInstances.page.field.bindHost': 'Bind host',
|
||||
'settings.remoteInstances.page.field.bindHostHint': '기본 로컬 URL의 네트워크 인터페이스입니다. 로컬 전용 접속에는 127.0.0.1/localhost를 사용하세요.',
|
||||
'settings.remoteInstances.page.field.bindHostHint': '로컬 연결이 대기할 주소입니다. LAN 접근이 필요하지 않으면 127.0.0.1 또는 localhost를 사용하세요.',
|
||||
'settings.remoteInstances.page.field.preferredLocalPort': '기본 로컬 포트',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': '기본 OpenChamber 터널에 사용할 로컬 포트입니다. 자동 선택하려면 비워 두세요.',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': '이 연결에 열 로컬 포트입니다. 비워 두면 자동으로 선택합니다.',
|
||||
'settings.remoteInstances.page.field.forwardType': '포워딩 유형',
|
||||
'settings.remoteInstances.page.field.localHostPlaceholder': '127.0.0.1',
|
||||
'settings.remoteInstances.page.field.remoteHostPlaceholder': '127.0.0.1',
|
||||
@@ -243,7 +274,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.preview.localSocks5': '(로컬 SOCKS5)',
|
||||
'settings.remoteInstances.page.preview.local': '(로컬)',
|
||||
'settings.remoteInstances.page.preview.remote': '(원격)',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': '로컬 엔드포인트를 열지 못했습니다',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': '로컬 주소를 열지 못했습니다',
|
||||
'settings.remoteInstances.page.toast.localUrlCopied': '로컬 URL이 복사되었습니다',
|
||||
'settings.remoteInstances.page.actions.copyLocalUrl': '로컬 URL 복사',
|
||||
'settings.remoteInstances.page.actions.open': '열기',
|
||||
@@ -945,26 +976,26 @@ export const settingsDict = {
|
||||
'settings.usage.pace.waitSeparator': ' · 대기 ',
|
||||
'settings.usage.pace.predictionLabel': '예측: ',
|
||||
'settings.remoteInstances.page.title': '원격 인스턴스',
|
||||
'settings.remoteInstances.page.description': 'SSH 연결, 원격 서버, 포워딩 설정을 관리하세요.',
|
||||
'settings.remoteInstances.page.description': 'SSH로 다른 컴퓨터에 연결하고 그곳에서 OpenChamber를 엽니다.',
|
||||
'settings.remoteInstances.page.empty.selectInstance': '설정을 보고 편집할 인스턴스를 선택하세요.',
|
||||
'settings.remoteInstances.page.empty.noExtraForwards': '추가 포트 포워딩이 설정되어 있지 않습니다.',
|
||||
'settings.remoteInstances.page.section.actions': '작업',
|
||||
'settings.remoteInstances.page.section.actionsDescription': '이 인스턴스를 연결, 재연결, 로그 확인 또는 제거합니다.',
|
||||
'settings.remoteInstances.page.section.remoteServer': '원격 서버',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': '원격 host에서 OpenChamber를 관리하고 시작하는 방식입니다.',
|
||||
'settings.remoteInstances.page.section.mainTunnel': '기본 터널',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': '이 원격 인스턴스의 기본 로컬 엔드포인트입니다.',
|
||||
'settings.remoteInstances.page.section.actionsDescription': '연결, 재연결, 로그 보기 또는 이 연결 삭제를 할 수 있습니다.',
|
||||
'settings.remoteInstances.page.section.remoteServer': '원격 컴퓨터의 OpenChamber',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': 'SSH 연결 후 OpenChamber를 어떻게 실행할지 선택하세요.',
|
||||
'settings.remoteInstances.page.section.mainTunnel': '로컬 접근',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': '이 원격 OpenChamber 서버를 열 때 사용할 로컬 주소를 선택하세요.',
|
||||
'settings.remoteInstances.page.section.authentication': '인증',
|
||||
'settings.remoteInstances.page.section.authenticationDescription': 'SSH와 원격 OpenChamber UI를 위한 인증 정보입니다.',
|
||||
'settings.remoteInstances.page.section.portForwards': '포트 포워딩',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': '기본 터널 외 추가 SSH 포워딩입니다.',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': '이 SSH 연결을 통해 추가로 사용할 포트를 설정합니다.',
|
||||
'settings.remoteInstances.page.field.sshCommand': 'SSH 명령어',
|
||||
'settings.remoteInstances.page.field.sshCommandPlaceholder': 'ssh user@host',
|
||||
'settings.remoteInstances.page.field.nickname': '별칭',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': '내 원격 host',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': '업무용 노트북',
|
||||
'settings.remoteInstances.page.field.connectionTimeoutSeconds': '연결 시간 초과(초)',
|
||||
'settings.remoteInstances.page.field.installMethod': '설치 방식',
|
||||
'settings.remoteInstances.page.field.installMethodHint': 'Managed 모드에서 OpenChamber를 설치하는 방식입니다.',
|
||||
'settings.remoteInstances.page.field.installMethodHint': '이 앱이 대신 시작할 때 OpenChamber를 원격 컴퓨터에 배치하는 방법입니다.',
|
||||
'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': '설치 방식 선택',
|
||||
'settings.remoteInstances.page.field.installMethodDownloadRelease': '릴리스 다운로드',
|
||||
'settings.remoteInstances.page.field.installMethodUploadBundle': '번들 업로드',
|
||||
@@ -973,14 +1004,14 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.field.sshPasswordPlaceholder': 'SSH 비밀번호 입력',
|
||||
'settings.remoteInstances.page.field.uiPasswordOptional': 'UI 비밀번호(선택 사항)',
|
||||
'settings.remoteInstances.page.field.uiPasswordPlaceholder': 'UI 비밀번호 입력',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': '로컬(-L), 원격(-R), 동적(-D) 포워딩 중 선택하세요.',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': '이 SSH 연결이 제공할 포트 접근 방식을 선택하세요.',
|
||||
'settings.remoteInstances.page.field.typePlaceholder': '유형',
|
||||
'settings.remoteInstances.page.forwardType.local': '로컬(-L)',
|
||||
'settings.remoteInstances.page.forwardType.remote': '원격(-R)',
|
||||
'settings.remoteInstances.page.forwardType.dynamic': '동적(-D)',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': '로컬 트래픽을 원격 대상으로 포워딩합니다.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': '원격 엔드포인트를 노출하고 로컬 머신으로 다시 포워딩합니다.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': '로컬 SOCKS5 proxy를 SSH로 노출합니다.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': '원격 컴퓨터의 서비스에 연결되는 로컬 포트를 엽니다.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': '내 컴퓨터로 다시 연결되는 포트를 원격 컴퓨터에 엽니다.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': 'SSH 연결을 통해 로컬 SOCKS 프록시를 엽니다.',
|
||||
'settings.remoteInstances.page.actions.create': '생성',
|
||||
'settings.remoteInstances.page.actions.cancel': '취소',
|
||||
'settings.remoteInstances.page.actions.connecting': '연결 중...',
|
||||
@@ -991,7 +1022,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.actions.enableForwardAria': '포워딩 활성화',
|
||||
'settings.remoteInstances.page.actions.openLocal': '로컬 열기',
|
||||
'settings.remoteInstances.page.actions.addForward': '포워딩 추가',
|
||||
'settings.remoteInstances.page.import.sectionTitle': 'SSH config에서 가져오기',
|
||||
'settings.remoteInstances.page.import.sectionTitle': '저장된 SSH 호스트',
|
||||
'settings.remoteInstances.page.import.loading': 'SSH host 로딩 중...',
|
||||
'settings.remoteInstances.page.import.noneFound': 'SSH host를 찾을 수 없습니다.',
|
||||
'settings.remoteInstances.page.import.noneAvailable': '가져올 수 있는 SSH host가 없습니다.',
|
||||
@@ -1006,7 +1037,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.phase.resolvingConfiguration': '설정 확인 중',
|
||||
'settings.remoteInstances.page.phase.checkingAuth': '인증 확인 중',
|
||||
'settings.remoteInstances.page.phase.establishingSsh': 'SSH 연결 설정 중',
|
||||
'settings.remoteInstances.page.phase.probingRemote': '원격 host 확인 중',
|
||||
'settings.remoteInstances.page.phase.probingRemote': '원격 컴퓨터 확인 중',
|
||||
'settings.remoteInstances.page.phase.installingOpenChamber': 'OpenChamber 설치 중',
|
||||
'settings.remoteInstances.page.phase.updatingOpenChamber': 'OpenChamber 업데이트 중',
|
||||
'settings.remoteInstances.page.phase.detectingServer': '서버 감지 중',
|
||||
@@ -1471,6 +1502,9 @@ export const settingsDict = {
|
||||
'settings.voice.page.preview.voiceLine': '안녕하세요! 저는 {voiceName}입니다. 이렇게 들립니다.',
|
||||
'settings.voice.page.preview.customServerLine': '안녕하세요! 사용자 정의 TTS 서버 미리보기입니다.',
|
||||
'settings.openchamber.visual.section.colorMode': '색상 모드',
|
||||
'settings.openchamber.visual.section.mobileLayout': '모바일 레이아웃',
|
||||
'settings.openchamber.visual.option.mobileLayout.default': '기본값',
|
||||
'settings.openchamber.visual.option.mobileLayout.new': '새로움',
|
||||
'settings.openchamber.visual.section.localization': '지역화',
|
||||
'settings.openchamber.visual.section.spacingAndLayout': '간격 및 레이아웃',
|
||||
'settings.openchamber.visual.section.navigation': '내비게이션',
|
||||
|
||||
@@ -27,6 +27,94 @@ export const dict: Record<I18nKey, string> = {
|
||||
'layout.mainTab.files': '파일',
|
||||
'layout.mainTab.terminal': '터미널',
|
||||
'layout.mainTab.context': '컨텍스트',
|
||||
'mobile.nav.aria': '모바일 내비게이션',
|
||||
'mobile.nav.changes': '변경사항',
|
||||
'mobile.nav.settings': '설정',
|
||||
'mobile.surface.closeAria': '닫기',
|
||||
'mobile.header.openMenuAria': '메뉴 열기',
|
||||
'mobile.menu.titleAria': '작업 공간 도구',
|
||||
'mobile.menu.files': '파일',
|
||||
'mobile.menu.changes': '변경사항',
|
||||
'mobile.menu.settings': '설정',
|
||||
'mobile.sessions.newChatCta': '{project}에서 새 채팅',
|
||||
'mobile.sessions.dateGroup.today': '오늘',
|
||||
'mobile.sessions.dateGroup.yesterday': '어제',
|
||||
'mobile.sessions.dateGroup.thisWeek': '이번 주 초',
|
||||
'mobile.sessions.dateGroup.older': '이전',
|
||||
'mobile.sessions.section.worktrees': '워크트리',
|
||||
'mobile.sessions.section.otherProjects': '프로젝트 전환',
|
||||
'mobile.sessions.section.projects': '프로젝트',
|
||||
'mobile.sessions.empty.noProjectsTitle': '프로젝트 없음',
|
||||
'mobile.sessions.empty.noProjectsDescription': '코드와 채팅을 시작하려면 프로젝트를 추가하세요.',
|
||||
'mobile.sessions.empty.noSessionsTitle': '세션 없음',
|
||||
'mobile.sessions.empty.noSessionsDescription': '여기에 표시하려면 첫 번째 채팅을 시작하세요.',
|
||||
'mobile.sessions.empty.searchTitle': '결과 없음',
|
||||
'mobile.sessions.empty.searchDescription': '다른 검색어를 시도해 보세요.',
|
||||
'mobile.sessions.showArchived': '보관된 항목 표시 ({count})',
|
||||
'mobile.sessions.hideArchived': '보관된 항목 숨기기',
|
||||
'mobile.sessions.activeWorktreeAria': '활성 워크트리',
|
||||
'mobile.sessions.activeProjectAria': '활성 프로젝트',
|
||||
'mobile.sessions.startNewChat': '새 채팅 시작',
|
||||
'mobile.sessions.newChat': '새 채팅',
|
||||
'mobile.sessions.editOrder': '프로젝트 순서 변경',
|
||||
'mobile.sessions.doneEditing': '완료',
|
||||
'mobile.sessions.editOrderHint': '핸들을 드래그하거나 화살표로 프로젝트 순서를 변경하세요. 완료하려면 체크를 누르세요.',
|
||||
'mobile.sessions.dragHandleAria': '{label} 드래그하여 순서 변경',
|
||||
'mobile.sessions.moveUpAria': '{label} 위로 이동',
|
||||
'mobile.sessions.moveDownAria': '{label} 아래로 이동',
|
||||
'mobile.sessions.removeProjectAria': '{label} 제거',
|
||||
'mobile.sessions.cancelRemoveProjectAria': '{label} 제거 취소',
|
||||
'mobile.sessions.confirmRemoveProject': '삭제',
|
||||
'mobile.sessions.confirmRemoveProjectAria': '{label} 제거 확인',
|
||||
'mobile.sessions.toast.projectRemoved': '{label} 제거됨',
|
||||
'mobile.sessions.showMore': '{count}개 더 보기',
|
||||
'mobile.sessions.search.section.sessions': '세션',
|
||||
'mobile.sessions.search.section.archived': '보관됨',
|
||||
'mobile.sessions.search.section.projects': '프로젝트',
|
||||
'mobile.sessions.clearSearchAria': '검색 지우기',
|
||||
'mobile.header.noProject': '프로젝트 선택',
|
||||
'mobile.header.activeSession': '활성 세션',
|
||||
'mobile.header.noSession': '활성 세션 없음',
|
||||
'mobile.sessions.openSheetAria': '세션 및 프로젝트 열기',
|
||||
'mobile.sessions.closeSheetAria': '세션 및 프로젝트 닫기',
|
||||
'mobile.sessions.sheet.title': '세션',
|
||||
'mobile.sessions.sheet.description': '프로젝트를 전환하고 세션을 열거나 새 채팅을 시작하세요.',
|
||||
'mobile.sessions.search.placeholder': '세션 검색',
|
||||
'mobile.sessions.empty': '세션을 찾을 수 없습니다.',
|
||||
'mobile.sessions.unassignedProject': '기타 세션',
|
||||
'mobile.sessions.newSessionAria': '이 프로젝트에서 새 세션 시작',
|
||||
'mobile.sessions.untitled': '제목 없는 세션',
|
||||
'mobile.sessions.project.sessionsSingle': '세션 1개',
|
||||
'mobile.sessions.project.sessionsPlural': '세션 {count}개',
|
||||
'mobile.files.refreshAria': '파일 새로고침',
|
||||
'mobile.files.backToParentAria': '{name}(으)로 돌아가기',
|
||||
'mobile.files.rootDirectory': '프로젝트 파일',
|
||||
'mobile.files.search.placeholder': '파일 검색',
|
||||
'mobile.files.search.empty': '파일을 찾을 수 없습니다.',
|
||||
'mobile.files.parentDirectory': '상위 디렉터리',
|
||||
'mobile.files.empty.noDirectory': '파일을 탐색할 프로젝트를 선택하세요.',
|
||||
'mobile.files.empty.directory': '이 디렉터리는 비어 있습니다.',
|
||||
'mobile.files.error.listFailed': '파일을 불러오지 못했습니다',
|
||||
'mobile.files.error.readUnavailable': '이 런타임에서는 파일 미리보기를 사용할 수 없습니다.',
|
||||
'mobile.files.file.truncated': '모바일용 파일 미리보기가 잘렸습니다.',
|
||||
'mobile.files.copyPathAria': '파일 경로 복사',
|
||||
'mobile.files.copyContent': '내용 복사',
|
||||
'mobile.files.copyContentAria': '파일 내용 복사',
|
||||
'mobile.files.toast.pathCopied': '경로가 복사되었습니다',
|
||||
'mobile.files.toast.contentCopied': '내용이 복사되었습니다',
|
||||
'mobile.files.toast.copyFailed': '복사하지 못했습니다',
|
||||
'mobile.changes.placeholder.title': '변경사항',
|
||||
'mobile.changes.placeholder.description': '작업 트리 검토, sync, commit 작업이 여기에 표시됩니다.',
|
||||
'mobile.changes.branchLabel': '브랜치: {branch}',
|
||||
'mobile.changes.noRemote': '사용 가능한 remote가 없습니다',
|
||||
'mobile.changes.cleanDescription': '이 workspace에는 변경된 파일이 없습니다.',
|
||||
'mobile.changes.diffDetail.subtitle': '읽기 전용 diff',
|
||||
'mobile.changes.diffDetail.loadFailed': 'diff를 불러오지 못했습니다',
|
||||
'mobile.changes.diffDetail.missingTitle': '파일이 더 이상 변경되지 않았습니다',
|
||||
'mobile.changes.diffDetail.missingDescription': '변경사항으로 돌아가 목록을 새로고침하세요.',
|
||||
'mobile.changes.diffDetail.imageUnavailable': '이미지 diff는 아직 모바일 변경사항에서 사용할 수 없습니다.',
|
||||
'mobile.settings.placeholder.title': '설정',
|
||||
'mobile.settings.placeholder.description': '모바일 연결 및 앱 설정이 여기에 표시됩니다.',
|
||||
'layout.rightSidebar.git': 'Git',
|
||||
'layout.rightSidebar.files': '파일',
|
||||
'layout.rightSidebar.context': '컨텍스트',
|
||||
@@ -1162,6 +1250,12 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.services.refreshRateLimitsAria': '레이트 리밋 새로고침',
|
||||
'header.services.noRateLimits': '사용 가능한 레이트 리밋이 없습니다.',
|
||||
'header.services.noRateLimitsReported': '보고된 레이트 리밋이 없습니다.',
|
||||
'header.services.remoteUpdate.title': '원격 인스턴스 업데이트',
|
||||
'header.services.remoteUpdate.checking': '업데이트를 확인하는 중...',
|
||||
'header.services.remoteUpdate.upToDate': '이 인스턴스는 최신 상태입니다.',
|
||||
'header.services.remoteUpdate.available': '이 인스턴스에 버전 {version} 업데이트가 있습니다.',
|
||||
'header.services.remoteUpdate.error': '원격 인스턴스 업데이트를 확인하지 못했습니다',
|
||||
'header.services.remoteUpdate.actions.open': '업데이트',
|
||||
'header.services.used': '사용됨',
|
||||
'header.services.remaining': '남은 양',
|
||||
'header.services.modelFamily.other': '기타',
|
||||
@@ -2069,6 +2163,9 @@ export const dict: Record<I18nKey, string> = {
|
||||
'desktopHostSwitcher.header.currentDefaultColon': '현재 기본값:',
|
||||
'desktopHostSwitcher.status.connected': '연결됨',
|
||||
'desktopHostSwitcher.status.authRequired': '인증 필요',
|
||||
'desktopHostSwitcher.status.checking': '확인 중',
|
||||
'desktopHostSwitcher.status.updateRecommended': '업데이트 권장',
|
||||
'desktopHostSwitcher.status.incompatible': '호환되지 않음',
|
||||
'desktopHostSwitcher.status.wrongService': '잘못된 서비스',
|
||||
'desktopHostSwitcher.status.unreachable': '연결할 수 없음',
|
||||
'desktopHostSwitcher.status.unknown': '알 수 없음',
|
||||
@@ -2255,6 +2352,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
'onboarding.remoteConnection.actions.chooseDifferentServer': '다른 서버 선택',
|
||||
'onboarding.remoteConnection.actions.useLocalInstead': '대신 로컬 사용',
|
||||
'onboarding.remoteConnection.probe.authMessage': '서버에 인증이 필요합니다. 연결은 가능하지만 자격 증명을 입력해야 할 수 있습니다.',
|
||||
'onboarding.remoteConnection.probe.updateRecommendedMessage': '이 인스턴스는 다른 OpenChamber 버전을 실행 중입니다. 연결할 수 있지만 문제가 있으면 양쪽 앱을 업데이트하세요.',
|
||||
'onboarding.remoteConnection.probe.incompatibleMessage': '서버에서 OpenChamber가 실행 중이지만 이 앱 버전과 호환되지 않습니다. 서버의 OpenChamber를 업데이트한 후 다시 시도하세요.',
|
||||
'onboarding.remoteConnection.probe.wrongServiceMessage': '서버가 응답했지만 OpenChamber가 실행 중이 아닙니다. 주소가 OpenChamber 서버를 가리키는지 확인하세요.',
|
||||
'onboarding.remoteConnection.probe.unreachableMessage': '서버에 연결할 수 없습니다. 네트워크 연결과 서버 주소를 확인하세요.',
|
||||
'onboarding.desktopRecovery.localUnavailable.title': '로컬 OpenCode를 사용할 수 없음',
|
||||
@@ -2268,6 +2367,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
'onboarding.desktopRecovery.remoteUnreachable.retry': '연결 다시 시도',
|
||||
'onboarding.desktopRecovery.incompatibleServer.title': '호환되지 않는 서버',
|
||||
'onboarding.desktopRecovery.incompatibleServer.description': '"{host}"의 서버에서 OpenChamber가 실행 중이 아닙니다. 주소가 OpenChamber 서버를 가리키는지 확인하세요.',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.title': '서버 업데이트 필요',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.description': '"{host}"의 OpenChamber 서버가 이 앱 버전과 호환되지 않습니다. 서버의 OpenChamber를 업데이트한 후 다시 시도하세요.',
|
||||
'onboarding.desktopRecovery.common.useLocal': '로컬 사용',
|
||||
'onboarding.desktopRecovery.common.useRemote': '원격 사용',
|
||||
'onboarding.desktopRecovery.actions.retrying': '다시 시도 중…',
|
||||
|
||||
@@ -1007,6 +1007,9 @@ export const settingsDict = {
|
||||
'settings.openchamber.visual.section.chatRenderMode': 'Tryb renderowania czatu',
|
||||
'settings.openchamber.visual.section.chatRenderModeAria': 'Tryb renderowania czatu',
|
||||
'settings.openchamber.visual.section.colorMode': 'Tryb kolorów',
|
||||
'settings.openchamber.visual.section.mobileLayout': 'Układ mobilny',
|
||||
'settings.openchamber.visual.option.mobileLayout.default': 'Domyślny',
|
||||
'settings.openchamber.visual.option.mobileLayout.new': 'Nowy',
|
||||
'settings.openchamber.visual.section.diffLayout': 'Układ diffa',
|
||||
'settings.openchamber.visual.section.diffLayoutAria': 'Układ diffa',
|
||||
'settings.openchamber.visual.section.diffViewMode': 'Tryb widoku diffa',
|
||||
@@ -1257,33 +1260,33 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.confirm.removeInstance': 'Usunąć tę zdalną instancję?',
|
||||
'settings.remoteInstances.page.confirm.storeSshPasswordPlaintext': 'Zapisać hasło SSH jawnym tekstem na dysku?',
|
||||
'settings.remoteInstances.page.confirm.storeUiPasswordPlaintext': 'Zapisać hasło UI jawnym tekstem na dysku?',
|
||||
'settings.remoteInstances.page.description': 'Skonfiguruj połączenie SSH, zdalny serwer i ustawienia przekierowania.',
|
||||
'settings.remoteInstances.page.description': 'Połącz się z inną maszyną przez SSH i otwórz tam OpenChamber.',
|
||||
'settings.remoteInstances.page.empty.noExtraForwards': 'Nie skonfigurowano dodatkowych przekierowań portów.',
|
||||
'settings.remoteInstances.page.empty.selectInstance': 'Wybierz instancję, aby wyświetlić i edytować jej ustawienia.',
|
||||
'settings.remoteInstances.page.field.auto': 'Auto',
|
||||
'settings.remoteInstances.page.field.bindHost': 'Host powiązania',
|
||||
'settings.remoteInstances.page.field.bindHostHint': 'Interfejs sieciowy dla głównego lokalnego URL-a. Użyj 127.0.0.1/localhost dla dostępu tylko lokalnego.',
|
||||
'settings.remoteInstances.page.field.bindHostHint': 'Miejsce nasłuchiwania lokalnego połączenia. Użyj 127.0.0.1 lub localhost, chyba że potrzebujesz dostępu z sieci lokalnej.',
|
||||
'settings.remoteInstances.page.field.connectionTimeoutSeconds': 'Limit czasu połączenia (sekundy)',
|
||||
'settings.remoteInstances.page.field.forwardType': 'Typ przekierowania',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': 'Wybierz przekierowanie lokalne (-L), zdalne (-R) lub dynamiczne (-D).',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': 'Wybierz, jaki dostęp do portów ma zapewniać to połączenie SSH.',
|
||||
'settings.remoteInstances.page.field.installMethod': 'Metoda instalacji',
|
||||
'settings.remoteInstances.page.field.installMethodDownloadRelease': 'Pobierz wydanie',
|
||||
'settings.remoteInstances.page.field.installMethodHint': 'Jak OpenChamber jest instalowany podczas działania w trybie zarządzanym.',
|
||||
'settings.remoteInstances.page.field.installMethodHint': 'Jak OpenChamber ma zostać umieszczony na zdalnej maszynie, gdy aplikacja uruchamia go za Ciebie.',
|
||||
'settings.remoteInstances.page.field.installMethodUploadBundle': 'Prześlij paczkę',
|
||||
'settings.remoteInstances.page.field.keepServerRunning': 'Pozostaw serwer uruchomiony',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': 'Jeśli opcja jest włączona, demon OpenChamber pozostaje uruchomiony zdalnie po rozłączeniu.',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': 'Pozostaw OpenChamber uruchomiony na zdalnej maszynie po rozłączeniu.',
|
||||
'settings.remoteInstances.page.field.localHostPlaceholder': '127.0.0.1',
|
||||
'settings.remoteInstances.page.field.mode': 'Tryb',
|
||||
'settings.remoteInstances.page.field.modeExternal': 'Zewnętrzny (już uruchomiony)',
|
||||
'settings.remoteInstances.page.field.modeHint': 'Tryb zarządzany instaluje lub aktualizuje i uruchamia OpenChamber zdalnie. Tryb zewnętrzny zakłada, że usługa już działa.',
|
||||
'settings.remoteInstances.page.field.modeManaged': 'Zarządzany (auto start)',
|
||||
'settings.remoteInstances.page.field.modeExternal': 'Już działa',
|
||||
'settings.remoteInstances.page.field.modeHint': 'Wybierz, czy OpenChamber ma uruchomić serwer za Ciebie, czy połączyć się z już działającym.',
|
||||
'settings.remoteInstances.page.field.modeManaged': 'Uruchom za mnie',
|
||||
'settings.remoteInstances.page.field.modePlaceholder': 'Wybierz tryb',
|
||||
'settings.remoteInstances.page.field.nickname': 'Pseudonim',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': 'Mój zdalny host',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': 'Laptop służbowy',
|
||||
'settings.remoteInstances.page.field.preferredLocalPort': 'Preferowany port lokalny',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': 'Preferowany lokalny port dla głównego tunelu OpenChamber. Zostaw puste, aby wybrać automatycznie.',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': 'Lokalny port dla tego połączenia. Zostaw puste, aby wybrać automatycznie.',
|
||||
'settings.remoteInstances.page.field.preferredRemotePort': 'Preferowany port zdalny',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': 'Port, którego OpenChamber powinien używać na zdalnym hoście. Zostaw puste, aby środowisko wybrało go automatycznie.',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': 'Port używany na zdalnej maszynie. Zostaw puste, aby wybrać automatycznie.',
|
||||
'settings.remoteInstances.page.field.remoteHostPlaceholder': '127.0.0.1',
|
||||
'settings.remoteInstances.page.field.selectBindHostPlaceholder': 'Wybierz host powiązania',
|
||||
'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': 'Wybierz metodę instalacji',
|
||||
@@ -1297,14 +1300,14 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.forwardType.dynamic': 'Dynamic (-D)',
|
||||
'settings.remoteInstances.page.forwardType.local': 'Local (-L)',
|
||||
'settings.remoteInstances.page.forwardType.remote': 'Remote (-R)',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': 'Udostępnij lokalny serwer proxy SOCKS5 przez SSH.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': 'Przekieruj ruch lokalny do zdalnego celu.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': 'Udostępnij zdalny endpoint i przekieruj go z powrotem na lokalną maszynę.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': 'Otwórz lokalny proxy SOCKS przez połączenie SSH.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': 'Otwórz lokalny port łączący się z usługą na zdalnej maszynie.',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': 'Otwórz port na zdalnej maszynie, który połączy się z powrotem z Twoim komputerem.',
|
||||
'settings.remoteInstances.page.import.loading': 'Ładowanie hostów SSH...',
|
||||
'settings.remoteInstances.page.import.noneAvailable': 'Brak hostów SSH dostępnych do importu.',
|
||||
'settings.remoteInstances.page.import.noneFound': 'Nie znaleziono hostów SSH.',
|
||||
'settings.remoteInstances.page.import.patternSuffix': '(wzorzec)',
|
||||
'settings.remoteInstances.page.import.sectionTitle': 'Importuj z konfiguracji SSH',
|
||||
'settings.remoteInstances.page.import.sectionTitle': 'Zapisane hosty SSH',
|
||||
'settings.remoteInstances.page.logsDialog.empty': 'Brak logów SSH.',
|
||||
'settings.remoteInstances.page.logsDialog.loading': 'Ładowanie logów...',
|
||||
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': 'Wybrana instancja',
|
||||
@@ -1318,7 +1321,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.phase.establishingSsh': 'Nawiązywanie połączenia SSH',
|
||||
'settings.remoteInstances.page.phase.forwardingPorts': 'Przekierowywanie portów',
|
||||
'settings.remoteInstances.page.phase.installingOpenChamber': 'Instalowanie OpenChamber',
|
||||
'settings.remoteInstances.page.phase.probingRemote': 'Sprawdzanie zdalnego hosta',
|
||||
'settings.remoteInstances.page.phase.probingRemote': 'Sprawdzanie zdalnej maszyny',
|
||||
'settings.remoteInstances.page.phase.reconnecting': 'Ponowne łączenie',
|
||||
'settings.remoteInstances.page.phase.resolvingConfiguration': 'Rozwiązywanie konfiguracji',
|
||||
'settings.remoteInstances.page.phase.startingServer': 'Uruchamianie serwera',
|
||||
@@ -1327,17 +1330,17 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.preview.localSocks5': '(lokalny SOCKS5)',
|
||||
'settings.remoteInstances.page.preview.remote': '(zdalny)',
|
||||
'settings.remoteInstances.page.section.actions': 'Akcje',
|
||||
'settings.remoteInstances.page.section.actionsDescription': 'Połącz, połącz ponownie, sprawdź logi lub usuń tę instancję.',
|
||||
'settings.remoteInstances.page.section.actionsDescription': 'Połącz, połącz ponownie, przejrzyj logi lub usuń to połączenie.',
|
||||
'settings.remoteInstances.page.section.authentication': 'Uwierzytelnianie',
|
||||
'settings.remoteInstances.page.section.authenticationDescription': 'Opcjonalne dane logowania dla SSH i zdalnego interfejsu OpenChamber.',
|
||||
'settings.remoteInstances.page.section.instance': 'Instancja',
|
||||
'settings.remoteInstances.page.section.instanceDescription': 'Podstawowe ustawienia SSH.',
|
||||
'settings.remoteInstances.page.section.mainTunnel': 'Główny tunel',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': 'Główny lokalny endpoint dla tej zdalnej instancji.',
|
||||
'settings.remoteInstances.page.section.instanceDescription': 'Wybierz polecenie SSH i nazwę wyświetlaną dla tego połączenia.',
|
||||
'settings.remoteInstances.page.section.mainTunnel': 'Dostęp lokalny',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': 'Wybierz lokalny adres używany do otwierania tego zdalnego serwera OpenChamber.',
|
||||
'settings.remoteInstances.page.section.portForwards': 'Przekierowania portów',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': 'Dodatkowe przekierowania SSH poza głównym tunelem.',
|
||||
'settings.remoteInstances.page.section.remoteServer': 'Zdalny serwer',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': 'Jak OpenChamber jest zarządzany i uruchamiany na zdalnym hoście.',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': 'Opcjonalne dodatkowe porty udostępniane przez to połączenie SSH.',
|
||||
'settings.remoteInstances.page.section.remoteServer': 'OpenChamber na zdalnej maszynie',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': 'Wybierz, jak OpenChamber ma działać po połączeniu SSH.',
|
||||
'settings.remoteInstances.page.status.currentLocalUrl': 'Aktualny lokalny URL:',
|
||||
'settings.remoteInstances.page.status.reconnectStale': 'Ponowne łączenie wygląda na zawieszone. Możesz spróbować jeszcze raz.',
|
||||
'settings.remoteInstances.page.title': 'Zdalna instancja',
|
||||
@@ -1354,18 +1357,18 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.toast.logsCleared': 'Logi zostały wyczyszczone',
|
||||
'settings.remoteInstances.page.toast.logsCopied': 'Logi zostały skopiowane',
|
||||
'settings.remoteInstances.page.toast.noLogsToCopy': 'Brak logów do skopiowania',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': 'Nie udało się otworzyć lokalnego endpointu',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': 'Nie udało się otworzyć lokalnego adresu',
|
||||
'settings.remoteInstances.page.toast.removeInstanceFailed': 'Nie udało się usunąć instancji',
|
||||
'settings.remoteInstances.page.toast.retryFailed': 'Nie udało się ponowić połączenia',
|
||||
'settings.remoteInstances.page.toast.saveFailed': 'Nie udało się zapisać instancji',
|
||||
'settings.remoteInstances.page.toast.sshCommandRequired': 'Polecenie SSH jest wymagane',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': 'Dodaj instancję SSH',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': 'Dodaj połączenie SSH',
|
||||
'settings.remoteInstances.sidebar.actions.connect': 'Połącz',
|
||||
'settings.remoteInstances.sidebar.actions.disconnect': 'Rozłącz',
|
||||
'settings.remoteInstances.sidebar.actions.remove': 'Usuń',
|
||||
'settings.remoteInstances.sidebar.actions.retry': 'Ponów',
|
||||
'settings.remoteInstances.sidebar.confirm.localPortInUseRetry': 'Lokalny port jest już używany. Wybrać losowy wolny port lokalny i spróbować ponownie?',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': 'Nowa instancja SSH',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': 'Nowe połączenie SSH',
|
||||
'settings.remoteInstances.sidebar.phase.connecting': 'Łączenie',
|
||||
'settings.remoteInstances.sidebar.phase.error': 'Błąd',
|
||||
'settings.remoteInstances.sidebar.phase.forwarding': 'Przekierowywanie',
|
||||
@@ -1377,9 +1380,40 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.sidebar.phase.updating': 'Aktualizowanie',
|
||||
'settings.remoteInstances.sidebar.title': 'Zdalne instancje',
|
||||
'settings.remoteInstances.sidebar.toast.connectFailed': 'Nie udało się połączyć z instancją',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': 'Nie udało się utworzyć instancji SSH',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': 'Nie udało się utworzyć połączenia SSH',
|
||||
'settings.remoteInstances.sidebar.toast.disconnectFailed': 'Nie udało się rozłączyć instancji',
|
||||
'settings.remoteInstances.sidebar.toast.removeFailed': 'Nie udało się usunąć instancji',
|
||||
'settings.remoteInstances.direct.sidebarTitle': 'Linki do serwerów',
|
||||
'settings.remoteInstances.direct.sidebarDescription': 'Połącz przez link lub token',
|
||||
'settings.remoteInstances.direct.title': 'Inne serwery OpenChamber',
|
||||
'settings.remoteInstances.direct.description': 'Dodaj inny serwer OpenChamber przez URL. Użyj tego, gdy serwer już działa i masz token połączenia.',
|
||||
'settings.remoteInstances.direct.field.labelPlaceholder': 'Etykieta (opcjonalnie)',
|
||||
'settings.remoteInstances.direct.field.urlPlaceholder': 'https://host:port',
|
||||
'settings.remoteInstances.direct.field.tokenPlaceholder': 'Token połączenia (opcjonalny dla zaufanych serwerów lokalnych)',
|
||||
'settings.remoteInstances.direct.note': 'Tokeny połączenia są zapisywane na tym urządzeniu i używane tylko wtedy, gdy ta aplikacja łączy się z danym serwerem.',
|
||||
'settings.remoteInstances.direct.actions.add': 'Dodaj serwer',
|
||||
'settings.remoteInstances.direct.import.description': 'Wklej link połączenia z innego serwera OpenChamber.',
|
||||
'settings.remoteInstances.direct.import.placeholder': 'openchamber://connect?...',
|
||||
'settings.remoteInstances.direct.import.action': 'Importuj link',
|
||||
'settings.remoteInstances.direct.error.invalidConnectLink': 'Nieprawidłowy link połączenia OpenChamber.',
|
||||
'settings.remoteInstances.direct.state.loading': 'Ładowanie serwerów...',
|
||||
'settings.remoteInstances.direct.state.empty': 'Nie dodano jeszcze innych serwerów.',
|
||||
'settings.remoteInstances.clientAuth.title': 'Połącz z tym serwerem',
|
||||
'settings.remoteInstances.clientAuth.description': 'Utwórz bezpieczny link lub token, aby OpenChamber Desktop mógł połączyć się z tym serwerem.',
|
||||
'settings.remoteInstances.clientAuth.field.labelPlaceholder': 'Nazwa urządzenia (opcjonalnie)',
|
||||
'settings.remoteInstances.clientAuth.actions.create': 'Utwórz token',
|
||||
'settings.remoteInstances.clientAuth.actions.pair': 'Utwórz link',
|
||||
'settings.remoteInstances.clientAuth.actions.revoke': 'Unieważnij',
|
||||
'settings.remoteInstances.clientAuth.actions.clearRevoked': 'Wyczyść unieważnione',
|
||||
'settings.remoteInstances.clientAuth.qrAlt': 'Kod QR połączenia OpenChamber',
|
||||
'settings.remoteInstances.clientAuth.pairingUrl': 'Link połączenia',
|
||||
'settings.remoteInstances.clientAuth.createdToken': 'Skopiuj ten token teraz. Ze względów bezpieczeństwa nie zostanie pokazany ponownie.',
|
||||
'settings.remoteInstances.clientAuth.state.loading': 'Ładowanie tokenów...',
|
||||
'settings.remoteInstances.clientAuth.state.empty': 'Nie podłączono jeszcze żadnych urządzeń.',
|
||||
'settings.remoteInstances.clientAuth.state.revoked': 'Unieważniony',
|
||||
'settings.remoteInstances.clientAuth.state.thisDevice': 'To urządzenie',
|
||||
'settings.remoteInstances.clientAuth.lastUsed': 'Ostatnio użyto {date}',
|
||||
'settings.remoteInstances.clientAuth.neverUsed': 'Nigdy nie użyto',
|
||||
'settings.remoteInstances.sidebar.toast.retriedWithRandomPort': 'Ponowiono próbę z losowym lokalnym portem',
|
||||
'settings.remoteInstances.sidebar.toast.retryFailed': 'Nie udało się ponowić połączenia',
|
||||
'settings.remoteInstances.sidebar.total': 'Suma: {count}',
|
||||
|
||||
@@ -28,6 +28,94 @@ export const dict: Record<I18nKey, string> = {
|
||||
'layout.mainTab.files': 'Pliki',
|
||||
'layout.mainTab.terminal': 'Terminal',
|
||||
'layout.mainTab.context': 'Kontekst',
|
||||
'mobile.nav.aria': 'Nawigacja mobilna',
|
||||
'mobile.nav.changes': 'Zmiany',
|
||||
'mobile.nav.settings': 'Ustawienia',
|
||||
'mobile.surface.closeAria': 'Zamknij',
|
||||
'mobile.header.openMenuAria': 'Otwórz menu',
|
||||
'mobile.menu.titleAria': 'Narzędzia obszaru roboczego',
|
||||
'mobile.menu.files': 'Pliki',
|
||||
'mobile.menu.changes': 'Zmiany',
|
||||
'mobile.menu.settings': 'Ustawienia',
|
||||
'mobile.sessions.newChatCta': 'Nowy czat w {project}',
|
||||
'mobile.sessions.dateGroup.today': 'Dzisiaj',
|
||||
'mobile.sessions.dateGroup.yesterday': 'Wczoraj',
|
||||
'mobile.sessions.dateGroup.thisWeek': 'Wcześniej w tym tygodniu',
|
||||
'mobile.sessions.dateGroup.older': 'Starsze',
|
||||
'mobile.sessions.section.worktrees': 'Worktrees',
|
||||
'mobile.sessions.section.otherProjects': 'Zmień projekt',
|
||||
'mobile.sessions.section.projects': 'Projekty',
|
||||
'mobile.sessions.empty.noProjectsTitle': 'Brak projektów',
|
||||
'mobile.sessions.empty.noProjectsDescription': 'Dodaj projekt, aby zacząć rozmawiać ze swoim kodem.',
|
||||
'mobile.sessions.empty.noSessionsTitle': 'Brak sesji',
|
||||
'mobile.sessions.empty.noSessionsDescription': 'Rozpocznij pierwszy czat, aby zobaczyć go tutaj.',
|
||||
'mobile.sessions.empty.searchTitle': 'Brak wyników',
|
||||
'mobile.sessions.empty.searchDescription': 'Spróbuj innego zapytania.',
|
||||
'mobile.sessions.showArchived': 'Pokaż zarchiwizowane ({count})',
|
||||
'mobile.sessions.hideArchived': 'Ukryj zarchiwizowane',
|
||||
'mobile.sessions.activeWorktreeAria': 'Aktywny worktree',
|
||||
'mobile.sessions.activeProjectAria': 'Aktywny projekt',
|
||||
'mobile.sessions.startNewChat': 'Rozpocznij nowy czat',
|
||||
'mobile.sessions.newChat': 'Nowy czat',
|
||||
'mobile.sessions.editOrder': 'Zmień kolejność projektów',
|
||||
'mobile.sessions.doneEditing': 'Gotowe',
|
||||
'mobile.sessions.editOrderHint': 'Przeciągnij uchwyt lub użyj strzałek, aby zmienić kolejność. Naciśnij znacznik, aby zakończyć.',
|
||||
'mobile.sessions.dragHandleAria': 'Przeciągnij {label}, aby zmienić kolejność',
|
||||
'mobile.sessions.moveUpAria': 'Przenieś {label} w górę',
|
||||
'mobile.sessions.moveDownAria': 'Przenieś {label} w dół',
|
||||
'mobile.sessions.removeProjectAria': 'Usuń {label}',
|
||||
'mobile.sessions.cancelRemoveProjectAria': 'Anuluj usuwanie {label}',
|
||||
'mobile.sessions.confirmRemoveProject': 'Usuń',
|
||||
'mobile.sessions.confirmRemoveProjectAria': 'Potwierdź usunięcie {label}',
|
||||
'mobile.sessions.toast.projectRemoved': 'Usunięto {label}',
|
||||
'mobile.sessions.showMore': 'Pokaż jeszcze {count}',
|
||||
'mobile.sessions.search.section.sessions': 'Sesje',
|
||||
'mobile.sessions.search.section.archived': 'Zarchiwizowane',
|
||||
'mobile.sessions.search.section.projects': 'Projekty',
|
||||
'mobile.sessions.clearSearchAria': 'Wyczyść wyszukiwanie',
|
||||
'mobile.header.noProject': 'Wybierz projekt',
|
||||
'mobile.header.activeSession': 'Aktywna sesja',
|
||||
'mobile.header.noSession': 'Brak aktywnej sesji',
|
||||
'mobile.sessions.openSheetAria': 'Otwórz sesje i projekty',
|
||||
'mobile.sessions.closeSheetAria': 'Zamknij sesje i projekty',
|
||||
'mobile.sessions.sheet.title': 'Sesje',
|
||||
'mobile.sessions.sheet.description': 'Przełączaj projekty, otwieraj sesje albo zacznij nowy czat.',
|
||||
'mobile.sessions.search.placeholder': 'Szukaj sesji',
|
||||
'mobile.sessions.empty': 'Nie znaleziono sesji.',
|
||||
'mobile.sessions.unassignedProject': 'Inne sesje',
|
||||
'mobile.sessions.newSessionAria': 'Rozpocznij nową sesję w tym projekcie',
|
||||
'mobile.sessions.untitled': 'Sesja bez tytułu',
|
||||
'mobile.sessions.project.sessionsSingle': '1 sesja',
|
||||
'mobile.sessions.project.sessionsPlural': 'Sesje: {count}',
|
||||
'mobile.files.refreshAria': 'Odśwież pliki',
|
||||
'mobile.files.backToParentAria': 'Wróć do {name}',
|
||||
'mobile.files.rootDirectory': 'Pliki projektu',
|
||||
'mobile.files.search.placeholder': 'Szukaj plików',
|
||||
'mobile.files.search.empty': 'Nie znaleziono plików.',
|
||||
'mobile.files.parentDirectory': 'Katalog nadrzędny',
|
||||
'mobile.files.empty.noDirectory': 'Wybierz projekt, aby przeglądać pliki.',
|
||||
'mobile.files.empty.directory': 'Ten katalog jest pusty.',
|
||||
'mobile.files.error.listFailed': 'Nie udało się załadować plików',
|
||||
'mobile.files.error.readUnavailable': 'Podgląd pliku jest niedostępny w tym środowisku.',
|
||||
'mobile.files.file.truncated': 'Podgląd pliku został skrócony dla trybu mobilnego.',
|
||||
'mobile.files.copyPathAria': 'Kopiuj ścieżkę pliku',
|
||||
'mobile.files.copyContent': 'Kopiuj zawartość',
|
||||
'mobile.files.copyContentAria': 'Kopiuj zawartość pliku',
|
||||
'mobile.files.toast.pathCopied': 'Ścieżka skopiowana',
|
||||
'mobile.files.toast.contentCopied': 'Zawartość skopiowana',
|
||||
'mobile.files.toast.copyFailed': 'Kopiowanie nie powiodło się',
|
||||
'mobile.changes.placeholder.title': 'Zmiany',
|
||||
'mobile.changes.placeholder.description': 'Tutaj będą przegląd drzewa roboczego, sync i commity.',
|
||||
'mobile.changes.branchLabel': 'Gałąź: {branch}',
|
||||
'mobile.changes.noRemote': 'Brak dostępnego remote',
|
||||
'mobile.changes.cleanDescription': 'W tym workspace nie ma zmienionych plików.',
|
||||
'mobile.changes.diffDetail.subtitle': 'Diff tylko do odczytu',
|
||||
'mobile.changes.diffDetail.loadFailed': 'Nie udało się wczytać diff',
|
||||
'mobile.changes.diffDetail.missingTitle': 'Plik nie jest już zmieniony',
|
||||
'mobile.changes.diffDetail.missingDescription': 'Wróć do Zmian i odśwież listę.',
|
||||
'mobile.changes.diffDetail.imageUnavailable': 'Diffy obrazów nie są jeszcze dostępne w mobilnych Zmianach.',
|
||||
'mobile.settings.placeholder.title': 'Ustawienia',
|
||||
'mobile.settings.placeholder.description': 'Tutaj będą mobilne ustawienia połączenia i aplikacji.',
|
||||
'layout.rightSidebar.git': 'Git',
|
||||
'layout.rightSidebar.files': 'Pliki',
|
||||
'layout.rightSidebar.context': 'Kontekst',
|
||||
@@ -721,6 +809,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
'onboarding.remoteConnection.actions.chooseDifferentServer': 'Wybierz inny serwer',
|
||||
'onboarding.remoteConnection.actions.useLocalInstead': 'Użyj lokalnego zamiast',
|
||||
'onboarding.remoteConnection.probe.authMessage': 'Serwer wymaga uwierzytelnienia. Nadal możesz się połączyć, ale może być konieczne podanie danych uwierzytelniających.',
|
||||
'onboarding.remoteConnection.probe.updateRecommendedMessage': 'Ta instancja używa innej wersji OpenChamber. Możesz się połączyć, ale zaktualizuj obie aplikacje, jeśli coś nie działa.',
|
||||
'onboarding.remoteConnection.probe.incompatibleMessage': 'Serwer uruchamia OpenChamber, ale nie jest zgodny z tą wersją aplikacji. Zaktualizuj OpenChamber na serwerze i spróbuj ponownie.',
|
||||
'onboarding.remoteConnection.probe.wrongServiceMessage': 'Serwer odpowiedział, ale nie uruchomiono na nim OpenChamber. Zweryfikuj czy adres wskazuje na serwer OpenChamber.',
|
||||
'onboarding.remoteConnection.probe.unreachableMessage': 'Serwer jest nieosiągalny. Sprawdź swoje połączenie sieciowe i zweryfikuj adres serwera.',
|
||||
'onboarding.desktopRecovery.localUnavailable.title': 'OpenCode lokalny niedostępny',
|
||||
@@ -734,6 +824,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
'onboarding.desktopRecovery.remoteUnreachable.retry': 'Ponów połączenie',
|
||||
'onboarding.desktopRecovery.incompatibleServer.title': 'Niekompatybilny serwer',
|
||||
'onboarding.desktopRecovery.incompatibleServer.description': 'Serwer pod adresem "{host}" nie uruchamia OpenChamber. Zweryfikuj czy adres wskazuje na serwer OpenChamber.',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.title': 'Wymagana aktualizacja serwera',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.description': 'Serwer OpenChamber pod adresem "{host}" nie jest zgodny z tą wersją aplikacji. Zaktualizuj OpenChamber na serwerze i spróbuj ponownie.',
|
||||
'onboarding.desktopRecovery.common.useLocal': 'Użyj lokalnego',
|
||||
'onboarding.desktopRecovery.common.useRemote': 'Użyj zdalnego',
|
||||
'onboarding.desktopRecovery.actions.retrying': 'Ponawianie...',
|
||||
@@ -1257,6 +1349,9 @@ export const dict: Record<I18nKey, string> = {
|
||||
'desktopHostSwitcher.state.loading': 'Ładowanie...',
|
||||
'desktopHostSwitcher.status.authRequired': 'Wymagane uwierzytelnienie',
|
||||
'desktopHostSwitcher.status.connected': 'Połączono',
|
||||
'desktopHostSwitcher.status.checking': 'Sprawdzanie',
|
||||
'desktopHostSwitcher.status.updateRecommended': 'Zalecana aktualizacja',
|
||||
'desktopHostSwitcher.status.incompatible': 'Niekompatybilna',
|
||||
'desktopHostSwitcher.status.ping': ' · {ms}ms ping',
|
||||
'desktopHostSwitcher.status.unknown': 'Nieznany',
|
||||
'desktopHostSwitcher.status.unreachable': 'Nieosiągalna',
|
||||
@@ -1817,6 +1912,12 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.services.modelFamily.other': 'Inne',
|
||||
'header.services.noRateLimits': 'Brak dostępnych limitów użycia.',
|
||||
'header.services.noRateLimitsReported': 'Nie zgłoszono limitów użycia.',
|
||||
'header.services.remoteUpdate.title': 'Aktualizacja zdalnej instancji',
|
||||
'header.services.remoteUpdate.checking': 'Sprawdzanie aktualizacji...',
|
||||
'header.services.remoteUpdate.upToDate': 'Ta instancja jest aktualna.',
|
||||
'header.services.remoteUpdate.available': 'Wersja {version} jest dostępna dla tej instancji.',
|
||||
'header.services.remoteUpdate.error': 'Nie udało się sprawdzić aktualizacji zdalnej instancji',
|
||||
'header.services.remoteUpdate.actions.open': 'Aktualizuj',
|
||||
'header.services.open': 'Otwórz instancję, użycie i MCP',
|
||||
'header.services.openWithCurrent': 'Otwórz instancję, użycie i MCP (bieżąca: {current})',
|
||||
'header.services.rateLimits': 'Limity użycia',
|
||||
|
||||
@@ -198,19 +198,50 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.sidebar.item.sessionFusion": "Fusion",
|
||||
"settings.remoteInstances.sidebar.title": "Instâncias remotas",
|
||||
"settings.remoteInstances.sidebar.total": "Total {count}",
|
||||
"settings.remoteInstances.sidebar.newSshInstanceName": "Nova instância SSH",
|
||||
"settings.remoteInstances.sidebar.actions.addSshInstance": "Adicionar instância SSH",
|
||||
"settings.remoteInstances.sidebar.newSshInstanceName": "Nova conexão SSH",
|
||||
"settings.remoteInstances.sidebar.actions.addSshInstance": "Adicionar conexão SSH",
|
||||
"settings.remoteInstances.sidebar.actions.connect": "Conectar",
|
||||
"settings.remoteInstances.sidebar.actions.disconnect": "Desconectar",
|
||||
"settings.remoteInstances.sidebar.actions.retry": "Tentar novamente",
|
||||
"settings.remoteInstances.sidebar.actions.remove": "Excluir",
|
||||
"settings.remoteInstances.sidebar.confirm.localPortInUseRetry": "A porta local já está em uso. Escolher uma porta livre aleatória e tentar novamente?",
|
||||
"settings.remoteInstances.sidebar.toast.createFailed": "Não foi possível criar a instância SSH",
|
||||
"settings.remoteInstances.sidebar.toast.createFailed": "Não foi possível criar a conexão SSH",
|
||||
"settings.remoteInstances.sidebar.toast.retriedWithRandomPort": "Tentado novamente com uma porta local aleatória",
|
||||
"settings.remoteInstances.sidebar.toast.connectFailed": "Não foi possível conectar a instância",
|
||||
"settings.remoteInstances.sidebar.toast.disconnectFailed": "Não foi possível desconectar a instância",
|
||||
"settings.remoteInstances.sidebar.toast.retryFailed": "Não foi possível tentar a conexão novamente",
|
||||
"settings.remoteInstances.sidebar.toast.removeFailed": "Não foi possível excluir a instância",
|
||||
"settings.remoteInstances.direct.sidebarTitle": "Links de servidores",
|
||||
"settings.remoteInstances.direct.sidebarDescription": "Conecte com um link ou token",
|
||||
"settings.remoteInstances.direct.title": "Outros servidores OpenChamber",
|
||||
"settings.remoteInstances.direct.description": "Adicione outro servidor OpenChamber por URL. Use isto quando o servidor já estiver em execução e você tiver um token de conexão.",
|
||||
"settings.remoteInstances.direct.field.labelPlaceholder": "Rótulo (opcional)",
|
||||
"settings.remoteInstances.direct.field.urlPlaceholder": "https://host:port",
|
||||
"settings.remoteInstances.direct.field.tokenPlaceholder": "Token de conexão (opcional para servidores locais confiáveis)",
|
||||
"settings.remoteInstances.direct.note": "Os tokens de conexão ficam salvos neste dispositivo e são usados apenas quando este app se conecta a esse servidor.",
|
||||
"settings.remoteInstances.direct.actions.add": "Adicionar servidor",
|
||||
"settings.remoteInstances.direct.import.description": "Cole um link de conexão de outro servidor OpenChamber.",
|
||||
"settings.remoteInstances.direct.import.placeholder": "openchamber://connect?...",
|
||||
"settings.remoteInstances.direct.import.action": "Importar link",
|
||||
"settings.remoteInstances.direct.error.invalidConnectLink": "Link de conexão do OpenChamber inválido.",
|
||||
"settings.remoteInstances.direct.state.loading": "Carregando servidores...",
|
||||
"settings.remoteInstances.direct.state.empty": "Nenhum outro servidor adicionado ainda.",
|
||||
"settings.remoteInstances.clientAuth.title": "Conectar a este servidor",
|
||||
"settings.remoteInstances.clientAuth.description": "Crie um link ou token seguro para que o OpenChamber Desktop possa se conectar a este servidor.",
|
||||
"settings.remoteInstances.clientAuth.field.labelPlaceholder": "Nome do dispositivo (opcional)",
|
||||
"settings.remoteInstances.clientAuth.actions.create": "Criar token",
|
||||
"settings.remoteInstances.clientAuth.actions.pair": "Criar link",
|
||||
"settings.remoteInstances.clientAuth.actions.revoke": "Revogar",
|
||||
"settings.remoteInstances.clientAuth.actions.clearRevoked": "Limpar revogados",
|
||||
"settings.remoteInstances.clientAuth.qrAlt": "OpenChamber connection QR code",
|
||||
"settings.remoteInstances.clientAuth.pairingUrl": "Link de conexão",
|
||||
"settings.remoteInstances.clientAuth.createdToken": "Copie este token agora. Por segurança, ele não será mostrado novamente.",
|
||||
"settings.remoteInstances.clientAuth.state.loading": "Carregando tokens...",
|
||||
"settings.remoteInstances.clientAuth.state.empty": "Nenhum dispositivo conectado ainda.",
|
||||
"settings.remoteInstances.clientAuth.state.revoked": "Revogado",
|
||||
"settings.remoteInstances.clientAuth.state.thisDevice": "Este dispositivo",
|
||||
"settings.remoteInstances.clientAuth.lastUsed": "Último uso em {date}",
|
||||
"settings.remoteInstances.clientAuth.neverUsed": "Nunca usado",
|
||||
"settings.remoteInstances.sidebar.phase.ready": "Pronto",
|
||||
"settings.remoteInstances.sidebar.phase.error": "Erro",
|
||||
"settings.remoteInstances.sidebar.phase.reconnect": "Reconectar",
|
||||
@@ -221,20 +252,20 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.sidebar.phase.connecting": "Conectando",
|
||||
"settings.remoteInstances.sidebar.phase.idle": "Inativo",
|
||||
"settings.remoteInstances.page.section.instance": "Instância",
|
||||
"settings.remoteInstances.page.section.instanceDescription": "Configurações básicas de SSH.",
|
||||
"settings.remoteInstances.page.section.instanceDescription": "Choose the SSH command and a display name for this connection.",
|
||||
"settings.remoteInstances.page.field.mode": "Modo",
|
||||
"settings.remoteInstances.page.field.modeHint": "Instalações/atualizações gerenciadas e inicialização remota do OpenChamber. Externo assume que ele já está em execução.",
|
||||
"settings.remoteInstances.page.field.modeHint": "Escolha se o OpenChamber deve iniciar o servidor para você ou se conectar a um que já está em execução.",
|
||||
"settings.remoteInstances.page.field.modePlaceholder": "Selecionar modo",
|
||||
"settings.remoteInstances.page.field.modeManaged": "Gerenciado (inicialização automática)",
|
||||
"settings.remoteInstances.page.field.modeExternal": "Externo (já em execução)",
|
||||
"settings.remoteInstances.page.field.modeManaged": "Iniciar para mim",
|
||||
"settings.remoteInstances.page.field.modeExternal": "Já está em execução",
|
||||
"settings.remoteInstances.page.field.preferredRemotePort": "Porta remoto preferido",
|
||||
"settings.remoteInstances.page.field.preferredRemotePortHint": "Porta que o OpenChamber deve usar no host remoto. Deixe vazio para que o ambiente escolha.",
|
||||
"settings.remoteInstances.page.field.preferredRemotePortHint": "Port to use on the remote machine. Leave empty to choose one automatically.",
|
||||
"settings.remoteInstances.page.field.keepServerRunning": "Manter servidor em execução",
|
||||
"settings.remoteInstances.page.field.keepServerRunningHint": "Quando habilitado, o daemon do OpenChamber permanece em execução remotamente ao desconectar.",
|
||||
"settings.remoteInstances.page.field.keepServerRunningHint": "Keep OpenChamber running on the remote machine after you disconnect.",
|
||||
"settings.remoteInstances.page.field.bindHost": "Host de link",
|
||||
"settings.remoteInstances.page.field.bindHostHint": "Interface de rede para a URL local principal. Use 127.0.0.1/localhost somente para acesso local.",
|
||||
"settings.remoteInstances.page.field.bindHostHint": "Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.",
|
||||
"settings.remoteInstances.page.field.preferredLocalPort": "Porta local preferido",
|
||||
"settings.remoteInstances.page.field.preferredLocalPortHint": "Porta local preferida para o túnel principal do OpenChamber. Deixe vazio para seleção automática.",
|
||||
"settings.remoteInstances.page.field.preferredLocalPortHint": "Local port to open for this connection. Leave empty to choose one automatically.",
|
||||
"settings.remoteInstances.page.field.forwardType": "Tipo de encaminhamento",
|
||||
"settings.remoteInstances.page.field.localHostPlaceholder": "127.0.0.1",
|
||||
"settings.remoteInstances.page.field.remoteHostPlaceholder": "127.0.0.1",
|
||||
@@ -243,7 +274,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.preview.localSocks5": "(local SOCKS5)",
|
||||
"settings.remoteInstances.page.preview.local": "(local)",
|
||||
"settings.remoteInstances.page.preview.remote": "(remoto)",
|
||||
"settings.remoteInstances.page.toast.openLocalEndpointFailed": "Não foi possível abrir o endpoint local",
|
||||
"settings.remoteInstances.page.toast.openLocalEndpointFailed": "Não foi possível abrir o endereço local",
|
||||
"settings.remoteInstances.page.toast.localUrlCopied": "URL local copiada",
|
||||
"settings.remoteInstances.page.actions.copyLocalUrl": "Copiar URL local",
|
||||
"settings.remoteInstances.page.actions.open": "Abrir",
|
||||
@@ -945,26 +976,26 @@ export const settingsDict = {
|
||||
"settings.usage.pace.waitSeparator": " · Aguarder ",
|
||||
"settings.usage.pace.predictionLabel": "Prede.: ",
|
||||
"settings.remoteInstances.page.title": "Instância remota",
|
||||
"settings.remoteInstances.page.description": "Configure a conexão SSH, o servidor remoto e a configurações de redeirección.",
|
||||
"settings.remoteInstances.page.description": "Conecte-se a outra máquina por SSH e abra o OpenChamber lá.",
|
||||
"settings.remoteInstances.page.empty.selectInstance": "Selecione uma instância para ver e editar suas configuraciones.",
|
||||
"settings.remoteInstances.page.empty.noExtraForwards": "Não há redeirecciones adicionales de porta configuradas.",
|
||||
"settings.remoteInstances.page.section.actions": "Ações",
|
||||
"settings.remoteInstances.page.section.actionsDescription": "Conectar, reconectar, inspecionar logs ou excluir esta instância.",
|
||||
"settings.remoteInstances.page.section.remoteServer": "Servidor remoto",
|
||||
"settings.remoteInstances.page.section.remoteServerDescription": "Como o OpenChamber é gerenciado e iniciado no host remoto.",
|
||||
"settings.remoteInstances.page.section.mainTunnel": "Túnel principal",
|
||||
"settings.remoteInstances.page.section.mainTunnelDescription": "Ponto de conexão local principal para esta instância remota.",
|
||||
"settings.remoteInstances.page.section.actionsDescription": "Conecte, reconecte, veja logs ou remova esta conexão.",
|
||||
"settings.remoteInstances.page.section.remoteServer": "OpenChamber na máquina remota",
|
||||
"settings.remoteInstances.page.section.remoteServerDescription": "Escolha como o OpenChamber deve rodar depois que o SSH conectar.",
|
||||
"settings.remoteInstances.page.section.mainTunnel": "Acesso local",
|
||||
"settings.remoteInstances.page.section.mainTunnelDescription": "Escolha o endereço local usado para abrir este servidor OpenChamber remoto.",
|
||||
"settings.remoteInstances.page.section.authentication": "Autenticação",
|
||||
"settings.remoteInstances.page.section.authenticationDescription": "Credenciais opcionais para SSH e para a interface de usuário do OpenChamber remoto.",
|
||||
"settings.remoteInstances.page.section.portForwards": "Redeirecciones de porta",
|
||||
"settings.remoteInstances.page.section.portForwardsDescription": "Redirecionamentos SSH adicionais além do túnel principal.",
|
||||
"settings.remoteInstances.page.section.portForwardsDescription": "Portas extras opcionais para disponibilizar por esta conexão SSH.",
|
||||
"settings.remoteInstances.page.field.sshCommand": "Comando SSH",
|
||||
"settings.remoteInstances.page.field.sshCommandPlaceholder": "ssh user@host",
|
||||
"settings.remoteInstances.page.field.nickname": "Apodo",
|
||||
"settings.remoteInstances.page.field.nicknamePlaceholder": "Mi host remoto",
|
||||
"settings.remoteInstances.page.field.nicknamePlaceholder": "Notebook do trabalho",
|
||||
"settings.remoteInstances.page.field.connectionTimeoutSeconds": "Tempo limite de conexão (segundos)",
|
||||
"settings.remoteInstances.page.field.installMethod": "Método de instalação",
|
||||
"settings.remoteInstances.page.field.installMethodHint": "Cómo se instala OpenChamber quando se executa em modo gerenciado.",
|
||||
"settings.remoteInstances.page.field.installMethodHint": "Como o OpenChamber deve ser colocado na máquina remota quando este app o inicia para você.",
|
||||
"settings.remoteInstances.page.field.selectInstallMethodPlaceholder": "Selecionar método de instalação",
|
||||
"settings.remoteInstances.page.field.installMethodDownloadRelease": "Baixar versão",
|
||||
"settings.remoteInstances.page.field.installMethodUploadBundle": "Enviar paquete",
|
||||
@@ -973,14 +1004,14 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.field.sshPasswordPlaceholder": "Introducir senha SSH",
|
||||
"settings.remoteInstances.page.field.uiPasswordOptional": "Senha da interface de usuário (opcional)",
|
||||
"settings.remoteInstances.page.field.uiPasswordPlaceholder": "Digite a senha da interface de usuário",
|
||||
"settings.remoteInstances.page.field.forwardTypeHint": "Escolha redeirección local (-L), remota (-R) o dinámica (-D).",
|
||||
"settings.remoteInstances.page.field.forwardTypeHint": "Escolha que tipo de acesso a portas esta conexão SSH deve oferecer.",
|
||||
"settings.remoteInstances.page.field.typePlaceholder": "Tipo",
|
||||
"settings.remoteInstances.page.forwardType.local": "Local (-L)",
|
||||
"settings.remoteInstances.page.forwardType.remote": "Remota (-R)",
|
||||
"settings.remoteInstances.page.forwardType.dynamic": "Dinámica (-D)",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.local": "Redeirige o tráfico local a um destino remoto.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.remote": "Expón um endpoint remoto e redeirígelo de vueltà sua máquina local.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.dynamic": "Expón um proxy SOCKS5 local sobre SSH.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.local": "Abre uma porta local que se conecta a algo na máquina remota.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.remote": "Abre uma porta na máquina remota que se conecta de volta ao seu computador.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.dynamic": "Abre um proxy SOCKS local pela conexão SSH.",
|
||||
"settings.remoteInstances.page.actions.create": "Criar",
|
||||
"settings.remoteInstances.page.actions.cancel": "Cancelar",
|
||||
"settings.remoteInstances.page.actions.connecting": "Conectando...",
|
||||
@@ -991,7 +1022,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.actions.enableForwardAria": "Ativar redeirección",
|
||||
"settings.remoteInstances.page.actions.openLocal": "Abrir local",
|
||||
"settings.remoteInstances.page.actions.addForward": "Adicionar redeirección",
|
||||
"settings.remoteInstances.page.import.sectionTitle": "Importar de configurações SSH",
|
||||
"settings.remoteInstances.page.import.sectionTitle": "Hosts SSH salvos",
|
||||
"settings.remoteInstances.page.import.loading": "Carregando hosts SSH...",
|
||||
"settings.remoteInstances.page.import.noneFound": "Nenhum host SSH encontrado.",
|
||||
"settings.remoteInstances.page.import.noneAvailable": "Não há hosts SSH disponíveis para importar.",
|
||||
@@ -1006,7 +1037,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.phase.resolvingConfiguration": "Resolviendo configurações",
|
||||
"settings.remoteInstances.page.phase.checkingAuth": "Verificando autenticação",
|
||||
"settings.remoteInstances.page.phase.establishingSsh": "Estableciendo conexão SSH",
|
||||
"settings.remoteInstances.page.phase.probingRemote": "Explorando host remoto",
|
||||
"settings.remoteInstances.page.phase.probingRemote": "Verificando máquina remota",
|
||||
"settings.remoteInstances.page.phase.installingOpenChamber": "Instalando OpenChamber",
|
||||
"settings.remoteInstances.page.phase.updatingOpenChamber": "Atualizando OpenChamber",
|
||||
"settings.remoteInstances.page.phase.detectingServer": "Detectando servidor",
|
||||
@@ -1471,6 +1502,9 @@ export const settingsDict = {
|
||||
"settings.voice.page.preview.voiceLine": "Olá! Sou {voiceName}. É assim que minha voz soa.",
|
||||
"settings.voice.page.preview.customServerLine": "Olá! Esta é uma prévia do servidor TTS personalizado.",
|
||||
"settings.openchamber.visual.section.colorMode": "Modo de cor",
|
||||
"settings.openchamber.visual.section.mobileLayout": "Layout móvel",
|
||||
"settings.openchamber.visual.option.mobileLayout.default": "Padrão",
|
||||
"settings.openchamber.visual.option.mobileLayout.new": "Novo",
|
||||
"settings.openchamber.visual.section.localization": "Localização",
|
||||
"settings.openchamber.visual.section.spacingAndLayout": "Espaçamento e layout",
|
||||
"settings.openchamber.visual.section.navigation": "Navegação",
|
||||
|
||||
@@ -27,6 +27,94 @@ export const dict: Record<I18nKey, string> = {
|
||||
"layout.mainTab.files": "Arquivos",
|
||||
"layout.mainTab.terminal": "Terminal",
|
||||
"layout.mainTab.context": "Contexto",
|
||||
"mobile.nav.aria": "Navegação móvel",
|
||||
"mobile.nav.changes": "Alterações",
|
||||
"mobile.nav.settings": "Configurações",
|
||||
"mobile.surface.closeAria": "Fechar",
|
||||
"mobile.header.openMenuAria": "Abrir menu",
|
||||
"mobile.menu.titleAria": "Ferramentas do espaço de trabalho",
|
||||
"mobile.menu.files": "Arquivos",
|
||||
"mobile.menu.changes": "Alterações",
|
||||
"mobile.menu.settings": "Configurações",
|
||||
"mobile.sessions.newChatCta": "Novo chat em {project}",
|
||||
"mobile.sessions.dateGroup.today": "Hoje",
|
||||
"mobile.sessions.dateGroup.yesterday": "Ontem",
|
||||
"mobile.sessions.dateGroup.thisWeek": "Início desta semana",
|
||||
"mobile.sessions.dateGroup.older": "Mais antigos",
|
||||
"mobile.sessions.section.worktrees": "Worktrees",
|
||||
"mobile.sessions.section.otherProjects": "Trocar de projeto",
|
||||
"mobile.sessions.section.projects": "Projetos",
|
||||
"mobile.sessions.empty.noProjectsTitle": "Sem projetos",
|
||||
"mobile.sessions.empty.noProjectsDescription": "Adicione um projeto para começar a conversar com seu código.",
|
||||
"mobile.sessions.empty.noSessionsTitle": "Sem sessões",
|
||||
"mobile.sessions.empty.noSessionsDescription": "Inicie seu primeiro chat para vê-lo aqui.",
|
||||
"mobile.sessions.empty.searchTitle": "Sem resultados",
|
||||
"mobile.sessions.empty.searchDescription": "Tente outro termo de busca.",
|
||||
"mobile.sessions.showArchived": "Mostrar arquivadas ({count})",
|
||||
"mobile.sessions.hideArchived": "Ocultar arquivadas",
|
||||
"mobile.sessions.activeWorktreeAria": "Worktree ativa",
|
||||
"mobile.sessions.activeProjectAria": "Projeto ativo",
|
||||
"mobile.sessions.startNewChat": "Iniciar novo chat",
|
||||
"mobile.sessions.newChat": "Novo chat",
|
||||
"mobile.sessions.editOrder": "Reordenar projetos",
|
||||
"mobile.sessions.doneEditing": "Concluído",
|
||||
"mobile.sessions.editOrderHint": "Arraste a alça ou use as setas para reordenar os projetos. Toque na marca para finalizar.",
|
||||
"mobile.sessions.dragHandleAria": "Arrastar {label} para reordenar",
|
||||
"mobile.sessions.moveUpAria": "Mover {label} para cima",
|
||||
"mobile.sessions.moveDownAria": "Mover {label} para baixo",
|
||||
"mobile.sessions.removeProjectAria": "Remover {label}",
|
||||
"mobile.sessions.cancelRemoveProjectAria": "Cancelar remoção de {label}",
|
||||
"mobile.sessions.confirmRemoveProject": "Excluir",
|
||||
"mobile.sessions.confirmRemoveProjectAria": "Confirmar remoção de {label}",
|
||||
"mobile.sessions.toast.projectRemoved": "Removido {label}",
|
||||
"mobile.sessions.showMore": "Mostrar mais {count}",
|
||||
"mobile.sessions.search.section.sessions": "Sessões",
|
||||
"mobile.sessions.search.section.archived": "Arquivadas",
|
||||
"mobile.sessions.search.section.projects": "Projetos",
|
||||
"mobile.sessions.clearSearchAria": "Limpar busca",
|
||||
"mobile.header.noProject": "Selecione um projeto",
|
||||
"mobile.header.activeSession": "Sessão ativa",
|
||||
"mobile.header.noSession": "Nenhuma sessão ativa",
|
||||
"mobile.sessions.openSheetAria": "Abrir sessões e projetos",
|
||||
"mobile.sessions.closeSheetAria": "Fechar sessões e projetos",
|
||||
"mobile.sessions.sheet.title": "Sessões",
|
||||
"mobile.sessions.sheet.description": "Alterne projetos, abra sessões ou inicie um novo chat.",
|
||||
"mobile.sessions.search.placeholder": "Pesquisar sessões",
|
||||
"mobile.sessions.empty": "Nenhuma sessão encontrada.",
|
||||
"mobile.sessions.unassignedProject": "Outras sessões",
|
||||
"mobile.sessions.newSessionAria": "Iniciar uma nova sessão neste projeto",
|
||||
"mobile.sessions.untitled": "Sessão sem título",
|
||||
"mobile.sessions.project.sessionsSingle": "1 sessão",
|
||||
"mobile.sessions.project.sessionsPlural": "{count} sessões",
|
||||
"mobile.files.refreshAria": "Atualizar arquivos",
|
||||
"mobile.files.backToParentAria": "Voltar para {name}",
|
||||
"mobile.files.rootDirectory": "Arquivos do projeto",
|
||||
"mobile.files.search.placeholder": "Buscar arquivos",
|
||||
"mobile.files.search.empty": "Nenhum arquivo encontrado.",
|
||||
"mobile.files.parentDirectory": "Diretório pai",
|
||||
"mobile.files.empty.noDirectory": "Selecione um projeto para navegar pelos arquivos.",
|
||||
"mobile.files.empty.directory": "Este diretório está vazio.",
|
||||
"mobile.files.error.listFailed": "Falha ao carregar arquivos",
|
||||
"mobile.files.error.readUnavailable": "A prévia do arquivo não está disponível neste runtime.",
|
||||
"mobile.files.file.truncated": "Prévia do arquivo truncada para mobile.",
|
||||
"mobile.files.copyPathAria": "Copiar caminho do arquivo",
|
||||
"mobile.files.copyContent": "Copiar conteúdo",
|
||||
"mobile.files.copyContentAria": "Copiar conteúdo do arquivo",
|
||||
"mobile.files.toast.pathCopied": "Caminho copiado",
|
||||
"mobile.files.toast.contentCopied": "Conteúdo copiado",
|
||||
"mobile.files.toast.copyFailed": "Falha ao copiar",
|
||||
"mobile.changes.placeholder.title": "Alterações",
|
||||
"mobile.changes.placeholder.description": "Revisão da árvore de trabalho, sync e commits ficarão aqui.",
|
||||
"mobile.changes.branchLabel": "Branch: {branch}",
|
||||
"mobile.changes.noRemote": "Nenhum remote disponível",
|
||||
"mobile.changes.cleanDescription": "Não há arquivos alterados neste workspace.",
|
||||
"mobile.changes.diffDetail.subtitle": "Diff somente leitura",
|
||||
"mobile.changes.diffDetail.loadFailed": "Falha ao carregar diff",
|
||||
"mobile.changes.diffDetail.missingTitle": "O arquivo não está mais alterado",
|
||||
"mobile.changes.diffDetail.missingDescription": "Volte para Alterações e atualize a lista.",
|
||||
"mobile.changes.diffDetail.imageUnavailable": "Diffs de imagem ainda não estão disponíveis nas Alterações móveis.",
|
||||
"mobile.settings.placeholder.title": "Configurações",
|
||||
"mobile.settings.placeholder.description": "Configurações móveis de conexão e aplicativo ficarão aqui.",
|
||||
"layout.rightSidebar.git": "Git",
|
||||
"layout.rightSidebar.files": "Arquivos",
|
||||
"layout.rightSidebar.context": "Contexto",
|
||||
@@ -1125,6 +1213,12 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.services.refreshRateLimitsAria": "Atualizar limites de taxa",
|
||||
"header.services.noRateLimits": "Não há limites de taxa disponíveis.",
|
||||
"header.services.noRateLimitsReported": "Nenhum limite de taxa foi informado.",
|
||||
"header.services.remoteUpdate.title": "Atualização da instância remota",
|
||||
"header.services.remoteUpdate.checking": "Procurando atualizações...",
|
||||
"header.services.remoteUpdate.upToDate": "Esta instância está atualizada.",
|
||||
"header.services.remoteUpdate.available": "A versão {version} está disponível para esta instância.",
|
||||
"header.services.remoteUpdate.error": "Não foi possível verificar atualizações da instância remota",
|
||||
"header.services.remoteUpdate.actions.open": "Atualizar",
|
||||
"header.services.used": "Usado",
|
||||
"header.services.remaining": "Restante",
|
||||
"header.services.modelFamily.other": "Outro",
|
||||
@@ -2035,6 +2129,9 @@ export const dict: Record<I18nKey, string> = {
|
||||
"desktopHostSwitcher.header.currentDefaultColon": "Padrão atual:",
|
||||
"desktopHostSwitcher.status.connected": "Conectado",
|
||||
"desktopHostSwitcher.status.authRequired": "Autenticação obrigatória",
|
||||
"desktopHostSwitcher.status.checking": "Verificando",
|
||||
"desktopHostSwitcher.status.updateRecommended": "Atualização recomendada",
|
||||
"desktopHostSwitcher.status.incompatible": "Incompatível",
|
||||
"desktopHostSwitcher.status.wrongService": "Serviço incorreto",
|
||||
"desktopHostSwitcher.status.unreachable": "Inacessível",
|
||||
"desktopHostSwitcher.status.unknown": "Desconhecido",
|
||||
@@ -2221,6 +2318,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
"onboarding.remoteConnection.actions.chooseDifferentServer": "Escolher outro servidor",
|
||||
"onboarding.remoteConnection.actions.useLocalInstead": "Usar Local no lugar",
|
||||
"onboarding.remoteConnection.probe.authMessage": "O servidor exige autenticação. Você ainda pode se conectar, mas talvez precise fornecer credenciais.",
|
||||
"onboarding.remoteConnection.probe.updateRecommendedMessage": "Esta instância está executando uma versão diferente do OpenChamber. Você pode se conectar, mas atualize os dois apps se algo não funcionar.",
|
||||
"onboarding.remoteConnection.probe.incompatibleMessage": "O servidor está executando OpenChamber, mas não é compatível com esta versão do app. Atualize o OpenChamber no servidor e tente novamente.",
|
||||
"onboarding.remoteConnection.probe.wrongServiceMessage": "O servidor respondeu, mas não está executando OpenChamber. Verifique se o endereço aponta para um servidor OpenChamber.",
|
||||
"onboarding.remoteConnection.probe.unreachableMessage": "O servidor não está disponível. Revise sua conexão de rede e verifique o endereço do servidor.",
|
||||
"onboarding.desktopRecovery.localUnavailable.title": "OpenCode Local não disponível",
|
||||
@@ -2234,6 +2333,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
"onboarding.desktopRecovery.remoteUnreachable.retry": "Tentar novamente conexão",
|
||||
"onboarding.desktopRecovery.incompatibleServer.title": "Servidor incompatível",
|
||||
"onboarding.desktopRecovery.incompatibleServer.description": "O servidor em \"{host}\" não está executando OpenChamber. Verifique se o endereço aponta para um servidor OpenChamber.",
|
||||
"onboarding.desktopRecovery.remoteIncompatible.title": "Atualização do servidor necessária",
|
||||
"onboarding.desktopRecovery.remoteIncompatible.description": "O servidor OpenChamber em \"{host}\" não é compatível com esta versão do app. Atualize o OpenChamber no servidor e tente novamente.",
|
||||
"onboarding.desktopRecovery.common.useLocal": "Usar Local",
|
||||
"onboarding.desktopRecovery.common.useRemote": "Usar remoto",
|
||||
"onboarding.desktopRecovery.actions.retrying": "Retentendo…",
|
||||
|
||||
@@ -198,19 +198,50 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.sidebar.item.sessionFusion": "Fusion",
|
||||
"settings.remoteInstances.sidebar.title": "Віддалені інстанси",
|
||||
"settings.remoteInstances.sidebar.total": "Усього {count}",
|
||||
"settings.remoteInstances.sidebar.newSshInstanceName": "Новий інстанс SSH",
|
||||
"settings.remoteInstances.sidebar.actions.addSshInstance": "Додати інстанс SSH",
|
||||
"settings.remoteInstances.sidebar.newSshInstanceName": "Нове SSH-підключення",
|
||||
"settings.remoteInstances.sidebar.actions.addSshInstance": "Додати SSH-підключення",
|
||||
"settings.remoteInstances.sidebar.actions.connect": "Підключитися",
|
||||
"settings.remoteInstances.sidebar.actions.disconnect": "Відключити",
|
||||
"settings.remoteInstances.sidebar.actions.retry": "Повторити спробу",
|
||||
"settings.remoteInstances.sidebar.actions.remove": "Видалити",
|
||||
"settings.remoteInstances.sidebar.confirm.localPortInUseRetry": "Локальний порт уже використовується. Вибрати випадковий вільний локальний порт і повторити спробу?",
|
||||
"settings.remoteInstances.sidebar.toast.createFailed": "Не вдалося створити інстанс SSH",
|
||||
"settings.remoteInstances.sidebar.toast.createFailed": "Не вдалося створити SSH-підключення",
|
||||
"settings.remoteInstances.sidebar.toast.retriedWithRandomPort": "Повторна спроба з випадковим локальним портом",
|
||||
"settings.remoteInstances.sidebar.toast.connectFailed": "Не вдалося підключити інстанс",
|
||||
"settings.remoteInstances.sidebar.toast.disconnectFailed": "Не вдалося від’єднати інстанс",
|
||||
"settings.remoteInstances.sidebar.toast.retryFailed": "Не вдалося повторити підключення",
|
||||
"settings.remoteInstances.sidebar.toast.removeFailed": "Не вдалося видалити інстанс",
|
||||
"settings.remoteInstances.direct.sidebarTitle": "Посилання на сервери",
|
||||
"settings.remoteInstances.direct.sidebarDescription": "Підключення через посилання або токен",
|
||||
"settings.remoteInstances.direct.title": "Інші сервери OpenChamber",
|
||||
"settings.remoteInstances.direct.description": "Додайте інший сервер OpenChamber за URL. Використовуйте це, коли сервер уже запущений і у вас є токен підключення.",
|
||||
"settings.remoteInstances.direct.field.labelPlaceholder": "Назва (необов’язково)",
|
||||
"settings.remoteInstances.direct.field.urlPlaceholder": "https://host:port",
|
||||
"settings.remoteInstances.direct.field.tokenPlaceholder": "Токен підключення (необов’язково для довірених локальних серверів)",
|
||||
"settings.remoteInstances.direct.note": "Токени підключення зберігаються на цьому пристрої й використовуються лише коли цей застосунок підключається до відповідного сервера.",
|
||||
"settings.remoteInstances.direct.actions.add": "Додати сервер",
|
||||
"settings.remoteInstances.direct.import.description": "Вставте посилання для підключення з іншого сервера OpenChamber.",
|
||||
"settings.remoteInstances.direct.import.placeholder": "openchamber://connect?...",
|
||||
"settings.remoteInstances.direct.import.action": "Імпортувати посилання",
|
||||
"settings.remoteInstances.direct.error.invalidConnectLink": "Недійсне посилання підключення OpenChamber.",
|
||||
"settings.remoteInstances.direct.state.loading": "Завантаження серверів...",
|
||||
"settings.remoteInstances.direct.state.empty": "Інших серверів ще не додано.",
|
||||
"settings.remoteInstances.clientAuth.title": "Підключення до цього сервера",
|
||||
"settings.remoteInstances.clientAuth.description": "Створіть безпечне посилання або токен, щоб OpenChamber Desktop міг підключитися до цього сервера.",
|
||||
"settings.remoteInstances.clientAuth.field.labelPlaceholder": "Назва пристрою (необов’язково)",
|
||||
"settings.remoteInstances.clientAuth.actions.create": "Створити токен",
|
||||
"settings.remoteInstances.clientAuth.actions.pair": "Створити посилання",
|
||||
"settings.remoteInstances.clientAuth.actions.revoke": "Відкликати",
|
||||
"settings.remoteInstances.clientAuth.actions.clearRevoked": "Очистити відкликані",
|
||||
"settings.remoteInstances.clientAuth.qrAlt": "QR-код підключення OpenChamber",
|
||||
"settings.remoteInstances.clientAuth.pairingUrl": "Посилання для підключення",
|
||||
"settings.remoteInstances.clientAuth.createdToken": "Скопіюйте цей токен зараз. З міркувань безпеки він більше не показуватиметься.",
|
||||
"settings.remoteInstances.clientAuth.state.loading": "Завантаження токенів...",
|
||||
"settings.remoteInstances.clientAuth.state.empty": "Жоден пристрій ще не підключено.",
|
||||
"settings.remoteInstances.clientAuth.state.revoked": "Відкликано",
|
||||
"settings.remoteInstances.clientAuth.state.thisDevice": "Цей пристрій",
|
||||
"settings.remoteInstances.clientAuth.lastUsed": "Останнє використання {date}",
|
||||
"settings.remoteInstances.clientAuth.neverUsed": "Ще не використовувався",
|
||||
"settings.remoteInstances.sidebar.phase.ready": "Готово",
|
||||
"settings.remoteInstances.sidebar.phase.error": "Помилка",
|
||||
"settings.remoteInstances.sidebar.phase.reconnect": "Повторне підключення",
|
||||
@@ -221,20 +252,20 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.sidebar.phase.connecting": "Підключення",
|
||||
"settings.remoteInstances.sidebar.phase.idle": "Очікує",
|
||||
"settings.remoteInstances.page.section.instance": "Інстанс",
|
||||
"settings.remoteInstances.page.section.instanceDescription": "Основні налаштування SSH.",
|
||||
"settings.remoteInstances.page.section.instanceDescription": "Виберіть SSH-команду й назву для цього підключення.",
|
||||
"settings.remoteInstances.page.field.mode": "Режим",
|
||||
"settings.remoteInstances.page.field.modeHint": "Керований режим встановлює/оновлює OpenChamber і запускає його віддалено. Зовнішній режим очікує, що сервер уже запущено.",
|
||||
"settings.remoteInstances.page.field.modeHint": "Виберіть, чи OpenChamber має запустити сервер для вас, чи підключитися до вже запущеного.",
|
||||
"settings.remoteInstances.page.field.modePlaceholder": "Виберіть режим",
|
||||
"settings.remoteInstances.page.field.modeManaged": "Керований (автоматичний запуск)",
|
||||
"settings.remoteInstances.page.field.modeExternal": "Зовнішній (вже працює)",
|
||||
"settings.remoteInstances.page.field.modeManaged": "Запустити для мене",
|
||||
"settings.remoteInstances.page.field.modeExternal": "Уже запущено",
|
||||
"settings.remoteInstances.page.field.preferredRemotePort": "Бажаний віддалений порт",
|
||||
"settings.remoteInstances.page.field.preferredRemotePortHint": "Порт OpenChamber на віддаленому хості. Залиште порожнім для автоматичного вибору під час запуску.",
|
||||
"settings.remoteInstances.page.field.preferredRemotePortHint": "Порт на віддаленій машині. Залиште порожнім, щоб вибрати автоматично.",
|
||||
"settings.remoteInstances.page.field.keepServerRunning": "Залишати сервер запущеним",
|
||||
"settings.remoteInstances.page.field.keepServerRunningHint": "Якщо ввімкнено, демон OpenChamber продовжує працювати віддалено після відключення.",
|
||||
"settings.remoteInstances.page.field.keepServerRunningHint": "Залишати OpenChamber запущеним на віддаленій машині після відключення.",
|
||||
"settings.remoteInstances.page.field.bindHost": "Прив’язати хост",
|
||||
"settings.remoteInstances.page.field.bindHostHint": "Мережевий інтерфейс для основної локальної URL-адреси. Використовуйте 127.0.0.1/localhost лише для локального доступу.",
|
||||
"settings.remoteInstances.page.field.bindHostHint": "Де має слухати локальне підключення. Використовуйте 127.0.0.1 або localhost, якщо вам не потрібен доступ з локальної мережі.",
|
||||
"settings.remoteInstances.page.field.preferredLocalPort": "Бажаний локальний порт",
|
||||
"settings.remoteInstances.page.field.preferredLocalPortHint": "Бажаний локальний порт для головного тунелю OpenChamber. Залиште порожнім для автоматичного вибору.",
|
||||
"settings.remoteInstances.page.field.preferredLocalPortHint": "Локальний порт для цього підключення. Залиште порожнім, щоб вибрати автоматично.",
|
||||
"settings.remoteInstances.page.field.forwardType": "Тип переадресації",
|
||||
"settings.remoteInstances.page.field.localHostPlaceholder": "127.0.0.1",
|
||||
"settings.remoteInstances.page.field.remoteHostPlaceholder": "127.0.0.1",
|
||||
@@ -243,7 +274,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.preview.localSocks5": "(локальний SOCKS5)",
|
||||
"settings.remoteInstances.page.preview.local": "(локальний)",
|
||||
"settings.remoteInstances.page.preview.remote": "(віддалений)",
|
||||
"settings.remoteInstances.page.toast.openLocalEndpointFailed": "Не вдалося відкрити локальну кінцеву точку",
|
||||
"settings.remoteInstances.page.toast.openLocalEndpointFailed": "Не вдалося відкрити локальну адресу",
|
||||
"settings.remoteInstances.page.toast.localUrlCopied": "Локальний URL скопійовано",
|
||||
"settings.remoteInstances.page.actions.copyLocalUrl": "Скопіювати локальний URL",
|
||||
"settings.remoteInstances.page.actions.open": "Відкрити",
|
||||
@@ -945,26 +976,26 @@ export const settingsDict = {
|
||||
"settings.usage.pace.waitSeparator": " · Зачекайте ",
|
||||
"settings.usage.pace.predictionLabel": "Прогноз: ",
|
||||
"settings.remoteInstances.page.title": "Віддалений інстанс",
|
||||
"settings.remoteInstances.page.description": "Налаштувати підключення SSH, віддалений сервер і параметри пересилання.",
|
||||
"settings.remoteInstances.page.description": "Підключіться до іншої машини через SSH і відкрийте там OpenChamber.",
|
||||
"settings.remoteInstances.page.empty.selectInstance": "Виберіть інстанс, щоб переглянути та змінити його налаштування.",
|
||||
"settings.remoteInstances.page.empty.noExtraForwards": "Не налаштовано додаткові переадресації портів.",
|
||||
"settings.remoteInstances.page.section.actions": "Дії",
|
||||
"settings.remoteInstances.page.section.actionsDescription": "Підключіться, перепідключіться, перегляньте журнали або видаліть цей інстанс.",
|
||||
"settings.remoteInstances.page.section.remoteServer": "Віддалений сервер",
|
||||
"settings.remoteInstances.page.section.remoteServerDescription": "Як OpenChamber керується та запускається на віддаленому хості.",
|
||||
"settings.remoteInstances.page.section.mainTunnel": "Головний тунель",
|
||||
"settings.remoteInstances.page.section.mainTunnelDescription": "Основна локальна кінцева точка для цього віддаленого інстанса.",
|
||||
"settings.remoteInstances.page.section.actionsDescription": "Підключіться, перепідключіться, перегляньте журнали або видаліть це підключення.",
|
||||
"settings.remoteInstances.page.section.remoteServer": "OpenChamber на віддаленій машині",
|
||||
"settings.remoteInstances.page.section.remoteServerDescription": "Виберіть, як OpenChamber має працювати після SSH-підключення.",
|
||||
"settings.remoteInstances.page.section.mainTunnel": "Локальний доступ",
|
||||
"settings.remoteInstances.page.section.mainTunnelDescription": "Виберіть локальну адресу, через яку відкриватиметься цей віддалений сервер OpenChamber.",
|
||||
"settings.remoteInstances.page.section.authentication": "Аутентифікація",
|
||||
"settings.remoteInstances.page.section.authenticationDescription": "Додаткові облікові дані для SSH та віддаленого інтерфейсу користувача OpenChamber.",
|
||||
"settings.remoteInstances.page.section.portForwards": "Перенаправлення портів",
|
||||
"settings.remoteInstances.page.section.portForwardsDescription": "Додаткове SSH-переадресування поза основним тунелем.",
|
||||
"settings.remoteInstances.page.section.portForwardsDescription": "Додаткові порти, які можна зробити доступними через це SSH-підключення.",
|
||||
"settings.remoteInstances.page.field.sshCommand": "Команда SSH",
|
||||
"settings.remoteInstances.page.field.sshCommandPlaceholder": "ssh користувач@хост",
|
||||
"settings.remoteInstances.page.field.nickname": "Назва",
|
||||
"settings.remoteInstances.page.field.nicknamePlaceholder": "Мій віддалений хост",
|
||||
"settings.remoteInstances.page.field.nicknamePlaceholder": "Робочий ноутбук",
|
||||
"settings.remoteInstances.page.field.connectionTimeoutSeconds": "Тайм-аут підключення (секунди)",
|
||||
"settings.remoteInstances.page.field.installMethod": "Спосіб встановлення",
|
||||
"settings.remoteInstances.page.field.installMethodHint": "Як інсталюється OpenChamber під час роботи в керованому режимі.",
|
||||
"settings.remoteInstances.page.field.installMethodHint": "Як розмістити OpenChamber на віддаленій машині, коли цей застосунок запускає його для вас.",
|
||||
"settings.remoteInstances.page.field.selectInstallMethodPlaceholder": "Вибрати метод встановлення",
|
||||
"settings.remoteInstances.page.field.installMethodDownloadRelease": "Завантажити випуск",
|
||||
"settings.remoteInstances.page.field.installMethodUploadBundle": "Завантажити пакет",
|
||||
@@ -973,14 +1004,14 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.field.sshPasswordPlaceholder": "Введіть пароль SSH",
|
||||
"settings.remoteInstances.page.field.uiPasswordOptional": "Пароль інтерфейсу користувача (необов'язково)",
|
||||
"settings.remoteInstances.page.field.uiPasswordPlaceholder": "Введіть пароль інтерфейсу",
|
||||
"settings.remoteInstances.page.field.forwardTypeHint": "Виберіть локальне (-L), віддалене (-R) або динамічне (-D) переадресування.",
|
||||
"settings.remoteInstances.page.field.forwardTypeHint": "Виберіть, який доступ до портів має надавати це SSH-підключення.",
|
||||
"settings.remoteInstances.page.field.typePlaceholder": "Тип",
|
||||
"settings.remoteInstances.page.forwardType.local": "Локальний (-L)",
|
||||
"settings.remoteInstances.page.forwardType.remote": "Віддалений (-R)",
|
||||
"settings.remoteInstances.page.forwardType.dynamic": "Динамічний (-D)",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.local": "Перенаправляти локальний трафік до віддаленого пункту призначення.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.remote": "Відкрити віддалену кінцеву точку та переслати її назад на локальну машину.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.dynamic": "Відкрити локальний SOCKS5-проксі через SSH.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.local": "Відкрити локальний порт, який підключається до сервісу на віддаленій машині.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.remote": "Відкрити порт на віддаленій машині, який підключається назад до вашого комп’ютера.",
|
||||
"settings.remoteInstances.page.forwardTypeDescription.dynamic": "Відкрити локальний SOCKS-проксі через SSH-підключення.",
|
||||
"settings.remoteInstances.page.actions.create": "Створити",
|
||||
"settings.remoteInstances.page.actions.cancel": "Скасувати",
|
||||
"settings.remoteInstances.page.actions.connecting": "Підключення...",
|
||||
@@ -991,7 +1022,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.actions.enableForwardAria": "Увімкнути пересилання",
|
||||
"settings.remoteInstances.page.actions.openLocal": "Відкрити локально",
|
||||
"settings.remoteInstances.page.actions.addForward": "Додати переадресацію",
|
||||
"settings.remoteInstances.page.import.sectionTitle": "Імпортувати з конфігурації SSH",
|
||||
"settings.remoteInstances.page.import.sectionTitle": "Збережені SSH-хости",
|
||||
"settings.remoteInstances.page.import.loading": "Завантаження хостів SSH...",
|
||||
"settings.remoteInstances.page.import.noneFound": "Не знайдено хостів SSH.",
|
||||
"settings.remoteInstances.page.import.noneAvailable": "Немає доступних для імпорту хостів SSH.",
|
||||
@@ -1006,7 +1037,7 @@ export const settingsDict = {
|
||||
"settings.remoteInstances.page.phase.resolvingConfiguration": "Визначення конфігурації",
|
||||
"settings.remoteInstances.page.phase.checkingAuth": "Перевірка автентифікації",
|
||||
"settings.remoteInstances.page.phase.establishingSsh": "Встановлення підключення SSH",
|
||||
"settings.remoteInstances.page.phase.probingRemote": "Перевірка віддаленого хоста",
|
||||
"settings.remoteInstances.page.phase.probingRemote": "Перевірка віддаленої машини",
|
||||
"settings.remoteInstances.page.phase.installingOpenChamber": "Встановлення OpenChamber",
|
||||
"settings.remoteInstances.page.phase.updatingOpenChamber": "Оновлення OpenChamber",
|
||||
"settings.remoteInstances.page.phase.detectingServer": "Виявлення сервера",
|
||||
@@ -1471,6 +1502,9 @@ export const settingsDict = {
|
||||
"settings.voice.page.preview.voiceLine": "Привіт! Я {voiceName}. Ось як я звучу.",
|
||||
"settings.voice.page.preview.customServerLine": "Привіт! Це попередній перегляд спеціального сервера TTS.",
|
||||
"settings.openchamber.visual.section.colorMode": "Режим теми",
|
||||
"settings.openchamber.visual.section.mobileLayout": "Мобільний макет",
|
||||
"settings.openchamber.visual.option.mobileLayout.default": "Стандартний",
|
||||
"settings.openchamber.visual.option.mobileLayout.new": "Новий",
|
||||
"settings.openchamber.visual.section.localization": "Локалізація",
|
||||
"settings.openchamber.visual.section.spacingAndLayout": "Відступи й компонування",
|
||||
"settings.openchamber.visual.section.navigation": "Навігація",
|
||||
|
||||
@@ -27,6 +27,94 @@ export const dict: Record<I18nKey, string> = {
|
||||
"layout.mainTab.files": "Файли",
|
||||
"layout.mainTab.terminal": "Термінал",
|
||||
"layout.mainTab.context": "Контекст",
|
||||
"mobile.nav.aria": "Мобільна навігація",
|
||||
"mobile.nav.changes": "Зміни",
|
||||
"mobile.nav.settings": "Налаштування",
|
||||
"mobile.surface.closeAria": "Закрити",
|
||||
"mobile.header.openMenuAria": "Відкрити меню",
|
||||
"mobile.menu.titleAria": "Інструменти робочого простору",
|
||||
"mobile.menu.files": "Файли",
|
||||
"mobile.menu.changes": "Зміни",
|
||||
"mobile.menu.settings": "Налаштування",
|
||||
"mobile.sessions.newChatCta": "Новий чат у {project}",
|
||||
"mobile.sessions.dateGroup.today": "Сьогодні",
|
||||
"mobile.sessions.dateGroup.yesterday": "Вчора",
|
||||
"mobile.sessions.dateGroup.thisWeek": "Раніше цього тижня",
|
||||
"mobile.sessions.dateGroup.older": "Давніше",
|
||||
"mobile.sessions.section.worktrees": "Worktrees",
|
||||
"mobile.sessions.section.otherProjects": "Інші проєкти",
|
||||
"mobile.sessions.section.projects": "Проєкти",
|
||||
"mobile.sessions.empty.noProjectsTitle": "Ще немає проєктів",
|
||||
"mobile.sessions.empty.noProjectsDescription": "Додай проєкт, щоб почати спілкування з кодом.",
|
||||
"mobile.sessions.empty.noSessionsTitle": "Ще немає сесій",
|
||||
"mobile.sessions.empty.noSessionsDescription": "Почни перший чат, щоб побачити його тут.",
|
||||
"mobile.sessions.empty.searchTitle": "Нічого не знайдено",
|
||||
"mobile.sessions.empty.searchDescription": "Спробуй інший запит.",
|
||||
"mobile.sessions.showArchived": "Показати архівовані ({count})",
|
||||
"mobile.sessions.hideArchived": "Сховати архівовані",
|
||||
"mobile.sessions.activeWorktreeAria": "Активний worktree",
|
||||
"mobile.sessions.activeProjectAria": "Активний проєкт",
|
||||
"mobile.sessions.startNewChat": "Почати новий чат",
|
||||
"mobile.sessions.newChat": "Новий чат",
|
||||
"mobile.sessions.editOrder": "Змінити порядок проєктів",
|
||||
"mobile.sessions.doneEditing": "Готово",
|
||||
"mobile.sessions.editOrderHint": "Перетягни ручку або скористайся стрілками, щоб змінити порядок проєктів. Натисни галочку щоб завершити.",
|
||||
"mobile.sessions.dragHandleAria": "Перетягни {label}, щоб змінити порядок",
|
||||
"mobile.sessions.moveUpAria": "Перемістити {label} вгору",
|
||||
"mobile.sessions.moveDownAria": "Перемістити {label} вниз",
|
||||
"mobile.sessions.removeProjectAria": "Видалити {label}",
|
||||
"mobile.sessions.cancelRemoveProjectAria": "Скасувати видалення {label}",
|
||||
"mobile.sessions.confirmRemoveProject": "Видалити",
|
||||
"mobile.sessions.confirmRemoveProjectAria": "Підтвердити видалення {label}",
|
||||
"mobile.sessions.toast.projectRemoved": "Видалено {label}",
|
||||
"mobile.sessions.showMore": "Показати ще {count}",
|
||||
"mobile.sessions.search.section.sessions": "Сесії",
|
||||
"mobile.sessions.search.section.archived": "Архів",
|
||||
"mobile.sessions.search.section.projects": "Проєкти",
|
||||
"mobile.sessions.clearSearchAria": "Очистити пошук",
|
||||
"mobile.header.noProject": "Виберіть проєкт",
|
||||
"mobile.header.activeSession": "Активна сесія",
|
||||
"mobile.header.noSession": "Немає активної сесії",
|
||||
"mobile.sessions.openSheetAria": "Відкрити сесії та проєкти",
|
||||
"mobile.sessions.closeSheetAria": "Закрити сесії та проєкти",
|
||||
"mobile.sessions.sheet.title": "Сесії",
|
||||
"mobile.sessions.sheet.description": "Перемикайте проєкти, відкривайте сесії або починайте новий чат.",
|
||||
"mobile.sessions.search.placeholder": "Пошук сесій",
|
||||
"mobile.sessions.empty": "Сесій не знайдено.",
|
||||
"mobile.sessions.unassignedProject": "Інші сесії",
|
||||
"mobile.sessions.newSessionAria": "Почати нову сесію в цьому проєкті",
|
||||
"mobile.sessions.untitled": "Сесія без назви",
|
||||
"mobile.sessions.project.sessionsSingle": "1 сесія",
|
||||
"mobile.sessions.project.sessionsPlural": "Сесій: {count}",
|
||||
"mobile.files.refreshAria": "Оновити файли",
|
||||
"mobile.files.backToParentAria": "Назад до {name}",
|
||||
"mobile.files.rootDirectory": "Файли проєкту",
|
||||
"mobile.files.search.placeholder": "Шукати файли",
|
||||
"mobile.files.search.empty": "Файлів не знайдено.",
|
||||
"mobile.files.parentDirectory": "Батьківська тека",
|
||||
"mobile.files.empty.noDirectory": "Виберіть проєкт, щоб переглядати файли.",
|
||||
"mobile.files.empty.directory": "Ця тека порожня.",
|
||||
"mobile.files.error.listFailed": "Не вдалося завантажити файли",
|
||||
"mobile.files.error.readUnavailable": "Попередній перегляд файлу недоступний у цьому середовищі.",
|
||||
"mobile.files.file.truncated": "Попередній перегляд файлу обрізано для мобільного режиму.",
|
||||
"mobile.files.copyPathAria": "Скопіювати шлях до файлу",
|
||||
"mobile.files.copyContent": "Скопіювати вміст",
|
||||
"mobile.files.copyContentAria": "Скопіювати вміст файлу",
|
||||
"mobile.files.toast.pathCopied": "Шлях скопійовано",
|
||||
"mobile.files.toast.contentCopied": "Вміст скопійовано",
|
||||
"mobile.files.toast.copyFailed": "Не вдалося скопіювати",
|
||||
"mobile.changes.placeholder.title": "Зміни",
|
||||
"mobile.changes.placeholder.description": "Тут буде review робочого дерева, sync і commit actions.",
|
||||
"mobile.changes.branchLabel": "Гілка: {branch}",
|
||||
"mobile.changes.noRemote": "Немає доступного remote",
|
||||
"mobile.changes.cleanDescription": "У цьому workspace немає змінених файлів.",
|
||||
"mobile.changes.diffDetail.subtitle": "Read-only diff",
|
||||
"mobile.changes.diffDetail.loadFailed": "Не вдалося завантажити diff",
|
||||
"mobile.changes.diffDetail.missingTitle": "Файл більше не змінений",
|
||||
"mobile.changes.diffDetail.missingDescription": "Поверніться до Змін і оновіть список.",
|
||||
"mobile.changes.diffDetail.imageUnavailable": "Image diffs поки недоступні в мобільних Змінах.",
|
||||
"mobile.settings.placeholder.title": "Налаштування",
|
||||
"mobile.settings.placeholder.description": "Тут будуть сфокусовані мобільні налаштування підключення та апки.",
|
||||
"layout.rightSidebar.git": "Git",
|
||||
"layout.rightSidebar.files": "Файли",
|
||||
"layout.rightSidebar.context": "Контекст",
|
||||
@@ -1125,6 +1213,12 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.services.refreshRateLimitsAria": "Оновити ліміти запитів",
|
||||
"header.services.noRateLimits": "Ліміти запитів недоступні.",
|
||||
"header.services.noRateLimitsReported": "Ліміти запитів не надходять.",
|
||||
"header.services.remoteUpdate.title": "Оновлення віддаленого інстанса",
|
||||
"header.services.remoteUpdate.checking": "Шукаємо оновлення...",
|
||||
"header.services.remoteUpdate.upToDate": "Цей інстанс уже оновлений.",
|
||||
"header.services.remoteUpdate.available": "Для цього інстанса доступна версія {version}.",
|
||||
"header.services.remoteUpdate.error": "Не вдалося перевірити оновлення віддаленого інстанса",
|
||||
"header.services.remoteUpdate.actions.open": "Оновити",
|
||||
"header.services.used": "Використано",
|
||||
"header.services.remaining": "Залишилося",
|
||||
"header.services.shutdownDev": "Зупинити OpenChamber",
|
||||
@@ -2035,6 +2129,9 @@ export const dict: Record<I18nKey, string> = {
|
||||
"desktopHostSwitcher.header.currentDefaultColon": "Поточне значення за умовчанням:",
|
||||
"desktopHostSwitcher.status.connected": "Підключено",
|
||||
"desktopHostSwitcher.status.authRequired": "Потрібна авторизація",
|
||||
"desktopHostSwitcher.status.checking": "Перевірка",
|
||||
"desktopHostSwitcher.status.updateRecommended": "Рекомендовано оновити",
|
||||
"desktopHostSwitcher.status.incompatible": "Несумісний",
|
||||
"desktopHostSwitcher.status.wrongService": "Неправильний сервіс",
|
||||
"desktopHostSwitcher.status.unreachable": "Недосяжний",
|
||||
"desktopHostSwitcher.status.unknown": "Невідомий",
|
||||
@@ -2221,6 +2318,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
"onboarding.remoteConnection.actions.chooseDifferentServer": "Вибрати інший сервер",
|
||||
"onboarding.remoteConnection.actions.useLocalInstead": "Натомість використовувати Local",
|
||||
"onboarding.remoteConnection.probe.authMessage": "Сервер вимагає автентифікації. Ви все ще можете підключитися, але, можливо, знадобиться надати облікові дані.",
|
||||
"onboarding.remoteConnection.probe.updateRecommendedMessage": "Цей інстанс працює з іншою версією OpenChamber. Можна підключитися, але оновіть обидва застосунки, якщо щось не працюватиме.",
|
||||
"onboarding.remoteConnection.probe.incompatibleMessage": "Сервер працює з OpenChamber, але несумісний із цією версією застосунку. Оновіть OpenChamber на сервері та повторіть спробу.",
|
||||
"onboarding.remoteConnection.probe.wrongServiceMessage": "Сервер відповів, але не працює OpenChamber. Перевірте, чи адреса вказує на сервер OpenChamber.",
|
||||
"onboarding.remoteConnection.probe.unreachableMessage": "Сервер недоступний. Перевірте підключення до мережі та адресу сервера.",
|
||||
"onboarding.desktopRecovery.localUnavailable.title": "OpenCode Local недоступний",
|
||||
@@ -2234,6 +2333,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
"onboarding.desktopRecovery.remoteUnreachable.retry": "Повторити підключення",
|
||||
"onboarding.desktopRecovery.incompatibleServer.title": "Несумісний сервер",
|
||||
"onboarding.desktopRecovery.incompatibleServer.description": "На сервері \"{host}\" не запущено OpenChamber. Перевірте, чи адреса вказує на сервер OpenChamber.",
|
||||
"onboarding.desktopRecovery.remoteIncompatible.title": "Потрібне оновлення сервера",
|
||||
"onboarding.desktopRecovery.remoteIncompatible.description": "Сервер OpenChamber на \"{host}\" несумісний із цією версією застосунку. Оновіть OpenChamber на сервері та повторіть спробу.",
|
||||
"onboarding.desktopRecovery.common.useLocal": "Використовувати Local",
|
||||
"onboarding.desktopRecovery.common.useRemote": "Використовувати Remote",
|
||||
"onboarding.desktopRecovery.actions.retrying": "Повторна спроба…",
|
||||
|
||||
@@ -198,19 +198,50 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.sidebar.item.sessionFusion': '融合',
|
||||
'settings.remoteInstances.sidebar.title': '远程实例',
|
||||
'settings.remoteInstances.sidebar.total': '总计 {count}',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': '新建 SSH 实例',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': '添加 SSH 实例',
|
||||
'settings.remoteInstances.sidebar.newSshInstanceName': '新的 SSH 连接',
|
||||
'settings.remoteInstances.sidebar.actions.addSshInstance': '添加 SSH 连接',
|
||||
'settings.remoteInstances.sidebar.actions.connect': '连接',
|
||||
'settings.remoteInstances.sidebar.actions.disconnect': '断开连接',
|
||||
'settings.remoteInstances.sidebar.actions.retry': '重试',
|
||||
'settings.remoteInstances.sidebar.actions.remove': '移除',
|
||||
'settings.remoteInstances.sidebar.confirm.localPortInUseRetry': '本地端口已被占用。是否选择一个随机空闲本地端口并重试?',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': '创建 SSH 实例失败',
|
||||
'settings.remoteInstances.sidebar.toast.createFailed': '无法创建 SSH 连接',
|
||||
'settings.remoteInstances.sidebar.toast.retriedWithRandomPort': '已使用随机本地端口重试',
|
||||
'settings.remoteInstances.sidebar.toast.connectFailed': '连接实例失败',
|
||||
'settings.remoteInstances.sidebar.toast.disconnectFailed': '断开实例连接失败',
|
||||
'settings.remoteInstances.sidebar.toast.retryFailed': '重试连接失败',
|
||||
'settings.remoteInstances.sidebar.toast.removeFailed': '移除实例失败',
|
||||
'settings.remoteInstances.direct.sidebarTitle': '服务器链接',
|
||||
'settings.remoteInstances.direct.sidebarDescription': '使用链接或令牌连接',
|
||||
'settings.remoteInstances.direct.title': '其他 OpenChamber 服务器',
|
||||
'settings.remoteInstances.direct.description': '通过 URL 添加另一个 OpenChamber 服务器。适用于服务器已在运行且你拥有连接令牌的情况。',
|
||||
'settings.remoteInstances.direct.field.labelPlaceholder': '标签(可选)',
|
||||
'settings.remoteInstances.direct.field.urlPlaceholder': 'https://host:port',
|
||||
'settings.remoteInstances.direct.field.tokenPlaceholder': '连接令牌(受信任的本地服务器可选)',
|
||||
'settings.remoteInstances.direct.note': '连接令牌会保存在此设备上,并且只在此应用连接到该服务器时使用。',
|
||||
'settings.remoteInstances.direct.actions.add': '添加服务器',
|
||||
'settings.remoteInstances.direct.import.description': '粘贴来自另一个 OpenChamber 服务器的连接链接。',
|
||||
'settings.remoteInstances.direct.import.placeholder': 'openchamber://connect?...',
|
||||
'settings.remoteInstances.direct.import.action': '导入链接',
|
||||
'settings.remoteInstances.direct.error.invalidConnectLink': '无效的 OpenChamber 连接链接。',
|
||||
'settings.remoteInstances.direct.state.loading': '正在加载服务器...',
|
||||
'settings.remoteInstances.direct.state.empty': '尚未添加其他服务器。',
|
||||
'settings.remoteInstances.clientAuth.title': '连接到此服务器',
|
||||
'settings.remoteInstances.clientAuth.description': '创建安全链接或令牌,让 OpenChamber Desktop 可以连接到此服务器。',
|
||||
'settings.remoteInstances.clientAuth.field.labelPlaceholder': '设备名称(可选)',
|
||||
'settings.remoteInstances.clientAuth.actions.create': '创建令牌',
|
||||
'settings.remoteInstances.clientAuth.actions.pair': '创建链接',
|
||||
'settings.remoteInstances.clientAuth.actions.revoke': '撤销',
|
||||
'settings.remoteInstances.clientAuth.actions.clearRevoked': '清除已撤销',
|
||||
'settings.remoteInstances.clientAuth.qrAlt': 'OpenChamber connection QR code',
|
||||
'settings.remoteInstances.clientAuth.pairingUrl': '连接链接',
|
||||
'settings.remoteInstances.clientAuth.createdToken': '请立即复制此令牌。出于安全考虑,它不会再次显示。',
|
||||
'settings.remoteInstances.clientAuth.state.loading': '正在加载令牌...',
|
||||
'settings.remoteInstances.clientAuth.state.empty': '尚无已连接设备。',
|
||||
'settings.remoteInstances.clientAuth.state.revoked': '已撤销',
|
||||
'settings.remoteInstances.clientAuth.state.thisDevice': '此设备',
|
||||
'settings.remoteInstances.clientAuth.lastUsed': '上次使用 {date}',
|
||||
'settings.remoteInstances.clientAuth.neverUsed': '从未使用',
|
||||
'settings.remoteInstances.sidebar.phase.ready': '就绪',
|
||||
'settings.remoteInstances.sidebar.phase.error': '错误',
|
||||
'settings.remoteInstances.sidebar.phase.reconnect': '重连',
|
||||
@@ -221,20 +252,20 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.sidebar.phase.connecting': '连接中',
|
||||
'settings.remoteInstances.sidebar.phase.idle': '空闲',
|
||||
'settings.remoteInstances.page.section.instance': '实例',
|
||||
'settings.remoteInstances.page.section.instanceDescription': '核心 SSH 设置。',
|
||||
'settings.remoteInstances.page.section.instanceDescription': '为此连接选择 SSH 命令和显示名称。',
|
||||
'settings.remoteInstances.page.field.mode': '模式',
|
||||
'settings.remoteInstances.page.field.modeHint': 'Managed 模式会在远端安装/更新并启动 OpenChamber。External 模式假设它已在运行。',
|
||||
'settings.remoteInstances.page.field.modeHint': '选择是由 OpenChamber 为你启动服务器,还是连接到已在运行的服务器。',
|
||||
'settings.remoteInstances.page.field.modePlaceholder': '选择模式',
|
||||
'settings.remoteInstances.page.field.modeManaged': 'Managed(自动启动)',
|
||||
'settings.remoteInstances.page.field.modeExternal': 'External(已在运行)',
|
||||
'settings.remoteInstances.page.field.modeManaged': '帮我启动',
|
||||
'settings.remoteInstances.page.field.modeExternal': '已在运行',
|
||||
'settings.remoteInstances.page.field.preferredRemotePort': '首选远程端口',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': 'OpenChamber 在远程主机使用的端口。留空则由运行时自动选择。',
|
||||
'settings.remoteInstances.page.field.preferredRemotePortHint': '远程机器上使用的端口。留空则自动选择。',
|
||||
'settings.remoteInstances.page.field.keepServerRunning': '保持服务运行',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': '启用后,断开连接时会保留远端 OpenChamber 守护进程。',
|
||||
'settings.remoteInstances.page.field.keepServerRunningHint': '断开连接后仍让 OpenChamber 在远程机器上运行。',
|
||||
'settings.remoteInstances.page.field.bindHost': '绑定主机',
|
||||
'settings.remoteInstances.page.field.bindHostHint': '主本地访问地址使用的网络接口。使用 127.0.0.1/localhost 可仅本机访问。',
|
||||
'settings.remoteInstances.page.field.bindHostHint': '本地连接监听的地址。除非需要局域网访问,否则请使用 127.0.0.1 或 localhost。',
|
||||
'settings.remoteInstances.page.field.preferredLocalPort': '首选本地端口',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': '主 OpenChamber 隧道的首选本地端口。留空自动选择。',
|
||||
'settings.remoteInstances.page.field.preferredLocalPortHint': '为此连接打开的本地端口。留空则自动选择。',
|
||||
'settings.remoteInstances.page.field.forwardType': '转发类型',
|
||||
'settings.remoteInstances.page.field.localHostPlaceholder': '127.0.0.1',
|
||||
'settings.remoteInstances.page.field.remoteHostPlaceholder': '127.0.0.1',
|
||||
@@ -243,7 +274,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.preview.localSocks5': '(本地 SOCKS5)',
|
||||
'settings.remoteInstances.page.preview.local': '(本地)',
|
||||
'settings.remoteInstances.page.preview.remote': '(远程)',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': '打开本地端点失败',
|
||||
'settings.remoteInstances.page.toast.openLocalEndpointFailed': '无法打开本地地址',
|
||||
'settings.remoteInstances.page.toast.localUrlCopied': '本地 URL 已复制',
|
||||
'settings.remoteInstances.page.actions.copyLocalUrl': '复制本地 URL',
|
||||
'settings.remoteInstances.page.actions.open': '打开',
|
||||
@@ -945,26 +976,26 @@ export const settingsDict = {
|
||||
'settings.usage.pace.waitSeparator': ' · 等待 ',
|
||||
'settings.usage.pace.predictionLabel': '预测:',
|
||||
'settings.remoteInstances.page.title': '远程实例',
|
||||
'settings.remoteInstances.page.description': '配置 SSH 连接、远程服务和端口转发设置。',
|
||||
'settings.remoteInstances.page.description': '通过 SSH 连接到另一台机器,并在那里打开 OpenChamber。',
|
||||
'settings.remoteInstances.page.empty.selectInstance': '选择一个实例以查看和编辑其设置。',
|
||||
'settings.remoteInstances.page.empty.noExtraForwards': '尚未配置额外端口转发。',
|
||||
'settings.remoteInstances.page.section.actions': '操作',
|
||||
'settings.remoteInstances.page.section.actionsDescription': '连接、重连、查看日志或移除此实例。',
|
||||
'settings.remoteInstances.page.section.remoteServer': '远程服务',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': 'OpenChamber 在远端主机上的管理与启动方式。',
|
||||
'settings.remoteInstances.page.section.mainTunnel': '主隧道',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': '该远程实例的主本地访问端点。',
|
||||
'settings.remoteInstances.page.section.actionsDescription': '连接、重新连接、查看日志或移除此连接。',
|
||||
'settings.remoteInstances.page.section.remoteServer': '远程机器上的 OpenChamber',
|
||||
'settings.remoteInstances.page.section.remoteServerDescription': '选择 SSH 连接后 OpenChamber 的运行方式。',
|
||||
'settings.remoteInstances.page.section.mainTunnel': '本地访问',
|
||||
'settings.remoteInstances.page.section.mainTunnelDescription': '选择用于打开此远程 OpenChamber 服务器的本地地址。',
|
||||
'settings.remoteInstances.page.section.authentication': '认证',
|
||||
'settings.remoteInstances.page.section.authenticationDescription': 'SSH 和远程 OpenChamber UI 的可选凭据。',
|
||||
'settings.remoteInstances.page.section.portForwards': '端口转发',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': '除主隧道外的额外 SSH 转发。',
|
||||
'settings.remoteInstances.page.section.portForwardsDescription': '可选的额外端口,可通过此 SSH 连接访问。',
|
||||
'settings.remoteInstances.page.field.sshCommand': 'SSH 命令',
|
||||
'settings.remoteInstances.page.field.sshCommandPlaceholder': 'ssh user@host',
|
||||
'settings.remoteInstances.page.field.nickname': '昵称',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': '我的远程主机',
|
||||
'settings.remoteInstances.page.field.nicknamePlaceholder': '工作笔记本',
|
||||
'settings.remoteInstances.page.field.connectionTimeoutSeconds': '连接超时(秒)',
|
||||
'settings.remoteInstances.page.field.installMethod': '安装方式',
|
||||
'settings.remoteInstances.page.field.installMethodHint': '在 managed 模式下 OpenChamber 的安装方式。',
|
||||
'settings.remoteInstances.page.field.installMethodHint': '当此应用为你启动 OpenChamber 时,如何将它放到远程机器上。',
|
||||
'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': '选择安装方式',
|
||||
'settings.remoteInstances.page.field.installMethodDownloadRelease': '下载发布版本',
|
||||
'settings.remoteInstances.page.field.installMethodUploadBundle': '上传安装包',
|
||||
@@ -973,14 +1004,14 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.field.sshPasswordPlaceholder': '输入 SSH 密码',
|
||||
'settings.remoteInstances.page.field.uiPasswordOptional': 'UI 密码(可选)',
|
||||
'settings.remoteInstances.page.field.uiPasswordPlaceholder': '输入 UI 密码',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': '选择本地(-L)、远程(-R)或动态(-D)转发。',
|
||||
'settings.remoteInstances.page.field.forwardTypeHint': '选择此 SSH 连接应提供哪种端口访问。',
|
||||
'settings.remoteInstances.page.field.typePlaceholder': '类型',
|
||||
'settings.remoteInstances.page.forwardType.local': '本地(-L)',
|
||||
'settings.remoteInstances.page.forwardType.remote': '远程(-R)',
|
||||
'settings.remoteInstances.page.forwardType.dynamic': '动态(-D)',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': '将本地流量转发到远程目标。',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': '暴露远端端点并回传到本地机器。',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': '通过 SSH 暴露本地 SOCKS5 代理。',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.local': '打开一个本地端口,连接到远程机器上的服务。',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.remote': '在远程机器上打开一个端口,并连接回你的电脑。',
|
||||
'settings.remoteInstances.page.forwardTypeDescription.dynamic': '通过 SSH 连接打开本地 SOCKS 代理。',
|
||||
'settings.remoteInstances.page.actions.create': '创建',
|
||||
'settings.remoteInstances.page.actions.cancel': '取消',
|
||||
'settings.remoteInstances.page.actions.connecting': '连接中...',
|
||||
@@ -991,7 +1022,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.actions.enableForwardAria': '启用转发',
|
||||
'settings.remoteInstances.page.actions.openLocal': '打开本地',
|
||||
'settings.remoteInstances.page.actions.addForward': '添加转发',
|
||||
'settings.remoteInstances.page.import.sectionTitle': '从 SSH 配置导入',
|
||||
'settings.remoteInstances.page.import.sectionTitle': '已保存的 SSH 主机',
|
||||
'settings.remoteInstances.page.import.loading': '正在加载 SSH 主机...',
|
||||
'settings.remoteInstances.page.import.noneFound': '未找到 SSH 主机。',
|
||||
'settings.remoteInstances.page.import.noneAvailable': '没有可导入的 SSH 主机。',
|
||||
@@ -1006,7 +1037,7 @@ export const settingsDict = {
|
||||
'settings.remoteInstances.page.phase.resolvingConfiguration': '正在解析配置',
|
||||
'settings.remoteInstances.page.phase.checkingAuth': '正在检查认证',
|
||||
'settings.remoteInstances.page.phase.establishingSsh': '正在建立 SSH 连接',
|
||||
'settings.remoteInstances.page.phase.probingRemote': '正在探测远程主机',
|
||||
'settings.remoteInstances.page.phase.probingRemote': '正在检查远程机器',
|
||||
'settings.remoteInstances.page.phase.installingOpenChamber': '正在安装 OpenChamber',
|
||||
'settings.remoteInstances.page.phase.updatingOpenChamber': '正在更新 OpenChamber',
|
||||
'settings.remoteInstances.page.phase.detectingServer': '正在检测服务',
|
||||
@@ -1471,6 +1502,9 @@ export const settingsDict = {
|
||||
'settings.voice.page.preview.voiceLine': '你好!我是 {voiceName}。这是我的声音效果。',
|
||||
'settings.voice.page.preview.customServerLine': '你好!这是自定义 TTS 服务器的预览。',
|
||||
'settings.openchamber.visual.section.colorMode': '颜色模式',
|
||||
'settings.openchamber.visual.section.mobileLayout': '移动端布局',
|
||||
'settings.openchamber.visual.option.mobileLayout.default': '默认',
|
||||
'settings.openchamber.visual.option.mobileLayout.new': '新版',
|
||||
'settings.openchamber.visual.section.localization': '本地化',
|
||||
'settings.openchamber.visual.section.spacingAndLayout': '间距与布局',
|
||||
'settings.openchamber.visual.section.navigation': '导航',
|
||||
|
||||
@@ -27,6 +27,94 @@ export const dict: Record<I18nKey, string> = {
|
||||
'layout.mainTab.files': '文件',
|
||||
'layout.mainTab.terminal': '终端',
|
||||
'layout.mainTab.context': '上下文',
|
||||
'mobile.nav.aria': '移动导航',
|
||||
'mobile.nav.changes': '更改',
|
||||
'mobile.nav.settings': '设置',
|
||||
'mobile.surface.closeAria': '关闭',
|
||||
'mobile.header.openMenuAria': '打开菜单',
|
||||
'mobile.menu.titleAria': '工作区工具',
|
||||
'mobile.menu.files': '文件',
|
||||
'mobile.menu.changes': '更改',
|
||||
'mobile.menu.settings': '设置',
|
||||
'mobile.sessions.newChatCta': '在 {project} 中新建会话',
|
||||
'mobile.sessions.dateGroup.today': '今天',
|
||||
'mobile.sessions.dateGroup.yesterday': '昨天',
|
||||
'mobile.sessions.dateGroup.thisWeek': '本周早些时候',
|
||||
'mobile.sessions.dateGroup.older': '更早',
|
||||
'mobile.sessions.section.worktrees': '工作树',
|
||||
'mobile.sessions.section.otherProjects': '切换项目',
|
||||
'mobile.sessions.section.projects': '项目',
|
||||
'mobile.sessions.empty.noProjectsTitle': '暂无项目',
|
||||
'mobile.sessions.empty.noProjectsDescription': '添加项目以开始与代码对话。',
|
||||
'mobile.sessions.empty.noSessionsTitle': '暂无会话',
|
||||
'mobile.sessions.empty.noSessionsDescription': '开始第一次会话即可在此显示。',
|
||||
'mobile.sessions.empty.searchTitle': '无结果',
|
||||
'mobile.sessions.empty.searchDescription': '请尝试其他搜索词。',
|
||||
'mobile.sessions.showArchived': '显示已归档 ({count})',
|
||||
'mobile.sessions.hideArchived': '隐藏已归档',
|
||||
'mobile.sessions.activeWorktreeAria': '活动工作树',
|
||||
'mobile.sessions.activeProjectAria': '活动项目',
|
||||
'mobile.sessions.startNewChat': '开始新会话',
|
||||
'mobile.sessions.newChat': '新会话',
|
||||
'mobile.sessions.editOrder': '重新排序项目',
|
||||
'mobile.sessions.doneEditing': '完成',
|
||||
'mobile.sessions.editOrderHint': '拖动手柄或使用箭头重新排序。点击对勾以完成。',
|
||||
'mobile.sessions.dragHandleAria': '拖动 {label} 以重新排序',
|
||||
'mobile.sessions.moveUpAria': '将 {label} 上移',
|
||||
'mobile.sessions.moveDownAria': '将 {label} 下移',
|
||||
'mobile.sessions.removeProjectAria': '移除 {label}',
|
||||
'mobile.sessions.cancelRemoveProjectAria': '取消移除 {label}',
|
||||
'mobile.sessions.confirmRemoveProject': '删除',
|
||||
'mobile.sessions.confirmRemoveProjectAria': '确认移除 {label}',
|
||||
'mobile.sessions.toast.projectRemoved': '已移除 {label}',
|
||||
'mobile.sessions.showMore': '再显示 {count} 个',
|
||||
'mobile.sessions.search.section.sessions': '会话',
|
||||
'mobile.sessions.search.section.archived': '已归档',
|
||||
'mobile.sessions.search.section.projects': '项目',
|
||||
'mobile.sessions.clearSearchAria': '清除搜索',
|
||||
'mobile.header.noProject': '选择项目',
|
||||
'mobile.header.activeSession': '活动会话',
|
||||
'mobile.header.noSession': '无活动会话',
|
||||
'mobile.sessions.openSheetAria': '打开会话和项目',
|
||||
'mobile.sessions.closeSheetAria': '关闭会话和项目',
|
||||
'mobile.sessions.sheet.title': '会话',
|
||||
'mobile.sessions.sheet.description': '切换项目、打开会话或开始新聊天。',
|
||||
'mobile.sessions.search.placeholder': '搜索会话',
|
||||
'mobile.sessions.empty': '未找到会话。',
|
||||
'mobile.sessions.unassignedProject': '其他会话',
|
||||
'mobile.sessions.newSessionAria': '在此项目中开始新会话',
|
||||
'mobile.sessions.untitled': '未命名会话',
|
||||
'mobile.sessions.project.sessionsSingle': '1 个会话',
|
||||
'mobile.sessions.project.sessionsPlural': '{count} 个会话',
|
||||
'mobile.files.refreshAria': '刷新文件',
|
||||
'mobile.files.backToParentAria': '返回 {name}',
|
||||
'mobile.files.rootDirectory': '项目文件',
|
||||
'mobile.files.search.placeholder': '搜索文件',
|
||||
'mobile.files.search.empty': '未找到文件。',
|
||||
'mobile.files.parentDirectory': '上级目录',
|
||||
'mobile.files.empty.noDirectory': '选择一个项目以浏览文件。',
|
||||
'mobile.files.empty.directory': '此目录为空。',
|
||||
'mobile.files.error.listFailed': '加载文件失败',
|
||||
'mobile.files.error.readUnavailable': '此运行环境不支持文件预览。',
|
||||
'mobile.files.file.truncated': '移动端文件预览已截断。',
|
||||
'mobile.files.copyPathAria': '复制文件路径',
|
||||
'mobile.files.copyContent': '复制内容',
|
||||
'mobile.files.copyContentAria': '复制文件内容',
|
||||
'mobile.files.toast.pathCopied': '路径已复制',
|
||||
'mobile.files.toast.contentCopied': '内容已复制',
|
||||
'mobile.files.toast.copyFailed': '复制失败',
|
||||
'mobile.changes.placeholder.title': '更改',
|
||||
'mobile.changes.placeholder.description': '工作区更改 review、sync 和 commit 操作将在这里显示。',
|
||||
'mobile.changes.branchLabel': '分支:{branch}',
|
||||
'mobile.changes.noRemote': '没有可用的 remote',
|
||||
'mobile.changes.cleanDescription': '此 workspace 中没有已更改文件。',
|
||||
'mobile.changes.diffDetail.subtitle': '只读 diff',
|
||||
'mobile.changes.diffDetail.loadFailed': '加载 diff 失败',
|
||||
'mobile.changes.diffDetail.missingTitle': '文件不再有更改',
|
||||
'mobile.changes.diffDetail.missingDescription': '返回“更改”并刷新列表。',
|
||||
'mobile.changes.diffDetail.imageUnavailable': '移动“更改”暂不支持图片 diff。',
|
||||
'mobile.settings.placeholder.title': '设置',
|
||||
'mobile.settings.placeholder.description': '移动连接和应用设置将在这里显示。',
|
||||
'layout.rightSidebar.git': 'Git',
|
||||
'layout.rightSidebar.files': '文件',
|
||||
'layout.rightSidebar.context': '上下文',
|
||||
@@ -1125,6 +1213,12 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.services.refreshRateLimitsAria': '刷新速率限制',
|
||||
'header.services.noRateLimits': '没有可用的速率限制。',
|
||||
'header.services.noRateLimitsReported': '未上报速率限制。',
|
||||
'header.services.remoteUpdate.title': '远程实例更新',
|
||||
'header.services.remoteUpdate.checking': '正在检查更新...',
|
||||
'header.services.remoteUpdate.upToDate': '此实例已是最新。',
|
||||
'header.services.remoteUpdate.available': '此实例可更新到版本 {version}。',
|
||||
'header.services.remoteUpdate.error': '无法检查远程实例更新',
|
||||
'header.services.remoteUpdate.actions.open': '更新',
|
||||
'header.services.used': '已用',
|
||||
'header.services.remaining': '剩余',
|
||||
'header.services.shutdownDev': '停止 OpenChamber',
|
||||
@@ -2035,6 +2129,9 @@ export const dict: Record<I18nKey, string> = {
|
||||
'desktopHostSwitcher.header.currentDefaultColon': '当前默认:',
|
||||
'desktopHostSwitcher.status.connected': '已连接',
|
||||
'desktopHostSwitcher.status.authRequired': '需要认证',
|
||||
'desktopHostSwitcher.status.checking': '检查中',
|
||||
'desktopHostSwitcher.status.updateRecommended': '建议更新',
|
||||
'desktopHostSwitcher.status.incompatible': '不兼容',
|
||||
'desktopHostSwitcher.status.wrongService': '服务不匹配',
|
||||
'desktopHostSwitcher.status.unreachable': '不可达',
|
||||
'desktopHostSwitcher.status.unknown': '未知',
|
||||
@@ -2221,6 +2318,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
'onboarding.remoteConnection.actions.chooseDifferentServer': '选择其他服务器',
|
||||
'onboarding.remoteConnection.actions.useLocalInstead': '改用本地',
|
||||
'onboarding.remoteConnection.probe.authMessage': '服务器需要身份验证。你仍可连接,但可能需要提供凭据。',
|
||||
'onboarding.remoteConnection.probe.updateRecommendedMessage': '此实例正在运行不同版本的 OpenChamber。你可以连接;如果功能异常,请更新两端应用。',
|
||||
'onboarding.remoteConnection.probe.incompatibleMessage': '服务器正在运行 OpenChamber,但与此应用版本不兼容。请更新服务器上的 OpenChamber 后重试。',
|
||||
'onboarding.remoteConnection.probe.wrongServiceMessage': '服务器有响应,但未运行 OpenChamber。请确认地址是否指向 OpenChamber 服务器。',
|
||||
'onboarding.remoteConnection.probe.unreachableMessage': '服务器不可达。请检查网络连接并确认服务器地址。',
|
||||
'onboarding.desktopRecovery.localUnavailable.title': '本地 OpenCode 不可用',
|
||||
@@ -2234,6 +2333,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
'onboarding.desktopRecovery.remoteUnreachable.retry': '重试连接',
|
||||
'onboarding.desktopRecovery.incompatibleServer.title': '服务器不兼容',
|
||||
'onboarding.desktopRecovery.incompatibleServer.description': '“{host}” 上的服务器未运行 OpenChamber。请确认地址是否指向 OpenChamber 服务器。',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.title': '需要更新服务器',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.description': '“{host}” 上的 OpenChamber 服务器与此应用版本不兼容。请更新服务器上的 OpenChamber 后重试。',
|
||||
'onboarding.desktopRecovery.common.useLocal': '使用本地',
|
||||
'onboarding.desktopRecovery.common.useRemote': '使用远程',
|
||||
'onboarding.desktopRecovery.actions.retrying': '重试中…',
|
||||
|
||||
@@ -217,6 +217,37 @@
|
||||
'settings.remoteInstances.sidebar.phase.starting': '啟動中',
|
||||
'settings.remoteInstances.sidebar.phase.connecting': '連線中',
|
||||
'settings.remoteInstances.sidebar.phase.idle': '可用',
|
||||
'settings.remoteInstances.direct.sidebarTitle': '直接連線',
|
||||
'settings.remoteInstances.direct.sidebarDescription': '連線到已在執行的 OpenChamber 伺服器。',
|
||||
'settings.remoteInstances.direct.title': '直接遠端執行個體',
|
||||
'settings.remoteInstances.direct.description': '儲存可從桌面切換器使用的遠端伺服器 URL。',
|
||||
'settings.remoteInstances.direct.field.labelPlaceholder': '我的遠端伺服器',
|
||||
'settings.remoteInstances.direct.field.urlPlaceholder': 'https://openchamber.example.com',
|
||||
'settings.remoteInstances.direct.field.tokenPlaceholder': '用戶端 token(可選)',
|
||||
'settings.remoteInstances.direct.note': '直接連線假設遠端伺服器已在執行並可從此裝置存取。',
|
||||
'settings.remoteInstances.direct.actions.add': '新增直接連線',
|
||||
'settings.remoteInstances.direct.import.description': '貼上 connect-url 輸出或 openchamber://connect 連結來匯入。',
|
||||
'settings.remoteInstances.direct.import.placeholder': '貼上連線連結',
|
||||
'settings.remoteInstances.direct.import.action': '匯入連線',
|
||||
'settings.remoteInstances.direct.error.invalidConnectLink': '連線連結無效',
|
||||
'settings.remoteInstances.direct.state.loading': '正在載入直接連線...',
|
||||
'settings.remoteInstances.direct.state.empty': '尚無直接連線。',
|
||||
'settings.remoteInstances.clientAuth.title': '用戶端存取 token',
|
||||
'settings.remoteInstances.clientAuth.description': '建立與管理可讓桌面或遠端用戶端連線的 token。',
|
||||
'settings.remoteInstances.clientAuth.field.labelPlaceholder': '裝置或用戶端名稱',
|
||||
'settings.remoteInstances.clientAuth.actions.create': '建立 token',
|
||||
'settings.remoteInstances.clientAuth.actions.pair': '配對裝置',
|
||||
'settings.remoteInstances.clientAuth.actions.revoke': '撤銷',
|
||||
'settings.remoteInstances.clientAuth.actions.clearRevoked': '清除已撤銷',
|
||||
'settings.remoteInstances.clientAuth.qrAlt': '配對 QR code',
|
||||
'settings.remoteInstances.clientAuth.pairingUrl': '配對 URL',
|
||||
'settings.remoteInstances.clientAuth.createdToken': '已建立 token',
|
||||
'settings.remoteInstances.clientAuth.state.loading': '正在載入用戶端 token...',
|
||||
'settings.remoteInstances.clientAuth.state.empty': '尚無用戶端 token。',
|
||||
'settings.remoteInstances.clientAuth.state.revoked': '已撤銷',
|
||||
'settings.remoteInstances.clientAuth.state.thisDevice': '此裝置',
|
||||
'settings.remoteInstances.clientAuth.lastUsed': '上次使用:{date}',
|
||||
'settings.remoteInstances.clientAuth.neverUsed': '從未使用',
|
||||
'settings.remoteInstances.page.section.instance': '執行個體',
|
||||
'settings.remoteInstances.page.section.instanceDescription': '核心 SSH 設定。',
|
||||
'settings.remoteInstances.page.field.mode': '模式',
|
||||
@@ -1394,6 +1425,7 @@
|
||||
'settings.openchamber.visual.section.colorMode': '顏色模式',
|
||||
'settings.openchamber.visual.section.localization': '在地化',
|
||||
'settings.openchamber.visual.section.spacingAndLayout': '間距與佈局',
|
||||
'settings.openchamber.visual.section.mobileLayout': '行動版版面',
|
||||
'settings.openchamber.visual.section.navigation': '導覽',
|
||||
'settings.openchamber.visual.section.chatRenderMode': '聊天渲染模式',
|
||||
'settings.openchamber.visual.section.chatRenderModeAria': '聊天渲染模式',
|
||||
@@ -1437,6 +1469,8 @@
|
||||
'settings.openchamber.visual.field.mobileKeyboardModeAria': '行動裝置鍵盤行為',
|
||||
'settings.openchamber.visual.field.selectMobileKeyboardModePlaceholder': '選擇鍵盤行為',
|
||||
'settings.openchamber.visual.actions.resetMobileKeyboardModeAria': '重設行動裝置鍵盤行為',
|
||||
'settings.openchamber.visual.option.mobileLayout.default': '預設',
|
||||
'settings.openchamber.visual.option.mobileLayout.new': '新版',
|
||||
'settings.openchamber.visual.field.interfaceFontSize': '介面字體大小',
|
||||
'settings.openchamber.visual.field.interfaceFont': '介面字體',
|
||||
'settings.openchamber.visual.field.selectInterfaceFontAria': '選擇介面字體',
|
||||
|
||||
@@ -27,6 +27,107 @@ export const dict: Record<I18nKey, string> = {
|
||||
'layout.mainTab.files': '檔案',
|
||||
'layout.mainTab.terminal': '終端機',
|
||||
'layout.mainTab.context': '上下文',
|
||||
'mobile.nav.aria': '行動導覽',
|
||||
'mobile.nav.changes': '變更',
|
||||
'mobile.nav.settings': '設定',
|
||||
'mobile.surface.closeAria': '關閉',
|
||||
'mobile.header.openMenuAria': '開啟選單',
|
||||
'mobile.menu.titleAria': '工作區工具',
|
||||
'mobile.menu.files': '檔案',
|
||||
'mobile.menu.changes': '變更',
|
||||
'mobile.menu.settings': '設定',
|
||||
'mobile.sessions.newChatCta': '在 {project} 中新增聊天',
|
||||
'mobile.sessions.dateGroup.today': '今天',
|
||||
'mobile.sessions.dateGroup.yesterday': '昨天',
|
||||
'mobile.sessions.dateGroup.thisWeek': '本週稍早',
|
||||
'mobile.sessions.dateGroup.older': '更早',
|
||||
'mobile.sessions.section.worktrees': '工作樹',
|
||||
'mobile.sessions.section.otherProjects': '切換專案',
|
||||
'mobile.sessions.section.projects': '專案',
|
||||
'mobile.sessions.empty.noProjectsTitle': '尚無專案',
|
||||
'mobile.sessions.empty.noProjectsDescription': '新增專案即可開始與程式碼聊天。',
|
||||
'mobile.sessions.empty.noSessionsTitle': '尚無會話',
|
||||
'mobile.sessions.empty.noSessionsDescription': '開始第一個聊天後會顯示在這裡。',
|
||||
'mobile.sessions.empty.searchTitle': '沒有結果',
|
||||
'mobile.sessions.empty.searchDescription': '請嘗試其他搜尋詞。',
|
||||
'mobile.sessions.showArchived': '顯示已封存 ({count})',
|
||||
'mobile.sessions.hideArchived': '隱藏已封存',
|
||||
'mobile.sessions.activeWorktreeAria': '作用中的工作樹',
|
||||
'mobile.sessions.activeProjectAria': '作用中的專案',
|
||||
'mobile.sessions.startNewChat': '開始新聊天',
|
||||
'mobile.sessions.newChat': '新聊天',
|
||||
'mobile.sessions.editOrder': '重新排序專案',
|
||||
'mobile.sessions.doneEditing': '完成',
|
||||
'mobile.sessions.editOrderHint': '拖曳把手或使用箭頭重新排序專案。點選勾號完成。',
|
||||
'mobile.sessions.dragHandleAria': '拖曳 {label} 以重新排序',
|
||||
'mobile.sessions.moveUpAria': '將 {label} 上移',
|
||||
'mobile.sessions.moveDownAria': '將 {label} 下移',
|
||||
'mobile.sessions.removeProjectAria': '移除 {label}',
|
||||
'mobile.sessions.cancelRemoveProjectAria': '取消移除 {label}',
|
||||
'mobile.sessions.confirmRemoveProject': '刪除',
|
||||
'mobile.sessions.confirmRemoveProjectAria': '確認移除 {label}',
|
||||
'mobile.sessions.toast.projectRemoved': '已移除 {label}',
|
||||
'mobile.sessions.showMore': '再顯示 {count} 個',
|
||||
'mobile.sessions.search.section.sessions': '會話',
|
||||
'mobile.sessions.search.section.archived': '已封存',
|
||||
'mobile.sessions.search.section.projects': '專案',
|
||||
'mobile.sessions.clearSearchAria': '清除搜尋',
|
||||
'mobile.header.noProject': '選擇專案',
|
||||
'mobile.header.activeSession': '作用中會話',
|
||||
'mobile.header.noSession': '沒有作用中會話',
|
||||
'mobile.sessions.openSheetAria': '開啟會話與專案',
|
||||
'mobile.sessions.closeSheetAria': '關閉會話與專案',
|
||||
'mobile.sessions.sheet.title': '會話',
|
||||
'mobile.sessions.sheet.description': '切換專案、開啟會話或開始新聊天。',
|
||||
'mobile.sessions.search.placeholder': '搜尋會話',
|
||||
'mobile.sessions.empty': '找不到會話。',
|
||||
'mobile.sessions.unassignedProject': '其他會話',
|
||||
'mobile.sessions.newSessionAria': '在此專案中開始新會話',
|
||||
'mobile.sessions.untitled': '未命名會話',
|
||||
'mobile.sessions.project.sessionsSingle': '1 個會話',
|
||||
'mobile.sessions.project.sessionsPlural': '{count} 個會話',
|
||||
'mobile.files.refreshAria': '重新整理檔案',
|
||||
'mobile.files.backToParentAria': '返回 {name}',
|
||||
'mobile.files.rootDirectory': '專案檔案',
|
||||
'mobile.files.search.placeholder': '搜尋檔案',
|
||||
'mobile.files.search.empty': '找不到檔案。',
|
||||
'mobile.files.parentDirectory': '上層目錄',
|
||||
'mobile.files.empty.noDirectory': '選擇專案以瀏覽檔案。',
|
||||
'mobile.files.empty.directory': '此目錄是空的。',
|
||||
'mobile.files.error.listFailed': '載入檔案失敗',
|
||||
'mobile.files.error.readUnavailable': '此執行環境無法使用檔案預覽。',
|
||||
'mobile.files.file.truncated': '行動版檔案預覽已截斷。',
|
||||
'mobile.files.copyPathAria': '複製檔案路徑',
|
||||
'mobile.files.copyContent': '複製內容',
|
||||
'mobile.files.copyContentAria': '複製檔案內容',
|
||||
'mobile.files.toast.pathCopied': '路徑已複製',
|
||||
'mobile.files.toast.contentCopied': '內容已複製',
|
||||
'mobile.files.toast.copyFailed': '複製失敗',
|
||||
'mobile.changes.placeholder.title': '變更',
|
||||
'mobile.changes.placeholder.description': '工作樹檢閱、同步與提交動作會顯示在這裡。',
|
||||
'mobile.changes.branchLabel': '分支:{branch}',
|
||||
'mobile.changes.noRemote': '沒有可用的 remote',
|
||||
'mobile.changes.cleanDescription': '此工作區沒有已變更的檔案。',
|
||||
'mobile.changes.diffDetail.subtitle': '唯讀 diff',
|
||||
'mobile.changes.diffDetail.loadFailed': '載入 diff 失敗',
|
||||
'mobile.changes.diffDetail.missingTitle': '檔案已不再有變更',
|
||||
'mobile.changes.diffDetail.missingDescription': '返回變更並重新整理清單。',
|
||||
'mobile.changes.diffDetail.imageUnavailable': '行動版變更尚不支援圖片 diff。',
|
||||
'mobile.settings.placeholder.title': '設定',
|
||||
'mobile.settings.placeholder.description': '行動版連線與應用程式設定會顯示在這裡。',
|
||||
'header.services.remoteUpdate.title': '遠端實例更新',
|
||||
'header.services.remoteUpdate.checking': '正在檢查更新...',
|
||||
'header.services.remoteUpdate.upToDate': '此實例已是最新。',
|
||||
'header.services.remoteUpdate.available': '此實例可更新到版本 {version}。',
|
||||
'header.services.remoteUpdate.error': '無法檢查遠端實例更新',
|
||||
'header.services.remoteUpdate.actions.open': '更新',
|
||||
'desktopHostSwitcher.status.checking': '檢查中',
|
||||
'desktopHostSwitcher.status.updateRecommended': '建議更新',
|
||||
'desktopHostSwitcher.status.incompatible': '不相容',
|
||||
'onboarding.remoteConnection.probe.updateRecommendedMessage': '此實例正在執行不同版本的 OpenChamber。你可以連線;如果功能異常,請更新兩端應用程式。',
|
||||
'onboarding.remoteConnection.probe.incompatibleMessage': '伺服器正在執行 OpenChamber,但與此應用程式版本不相容。請更新伺服器上的 OpenChamber 後重試。',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.title': '需要更新伺服器',
|
||||
'onboarding.desktopRecovery.remoteIncompatible.description': '「{host}」上的 OpenChamber 伺服器與此應用程式版本不相容。請更新伺服器上的 OpenChamber 後重試。',
|
||||
'layout.rightSidebar.git': 'Git',
|
||||
'layout.rightSidebar.files': '檔案',
|
||||
'layout.rightSidebar.context': '上下文',
|
||||
|
||||
Reference in New Issue
Block a user