Files
paseo/packages/app/src/i18n/resources/ko.ts
T
Mohamed BoudraandGitHub 42245d139a Add active-turn steering (#3394)
* feat(agents): add active-turn steering

Let users choose whether an immediate prompt interrupts or joins the active turn. The daemon owns exact-turn admission, provider delivery, safe fallback, and canonical timeline identity while queueing remains client-side.

* fix(agents): stabilize steering history and replay QA

* fix(agents): preserve steering timeline order

* fix(agents): reconcile resumed provider history

* fix(agents): serialize steering with cancellation

* test(agents): prove Claude multi-tool steering

* test(agents): force explicit history hydration

* fix(agents): flush output before steer admission
2026-08-16 13:58:40 +02:00

2497 lines
102 KiB
TypeScript

import type { TranslationResources } from "./en";
import { pluginSettings } from "./plugin-settings";
export const ko: TranslationResources = {
common: {
back: "뒤로",
loading: "불러오는 중...",
actions: {
back: "뒤로",
cancel: "취소",
close: "닫기",
copy: "복사",
dismiss: "닫기",
retry: "다시 시도",
search: "검색",
select: "선택",
},
placeholders: {
search: "검색...",
},
empty: {
noResults: "결과가 없습니다",
noOptionsMatchSearch: "검색과 일치하는 옵션이 없습니다.",
},
states: {
loading: "불러오는 중...",
starting: "시작 중...",
copied: "복사됨",
copiedLabel: "{{label}} 복사됨",
downloadComplete: "다운로드 완료",
downloadFailed: "다운로드 실패",
},
errors: {
error: "오류",
unableToSave: "저장할 수 없습니다",
nameRequired: "이름을 입력하세요",
daemonUnavailable: "데몬을 사용할 수 없습니다",
daemonClientUnavailable: "데몬 클라이언트를 사용할 수 없습니다",
daemonClientDisconnected: "데몬 클라이언트 연결이 끊어졌습니다",
noFileFound: "{{token}}에 해당하는 파일을 찾을 수 없습니다",
unexpectedDictationError: "받아쓰기를 처리하는 중 예기치 않은 오류가 발생했습니다.",
},
connectionStatus: {
online: "온라인",
connecting: "연결 중",
offline: "오프라인",
error: "오류",
idle: "대기 중",
},
},
shell: {
menu: {
toggleSidebar: "사이드바 토글",
open: "메뉴 열기",
close: "메뉴 닫기",
},
commandCenter: {
placeholder: "명령, 파일, 워크스페이스 및 에이전트 검색...",
filePlaceholder: "파일 검색...",
searchingFiles: "파일 검색 중...",
noMatches: "일치 항목 없음",
actions: "작업",
files: "파일",
workspaces: "워크스페이스",
agents: "에이전트",
newAgent: "새 에이전트",
addProject: "프로젝트 추가",
home: "홈",
groupByProject: "프로젝트별 그룹화",
groupByStatus: "상태별 그룹화",
modelGroupLabel: "모델",
modelSearchKeywords: "모델 전환 모델 변경 모델 설정 모델 선택",
thinkingGroupLabel: "추론",
thinkingSearchKeywords: "추론 수준 사고 생각",
modeGroupLabel: "모드",
modeSearchKeywords: "접근 권한 승인 모드",
planModeGroupLabel: "계획 모드",
planModeSearchKeywords: "계획 플랜 계획 모드",
fastModeGroupLabel: "빠르게",
fastModeSearchKeywords: "빠르게 속도 낮은 지연 시간",
settingOn: "켜짐",
settingOff: "꺼짐",
},
},
composer: {
placeholders: {
desktop: "에이전트에게 메시지를 보내거나 @files 태그, /commands, /skills를 사용하세요",
mobile: "메시지, @files, /commands",
fallback: "메시지...",
terminal: "Prompt",
},
input: {
accessibilityLabel: "에이전트에게 메시지...",
terminalAccessibilityLabel: "Terminal prompt",
focusHint: "{{shortcut}}로 포커스",
addAttachment: "첨부 추가",
interruptAgent: "에이전트 중단",
queueMessage: "메시지 대기열에 추가",
sendAndInterrupt: "보내고 중단",
sendAndSteer: "보내고 지시 추가",
sendMessage: "메시지 보내기",
queue: "대기열",
send: "보내기",
},
cancel: {
cancelingAgent: "에이전트 취소 중",
stopAgent: "에이전트 중지",
interrupt: "중단",
},
voice: {
enableVoiceMode: "음성 모드 켜기",
voiceMode: "음성 모드",
unmuteVoiceMode: "음성 모드 음소거 해제",
muteVoiceMode: "음성 모드 음소거",
stopDictation: "받아쓰기 중지",
startDictation: "받아쓰기 시작",
unmuteVoice: "음성 음소거 해제",
muteVoice: "음성 음소거",
dictation: "받아쓰기",
interruptBeforeVoice: "음성 모드를 시작하기 전에 에이전트를 중단하세요",
},
attachments: {
addImage: "이미지 추가",
pasteImage: "이미지 붙여넣기",
addFile: "파일 업로드",
addIssueOrPr: "이슈 또는 PR 추가",
addIssueOrPr_mr: "이슈 또는 MR 추가",
dropImagesHere: "여기에 이미지를 끌어다 놓으세요",
dropFilesHere: "여기에 파일을 끌어다 놓으세요",
editQueuedMessage: "대기 중인 메시지 편집",
sendQueuedMessageNow: "대기 중인 메시지 지금 보내기",
openImage: "이미지 첨부 열기",
removeImage: "이미지 첨부 제거",
removeFile: "파일 첨부 제거",
openGithub: "{{kind}} {{number}} 열기",
removeGithub: "{{kind}} {{number}} 제거",
element: "요소",
openBrowserElement: "브라우저 요소 첨부 열기",
removeBrowserElement: "브라우저 요소 첨부 제거",
openReview: "리뷰 첨부 열기",
removeReview: "리뷰 첨부 제거",
},
errors: {
failedToSend: "메시지를 보내지 못했습니다",
failedToCreateAgent: "에이전트를 생성하지 못했습니다",
noHostSelected: "선택된 호스트가 없습니다",
initialPromptRequired: "초기 프롬프트가 필요합니다",
alreadyLoading: "이미 불러오는 중입니다",
uploadFailed: "파일을 업로드하지 못했습니다",
noClipboardImage: "클립보드에 이미지가 없습니다.",
pasteImageFailed: "이미지를 붙여넣지 못했습니다.",
fileTooLarge: "{{fileName}}이(가) 너무 큽니다 (최대 {{size}})",
},
clientCommands: {
archiveAgent: "현재 에이전트 보관",
freshDraft: "이 에이전트를 보관하고 새 초안을 시작합니다",
},
github: {
searching: "검색 중...",
noResults: "결과가 없습니다.",
searchPlaceholder: "이슈와 PR 검색...",
searchPlaceholder_mr: "이슈 및 MR 검색...",
title: "이슈 또는 PR 첨부",
title_mr: "이슈 또는 MR 첨부",
},
},
agentControls: {
provider: {
fallback: "프로바이더",
select: "에이전트 프로바이더 선택",
},
thinking: {
title: "사고",
unknown: "알 수 없음",
extraHigh: "매우 높음",
select: "사고 옵션 선택",
selectWithValue: "사고 옵션 선택 ({{value}})",
},
model: {
unknown: "알 수 없는 모델",
},
features: {
title: "기능",
open: "에이전트 기능 열기",
on: "켜짐",
off: "꺼짐",
},
mode: {
title: "모드",
searchPlaceholder: "모드 검색...",
selectWithValue: "에이전트 모드 선택 ({{value}})",
},
hints: {
thinking: "사고 모드",
model: "모델 변경",
mode: "모드 변경",
},
},
agentStream: {
empty: "이 에이전트와 대화를 시작하세요...",
scrollToBottom: "맨 아래로 스크롤",
historyLoadFailed: "에이전트 기록을 로드할 수 없습니다.",
permission: {
plan: "계획",
required: "권한 필요",
deny: "거부",
accept: "수락",
implement: "구현",
question: "어떻게 진행할까요?",
proposedPlan: "제안된 계획",
},
},
agentPanel: {
states: {
notFound: "에이전트를 찾을 수 없습니다",
failedToLoad: "에이전트를 불러오지 못했습니다",
reconnecting: "다시 연결하는 중",
timelineSyncFailed: "에이전트 기록을 새로고침할 수 없습니다. 재시도 중…",
archivingTitle: "에이전트 보관 중...",
archivingSubtitle: "이 에이전트를 보관하는 동안 잠시 기다려 주세요.",
},
unavailable: {
selectedHost: "선택된 호스트",
unknownHost:
"{{serverLabel}}이(가) 이 기기에 구성되어 있지 않아 이 에이전트를 열 수 없습니다.",
addHost: "계속하려면 설정에서 호스트를 추가하거나 구성된 서버에서 에이전트를 여세요.",
preparingSession: "{{serverLabel}} 세션 준비 중...",
connecting: "{{serverLabel}}에 연결하는 중...",
showSoon: "잠시 후 이 에이전트를 표시합니다.",
showWhenOnline: "호스트가 온라인 상태가 되면 이 에이전트를 표시합니다.",
reconnectingTo: "{{serverLabel}}에 다시 연결하는 중...",
showAgainWhenReachable: "호스트에 연결되는 즉시 이 에이전트를 다시 표시합니다.",
},
archived: {
callout: "이 에이전트는 보관되었습니다",
unarchive: "보관 해제",
},
},
sessions: {
title: "기록",
empty: "아직 세션이 없습니다",
noMatches: "일치하는 세션이 없습니다",
tooManyMatches: "일치 항목이 너무 많습니다 — 검색 범위를 좁히세요",
hostLoadFailed: "{{host}}: 기록을 불러오지 못했습니다",
searchPlaceholder: "기록 검색",
actions: {
loadMore: "더 불러오기",
clearSearch: "검색 지우기",
},
},
agentList: {
fallbackTitle: "새 세션",
dateSections: {
recent: "최근",
today: "오늘",
yesterday: "어제",
thisWeek: "이번 주",
thisMonth: "이번 달",
older: "이전",
},
status: {
initializing: "시작 중",
idle: "대기 중",
running: "실행 중",
error: "오류",
closed: "종료됨",
},
badges: {
archived: "보관됨",
pending: "대기 {{count}}개",
attention: "주의",
},
archiveSheet: {
hostOffline: "호스트 오프라인",
runningAgent: "이 에이전트는 아직 실행 중입니다. 보관하면 에이전트가 중지됩니다.",
archive: "보관",
},
},
message: {
diagram: {
diagram: "다이어그램",
zoomIn: "확대",
zoomOut: "축소",
resetZoom: "보기 초기화",
viewSource: "소스 보기",
viewDiagram: "다이어그램 보기",
},
actions: {
copyCode: "코드 복사",
copyTurn: "턴 복사",
copyMessage: "메시지 복사",
forkMenu: "여기에서 채팅 분기",
forkInNewTab: "새 탭으로 분기",
forkInNewWorkspace: "새 워크스페이스로 분기",
forkUnavailable: "이를 사용하려면 호스트를 업데이트하세요.",
forkMissingWorkspace: "이 에이전트는 워크스페이스에 속해 있지 않습니다.",
forkFailed: "채팅을 분기하지 못했습니다.",
openFile: "파일 열기",
copied: "복사됨",
},
attachments: {
dismissImage: "이미지 닫기",
closeImage: "이미지 닫기",
imageLoadFailed: "이미지를 불러올 수 없습니다",
imageUnavailable: "이미지를 사용할 수 없습니다",
imagePreviewUnavailable: "이미지 미리보기를 사용할 수 없습니다.",
imagePreviewLoadFailed: "이미지 미리보기를 불러올 수 없습니다.",
review: "리뷰",
commentsOne: "댓글 1개",
commentsMany: "댓글 {{count}}개",
textAttachment: "텍스트 첨부",
text: "텍스트",
file: "파일",
},
speak: {
header: "말함",
},
activity: {
details: "세부 정보",
},
dictation: {
start: "음성 받아쓰기 시작",
cancel: "받아쓰기 취소",
retry: "받아쓰기 다시 시도",
insert: "전사 삽입",
insertAndSend: "전사 삽입 후 보내기",
failed: "받아쓰기 실패: {{error}}",
failedRetry: "받아쓰기에 실패했습니다. 다시 시도하려면 누르세요.",
},
question: {
submit: "제출",
next: "다음",
answerPlaceholder: "답변을 입력하세요...",
otherPlaceholder: "기타...",
},
todo: {
title: "작업",
empty: "아직 작업이 없습니다.",
tasksProgress: "작업 {{completed}}/{{total}}개",
tasksProgressCurrent: "작업 {{completed}}/{{total}}개 · {{task}}",
activity: {
created: "작업 {{count}}개 생성",
added: "추가됨",
started: "시작됨",
completed: "완료됨",
reopened: "다시 열림",
},
},
compaction: {
loading: "압축하는 중...",
auto: "컨텍스트가 자동으로 압축되었습니다",
manual: "컨텍스트가 수동으로 압축되었습니다",
withTokens: "컨텍스트가 압축되었습니다 ({{tokens}}K 토큰)",
completed: "컨텍스트가 압축되었습니다",
},
},
importSession: {
title: "세션 가져오기",
filters: {
all: "전체",
},
status: {
connectHost: "세션을 가져오려면 호스트에 연결하세요",
updateHost: "세션을 가져오려면 호스트를 업데이트하세요.",
noProviders: "가져올 수 있는 프로바이더가 활성화되어 있지 않습니다.",
loading: "최근 세션을 불러오는 중...",
failedAll: "최근 세션을 불러올 수 없습니다.",
failedProviders: "{{providers}}의 세션을 불러올 수 없습니다.",
failedImport: "선택한 세션을 가져올 수 없습니다.",
},
actions: {
refresh: "세션 새로고침",
},
preview: {
untitledSession: "제목 없는 세션",
noPrompt: "프롬프트 미리보기 없음",
},
empty: {
noRecent: "가져올 최근 세션이 없습니다.",
alreadyImported: "최근 세션이 모두 이미 가져와졌습니다.",
noProviderSessions: "{{provider}} 세션을 찾을 수 없습니다.",
},
row: {
importing: "가져오는 중...",
},
},
workspace: {
route: {
loading: "워크스페이스 불러오는 중",
connecting: "연결 중",
hostOffline: "{{hostName}}이(가) 오프라인입니다",
cannotReachHost: "{{hostName}}에 연결할 수 없습니다",
hostStatus: "호스트 상태: {{status}}",
needsHostUpgrade: "이 워크스페이스를 복원하려면 호스트를 업데이트하세요.",
manageHost: "호스트 관리",
recovery: {
archivedTitle: "워크스페이스가 보관되었습니다",
restoreDescription:
"{{workspaceName}}가 보관되고 워크트리가 제거되었습니다. 다시 열려면 {{branch}} 브랜치를 복원하세요.",
unarchiveDescription: "{{workspaceName}}가 보관되었습니다. 다시 열려면 보관을 취소하세요.",
restoreAction: "복원",
unarchiveAction: "보관 취소",
restoringTitle: "워크스페이스 복원 중",
restoringAction: "복원 중...",
unavailableTitle: "워크스페이스를 사용할 수 없습니다",
checkFailedTitle: "워크스페이스를 확인하지 못했습니다",
},
},
hoverCard: {
scriptsAccessibility: "워크스페이스 스크립트",
copyPath: "경로 복사",
copyBranchName: "브랜치 이름 복사",
copied: "복사됨",
},
fileActions: {
openFile: "파일 열기",
copyPath: "경로 복사",
copyRelativePath: "상대 경로 복사",
revealIn: "{{target}}에서 보기",
download: "다운로드",
addToChat: "채팅에 추가",
moreActions: "추가 작업",
newFile: "새 파일",
newFolder: "새 폴더",
collapseFolder: "폴더 접기",
rename: "이름 바꾸기",
duplicate: "복제",
revert: "변경 사항 버리기",
delete: "삭제",
confirmDelete: {
fileTitle: "파일을 삭제할까요?",
folderTitle: "폴더를 삭제할까요?",
message: '"{{name}}"이(가) 영구적으로 삭제됩니다.',
confirm: "삭제",
cancel: "취소",
},
confirmRevert: {
title: "변경 사항을 버릴까요?",
message: '"{{name}}"의 변경 사항이 영구적으로 삭제됩니다.',
confirm: "버리기",
cancel: "취소",
failed: "변경 사항을 버리지 못했습니다",
},
},
fileExplorer: {
sort: {
name: "이름",
modified: "수정일",
size: "크기",
},
context: {
size: "크기",
modified: "수정일",
},
actions: {
back: "뒤로",
retry: "다시 시도",
refresh: "파일 새로고침",
refreshing: "파일 새로고침 중",
hideHiddenFiles: "숨겨진 파일 숨기기",
showHiddenFiles: "숨겨진 파일 표시",
},
empty: {
noFiles: "파일 없음",
noVisibleFiles: "표시되는 파일이 없습니다.",
},
states: {
unavailable: "워크스페이스를 사용할 수 없습니다",
loading: "파일 불러오는 중...",
},
errors: {
failedToListDirectory: "디렉터리 목록을 불러오지 못했습니다",
createFailed: "항목을 만들지 못했습니다",
renameFailed: "항목 이름을 바꾸지 못했습니다",
duplicateFailed: "항목을 복제하지 못했습니다",
revealFailed: "항목을 표시하지 못했습니다",
deleteFailed: "항목을 삭제하지 못했습니다",
},
draft: {
filePlaceholder: "파일 이름",
folderPlaceholder: "폴더 이름",
},
},
setup: {
descriptor: {
label: "설정",
completed: "설정 완료",
failed: "설정 실패",
workspace: "워크스페이스 설정",
},
status: {
running: "실행 중",
completed: "완료됨",
failed: "실패함",
waiting: "설정 출력을 기다리는 중",
},
waiting: "워크스페이스 설정 중...",
empty: {
noCommands: "이 워크스페이스에서 실행된 설정 명령이 없습니다.",
},
accessibility: {
noCommands: "이 워크스페이스에서 실행된 설정 명령이 없습니다",
log: "워크스페이스 설정 로그",
},
log: {
noOutput: "출력 없음",
},
},
browser: {
unavailable: {
title: "브라우저는 데스크톱 전용입니다",
subtitle: "내장 브라우저를 사용하려면 이 워크스페이스를 Electron에서 여세요.",
},
session: "브라우저 세션 {{browserId}}",
controls: {
back: "뒤로",
forward: "앞으로",
stopLoading: "로딩 중지",
refresh: "새로고침",
browserUrl: "브라우저 URL",
enterUrl: "URL 입력",
openDevTools: "브라우저 개발자 도구 열기",
cancelSelector: "요소 선택기 취소",
annotateElement: "요소에 주석 달기",
screenshotElement: "요소 스크린샷",
screenshotCopied: "스크린샷을 클립보드에 복사했습니다.",
elementCopied: "요소를 클립보드에 복사했습니다.",
screenshotFailed: "스크린샷을 복사할 수 없습니다.",
selectorLoading: "페이지 로딩이 끝날 때까지 기다려 주세요.",
selectorFailed: "요소 선택기를 시작할 수 없습니다.",
},
annotate: {
title: "요소에 주석 달기",
placeholder: "이 요소에 관해 에이전트에게 보낼 메시지…",
submit: "첨부",
cancel: "취소",
},
devices: {
label: "장치 크기",
responsive: "반응형",
},
errors: {
failedToLoad: "페이지를 불러오지 못했습니다",
invalidUrl: "잘못된 브라우저 URL",
unsupportedProtocol: "지원되지 않는 브라우저 URL을 차단했습니다: {{protocol}}",
},
},
terminal: {
hostDisconnected: "호스트가 연결되어 있지 않습니다",
updateHost: "기본 터미널 렌더러를 사용하도록 호스트를 업데이트합니다.",
unableToSubscribe: "터미널을 구독할 수 없습니다",
},
tabs: {
loading: "불러오는 중...",
modified: "저장되지 않은 변경사항",
loadingAgentTitle: "에이전트 제목 불러오는 중",
emptyPane: "이 창에 탭이 없습니다.",
fallback: {
newAgent: "새 에이전트",
setup: "설정",
workspaceSetup: "워크스페이스 설정",
terminal: "터미널",
browser: "브라우저",
agent: "에이전트",
workspace: "워크스페이스",
},
switcher: {
trigger: "탭 전환 ({{count}}개 열림)",
title: "탭 전환",
searchPlaceholder: "탭 검색",
},
menu: {
openFor: "{{label}}의 메뉴 열기",
copyResumeCommand: "재개 명령 복사",
copyAgentId: "에이전트 ID 복사",
copyTerminalId: "터미널 ID 복사",
copyFilePath: "파일 경로 복사",
rename: "이름 변경",
closeAbove: "위쪽 탭 닫기",
closeBelow: "아래쪽 탭 닫기",
closeLeft: "왼쪽 탭 닫기",
closeRight: "오른쪽 탭 닫기",
closeOthers: "다른 탭 닫기",
reloadAgent: "에이전트 다시 로드",
reloadAgentTooltip:
"스킬, MCP 또는 로그인 상태를 업데이트하려면 에이전트를 다시 로드하세요.",
close: "닫기",
renameTerminal: "터미널 이름 변경",
renameAgent: "에이전트 이름 변경",
},
actions: {
newAgent: "새 에이전트",
newTerminal: "새 터미널",
preparingTerminal: "터미널 탭 준비 중",
preparingTerminalTooltip: "터미널 준비 중...",
newBrowser: "새 브라우저",
exitFocusMode: "집중 모드 종료",
splitRight: "창을 오른쪽으로 분할",
splitDown: "창을 아래로 분할",
terminalProfilesMenu: "터미널 프로필",
editTerminalProfiles: "프로필 편집…",
pinTarget: "고정",
unpinTarget: "고정 해제",
},
explorer: {
open: "탐색기 열기",
close: "탐색기 닫기",
toggle: "탐색기 토글",
changes: "변경 사항",
files: "파일",
},
toasts: {
copyFailed: "복사 실패",
agentIdCopiedLabel: "에이전트 ID",
terminalIdCopiedLabel: "터미널 ID",
resumeCommandCopiedLabel: "재개 명령",
filePathCopiedLabel: "파일 경로",
resumeIdUnavailable: "재개 ID를 사용할 수 없습니다",
resumeCommandUnavailable: "재개 명령을 사용할 수 없습니다",
reloadingAgent: "에이전트 다시 로드 중...",
reloadedAgent: "에이전트를 다시 로드했습니다",
failedToReloadAgent: "에이전트를 다시 로드하지 못했습니다",
failedToCloseAgent: "에이전트를 닫지 못했습니다",
},
confirmations: {
close: "닫기",
cancel: "취소",
archive: "보관",
unsavedTitle: "저장되지 않은 변경사항",
unsavedMessage: "이 탭에는 저장되지 않은 변경사항이 있습니다. 닫으면 초안이 삭제됩니다.",
closeWithoutSaving: "저장하지 않고 닫기",
closePaneTitle: "창을 닫으시겠어요?",
bulkUnsaved:
"{{count}} 탭에 저장되지 않은 변경 사항이 있습니다. 종료하면 해당 초안이 삭제됩니다.",
closeTerminalTitle: "터미널을 닫을까요?",
closeTerminalMessage: "이 터미널에서 실행 중인 프로세스가 즉시 중지됩니다.",
archiveRunningAgentTitle: "실행 중인 에이전트를 보관할까요?",
archiveRunningAgentMessage:
"이 에이전트는 아직 실행 중입니다. 보관하면 에이전트가 중지되고 탭이 닫힙니다.",
closeTabsLeftTitle: "왼쪽 탭을 닫을까요?",
closeTabsRightTitle: "오른쪽 탭을 닫을까요?",
closeOtherTabsTitle: "다른 탭을 닫을까요?",
bulk: {
all: "에이전트 {{agents}}개를 보관하고, 터미널 {{terminals}}개를 닫고, 탭 {{tabs}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.",
agentsAndTerminals:
"에이전트 {{agents}}개를 보관하고 터미널 {{terminals}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.",
terminalsAndTabs:
"터미널 {{terminals}}개를 닫고 탭 {{tabs}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.",
agentsAndTabs: "에이전트 {{agents}}개를 보관하고 탭 {{tabs}}개를 닫습니다.",
terminals:
"터미널 {{terminals}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.",
tabs: "탭 {{tabs}}개를 닫습니다.",
agents: "에이전트 {{agents}}개를 보관합니다.",
},
},
},
header: {
actions: {
workspaceActions: "워크스페이스 작업",
newAgent: "새 에이전트",
newTerminal: "새 터미널",
newBrowser: "새 브라우저 탭",
importSession: "세션 가져오기",
copyPath: "워크스페이스 경로 복사",
copyBranchName: "브랜치 이름 복사",
showSetup: "설정 표시",
},
toasts: {
workspacePathUnavailable: "워크스페이스 경로를 아직 사용할 수 없습니다",
branchNameUnavailable: "브랜치 이름을 사용할 수 없습니다",
terminalQueued: "워크스페이스 준비 중, 준비되면 터미널을 엽니다...",
workspacePathCopiedLabel: "워크스페이스 경로",
branchNameCopiedLabel: "브랜치 이름",
},
},
scripts: {
title: "스크립트",
actions: {
chooseUrl: "URL를 선택하세요",
copyUrl: "URL 복사",
openService: "서비스 보기",
restart: "다시 시작",
run: "실행",
stop: "중지",
view: "터미널 보기",
},
accessibility: {
trigger: "워크스페이스 스크립트",
openService: "{{scriptName}} 서비스 보기",
viewTerminal: "{{scriptName}} 터미널 보기",
runScript: "{{scriptName}} 스크립트 실행",
stopScript: "{{scriptName}} 중지",
restartScript: "{{scriptName}} 다시 시작",
copyUrl: "{{scriptName}} URL 복사",
chooseUrl: "{{scriptName}}의 URL 선택",
script: "{{scriptName}} 스크립트",
},
routes: {
public: "역방향 프록시",
paseo: "간편 주소",
direct: "직접",
},
states: {
exitCode: "종료 {{code}}",
startFailed: "{{scriptName}}을(를) 시작하지 못했습니다",
stopFailed: "{{scriptName}}를 중지하지 못했습니다.",
},
},
git: {
actions: {
moreOptions: "옵션 더 보기",
moreActions: "작업 더 보기",
commit: {
label: "커밋",
pending: "커밋하는 중...",
success: "커밋됨",
},
pull: {
label: "풀",
pending: "가져오는 중...",
success: "가져옴",
},
push: {
label: "푸시",
pending: "푸시하는 중...",
success: "푸시됨",
},
pullAndPush: {
label: "풀 후 푸시",
pending: "가져온 뒤 푸시하는 중...",
success: "가져온 뒤 푸시됨",
},
viewPr: "PR 보기",
viewPr_mr: "MR 보기",
createPr: {
label: "PR 생성",
pending: "PR 생성 중...",
success: "PR 생성됨",
label_mr: "MR 생성",
pending_mr: "MR 생성 중...",
success_mr: "MR 생성됨",
},
mergeBranch: {
label: "로컬에서 병합",
pending: "병합하는 중...",
success: "병합됨",
},
mergeFromBase: {
label: "{{baseRef}}에서 업데이트",
pending: "업데이트하는 중...",
success: "업데이트됨",
},
archive: {
label: "워크스페이스 보관",
pending: "보관하는 중...",
success: "보관됨",
},
mergePr: {
squash: "PR 병합(스쿼시)",
merge: "PR 병합(병합)",
rebase: "PR 병합(리베이스)",
pending: "PR 병합 중...",
success: "PR 병합됨",
squash_mr: "MR 병합(스쿼시)",
merge_mr: "MR 병합(병합)",
rebase_mr: "MR 병합(리베이스)",
pending_mr: "MR 병합 중...",
success_mr: "MR 병합됨",
},
autoMerge: {
enableSquash: "자동 병합(스쿼시)",
enableMerge: "자동 병합(병합)",
enableRebase: "자동 병합(리베이스)",
enabled: "자동 병합 사용 설정됨",
enabling: "자동 병합 사용 설정 중...",
disabling: "자동 병합 해제 중...",
disabled: "자동 병합 해제됨",
},
unavailable: {
viewPrNoForge: "{{brand}}가 연결되지 않아 지금은 {{noun}} 보기를 사용할 수 없습니다.",
pullNoRemote: "이 브랜치가 아직 원격에 연결되어 있지 않아 여기서 풀을 사용할 수 없습니다",
pullDirty: "로컬 변경 사항이 있어 풀을 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요",
pullUpToDate: "이 브랜치가 이미 최신 상태이므로 풀을 사용할 수 없습니다",
pushNoRemote:
"이 브랜치가 아직 원격에 연결되어 있지 않아 여기서 푸시를 사용할 수 없습니다",
pushBehind: "먼저 가져와야 할 최신 변경 사항이 있어 아직 푸시를 사용할 수 없습니다",
pushNothing: "새로 보낼 항목이 없어 푸시를 사용할 수 없습니다",
pullAndPushNoRemote:
"이 브랜치가 아직 원격에 연결되어 있지 않아 여기서 풀 후 푸시를 사용할 수 없습니다",
pullAndPushDirty:
"로컬 변경 사항이 있어 풀 후 푸시를 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요",
pullAndPushNoIncoming:
"먼저 가져올 변경 사항이 없으므로 풀 후 푸시를 사용할 수 없습니다.",
pullAndPushInSync: "이 브랜치가 이미 동기화되어 있어 풀 후 푸시를 사용할 수 없습니다",
pullAndPushNothingToPush: "풀 이후 새로 푸시할 내용이 없습니다.",
createPrNoForge:
"{{brand}}가 연결되어 있지 않기 때문에 지금은 {{noun}} 생성을 사용할 수 없습니다.",
createPrNoCommits: "이 브랜치에 아직 새 커밋이 없어 PR 생성을 사용할 수 없습니다",
mergeNoBase: "기준 브랜치를 확인할 수 없어 병합을 사용할 수 없습니다",
mergeDirty:
"로컬 변경 사항이 있어 병합을 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요",
mergeNothing: "이 브랜치에 아직 병합할 새 항목이 없어 병합을 사용할 수 없습니다",
updateNoBase: "기준 브랜치를 확인할 수 없어 업데이트를 사용할 수 없습니다",
updateDirty:
"로컬 변경 사항이 있어 업데이트를 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요",
updateCurrent:
"이 브랜치가 이미 {{baseRef}}와 최신 상태이므로 업데이트를 사용할 수 없습니다",
mergePrNoGithub: "GitHub가 연결되어 있지 않아 지금은 PR 병합을 사용할 수 없습니다",
archiveNotWorktree:
"이 워크스페이스가 Paseo 워크트리로 생성되지 않아 여기서 보관을 사용할 수 없습니다",
mergePrNoForge:
"{{brand}}가 연결되어 있지 않기 때문에 지금은 {{noun}} 병합을 사용할 수 없습니다.",
mergePrMissing: "아직 풀 리퀘스트가 없어 PR 병합을 사용할 수 없습니다",
mergePrDraft: "풀 리퀘스트가 아직 초안이라 PR 병합을 사용할 수 없습니다",
mergePrMerged: "풀 리퀘스트가 이미 병합되어 PR 병합을 사용할 수 없습니다",
mergePrClosed: "풀 리퀘스트가 닫혀 있어 PR 병합을 사용할 수 없습니다",
mergePrConflicts: "풀 리퀘스트에 충돌이 있어 PR 병합을 사용할 수 없습니다",
mergePrQueue: "이 저장소는 병합 대기열을 사용하므로 여기서 PR 병합을 사용할 수 없습니다",
mergePrNotReady:
"{{brand}}에서 {{noun}}의 병합 준비가 확인될 때까지 {{noun}}을(를) 병합할 수 없습니다.",
autoMergeCannotDisable: "자동 병합이 사용 설정되어 있지만 이 계정은 해제할 수 없습니다",
},
toasts: {
failedCommit: "커밋하지 못했습니다",
failedPull: "가져오지 못했습니다",
failedPush: "푸시하지 못했습니다",
failedPullAndPush: "풀 후 푸시하지 못했습니다",
failedCreatePr: "PR을 생성하지 못했습니다",
failedMergePr: "PR을 병합하지 못했습니다",
failedEnableAutoMerge: "자동 병합을 사용 설정하지 못했습니다",
failedDisableAutoMerge: "자동 병합을 해제하지 못했습니다",
baseRefUnavailable: "기준 ref를 사용할 수 없습니다",
failedMerge: "병합하지 못했습니다",
failedMergeFromBase: "기준에서 병합하지 못했습니다",
},
archiveWarning: {
title: '"{{workspaceName}}"를 보관하시겠습니까?',
confirm: "보관",
cancel: "취소",
uncommittedChanges: "커밋되지 않은 변경 사항",
uncommittedChangesWithDiff: "커밋되지 않은 변경 사항 ({{diffStat}})",
addedLine: "추가된 줄 {{count}}개",
addedLines: "추가된 줄 {{count}}개",
deletedLine: "삭제된 줄 {{count}}개",
deletedLines: "삭제된 줄 {{count}}개",
unpushedCommit: "푸시되지 않은 커밋 {{count}}개",
unpushedCommits: "푸시되지 않은 커밋 {{count}}개",
},
},
diff: {
openChangesTab: "변경사항 탭 열기",
closeChangesTab: "변경사항 탭 닫기",
binaryFile: "바이너리 파일",
tooLarge: "표시하기에 diff가 너무 큽니다",
previewTooLargeTitle: "Diff가 너무 커서 미리 볼 수 없습니다",
previewTooLargeDescription: "여기에서 미리 보려면 비교 범위를 좁히세요.",
unified: "통합 diff",
split: "나란히 보기 diff",
switchToUnified: "통합 diff로 전환",
switchToSplit: "나란히 보기 diff로 전환",
showTreeView: "폴더 트리 표시",
showFlatView: "플랫 파일 목록 표시",
options: "Diff 옵션",
hideWhitespace: "공백 숨기기",
showWhitespace: "공백 표시",
scrollLongLines: "긴 줄 스크롤",
wrapLongLines: "긴 줄 줄바꿈",
collapseAll: "모든 파일 접기",
expandAll: "모든 파일 펼치기",
collapseAllFolders: "모든 폴더 축소",
expandAllFolders: "모든 폴더 확장",
refreshing: "새로고침 중",
refresh: "새로고침",
refreshState: "Git 및 {{brand}} 상태 새로고침",
failedRefresh: "Git 상태를 새로고침하지 못했습니다.",
emptyHiddenWhitespace: "공백을 숨긴 후 표시할 변경 사항이 없습니다",
emptyUncommitted: "커밋되지 않은 변경 사항이 없습니다",
emptyAgainstBase: "{{baseRef}} 대비 변경 사항이 없습니다",
checkingRepository: "저장소 확인 중...",
notRepository: "Git 저장소가 아닙니다",
diffMode: "Diff 모드",
uncommitted: "커밋되지 않음",
committed: "커밋됨",
branchUnknown: "알 수 없음",
base: "기준",
newFile: "신규",
deletedFile: "삭제됨",
commits: {
title: "커밋",
countLabel: "워크스페이스 커밋 {{count}}개",
noneAhead: "아직 {{baseRef}}보다 앞서 커밋이 없습니다.",
fileDiffEmpty: "표시할 변경사항이 없습니다.",
fileDiffError: "파일 diff를 불러오지 못했습니다.",
loading: "커밋 로드 중…",
loadError: "커밋을 로드하지 못했습니다.",
empty: "아직 커밋이 없습니다.",
},
},
openInEditor: {
open: "열기",
chooseEditor: "편집기 선택",
openIn: "{{target}}에서 워크스페이스 열기",
openFileIn: "{{target}}에서 {{fileName}} 열기",
failedOpen: "워크스페이스를 열지 못했습니다",
},
pr: {
actions: {
viewPullRequest: "보기",
openOn: "{{brand}}에서 열기",
},
checksSummary: {
passedLabel: "통과",
failedLabel: "실패",
runningLabel: "진행 중",
passedAccessible: "검사 통과",
failedAccessible: "검사 실패",
runningAccessible: "검사 진행 중",
},
sections: {
checks: "검사",
pipeline: "파이프라인",
reviews: "리뷰",
},
empty: {
noJobs: "작업 없음",
loadingPipeline: "파이프라인 로드 중…",
pipelineJobsLoadFailed: "파이프라인 작업을 로드할 수 없습니다.",
allowedToFail: "실패가 허용됨",
},
approvals: "{{required}} 중 {{given}} 승인",
accessibility: {
pullRequest: "풀 리퀘스트 #{{number}}",
pullRequest_mr: "병합 요청 !{{number}}",
},
states: {
draft: "초안",
merged: "병합됨",
closed: "닫힘",
open: "열림",
},
activity: {
commented: "댓글 작성됨",
approved: "승인됨",
requestedChanges: "변경 요청됨",
reviewed: "리뷰됨",
},
time: {
justNow: "방금",
},
thread: {
discussion: "토론 스레드",
},
errors: {
statusLoadFailed: "풀 리퀘스트 상태를 불러올 수 없습니다",
activityLoadFailed: "풀 리퀘스트 활동을 불러올 수 없습니다",
},
},
forgeSetup: {
installCli: "{{brand}} 기능을 사용하려면 {{cli}} CLI를 설치하세요.",
signIn: "{{brand}} 기능을 사용하려면 {{command}}를 실행하세요.",
generic: "해당 기능을 사용하려면 이 호스트에 {{brand}}를 설정하세요.",
},
},
},
sidebar: {
display: {
trigger: "표시 설정",
heading: "표시",
grouping: {
label: "그룹화",
project: "프로젝트",
status: "상태",
},
titleSource: {
label: "제목",
title: "제목",
branch: "브랜치 이름",
},
show: {
label: "표시 항목",
branch: "브랜치",
project: "프로젝트",
host: "호스트",
changeRequest: "풀 리퀘스트",
checks: "검사",
services: "서비스",
diff: "Diff 통계",
timestamp: "마지막 활동",
},
checks: {
iconAndText: "아이콘 및 텍스트",
icon: "아이콘만",
none: "숨김",
},
hostFilter: {
label: "호스트",
all: "모든 호스트",
},
},
pinned: {
title: "고정됨",
},
host: {
noHost: "호스트 없음",
switchTitle: "호스트 전환",
searchPlaceholder: "호스트 검색...",
},
actions: {
addProject: "프로젝트 추가",
newWorkspace: "새 워크스페이스",
hosts: "호스트",
home: "홈",
settings: "설정",
closeSidebar: "사이드바 닫기",
},
help: {
trigger: "도움말 및 지원",
sectionHelp: "도움말",
diagnostics: "진단 실행",
shortcuts: "키보드 단축키",
reportIssue: "문제 신고",
discord: "Discord",
github: "GitHub 이슈 만들기",
whatsNew: "새로운 소식",
appName: "Paseo",
},
sections: {
sessions: "기록",
schedules: "일정",
},
worktreeSetup: {
title: "워크트리 스크립트 설정",
description:
"새 워크트리가 의존성을 설치하고 자동으로 준비될 수 있도록 설정 명령을 추가하세요.",
openProjectSettings: "프로젝트 설정 열기",
},
project: {
actions: {
menu: "프로젝트 작업",
openSettings: "프로젝트 설정 열기",
openNewWindow: "새 창에서 열기",
openNewWindowFailed: "새 창을 열 수 없습니다",
openFolder: "파일 관리자에서 열기",
openFolderFailed: "폴더를 열 수 없습니다.",
remove: "프로젝트 제거",
removing: "제거하는 중...",
},
confirmations: {
removeTitle: "프로젝트를 제거할까요?",
removeMessage:
'"{{projectName}}"을(를) 사이드바에서 제거할까요?\n\n디스크의 파일은 변경되지 않습니다.',
removeConfirm: "제거",
cancel: "취소",
},
toasts: {
hostDisconnected: "호스트가 연결되어 있지 않습니다",
removeFailed: "일부 워크스페이스를 제거하지 못했습니다",
updateHostToRemove: "프로젝트를 제거하려면 호스트를 업데이트하세요.",
},
empty: {
title: "아직 프로젝트가 없습니다",
description: "시작하려면 프로젝트를 추가하세요",
},
},
workspace: {
status: {
serviceRunning: "서비스 {{name}} 실행 중",
serviceUnhealthy: "서비스 {{name}} 비정상",
creating: "생성하는 중...",
},
actions: {
menu: "워크스페이스 작업",
newWorkspace: "새 워크스페이스",
showMore: "더 보기",
showLess: "간략히 보기",
createWorkspaceFor: "{{projectName}}을(를) 위한 새 워크스페이스 생성",
copyPath: "경로 복사",
copyBranchName: "브랜치 이름 복사",
rename: "워크스페이스 이름 변경",
pin: "상단에 고정",
unpin: "고정 해제",
archive: "보관",
archiveWorkspace: "워크스페이스 보관",
hideFromSidebar: "사이드바에서 숨기기",
archiving: "보관하는 중...",
hiding: "숨기는 중...",
},
confirmations: {
hideTitle: "워크스페이스를 숨길까요?",
hideMessage:
'"{{workspaceName}}"을(를) 사이드바에서 숨길까요?\n\n디스크의 파일은 변경되지 않습니다.',
hideConfirm: "숨기기",
cancel: "취소",
},
rename: {
title: "워크스페이스 이름 변경",
submit: "이름 변경",
invalidBranchName: "잘못된 브랜치 이름",
},
toasts: {
workspacePathUnavailable: "워크스페이스 경로를 사용할 수 없습니다",
pathCopied: "경로가 복사되었습니다",
branchNameCopied: "브랜치 이름이 복사되었습니다",
hostDisconnected: "호스트가 연결되어 있지 않습니다",
hideFailed: "워크스페이스를 숨기지 못했습니다",
archiveFailed: "워크스페이스를 보관하지 못했습니다.",
},
},
},
newWorkspace: {
title: "새 워크스페이스",
create: "생성",
isolation: {
local: "로컬",
worktree: "새 워크트리",
label: "격리",
},
fields: {
project: "프로젝트",
base: "기준",
baseNotApplicable: "해당 없음",
},
titlePlaceholder: "제목(선택 사항)",
errors: {
hostDisconnected: "호스트가 연결되어 있지 않습니다",
createWorktreeFailed: "워크트리를 생성하지 못했습니다",
composerStateRequired: "작성기 상태가 필요합니다",
selectModel: "모델을 선택하세요",
},
tooltips: {
project: "Choose the project",
host: "Choose the host",
isolation: "Choose the isolation level",
startingRef: "시작 위치를 선택하세요",
launch: "Choose what to launch",
},
refPicker: {
startingRef: "시작 ref",
intoBase: "{{baseRef}}(으)로",
searching: "검색 중...",
noMatchingRefs: "일치하는 ref가 없습니다.",
searchPlaceholder: "브랜치와 PR 검색",
title: "시작 위치",
},
launch: {
title: "What to launch",
chat: "Chat",
terminal: "Terminal",
manageProfiles: "Manage profiles",
submit: "Launch",
promptPlaceholder: "Prompt {{name}}",
commandPlaceholder: "Run a command, or leave empty for a blank terminal",
},
},
desktop: {
quitting: {
title: "Paseo 종료 중...",
detail: "로컬 데몬을 중지하는 중입니다.",
},
daemon: {
title: "데몬",
status: {
title: "상태",
builtInOnly: "여기에는 내장 데스크톱 데몬만 표시됩니다",
running: "실행 중",
notRunning: "실행 중이 아님",
pid: "PID {{pid}}",
},
management: {
title: "내장 데몬 관리",
hint: "Paseo가 내장 데몬을 시작하고 중지하도록 허용합니다",
pauseTitle: "내장 데몬 일시 중지",
pauseMessage:
"내장 데몬이 즉시 중지됩니다. 내장 데몬에 연결된 실행 중인 에이전트와 터미널이 중지됩니다.",
pauseAndStop: "일시 중지 후 중지",
registrationFailed:
"내장 데몬이 시작되었지만 Paseo가 localhost 연결을 저장하지 못했습니다. 데몬 관리를 껐다가 다시 켜거나 localhost를 수동으로 추가하세요.",
pausedStopFailed: "내장 데몬 관리가 일시 중지되었지만 Paseo가 데몬을 중지하지 못했습니다.",
updateFailed: "내장 데몬 관리를 업데이트할 수 없습니다.",
},
keepRunning: {
title: "종료 후에도 데몬 계속 실행",
hint: "Paseo를 종료해도 데몬이 계속 실행됩니다",
},
logs: {
title: "로그 파일",
modalTitle: "데몬 로그",
unavailable: "로그 경로를 사용할 수 없습니다",
empty: "(로그 파일이 비어 있습니다)",
copied: "로그 경로가 복사되었습니다.",
copyFailed: "로그 경로를 복사할 수 없습니다.",
open: "로그 열기",
copyPath: "경로 복사",
},
fullStatus: {
title: "전체 상태",
modalTitle: "데몬 상태",
hint: "`paseo daemon status`를 실행하고 출력을 표시합니다",
view: "상태 보기",
copied: "상태가 클립보드에 복사되었습니다.",
fetchFailed: "데몬 상태를 가져오지 못했습니다: {{message}}",
},
advancedSettings: "고급 설정",
openAdvancedSettings: "고급 데몬 설정 열기",
versionMismatch:
"앱과 데몬의 버전이 일치하지 않습니다. 최상의 경험을 위해 둘 다 동일한 버전으로 업데이트하세요.",
loadFailed: "데스크톱 데몬 상태를 불러올 수 없습니다.",
},
updates: {
status: {
checking: "앱 업데이트 확인 중...",
installing: "앱 업데이트 설치 중...",
upToDate: "앱이 최신 상태입니다.",
upToDateWithLastChecked: "최신 상태입니다. 마지막 확인: {{time}}.",
pending: "업데이트가 준비되면 알려드리겠습니다.",
pendingWithLastChecked:
"업데이트가 준비되면 알려드리겠습니다. {{time}}에서 마지막으로 확인했습니다.",
pendingWithVersion: "업데이트 발견: {{version}}. 다운로드 중...",
pendingWithVersionAndLastChecked:
"업데이트 발견: {{version}}. 다운로드 중... {{time}}에서 마지막으로 확인했습니다.",
availableWithVersion: "업데이트 준비됨: {{version}}",
availableWithVersionAndLastChecked:
"업데이트 준비됨: {{version}}. {{time}}에서 마지막으로 확인했습니다.",
available: "설치할 앱 업데이트가 준비되었습니다.",
availableWithLastChecked:
"앱 업데이트를 설치할 준비가 되었습니다. {{time}}에서 마지막으로 확인했습니다.",
installed: "앱 업데이트가 설치되었습니다. 재시작이 필요합니다.",
failed: "앱을 업데이트하지 못했습니다.",
idle: "업데이트 상태를 아직 확인하지 않았습니다.",
},
installError: "데스크톱 앱 업데이트를 설치할 수 없습니다.",
callout: {
installingTitle: "업데이트 설치 중",
failedTitle: "업데이트 실패",
availableTitle: "업데이트 사용 가능",
genericError: "문제가 발생했습니다.",
whatsNew: "새로운 기능",
installingAction: "설치 중...",
installAndRestart: "설치 후 재시작",
installingDescription: "설치 후 재시작 중...",
versionReady: "{{version}} 설치가 준비되었습니다.",
newVersionReady: "새 버전 설치가 준비되었습니다.",
restartWarning: "앱을 업그레이드하면 실행 중인 에이전트가 중지되고 터미널 세션이 닫힙니다.",
},
},
settings: {
loadFailed: "데스크톱 설정을 불러올 수 없습니다.",
saveFailed: "데스크톱 설정을 저장할 수 없습니다.",
},
rosetta: {
title: "Apple Silicon 빌드 다운로드",
runningIntel: "Apple Silicon에서 Rosetta로 Paseo의 Intel 빌드를 실행하고 있습니다.",
highCpu:
"이로 인해 CPU 사용량이 높아집니다. 이를 해결하려면 Apple Silicon 빌드를 다운로드하세요.",
download: "다운로드",
},
permissions: {
notifications: {
allowed: "OS에서 알림이 허용되어 있습니다.",
denied: "시스템 설정에서 알림이 거부되어 있습니다.",
notGranted: "알림이 아직 허용되지 않았습니다.",
webOnly: "데스크톱 알림 상태는 웹 런타임에서만 사용할 수 있습니다.",
supported: "데스크톱 알림이 지원됩니다.",
unsupported: "이 플랫폼에서는 데스크톱 알림이 지원되지 않습니다.",
apiUnavailable: "이 환경에서는 웹 알림 API를 사용할 수 없습니다.",
requestsWebOnly: "데스크톱 알림 요청은 웹 런타임에서만 사용할 수 있습니다.",
requestUnavailable: "웹 알림 API의 requestPermission()을 사용할 수 없습니다.",
requestFailed: "알림 권한을 요청하지 못했습니다: {{message}}",
unexpectedState: "예기치 않은 알림 권한 상태: {{state}}",
},
microphone: {
webOnly: "데스크톱 마이크 상태는 웹 런타임에서만 사용할 수 있습니다.",
navigatorUnavailable: "이 환경에서는 Navigator를 사용할 수 없습니다.",
granted: "마이크 접근이 허용되었습니다.",
denied: "시스템 설정에서 마이크 접근이 거부되어 있습니다.",
notGranted: "마이크 권한이 아직 허용되지 않았습니다.",
unexpectedState: "예기치 않은 마이크 권한 상태: {{state}}",
statusApiUnavailable:
"이 런타임에서는 마이크 상태 API를 사용할 수 없습니다. 접근을 확인하려면 요청을 사용하세요.",
queryFailed: "마이크 상태를 조회하지 못했습니다: {{message}}",
captureUnavailable: "이 환경에서는 마이크 캡처를 사용할 수 없습니다.",
permissionApiUnavailable:
"권한 상태 API를 사용할 수 없습니다. 접근을 확인하려면 요청을 사용하세요.",
requestsWebOnly: "데스크톱 마이크 요청은 웹 런타임에서만 사용할 수 있습니다.",
captureApiUnavailable: "이 환경에서는 마이크 캡처 API를 사용할 수 없습니다.",
requestDenied: "사용자 또는 시스템에 의해 마이크 권한이 거부되었습니다.",
noDevice: "마이크 장치를 찾을 수 없습니다.",
requestFailed: "마이크 권한을 요청하지 못했습니다: {{message}}",
},
empty: {
notifications: "알림 상태를 아직 확인하지 않았습니다.",
microphone: "마이크 상태를 아직 확인하지 않았습니다.",
},
testNotification: {
title: "Paseo 알림 테스트",
body: "이 메시지가 보이면 데스크톱 알림이 작동하는 것입니다.",
notDelivered: "알림이 전달되지 않았습니다. 시스템 설정 > 알림을 확인하세요.",
failed: "알림을 보내지 못했습니다.",
},
},
integrations: {
cli: {
statusFailed: "CLI 설치 상태를 확인할 수 없습니다.",
installFailed: "Paseo CLI를 설치할 수 없습니다.",
},
skills: {
statusFailed: "오케스트레이션 스킬 상태를 확인할 수 없습니다.",
installFailed: "오케스트레이션 스킬을 설치할 수 없습니다.",
updateFailed: "오케스트레이션 스킬을 업데이트할 수 없습니다.",
uninstallFailed: "오케스트레이션 스킬을 제거할 수 없습니다.",
saveSelectionFailed: "오케스트레이션 스킬 선택을 저장하지 못했습니다.",
},
},
},
rootError: {
title: "Paseo에 문제가 발생했습니다.",
body: "앱을 다시 로드해 보세요. 이런 일이 계속 발생하면 신고할 때 아래 세부정보를 포함하세요.",
details: "세부",
},
startup: {
errorTitle: "문제가 발생했습니다",
errorDescription:
"로컬 서버를 시작하지 못했습니다. 이 문제가 계속되면 아래 로그를 포함하여 GitHub에 문제를 보고해 주세요.",
logs: {
loading: "데몬 로그 불러오는 중...",
unavailable: "사용 가능한 데몬 로그가 없습니다.",
loadFailed: "데몬 로그를 불러올 수 없습니다: {{message}}",
},
},
openProject: {
tiles: {
addProject: {
title: "프로젝트 추가",
description: "내 컴퓨터의 폴더를 엽니다",
},
importSession: {
title: "세션 가져오기",
description: "최근 외부 CLI 세션을 가져옵니다",
},
setupProviders: {
title: "프로바이더 설정",
description: "Claude Code, Codex 등을 구성합니다",
},
pairDevice: {
title: "기기 페어링",
description: "휴대폰을 이 데몬에 연결합니다",
},
},
},
projectPicker: {
placeholder: "검색할 내용을 입력하세요...",
browse: "찾아보기…",
opening: "프로젝트 여는 중...",
searching: "검색 중...",
empty: "경로를 입력하기 시작하세요",
errors: {
directory_not_found: "디렉터리를 찾을 수 없습니다.",
open_failed: "프로젝트를 열 수 없습니다.",
},
openPath: "경로 열기",
},
branchSwitcher: {
currentBranch: "현재 브랜치: {{branchName}}. 브랜치를 전환하려면 누르세요.",
placeholder: "브랜치 전환...",
searchPlaceholder: "브랜치 필터...",
empty: "브랜치를 찾을 수 없습니다.",
title: "브랜치 전환",
uncommittedTitle: "커밋되지 않은 변경 사항",
uncommittedMessage: "커밋되지 않은 변경 사항이 있습니다. 브랜치를 전환하기 전에 스태시할까요?",
stashAndSwitch: "스태시 후 전환",
failedToStash: "변경 사항을 스태시하지 못했습니다",
failedToSwitch: "브랜치를 전환하지 못했습니다",
restoreStashTitle: "스태시된 변경 사항을 복원할까요?",
restoreStashMessage:
"이 브랜치에는 이전 세션에서 스태시된 변경 사항이 있습니다. 복원하시겠습니까?",
restore: "복원",
later: "나중에",
stashRestored: "스태시된 변경 사항이 복원되었습니다",
},
agentAutocomplete: {
searchingWorkspace: "워크스페이스 검색 중...",
loadingCommands: "명령 불러오는 중...",
noFiles: "파일 또는 디렉터리를 찾을 수 없습니다",
noCommands: "명령을 찾을 수 없습니다",
failedToLoad: "불러오지 못했습니다",
},
loadOlderHistory: {
failed: "이전 기록을 불러올 수 없습니다",
},
imageAttachmentPicker: {
permissionTitle: "권한 필요",
permissionMessage: "이미지를 첨부하려면 사진 라이브러리 접근을 허용해 주세요.",
errorTitle: "오류",
failedToSelect: "이미지를 선택하지 못했습니다",
dialogTitle: "이미지 첨부",
dialogFilterName: "이미지",
},
workspaceSetup: {
title: "워크스페이스 생성",
errors: {
failedCreateWorktree: "워크트리를 생성하지 못했습니다",
failedOpenProject: "프로젝트를 열지 못했습니다",
selectModel: "모델을 선택하세요",
hostDisconnected: "호스트가 연결되어 있지 않습니다",
pendingRequired: "대기 중인 워크스페이스 설정이 없습니다",
composerStateRequired: "워크스페이스 설정 작성기 상태가 필요합니다",
},
},
onboarding: {
title: "Paseo에 오신 것을 환영합니다",
subtitle: "시작하려면 컴퓨터를 연결하세요",
actions: {
settings: "설정",
},
},
modelSelector: {
title: "프로바이더 선택",
selectModel: "모델 선택",
selectedModel: "모델 선택 ({{model}})",
loading: "불러오는 중...",
loadingShort: "불러오는 중",
loadingSelector: "모델 선택기 불러오는 중...",
error: "오류",
defaultModel: "기본값",
profiles: "프로필",
providers: "제공자",
model: "모델",
editProfiles: "편집",
editProfilesLabel: "에이전트 프로필 편집",
createProfile: "프로필 만들기",
modelCount: "모델 {{count}}개",
modelCountPlural: "모델 {{count}}개",
retry: "다시 시도",
retrying: "다시 시도 중...",
noMatches: "검색과 일치하는 모델이 없습니다",
noMatchesForQuery: '"{{query}}"과(와) 일치하는 모델이 없습니다',
searchAllPlaceholder: "모든 모델 검색...",
searchPlaceholder: "모델 검색...",
openProviderSettings: "{{provider}} 설정 열기",
},
providerCatalog: {
title: "프로바이더 추가",
search: "프로바이더 검색",
noProviders: "프로바이더를 찾을 수 없습니다",
actions: {
add: "추가",
adding: "추가 중",
installed: "설치됨",
cancel: "취소",
installInstructions: "설치 안내",
installInstructionsFor: "{{provider}} 설치 안내",
},
errors: {
unableToInstall: "프로바이더를 설치할 수 없습니다",
},
},
providerSelection: {
defaultModel: "기본값",
selectModel: "모델 선택",
loading: "불러오는 중...",
error: "오류",
unavailable: "사용 불가",
unknownError: "알 수 없는 오류",
readiness: {
initialPromptRequired: "초기 프롬프트가 필요합니다",
noProviders: "선택한 호스트에 사용 가능한 프로바이더가 없습니다",
modelDefaultsLoading: "모델 기본값을 아직 불러오는 중입니다",
noModelAvailable: "선택한 프로바이더에 사용 가능한 모델이 없습니다",
workspaceDirectoryNotFound: "워크스페이스 디렉터리를 찾을 수 없습니다",
hostDisconnected: "호스트가 연결되어 있지 않습니다",
},
},
pairing: {
connectionMethods: {
title: "연결 추가",
direct: {
title: "직접 연결",
description: "로컬 네트워크 또는 VPN.",
},
scanQr: {
title: "QR 코드 스캔",
description: "암호화된 릴레이 연결.",
},
pasteLink: {
title: "페어링 링크 붙여넣기",
description: "암호화된 릴레이 연결.",
},
},
direct: {
title: "직접 연결",
helper: "Paseo 서버의 주소를 입력하세요.",
fields: {
host: "호스트",
port: "포트",
password: "비밀번호",
optional: "선택 사항",
useSsl: "SSL 사용",
connectionUri: "연결 URI",
},
advanced: {
label: "고급",
show: "고급 표시",
hide: "고급 숨기기",
},
passwordVisibility: {
show: "비밀번호 표시",
hide: "비밀번호 숨기기",
},
actions: {
cancel: "취소",
connect: "연결",
connecting: "연결 중...",
},
errors: {
hostRequired: "호스트를 입력하세요",
invalidPort: "포트는 1에서 65535 사이여야 합니다",
invalidConnection: "잘못된 연결",
failedTitle: "연결 실패",
failedToConnect: "{{endpoint}}에 연결하지 못했습니다.",
noAdditionalDetails: "{{detail}} (추가 세부 정보 없음)",
timedOut: "연결 시간이 초과되었습니다. 호스트/포트와 네트워크를 확인하세요.",
refused: "연결이 거부되었습니다. 이 주소에서 서버가 실행 중입니까?",
hostNotFound: "호스트를 찾을 수 없습니다. 호스트 이름을 확인하고 다시 시도하세요.",
hostUnreachable: "호스트에 연결할 수 없습니다. 네트워크와 방화벽을 확인하세요.",
tlsError: "TLS 오류. 직접 연결은 데몬 앞에 TLS 종단 장치가 있을 때만 SSL을 사용합니다.",
unableToConnect: "연결할 수 없습니다. 호스트/포트와 데몬에 접근 가능한지 확인하세요.",
details: "세부 정보: {{detail}}",
},
},
link: {
title: "페어링 링크 붙여넣기",
helper: "서버에서 받은 페어링 링크를 붙여넣으세요.",
label: "페어링 링크",
errors: {
required: "페어링 링크를 붙여넣으세요 (.../#offer=...)",
missingOffer: "링크에 #offer=...가 포함되어야 합니다",
emptyOffer: "Offer 페이로드가 비어 있습니다",
invalid: "잘못된 페어링 링크",
unableToPair: "호스트를 페어링할 수 없습니다",
},
alert: {
failedTitle: "페어링 실패",
},
actions: {
cancel: "취소",
pair: "페어링",
pairing: "페어링 중...",
},
},
scan: {
title: "QR 스캔",
webUnavailableTitle: "웹에서 사용할 수 없습니다",
webUnavailableBody:
'웹 빌드에서는 QR 스캔이 지원되지 않습니다. 대신 "링크 붙여넣기"를 사용하세요.',
backToSettings: "설정으로 돌아가기",
cameraPermissionTitle: "카메라 권한",
cameraPermissionBody: "데몬에서 페어링 QR 코드를 스캔하려면 카메라 접근을 허용하세요.",
grantPermission: "권한 허용",
pairing: "페어링 중...",
unableToPair: "호스트를 페어링할 수 없습니다",
errorTitle: "오류",
},
device: {
loadingOffer: "페어링 정보 불러오는 중...",
failedToLoadOffer: "페어링 정보를 불러오지 못했습니다.",
relayDisabled:
"릴레이가 활성화되어 있지 않습니다. 기기를 페어링하려면 릴레이를 활성화하세요.",
enableTitle: "릴레이를 활성화하시겠습니까?",
enableDescription:
"릴레이를 사용하면 이 장치를 어디에서나 연결할 수 있습니다. 페어링 트래픽은 종단 간 암호화됩니다.",
relayDocs: "릴레이 작동 방식",
relayDocsAccessibility: "Paseo 릴레이 작동 방식 읽기",
enableRelay: "릴레이 활성화",
enablingRelay: "활성화 중...",
notNow: "지금은 아님",
directConnectionHint:
"릴레이 없이 TCP, Tailscale 또는 다른 VPN을 통해 직접 연결하세요. QR 코드가 생성되지 않습니다.",
updateRequired: "Paseo 데스크톱에서 릴레이를 활성화하려면 호스트를 업데이트하세요.",
unavailable: "페어링 정보를 사용할 수 없습니다.",
hint: "휴대폰의 Paseo로 이 QR 코드를 스캔하거나 아래 링크를 복사하세요.",
qrUnavailable: "QR 코드를 사용할 수 없습니다.",
qrAccessibility: "페어링 QR 코드",
retry: "다시 시도",
copy: "복사",
copied: "복사됨",
},
},
realtimeVoice: {
actions: {
mute: "실시간 음성 음소거",
unmute: "실시간 음성 음소거 해제",
stop: "실시간 음성 중지 및 턴 중단",
},
},
rewind: {
tooltip: "이 메시지로 되감기",
warning: "이 작업은 되돌릴 수 없습니다",
actions: {
conversation: "대화 되감기",
files: "파일 되감기",
both: "대화와 파일 되감기",
},
errors: {
failed: "에이전트를 되감지 못했습니다",
},
},
diffViewer: {
empty: "표시할 변경 사항이 없습니다",
},
serviceUrl: {
title: "서비스 URL 열기",
message: "{{url}}을(를) 열까요?",
inPaseo: "Paseo에서",
externalBrowser: "외부 브라우저",
dontAskAgain: "다시 묻지 않기",
},
downloads: {
requestTokenFailed: "다운로드 토큰을 요청하지 못했습니다.",
hostUnavailable: "다운로드 호스트를 사용할 수 없습니다.",
cancelled: "다운로드가 취소되었습니다.",
failed: "파일을 다운로드하지 못했습니다.",
shareFile: "파일 공유",
shareFileNamed: "{{fileName}} 공유",
},
menu: {
backdrop: "메뉴 배경",
},
subagents: {
detachAction: "{{label}} 분리",
detachTooltip: "하위 에이전트 분리",
archiveAction: "{{label}} 보관",
archiveTooltip: "서브에이전트 보관",
archiveFinishedAction: "완료된 하위 에이전트 보관",
archiveFinishedTooltip: "아카이브 완료",
archiveFinishedRetry: "다시 시도 ({{failed}}/{{total}})",
},
panels: {
draft: {
newAgent: "새 에이전트",
creatingAgent: "에이전트 생성 중",
},
file: {
directoryMissing: "워크스페이스 디렉터리를 찾을 수 없습니다.",
loading: "파일 불러오는 중...",
noPreview: "사용 가능한 미리보기가 없습니다",
binaryPreviewUnavailable: "바이너리 미리보기를 사용할 수 없습니다",
failedToLoad: "파일을 불러오지 못했습니다",
failedToLoadPreview: "파일 미리보기를 불러오지 못했습니다",
editor: {
fileSize: "파일 크기 {{size}}",
lines: "{{count}} 라인",
editorStatus: "편집기 상태 {{status}}",
unsavedChanges: "저장되지 않은 변경사항",
saving: "저장 중...",
saveFailed: "저장 실패",
changedOnDisk: "디스크에서 변경됨",
vimMode: "Vim 모드 {{mode}}",
cursor: "{{line}} 라인, {{column}} 열",
preview: "미리보기",
source: "소스",
deletedTitle: "디스크에서 파일이 삭제되었습니다.",
checkFailedTitle: "디스크의 파일을 확인할 수 없습니다.",
preservedDescription: "열린 복사본은 보존됩니다.",
conflictDescription: "로컬 버퍼가 보존되었습니다. 유지할 버전을 선택하세요.",
overwrite: "덮어쓰기",
reload: "새로고침",
reloadTitle: "디스크에서 다시 로드하시겠습니까?",
reloadMessage: "로컬 변경사항이 손실됩니다.",
},
},
diff: {
changesLabel: "변경 사항",
changesSubtitle: "작업 트리 diff",
commitSubtitle: "커밋 diff",
uncommittedSubtitle: "커밋되지 않은 변경 사항",
baseSubtitle: "{{baseRef}}와 비교",
directoryMissing: "워크스페이스 디렉터리를 찾을 수 없습니다.",
empty: "변경사항 없음",
loadError: "Diff를 불러오지 못했습니다.",
capabilityMissing: "커밋 diff를 보려면 호스트를 업데이트하세요.",
},
},
toolCallDetails: {
error: "오류",
empty: "추가 세부 정보가 없습니다",
subAgentActivity: "서브에이전트 활동",
input: "입력",
output: "출력",
},
toolCallGroup: {
editedFiles: {
one: "{{count}} 파일을 편집했습니다.",
other: "{{count}} 파일을 편집했습니다.",
},
commands: {
one: "{{count}} 명령을 실행했습니다.",
other: "{{count}} 명령을 실행했습니다.",
},
readFiles: {
one: "파일 {{count}}개 읽음",
other: "파일 {{count}}개 읽음",
},
searches: {
one: "{{count}}회 검색함",
other: "{{count}}회 검색함",
},
otherTools: {
one: "기타 도구 {{count}}개 사용함",
other: "기타 도구 {{count}}개 사용함",
},
paseoCalls: {
one: "Paseo를 {{count}}회 호출함",
other: "Paseo를 {{count}}회 호출함",
},
and: "그리고",
},
renameModal: {
rename: "이름 변경",
saving: "저장하는 중...",
},
sidebarCallout: {
dismiss: "닫기",
},
contextWindow: {
title: "컨텍스트 윈도우",
used: "{{percentage}}% 사용됨",
tokens: "{{used}} / {{max}} 토큰",
sessionCost: "세션 비용 {{cost}}",
accessibility: "컨텍스트 윈도우 {{percentage}}% 사용됨",
},
review: {
comment: {
add: "리뷰 댓글 추가",
edit: "리뷰 댓글 편집",
delete: "리뷰 댓글 삭제",
label: "리뷰 댓글",
placeholder: "댓글을 남기세요",
cancel: "취소",
cancelAccessibility: "리뷰 댓글 취소",
save: "댓글",
saveAccessibility: "리뷰 댓글 저장",
},
},
settings: {
title: "설정",
loading: "설정 불러오는 중...",
groups: {
app: "앱",
host: "호스트",
},
hostPicker: {
switchHost: "호스트 전환",
local: "로컬",
},
backToWorkspace: "뒤로",
addHost: "호스트 추가",
enableBuiltInDaemon: "내장 데몬 활성화",
projects: "프로젝트",
projectList: {
hostLoadFailed: "{{hostName}} 호스트에서 프로젝트를 불러올 수 없습니다: {{message}}",
editProject: "{{projectName}} 편집",
},
groupInfo: "{{title}} 정보",
sections: {
general: "일반",
appearance: "모양",
editor: "편집기",
shortcuts: "단축키",
integrations: "통합",
notifications: "알림",
permissions: "권한",
diagnostics: "진단",
about: "정보",
},
editor: {
title: "편집기",
vimKeybindings: "Vim 키 바인딩",
vimHint: "웹 및 데스크톱의 소스 파일에 적용됩니다.",
},
notifications: {
title: "알림",
permission: "알림 권한",
refreshAccessibility: "알림 권한 새로 고침",
playSound: "소리 재생",
playSoundHint: "데스크톱 알림이 도착하면 소리를 재생합니다",
test: "알림 테스트",
testHint: "현재 설정으로 테스트 알림을 보냅니다",
permissionRequired: "테스트하기 전에 알림 접근을 허용하세요",
send: "보내기",
sending: "보내는 중...",
sentTitle: "테스트 알림을 보냈습니다",
sentDescription: "Paseo가 알림을 운영 체제에 전달했습니다.",
sendFailedTitle: "테스트 알림을 보낼 수 없음",
},
hostSections: {
projects: "프로젝트",
connections: "연결",
agents: "에이전트",
metadata: "메타데이터",
workspaces: "워크스페이스",
providers: "프로바이더",
usage: "사용량",
terminals: "터미널",
plugins: "플러그인",
host: "개요",
},
plugins: pluginSettings.ko,
metadataGeneration: {
title: "메타데이터 생성",
description:
"워크스페이스 제목, 브랜치 이름, 커밋 메시지 및 풀 리퀘스트 초안에 사용할 모델을 선택하세요",
selection: "모델 선택",
automatic: "자동",
preferred: "수동",
automaticHint: "Paseo가 사용 가능한 빠른 모델을 선택합니다",
preferredHint: "Paseo에서 사용할 모델을 선택하세요",
model: "모델",
fallbackHint: "사용할 수 없으면 Paseo가 다른 사용 가능한 모델을 사용합니다",
docs: "문서",
saveError: "메타데이터 생성을 업데이트할 수 없습니다",
},
general: {
title: "일반",
browserData: {
title: "브라우저 데이터",
siteData: "쿠키 및 사이트 데이터",
description: "브라우저 탭은 Paseo 전체에서 로그인 및 사이트 데이터를 공유합니다.",
clear: "브라우저 데이터 지우기",
clearing: "삭제 중...",
confirmTitle: "브라우저 데이터를 삭제하시겠습니까?",
confirmMessage: "사이트가 로그아웃되고 열려 있는 브라우저 탭이 다시 로드됩니다.",
success: "브라우저 데이터가 삭제되었습니다.",
error: "브라우저 데이터를 삭제할 수 없습니다.",
},
defaultSend: {
label: "기본 전송",
descriptions: {
interrupt:
"에이전트가 실행 중일 때 Enter는 중단합니다. Command/Ctrl+Enter는 대기열에 추가합니다.",
steer:
"에이전트가 실행 중일 때 Enter는 현재 턴에 지시합니다. Command/Ctrl+Enter는 대기열에 추가합니다.",
queue:
"에이전트가 실행 중일 때 Enter는 대기열에 추가합니다. Command/Ctrl+Enter는 제출합니다.",
},
options: {
interrupt: "중단",
steer: "지시",
queue: "대기열",
},
},
serviceUrls: {
label: "서비스 URL",
description: "실행 중인 스크립트의 URL을 열 위치",
options: {
ask: "물어보기",
inApp: "Paseo에서",
external: "외부 브라우저",
},
},
terminalScrollback: {
label: "터미널 스크롤백",
description: "내장 터미널 버퍼에 보관되는 줄 수",
accessibilityLabel: "터미널 스크롤백 줄 수",
},
autoExpandReasoning: {
label: "추론 항상 펼치기",
description: "에이전트의 사고 및 추론 블록을 기본적으로 모두 펼쳐 표시합니다.",
},
toolCallDetail: {
label: "도구 호출 표시",
description: "타임라인에 도구 호출이 표시되는 방식",
accessibilityLabel: "도구 호출 표시 선택({{value}})",
options: {
overview: "요약",
detailed: "전체 세부정보",
},
},
language: {
label: "언어",
description: "앱 언어",
options: {
system: "시스템",
ar: "العربية",
en: "English",
es: "Español",
fr: "Français",
ja: "일본어",
ko: "한국어",
ptBR: "브라질 포르투갈어",
ru: "Русский",
zhCN: "简体中文",
},
},
},
diagnostics: {
title: "진단",
legacyTerminalRenderer: {
label: "레거시 터미널 렌더러 사용",
description: "터미널을 다시 열 때 이전 WebView 터미널을 사용합니다.",
accessibilityLabel: "레거시 터미널 렌더러 사용",
},
testAudio: "오디오 테스트",
playTest: "테스트 재생",
playing: "재생 중...",
playbackFailed: "재생 실패: {{message}}",
app: {
title: "앱 진단",
rowTitle: "앱 진단",
rowHint: "연결, 데몬, 프로바이더, 데스크톱 및 로그 세부 정보를 수집합니다.",
run: "실행",
running: "진단 실행 중...",
copyLabel: "진단",
copyAccessibility: "진단 복사",
copyFailed: "진단을 복사하지 못했습니다.",
refreshAccessibility: "진단 새로 고침",
refreshingAccessibility: "진단 새로고침",
progress: {
client: "클라이언트",
desktop: "데스크톱",
},
},
},
about: {
title: "정보",
appVersion: "앱 버전",
thisDevice: "이 기기",
connectedHosts: "연결된 호스트",
offline: "오프라인",
versionDiffers: "이 기기와 버전이 다릅니다",
releaseChannel: {
label: "릴리스 채널",
description: "Beta로 전환하면 업데이트를 더 빨리 받고 개선에 참여할 수 있습니다",
stable: "안정",
beta: "베타",
},
updates: {
label: "앱 업데이트",
readyToInstall: "설치 준비됨: {{version}}",
installTitle: "데스크톱 업데이트 설치",
installMessage: "이 컴퓨터의 Paseo를 업데이트합니다",
installConfirm: "업데이트 설치",
update: "업데이트",
updateTo: "{{version}}(으)로 업데이트",
installing: "설치 중...",
check: "확인",
checking: "확인 중...",
alertTitle: "오류",
alertMessage: "업데이트 확인 대화 상자를 열 수 없습니다.",
},
},
appearance: {
theme: {
title: "테마",
accessibilityLabel: "테마: {{value}}",
options: {
light: "라이트",
dark: "다크",
zinc: "Zinc",
midnight: "Midnight",
claude: "Claude",
ghostty: "Ghostty",
pureBlack: "순수 검정",
auto: "시스템",
},
},
detailLevel: {
title: "세부 수준",
},
chatOutline: {
title: "채팅 개요",
description: "프롬프트 사이를 이동하기 위한 개요 표시",
},
fonts: {
title: "글꼴",
systemDefault: "시스템 기본값",
interfaceFont: "인터페이스 글꼴",
interfaceFontHint: "앱 전체에 사용됩니다. 시스템 기본값을 사용하려면 비워 두세요",
interfaceFontAccessibility: "인터페이스 글꼴 패밀리",
interfaceSize: "인터페이스 크기",
interfaceSizeAccessibility: "인터페이스 글꼴 크기",
codeFont: "코드 글꼴",
codeFontHint:
"코드, diff, 터미널 출력에 사용됩니다. 시스템 기본값을 사용하려면 비워 두세요",
codeFontAccessibility: "코드 글꼴 패밀리",
codeSize: "코드 크기",
codeSizeAccessibility: "코드 글꼴 크기",
},
syntax: {
title: "구문",
highlightTheme: "강조 테마",
highlightThemeHint: "앱 테마와 독립적인 코드 색상",
highlightThemeAccessibility: "강조 테마: {{value}}",
previewAccessibility: "구문 테마와 코드 글꼴의 실시간 미리보기",
},
},
shortcuts: {
dialogTitle: "단축키",
searchPlaceholder: "검색 단축키",
unavailableOnMobile: "키보드 단축키는 데스크톱에서만 사용할 수 있습니다",
capturePrompt: "단축키를 누르세요...",
unassigned: "설정되지 않음",
actions: {
menu: "{{name}} 작업",
done: "완료",
cancel: "취소",
bind: "지정",
rebind: "다시 지정",
clear: "지우기",
reset: "기본값으로 재설정",
resetAll: "모두 재설정",
},
sections: {
general: "일반",
workspaces: "프로젝트 및 워크스페이스",
tabsPanes: "탭 및 창",
layout: "레이아웃",
agentInput: "에이전트 입력",
},
help: {
openProject: "프로젝트 열기",
newWorkspace: "새 워크스페이스",
newWorktree: "새 워크트리",
archiveWorkspace: "워크스페이스 보관",
newTab: "새 탭",
closeCurrentTab: "현재 탭 닫기",
jumpToWorkspace: "워크스페이스로 이동",
jumpToTab: "탭으로 이동",
previousWorkspace: "이전 워크스페이스",
nextWorkspace: "다음 워크스페이스",
previousTab: "이전 탭",
nextTab: "다음 탭",
splitPaneRight: "창을 오른쪽으로 분할",
splitPaneDown: "창을 아래로 분할",
focusPaneLeft: "왼쪽 창에 포커스",
focusPaneRight: "오른쪽 창에 포커스",
focusPaneUp: "위쪽 창에 포커스",
focusPaneDown: "아래쪽 창에 포커스",
moveTabLeft: "탭을 왼쪽으로 이동",
moveTabRight: "탭을 오른쪽으로 이동",
moveTabUp: "탭을 위로 이동",
moveTabDown: "탭을 아래로 이동",
closePane: "창 닫기",
newTerminal: "새 터미널",
searchFiles: "파일 검색",
toggleCommandCenter: "명령 센터 토글",
showKeyboardShortcuts: "키보드 단축키 표시",
toggleLeftSidebar: "왼쪽 사이드바 토글",
toggleRightSidebar: "오른쪽 사이드바 토글",
toggleBothSidebars: "양쪽 사이드바 토글",
toggleSettings: "설정 토글",
toggleFocusMode: "집중 모드 토글",
cycleTheme: "테마 순환",
focusMessageInput: "메시지 입력란에 포커스",
cycleAgentMode: "에이전트 모드 전환",
toggleVoiceMode: "음성 모드 토글",
startStopDictation: "받아쓰기 시작/중지",
interruptAgent: "에이전트 중단",
sendMessage: "메시지 보내기",
queueMessage: "메시지 대기열에 추가",
muteUnmuteVoiceMode: "음성 모드 음소거/해제",
switchProject: "프로젝트 전환",
},
helpNotes: {
showKeyboardShortcuts: "포커스가 텍스트 필드나 터미널에 있지 않을 때 사용할 수 있습니다.",
},
},
integrations: {
title: "통합",
docs: {
cli: "CLI 문서",
skills: "스킬 문서",
openCli: "CLI 문서 열기",
openSkills: "스킬 문서 열기",
},
commandLine: {
title: "명령줄",
description: "터미널에서 에이전트를 제어하고 스크립팅합니다",
},
skills: {
title: "오케스트레이션 스킬",
description: "CLI를 통해 에이전트가 오케스트레이션하도록 가르칩니다",
updateAvailable: "업데이트 사용 가능",
updateTitle: "Paseo 스킬을 업데이트할까요?",
updateFallback: "번들된 스킬을 내 컴퓨터에 동기화합니다.",
uninstallTitle: "Paseo 스킬을 제거할까요?",
uninstallMessage:
"~/.agents, ~/.claude, ~/.codex에서 모든 Paseo 오케스트레이션 스킬을 제거합니다.",
choose: "스킬 선택",
chooseAll: "모든 스킬",
chooseAllHint: "나중에 추가되는 항목을 포함하여 모든 번들 스킬을 설치된 상태로 유지합니다.",
chooseList: "번들 스킬",
chooseEmpty: "이 빌드에는 번들 스킬이 없습니다.",
removeTitle: "선택 해제한 스킬을 제거할까요?",
removeMessage:
"{{skills}}는 ~/.agents, ~/.claude 및 ~/.codex에서 삭제됩니다. 해당 스킬 폴더 안에 추가한 모든 항목도 삭제됩니다.",
saveFailed: "선택한 스킬을 저장하지 못했습니다.",
},
actions: {
install: "설치",
installing: "설치 중...",
installed: "설치됨",
update: "업데이트",
working: "작업 중...",
remove: "제거",
uninstall: "제거",
save: "저장",
saving: "저장 중...",
},
operations: {
add: "스킬 추가",
update: "스킬 업데이트",
delete: "스킬 삭제",
},
},
permissions: {
title: "권한",
microphone: "마이크",
refresh: "새로고침",
refreshing: "새로고침 중...",
refreshAccessibility: "데스크톱 권한 새로고침",
actions: {
granted: "허용됨",
request: "요청",
requesting: "요청 중...",
},
},
host: {
appearance: {
title: "모양",
name: {
label: "이름",
},
color: {
label: "색상",
accessibilityLabel: "색상, {{value}}",
options: {
none: "기본",
violet: "보라색",
sky: "하늘",
emerald: "에메랄드",
orange: "주황색",
pink: "분홍색",
indigo: "남색",
teal: "청록색",
red: "빨간색",
amber: "호박색",
blue: "파란색",
},
},
badge: {
label: "사이드바 배지",
accessibilityLabel: "사이드바 배지, {{value}}",
options: {
name: "이름",
icon: "아이콘만",
hidden: "숨겨진",
},
},
preview: {
workspaceName: "내-워크스페이스",
},
},
notFound: "호스트를 찾을 수 없습니다",
badges: {
relay: "릴레이",
local: "로컬",
},
connections: {
title: "연결",
removeTitle: "연결 제거",
removeMessage: "{{name}}을(를) 제거할까요? 되돌릴 수 없습니다.",
removeAction: "제거",
removeErrorTitle: "오류",
removeErrorMessage: "연결을 제거할 수 없습니다",
timeout: "시간 초과",
},
pairDevices: {
title: "기기 페어링",
rowTitle: "기기 페어링",
rowHint: "QR 코드를 스캔하거나 링크를 복사하여 휴대폰을 이 호스트에 연결하세요",
},
orchestration: {
title: "오케스트레이션",
unavailable: "오케스트레이션을 관리하려면 이 호스트에 연결하세요",
enableTools: {
title: "Paseo 도구 활성화",
hint: "에이전트가 워크트리, 에이전트, 일정을 관리할 수 있습니다",
accessibilityLabel: "Paseo 도구 주입",
},
systemPrompt: {
title: "시스템 프롬프트",
hint: "모든 에이전트에 시스템 프롬프트를 추가합니다",
sheetTitle: "시스템 프롬프트 추가",
accessibilityLabel: "시스템 프롬프트 추가",
placeholder: "항상 답변을 간결하게 유지하세요.",
edit: "편집",
reset: "재설정",
save: "저장",
saving: "저장하는 중...",
},
},
agents: {
unavailable: "에이전트를 관리하려면 이 호스트에 연결하세요",
},
workspaces: {
unavailable: "워크스페이스를 관리하려면 이 호스트에 연결하세요",
},
terminalProfiles: {
unavailable: "터미널 프로필을 관리하려면 이 호스트에 연결하세요",
sectionTitle: "터미널 프로필",
editProfile: "프로필 편집",
addProfileTitle: "터미널 프로필 추가",
editProfileTitle: "터미널 프로필 편집",
namePlaceholder: "Claude Code",
commandPlaceholder: "claude",
argsPlaceholder: "--dangerously-skip-permissions",
nameLabel: "이름",
commandLabel: "명령",
argsLabel: "인수",
nameRequired: "이름을 입력하세요",
commandRequired: "명령을 입력하세요",
argsHint: "명령에 전달되는 공백으로 구분된 인수",
saving: "저장하는 중...",
remove: "제거",
removeConfirmTitle: "프로필을 제거할까요?",
removeConfirmMessage: '"{{name}}"을(를) 제거할까요?',
moveUp: "위로 이동",
moveDown: "아래로 이동",
save: "저장",
emptyState: "아직 프로필이 없습니다. 특정 명령으로 터미널을 실행하려면 하나 추가하세요.",
},
agentProfiles: {
sectionTitle: "에이전트 프로필",
unavailable: "에이전트 프로필을 관리하려면 이 호스트에 연결하세요",
unsupported: "이 호스트에서 실행 중인 데몬은 아직 에이전트 프로필을 지원하지 않습니다",
emptyState:
"아직 프로필이 없습니다. 저장된 프로바이더와 모델로 에이전트를 시작하려면 하나 추가하세요.",
addProfileTitle: "에이전트 프로필 추가",
newProfile: "새 프로필",
editProfile: "프로필 편집",
editProfileTitle: "에이전트 프로필 편집",
nameLabel: "이름",
namePlaceholder: "UI 작업",
iconLabel: "아이콘",
noIcon: "없음",
providerLabel: "프로바이더",
providerPlaceholder: "프로바이더 선택",
noProviders: "이 호스트에서 사용 가능한 프로바이더가 없습니다",
modelLabel: "모델",
noModels: "이 프로바이더에는 선택할 수 있는 모델이 없습니다",
modeLabel: "모드",
noModes: "이 프로바이더에는 선택할 수 있는 모드가 없습니다",
thinkingLabel: "사고",
noThinkingOptions: "이 모델에는 사고 수준이 없습니다",
featuresLabel: "기능",
featureCount: "기능 {{count}}개",
featureCountOne: "기능 {{count}}개",
notesLabel: "에이전트를 위한 메모",
notesPlaceholder: "UI 작업에 사용 — 컴포넌트, 레이아웃, 디자인 토큰.",
notesHint:
"list_profiles MCP 도구가 반환합니다. 다른 에이전트에게 전달할 지침으로 작성하세요.",
save: "저장",
saving: "저장하는 중...",
remove: "제거",
removeConfirmTitle: "프로필을 제거할까요?",
removeConfirmMessage: '"{{name}}"을(를) 제거할까요?',
moveUp: "위로 이동",
moveDown: "아래로 이동",
},
daemon: {
rename: {
editLabel: "레이블 편집",
title: "호스트 이름 변경",
placeholder: "내 호스트",
submit: "이름 변경",
},
restart: {
title: "데몬 재시작",
hint: "데몬 프로세스를 재시작합니다. 앱이 자동으로 다시 연결됩니다",
confirm: "재시작",
confirmTitle: "{{name}} 재시작",
confirmMessage:
"데몬을 재시작합니다. 데몬에서 실행 중인 에이전트는 계속 동작하며 앱이 자동으로 다시 연결됩니다.",
restarting: "재시작 중...",
unableToReconnectTitle: "다시 연결할 수 없습니다",
unableToReconnectMessage:
"{{name}}이(가) 다시 온라인 상태가 되지 않았습니다. 재시작되었는지 확인하세요.",
unavailableTitle: "호스트를 사용할 수 없습니다",
unavailableMessage:
"이 호스트는 연결되어 있지 않습니다. 재시작하기 전에 온라인 상태가 될 때까지 기다리세요.",
offlineTitle: "호스트 오프라인",
offlineMessage:
"이 호스트는 오프라인입니다. Paseo가 자동으로 다시 연결하므로 다시 온라인이 될 때까지 기다린 후 재시작하세요.",
requestFailedTitle: "오류",
requestFailedMessage:
"재시작 요청을 보내지 못했습니다. Paseo가 자동으로 다시 연결하므로 호스트가 온라인으로 표시되면 다시 시도하세요.",
dialogFailedMessage: "재시작 확인 대화 상자를 열 수 없습니다.",
},
update: {
desktopManagedHint:
"이 데몬은 Paseo Desktop에서 관리됩니다. 호스트에서 Paseo 데스크톱을 업데이트합니다.",
title: "데몬 업데이트",
hint: "데몬을 최신 버전으로 업데이트하고 다시 시작하세요.",
confirm: "업데이트",
confirmTitle: "{{name}} 업데이트",
confirmMessage:
"그러면 데몬이 최신 버전으로 업데이트되고 다시 시작됩니다. 실행 중인 에이전트가 잠시 중단됩니다.",
updating: "업데이트 중...",
phaseStarting: "업데이트 준비 중...",
phaseDownloading: "패키지 다운로드 중...",
phaseInstalling: "설치 중...",
phaseComplete: "업데이트 완료, 다시 시작 중...",
unableToReconnectTitle: "다시 연결할 수 없습니다.",
unableToReconnectMessage:
"업데이트 후 {{name}}가 다시 온라인 상태로 돌아오지 않았습니다. 데몬이 다시 시작되었는지 확인하세요.",
unavailableTitle: "호스트를 사용할 수 없습니다",
unavailableMessage:
"이 호스트는 연결되어 있지 않습니다. 업데이트하기 전에 온라인 상태가 될 때까지 기다리십시오.",
offlineTitle: "호스트 오프라인",
offlineMessage:
"이 호스트는 오프라인 상태입니다. 업데이트하기 전에 다시 온라인 상태가 될 때까지 기다리십시오.",
requestFailedTitle: "업데이트 실패",
requestFailedMessage: "데몬 업데이트 실패: {{error}}",
dialogFailedMessage: "업데이트 확인 대화 상자를 열 수 없습니다.",
},
dangerZone: "위험 구역",
remove: {
title: "호스트 제거",
localTitle: "localhost 연결 제거",
hint: "이 호스트와 저장된 연결을 이 기기에서 제거합니다",
localHint: "이 기기에서 localhost를 제거하고 내장 데몬을 중지합니다",
localConfirmTitle: "localhost 연결을 제거하고 데몬을 중지할까요?",
confirmMessage: "{{name}}을(를) 제거할까요? 저장된 연결이 삭제됩니다.",
localConfirmMessage:
"localhost 연결을 제거하고, 내장 데몬 관리를 끄고, 관리되는 데몬을 중지합니다. 원격 호스트는 연결된 상태로 유지됩니다.",
errorTitle: "오류",
errorMessage: "호스트를 제거할 수 없습니다",
localErrorMessage: "localhost 연결을 제거할 수 없습니다",
},
},
},
providers: {
title: "프로바이더",
addProvider: "프로바이더 추가",
providerDetails: "{{name}} 프로바이더 세부 정보",
enableProvider: "{{name}} 활성화",
unavailable: "프로바이더를 보려면 이 호스트에 연결하세요",
loading: "불러오는 중...",
addErrorTitle: "프로바이더를 추가할 수 없습니다",
updateErrorTitle: "프로바이더를 업데이트할 수 없습니다",
actions: {
menu: "{{name}} 작업",
remove: "프로바이더 제거",
removing: "제거 중...",
},
remove: {
confirmTitle: "{{name}}를 제거하시겠습니까?",
confirmMessage:
"config.json에서 프로바이더 항목을 삭제합니다. 이 작업은 되돌릴 수 없습니다.",
confirm: "제거",
errorTitle: "프로바이더를 제거할 수 없습니다.",
},
statuses: {
disabled: "비활성화됨",
loading: "불러오는 중",
error: "오류",
available: "사용 가능",
notInstalled: "설치되지 않음",
},
models: {
one: "모델 1개",
many: "모델 {{count}}개",
addModel: "모델 추가",
addCustomTitle: "사용자 지정 모델 추가",
modelId: "모델 ID",
modelIdPlaceholder: "예: openai/gpt-5",
add: "추가",
adding: "추가 중...",
failedToSave: "모델을 저장하지 못했습니다",
removeModel: "{{id}} 제거",
searchPlaceholder: "모델 검색",
loading: "모델 불러오는 중...",
retry: "다시 시도",
retrying: "다시 시도 중...",
noSearchMatches: "검색과 일치하는 모델이 없습니다",
noneDetected: "감지된 모델이 없습니다",
discovered: "발견됨",
custom: "사용자 지정 모델",
updated: "{{time}} 업데이트됨",
},
diagnostic: {
title: "진단",
button: "진단",
refresh: "새로고침",
refreshing: "새로고침 중...",
copyLabel: "진단",
copyAccessibility: "진단 복사",
copyFailed: "진단을 복사하지 못했습니다.",
refreshAccessibility: "진단 새로고침",
refreshingAccessibility: "진단 새로고침 중",
running: "진단 실행 중...",
none: "사용 가능한 진단이 없습니다",
failedToFetch: "진단을 가져오지 못했습니다",
unknownError: "알 수 없는 오류",
},
},
project: {
noEditableTarget: "이 호스트에서는 이 프로젝트를 편집할 수 없습니다.",
backToProjects: "프로젝트로 돌아가기",
edit: {
title: "프로젝트 편집",
name: "이름",
nameLabel: "프로젝트 이름",
icon: "아이콘",
chooseImage: "이미지 선택",
useAutomatic: "자동 사용",
imageUrl: "이미지 또는 웹사이트 URL",
save: "변경사항 저장",
savedToast: "프로젝트가 업데이트되었습니다.",
},
readFailures: {
invalidTitle: "paseo.json을 파싱할 수 없습니다",
invalidDescription: "디스크의 파일을 수정한 후 다시 로드하세요.",
missingTitle: "이 호스트에는 이 프로젝트가 없습니다",
missingSingleHost: "선택한 호스트에 이 프로젝트의 기록이 없습니다.",
transportTitle: "paseo.json을 불러올 수 없습니다",
transportFallback: "호스트가 응답하지 않았습니다.",
failedTitle: "paseo.json을 불러올 수 없습니다",
failedDescription: "다시 로드하여 재시도하세요.",
},
worktree: {
title: "워크트리 수명 주기 훅",
info: "이 프로젝트에서 워크트리가 생성되거나 정리될 때 실행되는 명령",
docs: "문서",
docsTooltip: "자세한 내용과 이 명령에 사용할 수 있는 환경 변수는 문서를 참조하세요",
setup: "설정",
setupAccessibility: "워크트리 설정 명령",
uncommittedTitle: "paseo.json 변경 사항을 커밋하세요",
uncommittedDescription: "새 워크트리는 선택한 기본 브랜치의 설정 스크립트를 사용합니다.",
teardown: "정리",
teardownAccessibility: "워크트리 정리 명령",
},
scripts: {
title: "스크립트",
info: "이 프로젝트의 모든 에이전트에서 실행할 수 있는 장기 실행 서비스 및 일회성 명령",
empty: "아직 스크립트가 없습니다.",
untitled: "제목 없는 스크립트",
port: "포트 {{port}}",
menuAccessibility: "스크립트 메뉴 열기",
removeTitle: "스크립트를 제거할까요?",
removeMessage: "{{name}}을(를) 제거할까요?",
removeFallbackName: "이 스크립트",
name: "이름",
command: "명령",
nameAccessibility: "스크립트 이름",
commandAccessibility: "스크립트 명령",
nameRequired: "이름을 입력하세요",
commandRequired: "명령을 입력하세요",
newScript: "새 스크립트",
editScript: "{{name}} 편집",
runAsService: "서비스로 실행",
serviceHint: "Paseo가 프로세스를 감독하고 $PASEO_PORT를 통해 포트를 할당합니다",
actions: {
add: "스크립트 추가",
edit: "편집",
remove: "제거",
},
},
metadata: {
title: "메타데이터 생성",
info: "Paseo가 메타데이터를 생성하는 데 사용하는 AI 프롬프트에 주입되는 프로젝트별 지침 - 브랜치 이름, 커밋 스타일, PR 형식 같은 팀 규칙을 적용하는 데 사용하세요",
branchName: "브랜치 이름",
branchNamePlaceholder:
"브랜치에 feat/ 또는 fix/를 접두사로, 개인 브랜치에는 mb/를 붙이세요",
commitMessage: "커밋 메시지",
commitMessagePlaceholder: "스코프와 함께 Conventional Commits를 사용하세요",
pullRequest: "풀 리퀘스트",
pullRequestPlaceholder: "한 문단 요약으로 시작하고 테스트 계획 섹션을 포함하세요",
},
writeFailures: {
staleTitle: "디스크에서 구성이 변경되었습니다",
staleDescription: "저장하기 전에 다시 로드하여 최신 paseo.json을 가져오세요.",
failedTitle: "paseo.json을 저장할 수 없습니다",
failedDescription: "다시 시도하거나 디스크에서 최신 버전을 다시 로드하세요.",
},
actions: {
reload: "다시 로드",
tryAgain: "다시 시도",
save: "저장",
saved: "프로젝트가 저장되었습니다",
saving: "저장하는 중...",
cancel: "취소",
},
},
},
};