Merge remote-tracking branch 'origin/main' into port-2619

# Conflicts:
#	packages/ui/src/components/sections/openchamber/OpenChamberVisualSettings.tsx
This commit is contained in:
Bohdan Triapitsyn
2026-08-29 00:26:49 +03:00
1318 changed files with 118125 additions and 30528 deletions
+166 -43
View File
@@ -1,8 +1,10 @@
import { thirdPartyIntegrationI18n } from './third-party-integrations.i18n';
export const settingsDict = {
'settings.providers.page.openCodeGo.title': 'OpenCode Go 사용량 추적',
'settings.providers.page.openCodeGo.description': 'OpenCode Go 대시보드를 연결하여 롤링, 주간 및 월간 할당량을 표시합니다.',
'settings.providers.page.openCodeGo.workspaceId': '워크스페이스 ID',
'settings.providers.page.openCodeGo.authCookie': '인증 쿠키',
'settings.providers.page.openCodeGo.apiKey': 'API 키',
'settings.providers.page.openCodeGo.help': '대시보드 URL에서 워크스페이스 ID를, 브라우저 개발자 도구에서 auth 쿠키를 복사하세요. OpenChamber는 브라우저 쿠키 저장소를 검색하지 않습니다.',
'settings.providers.page.openCodeGo.save': '저장 및 검증',
'settings.providers.page.openCodeGo.replace': '교체',
@@ -40,7 +42,20 @@ export const settingsDict = {
'settings.view.badge.beta': 'beta',
'settings.view.actions.reloadOpenCode': 'OpenCode 다시 로드',
'settings.view.actions.reloadOpenCodeTooltip': 'OpenCode를 재시작하고 설정을 다시 불러옵니다.',
'settings.view.actions.backToSettings': '설정으로 돌아가기',
'settings.view.actions.applyAndRestartOpenCode': '적용하고 다시 시작',
'settings.view.actions.applyAndRestartOpenCodeTooltipSingle': '보류 중인 구성 변경 1개를 적용하고 OpenCode를 다시 시작합니다.',
'settings.view.actions.applyAndRestartOpenCodeTooltipPlural': '보류 중인 구성 변경 {count}개를 적용하고 OpenCode를 다시 시작합니다.',
'settings.view.pendingRestart.applying': '다시 시작하는 중…',
'settings.view.pendingRestart.applied': '보류 중인 구성 변경으로 OpenCode를 다시 시작했습니다.',
'settings.view.pendingRestart.applyFailed': '구성 변경을 적용하지 못했습니다.',
'settings.view.pendingRestart.manualRestartRequired': '디스크에 저장되었습니다. 연결된 OpenCode 서버를 다시 시작하여 변경 사항을 적용하세요.',
'settings.view.pendingRestart.saved': '저장되었습니다. 적용하려면 OpenCode를 다시 시작하세요.',
'settings.view.pendingRestart.confirm.title': '적용하고 다시 시작할까요?',
'settings.view.pendingRestart.confirm.description': 'OpenCode를 다시 시작하면 실행 중인 채팅이 중지됩니다. 저장된 구성 변경 사항은 다시 시작 후 적용됩니다.',
'settings.view.pendingRestart.confirm.dontShowAgain': '다시 표시하지 않음',
'settings.view.pendingRestart.confirm.cancel': '취소', 'settings.view.actions.backToSettings': '설정으로 돌아가기',
'settings.view.actions.closeSettings': '설정 닫기',
'settings.view.actions.openSectionList': '섹션 목록 열기',
'settings.view.actions.closeSettingsWithShortcut': '설정 닫기 ({shortcut}+,)',
@@ -359,14 +374,14 @@ export const settingsDict = {
'settings.remoteInstances.page.field.modePlaceholder': '모드 선택',
'settings.remoteInstances.page.field.modeManaged': '대신 시작하기',
'settings.remoteInstances.page.field.modeExternal': '이미 실행 중',
'settings.remoteInstances.page.field.preferredRemotePort': '기본 원격 포트',
'settings.remoteInstances.page.field.preferredRemotePortHint': '원격 컴퓨터에서 사용할 포트입니다. 비워 두면 자동으로 선택합니다.',
'settings.remoteInstances.page.field.preferredRemotePort': '원격 머신의 포트',
'settings.remoteInstances.page.field.preferredRemotePortHint': 'OpenChamber가 원격 머신에서 사용할 포트. 비워 두면 자동으로 선택됩니다.',
'settings.remoteInstances.page.field.keepServerRunning': '서버 유지',
'settings.remoteInstances.page.field.keepServerRunningHint': '연결을 끊은 뒤에도 원격 컴퓨터에서 OpenChamber를 계속 실행합니다.',
'settings.remoteInstances.page.field.bindHost': 'Bind host',
'settings.remoteInstances.page.field.bindHostHint': '로컬 연결이 대기할 주소입니다. LAN 접근이 필요하지 않으면 127.0.0.1 또는 localhost를 사용하세요.',
'settings.remoteInstances.page.field.preferredLocalPort': '기본 로컬 포트',
'settings.remoteInstances.page.field.preferredLocalPortHint': '이 연결에 열 로컬 포트입니다. 비워 두면 자동으로 선택합니다.',
'settings.remoteInstances.page.field.keepServerRunningHint': '연결을 끊은 뒤에도 원격 서버를 계속 실행합니다. 끄면 연결 해제 시 중지되고 다음 연결 때 다시 시작됩니다.',
'settings.remoteInstances.page.field.bindHost': '접근 가능 범위',
'settings.remoteInstances.page.field.bindHostHint': '이 컴퓨터의 전달된 주소를 누가 열 수 있는지. 원격 머신 자체는 어느 경우든 SSH 터널로만 접근할 수 있습니다.',
'settings.remoteInstances.page.field.preferredLocalPort': '이 컴퓨터의 포트',
'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',
@@ -386,6 +401,10 @@ export const settingsDict = {
'settings.common.actions.cancel': '취소',
'settings.common.actions.create': '생성',
'settings.common.actions.delete': '삭제',
'settings.openchamber.appLinks.title': '신뢰한 앱 링크',
'settings.openchamber.appLinks.info': '여기에 표시된 링크는 이 기기에서 다시 묻지 않고 열립니다. 그 밖의 앱 링크는 열기 전에 항상 확인합니다.',
'settings.openchamber.appLinks.empty': '이 기기에 신뢰한 앱 링크가 없습니다. 링크를 열 때 "신뢰하고 열기"를 선택하면 여기에 추가됩니다.',
'settings.openchamber.appLinks.removeAria': '신뢰된 {scheme} 링크 제거',
'settings.common.actions.reset': '초기화',
'settings.common.actions.rename': '이름 변경',
'settings.common.actions.duplicate': '복제',
@@ -431,6 +450,9 @@ export const settingsDict = {
'settings.openchamber.about.title': 'OpenChamber 정보',
'settings.openchamber.about.field.version': '버전',
'settings.openchamber.about.field.openCodeVersion': 'OpenCode 버전',
'settings.openchamber.about.field.instanceUrls': '인스턴스 URL',
'settings.openchamber.about.field.applicationUrl': '애플리케이션',
'settings.openchamber.about.field.tunnelUrl': '터널',
'settings.openchamber.about.state.checking': '확인 중...',
'settings.openchamber.about.state.upToDate': '최신 상태',
'settings.openchamber.about.state.unknown': '알 수 없음',
@@ -847,16 +869,26 @@ export const settingsDict = {
'settings.skills.catalog.page.mode.manual': '수동',
'settings.skills.catalog.page.mode.external': 'External',
'settings.skills.catalog.page.title': '스킬 카탈로그',
'settings.skills.catalog.page.subtitle': '선별된 저장소에서 바로 사용 가능한 스킬을 설치하거나 직접 소스를 추가하세요.',
'settings.skills.catalog.page.section.sources': '소스',
'settings.skills.catalog.page.searchAllPlaceholder': '모든 소스에서 스킬 검색…',
'settings.skills.catalog.page.search.clear': '검색 지우기',
'settings.skills.catalog.page.source.skillsCount': '스킬: {count}개',
'settings.skills.catalog.page.source.stars': '스타: {count}',
'settings.skills.catalog.page.source.updated': '업데이트: {time}',
'settings.skills.catalog.page.source.addOwnTitle': '직접 소스 추가',
'settings.skills.catalog.page.source.addOwnDescription': '스킬이 있는 아무 Git 저장소',
'settings.skills.catalog.page.source.viewRepo': 'GitHub에서 저장소 열기',
'settings.skills.catalog.page.skill.viewOnGithub': 'GitHub에서 스킬 보기',
'settings.skills.catalog.page.list.searchTitle': '검색 결과',
'settings.skills.catalog.page.section.sourceRepository': '카탈로그 저장소',
'settings.skills.catalog.page.field.selectSourcePlaceholder': '저장소 선택',
'settings.skills.catalog.page.actions.refreshTitle': '새로고침',
'settings.skills.catalog.page.actions.removeCatalogTitle': 'Catalog 제거',
'settings.skills.catalog.page.actions.addCatalog': 'Catalog 추가',
'settings.skills.catalog.page.actions.removeCatalog': 'Catalog 제거',
'settings.skills.catalog.page.actions.loadMoreSkills': '스킬 더 불러오기',
'settings.skills.catalog.page.loading.catalog': '로딩 중...',
'settings.skills.catalog.page.loading.skills': '스킬 불러오는 중...',
'settings.skills.catalog.page.loading.more': '로딩 중...',
'settings.skills.catalog.page.foundCount': '스킬 {count}개 발견',
'settings.skills.catalog.page.error.catalogTitle': 'Catalog 오류',
'settings.skills.catalog.page.empty.noSkillsTitle': '스킬을 찾을 수 없습니다',
@@ -864,7 +896,6 @@ export const settingsDict = {
'settings.skills.catalog.page.badge.installed': '설치됨({scope})',
'settings.skills.catalog.page.badge.notInstallable': '설치할 수 없음',
'settings.skills.catalog.page.badge.unknown': '알 수 없음',
'settings.skills.catalog.page.byOwnerPrefix': '작성자',
'settings.skills.catalog.page.removeDialog.title': 'Catalog 제거',
'settings.skills.catalog.page.removeDialog.description': '이 카탈로그를 제거하시겠습니까?',
'settings.openchamber.passkeys.title': 'Passkeys',
@@ -927,9 +958,9 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.field.macMenuBarAria': 'macOS 메뉴 막대에 OpenChamber 표시',
'settings.openchamber.desktopNetwork.field.macMenuBar': '메뉴 막대에 OpenChamber 표시',
'settings.openchamber.desktopNetwork.field.macMenuBarDescription': '앱을 다시 시작해야 합니다. 끄면 OpenChamber가 메뉴 막대 항목을 만들지 않으며 세션, 승인 및 사용량 업데이트도 실행하지 않습니다.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'OpenChamber를 시스템 트레이로 최소화하거나 닫기',
'settings.openchamber.desktopNetwork.field.minimizeToTray': '시스템 트레이로 최소화하고 닫기',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '메인 창을 최소화하거나 닫아도 OpenChamber가 시스템 트레이에서 계속 실행됩니다.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'OpenChamber를 시스템 트레이로 닫기',
'settings.openchamber.desktopNetwork.field.minimizeToTray': '시스템 트레이로 닫기',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '메인 창을 닫아도 OpenChamber가 시스템 트레이에서 계속 실행됩니다. 최소화하면 창은 작업 표시줄에 남습니다.',
'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'OpenChamber가 실행되는 동안 컴퓨터 절전 방지',
'settings.openchamber.desktopNetwork.field.keepAwake': 'OpenChamber가 실행되는 동안 컴퓨터 절전 방지',
'settings.openchamber.desktopNetwork.field.keepAwakeDescription': '휴대폰이 이 앱을 계속 열 수 있도록 합니다. 디스플레이는 꺼질 수 있습니다.',
@@ -956,15 +987,22 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.error.keepAwakeUnsupported': '이 시스템에서는 절전 방지를 지원하지 않습니다',
'settings.openchamber.desktopNetwork.error.keepAwakeSaveFailed': '절전 방지 설정을 업데이트하지 못했습니다',
'settings.openchamber.opencodeCli.title': 'OpenCode CLI',
'settings.openchamber.tools.title': 'OpenChamber 도구',
'settings.openchamber.tools.field.agentControlTool': '에이전트 제어 도구',
'settings.openchamber.tools.field.agentControlToolAria': '에이전트 제어 도구 활성화',
'settings.openchamber.tools.field.agentControlToolInfo': '에이전트가 채팅에서 작업을 오케스트레이션할 수 있습니다. 세션과 worktree 생성, 다른 에이전트에게 프롬프트 위임, 예약 작업 관리가 가능합니다. 각 세션에 작은 도구 설명이 추가됩니다. OpenCode를 다시 시작하면 적용됩니다.',
'settings.openchamber.tools.field.agentWebTool': 'OpenChamber Web 도구',
'settings.openchamber.tools.field.agentWebToolAria': 'OpenChamber Web 도구 활성화',
'settings.openchamber.tools.field.agentWebToolInfo': '에이전트가 OpenChamber 브라우저 패널에서 페이지를 확인하고 조작할 수 있습니다. URL 열기, 내용 읽기, 클릭, 입력, 스크롤, 모바일과 데스크톱 레이아웃 전환이 가능합니다. 각 세션에 작은 도구 설명이 추가됩니다. OpenCode를 다시 시작하면 적용됩니다.',
'settings.openchamber.tools.field.agentMemoryTool': '에이전트 메모리 도구',
'settings.openchamber.tools.field.agentMemoryToolAria': '에이전트 메모리 도구',
'settings.openchamber.tools.field.agentMemoryToolInfo': '에이전트가 배운 내용을 세션 간에 유지하도록 합니다. 저장소는 두 개로, 사용자에 대한 사실과 각 프로젝트에 대한 사실입니다. 세션에는 저장된 제목이 전달되어 관련 항목을 에이전트가 읽을 수 있습니다. 끄면 도구와 메모리 탭, 세션 색인이 모두 사라집니다. OpenCode를 다시 시작한 뒤 적용됩니다.',
'settings.openchamber.opencodeCli.tooltipPrefix': '선택적 절대 경로:',
'settings.openchamber.opencodeCli.tooltipSuffix': 'binary.',
'settings.openchamber.opencodeCli.field.binaryPath': 'OpenCode binary 경로',
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'OpenCode 업데이트 알림 표시',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'OpenCode 업데이트 알림 표시',
'settings.openchamber.opencodeCli.field.agentControlTool': '에이전트 제어 도구',
'settings.openchamber.opencodeCli.field.agentControlToolAria': '에이전트 제어 도구 활성화',
'settings.openchamber.opencodeCli.field.agentControlToolInfo': '에이전트가 채팅에서 작업을 오케스트레이션할 수 있습니다. 세션과 worktree 생성, 다른 에이전트에게 프롬프트 위임, 예약 작업 관리가 가능합니다. 각 세션에 작은 도구 설명이 추가됩니다. Save + Reload 후 적용됩니다.',
'settings.openchamber.opencodeCli.actions.browseAria': 'OpenCode binary 경로 찾아보기',
'settings.openchamber.opencodeCli.actions.browse': '찾아보기',
'settings.openchamber.opencodeCli.actions.saveAndReload': '저장 + 다시 로드',
@@ -1063,7 +1101,7 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.overwritePrompt': '이 조합은 이미 다른 단축키에서 사용 중입니다. 덮어쓰고 기존 매핑을 지울까요?',
'settings.openchamber.keyboardShortcuts.field.pressKeys': '키를 누르세요...',
'settings.openchamber.keyboardShortcuts.error.captureFirst': '먼저 단축키를 입력하세요.',
'settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut': '이 단축키는 브라우저 기본값과 충돌할 수 있습니다. 그래도 저장됩니다.',
'settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut': '이 단축키는 브라우저 기본값과 충돌할 수 있지만 그래도 저장할 수 있습니다.',
'settings.openchamber.keyboardShortcuts.action.open_go_to_line.label': '줄로 이동(파일 편집기)',
'settings.openchamber.keyboardShortcuts.action.open_command_palette.label': '명령 팔레트 열기',
'settings.openchamber.keyboardShortcuts.action.focus_input.label': '입력에 포커스',
@@ -1072,16 +1110,20 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': '터미널 확장 토글',
'settings.openchamber.keyboardShortcuts.action.add_selection_to_chat.label': '선택 내용을 채팅에 추가',
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': '사이드바 토글',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '컨텍스트 패널 표시 전환',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Git 서피스 열기',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '파일 서피스 열기',
'settings.openchamber.keyboardShortcuts.action.switch_session_tab.label': '세션 탭 전환',
'settings.openchamber.keyboardShortcuts.action.switch_session_tab.suffix': ' + 1…9',
'settings.openchamber.keyboardShortcuts.action.switch_context_surface.label': '컨텍스트 패널 서피스 전환',
'settings.openchamber.keyboardShortcuts.action.switch_context_surface.suffix': ' + 1…0',
'settings.openchamber.keyboardShortcuts.action.new_chat.label': '새 세션',
'settings.openchamber.keyboardShortcuts.action.switch_session_previous.label': '이전 세션',
'settings.openchamber.keyboardShortcuts.action.switch_session_next.label': '다음 세션',
'settings.openchamber.keyboardShortcuts.action.rename_current_session.label': '현재 세션 이름 바꾸기',
'settings.openchamber.keyboardShortcuts.action.toggle_permission_auto_accept.label': '권한 자동 승인 전환',
'settings.openchamber.keyboardShortcuts.action.close_session_tab.label': '세션 탭 닫기',
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': '새 worktree 초안',
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': '새 Mini Chat 창',
'settings.openchamber.keyboardShortcuts.action.open_help.label': '키보드 단축키 열기',
'settings.openchamber.keyboardShortcuts.action.toggle_context_plan.label': '계획 컨텍스트 패널 토글',
'settings.openchamber.keyboardShortcuts.action.toggle_services_menu.label': '서비스 메뉴 토글',
'settings.openchamber.keyboardShortcuts.action.cycle_services_tab.label': '서비스 탭 순환',
'settings.openchamber.keyboardShortcuts.action.cycle_theme.label': '테마 순환',
'settings.openchamber.keyboardShortcuts.action.cycle_agent.label': '에이전트 순환',
'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_forward.label': '즐겨찾기 모델 앞으로 순환',
@@ -1090,15 +1132,39 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.expand_input.label': '입력 확장',
'settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label': '대화 타임라인 열기',
'settings.openchamber.keyboardShortcuts.action.toggle_prompt_navigator.label': '프롬프트 탐색기 표시/숨기기',
'settings.openchamber.keyboardShortcuts.warning.contextualPrefix': '이 시퀀스는 {action}과 컨텍스트 접두사를 공유합니다. 해당 컨텍스트가 활성화된 동안에는 그 동작이 우선합니다.',
'settings.openchamber.keyboardShortcuts.category.session': '세션 제어',
'settings.openchamber.keyboardShortcuts.category.models': '모델 및 에이전트',
'settings.openchamber.keyboardShortcuts.category.panels': '패널 및 도구',
'settings.openchamber.keyboardShortcuts.category.navigation': '탐색',
'settings.openchamber.keyboardShortcuts.category.application': '애플리케이션',
'settings.openchamber.keyboardShortcuts.actions.edit': '편집',
'settings.openchamber.keyboardShortcuts.actions.confirm': '확인',
'settings.openchamber.keyboardShortcuts.dialog.title': '{action} 편집',
'settings.openchamber.keyboardShortcuts.dialog.instructions': '키 조합을 최대 두 개까지 누르세요. 각 조합에는 최대 세 개의 키를 사용할 수 있습니다. 첫 번째 조합 뒤에는 두 번째 조합을 위해 최대 3초 동안 기다립니다. 적용하려면 확인을, 취소하려면 취소를 선택하세요. Backspace로 마지막 조합을 삭제합니다.',
'settings.openchamber.keyboardShortcuts.dialog.firstChord': '첫 번째 조합',
'settings.openchamber.keyboardShortcuts.dialog.secondChord': '두 번째 조합',
'settings.openchamber.keyboardShortcuts.dialog.recording': '키를 누르세요…',
'settings.openchamber.keyboardShortcuts.unassigned': '할당되지 않음',
'settings.openchamber.keyboardShortcuts.error.prefixConflict': '{action}에서 사용하는 시퀀스와 충돌합니다. 다른 조합을 선택하세요.',
'settings.openchamber.keyboardShortcuts.error.exactConflict': '이 조합은 이미 {action}에서 사용합니다.',
'settings.openchamber.keyboardShortcuts.error.internalConflict': '이 조합은 바꿀 수 없는 기본 제공 단축키와 충돌합니다.',
'settings.openchamber.keyboardShortcuts.action.open_draft_project_picker.label': '초안 프로젝트 선택기 열기',
'settings.openchamber.keyboardShortcuts.action.open_draft_worktree_picker.label': '초안 워크트리 선택기 열기',
'settings.openchamber.keyboardShortcuts.action.open_session_list.label': '최근 세션 열기',
'settings.openchamber.keyboardShortcuts.action.toggle_dictation.label': '음성 입력',
'settings.projects.sidebar.total': '총 {count}개',
'settings.projects.sidebar.actions.addProject': '프로젝트 추가',
'settings.projects.page.empty.noProjects': '사용 가능한 프로젝트가 없습니다.',
'settings.projects.page.title.default': '프로젝트 설정',
'settings.projects.page.section.worktree': 'Worktree',
'settings.projects.page.field.projectName': '프로젝트 이름',
'settings.projects.page.field.projectModel': '프로젝트 모델',
'settings.projects.page.field.projectThinking': '프로젝트 사고 수준',
'settings.projects.page.section.chatDefaults': '새 채팅 기본값',
'settings.projects.page.section.chatDefaultsDescription': '이 프로젝트에서 새 채팅을 시작할 때 사용합니다. 비워 두면 전역 기본값을 따릅니다. 사고 수준은 수준을 제공하는 모델에서만 표시됩니다.',
'settings.projects.page.field.projectNamePlaceholder': '프로젝트 이름',
'settings.projects.page.field.defaultModel': '새 채팅의 기본 모델',
'settings.projects.page.field.defaultModelDescription': '이 프로젝트에서 새 채팅을 시작할 때 사용됩니다. 설정하지 않으면 전역 기본값으로 대체됩니다.',
'settings.projects.page.option.thinkingDefault': '모델 기본값',
'settings.projects.page.field.accentColor': '강조 색상',
'settings.projects.page.field.projectIcon': '프로젝트 아이콘',
'settings.projects.page.field.projectIconBackgroundAria': '프로젝트 아이콘 배경색',
@@ -1132,15 +1198,15 @@ export const settingsDict = {
'settings.usage.sidebar.field.displayModePlaceholder': '표시 모드',
'settings.usage.sidebar.field.displayModeUsage': '사용량',
'settings.usage.sidebar.field.displayModeRemaining': '남은 할당량',
'settings.usage.sidebar.field.showPredictions': '예측 표시',
'settings.usage.sidebar.status.notSet': '설정 안 됨',
'settings.usage.page.empty.selectProvider': '사용량 세부 정보를 보려면 프로바이더를 선택하세요.',
'settings.usage.page.header.providerUsage': '{provider} 사용량',
'settings.usage.page.header.refreshing': '사용량 새로고침 중...',
'settings.usage.page.header.lastUpdated': '마지막 업데이트: {time}',
'settings.usage.page.options.showInHeaderAria': '헤더 메뉴에 표시',
'settings.usage.page.options.showInHeader': '헤더 메뉴에 표시',
'settings.usage.page.options.showInHeaderTooltip': '활성화하면 이 프로바이더의 사용량이 앱 헤더의 빠른 접근 메뉴에 표시됩니다.',
'settings.usage.page.header.lastUpdatedWithPlan': '플랜: {plan} · 마지막 업데이트: {time}',
'settings.usage.page.options.showInWorkStatusAria': '작업 상태 패널에 표시',
'settings.usage.page.options.showInWorkStatus': '작업 상태 패널에 표시',
'settings.usage.page.options.showInWorkStatusTooltip': '활성화하면 이 제공업체의 사용량이 작업 상태 패널에 표시됩니다.',
'settings.usage.page.state.noData': '아직 사용량 데이터가 없습니다.',
'settings.usage.page.state.refreshFailedTitle': '사용량 데이터를 새로고침하지 못했습니다',
'settings.usage.page.state.providerNotConfiguredTitle': '프로바이더가 설정되지 않았습니다',
@@ -1167,8 +1233,8 @@ export const settingsDict = {
'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.mainTunnel': '이 컴퓨터에서의 접근',
'settings.remoteInstances.page.section.mainTunnelDescription': 'OpenChamber는 원격 머신에서 실행됩니다. 이 설정은 SSH 터널을 통해 그곳으로 연결되는 이 컴퓨터의 주소만 제어합니다.',
'settings.remoteInstances.page.section.authentication': '인증',
'settings.remoteInstances.page.section.authenticationDescription': 'SSH와 원격 OpenChamber UI를 위한 인증 정보입니다.',
'settings.remoteInstances.page.section.portForwards': '포트 포워딩',
@@ -1181,8 +1247,6 @@ export const settingsDict = {
'settings.remoteInstances.page.field.installMethod': '설치 방식',
'settings.remoteInstances.page.field.installMethodHint': '이 앱이 대신 시작할 때 OpenChamber를 원격 컴퓨터에 배치하는 방법입니다.',
'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': '설치 방식 선택',
'settings.remoteInstances.page.field.installMethodDownloadRelease': '릴리스 다운로드',
'settings.remoteInstances.page.field.installMethodUploadBundle': '번들 업로드',
'settings.remoteInstances.page.field.selectBindHostPlaceholder': 'bind host 선택',
'settings.remoteInstances.page.field.sshPasswordOptional': 'SSH 비밀번호(선택 사항)',
'settings.remoteInstances.page.field.sshPasswordPlaceholder': 'SSH 비밀번호 입력',
@@ -1206,7 +1270,44 @@ 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.addDialog.description': 'SSH 설정에서 호스트를 고르거나 연결을 직접 입력하세요.',
'settings.remoteInstances.page.addDialog.sourceLabel': '연결을 가져오는 위치',
'settings.remoteInstances.page.addDialog.tab.saved': 'SSH 설정에서',
'settings.remoteInstances.page.addDialog.tab.manual': '직접 입력',
'settings.remoteInstances.page.addDialog.searchPlaceholder': '호스트 검색',
'settings.remoteInstances.page.addDialog.emptySaved': 'SSH 설정에서 호스트를 찾지 못했습니다. 연결을 직접 입력하세요.',
'settings.remoteInstances.page.addDialog.searchEmpty': '검색과 일치하는 호스트가 없습니다.',
'settings.remoteInstances.page.addDialog.use': '사용',
'settings.remoteInstances.page.state.notConnected': '연결 안 됨',
'settings.remoteInstances.page.state.connecting': '연결 중',
'settings.remoteInstances.page.state.ready': '연결됨',
'settings.remoteInstances.page.state.problem': '조치 필요',
'settings.remoteInstances.page.section.advanced': '고급 설정',
'settings.remoteInstances.page.section.advancedHint': '포트, 설치 방법, 비밀번호, 추가 포워딩. 대부분의 연결은 기본값으로 충분합니다.',
'settings.remoteInstances.page.field.installMethodAuto': '자동',
'settings.remoteInstances.page.error.hint.noRuntime': '원격 머신에 bun도 npm도 없습니다. 그곳에 하나를 설치하거나 이 연결을 "이미 실행 중"으로 바꾸세요.',
'settings.remoteInstances.page.error.hint.noOpencode': '원격 머신에 opencode CLI가 설치되어 있지 않습니다. 그곳에 설치한 뒤(opencode.ai 참고) 다시 연결하세요.',
'settings.remoteInstances.page.error.action.setUiPassword': 'UI 비밀번호 설정',
'settings.remoteInstances.page.error.action.pickRandomPort': '다른 로컬 포트 사용',
'settings.remoteInstances.page.error.action.setRemotePort': '원격 포트 설정',
'settings.remoteInstances.page.validation.externalPortRequired': '먼저 원격 포트를 지정하세요. "이미 실행 중" 모드에서는 서버가 어떤 포트에서 대기하는지 OpenChamber가 알아야 합니다.',
'settings.remoteInstances.page.empty.noInstances': '아직 SSH 연결이 없습니다.',
'settings.remoteInstances.page.field.uiPasswordRequired': 'UI 비밀번호(필수)',
'settings.remoteInstances.page.field.uiPasswordMissingForLan': '원격 서버가 자기 네트워크에서 접근 가능한 동안에는 필수입니다.',
'settings.remoteInstances.page.field.remoteLanAccess': '원격 네트워크에서 접근 가능',
'settings.remoteInstances.page.field.remoteLanAccessHint': '원격 머신 네트워크의 다른 기기가 SSH 터널 없이 이 OpenChamber를 직접 열 수 있게 합니다. UI 비밀번호가 필요합니다.',
'settings.remoteInstances.page.field.remoteLanAccessWarning': '그 네트워크의 누구나 원격 OpenChamber에 접근할 수 있습니다. 아래 UI 비밀번호만이 이를 보호합니다.',
'settings.remoteInstances.page.validation.remoteLanNeedsPassword': '먼저 UI 비밀번호를 설정하세요. 없으면 원격 OpenChamber가 그 네트워크의 모든 기기에 열리게 됩니다.',
'settings.remoteInstances.page.field.bindHostOption.loopback': '이 컴퓨터만 (127.0.0.1)',
'settings.remoteInstances.page.field.bindHostOption.localhost': '이 컴퓨터만 (localhost)',
'settings.remoteInstances.page.field.bindHostOption.lan': '내 네트워크의 모든 기기 (0.0.0.0)',
'settings.remoteInstances.page.field.sshPasswordHint': 'SSH 키 대신 비밀번호를 요구하는 호스트에서만 필요합니다.',
'settings.remoteInstances.page.field.uiPasswordHintManaged': '원격 OpenChamber 화면을 보호할 비밀번호. OpenChamber가 대신 시작하는 서버에 이 값을 설정합니다.',
'settings.remoteInstances.page.field.uiPasswordHintExternal': '원격 머신에서 이미 실행 중인 OpenChamber 서버에 로그인할 때 쓰는 비밀번호.',
'settings.remoteInstances.page.tunnelPreview.caption': '이 연결의 전달 경로:',
'settings.remoteInstances.page.empty.noInstancesWithOneImport': '아직 SSH 연결이 없습니다. SSH 설정에서 호스트 1개를 가져올 수 있습니다.',
'settings.remoteInstances.page.empty.noInstancesWithImports': '아직 SSH 연결이 없습니다. SSH 설정에서 호스트 {count}개를 가져올 수 있습니다.',
'settings.remoteInstances.page.state.loadingInstances': '연결을 불러오는 중...',
'settings.remoteInstances.page.import.loading': 'SSH host 로딩 중...',
'settings.remoteInstances.page.import.noneFound': 'SSH host를 찾을 수 없습니다.',
'settings.remoteInstances.page.import.noneAvailable': '가져올 수 있는 SSH host가 없습니다.',
@@ -1304,13 +1405,18 @@ export const settingsDict = {
'settings.providers.page.custom.title': '사용자 정의 제공자',
'settings.providers.page.custom.editTitle': '사용자 지정 공급자 편집',
'settings.providers.page.custom.description': '기본 URL, 자격 증명, 모델 목록으로 OpenAI 호환 제공자를 추가합니다. OpenCode 설정에 저장되어 다른 제공자와 같이 채팅에서 사용할 수 있습니다.',
'settings.providers.page.custom.description': '기본 URL, 자격 증명, 모델 목록 및 지원되는 API 프로토콜로 제공자를 추가합니다. 채팅에 사용할 수 있도록 OpenCode 설정에 저장됩니다.',
'settings.providers.page.custom.field.providerID.label': '제공자 ID',
'settings.providers.page.custom.field.providerID.placeholder': 'my-provider',
'settings.providers.page.custom.field.providerID.info': '소문자, 숫자, 하이픈, 밑줄. OpenCode 제공자 ID로 사용됩니다.',
'settings.providers.page.custom.field.name.label': '표시 이름',
'settings.providers.page.custom.field.name.placeholder': '내 제공자',
'settings.providers.page.custom.field.name.info': '제공자 및 모델 선택기에 표시됩니다.',
'settings.providers.page.custom.field.protocol.label': 'API 프로토콜',
'settings.providers.page.custom.field.protocol.info': '이 API가 구현하는 요청 형식을 선택하세요.',
'settings.providers.page.custom.field.protocol.openaiChat': 'OpenAI Chat Completions',
'settings.providers.page.custom.field.protocol.openaiResponses': 'OpenAI Responses',
'settings.providers.page.custom.field.protocol.anthropicMessages': 'Anthropic Messages',
'settings.providers.page.custom.field.baseURL.label': '기본 URL',
'settings.providers.page.custom.field.baseURL.placeholder': 'https://api.example.com/v1',
'settings.providers.page.custom.field.baseURL.info': 'OpenAI 호환 API 기본 URL. http:// 또는 https://로 시작해야 합니다.',
@@ -1359,6 +1465,17 @@ export const settingsDict = {
'settings.providers.page.auth.apiKeyPlaceholder': 'sk-...',
'settings.providers.page.auth.oauthMethodFallback': 'OAuth 방식 {index}',
'settings.providers.page.auth.pasteAuthorizationCodePlaceholder': 'authorization code 붙여넣기',
'settings.providers.page.auth.oauth.starting': '인증을 시작하는 중…',
'settings.providers.page.auth.oauth.waiting': '인증을 기다리는 중…',
'settings.providers.page.auth.oauth.waitingHint': '브라우저에서 로그인을 완료하세요. 이 페이지를 열어 두면 연결이 자동으로 완료됩니다.',
'settings.providers.page.auth.oauth.codeHint': '브라우저에서 인증 코드를 복사해 여기에 붙여넣으세요.',
'settings.providers.page.auth.oauth.deviceCodeLabel': '기기 코드',
'settings.providers.page.auth.oauth.linkLabel': '인증 링크',
'settings.providers.page.auth.oauth.promptRequired': '계속하려면 “{field}”을(를) 입력하세요',
'settings.providers.page.auth.oauth.error.sessionExpired': '인증 요청이 만료되었습니다. 다시 연결해 처음부터 시작하세요.',
'settings.providers.page.auth.oauth.error.codeRequired': '이 제공자에는 브라우저의 인증 코드가 필요합니다.',
'settings.providers.page.auth.oauth.error.declined': '인증이 거부되었거나 완료되지 않았습니다.',
'settings.providers.page.auth.oauth.error.invalidInput': '입력한 정보가 거부되었습니다.',
'settings.providers.page.auth.connected': '연결됨',
'settings.providers.page.auth.incomplete': '자격 증명 없음',
'settings.providers.page.auth.incompleteHint': '· 채팅에서 이 공급자를 사용하기 전에 API 키 또는 {env:VAR}을(를) 추가하세요',
@@ -1391,6 +1508,9 @@ export const settingsDict = {
'settings.providers.page.actions.open': '열기',
'settings.providers.page.actions.copy': '복사',
'settings.providers.page.actions.complete': '완료',
'settings.providers.page.actions.continue': '계속',
'settings.providers.page.actions.cancel': '취소',
'settings.providers.page.actions.tryAgain': '다시 시도',
'settings.providers.page.actions.hide': '숨기기',
'settings.providers.page.actions.reconnect': '재연결',
'settings.providers.page.actions.edit': '편집',
@@ -1406,7 +1526,6 @@ export const settingsDict = {
'settings.providers.page.toast.apiKeySaved': 'API key가 저장되었습니다',
'settings.providers.page.toast.oauthStartFailed': 'OAuth flow를 시작하지 못했습니다',
'settings.providers.page.toast.oauthDetailsMissing': '반환된 OAuth 세부 정보가 없습니다',
'settings.providers.page.toast.completeOAuthInBrowser': '브라우저에서 OAuth flow를 완료하세요',
'settings.providers.page.toast.oauthCompleteFailed': 'OAuth flow를 완료하지 못했습니다',
'settings.providers.page.toast.oauthCompleted': 'OAuth 연결이 완료되었습니다',
'settings.providers.page.toast.oauthLinkCopied': 'OAuth 링크가 복사되었습니다',
@@ -1428,6 +1547,8 @@ export const settingsDict = {
'settings.mcp.page.status.label.failed': '실패',
'settings.mcp.page.status.label.needsAuth': '인증 필요',
'settings.mcp.page.status.label.needsRegistration': '등록 필요',
'settings.mcp.page.status.label.awaitingRestart': '재시작 대기 중',
'settings.mcp.page.status.description.awaitingRestart': '이 서버는 저장되었지만 아직 적용되지 않았습니다. Apply & Restart를 사용해 OpenCode에 불러오면 연결과 인증을 사용할 수 있습니다.',
'settings.mcp.page.status.description.connected': '연결되었습니다. OpenCode가 도구와 리소스를 찾을 준비가 됐습니다.',
'settings.mcp.page.status.description.failedDefault': 'OpenCode가 이 MCP 서버에 연결할 수 없습니다.',
'settings.mcp.page.status.description.needsAuth': '이 원격 MCP 서버는 연결 전에 권한 부여가 필요합니다.',
@@ -1792,9 +1913,6 @@ export const settingsDict = {
'settings.voice.page.field.ttsInputModeSummarized': '요약',
'settings.openchamber.visual.section.colorMode': '색상 모드',
'settings.openchamber.visual.section.colorModeAndTheme': '색상 모드 및 테마',
'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.densityAndType': '밀도 및 서체',
@@ -1811,6 +1929,10 @@ export const settingsDict = {
'settings.openchamber.visual.section.showToolsOpenedByDefault': '도구를 기본으로 펼쳐 표시',
'settings.openchamber.visual.section.sessionAssistance': '세션 지원',
'settings.openchamber.visual.section.reasoning': '추론',
'settings.openchamber.visual.section.streaming': '스트리밍',
'settings.openchamber.visual.field.streamingAutoFollow': '스트리밍 중 새 내용 따라가기',
'settings.openchamber.visual.field.streamingAutoFollowAria': '응답 스트리밍 중 새 내용으로 자동 스크롤',
'settings.openchamber.visual.field.streamingAutoFollowInfo': '응답이 스트리밍되는 동안 화면이 최신 내용으로 계속 이동합니다. 끄면 화면이 고정되어 직접 스크롤할 수 있으며, 채팅 중간에서 메시지를 보내도 화면이 이동하지 않습니다.',
'settings.openchamber.visual.section.messageAppearance': '메시지 모양',
'settings.openchamber.visual.section.toolsAndFiles': '도구 및 파일',
'settings.openchamber.visual.section.composer': '입력창',
@@ -1831,8 +1953,6 @@ export const settingsDict = {
'settings.openchamber.visual.field.selectTimeFormatAria': '시간 형식 선택',
'settings.openchamber.visual.field.selectWeekStartAria': '주 시작 요일 선택',
'settings.openchamber.visual.actions.reloadThemes': '테마 다시 로드',
'settings.openchamber.visual.field.macVibrancy': '창 투명도',
'settings.openchamber.visual.field.macVibrancyHint': '사이드바 뒤에 macOS 기본 블러(vibrancy)를 사용합니다. 완전히 불투명한 표면을 원하면 끄세요.',
'settings.openchamber.visual.field.dockBadge': 'Dock 배지',
'settings.openchamber.visual.field.dockBadgeHint': '확인하지 않은 활동이 있는 채팅 수를 macOS Dock 아이콘에 표시합니다.',
'settings.openchamber.visual.actions.saveAndRestart': '저장 후 재시작',
@@ -1879,6 +1999,10 @@ export const settingsDict = {
'settings.openchamber.visual.actions.resetInputBarOffsetAria': '입력 바 오프셋 초기화',
'settings.openchamber.visual.field.terminalQuickKeysAria': '터미널 빠른 키',
'settings.openchamber.visual.field.terminalQuickKeys': '터미널 빠른 키',
'settings.openchamber.visual.field.sessionTabsGroup': '세션 탭',
'settings.openchamber.visual.field.sessionTabs': '헤더에 세션을 탭으로 표시',
'settings.openchamber.visual.field.sessionTabsAria': '헤더 세션 탭 전환',
'settings.openchamber.visual.field.sessionTabsInfo': '연 세션이 헤더에 탭으로 나열됩니다. 끄면 헤더에 세션 제목만 표시됩니다.',
'settings.openchamber.visual.field.terminalQuickKeysTooltip': '터미널 보기에서 Esc, Ctrl, 화살표를 표시합니다',
'settings.openchamber.visual.field.fileEditorKeymap': '파일 편집기 키맵',
'settings.openchamber.visual.option.fileEditorKeymap.default': '기본값',
@@ -1911,8 +2035,6 @@ export const settingsDict = {
'settings.openchamber.visual.field.stickyUserHeader': '고정 사용자 헤더',
'settings.openchamber.visual.field.promptNavigatorEnabledAria': '프롬프트 탐색기',
'settings.openchamber.visual.field.promptNavigatorEnabled': '프롬프트 탐색기',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.autoSaveEnabledAria': '파일 자동 저장',
'settings.openchamber.visual.field.autoSaveEnabled': '파일 자동 저장',
'settings.openchamber.visual.field.autoSaveEnabledInfo': '입력을 멈춘 후 파일 편집 내용을 자동으로 저장합니다. 끄면 수동으로 저장해야 합니다.',
@@ -2105,4 +2227,5 @@ export const settingsDict = {
'settings.openchamber.visual.field.followUpBehaviorDescription': 'Choose what happens when you press Enter on a follow-up message while the agent is still responding.',
'settings.openchamber.visual.option.followUpBehavior.steer.label': 'Steer',
'settings.openchamber.visual.option.followUpBehavior.queue.label': 'Queue',
...thirdPartyIntegrationI18n.ko,
} as const;