2026-04-17 09:09:50 +08:00
|
|
|
export default {
|
|
|
|
|
// 로그인
|
|
|
|
|
login: {
|
|
|
|
|
title: 'Hermes Web UI',
|
|
|
|
|
description: '계속하려면 액세스 토큰을 입력하세요. 서버 시작 로그에서 확인할 수 있습니다.',
|
|
|
|
|
placeholder: '액세스 토큰',
|
|
|
|
|
submit: '로그인',
|
|
|
|
|
tokenRequired: '액세스 토큰을 입력해 주세요',
|
|
|
|
|
invalidToken: '유효하지 않은 토큰입니다',
|
|
|
|
|
connectionFailed: '서버에 연결할 수 없습니다',
|
2026-04-22 20:27:33 +08:00
|
|
|
passwordLogin: '비밀번호',
|
|
|
|
|
tokenLogin: '토큰',
|
|
|
|
|
usernamePlaceholder: '사용자 이름',
|
|
|
|
|
passwordPlaceholder: '비밀번호',
|
|
|
|
|
credentialsRequired: '사용자 이름과 비밀번호를 입력해 주세요',
|
|
|
|
|
invalidCredentials: '사용자 이름 또는 비밀번호가 올바르지 않습니다',
|
|
|
|
|
passwordMismatch: '비밀번호가 일치하지 않습니다',
|
|
|
|
|
passwordTooShort: '비밀번호는 6자 이상이어야 합니다',
|
|
|
|
|
setupSuccess: '비밀번호 로그인이 설정되었습니다',
|
|
|
|
|
passwordChanged: '비밀번호가 변경되었습니다',
|
|
|
|
|
passwordRemoved: '비밀번호 로그인이 제거되었습니다',
|
|
|
|
|
setupPassword: '비밀번호 로그인 설정',
|
|
|
|
|
changePassword: '비밀번호 변경',
|
|
|
|
|
changeUsername: '사용자 이름 변경',
|
|
|
|
|
removePasswordLogin: '제거',
|
|
|
|
|
username: '사용자 이름',
|
|
|
|
|
currentPassword: '현재 비밀번호',
|
|
|
|
|
newPassword: '새 비밀번호',
|
|
|
|
|
confirmPassword: '비밀번호 확인',
|
|
|
|
|
newUsername: '새 사용자 이름',
|
|
|
|
|
usernameChanged: '사용자 이름이 변경되었습니다',
|
|
|
|
|
usernameTooShort: '사용자 이름은 2자 이상이어야 합니다',
|
|
|
|
|
setupDescription: '사용자 이름과 비밀번호를 설정하여 편리하게 로그인하세요. 액세스 토큰은 백업으로 계속 사용할 수 있습니다.',
|
|
|
|
|
removeConfirm: '비밀번호 로그인을 제거하시겠습니까? 액세스 토큰을 사용하여 로그인해야 합니다.',
|
|
|
|
|
passwordLoginNotConfigured: '비밀번호 로그인 미설정',
|
|
|
|
|
passwordLoginConfigured: '비밀번호 로그인 활성화됨 ({username})',
|
2026-04-17 09:09:50 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 공통
|
|
|
|
|
common: {
|
|
|
|
|
loading: '로딩 중...',
|
|
|
|
|
cancel: '취소',
|
2026-04-17 23:11:57 +08:00
|
|
|
retry: '재시도',
|
2026-04-17 09:09:50 +08:00
|
|
|
delete: '삭제',
|
|
|
|
|
edit: '편집',
|
|
|
|
|
save: '저장',
|
|
|
|
|
saved: '저장됨',
|
|
|
|
|
update: '업데이트',
|
|
|
|
|
create: '생성',
|
|
|
|
|
saveFailed: '저장 실패',
|
2026-04-24 20:41:14 +08:00
|
|
|
deleteFailed: '삭제 실패',
|
2026-04-17 09:09:50 +08:00
|
|
|
ok: '확인',
|
|
|
|
|
copied: '복사됨',
|
|
|
|
|
copy: '복사',
|
|
|
|
|
noData: '데이터 없음',
|
|
|
|
|
fetch: '가져오기',
|
|
|
|
|
add: '추가',
|
|
|
|
|
enable: '활성화',
|
|
|
|
|
disable: '비활성화',
|
|
|
|
|
configured: '구성됨',
|
|
|
|
|
notConfigured: '미구성',
|
|
|
|
|
confirm: '확인',
|
|
|
|
|
expand: '펼치기',
|
|
|
|
|
collapse: '접기',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 사이드바
|
|
|
|
|
sidebar: {
|
|
|
|
|
chat: '채팅',
|
|
|
|
|
jobs: '예약 작업',
|
|
|
|
|
models: '모델',
|
|
|
|
|
profiles: '프로필',
|
|
|
|
|
skills: '스킬',
|
|
|
|
|
memory: '메모리',
|
|
|
|
|
logs: '로그',
|
|
|
|
|
usage: '사용량',
|
|
|
|
|
channels: '채널',
|
|
|
|
|
terminal: '터미널',
|
2026-04-23 14:10:14 +08:00
|
|
|
files: '파일',
|
2026-04-24 20:41:14 +08:00
|
|
|
groupChat: '그룹 채팅',
|
|
|
|
|
groupConversation: '대화',
|
2026-04-17 09:09:50 +08:00
|
|
|
settings: '설정',
|
|
|
|
|
connected: '연결됨',
|
|
|
|
|
disconnected: '연결 끊김',
|
|
|
|
|
updateTip: '터미널에서 "hermes-web-ui update"를 실행하여 업데이트하세요',
|
|
|
|
|
updateVersion: 'v{version}(으)로 업그레이드',
|
|
|
|
|
updating: '업데이트 중...',
|
|
|
|
|
updateSuccess: '업데이트 완료, 서버를 재시작해 주세요',
|
|
|
|
|
updateFailed: '업데이트 실패',
|
2026-04-22 20:27:33 +08:00
|
|
|
logout: '로그아웃',
|
2026-04-24 02:31:42 +02:00
|
|
|
nodeVersionWarning: 'Node.js v{version}이 감지되었습니다. 버전 23 이상으로 업그레이드하세요.',
|
2026-04-22 20:27:33 +08:00
|
|
|
changelog: '변경 이력',
|
|
|
|
|
noChangelog: '변경 이력이 없습니다',
|
2026-04-17 09:09:50 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 채팅
|
|
|
|
|
chat: {
|
2026-04-22 16:14:50 +08:00
|
|
|
contextRemaining: '남음',
|
2026-04-17 09:09:50 +08:00
|
|
|
emptyState: 'Hermes Agent와 대화를 시작하세요',
|
|
|
|
|
inputPlaceholder: '메시지를 입력하세요... (Enter로 전송, Shift+Enter로 줄바꿈)',
|
|
|
|
|
attachFiles: '파일 첨부',
|
|
|
|
|
stop: '중지',
|
|
|
|
|
send: '전송',
|
|
|
|
|
contextUsed: '사용된 컨텍스트:',
|
|
|
|
|
sessions: '세션',
|
|
|
|
|
noSessions: '세션 없음',
|
|
|
|
|
newChat: '새 채팅',
|
|
|
|
|
deleteSession: '이 세션을 삭제하시겠습니까?',
|
|
|
|
|
sessionDeleted: '세션이 삭제되었습니다',
|
|
|
|
|
rename: '이름 변경',
|
2026-04-22 02:09:58 +02:00
|
|
|
pin: '고정',
|
|
|
|
|
unpin: '고정 해제',
|
|
|
|
|
pinned: '고정됨',
|
|
|
|
|
chatMode: '채팅',
|
|
|
|
|
liveMode: '라이브',
|
|
|
|
|
liveSessions: '라이브 세션',
|
|
|
|
|
recentBadge: '최근',
|
|
|
|
|
linkedSessions: '{count}개 연결됨',
|
|
|
|
|
noVisibleMessages: '사람이 볼 수 있는 메시지가 없습니다.',
|
|
|
|
|
monitorRoleUser: '사용자',
|
|
|
|
|
monitorRoleAssistant: '어시스턴트',
|
2026-04-17 09:09:50 +08:00
|
|
|
copySessionId: '세션 ID 복사',
|
|
|
|
|
renamed: '이름이 변경되었습니다',
|
|
|
|
|
renameFailed: '이름 변경 실패',
|
|
|
|
|
renameSession: '세션 이름 변경',
|
|
|
|
|
enterNewTitle: '새 제목을 입력하세요',
|
|
|
|
|
other: '기타',
|
|
|
|
|
runFailed: '실행 실패',
|
|
|
|
|
error: '오류',
|
|
|
|
|
tool: '도구',
|
|
|
|
|
arguments: '인수',
|
|
|
|
|
result: '결과',
|
|
|
|
|
truncated: '... (잘림)',
|
2026-04-30 16:40:37 +08:00
|
|
|
executionDuration: 'Execution time', thinkingLabel: '사고 과정',
|
2026-04-25 08:46:50 +08:00
|
|
|
thinkingInProgress: '사고 중…',
|
|
|
|
|
thinkingShow: '사고 과정 펼치기',
|
|
|
|
|
thinkingHide: '사고 과정 접기',
|
|
|
|
|
thinkingDuration: '관측 {duration}',
|
|
|
|
|
thinkingChars: '{count}자',
|
2026-04-26 22:59:43 +08:00
|
|
|
copyBubble: '메시지 복사',
|
|
|
|
|
copiedBubble: '복사됨',
|
|
|
|
|
copyFailed: '복사 실패',
|
2026-04-17 09:09:50 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 예약 작업
|
|
|
|
|
jobs: {
|
|
|
|
|
title: '예약 작업',
|
|
|
|
|
createJob: '작업 생성',
|
|
|
|
|
editJob: '작업 편집',
|
|
|
|
|
noJobs: '예약된 작업이 없습니다. 새로 만들어 시작하세요.',
|
|
|
|
|
name: '이름',
|
|
|
|
|
namePlaceholder: '작업 이름',
|
|
|
|
|
schedule: '스케줄 (Cron 표현식)',
|
|
|
|
|
schedulePlaceholder: '예: 0 9 * * *',
|
|
|
|
|
quickPresets: '빠른 프리셋',
|
|
|
|
|
selectPreset: '프리셋 선택...',
|
|
|
|
|
presetEveryMinute: '매 분',
|
|
|
|
|
presetEvery5Min: '매 5분',
|
|
|
|
|
presetEveryHour: '매 시간',
|
|
|
|
|
presetEveryDay: '매일 00:00',
|
|
|
|
|
presetEveryDay9: '매일 09:00',
|
|
|
|
|
presetEveryMonday: '매주 월요일 09:00',
|
|
|
|
|
presetEveryMonth: '매월 1일 09:00',
|
|
|
|
|
prompt: '프롬프트',
|
|
|
|
|
promptPlaceholder: '실행할 프롬프트',
|
|
|
|
|
deliverTarget: '전송 대상',
|
|
|
|
|
origin: '출처',
|
|
|
|
|
local: '로컬',
|
|
|
|
|
repeatCount: '반복 횟수 (선택)',
|
2026-04-30 10:17:25 +10:00
|
|
|
modelPlaceholder: 'Default model',
|
2026-04-17 09:09:50 +08:00
|
|
|
repeatPlaceholder: '비워두면 무한 반복',
|
|
|
|
|
jobCreated: '작업이 생성되었습니다',
|
|
|
|
|
jobUpdated: '작업이 업데이트되었습니다',
|
|
|
|
|
nameRequired: '이름을 입력해 주세요',
|
|
|
|
|
scheduleRequired: '스케줄을 입력해 주세요',
|
|
|
|
|
loadFailed: '작업을 불러오지 못했습니다',
|
|
|
|
|
jobPaused: '작업이 일시 정지되었습니다',
|
|
|
|
|
jobResumed: '작업이 재개되었습니다',
|
|
|
|
|
jobTriggered: '작업이 실행되었습니다',
|
2026-04-30 10:17:25 +10:00
|
|
|
modelUpdated: 'Model updated',
|
2026-04-17 09:09:50 +08:00
|
|
|
jobDeleted: '작업이 삭제되었습니다',
|
|
|
|
|
status: {
|
|
|
|
|
running: '실행 중',
|
|
|
|
|
paused: '일시 정지',
|
|
|
|
|
disabled: '비활성화',
|
|
|
|
|
scheduled: '예약됨',
|
|
|
|
|
},
|
|
|
|
|
info: {
|
2026-04-30 10:17:25 +10:00
|
|
|
model: 'Model',
|
|
|
|
|
schedule: 'Schedule',
|
2026-04-17 09:09:50 +08:00
|
|
|
lastRun: '마지막 실행',
|
|
|
|
|
nextRun: '다음 실행',
|
|
|
|
|
deliver: '전송',
|
|
|
|
|
repeat: '반복',
|
|
|
|
|
},
|
|
|
|
|
action: {
|
|
|
|
|
pause: '일시 정지',
|
|
|
|
|
pauseJob: '작업 일시 정지',
|
|
|
|
|
resume: '재개',
|
|
|
|
|
resumeJob: '작업 재개',
|
|
|
|
|
runNow: '즉시 실행',
|
|
|
|
|
triggerImmediately: '즉시 실행',
|
|
|
|
|
},
|
2026-04-30 10:17:25 +10:00
|
|
|
runHistory: {
|
|
|
|
|
title: '실행 기록',
|
|
|
|
|
runs: '회 실행',
|
|
|
|
|
noRuns: '실행 기록이 없습니다.',
|
|
|
|
|
},
|
2026-04-17 09:09:50 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 스킬
|
|
|
|
|
skills: {
|
|
|
|
|
title: '스킬',
|
|
|
|
|
searchPlaceholder: '스킬 검색...',
|
|
|
|
|
noMatch: '검색과 일치하는 스킬이 없습니다',
|
|
|
|
|
noSkills: '스킬을 찾을 수 없습니다',
|
|
|
|
|
backTo: '돌아가기',
|
|
|
|
|
attachedFiles: '첨부 파일',
|
|
|
|
|
loadFailed: '스킬을 불러오지 못했습니다',
|
|
|
|
|
fileLoadFailed: '파일을 불러오지 못했습니다',
|
|
|
|
|
toggleFailed: '스킬 상태를 전환하지 못했습니다',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 메모리
|
|
|
|
|
memory: {
|
|
|
|
|
title: '메모리',
|
|
|
|
|
refresh: '새로고침',
|
|
|
|
|
loadFailed: '메모리를 불러오지 못했습니다',
|
|
|
|
|
myNotes: '내 메모',
|
|
|
|
|
noNotes: '메모가 없습니다.',
|
|
|
|
|
notesPlaceholder: '메모를 작성하세요...',
|
|
|
|
|
userProfile: '사용자 프로필',
|
|
|
|
|
noProfile: '프로필이 없습니다.',
|
|
|
|
|
profilePlaceholder: '프로필을 작성하세요...',
|
|
|
|
|
soul: '소울',
|
|
|
|
|
noSoul: '소울 설정이 없습니다.',
|
|
|
|
|
soulPlaceholder: '소울 설정을 작성하세요...',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 모델
|
|
|
|
|
models: {
|
|
|
|
|
title: '모델',
|
|
|
|
|
addProvider: 'Provider 추가',
|
|
|
|
|
providerType: 'Provider 유형',
|
|
|
|
|
preset: '프리셋',
|
|
|
|
|
custom: '사용자 지정',
|
|
|
|
|
selectProvider: 'Provider 선택',
|
|
|
|
|
chooseProvider: 'Provider를 선택하세요...',
|
|
|
|
|
name: '이름',
|
|
|
|
|
autoGeneratedName: 'Base URL에서 자동 생성',
|
|
|
|
|
baseUrl: 'Base URL',
|
2026-04-25 14:00:07 +08:00
|
|
|
region: '지역',
|
|
|
|
|
regionIntl: '국제판',
|
|
|
|
|
regionCn: '중국 본토',
|
2026-04-17 09:09:50 +08:00
|
|
|
baseUrlPlaceholder: '예: https://api.example.com/v1',
|
|
|
|
|
apiKey: 'API Key',
|
|
|
|
|
apiKeyPlaceholder: 'sk-...',
|
|
|
|
|
defaultModel: '기본 모델',
|
2026-04-17 22:05:06 +08:00
|
|
|
selectOrInput: '모델 선택 또는 직접 입력...',
|
2026-04-17 09:09:50 +08:00
|
|
|
selectModel: '모델 선택...',
|
|
|
|
|
providerAdded: 'Provider가 추가되었습니다',
|
|
|
|
|
providerDeleted: 'Provider가 삭제되었습니다',
|
|
|
|
|
deleteProvider: 'Provider 삭제',
|
|
|
|
|
deleteConfirm: '"{name}"을(를) 삭제하시겠습니까?',
|
2026-04-17 23:11:57 +08:00
|
|
|
codexLoginTitle: 'OpenAI Codex 로그인',
|
|
|
|
|
codexWaiting: '인증 페이지에서 아래 코드를 입력하여 로그인하세요:',
|
|
|
|
|
codexCopyCode: '코드가 복사되었습니다',
|
|
|
|
|
codexOpenLink: '인증 페이지 열기',
|
|
|
|
|
codexApproved: '로그인 성공',
|
|
|
|
|
codexExpired: '인증이 만료되었습니다. 다시 시도해주세요.',
|
2026-04-23 08:39:19 +08:00
|
|
|
nousLoginTitle: 'Nous Portal 로그인',
|
|
|
|
|
nousWaiting: '인증 페이지에서 이 코드를 입력하세요:',
|
|
|
|
|
nousCopyCode: '코드 복사됨',
|
|
|
|
|
nousOpenLink: '인증 페이지 열기',
|
|
|
|
|
nousApproved: '로그인 성공',
|
|
|
|
|
nousDenied: '인증이 거부되었습니다',
|
|
|
|
|
nousExpired: '인증이 만료되었습니다',
|
2026-04-26 22:51:35 +08:00
|
|
|
copilotLoginTitle: 'GitHub Copilot 로그인',
|
|
|
|
|
copilotWaiting: 'GitHub을 열고 아래의 디바이스 코드를 입력하여 인증하세요. 승인 후 창이 자동으로 닫힙니다.',
|
|
|
|
|
copilotCopyCode: '코드가 복사되었습니다',
|
|
|
|
|
copilotOpenLink: 'GitHub 인증 페이지 열기',
|
|
|
|
|
copilotApproved: '로그인 성공!',
|
|
|
|
|
copilotDenied: '인증이 거부되었습니다.',
|
|
|
|
|
copilotExpired: '인증 링크가 만료되었습니다. 다시 시도하세요.',
|
|
|
|
|
copilotAddDetectedTitle: 'GitHub Copilot 감지됨',
|
|
|
|
|
copilotAddDetected: '이 컴퓨터에서 GitHub Copilot OAuth 토큰이 감지되었습니다. 추가를 클릭하여 Hermes에서 Copilot을 활성화하세요.',
|
|
|
|
|
copilotAddSourceEnv: '출처: ~/.hermes/.env (COPILOT_GITHUB_TOKEN)',
|
|
|
|
|
copilotAddSourceGhCli: '출처: gh CLI (gh auth token)',
|
|
|
|
|
copilotAddSourceAppsJson: '출처: VS Code Copilot 확장 (apps.json)',
|
|
|
|
|
copilotDeleteHintEnv: '이 작업은 ~/.hermes/.env의 COPILOT_GITHUB_TOKEN을 지웁니다. 다른 도구에는 영향이 없습니다.',
|
|
|
|
|
copilotDeleteHintGhCli: 'Copilot이 Hermes에서 숨겨집니다. gh CLI 로그인에는 영향이 없으며 `gh auth status`는 여전히 로그인 상태를 표시합니다.',
|
|
|
|
|
copilotDeleteHintAppsJson: 'Copilot이 Hermes에서 숨겨집니다. VS Code Copilot 확장 로그인에는 영향이 없습니다.',
|
2026-04-24 08:49:45 +08:00
|
|
|
customBadge: '커스텀',
|
2026-04-26 22:51:35 +08:00
|
|
|
previewBadge: '프리뷰',
|
|
|
|
|
disabledBadge: '사용 불가',
|
|
|
|
|
disabledTooltip: "이 모델은 현재 계정에서 사용할 수 없습니다.",
|
2026-04-24 08:49:45 +08:00
|
|
|
customModelPlaceholder: '사용자 지정 모델 이름',
|
|
|
|
|
customModelHint: 'Enter로 불러오기',
|
2026-04-17 09:09:50 +08:00
|
|
|
noProviders: 'Provider가 없습니다. 사용자 지정 Provider를 추가하여 시작하세요.',
|
|
|
|
|
builtIn: '내장',
|
|
|
|
|
customType: '사용자 지정',
|
|
|
|
|
provider: 'Provider',
|
2026-04-24 11:18:11 +08:00
|
|
|
contextLength: '컨텍스트 길이',
|
|
|
|
|
contextLengthPlaceholder: '예: 200000 (선택사항)',
|
2026-04-17 09:09:50 +08:00
|
|
|
local: '로컬 ({host})',
|
|
|
|
|
selectProviderRequired: 'Provider를 선택해 주세요',
|
|
|
|
|
baseUrlRequired: 'Base URL을 입력해 주세요',
|
|
|
|
|
apiKeyRequired: 'API Key를 입력해 주세요',
|
|
|
|
|
modelRequired: '기본 모델을 선택해 주세요',
|
|
|
|
|
enterBaseUrl: '먼저 Base URL을 입력해 주세요',
|
|
|
|
|
unexpectedFormat: '예상치 못한 응답 형식입니다',
|
|
|
|
|
foundModels: '{count}개의 모델을 찾았습니다',
|
|
|
|
|
fetchFailed: '모델을 가져오지 못했습니다',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 프로필
|
|
|
|
|
profiles: {
|
|
|
|
|
title: '프로필',
|
|
|
|
|
create: '프로필 생성',
|
|
|
|
|
import: '가져오기',
|
|
|
|
|
export: '내보내기',
|
|
|
|
|
rename: '이름 변경',
|
|
|
|
|
delete: '삭제',
|
|
|
|
|
switchTo: '전환',
|
|
|
|
|
switchConfirm: '프로필 "{name}"(으)로 전환하면 게이트웨이가 재시작됩니다. 계속하시겠습니까?',
|
|
|
|
|
switchSuccess: '프로필 "{name}"(으)로 전환되었습니다',
|
|
|
|
|
switchFailed: '프로필 전환 실패. 게이트웨이를 수동으로 재시작해야 할 수 있습니다.',
|
|
|
|
|
createSuccess: '프로필 "{name}"이(가) 생성되었습니다',
|
|
|
|
|
createFailed: '프로필 생성 실패',
|
|
|
|
|
renameSuccess: '프로필 이름이 변경되었습니다',
|
|
|
|
|
renameFailed: '프로필 이름 변경 실패',
|
|
|
|
|
deleteConfirm: '프로필 "{name}"을(를) 삭제하시겠습니까?',
|
|
|
|
|
deleteSuccess: '프로필이 삭제되었습니다',
|
|
|
|
|
deleteFailed: '프로필 삭제 실패',
|
|
|
|
|
exportSuccess: '프로필이 내보내기되었습니다',
|
|
|
|
|
exportFailed: '프로필 내보내기 실패',
|
|
|
|
|
importSuccess: '프로필이 가져오기되었습니다',
|
|
|
|
|
importFailed: '프로필 가져오기 실패',
|
|
|
|
|
importSelectFile: '아카이브 파일 선택',
|
|
|
|
|
importInvalidFile: '유효한 아카이브 파일을 선택해 주세요 (.tar.gz, .tgz, .gz, .zip)',
|
|
|
|
|
name: '프로필 이름',
|
|
|
|
|
namePlaceholder: '영문, 숫자, 하이픈만 사용 가능',
|
|
|
|
|
newName: '새 이름',
|
|
|
|
|
newNamePlaceholder: '새 이름을 입력하세요',
|
|
|
|
|
cloneFromCurrent: '현재 프로필에서 복제',
|
2026-04-29 20:31:24 +08:00
|
|
|
cloneCleanupNotice: '복제 시 독점형 플랫폼 자격 증명(Weixin / Telegram / Slack 등)은 자동으로 건너뛰어 원본 프로필과의 충돌을 방지합니다',
|
|
|
|
|
cloneStrippedCredentials: '독점 자격 증명 {count}개 제거됨: {list}',
|
|
|
|
|
cloneDisabledPlatforms: '플랫폼 {count}개 비활성화됨: {list}',
|
|
|
|
|
cloneStrippedConfigCredentials: 'config.yaml에서 임베디드 자격 증명 {count}개 제거됨: {list}',
|
2026-04-17 09:09:50 +08:00
|
|
|
archivePath: '아카이브 경로',
|
|
|
|
|
archivePathPlaceholder: '아카이브 파일의 서버 경로',
|
|
|
|
|
importName: '프로필 이름 (선택)',
|
|
|
|
|
importNamePlaceholder: '비워두면 아카이브 이름을 사용합니다',
|
|
|
|
|
active: '활성',
|
|
|
|
|
model: '모델',
|
|
|
|
|
gateway: '게이트웨이',
|
|
|
|
|
alias: '별칭',
|
|
|
|
|
provider: 'Provider',
|
|
|
|
|
path: '경로',
|
|
|
|
|
skills: '스킬',
|
|
|
|
|
hasEnv: '.env 있음',
|
|
|
|
|
hasSoulMd: 'soul.md 있음',
|
|
|
|
|
noProfiles: '프로필이 없습니다. 새로 만들어 시작하세요.',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 로그
|
|
|
|
|
logs: {
|
|
|
|
|
title: '로그',
|
|
|
|
|
all: '전체',
|
|
|
|
|
searchPlaceholder: '검색...',
|
|
|
|
|
refresh: '새로고침',
|
|
|
|
|
noEntries: '로그 항목 없음',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 설정
|
|
|
|
|
settings: {
|
|
|
|
|
title: '설정',
|
|
|
|
|
saved: '저장됨',
|
|
|
|
|
saveFailed: '저장 실패',
|
|
|
|
|
tabs: {
|
|
|
|
|
display: '표시',
|
2026-04-22 20:27:33 +08:00
|
|
|
account: '계정',
|
2026-04-17 09:09:50 +08:00
|
|
|
agent: '에이전트',
|
|
|
|
|
memory: '메모리',
|
|
|
|
|
session: '세션',
|
|
|
|
|
privacy: '개인정보',
|
|
|
|
|
apiServer: 'API 서버',
|
|
|
|
|
},
|
|
|
|
|
display: {
|
|
|
|
|
streaming: '스트리밍 응답',
|
|
|
|
|
streamingHint: 'AI 응답을 실시간으로 표시',
|
|
|
|
|
compact: '컴팩트 모드',
|
|
|
|
|
compactHint: '메시지 간격 줄이기',
|
|
|
|
|
showReasoning: '추론 과정 표시',
|
|
|
|
|
showReasoningHint: '모델의 생각 과정 표시',
|
|
|
|
|
showCost: '비용 표시',
|
|
|
|
|
showCostHint: '응답에 토큰 사용량 표시',
|
|
|
|
|
inlineDiffs: '인라인 변경사항',
|
|
|
|
|
inlineDiffsHint: '코드 변경사항을 인라인으로 표시',
|
|
|
|
|
bellOnComplete: '완료 알림음',
|
|
|
|
|
bellOnCompleteHint: 'AI 응답 완료 시 알림음 재생',
|
|
|
|
|
busyInputMode: '바쁨 입력 모드',
|
|
|
|
|
busyInputModeHint: 'AI 처리 중에도 입력 허용',
|
|
|
|
|
theme: '테마',
|
|
|
|
|
themeHint: '라이트, 다크 또는 시스템 설정 따르기',
|
|
|
|
|
themeLight: '라이트',
|
|
|
|
|
themeDark: '다크',
|
|
|
|
|
themeSystem: '시스템',
|
|
|
|
|
},
|
|
|
|
|
agent: {
|
|
|
|
|
maxTurns: '최대 턴 수',
|
|
|
|
|
maxTurnsHint: '대화당 최대 상호작용 라운드 수',
|
|
|
|
|
gatewayTimeout: '게이트웨이 시간초과',
|
|
|
|
|
gatewayTimeoutHint: '요청 시간초과 (초)',
|
|
|
|
|
restartDrainTimeout: '재시작 드레인 시간초과',
|
|
|
|
|
restartDrainTimeoutHint: '재시작 전 드레인 시간초과 (초)',
|
|
|
|
|
toolEnforcement: '도구 실행 정책',
|
|
|
|
|
toolEnforcementHint: '도구 호출 실행 모드 제어',
|
|
|
|
|
auto: '자동',
|
|
|
|
|
always: '항상',
|
|
|
|
|
never: '사용 안 함',
|
|
|
|
|
},
|
|
|
|
|
memory: {
|
|
|
|
|
enabled: '메모리 활성화',
|
|
|
|
|
enabledHint: 'AI가 대화 컨텍스트를 기억하도록 허용',
|
|
|
|
|
userProfile: '사용자 프로필',
|
|
|
|
|
userProfileHint: 'AI가 사용자 선호를 기억하도록 허용',
|
|
|
|
|
charLimit: '메모리 문자 제한',
|
|
|
|
|
charLimitHint: 'MEMORY.md 최대 문자 수',
|
|
|
|
|
userCharLimit: '사용자 프로필 문자 제한',
|
|
|
|
|
userCharLimitHint: 'USER.md 최대 문자 수',
|
|
|
|
|
},
|
|
|
|
|
session: {
|
|
|
|
|
mode: '초기화 모드',
|
|
|
|
|
modeHint: '세션 초기화 트리거 조건',
|
|
|
|
|
modeBoth: '유휴 + 예약',
|
|
|
|
|
modeIdle: '유휴만',
|
|
|
|
|
modeHourly: '예약만',
|
|
|
|
|
idleMinutes: '유휴 시간초과',
|
|
|
|
|
idleMinutesHint: '자동 초기화 대기 시간 (분)',
|
|
|
|
|
atHour: '예약 초기화 시간',
|
2026-04-22 02:09:58 +02:00
|
|
|
humanOnly: '사람 세션만 표시',
|
|
|
|
|
humanOnlyHint: '하위 에이전트 및 세션 모니터 노이즈를 기본으로 숨깁니다',
|
|
|
|
|
liveMonitorHumanOnly: '라이브 모니터: 사람 세션만 표시',
|
|
|
|
|
liveMonitorHumanOnlyHint: '라이브 모니터에서 하위 에이전트 및 세션 모니터 노이즈를 기본으로 숨깁니다',
|
2026-04-17 09:09:50 +08:00
|
|
|
atHourHint: '매일 지정한 시간에 세션 초기화',
|
|
|
|
|
},
|
|
|
|
|
privacy: {
|
|
|
|
|
redactPii: '개인정보 마스킹',
|
|
|
|
|
redactPiiHint: '민감 정보 자동 감지 및 숨김 (비밀번호, 키 등)',
|
|
|
|
|
},
|
|
|
|
|
apiServer: {
|
|
|
|
|
enable: '활성화',
|
|
|
|
|
enableHint: 'API 서버 활성화',
|
|
|
|
|
host: '호스트',
|
|
|
|
|
hostHint: '수신 주소',
|
|
|
|
|
port: '포트',
|
|
|
|
|
portHint: '수신 포트',
|
|
|
|
|
key: '키',
|
|
|
|
|
keyHint: 'API 접근 키',
|
|
|
|
|
cors: 'CORS 출처',
|
|
|
|
|
corsHint: '허용된 교차 출처',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 플랫폼 채널 설정
|
|
|
|
|
platform: {
|
|
|
|
|
requireMention: "{'@'}멘션 필요",
|
|
|
|
|
requireMentionGroup: "그룹에서 {'@'}멘션 시에만 응답",
|
|
|
|
|
requireMentionChannel: "채널에서 {'@'}멘션 시에만 응답",
|
|
|
|
|
requireMentionRoom: "방에서 {'@'}멘션 시에만 응답",
|
|
|
|
|
reactions: '반응',
|
|
|
|
|
reactionsHint: '메시지에 이모지 반응',
|
|
|
|
|
freeResponseChats: '자유 응답 채팅',
|
|
|
|
|
freeResponseChatsHint: "{'@'}멘션 없이 응답할 채팅 ID (쉼표로 구분)",
|
|
|
|
|
freeResponseChannels: '자유 응답 채널',
|
|
|
|
|
freeResponseChannelsHint: "{'@'}멘션 없이 응답할 채널 ID (쉼표로 구분)",
|
|
|
|
|
freeResponseRooms: '자유 응답 방',
|
|
|
|
|
freeResponseRoomsHint: "{'@'}멘션 없이 응답할 방 ID (쉼표로 구분)",
|
|
|
|
|
mentionPatterns: '사용자 지정 멘션 패턴',
|
|
|
|
|
mentionPatternsHint: '추가 트리거 패턴',
|
|
|
|
|
autoThread: '자동 스레드',
|
|
|
|
|
autoThreadHint: "{'@'}멘션 후 자동으로 스레드 생성",
|
|
|
|
|
autoThreadHintRoom: '방에서 자동으로 스레드 생성',
|
|
|
|
|
dmMentionThreads: 'DM 멘션 스레드',
|
|
|
|
|
dmMentionThreadsHint: 'DM에서 멘션 시 스레드로 응답',
|
|
|
|
|
allowBots: '봇 메시지 허용',
|
|
|
|
|
allowBotsHint: '다른 봇의 메시지에 응답',
|
|
|
|
|
allowedChannels: '허용된 채널',
|
|
|
|
|
allowedChannelsHint: '채널 ID 허용 목록 (쉼표로 구분)',
|
|
|
|
|
ignoredChannels: '무시할 채널',
|
|
|
|
|
ignoredChannelsHint: '봇이 응답하지 않는 채널 ID (쉼표로 구분)',
|
|
|
|
|
noThreadChannels: '스레드 없는 채널',
|
|
|
|
|
noThreadChannelsHint: '스레드 없이 응답할 채널 ID (쉼표로 구분)',
|
2026-04-29 20:31:24 +08:00
|
|
|
exclusiveTokenWarning: '이 플랫폼은 독점 토큰 잠금을 사용합니다. 각 프로필은 다른 프로필과 충돌하지 않도록 서로 다른 ID 토큰을 사용해야 합니다.',
|
2026-04-17 09:09:50 +08:00
|
|
|
botToken: 'Bot Token',
|
|
|
|
|
botTokenHint: '개발자 포털에서 발급받은 Bot Token',
|
|
|
|
|
accessToken: 'Access Token',
|
|
|
|
|
accessTokenHint: 'Matrix Access Token',
|
|
|
|
|
homeserver: 'Homeserver URL',
|
|
|
|
|
homeserverHint: 'Matrix 홈서버 URL',
|
|
|
|
|
appId: 'App ID',
|
|
|
|
|
appIdHint: 'Feishu App ID',
|
|
|
|
|
appSecret: 'App Secret',
|
|
|
|
|
appSecretHint: 'Feishu App Secret',
|
|
|
|
|
clientId: 'Client ID',
|
|
|
|
|
clientIdHint: 'DingTalk Client ID',
|
|
|
|
|
clientSecret: 'Client Secret',
|
|
|
|
|
clientSecretHint: 'DingTalk Client Secret',
|
|
|
|
|
botId: 'Bot ID',
|
|
|
|
|
botIdHint: 'WeCom Bot ID',
|
|
|
|
|
wecomSecretHint: 'WeCom Bot Secret',
|
|
|
|
|
waEnabled: 'WhatsApp 활성화',
|
|
|
|
|
waEnabledHint: 'QR 코드 페어링으로 WhatsApp 활성화',
|
|
|
|
|
weixinToken: 'Weixin Token',
|
|
|
|
|
weixinTokenHint: 'weixin CLI QR 로그인에서 가져오기 (hermes weixin)',
|
|
|
|
|
accountId: 'Account ID',
|
|
|
|
|
accountIdHint: 'Weixin Account ID',
|
|
|
|
|
qrLogin: 'QR 로그인',
|
|
|
|
|
qrRelogin: '다시 로그인',
|
|
|
|
|
qrFetching: 'QR 코드를 가져오는 중...',
|
|
|
|
|
qrScanHint: 'WeChat으로 QR 코드를 스캔하여 로그인',
|
|
|
|
|
qrScanedHint: '스캔됨, 휴대폰에서 확인해 주세요...',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 언어
|
|
|
|
|
language: {
|
|
|
|
|
label: '언어',
|
|
|
|
|
zh: '中文',
|
|
|
|
|
en: 'English',
|
|
|
|
|
ko: '한국어',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 터미널
|
|
|
|
|
terminal: {
|
|
|
|
|
sessions: '세션',
|
|
|
|
|
newTab: '새 터미널',
|
|
|
|
|
closeSession: '이 세션을 닫으시겠습니까?',
|
|
|
|
|
sessionExited: '종료됨',
|
|
|
|
|
processExited: '프로세스가 종료되었습니다 (코드 {code})',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 사용량
|
|
|
|
|
usage: {
|
|
|
|
|
title: '사용량 통계',
|
|
|
|
|
refresh: '새로고침',
|
|
|
|
|
totalTokens: '총 토큰 수',
|
|
|
|
|
inputTokens: '입력',
|
|
|
|
|
outputTokens: '출력',
|
|
|
|
|
totalSessions: '총 세션 수',
|
|
|
|
|
avgPerDay: '일평균 ~{n}',
|
|
|
|
|
estimatedCost: '예상 비용',
|
|
|
|
|
cacheHitRate: '캐시 적중률',
|
|
|
|
|
modelBreakdown: '모델별 분포',
|
|
|
|
|
dailyTrend: '일별 사용량 (최근 30일)',
|
|
|
|
|
date: '날짜',
|
|
|
|
|
tokens: '토큰',
|
|
|
|
|
cache: '캐시',
|
|
|
|
|
sessions: '세션',
|
|
|
|
|
cost: '비용',
|
|
|
|
|
noData: '사용량 데이터 없음',
|
|
|
|
|
},
|
2026-04-22 20:27:33 +08:00
|
|
|
|
|
|
|
|
// 변경 이력
|
|
|
|
|
changelog: {
|
2026-04-30 16:40:37 +08:00
|
|
|
new_0_5_3_1: 'Improve reasoning process display with persistence across page refreshes',
|
|
|
|
|
new_0_5_3_2: 'Optimize stringified array format parsing to extract thinking/text/tool_calls',
|
|
|
|
|
new_0_5_3_3: 'Improve log display by removing ellipsis and showing full content',
|
|
|
|
|
new_0_5_3_4: 'Add detailed logging for format conversion and parsing',
|
|
|
|
|
new_0_5_3_5: 'Optimize token calculation to accurately include tool results',
|
|
|
|
|
new_0_5_2_1: 'Convert conversation history to Anthropic format before sending to Gateway',
|
|
|
|
|
new_0_5_2_2: 'Add bidirectional reasoning sync between memory and database',
|
|
|
|
|
new_0_5_2_3: 'Add message pagination with DESC query + array reverse for performance',
|
|
|
|
|
new_0_5_2_4: 'Clean up debug code and unused imports',
|
|
|
|
|
new_0_5_2_5: 'Remove auto-resumed event trigger to avoid timing issues',
|
|
|
|
|
new_0_5_2_6: 'Use reasoning field consistently across codebase',
|
2026-04-29 21:08:09 +08:00
|
|
|
new_0_5_1_1: 'Auto-sync Hermes history sessions on first startup',
|
|
|
|
|
new_0_5_1_2: 'Fix session sync failure with old Hermes versions (backward compatible)',
|
|
|
|
|
new_0_5_1_3: 'Smart cleanup of exclusive platform credentials on profile clone (Telegram, Discord, Slack, etc.)',
|
|
|
|
|
new_0_5_1_4: 'Auto-normalize profile names to lowercase to avoid backend validation errors',
|
|
|
|
|
new_0_5_1_5: 'Fix tool_call_id missing in tool messages for OpenAI API compatibility',
|
|
|
|
|
new_0_5_1_6: 'Unify SQLite table schema management and initialization',
|
|
|
|
|
new_0_5_1_7: 'Optimize model list layout in Provider cards (fixed height, tag alignment)',
|
|
|
|
|
new_0_5_1_8: 'Fix display issue with single-line long code blocks in user messages',
|
|
|
|
|
new_0_5_1_9: 'Fix web terminal rendering errors in Docker deployment',
|
2026-04-29 16:26:24 +08:00
|
|
|
new_0_5_0_1: 'Self-built chat database and context compression: empty chat history on first entry is expected',
|
|
|
|
|
new_0_5_0_2: 'Sessions use WebSocket form, enhanced resume capability',
|
2026-04-26 13:28:08 +08:00
|
|
|
new_0_4_8_1: 'Safe Mermaid diagram rendering with async render and timeout fallback',
|
|
|
|
|
new_0_4_8_2: 'Fix nested markdown fence rendering truncation',
|
|
|
|
|
new_0_4_8_3: 'Fix compressed session lineage projection and search',
|
|
|
|
|
new_0_4_8_4: 'Optimize session list N+1 queries and fix search 500 on non-CJK input',
|
|
|
|
|
new_0_4_8_5: 'Fix forced scroll to bottom when switching back from other tabs',
|
|
|
|
|
new_0_4_8_6: 'Smooth session switch with loading transition overlay',
|
|
|
|
|
new_0_4_8_7: 'Fix login token validation using Hermes session endpoint',
|
|
|
|
|
new_0_4_8_8: 'Fix image attachments broken after page refresh (blob URL persistence)',
|
|
|
|
|
new_0_4_8_9: 'Click image attachments to preview in fullscreen overlay',
|
|
|
|
|
new_0_4_8_10: 'Move upload directory from temp to ~/.hermes-web-ui/upload',
|
2026-04-25 20:39:53 +08:00
|
|
|
new_0_4_7_1: '생각/추론 블록의 실시간 스트리밍 표시',
|
|
|
|
|
new_0_4_7_2: 'Docker 빌드 중 prepare 스크립트 건너뛰기',
|
|
|
|
|
new_0_4_7_3: '그룹 채팅 모바일 UX 개선 및 UI 다듬기',
|
|
|
|
|
new_0_4_7_4: '컨텍스트 남은 토큰을 음수 대신 0으로 제한',
|
|
|
|
|
new_0_4_7_5: '.env base_url 재정의를 지원하는 Alibaba Coding Plan 내장 프로바이더 추가',
|
|
|
|
|
new_0_4_7_6: '시작 시 원격 프로필 건너뛰어 중지 방지',
|
|
|
|
|
new_0_4_7_7: '조용히 삼켜진 실행 오류 감지 및 표시',
|
|
|
|
|
new_0_4_7_8: '프로바이더 인식 컨텍스트 길이 조회',
|
|
|
|
|
new_0_4_7_9: '전환 시 config.model 재설정 및 CLI 커스텀 프로바이더 해결',
|
|
|
|
|
new_0_4_7_10: '내장 프로바이더 삭제 시 .env에서 base_url_env 정리',
|
|
|
|
|
new_0_4_7_11: '그룹 채팅 방 사이드바 배경을 세션 목록과 맞추기',
|
2026-04-24 20:54:06 +08:00
|
|
|
new_0_4_5_1: 'Add group chat with multi-agent rooms, @mention routing, and typing status recovery',
|
|
|
|
|
new_0_4_5_2: 'Rewrite model-context config to use YAML with context_length setting',
|
|
|
|
|
new_0_4_5_3: 'Add gpt-5.5 to OpenAI Codex model list',
|
|
|
|
|
new_0_4_5_4: 'Replace jobs proxy with local controller and optimize model loading',
|
|
|
|
|
new_0_4_5_5: 'Add i18n support for custom model feature in ModelSelector',
|
|
|
|
|
new_0_4_5_6: 'Fix sidebar i18n missing key warnings',
|
|
|
|
|
new_0_4_5_7: 'Clear all localStorage on logout',
|
|
|
|
|
new_0_4_5_8: 'Add periodic log rotation to prevent unbounded log growth',
|
2026-04-22 20:27:33 +08:00
|
|
|
new_0_4_2_1: '토큰 사용량 추적 및 동적 컨텍스트 길이 추가',
|
|
|
|
|
new_0_4_2_2: '세션 검색 모달 추가',
|
|
|
|
|
new_0_4_2_3: 'Socket.IO 및 SQLite로 그룹 채팅 시스템 복원',
|
|
|
|
|
new_0_4_2_4: '채팅 페이지에 고정 세션 및 라이브 모니터 추가',
|
|
|
|
|
new_0_4_2_5: '내장 프로바이더 감지 및 모델 매칭 수정',
|
|
|
|
|
},
|
2026-04-23 14:10:14 +08:00
|
|
|
|
|
|
|
|
// 파일
|
|
|
|
|
files: {
|
|
|
|
|
title: '파일',
|
|
|
|
|
tree: '디렉터리 트리',
|
|
|
|
|
list: '파일 목록',
|
|
|
|
|
breadcrumbRoot: '홈',
|
|
|
|
|
newFile: '새 파일',
|
|
|
|
|
newFolder: '새 폴더',
|
|
|
|
|
upload: '업로드',
|
|
|
|
|
refresh: '새로고침',
|
|
|
|
|
open: '열기',
|
|
|
|
|
edit: '편집',
|
|
|
|
|
preview: '미리보기',
|
|
|
|
|
download: '다운로드',
|
|
|
|
|
copyPath: '경로 복사',
|
|
|
|
|
rename: '이름 변경',
|
|
|
|
|
delete: '삭제',
|
|
|
|
|
name: '이름',
|
|
|
|
|
size: '크기',
|
|
|
|
|
modified: '수정일',
|
|
|
|
|
actions: '작업',
|
|
|
|
|
emptyDir: '빈 디렉터리',
|
|
|
|
|
loading: '불러오는 중...',
|
|
|
|
|
confirmDelete: '"{name}"을(를) 삭제하시겠습니까?',
|
|
|
|
|
confirmDeleteDir: '디렉터리 "{name}"과 그 내부 항목을 모두 삭제하시겠습니까?',
|
|
|
|
|
deleteFailed: '삭제 실패',
|
|
|
|
|
deleted: '삭제됨',
|
|
|
|
|
renameTo: '새 이름',
|
|
|
|
|
newFileName: '파일 이름',
|
|
|
|
|
newFolderName: '폴더 이름',
|
|
|
|
|
created: '생성됨',
|
|
|
|
|
createFailed: '생성 실패',
|
|
|
|
|
renamed: '이름이 변경됨',
|
|
|
|
|
renameFailed: '이름 변경 실패',
|
|
|
|
|
uploadSuccess: '{count}개 파일이 업로드되었습니다',
|
|
|
|
|
uploadFailed: '업로드 실패',
|
|
|
|
|
saveFailed: '저장 실패',
|
|
|
|
|
saved: '저장됨',
|
|
|
|
|
unsavedChanges: '저장하지 않은 변경 사항이 있습니다. 취소하시겠습니까?',
|
|
|
|
|
pathCopied: '경로가 복사되었습니다',
|
|
|
|
|
fileTooLarge: '파일이 너무 큽니다 (최대 10MB)',
|
|
|
|
|
permissionDenied: '보호된 파일은 수정할 수 없습니다',
|
|
|
|
|
notFound: '파일 또는 디렉터리를 찾을 수 없습니다',
|
|
|
|
|
backendError: '파일 작업 실패',
|
|
|
|
|
dragDropHint: '여기로 파일을 드래그하여 업로드',
|
|
|
|
|
closeEditor: '편집기 닫기',
|
|
|
|
|
closePreview: '닫기',
|
|
|
|
|
saveFile: '저장',
|
|
|
|
|
},
|
|
|
|
|
|
2026-04-24 20:41:14 +08:00
|
|
|
// 그룹 채팅
|
|
|
|
|
groupChat: {
|
|
|
|
|
title: '그룹 채팅',
|
|
|
|
|
createRoom: '방 만들기',
|
|
|
|
|
joinByCode: '코드로 참여',
|
|
|
|
|
roomName: '방 이름',
|
|
|
|
|
roomNamePlaceholder: '방 이름을 입력하세요',
|
|
|
|
|
inviteCode: '초대 코드',
|
|
|
|
|
autoGenerate: '자동 생성',
|
|
|
|
|
noRooms: '아직 방이 없습니다',
|
|
|
|
|
selectOrCreate: '방을 선택하거나 만들어 채팅을 시작하세요',
|
|
|
|
|
agents: '에이전트',
|
|
|
|
|
addAgent: '에이전트 추가',
|
|
|
|
|
selectProfile: '프로필 선택',
|
|
|
|
|
agentAdded: '에이전트가 추가되었습니다',
|
|
|
|
|
agentAlreadyInRoom: '해당 에이전트가 이미 방에 있습니다',
|
|
|
|
|
noAgents: '이 방에 에이전트가 없습니다',
|
|
|
|
|
members: '멤버',
|
|
|
|
|
roomCreated: '방이 생성되었습니다',
|
|
|
|
|
roomDeleted: '방이 삭제되었습니다',
|
|
|
|
|
deleteRoomConfirm: '이 방을 삭제하시겠습니까?',
|
|
|
|
|
you: '나',
|
|
|
|
|
joined: '방에 참여했습니다',
|
|
|
|
|
joinFailed: '방 참여에 실패했습니다',
|
|
|
|
|
inputPlaceholder: '메시지를 입력하세요... (Enter로 전송)',
|
|
|
|
|
enterCode: '초대 코드를 입력하세요',
|
|
|
|
|
yourName: '이름',
|
|
|
|
|
yourNamePlaceholder: '표시 이름을 입력하세요',
|
|
|
|
|
yourDescription: '설명 (선택)',
|
|
|
|
|
yourDescriptionPlaceholder: '자신을 소개해 주세요...',
|
|
|
|
|
agentName: '에이전트 이름',
|
|
|
|
|
agentNamePlaceholder: '사용자 지정 이름 (빈칸=프로필 이름)',
|
|
|
|
|
agentDesc: '에이전트 설명',
|
|
|
|
|
agentDescPlaceholder: '이 에이전트가 하는 일을 설명...',
|
|
|
|
|
agentReplying: '이(가) 응답 중...',
|
|
|
|
|
agentCompressing: '이(가) 컨텍스트 압축 중...',
|
|
|
|
|
compressionSettings: '압축 설정',
|
|
|
|
|
triggerTokens: '압축 트리거 토큰',
|
|
|
|
|
triggerTokensDesc: '이 토큰 수를 초과하면 컨텍스트 압축이 시작됩니다',
|
|
|
|
|
maxHistoryTokens: '최대 기록 토큰',
|
|
|
|
|
maxHistoryTokensDesc: '압축된 컨텍스트의 최대 토큰 수',
|
|
|
|
|
tailMessageCount: '최근 메시지 수',
|
|
|
|
|
tailMessageCountDesc: '압축 후 그대로 유지할 최근 메시지 수',
|
|
|
|
|
compressionConfig: '압축 설정',
|
|
|
|
|
compressNow: '지금 압축',
|
|
|
|
|
compressingInProgress: '압축 진행 중',
|
|
|
|
|
compressionSaved: '압축 설정이 저장되었습니다',
|
|
|
|
|
},
|
|
|
|
|
|
2026-04-23 14:10:14 +08:00
|
|
|
// 다운로드
|
|
|
|
|
download: {
|
|
|
|
|
downloading: '다운로드 중...',
|
|
|
|
|
downloadFailed: '다운로드 실패',
|
|
|
|
|
fileNotFound: '파일을 찾을 수 없거나 삭제되었습니다',
|
|
|
|
|
fileTooLarge: '파일이 너무 큽니다 (제한 초과)',
|
|
|
|
|
backendError: '파일 읽기에 실패했습니다. 원격 환경이 사용 불가능할 수 있습니다',
|
|
|
|
|
backendTimeout: '파일 읽기 시간 초과',
|
|
|
|
|
unsupportedBackend: '현재 터미널 백엔드는 파일 다운로드를 지원하지 않습니다',
|
|
|
|
|
invalidPath: '잘못된 파일 경로',
|
|
|
|
|
download: '다운로드',
|
2026-04-24 02:31:42 +02:00
|
|
|
downloadFile: '파일 다운로드',
|
2026-04-23 14:10:14 +08:00
|
|
|
},
|
2026-04-17 09:09:50 +08:00
|
|
|
}
|