/*
  Localizable.strings
  ServBay

  Created by Sam Wu on 2023/7/12.

*/
"servbay_name" = "ServBay";
"servbay_copyright" = "CopyRight © 2024 ServBay, LLC.\nAll Rights Reserved.";
"servbay_slogan" = "모든 기능이 통합된 현지화된 웹 개발 환경입니다.";

// 통용 버튼
"button_ok" = "확인";
"button_cancel" = "취소";
"button_stop_request" = "신청 중지";
"button_save" = "저장";
"button_edit" = "편집";
"button_apply" = "적용";
"button_reset" = "초기화";
"button_clear" = "지우기";
"button_delete" = "삭제";
"button_close" = "닫기";

// AI Gateway 请求诊断（33-SPEC）
"aigateway.nav.requests" = "최근 요청";
"aigateway.requests.title" = "최근 요청";
"aigateway.requests.subtitle" = "요청 결과, Fallback 과정 및 각 업스트림 시도를 확인합니다. 요청 또는 응답 본문은 저장하지 않습니다.";
"aigateway.requests.empty" = "조건에 맞는 요청이 없습니다";
"aigateway.requests.load_failed" = "요청한 진단 정보를 일시적으로 읽을 수 없습니다. AI Gateway가 실행 중인지 확인해 주세요.";
"aigateway.requests.load_more" = "더 보기 로드";
"aigateway.requests.loading_more" = "로딩 중…";
"aigateway.requests.view_detail" = "요청 상세 보기";
"aigateway.requests.column.time" = "시간";
"aigateway.requests.column.client" = "클라이언트 / 키";
"aigateway.requests.column.model" = "모델";
"aigateway.requests.column.route" = "최종 채널";
"aigateway.requests.column.result" = "결과";
"aigateway.requests.column.metrics" = "소요 시간 / 시도";
"aigateway.requests.column.action" = "작업";
"aigateway.requests.stats.total" = "요청 총수";
"aigateway.requests.stats.succeeded" = "성공";
"aigateway.requests.stats.failed" = "실패";
"aigateway.requests.stats.rescued" = "Fallback 복구";
"aigateway.requests.filter.all" = "전체";
"aigateway.requests.filter.status" = "상태";
"aigateway.requests.filter.error" = "오류 유형";
"aigateway.requests.filter.fallback" = "대체";
"aigateway.requests.filter.fallback_only" = "Fallback만";
"aigateway.requests.filter.no_fallback" = "Fallback 미사용";
"aigateway.requests.filter.model" = "모델";
"aigateway.requests.filter.apply" = "앱";
"aigateway.requests.filter.reset" = "재설정";
"aigateway.requests.filter.advanced" = "더 많은 필터";
"aigateway.requests.filter.client" = "클라이언트 유형";
"aigateway.requests.filter.key" = "키 ID";
"aigateway.requests.filter.channel" = "채널 ID";
"aigateway.requests.filter.type" = "요청 유형";
"aigateway.requests.time.all" = "전체 시간";
"aigateway.requests.time.1h" = "최근 1시간";
"aigateway.requests.time.24h" = "최근 24시간";
"aigateway.requests.time.7d" = "최근 7일";
"aigateway.requests.time.custom" = "지정 시간";
"aigateway.requests.status.in_progress" = "진행 중";
"aigateway.requests.status.succeeded" = "성공";
"aigateway.requests.status.failed" = "실패";
"aigateway.requests.status.cancelled" = "취소됨";
"aigateway.requests.status.stale" = "비정상 중단";
"aigateway.requests.status.unknown" = "알 수 없음";
"aigateway.requests.error.auth" = "인증 실패";
"aigateway.requests.error.permission" = "권한이 부족합니다";
"aigateway.requests.error.not_found" = "리소스가 존재하지 않습니다";
"aigateway.requests.error.rate_limited" = "요청이 너무 빈번합니다";
"aigateway.requests.error.connection" = "연결 실패";
"aigateway.requests.error.timeout" = "요청 시간이 초과되었습니다";
"aigateway.requests.error.protocol" = "프로토콜이 호환되지 않습니다";
"aigateway.requests.error.upstream" = "업스트림 서비스 오류";
"aigateway.requests.error.quota" = "한도가 부족합니다";
"aigateway.requests.error.budget" = "예산 한도에 도달했습니다";
"aigateway.requests.error.no_channel" = "사용 가능한 채널이 없습니다";
"aigateway.requests.error.client" = "클라이언트 구성 오류";
"aigateway.requests.error.cancelled" = "요청이 취소되었습니다";
"aigateway.requests.error.unknown" = "알 수 없는 오류";
"aigateway.requests.fallback.rescued" = "백업이 복구되었습니다";
"aigateway.requests.fallback.used" = "Fallback을 시도함";
"aigateway.requests.attempts.format" = "%d번 시도";
"aigateway.requests.detail.title" = "요청 상세 정보";
"aigateway.requests.detail.load_failed" = "현재 해당 요청의 세부 정보를 읽을 수 없습니다.";
"aigateway.requests.detail.summary" = "요청 개요";
"aigateway.requests.detail.request_id" = "요청 ID";
"aigateway.requests.detail.time" = "시작 시간";
"aigateway.requests.detail.client" = "클라이언트 / 키";
"aigateway.requests.detail.protocol" = "입구 프로토콜 / 유형";
"aigateway.requests.detail.model" = "모델 요청 → 모델 분석";
"aigateway.requests.detail.channel" = "최종 채널";
"aigateway.requests.detail.status" = "최종 상태";
"aigateway.requests.detail.error" = "오류 유형";
"aigateway.requests.detail.upstream_status" = "업스트림 상태 코드";
"aigateway.requests.detail.latency" = "총 소요 시간";
"aigateway.requests.detail.ttft" = "첫 바이트 시간";
"aigateway.requests.detail.tokens" = "토큰 총수";
"aigateway.requests.detail.cost" = "비용";
"aigateway.requests.detail.attempts" = "업스트림 시도";
"aigateway.requests.detail.no_attempts" = "이 요청에는 업스트림 시도 기록이 없습니다.";
"aigateway.requests.detail.no_channel" = "채널이 선택되지 않았습니다";
"aigateway.requests.detail.latency_format" = "소요 시간: %@";
"aigateway.requests.detail.ttft_format" = "첫 번째 바이트: %@";
"aigateway.requests.detail.account_format" = "계정: %@";
"aigateway.requests.detail.reached_upstream.yes" = "상류에 도착했습니다";
"aigateway.requests.detail.reached_upstream.no" = "상류에 도착하지 않았습니다";
"aigateway.requests.detail.retryable.yes" = "다시 시도 가능";
"aigateway.requests.detail.retryable.no" = "다시 시도 불가";
"aigateway.requests.action.open" = "처리하러 이동";
"aigateway.requests.action.open_key" = "가상 키 설정 확인";
"aigateway.requests.action.open_client" = "클라이언트 접속 설정 확인";
"aigateway.requests.action.open_channel" = "채널 설정 확인";
"aigateway.requests.action.test_channel" = "채널 연결 다시 테스트";
"aigateway.requests.action.select_model" = "채널에 사용할 수 있는 모델 선택";
"aigateway.requests.action.reauthorize" = "구독 계정 재인증";
"aigateway.requests.action.wait_cooldown" = "채널이 냉각 중입니다. 잠시 후 다시 시도해 주세요.";
"aigateway.requests.action.test_succeeded" = "채널 테스트가 성공했습니다.";
"aigateway.requests.action.test_failed" = "채널 테스트에 실패했습니다. 채널 페이지에서 설정을 확인해 주세요.";
"aigateway.requests.drilldown.client" = "이 클라이언트의 최근 요청 보기";
"aigateway.requests.drilldown.channel" = "이 채널의 최근 요청 보기";
"aigateway.requests.drilldown.statistics" = "관련 요청 보기";
"aigateway.requests.retention.title" = "진단 보존 설정 요청";
"aigateway.requests.retention.description" = "요청 및 시도에 대한 진단 메타데이터만 보존됩니다. 정리를 해도 사용량 집계 통계는 삭제되지 않습니다.";
"aigateway.requests.retention.days_format" = "%d일 동안 보관";
"aigateway.requests.retention.cleanup" = "즉시 정리";
"aigateway.requests.retention.cleanup_confirm_title" = "만료된 진단 기록을 정리하시겠습니까?";
"aigateway.requests.retention.cleanup_confirm_message" = "현재 저장된 보존 기간에 따라 만료된 요청 및 시도 내역이 삭제됩니다. 사용량 집계에는 영향을 주지 않습니다.";
"aigateway.requests.retention.load_failed" = "일시적으로 보존 설정을 읽을 수 없습니다.";
"aigateway.requests.retention.saved" = "설정 저장이 완료되었습니다.";
"aigateway.requests.retention.save_failed" = "설정 저장에 실패했습니다.";
"aigateway.requests.retention.cleanup_failed" = "정리 실패입니다. 잠시 후 다시 시도해 주세요.";
"aigateway.requests.retention.cleanup_result" = "%d개의 요청과 %d개의 시도 기록이 삭제되었습니다.";
"button_restore" = "복원";
"button_pause" = "일시 정지";
"button_download" = "다운로드";
"button_continue" = "계속";
"button_add" = "추가";
"button_init" = "설치 시작";
"button_initing" = "초기화 중";
"button_inited" = "ServBay 열기";
"button_check_internet" = "네트워크 확인";
"button_next" = "다음";
"button_prev" = "이전";
"button_logout" = "로그아웃";
"button_login" = "로그인";
"button_upgrade" = "지금 업그레이드";
"button_search" = "검색";
"button_yes" = "예";
"button_no" = "아니오";
"button_configure" = "설정";
"button_refresh" = "새로고침";
"button_request" = "요청";
"button_diagnostics_start_check" = "검사 시작";
"button_diagnostics_cancel_check" = "검사 취소";
"button_diagnostics_save_log" = "로그 저장";
"button_force_uninstall" = "강제 제거";
"button_retry" = "다시 시도";

// 서비스 상태
"service_status_running" = "실행 중";
"service_status_stopped" = "중지됨";
"service_status_na" = "알 수 없음";
"service_status_enabled" = "사용";
"service_status_disabled" = "비활성화";
"service_status_installed" = "설치됨";
"service_status_not_installed" = "미설치";
"service_status_unknown" = "알 수 없음";
"starting_refresh_init" = "서비스 상태 새로고침 중";
"starting_refresh_completed" = "서비스 상태가 새로고침 되었습니다";
"starting_init_letsstart" = "ServBay 설치를 시작합시다";
"starting_init_letsstart_nointernet" = "네트워크 연결 없음";
"starting_init_letsstart_hint" = "버튼을 클릭하여 ServBay를 초기화하세요.\n주의: 서비스 관리를 위한 ServBay Helper 설치 시 시스템 비밀번호 입력이 필요합니다.";
"starting_init_letsstart_hint_nointernet" = "현재 네트워크가 없거나 연결이 불안정하여 사용 가능한 패키지 정보를 받을 수 없습니다. 네트워크가 안정적일 때 다시 앱을 열어 설치를 시도해 주세요.";
"starting_init_noneed" = "ServBay가 이미 초기화되어 추가 초기화가 필요하지 않습니다.";
"starting_init_working" = "%@ 초기화 중 ...";
"starting_init_installing" = "%@ 설치 중 ...";
"starting_init_all_done" = "ServBay 초기화 완료, 다음 단계로 진행하세요.";
"starting_init_step_done" = "완료";
"starting_init_step_failed" = "실패";

/* Welcome 安装失败诊断弹窗 */
"alert_install_error_title" = "%@ 설치 실패";
"install_error_label_step" = "실패 단계";
"install_error_label_package" = "소프트웨어 패키지";
"install_error_label_file" = "파일";
"install_error_label_error" = "오류";
"install_error_label_expected_hash" = "예상 SHA-256";
"install_error_label_actual_hash" = "실제 SHA-256";
"install_error_label_log_hint" = "자세한 로그는 /tmp/servbay-install";
"install_error_step_metadata" = "패키지 정보 찾기";
"install_error_step_download" = "다운로드";
"install_error_step_verify" = "검증";
"install_error_step_unpack" = "압축 해제";
"install_error_reason_metadata_missing" = "온라인 버전 목록에서 해당 소프트웨어 패키지를 찾을 수 없습니다. 네트워크 문제로 인해 버전 목록이 완전히 불러오지 않았을 수 있으니, 네트워크를 확인한 후 다시 시도해 주세요.";
"install_error_reason_hash_mismatch" = "SHA-256 검증에 실패했습니다. 다운로드된 파일이 손상되었거나 변조되었을 수 있습니다.";
"install_error_reason_tmp_missing" = "다운로드된 임시 파일을 찾을 수 없습니다. 다운로드가 완료되지 않았거나 임시 디렉터리가 정리되었을 수 있습니다.";
"install_error_reason_validator_missing" = "압축을 해제한 후 핵심 파일을 찾을 수 없습니다. 소프트웨어 패키지가 손상되었을 수 있습니다.";
"install_error_reason_unknown" = "알 수 없는 오류입니다.";
"starting_init_setting" = "설정";
"starting_init_helper" = "ServBay Helper";
"starting_init_servbay_root_ca" = "ServBay Root CA";
"starting_init_demo_website_ssl" = "데모 웹사이트 SSL";
"starting_init_mariadb" = "MariaDB";
"starting_init_mysql" = "MySQL";
"starting_init_postgresql" = "PostgreSQL";
"starting_init_mongodb" = "MongoDB";
"starting_init_mailpit" = "Mailpit";
"starting_init_ollama" = "Ollama";
"starting_init_service" = "서비스";
"starting_init_template" = "템플릿";
"starting_init_ollama_models" = "Ollama 모델";
"starting_init_demohost" = "데모 웹사이트";
"starting_init_nginxfile" = "nginx.conf & /etc/hosts";
"starting_init_caddyfile" = "Caddyfile & /etc/hosts";
"starting_init_apachefile" = "httpd.conf & /etc/hosts";
"starting_init_package_selection_title" = "설치할 패키지를 선택하세요";
"starting_init_package_selection_version" = "버전";
"starting_init_package_selection_php_alert_title" = "안내";
"starting_init_package_selection_php_alert" = "기본 웹사이트 및 데이터베이스 관리 도구를 실행하려면 반드시 PHP가 필요합니다.";

// 메뉴 바 & 메뉴바
"menu_application" = "Application";
"menu_about" = "정보";
"menu_quit" = "종료";
"menu_support" = "도움말 센터";
"menu_service" = "서비스";
"menu_start" = "시작";
"menu_stop" = "중지";
"menu_restart" = "재시작";
"menu_window" = "윈도우";
"menu_window_close" = "윈도우 닫기";
"menu_help" = "도움말";
"menu_open" = "열기";
"menu_current_status" = "현재 상태";
"menu_check_update" = "업데이트 확인";
"menu_edit" = "편집";
"menu_undo" = "실행 취소";
"menu_redo" = "다시 실행";
"menu_cut" = "잘라내기";
"menu_copy" = "복사";
"menu_paste" = "붙여넣기";
"menu_select_all" = "전체 선택";
"menu_blog" = "블로그";
"menu_community" = "커뮤니티";
"menu_x" = "X (트위터)";
"menu_facebook" = "페이스북";
"menu_youtube" = "유튜브";
"menu_website" = "웹사이트";
"menu_database_tools" = "데이터베이스 도구";
"menu_starred" = "즐겨찾기 호스트";
"menu_starred_more" = "더 많은 즐겨찾기 호스트";

// start/stop/restart services
"menu_start_services" = "서비스 시작";
"menu_start_all_services" = "모든 서비스 시작";
"menu_start_x_service" = "%@ 서비스 시작";
"menu_stop_services" = "서비스 중지";
"menu_stop_all_services" = "모든 서비스 중지";
"menu_stop_x_service" = "%@ 서비스 중지";
"menu_restart_services" = "서비스 재시작";
"menu_restart_all_services" = "모든 서비스 재시작";
"menu_restart_x_service" = "%@ 서비스 재시작";
"menu_web" = "웹";
"menu_php" = "PHP";
"menu_mysql_mariadb" = "MySQL/MariaDB";
"menu_mail" = "메일";
"menu_dns" = "DNS";
"menu_clear_redis_data" = "Redis 데이터 지우기";
"menu_stop_and_quit" = "모든 서비스 중지 및 종료";

// 팁
"tips_host_save_successful" = "저장 성공";
"tips_service_all_start_start" = "모든 서비스 시작 중 ...";
"tips_service_all_start_completed" = "모든 서비스가 성공적으로 시작됨";
"tips_service_all_stop_start" = "모든 서비스 중지 중 ...";
"tips_service_all_stop_completed" = "모든 서비스가 성공적으로 중지됨";
"tips_service_all_restart_start" = "모든 서비스 재시작 중 ...";
"tips_service_all_restart_completed" = "모든 서비스가 성공적으로 재시작됨";
"tips_service_init_start" = "%@ v%@ 초기화 중 ...";
"tips_service_init_completed" = "%@ v%@ 초기화 완료";
"tips_service_enable_start" = "%@ 서비스 사용 중 ...";
"tips_service_enable_completed" = "%@ 서비스 사용함";
"tips_service_disable_start" = "%@ 서비스 비활성화 중 ...";
"tips_service_disable_completed" = "%@ 서비스 비활성화됨";
"tips_service_start_start" = "%@ 시작 중 ...";
"tips_service_start_completed" = "%@ 서비스가 성공적으로 시작됨";
"tips_service_stop_start" = "%@ 중지 중 ...";
"tips_service_stop_completed" = "%@ 서비스가 성공적으로 중지됨";
"tips_service_restart_start" = "%@ 재시작 중 ...";
"tips_service_restart_completed" = "%@ 서비스가 성공적으로 재시작됨";
"tips_service_file_download_start" = "패키지 %@ 다운로드 시작 ...";
"tips_service_file_download_successful" = "패키지 %@ 다운로드 완료. 이제 설치를 시작합니다.";
"tips_service_file_download_failed" = "패키지 다운로드 실패: %@";
"tips_service_file_download_file_notfound" = "원격 파일이 존재하지 않습니다.";
"tips_service_file_download_file_corrupted" = "파일 손상됨";
"tips_service_file_install_successful" = "패키지 %@가 성공적으로 설치되었습니다.";
"tips_service_file_install_failed" = "패키지 %@ 설치 실패.";
"tips_service_file_uninstall_successful" = "패키지 %@가 성공적으로 제거되었습니다.";
"tips_service_file_uninstall_failed" = "패키지 %@ 제거 실패.";
"tips_copied" = "%@ %@ 복사됨";
"tips_service_not_install" = "%@ 서비스가 설치되지 않음";
"tips_service_not_install_simple" = "설치되지 않음";
"tips_service_not_enabled" = "%@ 서비스가 활성화되지 않음";
"tips_service_start_failed" = "%@ 서비스 시작 실패";
"tips_service_stop_failed" = "%@ 서비스 중지 실패";
"tips_service_restart_failed" = "%@ 서비스 재시작 실패";
"tips_service_unknown_error" = "오류 정보를 확인할 수 없습니다. 직접 서비스의 log 파일을 확인해 주세요.";
"tips_some_service_failed" = "하나 이상의 %@ 서비스가 실패했습니다. 서비스 상태나 log를 확인하세요.";
"tips_green_install" = "모든 패키지는 독립 디렉터리에 설치되어, 기존 시스템 소프트웨어에 영향을 주지 않습니다. 안심하고 설치하세요.";
"tips_service_enabled_title" = "서비스가 활성화되었습니다";
"tips_service_enabled_minio_desc" = "사용자 이름: %1$@\n비밀번호: %2$@\n접속 URL: %3$@";
"tips_service_enabled_meilisearch_desc" = "Meilisearch 마스터 키: %1$@\n접속 URL: %2$@";
"tips_service_enabled_typesense_desc" = "Typesense API 키: %1$@\n접속 URL: %2$@";
"tips_service_enabled_mailpit_desc" = "백엔드 관리 사이트 접속 URL: %1$@";
"tips_service_enabled_ollama_desc" = "Ollama API URL: %1$@";

// 좌측 네비게이션 바
"navmenu_dashboard" = "대시보드";
"navmenu_website" = "웹사이트";
"navmenu_dns" = "DNS";
"navmenu_ssl" = "SSL 인증서";
"navmenu_database" = "데이터베이스";
"navmenu_ai" = "AI";
"navmenu_language" = "개발 언어";
"navmenu_mail" = "메일";
"navmenu_webserver" = "Web서버";
"navmenu_rproxy" = "내부망 터널링";
"navmenu_log" = "로그";
"navmenu_package" = "패키지";
"navmenu_backup" = "백업";
"navmenu_category" = "프로젝트";
"navmenu_setting" = "설정";
"navmenu_troubleshoot" = "문제 해결";
"navmenu_store" = "상점";
"navmenu_about_about" = "ServBay 정보";
"navmenu_about_website" = "ServBay 웹사이트 열기";
"navmenu_about_help" = "도움말 센터";
"navmenu_about_talk" = "ServBay Discord 커뮤니티";
"navmenu_about_blog" = "ServBay 블로그";
"navmenu_about_facebook" = "페이스북에서 ServBay 팔로우";
"navmenu_about_twitter" = "X에서 ServBay 팔로우";
"navmenu_about_youtube" = "유튜브에서 ServBay 팔로우";
"navmenu_database_mariadb" = "MariaDB";
"navmenu_database_pgsql" = "PostgreSQL";
"navmenu_database_mysql" = "MySQL";
"navmenu_database_mongodb" = "MongoDB";
"navmenu_nosql_redis" = "Redis";
"navmenu_nosql_memcached" = "Memcached";
"navmenu_php" = "PHP";
"navmenu_php_56" = "PHP 5.6";
"navmenu_php_71" = "PHP 7.1";
"navmenu_php_72" = "PHP 7.2";
"navmenu_php_73" = "PHP 7.3";
"navmenu_php_74" = "PHP 7.4";
"navmenu_php_80" = "PHP 8.0";
"navmenu_php_81" = "PHP 8.1";
"navmenu_php_82" = "PHP 8.2";
"navmenu_php_83" = "PHP 8.3";
"navmenu_php_84" = "PHP 8.4";
"navmenu_python" = "Python";
"navmenu_go" = "Go";
"navmenu_nodejs" = "Node.js";
"navmenu_nosql" = "NoSQL";
"navmenu_ollama" = "Ollama";
"navmenu_tools" = "도구";
"navmenu_java" = "Java";
"navmenu_rust" = "Rust";
"navmenu_ruby" = "Ruby";
"navmenu_dotnet" = ".NET";
"navmenu_tunnel" = "내부망 터널링";
"navmenu_storage" = "오브젝트 스토리지";
"navmenu_search" = "검색";
"navmenu_minio" = "MinIO";
"navmenu_typesense" = "Typesense";
"navmenu_meilisearch" = "Meilisearch";
"navmenu_bun" = "번";
"navmenu_deno" = "Deno";
"navmenu_dnsmasq" = "dnsmasq";

// Dashboard
"dashboard_common_service" = "기초 서비스";

// 호스트
"host_no_hosts" = "웹사이트 없음\n\n버튼을 클릭해 추가하세요";
"host_add_text" = "웹사이트 추가";
"host_name_text" = "이름";
"host_name_tips" = "데모 웹사이트";
"host_domain_text" = "도메인";
"host_domain_tips" = "여러 도메인은 공백으로 구분하세요. 예: demo.com www.demo.com";
"host_webhost_protocal_text" = "Web 프로토콜";
"host_webhost_type_text" = "웹사이트 유형";
"host_webhost_type_php" = "PHP";
"host_webhost_type_static" = "정적 사이트";
"host_webhost_type_rproxy" = "리버스 프록시";
"host_webhost_type_redirect" = "리디렉션";
"host_email_text" = "SSL 인증서 발급 이메일";
"host_email_tips" = "인증서 발급 및 만료 알림에 사용";
"host_ssl_request_method_text" = "SSL 인증서 발급 방식";
"host_ssl_public_acme_cert_text" = "공용 CA SSL 인증서(ACME)";
"host_ssl_file_text" = "SSL 개인키 파일 (*.key)";
"host_ssl_file_key_text" = "SSL 인증서 파일 (*.pem, *.crt)";
"host_ssl_request_selfsign" = "ServBay CA";
"host_ssl_request_public" = "공용 CA";
"host_ssl_request_caddy" = "Caddy";
"host_ssl_request_custom" = "커스텀";
"host_ssl_select_public_certificate" = "선택하세요";
"host_redirect_301" = "301 (영구)";
"host_redirect_302" = "302 (임시)";
"host_hostscheme_http" = "HTTP";
"host_hostscheme_https" = "HTTPS";
"host_hostscheme_http_https" = "HTTP & HTTPS";
"host_php_version_text" = "PHP 버전";
"host_php_version_default" = "기본값(전체)";
"host_php_rewrite_text" = "Rewrite 규칙";
"apache_htaccess_hint" = "Apache는 .htaccess 파일을 사용하여 rewrite 규칙을 구성합니다.";
"host_ipaddress_text" = "IP 주소";
"host_port_text" = "포트";
"host_custom_text" = "커스텀";
"host_custom_port_text" = "커스텀 포트";
"host_custom_configure_text" = "커스텀 설정";
"host_rproxy_custom_text" = "커스텀 리버스 프록시";
"host_rproxy_configure_custom_text" = "아래에 커스텀 리버스 프록시 설정을 입력하세요";
"host_domain_invalid_tips" = "도메인 오류 또는 이미 존재함";
"host_upgrade_vip_unlock_multiple_domains" = "여러 개의 도메인을 입력하려면 ServBay Pro로 업그레이드하세요.";
"host_configure_custom_tips" = "아래에 커스텀 %@ 설정을 입력하세요";
"host_root_directory" = "웹사이트 루트 디렉터리";
"host_path_space_warning" = "경로에 공백이 포함되어 있어 웹 서버, 백업/복원 등의 기능에 이상이 발생할 수 있으니 공백이 없는 경로를 사용하는 것을 권장합니다.";
"host_redirect_type" = "리디렉션 유형";
"host_redirect_target_url" = "대상 URL";
"host_delete_alert_title" = "\"%@\" 삭제";
"host_delete_alert_text" = "\"%@\"를 삭제하시겠습니까?";
"host_pause_alert_title" = "\"%@\" 일시 정지";
"host_pause_alert_text" = "\"%@\"를 일시 정지하시겠습니까?";
"host_save_alert_title" = "오류";
"host_save_alert_domain_exists" = "도메인 %@ 이미 존재함";
"host_caddyfile_invalid" = "Caddy 설정 오류";
"host_nginxfile_invalid" = "NGINX 설정 오류";
"host_apachefile_invalid" = "Apache 설정 오류";
"host_cors_enable" = "CORS";
"host_cors_allow_origin" = "Access-Control-Allow-Origin";
"host_cors_allow_origin_prompt" = "https://www.servbay.com https://www.servbay.dev";
"host_cors_allow_methods" = "Access-Control-Allow-Methods";
"host_cors_allow_methods_prompt" = "POST, GET, OPTIONS";
"host_cors_allow_headers" = "Access-Control-Allow-Headers";
"host_cors_allow_headers_prompt" = "Content-Type, Authorization";
"host_cors_allow_credentials" = "Allow-Credentials";
"host_custom_config_self_manage_certificate" = "커스텀 설정 시 SSL 인증서는 직접 만들거나 신청해야 합니다.";
"host_caddy_not_allow_alert_text" = "기본 Web 서버가 Caddy가 아니므로 선택할 수 없습니다";
"host_current_web_server" = "Web 서버: %@";
"host_certificate_not_exists" = "인증서 파일 '%1$@' 또는 키 파일 '%2$@'이 존재하지 않습니다.";
"host_root_folder_not_exists" = "루트 폴더 '%@'가 존재하지 않습니다.";
"host_root_folder_not_set" = "루트 폴더 설정이 없습니다.";
"host_certificate_not_set" = "인증서 설정이 없습니다.";
"host_system_readonly" = "시스템 웹사이트";
"host_category_none" = "분류되지 않음";
"host_category_assign_to" = "그룹에 할당: %1$@";
"host_category_right_click_tips" = "웹사이트에서 우클릭하여 그룹에 추가하세요";
"host_category_cannot_delete" = "삭제할 수 없음";
"host_category_cannot_delete_tips" = "현재 분류에 웹사이트가 있으므로 삭제할 수 없습니다";
"host_category_exists" = "분류가 이미 존재함";
"host_category_exists_tips" = "입력한 분류명이 이미 존재합니다";
"host_category_cancel_assign" = "그룹 할당 해제";

// 백업
"backup_nav_setting" = "백업 설정";
"backup_nav_config" = "설정";
"backup_nav_websites" = "웹사이트";
"backup_nav_ssl_cert" = "SSL 인증서";
"backup_title_setting" = "백업 설정";
"backup_action_by_hand" = "수동 백업";
"backup_table_header_filename" = "파일명";
"backup_table_header_day" = "날짜";
"backup_table_header_filesize" = "크기";
"backup_table_header_note" = "비고";
"backup_tips_success" = "백업 성공";
"backup_tips_failed" = "백업 실패";
"backup_all_databases" = "모든 데이터베이스 백업";
"backup_no_running_pg" = "실행 중인 PostgreSQL 없음";
"backup_no_running_mariadb" = "실행 중인 MariaDB 없음";
"backup_no_running_mysql" = "실행 중인 MySQL 없음";
"backup_all_ssl_cert" = "모든 인증서 백업";
"backup_all_websites" = "모든 웹사이트 백업";
"backup_tips_restore_success" = "백업 복원 성공";
"backup_tips_restore_failed" = "백업 복원 실패";
"backup_status_stopped" = "중지됨";
"backup_every_day" = "매일";
"backup_every_week" = "매주";
"backup_every_month" = "매월";
"backup_weekday_monday" = "월요일";
"backup_weekday_tuesday" = "화요일";
"backup_weekday_wednesday" = "수요일";
"backup_weekday_thursday" = "목요일";
"backup_weekday_friday" = "금요일";
"backup_weekday_saturday" = "토요일";
"backup_weekday_sunday" = "일요일";
"backup_dist_folder" = "백업 저장 디렉터리";
"backup_auto_backup" = "자동 백업";
"backup_frequency" = "백업 빈도";
"backup_day_of_month" = "일";
"backup_day_of_week" = "주";
"backup_time_of_day" = "시간";
"backup_auto_cleanup" = "자동 정리";
"backup_auto_cleanup_keep_days" = "백업 보관(일)";
"backup_backup_category" = "백업 유형";
"backup_permission_required_title" = "디스크 접근 권한이 필요합니다";
"backup_permission_required_message" = "ServBay에서 백업 폴더에 접근할 수 없습니다. 시스템 설정 > 개인정보 보호 및 보안 > 전체 디스크 접근 권한에서 ServBay에 권한을 부여해 주세요.";

// service

// 서비스
"service_column_service" = "패키지명";
"service_column_latest_ver" = "최신 버전: %@";
"service_column_current_ver" = "현재 설치 버전: %@";
"service_column_ver" = "버전";
"service_column_status" = "상태";
"service_column_pid" = "PID";
"service_column_enable" = "활성화";
"service_column_arch" = "아키텍처";
"service_column_installed" = "관리";
"service_column_action" = "제어";
"service_upgrade_alert_title" = "%@ 업그레이드";
"service_upgrade_alert_text" = "%@를 %@로 업그레이드 하시겠습니까?";
"service_upgrade_alert_button" = "업그레이드";
"service_upgrade_runtime_alert_title" = "ServBay Runtime 업그레이드 필요";
"service_upgrade_runtime_alert_text" = "계속하려면 \"ServBay Runtime\"을 %1$@ 이상 버전으로 업그레이드해야 합니다.\n\"%2$@\"-\"%3$@\"에서 \"ServBay Runtime\"을 업그레이드하세요.";
"service_install_button" = "설치";
"service_uninstall_button" = "제거";
"service_uninstall_alert_title" = "%@ 제거";
"service_uninstall_alert_text" = "패키지 %@를 제거하시겠습니까?";
"service_notinstall_alert_title" = "패키지 %@ 미설치";
"service_notinstall_alert_text" = "패키지 %@가 설치되지 않았거나 손상되었습니다. 패키지를 재설치하세요";
"service_package_downloading" = "패키지 %@ (%@) 다운로드 중, 다운로드 속도: %@...";
"service_set_default_version_title" = "기본 버전 설정";
"service_set_default_version_desc" = "%@를 기본 버전으로 설정하시겠습니까? 현재 기본 버전은 %@입니다.";
"service_not_allow_uninstall_web_server_desc" = "현재 기본 Web 서버가 %@이므로 제거할 수 없습니다.";
"service_not_allow_uninstall_default_version_desc" = "현재 %1$@ 서비스의 기본 버전이 %2$@이기 때문에 제거할 수 없습니다. [설정]에서 새로운 기본 서비스 버전을 먼저 지정한 후 현재 버전을 제거해 주세요.";
"service_enable_service" = "서비스 사용";
"service_disable_default_version_alert_title" = "❗️기본 서비스 비활성화❗️";
"service_disable_default_version_alert_text" = "%@는 현재 서비스의 기본 버전입니다. 기본 버전을 비활성화하면 코드 실행에 영향을 줄 수 있습니다. 정말 비활성화하시겠습니까?\n\n(더 이상 필요하지 않은 경우 새로운 기본 버전을 지정하세요)";
"service_package_not_support_title" = "지원하지 않는 패키지";
"service_package_not_support_desc" = "선택한 패키지 %@는 현재 지원하지 않습니다.";

// 설정
"setting_launch_at_login" = "로그인 시 실행";
"setting_launch_at_login_hint" = "사용자 로그인 후 ServBay APP 자동 실행";
"setting_start_with_system" = "시스템 시작 시 서비스 실행";
"setting_start_with_system_hint" = "시스템 부팅 후 선택한 서비스 자동 시작";
"setting_release_channel" = "업데이트 채널";
"setting_release_channel_hint" = "ServBay 앱의 업데이트 채널";
"setting_release_channel_alert_title" = "전환 완료";
"setting_release_channel_alert_text" = "기본 업데이트 채널이 성공적으로 전환되었습니다";
"setting_language" = "언어";
"setting_language_hint" = "사용할 언어를 선택하세요";
"setting_language_update_button" = "언어 전환";
"setting_language_alert_title" = "언어 전환됨";
"setting_language_alert_text" = "새 언어를 적용하려면 앱을 재시작하세요";
"setting_appearance" = "외관";
"setting_appearance_hint" = "선호하는 색상 테마를 선택하세요";
"theme_follow_system" = "시스템 따라가기";
"theme_light" = "라이트";
"theme_dark" = "다크";
"setting_package_priority" = "기본 소프트웨어 패키지";
"setting_package_priority_hint" = "명령줄 도구의 우선순위를 설정하여 ServBay 또는 시스템 소프트웨어 패키지 중 어떤 것을 사용할지 결정합니다.";
"setting_package_priority_servbay" = "ServBay";
"setting_package_priority_system" = "시스템";
"setting_package_priority_servbay_example" = "ServBay 우선: ServBay의 소프트웨어 패키지 사용(예: python은 ServBay의 Python을 사용함)";
"setting_package_priority_system_example" = "시스템 우선: 시스템 소프트웨어 패키지를 우선 사용하고, ServBay는 보조로 사용합니다 (예: python은 시스템의 Python을 우선 사용합니다)";
"setting_package_priority_update_title" = "앱 설정";
"setting_package_priority_update_message" = "PATH 순서가 업데이트됩니다. 변경 사항을 적용하려면 터미널을 다시 시작하거나 source ~/.zshrc를 실행하세요.";
"setting_web_server" = "기본 Web 서버";
"setting_web_server_hint" = "기본 Web 서버를 선택하세요";
"setting_web_server_alert_title" = "전환 완료";
"setting_web_server_alert_text" = "기본 Web 서버가 성공적으로 전환되었습니다";
"setting_sql_server" = "기본 SQL 서버";
"setting_sql_server_hint" = "기본 SQL 서버를 선택하세요";
"setting_sql_server_alert_title" = "전환 완료";
"setting_sql_server_alert_text" = "기본 SQL 서버가 성공적으로 전환되었습니다";
"setting_default_version" = "기본 버전";
"setting_default_version_hint" = "패키지의 기본 버전(명령줄 포함) 설정";
"setting_default_version_alert_title" = "기본 버전 전환됨";
"setting_default_version_alert_text" = "패키지 기본 버전이 변경되었습니다. 명령줄 도구(php, python, node, mysql, psql 등)는 설정된 기본 버전을 사용합니다";
"setting_default_version_php" = "PHP";
"setting_default_version_python" = "Python";
"setting_default_version_go" = "Go";
"setting_default_version_openjdk" = "OpenJDK";
"setting_default_version_dotnetsdk" = ".NET SDK";
"setting_default_version_ruby" = "Ruby";
"setting_default_version_rust" = "Rust";
"setting_default_version_node" = "Node.js";
"setting_default_version_mariadb" = "MariaDB";
"setting_default_version_mysql" = "MySQL";
"setting_default_version_postgresql" = "PostgreSQL";
"setting_default_version_mongodb" = "MongoDB";
"setting_default_version_not_set" = "미설정";
"setting_ca" = "ServBay 루트 인증서";
"setting_ca_hint" = "ServBay Public/User SSL 루트 인증서 설치";
"setting_ca_reinstall_button" = "ServBay 루트 CA 재설치";
"setting_ca_reinstall_alert_title" = "ServBay 루트 CA 재설치";
"setting_ca_reinstall_alert_text" = "ServBay Public/User 루트 CA 인증서가 성공적으로 재설치되었습니다";
"setting_ca_renew_all_button" = "모든 ServBay User 인증서 재생성";
"setting_ca_renew_all_alert_title" = "모든 ServBay User 인증서 재생성";
"setting_ca_renew_all_alert_text" = "모든 ServBay User CA 인증서가 재생성되었습니다.";
"setting_ca_renew_all_confirm_alert_title" = "🚫 모든 ServBay User 인증서 재생성 🚫";
"setting_ca_renew_all_confirm_alert_text" = "❓ 모든 ServBay User CA 인증서를 재생성하시겠습니까?\n‼️ 이것은 현재 발급된 인증서를 모두 제거하고 재발급합니다.";
"setting_ca_need_privilege_alert_title" = "더 높은 권한 필요";
"setting_ca_need_privilege_alert_text" = "macOS 15.4부터 SSL 루트 인증서 설치 시 더 높은 시스템 권한이 필요합니다.\n\n팝업에서 관리자 비밀번호를 입력해 ServBay CA를 올바르게 설치하고 초기화해 주세요.\n\n‼️‼️‼️ ServBay CA를 올바르게 설치하지 못하면 웹사이트 접속 시 인증서 오류가 발생할 수 있습니다. ‼️‼️‼️";
"setting_ca_install_button" = "ServBay 루트 인증서 설치";
"setting_ca_install_failed_alert_title" = "ServBay CA 설치 실패";
"setting_ca_install_failed_alert_text" = "‼️‼️‼️\nServBay CA 설치에 실패했습니다. 확인 후 재시도하거나, 수동으로 '키체인'에서 설치 후 신뢰를 설정하세요\n‼️‼️‼️";
"setting_ca_remove_button" = "ServBay 루트 인증서 삭제";
"setting_ca_remove_alert_title" = "ServBay 루트 인증서 삭제";
"setting_ca_remove_alert_text" = "ServBay 루트 인증서가 성공적으로 삭제되었습니다";
"setting_cli_tools" = "명령줄 도구";
"setting_cli_tools_hint" = "ServBay를 zsh 또는 bash 환경에 설치해, 터미널에서 ServBay 내장 PHP, Python, Node.js, MySQL, Redis 등의 명령어를 사용할 수 있게 합니다";
"setting_zsh_install_button" = "zsh에 ServBay PATH 환경 설정";
"setting_zsh_install_alert_title" = "zsh에 ServBay PATH 환경 설정";
"setting_zsh_install_alert_text" = "Servbay의 PATH 환경변수가 .zshrc 파일에 추가되었습니다.";
"setting_bash_install_button" = "bash에 ServBay PATH 환경 설정";
"setting_bash_install_alert_title" = "bash에 ServBay PATH 환경 설정";
"setting_bash_install_alert_text" = "Servbay의 PATH 환경변수가 .bash_profile 파일에 추가되었습니다.";
"setting_ai_client" = "AI 클라이언트 접속";
"setting_ai_client_hint" = "ServBay의 MCP 서비스를 Claude Code, Codex, Cursor 등 AI 클라이언트에 원클릭으로 연동하여, AI가 직접 로컬 개발 환경을 관리할 수 있게 하세요";
"setting_ai_client_integrate_button" = "연결";
"setting_ai_client_remove_button" = "접속 제거";
"setting_ai_client_status_integrated" = "연결됨";
"setting_ai_client_status_integrated_stale" = "연결됨(다른 버전으로 이동)";
"setting_ai_client_status_not_integrated" = "연결되지 않음";
"setting_ai_client_status_client_not_found" = "클라이언트가 감지되지 않았습니다";
"setting_ai_client_integrate_success" = "ServBay MCP가 %@에 연결되었습니다";
"setting_ai_client_integrate_failed" = "%@ 연결 실패: %@";
"setting_ai_client_remove_success" = "%@에서 ServBay MCP 접속이 제거되었습니다.";
"setting_ai_client_remove_nothing" = "%@ 현재 제거할 수 있는 ServBay MCP 접속이 없습니다";
"setting_ai_client_remove_failed" = "%@에서 연결 해제 실패: %@";
"setting_ai_client_client_not_found_tips" = "%@가 감지되지 않았습니다. 해당 클라이언트를 먼저 설치한 후 연결해 주세요.";
"setting_mcp_server" = "ServBay MCP 서버";
"setting_mcp_server_hint" = "ServBay MCP를 사용하면 AI 클라이언트가 로컬 개발 환경을 관리할 수 있습니다. 아래 상태는 자동으로 감지됩니다.";
"setting_mcp_status_label" = "상태";
"setting_mcp_version_label" = "버전";
"setting_mcp_path_label" = "경로";
"setting_mcp_refresh_button" = "새로고침";
"setting_mcp_status_idle" = "—";
"setting_mcp_status_checking" = "ServBay MCP 확인 중...";
"setting_mcp_status_installed" = "ServBay MCP가 설치되어 사용할 준비가 되었습니다.";
"setting_mcp_status_not_installed" = "ServBay MCP가 설치되지 않았습니다. ServBay를 업그레이드하거나 다시 설치하여 MCP 지원을 추가하세요.";
"setting_mcp_status_upgrade_available" = "ServBay MCP가 설치되어 있지만 업데이트가 필요합니다.";
"setting_mcp_status_servbay_not_running" = "ServBay MCP가 설치되어 있지만 ServBay가 실행 중이 아닙니다. ServBay를 시작한 후 다시 시도하세요.";
"setting_mcp_status_permission_error" = "ServBay MCP를 찾았지만 실행할 수 없습니다. 파일 권한을 확인하거나 ServBay를 다시 설치하세요.";
"setting_mcp_status_invalid_binary" = "ServBay MCP 바이너리가 잘못되었거나 예상치 못한 버전을 반환했습니다.";
"setting_mcp_status_unknown_error" = "ServBay MCP 상태를 확인할 수 없습니다. 다시 시도하거나 ServBay를 다시 설치하세요.";
"setting_ai_client_mcp_label" = "MCP:";
"setting_ai_client_rule_label" = "AI 규칙:";
"setting_ai_client_rule_installed" = "설치됨";
"setting_ai_client_rule_not_installed" = "설치 안 됨";
"setting_ai_client_install_rule_button" = "AI 규칙 설치";
"setting_ai_client_advanced_button" = "고급";
"setting_ai_client_repair_button" = "복구";
"setting_ai_client_config_path_fmt" = "구성: %@";
"setting_ai_client_open_config_button" = "구성 열기";
"setting_ai_client_copy_config_button" = "수동 구성 복사";
"setting_ai_client_copy_rule_button" = "AI 규칙 복사";
"setting_ai_client_last_error_fmt" = "마지막 오류: %@";
"setting_ai_client_install_rule_success" = "%@에 ServBay AI 규칙을 설치했습니다";
"setting_ai_client_install_rule_failed" = "%@에 AI 규칙 설치 실패: %@";
"setting_ai_client_install_rule_sheet_title" = "AI 규칙 설치 — %@";
"setting_ai_client_install_rule_sheet_message" = "AI 규칙은 프로젝트(작업 공간) 단위로 설치됩니다. ServBay는 선택한 프로젝트 폴더 내의 파일(%@)에 규칙을 기록하여 해당 프로젝트에서 언제 ServBay MCP를 사용할지 AI가 알 수 있도록 합니다. 기존 내용은 덮어쓰지 않으며 ServBay 관리 영역만 업데이트됩니다.";
"setting_ai_client_install_rule_sheet_install_button" = "설치";
"setting_ai_client_install_rule_global_button" = "AI 규칙 전체 설치";
"setting_ai_client_install_rule_global_sheet_title" = "AI 규칙 전체 설치 — %@";
"setting_ai_client_install_rule_global_sheet_message" = "AI 규칙이 전체적으로 설치됩니다. ServBay는 규칙을 해당 클라이언트의 전체 규칙 파일(%@)에 기록하여 모든 프로젝트에서 AI가 ServBay MCP를 언제 사용할지 알 수 있도록 합니다. 기존 내용은 덮어쓰지 않으며, ServBay 관리 영역만 업데이트됩니다.";
"setting_ai_client_install_rule_global_success" = "%@에 ServBay AI 규칙이 전체적으로 설치되었습니다.";
"setting_ai_client_global_rule_label" = "글로벌 AI 규칙:";
"setting_ai_client_remove_rule_global_button" = "AI 규칙 전체 제거";
"setting_ai_client_remove_rule_global_sheet_title" = "전체 AI 규칙 제거 — %@";
"setting_ai_client_remove_rule_global_sheet_message" = "ServBay는 이 클라이언트의 전역 규칙 파일(%@)에서 ServBay 호스팅 영역을 제거합니다. 다른 내용은 영향을 받지 않으며 ServBay 호스팅 영역만 삭제됩니다.";
"setting_ai_client_remove_rule_global_success" = "ServBay AI 규칙이 %@의 전역 규칙에서 제거되었습니다.";
"setting_ai_client_remove_rule_global_nothing" = "%@의 글로벌 규칙에는 현재 제거할 수 있는 ServBay AI 규칙이 없습니다.";
"setting_ai_client_remove_rule_global_failed" = "%@의 전체 규칙에서 AI 규칙 제거 실패: %@";
"setting_ai_client_choose_workspace_prompt" = "프로젝트 선택";
"setting_ai_client_choose_workspace_title" = "프로젝트 폴더 선택";
"setting_ai_client_choose_workspace_message" = "AI 규칙은 프로젝트별로 설치됩니다. ServBay가 AI 규칙을 작성할 프로젝트 폴더를 선택하세요. 규칙은 해당 폴더의 AGENTS.md, CLAUDE.md 또는 .cursor/rules 같은 파일에 추가되어 AI가 이 프로젝트에서 언제 ServBay MCP를 사용해야 하는지 알 수 있게 합니다.";
"setting_ai_client_copied_tips" = "클립보드에 복사됨";
"setting_alert_successful" = "성공";
"setting_db_password" = "데이터베이스 비밀번호";
"setting_db_password_hint" = "MariaDB 및 PostgreSQL 기본 계정과 비밀번호";
"setting_db_password_mariadb" = "MariaDB";
"setting_db_password_postgresql" = "PostgreSQL";
"setting_db_password_account" = "계정";
"setting_db_password_password" = "비밀번호";
"setting_db_host" = "호스트";
"setting_db_port" = "포트";
"setting_db_socket" = "소켓";
"setting_dns_server" = "DNS 포워딩";
"setting_dns_server_hint" = "업스트림 DNS 서버를 설정하면, 커스텀이 아닌 모든 도메인은 설정된 DNS 서버로 전달되어 해석됩니다. 기본값을 유지하거나 Google/Cloudflare Public DNS로 지정하세요";
"setting_dns_server_custom" = "커스텀 업스트림 DNS";
"setting_dns_server_alert_title" = "IP 주소 오류";
"setting_dns_server_alert_text" = "업스트림 DNS 주소가 올바르지 않습니다. 올바른 IP 주소를 입력하세요. 여러 개는 쉼표(,)로 구분";
"setting_database_password_migrated_mysql" = "MySQL 및 MariaDB 관련 정보가 이동되었습니다";
"setting_database_password_migrated_postgresql" = "PostgreSQL 관련 정보가 이동되었습니다";
"setting_reset_dialog_alert_sucess_title" = "모든 대화상태가 리셋됨";
"setting_reset_dialog_alert_sucess_text" = "초기화 성공";
"setting_start_all_services_when_start_up" = "ServBay 시작 시 모든 서비스 실행";
"setting_stop_all_services_when_tear_down" = "ServBay 종료 시 모든 서비스 중지";
"setting_monitor_system_resources_when_window_closed" = "백그라운드에서 시스템 리소스 모니터링";
"setting_monitor_system_resources_when_window_closed_hint" = "주 창을 닫은 후에도 시스템 리소스(CPU, 메모리 등)을 계속 모니터링합니다. 메뉴 막대에서 데이터를 표시하는 데 사용됩니다.";

// 更新

// 업데이트
"update_new_version" = "새 버전 제공 중: %@";
"update_new_version_tips" = "지금 다운로드 하시겠습니까?";
"update_no_new_version_tips" = "새 버전이 없습니다";
"update_release_notes" = "릴리스 노트";
"update_new_version_avaliable_title" = "새 버전 사용 가능";
"update_new_version_avaliable_tips" = "ServBay에서 새 버전을 출시했습니다. 빠르게 업그레이드하세요";
"update_new_version_downloaded_tips" = "ServBay 새 버전이 다운로드 완료되었습니다. 설치를 클릭하세요";

// 버튼 tips
"help_tips_service_button_start" = "서비스 시작";
"help_tips_service_button_stop" = "서비스 중지";
"help_tips_service_button_restart" = "서비스 재시작";
"help_tips_open_log" = "Log 보기";
"help_tips_add_host" = "웹사이트 추가";
"help_tips_open_web" = "웹사이트 방문";
"help_tips_open_folder" = "폴더 열기";
"help_tips_select_log_directory" = "로그 디렉터리 선택";
"select_log_directory" = "로그 파일 저장 디렉터리를 선택하세요";
"help_tips_ssl_enabled" = "SSL 사용 중";
"help_tips_ssl_disabled" = "SSL 미사용";
"help_tips_website_type" = "웹사이트 유형";
"help_tips_upgrade" = "새 버전으로 업그레이드";
"help_tips_install" = "패키지 설치";
"help_tips_uninstall" = "패키지 제거";
"help_tips_default_version" = "기본 버전";
"help_tips_copy" = "복사";
"help_tips_reveal" = "보기";
"help_tips_pause" = "웹사이트 일시 정지";
"help_tips_enable" = "웹사이트 사용";
"help_tips_pause_domain" = "도메인 일시 정지";
"help_tips_enable_domain" = "도메인 사용";
"help_tips_add_star" = "즐겨찾기 추가";
"help_tips_remove_star" = "즐겨찾기 해제";
"help_tips_renew_certificate" = "SSL 인증서 갱신";
"help_tips_delete_certificate" = "SSL 인증서 삭제";
"help_tips_open_website_setting" = "웹사이트 설정 열기";
"help_tips_reset_password" = "root 사용자 비밀번호 초기화";
"help_tips_change_password" = "root 사용자 비밀번호 변경";
"help_tips_enable_in_settings" = "%1$@ - %2$@에서 활성화하세요";
"help_tips_open_backup" = "백업 파일 열기";
"help_tips_restore_backup" = "백업 복원";
"help_tips_delete_backup" = "백업 삭제";
"help_tips_will_delete" = "정말 삭제하시겠습니까?";
"help_tips_will_restore" = "정말 복원하시겠습니까?";

// 알림
"alert_unknown_app" = "알 수 없는 프로그램";
"alert_app_port_unavailable_service" = "%1$@: %2$@ 포트 %3$@ 사용 중";
"alert_port_unavailable" = "포트 사용 불가";
"alert_conflict_app" = "다음 앱이 ServBay와 충돌합니다";
"alert_conflict_app_message" = "%@가 실행 중이며 시스템 설정을 변경해 ServBay 실행에 이상이 있습니다(포트 중복, 도메인 해석 불가, 웹사이트 접근 불가 등). 앱을 종료하거나 비활성화하세요.";
"alert_port_unavailable_tips" = "다음 프로세스가 포트를 사용 중이어서 ServBay의 정상 실행에 영향을 줄 수 있습니다. 다음 서비스를 먼저 종료하세요:";
"alert_port_unavailable_service" = "포트 %2$@ (%1$@) - 프로세스 %3$@ (PID: %4$@) 사용 중";
"alert_helper_not_install_title" = "🚫 ServBay Helper 미설치 🚫";
"alert_helper_not_install_text" = "ServBay Helper가 올바르게 설치되지 않았습니다. macOS에서는 1024 이하 포트(HTTP 80, HTTPS 443, DNS 53 등)를 사용하려면 시스템 권한이 필요합니다. 문제 해결을 위해 ServBay Helper를 재설치해 주세요.\n\n도움이 필요하면 도움말 센터를 방문하거나 Discord 채널에 참여하세요.";
"alert_helper_cannot_connect_title" = "🚫 ServBay Helper 연결 실패 🚫";
"alert_helper_cannot_connect_text" = "ServBay Helper에 연결할 수 없습니다. macOS에서는 1024 이하 포트(HTTP 80, HTTPS 443, DNS 53 등)를 사용하려면 시스템 권한이 필요합니다. 문제 해결을 위해 ServBay Helper를 재설치해 주세요.\n\n도움이 필요하면 도움말 센터를 방문하거나 Discord 채널에 참여하세요.";
"alert_helper_not_running_title" = "🚫 ServBay Helper 실행 중 아님 🚫";
"alert_helper_not_running_text" = "ServBay Helper는 설치되어 있지만 실행 중이 아닙니다. macOS에서는 1024 이하 포트(HTTP 80, HTTPS 443, DNS 53 등)를 사용하려면 시스템 권한이 필요합니다. 문제 해결을 위해 ServBay Helper를 재설치해 주세요.\n\n도움이 필요하면 도움말 센터를 방문하거나 Discord 채널에 참여하세요.";
"alert_need_help_text" = "도움이 필요하신가요?";
"alert_processing_title" = "처리 중";
"alert_processed_title" = "처리 완료";
"alert_processing_desc" = "작업을 처리 중입니다...";
"alert_need_root_privileges_title" = "관리자 권한 필요";
"alert_need_root_privileges_desc" = "서비스 관리는 시스템 권한이 필요합니다. 관리자 비밀번호를 입력하여 필요한 권한을 얻으세요.";
"alert_need_install_rosetta_title" = "Rosetta 설치 필요";
"alert_need_install_rosetta_desc" = "Silicon(M1/M2/M3/M4) 칩에서 구버전 비-Arm64 소프트웨어를 실행하려면 Rosetta가 필요합니다. 다음 명령을 터미널에서 실행해 설치하세요:\n\nsoftwareupdate --install-rosetta --agree-to-license";
"alert_reset_all_dialog_again_status" = "모든 대화상태 초기화";
"alert_reset_all_dialog_again_status_tips" = "초기화 후 다시 알림 표시 가능";
"alert_button_reset_tips" = "초기화";
"alert_option_do_not_alert_again" = "다시 알리지 않기";
"alert_composer_2_2_cmd_line" = "Composer 2.2를 사용하려면 명령어 composer-2.2를 실행하세요";

// 온보딩
"onboard_page_title_1" = "ServBay에 오신 것을 환영합니다";
"onboard_page_desc_1" = "웹 개발자를 위한 필수 도구";
"onboard_page_title_2" = "쉽게 관리하는 웹사이트";
"onboard_page_desc_2" = "클릭, 입력, 추가 — 정말 간단합니다. 새 프로젝트가 여러분을 기다리고 있습니다.";
"onboard_page_title_3" = "풀 패키지 서비스!";
"onboard_page_desc_3" = "웹서버, 개발 언어, 데이터베이스, NoSQL, 심지어 DNS와 이메일까지 — 필요한 모든 도구가 준비되어 있습니다. 버튼 클릭 한 번으로 서비스 설치/업그레이드!";
"onboard_page_title_4" = "커맨드 라인 지원";
"onboard_page_desc_4" = "전문가처럼 코딩하세요. 원하는 방식으로 스크립트 실행과 데이터베이스 관리가 가능합니다.";
"onboard_page_title_5" = "모든 리소스를 한 곳에서";
"onboard_page_desc_5" = "어디서 시작할지 모르겠나요? 도움이 필요하신가요? 피드백이나 토론이 필요하다면, 이 리소스가 여러분께 도움이 될 것입니다.";
"onboard_tools" = "도구";
"onboard_support_community" = "지원 및 커뮤니티";
"onboard_follow" = "ServBay 팔로우하기";
"onboard_subheadline_1" = "데모 웹사이트 열기";
"onboard_subheadline_2" = "phpMyAdmin으로 데이터베이스 관리";
"onboard_subheadline_3" = "Adminer로 데이터베이스 관리";
"onboard_subheadline_4" = "지원 센터에서 도움 받기";
"onboard_subheadline_5" = "유튜브에서 튜토리얼 영상 시청";
"onboard_subheadline_6" = "Discord 커뮤니티에서 개발자들과 토론하기";

// 로그인
"help_tips_user_icon_not_login" = "로그인";
"signin_with_title" = "ServBay에 로그인";
"signin_with_desc" = "ServBay 로그인으로 더 많은 기능을 이용하세요";
"signin_with_following_service" = "아래 서비스로 회원가입 혹은 로그인";
"signin_with_google" = "Google로 계속하기";
"signin_with_github" = "Github로 계속하기";
"signin_with_apple" = "Apple ID로 계속하기";
"signin_with_microsoft" = "Microsoft로 계속하기";
"signin_with_email" = "이메일로 계속하기";
"signin_with_wechat" = "WeChat으로 계속하기";
"signin_alert_title" = "로그인 실패";
"signin_alert_text" = "오류 메시지를 확인하고 다시 로그인하세요.";

// vip
"upgrade_signin_title" = "ServBay 로그인";
"upgrade_signin_maxhost" = "로그인하지 않은 사용자는 최대 3개의 호스트만 추가할 수 있습니다.\n\n더 많은 호스트를 추가하고 싶으신가요? 지금 무료로 ServBay 계정을 등록하고, 더 많은 호스트 추가 및 추가 기능을 이용해보세요!";
"upgrade_signin_php_extension" = "무료 프로페셔널 기능을 사용하려면 ServBay에 로그인해야 합니다.\n\nPHP 확장 모듈을 마음껏 관리하고 싶으신가요? 지금 무료로 계정 등록 후 확장 모듈, 더 많은 호스트와 추가 기능을 해제하세요!";
"upgrade_signin_common" = "무료 프로페셔널 기능을 사용하려면 ServBay에 로그인해야 합니다.";
"upgrade_vip_features" = "프로페셔널 기능";
"upgrade_vip_title" = "프로페셔널 기능 해제";
"upgrade_vip_free_title" = "무료 프로페셔널 기능";
"upgrade_vip_slogan" = "업그레이드: %@, 모든 기능 해제!";
"upgrade_vip_list_title_1" = "무제한 웹사이트 및 호스트 관리";
"upgrade_vip_list_desc_1" = "무제한 웹사이트 호스팅, 사용자 정의 HTTP/HTTPS 포트, 다중 도메인 및 별칭과 같은 고급 호스트 구성을 지원합니다.";
"upgrade_vip_list_title_2" = "무제한 DNS 레코드 및 Hosts 관리";
"upgrade_vip_list_desc_2" = "무제한 DNS 레코드 관리 기능을 제공하고 로컬 hosts 파일을 쉽게 관리할 수 있도록 하여 도메인 확인 및 로컬 개발 디버깅을 용이하게 합니다.";
"upgrade_vip_list_title_3" = "유연한 서비스 구성 및 다중 데이터베이스 인스턴스";
"upgrade_vip_list_desc_3" = "Python, PHP, Node.js와 같은 개발 언어 및 MySQL, PostgreSQL, MongoDB, Redis와 같은 서비스에 대한 구성을 쉽게 사용자 정의하고 여러 데이터베이스 인스턴스의 동시 실행을 지원합니다.";
"upgrade_vip_list_title_4" = "포괄적인 SSL 인증서 서비스";
"upgrade_vip_list_desc_4" = "무료 SSL 인증서(ACME 프로토콜을 통해 Let's Encrypt, ZeroSSL, Google Trust Services 등 지원), 다중 도메인(SAN), 와일드카드 인증서 및 자동 SSL 인증서 갱신을 지원합니다.";
"upgrade_vip_list_title_5" = "PKI 시스템 및 고급 인증서 지원";
"upgrade_vip_list_desc_5" = "완전한 PKI 시스템 내장, 무제한 사설 CA 인증서 생성 및 무료 S/MIME, 코드 서명, 문서 서명 인증서를 지원합니다.";
"upgrade_vip_list_title_6" = "고급 터널 및 리버스 프록시";
"upgrade_vip_list_desc_6" = "안전한 터널을 통해 로컬 개발 환경을 공용 인터넷에 쉽게 노출하고 ServBay 내장 터널 및 Cloudflared, FRP, Ngrok, Pinggy.io와 같은 다양한 서비스를 지원합니다.";
"upgrade_vip_list_title_7" = "통합 이메일 서버";
"upgrade_vip_list_desc_7" = "이메일 송수신 애플리케이션의 편리한 로컬 개발 및 테스트를 위한 내장 이메일 서버 기능.";
"upgrade_vip_list_title_8" = "자동 백업 및 외부 저장소";
"upgrade_vip_list_desc_8" = "자동 백업 메커니즘을 제공하고 백업 데이터를 외부 위치에 안전하게 저장하여 데이터 안전을 보장합니다.";
"upgrade_vip_list_title_9" = "CORS 교차 출처 지원";
"upgrade_vip_list_desc_9" = "내장 CORS(Cross-Origin Resource Sharing) 지원으로 개발 중 교차 출처 요청의 구성 및 관리를 단순화합니다.";
"upgrade_vip_list_title_10" = "우선 기술 지원";
"upgrade_vip_list_desc_10" = "전문 기술팀이 이메일, Telegram, Discord, WhatsApp, WeChat 등 다양한 채널을 통해 우선 기술 지원 서비스를 제공합니다.";
"upgrade_vip_list_title_11" = "더 많은 독점 기능 및 서비스";
"upgrade_vip_list_desc_11" = "지속적으로 업데이트되며, 향후 더 많은 독점 서비스, 고급 도구 및 기능 향상이 잠금 해제됩니다.";
"upgrade_pro_label" = "ServBay Pro";
"plan_badge_upgrade_slogan" = "ServBay Pro로 즉시 업그레이드!";
"plan_badge_trial_expired_on" = "체험 만료일: %@";
"plan_badge_trial_info_not_found" = "체험 정보 없음";
"plan_badge_plan_member_since" = "회원 가입일: %@";
"plan_badge_plan_info_not_found" = "구독 정보 없음";
"plan_badge_billing_cycle_monthly" = "월간";
"plan_badge_billing_cycle_yearly" = "연간";
"plan_badge_billing_cycle_trial" = "체험";
"vip_proud_member_slogan" = "당신은 저희가 자랑스러워하는 중요한 회원입니다.";

// DNS
"upgrade_7day_free_trial" = "7일 무료 체험";
"dns_nav_dns" = "DNS 서버";
"dns_nav_hosts" = "Hosts 파일";
"dns_nav_hosts_domain" = "\"%@\"에서 관리";
"dns_nav_add" = "%@에 도메인 추가";
"dns_add_text" = "도메인 추가";
"dns_add_domain" = "도메인";
"dns_add_domain_prompt" = "예: servbay, servbay.local 또는 demo.servbay.test";
"dns_add_ip" = "IP 주소";
"dns_add_ip_prompt" = "IPv4/v6 주소, 여러 항목은 쉼표(,)로 구분. 예: 127.0.0.1, ::1";
"dns_add_type" = "다음에 추가";
"dns_website_domain_not_editable" = "도메인 %@는 특정 웹사이트에 속해 있어 DNS에서 수정 불가";
"dnsmasq_config" = "dnsmasq 구성";
"dns_port" = "DNS 포트";
"listen_address" = "리스닝 주소";
"bind_interfaces" = "인터페이스 바인딩";
"no_hosts" = "Hosts 파일을 읽지 않음";
"cache_size" = "캐시 크기";
"local_ttl" = "로컬 TTL";
"disable_negative_cache" = "음수 캐시 비활성화";
"upstream_servers" = "업스트림 서버";
"dns_server_address" = "DNS 서버 주소";
"add_server" = "서버 추가";
"strict_order" = "엄격한 순서";
"log_queries" = "조회 로그 기록";
"log_file_path" = "로그 파일 경로";
"filter_private_ip" = "비공개 IP 필터링";
"prevent_dns_rebinding" = "DNS 재바인딩 방지";
"max_concurrent_queries" = "최대 동시 쿼리 수";
"config_directory" = "설정 디렉터리";
"run_as_user" = "실행 사용자";
"leave_empty_for_default" = "비워두면 기본값이 사용됩니다";
"leave_empty_if_not_used" = "사용하지 않을 때는 비워 두세요";
"validation_failed" = "인증 실패";
"config_saved" = "설정이 저장되었습니다";
"config_saved_restart_message" = "설정이 저장되었습니다. dnsmasq 서비스를 재시작해야 설정이 적용됩니다. 지금 바로 재시작하시겠습니까?";
"config_saved_restarting" = "구성이 저장되었습니다. dnsmasq 서비스를 다시 시작하는 중입니다...";
"restart_now" = "지금 다시 시작";
"restart_later" = "나중에 다시 시작";
"save_failed" = "저장 실패";
"save_failed_message" = "구성 저장에 실패했습니다. 파일 권한을 확인하거나 나중에 다시 시도하세요.";
"upstream_dns_mode_system" = "시스템 DNS";
"upstream_dns_mode_custom" = "사용자 지정";
"upstream_dns_system_hint" = "시스템의 현재 DNS 서버가 자동으로 상위 서버로 사용되며, 저장할 때마다 최신 시스템 DNS 설정이 읽혀집니다.";
"upstream_dns_custom_hint" = "업스트림 DNS 서버 목록을 수동으로 구성";
"load_system_dns" = "시스템에서 읽기";

// 대시보드
"dashboard_web_server" = "Web 서비스";
"dashboard_php" = "PHP";
"dashboard_mariadb" = "MariaDB";
"dashboard_mysql" = "MySQL";
"dashboard_postgresql" = "PostgreSQL";
"dashboard_mongodb" = "MongoDB";
"dashboard_nosql" = "NoSQL";
"dashboard_dns" = "DNS";
"dashboard_redis" = "Redis";
"dashboard_memcached" = "Memcached";
"dashboard_search" = "검색";
"dashboard_tunnel" = "터널";
"dashboard_overview" = "개요";
"dashboard_cpuload" = "CPU 부하";
"dashboard_cpuload_system" = "시스템";
"dashboard_cpuload_user" = "사용자";
"dashboard_cpuload_nice" = "Nice";
"dashboard_cpuload_idle" = "대기";
"dashboard_cpu_usage_history" = "CPU 사용 이력";
"dashboard_memory" = "메모리";
"dashboard_memory_pressure" = "압력";
"dashboard_memory_app" = "애플리케이션";
"dashboard_memory_wired" = "고정";
"dashboard_memory_compressed" = "압축됨";
"dashboard_storage" = "스토리지";
"dashboard_network" = "네트워크";
"dashboard_network_upload" = "업로드";
"dashboard_network_download" = "다운로드";
"dashboard_system_monitor" = "시스템 부하";

// 즐겨찾기
"starred_friendly_remind_title" = "즐겨찾기 호스트는 접어집니다";
"starred_friendly_remind_text" = "너무 많은 즐겨찾기는 관리 효율을 높이지 않습니다. 5개까지만 즐겨찾기를 추가하는 것을 권장합니다. 초과된 항목은 Menubar에서 접혀 보입니다.";
"starred_first_title" = "빠른 호스트 접근";
"starred_first_text" = "호스트를 즐겨찾기로 지정하면 호스트 리스트와 Menubar에서 빠르게 접근 가능합니다. 생산성을 높여보세요.";

// 신규 기능
"new_features_139_1_title" = "호스트 및 DNS 검색 기능 추가";
"new_features_139_1_text" = "최신 검색 기능을 추가했습니다. 많은 호스트나 도메인을 관리할 때도 쉽게 검색할 수 있습니다.";
"new_features_139_2_title" = "새로운 즐겨찾기 기능";
"new_features_139_2_text" = "자주 사용하는 호스트를 즐겨찾기에 추가할 수 있습니다. 즐겨찾기 호스트는 목록 상단에 고정되고, Menubar에서도 빠르게 접근할 수 있어 개발 업무가 한층 편해집니다.";
"new_features_140_1_title" = "새 서비스 관리 인터페이스 & MySQL 지원";
"new_features_140_1_text" = "이제 ServBay에서 MySQL을 사용할 수 있습니다. 새로운 서비스 관리 UI와 MySQL 5.1~9.0까지 모든 버전을 지원하며 데이터 관리를 완벽히 도와드립니다.";
"new_features_140_2_title" = "데이터베이스 관리 기능 강화";
"new_features_140_2_text" = "향상된 관리 기능으로 MariaDB, MySQL, Redis 등 데이터베이스의 각 버전별 상세 설정이 가능합니다. 포트, 비밀번호, 데이터 가져오기와 백업까지 자유롭게 조절하세요.";
"new_features_140_3_title" = "기본 SQL 서버 설정";
"new_features_140_3_text" = "MySQL 지원 추가에 따라 기본 SQL 데이터베이스를 직접 선택할 수 있습니다. 개발에 맞는 MariaDB 또는 MySQL을 선택하세요.";
"new_features_140_4_title" = "Rewrite 규칙 지원";
"new_features_140_4_text" = "다양한 응용프로그램을 위해 Rewrite 규칙 설정이 지원됩니다. Laravel, WordPress, ThinkPHP 등 알맞은 URL Rewrite 옵션을 쉽게 선택하세요. 잘 모르겠으면 기본값을 사용하세요!";
"new_features_140_5_title" = "다중 도메인 지원과 커스텀 포트";
"new_features_140_5_text" = "항상 지원해주신 Pro 유저분들을 위한 기능! 다양한 도메인 및 포트를 직접 지정할 수 있습니다. 개발이 한층 자유롭고 편리해집니다.";

// 공통
"version_title" = "%@ 설정";
"bind_ip" = "바인드 IP";
"bind_port" = "바인드 포트";
"skip_networking" = "네트워킹 건너뛰기";
"datadir" = "데이터 디렉터리";
"socket" = "소켓";
"additional_parameters" = "추가 파라미터";

// redis
"redis_title" = "Redis 서비스 설정";
"redis_run_mode" = "실행 모드";
"redis_run_mode_master" = "마스터";
"redis_run_mode_slave" = "슬레이브";
"redis_bind_ip_prompt" = "127.0.0.1 ::1";
"redis_bind_port_prompt" = "6379";
"redis_master_ip" = "마스터 IP";
"redis_master_ip_prompt" = "10.0.0.2";
"redis_master_port" = "마스터 포트";
"redis_protected_mode" = "보호 모드";
"redis_require_password" = "비밀번호 필요";
"redis_password" = "비밀번호";
"redis_log_level" = "로그 레벨";
"redis_password_not_set" = "비밀번호를 설정하세요";
"redis_flush_button" = "Redis 데이터 전체 삭제";
"redis_flush_confirm_title" = "모든 Redis 데이터를 정말 삭제하시겠습니까?";
"redis_flushed" = "Redis 데이터가 삭제되었습니다";

// memcached
"memcached_title" = "Memcached 서비스 설정";
"memcached_memory" = "메모리 (MB)";
"memcached_connections" = "연결 수";

// mysql
"mysql_bind_ip_prompt" = "비우거나 쉼표로 구분, 예: 0.0.0.0,::";
"mysql_bind_port_prompt" = "3306";
"mysql_slowquerylog" = "느린 쿼리 로그";
"mysql_slowquerylog_file" = "느린 쿼리 로그 파일";
"mysql_additional_parameters" = "추가 [mysqld] 파라미터";

// postgresql
"pg_socket_only" = "소켓 전용";
"pg_allow_remote_access" = "원격 연결 허용";
"pg_remote_cidrs" = "허용된 IP CIDR";
"pg_remote_cidrs_prompt" = "0.0.0.0/0, ::/0";
"pg_max_connections" = "최대 연결 수";
"pg_shared_buffers" = "공유 버퍼";
"pg_work_mem" = "작업 메모리";
"pg_wal_buffers" = "WAL 버퍼";
"pg_max_wal_size" = "최대 WAL 크기";
"pg_min_wal_size" = "최소 WAL 크기";
"pg_command_line" = "명령줄";

// php
"php_title" = "%@ 서비스 설정";
"php_fpm_title" = "PHP FPM";
"php_fpm_pm" = "프로세스 매니저";
"php_fpm_pm_max_children" = "최대 자식 프로세스 수";
"php_fpm_pm_start_servers" = "시작 서버 수";
"php_fpm_pm_min_spare_servers" = "최소 대기 서버";
"php_fpm_pm_max_spare_servers" = "최대 대기 서버";
"php_fpm_pm_max_requests" = "최대 요청 수";
"php_fpm_listen_mode" = "리스닝 모드";
"php_fpm_display_error" = "오류 표시";
"php_fpm_memory_limit" = "메모리 제한";
"php_fpm_socket_file" = "소켓";
"php_fpm_listen_address" = "리스닝 주소";
"php_fpm_log_level" = "로그 레벨";
"php_fpm_log_file" = "FPM 로그 파일";
"php_fpm_log_error" = "FPM 오류 로그";
"php_fpm_errorlog_file" = "FPM 오류 로그 파일";
"php_fpm_slowlog" = "느린 로그";
"php_fpm_slowlog_file" = "느린 로그 파일";
"php_fpm_timeout" = "타임아웃";
"php_ini_title" = "php.ini";
"php_ini_expose_php" = "PHP 노출";
"php_ini_shortopentag" = "짧은 태그";
"php_ini_fix_pathinfo" = "pathinfo 수정";
"php_ini_max_execution_time" = "최대 실행 시간";
"php_ini_max_input_time" = "최대 입력 시간";
"php_ini_memory_limit" = "메모리 제한";
"php_ini_implicitflush" = "암시적 플러시";
"php_ini_output_compression" = "출력 압축";
"php_ini_enable_dl" = "dl() 사용";
"php_ini_enable_gc" = "GC 사용";
"php_ini_report_memleaks" = "메모리 누수 보고";
"php_ini_output_buffering" = "출력 버퍼링";
"php_ini_display_errors" = "오류 표시";
"php_ini_display_startup_errors" = "시작 오류 표시";
"php_ini_log_errors" = "오류 기록";
"php_ini_error_reporting" = "오류 보고";
"php_ini_errorlog_file" = "PHP 오류 로그 파일";
"php_ini_open_basedir" = "open_basedir";
"php_ini_open_basedir_prompt" = "비우거나 콜론(:)으로 구분, 예: /tmp/:/Applications/ServBay/www";
"php_ini_disable_functions" = "disable_functions";
"php_ini_disable_functions_prompt" = "비우거나 쉼표로 구분, 예: system,exec,shell_exec";
"php_ini_disable_classes" = "disable_classes";
"php_ini_disable_classes_prompt" = "비우거나 쉼표로 구분, 예: readfile,system";
"php_ini_post_max_size" = "최대 POST 크기";
"php_ini_file_uploads" = "파일 업로드";
"php_ini_upload_max_filesize" = "최대 업로드 파일 크기";
"php_ini_max_file_uploads" = "최대 파일 업로드 수";
"php_ini_upload_tmp_dir" = "임시 업로드 디렉터리";
"php_ini_upload_tmp_dir_prompt" = "비우면 시스템 기본값 사용";
"php_ini_post_max_size_alert" = "'post_max_size'는 'memory_limit'보다 커야 합니다.";
"php_ini_upload_max_filesize_alert" = "'upload_max_filesize'는 'post_max_size' 및 'memory_limit'보다 커야 합니다.";
"php_ini_timezone" = "타임존";
"php_ini_sendmail_path" = "Sendmail";
"php_ini_allow_url_fopen" = "URL fopen 허용";
"php_ini_allow_url_include" = "URL include 허용";
"php_ini_default_socket_timeout" = "소켓 타임아웃";
"php_opcache_memory_consumption" = "메모리 사용";
"php_opcache_interned_strings_buffer" = "내부 문자열 버퍼";
"php_opcache_max_accelerated_files" = "최대 가속 파일";
"php_opcache_revalidate_freq" = "재검증 주기";
"php_opcache_enable_cli" = "CLI 사용";
"php_opcache_enable_jit" = "JIT 사용";
"php_opcache_jit_crto" = "CRTO";
"php_opcache_jit_buffer_size" = "버퍼 크기";
"php_scws_charset" = "문자셋";
"php_scws_fpath" = "기본 파일 경로";
"php_xdebug_mode" = "Xdebug 모드";
"php_xdebug_start_with_request" = "요청 시 시작";
"php_xdebug_client_port" = "클라이언트 포트";
"php_extension_enabled_default" = "일부 PHP 확장(예: pgsql, sqlite 등)은 기본 활성화되어 있어 수동 활성화가 필요 없습니다. 실제 활성 모듈은 phpinfo()로 확인 가능합니다.";

// SSL
"ssl_migrate_new_version_title" = "새로운 SSL 관리로 업그레이드";
"ssl_migrate_new_version_text" = "보다 강력하고 안전한 새 SSL 관리 기능이 나왔습니다. 확인을 눌러 현재 인증서를 신규 플랫폼으로 마이그레이션하세요.";
"ssl_common_name" = "공통 이름";
"ssl_san" = "주제 대체 이름";
"ssl_serial_number" = "일련번호";
"ssl_usage_purpose" = "용도";
"ssl_algorithm" = "알고리즘";
"ssl_key_lengh" = "키 길이";
"ssl_algorithm_and_key_lenght" = "알고리즘";
"ssl_issuer" = "발급자";
"ssl_issued_at" = "발급일";
"ssl_expired_at" = "만료일";
"ssl_request_method" = "요청 방식";
"ssl_buy_certificate_link" = "SSL 인증서 구매";
"ssl_managed_by" = "관리자";
"ssl_cert_status" = "상태";
"ssl_action" = "조작";
"ssl_renew_alert_title" = "SSL 인증서 갱신";
"ssl_renew_alert_text" = "SSL 인증서를 갱신하시겠습니까?";
"ssl_renew_successful_tips" = "SSL 인증서 '%@' 갱신 완료";
"ssl_delete_alert_title" = "SSL 인증서 삭제";
"ssl_delete_alert_text" = "SSL 인증서 '%@'를 삭제하시겠습니까?";
"ssl_delete_successful_tips" = "SSL 인증서 '%@' 삭제 완료";
"ssl_new_certificate_button_tips" = "새로운 SSL 인증서 신청";
"ssl_tls_certificate_export_button_tips" = "'%@' 인증서와 키를 zip 파일로 내보내기";
"ssl_tls_open_folder_button_tips" = "'%@' 인증서 폴더 열기";
"ssl_new_certificate_title" = "인증서 신청";
"ssl_new_certificate_common_name_prompt" = "예: 내 웹사이트";
"ssl_new_certificate_san_domain_prompt" = "도메인은 쉼표 구분, 예: servbay.host, *.servbay.host";
"ssl_new_certificate_san_email_prompt" = "이메일은 쉼표 구분, 예: test@servbay.host";
"ssl_new_certificate_san_wildcard_error_prompt" = "와일드카드(*)로 시작할 수 없습니다. 리스트 마지막에 와일드카드 도메인을 입력하세요. 예: servbay.host,*.servbay.host";
"ssl_new_certificate_san_wildcard_upgrade_pro_prompt" = "ServBay Pro에서만 와일드카드(*) 도메인이 지원됩니다. 업그레이드하세요.";
"ssl_new_certificate_san_domain_exists_prompt" = "'%@'로 시작할 수 없으며, 인증서가 이미 존재합니다.";
"ssl_new_certificate_san_email_error_prompt" = "잘못된 이메일입니다";
"ssl_new_certificate_san_email_exists_prompt" = "'%@'로 시작할 수 없으며, 인증서가 이미 존재합니다.";
"ssl_new_certificate_san_email_upgrade_pro_prompt" = "여러 이메일 주소는 ServBay Pro에서만 지원됩니다. 업그레이드하세요.";
"ssl_new_certificate_san_domain_title" = "도메인";
"ssl_new_certificate_san_email_title" = "이메일 주소";
"ssl_issue_successful_tips" = "인증서 '%@' 발급 성공";
"ssl_common_name_invalid" = "이름이 올바르지 않거나 인증서 중복됨.";
"ssl_issuer_credentials_button" = "인증 정보 보기";
"ssl_eabkid_title" = "EAB 키 ID";
"ssl_eabkid_tips" = "xxxxxxxxxxxxxxxxx";
"ssl_eabhmackey_title" = "EAB HMAC 키";
"ssl_eabhmackey_tips" = "xxxxxxxx_xxxxxxxxxxxxx";
"ssl_certificate_used_by_host_title" = "인증서 사용 중";
"ssl_certificate_used_by_host_tips" = "인증서 '%@'가 '%@' 웹사이트에서 사용 중이므로 삭제할 수 없습니다.";
"ssl_dnsapi_provider_title" = "DNS API 공급자";
"ssl_dnsapi_provider_token_button" = "DNS API 토큰 보기";
"ssl_dnsapi_provider_token_title" = "DNS API 토큰";
"ssl_dnsapi_provider_token_example" = "예시:";
"ssl_acmesh_not_installed_title" = "acme.sh 미설치";
"ssl_acmesh_not_installed_desc" = "ACME 방식을 이용하려면 \"acme.sh\" 패키지를 설치해야 합니다. \"서비스\" 패널에서 설치하세요.";
"ssl_acmesh_enable_debug_button" = "디버그 활성화";
"ssl_acmesh_force_request_button" = "강제 요청";
"ssl_acmesh_dnssleep_button" = "DNS 자체 검사 건너뛰기";
"ssl_acmesh_dnssleep_seconds" = "대기 초";
"ssl_acmesh_dnssleep_help" = "DNS 전파 대기 시간, 로컬 DNS 자체 점검 건너뛰기, 로컬 DNS가 탈취된 경우(예: fake-ip 모드)에 적용됩니다.";
"ssl_usage_purpose_tls" = "TLS/SSL";
"ssl_usage_purpose_smime" = "S/MIME(이메일 서명)";
"ssl_usage_purpose_code" = "코드 서명";
"ssl_usage_purpose_document" = "문서 서명";
"ssl_certificate_request_method_servbay" = "ServBay CA";
"ssl_certificate_request_method_public" = "공용 CA(ACME)";
"ssl_certificate_request_method_import" = "가져오기";

// mailpit
"mailpit_title" = "Mailpit 서비스 설정";
"mailpit_nav_common" = "기본";
"mailpit_nav_smtp" = "SMTP";
"mailpit_nav_pop3" = "POP3";
"mailpit_nav_relay" = "릴레이";
"mailpit_max_messages" = "최대 메일 수";
"mailpit_max_age" = "최대 보관 기간";
"mailpit_enable_spam_assassin" = "SpamAssassin";
"mailpit_spam_assassin_method" = "방법";
"mailpit_spam_assassin_server_ip" = "서버 IP";
"mailpit_spam_assassin_server_port" = "포트";
"mailpit_webhook_url" = "Webhook URL";
"mailpit_webhook_limit" = "Webhook 제한";
"mailpit_smtp_port" = "SMTP 포트";
"mailpit_smtp_starttls" = "STARTTLS";
"mailpit_smtp_require_tls" = "SSL/TLS";
"mailpit_smtp_auth_username" = "사용자명";
"mailpit_smtp_auth_password" = "비밀번호";
"mailpit_smtp_max_recipients" = "최대 수신자 수";
"mailpit_smtp_allowed_recipients" = "허용된 수신자";
"mailpit_enable_pop3" = "POP3 서버 활성화";
"mailpit_pop3_port" = "POP3 서버 포트";
"mailpit_pop3_username" = "사용자명";
"mailpit_pop3_password" = "비밀번호";
"mailpit_pop3_enable_tls" = "SSL/TLS";
"mailpit_smtp_relay_host" = "호스트";
"mailpit_smtp_relay_port" = "포트";
"mailpit_smtp_relay_starttls" = "STARTTLS";
"mailpit_smtp_relay_allow_insecure" = "비보안 허용";
"mailpit_smtp_relay_auth" = "인증";
"mailpit_smtp_relay_username" = "사용자명";
"mailpit_smtp_relay_password" = "비밀번호";
"mailpit_smtp_relay_secret" = "시크릿";
"mailpit_smtp_relay_return_path" = "리턴 경로";
"mailpit_smtp_relay_allowed_recipients" = "허용 수신자";
"mailpit_smtp_relay_blocked_recipients" = "차단된 수신자";
"mailpit_smtp_relay_all" = "모두 릴레이";
"mailpit_smtp_relay_matching" = "매칭 릴레이";
"mailpit_enable_smtp_relay" = "SMTP 릴레이 활성화";

// WebServer
"webserver_nav_apache" = "Apache";
"webserver_nav_nginx" = "NGINX";
"webserver_nav_caddy" = "Caddy";
"webserver_http_port" = "HTTP 포트";
"webserver_https_port" = "HTTPS 포트";
"webserver_bind_ip" = "IP 바인딩";
"webserver_modules" = "모듈";
"webserver_ssl_protocals" = "SSL 프로토콜";

// MySQL/MariaDB/PostgreSQL
"db_reset_root_password_title" = "root 비밀번호 초기화";
"db_reset_root_password_desc" = "root 사용자 암호를 진짜로 초기화하시겠습니까?";
"db_change_root_password_title" = "root 비밀번호 변경";
"db_change_root_password_desc" = "root 사용자 암호를 변경하시겠습니까?";
"db_reset_root_password_alert_desc" = "root 비밀번호 재설정 중...";
"db_reset_root_password_success" = "root 비밀번호 초기화 성공";
"db_reset_root_password_failed" = "root 비밀번호 초기화 실패";
"db_change_root_password_alert_desc" = "root 비밀번호 변경 중...";
"db_change_root_password_success" = "root 비밀번호 변경 성공";
"db_change_root_password_failed" = "root 비밀번호 변경 실패";
"web_server_migrating_tip" = "%@ 마이그레이션 중";
"web_server_migrating_tip_failed" = "%@ 마이그레이션 실패(%@ 커스텀 설정은 이관 불가)";

// 시스템 진단
"system_diagnostics_yes" = "예";
"system_diagnostics_no" = "아니오";
"system_diagnostics_correct" = "정상";
"system_diagnostics_incorrect" = "비정상";
"system_diagnostics_user_info" = "사용자 정보";
"system_diagnostics_system_info" = "시스템 정보";
"system_diagnostics_servbay_info" = "ServBay 앱 정보";
"system_diagnostics_port_check" = "포트 검사";
"system_diagnostics_root_certificate_check" = "루트 인증서 및 체인 검사";
"system_diagnostics_software_package_check" = "패키지 검사";
"system_diagnostics_config_check" = "설정 검사";
"system_diagnostics_service_status_check" = "서비스 상태 검사";
"system_diagnostics_ai_gateway_check" = "AI Gateway 검사";
"system_diagnostics_mcp_server_check" = "MCP Server 검사";
"system_diagnostics_website_check" = "웹사이트 검사";
"system_diagnostics_dns_status_check" = "DNS 상태 진단";
"system_diagnostics_dns_checking_service" = "dnsmasq 서비스 확인";
"system_diagnostics_dns_service_running" = "실행 중";
"system_diagnostics_dns_service_stopped" = "중지됨(활성화되었지만 실행 중이 아님)";
"system_diagnostics_dns_service_disabled" = "사용 안 함";
"system_diagnostics_dns_service_status" = "dnsmasq 서비스 상태";
"system_diagnostics_dns_checking_system_config" = "시스템 DNS 구성 확인";
"system_diagnostics_system_dns" = "시스템 DNS";
"system_diagnostics_dns_external" = "외부 DNS";
"system_diagnostics_dns_rollback_file" = "DNS 복구 파일";
"system_diagnostics_dns_testing_local_server" = "로컬 DNS 서버 응답 테스트";
"system_diagnostics_dns_local_server_test" = "로컬 DNS 서버 테스트";
"system_diagnostics_dns_responding" = "응답 정상";
"system_diagnostics_dns_not_responding" = "응답 없음";
"system_diagnostics_dns_testing_public_domains" = "공용 도메인 이름 해석 테스트";
"system_diagnostics_dns_analyzing" = "DNS 진단 결과 분석";
"system_diagnostics_dns_diagnosis" = "진단 결과";
"system_diagnostics_dns_config_error" = "DNS 구성 오류";
"system_diagnostics_dns_issue_detail" = "문제 상세 정보";
"system_diagnostics_dns_config_error_detail" = "dnsmasq 서비스가 실행 중이지 않지만 시스템 DNS가 여전히 127.0.0.1로 설정되어 있어 도메인 이름을 해석할 수 없습니다.";
"system_diagnostics_dns_service_not_running" = "dnsmasq 서비스가 실행되어야 하지만 실행되고 있지 않습니다";
"system_diagnostics_dns_suggestion" = "권장";
"system_diagnostics_dns_suggest_start_service" = "dnsmasq 서비스를 시작하거나 설정에서 dnsmasq를 비활성화하세요.";
"system_diagnostics_dns_resolution_failed" = "모든 도메인 이름 해석에 실패했습니다";
"system_diagnostics_dns_possible_cause" = "가능한 원인";
"system_diagnostics_dns_upstream_issue" = "dnsmasq의 상위 DNS 서버에 접근할 수 없을 수 있습니다. 네트워크 연결을 확인하세요.";
"system_diagnostics_dns_network_issue" = "네트워크 연결에 문제가 있거나 DNS 서버를 사용할 수 없습니다.";
"system_diagnostics_dns_partial_failure" = "일부 도메인 이름 해석에 실패했습니다";
"system_diagnostics_dns_partial_failure_reason" = "일부 도메인이 차단되었거나 네트워크 연결이 불안정할 수 있습니다";
"system_diagnostics_dns_all_normal" = "DNS 서비스가 정상적으로 작동합니다";
"system_diagnostics_dns_checking_upstream" = "상위 DNS 서버 확인";
"system_diagnostics_dns_upstream_servers" = "업스트림 DNS 서버";
"system_diagnostics_dns_upstream_responding" = "응답 정상";
"system_diagnostics_dns_upstream_not_responding" = "응답 없음";
"system_diagnostics_dns_upstream_test" = "업스트림 DNS 테스트";
"system_diagnostics_dns_performance" = "DNS 성능 통계";
"system_diagnostics_dns_performance_stats" = "평균 %.0fms | 최고 %.0fms | 최저 %.0fms";
"system_diagnostics_dns_performance_slow" = "DNS 응답이 매우 느립니다(>1초). 네트워크 연결을 확인하거나 DNS 서버를 변경하는 것을 권장합니다.";
"system_diagnostics_dns_performance_warning" = "DNS 응답이 느립니다(>500ms). 웹사이트 접속 속도에 영향을 줄 수 있습니다.";
"system_diagnostics_dns_manual_fix_suggestion" = "권장 사항: ServBay 설정에서 dnsmasq를 직접 비활성화하거나 dnsmasq 서비스를 재시작하세요.";
"system_diagnostics_login_status" = "로그인 상태";
"system_diagnostics_logged_in" = "로그인됨";
"system_diagnostics_not_logged_in" = "로그인 안 됨";
"system_diagnostics_user_level" = "사용자 등급";
"system_diagnostics_vip_user" = "VIP 회원";
"system_diagnostics_free_user" = "무료 사용자";
"system_diagnostics_email" = "이메일";
"system_diagnostics_subscribe_level" = "구독 등급";
"system_diagnostics_trial" = "체험";
"system_diagnostics_payment_cycle" = "결제 주기";
"system_diagnostics_plan_status" = "구독 상태";
"system_diagnostics_plan_start_date" = "구독 시작일";
"system_diagnostics_plan_end_date" = "구독 종료일";
"system_diagnostics_trial_end_date" = "체험 종료일";
"system_diagnostics_current_time" = "현재 시간";
"system_diagnostics_cpu_architecture" = "CPU 아키텍처";
"system_diagnostics_servbay_runtime_architecture" = "ServBay Runtime 아키텍처";
"system_diagnostics_os_version" = "운영체제 버전";
"system_diagnostics_region_code" = "지역 코드";
"system_diagnostics_language_code" = "언어 코드";
"system_diagnostics_servbay_language" = "ServBay 언어";
"system_diagnostics_cpu_usage" = "CPU 사용률";
"system_diagnostics_memory" = "메모리";
"system_diagnostics_storage" = "스토리지";
"system_diagnostics_helper_running" = "실행 중";
"system_diagnostics_helper_not_installed" = "설치 안 됨";
"system_diagnostics_helper_not_running" = "실행 안 됨";
"system_diagnostics_helper_cannot_connect" = "연결 실패";
"system_diagnostics_helper_registered" = "등록됨";
"system_diagnostics_helper_not_registered" = "미등록";
"system_diagnostics_helper_allowed" = "허용";
"system_diagnostics_helper_not_allowed" = "비허용";
"system_diagnostics_helper_file" = "Helper 파일";
"system_diagnostics_helper_registered_to_launchctl" = "Helper가 launchctl에 등록됨";
"system_diagnostics_helper_allowed_on_login" = "로그인 시 Helper 백그라운드 실행 허용";
"system_diagnostics_helper_version" = "Helper 버전";
"system_diagnostics_helper_running_status" = "Helper 실행 상태";
"system_diagnostics_backup_task" = "자동 백업 작업";
"system_diagnostics_backup_task_installed_and_loaded" = "설치 및 로드 완료";
"system_diagnostics_backup_script_not_found" = "백업 스크립트를 찾을 수 없습니다";
"system_diagnostics_backup_script_not_executable" = "백업 스크립트를 실행할 수 없습니다";
"system_diagnostics_backup_script_permission_error" = "스크립트 권한을 확인할 수 없습니다";
"system_diagnostics_backup_plist_not_configured" = "원본 plist가 구성되지 않았습니다";
"system_diagnostics_backup_task_not_installed" = "백업 작업이 설치되지 않았습니다";
"system_diagnostics_backup_task_not_loaded" = "백업 작업이 로드되지 않았습니다";
"system_diagnostics_backup_task_status_error" = "작업 상태를 확인할 수 없습니다";
"system_diagnostics_backup_task_fix_suggestion" = "설정 > 백업에서 자동 백업을 구성하고 활성화하세요.";
"system_diagnostics_latest_version" = "최신 버전: %@";
"system_diagnostics_required_version" = "현재 버전 %1$@, 최소 요구 버전 %2$@";
"system_diagnostics_shipped_version" = "%1$@ (출고 버전: %2$@)";
"system_diagnostics_version" = "버전";
"system_diagnostics_runtime_version" = "Runtime 버전";
"system_diagnostics_script_version" = "Script 버전";
"system_diagnostics_permission_file" = "권한 파일";
"system_diagnostics_port_occupied" = "점유 중 - [%1$@] (pid:%2$@) (%3$@)";
"system_diagnostics_port_available" = "사용 가능";
"system_diagnostics_servbay_in_use" = "ServBay 사용 중";
"system_diagnostics_servbay_public_ca_status" = "ServBay Public CA";
"system_diagnostics_servbay_public_ca_installed_correctly" = "정상 설치";
"system_diagnostics_servbay_public_ca_not_installed" = "설치 안 됨";
"system_diagnostics_servbay_user_ca_status" = "ServBay User CA";
"system_diagnostics_servbay_user_ca_installed_correctly" = "정상 설치";
"system_diagnostics_servbay_user_ca_not_installed" = "설치 안 됨";
"system_diagnostics_servbay_user_ca_ecc_root" = "ServBay User CA - ECC 루트 인증서";
"system_diagnostics_ssl_certificate_file_correct" = "SSL 인증서 파일 정상";
"system_diagnostics_ssl_certificate_file_incorrect" = "SSL 인증서 파일 이상";
"system_diagnostics_servbay_user_ca_ecc_intermediate" = "ServBay User CA - ECC 중간 인증서";
"system_diagnostics_servbay_user_ca_certificate_chain" = "ServBay User CA 인증서 체인";
"system_diagnostics_certificate_chain_correct" = "인증서 체인 정상";
"system_diagnostics_certificate_chain_incorrect" = "인증서 체인 오류";
"system_diagnostics_certificate_configuration_error" = "인증서 설정 오류";
"system_diagnostics_website_directory_not_found" = "웹사이트 디렉터리가 없거나 올바르지 않음";
"system_diagnostics_nginx_config_file_not_found" = "웹사이트 NGINX 설정 파일이 없거나 올바르지 않음";
"system_diagnostics_website_directory_setting_error" = "웹사이트 디렉터리 설정 오류";
"system_diagnostics_website_untitled" = "무제목 웹사이트";
"system_diagnostics_error_details" = "%@ 오류 내용";
"system_diagnostics_not_running" = "%@ 실행 안 됨";
"system_diagnostics_not_initialized" = "초기화 안 됨";
"system_diagnostics_default_server" = "기본 %@ 서버";
"system_diagnostics_non_default_server" = "비-기본 %@ 서버";
"system_diagnostics_domain_check" = "도메인 검사";
"system_diagnostics_tld_hijacked" = "도메인/TLD [%@] 탈취됨";
"system_diagnostics_tld_hijacked_hint" = "-> DNS: [%@]";
"system_diagnostics_demo_website_check" = "데모 웹사이트 테스트";
"system_diagnostics_wait_hint" = "결과를 기다려주세요 ...";
"system_diagnostics_clash_running" = "❗️❗️Clash 실행 중, 로컬 웹사이트 접근 불가! 해결방법은 ServBay 도움말 센터 참조!";
"system_diagnostics_demo_website_deleted" = "데모 웹사이트 삭제됨";
"system_diagnostics_proxy" = "프록시 서버";
"system_diagnostics_proxy_hint" = "인터페이스: %@\n서버: %@";
"system_diagnostics_proxy_whitelist" = "도메인 화이트리스트";
"system_diagnostics_web_server" = "Web 서버";
"system_diagnostics_access_via" = "%1$@를 통해 포트 %2$@ 접속";
"system_diagnostics_php_connect_mysql" = "PHP가 %@ [%@]에 연결됨";
"system_diagnostics_demo_website_disabled" = "데모 웹사이트 비활성화됨";
"system_diagnostics_certificate_chain" = "인증서 체인 검사 [%@]";
"system_diagnostics_certificate_chain_detail" = "발급자 [%1$@]\n발급일 [%2$@] 만료일 [%3$@]";

// node.js 설정
"nodejs_config_title" = "%@ 설정";
"nodejs_config_registry_default" = "%@ 기본값";
"nodejs_config_registry_unset" = "(미설정)";
"nodejs_config_npm_registry_title" = "npm/pnpm 레지스트리";
"nodejs_config_yarn_registry_title" = "Yarn 레지스트리";
"nodejs_config_registry_url_prompt" = "레지스트리 URL 입력";
"nodejs_config_npm_cache_directory" = "NPM 캐시 디렉터리";
"nodejs_config_yarn_cache_directory" = "Yarn 캐시 디렉터리";

// python
"python_config_pip_mirror_title" = "Pip 미러";
"python_config_pip_mirror_url_prompt" = "미러 URL 입력";

// 인공지능 (AI)
"ai_settings_title" = "설정";
"ai_models_title" = "모델 (%@)";
"ai_ollama_download_thread" = "모델 다운로드 스레드 수";
"ai_ollama_debug" = "디버깅";
"ai_ollama_flash_attention" = "Flash Attention";
"ai_ollama_no_history" = "히스토리 저장안함";
"ai_ollama_no_prune" = "Prune 미실시";
"ai_ollama_sched_spread" = "스케줄 Spread";
"ai_ollama_multiuser_cache" = "다중 사용자 캐시";
"ai_ollama_kv_cache_type" = "K/V 캐시 타입";
"ai_ollama_gpu_overhead" = "GPU 오버헤드";
"ai_ollama_keepalive" = "연결 유지";
"ai_ollama_max_loaded_models" = "최대 로드 모델 수";
"ai_ollama_loadtimeout" = "로딩 타임아웃";
"ai_ollama_maxqueue" = "최대 큐";
"ai_ollama_num_parallel" = "동시 실행 수";
"ai_ollama_llm_library" = "LLM 라이브러리";
"ai_ollama_models" = "모델 폴더";
"ai_ollama_origins" = "오리진";
"ai_ollama_http_proxy" = "HTTP 프록시";
"ai_ollama_https_proxy" = "HTTPS 프록시";
"ai_ollama_no_proxy" = "프록시 사용 안 함";
"ai_models_setting_name" = "이름";
"ai_models_setting_model" = "모델";
"ai_models_setting_parameters" = "파라미터";
"ai_models_setting_size" = "파일 크기";
"ai_models_setting_action" = "동작";
"ai_models_run" = "모델 실행 %1$@:%2$@";
"ai_models_install_alert_title" = "모델 설치 %1$@:%2$@";
"ai_models_delete_alert_title" = "모델 삭제 %1$@:%2$@";
"ai_models_delete_alert_text" = "\"%1$@ (%2$@)\" 모델을 삭제하시겠습니까?";
"ai_models_delete_successful" = "%1$@ 모델 %2$@ (%3$@) 삭제됨.";
"ai_models_delete_failed" = "%1$@ 모델 %2$@ (%3$@) 삭제 실패.";
"ai_models_download_start" = "모델 %1$@ (%2$@) 다운로드 시작...";
"ai_models_download_finish" = "모델 %1$@ (%2$@) 다운로드 완료.";
"ai_models_get_manifest_failed" = "%1$@ (%2$@)의 다운로드 정보를 확인할 수 없습니다.";
"ai_models_downloading_title" = "%1$@ 모델 %2$@ %3$@ 다운로드 중...";
"ai_models_downloading_model" = "모델 레이어 다운로드: %1$@ (%2$@, %3$@), 속도: %4$@...";
"ai_models_downloading_model_powered_by" = "Ollama 공식 이미지, ServBay 다운로드 가속 제공";

// 개발자 역할 선택
"welcome_developer_role_title" = "역할을 선택하세요";
"welcome_developer_role_web" = "웹 개발자";
"welcome_developer_role_fullstack" = "풀스택 개발자";
"welcome_developer_role_php" = "PHP 개발자";
"welcome_developer_role_nodejs" = "Node.js 개발자";
"welcome_developer_role_python" = "Python 개발자";
"welcome_developer_role_java" = "Java 개발자";
"welcome_developer_role_go" = "Go 개발자";
"welcome_developer_role_dotnet" = ".NET 개발자";
"welcome_developer_role_ruby" = "Ruby 개발자";
"welcome_developer_role_rust" = "Rust 개발자";
"welcome_developer_role_llm" = "AI/대형 언어 모델 개발자";
"welcome_developer_role_network_security" = "네트워크 보안 엔지니어";
"welcome_developer_role_custom" = "커스텀";

// 터널
"tunnel_custom_domain_empty" = "커스텀 도메인이 비었습니다";
"tunnel_server_addr" = "서버 주소";
"tunnel_server_port" = "서버 포트";
"tunnel_sub_domain_empty" = "서브 도메인은 필수입니다";
"tunnel_cf_missing_cert_file" = "아직 로그인 권한을 부여하지 않았습니다";
"tunnel_cf_do_login" = "로그인 승인";
"tunnel_cf_cancel_login" = "승인 취소";
"tunnel_cf_config_missing" = "Cloudflared 구성 파일이 존재하지 않습니다. 먼저 Cloudflared 구성 패널에서 구성을 저장하세요.";
"tunnel_cf_config_empty" = "Cloudflared 설정이 비어 있습니다. 먼저 Cloudflared 설정 패널에서 도메인을 구성하고 저장하세요.";
"tunnel_cf_tunnel_setup_failed" = "Cloudflared 터널 생성에 실패했습니다. 로그인 인증을 완료했는지와 네트워크 연결을 확인해 주세요.";
"tunnel_cf_cancel_login_stopping_service" = "Cloudflared 서비스를 중지하는 중...";
"tunnel_cf_cancel_login_deleting_tunnel" = "원격 터널을 삭제하는 중...";
"tunnel_cf_cancel_login_cleaning_local" = "로컬 자격 증명과 설정을 정리하는 중...";
"tunnel_cf_cancel_login_done" = "권한이 취소되었습니다";
"tunnel_local_domain" = "로컬 도메인";
"tunnel_custom_domain" = "외부 도메인";
"tunnel_sub_domain" = "서브 도메인";
"tunnel_leave_blank_if_free_user" = "무료 사용자인 경우 빈칸으로 두세요";
"tunnel_frp_server_config" = "FRP 서버 구성(frps.toml)";

"tips_service_db_init_start" = "%@ 데이터베이스를 초기화하는 중 ...";
"tips_service_db_init_completed" = "%@ 데이터베이스 초기화 완료";

"package_install_failed" = "설치 실패";
"package_uninstall_failed" = "제거 실패";
"package_enable_failed" = "활성화 실패";
"package_disable_failed" = "비활성화 실패";
"package_error_unsupported_package" = "지원되지 않는 소프트웨어 패키지: %@";
"package_error_no_internet" = "네트워크 연결을 확인하세요.";
"package_error_runtime_too_old" = "ServBay Runtime을(를) %@ 이상 버전으로 업그레이드해야 합니다.";
"package_error_login_required" = "이 기능을 사용하려면 먼저 로그인해야 합니다.";
"package_error_rosetta_required" = "이 구버전 소프트웨어를 ARM 아키텍처의 Mac에서 실행하려면 Rosetta 2를 설치해야 합니다.";
"package_error_download_failed" = "패키지 다운로드에 실패했습니다. 네트워크 또는 파일 소스를 확인하세요.";
"package_error_hash_verification_failed" = "파일 검증 실패: %@. 파일이 다운로드 중 손상되었을 수 있으니, 설치를 다시 시도해 주세요.";
"package_error_download_network_error" = "네트워크 연결 실패: %@";
"package_error_unpack_failed" = "패키지 압축 해제에 실패했습니다.";
"package_error_delete_failed" = "파일 삭제 실패: %@.";
"package_error_hook_failed" = "수명 주기 후크 실행 실패: %@.";


"subscription_expired_title" = "구독이 만료되었습니다";
"subscription_expired_desc" = "고객님의 ServBay Pro/ServBay Team 구독이 만료되었거나 토큰이 만료되었습니다. 다시 로그인하거나 구독을 갱신하여 프리미엄 기능을 복구해 주세요.";

"package_vip_exclude" = "이 기능은 ServBay Pro/ServBay Team 구독 전용입니다. 구독을 업그레이드해 주세요.";
"minio_title" = "MinIO";
"minio_api_port" = "API 포트";
"minio_api_port_prompt" = "예: 9000";
"minio_root_user" = "루트 사용자";
"minio_root_user_prompt" = "MinIO 루트 사용자 이름";
"minio_root_password" = "루트 비밀번호";
"minio_root_password_prompt" = "MinIO 루트 사용자 비밀번호";
"minio_bind_ip_prompt" = "예: 127.0.0.1";
"minio_data_path" = "데이터 경로";
"minio_data_path_prompt" = "MinIO 데이터 저장 경로";
"meilisearch_title" = "Meilisearch";
"meilisearch_bind_ip_prompt" = "예: 127.0.0.1";
"meilisearch_port" = "포트";
"meilisearch_port_prompt" = "예: 7700";
"meilisearch_master_key" = "마스터 키";
"meilisearch_master_key_prompt" = "프로덕션 환경에서는 최소 16바이트 이상이어야 합니다.";
"meilisearch_data_path" = "데이터 경로";
"meilisearch_data_path_prompt" = "Meilisearch 데이터 저장 경로";
"meilisearch_environment" = "실행 환경";
"meilisearch_log_level" = "로그 수준";
"typesense_title" = "Typesense";
"typesense_bind_ip_prompt" = "예: 127.0.0.1";
"typesense_port" = "포트";
"typesense_port_prompt" = "예: 8108";
"typesense_api_key" = "API 키";
"typesense_api_key_prompt" = "API를 보호하는 데 사용되는 키";
"typesense_data_path" = "데이터 경로";
"typesense_data_path_prompt" = "Typesense 데이터 저장 경로";

// 메뉴 바
"menu_discord" = "Discord 그룹";
"menu_telegram" = "Telegram 그룹";
"button_show_less" = "적게 표시";
"button_show_more" = "+ %d개 더...";
"no_services_enabled" = "활성화된 서비스가 없습니다";
"filter_all" = "전체";
"filter_by_certificate_type" = "인증서 유형별로 필터링";
"filter_by_issuer" = "발급자별로 필터링";
"ssl_certificate_type" = "인증서 유형";
"dashboard_websites" = "웹사이트 목록";
"host_column_name" = "이름";
"host_column_hostnames" = "도메인 이름";
"host_column_type" = "유형";
"host_column_status" = "상태";
"host_column_actions" = "작업";
"no_websites_found" = "웹사이트 없음";
"add_new_website" = "새 웹사이트 추가";
"add_website" = "웹사이트 추가";
"enabled" = "사용 중";
"disabled" = "사용 중지됨";
"custom_configuration" = "사용자 지정 구성";
"quick_access_website" = "웹사이트 빠른 접근";
"open_website_folder" = "웹사이트 디렉터리 열기";
"disable_website" = "웹사이트 비활성화";
"enable_website" = "웹사이트 활성화";
"edit_website" = "웹사이트 편집";
"delete_website" = "웹사이트 삭제";
"delete_website_title" = "웹사이트 삭제";
"delete_website_message" = "웹사이트 \"%@\"를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.";
"website_enabled_tips" = "웹사이트 \"%@\"이(가) 활성화되었습니다.";
"website_disabled_tips" = "웹사이트 \"%@\"이(가) 비활성화되었습니다";
"website_deleted_tips" = "웹사이트 \"%@\"가 삭제되었습니다";
"open_with_editor" = "편집기로 열기";
"Apache Rewrite" = "Apache 재작성";
"Nginx Rewrite" = "Nginx 재작성";
"Caddy Rewrite" = "Caddy 재작성";
"rewrite_builtin_rules" = "내장 규칙";
"rewrite_custom_rules" = "사용자 정의 규칙";
"rewrite_no_custom_rules" = "사용자 지정 규칙이 없습니다";
"rewrite_new_rule" = "새 규칙";
"rewrite_rule" = "규칙";
"rewrite_rule_name" = "규칙 이름";
"rewrite_enter_rule_name" = "규칙 이름 입력";
"rewrite_invalid_name_hint" = "문자, 숫자, 밑줄 및 하이픈만 사용할 수 있습니다.";
"rewrite_rule_content" = "규칙 내용";
"rewrite_highlight_editor" = "하이라이트 편집기";
"rewrite_syntax_reference" = "문법 참고";
"rewrite_usage" = "사용 현황";
"rewrite_create" = "생성";
"rewrite_create_success" = "규칙이 성공적으로 생성되었습니다";
"rewrite_create_success_message" = "재작성 규칙이 성공적으로 생성되었습니다.";
"rewrite_create_failed" = "규칙 생성 실패";
"rewrite_save_success" = "규칙이 성공적으로 저장되었습니다";
"rewrite_save_failed" = "규칙 저장에 실패했습니다";
"rewrite_cannot_delete" = "규칙을 삭제할 수 없습니다";
"rewrite_cannot_delete_tips" = "이 규칙은 웹사이트에서 사용 중이므로 삭제할 수 없습니다. 먼저 모든 웹사이트에서 이 규칙을 제거하세요.";
"rewrite_delete_success_message" = "규칙이 성공적으로 삭제되었습니다";
"rewrite_delete_failed" = "규칙 삭제 실패";
"rewrite_duplicate_as_custom" = "사용자 지정 규칙으로 복사";
"rewrite_duplicate_rule" = "규칙 복사";
"rewrite_new_rule_name" = "새 규칙 이름 입력";
"rewrite_duplicate" = "복사";
"rewrite_duplicate_success" = "규칙이 성공적으로 복사되었습니다";
"rewrite_duplicate_success_message" = "규칙이 성공적으로 복사되었습니다.";
"rewrite_duplicate_failed" = "규칙 복사에 실패했습니다";
"rewrite_export" = "내보내기";
"rewrite_apache" = "Apache 재작성";
"rewrite_nginx" = "Nginx 재작성";
"rewrite_caddy" = "Caddy 재작성";
"rewrite_click_add_rule" = "+를 클릭하여 규칙 추가";
"rewrite_error_invalid_name" = "규칙 이름이 유효하지 않습니다";
"rewrite_error_duplicate_name" = "규칙 이름이 이미 존재합니다";
"rewrite_error_rule_not_found" = "규칙이 존재하지 않습니다";
"rewrite_error_cannot_modify_builtin" = "내장 규칙은 수정할 수 없습니다";
"rewrite_error_cannot_delete_builtin" = "내장 규칙은 삭제할 수 없습니다";
"rewrite_error_rule_in_use" = "규칙이 %d개 사이트에서 사용 중입니다";
"preset_dns_providers" = "프리셋 DNS";
"preset_dns_114" = "114 DNS";
"preset_dns_dnspod" = "DNSPod";
"preset_dns_aliyun" = "알리 DNS";
"preset_dns_cloudflare" = "Cloudflare";
"preset_dns_google" = "Google DNS";
"preset_dns_opendns" = "OpenDNS";
"preset_dns_ibm" = "IBM Quad9";
"preset_dns_114_desc" = "중국 텔레콤 공용 DNS, 중국 내에서 빠른 접속 속도";
"preset_dns_dnspod_desc" = "텐센트 DNSPod 공용 DNS";
"preset_dns_aliyun_desc" = "알리윈 공용 DNS";
"preset_dns_cloudflare_desc" = "Cloudflare 공용 DNS, 개인정보 보호 중시";
"preset_dns_google_desc" = "Google 공용 DNS";
"preset_dns_opendns_desc" = "Cisco OpenDNS, 자녀 보호 기능 제공";
"preset_dns_ibm_desc" = "IBM Quad9, 안전 보호 제공";
"validation_error_port_range" = "포트는 1-65535 사이여야 합니다";
"validation_error_cache_size_range" = "캐시 크기는 0-10000 사이여야 합니다";
"validation_error_invalid_ip" = "유효하지 않은 IP 주소";
"validation_error_invalid_server_address" = "잘못된 서버 주소";
"validation_error_ttl_negative" = "TTL은 음수가 될 수 없습니다";
"validation_error_max_queries_range" = "최대 동시 쿼리 수는 0~10000 사이여야 합니다.";
"current_system_dns" = "현재 시스템 DNS";
"refresh_dhcp_dns" = "DHCP DNS 새로 고침";
"dns_refreshed_restarting" = "DNS가 새로 고쳐졌으며, dnsmasq 서비스를 다시 시작하고 있습니다.";
"dns_refreshed" = "DNS가 새로 고쳐졌습니다";
"no_dhcp_dns_found" = "DHCP DNS를 찾을 수 없습니다";
"dns_auto_switched_to_dhcp" = "네트워크 변경이 감지되어 DNS가 자동으로 DHCP DNS로 전환되었습니다.";

// Ollama 模型刷新
"gadget_last_refresh" = "마지막으로 모델 목록을 새로 고침한 시간: %@";
"gadget_never_refreshed" = "한 번도";
"gadget_processing_model" = "처리 중: %@ (%d/%d)";
"help_tips_refresh" = "모델 목록 새로 고침";
"tips_ollama_models_refresh_success" = "새로 고침 완료: 모델 %d개가 추가되고, 만료된 모델 %d개가 정리되었습니다.";
"tips_ollama_models_refresh_no_change" = "모델 목록이 최신입니다";
"tips_ollama_models_refresh_failed" = "새로 고침 실패: %@";
"tips_ollama_models_refresh_cancelled" = "새로고침이 취소되었습니다";
"button_refresh_model_list" = "모델 목록 새로 고침";


"minio_console_port" = "Web UI Port";
"minio_console_port_prompt" = "For example: 9001";
"navmenu_ai_gateway" = "AI 게이트웨이";
"navmenu_mcp" = "MCP";
"aigateway.title" = "AI 게이트웨이";
"aigateway.nav.overview" = "개요";
"aigateway.nav.channels" = "채널";
"aigateway.nav.keys" = "가상 키";
"aigateway.nav.routing_strategy" = "라우팅 정책";
"aigateway.nav.endpoints" = "엔드포인트";
"aigateway.nav.statistics" = "통계";
"aigateway.nav.monitoring" = "모니터링";
"aigateway.action.refresh" = "새로 고침";
"aigateway.action.copy" = "복사";
"aigateway.channel.add" = "채널 추가";
"aigateway.channel.edit" = "채널 편집";
"aigateway.channel.testAll" = "일괄 연결성 테스트";
"aigateway.channel.name" = "이름";
"aigateway.channel.type" = "유형";
"aigateway.channel.priority" = "우선순위";
"aigateway.channel.weight" = "가중치";
"aigateway.channel.status" = "상태";
"aigateway.channel.actions" = "작업";
"aigateway.channel.enabled" = "사용";
"aigateway.channel.disabled" = "비활성화됨";
"aigateway.channel.empty" = "채널이 없습니다. 위의 「+」를 클릭하여 추가하세요.";
"aigateway.channel.deleteConfirm" = "이 채널을 삭제하시겠습니까?";
"aigateway.channel.test" = "연결 테스트";
"aigateway.channel.testing" = "테스트 중...";
"aigateway.channel.test.success" = "연결 상태 정상";
"aigateway.channel.test.failed" = "연결 실패";
"aigateway.channel.test.reachable" = "엔드포인트 도달 가능";
"aigateway.channel.test.unreachable" = "엔드포인트에 접근할 수 없습니다";
"aigateway.channel.test.keyValid" = "키가 유효함";
"aigateway.channel.test.keyInvalid" = "키가 유효하지 않습니다";
"aigateway.channel.test.keyUntested" = "인증되지 않은 키";
"aigateway.channel.test.authFailed" = "키 인증 실패";
"aigateway.channel.error.testTitle" = "연결성 테스트 실패";
"aigateway.channel.error.saveTitle" = "채널을 저장할 수 없습니다";
"aigateway.channel.error.unauthorized" = "서비스 제공자가 요청을 거부했습니다. API Key가 올바른지 확인하고, 현재 엔드포인트에 접근할 수 있는 권한이 있는지 확인하세요.";
"aigateway.channel.error.unauthorizedWithDetail" = "서비스 제공자가 요청을 거부했습니다. API Key가 올바른지 확인하고, 현재 엔드포인트에 접근 권한이 있는지 확인하세요.\n\n서비스 제공자 응답: %@";
"aigateway.channel.error.fixConnectionBeforeSave" = "연결성 테스트 실패 문제를 먼저 해결한 후에 해당 채널을 저장하세요.";
"aigateway.channel.error.duplicateName" = "채널 이름이 이미 존재합니다. 다른 이름으로 변경해 주세요.";

// Channel wizard
"aigateway.channel.wizard.title" = "채널 추가";
"aigateway.channel.wizard.selectProvider" = "Provider 선택";
"aigateway.channel.wizard.configure" = "채널 구성";
"aigateway.channel.wizard.review" = "정보 확인";
"aigateway.channel.wizard.name" = "채널 이름";
"aigateway.channel.wizard.apiKey" = "API 키";
"aigateway.channel.wizard.baseUrl" = "기본 URL";
"aigateway.channel.wizard.baseUrlRequired" = "기본 URL은 비어 있을 수 없습니다";
"aigateway.channel.wizard.nameRequired" = "채널 이름은 비워둘 수 없습니다";
"aigateway.channel.wizard.models" = "지원되는 모델(쉼표로 구분)";
"aigateway.channel.wizard.region" = "영역 엔드포인트";
"aigateway.channel.wizard.saving" = "저장 중...";
"aigateway.channel.wizard.created" = "채널이 성공적으로 생성되었습니다";

// Provider groups
"aigateway.provider.group.mainstream" = "주류";
"aigateway.provider.group.china" = "중국";
"aigateway.provider.group.local" = "로컬";
"aigateway.provider.group.custom" = "사용자 정의";
"aigateway.provider.group.codingPlan" = "Coding Plan";
"aigateway.provider.codingPlan.oauthJumpHint" = "이 항목은 구독 계정 인증을 사용하며, 클릭 후 '구독 계정' 페이지로 이동하여 연결을 완료합니다.";

// v1.23 渠道能力探测摘要
"aigateway.channel.probe.row.protocols" = "프로토콜 엔드포인트:";
"aigateway.channel.probe.row.models" = "모델:";
"aigateway.channel.probe.row.modelsCount" = "%d개";
"aigateway.channel.probe.row.plan" = "패키지 유형:";
"aigateway.channel.probe.row.claudeNames" = "Claude 모델명:";
"aigateway.channel.probe.row.tierAware" = "등급별 할당:";
"aigateway.channel.probe.fact.yes" = "바로 사용 가능";
"aigateway.channel.probe.fact.no" = "지원되지 않음";
"aigateway.channel.probe.claudeNames.unsupported" = "모델 매핑 필요";
"aigateway.channel.probe.tierAware.yes" = "업스트림 자체에서 등급에 따라 다른 모델을 반환합니다.";
"aigateway.channel.probe.tierAware.no" = "3개 등급 동일 모델 반환, 등급 매핑 필요";
"aigateway.channel.probe.fact.unknown" = "확인할 수 없음";
"aigateway.channel.probe.protocols.none" = "사용 가능한 프로토콜이 감지되지 않았습니다";
"aigateway.channel.probe.models.none" = "업스트림에서 모델 목록을 반환하지 않았습니다.";
"aigateway.channel.probe.plan.codingPlan" = "Coding Plan (월 정액)";
"aigateway.channel.probe.plan.payAsYouGo" = "종량제";
"aigateway.channel.probe.plan.subscription" = "구독";
"aigateway.channel.probe.partial" = "확인되지 않은 항목 %d개, 펼쳐서 원인 확인";
"aigateway.channel.wizard.advanced" = "고급 설정";
"aigateway.channel.wizard.advanced.prefilled" = "탐지 결과에 따라 미리 입력됨";
"aigateway.channel.oauth.unavailableNote" = "이 제공자는 OAuth 인증을 지원하지만, 현재 게이트웨이에서 해당 기능을 제공하지 않으므로 대신 API 키를 사용해 주세요.";

// Region

// v1.23 渠道能力探测摘要

// Region
"aigateway.region.china" = "중국";
"aigateway.region.international" = "전세계";

// G5 OAuth
"aigateway.channel.oauth.supported" = "이 provider는 OAuth 계정 인증을 통해 API Key를 대체하는 것을 지원합니다.";
"aigateway.channel.oauth.section" = "OAuth 인증(선택 사항)";
"aigateway.channel.oauth.hint" = "공식 계정으로 로그인하여 API Key를 대신하세요. 인증이 완료되면 채널이 백엔드에서 자동으로 생성됩니다.";
"aigateway.channel.oauth.startButton" = "OAuth 인증 시작";
"aigateway.channel.oauth.reopenBrowser" = "권한 페이지 다시 열기";
"aigateway.channel.oauth.pasteCodeHint" = "브라우저에서 인증을 완료한 후, 인증 코드를 아래에 붙여넣으세요:";
"aigateway.channel.oauth.codePlaceholder" = "인증 코드 붙여넣기";
"aigateway.channel.oauth.completeButton" = "승인 완료";
"aigateway.channel.oauth.success" = "인증이 완료되었으며, 채널이 생성되었습니다.";

// Key
"aigateway.key.add" = "새 키 만들기";
"aigateway.key.create" = "새로운 가상 키 생성";
"aigateway.key.edit" = "가상 키 편집";
"aigateway.key.prefixReadonly" = "키 프리픽스: %@ (평문은 생성 시 한 번만 표시됩니다. 교체가 필요하면 목록에서 \"교체\"를 사용하세요.)";
"aigateway.key.name" = "이름";
"aigateway.key.prefix" = "키 프리픽스";

// Key
"aigateway.key.allowedModels" = "허용된 모델";
"aigateway.channel.fetchModels" = "모델 가져오기";
"aigateway.channel.fetchModels.failed" = "모델을 가져오는 데 실패했습니다";
"aigateway.channel.wizard.modelsManual" = "또는 직접 입력하세요(쉼표로 구분)";
"aigateway.channel.wizard.modelsChipSelectedHint" = "목록에서 모델을 선택했습니다. 직접 입력하려면 모든 선택을 먼저 취소하세요.";
"aigateway.channel.models.all" = "모든 모델(제한 없음)";
"aigateway.channel.models.custom" = "사용자 정의";
"aigateway.channel.models.custom.inputHint" = "수동 입력(목록에 없는 모델용, 쉼표로 구분)";
"aigateway.channel.models.custom.empty" = "모델을 최소한 하나 선택하거나, \"모든 모델(제한 없음)\"으로 다시 전환하세요.";
"aigateway.channel.models.custom.chipSelected" = "목록에서 모델을 선택했습니다. 수동 입력을 하려면 먼저 모든 선택을 취소하세요.";

// 编辑渠道高级配置 - Section 标题

// 编辑渠道高级配置 - Section 标题

// 编辑渠道高级配置 - Section 标题
"aigateway.channel.edit.section.basic" = "기본 설정";
"aigateway.channel.edit.section.billing" = "가격 및 요금";
"aigateway.channel.edit.section.balance" = "잔액 출처";
"aigateway.channel.edit.section.quota" = "한도 제한";
"aigateway.channel.edit.billingStructure" = "요금 방식";
"aigateway.channel.billing.payAsYouGo" = "종량제";
"aigateway.channel.billing.subscription" = "구독";
"aigateway.channel.billing.package" = "패키지";
"aigateway.channel.edit.rateMultiplier" = "요금 배율";
"aigateway.channel.edit.subscriptionExpiresAt" = "구독 만료 시간";
"aigateway.channel.edit.balanceSource" = "잔액 출처";
"aigateway.channel.balance.fixed" = "고정 잔액";
"aigateway.channel.balance.ossBilling" = "자동 동기화";
"aigateway.channel.balance.manual" = "수동 설정";
"aigateway.channel.edit.ossBillingKind" = "동기화 인터페이스";
"aigateway.channel.edit.apiKeyKeepHint" = "비워두면 변경되지 않습니다";
"aigateway.channel.ossBilling.auto" = "자동 인식";
"aigateway.channel.ossBilling.dashboardBilling" = "대시보드 결제";
"aigateway.channel.ossBilling.newApi" = "새로운 API";
"aigateway.channel.ossBilling.litellm" = "LiteLLM";
"aigateway.channel.edit.cachedBalance" = "현재 잔액 캐시";
"aigateway.channel.edit.balanceUpdatedAt" = "잔액 업데이트 시간";
"aigateway.channel.edit.refreshBalance" = "잔액 새로 고침";
"aigateway.channel.edit.quotaType" = "한도 유형";
"aigateway.channel.quota.unlimited" = "무제한";
"aigateway.channel.quota.tokenLimit" = "토큰 한도";
"aigateway.channel.quota.requestLimit" = "요청 횟수 제한";
"aigateway.channel.quota.amountLimit" = "금액 한도(USD)";
"aigateway.channel.quota.subscription" = "구독 한도";
"aigateway.channel.edit.quotaLimitUsd" = "한도 상한 (USD)";
"aigateway.channel.edit.quotaLimit" = "한도 상한";
"aigateway.channel.edit.quotaLimitInvalid" = "한도 상한에는 유효한 숫자를 입력해 주세요";
"aigateway.channel.edit.quotaVipNotice" = "한도 제한은 Pro 기능이며, 업그레이드 후 사용 가능합니다.";
"aigateway.channel.edit.quotaPeriod" = "주기 재설정";
"aigateway.channel.quota.daily" = "매일";
"aigateway.channel.quota.weekly" = "매주";
"aigateway.channel.quota.monthly" = "매월";
"aigateway.channel.quota.custom" = "사용자 정의";
"aigateway.channel.edit.quotaDrift" = "한도 롤오버 허용";

// 版本升级引导（gateway bin 版本 < GUI 契约要求时弹出）
"aigateway_upgrade_alert_title" = "ServBay AI Gateway를 업그레이드해야 합니다";
"aigateway_upgrade_alert_text" = "계속 진행하려면 \"ServBay AI Gateway\"를 %1$@ 이상 버전으로 먼저 업그레이드해야 합니다.\n\"%2$@\"-\"%3$@\"로 이동하여 \"ServBay AI Gateway\"를 업그레이드해 주세요.";
"aigateway.upgrade.banner.title" = "AI Gateway 버전이 너무 오래되었습니다.";
"aigateway.upgrade.banner.message" = "현재 AI Gateway v%1$@은(는) 구버전입니다. v%2$@+로 업그레이드한 후 다시 시도해 주세요.";

// G1/G2/G3/G4/G5: 添加渠道向导后台探测 / 测试连通性面板 / upstream_kind badge / 概览周期轮询 / URL 规范化提示
"aigateway.channel.probe.detecting" = "검사 중...";
"aigateway.channel.probe.detected" = "%@ 감지됨";
"aigateway.channel.probe.suggestNormalize" = "%@ 사용을 권장합니다";
"aigateway.channel.probe.useNormalize" = "이것을 사용";
"aigateway.channel.probe.error" = "주소 확인 실패: %@";
"aigateway.channel.test.endpoint" = "엔드포인트";
"aigateway.channel.test.key" = "키";
"aigateway.channel.test.balance" = "잔액";
"aigateway.channel.test.modelsAvailable" = "사용 가능한 모델: %d개";
"aigateway.channel.test.upstreamKind" = "업스트림 유형";
"aigateway.channel.upstreamKind.newApi" = "new-api 중계";
"aigateway.channel.upstreamKind.oneApi" = "one-api 중계";
"aigateway.channel.upstreamKind.openaiOfficial" = "OpenAI 공식";
"aigateway.channel.upstreamKind.anthropicNative" = "Anthropic 공식";
"aigateway.channel.upstreamKind.geminiNative" = "Gemini 공식";
"aigateway.channel.balanceSource.autoRefresh" = "종량제, 자동 새로고침";
"aigateway.channel.balanceSource.manual" = "수동 설정, 자동 새로 고침 없음";
"aigateway.channel.baseUrlHelpTooltip" = "OpenAI: https://api.openai.com/v1  |  중계/사용자 정의: 보통 .../v1";
"aigateway.channel.save.urlMismatchTitle" = "기본 URL이 권장 값과 다릅니다";
"aigateway.channel.save.urlMismatchMessage" = "당신의 Base URL은 %1$@입니다. %2$@로 변경하는 것이 좋습니다. 현재 주소를 계속 사용하시겠습니까?";
"aigateway.channel.save.urlMismatchKeep" = "현재 계속 사용";
"aigateway.channel.save.urlMismatchUseNormalized" = "추천 주소로 변경";
"aigateway.channel.badge.relay" = "환승";
"aigateway.channel.badge.official" = "공식";

// AI Gateway 1.16 首次成功统一向导
"aigateway.onboarding.status.unknown" = "구성 상태를 알 수 없음";
"aigateway.onboarding.error.conflict" = "기존 클라이언트 연결 또는 다른 서비스 설정이 감지되었습니다. 교체를 확인하거나 먼저 이전 연결을 제거하세요.";
"aigateway.onboarding.error.invalidConfig" = "구성 파일이 손상되었거나 읽을 수 없거나 읽기 전용입니다. 기존 구성을 보호하기 위해 ServBay가 쓰기를 수행하지 않았습니다.";
"aigateway.onboarding.error.backup" = "구성 백업을 생성할 수 없어 새 키가 취소되었습니다.";
"aigateway.onboarding.error.verify" = "테스트 요청이 실패하여 기존 설정으로 복원하고 새 인증서를 취소했습니다.";
"aigateway.onboarding.error.rollback" = "연결에 실패했으며, 구성 복구 또는 키 해제가 완전히 완료되지 않았습니다. 백업을 확인해 주세요.";
"aigateway.onboarding.error.receipt" = "액세스 기록을 안전하게 저장할 수 없어 구성을 복원하고 새 키를 취소했습니다.";
"aigateway.onboarding.error.clientFailed" = "%1$@ 설정 실패: %2$@ 다른 완료된 변경 사항이 복원되었습니다.";
"aigateway.onboarding.error.noClients" = "최소한 하나의 클라이언트를 선택하세요.";
"aigateway.onboarding.error.detail.network" = "서비스에 연결할 수 없습니다. 네트워크와 채널 주소를 확인해 주세요.";
"aigateway.onboarding.error.detail.auth" = "계정 자격 증명이 인증되지 않았습니다. 채널 키를 확인해 주세요.";
"aigateway.onboarding.error.detail.model" = "선택한 모델은 현재 사용할 수 없습니다. 다른 모델을 선택해 주세요.";
"aigateway.onboarding.error.detail.generation" = "서비스는 연결되었지만 테스트 요청이 성공하지 않았습니다.";
"aigateway.onboarding.error.detail.limit" = "현재 요금제 또는 사용량 제한으로 인해 새로운 액세스 자격 증명을 생성할 수 없습니다.";
"aigateway.onboarding.error.detail.conflict" = "동일한 이름의 클라이언트 구성이나 액세스 자격 증명이 이미 있습니다.";
"aigateway.onboarding.error.detail.file" = "클라이언트 구성 파일을 안전하게 업데이트할 수 없습니다.";
"aigateway.onboarding.error.detail.unknown" = "작업이 완료되지 않았습니다. 잠시 후 다시 시도해 주세요.";

// AI Gateway 用户可见错误与监控说明

// AI Gateway 用户可见错误与监控说明
"aigateway.userError.network" = "AI Gateway에 연결할 수 없습니다. 서비스가 실행 중인지 확인해 주세요.";
"aigateway.userError.authorization" = "관리 권한을 확인할 수 없습니다. AI Gateway를 재시작한 후 다시 시도해 주세요.";
"aigateway.userError.response" = "AI Gateway가 인식할 수 없는 데이터를 반환했습니다. 업그레이드 후 다시 시도해 주세요.";
"aigateway.userError.generic" = "현재 작업을 완료할 수 없습니다. 잠시 후 다시 시도해 주세요.";
"aigateway.channel.oauth.unavailableConfiguration" = "이 로그인 방식은 아직 설정이 완료되지 않았습니다.";
"aigateway.monitoring.detailUnavailable" = "표시할 수 있는 자세한 설명이 없습니다.";
"aigateway.monitoring.detail.ruleApplied" = "요청이 라우팅 규칙에 따라 처리되었습니다.";
"aigateway.monitoring.detail.noChannel" = "요청 시 사용할 수 있는 AI 서비스 채널이 없습니다.";
"aigateway.monitoring.detail.failover" = "원래 채널을 사용할 수 없어 요청이 자동으로 다른 채널로 전환되었습니다.";
"aigateway.event.type.unknown" = "기타 이벤트";
"aigateway.channel.type.unknown" = "기타 채널";
"aigateway.stat.requestType.unknown" = "기타 요청";

// 网关能力的用户友好名称

// 网关能力的用户友好名称
"aigateway.capability.openaiChat" = "대화 요청";
"aigateway.capability.openaiResponses" = "Responses 요청";
"aigateway.capability.textCompletion" = "텍스트 자동 완성";
"aigateway.capability.embeddings" = "벡터 임베딩";
"aigateway.capability.images" = "이미지 생성";
"aigateway.capability.speech" = "음성 생성";
"aigateway.capability.transcription" = "음성 문자 변환";
"aigateway.capability.audioTranslation" = "음성 번역";
"aigateway.capability.modelList" = "모델 목록";
"aigateway.capability.anthropicMessages" = "Anthropic 대화";
"aigateway.capability.tokenCount" = "토큰 카운트";
"aigateway.capability.geminiGeneration" = "Gemini 콘텐츠 생성";
"aigateway.capability.streamingConversion" = "서비스 간 스트리밍 변환";
"aigateway.capability.accountAuthorization" = "계정 로그인 인증";
"aigateway.capability.other" = "기타 기능";
"aigateway.codingPlan.parallelLimit" = "최대 동시성";
"aigateway.allowance.source.official" = "공식 구독";
"aigateway.allowance.source.upstream" = "업스트림 잔액";
"aigateway.allowance.source.estimate" = "로컬 추정";
"aigateway.allowance.source.manual" = "수동 설정";
"aigateway.allowance.freshness.fresh" = "방금 업데이트됨";
"aigateway.allowance.freshness.stale" = "오래되었을 수 있음";
"aigateway.allowance.confidence.verified" = "확인됨";
"aigateway.allowance.confidence.reported" = "보고됨";
"aigateway.allowance.confidence.estimated" = "추정";
"aigateway.allowance.observed" = "마지막 업데이트";
"aigateway.allowance.expires" = "만료";
"aigateway.allowance.resets" = "시간 재설정";
"aigateway.allowance.remaining" = "남은 %@";
"aigateway.allowance.used" = "사용됩 %@";
"aigateway.allowance.exhausted" = "한도가 소진되었습니다.";
"aigateway.allowance.automationEligible" = "자동 전략에 사용 가능";
"aigateway.allowance.unknown" = "알 수 없음";
"aigateway.allowance.provider_unavailable" = "해당 서비스 제공업체는 현재 한도 조회를 제공하지 않습니다.";
"aigateway.allowance.trust" = "신뢰 가능한 잔액";
"aigateway.allowance.label" = "할당량";
"aigateway.allowance.state.error" = "한도 로드 실패";
"aigateway.allowance.state.empty" = "한도 데이터 없음";
"aigateway.key.chipHintRequired" = "필수입니다. 하나 이상 선택해 주세요.";
"aigateway.key.error.channelRequired" = "이 키에 대한 채널을 하나 이상 선택해 주세요.";
"aigateway.key.chipHintEmptyDenies" = "모두 선택 해제하면 전체가 비활성화됩니다.";
"aigateway.chip.all" = "전체(제한 없음)";
"aigateway.key.allowedChannels" = "허용된 채널";
"aigateway.key.status" = "상태";
"aigateway.key.active" = "유효함";
"aigateway.key.revoked" = "취소됨";
"aigateway.key.revoke" = "취소";
"aigateway.key.expired" = "만료됨";
"aigateway.key.revoke.confirm.title" = "이 가상 키를 폐기하시겠습니까?";
"aigateway.key.revoke.confirm.message" = "폐기 후 키는 즉시 무효화되며 복구할 수 없지만, 목록에 남아 사용량 및 통계 기록이 보존되어 감사에 활용할 수 있습니다. 기록을 완전히 삭제하려면 \"삭제\"를 사용하세요.";
"aigateway.key.delete.message" = "이 키는 완전히 삭제되며, 사용량 및 통계 기록도 함께 제거되어 복구할 수 없습니다. 키를 비활성화하고 기록을 보존하려면 \"폐기\"를 사용하세요.";
"aigateway.key.rotate" = "회전 평문";
"aigateway.key.rotate.button" = "회전";
"aigateway.key.rotate.confirm.title" = "키 교체 평문?";
"aigateway.key.rotate.confirm.message" = "이 키에 대해 새로운 평문이 생성되며, 기존 평문은 즉시 무효화됩니다. 키의 이름, 권한, 한도 및 통계 기록은 변경되지 않습니다. 교체 후에는 이 키를 사용하는 모든 클라이언트에서 새로운 평문으로 업데이트해 주십시오. 이 작업은 되돌릴 수 없습니다.";
"aigateway.key.rotated.title" = "새로운 키 평문";
"aigateway.key.rotated.message" = "즉시 복사하여 저장하세요. 새 평문은 한 번만 표시되며, 이전 평문은 더 이상 유효하지 않습니다:\n\n%@";
"aigateway.key.plaintext.title" = "평문 키";
"aigateway.key.plaintext.view" = "키 보기";
"aigateway.key.plaintext.copy" = "키 복사";
"aigateway.key.empty" = "가상 키가 없습니다. \"+\"를 클릭하여 새로 만드세요.";
"aigateway.key.deleteConfirm" = "이 가상 키를 삭제하시겠습니까?";
"aigateway.key.copy" = "키 복사";
"aigateway.key.created.title" = "키가 생성되었습니다";
"aigateway.key.created.message" = "즉시 복사하여 저장하세요. 이 키는 한 번만 표시됩니다:\n\n%@";
"aigateway.key.error.duplicateName" = "키 이름이 이미 존재합니다. 다른 이름을 입력해 주세요.";
"aigateway.key.expiresAt" = "만료 시간(선택 사항, 예: 2027-01-01)";
"aigateway.key.expiresAt.hint" = "예: 2027-01-01T00:00:00Z, 비워두면 만료되지 않습니다";
"aigateway.key.rpmLimit" = "RPM 제한(선택 사항)";
"aigateway.key.tpmLimit" = "TPM 제한(선택 사항)";
"aigateway.key.rpdLimit" = "일일 요청 제한 (선택)";
"aigateway.key.tpdLimit" = "일일 토큰 제한 (선택)";
"aigateway.key.section.basic" = "기본 정보";
"aigateway.key.section.permissions" = "권한";
"aigateway.key.section.rateLimits" = "속도 제한";
"aigateway.key.section.cumulativeLimits" = "누적 한도";
"aigateway.key.field.maxRequests" = "누적 요청 한도(회)";
"aigateway.key.field.maxRequests.placeholder" = "비워두기 = 제한 없음";
"aigateway.key.field.maxTokens" = "누적 토큰 한도";
"aigateway.key.field.maxTokens.placeholder" = "비워두기 = 제한 없음";
"aigateway.key.field.maxCostUsd" = "누적 소비 한도(미국 달러)";
"aigateway.key.field.maxCostUsd.placeholder" = "예: 10.00, 비워두기 = 제한 없음";
"aigateway.key.wizard.name" = "키 이름(필수)";
"aigateway.key.wizard.description" = "설명(선택 사항)";
"aigateway.key.wizard.allowedModels" = "허용된 모델(선택 사항)";
"aigateway.key.wizard.allowedChannels" = "허용된 채널 ID(선택 사항, 쉼표로 구분)";

// Overview
"aigateway.overview.notice.glmMigration.title" = "GLM 원클릭 프리셋이 이미 이전되었습니다";
"aigateway.overview.notice.glmMigration.message" = "v1.22부터 Claude Code 카드의 \"GLM 원클릭 프리셋\"이 종료되었습니다. 해당 모델 등급 매핑은 Routing Strategy 페이지에서 \"템플릿에서 매핑 생성\"을 통해 통합 관리되며, Claude Code / Codex / Gemini CLI + GLM / DeepSeek / Qwen 등 일반적인 조합을 지원합니다.";
"aigateway.overview.notice.glmMigration.action" = "이전 설정을 정리하고 Routing Strategy로 이동하세요 →";
"aigateway.overview.notice.glmMigration.dismiss" = "알림 닫기";
"aigateway.overview.notice.glmMigration.confirmTitle" = "v1.21 GLM 원클릭 프리셋으로 작성된 이전 환경 변수를 정리하시겠습니까?";
"aigateway.overview.notice.glmMigration.confirmMessage" = "~/.claude/settings.json에서 ANTHROPIC_DEFAULT_HAIKU_MODEL / ANTHROPIC_DEFAULT_SONNET_MODEL / ANTHROPIC_DEFAULT_OPUS_MODEL / CLAUDE_CODE_AUTO_COMPACT_WINDOW 네 가지 v1.21 GLM 원클릭 프리셋으로 저장된 키가 삭제됩니다. ANTHROPIC_BASE_URL이 ServBay 게이트웨이를 가리킬 때만 실행됩니다. 사용자가 직접 수정한 다른 env는 그대로 유지됩니다. 정리 후 Routing Strategy 페이지에서 \"템플릿에서 매핑 생성\"을 사용하여 GLM 라우팅을 다시 구축해 주세요.";
"aigateway.overview.notice.glmMigration.confirmApply" = "정리하고 이동";
"aigateway.overview.activeChannels" = "활성 채널";
"aigateway.overview.virtualKeys" = "가상 키";
"aigateway.overview.todayRequests" = "오늘 요청";
"aigateway.overview.todayCost" = "오늘의 비용";
"aigateway.overview.totalRequests" = "누적 요청";
"aigateway.overview.totalCost" = "누적 비용";
"aigateway.overview.channelHealth" = "채널 건강 개요";
"aigateway.overview.recentEvents" = "최근 라우터 이벤트";
"aigateway.overview.noChannels" = "채널 없음";
"aigateway.overview.noEvents" = "라우팅 이벤트가 없습니다";
"aigateway.overview.toggleChannelHint" = "이 채널의 활성화/비활성화를 전환하려면 클릭하세요";
"aigateway.overview.disableChannel.confirmTitle" = "채널 %@을(를) 비활성화하시겠습니까?";
"aigateway.overview.disableChannel.confirmMessage" = "비활성화하면 해당 채널이 더 이상 요청 라우팅에 참여하지 않으며, 언제든지 클릭하여 다시 활성화할 수 있습니다.";

// Endpoints
"aigateway.endpoint.connection" = "연결 정보";
"aigateway.endpoint.quickCopy" = "빠른 구성 스니펫";
"aigateway.endpoint.list" = "지원되는 엔드포인트";
"aigateway.endpoint.noKey" = "먼저 가상 키를 생성하세요";
"aigateway.endpoint.createKeyFirst" = "먼저 \"가상 키\" 페이지에서 키를 생성하세요";
"aigateway.endpoint.openai.chat" = "OpenAI 호환 채팅";
"aigateway.endpoint.openai.completions" = "OpenAI 보완";
"aigateway.endpoint.openai.models" = "모델 목록";
"aigateway.endpoint.anthropic.messages" = "Anthropic 메시지";
"aigateway.endpoint.gemini" = "Gemini 네이티브";
"aigateway.endpoint.explicit.openai" = "OpenAI 접두사를 명시적으로 표시";
"aigateway.endpoint.explicit.anthropic" = "명시적 Anthropic 접두사";
"aigateway.endpoint.health" = "건강 검사(키 필요 없음)";
"aigateway.endpoint.selectKey" = "가상 키";
"aigateway.endpoint.manageKeys" = "키 관리";
"aigateway.endpoint.plaintextHint" = "키 평문은 생성 시에만 표시되며, 키 페이지에서 교체하여 얻을 수 있습니다.";
"aigateway.endpoint.domainDisabled" = "사이트가 활성화되지 않았습니다";
"aigateway.endpoint.conversion.title" = "다중 프로토콜 자동 변환";
"aigateway.endpoint.conversion.anyChannel" = "임의 프로토콜 / 채널";
"aigateway.endpoint.conversion.tag" = "프로토콜 변환";
"aigateway.endpoint.conversion.desc" = "임의의 프로토콜로 접속하고, 어떤 채널이든 사용할 수 있습니다. 게이트웨이는 모델 이름에 따라 자동으로 라우팅하며, OpenAI, Anthropic, Gemini 프로토콜 간에 요청과 응답을 실시간으로 변환하고, 스트리밍 출력과 도구 호출을 전 과정에서 지원합니다. 예를 들어, Claude Code는 OpenAI 또는 Gemini 채널의 모델을 바로 사용할 수 있습니다.";
"aigateway.goto.clients" = "클라이언트 구성하러 가기";


// Key 展开面板：消耗统计（K2/K3）
"aigateway.key.stats.totalRequests" = "총 요청 수";
"aigateway.key.stats.totalTokens" = "총 토큰 수";
"aigateway.key.stats.lastUsed" = "최근 사용";
"aigateway.key.stats.neverUsed" = "사용한 적 없음";

// 渠道展开面板：使用统计（渠道行点击展开）
"aigateway.channel.stats.cost" = "총비용";
"aigateway.channel.stats.quotaUsage" = "할당량 사용";
"aigateway.channel.stats.balance" = "잔액";
"aigateway.channel.stats.lastHealthCheck" = "최근 건강 검사";

// 首次进入 AI Gateway 介绍 sheet（K7）

// 首次进入 AI Gateway 介绍 sheet（K7）
"aigateway.intro.feature1.title" = "다중 프로토콜 자동 변환";
"aigateway.intro.feature1.desc" = "임의 프로토콜로 임의 채널에 접속하고, 스트림 출력과 도구 호출을 전체 과정에서 지원합니다.";
"aigateway.intro.feature2.title" = "통합 진입점 및 가상 키";
"aigateway.intro.feature2.desc" = "하나의 키로 모든 업스트림을 관리하며, 속도 제한, 한도 설정 및 사용량 통계까지 모두 제공합니다.";
"aigateway.intro.feature3.title" = "클라이언트 원클릭 접수";
"aigateway.intro.feature3.desc" = "Claude Code, Codex, Gemini CLI 등 8개의 클라이언트를 한 번에 게이트웨이로 전환";
"aigateway.intro.start" = "시작하기";
"aigateway.intro.goClients" = "가서 확인하세요";

// Client takeover (Claude Code 一键接管)

// 首次进入 AI Gateway 介绍 sheet（K7）

// Client takeover (Claude Code 一键接管)
"aigateway.connect.title" = "클라이언트 인수";
"aigateway.connect.status.ours" = "이미 이 게이트웨이에 연결되었습니다";
"aigateway.connect.status.other" = "다른 주소를 가리킴";
"aigateway.connect.status.notConnected" = "미접수";
"aigateway.connect.status.notFound" = "Claude Code가 감지되지 않았습니다";
"aigateway.connect.action.takeover" = "인수";
"aigateway.connect.action.switchToOurs" = "이 게이트웨이로 변경";
"aigateway.connect.action.remove" = "접속 해제";
"aigateway.connect.action.restore" = "복원";

// 「客户端」子页（Q4 拆分）+ 设置/变更语义重构
"aigateway.subnav.clients" = "클라이언트";
"aigateway.client.setup" = "설정";
"aigateway.client.switchToServbay" = "ServBay로 전환";
"aigateway.client.setup.confirmTitle" = "%@를 ServBay 프록시로 설정";
"aigateway.client.setup.confirmMessage" = "ServBay는 다음 구성에 작성합니다:\n\n구성 파일: %@\nBASE_URL = %@\nAUTH_TOKEN = %@…\n전용 키: %@\n%@\n\n작성 전에 기존 구성을 .bak로 자동 백업합니다.";
"aigateway.client.setup.confirmMessage2" = "ServBay가 다음 설정을 작성합니다:\n\n설정 파일: %1$@\nBASE_URL = %2$@\nAUTH_TOKEN = %3$@…\n가상 키: %4$@\n\n작성하기 전에 기존 설정이 자동으로 .bak으로 백업됩니다.";
"aigateway.client.setup.keyAction.create" = "전용 키 %@이(가) 자동으로 생성됩니다.";
"aigateway.client.setup.keyAction.reuse" = "기존 전용 키 %@를 재사용하고 로컬 게이트웨이에서 평문을 읽어오며, 키를 교체하거나 이전 평문을 무효화하지 않습니다.";
"aigateway.client.setup.sheet.title" = "%@ 설정";
"aigateway.client.setup.summary" = "저장할 설정";
"aigateway.client.setup.channels.all" = "전체 채널 사용(*)";
"aigateway.client.setup.routing.title" = "Claude 모델 라우팅";
"aigateway.client.setup.routing.direct" = "선택한 채널은 Claude 모델 이름을 인식하므로 바로 사용할 수 있습니다.";
"aigateway.client.setup.routing.mapping" = "선택한 채널은 Claude 모델 이름을 인식하지 못하므로 모델 매핑이 필요합니다. ServBay는 아래 '고급: 티어 모델' 설정에 따라 이 가상 키 + 클라이언트에 대한 매핑을 생성합니다.";
"aigateway.client.setup.routing.mixed" = "선택한 채널 중 일부는 Claude 모델 이름을 인식하지만 일부는 그렇지 않습니다. ServBay는 아래의 '고급: 티어 모델' 설정에 따라 이 가상 키 + 클라이언트에 대한 매핑을 생성합니다.";
"aigateway.client.setup.routing.groups" = "직접 사용 가능한 채널: %d · 매핑이 필요한 채널: %d";
"aigateway.client.setup.routing.unknown" = "선택한 채널의 기능 테스트가 완료되지 않아 Claude 모델 이름 지원 여부를 확인할 수 없습니다. 먼저 테스트를 진행한 후 모델 매핑 생성 여부를 결정하세요.";
"aigateway.client.setup.routing.noCandidates" = "사용 가능한 채널 없음: 선택한 범위에 활성화되어 있고 정상인 채널이 없습니다. 먼저 채널을 추가하거나 활성화해 주세요.";
"aigateway.client.setup.routing.groups.unknown" = "· 아직 감지되지 않은 채널: %d";
"aigateway.client.setup.routing.probeButton" = "지금 검사";
"aigateway.client.setup.routing.probeFailed" = "%d개 채널 감지 실패. 결과가 불완전할 수 있으니 나중에 다시 시도해 주세요.";
"aigateway.client.setup.tier.advanced" = "고급: 기어 모델";
"aigateway.client.setup.tier.opus" = "Opus (복잡한 작업)";
"aigateway.client.setup.tier.sonnet" = "Sonnet(기본값)";
"aigateway.client.setup.tier.haiku" = "Haiku(가볍고 빠름)";
"aigateway.client.setup.tier.pick" = "모델을 선택해 주세요";
"aigateway.client.setup.tier.noModels" = "선택한 채널에 모델 목록이 없어 등급 모델을 선택할 수 없습니다.";
"aigateway.client.setup.tier.discoverButton" = "감지 모델 목록";
"aigateway.client.setup.tier.discoverFailed" = "%d개 채널의 모델 목록을 불러오지 못했습니다. 잠시 후 다시 시도해 주세요.";
"aigateway.client.setup.tier.unknownHint" = "업스트림이 등급별로 다른 모델을 반환하는지 판단할 수 없습니다(탐지 기준이 유효하지 않음). ServBay는 '등급 구분 없음'으로 보수적으로 처리하여 3개 등급 각각에 매핑을 생성합니다.";
"aigateway.client.setup.tier.upstreamManaged" = "업스트림에서 Opus / Sonnet / Haiku 등급에 따라 다양한 모델을 반환하며, ServBay는 등급 매핑을 생성하지 않습니다.";
"aigateway.client.setup.key.title" = "① 가상 키";
"aigateway.client.setup.key.useExisting" = "기존 가상 키 선택";
"aigateway.client.setup.key.createNew" = "새로운 가상 키 생성";
"aigateway.client.setup.key.existing.placeholder" = "가상 키를 선택하세요";
"aigateway.client.setup.key.existing.loading" = "키 평문을 가져오는 중…";
"aigateway.client.setup.key.existing.empty" = "아직 가상 키가 생성되지 않았습니다. 먼저 ‘가상 키’ 페이지에서 생성하거나, 새로 만들기로 전환하세요.";
"aigateway.client.setup.key.existing.loadFailed" = "키 목록을 가져올 수 없습니다. 나중에 다시 시도해 주세요.";
"aigateway.client.setup.key.existing.plaintextUnavailable" = "이 키는 이전 형식이며, 로컬 게이트웨이는 평문을 저장하지 않았습니다. 다른 키를 선택하거나 새로 만들기를 선택해 주세요.";
"aigateway.client.setup.key.existing.allowedAll" = "모든 채널 활성화";
"aigateway.client.setup.key.existing.allowedCount" = "%d개 채널";
"aigateway.client.setup.key.createNew.nameInvalid" = "키 이름에는 영문자, 숫자, . _ / - 만 사용할 수 있으며, 길이는 1~64자여야 합니다.";
"aigateway.client.setup.channels.preview.title" = "② 채널 범위";
"aigateway.client.setup.channels.preview.all" = "모든 채널 활성화(*)";
"aigateway.client.setup.model.title" = "③ 모델";
"aigateway.client.setup.model.primary" = "기본 모델";
"aigateway.client.setup.model.small" = "소형 모델(선택 사항)";
"aigateway.client.setup.model.list" = "모델 목록(쉼표로 구분)";
"aigateway.client.setup.model.placeholder" = "모델 이름을 입력하거나 후보에서 선택하세요";
"aigateway.client.setup.model.hint" = "채널 목록에서 선택하거나 직접 입력할 수 있습니다.";
"aigateway.client.setup.model.crushHint" = "Crush 실행 중 Ctrl+M 또는 /models로 전환";
"aigateway.client.setup.model.claudeHint" = "Claude Code는 Anthropic 프로토콜의 지정 모델을 사용하므로 여기에서 별도의 설정이 필요하지 않습니다.";
"aigateway.client.setup.model.qwenHint" = "modelProviders.openai.models[]에 작성하고, 사용자는 CLI에서 /model로 선택합니다";
"aigateway.client.setup.model.empty" = "후보 모델이 없습니다(채널 models가 비어 있음), 직접 입력할 수 있습니다";
"aigateway.key.description" = "설명(선택 사항)";
"aigateway.client.reuse.title" = "기존 전용 키가 감지되었습니다.";
"aigateway.client.reuse.reuse" = "기존 키 재사용";
"aigateway.client.reuse.createNew" = "새 키";
"aigateway.client.reuse.message" = "재사용하면 동일한 키를 계속 사용하며(할당량 및 기록 유지); 새로 만들면 완전히 새로운 키가 생성됩니다.";
"aigateway.client.setup.confirmButton" = "설정 확인";
"aigateway.client.change" = "변경";
"aigateway.client.change.title" = "%@의 사용 가능한 채널 변경";
"aigateway.client.change.apply" = "앱";
"aigateway.client.change.noKey" = "해당 클라이언트의 연결 정보를 찾을 수 없습니다. 다시 설정해 주세요.";
"aigateway.connect.success.title" = "Claude Code가 인수했습니다";
"aigateway.connect.success.message" = "Claude Code가 게이트웨이에 연결되었습니다. 변경 사항을 적용하려면 Claude 세션을 다시 시작하세요.";
"aigateway.connect.error.unhealthy" = "AI Gateway가 실행 중이 아니거나 정상 상태가 아닙니다";
"aigateway.connect.error.createKey" = "클라이언트 연결 자격 증명을 만들 수 없습니다";
"aigateway.connect.error.writeSettings" = "Claude Code settings.json 쓰기 실패";
"aigateway.connect.error.writeModelMapping" = "게이트웨이 기어 모델 매핑 작성 실패, 연결이 완료되지 않았습니다. 잠시 후 다시 시도해 주세요.";
"aigateway.connect.codex.status.notFound" = "Codex가 감지되지 않았습니다";
"aigateway.connect.codex.success.title" = "Codex가 이미 제어하고 있습니다";
"aigateway.connect.codex.success.message" = "Codex가 게이트웨이에 연결되었습니다. 변경 사항을 적용하려면 Codex 세션을 다시 시작해야 합니다.";
"aigateway.connect.gemini.status.notFound" = "Gemini CLI가 감지되지 않았습니다";
"aigateway.connect.gemini.success.title" = "Gemini CLI가 인수되었습니다";
"aigateway.connect.gemini.success.message" = "Gemini CLI가 게이트웨이를 가리키도록 설정되었습니다. 변경 사항을 적용하려면 Gemini CLI를 재시작해야 합니다.";
"aigateway.connect.qwen.status.notFound" = "Qwen Code가 감지되지 않았습니다";
"aigateway.connect.qwen.success.title" = "Qwen Code가 이미 제어하고 있습니다";
"aigateway.connect.qwen.success.message" = "Qwen Code가 게이트웨이에 연결되었습니다. Qwen Code가 적용되려면 재시작이 필요합니다.";
"aigateway.connect.kimi.status.notFound" = "Kimi CLI가 감지되지 않았습니다";
"aigateway.connect.kimi.success.title" = "Kimi CLI가 인수되었습니다";
"aigateway.connect.kimi.success.message" = "Kimi CLI가 게이트웨이를 가리키도록 설정되었습니다. 변경 사항을 적용하려면 Kimi CLI를 재시작해야 합니다.";
"aigateway.connect.codebuddy.status.notFound" = "CodeBuddy가 감지되지 않았습니다";
"aigateway.connect.codebuddy.success.title" = "CodeBuddy가 인수했습니다";
"aigateway.connect.codebuddy.success.message" = "CodeBuddy가 게이트웨이에 연결되었습니다. 변경 사항을 적용하려면 CodeBuddy를 다시 시작해야 합니다.";
"aigateway.connect.opencode.status.notFound" = "opencode가 감지되지 않았습니다";
"aigateway.connect.opencode.success.title" = "opencode가 이미 인수했습니다";
"aigateway.connect.opencode.success.message" = "opencode가 게이트웨이에 연결되었습니다. 변경 사항을 적용하려면 opencode를 재시작해야 합니다.";
"aigateway.connect.opencode.success.noChannels" = "opencode가 게이트웨이에 연결되었습니다. 게이트웨이에 채널이 설정되어 있지 않습니다. 먼저 채널을 추가한 후 opencode에서 모델을 선택하고, opencode를 재시작하여 변경 사항을 적용하세요.";
"aigateway.connect.crush.status.notFound" = "Crush가 감지되지 않았습니다";
"aigateway.connect.crush.success.title" = "Crush가 인수했습니다";
"aigateway.connect.crush.success.message" = "Crush가 게이트웨이에 연결되었습니다. 변경 사항을 적용하려면 Crush를 재시작해야 합니다.";
"aigateway.connect.crush.success.noChannels" = "Crush가 게이트웨이에 연결되었습니다. 게이트웨이에 채널이 설정되어 있지 않습니다. 먼저 채널을 추가한 후 Crush에서 모델을 선택하고 Crush를 재시작해야 적용됩니다.";
"aigateway.statistics.totalRequests" = "총 요청 수";
"aigateway.statistics.summary" = "요약";
"aigateway.statistics.success" = "성공";
"aigateway.statistics.failed" = "실패";
"aigateway.statistics.inputTokens" = "입력 토큰";
"aigateway.statistics.outputTokens" = "출력 토큰";
"aigateway.statistics.avgTokensPerRequest" = "요청당 평균 토큰";
"aigateway.statistics.eventDistribution" = "이벤트 분포";
"aigateway.statistics.routed" = "라우팅됨";
"aigateway.statistics.failover" = "자동 전환";
"aigateway.statistics.noChannel" = "채널 없음";
"aigateway.statistics.totalTokens" = "총 토큰";
"aigateway.statistics.totalCost" = "총비용";
"aigateway.statistics.avgLatency" = "평균 지연";
"aigateway.statistics.requestTrend" = "트렌드 요청";
"aigateway.statistics.breakdown" = "사용량 상세";
"aigateway.statistics.groupBy" = "그룹";
"aigateway.statistics.groupBy.model" = "모델별";
"aigateway.statistics.groupBy.key" = "키를 누르세요";
"aigateway.statistics.groupBy.day" = "일별";
"aigateway.statistics.groupBy.requestType" = "유형별로";
"aigateway.statistics.group" = "그룹";
"aigateway.statistics.requests" = "요청 수";
"aigateway.statistics.tokens" = "토큰";
"aigateway.statistics.cost" = "비용";
"aigateway.statistics.images" = "이미지";
"aigateway.statistics.audioIn" = "오디오 입력";
"aigateway.statistics.audioOut" = "오디오 출력";
"aigateway.statistics.noData" = "사용량 데이터가 없습니다";
"aigateway.statistics.noTrendData" = "추세 데이터가 없습니다";
"aigateway.statistics.export" = "CSV 내보내기";
"aigateway.statistics.export.help" = "모든 사용 기록을 CSV로 내보내기";
"aigateway.statistics.export.save.title" = "CSV 파일 저장";
"aigateway.statistics.export.failed" = "내보내기 실패";
"aigateway.statistics.budget" = "예산 사용량";
"aigateway.statistics.budgetVipRequired" = "예산 기능은 VIP가 필요합니다";
"aigateway.budget.manage" = "관리";
"aigateway.budget.manage.title" = "예산 관리";
"aigateway.budget.list.title" = "예산이 이미 있습니다";
"aigateway.budget.new" = "새 예산 만들기";
"aigateway.budget.new.title" = "새 예산 만들기";
"aigateway.budget.edit.title" = "예산 편집";
"aigateway.budget.reset" = "주기 재설정";
"aigateway.budget.delete.confirm" = "이 예산을 삭제하시겠습니까?";
"aigateway.budget.field.name" = "이름";
"aigateway.budget.field.description" = "설명(선택 사항)";
"aigateway.budget.field.limitUsd" = "금액 상한(USD)";
"aigateway.budget.field.period" = "주기";
"aigateway.budget.field.threshold1" = "임계값 1(%)";
"aigateway.budget.field.threshold2" = "임계값 2(%)";
"aigateway.budget.field.threshold3" = "임계값 3(%)";
"aigateway.budget.section.thresholds" = "알림 임계값(%)";
"aigateway.budget.period.daily" = "매일";
"aigateway.budget.period.weekly" = "매주";
"aigateway.budget.period.monthly" = "매월";
"aigateway.budget.period.custom" = "사용자 지정";
"aigateway.statistics.noBudget" = "예산 설정이 없습니다";
"aigateway.monitoring.events" = "라우터 이벤트";
"aigateway.monitoring.limit" = "항목 수";
"aigateway.monitoring.noEvents" = "라우팅 이벤트가 없습니다";
"aigateway.monitoring.selectEvent" = "왼쪽에서 이벤트를 선택하여 자세한 내용을 확인하세요";
"aigateway.monitoring.eventDetail" = "이벤트 상세 정보";
"aigateway.monitoring.eventType" = "이벤트 유형";
"aigateway.monitoring.model" = "모델";
"aigateway.monitoring.channelId" = "채널 ID";
"aigateway.monitoring.channelName" = "채널 이름";
"aigateway.monitoring.requestId" = "요청 ID";
"aigateway.monitoring.latency" = "지연";
"aigateway.monitoring.detail" = "상세 정보";
"aigateway.monitoring.tokenId" = "키 ID";
"aigateway.monitoring.tokenName" = "키 이름";
"aigateway.monitoring.autoRefresh" = "자동 새로 고침(5초)";
"aigateway.monitoring.filter.all" = "모든 이벤트";
"aigateway.monitoring.filter.ruleHit" = "규칙에만 일치";
"aigateway.monitoring.filter.noRuleHit" = "규칙 일치 기록이 없습니다";
"aigateway.event.type.routed" = "라우팅됨";
"aigateway.event.type.failover" = "전환됨";
"aigateway.event.type.failed" = "실패함";
"aigateway.event.type.no_channel" = "채널 없음";
"aigateway.channel.type.openai" = "OpenAI";
"aigateway.channel.type.anthropic" = "앤트로픽";
"aigateway.channel.type.google" = "Google Gemini";
"aigateway.channel.type.azure" = "Azure OpenAI";
"aigateway.channel.type.bedrock" = "AWS Bedrock";
"aigateway.channel.type.openai_compatible" = "OpenAI 호환";
"aigateway.channel.type.deepseek" = "DeepSeek";
"aigateway.channel.type.qwen" = "Qwen";
"aigateway.channel.type.zhipu" = "Zhipu GLM";
"aigateway.channel.type.moonshot" = "Kimi";
"aigateway.channel.type.baidu" = "ERNIE";
"aigateway.channel.type.hunyuan" = "Hunyuan";
"aigateway.channel.type.zero_one" = "01.AI";
"aigateway.channel.type.ollama" = "Ollama";
"aigateway.channel.type.lmstudio" = "LM Studio";
"aigateway.channel.type.custom" = "사용자 정의";
"aigateway.channel.health.healthy" = "건강";
"aigateway.channel.health.degraded" = "다운그레이드";
"aigateway.channel.health.unhealthy" = "이상";
"aigateway.channel.health.unknown" = "알 수 없음";
"aigateway.overview.gateway.healthy" = "실행 중";
"aigateway.overview.gateway.offline" = "오프라인";
"aigateway.stat.requestType.chat" = "대화";
"aigateway.stat.requestType.completion" = "텍스트 완성";
"aigateway.stat.requestType.embedding" = "임베드";
"aigateway.stat.requestType.image" = "이미지";
"aigateway.stat.requestType.audio" = "오디오";
"aigateway.stat.requestType.tts" = "음성 합성";
"aigateway.stat.requestType.stt" = "음성 인식";
"aigateway.error.noToken" = "먼저 AI 게이트웨이를 시작해 주세요";
"aigateway.error.gatewayNotRunning" = "AI Gateway 서비스가 시작되지 않았습니다. 먼저 게이트웨이를 시작해 주십시오.";
"aigateway.error.network" = "연결 실패";
"aigateway.error.vipRequired" = "이 기능은 Pro 구독이 필요합니다";
"aigateway.error.channelLimitReached" = "현재 요금제의 채널 수 한도에 도달했습니다";
"aigateway.error.keyLimitReached" = "현재 요금제의 키 수 한도에 도달했습니다";
"aigateway.error.featureRequiresUpgrade" = "이 기능은 요금제 업그레이드가 필요합니다";

// AI Gateway 1.15 运行事实与能力状态
"aigateway.operational.gatewayVersion" = "게이트웨이 버전";
"aigateway.operational.guiVersion" = "ServBay 버전";
"aigateway.operational.dbMigration" = "데이터베이스 버전";
"aigateway.operational.compatibility" = "버전 호환성";
"aigateway.operational.license" = "라이선스 상태";
"aigateway.operational.usageIntegrity" = "사용량 기록";
"aigateway.operational.usageDropped" = "사용량 기록 %@개를 저장하지 못했습니다. 통계가 완전하지 않을 수 있습니다.";
"aigateway.operational.backgroundTasks" = "서비스 작업";
"aigateway.operational.capabilities" = "지원되는 프로토콜 기능";
"aigateway.operational.noHeartbeat" = "최근 실행 기록 없음";
"aigateway.operational.task.balanceRefresh" = "잔액 새로고침";
"aigateway.operational.task.healthCheck" = "건강 점검";
"aigateway.operational.task.maintenance" = "유지 관리";
"aigateway.operational.task.budgetReset" = "예산 초기화";
"aigateway.capabilities.schemaUnsupported" = "현재 게이트웨이 버전에서는 모든 기능 상태를 제공할 수 없습니다.";
"aigateway.capabilities.unknown" = "일시적으로 게이트웨이 기능 상태를 가져올 수 없습니다.";
"aigateway.capabilities.statusHelp" = "기능 상태는 자동으로 확인됩니다.";
"aigateway.operational.taskNeedsAttention" = "서비스 작업이 최근 실패했습니다. 새로 고친 후 다시 시도하세요.";
"aigateway.compatibility.compatible" = "호환";
"aigateway.compatibility.legacy" = "이전 버전 Gateway";
"aigateway.compatibility.incompatible" = "호환되지 않음";
"aigateway.compatibility.unknown" = "알 수 없음";
"aigateway.status.unknown" = "알 수 없음";
"aigateway.status.running" = "실행 중";
"aigateway.status.degraded" = "다운그레이드";
"aigateway.status.stopped" = "중지됨";
"aigateway.status.verified" = "검증됨";
"aigateway.status.complete" = "완전함";
"aigateway.status.disabled_development" = "사용 불가";
"aigateway.capability.status.verified" = "검증됨";
"aigateway.capability.status.partial" = "부분 지원됨";
"aigateway.capability.status.experimental" = "실험적";
"aigateway.capability.status.unsupported" = "지원되지 않음";
"aigateway.channel.oauth.unavailableUnknown" = "OAuth 사용 가능 여부를 확인할 수 없어 연결 항목이 비활성화되었습니다.";
"aigateway.statistics.unavailable" = "사용량 데이터를 일시적으로 불러올 수 없습니다.";
"aigateway.statistics.integrityUnknown" = "사용량 기록 상태를 일시적으로 확인할 수 없습니다.";
"aigateway.monitoring.eventsUnknown" = "라우팅 이벤트를 불러올 수 없습니다. 현재 카운트는 알 수 없습니다.";
"aigateway.error.noUsableChannels" = "사용 가능한 채널이 없습니다. 비활성화되었거나 모델이 설정되지 않았는지 확인하세요";
"aigateway.error.noChannels" = "먼저 채널을 추가하세요";
"aigateway.channel.noModels" = "모델이 설정되지 않음";
"aigateway.channel.noModels.hint" = "이 채널은 이미 활성화되어 있지만 모델이 구성되어 있지 않아 요청 라우팅에 참여할 수 없습니다. 모델을 추가로 구성한 후 다시 사용해 주세요.";
"aigateway.channel.allModelsAllowed" = "모든 모델";
"aigateway.channel.allModelsAllowed.hint" = "이 채널에는 모델 목록이 지정되지 않아 모든 모델의 요청이 라우팅됩니다. 이 채널을 편집하여 특정 모델로 제한할 수 있습니다.";
"button_create" = "생성";
"aigateway.key.noChannels" = "사용 가능한 채널이 없습니다";
"aigateway.key.noModels" = "사용 가능한 모델이 없습니다";
"aigateway.key.neverExpires" = "만료되지 않음";
"aigateway.key.noDataHint" = "AI 게이트웨이를 시작하고 먼저 채널을 추가하세요";
"aigateway.key.chipHintOptional" = "선택 사항입니다. 모두 허용하려면 선택하지 마세요.";
"aigateway.nav.subscription_accounts" = "Subscription Accounts";
"aigateway.subscription.risk_title" = "Experimental Feature — Account Risk";
"aigateway.subscription.risk_detail" = "Using unofficial subscription-account compatibility may cause account restrictions, suspension, or unexpected billing. Do not use an important account.";
"aigateway.subscription.risk_ack" = "I understand and accept these risks";
"aigateway.subscription.pending_connect_hint" = "먼저 상단의 위험 확인란을 체크해 주세요. 체크 시 구독 인증이 자동으로 진행됩니다.";
"aigateway.subscription.providers" = "Providers";
"aigateway.subscription.accounts" = "Connected Accounts";
"aigateway.subscription.ingress" = "사용 가능한 엔드포인트";
"aigateway.subscription.noOutputLimit" = "해당 구독은 단일 출력 길이를 제한할 수 없습니다: 클라이언트에서 설정한 max_tokens는 업스트림에서 무시됩니다.";
"aigateway.subscription.plan" = "패키지";
"aigateway.allowance.window.hours" = "%@ 시간";
"aigateway.allowance.window.days" = "%@일";
"aigateway.allowance.window.requests" = "호출 횟수";
"aigateway.subscription.reauth_banner" = "자격 증명이 만료되었습니다. 계속 사용하려면 다시 인증해야 합니다.";
"aigateway.subscription.codingPlans" = "인코딩 패키지(API 키)";
"aigateway.subscription.codingPlans.hint" = "이 요금제는 API 키를 통해 연결되며 본질적으로 채널입니다. 여기서는 한도가 읽기 전용으로 표시됩니다. 수정하려면 '채널' 페이지로 이동하세요.";
"aigateway.subscription.codingPlans.open" = "채널 페이지에서 편집";
"aigateway.subscription.connect" = "Connect";
"aigateway.subscription.continue" = "Continue";
"aigateway.subscription.feature_toggle" = "기능 켜기";
"aigateway.subscription.disabled" = "구독 계정 기능이 꺼져 있습니다. 서비스를 연결하려면 켜세요.";
"aigateway.subscription.feature_update_failed" = "구독 계정 설정을 업데이트할 수 없습니다.";
"aigateway.subscription.risk_required" = "Read and accept the risk notice before continuing.";
"aigateway.subscription.browser_opened" = "Your browser was opened. Complete authorization there, then return to ServBay.";
"aigateway.subscription.connected" = "Subscription account connected.";
"aigateway.subscription.empty" = "No subscription accounts connected.";
"aigateway.subscription.toggle" = "Enable / Disable";
"aigateway.subscription.disconnect" = "Disconnect";
"aigateway.subscription.disconnect_confirm" = "Disconnect this account and remove its local credentials?";
"aigateway.subscription.operation_failed" = "The subscription-account operation could not be completed. Check the Gateway status and try again.";
"aigateway.subscription.status.experimental" = "Experimental";
"aigateway.subscription.status.disabled" = "Disabled";
"aigateway.subscription.status.active" = "Active";
"aigateway.subscription.status.expiring" = "Expiring";
"aigateway.subscription.status.cooldown" = "Temporarily cooling down";
"aigateway.subscription.status.reauth_required" = "Authorization required";
"aigateway.subscription.status.unknown" = "Unknown";
"aigateway.subscription.safety.protected" = "로컬 보호가 활성화되었습니다";
"aigateway.subscription.safety.cooldown" = "계정이 냉각 중입니다";
"aigateway.subscription.safety.circuit_open" = "서비스 보호가 활성화되었습니다";
"aigateway.subscription.safety.disabled" = "계정이 비활성화되었습니다";
"aigateway.subscription.safety.unknown" = "보호 상태를 알 수 없음";
"aigateway.subscription.safety.rate_remaining" = "남은 사용 가능 요청: %d";
"aigateway.subscription.safety.rate_unknown" = "남은 사용 가능한 요청: 알 수 없음";
"aigateway.subscription.safety.rate_reset" = "속도 제한 창 재설정: %@";
"aigateway.subscription.safety.active_requests" = "활성 동시 요청: %d";
"aigateway.subscription.safety.active_unknown" = "활성 동시 요청: 알 수 없음";
"aigateway.subscription.safety.cooldown_until" = "쿨다운 회복: %@";
"aigateway.subscription.safety.circuit_until" = "복구 보호: %@";
"aigateway.subscription.safety.recovery_unknown" = "복구 시간 알 수 없음";
"aigateway.subscription.safety.reason_rate_limited" = "이유: 상위 요청 빈도가 제한되었습니다";
"aigateway.subscription.safety.reason_unknown" = "원인 불명";
"aigateway.subscription.safety.remote_revoke_supported" = "연결이 끊어질 때 원격 권한 취소를 지원합니다";
"aigateway.subscription.safety.remote_revoke_unsupported" = "연결이 끊어진 경우에는 로컬 자격 증명만 삭제할 수 있습니다.";
"aigateway.subscription.safety.remote_revoke_unknown" = "원격 취소 기능을 알 수 없음";
"aigateway.subscription.disconnect_local_failed" = "로컬 자격 증명이 삭제되었는지 확인할 수 없습니다. 새로고침 후 다시 시도해 주세요.";
"aigateway.subscription.disconnect_revoked" = "로컬 자격 증명이 삭제되었고, 원격 인증이 해제되었습니다.";
"aigateway.subscription.disconnect_unsupported" = "로컬 자격 증명이 삭제되었습니다. 서비스 측에서 원격 취소를 지원하지 않으므로 필요에 따라 서비스 계정 설정에서 확인해 주시기 바랍니다.";
"aigateway.subscription.disconnect_failed" = "로컬 자격 증명은 삭제되었지만 원격 인증 해제에 실패했습니다. 서비스 제공자의 계정 설정에서 확인해 주세요.";
"aigateway.subscription.disconnect_unknown" = "로컬 자격 증명이 삭제되었으며, 원격 인증 해제 상태는 알 수 없습니다. 서비스 제공자의 계정 설정에서 확인해 주세요.";

// AI Gateway 路由策略
"aigateway.routing.load_balance.title" = "로드 밸런싱";
"aigateway.routing.load_balance.prefix" = "에 따라";
"aigateway.routing.load_balance.priority" = "우선순위";
"aigateway.routing.load_balance.round_robin" = "폴링";
"aigateway.routing.load_balance.weighted_round_robin" = "가중치 라운드 로빈";
"aigateway.routing.load_balance.priority_effective" = "우선순위 적용";
"aigateway.routing.load_balance.weight_effective" = "가중치 적용";
"aigateway.routing.load_balance.loading" = "정책 설명을 로드하는 중";
"aigateway.routing.load_balance.description.priority_only_weight_ignored" = "채널 우선순위에 따라 선택하며, 가중치는 무시합니다.";
"aigateway.routing.load_balance.description.round_robin_priority_and_weight_ignored" = "건강한 채널 간에 라운드 로빈 방식으로 순환하며, 우선순위와 가중치는 무시합니다.";
"aigateway.routing.load_balance.description.wrr_priority_tier_then_weight" = "먼저 가장 높은 건강 우선순위 계층을 선택한 후, 가중치에 따라 라운드 로빈 방식으로 처리합니다.";
"aigateway.routing.load_balance.weight_scope.highest_healthy_priority_tier" = "가중치 적용 범위: 최상위 헬스 우선순위 계층";
"aigateway.routing.strategies.title" = "전략";
"aigateway.routing.empty" = "라우팅 정책이 아직 구성되지 않았습니다.";
"aigateway.routing.mapping.add" = "모델 매핑 추가";
"aigateway.routing.mapping.edit" = "모델 매핑 편집";
"aigateway.routing.mapping.delete.title" = "모델 매핑 삭제";
"aigateway.routing.mapping.delete.message" = "“%@”을(를) 삭제하시겠습니까?";
"aigateway.routing.matches_24h" = "24시간 %d회";
"aigateway.routing.last_matched.never" = "아직 매칭되지 않음";
"aigateway.routing.detail.kind" = "종류";
"aigateway.routing.detail.priority" = "우선순위";
"aigateway.routing.detail.matches" = "누적 일치";
"aigateway.routing.detail.scope" = "범위";
"aigateway.routing.detail.source" = "출처";
"aigateway.routing.detail.target" = "목표";
"aigateway.routing.detail.token" = "가상 키";
"aigateway.routing.detail.client" = "클라이언트";
"aigateway.routing.detail.condition" = "조건";
"aigateway.routing.detail.action" = "동작";
"aigateway.routing.detail.channel" = "채널";
"aigateway.routing.events.title" = "최근 일치 이벤트";
"aigateway.routing.events.empty" = "일치하는 이벤트가 없습니다.";
"aigateway.routing.form.name" = "이름(선택 사항)";
"aigateway.routing.form.enabled" = "사용";
"aigateway.routing.form.priority" = "우선순위: %d";
"aigateway.routing.form.scope" = "범위";
"aigateway.routing.form.token" = "가상 키 ID";
"aigateway.routing.form.client" = "클라이언트 유형";
"aigateway.routing.form.source_protocol" = "소스 프로토콜";
"aigateway.routing.form.source_model" = "소스 모델 또는 패턴";
"aigateway.routing.form.target_protocol" = "대상 프로토콜";
"aigateway.routing.form.target_model" = "대상 모델";
"aigateway.routing.scope.global" = "전체";
"aigateway.routing.scope.client" = "클라이언트";
"aigateway.routing.scope.token" = "가상 키";
"aigateway.routing.scope.token_client" = "가상 키와 클라이언트";
"aigateway.routing.protocol.custom" = "사용자 지정";
"aigateway.routing.error.title" = "라우팅 정책";
"aigateway.routing.error.load" = "라우팅 정책을 불러올 수 없습니다.";
"aigateway.routing.error.save" = "라우팅 정책을 저장할 수 없습니다.";
"aigateway.routing.error.events" = "일치하는 이벤트를 불러올 수 없습니다.";
"aigateway.routing.error.delete" = "모델 매핑을 삭제할 수 없습니다.";

"aigateway.routing.preview.title" = "Model Mapping Preview";
"aigateway.routing.preview.subtitle" = "Enter a client and model to check the mapping that would win.";
"aigateway.routing.preview.action" = "Preview model mapping";
"aigateway.routing.preview.token_id" = "Virtual key ID";
"aigateway.routing.preview.client_kind" = "Client kind";
"aigateway.routing.preview.source_model" = "Source model";
"aigateway.routing.preview.winner" = "Match";
"aigateway.routing.preview.no_match" = "No model mapping matched.";
"aigateway.routing.preview.error" = "Could not preview the model mapping.";
"aigateway.routing.preview.validation.source_model_required" = "Enter a source model.";
"aigateway.routing.detail.target_channel" = "Target Channel";
"aigateway.routing.none" = "None";

"aigateway.routing.template.add" = "템플릿에서";
"aigateway.routing.template.title" = "템플릿에서 매핑 생성";
"aigateway.routing.template.sheet.title" = "템플릿 선택";
"aigateway.routing.template.step.template" = "① 템플릿";
"aigateway.routing.template.step.scope" = "② 범위";
"aigateway.routing.template.step.client" = "③ 대상 클라이언트";
"aigateway.routing.template.step.token" = "④ 대상 가상 키";
"aigateway.routing.template.step.preview" = "⑤ 생성된 매핑 미리보기";
"aigateway.routing.template.scope.global" = "글로벌(모든 요청에 적용됨)";
"aigateway.routing.template.scope.token" = "토큰(오직 vkey 지정)";
"aigateway.routing.template.scope.client" = "클라이언트(클라이언트만 지정)";
"aigateway.routing.template.scope.tokenClient" = "토큰 + 클라이언트 (vkey와 클라이언트 모두 일치)";
"aigateway.routing.template.error.needClient" = "대상 클라이언트를 선택하세요";
"aigateway.routing.template.error.needToken" = "대상 가상 키를 선택하세요";
"aigateway.routing.template.apply" = "%d개의 매핑 생성";
"aigateway.routing.template.applying" = "매핑을 생성 중…";
"aigateway.routing.template.success" = "%d개의 매핑이 성공적으로 생성되었습니다.";
"aigateway.routing.template.partialFailure" = "%d개 생성됨, %d개 실패됨";
"aigateway.routing.template.claude_glm" = "Claude Code → GLM (지푸)";
"aigateway.routing.template.claude_deepseek" = "Claude Code → DeepSeek";
"aigateway.routing.template.codex_qwen" = "Codex → Qwen Coder";
"aigateway.routing.template.codex_glm" = "Codex → GLM";
"aigateway.routing.template.gemini_glm" = "Gemini CLI → GLM";
"aigateway.routing.action.downgrade" = "Downgrade model";
"aigateway.routing.action.switch_to" = "Switch to channel";
"aigateway.routing.condition.cost_reaches" = "Cost reaches threshold";
"aigateway.routing.condition.quota_exhausted" = "Quota exhausted";
"aigateway.routing.detail.cost_threshold" = "Cost threshold USD";
"aigateway.routing.form.manual_input" = "Manual input";
"aigateway.routing.form.scope.client" = "Specific client only";
"aigateway.routing.form.scope.global" = "Global (all requests)";
"aigateway.routing.form.scope.token" = "Specific key only";
"aigateway.routing.form.scope.token_client" = "Client + key";
"aigateway.routing.form.scope_label" = "Scope";
"aigateway.routing.form.select_client" = "Select client";
"aigateway.routing.form.select_model" = "Select model";
"aigateway.routing.form.select_token" = "Select key";
"aigateway.routing.form.source_model_placeholder" = "e.g. claude-opus-* or gpt-5.5";
"aigateway.routing.form.source_protocol_auto" = "Auto-detect";
"aigateway.routing.form.target_model_placeholder" = "e.g. glm-5.2";
"aigateway.routing.kind.model_mapping" = "Model Mapping";
"aigateway.routing.kind.routing_rule" = "Routing Rule";
"aigateway.routing.load_balance.no_channels" = "No enabled channels to preview.";
"aigateway.routing.load_balance.tier_line" = "Tier %d: %@";
"aigateway.routing.load_balance.weight_ignored" = "(weight ignored)";
"aigateway.routing.mapping.hint" = "When the model name a client sends does not exist upstream, mapping converts it automatically. For example: Claude Code sends claude-opus-4-8, map it to Zhipu glm-5.2.";
"aigateway.routing.mapping.target_protocol_openai_only" = "Model mappings currently route through OpenAI-compatible upstreams only.";
"aigateway.routing.protocol.anthropic" = "Anthropic";
"aigateway.routing.protocol.gemini" = "Gemini";
"aigateway.routing.protocol.openai" = "OpenAI";
"aigateway.routing.rule.add" = "Add Routing Rule";
"aigateway.routing.rule.delete.message" = "Do you want to delete \"%@\"?";
"aigateway.routing.rule.delete.title" = "Delete Routing Rule";
"aigateway.routing.rule.edit" = "Edit Routing Rule";
"aigateway.routing.rule.hint" = "When a channel quota or budget is exhausted, automatically switch to a backup channel. For example: when OpenAI budget runs out, switch to Zhipu Coding.";
"aigateway.routing.rule.hint.cost_threshold_required" = "Cost threshold requires a number.";
"aigateway.routing.rule.hint.target_channel_disabled" = "Target channel is disabled.";
"aigateway.routing.rule.hint.target_model_not_listed" = "Target model is not listed by the source channel.";
"aigateway.routing.rule.preview_format" = "When %s %s, %s %s";
"aigateway.routing.section.load_balance" = "Load Balancing";
"aigateway.routing.section.load_balance.desc" = "How to choose when multiple channels are available";
"aigateway.routing.section.model_mapping" = "Model Mapping";
"aigateway.routing.section.model_mapping.desc" = "Automatically convert model names the client sends that don't exist upstream";
"aigateway.routing.section.model_mapping.hint" = "e.g. claude-opus-* then map to glm-5.2";
"aigateway.routing.section.routing_rule" = "Routing Rules";
"aigateway.routing.section.routing_rule.desc" = "Automatically switch to a backup channel when quota or budget is exhausted";
"aigateway.routing.section.routing_rule.hint" = "e.g. when OpenAI budget exhausted then switch to Zhipu Coding";
