ErrInvalidParams: '잘못된 요청: {{ .detail }}' ErrTokenParse: '토큰 오류: {{ .detail }}' ErrInitialPassword: '원래 비밀번호가 틀립니다' ErrInternalServer: '서버 오류: {{ .detail }}' ErrFileAINotEnabled: '파일 관리에서 「AI 계정」으로 파일 AI 검색을 켜고 계정을 선택하세요.' ErrFileAISearchBadPattern: '검색 패턴이 잘못되었습니다(정규식 등): {{ .detail }}' ErrWgetRemoteFailed: '원격 다운로드 주소가 잘못되었거나 접근할 수 없습니다: {{ .detail }}' ErrWgetInvalidContentType: '원격 주소가 파일이 아닌 콘텐츠를 반환했습니다 (오류 페이지일 수 있음), {{ .detail }}' ErrWgetProxyNotConfigured: '먼저 패널 설정에서 프록시 서버를 구성하세요' ErrWgetProxyInvalid: '프록시 서버 주소가 잘못되었습니다: {{ .detail }}' ErrRecordExist: '레코드가 이미 있습니다' ErrRecordNotFound: '레코드를 찾을 수 없습니다' ErrStructTransform: '형 변환 실패: {{ .err }}' ErrNotLogin: '로그인하지 않음: {{ .detail }}' ErrPasswordExpired: '비밀번호 만료: {{ .detail }}' ErrNotSupportType: '지원하지 않는 타입: {{ .name }}' ErrAlertMethodNotSupported: '현재 버전에서는 이 알림 방식을 지원하지 않습니다' ErrProxy: '요청 실패: {{ .detail }}' ErrApiConfigStatusInvalid: 'API 사용 중지: {{ .detail }}' ErrApiConfigKeyInvalid: 'API 키가 잘못됨: {{ .detail }}' ErrApiConfigIPInvalid: 'IP 허용되지 않음: {{ .detail }}' ErrApiConfigDisable: 'API 접근 금지: {{ .detail }}' ErrApiConfigKeyTimeInvalid: '타임스탬프 오류: {{ .detail }}' ErrShutDown: '명령이 수동으로 중단되었습니다' ErrMinQuickJump: '퀵 액세스를 하나 이상 추가하세요' ErrMaxQuickJump: '퀵 액세스는 최대 4개' ErrUsernameIsExist: '아이디가 이미 존재합니다' ErrNameIsExist: '이름이 이미 존재합니다' ErrDemoEnvironment: '데모 환경에서는 불가' ErrCmdTimeout: '명령이 시간 초과했습니다' ErrCmdIllegal: '명령어에 허용되지 않은 문자가 포함됨' ErrPortExist: '포트 {{ .port }}는 {{ .type }} [{{ .name }}]에서 사용 중입니다' TYPE_APP: '응용 프로그램' TYPE_RUNTIME: '런타임 환경' TYPE_DOMAIN: '도메인 이름' ErrTypePort: '포트 {{ .name }} 형식이 올바르지 않습니다' ErrTypePortRange: '포트 범위는 1-65535 사이여야 합니다.' Success: '성공' Failed: '실패했습니다' SystemRestart: '시스템 재시작으로 인해 작업이 중단되었습니다' ErrGroupIsDefault: '기본 그룹, 삭제할 수 없습니다' ErrGroupIsInWebsiteUse: '그룹이 다른 웹사이트에서 사용 중이므로 삭제할 수 없습니다.' Decrypt: '복호화' ErrAgentAccountBound: '계정이 에이전트에 묶여 있습니다' ErrTerminalAIAccountInUse: '이 모델 계정은 현재 터미널 AI에서 사용 중입니다. 터미널 AI 설정에서 다른 계정으로 변경하거나 터미널 AI를 비활성화한 뒤 다시 시도하세요.' ErrAgentAccountUnavailable: '계정 연결 불가: {{ .err }}' ErrAgentProviderNotSupported: '지원되지 않는 에이전트 공급자' ErrAgentAccountRequired: '먼저 에이전트 계정을 선택하세요' ErrAgentAccountNotVerified: '에이전트 계정 미확인' ErrAgentAccountModelsRequired: '최소 한 개의 모델을 구성해 주세요' ErrAgentAccountSingleInitialModel: '계정 생성 시 초기 모델은 하나만 구성할 수 있습니다' ErrAgentModelNotInAccount: '선택한 모델이 현재 계정에 구성되어 있지 않습니다' ErrAgentFallbackModelDuplicate: '폴백 모델은 중복될 수 없습니다' ErrAgentFallbackModelPrimary: '폴백 모델은 기본 모델과 같을 수 없습니다' ErrAgentModelInUse: '이 모델을 아직 사용 중인 에이전트가 있습니다: {{ .name }}' ErrAgentBaseURLRequired: '기본 URL 필요' ErrAgentApiKeyRequired: 'API 키 필요' ErrAgentComposeRequired: 'Compose 내용 필요' ErrAgentIDRequired: '에이전트 ID 필요' ErrAgentAccountIDRequired: '계정 ID 필요' ErrAgentLimitReached: '커뮤니티 에디션에서는 AI 에이전트를 최대 {{ .max }}개까지 만들 수 있습니다. Business Edition으로 업그레이드하면 제한 없이 사용할 수 있습니다' ErrAgentWebsiteBound: '이 에이전트는 이미 웹사이트에 연결되어 있습니다' ErrAgentWebsiteTypeUnsupported: '프록시 또는 정적 웹사이트만 연결할 수 있습니다' ErrAgentWebsiteInUse: '이 웹사이트는 이미 다른 에이전트에 연결되어 있습니다' ErrAgentWebsiteUnbindUnsupported: '원클릭 배포 웹사이트는 수동으로 연결 해제할 수 없습니다' ErrHermesPairingCodeUnavailable: 'Hermes에서 페어링 코드가 일시적으로 존재하지 않습니다. 네트워크 문제일 수 있으니 잠시 후 다시 시도해 주세요.' ErrHermesFeishuGroupAllowlistRequiresAllowlist: 'Feishu 그룹 정책이 허용 목록이면 DM 정책을 페어링 코드로 설정할 수 없습니다.' ErrAIProxyServiceNotInstalled: '{{ .name }} 서비스가 설치되어 있지 않습니다' ErrAIProxyModelAccountNotFound: '모델 계정 {{ .id }}을(를) 찾을 수 없습니다' ErrAIProxyModelMapRequired: '이 필드는 필수입니다.' ErrAIProxyModelMapInvalid: '모델 매핑은 유효한 JSON 객체여야 합니다: {{ .err }}' ErrAIProxyModelMapEmpty: '모델 매핑은 비워 둘 수 없습니다' ErrAIProxyModelMapEmptyExternalModel: '모델 매핑에 빈 요청 모델이 있습니다' ErrAIProxyModelMapEmptyUpstreamModel: '{{ .model }}의 업스트림 모델은 비워 둘 수 없습니다' AIProxyUserFallback: '사용자 {{ .id }}' Localhost: '로컬 머신' ErrBackupInUsed: '백업 계정이 예약에 사용 중' ErrBackupCheck: '연결 테스트 실패: {{ .err }}' ErrBackupLocalDelete: '로컬 백업은 삭제할 수 없습니다' ErrBackupLocalCreate: '로컬 백업은 만들 수 없습니다' ErrAlertConfigInUse: '경고 설정이 사용 중이므로 삭제할 수 없습니다' ErrAlertConfigPhoneExist: '전화번호가 이미 존재합니다' ErrPortInUsed: '{{ .detail }} 포트가 이미 사용 중입니다' ErrAppLimit: '설치된 애플리케이션 수가 한도를 초과했습니다' ErrNotInstall: '응용 프로그램이 설치되지 않았습니다' ErrPortInOtherApp: '{{ .port }} 포트는 이미 {{ .apps }} 애플리케이션에 의해 사용되고 있습니다' ErrDbUserNotValid: '기존 데이터베이스, 사용자 이름 및 비밀번호가 일치하지 않습니다' ErrUpdateBuWebsite: '응용 프로그램이 성공적으로 업데이트되었지만, 웹사이트 구성 파일 수정에 실패했습니다. 구성을 확인하세요' Err1PanelNetworkFailed: '기본 컨테이너 네트워크 생성에 실패했습니다 {{ .세부 사항 }}' ErrFileParse: '응용 프로그램 docker-compose 파일 구문 분석에 실패했습니다' ErrInstallDirNotFound: '설치 디렉토리가 존재하지 않습니다. 제거를 원하실 경우 강제 제거 를 선택해주세요.' AppStoreIsUpToDate: '앱 스토어가 이미 최신 버전입니다' LocalAppVersionNull: '{{ .name }} 애플리케이션이 버전과 동기화되지 않았습니다 앱 목록에 추가할 수 없습니다.' LocalAppVersionErr: '{{ .name }} 동기화 버전 {{ .version }}이 실패했습니다 {{ .err }}' ErrFileNotFound: '{{ .name }} 파일이 존재하지 않습니다' ErrFileParseApp: '{{ .name }} 파일 구문 분석에 실패했습니다 {{ .err }}' ErrAppDirNull: '버전 폴더가 존재하지 않습니다' LocalAppErr: '애플리케이션 {{ .name }} 동기화에 실패했습니다 {{ .err }}' ErrContainerName: '컨테이너 이름이 이미 존재합니다' ErrCreateHttpClient: '요청 {{ .err }}을(를) 생성하지 못했습니다.' ErrHttpReqTimeOut: '요청 시간이 초과되었습니다 {{ .err }}' ErrHttpReqFailed: '요청이 실패했습니다 {{ .err }}' ErrNoSuchHost: '요청한 서버 {{ .err }}을 찾을 수 없습니다' ErrHttpReqNotFound: '요청한 리소스 {{ .err }}을 찾을 수 없습니다.' ErrContainerNotFound: '{{ .name }} 컨테이너가 존재하지 않습니다' ErrContainerMsg: '{{ .name }} 컨테이너가 비정상입니다. 자세한 내용은 컨테이너 페이지의 로그를 확인하세요.' ErrAppBackup: '{{ .name }} 애플리케이션 백업에 실패했습니다 {{ .err }}' ErrVersionTooLow: '현재 1Panel 버전이 너무 낮아 App Store를 업데이트할 수 없습니다. 작동하시기 전에 버전을 업그레이드하세요.' ErrAppNameExist: '응용 프로그램 이름이 이미 존재합니다' AppStoreIsSyncing: 'App Store가 동기화 중입니다. 나중에 다시 시도하세요.' ErrGetCompose: 'docker-compose.yml 파일을 가져오지 못했습니다 {{ .detail }}' ErrAppWarn: '비정상적인 상태입니다. 로그를 확인해 주세요.' ErrAppParamKey: '매개변수 {{ .name }} 필드가 비정상입니다.' ErrAppUpgrade: '애플리케이션 {{ .name }} 업그레이드에 실패했습니다 {{ .err }}' AppRecover: '롤백 애플리케이션 {{ .name }}' PullImageStart: '이미지 [{{ .name }}] 가져오기 시작' PullImageSuccess: '이미지 가져오기 성공' AppStoreSyncSuccess: '앱스토어 동기화 성공' SyncAppDetail: '애플리케이션 구성 동기화' AppVersionNotMatch: '{{ .name }} 애플리케이션에 더 높은 1Panel 버전이 필요하므로 동기화를 건너뜁니다.' MoveSiteDir: '웹사이트 디렉토리 변경이 감지되었습니다. OpenResty 웹사이트 디렉토리를 {{ .name }} 로 마이그레이션해야 합니다' MoveSiteDirSuccess: '웹사이트 디렉토리 마이그레이션 성공' DeleteRuntimePHP: 'PHP 런타임 삭제' CustomAppStoreFileValid: '앱 스토어 패키지는.tar.gz 형식이어야 합니다.' PullImageTimeout: '이미지 가져오기 시간 초과, 이미지 가속을 높이거나 다른 이미지 가속으로 변경해 보세요.' ErrAppIsDown: '{{ .name }} 애플리케이션 상태가 비정상적입니다. 확인해 주세요' ErrCustomApps: '설치된 애플리케이션이 있습니다. 먼저 제거해 주세요' ErrCustomRuntimes: '설치된 런타임 환경이 있습니다. 먼저 삭제해 주세요' ErrAppVersionDeprecated: '{{ .name }} 응용 프로그램은 현재 1Panel 버전과 호환되지 않아 건너뛰었습니다' ErrDockerFailed: 'Docker의 상태가 비정상입니다. 서비스 상태를 확인하세요' ErrDockerComposeCmdNotFound: 'Docker Compose 명령이 없습니다. 호스트 머신에 먼저 이 명령을 설치하세요' UseExistImage: '이미지가 이미 존재하여 기존 이미지를 사용합니다' ErrDatabaseNotFound: '데이터베이스 {{ .name }} 이(가) 존재하지 않습니다' ExportIP: '로그인 IP' ExportArea: '위치' ExportPort: '포트' ExportAuthMode: '로그인 방식' ExportUser: '사용자' ExportStatus: '로그인 상태' ExportDate: '시간' ErrFileCanNotRead: '이 파일은 미리보기를 지원하지 않습니다' ErrSensitiveFileRead: '민감한 파일을 읽을 수 없습니다' ErrFileToLarge: '파일이 10M보다 커서 열 수 없습니다' ErrPathNotFound: '디렉토리가 존재하지 않습니다' ErrMovePathFailed: '대상 경로에는 원래 경로가 포함될 수 없습니다' ErrLinkPathNotFound: '대상 경로가 존재하지 않습니다' ErrFileIsExist: '파일이나 폴더가 이미 존재합니다' ErrFileUpload: '{{ .name }}이 파일 {{ .detail }}을 업로드하지 못했습니다.' ErrFileDownloadDir: '다운로드 폴더가 지원되지 않습니다' ErrFileSharePath: '잘못된 파일 경로이거나 대상이 파일이 아닙니다' ErrFileShareInvalid: '유효하지 않거나 만료된 공유 링크입니다' ErrFileShareExpired: '공유 링크가 만료되었습니다' ErrFileSharePassword: '공유 비밀번호가 올바르지 않습니다' ErrFileShareExhausted: '이 공유의 다운로드 한도에 도달했습니다' ErrFileSharePasswordPolicy: '비밀번호는 4자 이상이어야 합니다' ErrFileShareRateLimit: '요청이 너무 많습니다. 잠시 후 다시 시도해 주세요' ErrCmdNotFound: '{{ .name }} 명령이 존재하지 않습니다. 먼저 호스트에 이 명령을 설치하세요' ErrSourcePathNotFound: '소스 디렉토리가 존재하지 않습니다' ErrFavoriteExist: '이 경로는 이미 즐겨찾기되었습니다' ErrInvalidChar: '불법 문자는 허용되지 않습니다' ErrPathNotDelete: '선택한 디렉토리를 삭제할 수 없습니다' ErrLogFileToLarge: '로그 파일이 500MB를 초과하여 열 수 없습니다' FileDropFailed: '파일 {{ .name }} 정리 실패: {{ .err }}' FileDropSuccess: '파일 {{ .name }} 정리 성공, {{ .count }}개 파일 삭제, {{ .size }} 디스크 공간 확보' FileDropSum: '파일 정리 완료, 총 {{ .count }}개 파일 삭제, 총 {{ .size }} 디스크 공간 확보' ErrBadDecrypt: '압축 패키지 암호 해제 비밀번호 오류, 압축 해제 실패, 확인 후 다시 시도하세요' ErrAliasIsExist: '별칭이 이미 존재합니다' ErrBackupMatch: '백업 파일이 현재 웹사이트 데이터 중 일부 {{ .detail }}와 일치하지 않습니다.' ErrBackupExist: '백업 파일에 있는 소스 데이터의 해당 부분이 존재하지 않습니다 {{ .detail }}' ErrPHPResource: '로컬 운영 환경이 전환을 지원하지 않습니다' ErrPathPermission: '인덱스 디렉토리에서 1000:1000이 아닌 권한을 가진 폴더가 감지되었습니다. 이로 인해 웹사이트에서 액세스 거부 오류가 발생할 수 있습니다. 위의 저장 버튼을 클릭해주세요.' ErrDomainIsUsed: '[{{ .name }}] 웹사이트에서 이미 도메인 이름을 사용하고 있습니다.' ErrDomainFormat: '{{ .name }} 도메인 이름 형식이 올바르지 않습니다' ErrDefaultAlias: '기본값은 예약된 코드입니다. 다른 코드를 사용하세요' ErrParentWebsite: '먼저 하위 사이트 {{ .name }}을 삭제해야 합니다.' ErrBuildDirNotFound: '빌드 디렉토리가 존재하지 않습니다' ErrImageNotExist: '운영 환경 {{ .name }} 이미지가 존재하지 않습니다. 운영 환경을 다시 편집하세요.' ErrProxyIsUsed: '로드 밸런싱이 역방향 프록시에 의해 사용되었으므로 삭제할 수 없습니다' ErrSSLValid: '인증서 파일에 문제가 있습니다. 인증서 상태를 확인하세요' ErrWebsiteDir: '웹사이트 디렉토리 내의 디렉토리를 선택하세요.' ErrComposerFileNotFound: 'composer.json 파일이 존재하지 않습니다' ErrRuntimeNoPort: '런타임 환경에 포트가 설정되지 않았습니다. 먼저 런타임 환경을 편집하세요.' ErrRuntimeProjectDirContainsCodeDir: '런타임 디렉터리에 선택한 프로젝트 디렉터리가 포함되어 있습니다. 다른 프로젝트 디렉터리를 선택한 후 다시 생성해 주세요.' Status: '상태' start: '시작' stop: '중지' restart: '재시작' kill: '강제 중지' pause: '일시 정지' unpause: '재개' remove: '삭제' delete: '삭제' ErrDefaultWebsite: '기본 웹사이트가 이미 설정되었습니다. 설정하기 전에 취소하세요' SSL: '인증서' Set: '설정' ErrSSLCannotDelete: '{{ .name }} 인증서는 웹사이트에서 사용 중이므로 삭제할 수 없습니다.' ErrAccountCannotDelete: '계정이 인증서와 연결되어 있어 삭제할 수 없습니다.' ErrSSLApply: '인증서 갱신이 성공했으나, openresty 재로드에 실패했습니다. 구성을 확인해 주세요' ErrEmailIsExist: '사서함이 이미 존재합니다' ErrSSLKeyNotFound: '개인 키 파일이 존재하지 않습니다' ErrSSLCertificateNotFound: '인증서 파일이 존재하지 않습니다' ErrSSLKeyFormat: '개인 키 파일 검증에 실패했습니다' ErrSSLCertificateFormat: '인증서 파일 형식이 올바르지 않습니다. pem 형식을 사용하세요.' ErrEabKidOrEabHmacKeyCannotBlank: 'EabKid 또는 EabHmacKey는 비워둘 수 없습니다' ErrOpenrestyNotFound: 'HTTP 모드에서는 OpenResty가 필요합니다' ApplySSLStart: '인증서 신청 시작, 도메인 이름 [{{ .domain }}] 신청 방법 [{{ .type }}]' dnsAccount: 'DNS 자동' dnsManual: 'DNS 매뉴얼' http: 'HTTP' ApplySSLFailed: '[{{ .domain }}] 인증서 신청이 실패했습니다. {{ .detail }}' ApplySSLSuccess: '[{{ .domain }}] 인증서 신청이 성공적으로 완료되었습니다' DNSAccountName: 'DNS 계정 [{{ .name }}] 공급업체 [{{ .type }}]' PushDirLog: '인증서가 [{{ .path }}] {{ .status }} 디렉토리로 푸시되었습니다.' ErrDeleteCAWithSSL: '현재 조직에는 발급된 인증서가 있어 삭제할 수 없습니다.' ErrDeleteWithPanelSSL: '패널 SSL 구성은 이 인증서를 사용하므로 삭제할 수 없습니다.' ErrDefaultCA: '기본 권한을 삭제할 수 없습니다' ApplyWebSiteSSLLog: '{{ .name }} 웹사이트 인증서 갱신 시작' ErrUpdateWebsiteSSL: '{{ .name }} 웹사이트 인증서 업데이트에 실패했습니다: {{ .err }}' ApplyWebSiteSSLSuccess: '웹사이트 인증서 업데이트 성공' ErrExecShell: '스크립트 {{ .err }}을 실행하지 못했습니다.' ExecShellStart: '스크립트 실행 시작' ExecShellSuccess: '스크립트 실행 성공' StartUpdateSystemSSL: '시스템 인증서 업데이트 시작' UpdateSystemSSLSuccess: '시스템 인증서 업데이트가 성공적으로 완료되었습니다.' ErrWildcardDomain: 'HTTP 모드에서 와일드카드 도메인 이름 인증서를 신청할 수 없습니다' ErrApplySSLCanNotDelete: '신청 중인 인증서 {{ .name }}는 삭제할 수 없습니다. 나중에 재시도' StartPushSSLToNode: '인증서를 노드로 푸시 시작' PushSSLToNodeFailed: '노드로 인증서 푸시 실패: {{ .err }}' PushSSLToNodeSuccess: '노드로 인증서 푸시 성공' ErrUserIsExist: '현재 사용자가 이미 존재합니다. 다시 입력하세요' ErrDatabaseIsExist: '현재 데이터베이스가 이미 존재합니다. 다시 입력하세요' ErrExecTimeOut: 'SQL 실행 시간이 초과되었습니다. 데이터베이스를 확인하십시오.' ErrRemoteExist: '이 이름을 가진 원격 데이터베이스가 이미 존재합니다. 수정하고 다시 시도하세요' ErrLocalExist: '이름이 로컬 데이터베이스에 이미 존재합니다. 이름을 수정하고 다시 시도하세요' RemoteBackup: '원격 데이터베이스를 백업하려면 먼저 이미지 {{ .name }}을(를) 사용하여 로컬 컨테이너 데이터베이스 서비스를 시작해야 합니다. 잠시만 기다려 주세요...' RemoteRecover: '원격 데이터베이스를 복원하려면 먼저 이미지 {{ .name }}을(를) 사용하여 로컬 컨테이너 데이터베이스 서비스를 시작해야 합니다. 잠시만 기다려 주세요...' Arg: '인수' ErrTypeOfRedis: '복구 파일 유형이 현재 지속성 방법과 일치하지 않습니다. 수정하고 다시 시도하세요' ErrInUsed: '{{ .detail }}(이)가 사용 중이어서 삭제할 수 없습니다' ErrObjectInUsed: '이 객체는 사용 중이어서 삭제할 수 없습니다' ErrObjectBeDependent: '이 이미지는 다른 이미지에 의존되어 있어 삭제할 수 없습니다' ErrPortRules: '포트 번호가 일치하지 않습니다. 다시 입력하세요' ErrPgImagePull: '이미지 풀링 시간이 초과되었습니다. 이미지 가속을 구성하거나 {{ .name }} 이미지를 수동으로 풀링한 다음 다시 시도하세요.' PruneHelper: '이번 정리 {{ .name }}가 디스크 공간 {{ .size }}을(를) 확보했습니다' ImageRemoveHelper: '이미지 {{ .name }} 삭제, {{ .size }} 디스크 공간 확보' BuildCache: '빌드 캐시' Volume: '스토리지 볼륨' Network: '네트워크' PruneStart: '정리 중입니다. 잠시만 기다려주세요...' ContainerBackupPrepare: '컨테이너 백업 작업 공간 준비' ContainerBackupStop: '백업 전에 컨테이너 중지' ContainerBackupInspect: '컨테이너 inspect 및 네트워크 정보 백업' ContainerBackupMounts: '컨테이너 마운트 데이터 백업' ContainerBackupMeta: '컨테이너 백업 메타데이터 작성' ContainerBackupStart: '백업 후 컨테이너 시작' ContainerRecoverPrepare: '컨테이너 복원 작업 공간 준비' ContainerRecoverExtract: '컨테이너 백업 파일 압축 해제' ContainerRecoverParse: '컨테이너 백업 메타데이터 로드' ContainerRecoverCreate: '컨테이너 재생성' ContainerRecoverMounts: '컨테이너 마운트 데이터 복원' ContainerRecoverStart: '복원된 컨테이너 시작' ContainerRecoverCleanup: '컨테이너 복원 작업 공간 정리' ComposeBackupPrepare: 'Compose 백업 작업 공간 준비' ComposeBackupStop: '백업 전에 Compose 중지' ComposeBackupFiles: 'Compose 파일 백업' ComposeBackupContainers: 'Compose 컨테이너 백업' ComposeBackupMeta: 'Compose 백업 메타데이터 작성' ComposeBackupStart: '백업 후 Compose 시작' ComposeBackupCleanup: 'Compose 백업 작업 공간 정리' ComposeRecoverPrepare: 'Compose 복원 작업 공간 준비' ComposeRecoverExtract: 'Compose 백업 파일 압축 해제' ComposeRecoverMeta: 'Compose 백업 메타데이터 로드' ComposeRecoverMetaLogName: 'Compose 복원 메타: 이름={{ .name }}' ComposeRecoverMetaLogPath: 'Compose 복원 메타: 백업경로={{ .backupPath }} 대상경로={{ .targetDir }}' ComposeRecoverMetaLogCount: 'Compose 복원 메타: 파일={{ .files }} 컨테이너={{ .containers }}' ComposeRecoverFiles: 'Compose 파일 복원' ComposeRecoverContainers: 'Compose 컨테이너 복원' ComposeRecoverRecord: 'Compose 기록 저장' ComposeRecoverCleanup: 'Compose 복원 작업 공간 정리' ErrFileNotExist: '{{ .detail }} 파일이 존재하지 않습니다 소스 파일의 무결성을 확인하세요' ErrImageBuildErr: '이미지 빌드 실패' ErrImageExist: '이미지가 이미 존재합니다 이미지 이름을 수정하세요.' ErrDelWithWebsite: '운영 환경이 이미 웹사이트와 연결되어 있어 삭제할 수 없습니다' ErrRuntimeStart: '시작 실패' ErrPackageJsonNotFound: 'package.json 파일이 존재하지 않습니다' ErrScriptsNotFound: 'package.json에서 스크립트 구성 항목을 찾을 수 없습니다.' ErrContainerNameNotFound: '컨테이너 이름을 가져올 수 없습니다..env 파일을 확인하세요.' ErrNodeModulesNotFound: 'node_modules 폴더가 없습니다 런타임 환경을 편집하거나 런타임 환경이 성공적으로 시작될 때까지 기다리십시오' ErrContainerNameIsNull: '컨테이너 이름이 존재하지 않습니다' ErrPHPPortIsDefault: '9000 포트는 기본 포트입니다. 수정 후 다시 시도하세요' ErrPHPRuntimePortFailed: '포트 {{ .name }} 는 현재 런타임 환경에서 이미 사용 중입니다. 수정 후 다시 시도하세요' ErrConfigNotFound: '구성 파일이 존재하지 않습니다' ErrConfigParse: '구성 파일 형식이 올바르지 않습니다' ErrConfigIsNull: '구성 파일은 비어 있을 수 없습니다' ErrConfigDirNotFound: '실행 디렉토리가 존재하지 않습니다' ErrConfigAlreadyExist: '같은 이름의 구성 파일이 이미 존재합니다' ErrUserFindErr: '사용자 {{ .name }} 검색에 실패했습니다 {{ .err }}' CutWebsiteLogSuccess: '{{ .name }} 웹사이트 로그가 성공적으로 잘렸습니다. 백업 경로 {{ .path }}' HandleShell: '스크립트 {{ .name }} 실행' HandleCurl: 'URL {{ .name }} 접근' HandleNtpSync: '시스템 시간 동기화' HandleSystemClean: '시스템 캐시 정리' SystemLog: '시스템 로그' CutWebsiteLog: '웹사이트 로그 회전' FileOrDir: '디렉터리 / 파일' UploadFile: '백업 파일 {{ .file }} 을(를) {{ .backup }}(으)로 업로드 중' Upload: '업로드' IgnoreBackupErr: '백업 실패, 오류: {{ .detail }}, 이 오류를 무시합니다...' IgnoreUploadErr: '업로드 실패, 오류: {{ .detail }}, 이 오류를 무시합니다...' LoadBackupFailed: '백업 계정 연결 획득 실패, 오류: {{ .detail }}' InExecuting: '현재 작업이 실행 중입니다. 중복 실행하지 마세요' NoSuchResource: '데이터베이스에서 백업 내용을 찾을 수 없어 건너뜁니다...' CleanLog: '로그 정리' CleanLogByName: '{{ .name }} 로그 정리' WafIpGroupNotFound: 'WAF IP 그룹을 찾을 수 없습니다. [고급 기능 - WAF - 블랙/화이트 목록 - IP 그룹]으로 이동하여 원격 다운로드 방식으로 IP 그룹을 추가하십시오.' ErrNotExistUser: '현재 사용자가 존재하지 않습니다. 수정한 후 다시 시도하세요' ErrBanAction: '설정에 실패했습니다. 현재 {{ .name }} 서비스를 사용할 수 없습니다. 확인하고 다시 시도하세요' ErrClamdscanNotFound: 'clamdscan 명령이 감지되지 않았습니다. 설명서를 참조하여 설치하세요' TaskSwapSet: 'Swap 설정' SetSwap: 'Swap 설정 {{ .path }} - {{ .size }}' CreateSwap: 'Swap 파일 생성' FormatSwap: 'Swap 파일 포맷' EnableSwap: 'Swap 활성화' CleanTamperSetting: '히스토리 보호 설정 정리' SetTamperWithRules: '규칙에 따라 디렉토리 보호 시작' ProtectDir: '디렉토리 보호 {{ .name }}' IgnoreFile: '파일 보호 {{ .name }}' TamperSetSuccessful: '보호 설정 완료, 다음 디렉토리 모니터링 시작:' ErrScope: '이 구성을 수정하는 것은 지원되지 않습니다' ErrStateChange: '상태 변경에 실패했습니다' ErrRuleExist: '규칙이 이미 존재합니다' ErrRuleNotExist: '규칙이 존재하지 않습니다' ErrParseIP: '잘못된 IP 형식' ErrDefaultIP: '기본값은 예약된 이름입니다. 다른 이름으로 변경해 주세요' ErrGroupInUse: 'IP 그룹이 블랙리스트/화이트리스트에 사용 중이므로 삭제할 수 없습니다.' ErrIPGroupAclUse: 'IP 그룹은 웹사이트 {{ .name }} 의 사용자 정의 규칙에 사용되므로 삭제할 수 없습니다' ErrGroupExist: 'IP 그룹 이름이 이미 존재합니다' ErrIPRange: '잘못된 IP 범위' ErrIPExist: 'IP가 이미 존재합니다' urlDefense: 'URL 규칙' urlHelper: '금지된 URL' dirFilter: '디렉토리 필터' xss: 'XSS' phpExec: 'PHP 스크립트 실행' oneWordTrojan: '한 단어 트로이' appFilter: '위험한 디렉토리 필터링 적용' webShell: '웹쉘' args: '매개변수 규칙' protocolFilter: '프로토콜 필터링' javaFilter: 'Java 위험 파일 필터' scannerFilter: '스캐너 필터' escapeFilter: '탈출 필터' customRule: '사용자 정의 규칙' httpMethod: 'HTTP 메서드 필터링' fileExt: '파일 업로드 제한' defaultIpBlack: '악성 IP 그룹' cookie: '쿠키 규칙' urlBlack: 'URL 블랙리스트' uaBlack: '사용자 에이전트 블랙리스트' attackCount: '공격 빈도 제한' fileExtCheck: '파일 업로드 제한' geoRestrict: '지역 접근 제한' unknownWebsite: '허가받지 않은 도메인 이름 접근' notFoundCount: '404 속도 제한' headerDefense: '헤더 규칙' defaultUaBlack: '사용자 에이전트 규칙' methodWhite: 'HTTP 규칙' captcha: '인간-기계 검증' fiveSeconds: '5초 검증' vulnCheck: '보충 규칙' acl: '사용자 정의 규칙' sql: 'SQL 주입' cc: '접근 주파수 제한' defaultUrlBlack: 'URL 규칙' sqlInject: 'SQL 주입' ErrDBNotExist: '데이터베이스가 존재하지 않습니다' allow: '허용하다' deny: '거부하다' OpenrestyNotFound: 'OpenResty가 설치되어 있지 않습니다' remoteIpIsNull: 'IP 목록이 비어 있습니다' OpenrestyVersionErr: 'OpenResty 버전이 너무 낮습니다. 1.27.1.2-2-2-focal 이상으로 업그레이드하세요' ErrFileTooLarge: '파일이 1MB를 초과하여 업로드할 수 없습니다' TaskStart: '[START] {{ .name }} 작업이 시작됩니다.' TaskEnd: '{{ .name }} 작업이 완료되었습니다 [완료]' TaskFailed: '{{ .name }} 작업이 실패했습니다' TaskTimeout: '{{ .name }}의 시간이 초과되었습니다' TaskSuccess: '{{ .name }} 작업이 성공했습니다' TaskRetry: '{{ .name }}번째 재시도 시작' SubTaskSuccess: '{{ .name }}이 성공했습니다' SubTaskFailed: '{{ .name }}이 실패했습니다: {{ .err }}' TaskInstall: '설치' TaskUninstall: '제거' TaskCreate: '생성' TaskDelete: '삭제' TaskUpgrade: '업그레이드' TaskUpdate: '업데이트' TaskRestart: '다시 시작' TaskProtect: '보호' TaskBackup: '백업' TaskRecover: '복구' TaskRollback: '롤백' TaskPull: '당기기' TaskCommit: '커밋' TaskBuild: '빌드' TaskPush: '전송' TaskClean: '정리' TaskHandle: '실행' TaskImport: '가져오기' TaskExport: '내보내기' Website: '웹사이트' App: '애플리케이션' Runtime: '런타임 환경' Database: '데이터베이스' ConfigFTP: 'FTP 사용자 {{ .name }} 생성' ConfigOpenresty: 'OpenResty 구성 파일 생성' InstallAppSuccess: '애플리케이션 {{ .name }}이 성공적으로 설치되었습니다.' ConfigRuntime: '런타임 환경 구성' ConfigApp: '구성 애플리케이션' SuccessStatus: '{{ .name }}이 성공했습니다' FailedStatus: '{{ .name }}이(가) {{ .err }}에 실패했습니다' HandleLink: '핸들 애플리케이션 연결' HandleDatabaseApp: '애플리케이션 매개변수 처리' ExecShell: '{{ .name }} 스크립트 실행' PullImage: '이미지 가져오기' Start: '시작' Run: '시작' Stop: '정지' Image: '거울' Compose: '오케스트레이션' Container: '컨테이너' AppLink: '연결된 애플리케이션' EnableSSL: 'HTTPS 활성화' AppStore: '앱스토어' TaskSync: '동기화' LocalApp: '로컬 애플리케이션' SubTask: '하위 작업' RuntimeExtension: '런타임 환경 확장' TaskIsExecuting: '작업이 실행 중입니다' CustomAppstore: '사용자 정의 애플리케이션 웨어하우스' TaskExec: '실행' TaskBatch: '일괄 작업' FileConvert: '파일 형식 변환' Clamscan: '{{ .name }} 스캔' TaskScan: '스캔' OllamaModelPull: 'Ollama 모델 {{ .name }}을(를) 끌어오세요' OllamaModelSize: 'Ollama 모델 {{ .name }}의 크기를 가져옵니다' Snapshot: '스냅샷' SnapDBInfo: '1Panel 데이터베이스 정보 쓰기' SnapCopy: '파일 및 디렉토리 {{ .name }} 복사' SnapNewDB: '데이터베이스 {{ .name }} 연결 초기화' SnapDeleteOperationLog: '작업 로그 삭제' SnapDeleteLoginLog: '액세스 로그 삭제' SnapDeleteMonitor: '모니터링 데이터 삭제' SnapRemoveSystemIP: '시스템 IP 제거' SnapBaseInfo: '1패널 기본 정보 쓰기' SnapInstallAppImageEmpty: '애플리케이션 이미지가 선택되지 않아 건너뜁니다...' SnapInstallApp: '1Panel 설치된 애플리케이션 백업' SnapDockerSave: '설치된 애플리케이션 압축' SnapLocalBackup: '1Panel 로컬 백업 디렉토리 백업' SnapCompressBackup: '로컬 백업 디렉토리 압축' SnapPanelData: '1Panel 데이터 디렉토리 백업' SnapCompressPanel: '압축 데이터 디렉토리' SnapWebsite: '1Panel 웹사이트 디렉토리 백업' SnapCloseDBConn: '데이터베이스 연결 닫기' SnapCompress: '스냅샷 파일 만들기' SnapCompressFile: '스냅샷 파일 압축' SnapCheckCompress: '스냅샷 압축 파일 확인' SnapCompressSize: '스냅샷 파일 크기 {{ .name }}' SnapUpload: '스냅샷 파일 업로드' SnapUploadTo: '스냅샷 파일을 {{ .name }}에 업로드' SnapUploadRes: '스냅샷 파일을 {{ .name }}에 업로드' SnapshotRecover: '스냅샷 복원' RecoverDownload: '스냅샷 파일 다운로드' Download: '다운로드' RecoverDownloadAccount: '스냅샷 다운로드 백업 계정 {{ .name }} 가져오기' RecoverDecompress: '스냅샷 압축 파일 압축 해제' Decompress: '감압' BackupBeforeRecover: '스냅샷 전에 시스템 관련 데이터 백업' ReadJson: '스냅샷에서 Json 파일을 읽습니다' ReadJsonPath: '스냅샷의 Json 파일 경로 가져오기' ReadJsonContent: 'Json 파일 읽기' ReadJsonMarshal: 'Json 이스케이프 처리' RecoverApp: '설치된 앱 복원' RecoverWebsite: '웹사이트 디렉토리 복구' RecoverAppImage: '스냅샷 이미지 백업 복원' RecoverCompose: '다른 Composer 콘텐츠 복원' RecoverComposeList: '모든 작곡가를 복원합니다' RecoverComposeItem: '작성 {{ .name }} 복구' RecoverAppEmpty: '스냅샷 파일에서 애플리케이션 이미지 백업을 찾을 수 없습니다' RecoverBaseData: '기본 데이터 및 파일 복구' RecoverDaemonJsonEmpty: '스냅샷 파일과 현재 머신 모두 컨테이너 구성 daemon.json 파일이 없습니다.' RecoverDaemonJson: '컨테이너 구성 daemon.json 파일 복원' RecoverDBData: '데이터베이스 데이터 복구' RecoverBackups: '로컬 백업 디렉토리 복원' RecoverPanelData: '복구 데이터 디렉토리' ContainerImagePull: '컨테이너 이미지 {{ .name }} 가져오기' ContainerRemoveOld: '원래 컨테이너 {{ .name }} 제거' ContainerImageCheck: '이미지가 정상적으로 당겨졌는지 확인' ContainerLoadInfo: '기본 컨테이너 정보 가져오기' ContainerRecreate: '컨테이너 업데이트에 실패했습니다. 이제 원래 컨테이너를 복원하기 시작합니다.' ContainerCreate: '새로운 컨테이너 {{ .name }}를 만듭니다' ContainerCreateFailed: '컨테이너 생성에 실패했습니다. 실패한 컨테이너를 삭제하세요' ContainerStartCheck: '컨테이너가 시작되었는지 확인' ImageBuild: '이미지 빌드' ImagePull: '이미지 가져오기' ImageRepoAuthFromDB: '데이터베이스에서 저장소 인증 정보 가져오기' ImagePush: '이미지 푸시' ImageRenameTag: '이미지 태그 수정' ImageNewTag: '새로운 이미지 태그 {{ .name }}' ComposeCreate: '작곡 만들기' BackupNginxConfig: '웹사이트 OpenResty 구성 파일 백업' CompressFileSuccess: '디렉토리 압축이 성공했습니다. {{ .name }}으로 압축되었습니다.' CompressDir: '압축 디렉토리' DeCompressFile: '파일 {{ .name }} 압축 해제' ErrCheckValid: '백업 파일 검증에 실패했습니다, {{ .name }}' Rollback: '롤백' websiteDir: '웹사이트 디렉토리' RecoverFailedStartRollBack: '복구 실패, 롤백 시작' AppBackupFileIncomplete: '백업 파일이 불완전하며 app.json 또는 app.tar.gz 파일이 없습니다.' AppAttributesNotMatch: '애플리케이션 유형 또는 이름이 일치하지 않습니다' ErrAlertSync: '알람 정보 동기화 오류입니다. 확인하고 다시 시도하세요' ErrInstallExtension: '이미 설치 작업이 진행 중입니다. 작업이 완료될 때까지 기다려 주세요.' PanelAlertTitle: '패널 알림 통지' TestAlertTitle: '테스트 이메일 - 이메일 연결 확인' TestAlert: '이것은 테스트 이메일이며 이메일 발송 설정이 올바른지 확인합니다.' LicenseExpirationAlert: '귀하의 {{ .node }}{{ .ip }} 패널, 라이센스가 {{ .day }}일 후에 만료됩니다. 자세한 내용은 패널에 로그인하십시오.' CronJobFailedAlert: '귀하의 {{ .node }}{{ .ip }} 패널, 예약 작업 {{ .name }} 실행에 실패했습니다. 자세한 내용은 패널에 로그인하십시오.' ClamAlert: '귀하의 {{ .node }}{{ .ip }} 패널, 바이러스 스캔 작업에서 {{ .num }}개의 감염 파일이 감지되었습니다. 자세한 내용은 패널에 로그인하십시오.' WebSiteAlert: '귀하의 {{ .node }}{{ .ip }} 패널, {{ .num }}개의 웹사이트가 {{ .day }}일 후에 만료됩니다. 자세한 내용은 패널에 로그인하십시오.' SSLAlert: '귀하의 {{ .node }}{{ .ip }} 패널, {{ .num }}개의 SSL 인증서가 {{ .day }}일 후에 만료됩니다. 자세한 내용은 패널에 로그인하십시오.' DiskUsedAlert: '귀하의 {{ .node }}{{ .ip }} 패널, 디스크 {{ .name }} 사용률이 {{ .used }}에 도달했습니다. 자세한 내용은 패널에 로그인하십시오.' ResourceAlert: '귀하의 {{ .node }}{{ .ip }} 패널, 최근 {{ .time }}분간 {{ .name }} 평균 사용률은 {{ .used }}입니다. 자세한 내용은 패널에 로그인하십시오.' PanelVersionAlert: '귀하의 {{ .node }}{{ .ip }} 패널, 최신 버전으로 업그레이드할 수 있습니다. 자세한 내용은 패널에 로그인하십시오.' PanelPwdExpirationAlert: '귀하의 {{ .node }}{{ .ip }} 패널, 패널 비밀번호가 {{ .day }}일 후에 만료됩니다. 자세한 내용은 패널에 로그인하십시오.' CommonAlert: '귀하의 {{ .node }}{{ .ip }} 패널, {{ .msg }}。자세한 내용은 패널에 로그인하십시오.' NodeExceptionAlert: '귀하의 {{ .node }}{{ .ip }} 패널, {{ .num }}개의 노드에 이상이 있습니다. 자세한 내용은 패널에 로그인하십시오.' LicenseExceptionAlert: '귀하의 {{ .node }}{{ .ip }} 패널, {{ .num }}개의 라이센스에 이상이 있습니다. 자세한 내용은 패널에 로그인하십시오.' SSHAndPanelLoginAlert: '귀하의 {{ .node }}{{ .ip }} 패널, {{ .loginIp }}에서의 {{ .name }} 로그인에 이상이 있습니다. 자세한 내용은 패널에 로그인하십시오.' DeviceNotFound: '장치 {{ .name }} 을(를) 찾을 수 없습니다' DeviceIsMounted: '장치 {{ .name }} 이(가) 마운트되었습니다, 먼저 마운트 해제하세요' PartitionDiskErr: '파티션 분할에 실패했습니다, {{ .err }}' FormatDiskErr: '디스크 포맷에 실패했습니다, {{ .err }}' MountDiskErr: '디스크 마운트에 실패했습니다, {{ .err }}' XfsNotFound: 'xfs 파일 시스템이 감지되지 않았습니다, 먼저 xfsprogs 를 설치하세요' # terminal TerminalAIBlockedRiskyCommand: '위험한 명령이 차단되었습니다: {{ .command }}' TerminalAIThinking: 'AI가 생각 중입니다...' TerminalAIReadyToExecute: '생각이 완료되었습니다. Enter를 눌러 실행하세요 (소요 시간 {{ .duration }}, token: {{ .tokens }})' TerminalAIRequestFailed: 'AI 요청 실패: {{ .err }}' FileAISearchEmptyDir: '이 경로에 나열할 파일이나 디렉터리가 없습니다(또는 모두 필터링됨).'