{ "intro": { "heading": "시작하기 전에", "message": "마인크래프트 런처를 끄고 시작해주세요." }, "closeNotice": { "badge": "⚠ 매우 중요", "message": "마인크래프트와 마인크래프트 런처를 종료한 뒤 진행해주세요", "sub": "실행 중이면 설치 설정이 제대로 적용되지 않을 수 있습니다." }, "common": { "back": "이전", "next": "다음", "ok": "확인", "cancel": "취소", "close": "닫기", "agree": "동의", "reject": "비동의", "apply": "적용", "save": "저장", "load": "불러오기", "expand": "펼치기", "collapse": "접기", "saved": "저장 완료", "saveFailed": "저장 실패", "unknownError": "알 수 없는 오류" }, "app": { "browserTitle": "마인크래프트 음악퀴즈 간편설치기", "headerTitle": "마인크래프트 음악퀴즈 간편설치기" }, "stepIndicator": { "step1": "1. 음악퀴즈", "step2": "2. 모드", "step3": "3. 서버", "step4": "4. 클라이언트", "step5": "5. 완료" }, "logViewer": { "title": "설치 로그" }, "agreement": { "heading": "약관 동의", "intro": "설치 전에 아래 약관을 한 건씩 끝까지 읽고 동의해 주세요.", "tabMap": "맵 약관", "tabMod": "모드 약관", "tabInstaller": "설치기 약관", "loading": "약관을 불러오는 중...", "loadFailed": "약관 로드 실패: {{message}}", "listLoadFailed": "약관 표시에 실패하여 설치를 진행할 수 없습니다.\n사유: {{message}}\n네트워크 상태를 확인하고 다시 시도하거나, 처음 단계로 돌아가 주세요.", "retry": "다시 시도", "agreeAll": "위 모든 약관에 동의합니다.", "agreeThis": "해당 약관에 동의합니다.", "readToBottom": "약관을 끝까지 내려서 확인하면 동의할 수 있습니다.", "stepLabel": "약관 {{current}}/{{total}} — {{label}}", "agreeRequired": "약관에 동의해야 다음 단계로 진행할 수 있습니다." }, "step1": { "heading": "설치할 음악퀴즈 선택", "loading": "목록을 불러오는 중...", "empty": "등록된 음악퀴즈가 없습니다.", "fetchFailed": "목록을 가져오지 못했습니다: {{message}}", "subtitle": "마인크래프트 {{mc}} / {{platform}}" }, "step2": { "heading": "싱글 / 멀티 선택", "singleTitle": "싱글", "singleHint": "싱글 맵으로 혼자 플레이할때", "multiTitle": "멀티", "multiHint": "버킷 서버로 친구들과 같이 플레이할때", "roleHeading": "호스트 / 참가자", "hostTitle": "호스트", "hostHint": "내가 서버를 직접 열고 친구들을 초대할 때", "participantTitle": "참가자", "participantHint": "친구가 연 서버에 접속만 할 때" }, "step3": { "heading": "서버 관련 설정", "sub31": { "heading": "서버 설치 경로", "description": "서버를 생성할 폴더를 선택하세요.", "pickFolder": "폴더 선택", "invalidPath": "경로가 유효하지 않습니다.", "confirmed": "경로 확정: {{message}}" }, "sub32": { "heading": "JDK 확인", "description": "JDK 자동탐색 or 설치", "pickFolder": "폴더 선택", "auto": "자동 탐색", "install": "자동 설치", "installCancel": "설치 취소", "recommended": "권장 JDK: Java {{major}} (이 음악퀴즈 서버 실행용)", "found": "JDK 발견: {{path}}", "foundRecommended": "권장 JDK(Java {{major}}) 발견: {{path}}", "foundMismatch": "⚠ 권장(Java {{required}})이 아닌 Java {{major}} 를 찾았습니다: {{path}} — 권장 버전과 달라 서버가 정상 실행되지 않을 수 있습니다. 권장 버전을 쓰려면 \"자동 설치\" 를 누르세요.", "mismatchConfirm": "선택한 Java {{major}} 는 권장 버전(Java {{required}})과 다릅니다. 권장 버전과 달라 서버가 정상 실행되지 않을 수 있습니다. 이대로 계속하시겠습니까?", "autoDetected": "JDK 자동 탐색됨: {{path}}", "notFound": "서버 실행에 필요한 Java {{major}} 이상을 찾지 못했습니다(낮은 버전이 설치돼 있어도 서버가 뜨지 않습니다). \"자동 설치\" 를 눌러 설치하거나 직접 선택해 주세요.", "notFoundHint": "Java {{major}} 이상을 찾지 못했습니다. \"자동 설치\" 를 누르면 Temurin {{major}} 를 받아 설치합니다.", "cancelRequested": "JDK 설치 취소 요청 중...", "downloading": "JDK 다운로드 중...", "installComplete": "JDK 자동 설치 완료: {{path}}", "installCanceled": "JDK 설치 취소됨", "installFailed": "JDK 설치 실패: {{message}}", "installError": "JDK 설치 오류: {{message}}", "pathRequired": "JDK 경로를 입력해 주세요.", "verifying": "선택한 JDK 버전을 확인하는 중…", "versionTooLow": "선택한 Java {{major}} 는 너무 낮습니다. 서버 실행에는 Java {{required}} 이상이 필요합니다. \"자동 설치\" 로 Temurin {{required}} 를 받거나 Java {{required}} 이상 폴더를 선택해 주세요.", "versionUnknown": "선택한 경로에서 Java 실행 파일을 찾지 못했거나 버전을 확인할 수 없습니다. JDK 폴더(bin\\java.exe 가 있는 곳)를 선택하거나 \"자동 설치\" 를 눌러 주세요." }, "sub33": { "heading": "서버 다운로드 및 설치", "description": "서버 파일 다운로드", "waiting": "대기 중", "downloading": "다운로드 중...", "ramHeading": "램 검사", "ramChecking": "검사 중...", "eulaPrompt": "EULA 동의가 필요합니다. 팝업을 확인해 주세요.", "eulaRejected": "EULA 동의 실패. 다운로드를 취소했습니다.", "eulaSaveFailed": "EULA 저장 실패: {{message}}", "doneSummary": "다운로드 및 EULA 동의 완료.", "downloadFailed": "다운로드 실패: {{message}}", "ramTooLow": "시스템 램({{system}}MB)이 음악퀴즈 최소 요구치({{min}}MB)에 미치지 못합니다. 설치를 중단합니다.", "ramMinOk": "시스템 램({{system}}MB)이 권장치보다 부족합니다. 최소치({{applied}}MB)로 진행합니다.", "ramMaxOk": "시스템 램({{system}}MB) 확인. {{applied}}MB로 설정." }, "eulaModal": { "title": "Minecraft EULA 동의", "fromMojang": "마인크래프트 서버를 실행하려면 아래 EULA에 동의해야 합니다 ({{url}}).", "loadFailed": "EULA 페이지를 불러올 수 없습니다. 직접 확인해 주세요: https://www.minecraft.net/en-us/eula" }, "sub34": { "heading": "서버 설정 편집", "description": "로컬 웹서버를 띄워 server.properties / bukkit.yml 등을 GUI로 편집합니다.", "open": "편집기 열기", "openedAt": "편집기 주소: {{url}}", "openFailed": "편집기 실행 실패: {{message}}" }, "sub35": { "heading": "포트포워딩", "description": "포트가 외부에서 열려 있는지 확인합니다. (설치기가 직접 열지는 않습니다)", "portLabel": "포트", "recheck": "재점검", "checking": "확인 중...", "openTitle": "포트가 열려 있습니다! 친구 접속 주소", "notOpenBig": "직접 포트포워딩 해주세요.", "notOpenHint": "공유기에서 외부 TCP {{port}} 를 이 PC 로 포워딩하세요. (외부 주소: {{address}})", "checkFailed": "점검 실패: {{message}}", "ipUnknown": "확인 불가" } }, "step4": { "heading": "클라이언트 설정", "sub42": { "heading": "다운로드 및 적용", "description": "클라이언트 설정", "installing": "설치 중...", "done": "클라이언트 설치 완료.", "failed": "설치 실패: {{message}}" } }, "resourcepack": { "promptHeading": "리소스팩 설치", "promptBody": "이 음악퀴즈의 최종 리소스팩을 설치하시겠습니까? 설치하면 마인크래프트에서 자동으로 적용됩니다.", "yes": "예", "no": "아니요", "downloadHeading": "최종 리소스팩 다운로드", "downloading": "최종 리소스팩을 다운로드하는 중…", "downloadDone": "최종 리소스팩 다운로드 완료. 마인크래프트를 켜면 자동으로 적용됩니다.", "downloadDoneNotApplied": "최종 리소스팩은 받았지만 자동 적용에 실패했습니다({{message}}). 마인크래프트 설정 → 리소스팩에서 직접 켜주세요.", "downloadFailed": "최종 리소스팩 다운로드 실패: {{message}}" }, "step5": { "heading": "설치 완료", "summary": "", "serverHeading": "서버", "openServerFolder": "서버 폴더 열기", "shortcut": "바탕화면에 서버 실행 바로가기 만들기", "startServer": "서버 바로 실행", "launcherHeading": "마인크래프트 런처", "startLauncher": "마인크래프트 런처 실행", "finish": "완료", "finishing": "마무리 중…", "finished": "완료됨" }, "configEditor": { "pageTitle": "서버 설정 편집기", "heading": "서버 설정 편집기", "intro": "아래 파일을 직접 편집한 후 \"적용\" 버튼으로 저장합니다. 설치기 화면에서 다음 단계로 진행하기 전 마음껏 편집할 수 있습니다.", "targetLabel": "대상 파일", "applyButton": "적용", "saved": "저장 완료", "saveFailed": "저장 실패", "unknownFile": "알 수 없는 파일", "serverError": "서버 오류: {{message}}" }, "errors": { "requestTimeout": "요청 시간 초과", "requestTimeout15s": "요청 시간 초과(15s)", "canceled": "취소되었습니다.", "canceledShort": "취소됨", "packNotFound": "선택한 음악퀴즈를 찾을 수 없습니다.", "packNotFound2": "음악퀴즈를 찾을 수 없습니다.", "installPathRequired": "서버 설치 경로를 입력해 주세요.", "installPathHangul": "경로에 한글이 포함되면 마인크래프트 서버가 정상 동작하지 않습니다.", "installPathHangulShort": "경로에 한글이 포함되면 안 됩니다.", "jdkBusy": "이미 JDK 설치가 진행 중입니다.", "javaExeMissing": "설치 후 java 실행 파일을 찾지 못했습니다: {{path}}", "javaSpawnFailed": "Java 실행 실패: {{message}}", "javaNotFoundRunVanilla": "자바를 찾지 못해 설치를 진행할 수 없습니다. 먼저 마인크래프트 런처에서 [{{version}}] 바닐라를 한 번 실행해 자바 런타임을 받은 다음, 이 설치기를 다시 시도해 주세요.", "fabricInstallerExit": "fabric-installer 종료 코드 {{code}}{{detail}}", "fabricLoaderRequired": "Fabric 로더 버전이 음악퀴즈에 지정되지 않았습니다. 관리 사이트에서 platform.loaderVersion 을 설정해 주세요.", "fabricInstallerListEmpty": "Fabric installer 목록을 받지 못했습니다.", "fabricProfileInvalid": "Fabric 버전 프로필을 읽지 못했습니다: {{message}}", "portAllocFail": "포트를 할당할 수 없습니다.", "parseResponseFailed": "응답 파싱 실패: {{snippet}}" }, "log": { "manifestDownload": "manifest 다운로드: {{url}}", "downloadRetry": "다운로드 일시 오류({{reason}}) — {{attempt}}번째 재시도, {{secs}}초 후", "packLoadFail": "pack 로드 실패 ({{file}}): {{message}}", "packsLoaded": "로드된 음악퀴즈: {{count}}개", "selectedPack": "선택: {{key}}", "jdkInstallStart": "JDK(Temurin {{major}}) 자동 설치 시작 — 다운로드 중...", "jdkDownloadProgress": "JDK 다운로드: {{percent}}% ({{loaded}}MB / {{total}}MB)", "jdkExtracting": "JDK 압축 해제 중...", "jdkDoneRoot": "JDK 자동 설치 완료: {{path}}", "jdkCanceled": "JDK 설치가 취소되었습니다.", "jdkInstallFailedLog": "JDK 설치 실패: {{message}}", "jdkCancelRequested": "JDK 설치 취소 요청을 보냈습니다.", "labelDownload": "{{label}} 다운로드: {{url}}", "labelExtract": "{{label}} 압축 해제: {{dir}}", "labelServerFile": "서버 파일", "labelMap": "맵", "skipServerZip": "서버 파일(serverPath)이 비어 있어 서버 zip 다운로드를 건너뜁니다.", "skipMapZip": "맵 다운로드를 건너뜁니다 (mapPath 비어 있음 또는 참가자 모드).", "cleanupInstallerMap": "이전 설치에서 풀어둔 맵 {{count}}개를 정리합니다.", "mapInstalledAs": "맵을 saves/{{name}} 으로 설치했습니다.", "clearMods": "기존 mods 폴더({{dir}})를 비우고 새로 받습니다.", "skipModsFolder": "modsFolder가 비어 있어 모드 다운로드를 건너뜁니다.", "modsIndexFetch": "모드 목록 조회: {{url}}", "modsFolderEmpty": "/file/mods/{{folder}}/ 안에 .jar 파일이 없습니다.", "modDownload": "모드 다운로드: {{file}}", "skipResourcepack": "resourcepackPath가 비어 있어 리소스팩 다운로드를 건너뜁니다.", "resourcepackDownload": "리소스팩 다운로드: {{url}}", "skipBaseForFinal": "최종 리소스팩이 등록돼 있어 베이스 리소스팩은 건너뜁니다(설치 마지막에 최종 리소스팩만 받음).", "finalResourcepackDownload": "최종 리소스팩 다운로드: {{url}}", "finalResourcepackSaved": "최종 리소스팩 저장: {{path}}", "finalResourcepackApplied": "최종 리소스팩을 options.txt 에 등록해 자동 적용되게 했습니다: {{name}}", "finalResourcepackApplyFail": "최종 리소스팩 자동 적용 실패(마인크래프트에서 직접 켜주세요): {{message}}", "serverInstallPath": "서버 설치 경로: {{path}}", "runBatJavaPatched": "run.bat 이 설치기가 준비한 자바를 쓰도록 수정했습니다: {{java}}", "runBatJavaSkip": "설치기가 준비한 JDK 를 찾지 못해 run.bat 의 자바 경로는 그대로 둡니다(시스템 자바 사용).", "mojangEulaFetchFail": "Minecraft EULA 페이지 조회 실패: {{message}}", "eulaAccepted": "EULA 동의 저장 완료.", "configEditorOpen": "서버 설정 편집기 실행: {{url}}", "portCheckStart": "포트포워딩 점검 시작: 포트 {{port}}", "externalIpHttp": "외부 IP 확인(HTTP): {{ip}}", "externalIpHttpFail": "외부 IP 확인 실패(HTTP). UPnP 게이트웨이를 통한 조회 시도...", "externalIpUpnp": "외부 IP 확인(UPnP): {{ip}}", "externalIpUpnpFail": "UPnP 게이트웨이에서도 외부 IP를 얻지 못했습니다.", "probeStart": "외부 포트체크 서비스(ifconfig.co)로 1차 점검합니다...", "probeResult": "1차 점검 결과: {{verdict}} ({{detail}})", "probeVerdictSuccess": "성공", "probeVerdictFail": "실패", "probeVerdictUnknown": "확인 불가", "probePreForwarded": "외부에서 {{addr}}:{{port}} 접근 확인됨. 사용자 규칙으로 포워딩 됨.", "ipUnknown": "(IP 미상)", "upnpClientFail": "UPnP 클라이언트 생성 실패: {{message}}", "upnpExternalTimeout": "UPnP externalIp 조회 타임아웃(8s).", "upnpExternalErr": "UPnP externalIp 오류: {{message}}", "portInUse": "포트 {{port}}이(가) 이미 사용 중. 임시 리스너 없이 외부 서비스 응답만으로 판정합니다.", "listenerBindFail": "임시 리스너 바인딩 실패: {{message}}", "detailListenerHit": "임시 리스너 도달={{value}}", "detailListenerSkip": "임시 리스너=skip(포트 사용중)", "detailIfconfig": "ifconfig.co reachable={{reachable}} ip={{ip}}", "detailIfconfigFail": "ifconfig.co 실패={{error}}", "detailNone": "결과 없음", "platformDownload": "플랫폼({{type}}) 다운로드: {{url}}", "platformSaved": "플랫폼 설치파일 저장: {{path}} (사용자가 직접 실행하거나 마인크래프트 런처에서 인식할 수 있습니다.)", "platformSkipped": "플랫폼 설치 건너뜀. 바닐라로 진행합니다.", "fabricFetchInstallerList": "Fabric installer 최신 버전 조회 중...", "fabricProfileFetch": "Fabric 버전 프로필 다운로드: {{url}}", "fabricInstallerDownload": "Fabric installer {{version}} 다운로드: {{url}}", "javaUsed": "Java 사용: {{path}}", "fabricInstallStart": "Fabric 자동 설치 시작: {{mc}} / loader {{loader}} → {{dir}}", "fabricInstallDone": "Fabric 자동 설치 완료.", "fabricAlreadyInstalled": "Fabric 이미 설치돼 있어 건너뜁니다: {{id}} ({{dir}})", "launcherProfilesMissing": "launcher_profiles.json을 찾을 수 없습니다: {{path}}", "javaArgsUpdated": "JVM 인수 갱신(메모리 + G1 GC 튜닝 추가): \"{{before}}\" → \"{{after}}\"", "lastVersionId": "launcher_profiles 의 lastVersionId = {{id}}", "versionMissingWarn": "경고: .minecraft/versions/{{id}} 가 없습니다. 마인크래프트 런처에서 해당 버전을 한 번 받아주거나, 플랫폼 설치를 먼저 마쳐주세요.", "launcherProfilesUpdated": "launcher_profiles.json 갱신: 프로필 \"{{profile}}\", gameDir={{dir}}", "minecraftRootMissing": ".minecraft 폴더가 없어 기존 설정 복사를 건너뜁니다.", "settingCopyFail": "설정 복사 실패 ({{name}}): {{message}}", "settingCopySummary": "기존 마인크래프트 설정 복사: 새로 복사 {{copied}}개 / 동기화(options 류 덮어쓰기) {{synced}}개 / 보존(이미 존재) {{skipped}}개.", "settingCopyError": "기존 설정 복사 중 오류: {{message}}", "runtimeDirMissing": ".minecraft/{{dir}} 가 없어 공용 링크를 만들 수 없습니다(런처가 이 폴더에 직접 받게 됩니다).", "runtimeDirCreated": ".mc_custom/{{dir}} 폴더를 새로 만들었습니다(런처가 여기에 직접 다운로드).", "runtimeDirExists": ".mc_custom/{{dir}} 가 실제 폴더로 이미 존재 — 건너뜀.", "runtimeLinkCreated": "링크 생성: .mc_custom/{{dir}} → .minecraft/{{dir}}", "runtimeLinkReplaced": "불완전한 .mc_custom/{{dir}} 폴더를 .minecraft/{{dir}} 링크로 교체했습니다(바닐라 데이터 포함).", "runtimeLinkFail": "링크 생성 실패 ({{dir}}): {{message}}", "shortcutCreated": "바로가기 생성: {{path}}", "shortcutFailed": "바로가기 생성 실패", "shortcutDescription": "음악퀴즈 서버 실행", "runBatMissingPath": "run.bat을 찾을 수 없습니다: {{path}}", "serverStartRequested": "서버 실행 요청 완료.", "launcherUrlSchemeNonWin": "마인크래프트 런처 실행 요청 완료(URL 스킴, 비-Windows).", "launcherFail": "런처 실행 실패: {{message}}", "launcherExecShell": "마인크래프트 런처 실행({{label}}, 셸 경유): {{path}}", "launcherExec": "마인크래프트 런처 실행({{label}}): {{path}}", "launcherCandFail": "{{path}} 실행 실패: {{message}}", "launcherAppsFolderTry": "AppsFolder 로 MS Store 런처 실행 시도: {{aumid}}", "launcherAppsFolderFail": "AppsFolder 실행 실패: {{message}}", "launcherUrlSchemeFallback": "마지막 시도: minecraft:// URL 스킴 (런처가 없으면 MS Store 가 열릴 수 있음).", "launcherUrlSchemeFail": "URL 스킴 실행 실패: {{message}}.", "launcherAllFail": "Minecraft Launcher 실행 시도가 모두 실패했습니다. minecraft.net 또는 Microsoft Store 에서 \"Minecraft Launcher\" 를 설치한 뒤 다시 시도해 주세요.", "internalError": "내부 오류(무시하고 계속): {{message}}" }, "candidates": { "winProgramFiles86": "Win32 설치(Program Files (x86))", "winProgramFiles": "Win32 설치(Program Files)", "winLegacy86": "Win32 설치(legacy Minecraft 폴더)", "winLegacy": "Win32 설치(legacy Minecraft 폴더)", "xboxGamePass": "Xbox / Game Pass", "npmPortable": "npm/portable", "appAliasMinecraft": "App Execution Alias(Minecraft.exe)", "appAliasLauncher": "App Execution Alias(MinecraftLauncher.exe)" } }