feat(i18n): add Korean locale (#2241)

This commit is contained in:
Navneet Singh
2026-05-19 16:50:09 -07:00
committed by GitHub
parent e9205225b8
commit a03c1c4dfa
10 changed files with 4080 additions and 1 deletions
+1
View File
@@ -7,6 +7,7 @@ import { setLocale } from '../store/localeSlice';
// is recognisable to a native speaker even before the rest of the UI rerenders.
const LOCALE_OPTIONS: Array<{ value: Locale; flag: string; label: string }> = [
{ value: 'en', flag: '🇬🇧', label: 'English' },
{ value: 'ko', flag: '🇰🇷', label: '한국어' },
{ value: 'zh-CN', flag: '🇨🇳', label: '中文' },
{ value: 'hi', flag: '🇮🇳', label: 'हिन्दी' },
{ value: 'es', flag: '🇪🇸', label: 'Español' },
+2
View File
@@ -9,6 +9,7 @@ import fr from './fr';
import hi from './hi';
import id from './id';
import it from './it';
import ko from './ko';
import pt from './pt';
import ru from './ru';
import type { Locale } from './types';
@@ -21,6 +22,7 @@ interface I18nContextValue {
const translations: Record<Locale, Record<string, string>> = {
en,
ko,
'zh-CN': zhCN,
hi,
es,
+386
View File
@@ -0,0 +1,386 @@
import type { TranslationMap } from '../types';
// Korean chunk 1/5. Source of truth for translators.
const ko1: TranslationMap = {
'nav.home': '홈',
'nav.human': '휴먼',
'nav.chat': '채팅',
'nav.connections': '연결',
'nav.memory': '인텔리전스',
'nav.alerts': '알림',
'nav.rewards': '보상',
'nav.settings': '설정',
'common.cancel': '취소',
'common.save': '저장',
'common.confirm': '확인',
'common.delete': '삭제',
'common.edit': '편집',
'common.create': '생성',
'common.search': '검색',
'common.loading': '로딩 중…',
'common.error': '오류',
'common.success': '성공',
'common.back': '뒤로',
'common.next': '다음',
'common.finish': '완료',
'common.close': '닫기',
'common.enabled': '활성화됨',
'common.disabled': '비활성화됨',
'common.on': '켜짐',
'common.off': '꺼짐',
'common.yes': '예',
'common.no': '아니요',
'common.ok': '확인했습니다',
'common.retry': '다시 시도',
'common.copy': '복사',
'common.copied': '복사됨',
'common.learnMore': '자세히 알아보기',
'common.seeAll': '보기',
'common.dismiss': '닫기',
'common.clear': '지우기',
'common.reset': '초기화',
'common.refresh': '새로고침',
'common.export': '내보내기',
'common.import': '가져오기',
'common.upload': '업로드',
'common.download': '다운로드',
'common.add': '추가',
'common.remove': '제거',
'common.showMore': '더 보기',
'common.showLess': '간단히 보기',
'common.submit': '제출',
'common.continue': '계속',
'settings.general': '일반',
'settings.featuresAndAI': '기능 및 AI',
'settings.billingAndRewards': '결제 및 보상',
'settings.support': '지원',
'settings.advanced': '고급',
'settings.dangerZone': '위험 영역',
'settings.account': '계정',
'settings.accountDesc': '복구 문구, 팀, 연결 및 개인정보',
'settings.notifications': '알림',
'settings.notificationsDesc': '방해 금지 및 계정별 알림 설정',
'settings.features': '기능',
'settings.featuresDesc': '화면 인식, 메시징 및 도구',
'settings.aiModels': 'AI 및 모델',
'settings.aiModelsDesc': '로컬 AI 모델 설정, 다운로드 및 LLM 제공업체',
'settings.ai': 'AI 구성',
'settings.aiDesc': '클라우드 제공업체, 로컬 Ollama 모델 및 작업별 라우팅',
'settings.billingUsage': '결제 및 사용량',
'settings.billingUsageDesc': '구독 플랜, 크레딧 및 결제 수단',
'settings.rewards': '보상',
'settings.rewardsDesc': '추천, 쿠폰 및 적립 크레딧',
'settings.restartTour': '투어 다시 시작',
'settings.restartTourDesc': '제품 안내를 처음부터 다시 보기',
'settings.about': '정보',
'settings.aboutDesc': '앱 버전 및 소프트웨어 업데이트',
'settings.developerOptions': '고급',
'settings.developerOptionsDesc': 'AI 구성, 메시징 채널, 도구, 진단 및 디버그 패널',
'settings.clearAppData': '앱 데이터 삭제',
'settings.clearAppDataDesc': '로그아웃하고 모든 로컬 앱 데이터를 영구적으로 삭제',
'settings.logOut': '로그아웃',
'settings.logOutDesc': '계정에서 로그아웃',
'settings.language': '언어',
'settings.languageDesc': '앱 인터페이스 표시 언어',
'settings.alerts': '알림',
'settings.alertsDesc': '받은 편지함에서 최근 알림 및 활동 보기',
'settings.account.recoveryPhrase': '복구 문구',
'settings.account.recoveryPhraseDesc': '계정 복구 문구를 확인하고 백업합니다',
'settings.account.team': '팀',
'settings.account.teamDesc': '팀 구성원과 권한을 관리합니다',
'settings.account.connections': '연결',
'settings.account.connectionsDesc': '연결된 계정과 서비스를 관리합니다',
'settings.account.privacy': '개인정보 보호',
'settings.account.privacyDesc': '컴퓨터 밖으로 나가는 데이터를 제어합니다',
'settings.notifications.doNotDisturb': '방해 금지',
'settings.notifications.doNotDisturbDesc': '정해진 시간 동안 모든 알림을 일시 중지합니다',
'settings.notifications.channelControls': '채널별 설정',
'settings.notifications.channelControlsDesc': '각 채널의 알림 기본 설정을 구성합니다',
'settings.features.screenAwareness': '화면 인식',
'settings.features.screenAwarenessDesc': '어시스턴트가 현재 활성 창을 볼 수 있게 합니다',
'settings.features.messaging': '메시징',
'settings.features.messagingDesc': '채널 및 메시징 통합 설정',
'settings.features.tools': '도구',
'settings.features.toolsDesc': '연결된 도구와 통합을 관리합니다',
'settings.ai.localSetup': '로컬 AI 설정',
'settings.ai.localSetupDesc': '로컬 AI 모델을 다운로드하고 구성합니다',
'settings.ai.llmProvider': 'LLM 제공업체',
'settings.ai.llmProviderDesc': 'AI 제공업체를 선택하고 구성합니다',
'clearData.title': '앱 데이터 삭제',
'clearData.warning': '이 작업은 로그아웃하고 다음 로컬 앱 데이터를 영구적으로 삭제합니다:',
'clearData.bulletSettings': '앱 설정 및 대화',
'clearData.bulletCache': '모든 로컬 통합 캐시 데이터',
'clearData.bulletWorkspace': '워크스페이스 데이터',
'clearData.bulletOther': '기타 모든 로컬 데이터',
'clearData.irreversible': '이 작업은 되돌릴 수 없습니다.',
'clearData.clearing': '앱 데이터를 삭제하는 중...',
'clearData.failed': '데이터 삭제 및 로그아웃에 실패했습니다. 다시 시도해 주세요.',
'clearData.failedLogout': '로그아웃에 실패했습니다. 다시 시도해 주세요.',
'clearData.failedPersist': '저장된 앱 상태를 삭제하지 못했습니다. 다시 시도해 주세요.',
'welcome.title': 'OpenHuman에 오신 것을 환영합니다',
'welcome.subtitle': '개인용 AI 슈퍼 인텔리전스입니다. 비공개이며, 간단하고, 매우 강력합니다.',
'welcome.connectPrompt': 'RPC URL 구성(고급)',
'welcome.selectRuntime': '런타임 선택',
'welcome.urlPlaceholder': 'http://localhost:8089',
'welcome.invalidUrl': '올바른 HTTP 또는 HTTPS URL을 입력해 주세요',
'welcome.connecting': '테스트 중',
'welcome.connect': '테스트',
'home.greeting': '좋은 아침입니다',
'home.greetingAfternoon': '좋은 오후입니다',
'home.greetingEvening': '좋은 저녁입니다',
'home.askAssistant': '어시스턴트에게 무엇이든 물어보세요...',
'home.statusOk':
'기기가 연결되었습니다. 연결을 유지하려면 앱을 계속 실행해 주세요. 아래 버튼으로 에이전트에게 메시지를 보내세요.',
'home.statusBackendOnly':
'백엔드에 다시 연결하는 중입니다… 곧 에이전트를 다시 사용할 수 있습니다.',
'home.statusCoreUnreachable':
'로컬 코어 사이드카가 응답하지 않습니다. OpenHuman 백그라운드 프로세스가 중단되었거나 시작하지 못했을 수 있습니다.',
'home.statusInternetOffline':
'현재 기기가 오프라인 상태입니다. 네트워크를 확인하거나 앱을 다시 시작하여 다시 연결하세요.',
'home.restartCore': '코어 다시 시작',
'home.restartingCore': '코어를 다시 시작하는 중…',
'home.themeToggle.toLight': '라이트 모드로 전환',
'home.themeToggle.toDark': '다크 모드로 전환',
'chat.newThread': '새 스레드',
'chat.typeMessage': '메시지를 입력하세요...',
'chat.send': '메시지 보내기',
'chat.thinking': '생각 중...',
'chat.noMessages': '아직 메시지가 없습니다',
'chat.startConversation': '대화 시작',
'chat.regenerate': '다시 생성',
'chat.copyResponse': '응답 복사',
'chat.citations': '인용',
'chat.toolUsed': '사용된 도구',
'scope.legacy': '레거시',
'scope.user': '사용자',
'scope.project': '프로젝트',
'skills.title': '연결',
'skills.search': '연결 검색...',
'skills.noResults': '연결을 찾을 수 없습니다',
'skills.connect': '연결',
'skills.disconnect': '연결 해제',
'skills.configure': '관리',
'skills.connected': '연결됨',
'skills.available': '사용 가능',
'skills.addAccount': '계정 추가',
'skills.channels': '채널',
'skills.integrations': '통합',
'memory.title': '메모리',
'memory.search': '메모리 검색...',
'memory.noResults': '메모리를 찾을 수 없습니다',
'memory.empty': '아직 메모리가 없습니다. 메모리는 상호작용하면서 자동으로 생성됩니다.',
'memory.tab.memory': '메모리',
'memory.tab.subconscious': '잠재의식',
'memory.tab.dreams': '꿈',
'memory.tab.calls': '통화',
'memory.tab.settings': '설정',
'memory.analyzeNow': '지금 분석',
'alerts.title': '알림',
'alerts.empty': '아직 알림이 없습니다',
'alerts.markAllRead': '모두 읽음으로 표시',
'alerts.unread': '읽지 않음',
'rewards.title': '보상',
'rewards.referrals': '추천',
'rewards.coupons': '교환',
'rewards.credits': '크레딧',
'rewards.referralCode': '내 추천 코드',
'rewards.copyCode': '코드 복사',
'rewards.share': '공유',
'onboarding.welcome': '안녕하세요. 저는 OpenHuman입니다.',
'onboarding.welcomeDesc':
'컴퓨터에서 실행되는 초지능 AI 어시스턴트입니다. 비공개이며, 간단하고, 매우 강력합니다.',
'onboarding.context': '컨텍스트 수집',
'onboarding.contextDesc': '매일 사용하는 도구와 서비스를 연결하세요.',
'onboarding.localAI': '로컬 AI',
'onboarding.localAIDesc': '기기에서 실행되는 로컬 AI 모델을 설정하세요.',
'onboarding.chatProvider': '채팅 제공업체',
'onboarding.chatProviderDesc': '어시스턴트와 상호작용할 방법을 선택하세요.',
'onboarding.referral': '추천',
'onboarding.referralDesc': '추천 코드가 있다면 적용하세요.',
'onboarding.finish': '설정 완료',
'onboarding.finishDesc': '모든 준비가 끝났습니다! OpenHuman을 사용해 보세요.',
'onboarding.skip': '건너뛰기',
'onboarding.getStarted': '시작하기',
'onboarding.runtimeChoice.title': 'OpenHuman을 어떻게 실행하시겠습니까?',
'onboarding.runtimeChoice.subtitle':
'가장 잘 맞는 설정을 선택하세요. 나중에 설정에서 변경할 수 있습니다.',
'onboarding.runtimeChoice.cloud.title': '간단 모드',
'onboarding.runtimeChoice.cloud.tagline': 'OpenHuman이 모든 것을 대신 관리하도록 합니다.',
'onboarding.runtimeChoice.cloud.f1': '내장 보안',
'onboarding.runtimeChoice.cloud.f2': '사용량을 더 오래 쓰기 위한 토큰 압축',
'onboarding.runtimeChoice.cloud.f3': '하나의 구독으로 모든 모델 포함',
'onboarding.runtimeChoice.cloud.f4': '관리할 API 키 없음',
'onboarding.runtimeChoice.cloud.f5': '간단한 설정',
'onboarding.runtimeChoice.custom.title': '사용자 지정 실행',
'onboarding.runtimeChoice.custom.tagline': '직접 키를 가져와 사용 중인 항목을 완전히 제어합니다.',
'onboarding.runtimeChoice.custom.f1': '거의 모든 기능에 API 키가 필요합니다',
'onboarding.runtimeChoice.custom.f2': '이미 결제 중인 서비스를 다시 사용합니다',
'onboarding.runtimeChoice.custom.f3': '모든 것을 로컬에서 실행하면 무료일 수 있습니다',
'onboarding.runtimeChoice.custom.f4': '더 많은 설정과 더 많은 옵션',
'onboarding.runtimeChoice.custom.f5': '고급 사용자와 개발자에게 가장 적합',
'onboarding.runtimeChoice.cloud.creditHighlight': '체험용 $1 무료 크레딧',
'onboarding.runtimeChoice.continueCloud': '간단 모드로 계속',
'onboarding.runtimeChoice.continueCustom': '사용자 지정으로 계속',
'onboarding.runtimeChoice.recommended': '추천',
'onboarding.apiKeys.title': 'API 키를 추가해 봅시다',
'onboarding.apiKeys.subtitle':
'지금 붙여넣거나 건너뛰고 나중에 설정 › AI에서 추가할 수 있습니다. 키는 이 기기에 저장되며 저장 시 암호화됩니다.',
'onboarding.apiKeys.openaiLabel': 'OpenAI API 키',
'onboarding.apiKeys.openaiPlaceholder': 'sk-...',
'onboarding.apiKeys.anthropicLabel': 'Anthropic API 키',
'onboarding.apiKeys.anthropicPlaceholder': 'sk-ant-...',
'onboarding.apiKeys.saveError':
'해당 키를 저장할 수 없습니다. 다시 확인한 후 다시 시도해 주세요.',
'onboarding.apiKeys.skipForNow': '지금은 건너뛰기',
'onboarding.apiKeys.continue': '저장하고 계속',
'onboarding.apiKeys.saving': '저장 중…',
'onboarding.custom.stepperInference': '추론',
'onboarding.custom.stepperVoice': '음성',
'onboarding.custom.stepperOAuth': 'OAuth',
'onboarding.custom.stepperSearch': '검색',
'onboarding.custom.stepperMemory': '메모리',
'onboarding.custom.stepCounter': '{total}단계 중 {n}단계',
'onboarding.custom.defaultTitle': '기본값',
'onboarding.custom.defaultSubtitle': 'OpenHuman이 대신 관리하도록 합니다.',
'onboarding.custom.configureTitle': '구성',
'onboarding.custom.configureSubtitle': '사용할 항목을 직접 선택합니다.',
'onboarding.custom.progressAriaLabel': '온보딩 진행 상황',
'onboarding.custom.continue': '계속',
'onboarding.custom.back': '뒤로',
'onboarding.custom.finish': '설정 완료',
'onboarding.custom.configureLater':
'온보딩 후에 이 설정을 마칠 수 있습니다. 완료되면 해당 설정 페이지로 이동합니다.',
'onboarding.custom.openSettings': '설정에서 열기',
'onboarding.custom.inference.title': '추론(텍스트)',
'onboarding.custom.inference.subtitle':
'어떤 언어 모델이 질문에 답하고 에이전트를 실행해야 하나요?',
'onboarding.custom.inference.defaultDesc':
'OpenHuman은 모든 작업을 적절한 기본 모델로 라우팅합니다. 키도 필요 없고 설정도 필요 없습니다.',
'onboarding.custom.inference.configureDesc':
'직접 OpenAI 또는 Anthropic 키를 가져오세요. 모든 텍스트 기반 작업에 이 키를 사용합니다.',
'onboarding.custom.voice.title': '음성',
'onboarding.custom.voice.subtitle':
'음성 모드를 위한 음성-텍스트 변환 및 텍스트-음성 변환입니다.',
'onboarding.custom.voice.defaultDesc':
'OpenHuman에는 바로 사용할 수 있는 관리형 STT/TTS가 포함되어 있습니다. 별도로 연결할 필요가 없습니다.',
'onboarding.custom.voice.configureDesc':
'직접 ElevenLabs / OpenAI Whisper 등을 사용하세요. 설정 › 음성에서 구성할 수 있습니다.',
'onboarding.custom.oauth.title': '연결(OAuth)',
'onboarding.custom.oauth.subtitle':
'OAuth가 필요한 Gmail, Slack, Notion 및 기타 연결 서비스입니다.',
'onboarding.custom.oauth.defaultDesc':
'OpenHuman은 관리형 Composio 워크스페이스를 실행합니다. 나중에 각 서비스를 한 번의 클릭으로 연결할 수 있습니다.',
'onboarding.custom.oauth.configureDesc':
'직접 Composio 계정 또는 API 키를 가져오세요. 설정 › 연결에서 구성할 수 있습니다.',
'onboarding.custom.search.title': '웹 검색',
'onboarding.custom.search.subtitle': 'OpenHuman이 사용자를 대신해 웹을 검색하는 방식입니다.',
'onboarding.custom.search.defaultDesc':
'OpenHuman은 관리형 검색 백엔드를 사용합니다. 키가 필요 없습니다.',
'onboarding.custom.search.configureDesc':
'직접 검색 제공업체 키(Tavily, Brave 등)를 가져오세요. 설정 › 도구에서 구성할 수 있습니다.',
'onboarding.custom.memory.title': '메모리',
'onboarding.custom.memory.subtitle':
'OpenHuman이 사용자의 컨텍스트, 선호도, 이전 대화를 기억하는 방식입니다.',
'onboarding.custom.memory.defaultDesc':
'OpenHuman은 메모리 저장과 검색을 자동으로 관리합니다. 설정할 것이 없습니다.',
'onboarding.custom.memory.configureDesc':
'메모리를 직접 검사, 내보내기 또는 삭제할 수 있습니다. 설정 › 메모리에서 구성할 수 있습니다.',
'accounts.addAccount': '계정 추가',
'accounts.manageAccounts': '계정 관리',
'accounts.noAccounts': '연결된 계정이 없습니다',
'accounts.connectAccount': '시작하려면 계정을 연결하세요',
'accounts.agent': '에이전트',
'accounts.respondQueue': '응답 대기열',
'accounts.disconnect': '연결 해제',
'accounts.disconnectConfirm': '이 계정의 연결을 해제하시겠습니까?',
'accounts.searchAccounts': '계정 검색...',
'channels.title': '채널',
'channels.configure': '채널 구성',
'channels.setup': '설정',
'channels.noChannels': '구성된 채널이 없습니다',
'channels.addChannel': '채널 추가',
'channels.status.connected': '연결됨',
'channels.status.disconnected': '연결 해제됨',
'channels.status.error': '오류',
'channels.status.configuring': '구성 중',
'channels.defaultMessaging': '기본 메시징 채널',
'webhooks.title': '웹훅',
'webhooks.create': '웹훅 생성',
'webhooks.noWebhooks': '구성된 웹훅이 없습니다',
'webhooks.url': 'URL',
'webhooks.secret': '시크릿',
'webhooks.events': '이벤트',
'webhooks.archiveDirectory': '보관 디렉터리',
'webhooks.todayFile': '오늘의 파일',
'invites.title': '초대',
'invites.create': '초대 생성',
'invites.noInvites': '대기 중인 초대가 없습니다',
'invites.code': '초대 코드',
'invites.copyLink': '링크 복사',
'devOptions.title': '고급',
'devOptions.diagnostics': '진단',
'devOptions.diagnosticsDesc': '시스템 상태, 로그 및 성능 지표',
'devOptions.debugPanels': '디버그 패널',
'devOptions.debugPanelsDesc': '기능 플래그, 상태 검사 및 디버깅 도구',
'devOptions.webhooks': '웹훅',
'devOptions.webhooksDesc': '웹훅 통합을 구성하고 테스트합니다',
'devOptions.memoryInspection': '메모리 검사',
'devOptions.memoryInspectionDesc': '메모리 항목을 탐색, 쿼리 및 관리합니다',
'voice.pushToTalk': '눌러서 말하기',
'voice.recording': '녹음 중...',
'voice.processing': '처리 중...',
'voice.languageHint': '언어',
'misc.rehydrating': '데이터를 불러오는 중...',
'misc.checkingServices': '서비스 확인 중...',
'misc.serviceUnavailable': '서비스를 사용할 수 없음',
'misc.somethingWentWrong': '문제가 발생했습니다',
'misc.tryAgainLater': '나중에 다시 시도해 주세요.',
'misc.restartApp': '앱 다시 시작',
'misc.updateAvailable': '업데이트 사용 가능',
'misc.updateNow': '지금 업데이트',
'misc.updateLater': '나중에',
'misc.downloading': '다운로드 중...',
'misc.installing': '설치 중...',
'misc.beta':
'OpenHuman은 초기 베타 버전입니다. 피드백을 공유하거나 발견한 버그를 신고해 주세요 — 모든 신고는 더 빠른 출시를 돕습니다.',
'misc.betaFeedback': '피드백 보내기',
'mnemonic.title': '복구 문구',
'mnemonic.warning': '이 단어들을 순서대로 적어 안전한 곳에 보관하세요.',
'mnemonic.copyWarning':
'복구 문구를 절대 공유하지 마세요. 이 단어를 가진 사람은 누구나 계정에 접근할 수 있습니다.',
'mnemonic.copied': '복구 문구가 클립보드에 복사되었습니다',
'mnemonic.reveal': '문구 보기',
'mnemonic.hidden': '복구 문구가 숨겨져 있습니다',
'privacy.title': '개인정보 및 보안',
'privacy.description': '외부 서비스로 전송되는 데이터에 대한 투명성 보고서입니다.',
'privacy.empty': '감지된 외부 데이터 전송이 없습니다.',
'privacy.whatLeavesComputer': '내 컴퓨터를 떠나는 데이터',
'privacy.loading': '개인정보 세부 정보를 불러오는 중...',
'privacy.loadError':
'실시간 개인정보 목록을 불러올 수 없습니다. 아래의 분석 제어 기능은 계속 작동합니다.',
'privacy.noCapabilities': '현재 데이터 이동을 공개하는 기능이 없습니다.',
'privacy.sentTo': '전송 대상',
'privacy.leavesDevice': '기기를 떠남',
'privacy.staysLocal': '로컬에 유지됨',
'privacy.anonymizedAnalytics': '익명화된 분석',
'privacy.shareAnonymizedData': '익명화된 사용 데이터 공유',
'privacy.shareAnonymizedDataDesc':
'익명 충돌 보고서와 사용 분석을 공유하여 OpenHuman 개선을 도와주세요. 모든 데이터는 완전히 익명화되며, 개인 데이터, 메시지, 지갑 키 또는 세션 정보는 절대 수집되지 않습니다.',
'privacy.meetingFollowUps': '회의 후속 조치',
'privacy.autoHandoffMeet': 'Google Meet transcript를 오케스트레이터에 자동 전달',
'privacy.autoHandoffMeetDesc':
'Google Meet 통화가 끝나면 OpenHuman의 오케스트레이터가 transcript를 읽고 메시지 초안 작성, 후속 일정 예약, 연결된 Slack 워크스페이스에 요약 게시 같은 작업을 수행할 수 있습니다. 기본값은 꺼짐입니다.',
'privacy.analyticsDisclaimer':
'모든 분석 및 버그 보고서는 완전히 익명화됩니다. 활성화하면 충돌 정보, 기기 유형, 오류 파일 위치만 수집합니다. 메시지, 세션 데이터, 지갑 키, API 키 또는 개인 식별 정보에는 절대 접근하지 않습니다. 이 설정은 언제든지 변경할 수 있습니다.',
'settings.about.version': '버전',
'settings.about.updateAvailable': '사용 가능',
'settings.about.softwareUpdates': '소프트웨어 업데이트',
'settings.about.lastChecked': '마지막 확인',
'settings.about.checking': '확인 중...',
'settings.about.checkForUpdates': '업데이트 확인',
'settings.about.releases': '릴리스',
'settings.about.releasesDesc': 'GitHub에서 릴리스 노트와 이전 빌드를 찾아보세요.',
'settings.about.openReleases': 'GitHub 릴리스 열기',
'settings.ai.overview': 'AI 시스템 개요',
};
export default ko1;
+375
View File
@@ -0,0 +1,375 @@
import type { TranslationMap } from '../types';
// Korean chunk 2/5. Source of truth for translators.
const ko2: TranslationMap = {
'settings.ai.configStatus': '구성 상태',
'settings.ai.fallbackMode': '대체 모드',
'settings.ai.loadedFromRuntime': '런타임에서 로드됨',
'settings.ai.loadingDuration': '로드 시간',
'settings.ai.localRuntime': '로컬 모델 런타임',
'settings.ai.openManager': '관리자 열기',
'settings.ai.retryDownload': '다운로드 다시 시도',
'settings.ai.state': '상태',
'settings.ai.targetModel': '대상 모델',
'settings.ai.download': '다운로드',
'settings.ai.localModelUnavailable': '로컬 모델 상태를 사용할 수 없습니다.',
'settings.ai.soulConfig': 'SOUL 페르소나 구성',
'settings.ai.refreshing': '새로고침 중...',
'settings.ai.refreshSoul': 'SOUL 새로고침',
'settings.ai.loadingSoul': 'SOUL 구성을 불러오는 중...',
'settings.ai.identity': '정체성',
'settings.ai.personality': '성격',
'settings.ai.safetyRules': '안전 규칙',
'settings.ai.source': '출처',
'settings.ai.loaded': '로드됨',
'settings.ai.toolsConfig': 'TOOLS 구성',
'settings.ai.refreshTools': 'TOOLS 새로고침',
'settings.ai.toolsAvailable': '사용 가능한 도구',
'settings.ai.tools': '도구',
'settings.ai.activeSkills': '활성 스킬',
'settings.ai.skills': '스킬',
'settings.ai.skillsOverview': '스킬 개요',
'settings.ai.refreshingAll': '모두 새로고침 중...',
'settings.ai.refreshAll': '모든 AI 구성 새로고침',
'settings.notifications.suppressAll': '모든 알림 억제',
'settings.notifications.suppressAllDesc':
'포커스 상태와 관계없이 내장 앱의 모든 OS 알림 토스트를 차단합니다.',
'settings.notifications.toggleDnd': '방해 금지 전환',
'settings.notifications.categories': '카테고리',
'settings.notifications.categoryFooter':
'카테고리를 비활성화하면 해당 유형의 새 알림이 알림 센터에 표시되지 않습니다. 기존 알림은 삭제될 때까지 남아 있습니다.',
'settings.billing.movedToWeb': '결제가 웹으로 이동됨',
'settings.billing.openDashboard': '결제 대시보드 열기',
'settings.billing.movedToWebDesc':
'구독 변경, 결제 수단, 크레딧 및 인보이스는 이제 웹의 TinyHumans에서 관리됩니다.',
'settings.billing.backToSettings': '설정으로 돌아가기',
'settings.billing.openingBrowser': '브라우저를 여는 중...',
'settings.billing.browserNotOpen': '브라우저가 열리지 않았다면 위 버튼을 사용하세요.',
'settings.billing.browserOpenFailed': '브라우저를 자동으로 열 수 없습니다. 위 버튼을 사용하세요.',
'settings.tools.chooseCapabilities':
'OpenHuman이 사용자를 대신해 사용할 수 있는 기능을 선택하세요.',
'settings.tools.saveChanges': '변경 사항 저장',
'settings.tools.preferencesSaved': '기본 설정이 저장되었습니다',
'settings.tools.saveFailed': '기본 설정 저장에 실패했습니다. 다시 시도하세요.',
'settings.screenAwareness.mode': '모드',
'settings.screenAwareness.allExceptBlacklist': '블랙리스트 제외 모두',
'settings.screenAwareness.whitelistOnly': '화이트리스트만',
'settings.screenAwareness.screenMonitoring': '화면 모니터링',
'settings.screenAwareness.saveSettings': '설정 저장',
'settings.screenAwareness.session': '세션',
'settings.screenAwareness.status': '상태',
'settings.screenAwareness.active': '활성',
'settings.screenAwareness.stopped': '중지됨',
'settings.screenAwareness.remaining': '남은 시간',
'settings.screenAwareness.startSession': '세션 시작',
'settings.screenAwareness.stopSession': '세션 중지',
'settings.screenAwareness.analyzeNow': '지금 분석',
'settings.screenAwareness.macosOnly':
'화면 인식 데스크톱 캡처 및 권한 제어는 현재 macOS에서만 지원됩니다.',
'connections.comingSoon': '곧 제공 예정',
'connections.setUp': '설정',
'connections.configured': '구성됨',
'connections.unavailable': '사용할 수 없음',
'connections.checking': '확인 중…',
'connections.walletConfigured':
'로컬 EVM, BTC, Solana 및 Tron ID가 복구 문구에서 구성되었습니다.',
'connections.walletReady': '하나의 복구 문구에서 로컬 EVM, BTC, Solana 및 Tron ID를 설정합니다.',
'connections.walletError': '지갑 상태를 확인할 수 없습니다. 복구 문구 패널에서 다시 시도하세요.',
'connections.walletChecking': '지갑 상태 확인 중...',
'connections.walletIdentities': '지갑 ID',
'connections.walletDerived': '복구 문구에서 로컬로 파생되며 안전한 메타데이터로만 저장됩니다.',
'connections.privacySecurity': '개인정보 및 보안',
'connections.privacySecurityDesc':
'모든 데이터와 자격 증명은 무데이터 보존 정책으로 로컬에 저장됩니다. 사용자의 정보는 암호화되며 제3자와 절대 공유되지 않습니다.',
'channels.status.connecting': '연결 중',
'channels.status.notConfigured': '구성되지 않음',
'channels.noActiveRoute': '활성 경로 없음',
'channels.activeRoute': '활성 경로',
'channels.loadingDefinitions': '채널 정의를 불러오는 중...',
'channels.channelConnections': '채널 연결',
'channels.configureAuthModes': '각 메시징 채널의 인증 모드를 구성합니다.',
'channels.configNotAvailable': '구성을 사용할 수 없음:',
'channels.channel': '채널',
'devOptions.coreModeNotSet': '코어 모드: 설정되지 않음',
'devOptions.coreModeNotSetDesc':
'부트 체크 선택기가 아직 확인되지 않았습니다. 선택기에서 모드 전환을 사용하여 로컬 또는 클라우드를 선택하세요.',
'devOptions.local': '로컬',
'devOptions.embeddedCoreSidecar': '내장 코어 사이드카',
'devOptions.sidecarSpawned': '앱 실행 시 Tauri 셸에 의해 프로세스 내부에서 생성됩니다.',
'devOptions.cloud': '클라우드',
'devOptions.remoteCoreRpc': '원격 코어 RPC',
'devOptions.token': '토큰',
'devOptions.tokenNotSet': '설정되지 않음 — RPC가 401을 반환합니다',
'devOptions.triggerSentryTest': 'Sentry 테스트 트리거(스테이징)',
'devOptions.triggerSentryTestDesc':
'Sentry 파이프라인을 확인하기 위해 태그가 지정된 오류를 발생시킵니다. 이슈 #1072 — 확인 후 제거.',
'devOptions.sendTestEvent': '테스트 이벤트 보내기',
'devOptions.sending': '보내는 중…',
'devOptions.eventSent': '이벤트 전송됨',
'devOptions.failed': '실패',
'devOptions.appLogs': '앱 로그',
'devOptions.appLogsDesc':
'일별 롤링 로그 파일이 들어 있는 폴더를 엽니다. 문제를 보고할 때 가장 최근 파일을 첨부하세요.',
'devOptions.openLogsFolder': '로그 폴더 열기',
'mnemonic.phraseSaved': '복구 문구 저장됨',
'mnemonic.walletReady': '멀티체인 지갑 ID가 준비되었습니다. 설정으로 돌아가는 중...',
'mnemonic.writeDownWords': '다음 단어들을 적어 두세요',
'mnemonic.wordsInOrder':
'단어를 순서대로 적어 안전한 곳에 보관하세요. 이 문구는 로컬 암호화 키와 EVM, BTC, Solana 및 Tron 지갑 ID를 보호합니다.',
'mnemonic.cannotRecover':
'이 문구는 분실하면 복구할 수 없으며 기기에서만 완전히 로컬로 유지되어야 합니다.',
'mnemonic.copyToClipboard': '클립보드에 복사',
'mnemonic.alreadyHavePhrase': '이미 복구 문구가 있습니다',
'mnemonic.consentSaved': '이 문구를 저장했으며 로컬 지갑 설정에 사용하는 데 동의합니다',
'mnemonic.enterPhraseToRestore':
'로컬 지갑 ID를 복원하려면 아래에 복구 문구를 입력하거나 전체 문구를 아무 입력란에 붙여넣으세요(새 백업은 12단어, 이전 버전의 24단어 문구도 작동합니다).',
'mnemonic.words': '단어',
'mnemonic.validPhrase': '유효한 복구 문구',
'mnemonic.generateNewPhrase': '대신 새 복구 문구 생성',
'mnemonic.securingData': '데이터 보호 중...',
'mnemonic.saveRecoveryPhrase': '복구 문구 저장',
'mnemonic.userNotLoaded':
'사용자가 로드되지 않았습니다. 다시 로그인하거나 페이지를 새로고침하세요.',
'mnemonic.invalidPhrase': '유효하지 않은 복구 문구입니다. 단어를 확인하고 다시 시도하세요.',
'mnemonic.somethingWentWrong': '문제가 발생했습니다. 다시 시도해 주세요.',
'team.failedToCreate': '팀 생성에 실패했습니다',
'team.invalidInviteCode': '유효하지 않거나 만료된 초대 코드입니다',
'team.failedToSwitch': '팀 전환에 실패했습니다',
'team.failedToLeave': '팀 나가기에 실패했습니다',
'team.role.owner': '소유자',
'team.role.admin': '관리자',
'team.role.billingManager': '결제 관리자',
'team.role.member': '멤버',
'team.active': '활성',
'team.personalTeam': '개인 팀',
'team.manageTeam': '팀 관리',
'team.switching': '전환 중...',
'team.switch': '전환',
'team.leaving': '나가는 중...',
'team.leave': '나가기',
'team.yourTeams': '내 팀',
'team.createNewTeam': '새 팀 생성',
'team.teamName': '팀 이름',
'team.creating': '생성 중...',
'team.joinExistingTeam': '기존 팀 참가',
'team.inviteCode': '초대 코드',
'team.joining': '참가 중...',
'team.join': '참가',
'team.leaveTeam': '팀 나가기',
'team.confirmLeave': '정말로 나가시겠습니까',
'team.leaveWarning':
'팀과 모든 팀 리소스에 대한 접근 권한을 잃게 됩니다. 다시 참가하려면 새 초대가 필요합니다.',
'team.management': '팀 관리',
'team.notFound': '팀을 찾을 수 없습니다',
'team.accessDenied': '접근이 거부되었습니다',
'team.members': '멤버',
'voice.title': '음성 받아쓰기',
'voice.settings': '음성 설정',
'voice.settingsDesc': '핫키를 길게 눌러 받아쓰기하고 활성 입력란에 텍스트를 삽입합니다.',
'voice.hotkey': '핫키',
'voice.activationMode': '활성화 모드',
'voice.tapToToggle': '탭하여 전환',
'voice.writingStyle': '작성 스타일',
'voice.verbatimTranscription': '그대로 전사',
'voice.naturalCleanup': '자연스럽게 정리',
'voice.autoStart': '코어와 함께 음성 서버 자동 시작',
'voice.customDictionary': '사용자 지정 사전',
'voice.customDictionaryDesc': '이름, 기술 용어, 도메인 단어를 추가하여 인식 정확도를 향상합니다.',
'voice.addWord': '단어 추가...',
'voice.sttDisabled': '로컬 STT 모델이 다운로드되고 준비될 때까지 음성 받아쓰기가 비활성화됩니다.',
'voice.openLocalAiModel': '로컬 AI 모델 열기',
'voice.serverRestarted': '새 설정으로 음성 서버가 다시 시작되었습니다.',
'voice.settingsSaved': '음성 설정이 저장되었습니다.',
'voice.serverStarted': '음성 서버가 시작되었습니다.',
'voice.serverStopped': '음성 서버가 중지되었습니다.',
'voice.saveVoiceSettings': '음성 설정 저장',
'voice.startVoiceServer': '음성 서버 시작',
'voice.stopVoiceServer': '음성 서버 중지',
'voice.debugTitle': '음성 디버그',
'autocomplete.title': '자동 완성',
'autocomplete.settings': '설정',
'autocomplete.acceptWithTab': 'Tab으로 수락',
'autocomplete.stylePreset': '스타일 프리셋',
'autocomplete.style.balanced': '균형',
'autocomplete.style.concise': '간결',
'autocomplete.style.formal': '격식',
'autocomplete.style.casual': '캐주얼',
'autocomplete.style.custom': '사용자 지정',
'autocomplete.disabledApps': '비활성화된 앱(줄마다 하나의 번들/앱 토큰)',
'autocomplete.saveSettings': '설정 저장',
'autocomplete.saving': '저장 중…',
'autocomplete.runtime': '런타임',
'autocomplete.running': '실행 중',
'autocomplete.start': '시작',
'autocomplete.stop': '중지',
'autocomplete.settingsSaved': '자동 완성 설정이 저장되었습니다.',
'autocomplete.started': '자동 완성이 시작되었습니다.',
'autocomplete.didNotStart': '자동 완성이 시작되지 않았습니다. 활성화되어 있는지 확인하세요.',
'autocomplete.stopped': '자동 완성이 중지되었습니다.',
'autocomplete.advancedSettings': '고급 설정',
'autocomplete.debugTitle': '자동 완성 디버그',
'chat.agentChat': '에이전트 채팅',
'chat.overrides': '재정의',
'chat.model': '모델',
'chat.temperature': '온도',
'chat.conversation': '대화',
'chat.startAgentConversation': '에이전트와 대화를 시작하세요.',
'chat.you': '나',
'chat.agent': '에이전트',
'chat.askAgent': '에이전트에게 무엇이든 물어보세요...',
'chat.sendMessage': '메시지 보내기',
'composio.triageTitle': '통합 트리거',
'composio.triageDesc':
'활성화되면 들어오는 각 Composio 트리거가 이벤트를 분류하고 자동 작업을 시작할 수 있는 AI 선별 단계를 거칩니다 — 트리거당 로컬 LLM 턴 하나가 사용됩니다. 수동 검토를 선호한다면 전체 또는 통합별로 비활성화하세요. 환경 변수가',
'composio.disableAllTriage': '모든 트리거에 대한 AI 선별 비활성화',
'composio.triggersStillRecorded': '트리거는 기록에 계속 저장됩니다 — LLM 턴은 실행되지 않습니다.',
'composio.disableSpecificIntegrations': '특정 통합에 대한 AI 선별 비활성화',
'composio.settingsSaved': '설정이 저장되었습니다',
'composio.saveFailed': '저장에 실패했습니다. 다시 시도하세요.',
'cron.title': 'Cron 작업',
'cron.scheduledJobs': '예약된 작업',
'cron.manageCronJobs': '코어 스케줄러에서 cron 작업을 관리합니다.',
'cron.refreshCronJobs': 'Cron 작업 새로고침',
'localModel.modelStatus': '모델 상태',
'localModel.downloadModels': '모델 다운로드',
'localModel.usage': '사용량',
'localModel.usageDesc':
'로컬 모델에서 실행할 하위 시스템을 선택하세요. 꺼진 항목은 클라우드를 사용합니다.',
'localModel.enableRuntime': '로컬 AI 런타임 활성화',
'localModel.enableRuntimeDesc':
'마스터 스위치입니다. 기본값은 꺼짐이며 Ollama는 유휴 상태로 유지됩니다. 켜면 트리 요약기, 화면 인텔리전스, 자동 완성이 항상 로컬 모델을 사용합니다.',
'localModel.advancedSettings': '고급 설정',
'localModel.debugTitle': '로컬 모델 디버그',
'screenAwareness.debugTitle': '화면 인식 디버그',
'memory.debugTitle': '메모리 디버그',
'webhooks.debugTitle': '웹훅 디버그',
'notifications.routingTitle': '알림 라우팅',
'common.reload': '다시 불러오기',
'common.skip': '건너뛰기',
'common.disable': '비활성화',
'common.enable': '활성화',
'chat.safetyTimeout': '2분 후에도 에이전트의 응답이 없습니다. 다시 시도하거나 연결을 확인하세요.',
'chat.filter.all': '전체',
'chat.filter.work': '업무',
'chat.filter.briefing': '브리핑',
'chat.filter.notification': '알림',
'chat.filter.workers': '워커',
'chat.selectThread': '스레드 선택',
'chat.threads': '스레드',
'chat.noThreads': '아직 스레드가 없습니다',
'chat.noLabelThreads': '"{label}" 스레드가 없습니다',
'chat.noWorkerThreads': '아직 워커 스레드가 없습니다',
'chat.deleteThread': '스레드 삭제',
'chat.deleteThreadConfirm': '"{title}" 스레드를 삭제하시겠습니까?',
'chat.untitledThread': '제목 없는 스레드',
'chat.hideSidebar': '사이드바 숨기기',
'chat.showSidebar': '사이드바 표시',
'chat.newThreadShortcut': '새 스레드 (/new)',
'chat.new': '새로 만들기',
'chat.failedToLoadMessages': '메시지를 불러오지 못했습니다',
'chat.thinkingIteration': '생각 중... ({n})',
'chat.thinkingDots': '생각 중...',
'chat.approachingLimit': '사용 한도에 가까워지고 있습니다',
'chat.approachingLimitMsg': '사용 가능한 할당량의 {pct}%를 사용했습니다.',
'chat.upgrade': '업그레이드',
'chat.weeklyLimitHit': '포함된 주기 예산을 모두 사용했습니다.',
'chat.resets': '초기화',
'chat.topUpToContinue': '계속하려면 충전하세요.',
'chat.budgetComplete':
'포함된 예산을 모두 사용했습니다. 계속하려면 크레딧을 추가하거나 업그레이드하세요.',
'chat.topUp': '충전',
'chat.cycle': '주기',
'chat.cycleSpent': '이번 주기 사용량',
'chat.cycleRemaining': '남은 양',
'chat.left': '남음',
'chat.setup': '설정',
'chat.switchToText': '텍스트로 전환',
'chat.transcribing': '전사 중...',
'chat.stopAndSend': '중지하고 보내기',
'chat.startTalking': '말하기 시작',
'chat.playingVoiceReply': '음성 응답 재생 중',
'chat.voiceHint': '마이크를 사용해 말하세요',
'chat.micUnavailable': '마이크를 사용할 수 없습니다',
'chat.turn': '턴',
'chat.turns': '턴',
'chat.openWorkerThread': '워커 스레드 열기',
'memory.searchAria': '메모리 검색',
'memory.searchPlaceholder': '메모리 항목 검색...',
'memory.sourceFilter.all': '모든 소스',
'memory.sourceFilter.email': '이메일',
'memory.sourceFilter.calendar': '캘린더',
'memory.sourceFilter.telegram': 'Telegram',
'memory.sourceFilter.aiInsight': 'AI 인사이트',
'memory.sourceFilter.system': '시스템',
'memory.sourceFilter.trading': '거래',
'memory.sourceFilter.security': '보안',
'memory.ingestionActivity': '수집 활동',
'memory.events': '이벤트',
'memory.event': '이벤트',
'memory.overTheLast': '지난 기간',
'memory.months': '개월',
'memory.peak': '최고치',
'memory.perDay': '/일',
'memory.less': '적음',
'memory.more': '많음',
'memory.on': '켜짐',
'memory.loading': '메모리 불러오는 중',
'memory.fetching': '메모리 항목을 가져오는 중...',
'memory.analyzing': '메모리 분석 중',
'memory.analyzingHint': '인사이트를 추출하기 위해 메모리를 처리하는 중...',
'memory.noMatches': '일치하는 항목 없음',
'memory.noMatchesHint': '검색어 또는 필터를 변경해 보세요.',
'memory.allCaughtUp': '모두 완료됨',
'memory.allCaughtUpHint': '처리할 새 메모리 항목이 없습니다.',
'memory.noAnalysis': '아직 분석 없음',
'memory.noAnalysisHint': '메모리에서 패턴을 발견하려면 분석을 실행하세요.',
'memory.emptyHint': '첫 번째 메모리를 만들려면 상호작용을 시작하세요.',
'mic.unavailable': '마이크를 사용할 수 없습니다',
'mic.permissionDenied': '마이크 권한이 거부되었습니다',
'mic.failedToStartRecorder': '녹음기를 시작하지 못했습니다',
'mic.transcribing': '전사 중...',
'mic.tapToSend': '탭하여 보내기',
'mic.waitingForAgent': '에이전트를 기다리는 중...',
'mic.tapAndSpeak': '탭하고 말하기',
'mic.stopRecording': '녹음을 중지하고 보내기',
'mic.startRecording': '녹음 시작',
'token.usageLimitReached': '사용 한도에 도달했습니다',
'token.approachingLimit': '한도에 가까워지고 있습니다',
'token.planClickForDetails': '플랜 - 자세한 내용을 보려면 클릭',
'token.sessionTokens': '입력: {in} | 출력: {out} | 턴: {turns}',
'token.limit': '한도 도달',
'catalog.noCapabilityBinding': '기능 바인딩 없음',
'catalog.downloadFailed': '다운로드 실패',
'catalog.active': '활성',
'catalog.installed': '설치됨',
'catalog.notDownloaded': '다운로드되지 않음',
'catalog.inUse': '사용 중',
'catalog.use': '사용',
'catalog.deleteModel': '모델 삭제',
'catalog.download': '다운로드',
'navigator.recent': '최근',
'navigator.today': '오늘',
'navigator.thisWeek': '이번 주',
'navigator.sources': '소스',
'navigator.email': '이메일',
'navigator.slack': 'Slack',
'navigator.chat': '채팅',
'navigator.documents': '문서',
'navigator.people': '사람',
'navigator.topics': '주제',
'dreams.description': '꿈은 메모리의 패턴을 종합하는 AI 생성 반영입니다.',
'dreams.comingSoon': '곧 제공 예정',
'assignment.memoryLlm': '메모리 LLM',
'assignment.memoryLlmAria': '메모리 LLM 선택',
'assignment.embedder': '임베더',
'assignment.loaded': '로드됨',
'assignment.notDownloaded': '다운로드되지 않음',
'assignment.usedForExtractSummarise': '추출 및 요약에 사용됨',
'insights.knownFacts': '알려진 사실',
'insights.preferences': '선호도',
'insights.relationships': '관계',
'insights.skills': '스킬',
'insights.opinions': '의견',
};
export default ko2;
+373
View File
@@ -0,0 +1,373 @@
import type { TranslationMap } from '../types';
// Korean chunk 3/5. Source of truth for translators.
const ko3: TranslationMap = {
'insights.other': '기타',
'insights.title': '인사이트',
'insights.empty': '아직 인사이트가 없습니다. 메모리가 늘어나면 인사이트가 생성됩니다.',
'insights.description': '메모리 그래프의 {count}개 관계를 기반으로 합니다.',
'insights.items': '항목',
'insights.more': '더 보기',
'calls.joiningCall': '통화에 참여하는 중',
'calls.meetWindowOpening': 'Meet 창이 열리는 중...',
'calls.failedToStart': 'Meet 통화를 시작하지 못했습니다',
'calls.couldNotStart': '통화를 시작할 수 없습니다',
'calls.failedToClose': '통화를 닫지 못했습니다',
'calls.couldNotClose': '통화를 닫을 수 없습니다',
'calls.joinMeet': 'Google Meet 통화 참여',
'calls.joinMeetDescription': '참여할 Google Meet 링크를 입력하세요.',
'calls.meetLink': 'Meet 링크',
'calls.displayName': '표시 이름',
'calls.openingMeet': 'Meet 여는 중...',
'calls.joinCall': '통화 참여',
'calls.activeCalls': '활성 통화',
'calls.leave': '나가기',
'workspace.wipeConfirm': '모든 메모리를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',
'workspace.resetTreeConfirm': '메모리 트리를 다시 빌드하시겠습니까?',
'workspace.wipeTitle': '메모리 삭제',
'workspace.resetting': '초기화 중...',
'workspace.resetMemory': '메모리 초기화',
'workspace.resetTreeTitle': '메모리 트리 다시 빌드',
'workspace.rebuilding': '다시 빌드 중...',
'workspace.resetMemoryTree': '메모리 트리 초기화',
'workspace.building': '빌드 중...',
'workspace.buildSummaryTrees': '요약 트리 빌드',
'workspace.viewVault': '볼트 보기',
'workspace.graphLoadFailed': '메모리 그래프를 불러오지 못했습니다',
'workspace.loadingGraph': '메모리 그래프를 불러오는 중...',
'workspace.graphViewMode': '메모리 그래프 보기 모드',
'workspace.trees': '트리',
'workspace.contacts': '연락처',
'graph.noContactMentions': '연락처 언급 없음',
'graph.noMemory': '메모리 없음',
'graph.source': '소스',
'graph.topic': '주제',
'graph.global': '전역',
'graph.document': '문서',
'graph.contact': '연락처',
'graph.nodes': '노드',
'graph.parentChild': '부모-자식',
'graph.documentContact': '문서-연락처',
'graph.link': '링크',
'graph.links': '링크',
'graph.children': '자식',
'graph.clickToOpenObsidian': '클릭하여 Obsidian에서 열기',
'graph.person': '사람',
'modal.dontShowAgain': '비슷한 제안을 다시 표시하지 않기',
'reflections.loading': '반영을 불러오는 중...',
'reflections.empty': '아직 반영이 없습니다',
'reflections.title': '반영',
'reflections.proposedAction': '제안된 작업',
'reflections.act': '실행',
'reflections.dismiss': '닫기',
'whatsapp.chatsSynced': '채팅 동기화됨',
'whatsapp.chatSynced': '채팅 동기화됨',
'sync.active': '활성',
'sync.recent': '최근',
'sync.idle': '유휴',
'sync.memorySources': '메모리 소스',
'sync.noConnectedSources': '연결된 소스 없음',
'sync.chunks': '청크',
'sync.lastChunk': '마지막 청크:',
'sync.pending': '대기 중',
'sync.processed': '처리됨',
'sync.syncing': '동기화 중…',
'sync.sync': '동기화',
'sync.failedToLoad': '동기화 상태를 불러오지 못했습니다',
'sync.noContent': '아직 메모리에 동기화된 콘텐츠가 없습니다. 시작하려면 통합을 연결하세요.',
'backend.aiBackend': 'AI 백엔드',
'backend.cloud': '클라우드',
'backend.recommended': '추천',
'backend.cloudDescription':
'서버에서 호스팅되는 빠르고 강력한 모델입니다. 즉시 사용할 수 있습니다.',
'backend.privacyNote': '개인 데이터, 메시지 또는 키는 서버로 전송되지 않습니다.',
'backend.local': '로컬',
'backend.advanced': '고급',
'backend.localDescription':
'Ollama를 사용하여 자신의 컴퓨터에서 모델을 실행합니다. 완전한 개인정보 보호를 제공하지만 설정이 필요합니다.',
'backend.ramRecommended': '16GB 이상 RAM 권장',
'subconscious.tasks': '작업',
'subconscious.ticks': '틱',
'subconscious.last': '마지막',
'subconscious.failed': '실패',
'subconscious.tickInterval': '틱 간격',
'subconscious.runNow': '지금 실행',
'subconscious.approvalNeeded': '승인 필요',
'subconscious.requiresApproval': '승인이 필요함',
'subconscious.fixInConnections': '연결에서 수정',
'subconscious.goAhead': '진행',
'subconscious.activeTasks': '활성 작업',
'subconscious.noActiveTasks': '활성 작업 없음',
'subconscious.default': '기본값',
'subconscious.addTaskPlaceholder': '새 작업 추가...',
'subconscious.activityLog': '활동 로그',
'subconscious.noActivity': '아직 활동이 없습니다',
'subconscious.decision.nothingNew': '새로운 내용 없음',
'subconscious.decision.completed': '완료됨',
'subconscious.decision.evaluating': '평가 중',
'subconscious.decision.waitingApproval': '승인 대기 중',
'subconscious.decision.failed': '실패',
'subconscious.decision.cancelled': '취소됨',
'subconscious.decision.skipped': '건너뜀',
'actionable.complete': '완료',
'actionable.dismiss': '닫기',
'actionable.snooze': '다시 알림',
'actionable.new': '새 항목',
'stats.storage': '저장소',
'stats.files': '파일',
'stats.documents': '문서',
'stats.today': '오늘',
'stats.namespaces': '네임스페이스',
'stats.relations': '관계',
'stats.firstMemory': '첫 번째 메모리',
'stats.latest': '최신',
'stats.sessions': '세션',
'stats.tokens': '토큰',
'bootCheck.invalidUrl': '런타임 URL을 입력해 주세요.',
'bootCheck.urlMustStartWith': 'URL은 http:// 또는 https://로 시작해야 합니다',
'bootCheck.validUrlRequired': '유효한 URL처럼 보이지 않습니다(예: https://core.example.com/rpc)',
'bootCheck.tokenRequired': '연결하려면 인증 토큰이 필요합니다.',
'bootCheck.chooseCoreMode': '런타임 선택',
'bootCheck.connectToCore': '런타임에 연결',
'bootCheck.desktopDescription':
'OpenHuman은 생각하기 위한 런타임이 필요합니다. 어디에서 실행할지 선택하세요.',
'bootCheck.webDescription':
'웹에서 OpenHuman은 사용자가 제어하는 런타임에 연결됩니다. 아래에 URL과 인증 토큰을 입력하거나, 데스크톱 앱을 받아 이 컴퓨터에서 바로 실행하세요.',
'bootCheck.preferDesktop': '모든 것을 자신의 기기에 보관하고 싶으신가요?',
'bootCheck.downloadDesktop': '데스크톱 앱 받기',
'bootCheck.localRecommended': '로컬에서 실행(추천)',
'bootCheck.localDescription':
'이 컴퓨터에서 바로 실행됩니다. 가장 빠르고, 완전히 비공개이며, 설정할 것이 없습니다.',
'bootCheck.cloudMode': '클라우드에서 실행(복잡)',
'bootCheck.cloudDescription':
'다른 곳에서 호스팅 중인 런타임에 연결합니다. 24×7 온라인 상태를 유지하므로 이 기기를 계속 켜둘 필요가 없습니다.',
'bootCheck.coreRpcUrl': '런타임 URL',
'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
'bootCheck.authToken': '인증 토큰',
'bootCheck.bearerTokenPlaceholder': '원격 런타임의 bearer 토큰',
'bootCheck.storedLocally': '이 기기에만 보관됩니다. 다음으로 전송됨: ',
'bootCheck.testing': '테스트 중…',
'bootCheck.testConnection': '연결 테스트',
'bootCheck.connectedOk': '연결되었습니다. 사용할 준비가 되었습니다.',
'bootCheck.authFailed': '해당 토큰이 작동하지 않았습니다. 다시 확인하고 시도하세요.',
'bootCheck.unreachablePrefix': '연결할 수 없습니다:',
'bootCheck.checkingCore': '런타임을 깨우는 중…',
'bootCheck.cannotReach': '런타임에 연결할 수 없습니다',
'bootCheck.cannotReachDesc': '런타임에 연결할 수 없습니다. 다른 런타임을 시도하시겠습니까?',
'bootCheck.switchMode': '다른 런타임 선택',
'bootCheck.quit': '종료',
'bootCheck.legacyDetected': '레거시 백그라운드 런타임 감지됨',
'bootCheck.legacyDescription':
'별도로 설치된 OpenHuman 데몬이 이 기기에서 이미 실행 중입니다. 내장 런타임이 대신 실행되기 전에 이를 정리해야 합니다.',
'bootCheck.removing': '제거 중…',
'bootCheck.removeContinue': '제거하고 계속',
'bootCheck.localNeedsRestart': '로컬 런타임을 다시 시작해야 함',
'bootCheck.localNeedsRestartDesc':
'로컬 런타임의 버전이 이 앱과 다릅니다. 빠르게 다시 시작하면 다시 동기화됩니다.',
'bootCheck.restarting': '다시 시작 중…',
'bootCheck.restartCore': '런타임 다시 시작',
'bootCheck.cloudNeedsUpdate': '클라우드 런타임 업데이트 필요',
'bootCheck.cloudNeedsUpdateDesc':
'클라우드 런타임의 버전이 이 앱과 다릅니다. 업데이트 프로그램을 실행하여 다시 동기화하세요.',
'bootCheck.updating': '업데이트 중…',
'bootCheck.updateCloudCore': '클라우드 런타임 업데이트',
'bootCheck.versionCheckFailed': '런타임 버전 확인 실패',
'bootCheck.versionCheckFailedDesc':
'런타임이 실행 중이지만 버전을 보고하지 않습니다. 오래된 버전일 수 있습니다. 계속하려면 다시 시작하거나 업데이트하세요.',
'bootCheck.working': '작업 중…',
'bootCheck.restartUpdateCore': '런타임 다시 시작 / 업데이트',
'bootCheck.unexpectedError': '예상치 못한 부트 체크 오류',
'bootCheck.actionFailed': '문제가 발생했습니다. 다시 시도해 주세요.',
'notifications.justNow': '방금 전',
'notifications.minAgo': '{n}분 전',
'notifications.hrAgo': '{n}시간 전',
'notifications.dayAgo': '{n}일 전',
'notifications.category.messages': '메시지',
'notifications.category.agents': '에이전트',
'notifications.category.skills': '스킬',
'notifications.category.system': '시스템',
'notifications.category.meetings': '회의',
'notifications.category.reminders': '리마인더',
'notifications.category.important': '중요',
'about.update.status.checking': '확인 중...',
'about.update.status.available': 'v{version} 사용 가능',
'about.update.status.availableNoVersion': '업데이트 사용 가능',
'about.update.status.downloading': '다운로드 중...',
'about.update.status.readyToInstall': 'v{version} 설치 준비 완료',
'about.update.status.readyToInstallNoVersion':
'새 버전이 다운로드되어 준비되었습니다. 적용하려면 다시 시작하세요.',
'about.update.status.installing': '설치 중...',
'about.update.status.restarting': '다시 시작 중...',
'about.update.status.upToDate': '최신 버전을 실행 중입니다.',
'about.update.status.error': '업데이트 확인 실패',
'about.update.status.default': '업데이트 확인',
'welcome.connectionFailed': '연결 실패: {status} {statusText}',
'welcome.connectionFailedMsg': '연결 실패: {message}',
'chat.agentChatDesc': '에이전트와 직접 채팅 세션을 엽니다.',
'channels.activeRouteValue': '{channel} via {authMode}',
'privacy.dataKind.messages': '메시지',
'privacy.dataKind.agents': '에이전트',
'privacy.dataKind.skills': '스킬',
'privacy.dataKind.system': '시스템',
'privacy.dataKind.meetings': '회의',
'privacy.dataKind.reminders': '리마인더',
'privacy.dataKind.important': '중요',
'onboarding.enableLocalAI': '로컬 AI 활성화',
'onboarding.skills.status.available': '사용 가능',
'onboarding.skills.status.connected': '연결됨',
'onboarding.skills.status.connecting': '연결 중',
'onboarding.skills.status.error': '오류',
'onboarding.skills.status.unavailable': '사용할 수 없음',
'composio.statusUnavailable': '상태를 사용할 수 없음',
'composio.envVarOverrides': '설정되어 있으며, 이 설정을 재정의합니다.',
'memory.day.sun': '일',
'memory.day.mon': '월',
'memory.day.tue': '화',
'memory.day.wed': '수',
'memory.day.thu': '목',
'memory.day.fri': '금',
'memory.day.sat': '토',
'memory.ingesting': '수집 중',
'memory.ingestionQueued': '대기열에 추가됨',
'memory.ingestingTitle': '{title} 수집 중',
'mic.noAudioCaptured': '캡처된 오디오가 없습니다',
'mic.noSpeechDetected': '음성이 감지되지 않았습니다',
'mic.failedToStopRecording': '녹음을 중지하지 못했습니다: {message}',
'mic.transcriptionFailed': '전사에 실패했습니다: {message}',
'reflections.kind.retrospective': '회고',
'reflections.kind.derivedFact': '파생된 사실',
'reflections.kind.moodInsight': '기분 인사이트',
'reflections.kind.relationshipInsight': '관계 인사이트',
'graph.tooltip.summary': '요약',
'graph.tooltip.contact': '연락처',
'localModel.usage.never': '사용 안 함',
'localModel.usage.mediumLoad': '중간 부하',
'localModel.usage.lowLoad': '낮은 부하',
'localModel.usage.idleMode': '유휴 모드',
'localModel.rebootstrapComplete': '모델 재부트스트랩 완료.',
'localModel.modelsVerified': '로컬 모델 확인 완료.',
'accounts.addModal.allConnected': '모두 연결됨',
'accounts.addModal.title': '계정 추가',
'accounts.respondQueue.empty': '비어 있음',
'accounts.respondQueue.hide': '응답 대기열 숨기기',
'accounts.respondQueue.loadFailed': '응답 대기열을 불러오지 못했습니다',
'accounts.respondQueue.loading': '대기열 불러오는 중…',
'accounts.respondQueue.pending': '대기 중',
'accounts.respondQueue.show': '응답 대기열 표시',
'accounts.respondQueue.title': '응답 대기열',
'accounts.webviewHost.almostReady': '거의 준비됨...',
'accounts.webviewHost.loadTimeout': 'Webview 로드 시간 초과',
'accounts.webviewHost.loading': '{providerName} 불러오는 중...',
'accounts.webviewHost.loadingAccount': '계정 불러오는 중',
'accounts.webviewHost.restoringSession': '세션 복원 중...',
'accounts.webviewHost.retryLoading': '다시 불러오기',
'accounts.webviewHost.takingLonger': '{providerName}이 예상보다 오래 걸리고 있습니다.',
'accounts.webviewHost.timeoutHint': '시간 초과 힌트',
'app.connectionBadge.composio': 'Composio',
'app.connectionBadge.messaging': '메시징',
'app.connectionIndicator.connected': 'OpenHuman AI에 연결됨 🚀',
'app.connectionIndicator.connecting': '연결 중',
'app.connectionIndicator.coreOffline': '코어 오프라인',
'app.connectionIndicator.disconnected': '연결 해제됨',
'app.connectionIndicator.offline': '오프라인',
'app.connectionIndicator.reconnecting': '다시 연결 중…',
'app.errorFallback.componentStack': '컴포넌트 스택',
'app.errorFallback.downloadLatest': '최신 버전 다운로드',
'app.errorFallback.heading': '제목',
'app.errorFallback.hint': '힌트',
'app.errorFallback.reloadApp': '앱 다시 불러오기',
'app.errorFallback.subheading': '부제목',
'app.errorFallback.tryRecover': '복구 시도',
'app.localAiDownload.installing': '설치 중...',
'app.localAiDownload.preparing': '준비 중...',
'app.openhumanLink.accounts.continueWith': '{label} 로그인으로 계속',
'app.openhumanLink.accounts.done': '완료',
'app.openhumanLink.accounts.intro': '소개',
'app.openhumanLink.accounts.webviewNote': 'Webview 안내',
'app.openhumanLink.billing.openDashboard': '대시보드 열기',
'app.openhumanLink.billing.stayOnTrial': '체험판 유지',
'app.openhumanLink.billing.trialCredit': '체험 크레딧',
'app.openhumanLink.billing.trialDesc': '체험 설명',
'app.openhumanLink.defaultBody':
'아직 팝업에서 준비되지 않았습니다. 필요하면 전체 설정 페이지를 여세요.',
'app.openhumanLink.discord.intro': '소개',
'app.openhumanLink.discord.openInvite': '초대 열기',
'app.openhumanLink.discord.perk1': '혜택1',
'app.openhumanLink.discord.perk2': '혜택2',
'app.openhumanLink.discord.perk3': '혜택3',
'app.openhumanLink.discord.perk4': '혜택4',
'app.openhumanLink.done': '완료',
'app.openhumanLink.loadingChannelSetup': '채널 설정 불러오는 중',
'app.openhumanLink.maybeLater': '나중에',
'app.openhumanLink.notifications.asking': 'OS에 요청 중…',
'app.openhumanLink.notifications.blocked': '차단됨',
'app.openhumanLink.notifications.blockedStep1': '차단 단계1',
'app.openhumanLink.notifications.blockedStep2': '차단 단계2',
'app.openhumanLink.notifications.blockedStep3': '차단 단계3',
'app.openhumanLink.notifications.intro': '소개',
'app.openhumanLink.notifications.promptHint': '프롬프트 힌트',
'app.openhumanLink.notifications.retry': '테스트 알림 다시 시도',
'app.openhumanLink.notifications.send': '테스트 알림 보내기',
'app.openhumanLink.notifications.sendFailed': '보낼 수 없습니다: {error}',
'app.openhumanLink.notifications.sent':
'테스트 알림이 전송되었습니다. 받지 못했다면 시스템 설정 → 알림 → OpenHuman으로 이동해 알림 허용을 켜고 배너 스타일을 지속으로 설정하세요.',
'app.openhumanLink.skipForNow': '지금은 건너뛰기',
'app.openhumanLink.telegramUnavailable': 'Telegram을 사용할 수 없음',
'app.openhumanLink.title.accounts': '앱 연결',
'app.openhumanLink.title.billing': '결제 및 크레딧',
'app.openhumanLink.title.discord': '커뮤니티 참여',
'app.openhumanLink.title.messaging': '채팅 채널 연결',
'app.openhumanLink.title.notifications': '알림 허용',
'app.persistRehydration.body': '본문',
'app.persistRehydration.heading': '제목',
'app.persistRehydration.resetCta': '초기화 중…',
'app.persistRehydration.resetting': '초기화 중…',
'app.routeLoading.initializing': 'OpenHuman 초기화 중...',
'app.update.currentlyOn': '{version}',
'app.update.errorFallback': '업데이트 중 문제가 발생했습니다.',
'app.update.header.default': '업데이트',
'app.update.header.error': '업데이트 실패',
'app.update.header.installing': '업데이트 설치 중',
'app.update.header.readyToInstall': '업데이트 설치 준비 완료',
'app.update.header.restarting': '다시 시작 중…',
'app.update.later': '나중에',
'app.update.newVersionReady': '새 버전을 설치할 준비가 되었습니다.',
'app.update.progress.downloaded': '{amount} 다운로드됨',
'app.update.progress.installing': '새 버전 설치 중…',
'app.update.progress.restarting': '앱 다시 실행 중…',
'app.update.progress.working': '{percent}%',
'app.update.restartNote': '다시 시작 안내',
'app.update.restartNow': '지금 다시 시작',
'app.update.versionReady': '버전 {newVersion} 설치 준비 완료.',
'channels.discord.accountLinked': '계정 연결됨',
'channels.discord.connect': '연결',
'channels.discord.linkTokenExpired': '링크 토큰이 만료되었습니다. 다시 시도하세요.',
'channels.discord.linkTokenInstruction': '{token}',
'channels.discord.linkTokenLabel': '링크 토큰 라벨',
'channels.discord.linkTokenOnce': '링크 토큰 1회 사용',
'channels.discord.picker.allPermissionsOk':
'봇이 이 채널에서 필요한 모든 권한을 가지고 있습니다.',
'channels.discord.picker.botNotInServers': '봇이 서버에 없습니다',
'channels.discord.picker.category': '카테고리',
'channels.discord.picker.channel': '채널',
'channels.discord.picker.checkingPermissions': '권한 확인 중',
'channels.discord.picker.loadingChannels': '채널 불러오는 중...',
'channels.discord.picker.loadingServers': '서버 불러오는 중...',
'channels.discord.picker.missingPermissions': '권한 누락',
'channels.discord.picker.noChannels': '텍스트 채널을 찾을 수 없습니다',
'channels.discord.picker.noServers': '서버를 찾을 수 없습니다',
'channels.discord.picker.selectChannel': '채널 선택',
'channels.discord.picker.selectServer': '서버 선택',
'channels.discord.picker.server': '서버',
'channels.discord.picker.serverChannelSelection': '서버 및 채널 선택',
'channels.discord.savedRestartRequired':
'채널이 저장되었습니다. 활성화하려면 앱을 다시 시작하세요.',
'channels.telegram.connect': '연결',
'channels.telegram.managedDmConnecting': '관리형 DM 연결 중',
'channels.telegram.managedDmTimeout': '관리형 DM 시간이 초과됨',
'channels.telegram.reconnect': '다시 연결',
'channels.telegram.savedRestartRequired':
'채널이 저장되었습니다. 활성화하려면 앱을 다시 시작하세요.',
'channels.web.alwaysAvailable': '항상 사용 가능',
};
export default ko3;
+370
View File
@@ -0,0 +1,370 @@
import type { TranslationMap } from '../types';
// Korean chunk 4/5. Source of truth for translators.
const ko4: TranslationMap = {
'chat.unsubscribeApproval.approve': '승인 및 구독 취소',
'chat.unsubscribeApproval.approved': '✓ 구독 취소가 완료되었습니다.',
'chat.unsubscribeApproval.denied': '✕ 요청이 거부되었습니다.',
'chat.unsubscribeApproval.deny': '거부',
'chat.unsubscribeApproval.processing': '처리 중...',
'chat.unsubscribeApproval.title': '구독 취소 요청',
'commandPalette.ariaLabel': '명령 팔레트',
'commandPalette.description': '설명',
'commandPalette.label': '명령',
'commandPalette.noResults': '결과 없음',
'commandPalette.placeholder': '명령을 입력하거나 검색…',
'commandPalette.searchAria': '명령 검색',
'commandPalette.shortcutHint': '모든 단축키를 보려면 ?를 누르세요',
'commandPalette.title': '명령 팔레트',
'composio.connect.additionalConfigRequired': '추가 구성이 필요합니다',
'composio.connect.atlassianSubdomainHint': 'acme',
'composio.connect.atlassianSubdomainLabel': 'Atlassian 하위 도메인 라벨',
'composio.connect.connect': '연결',
'composio.connect.connectionFailed': '연결 실패(상태: {status}).',
'composio.connect.disconnectFailed': '연결 해제 실패: {msg}',
'composio.connect.disconnecting': '연결 해제 중…',
'composio.connect.idleDescription': '다음을 연결하세요:',
'composio.connect.idleDescriptionSuffix':
'계정. 브라우저 창을 열면 그곳에서 접근을 승인하고, 이 앱이 자동으로 연결을 감지합니다.',
'composio.connect.isConnected': '연결되었습니다.',
'composio.connect.manage': '관리',
'composio.connect.needsSubdomain': '연결하려면',
'composio.connect.needsSubdomainSuffix':
'Atlassian 하위 도메인(예: acme.atlassian.net의 경우 acme)을 입력하고 다시 시도하세요.',
'composio.connect.oauthComplete': 'OAuth 완료 대기 중…',
'composio.connect.oauthTimeout': 'OAuth 시간이 초과되었습니다',
'composio.connect.permissions': '권한',
'composio.connect.permissionsDefault': '읽기 + 쓰기가 기본적으로 활성화됨',
'composio.connect.permissionsNote': '노출할 수 있음',
'composio.connect.permissionsNoteSuffix':
'OpenHuman 자체 에이전트 권한은 아래에서 읽기, 쓰기, 관리자 토글로 제어됩니다.',
'composio.connect.reopenBrowser': '브라우저 다시 열기',
'composio.connect.requestingUrl': '연결 URL 요청 중…',
'composio.connect.retryConnection': '연결 다시 시도',
'composio.connect.scopeLoadError': '범위 기본 설정을 불러올 수 없습니다: {msg}',
'composio.connect.scopeSaveError': '{key} 범위를 저장할 수 없습니다: {msg}',
'composio.connect.subdomainInvalid':
'전체 URL이 아닌 짧은 하위 도메인만 입력하세요(예: "acme"). 문자, 숫자, 하이픈만 포함해야 합니다.',
'composio.connect.subdomainRequired': '계속하려면 Atlassian 하위 도메인을 입력하세요.',
'composio.connect.wabaIdLabel': 'WABA ID 라벨',
'composio.connect.wabaIdRequired':
'계속하려면 WhatsApp Business Account ID (WABA ID)를 입력하세요.',
'composio.connect.waitingFor': '대기 중:',
'composio.connect.waitingHint': '방금 열린 브라우저 창에서 연결을 완료하세요.',
'composio.triggers.heading': '트리거',
'composio.triggers.listenFrom': '다음에서 이벤트 수신:',
'composio.triggers.loadError': '트리거를 불러올 수 없습니다',
'composio.triggers.needsConfiguration': '구성이 필요합니다',
'composio.triggers.noneAvailable': '현재 사용할 수 있는 트리거가 없습니다:',
'conversations.taskKanban.moveLeft': '왼쪽으로 이동',
'conversations.taskKanban.moveRight': '오른쪽으로 이동',
'conversations.taskKanban.title': '작업',
'conversations.toolTimeline.turn': '턴',
'conversations.toolTimeline.workerThread': '워커 스레드',
'daemon.serviceBlockingGate.body': '본문',
'daemon.serviceBlockingGate.downloadHint': '다운로드 안내',
'daemon.serviceBlockingGate.downloadLatest': '최신 버전 다운로드',
'daemon.serviceBlockingGate.retryCore': '코어 다시 시도',
'daemon.serviceBlockingGate.retryFailed':
'다시 시도에 실패했습니다. 최신 앱 빌드를 다운로드하고 다시 시도하세요.',
'daemon.serviceBlockingGate.retrying': '다시 시도 중...',
'daemon.serviceBlockingGate.title': 'OpenHuman 코어를 사용할 수 없습니다',
'home.banners.discordSubtitle': 'Discord 부제목',
'home.banners.discordTitle': 'Discord 참여하기',
'home.banners.earlyBirdDismiss': '얼리버드 배너 닫기',
'home.banners.earlyBirdFirstSub': '첫 구독.',
'home.banners.earlyBirdOn': '얼리버드 적용',
'home.banners.earlyBirdTitle': '첫 1,000명의 사용자는 60% 할인을 받습니다.',
'home.banners.earlyBirdUseCode': '얼리버드 코드 사용',
'home.banners.getSubscription': '구독하기',
'home.banners.promoCreditsBody': 'OpenHuman을 사용해 보고, 더 필요할 때',
'home.banners.promoCreditsTitle': '{amount}의 프로모션 크레딧이 있습니다.',
'home.banners.promoCreditsUsage': '10배 더 많은 사용량을 받으세요.',
'intelligence.memoryChunk.detail.chunk': '청크',
'intelligence.memoryChunk.detail.copyChunkId': '청크 ID 복사',
'intelligence.memoryChunk.detail.embeddingInfo': 'bge-m3 1024dim',
'intelligence.memoryChunk.detail.noEmbedding': '임베딩 없음',
'intelligence.memoryChunk.letterhead.from': '보낸 사람',
'intelligence.memoryChunk.letterhead.to': '받는 사람',
'intelligence.memoryChunk.mentioned.chunkOne': '청크 1개',
'intelligence.memoryChunk.mentioned.chunkOther': '청크 {count}개',
'intelligence.memoryChunk.mentioned.heading': '언급됨',
'intelligence.memoryChunk.scoreBars.ariaScore': '{name} 점수 {pct}퍼센트',
'intelligence.memoryChunk.scoreBars.atThreshold': '{threshold} 기준',
'intelligence.memoryChunk.scoreBars.dropped': '제외됨',
'intelligence.memoryChunk.scoreBars.heading': '유지된 이유',
'intelligence.memoryChunk.scoreBars.kept': '유지됨',
'intelligence.memoryText.entityTypePrefix': '엔터티 유형',
'intelligence.screenDebug.active': '활성',
'intelligence.screenDebug.app': '앱',
'intelligence.screenDebug.bounds': '경계',
'intelligence.screenDebug.captureAlt': '캡처 테스트 결과',
'intelligence.screenDebug.captureFailed': '실패',
'intelligence.screenDebug.captureSuccess': '성공',
'intelligence.screenDebug.captureTest': '캡처 테스트',
'intelligence.screenDebug.capturing': '캡처 중',
'intelligence.screenDebug.frames': '프레임',
'intelligence.screenDebug.idle': '유휴',
'intelligence.screenDebug.lastApp': '마지막 앱',
'intelligence.screenDebug.mode': '모드',
'intelligence.screenDebug.permAccessibility': '접근성 권한',
'intelligence.screenDebug.permInput': '입력 권한',
'intelligence.screenDebug.permScreen': '접근성',
'intelligence.screenDebug.permissions': '권한',
'intelligence.screenDebug.platformNotSupported': '플랫폼이 지원되지 않음',
'intelligence.screenDebug.recentVisionSummaries': '최근 비전 요약',
'intelligence.screenDebug.session': '세션',
'intelligence.screenDebug.size': '크기',
'intelligence.screenDebug.status': '상태',
'intelligence.screenDebug.testCapture': '테스트 캡처',
'intelligence.screenDebug.time': '시간',
'intelligence.screenDebug.title': '제목',
'intelligence.screenDebug.unknown': '알 수 없음',
'intelligence.screenDebug.visionQueue': '비전 대기열',
'intelligence.screenDebug.visionState': '비전 상태',
'intelligence.tasks.activeBoardOne': '대화 전반에 활성 보드 1개',
'intelligence.tasks.activeBoardOther': '대화 전반에 활성 보드 {count}개',
'intelligence.tasks.empty': '아직 에이전트 작업 보드가 없습니다',
'intelligence.tasks.emptyHint': '빈 상태 안내',
'intelligence.tasks.failedToLoad': '불러오지 못했습니다',
'intelligence.tasks.live': '실시간',
'intelligence.tasks.loadingBoards': '작업 보드 불러오는 중…',
'intelligence.tasks.threadPrefix': '스레드 {thread}',
'notifications.card.dismiss': '알림 닫기',
'notifications.card.importanceTitle': '중요도: {pct}%',
'notifications.center.empty': '아직 알림이 없습니다',
'notifications.center.emptyHint': '빈 상태 안내',
'notifications.center.filterAll': '전체 필터',
'notifications.center.markAllRead': '모두 읽음으로 표시',
'notifications.center.title': '알림',
'oauth.button.connecting': '연결 중...',
'oauth.login.continueWith': '다음으로 계속:',
'onboarding.contextGathering.buildingDesc': '작성 설명',
'onboarding.contextGathering.buildingProfile': '프로필을 만드는 중...',
'onboarding.contextGathering.continueToChat': '채팅으로 계속',
'onboarding.contextGathering.errorDesc':
'채팅이 준비되었습니다. 전체 프로필은 백그라운드에서 계속 만들 예정이므로 지금 계속하고 나중에 점진적으로 개선할 수 있습니다.',
'onboarding.contextGathering.title': '컨텍스트 수집',
'openhuman.team_list_teams': '팀 목록 팀',
'overlay.ariaAttention': '주의 메시지',
'overlay.ariaOrb': 'OpenHuman 오버레이',
'overlay.ariaVoiceActive': '음성 입력 활성',
'overlay.orbTitle': '드래그하여 이동 · 두 번 클릭하여 위치 초기화',
'pages.settings.account.connections': '연결',
'pages.settings.account.connectionsDesc': '연결된 계정 연결을 검토하고 관리합니다',
'pages.settings.account.privacy': '개인정보 보호',
'pages.settings.account.privacyDesc': '데이터 공유 및 익명화된 사용 기본 설정을 관리합니다',
'pages.settings.account.recoveryPhrase': '복구 문구',
'pages.settings.account.recoveryPhraseDesc':
'암호화 및 지갑 접근을 위한 BIP39 복구 문구를 관리합니다',
'pages.settings.account.team': '팀',
'pages.settings.account.teamDesc': '팀, 멤버 및 초대를 관리합니다',
'pages.settings.accountSection.description': '복구 문구, 팀, 연결 및 개인정보 설정.',
'pages.settings.accountSection.title': '계정',
'pages.settings.ai.llm': 'LLM',
'pages.settings.ai.llmDesc': 'LLM 설명',
'pages.settings.ai.voice': '음성',
'pages.settings.ai.voiceDesc': '음성 설명',
'pages.settings.aiSection.description': '언어 모델 제공업체, 로컬 Ollama 및 음성(STT / TTS).',
'pages.settings.aiSection.title': 'AI',
'pages.settings.features.messagingChannels': '메시징 채널',
'pages.settings.features.messagingChannelsDesc': '메시징 채널 설명',
'pages.settings.features.notifications': '알림',
'pages.settings.features.notificationsDesc': '알림 설명',
'pages.settings.features.screenAwareness': '화면 인식',
'pages.settings.features.screenAwarenessDesc': '화면 인식 설명',
'pages.settings.features.tools': '도구',
'pages.settings.features.toolsDesc': '도구 설명',
'pages.settings.featuresSection.description': '화면 인식, 메시징 및 도구.',
'pages.settings.featuresSection.title': '기능',
'privacy.dataKind.credentials': '자격 증명',
'privacy.dataKind.derived': '파생됨',
'privacy.dataKind.diagnostics': '진단',
'privacy.dataKind.metadata': '메타데이터',
'privacy.dataKind.raw': '원본',
'privacy.whatLeaves.link.label': '내 컴퓨터를 떠나는 데이터는 무엇인가요?',
'rewards.community.achievementsUnlocked': '{total}개 중 {unlocked}개 업적 잠금 해제됨',
'rewards.community.connectDiscord': 'Discord 연결',
'rewards.community.cumulativeTokens': '누적 토큰',
'rewards.community.currentStreak': '현재 연속 기록',
'rewards.community.discordLinkedNotInGuild': '연결됨, 하지만 서버 멤버가 아님',
'rewards.community.discordMember': '서버에 참여함',
'rewards.community.discordNotLinked': '연결되지 않음',
'rewards.community.discordServer': 'Discord 서버',
'rewards.community.discordStatusUnavailable': '멤버십 상태를 사용할 수 없음',
'rewards.community.discordWaiting': '백엔드 동기화 대기 중',
'rewards.community.heroSubtitle':
'Discord 계정을 연결하여 독점 채널, 후원자 배지 및 백엔드 동기화 보상을 잠금 해제하세요.',
'rewards.community.heroTitle': '보상 및 Discord 역할 받기',
'rewards.community.joinDiscord': 'Discord 참여',
'rewards.community.loadingRewards': '보상 불러오는 중…',
'rewards.community.locked': '잠김',
'rewards.community.retrying': '다시 시도 중…',
'rewards.community.rolesAndRewards': '역할 및 보상',
'rewards.community.streakDays': '{n}일',
'rewards.community.syncPending': '보상 동기화 대기 중',
'rewards.community.syncPendingDesc': '동기화 대기 설명',
'rewards.community.syncUnavailable': '동기화를 사용할 수 없음',
'rewards.community.tryAgain': '다시 시도 중…',
'rewards.community.unknown': '알 수 없음',
'rewards.community.unlocked': '잠금 해제됨',
'rewards.community.yourProgress': '내 진행 상황',
'rewards.coupon.colCode': '코드',
'rewards.coupon.colRedeemed': '교환됨',
'rewards.coupon.colReward': '보상',
'rewards.coupon.colStatus': '상태',
'rewards.coupon.loadingHistory': '보상 기록 불러오는 중…',
'rewards.coupon.noCodes': '아직 교환된 보상 코드가 없습니다.',
'rewards.coupon.pending': '대기 중',
'rewards.coupon.placeholder': '쿠폰 코드',
'rewards.coupon.promoCredits': '프로모션 크레딧',
'rewards.coupon.recentRedemptions': '최근 교환',
'rewards.coupon.redeemAccepted':
'{code}이(가) 승인되었습니다. 필요한 작업이 완료되면 {amount}이(가) 잠금 해제됩니다.',
'rewards.coupon.redeemButton': '코드 교환',
'rewards.coupon.redeemSuccess':
'{code}이(가) 교환되었습니다. {amount}이(가) 크레딧에 추가되었습니다.',
'rewards.coupon.redeemedCodes': '교환된 코드',
'rewards.coupon.redeeming': '교환 중...',
'rewards.coupon.statusApplied': '적용됨',
'rewards.coupon.statusPendingAction': '작업 대기 중',
'rewards.coupon.statusRedeemed': '교환됨',
'rewards.coupon.subtitle': '부제목',
'rewards.coupon.title': '쿠폰 코드 교환',
'rewards.referralSection.activity': '추천 활동',
'rewards.referralSection.apply': '적용 중…',
'rewards.referralSection.applying': '적용 중…',
'rewards.referralSection.colReferredUser': '추천된 사용자',
'rewards.referralSection.colReward': '보상',
'rewards.referralSection.colStatus': '상태',
'rewards.referralSection.colUpdated': '업데이트됨',
'rewards.referralSection.completed': '완료됨',
'rewards.referralSection.copyCode': '코드 복사',
'rewards.referralSection.copyFailed': '복사 실패',
'rewards.referralSection.haveCode': '추천 코드가 있나요?',
'rewards.referralSection.haveCodeDesc': '코드 있음 설명',
'rewards.referralSection.linked': '연결됨',
'rewards.referralSection.linkedCode': '(코드 {code})',
'rewards.referralSection.loading': '추천 프로그램 불러오는 중…',
'rewards.referralSection.noReferrals': '추천 없음',
'rewards.referralSection.pendingReferrals': '대기 중인 추천',
'rewards.referralSection.placeholder': '추천 코드',
'rewards.referralSection.share': '공유',
'rewards.referralSection.statusCompleted': '완료 상태',
'rewards.referralSection.statusExpired': '만료 상태',
'rewards.referralSection.statusJoined': '참여 상태',
'rewards.referralSection.subtitle': '부제목',
'rewards.referralSection.title': '친구를 초대하고 크레딧 받기',
'rewards.referralSection.totalEarned': '총 적립',
'rewards.referralSection.yourCode': '내 코드',
'settings.ai.addCloudProvider': '클라우드 제공업체 추가',
'settings.ai.addProvider': '저장 중…',
'settings.ai.apiKeyFieldLabel': 'API 키 필드 라벨',
'settings.ai.apiKeyRequired': '계속하려면 API 키를 붙여넣어 주세요.',
'settings.ai.apiKeyStoredEncrypted': 'API 키가 암호화되어 저장됨',
'settings.ai.apiKeysEncrypted': 'auth-profiles.json',
'settings.ai.clearStoredKey': '저장된 키 지우기',
'settings.ai.connectProvider': '제공업체 연결',
'settings.ai.customRouting': '사용자 지정 라우팅',
'settings.ai.defaultResolvesTo': 'OpenHuman',
'settings.ai.discard': '취소',
'settings.ai.editProvider': '제공업체 편집',
'settings.ai.llmProviders': 'LLM 제공업체',
'settings.ai.llmProvidersDesc': 'LLM 제공업체 설명',
'settings.ai.localOllama': '로컬(Ollama)',
'settings.ai.modelLabel': '모델',
'settings.ai.noCustomProviders': '사용자 지정 제공업체 없음',
'settings.ai.providerLabel': '제공업체',
'settings.ai.routing': '라우팅',
'settings.ai.routingCustom': '사용자 지정 라우팅',
'settings.ai.routingDefault': '기본값',
'settings.ai.routingDesc': '라우팅 설명',
'settings.ai.saveChanges': '저장 중…',
'settings.ai.saving': '저장 중…',
'settings.ai.unsavedChange': '저장되지 않은 변경 사항',
'settings.ai.unsavedChanges': '저장되지 않은 변경 사항',
'settings.ai.workloadGroupBackground': '백그라운드 작업 그룹',
'settings.ai.workloadGroupChat': '채팅 작업 그룹',
'settings.autocomplete.appFilter.acceptSuggestion': '제안 수락',
'settings.autocomplete.appFilter.contextOverride': '컨텍스트 재정의(선택 사항)',
'settings.autocomplete.appFilter.debugFocus': '포커스 디버그',
'settings.autocomplete.appFilter.getSuggestion': '제안 받기',
'settings.autocomplete.appFilter.liveLogs': '실시간 로그',
'settings.autocomplete.appFilter.noLogs': ') :',
'settings.autocomplete.appFilter.refreshStatus': '새로고침 중…',
'settings.autocomplete.appFilter.refreshing': '새로고침 중…',
'settings.autocomplete.appFilter.runtime': '런타임',
'settings.autocomplete.appFilter.test': '테스트',
'settings.autocomplete.completionStyle.acceptedCompletion':
'수락된 완성 {count}개가 저장됨 — 향후 제안을 개인화하는 데 사용됩니다.',
'settings.autocomplete.completionStyle.acceptedCompletions':
'수락된 완성 {count}개가 저장됨 — 향후 제안을 개인화하는 데 사용됩니다.',
'settings.autocomplete.completionStyle.clearHistory': '지우는 중…',
'settings.autocomplete.completionStyle.clearing': '지우는 중…',
'settings.autocomplete.completionStyle.debounce': '디바운스(ms)',
'settings.autocomplete.completionStyle.enabled': '활성화됨',
'settings.autocomplete.completionStyle.maxChars': '최대 문자 수',
'settings.autocomplete.completionStyle.noHistory':
'아직 수락된 완성이 없습니다. Tab으로 제안을 수락하여 개인화를 시작하세요.',
'settings.autocomplete.completionStyle.overlayTtl': '오버레이 TTL(ms)',
'settings.autocomplete.completionStyle.personalizationHistory': '개인화 기록',
'settings.autocomplete.completionStyle.styleExamples': '스타일 예시(줄마다 하나씩)',
'settings.autocomplete.completionStyle.styleInstructions': '스타일 지침',
'settings.billing.autoRecharge.addAmount': '이 금액 추가',
'settings.billing.autoRecharge.addCard': '카드 추가',
'settings.billing.autoRecharge.amountHint': '금액 안내',
'settings.billing.autoRecharge.defaultCard': '기본 카드',
'settings.billing.autoRecharge.lastRechargeFailed': '마지막 충전 실패',
'settings.billing.autoRecharge.lastRecharged': '마지막 충전',
'settings.billing.autoRecharge.noCards': '카드 없음',
'settings.billing.autoRecharge.paymentMethods': '결제 수단',
'settings.billing.autoRecharge.rechargeInProgress': '충전 진행 중',
'settings.billing.autoRecharge.rechargeWhen': '잔액이 다음보다 낮아지면 충전',
'settings.billing.autoRecharge.saveSettings': '저장 중…',
'settings.billing.autoRecharge.saving': '저장 중…',
'settings.billing.autoRecharge.setDefault': ':',
'settings.billing.autoRecharge.subtitle': '부제목',
'settings.billing.autoRecharge.title': '자동 충전 활성화',
'settings.billing.autoRecharge.toggleAriaLabel': '자동 충전 전환',
'settings.billing.autoRecharge.weeklyLimit': '주간 지출 한도',
'settings.billing.history.desc': '설명',
'settings.billing.history.empty': '비어 있음',
'settings.billing.history.openPortal': '포털 열기',
'settings.billing.history.posted': '게시됨',
'settings.billing.history.title': '제목',
'settings.billing.inferenceBudget.cycleEnds': '주기 종료',
'settings.billing.inferenceBudget.exhausted': '소진됨',
'settings.billing.inferenceBudget.loadError': '로드 오류',
'settings.billing.inferenceBudget.noBudgetDesc': '예산 없음 설명',
'settings.billing.inferenceBudget.noRecurringBudget': '반복 예산 없음',
'settings.billing.inferenceBudget.remaining': '남음',
'settings.billing.inferenceBudget.tenHourCap': '10시간 한도',
'settings.billing.inferenceBudget.title': '제목',
'settings.billing.payAsYouGo.available': '사용 가능',
'settings.billing.payAsYouGo.chargeCustomAmount': '여는 중…',
'settings.billing.payAsYouGo.chooseTopUpDesc': '충전 선택 설명',
'settings.billing.payAsYouGo.chooseTopUpTitle': '충전 선택 제목',
'settings.billing.payAsYouGo.creditBalanceDesc': '크레딧 잔액 설명',
'settings.billing.payAsYouGo.creditBalanceTitle': '크레딧 잔액 제목',
'settings.billing.payAsYouGo.customAmount': '사용자 지정 금액',
'settings.billing.payAsYouGo.enterAmount': '금액 입력',
'settings.billing.payAsYouGo.opening': '여는 중',
'settings.billing.payAsYouGo.promotionalCredits': '프로모션 크레딧',
'settings.billing.payAsYouGo.topUpBalance': '충전 잔액',
'settings.billing.payAsYouGo.topUpCredits': '크레딧 충전',
'settings.billing.payAsYouGo.unableToLoad': '잔액을 불러올 수 없습니다.',
'settings.billing.subscription.annual': '연간',
'settings.billing.subscription.billedAnnually': '연간 청구',
'settings.billing.subscription.chooseSubtitle': '부제목 선택',
'settings.billing.subscription.chooseTitle': '제목 선택',
'settings.billing.subscription.cryptoDesc': '암호화폐 설명',
'settings.billing.subscription.cryptoQuestion': '암호화폐 질문',
'settings.billing.subscription.current': '현재',
'settings.billing.subscription.currentPlan': '현재 플랜',
'settings.billing.subscription.monthly': '월간',
'settings.billing.subscription.paymentConfirmed': '결제 확인됨',
'settings.billing.subscription.perMonth': '월별',
'settings.billing.subscription.popular': '인기',
};
export default ko4;
+448
View File
@@ -0,0 +1,448 @@
import type { TranslationMap } from '../types';
// Korean chunk 5/5. Source of truth for translators.
const ko5: TranslationMap = {
'settings.billing.subscription.save': '{pct}',
'settings.billing.subscription.upgrade': '업그레이드',
'settings.billing.subscription.waiting': '대기 중',
'settings.billing.subscription.waitingPayment': '결제 대기 중',
'settings.composio.apiKeyDesc': 'Composio API 키가 현재 이 기기에 저장되어 있습니다.',
'settings.composio.apiKeyLabel': 'Composio API 키',
'settings.composio.apiKeyStored': 'API 키 저장됨',
'settings.composio.apiKeyStoredPlaceholder': '••••••••••••••••',
'settings.composio.clearedToBackend': '백엔드 모드로 전환됨',
'settings.composio.confirmItem1': 'API 키가 있는 app.composio.dev 계정',
'settings.composio.confirmItem2': '개인 Composio 계정을 통해 각 통합을 다시 연결해야 합니다',
'settings.composio.confirmItem3':
'참고: Composio 트리거(실시간 웹훅)는 아직 Direct 모드에서 실행되지 않습니다 — 동기식 도구 호출만 지원됩니다',
'settings.composio.confirmNeedItems': '필요한 항목:',
'settings.composio.confirmSwitch': '이해했습니다. Direct로 전환',
'settings.composio.confirmTitle': '⚠️ Direct 모드로 전환',
'settings.composio.confirmWarning':
'기존 통합(Gmail, Slack, GitHub 등 OpenHuman을 통해 연결된 통합)은 표시되지 않습니다 — OpenHuman 관리형 Composio 테넌트에 있습니다.',
'settings.composio.intro':
'Composio는 에이전트가 호출할 수 있는 도구로 250개 이상의 외부 앱을 통합합니다. 이러한 도구 호출이 라우팅되는 방식을 선택하세요.',
'settings.composio.modeDirect': 'Direct(직접 API 키 사용)',
'settings.composio.modeDirectDesc':
'호출이 backend.composio.dev로 직접 이동합니다. 독립적이고 오프라인 친화적입니다. 도구 실행은 동기식으로 작동하지만, 실시간 트리거 웹훅은 아직 Direct 모드에서 라우팅되지 않습니다(후속 이슈).',
'settings.composio.modeManaged': '관리형(OpenHuman이 대신 처리)',
'settings.composio.modeManagedDesc':
'OpenHuman이 백엔드를 통해 도구 호출을 프록시합니다(권장). 인증은 중개되며, Composio API 키를 붙여넣을 필요가 없습니다. 웹훅은 완전히 라우팅됩니다.',
'settings.composio.routingMode': '라우팅 모드',
'settings.composio.saveErrorNoKey':
'저장에 실패했습니다. Direct 모드에는 비어 있지 않은 API 키가 필요합니다.',
'settings.composio.saving': '저장 중…',
'settings.composio.switching': '전환 중…',
'settings.cron.jobs.desc': '설명',
'settings.cron.jobs.empty': '코어 cron 작업을 찾을 수 없습니다.',
'settings.cron.jobs.lastStatus': '마지막 상태',
'settings.cron.jobs.loading': 'cron 작업 불러오는 중...',
'settings.cron.jobs.loadingRuns': '실행 기록 불러오는 중',
'settings.cron.jobs.nextRun': '다음 실행',
'settings.cron.jobs.pause': '일시 중지',
'settings.cron.jobs.paused': '활성화됨',
'settings.cron.jobs.recentRuns': '최근 실행',
'settings.cron.jobs.removing': '제거 중',
'settings.cron.jobs.resume': '재개',
'settings.cron.jobs.runningNow': '지금 실행 중',
'settings.cron.jobs.saving': '저장 중…',
'settings.cron.jobs.schedule': '일정',
'settings.cron.jobs.title': '코어 Cron 작업',
'settings.cron.jobs.viewRuns': '실행 기록 보기',
'settings.localModel.deviceCapability.active': '활성',
'settings.localModel.deviceCapability.appliedTier': '적용된 티어',
'settings.localModel.deviceCapability.applying': '적용 중',
'settings.localModel.deviceCapability.cores': '{count}',
'settings.localModel.deviceCapability.couldNotLoadPresets': '프리셋을 불러올 수 없습니다',
'settings.localModel.deviceCapability.cpu': 'CPU',
'settings.localModel.deviceCapability.customModelIds': '사용자 지정 모델 ID',
'settings.localModel.deviceCapability.detected': '감지됨',
'settings.localModel.deviceCapability.disabled': '비활성화됨',
'settings.localModel.deviceCapability.disabledDesc': '비활성화 설명',
'settings.localModel.deviceCapability.downloadingModels': '(모델 다운로드 중)',
'settings.localModel.deviceCapability.downloadingSetupDesc':
'OllamaSetup 설치 프로그램(~2GB)을 다운로드하고 압축을 푸는 중입니다. 첫 설치 시 시간이 걸릴 수 있습니다.',
'settings.localModel.deviceCapability.failedToApplyPreset': '프리셋 적용 실패',
'settings.localModel.deviceCapability.gpu': 'GPU',
'settings.localModel.deviceCapability.installFailed': 'Ollama 설치 실패',
'settings.localModel.deviceCapability.installFailedDesc':
'Ollama를 사용할 수 있기 전에 설치 프로그램이 종료되었습니다. 다시 시도하려면 재시도를 클릭하거나 ollama.com에서 수동으로 설치하세요.',
'settings.localModel.deviceCapability.installFirst': '먼저 Ollama를 실행하세요.',
'settings.localModel.deviceCapability.installFirstDesc':
'로컬 티어는 외부에서 관리되는 Ollama 엔드포인트에 의존합니다. 직접 시작하고 원하는 모델을 가져온 뒤, 런타임에 연결할 수 있을 때까지 "비활성화됨(클라우드 대체)"을 계속 사용하세요.',
'settings.localModel.deviceCapability.installOllamaFirst':
'이 티어를 사용하려면 먼저 Ollama를 실행하세요',
'settings.localModel.deviceCapability.installingOllama': 'Ollama 설치 중',
'settings.localModel.deviceCapability.loadingDeviceInfo': '기기 정보 불러오는 중',
'settings.localModel.deviceCapability.localAiDisabled':
'로컬 AI 비활성화됨 — 클라우드 대체 사용 중.',
'settings.localModel.deviceCapability.modelTier': '모델 티어',
'settings.localModel.deviceCapability.needsOllama': 'Ollama 필요',
'settings.localModel.deviceCapability.notDetected': '감지되지 않음',
'settings.localModel.deviceCapability.ram': 'RAM',
'settings.localModel.deviceCapability.recommended': '권장',
'settings.localModel.deviceCapability.retryInstall': '다시 시도 중…',
'settings.localModel.deviceCapability.retrying': '다시 시도 중…',
'settings.localModel.deviceCapability.starting': '시작 중…',
'settings.localModel.download.audioPathPlaceholder': '오디오 파일의 절대 경로',
'settings.localModel.download.capabilityAssets': '기능 자산',
'settings.localModel.download.downloading': '다운로드 중...',
'settings.localModel.download.embeddingPlaceholder': '줄마다 하나의 입력 문자열...',
'settings.localModel.download.noThinkMode': '생각 없음 모드',
'settings.localModel.download.promptPlaceholder':
'아무 프롬프트나 입력하고 로컬 모델에서 실행하세요...',
'settings.localModel.download.quantizationPref': '양자화 기본 설정',
'settings.localModel.download.runEmbeddingTest': '실행 중...',
'settings.localModel.download.runPromptTest': '프롬프트 테스트 실행',
'settings.localModel.download.runSummaryTest': '요약 테스트 실행',
'settings.localModel.download.runTranscriptionTest': '실행 중...',
'settings.localModel.download.runTtsTest': '실행 중...',
'settings.localModel.download.runVisionTest': '실행 중...',
'settings.localModel.download.running': '실행 중...',
'settings.localModel.download.runningPrompt': '프롬프트 실행 중',
'settings.localModel.download.summarizePlaceholder':
'로컬 모델로 요약할 텍스트를 붙여넣으세요...',
'settings.localModel.download.testCustomPrompt': '사용자 지정 프롬프트 테스트',
'settings.localModel.download.testEmbeddings': '임베딩 테스트',
'settings.localModel.download.testSummarization': '요약 테스트',
'settings.localModel.download.testVisionPrompt': '비전 프롬프트 테스트',
'settings.localModel.download.testVoiceInput': '음성 입력 테스트(STT)',
'settings.localModel.download.testVoiceOutput': '음성 출력 테스트(TTS)',
'settings.localModel.download.ttsOutputPlaceholder': '선택적 출력 WAV 경로',
'settings.localModel.download.ttsPlaceholder': '합성할 텍스트 입력...',
'settings.localModel.download.visionImagePlaceholder':
'줄마다 하나의 이미지 참조(data URI, URL 또는 로컬 경로 표시)',
'settings.localModel.download.visionPromptPlaceholder': '비전 모델용 프롬프트 입력...',
'settings.localModel.status.allChecksPassed': '모든 확인 통과',
'settings.localModel.status.artifact': '아티팩트',
'settings.localModel.status.backend': '백엔드',
'settings.localModel.status.binary': '바이너리',
'settings.localModel.status.bootstrapResume': '부트스트랩 / 재개',
'settings.localModel.status.checking': '확인 중...',
'settings.localModel.status.checkingOllama': 'Ollama 확인 중',
'settings.localModel.status.customLocation': '사용자 지정 위치',
'settings.localModel.status.customLocationDesc': '사용자 지정 위치 설명',
'settings.localModel.status.diagnosticsHint':
'"진단 실행"을 클릭하여 Ollama가 실행 중이고 모델이 설치되어 있는지 확인하세요.',
'settings.localModel.status.downloadingUnknown': '다운로드 중(크기 알 수 없음)',
'settings.localModel.status.eta': '예상 시간',
'settings.localModel.status.expectedModels': '예상 모델',
'settings.localModel.status.forceRebootstrap': '강제 재부트스트랩',
'settings.localModel.status.generationTps': '생성 TPS',
'settings.localModel.status.hideErrorDetails': '오류 세부 정보 숨기기',
'settings.localModel.status.installManually': '수동 설치',
'settings.localModel.status.installManuallyFrom': '다음에서 수동 설치',
'settings.localModel.status.installOllama': '시작 중…',
'settings.localModel.status.installedModels': '설치된 모델',
'settings.localModel.status.installing': '설치 중...',
'settings.localModel.status.installingOllama': 'Ollama 런타임 설치 중...',
'settings.localModel.status.issues': '문제',
'settings.localModel.status.issuesFound': '문제 {count}개 발견',
'settings.localModel.status.lastLatency': '마지막 지연 시간',
'settings.localModel.status.model': '모델',
'settings.localModel.status.notFound': '찾을 수 없음',
'settings.localModel.status.notRunning': '실행 중이 아님',
'settings.localModel.status.ollamaBinaryPath': 'Ollama 바이너리 경로',
'settings.localModel.status.ollamaDiagnostics': 'Ollama 진단',
'settings.localModel.status.ollamaNotInstalled': 'Ollama 런타임을 사용할 수 없음',
'settings.localModel.status.ollamaNotInstalledDesc':
'OpenHuman은 이제 Ollama를 외부 추론 런타임으로 취급합니다. 직접 Ollama 서버를 시작하고 원하는 모델을 가져온 뒤 작업 라우팅을 해당 서버로 지정하세요.',
'settings.localModel.status.progress': '진행률',
'settings.localModel.status.provider': '제공업체',
'settings.localModel.status.retryBootstrap': '부트스트랩 다시 시도',
'settings.localModel.status.runDiagnostics': '확인 중...',
'settings.localModel.status.running': '실행 중',
'settings.localModel.status.runningExternalProcess': '외부 프로세스로 실행 중',
'settings.localModel.status.runtimeStatus': '런타임 상태',
'settings.localModel.status.server': '서버',
'settings.localModel.status.setPath': '설정 중...',
'settings.localModel.status.setting': '설정 중...',
'settings.localModel.status.showErrorDetails': '오류 세부 정보 숨기기',
'settings.localModel.status.showInstallErrorDetails': '오류 세부 정보 숨기기',
'settings.localModel.status.suggestedFixes': '제안된 수정 사항',
'settings.localModel.status.thenSetPath': '그런 다음 경로 설정',
'settings.localModel.status.triggering': '트리거 중...',
'settings.localModel.status.unavailable': '사용할 수 없음',
'settings.localModel.status.working': '작업 중...',
'settings.mascot.active': '활성',
'settings.mascot.characterDesc': '캐릭터 설명',
'settings.mascot.characterHeading': '캐릭터 제목',
'settings.mascot.colorDesc': '색상 설명',
'settings.mascot.colorHeading': '색상 제목',
'settings.mascot.loadingLibrary': 'OpenHuman 라이브러리 불러오는 중…',
'settings.mascot.localDefault': '로컬 OpenHuman(기본값)',
'settings.mascot.noCharacters': '아직 사용할 수 있는 OpenHuman 캐릭터가 없습니다',
'settings.mascot.noColorVariants': '색상 변형 없음',
'settings.mascot.voice.current': '현재',
'settings.mascot.voice.customDesc':
'api.elevenlabs.io/v1/voices 또는 ElevenLabs 대시보드에서 음성 ID를 찾으세요. ID만 저장되며 API 키는 백엔드에 유지됩니다.',
'settings.mascot.voice.customHeading': '사용자 지정 음성 ID',
'settings.mascot.voice.customOption': '기타(음성 ID 붙여넣기)…',
'settings.mascot.voice.desc':
'마스코트가 음성 응답에 사용할 ElevenLabs 음성을 선택하세요. 성별로 필터링하고, 선별된 목록에서 선택하거나, 사용자 지정 ID를 붙여넣거나, 앱이 인터페이스 언어에 맞는 음성을 선택하도록 할 수 있습니다.',
'settings.mascot.voice.genderFemale': '여성',
'settings.mascot.voice.genderHeading': '음성 성별',
'settings.mascot.voice.genderMale': '남성',
'settings.mascot.voice.heading': '음성',
'settings.mascot.voice.preset': '음성 프리셋',
'settings.mascot.voice.presetHeading': '음성 프리셋',
'settings.mascot.voice.preview': '음성 미리듣기',
'settings.mascot.voice.previewError': '음성 미리듣기 실패',
'settings.mascot.voice.previewing': '미리듣는 중…',
'settings.mascot.voice.reset': '기본값으로 초기화',
'settings.mascot.voice.useLocaleDefault': '앱 언어와 일치',
'settings.mascot.voice.useLocaleDefaultDesc':
'현재 인터페이스 언어에 맞는 음성을 자동으로 선택합니다.',
'settings.memoryWindow.balanced.badge': '추천',
'settings.memoryWindow.balanced.hint':
'합리적인 기본값 — 매번 추가 토큰을 많이 쓰지 않으면서 좋은 연속성을 제공합니다.',
'settings.memoryWindow.balanced.label': '균형',
'settings.memoryWindow.description':
'OpenHuman이 새 에이전트 실행마다 주입하는 기억된 컨텍스트의 양입니다. 창이 클수록 과거 대화를 더 잘 인식하지만, 매 실행마다 더 많은 토큰을 사용하고 비용도 더 듭니다.',
'settings.memoryWindow.extended.badge': '더 많은 컨텍스트',
'settings.memoryWindow.extended.hint':
'각 실행에 더 많은 장기 메모리를 주입합니다. 턴당 토큰 비용이 더 높습니다.',
'settings.memoryWindow.extended.label': '확장',
'settings.memoryWindow.maximum.badge': '가장 높은 비용',
'settings.memoryWindow.maximum.hint':
'가장 큰 안전 창입니다. 최고의 연속성을 제공하지만 매 실행마다 토큰 비용이 의미 있게 증가합니다.',
'settings.memoryWindow.maximum.label': '최대',
'settings.memoryWindow.minimal.badge': '가장 저렴함',
'settings.memoryWindow.minimal.hint':
'가장 작은 메모리 창입니다. 가장 저렴하고 빠르지만 실행 간 연속성이 가장 낮습니다.',
'settings.memoryWindow.minimal.label': '최소',
'settings.memoryWindow.title': '장기 메모리 창',
'settings.screenIntel.permissions.accessibility': '접근성',
'settings.screenIntel.permissions.grantHint': '권한 허용 안내',
'settings.screenIntel.permissions.inputMonitoring': '입력 모니터링',
'settings.screenIntel.permissions.macosAppliesPrivacy': 'macOS 개인정보 보호 적용',
'settings.screenIntel.permissions.openInputMonitoring': '요청 중…',
'settings.screenIntel.permissions.refreshStatus': '새로고침 중…',
'settings.screenIntel.permissions.refreshing': '새로고침 중…',
'settings.screenIntel.permissions.requestAccessibility': '요청 중…',
'settings.screenIntel.permissions.requestScreenRecording': '요청 중…',
'settings.screenIntel.permissions.requesting': '요청 중…',
'settings.screenIntel.permissions.restartRefresh': '코어 다시 시작 중…',
'settings.screenIntel.permissions.restartingCore': '코어 다시 시작 중…',
'settings.screenIntel.permissions.screenRecording': '화면 녹화',
'settings.screenIntel.permissions.title': '권한',
'skills.card.moreActions': '추가 작업',
'skills.create.allowedTools': '허용된 도구',
'skills.create.author': '작성자',
'skills.create.authorPlaceholder': '이름',
'skills.create.commaSeparated': '(쉼표로 구분)',
'skills.create.createBtn': '스킬 생성',
'skills.create.createError': '스킬을 생성할 수 없습니다',
'skills.create.creating': '생성 중…',
'skills.create.description': '설명',
'skills.create.descriptionPlaceholder': '이 스킬은 무엇을 하나요?',
'skills.create.license': '라이선스',
'skills.create.name': '이름',
'skills.create.namePlaceholder': '예: Trade Journal',
'skills.create.scope': '범위',
'skills.create.scopeProjectHint': '/.openhuman/skills/',
'skills.create.scopeUserHint':
'~/.openhuman/skills/<slug>/SKILL.md에 작성됨 — 모든 워크스페이스에서 사용 가능.',
'skills.create.slugLabel': '슬러그 라벨',
'skills.create.subtitle': 'SKILL.md',
'skills.create.tags': '태그',
'skills.create.title': '새 스킬',
'skills.detail.allowedTools': '허용된 도구',
'skills.detail.author': '작성자',
'skills.detail.bundledResources': '번들 리소스',
'skills.detail.closeAriaLabel': '스킬 세부 정보 닫기',
'skills.detail.location': '위치',
'skills.detail.noBundledResources': '번들 리소스가 없습니다.',
'skills.detail.tags': '태그',
'skills.detail.warnings': '경고',
'skills.install.fetchLog': '로그 가져오기',
'skills.install.installBtn': '설치 중…',
'skills.install.installComplete': '설치 완료',
'skills.install.installing': '설치 중…',
'skills.install.parseWarnings': '파싱 경고',
'skills.install.rawError': '원시 오류',
'skills.install.timeoutHint': '(초, 선택 사항)',
'skills.install.timeoutLabel': '시간 초과 라벨',
'skills.install.title': 'URL에서 스킬 설치',
'skills.install.urlLabel': '스킬 URL',
'skills.meetingBots.bannerDesc':
'Google Meet 링크를 넣으면 OpenHuman이 게스트로 참여하여 말하고, 듣고, 반응합니다.',
'skills.meetingBots.bannerTitle': 'OpenHuman을 회의에 보내기',
'skills.meetingBots.busyTitle': 'OpenHuman이 바쁩니다',
'skills.meetingBots.comingSoon': '곧 제공 예정',
'skills.meetingBots.couldNotStartTitle': 'OpenHuman을 시작할 수 없습니다',
'skills.meetingBots.displayName': '표시 이름',
'skills.meetingBots.failedToStart': 'OpenHuman 시작에 실패했습니다.',
'skills.meetingBots.joiningMessage': '몇 초 안에 참가자로 표시될 것입니다.',
'skills.meetingBots.joiningTitle': 'OpenHuman이 회의에 참여하는 중',
'skills.meetingBots.meetingLink': '회의 링크',
'skills.meetingBots.modalAriaLabel': 'OpenHuman을 회의에 보내기',
'skills.meetingBots.modalDesc':
'OpenHuman이 익명 게스트로 참여하여 비디오를 통화에 스트리밍하고 에이전트를 통해 응답합니다.',
'skills.meetingBots.modalTitle': 'OpenHuman을 회의에 보내기',
'skills.meetingBots.newBadge': '새 항목',
'skills.meetingBots.sendTo': '보내기',
'skills.meetingBots.starting': '시작 중…',
'skills.resource.preview.closeAriaLabel': '미리보기 닫기',
'skills.resource.preview.failed': '미리보기 실패',
'skills.resource.preview.loading': '미리보기 불러오는 중…',
'skills.resource.tree.empty': '번들 리소스가 없습니다.',
'skills.search.placeholder': '플레이스홀더',
'skills.setup.autocomplete.acceptKey': '수락 키',
'skills.setup.autocomplete.activeDesc': '활성 설명',
'skills.setup.autocomplete.activeTitle': '자동 완성이 활성화됨',
'skills.setup.autocomplete.customizeSettings': '설정 사용자 지정',
'skills.setup.autocomplete.debounce': '디바운스',
'skills.setup.autocomplete.description': '설명',
'skills.setup.autocomplete.enableBtn': '활성화 중...',
'skills.setup.autocomplete.enableError': '자동 완성을 활성화하지 못했습니다',
'skills.setup.autocomplete.enabling': '활성화 중...',
'skills.setup.autocomplete.notSupported': '지원되지 않음',
'skills.setup.autocomplete.stepEnable': '인라인 완성 활성화',
'skills.setup.autocomplete.stepSuccess': '사용 준비 완료',
'skills.setup.autocomplete.stylePreset': '스타일 프리셋',
'skills.setup.autocomplete.stylePresetValue': '균형(나중에 구성 가능)',
'skills.setup.autocomplete.title': '텍스트 자동 완성',
'skills.setup.screenIntel.activeDesc': '활성 설명',
'skills.setup.screenIntel.activeTitle': '화면 인텔리전스가 활성화됨',
'skills.setup.screenIntel.advancedSettings': '고급 설정',
'skills.setup.screenIntel.allGranted': '모든 권한 허용됨',
'skills.setup.screenIntel.captureMode': '캡처 모드',
'skills.setup.screenIntel.captureModeValue': '모든 창(나중에 구성 가능)',
'skills.setup.screenIntel.deniedHint':
'시스템 설정에서 권한을 허용한 후 아래를 클릭하여 다시 시작하고 변경 사항을 적용하세요.',
'skills.setup.screenIntel.enableBtn': '활성화 중...',
'skills.setup.screenIntel.enableDesc':
'화면의 내용을 읽고 유용한 컨텍스트를 에이전트에 제공합니다',
'skills.setup.screenIntel.enableError': '화면 인텔리전스를 활성화하지 못했습니다',
'skills.setup.screenIntel.enabling': '활성화 중...',
'skills.setup.screenIntel.grant': '여는 중...',
'skills.setup.screenIntel.granted': '허용됨',
'skills.setup.screenIntel.macosOnly': 'macOS 전용',
'skills.setup.screenIntel.opening': '여는 중...',
'skills.setup.screenIntel.panicHotkey': '패닉 핫키',
'skills.setup.screenIntel.permAccessibility': '접근성',
'skills.setup.screenIntel.permInputMonitoring': '입력 모니터링',
'skills.setup.screenIntel.permScreenRecording': '화면 녹화',
'skills.setup.screenIntel.permissionsDesc': '권한 설명',
'skills.setup.screenIntel.refreshStatus': '상태 새로고침',
'skills.setup.screenIntel.restartRefresh': '다시 시작 중...',
'skills.setup.screenIntel.restarting': '다시 시작 중...',
'skills.setup.screenIntel.stepEnable': '스킬 활성화',
'skills.setup.screenIntel.stepPermissions': '권한 허용',
'skills.setup.screenIntel.stepSuccess': '사용 준비 완료',
'skills.setup.screenIntel.title': '화면 인텔리전스',
'skills.setup.screenIntel.visionModel': '비전 모델',
'skills.setup.voice.activation': '활성화',
'skills.setup.voice.activeDescPrefix': 'Fn',
'skills.setup.voice.activeDescSuffix': 'Fn',
'skills.setup.voice.activeTitle': '음성 인텔리전스가 활성화됨',
'skills.setup.voice.customizeSettings': '설정 사용자 지정',
'skills.setup.voice.downloadSttBtn': 'STT 다운로드 버튼',
'skills.setup.voice.enableDesc': '활성화 설명',
'skills.setup.voice.hotkey': '핫키',
'skills.setup.voice.startBtn': '시작 중...',
'skills.setup.voice.startError': '음성 서버를 시작하지 못했습니다',
'skills.setup.voice.starting': '시작 중...',
'skills.setup.voice.stepEnable': '음성 서버 시작',
'skills.setup.voice.stepSetup': '모델 다운로드 필요',
'skills.setup.voice.stepSuccess': '사용 준비 완료',
'skills.setup.voice.sttNotReady': '음성-텍스트 모델이 준비되지 않음',
'skills.setup.voice.sttNotReadyDesc':
'음성 인텔리전스에는 전사용 로컬 Whisper 모델이 필요합니다. 로컬 모델 설정에서 다운로드하세요.',
'skills.setup.voice.sttReady': '음성-텍스트 모델 준비됨',
'skills.setup.voice.sttReturnHint': 'STT 반환 안내',
'skills.setup.voice.title': '음성 인텔리전스',
'skills.uninstall.couldNotUninstall': '제거할 수 없습니다',
'skills.uninstall.description':
'이 작업은 스킬 디렉터리와 모든 번들 리소스를 영구적으로 삭제합니다. 에이전트는 다음 턴부터 이를 더 이상 볼 수 없습니다.',
'skills.uninstall.title': '제거',
'skills.uninstall.uninstallBtn': '제거',
'skills.uninstall.uninstalling': '제거 중…',
'upsell.global.limitMessage': '계속하려면 플랜을 업그레이드하거나 크레딧을 충전하세요',
'upsell.global.limitTitle': '사용자',
'upsell.global.nearLimitMessage':
'사용 한도의 {pct}%를 사용했습니다. 더 높은 한도를 위해 업그레이드하세요.',
'upsell.global.nearLimitTitle': '사용 한도에 가까워지고 있습니다',
'upsell.usageLimit.bodyBudget':
'주간 한도에 도달했습니다.{reset} 한도를 피하려면 플랜을 업그레이드하거나 크레딧을 충전하세요.',
'upsell.usageLimit.bodyRate':
'10시간 추론 속도 한도에 도달했습니다.{reset} 더 높은 한도를 위해 업그레이드하세요.',
'upsell.usageLimit.heading': '사용 한도에 도달했습니다',
'upsell.usageLimit.notNow': '지금은 아님',
'upsell.usageLimit.perWindow': '{amount}',
'upsell.usageLimit.planIncludes': '{plan}',
'upsell.usageLimit.resetsIn': '{time}에 초기화됩니다.',
'upsell.usageLimit.upgradePlan': '플랜 업그레이드',
'upsell.usageLimit.weeklyInference': '{amount}',
'walkthrough.tooltip.letsGo': '시작해 봅시다!',
'walkthrough.tooltip.next': '다음 →',
'walkthrough.tooltip.skip': '투어 건너뛰기',
'walkthrough.tooltip.stepCounter': '{total}개 중 {n}개',
'webhooks.activity.empty': '비어 있음',
'webhooks.activity.title': '최근 활동',
'webhooks.composioHistory.empty': '비어 있음',
'webhooks.composioHistory.metadataId': '메타데이터 ID',
'webhooks.composioHistory.metadataUuid': '메타데이터 UUID',
'webhooks.composioHistory.payload': '페이로드',
'webhooks.composioHistory.title': 'ComposeIO 트리거 기록',
'webhooks.tunnels.active': '활성',
'webhooks.tunnels.createFailed': '터널 생성 실패',
'webhooks.tunnels.creating': '생성 중...',
'webhooks.tunnels.deleteFailed': '터널 삭제 실패',
'webhooks.tunnels.descriptionPlaceholder': '설명(선택 사항)',
'webhooks.tunnels.echo': 'Echo',
'webhooks.tunnels.empty': '비어 있음',
'webhooks.tunnels.enableEcho': 'Echo 제거',
'webhooks.tunnels.inactive': '활성',
'webhooks.tunnels.namePlaceholder': '터널 이름(예: telegram-bot)',
'webhooks.tunnels.newTunnel': '새 터널',
'webhooks.tunnels.removeEcho': 'Echo 제거',
'webhooks.tunnels.title': '웹훅 터널',
'webhooks.tunnels.toggleFailed': 'Echo 전환 실패',
'composio.authExpired': '인증이 만료됨',
'composio.reconnect': '다시 연결',
'composio.directModeRequiresKey':
'저장에 실패했습니다. Direct 모드에는 비어 있지 않은 API 키가 필요합니다.',
'composio.notYetRouted': '아직 라우팅되지 않음',
'composio.triggers.loading': '불러오는 중…',
'conversations.taskKanban.todo': '할 일',
'settings.composio.loading': '불러오는 중…',
'settings.mascot.noCharactersAvailable': '아직 사용할 수 있는 OpenHuman 캐릭터가 없습니다',
'skills.uninstall.confirmTitle': '{name}을(를) 제거하시겠습니까?',
'conversations.taskKanban.blocked': '차단됨',
'conversations.taskKanban.done': '완료',
'conversations.taskKanban.inProgress': '진행 중',
'intelligence.memoryChunk.detail.copiedHint': '복사됨',
'settings.composio.notYetRouted': '아직 라우팅되지 않음',
'settings.localModel.download.manageExternal': '외부 런타임에서 이 모델을 관리하세요.',
'settings.localModel.status.manageOllamaExternal':
'OpenHuman 외부에서 Ollama 프로세스와 모델 가져오기를 관리한 다음 진단을 다시 실행하세요.',
'settings.localModel.status.ollamaDocs': 'Ollama 문서',
'settings.localModel.status.thenRetry':
'설정 지침을 확인한 다음 런타임에 연결할 수 있게 되면 다시 시도하세요.',
'settings.appearance.title': '외관',
'settings.appearance.themeHeading': '테마',
'settings.appearance.themeAria': '테마',
'settings.appearance.modeLight': '라이트',
'settings.appearance.modeLightDesc': '밝은 표면, 어두운 텍스트.',
'settings.appearance.modeDark': '다크',
'settings.appearance.modeDarkDesc': '어두운 표면, 해가 진 후 눈에 더 편안합니다.',
'settings.appearance.modeSystem': '시스템과 일치',
'settings.appearance.modeSystemDesc': 'OS 외관 설정을 따릅니다.',
'settings.appearance.helperText':
'다크 모드는 전체 앱 — 채팅, 설정, 패널 — 을 어두운 팔레트로 전환합니다. "시스템과 일치"는 OS 외관을 따르며 실시간으로 업데이트됩니다.',
'settings.mascot.characterPreview': '미리보기',
'settings.mascot.characterStates': '상태',
'settings.mascot.characterVisemes': '입 모양',
'settings.mascot.colorAria': 'OpenHuman 색상',
'settings.mascot.colorBlack': '검정',
'settings.mascot.colorBurgundy': '버건디',
'settings.mascot.colorGreen': '초록',
'settings.mascot.colorNavy': '네이비',
'settings.mascot.colorYellow': '노랑',
'settings.mascot.libraryUnavailable': 'OpenHuman 라이브러리를 사용할 수 없음',
'settings.mascot.title': 'OpenHuman',
};
export default ko5;
File diff suppressed because it is too large Load Diff
+13 -1
View File
@@ -1,4 +1,16 @@
export type Locale = 'en' | 'zh-CN' | 'hi' | 'es' | 'ar' | 'fr' | 'bn' | 'pt' | 'ru' | 'id' | 'it';
export type Locale =
| 'en'
| 'zh-CN'
| 'hi'
| 'es'
| 'ar'
| 'fr'
| 'bn'
| 'pt'
| 'ru'
| 'id'
| 'it'
| 'ko';
export interface TranslationMap {
[key: string]: string;
+1
View File
@@ -9,6 +9,7 @@ const PREFIX_TO_LOCALE: Array<[string, Locale]> = [
['zh', 'zh-CN'],
['hi', 'hi'],
['es', 'es'],
['ko', 'ko'],
['ar', 'ar'],
['fr', 'fr'],
['bn', 'bn'],