- Updated PersonalityForm to handle multiple reply styles and probabilities. - Removed unused fields from PersonalityConfig and adjusted default values. - Refactored loadPersonalityConfig and loadEmojiConfig to align with new structure. - Introduced ChatComposer, ChatHeaderBar, ChatWorkspaceSidebar, and MessageList components for improved chat interface. - Enhanced user experience with dynamic message rendering and connection status indicators. - Cleaned up API calls for saving configurations, focusing on essential fields. Co-authored-by: Copilot <copilot@github.com>
885 lines
42 KiB
JSON
885 lines
42 KiB
JSON
{
|
|
"header": {
|
|
"collapseSidebar": "사이드바 접기",
|
|
"expandSidebar": "사이드바 펼치기",
|
|
"toggleConnection": "백엔드 연결 전환",
|
|
"viewAnnualSummary": "연간 요약 보기",
|
|
"annualSummary": "2025 연간 요약",
|
|
"searchPlaceholder": "검색...",
|
|
"viewDocs": "MaiBot 문서 보기",
|
|
"docs": "MaiBot 문서",
|
|
"switchToLight": "라이트 모드로 전환",
|
|
"switchToDark": "다크 모드로 전환",
|
|
"logout": "로그아웃",
|
|
"logoutLabel": "로그아웃",
|
|
"notConnected": "연결 안됨"
|
|
},
|
|
"sidebar": {
|
|
"groups": {
|
|
"overview": "개요",
|
|
"botConfig": "봇 설정",
|
|
"botResources": "봇 리소스",
|
|
"extensionsMonitor": "확장 기능 & 모니터",
|
|
"system": "시스템"
|
|
},
|
|
"menu": {
|
|
"home": "홈",
|
|
"botMainConfig": "봇 메인 설정",
|
|
"aiModelProvider": "AI 모델 공급자",
|
|
"modelManagement": "모델 관리",
|
|
"adapterConfig": "어댑터 설정",
|
|
"emojiManagement": "이모티콘 관리",
|
|
"expressionManagement": "표현 관리",
|
|
"slangManagement": "슬랭 관리",
|
|
"personInfo": "인물 정보",
|
|
"knowledgeGraph": "장기 기억 그래프",
|
|
"knowledgeBase": "장기 기억 콘솔",
|
|
"pluginMarket": "플러그인 마켓",
|
|
"configTemplate": "설정 템플릿",
|
|
"pluginConfig": "플러그인 설정",
|
|
"logViewer": "로그 뷰어",
|
|
"maisakaMonitor": "MaiSaka 채팅 모니터",
|
|
"localChat": "로컬 채팅",
|
|
"settings": "설정"
|
|
}
|
|
},
|
|
"workspace": {
|
|
"switcherLabel": "MaiBot 작업 공간 전환",
|
|
"settings": "麦麦 설정",
|
|
"chat": "麦麦 채팅"
|
|
},
|
|
"chat": {
|
|
"defaultTab": "WebUI",
|
|
"botNameFallback": "麦麦",
|
|
"userFallback": "사용자",
|
|
"userNameFallback": "WebUI 사용자",
|
|
"virtualGroupFallback": "WebUI 가상 그룹 채팅",
|
|
"status": {
|
|
"connected": "연결됨",
|
|
"connecting": "연결 중...",
|
|
"disconnected": "연결 안됨"
|
|
},
|
|
"actions": {
|
|
"cancel": "취소",
|
|
"reconnect": "다시 연결",
|
|
"save": "저장",
|
|
"send": "메시지 보내기"
|
|
},
|
|
"identity": {
|
|
"current": "현재 신분:",
|
|
"editName": "닉네임 수정",
|
|
"group": "그룹: {{group}}",
|
|
"namePlaceholder": "닉네임 입력",
|
|
"virtual": "가상 신분:"
|
|
},
|
|
"input": {
|
|
"placeholder": "메시지 입력...",
|
|
"waiting": "연결 대기 중..."
|
|
},
|
|
"message": {
|
|
"empty": "{{bot}}와 대화를 시작해 보세요!",
|
|
"emptyHint": "아래 입력란에 메시지를 입력하고 Enter 키를 눌러 보내세요",
|
|
"errorFallback": "오류가 발생했습니다",
|
|
"thinking": "생각 중..."
|
|
},
|
|
"composer": {
|
|
"hint": "Enter 전송 · Shift + Enter 줄바꿈"
|
|
},
|
|
"sidebar": {
|
|
"closeConversation": "{{label}} 닫기",
|
|
"conversations": "채팅 대화",
|
|
"emptyPreview": "아직 메시지가 없습니다",
|
|
"identityHint": "로컬 채팅 신분",
|
|
"newVirtual": "새 가상 신분 대화",
|
|
"online": "온라인",
|
|
"offline": "오프라인",
|
|
"subtitle": "대화 {{count}}개",
|
|
"title": "채팅",
|
|
"webuiBadge": "WebUI",
|
|
"virtualBadge": "가상",
|
|
"profileTitle": "내 신분",
|
|
"editName": "닉네임 편집",
|
|
"saveName": "저장"
|
|
},
|
|
"dialog": {
|
|
"create": "대화 만들기",
|
|
"description": "麦麦가 이미 알고 있는 사용자를 선택해 그 사용자 신분으로 대화합니다. 麦麦는 해당 사용자에 대한 기억과 이해를 사용해 응답합니다.",
|
|
"groupName": "가상 그룹 이름(선택)",
|
|
"groupNameHint": "麦麦는 이 이름의 그룹 채팅으로 인식합니다",
|
|
"knownUserSuffix": " · 알고 있음",
|
|
"loading": "불러오는 중...",
|
|
"noUsers": "사용자를 찾을 수 없습니다",
|
|
"personCount": "({{count}}명)",
|
|
"platform": "플랫폼 선택",
|
|
"platformPlaceholder": "플랫폼 선택",
|
|
"searchUser": "사용자 이름 검색...",
|
|
"title": "새 가상 신분 대화",
|
|
"user": "사용자 선택"
|
|
},
|
|
"media": {
|
|
"audioUnsupported": "브라우저가 오디오 재생을 지원하지 않습니다",
|
|
"emoji": "이모티콘",
|
|
"face": "[표정:{{data}}]",
|
|
"file": "[파일: {{data}}]",
|
|
"forward": "[전달 메시지]",
|
|
"image": "이미지",
|
|
"loadFailed": "[{{type}} 로드 실패]",
|
|
"music": "[음악 공유]",
|
|
"noCaptions": "자막 없음",
|
|
"reply": "[답장]",
|
|
"unknown": "[{{type}}]",
|
|
"unknownMessage": "알 수 없는 메시지",
|
|
"videoUnsupported": "브라우저가 비디오 재생을 지원하지 않습니다"
|
|
},
|
|
"toast": {
|
|
"backendUnavailable": "백엔드 서비스에 연결할 수 없습니다. MaiBot이 실행 중인지 확인하세요.",
|
|
"backendUnavailableShort": "백엔드 서비스에 연결할 수 없습니다",
|
|
"connectionFailed": "연결 실패",
|
|
"currentSessionUnavailable": "현재 채팅 세션을 사용할 수 없습니다. 잠시 후 다시 시도하세요.",
|
|
"error": "오류",
|
|
"incompleteConfig": "설정이 완전하지 않습니다",
|
|
"networkError": "네트워크 오류",
|
|
"platformFailed": "플랫폼을 불러오지 못했습니다",
|
|
"selectPlatformAndUser": "플랫폼과 사용자를 선택하세요",
|
|
"sendFailed": "전송 실패",
|
|
"serverError": "서버 오류: {{status}}",
|
|
"sessionUnavailable": "채팅 세션을 열 수 없습니다. 잠시 후 다시 시도하세요.",
|
|
"virtualTabCreated": "가상 신분 탭",
|
|
"virtualTabCreatedDesc": "{{label}} 대화를 만들었습니다"
|
|
}
|
|
},
|
|
"layout": {
|
|
"verifyingLogin": "로그인 상태 확인 중...",
|
|
"logoTitle": "MaiBot WebUI",
|
|
"logoTitleShort": "M"
|
|
},
|
|
"httpWarning": {
|
|
"title": "보안 알림: ",
|
|
"message": "현재 HTTP로 WebUI에 접속하고 있습니다.",
|
|
"description": "로컬이 아닌 HTTP 연결에서는 액세스 토큰과 설정 내용이 노출될 수 있습니다. 가능하면 HTTPS 또는 신뢰할 수 있는 내부망 연결을 사용하세요.",
|
|
"dismiss": "HTTP 보안 알림 닫기"
|
|
},
|
|
"settings": {
|
|
"title": "설정",
|
|
"description": "앱 환경 설정 관리",
|
|
"tabs": {
|
|
"appearance": "외관",
|
|
"security": "보안",
|
|
"other": "기타",
|
|
"about": "정보"
|
|
},
|
|
"appearance": {
|
|
"themeMode": "테마 모드",
|
|
"themeModeDesc": "라이트 / 다크 / 시스템 따라가기",
|
|
"light": "라이트",
|
|
"dark": "다크",
|
|
"system": "시스템",
|
|
"accentColor": "강조 색상",
|
|
"resetDefault": "기본값으로 재설정",
|
|
"colorPreview": "색상 미리보기",
|
|
"styleTweaks": "스타일 조정",
|
|
"typography": "타이포그래피",
|
|
"visualEffects": "시각 효과",
|
|
"layout": "레이아웃",
|
|
"animation": "애니메이션",
|
|
"background": "배경",
|
|
"customCss": "사용자 정의 CSS",
|
|
"animationEffect": "애니메이션 효과",
|
|
"importExportTheme": "테마 가져오기 / 내보내기",
|
|
"importTheme": "테마 가져오기",
|
|
"exportTheme": "테마 내보내기",
|
|
"importSuccess": "가져오기 성공",
|
|
"importFailed": "가져오기 실패",
|
|
"resetSuccess": "재설정 성공",
|
|
"fontFamily": "글꼴",
|
|
"fontSize": "글자 크기",
|
|
"borderRadius": "테두리 반경",
|
|
"contentWidth": "콘텐츠 너비",
|
|
"sidebarWidth": "사이드바 너비",
|
|
"animationSpeed": "애니메이션 속도",
|
|
"backgroundImage": "배경 이미지",
|
|
"backgroundBlur": "배경 흐림",
|
|
"backgroundOpacity": "배경 투명도",
|
|
"lightDesc": "항상 라이트 테마 사용",
|
|
"darkDesc": "항상 다크 테마 사용",
|
|
"systemDesc": "시스템 설정에 따라 자동 전환",
|
|
"accentPrimary": "링 컴러",
|
|
"accentHint": "색상 퐹을 클릭하거나 HEX 값을 입력하세요",
|
|
"resetTheme": "기본값으로 재설정",
|
|
"confirmResetTheme": "테마 재설정 확인",
|
|
"confirmResetThemeDesc": "이렇게 하면 색상, 글꼴, 레이아웃 및 사용자 정의 CSS를 포함한 모든 테마 설정이 기본값으로 재설정됩니다. 이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?",
|
|
"confirmResetAction": "재설정 확인",
|
|
"cssWarningTitle": "다음 내용이 안전 필터를 거쳣습니다:",
|
|
"cssPlaceholder": "/* 사용자 정의 CSS를 여기에 입력 */\n\n/* 예시: */\n/* .sidebar { background: #1a1a2e; } */",
|
|
"cssDescription": "인터페이스를 더욱 개인화하도록 사용자 정의 CSS를 작성하세요. 위험한 CSS(@import, url() 등)는 자동으로 필터됩니다.",
|
|
"clearCss": "지우기",
|
|
"exportDesc": "주제를 JSON 파일로 내보내 공유하거나 백업합니다. 가져올 때 모든 설정이 자동으로 적용됩니다.",
|
|
"importSuccessDesc": "테마 설정을 가져왔습니다. 페이지가 자동으로 새로고침됩니다",
|
|
"resetSuccessDesc": "테마가 기본값으로 재설정되었습니다",
|
|
"enableAnimations": "애니메이션 활성화",
|
|
"enableAnimationsDesc": "비활성화하면 모든 전환 애니메이션과 효과가 긺히고 성능이 향상됩니다",
|
|
"loginWavesBackground": "로그인 페이지 파도 배경",
|
|
"loginWavesBackgroundDesc": "비활성화하면 로그인 페이지가 단색 배경이 됩니다. 저사양 디바이스에 적합합니다",
|
|
"inheritParentBg": "상위 배경 상속",
|
|
"inheritParentBgDesc": "활성화하면 상위 레이어의 배경 설정을 사용합니다",
|
|
"fontFamilyLabel": "글꼴 패밀리",
|
|
"fontFamilyPlaceholder": "글꼴 패밀리 선택",
|
|
"fontFamilySystem": "시스템 기본 (System)",
|
|
"fontFamilySans": "돋움체 (Sans-serif)",
|
|
"fontFamilySerif": "세리프 (Serif)",
|
|
"fontFamilyMono": "등폭 (Monospace)",
|
|
"baseFontSize": "기본 글자 크기 (Base Size)",
|
|
"lineHeight": "줄 높이 (Line Height)",
|
|
"lineHeightPlaceholder": "줄 높이 선택",
|
|
"lineHeightCompact": "콤팬트 (1.2)",
|
|
"lineHeightNormal": "보통 (1.5)",
|
|
"lineHeightLoose": "느슨 (1.75)",
|
|
"borderRadiusLabel": "테두리 반경 (Radius)",
|
|
"shadowLabel": "그림자 강도 (Shadow)",
|
|
"shadowPlaceholder": "그림자 강도 선택",
|
|
"shadowNone": "없음 (None)",
|
|
"shadowSm": "약함 (Small)",
|
|
"shadowMd": "중간 (Medium)",
|
|
"shadowLg": "강함 (Large)",
|
|
"shadowXl": "매우 강함 (Extra Large)",
|
|
"blurLabel": "흘림 효과 (Blur)",
|
|
"sidebarWidthLabel": "사이드바드 너비 (Sidebar Width)",
|
|
"maxContentWidth": "콘텐츠 최대 너비 (Max Width)",
|
|
"spacingUnit": "기본 간격 (Spacing Unit)",
|
|
"animationSpeedLabel": "애니메이션 속도 (Speed)",
|
|
"animationSpeedPlaceholder": "애니메이션 속도 선택",
|
|
"animationFast": "빠름 (100ms)",
|
|
"animationNormal": "보통 (300ms)",
|
|
"animationSlow": "느림 (500ms)",
|
|
"animationOff": "끄기 (0ms)",
|
|
"bgPage": "페이지",
|
|
"bgSidebar": "사이드바드",
|
|
"typographyGroup": "타이포그래피 (Typography)",
|
|
"visualGroup": "시각 효과 (Visual)",
|
|
"layoutGroup": "레이아웃 (Layout)",
|
|
"animationGroup": "애니메이션 (Animation)",
|
|
"backgroundGroup": "배경 설정 (Backgrounds)"
|
|
},
|
|
"security": {
|
|
"currentToken": "현재 액세스 토큰",
|
|
"yourToken": "액세스 토큰",
|
|
"regenerate": "재생성",
|
|
"customToken": "사용자 정의 액세스 토큰",
|
|
"securityTip": "보안 팁",
|
|
"cannotCopy": "복사할 수 없습니다",
|
|
"copySuccess": "복사됨",
|
|
"copyFailed": "복사 실패",
|
|
"updateSuccess": "업데이트됨",
|
|
"updateFailed": "업데이트 실패",
|
|
"generateSuccess": "생성됨",
|
|
"generateFailed": "생성 실패",
|
|
"newToken": "새 액세스 토큰",
|
|
"confirmRegenerate": "토큰 재생성 확인",
|
|
"confirmRegenerateDesc": "재생성 후 이전 토큰은 무효화됩니다. 다시 로그인해야 합니다.",
|
|
"cancel": "취소",
|
|
"confirm": "확인",
|
|
"cannotCopyDesc": "토큰이 보안 쿠키에 저장되어 있습니다. 새 토큰을 얻으려면 재생성하세요.",
|
|
"copySuccessDesc": "토큰이 클립보드에 복사되었습니다",
|
|
"copyFailedDesc": "토큰을 수동으로 복사하세요",
|
|
"inputError": "입력 오류",
|
|
"inputErrorDesc": "새 토큰을 입력하세요",
|
|
"formatError": "형식 오류",
|
|
"formatErrorDesc": "토큰이 요구 사항을 충족하지 않습니다: {{failedRules}}",
|
|
"updateSuccessDesc": "액세스 토큰이 업데이트되었습니다. 로그인 페이지로 이동합니다.",
|
|
"updateFailedDesc": "토큰을 업데이트할 수 없습니다",
|
|
"updateFailedConn": "서버 연결에 실패했습니다",
|
|
"generateSuccessDesc": "새 액세스 토큰이 생성되었습니다. 즉시 저장하세요.",
|
|
"generateFailedDesc": "새 토큰을 생성할 수 없습니다",
|
|
"generateFailedConn": "서버 연결에 실패했습니다",
|
|
"cannotView": "볼 수 없습니다",
|
|
"cannotViewDesc": "토큰이 보안 쿠키에 저장되어 있습니다. 새 토큰이 필요하면 \"재생성\"을 클릭하세요.",
|
|
"hide": "숨기기",
|
|
"show": "표시",
|
|
"copyTip": "클립보드에 복사",
|
|
"regenerateShort": "생성",
|
|
"confirmRegenerateFullDesc": "새로운 64자 보안 토큰을 생성하고 현재 토큰을 즉시 무효화합니다. 새 토큰으로 다시 로그인해야 합니다. 이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?",
|
|
"confirmGenerate": "생성 확인",
|
|
"tokenStorePlaceholder": "토큰이 보안 쿠키에 저장되어 있습니다",
|
|
"safekeepTip": "액세스 토큰을 안전하게 보관하고 다른 사람과 공유하지 마세요.",
|
|
"newTokenLabel": "새 액세스 토큰",
|
|
"customTokenPlaceholder": "사용자 정의 토큰 입력",
|
|
"tokenReqTitle": "토큰 보안 요구 사항:",
|
|
"tokenValid": "토큰 형식이 올바르며 사용 가능합니다",
|
|
"updateBtn": "사용자 정의 토큰 업데이트",
|
|
"updating": "업데이트 중...",
|
|
"dialogTitle": "새 액세스 토큰",
|
|
"dialogDesc": "새 토큰입니다. 즉시 저장하세요. 창을 닫으면 로그인 페이지로 이동합니다.",
|
|
"dialogTokenLabel": "새 토큰 (64자 보안 토큰)",
|
|
"important": "중요 공지",
|
|
"tip1": "이 토큰은 한 번만 표시됩니다. 닫은 후에는 볼 수 없습니다",
|
|
"tip2": "즉시 복사하여 안전한 위치에 저장하세요",
|
|
"tip3": "닫으면 자동으로 로그인 페이지로 이동합니다",
|
|
"tip4": "새 토큰으로 다시 로그인하세요",
|
|
"copied": "복사됨",
|
|
"copyToken": "토큰 복사",
|
|
"savedClose": "저장했습니다, 닫기",
|
|
"securityTip1": "재생성하면 시스템이 랜덤 64자 보안 토큰을 생성합니다",
|
|
"securityTip2": "사용자 정의 토큰은 모든 보안 요구 사항을 충족해야 합니다",
|
|
"securityTip3": "토큰을 업데이트하면 이전 토큰이 즉시 무효화됩니다",
|
|
"securityTip4": "안전한 환경에서 토큰을 확인하고 복사하세요",
|
|
"securityTip5": "토큰 유출이 의심되면 즉시 재생성하거나 업데이트하세요",
|
|
"securityTip6": "최고의 보안을 위해 시스템 생성 토큰을 권장합니다"
|
|
},
|
|
"other": {
|
|
"performance": "성능 & 저장소",
|
|
"localStorage": "로컬 저장소 사용량",
|
|
"logCache": "로그 캐시 크기",
|
|
"importExport": "설정 가져오기 / 내보내기",
|
|
"configWizard": "설정 마법사",
|
|
"devTools": "개발자 도구",
|
|
"clearStorage": "로컬 저장소 지우기",
|
|
"clearStorageDesc": "모든 로컬 저장소 데이터를 지웁니다",
|
|
"clearStorageConfirm": "지우기 확인",
|
|
"clearLogCache": "로그 캐시 지우기",
|
|
"clearLogCacheDesc": "모든 캐시된 로그 데이터를 지웁니다",
|
|
"clearLogCacheConfirm": "지우기 확인",
|
|
"importSettings": "설정 가져오기",
|
|
"exportSettings": "설정 내보내기",
|
|
"resetAllSettings": "모든 설정 재설정",
|
|
"resetAllSettingsDesc": "모든 설정을 기본값으로 되돌립니다",
|
|
"resetAllSettingsConfirm": "재설정 확인",
|
|
"clearStorageSuccess": "로컬 저장소를 지웠습니다",
|
|
"clearStorageFailed": "지우기 실패",
|
|
"clearLogSuccess": "로그 캐시를 지웠습니다",
|
|
"clearLogFailed": "지우기 실패",
|
|
"importSuccess": "가져오기 성공",
|
|
"importFailed": "가져오기 실패",
|
|
"exportSuccess": "내보내기 성공",
|
|
"exportFailed": "내보내기 실패",
|
|
"resetSuccess": "재설정 성공",
|
|
"resetFailed": "재설정 실패",
|
|
"storageItems": "{{count}}개 저장 항목",
|
|
"logCacheSizeDesc": "로그 뷰어가 캐시할 최대 로그 수를 제어합니다. 값이 클수록 메모리를 더 사용합니다.",
|
|
"logCacheSizeUnit": "개",
|
|
"dataSyncIntervalLabel": "홈 데이터 새로고침 간격",
|
|
"dataSyncIntervalUnit": "초",
|
|
"dataSyncIntervalDesc": "홈 화면 통계 데이터의 자동 새로고침 간격을 제어합니다",
|
|
"wsReconnectLabel": "WebSocket 재연결 간격",
|
|
"wsReconnectUnit": "초",
|
|
"wsReconnectDesc": "로그 WebSocket 연결 해제 후 재연결 기본 간격",
|
|
"wsMaxReconnectLabel": "WebSocket 최대 재연결 횟수",
|
|
"wsMaxReconnectUnit": "회",
|
|
"wsMaxReconnectDesc": "연결 실패 후 최대 재연결 시도 횟수",
|
|
"clearLogCacheFn": "로그 캐시 지우기",
|
|
"clearLocalCache": "로컬 캐시 지우기",
|
|
"confirmClearCache": "로컬 캐시 지우기 확인",
|
|
"confirmClearCacheDesc": "로그인 자격 증명을 제외한 모든 로컬 캐시 설정과 데이터를 지웁니다. 일부 기본 설정을 다시 구성해야 할 수 있습니다. 계속하시겠습니까?",
|
|
"confirmClear": "지우기 확인",
|
|
"importExportDesc": "현재 인터페이스 설정을 내보내 백업하거나, 이전에 내보낸 파일에서 복원하세요.",
|
|
"exporting": "내보내는 중...",
|
|
"importing": "가져오는 중...",
|
|
"resetAllSettingsBtn": "모든 설정을 기본값으로 재설정",
|
|
"confirmResetAll": "모든 설정 재설정 확인",
|
|
"confirmResetAllDesc": "테마, 색상, 애니메이션 등 모든 인터페이스 설정을 기본값으로 복원합니다. 로그인 상태에는 영향이 없습니다. 계속하시겠습니까?",
|
|
"configWizardDesc": "초기 설정 마법사를 다시 실행하여 시스템 기본 설정을 재구성할 수 있습니다.",
|
|
"rerunSetup": "초기 설정 다시 실행",
|
|
"confirmRerunSetup": "재구성 확인",
|
|
"confirmRerunSetupDesc": "초기 설정 마법사로 돌아갑니다. 시스템 기본 설정을 재구성할 수 있습니다. 계속하시겠습니까?",
|
|
"devToolsDesc": "아래 기능은 개발 및 디버깅 전용입니다. 페이지 충돌이나 비정상 동작을 유발할 수 있습니다.",
|
|
"triggerError": "테스트 오류 발생",
|
|
"confirmTriggerError": "오류 발생 확인",
|
|
"confirmTriggerErrorDesc": "React 오류를 수동으로 발생시켜 오류 경계 컴포넌트를 테스트합니다. 페이지를 새로고침하거나 홈으로 돌아가면 복구됩니다.",
|
|
"confirmTrigger": "발생 확인",
|
|
"logCleared": "로그 지워짐",
|
|
"logClearedDesc": "로그 캐시가 지워졌습니다",
|
|
"cacheCleared": "캐시 지워짐",
|
|
"cacheClearedDesc": "{{count}}개의 캐시 데이터를 지웠습니다",
|
|
"exportSuccessDesc": "설정을 JSON 파일로 내보냈습니다",
|
|
"exportFailedDesc": "설정을 내보낼 수 없습니다",
|
|
"importSuccessDesc": "{{imported}}개 설정을 가져왔습니다",
|
|
"importSkippedSuffix": ", {{skipped}}개 건너뜀",
|
|
"importRefreshHint": "참고",
|
|
"importRefreshHintDesc": "일부 설정은 페이지를 새로고침해야 완전히 적용됩니다",
|
|
"importNoDataDesc": "가져올 유효한 설정이 없습니다",
|
|
"importInvalidDesc": "유효하지 않은 파일 형식",
|
|
"resetDone": "재설정 완료",
|
|
"resetDoneDesc": "모든 설정이 기본값으로 복원되었습니다. 변경 사항을 적용하려면 페이지를 새로고침하세요."
|
|
},
|
|
"about": {
|
|
"openSource": "오픈 소스",
|
|
"aboutApp": "MaiBot Dashboard 정보",
|
|
"version": "버전:",
|
|
"author": "작성자",
|
|
"techStack": "기술 스택",
|
|
"frontendFramework": "프론트엔드 프레임워크",
|
|
"uiComponents": "UI 컴포넌트",
|
|
"backend": "백엔드",
|
|
"buildTool": "빌드 도구",
|
|
"openSourceThanks": "오픈 소스 라이브러리",
|
|
"openSourceLicense": "오픈 소스 라이선스",
|
|
"openSourceDesc": "이 프로젝트는 GitHub에서 오픈 소스입니다. Star ⭐로 응원해 주세요!",
|
|
"visitGitHub": "GitHub 방문",
|
|
"appDesc": "MaiBot의 현대적인 웹 관리 인터페이스",
|
|
"maimaiCore": "MaiBot 코어",
|
|
"uiFrameworkGroup": "UI 프레임워크 & 컴포넌트",
|
|
"routingStateGroup": "라우팅 & 상태 관리",
|
|
"formGroup": "폼 처리",
|
|
"utilsGroup": "유틸리티 라이브러리",
|
|
"animationGroup": "애니메이션",
|
|
"backendGroup": "백엔드 프레임워크",
|
|
"devToolsGroup": "개발자 도구",
|
|
"openSourceThanksDesc": "이 프로젝트는 다음 훌륭한 오픈 소스 라이브러리를 사용합니다. 기여에 감사드립니다:",
|
|
"licenseDesc": "이 프로젝트는 GNU General Public License v3.0으로 라이선스됩니다. 동일한 오픈 소스 라이선스를 유지하는 한 자유롭게 사용, 수정, 배포할 수 있습니다.",
|
|
"licenseDeps": "이 프로젝트의 모든 오픈 소스 라이브러리는 각각의 라이선스(MIT, Apache-2.0, BSD 등)를 따릅니다. 모든 오픈 소스 기여자에게 감사드립니다.",
|
|
"lib": {
|
|
"react": "UI 구축을 위한 라이브러리",
|
|
"shadcn": "우아한 React 컴포넌트 라이브러리",
|
|
"radix": "스타일 없는 접근 가능한 컴포넌트",
|
|
"tailwind": "유틸리티 우선 CSS 프레임워크",
|
|
"lucide": "아름다운 아이콘 라이브러리",
|
|
"tanstackRouter": "타입 안전한 라우팅 라이브러리",
|
|
"zustand": "경량 상태 관리 라이브러리",
|
|
"reactHookForm": "고성능 폼 라이브러리",
|
|
"zod": "TypeScript 우선 스키마 검증",
|
|
"clsx": "조건부 className 빌더",
|
|
"tailwindMerge": "Tailwind 클래스 이름 병합 도구",
|
|
"cva": "컴포넌트 변형 관리",
|
|
"dateFns": "현대적인 날짜 유틸리티 라이브러리",
|
|
"framerMotion": "React 애니메이션 라이브러리",
|
|
"vaul": "드로어 컴포넌트 애니메이션",
|
|
"fastapi": "현대적인 Python 웹 프레임워크",
|
|
"uvicorn": "ASGI 서버",
|
|
"pydantic": "데이터 검증 라이브러리",
|
|
"pythonMultipart": "파일 업로드 지원",
|
|
"typescript": "JavaScript의 슈퍼셋",
|
|
"vite": "차세대 프론트엔드 빌드 도구",
|
|
"eslint": "JavaScript 코드 린터"
|
|
}
|
|
}
|
|
},
|
|
"auth": {
|
|
"title": "로그인",
|
|
"description": "계속하려면 액세스 토큰을 입력하세요",
|
|
"tokenLabel": "액세스 토큰",
|
|
"tokenPlaceholder": "액세스 토큰 입력",
|
|
"loginButton": "로그인",
|
|
"loggingIn": "로그인 중...",
|
|
"loginFailed": "로그인 실패",
|
|
"loginSuccess": "로그인 성공",
|
|
"checkingAuth": "로그인 상태 확인 중...",
|
|
"welcome": "MaiBot에 오신 것을 환영합니다",
|
|
"accessDesc": "시스템에 액세스하려면 액세스 토큰을 입력하세요",
|
|
"tokenRequired": "액세스 토큰을 입력해 주세요",
|
|
"verifyingLabel": "확인 중...",
|
|
"verifyEnter": "확인 후 입장",
|
|
"helpLink": "Token이 없습니다. 어디서 얻을 수 있나요?",
|
|
"helpTitle": "Access Token 얻는 방법",
|
|
"helpDesc": "Access Token은 MaiBot WebUI에 액세스하는 유일한 자격 증명입니다. 다음 방법으로 얻으세요",
|
|
"method1Title": "방법 1: 시작 로그 확인",
|
|
"method1Desc": "MaiBot 시작 시 콘솔에 WebUI Access Token이 표시됩니다.",
|
|
"method1Example1": "🔑 WebUI Access Token: abc123...",
|
|
"method1Example2": "💡 이 Token으로 WebUI에 로그인하세요",
|
|
"method2Title": "방법 2: 설정 파일 확인",
|
|
"method2Desc": "Token은 프로젝트 루트의 설정 파일에 저장됩니다:",
|
|
"method2FileHint": "이 파일을 열고 access_token 필드의 값을 복사하세요",
|
|
"securityTipTitle": "보안 안내",
|
|
"securityTip1": "Token을 안전하게 유지하고 타인에게 노출하지 마세요",
|
|
"securityTip2": "Token을 재설정하려면 로그인 후 시스템 설정으로 이동하세요",
|
|
"slowLink": "인터페이스가 느립니다. 어떻게 하나요?",
|
|
"disableAnimTitle": "배경 애니메이션 비활성화",
|
|
"disableAnimDesc": "배경 애니메이션은 저사양 디바이스에서 느리게 동작할 수 있습니다. 비활성화하면 화면이 훨씬 부드러워집니다.",
|
|
"disableAnimDetail": "비활성화 후 배경은 단색으로 바뀐지지만 모든 기능은 정상 작동합니다. 시스템 설정에서 언제든지 다시 활성화할 수 있습니다.",
|
|
"disableAnimBtn": "애니메이션 비활성화",
|
|
"verifyFailed": "Token 확인에 실패했습니다. 확인 후 다시 시도해 주세요.",
|
|
"connFailed": "서버에 연결하지 못했습니다. 네트워크 연결을 확인해 주세요.",
|
|
"switchToLight": "라이트 모드로 전환",
|
|
"switchToDark": "다크 모드로 전환"
|
|
},
|
|
"setupPage": {
|
|
"steps": {
|
|
"botBasic": {
|
|
"title": "Bot 기본 설정",
|
|
"description": "봇의 기본 정보를 설정합니다"
|
|
},
|
|
"personality": {
|
|
"title": "성격 설정",
|
|
"description": "봇의 성격과 말투를 정의합니다"
|
|
},
|
|
"emoji": {
|
|
"title": "이모지 팩",
|
|
"description": "이모지 관련 설정을 구성합니다"
|
|
},
|
|
"other": {
|
|
"title": "기타 설정",
|
|
"description": "전역 슬랭 등 기본 옵션을 설정합니다"
|
|
},
|
|
"siliconFlow": {
|
|
"title": "API 설정",
|
|
"description": "SiliconFlow API 키를 설정합니다"
|
|
}
|
|
},
|
|
"loading": {
|
|
"title": "설정을 불러오는 중...",
|
|
"description": "기존 설정을 읽고 있습니다"
|
|
},
|
|
"header": {
|
|
"title": "초기 설정 마법사",
|
|
"description": "{{appName}}의 초기 설정을 함께 완료해 봅시다"
|
|
},
|
|
"progress": {
|
|
"stepCounter": "단계 {{current}} / {{total}}"
|
|
},
|
|
"validation": {
|
|
"selectPlatform": "플랫폼을 선택해 주세요",
|
|
"enterNickname": "닉네임을 입력해 주세요",
|
|
"enterQqAccount": "QQ 계정을 입력해 주세요",
|
|
"enterAccountId": "계정 ID를 입력해 주세요"
|
|
},
|
|
"toast": {
|
|
"loadFailedTitle": "설정 불러오기에 실패했습니다",
|
|
"loadFailedDescription": "기존 설정을 불러올 수 없어 기본값을 사용합니다",
|
|
"saveSuccessTitle": "저장되었습니다",
|
|
"saveSuccessDescription": "{{step}} 설정이 저장되었습니다",
|
|
"saveFailedTitle": "저장에 실패했습니다",
|
|
"validationFailedTitle": "입력값을 확인해 주세요",
|
|
"completeSuccessTitle": "설정이 완료되었습니다",
|
|
"completeSuccessDescription": "새 설정을 적용하기 위해 {{appName}}을(를) 재시작하는 중입니다...",
|
|
"completeFailedTitle": "설정 완료에 실패했습니다",
|
|
"skipFailedTitle": "설정 마법사 건너뛰기에 실패했습니다",
|
|
"unknownError": "알 수 없는 오류"
|
|
},
|
|
"actions": {
|
|
"previous": "이전",
|
|
"next": "다음",
|
|
"skip": "마법사 건너뛰기",
|
|
"complete": "설정 완료",
|
|
"saving": "저장 중...",
|
|
"completing": "완료 중..."
|
|
},
|
|
"skipDialog": {
|
|
"title": "설정 마법사를 건너뛸까요?",
|
|
"description": "시스템 설정에서 언제든지 다시 설정 마법사를 열 수 있습니다. 정말 건너뛰시겠습니까?",
|
|
"confirm": "건너뛰기"
|
|
},
|
|
"footer": "이 설정들은 언제든지 설정 화면에서 변경할 수 있습니다",
|
|
"defaults": {
|
|
"personality": {
|
|
"personality": "여자 대학생이며 현재 2학년이고, Tieba 같은 커뮤니티를 자주 봅니다.",
|
|
"replyStyle": "답변은 담백하고 짧게 하며 중국어로 말하세요. 자신의 학과 배경을 일부러 강조하지 마세요. Tieba, Zhihu, Weibo의 답변 스타일을 참고할 수 있습니다.",
|
|
"multipleReplyStyles": {
|
|
"plain": "말투는 담백하지만 약간 냉소적이고, 매우 짧고 구어체입니다. Tieba 와 Weibo 답변 스타일을 참고할 수 있습니다.",
|
|
"shortText": "1-2글자로 답장하기",
|
|
"shortSymbol": "1-2개의 기호로 답장하기",
|
|
"translation": "살짝 번역체로 말하되 길게 쓰지 않기"
|
|
}
|
|
},
|
|
"emoji": {
|
|
"filtrationPrompt": "공공질서와 미풍양속에 어긋나지 않음"
|
|
}
|
|
},
|
|
"forms": {
|
|
"botBasic": {
|
|
"platform": {
|
|
"label": "플랫폼 *",
|
|
"placeholder": "플랫폼 선택",
|
|
"description": "봇이 실행될 플랫폼을 선택합니다",
|
|
"options": {
|
|
"custom": "기타 플랫폼"
|
|
}
|
|
},
|
|
"customPlatform": {
|
|
"label": "플랫폼 이름 *",
|
|
"placeholder": "예: matrix 와 같은 플랫폼 이름 입력"
|
|
},
|
|
"qqAccount": {
|
|
"label": "QQ 계정 *",
|
|
"placeholder": "봇의 QQ 계정을 입력하세요",
|
|
"description": "봇 로그인에 사용하는 QQ 계정입니다"
|
|
},
|
|
"primaryAccount": {
|
|
"label": "계정 ID *",
|
|
"placeholder": "봇의 계정 ID를 입력하세요",
|
|
"description": "이 플랫폼에서 봇을 식별하는 계정 ID입니다"
|
|
},
|
|
"nickname": {
|
|
"label": "닉네임 *",
|
|
"placeholder": "봇의 닉네임을 입력하세요",
|
|
"description": "봇의 대표 호칭입니다"
|
|
},
|
|
"alias": {
|
|
"label": "별칭",
|
|
"placeholder": "별칭을 입력하고 Enter 로 추가",
|
|
"add": "추가",
|
|
"description": "봇의 다른 호칭을 여러 개 추가할 수 있습니다",
|
|
"remove": "별칭 {{alias}} 제거"
|
|
}
|
|
},
|
|
"personality": {
|
|
"personality": {
|
|
"label": "성격 특성 *",
|
|
"placeholder": "봇의 성격과 설정을 설명해 주세요 (권장 120자 이내)",
|
|
"description": "예: 대학 2학년 여자 대학생으로 Tieba 를 자주 본다"
|
|
},
|
|
"replyStyle": {
|
|
"label": "말투 *",
|
|
"placeholder": "봇이 말하는 방식과 표현 습관을 설명해 주세요",
|
|
"description": "예: 답변은 담백하고 짧게, 중국어로 말하며 Tieba, Zhihu, Weibo 스타일을 참고한다"
|
|
},
|
|
"multipleReplyStyle": {
|
|
"label": "대체 답변 스타일",
|
|
"placeholder": "한 줄에 하나씩 대체 답변 스타일을 입력하세요",
|
|
"description": "목록이 비어 있지 않으면 MaiBot 이 아래 확률에 따라 기본 답변 스타일을 무작위로 대체합니다"
|
|
},
|
|
"multipleProbability": {
|
|
"label": "대체 스타일 적용 확률",
|
|
"description": "답변을 만들 때마다 기본 답변 스타일을 대체 스타일로 무작위 교체할 확률입니다"
|
|
}
|
|
},
|
|
"emoji": {
|
|
"emojiSendNum": {
|
|
"label": "이모지 후보 수",
|
|
"description": "전송 전에 몇 개의 이모지 중에서 고를지 정합니다. 최대 64개입니다"
|
|
},
|
|
"maxRegNum": {
|
|
"label": "최대 이모지 수",
|
|
"description": "봇이 저장할 수 있는 이모지의 최대 개수입니다"
|
|
},
|
|
"doReplace": {
|
|
"label": "최대 수 도달 시 교체",
|
|
"description": "켜면 오래된 이모지를 삭제하고, 끄면 새 이모지를 더 이상 수집하지 않습니다"
|
|
},
|
|
"checkInterval": {
|
|
"label": "확인 간격 (분)",
|
|
"description": "이모지 등록, 손상, 삭제를 확인하는 간격입니다"
|
|
},
|
|
"stealEmoji": {
|
|
"label": "이모지 수집",
|
|
"description": "일부 이모지를 봇이 자신의 것으로 저장할 수 있게 합니다"
|
|
},
|
|
"contentFiltration": {
|
|
"label": "이모지 필터링 사용",
|
|
"description": "조건에 맞는 이모지만 저장합니다"
|
|
},
|
|
"filtrationPrompt": {
|
|
"label": "필터 조건",
|
|
"placeholder": "예: 공공질서와 미풍양속에 어긋나지 않음",
|
|
"description": "저장할 이모지가 충족해야 하는 조건을 설명해 주세요"
|
|
}
|
|
},
|
|
"other": {
|
|
"allGlobal": {
|
|
"label": "전역 슬랭 모드 사용",
|
|
"description": "봇이 그룹 슬랭을 학습하고 사용할 수 있게 합니다"
|
|
}
|
|
},
|
|
"siliconFlow": {
|
|
"about": {
|
|
"title": "SiliconFlow 소개",
|
|
"description": "SiliconFlow 는 DeepSeek V3, Qwen, 비전 모델, 음성 인식, 임베딩 모델 등 폭넓은 모델을 제공합니다. API Key 하나로 MaiBot 의 모든 기능을 사용할 수 있습니다.",
|
|
"link": "SiliconFlow 에서 API Key 받기"
|
|
},
|
|
"apiKey": {
|
|
"label": "SiliconFlow API Key *",
|
|
"description": "SiliconFlow API Key를 입력해 주세요. 입력하면 MaiBot 이 필요한 모델을 자동으로 구성합니다.",
|
|
"show": "API Key 표시",
|
|
"hide": "API Key 숨기기"
|
|
},
|
|
"autoConfig": {
|
|
"title": "다음 모델이 자동으로 구성됩니다:",
|
|
"items": {
|
|
"deepseek": "DeepSeek V3 - 주요 대화 및 도구 모델",
|
|
"qwen3": "Qwen3 30B - 잦은 소규모 작업과 도구 호출",
|
|
"qwen3Vl": "Qwen3 VL 30B - 이미지 인식",
|
|
"senseVoice": "SenseVoice - 음성 인식",
|
|
"bgeM3": "BGE-M3 - 텍스트 임베딩",
|
|
"lpmm": "지식 베이스 관련 모델 (LPMM)"
|
|
}
|
|
},
|
|
"hint": {
|
|
"title": "팁: ",
|
|
"description": "마법사를 마친 뒤에는 \"시스템 설정 -> 모델 설정\"에서 더 많은 API 제공자와 모델을 추가할 수 있습니다."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"common": {
|
|
"loading": "로딩 중...",
|
|
"error": "오류",
|
|
"retry": "재시도",
|
|
"save": "저장",
|
|
"cancel": "취소",
|
|
"confirm": "확인",
|
|
"delete": "삭제",
|
|
"edit": "편집",
|
|
"close": "닫기",
|
|
"search": "검색",
|
|
"noData": "데이터 없음",
|
|
"success": "성공",
|
|
"failed": "실패"
|
|
},
|
|
"restart": {
|
|
"preparing": "재시작 준비 중",
|
|
"preparingDesc": "재시작 요청 전송 중...",
|
|
"preparingTip": "🔄 MaiBot 재시작을 준비 중...",
|
|
"restarting": "MaiBot 재시작 중",
|
|
"restartingDesc": "잠시 기다려주세요, MaiBot이 재시작 중입니다...",
|
|
"restartingTip": "🔄 설정을 저장했습니다, 메인 프로세스를 재시작 중...",
|
|
"checking": "서비스 상태 확인 중",
|
|
"checkingDesc": "서비스 복구 대기 중... ({{current}}/{{max}})",
|
|
"checkingTip": "⏳ 서비스 복구를 기다리는 중, 페이지를 닫지 마세요...",
|
|
"success": "재시작 성공",
|
|
"successDesc": "로그인 페이지로 이동 중...",
|
|
"successTip": "✅ 설정이 적용되었습니다, 서비스가 정상적으로 실행 중입니다",
|
|
"failed": "재시작 시간 초과",
|
|
"failedDesc": "서비스가 예상 시간 내에 복구되지 않았습니다",
|
|
"failedTip": "⚠️ 장시간 응답이 없으면 수동으로 재시작해 보세요",
|
|
"refreshPage": "페이지 새로고침",
|
|
"retryCheck": "재시도",
|
|
"elapsed": "경과 시간:"
|
|
},
|
|
"errorBoundary": {
|
|
"title": "문제가 발생했습니다",
|
|
"description": "앱이 예기치 않은 오류를 만났습니다. 페이지를 새로고침하거나 홈으로 돌아갈 수 있습니다.",
|
|
"refreshPage": "페이지 새로고침",
|
|
"goHome": "홈으로 이동",
|
|
"footer": "문제가 계속되면 오류 정보를 복사하여 개발자에게 보고해 주세요",
|
|
"copiedToClipboard": "클립보드에 복사됨",
|
|
"copyError": "오류 정보 복사"
|
|
},
|
|
"search": {
|
|
"placeholder": "페이지 검색...",
|
|
"title": "검색",
|
|
"noResults": "일치하는 페이지를 찾을 수 없습니다",
|
|
"startSearch": "키워드를 입력하여 검색 시작",
|
|
"navigate": "탐색",
|
|
"select": "선택",
|
|
"close": "닫기",
|
|
"categories": {
|
|
"overview": "개요",
|
|
"config": "설정",
|
|
"resources": "리소스",
|
|
"monitor": "모니터",
|
|
"extensions": "확장 기능",
|
|
"system": "시스템"
|
|
},
|
|
"items": {
|
|
"home": "홈",
|
|
"homeDesc": "대시보드 개요 보기",
|
|
"botConfig": "속 메인 설정",
|
|
"botConfigDesc": "속 핵심 설정 구성",
|
|
"modelProvider": "모델 공급자 설정",
|
|
"modelProviderDesc": "모델 공급자 구성",
|
|
"model": "모델 설정",
|
|
"modelDesc": "모델 매개변수 구성",
|
|
"emoji": "이모티콘 관리",
|
|
"emojiDesc": "속 이모티콘 관리",
|
|
"expression": "표현 관리",
|
|
"expressionDesc": "속 표현 관리",
|
|
"person": "인물 정보",
|
|
"personDesc": "인물 정보 관리",
|
|
"jargon": "슬랭 관리",
|
|
"jargonDesc": "속이 학습한 슬랭 관리",
|
|
"statistics": "통계 정보",
|
|
"statisticsDesc": "사용 통계 보기",
|
|
"plugins": "플러그인 마켓",
|
|
"pluginsDesc": "플러그인 탐색 및 설치",
|
|
"logs": "로그 뷰어",
|
|
"logsDesc": "시스템 로그 보기",
|
|
"settings": "설정",
|
|
"settingsDesc": "시스템 설정 구성"
|
|
}
|
|
},
|
|
"a11y": {
|
|
"skipToContent": "메인 콘텐츠로 건너뀐기",
|
|
"sidebarNav": "메인 내비게이션",
|
|
"closeMenu": "메뉴 닫기",
|
|
"navigatedTo": "{{page}}으로 이동했습니다"
|
|
},
|
|
"home": {
|
|
"title": "실시간 모니터",
|
|
"subtitle": "MaiBot 실행 상태 및 통계 데이터 개요",
|
|
"loading": "통계 데이터 로딩 중...",
|
|
"loadingHint": "MaiBot 실행 데이터를 가져오는 중",
|
|
"timeRange": {
|
|
"24h": "24시간",
|
|
"7d": "7일",
|
|
"30d": "30일"
|
|
},
|
|
"autoRefresh": "자동 새로고침",
|
|
"botStatus": {
|
|
"title": "MaiBot 상태",
|
|
"running": "실행 중",
|
|
"stopped": "중지됨",
|
|
"uptime": "가동 {{time}}"
|
|
},
|
|
"quickActions": {
|
|
"title": "빠른 작업",
|
|
"restart": "MaiBot 재시작",
|
|
"restarting": "재시작 중...",
|
|
"expressionReview": "표현 검토",
|
|
"viewLogs": "로그 보기",
|
|
"pluginManage": "플러그인 관리",
|
|
"systemSettings": "시스템 설정"
|
|
},
|
|
"survey": {
|
|
"title": "피드백 설문",
|
|
"description": "제품 경험 개선에 도움을 주세요",
|
|
"webui": "WebUI 피드백",
|
|
"maibot": "MaiBot 피드백"
|
|
},
|
|
"stats": {
|
|
"totalRequests": "총 요청 수",
|
|
"totalCost": "총 비용",
|
|
"tokenUsage": "토큰 소비",
|
|
"avgResponse": "평균 응답",
|
|
"avgResponseDesc": "API 평균 지연",
|
|
"onlineTime": "온라인 시간",
|
|
"messageProcessing": "메시지 처리",
|
|
"costEfficiency": "비용 효율",
|
|
"recentPeriod": "최근 {{range}}",
|
|
"perHour": "{{value}}/시간",
|
|
"noData": "데이터 없음",
|
|
"replied": "답장 {{num}}건",
|
|
"per100Messages": "100건당",
|
|
"seconds": "초",
|
|
"hours": "시간",
|
|
"days": "일"
|
|
},
|
|
"charts": {
|
|
"tabs": {
|
|
"trends": "트렌드",
|
|
"models": "모델",
|
|
"activity": "활동",
|
|
"daily": "일간 통계"
|
|
},
|
|
"requestTrend": "요청 트렌드",
|
|
"requestTrendDesc": "최근 {{hours}}시간의 요청량 변화",
|
|
"costTrend": "비용 트렌드",
|
|
"costTrendDesc": "API 호출 비용 변화",
|
|
"tokenUsage": "토큰 소비",
|
|
"tokenUsageDesc": "토큰 사용량 변화",
|
|
"modelDistribution": "모델 요청 분포",
|
|
"modelDistributionDesc": "모델별 사용 비율 ({{count}}개 모델)",
|
|
"modelDetails": "모델 상세 통계",
|
|
"modelDetailsDesc": "요청 수, 비용 및 성능",
|
|
"recentActivity": "최근 활동",
|
|
"recentActivityDesc": "최신 API 호출 기록",
|
|
"dailyStats": "일간 통계",
|
|
"dailyStatsDesc": "최근 7일 데이터 요약",
|
|
"requests": "요청 수",
|
|
"cost": "비용(¥)",
|
|
"requestCount": "요청 수",
|
|
"costLabel": "비용",
|
|
"avgTime": "평균 소요",
|
|
"timeCost": "소요 시간",
|
|
"status": "상태"
|
|
},
|
|
"time": {
|
|
"hoursMinutes": "{{hours}}시간 {{minutes}}분"
|
|
},
|
|
"hitokotoFallback": "인생은 초콜릿 상자와 같아서, 다음에 무엇이 나올지 모릅니다.",
|
|
"hitokotoFallbackFrom": "포레스트 검프",
|
|
"unknownSource": "알 수 없음",
|
|
"ariaLabel": {
|
|
"requestTrend": "시간별 요청 트렌드 차트, 최근 시간대별 요청 수 변화 표시",
|
|
"costTrend": "API 비용 트렌드 차트, 최근 시간대별 API 호출 비용 변화 표시",
|
|
"tokenUsage": "토큰 소비 트렌드 차트, 최근 시간대별 토큰 사용량 변화 표시"
|
|
}
|
|
}
|
|
}
|