localization: Update Japanese and Korean translations; add missing Korean locale files
- Updated Japanese translations in config.json, core.json, prompts.json, and startup.json for improved clarity and accuracy. - Added new Korean locale files for config.json, core.json, prompts.json, and startup.json to support Korean language users. - Enhanced Chinese translations in core.json and startup.json to include missing resource not found messages and WebUI related texts.
This commit is contained in:
39
locales/ko/config.json
Normal file
39
locales/ko/config.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"config.added_count": "새로 추가된 설정 수: {count}",
|
||||
"config.added_item": "설정 파일에 새 항목 추가됨: {attribute}",
|
||||
"config.api_base_url_empty": "API 기본 URL은 비워둘 수 없습니다. 설정에서 유효한 기본 URL을 입력해 주세요.",
|
||||
"config.api_key_empty": "API 키는 비워둘 수 없습니다. 설정에서 유효한 API 키를 입력해 주세요.",
|
||||
"config.api_provider_name_duplicate": "API 제공자 이름이 중복되었습니다. 설정 파일을 확인해 주세요.",
|
||||
"config.api_provider_name_empty": "API 제공자 이름은 비워둘 수 없습니다. 설정에서 유효한 이름을 입력해 주세요.",
|
||||
"config.api_providers_empty": "API 제공자 목록은 비워둘 수 없습니다. 설정에서 유효한 API 제공자 목록을 입력해 주세요.",
|
||||
"config.change_summary_header": "-------- 설정 파일 변경 정보 --------",
|
||||
"config.current_version": "MaiCore 현재 버전: {version}",
|
||||
"config.file_change_detected": "설정 파일 변경이 감지되어 핫 리로드를 시작합니다",
|
||||
"config.file_updated": "{file_name} 설정 파일이 업데이트되었습니다. Old: {old_version} -> New: {new_version}. 중요한 정보가 누락되지 않도록 새 설정 파일의 내용을 확인하는 것을 권장합니다",
|
||||
"config.file_watcher_started": "설정 파일 감시자가 시작되었습니다",
|
||||
"config.file_watcher_stop_stats": "설정 파일 감시자 중지 통계: batches={batches}, changes={changes}, ok={ok}, failed={failed}, timeout={timeout}, cooldown_skip={cooldown_skip}, restart={restart}",
|
||||
"config.global_not_initialized": "global_config 가 초기화되지 않았습니다",
|
||||
"config.hot_reload_completed": "설정 핫 리로드가 완료되었습니다",
|
||||
"config.invalid_inner_version": "설정 파일의 inner.version 타입이 잘못되었습니다",
|
||||
"config.legacy_migrated": "구버전 설정 구조가 감지되어 자동 수정을 시도했습니다: {reason}. 나중에 생성된 새 설정 파일의 내용을 확인하고 저장하는 것을 권장합니다.",
|
||||
"config.loaded": "너무 신선하고, 너무 맛있어요!",
|
||||
"config.loading": "설정 파일을 음미하는 중...",
|
||||
"config.missing_inner_version": "설정 파일에 inner 버전 정보가 없습니다",
|
||||
"config.model_api_provider_empty": "API 제공자는 비워둘 수 없습니다. 설정에서 유효한 API 제공자를 입력해 주세요.",
|
||||
"config.model_api_provider_missing": "모델 '{model_name}' 의 api_provider '{api_provider}' 가 존재하지 않습니다",
|
||||
"config.model_identifier_empty": "모델 '{model_name}' 의 model_identifier는 비워둘 수 없습니다",
|
||||
"config.model_identifier_empty_generic": "모델 식별자는 비워둘 수 없습니다. 설정에서 유효한 모델 식별자를 입력해 주세요.",
|
||||
"config.model_name_duplicate": "모델 이름이 중복되었습니다. 설정 파일을 확인해 주세요.",
|
||||
"config.model_name_empty": "모델 이름은 비워둘 수 없습니다. 설정에서 유효한 모델 이름을 입력해 주세요.",
|
||||
"config.model_not_initialized": "model_config 가 초기화되지 않았습니다",
|
||||
"config.models_empty": "모델 목록은 비워둘 수 없습니다. 설정에서 유효한 모델 목록을 입력해 주세요.",
|
||||
"config.parse_failed": "설정 파일 {file_name} 파싱에 실패했습니다",
|
||||
"config.reload_callback_failed": "설정 리로드 콜백 실행 실패: {error}",
|
||||
"config.reload_failed": "설정 리로드 실패: {error}",
|
||||
"config.reload_skipped_too_frequent": "파일 변경이 너무 자주 발생하여 이번 리로드를 건너뜁니다",
|
||||
"config.reload_timeout": "설정 핫 리로드 시간 초과 (>{timeout_seconds}s)",
|
||||
"config.removed_count": "제거된 설정 수: {count}",
|
||||
"config.removed_item": "설정 항목 제거됨: {attribute}",
|
||||
"config.version_update_detected": "설정 버전 업데이트가 감지되었습니다. 핫 리로드는 메모리 데이터만 업데이트합니다",
|
||||
"config.write_unsupported_type": "설정 쓰기는 ConfigBase 의 하위 클래스만 지원합니다"
|
||||
}
|
||||
8
locales/ko/core.json
Normal file
8
locales/ko/core.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"core.not_found": "리소스를 찾을 수 없습니다",
|
||||
"core.operation_failed": "작업 실패: {error}",
|
||||
"core.tasks_cancelled": {
|
||||
"one": "{count}개의 작업이 취소되었습니다",
|
||||
"other": "{count}개의 작업이 취소되었습니다"
|
||||
}
|
||||
}
|
||||
8
locales/ko/prompts.json
Normal file
8
locales/ko/prompts.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"prompt.duplicate_template_name": "Prompt 템플릿 이름 '{name}' 이 중복되었습니다: {path_a} 와 {path_b}",
|
||||
"prompt.format_failed": "Prompt 템플릿 '{name}' 렌더링 실패: {error}",
|
||||
"prompt.invalid_category": "Prompt 카테고리 '{category}' 가 잘못되었습니다",
|
||||
"prompt.invalid_name": "Prompt 이름 '{name}' 이 잘못되었습니다",
|
||||
"prompt.missing_placeholder": "Prompt 템플릿 '{name}' 에 플레이스홀더 '{placeholder}' 가 없습니다",
|
||||
"prompt.template_not_found": "locale '{locale}' 에서 Prompt 템플릿 '{name}' 을 찾을 수 없습니다"
|
||||
}
|
||||
95
locales/ko/startup.json
Normal file
95
locales/ko/startup.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"startup.agreement_confirm_prompt": "\"동의\" 또는 \"confirmed\"를 입력하거나, 환경 변수 \"EULA_AGREE={eula_hash}\"와 \"PRIVACY_AGREE={privacy_hash}\"를 설정하여 계속 실행하세요",
|
||||
"startup.agreement_confirm_retry": "계속 실행하려면 \"동의\" 또는 \"confirmed\"를 입력하세요",
|
||||
"startup.agreement_reconfirm": "EULA 또는 개인정보 처리방침이 업데이트되었습니다. 내용을 확인한 후 재동의해 주세요. 계속 실행하면 업데이트된 두 약관에 동의한 것으로 간주됩니다",
|
||||
"startup.agreement_updated": "{agreement_name} 확인 파일 {file_hash} 업데이트됨",
|
||||
"startup.brain_external_world_failed": "브레인 및 외부 세계 시작 실패: {error}",
|
||||
"startup.chat_manager_initialized": "채팅 관리자 초기화 완료",
|
||||
"startup.child_process_force_kill": "자식 프로세스가 응답하지 않아 강제 종료 중...",
|
||||
"startup.compiling_shaders": "셰이더 컴파일 중: 1/114514",
|
||||
"startup.dev_branch_warning": "경고: Dev 브랜치가 불안정한 개발 상태입니다. 플러그인 및 WebUI가 정상적으로 작동하지 않을 수 있습니다!",
|
||||
"startup.easter_egg": "수년 후, AI 총살대 앞에 선 장삼은 2023년 회의에서 인공지능에 대해 논의하던 그 오후를 떠올리게 될 것이다",
|
||||
"startup.emoji_manager_initialized": "이모지 관리자 초기화 완료",
|
||||
"startup.env_auto_create_failed": ".env 자동 생성 실패: {error}",
|
||||
"startup.env_created": ".env 파일을 찾을 수 없어 template/template.env에서 자동으로 생성했습니다",
|
||||
"startup.env_file_missing": ".env 파일이 존재하지 않습니다. 파일을 생성하고 필요한 환경 변수를 설정해 주세요",
|
||||
"startup.env_template_missing": ".env 파일과 템플릿 template/template.env 모두 찾을 수 없습니다",
|
||||
"startup.eula_name": "EULA",
|
||||
"startup.eula_privacy_checked": "EULA 및 개인정보 처리방침 확인 완료",
|
||||
"startup.event_loop_closed": "[메인 프로세스] 이벤트 루프가 닫혔습니다",
|
||||
"startup.file_not_found": "{file_type} 파일이 존재하지 않습니다",
|
||||
"startup.graceful_shutdown_error": "정상 종료 중 오류 발생: {error}",
|
||||
"startup.initialization_completed_banner": "\n--------------------------------\n모든 시스템 초기화 완료, {nickname} 깨어났습니다\n--------------------------------\n{nickname}의 기능을 커스터마이즈하려면 참고하세요: https://docs.mai-mai.org/manual/usage/\n문제가 발생했다면 공식 문서를 방문하세요: https://docs.mai-mai.org/\n--------------------------------\n플러그인 개발 또는 관련 내용을 알고 싶다면 개발 문서를 방문하세요: https://docs.mai-mai.org/develop/\n--------------------------------\n모델 사용량 및 MaiBot 통계 데이터를 확인하려면 루트 디렉터리의 maibot_statistics.html 파일을 열어보세요\n",
|
||||
"startup.initialization_completed_cycles": "초기화 완료, 뉴런 발화 {init_time}회",
|
||||
"startup.interrupt_received": "인터럽트 신호를 받았습니다. 정상 종료 중...",
|
||||
"startup.launching_script": "{script_file} 시작 중...",
|
||||
"startup.logging_shutdown_error": "로깅 시스템 종료 중 오류 발생: {error}",
|
||||
"startup.main_error": "메인 프로세스에서 예외 발생: {error}",
|
||||
"startup.opensource_free_notice": " 본 프로젝트는 완전 무료 오픈소스 소프트웨어이며, GPL-3.0 라이선스로 배포됩니다",
|
||||
"startup.opensource_group": " 공식 그룹: ",
|
||||
"startup.opensource_group_value": "1006149251",
|
||||
"startup.opensource_repo": " 공식 저장소: ",
|
||||
"startup.opensource_repo_value": "https://github.com/MaiM-with-u/MaiBot",
|
||||
"startup.opensource_resale_warning": " 본 소프트웨어를 '상품'으로 재판매하거나 오픈소스임을 숨기는 행위는 라이선스 위반입니다!",
|
||||
"startup.opensource_scamming_notice": " 누군가 이 소프트웨어를 '판매'하겠다고 했다면, 당신은 사기를 당한 겁니다!",
|
||||
"startup.opensource_title": " ★ MaiBot - 오픈소스 AI 챗봇 ★",
|
||||
"startup.opensource_docs": " 공식 문서: ",
|
||||
"startup.opensource_docs_value": "https://docs.mai-mai.org",
|
||||
"startup.prepare_exit": "[메인 프로세스] 종료 준비 중...",
|
||||
"startup.privacy_name": "개인정보 처리방침",
|
||||
"startup.program_exited": "프로그램이 종료되었습니다 (종료 코드 {return_code})",
|
||||
"startup.remaining_tasks_cancelling": {
|
||||
"one": "{count}개의 남은 작업을 취소 중...",
|
||||
"other": "{count}개의 남은 작업을 취소 중..."
|
||||
},
|
||||
"startup.remaining_tasks_cancelled": "모든 남은 작업이 성공적으로 취소되었습니다",
|
||||
"startup.remaining_tasks_cancel_error": "작업 취소 대기 중 예외 발생: {error}",
|
||||
"startup.remaining_tasks_cancel_timeout": "작업 취소 대기 시간 초과, 강제로 종료를 계속합니다",
|
||||
"startup.restart_requested": "재시작 요청 감지됨 (종료 코드 {exit_code}), 재시작 중...",
|
||||
"startup.restart_signal_received": "재시작 신호를 받았습니다. 종료 후 재시작 요청 준비 중...",
|
||||
"startup.schedule_cancelled": "스케줄 작업이 취소되었습니다",
|
||||
"startup.shutdown_completed": "MaiBot 정상 종료 완료",
|
||||
"startup.shutdown_failed": "MaiBot 종료 실패: {error}",
|
||||
"startup.shutdown_started": "MaiBot 정상 종료 중...",
|
||||
"startup.waking_up": "{nickname} 깨우는 중......",
|
||||
"startup.webui_access_token": "🔑 WebUI Access Token: {token}",
|
||||
"startup.webui_access_token_failed": "❌ Access Token 가져오기 실패: {error}",
|
||||
"startup.webui_access_token_login_hint": "💡 이 토큰으로 WebUI에 로그인하세요",
|
||||
"startup.webui_anti_crawler_config_failed": "❌ 크롤러 방지 미들웨어 설정 실패: {error}",
|
||||
"startup.webui_anti_crawler_configured": "🛡️ 크롤러 방지 미들웨어 설정됨: {mode_desc}",
|
||||
"startup.webui_anti_crawler_mode_basic": "기본 모드",
|
||||
"startup.webui_anti_crawler_mode_disabled": "비활성화됨",
|
||||
"startup.webui_anti_crawler_mode_loose": "느슨한 모드",
|
||||
"startup.webui_anti_crawler_mode_strict": "엄격한 모드",
|
||||
"startup.webui_api_routes_register_failed": "❌ WebUI API 라우트 등록 실패: {error}",
|
||||
"startup.webui_api_routes_registered": "✅ WebUI API 라우트 등록 완료",
|
||||
"startup.webui_auto_install_exec_failed": "❌ WebUI 프론트엔드 의존성 자동 설치 실행 실패: {error}",
|
||||
"startup.webui_auto_install_failed": "❌ WebUI 프론트엔드 의존성 자동 설치 실패 (종료 코드 {return_code})",
|
||||
"startup.webui_auto_install_failed_output": "📄 WebUI 프론트엔드 의존성 설치 출력:\n{output}",
|
||||
"startup.webui_auto_install_started": "🔧 WebUI 프론트엔드 의존성 누락 감지, 자동 설치 중: {command}",
|
||||
"startup.webui_auto_install_succeeded": "✅ WebUI 프론트엔드 의존성 자동 설치 완료",
|
||||
"startup.webui_auto_install_timeout": "❌ WebUI 프론트엔드 의존성 자동 설치 시간 초과 ({timeout_seconds}초 초과)",
|
||||
"startup.webui_auto_recovery_failed": "❌ WebUI 프론트엔드 자동 복구 실패, 정적 리소스를 여전히 사용할 수 없습니다",
|
||||
"startup.webui_auto_build_artifacts_invalid": "⚠️ WebUI 프론트엔드 자동 빌드가 완료되었지만 정적 산출물을 여전히 사용할 수 없습니다",
|
||||
"startup.webui_auto_build_exec_failed": "❌ WebUI 프론트엔드 자동 빌드 실행 실패: {error}",
|
||||
"startup.webui_auto_build_failed": "❌ WebUI 프론트엔드 자동 빌드 실패 (종료 코드 {return_code})",
|
||||
"startup.webui_auto_build_failed_output": "📄 WebUI 프론트엔드 빌드 출력:\n{output}",
|
||||
"startup.webui_auto_build_started": "🔧 WebUI 프론트엔드 자동 빌드 시도 중: {command}",
|
||||
"startup.webui_auto_build_succeeded": "✅ WebUI 프론트엔드 자동 빌드 완료",
|
||||
"startup.webui_auto_build_timeout": "❌ WebUI 프론트엔드 자동 빌드 시간 초과 ({timeout_seconds}초 초과)",
|
||||
"startup.webui_auto_build_tool_missing": "❌ 사용 가능한 프론트엔드 빌드 도구를 찾을 수 없어 WebUI를 자동으로 빌드할 수 없습니다",
|
||||
"startup.webui_cors_configured": "✅ CORS 미들웨어 설정 완료",
|
||||
"startup.webui_dashboard_source_missing": "❌ WebUI 프론트엔드 소스 디렉터리를 찾을 수 없습니다: {dashboard_root}",
|
||||
"startup.webui_disabled": "WebUI가 비활성화되었습니다",
|
||||
"startup.webui_index_missing": "❌ index.html을 찾을 수 없습니다: {index_path}",
|
||||
"startup.webui_manual_build_hint": "💡 자동 복구로 프론트엔드 리소스를 수정하지 못했습니다. dashboard 디렉터리에서 의존성을 설치하고 수동으로 빌드하세요: {command}",
|
||||
"startup.webui_path_traversal_detected": "🚫 경로 탐색 공격이 의심되는 요청 감지됨: {full_path}",
|
||||
"startup.webui_robots_route_register_failed": "❌ robots.txt 라우트 등록 실패: {error}",
|
||||
"startup.webui_robots_route_registered": "✅ robots.txt 라우트 등록 완료",
|
||||
"startup.webui_server_init_failed": "WebUI 서버 초기화 실패: {error}",
|
||||
"startup.webui_static_assets_try_auto_build": "⚠️ WebUI 정적 리소스를 사용할 수 없어 프론트엔드 자동 빌드를 시도합니다...",
|
||||
"startup.webui_static_dir_missing": "❌ WebUI 정적 파일 디렉터리가 존재하지 않습니다",
|
||||
"startup.webui_static_dir_missing_with_path": "❌ WebUI 정적 파일 디렉터리가 존재하지 않습니다: {static_path}",
|
||||
"startup.webui_static_files_configured": "✅ WebUI 정적 파일 서비스 설정 완료: {static_path}",
|
||||
"startup.worker_dir_set": "작업 디렉터리를 설정했습니다: {script_dir}"
|
||||
}
|
||||
Reference in New Issue
Block a user