Reviewer correctly flagged that the previous skip-on-collision behavior silently drops new quiz tracks when the base resourcepack already has the same track_NN key. That makes the install LOOK successful but breaks the quiz at runtime (datapack references the missing track). The new behavior throws a clear error explaining which key collided and what the user must do (remove the conflicting base entry, or use a different base). The base assets are still preserved (we never overwrite); we just refuse to build a broken pack. Removed the now-unused skip-summary log keys.
149 lines
7.9 KiB
JSON
149 lines
7.9 KiB
JSON
{
|
|
"app": {
|
|
"title": "마인크래프트 음악퀴즈 리소스팩 간편설치기"
|
|
},
|
|
"stepIndicator": {
|
|
"step1": "1. 음악퀴즈",
|
|
"step2": "2. 설치",
|
|
"step3": "3. 완료"
|
|
},
|
|
"logViewer": {
|
|
"heading": "설치 로그",
|
|
"collapse": "접기",
|
|
"expand": "펼치기"
|
|
},
|
|
"common": {
|
|
"next": "다음",
|
|
"back": "이전",
|
|
"cancel": "취소",
|
|
"confirm": "확인",
|
|
"openFolder": "리소스팩 폴더 열기",
|
|
"loading": "목록을 불러오는 중...",
|
|
"selectFailed": "선택 실패",
|
|
"listLoadFailed": "목록 로드 실패: {{message}}",
|
|
"installFailed": "설치 실패: {{message}}",
|
|
"noPacks": "등록된 음악퀴즈가 없습니다.",
|
|
"mcVersionLabel": "마인크래프트 {{version}} · ",
|
|
"trackImageCount": "음악 {{music}}곡 · 사진 {{image}}장",
|
|
"requestTimeout": "요청 시간 초과",
|
|
"tooManyRedirects": "너무 많은 요청."
|
|
},
|
|
"step1": {
|
|
"heading": "음악퀴즈 선택"
|
|
},
|
|
"agreement": {
|
|
"heading": "약관 동의",
|
|
"intro": "리소스팩을 설치하기 전에 아래 약관을 모두 확인하고 동의해 주세요.",
|
|
"tabResourcepack": "리소스팩 약관",
|
|
"tabInstaller": "리소스팩 설치기 약관",
|
|
"loading": "약관을 불러오는 중...",
|
|
"loadFailed": "약관 로드 실패: {{message}}",
|
|
"listLoadFailed": "약관 표시에 실패하여 설치를 진행할 수 없습니다.\n사유: {{message}}\n네트워크 상태를 확인하고 다시 시도하거나, 처음 단계로 돌아가 주세요.",
|
|
"retry": "다시 시도",
|
|
"agreeAll": "위 모든 약관에 동의합니다.",
|
|
"agreeRequired": "약관에 동의해야 다음 단계로 진행할 수 있습니다.",
|
|
"cancelling": "취소 중…"
|
|
},
|
|
"step2": {
|
|
"heading": "리소스팩 설치",
|
|
"description": "음악·사진을 받아 리소스팩을 만들고 <code>%appdata%/.mc_custom/resourcepacks/</code> 에 자동 설치합니다.",
|
|
"chipYtdlp": "yt-dlp 준비",
|
|
"chipFfmpeg": "ffmpeg 준비",
|
|
"musicHeading": "음악 다운로드",
|
|
"musicSub": "{{count}}곡",
|
|
"imageHeading": "사진 다운로드",
|
|
"imageSub": "{{count}}장",
|
|
"packageHeading": "리소스팩 빌드",
|
|
"packageWaiting": "대기 중…",
|
|
"packageBuilding": "빌드 중…",
|
|
"packageDone": "설치 완료",
|
|
"cardWaiting": "대기",
|
|
"cardDone": "완료",
|
|
"cardError": "실패"
|
|
},
|
|
"step3": {
|
|
"heading": "완료",
|
|
"message": "리소스팩 설치를 완료했습니다."
|
|
},
|
|
"log": {
|
|
"manifestDownload": "manifest 다운로드: {{url}}",
|
|
"packDefFailed": "팩 정의 로드 실패 ({{file}}): {{message}} — mcVersion 폴백",
|
|
"listLoadFailed": "목록 로드 실패 ({{file}}): {{message}}",
|
|
"packsLoaded": "로드된 음악퀴즈: {{count}}개",
|
|
"packEntry": " - {{key}}: mc={{mc}} 베이스={{base}}",
|
|
"packEntryUnknownVersion": "?",
|
|
"packEntryNoBase": "(없음)",
|
|
"selectedPack": "선택: {{key}}",
|
|
"ytdlpPreparing": "yt-dlp 준비 중…",
|
|
"ytdlpPath": "yt-dlp 경로: {{path}}",
|
|
"ffmpegPreparing": "ffmpeg 준비 중…",
|
|
"ffmpegPath": "ffmpeg 경로: {{path}}",
|
|
"cpuDetected": "CPU 코어 {{cores}}개 감지 → 동시 다운로드 {{concurrency}}개",
|
|
"musicStart": "음악 다운로드 시작 ({{total}}곡, 동시 {{concurrency}}개, 시차 {{stagger}}ms)",
|
|
"musicTrackStart": "{{idx}}번 노래 다운로드 시작",
|
|
"musicTrackDone": "{{idx}}번 노래 완료: {{name}}",
|
|
"imageStart": "사진 다운로드 시작 ({{total}}장)",
|
|
"imageDownloading": "{{idx}}번 사진 다운로드 중…",
|
|
"imageDone": "{{idx}}번 사진 완료: {{name}}",
|
|
"baseDownload": "베이스 리소스팩 다운로드: {{path}}",
|
|
"baseUrl": " URL: {{url}}",
|
|
"baseReceived": "베이스 리소스팩 받음 ({{kb}} KB)",
|
|
"baseAbsent": "베이스 리소스팩 없음(resourcepackPath 빈 값) — 새 리소스팩으로 생성",
|
|
"baseRemoved": "베이스 리소스팩 삭제: {{path}}",
|
|
"buildingZip": "리소스팩 zip 빌드 중… ({{name}})",
|
|
"installComplete": "설치 완료: {{path}}",
|
|
"cancelRequested": "취소 요청됨. 실행 중 프로세스 {{count}}개 중단…",
|
|
"ytdlpExists": "yt-dlp.exe 이미 있음: {{path}}",
|
|
"ytdlpDownloading": "yt-dlp.exe 다운로드 중: {{url}}",
|
|
"ytdlpReady": "yt-dlp.exe 준비 완료: {{path}}",
|
|
"ffmpegExists": "ffmpeg.exe 이미 있음: {{path}}",
|
|
"ffmpegDownloading": "ffmpeg.exe 다운로드 중: {{url}}",
|
|
"ffmpegExtracting": "ffmpeg zip 압축 해제 중…",
|
|
"ffmpegReady": "ffmpeg.exe 준비 완료: {{path}}",
|
|
"baseExtract": "베이스 리소스팩 압축 해제: {{name}}",
|
|
"baseShaderOverrideStripped": "베이스 리소스팩의 vanilla 셰이더 오버라이드 제거: assets/minecraft/shaders/{{path}} — mcVersion {{mc}} (pack_format {{format}}) 의 새 GLSL API 와 호환되지 않아 결과 zip 에서 제외했습니다.",
|
|
"packFormatMatched": "pack_format = {{format}} (mcVersion {{matched}})",
|
|
"packFormatFallback": "pack_format = {{format}} (mcVersion \"{{version}}\" 매칭 실패, 최신 폴백)",
|
|
"packFormatRange": "호환 범위 선언: pack_format {{min}} ~ {{max}} (supported_formats / min_format / max_format 모두 기록)",
|
|
"soundsMerged": "기존 sounds.json 병합 ({{count}}개 항목)",
|
|
"tracksAdded": "음악 트랙 추가됨: {{count}}곡",
|
|
"paintingsAdded": "사진 텍스처 추가됨: {{count}}장",
|
|
"ytdlpLine": "yt-dlp> {{line}}"
|
|
},
|
|
"progress": {
|
|
"ytdlpPreparing": "yt-dlp 준비 중",
|
|
"ffmpegPreparing": "ffmpeg 준비 중",
|
|
"ready": "준비 완료",
|
|
"cancelled": "취소됨",
|
|
"baseDownloading": "베이스 리소스팩 다운로드 중",
|
|
"buildingWithBase": "베이스에 음악·사진 추가 중",
|
|
"buildingZip": "zip 빌드 중",
|
|
"installComplete": "설치 완료"
|
|
},
|
|
"pack": {
|
|
"description": "음악퀴즈 리소스팩 - {{name}}"
|
|
},
|
|
"errors": {
|
|
"selectedPackNotFound": "선택한 음악퀴즈를 찾을 수 없습니다.",
|
|
"selectPackFirst": "음악퀴즈를 먼저 선택해주세요.",
|
|
"currentPackNotFound": "선택된 음악퀴즈를 찾을 수 없습니다.",
|
|
"cancelledByUser": "사용자가 설치를 취소했습니다.",
|
|
"musicDownloadFailed": "{{idx}}번 노래 다운로드 실패: {{message}}",
|
|
"imageDownloadFailed": "{{idx}}번 사진 다운로드 실패: {{message}}",
|
|
"imageNormalizeFailed": "{{idx}}번 사진 정규화 실패: {{message}}",
|
|
"baseDownloadFailed": "베이스 리소스팩 다운로드 실패: {{message}}",
|
|
"ytdlpSignal": "yt-dlp 가 신호 {{signal}} 로 종료됨",
|
|
"ytdlpExit": "yt-dlp 종료 코드 {{code}}: {{stderr}}",
|
|
"ytdlpNoStderr": "(stderr 없음)",
|
|
"ytdlpMissingOutput": "예상 출력파일이 없음: {{path}}",
|
|
"imageMetaUnknown": "이미지 크기를 읽지 못함",
|
|
"ytdlpVerifyFailed": "yt-dlp.exe 다운로드는 됐지만 실행 검증에 실패했습니다.",
|
|
"ytdlpInstallFailed": "yt-dlp.exe 자동 설치 실패: {{message}}",
|
|
"ffmpegNotInZip": "zip 내부에서 ffmpeg.exe 를 찾을 수 없습니다.",
|
|
"ffmpegVerifyFailed": "ffmpeg.exe 다운로드는 됐지만 실행 검증에 실패했습니다.",
|
|
"ffmpegInstallFailed": "ffmpeg.exe 자동 설치 실패: {{message}}",
|
|
"baseTrackCollision": "베이스 리소스팩에 같은 트랙 ID 가 이미 있어 설치를 중단합니다: {{trackId}}\n베이스 자산을 보존하면서 새 트랙을 같은 ID 로 추가할 수 없습니다. 베이스의 sounds.json 엔트리/sounds 폴더에서 충돌하는 항목을 제거하거나 다른 베이스를 사용하세요.",
|
|
"basePaintingCollision": "베이스 리소스팩에 같은 사진 파일이 이미 있어 설치를 중단합니다: {{name}}\n베이스의 painting 텍스처를 보존하면서 같은 파일명을 추가할 수 없습니다. 베이스에서 충돌하는 파일을 제거하거나 다른 베이스를 사용하세요."
|
|
}
|
|
}
|