From 45224d15e910b86671f0e0ac2c9fcdc34ceb77a0 Mon Sep 17 00:00:00 2001 From: moduvoice Date: Fri, 10 Jul 2026 09:48:18 +0700 Subject: [PATCH] feat: add Korean (ko-KR) translation Adds full Korean localization for the in-app i18n system, matching the existing zh-CN/zh-TW/en-US locales key-for-key, and registers ko-KR as a selectable language. --- src/core/i18n/index.ts | 5 + src/core/i18n/languages/ko-kr.json | 433 +++++++++++++++++++++++++++++ 2 files changed, 438 insertions(+) create mode 100644 src/core/i18n/languages/ko-kr.json diff --git a/src/core/i18n/index.ts b/src/core/i18n/index.ts index f1047aa31..9b88e2a15 100644 --- a/src/core/i18n/index.ts +++ b/src/core/i18n/index.ts @@ -5,6 +5,7 @@ import PersistStatus from "@/utils/persistStatus"; import zhCN from "./languages/zh-cn.json"; import enUS from "./languages/en-us.json"; import zhTW from "./languages/zh-tw.json"; +import koKR from "./languages/ko-kr.json"; const allLanguages: ILanguage[] = [{ @@ -19,6 +20,10 @@ const allLanguages: ILanguage[] = [{ locale: "en-US", name: "English", languageData: enUS, +}, { + locale: "ko-KR", + name: "한국어", + languageData: koKR, }]; const defaultLocale = PersistStatus.get("app.language") || "zh-CN"; diff --git a/src/core/i18n/languages/ko-kr.json b/src/core/i18n/languages/ko-kr.json new file mode 100644 index 000000000..2bfd0a991 --- /dev/null +++ b/src/core/i18n/languages/ko-kr.json @@ -0,0 +1,433 @@ +{ + "common.setting": "설정", + "common.software": "소프트웨어", + "common.language": "언어", + "common.theme": "테마", + "common.other": "기타", + "common.cancel": "취소", + "common.about": "정보", + "common.batchEdit": "일괄 편집", + "common.selectAll": "전체 선택", + "common.unselectAll": "전체 선택 해제", + "common.save": "저장", + "common.play": "재생", + "common.download": "다운로드", + "common.delete": "삭제", + "common.unknownName": "이름 없음", + "common.default": "기본값", + "common.search": "검색", + "common.clear": "지우기", + "common.singleMusic": "싱글", + "common.album": "앨범", + "common.artist": "아티스트", + "common.sheet": "플레이리스트", + "common.done": "완료", + "common.edit": "편집", + "common.local": "로컬", + "common.sure": "확인", + "common.confirm": "확인", + "common.view": "보기", + "common.username": "사용자 이름", + "common.password": "비밀번호", + "common.cover": "커버", + "common.name": "이름", + "common.comment": "댓글", + "common.open": "열기", + "sidebar.basicSettings": "기본 설정", + "sidebar.pluginManagement": "플러그인 관리", + "sidebar.themeSettings": "테마 설정", + "sidebar.scheduleClose": "예약 종료", + "sidebar.backupAndResume": "백업 및 복원", + "sidebar.permissionManagement": "권한 관리", + "sidebar.checkUpdate": "업데이트 확인", + "sidebar.currentVersion": "현재 버전: ", + "sidebar.backToDesktop": "바탕화면으로 돌아가기", + "sidebar.exitApp": "앱 종료", + "sidebar.languageSettings": "언어 설정", + "checkUpdate.error.latestVersion": "이미 최신 버전입니다", + "home.recommendSheet": "추천 플레이리스트", + "home.topList": "차트", + "home.playHistory": "재생 기록", + "home.localMusic": "로컬 음악", + "home.openSidebar.a11y": "사이드바 열기", + "home.myPlaylists": "내 플레이리스트", + "home.starredPlaylists": "즐겨찾는 플레이리스트", + "home.newPlaylist.a11y": "새 플레이리스트", + "home.importPlaylist.a11y": "플레이리스트 가져오기", + "home.myPlaylistsCount.a11y": "내 플레이리스트, 총 {count}개", + "home.starredPlaylistsCount.a11y": "즐겨찾는 플레이리스트, 총 {count}개", + "home.songCount": "{count}곡", + "home.clickToSearch": "여기를 클릭하여 검색 시작", + "dialog.deleteSheetTitle": "플레이리스트 삭제", + "dialog.deleteSheetContent": "플레이리스트「{name}」을(를) 삭제하시겠습니까?", + "toast.deleteSuccess": "삭제되었습니다", + "toast.hasStarred": "플레이리스트를 즐겨찾기에 추가했습니다", + "toast.hasUnstarred": "플레이리스트 즐겨찾기를 취소했습니다", + "toast.importSuccess": "가져오기 성공", + "toast.saveSuccess": "저장되었습니다", + "toast.sortHasBeenUpdated": "정렬이 업데이트되었습니다", + "toast.currentQualityNotAvailableForCurrentMusic": "현재 이 음질의 음악을 사용할 수 없습니다", + "toast.commmentNotAvaliableForCurrentMusic": "현재 곡에는 댓글을 사용할 수 없습니다", + "toast.addToNextPlay": "다음 재생 목록에 추가되었습니다", + "toast.beginDownload": "다운로드를 시작합니다. 모든 다운로드가 완료될 때까지 앱을 종료하지 마세요", + "toast.rememberToSave": "저장하는 것 잊지 마세요~", + "localMusic.scanLocalMusic": "로컬 음악 검색", + "localMusic.beginScan": "검색 시작", + "localMusic.downloadList": "다운로드 목록", + "lyric.lyricLinkedFrom": "가사가「{platform} - {title}」에서 연결됨", + "lyric.unlinkLyric": "연결 해제", + "lyric.noLyric": "가사 없음", + "lyric.searchLyric": "가사 검색", + "musicListEditor.selectMusicCount": "{count}곡 선택됨", + "musicListEditor.addToNextPlay": "다음 곡으로 재생", + "musicListEditor.addToSheet": "플레이리스트에 추가", + "permissionSetting.title": "권한 관리", + "permissionSetting.description": "이 앱에 필요한 모든 권한이 나열되어 있습니다. 여기에서 특정 권한을 켜거나 끌 수 있습니다.", + "permissionSetting.floatWindowPermission": "플로팅 창 권한", + "permissionSetting.floatWindowPermissionDescription": "바탕화면 가사 표시에 사용됩니다", + "permissionSetting.fileReadWritePermission": "파일 읽기/쓰기 권한", + "permissionSetting.fileReadWritePermissionDescription": "곡 다운로드 및 데이터 캐시에 사용됩니다", + "recommendSheet.title": "추천 플레이리스트", + "searchMusicList.searchPlaceHolder": "목록에서 곡 검색", + "searchMusicList.searchLabel.a11y": "검색창", + "searchPage.searchPlaceHolder": "검색할 곡 입력", + "searchPage.searchLabel.a11y": "검색창", + "searchPage.history": "검색 기록", + "searchPage.artistResultWorksNum": "{count}개 작품", + "searchPage.comingSoon": "곧 만나요", + "topList.title": "차트", + "sheetDetail.totalMusicCount": "총 {count}곡", + "sheetDetail.editSheetInfo": "플레이리스트 정보 편집", + "sheetDetail.batchEditMusic": "곡 일괄 편집", + "sheetDetail.sortMusic": "곡 정렬", + "sheetDetail.sortMusicOption.byTitle": "곡 제목순 정렬", + "sheetDetail.sortMusicOption.byArtist": "아티스트순 정렬", + "sheetDetail.sortMusicOption.byAlbum": "앨범순 정렬", + "sheetDetail.sortMusicOption.newest": "추가한 시간 최신순 정렬", + "sheetDetail.sortMusicOption.oldest": "추가한 시간 오래된순 정렬", + "sheetDetail.deleteSheet": "플레이리스트 삭제", + "sheetDetail.deleteSheetContent": "플레이리스트「{name}」을(를) 삭제하시겠습니까?", + "history.title": "재생 기록", + "history.clearHistory": "재생 기록 지우기", + "downloading.title": "다운로드 중", + "downloading.downloadFailReason.noWritePermission": "파일 쓰기 권한이 없습니다", + "downloading.downloadFailReason.failToFetchSource": "음악 소스를 가져오지 못했습니다", + "downloading.downloadFailReason.unknown": "알 수 없는 오류", + "downloading.downloadStatus.completed": "다운로드 완료", + "downloading.downloadStatus.downloadProgress": "다운로드 중: {progress} / {totalSize}", + "downloading.downloadStatus.pending": "다운로드 대기 중", + "downloading.downloadStatus.preparing": "음악 리소스 링크를 가져오는 중", + "artistDetail.fansCount": "팬 수: {count}", + "artistDetail.menu.batchEditMusic": "곡 일괄 편집", + "artistDetail.musicSheet": "{artist} - 싱글", + "pluginSetting.pluginItem.options.updatePlugin": "플러그인 업데이트", + "pluginSetting.pluginItem.options.sharePlugin": "플러그인 공유", + "pluginSetting.pluginItem.options.uninstallPlugin": "플러그인 제거", + "pluginSetting.pluginItem.options.uninstallPluginContent": "플러그인「{name}」을(를) 제거하시겠습니까?", + "pluginSetting.pluginItem.options.alternativePlugin": "음원 리다이렉트", + "pluginSetting.pluginItem.dialog.setAlternativePluginTitle": "음원 리다이렉트 설정", + "pluginSetting.pluginItem.dialog.setAlternativePluginTip": "선택한 플러그인을 사용하여 이 플러그인의 음원을 파싱합니다\n임의로 설정하면 곡 재생이 되지 않을 수 있으니 신중하게 조작하세요", + "pluginSetting.pluginItem.options.importMusic": "곡 가져오기", + "pluginSetting.pluginItem.options.importMusicPlaceHolder": "대상 곡 입력", + "pluginSetting.pluginItem.options.importDialogTitle": "가져오기 준비", + "pluginSetting.pluginItem.options.importMusicDialogContent": "곡「{name}」을(를) 찾았습니다. 가져올까요?", + "pluginSetting.pluginItem.options.importMusicToSheetName": "{name} 가져온 곡", + "pluginSetting.pluginItem.options.importSheet": "플레이리스트 가져오기", + "pluginSetting.pluginItem.options.importSheetPlaceHolder": "대상 플레이리스트 입력", + "pluginSetting.pluginItem.options.importSheetDialogContent": "{count}곡을 찾았습니다. 가져올까요?", + "pluginSetting.pluginItem.options.userVariables": "사용자 변수", + "pluginSetting.pluginItem.versionHint": "버전: {version}", + "pluginSetting.pluginItem.author": "작성자: {author}", + "pluginSetting.pluginItem.alternativePlugin": "이 플러그인은 실제로「{name}」플러그인을 사용하여 음악 소스를 파싱합니다", + "pluginSetting.menu.subscriptionSetting": "구독 설정", + "pluginSetting.menu.sort": "플러그인 정렬", + "pluginSetting.menu.uninstallAll": "모든 플러그인 제거", + "pluginSetting.menu.uninstallAllContent": "모든 플러그인을 제거하시겠습니까? 이 작업은 되돌릴 수 없습니다!", + "pluginSetting.menu.installPlugin": "플러그인 설치", + "pluginSetting.menu.installPluginDialogPlaceholder": "플러그인 URL 입력", + "pluginSetting.menu.pluginInstallFailedDialogTitle": "플러그인 설치 실패", + "pluginSetting.menu.pluginUpdateFailedDialogTitle": "플러그인 업데이트 실패", + "pluginSetting.fabOptions.installFromLocal": "로컬에서 플러그인 설치", + "pluginSetting.fabOptions.installFromNetwork": "네트워크에서 플러그인 설치", + "pluginSetting.fabOptions.updateAllPlugins": "모든 플러그인 업데이트", + "pluginSetting.fabOptions.updateSubscription": "구독 업데이트", + "pluginSetting.failReason": "실패 원인: {reason}", + "pluginSetting.pluginInstallFailedDialogContent": "다음 플러그인 설치에 실패했습니다: \n {detail}", + "pluginSetting.pluginUpdateFailedDialogContent": "다음 플러그인 업데이트에 실패했습니다: \n {detail}", + "toast.pluginUpdateSuccess": "최신 버전으로 업데이트되었습니다", + "toast.failToUpdatePlugin": "플러그인 업데이트 실패", + "toast.copiedToClipboard": "클립보드에 복사되었습니다", + "toast.copiedToClipboardFailed": "복사 실패", + "toast.failToSharePlugin": "플러그인 공유 실패", + "toast.pluginUninstalled": "플러그인이 제거되었습니다", + "toast.toast.pluginUninstalled": "플러그인 제거 실패", + "toast.failToImportMusic": "곡 가져오기 실패", + "toast.importing": "가져오는 중...", + "toast.failToImportSheet": "플레이리스트 가져오기 실패", + "toast.settingSuccess": "설정 완료~", + "toast.installPluginSuccess": "플러그인 설치 성공", + "toast.updatePluginSuccess": "플러그인 업데이트 성공", + "toast.installPluginFail": "플러그인 설치 실패: {reason}", + "toast.allPluginInstallFailed": "모든 플러그인 설치 실패", + "toast.partialPluginInstallFailed": "일부 플러그인 설치 실패", + "toast.partialPluginInstallFailedWithReason": "일부 플러그인 설치 실패: {reason}", + "toast.allPluginUpdateFailed": "모든 플러그인 업데이트 실패", + "toast.partialPluginUpdateFailed": "일부 플러그인 업데이트 실패", + "toast.noSubscription": "구독 없음", + "toast.subscriptionInvalid": "유효하지 않은 구독", + "toast.subscriptionHaveToEndWithJs": "구독 주소는 .js 또는 .json으로 끝나야 합니다", + "toast.unknownError": "알 수 없는 오류, 나중에 다시 시도해 주세요: {reason}", + "themeSettings.displayStyle": "표시 스타일", + "themeSettings.followSystemTheme": "시스템 다크 모드 설정 따르기", + "themeSettings.setTheme": "테마 설정", + "themeSettings.lightMode": "라이트 모드", + "themeSettings.darkMode": "다크 모드", + "themeSettings.customMode": "사용자 지정 배경", + "setCustomTheme.customizeBackground": "배경 사용자 지정", + "setCustomTheme.blur": "흐림 정도", + "setCustomTheme.opacity": "투명도", + "setCustomTheme.primaryColor": "테마 색상", + "setCustomTheme.textColor": "텍스트 색상", + "setCustomTheme.appBarColor": "타이틀 바 배경색", + "setCustomTheme.appBarTextColor": "타이틀 바 텍스트 색상", + "setCustomTheme.musicBarColor": "음악 바 배경색", + "setCustomTheme.musicBarTextColor": "음악 바 텍스트 색상", + "setCustomTheme.pageBackgroundColor": "페이지 배경색", + "setCustomTheme.backdropColor": "대화상자·오버레이 배경색", + "setCustomTheme.cardColor": "카드 배경색", + "setCustomTheme.placeholderColor": "입력창 배경색", + "setCustomTheme.tabBarColor": "내비게이션 바 배경색", + "setCustomTheme.notificationColor": "알림·팁 배경색", + "backupAndResume.beginBackup": "백업 시작", + "backupAndResume.backupDialogTitle": "로컬 음악 백업", + "backupAndResume.backuping": "백업 중...", + "toast.backupSuccess": "백업 성공", + "toast.backupFail": "백업 실패: {reason}", + "backupAndResume.resumeFromLocalFile": "로컬 파일에서 복원", + "backupAndResume.resuming": "복원 중...", + "toast.resumeSuccess": "복원 성공", + "toast.resumeFail": "복원 실패: {reason}", + "backupAndResume.resumeFromUrlDialogTitle": "원격 URL에서 복원", + "backupAndResume.resumeFromUrlDialogPlaceHolder": "json 또는 txt로 끝나는 URL 입력", + "toast.backupFileNotFound": "백업 파일을 찾을 수 없습니다", + "toast.resumePreCheckFailed": "먼저「Webdav 설정」에서 설정을 완료한 후 복원을 실행하세요", + "backupAndResume.setResumeMode": "복원 방식 설정", + "backupAndResume.resumeMode": "복원 방식", + "backupAndResume.localBackup": "로컬 백업", + "backupAndResume.backupToLocal": "로컬로 백업", + "backupAndResume.webdavSettings": "Webdav 설정", + "backupAndResume.webdavUrl": "Webdav 서버 주소", + "backupAndResume.backupToWebdav": "Webdav로 백업", + "backupAndResume.resumeFromWebdav": "Webdav에서 복원", + "backupAndResume.resumeMode.append": "새 플레이리스트로 복원", + "backupAndResume.resumeMode.overwrite-default": "기본 플레이리스트는 병합, 나머지는 새 플레이리스트로 복원", + "backupAndResume.resumeMode.overwrite": "같은 이름의 플레이리스트 병합", + "basicSettings.common": "일반", + "basicSettings.maxHistoryLength": "재생 기록 최대 보관 개수", + "basicSettings.musicDetailDefault": "곡 상세 페이지를 열 때", + "basicSettings.musicDetailDefault.album": "기본적으로 앨범 커버 표시", + "basicSettings.musicDetailDefault.lyric": "기본적으로 가사 페이지 표시", + "basicSettings.musicDetailAwake": "곡 상세 페이지에 있을 때 화면 항상 켜짐", + "basicSettings.associateLyricType": "가사 연결 방식", + "basicSettings.associateLyricType.input": "곡 ID 입력", + "basicSettings.associateLyricType.search": "가사 검색", + "basicSettings.showExitOnNotification": "알림창에 종료 버튼 표시 (재시작 후 적용)", + "basicSettings.sheetAndAlbum": "플레이리스트 & 앨범", + "basicSettings.clickMusicInSearch": "검색 결과에서 곡을 클릭할 때", + "basicSettings.clickMusicInSearch.playMusic": "곡 재생", + "basicSettings.clickMusicInSearch.playMusicAndReplace": "곡 재생 후 재생목록 교체", + "basicSettings.clickMusicInAlbum": "앨범 내 곡을 클릭할 때", + "basicSettings.clickMusicInAlbum.playMusic": "곡 재생", + "basicSettings.clickMusicInAlbum.playAlbum": "앨범 재생", + "basicSettings.musicOrderInLocalSheet": "새 플레이리스트 생성 시 기본 곡 정렬", + "basicSettings.musicOrderInLocalSheet.title": "곡 제목순 정렬", + "basicSettings.musicOrderInLocalSheet.artist": "아티스트순 정렬", + "basicSettings.musicOrderInLocalSheet.album": "앨범순 정렬", + "basicSettings.musicOrderInLocalSheet.newest": "추가한 시간 최신순 정렬", + "basicSettings.musicOrderInLocalSheet.oldest": "추가한 시간 오래된순 정렬", + "basicSettings.plugin": "플러그인", + "basicSettings.autoUpdatePlugin": "앱 실행 시 플러그인 자동 업데이트", + "basicSettings.notCheckPluginVersion": "플러그인 설치 시 버전 확인 안 함", + "basicSettings.lazyLoadPlugin": "플러그인 지연 로딩 사용", + "basicSettings.playback": "재생", + "basicSettings.notInterrupt": "다른 앱과 동시 재생 허용", + "basicSettings.autoPlayWhenAppStart": "앱 실행 시 자동 재생", + "basicSettings.tryChangeSourceWhenPlayFail": "재생 실패 시 다른 음원으로 시도", + "basicSettings.autoStopWhenError": "재생 실패 시 자동 일시정지", + "basicSettings.tempRemoteDuck": "재생이 일시적으로 중단될 때", + "basicSettings.tempRemoteDuck.pause": "재생 일시정지", + "basicSettings.tempRemoteDuck.lowerVolume": "볼륨 낮추기", + "basicSettings.tempRemoteDuck.volumeDecreaseLevel": "볼륨 감소 정도", + "basicSettings.defaultPlayQuality": "기본 재생 음질", + "basicSettings.playQualityOrder": "기본 재생 음질이 없을 때", + "basicSettings.playQualityOrder.asc": "더 높은 음질로 재생", + "basicSettings.playQualityOrder.desc": "더 낮은 음질로 재생", + "basicSettings.download": "다운로드", + "basicSettings.downloadPath": "다운로드 경로", + "basicSettings.fileSelector.selectFolder": "폴더 선택", + "basicSettings.maxDownload": "최대 동시 다운로드 수", + "basicSettings.defaultDownloadQuality": "기본 다운로드 음질", + "basicSettings.downloadQualityOrder": "기본 다운로드 음질이 없을 때", + "basicSettings.downloadQualityOrder.asc": "더 높은 음질로 다운로드", + "basicSettings.downloadQualityOrder.desc": "더 낮은 음질로 다운로드", + "basicSettings.network": "네트워크", + "basicSettings.useCelluarNetworkPlay": "모바일 데이터로 재생", + "basicSettings.useCelluarNetworkDownload": "모바일 데이터로 다운로드", + "basicSettings.lyric": "가사", + "basicSettings.lyric.autoSearchLyric": "가사가 없을 때 자동 검색", + "basicSettings.lyric.showStatusBarLyric": "바탕화면 가사 켜기", + "basicSettings.lyric.align": "정렬 방식", + "basicSettings.lyric.align.left": "왼쪽 정렬", + "basicSettings.lyric.align.center": "가운데 정렬", + "basicSettings.lyric.align.right": "오른쪽 정렬", + "basicSettings.lyric.leftRightDistance": "좌우 여백", + "basicSettings.lyric.topBottomDistance": "상하 여백", + "basicSettings.lyric.width": "가사 너비", + "basicSettings.lyric.fontSize": "글자 크기", + "basicSettings.lyric.textColor": "텍스트 색상", + "basicSettings.lyric.backgroundColor": "텍스트 배경색", + "basicSettings.cache": "캐시", + "basicSettings.cache.musicCacheLimit": "음악 캐시 상한", + "basicSettings.cache.clearMusicCache": "음악 캐시 지우기", + "basicSettings.cache.clearLyricCache": "가사 캐시 지우기", + "basicSettings.cache.clearImageCache": "이미지 캐시 지우기", + "basicSettings.developer": "개발자 옵션", + "basicSettings.developer.errorLog": "오류 로그 기록", + "basicSettings.developer.traceLog": "상세 로그 기록", + "basicSettings.developer.devLog": "디버그 패널", + "basicSettings.developer.viewErrorLog": "오류 로그 보기", + "basicSettings.developer.clearLog": "로그 지우기", + "dialog.loading.reinitializeTrackPlayer": "플레이어 초기화 중...", + "dialog.setCacheTitle": "캐시 설정", + "dialog.setCachePlaceholder": "캐시 상한 입력, 100M-8192M, 단위: M", + "dialog.clearMusicCacheTitle": "음악 캐시 지우기", + "dialog.clearMusicCacheContent": "음악 캐시를 지우시겠습니까?", + "dialog.clearLyricCacheTitle": "가사 캐시 지우기", + "dialog.clearLyricCacheContent": "가사 캐시를 지우시겠습니까?", + "dialog.clearImageCacheTitle": "이미지 캐시 지우기", + "dialog.clearImageCacheContent": "이미지 캐시를 지우시겠습니까?", + "dialog.errorLogTitle": "오류 로그", + "dialog.errorLogNoRecord": "기록 없음", + "dialog.errorLogKnow": "확인했습니다", + "dialog.errorLogCopy": "로그 복사", + "dialog.setScheduleCloseTime.title": "예약 종료 시간 설정", + "dialog.setScheduleCloseTime.placeholder": "시간을 입력하세요", + "dialog.setScheduleCloseTime.unit": "분", + "dialog.setScheduleCloseTime.hint": "최대 24시간(1440분)까지 설정할 수 있습니다", + "toast.cacheSetSuccess": "설정 완료", + "toast.musicCacheCleared": "음악 캐시가 지워졌습니다", + "toast.lyricCacheCleared": "가사 캐시가 지워졌습니다", + "toast.imageCacheCleared": "이미지 캐시가 지워졌습니다", + "toast.logCleared": "로그가 지워졌습니다", + "toast.noFloatWindowPermission": "플로팅 창 권한이 없습니다", + "toast.folderNotExistOrNoPermission": "폴더가 없거나 권한이 없습니다", + "musicQuality.low": "저음질", + "musicQuality.standard": "표준음질", + "musicQuality.high": "고음질", + "musicQuality.super": "초고음질", + "common.emptyList": "아무것도 없어요~", + "common.loading": "로딩 중...", + "common.error": "오류가 발생했어요...", + "common.clickToRetry": "클릭하여 재시도", + "common.failToLoad": "불러오기 실패", + "common.listReachEnd": "~~~ 목록 끝 ~~~", + "playAllBar.title": "전체 재생", + "noPlugin.title": "아직 설치된 플러그인이 없어요", + "noPlugin.titleWithType": "아직「{type}」기능을 지원하는 플러그인이 설치되지 않았어요", + "noPlugin.description": "「사이드바-플러그인 관리」에서 플러그인을 먼저 설치해 보세요~", + "dialog.checkStorage.title": "저장소 권한", + "dialog.checkStorage.content.0": "MusicFree는 플레이리스트를 로컬에 백업하고 곡을 다운로드하기 위해 파일 읽기/쓰기 권한이 필요합니다.", + "dialog.checkStorage.content.1": "「권한 부여하러 가기」를 클릭하면 설정 화면으로 이동하여 파일 관리 권한을 부여할 수 있습니다.", + "dialog.checkStorage.content.2": "플레이리스트를 백업하거나 곡을 다운로드할 필요가 없다면 이 권한을 지금은 부여하지 않아도 됩니다.", + "dialog.checkStorage.content.3": "언제든지 사이드바「권한 관리」->「파일 읽기/쓰기 권한」에서 권한을 부여하거나 취소할 수 있습니다.", + "dialog.checkStorage.button.grantPermission": "권한 부여하러 가기", + "dialog.checkStorage.button.doNotShowAgain": "다시 표시하지 않음", + "dialog.downloadDialog.title": "새 버전 발견 ({version})", + "dialog.downloadDialog.skipThisVersion": "이 버전 건너뛰기", + "dialog.downloadDialog.downloadUsingBrowser": "브라우저로 다운로드", + "dialog.downloadDialog.backupUrl": "예비 링크", + "dialog.editSheetDetail.sheetName": "플레이리스트 이름", + "dialog.subscriptionPluginDialog.title": "구독", + "dialog.markdownDialog.openExternalLink": "브라우저를 열어 페이지를 방문합니다. 피싱 사이트에 주의하여 안전하게 이용하세요.", + "dialog.markdownDialog.clickToShowImage": "클릭하여 이미지 표시", + "dialog.markdownDialog.loadFailed": "이미지 불러오기 실패", + "panel.playList.title": "재생 목록", + "panel.playList.count": " ({count}곡)", + "panel.searchLrc.inputPlaceholder": "곡 이름 입력", + "panel.searchLrc.toast.settingSuccess": "설정 완료~", + "panel.searchLrc.toast.failToSearch": "설정 실패!", + "panel.addToMusicSheet.title": "플레이리스트에 추가 ({count}곡)", + "panel.addToMusicSheet.newMusicSheet": "새 플레이리스트", + "panel.addToMusicSheet.count": "{count}곡", + "panel.addToMusicSheet.toast.success": "플레이리스트에 추가되었습니다", + "panel.addToMusicSheet.toast.fail": "플레이리스트 추가 실패", + "panel.associateLrc.title": "가사 연결", + "panel.associateLrc.inputPlaceholder": "가사를 연결할 곡 ID 입력", + "panel.associateLrc.targetExpired": "링크가 만료되었어요, 다시 복사해 주세요~", + "panel.associateLrc.toast.success": "가사 연결 성공", + "panel.associateLrc.toast.fail": "가사 연결 실패", + "panel.associateLrc.toast.unlinkSuccess": "가사 연결이 해제되었습니다", + "panel.createMusicSheet.title": "새 플레이리스트", + "panel.editMusicSheetInfo.title": "플레이리스트 정보 편집", + "panel.editMusicSheetInfo.sheetName": "플레이리스트 이름", + "panel.editMusicSheetInfo.toast.updateSuccess": "플레이리스트 정보가 업데이트되었습니다~", + "panel.imageViewer.saveImage": "이미지 저장", + "panel.imageViewer.saveImageSuccess": "이미지가 {path}에 저장되었습니다", + "panel.imageViewer.saveImageFail": "이미지 저장 실패: {reason}", + "panel.colorPicker.title": "색상 선택", + "panel.createMusicSheet.inputLabel": "입력창", + "panel.importMusicSheet.title": "플레이리스트 가져오기", + "panel.importMusicSheet.placeholder": "대상 플레이리스트 입력", + "panel.importMusicSheet.importing": "가져오는 중...", + "panel.importMusicSheet.prepareImport": "가져오기 준비", + "panel.importMusicSheet.foundSongs": "{count}곡을 찾았습니다! 지금 가져올까요?", + "panel.importMusicSheet.invalidLink": "링크가 잘못되었거나 대상 플레이리스트가 비어 있습니다", + "panel.musicItemLyricOptions.author": "아티스트: {artist}", + "panel.musicItemLyricOptions.album": "앨범: {album}", + "panel.musicItemLyricOptions.toggleDesktopLyric": "{status} 바탕화면 가사", + "panel.musicItemLyricOptions.enableDesktopLyric": "켜기", + "panel.musicItemLyricOptions.disableDesktopLyric": "끄기", + "panel.musicItemLyricOptions.desktopLyricPermissionError": "바탕화면 가사를 켜지 못했습니다. 플로팅 창 권한이 없습니다", + "panel.musicItemLyricOptions.uploadLocalLyric": "로컬 가사 업로드", + "panel.musicItemLyricOptions.uploadLocalLyricTranslation": "로컬 가사 번역 업로드", + "panel.musicItemLyricOptions.deleteLocalLyric": "로컬 가사 삭제", + "panel.musicItemLyricOptions.settingFail": "설정 실패: {reason}", + "panel.musicItemLyricOptions.deleteFail": "삭제 실패: {reason}", + "panel.musicItemOptions.author": "아티스트: {artist}", + "panel.musicItemOptions.album": "앨범: {album}", + "panel.musicItemOptions.downloaded": "다운로드됨", + "panel.musicItemOptions.readComment": "댓글 보기", + "panel.musicItemOptions.deleteLocalDownload": "로컬 다운로드 삭제", + "panel.musicItemOptions.deleteLocalDownloadConfirm": "다운로드된 로컬 파일이 삭제됩니다. 계속하시겠습니까?", + "panel.musicItemOptions.associatedLyric": "가사 연결됨 {platform}@{id}", + "panel.musicItemOptions.associateLyric": "가사 연결", + "panel.musicItemOptions.unassociateLyric": "가사 연결 해제", + "panel.musicItemOptions.unassociateLyricSuccess": "가사 연결이 해제되었습니다", + "panel.musicItemOptions.timingClose": "예약 종료", + "panel.musicItemOptions.clearPluginCache": "플러그인 캐시 지우기 (재생 오류 시 사용)", + "panel.musicItemOptions.cacheCleared": "캐시가 지워졌습니다", + "panel.musicItemOptions.deleteFailed": "삭제 실패", + "panel.musicQuality.title": "{type} 음질 설정", + "panel.searchLrc.unnamed": "(이름 없음)", + "panel.searchLrc.notSupported": "가사 검색", + "panel.setFontSize.title": "글자 크기 설정", + "panel.setFontSize.small": "작게", + "panel.setFontSize.standard": "표준", + "panel.setFontSize.large": "크게", + "panel.setFontSize.extraLarge": "아주 크게", + "panel.setLyricOffset.title": "가사 싱크 설정 ({status})", + "panel.setLyricOffset.normal": "보통", + "panel.setLyricOffset.delay": "{time}초 지연", + "panel.setLyricOffset.advance": "{time}초 앞당김", + "panel.setLyricOffset.reset": "초기화", + "panel.simpleInput.inputLabel": "입력창", + "panel.timingClose.countdown": "종료까지 {time}", + "panel.timingClose.customize": "사용자 지정", + "panel.timingClose.cancelScheduleClose": "예약 종료 취소", + "panel.timingClose.closeAfterPlay": "현재 곡 재생 완료 후 종료", + "panel.playRate.title": "재생 속도", + "panel.sheetTags.title": "플레이리스트 카테고리", + "repeatMode.SHUFFLE": "셔플", + "repeatMode.QUEUE": "목록 반복", + "repeatMode.SINGLE": "한 곡 반복" +}