diff --git a/static/js/i18n.js b/static/js/i18n.js index 0598a962..0ec49ee8 100644 --- a/static/js/i18n.js +++ b/static/js/i18n.js @@ -25,6 +25,7 @@ export const LANGUAGES = [ { code: "en", flag: "๐Ÿ‡ฌ๐Ÿ‡ง", name: "English" }, { code: "pl", flag: "๐Ÿ‡ต๐Ÿ‡ฑ", name: "Polski" }, { code: "ja", flag: "๐Ÿ‡ฏ๐Ÿ‡ต", name: "ๆ—ฅๆœฌ่ชž" }, + { code: "ko", flag: "๐Ÿ‡ฐ๐Ÿ‡ท", name: "ํ•œ๊ตญ์–ด" }, { code: "zh-Hans", flag: "๐Ÿ‡จ๐Ÿ‡ณ", name: "็ฎ€ไฝ“ไธญๆ–‡" }, { code: "de", flag: "๐Ÿ‡ฉ๐Ÿ‡ช", name: "Deutsch" }, { code: "fr", flag: "๐Ÿ‡ซ๐Ÿ‡ท", name: "Franรงais" }, @@ -65,6 +66,7 @@ export function _detectDefault() { const lower = nav.toLowerCase(); if (lower.startsWith("pl")) return "pl"; if (lower.startsWith("ja")) return "ja"; + if (lower.startsWith("ko")) return "ko"; // Simplified Chinese: zh-CN, zh-Hans, zh-SG, or bare "zh" (assume simplified // unless it's explicitly a traditional-script region, which we don't ship). if (lower.startsWith("zh")) return "zh-Hans"; @@ -5206,4 +5208,543 @@ const es = { "resetConfirm.failedConnection": "No se pudo restablecer โ€” revisa tu conexiรณn.", }; -export const TRANSLATIONS = { en, pl, ja, "zh-Hans": zhHans, de, fr, es, pt, "pt-PT": ptPT, id }; +// Korean. Like ja, zhHans and id, Korean does not inflect nouns for +// number, so every plural family here is .other only -- the buckets the +// plural resolver actually reads for this language. +// +// Register is the plain ํ•ด์š”์ฒด the interface wants, not the stiffer ํ•ฉ๋‹ˆ๋‹ค์ฒด. +// The audio loanwords a Korean musician already uses (๋ณด์ปฌ, ๋“œ๋Ÿผ, ๋ฒ ์ด์Šค, +// ๋ฃจํ”„) stay loanwords; translating those would read as odd to anyone who +// has opened a DAW. +const ko = { + + "sections.kind.intro": "์ธํŠธ๋กœ", + "sections.kind.outro": "์•„์›ƒํŠธ๋กœ", + "sections.kind.break": "๋ธŒ๋ ˆ์ดํฌ", + "sections.kind.bridge": "๋ธŒ๋ฆฌ์ง€", + "sections.kind.inst": "์—ฐ์ฃผ", + "sections.kind.solo": "์†”๋กœ", + "sections.kind.verse": "๋ฒŒ์Šค", + "sections.kind.chorus": "์ฝ”๋Ÿฌ์Šค", + "sections.kind.part": "๊ตฌ๊ฐ„", + "sections.kindNumbered": "{kind} {n}", + "sections.clear": "์ง€์šฐ๊ธฐ", + "sections.clearAria": "๋ชจ๋“  ๊ตฌ๊ฐ„ ์ง€์šฐ๊ธฐ", + "sections.clearConfirm": "์ •๋ง์š”?", + "structure.toggle": "๊ณก ๊ตฌ์กฐ", + "structure.toggleTitle": "์‹คํ—˜์  ๊ณก ๊ตฌ์กฐ ๋ถ„์„: ๋ถ„๋ฆฌํ•œ ๋’ค ์ธํŠธ๋กœ, ๋ฒŒ์Šค, ์ฝ”๋Ÿฌ์Šค๋ฅผ ์ž๋™์œผ๋กœ ํ‘œ์‹œํ•ด์š”", + "structure.experimental": "์‹คํ—˜์ ", + "doc.title": "StemDeck, ์–ด๋–ค ๊ณก์ด๋“  ์Šคํ…œ์œผ๋กœ ๋ถ„๋ฆฌ", + + "topbar.urlPlaceholder": "๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ YouTube ๋˜๋Š” SoundCloud ๋งํฌ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ฑฐ๋‚˜ ์˜ค๋””์˜ค ํŒŒ์ผ์„ ๋Œ์–ด๋‹ค ๋†“์œผ์„ธ์š”โ€ฆ", + "topbar.removeFile": "ํŒŒ์ผ ์ œ๊ฑฐ", + "topbar.uploadFile": "์˜ค๋””์˜ค ํŒŒ์ผ ์—…๋กœ๋“œ", + "extract.label": "์ถ”์ถœ", + "extract.all": "์ „์ฒด", + "process.splitStems": "์Šคํ…œ ๋ถ„๋ฆฌ", + + "stem.original": "์›๋ณธ", + "stem.vocals": "๋ณด์ปฌ", + "stem.lead_vocals": "๋ฆฌ๋“œ ๋ณด์ปฌ", + "stem.backing_vocals": "๋ฐฑ ๋ณด์ปฌ", + "stem.drums": "๋“œ๋Ÿผ", + "stem.bass": "๋ฒ ์ด์Šค", + "stem.guitar": "๊ธฐํƒ€", + "stem.piano": "ํ”ผ์•„๋…ธ", + "stem.other": "๊ธฐํƒ€ ์†Œ๋ฆฌ", + "stem.others": "๊ธฐํƒ€ ์†Œ๋ฆฌ", + + "vocalMode.groupAria": "๋ณด์ปฌ ๋ชจ๋“œ", + "vocalMode.all": "์ „์ฒด", + "vocalMode.split": "๋ฆฌ๋“œ + ๋ฐฑ", + + "aria.mute": "{name} ์Œ์†Œ๊ฑฐ", + "aria.solo": "{name} ์†”๋กœ", + "aria.laneKeyUp": "{name} ๋ฐ˜์Œ ์˜ฌ๋ฆฌ๊ธฐ", + "aria.laneKeyDown": "{name} ๋ฐ˜์Œ ๋‚ด๋ฆฌ๊ธฐ", + "mixer.key.title": "์ด ํŠธ๋ž™ ์กฐ์˜ฎ๊น€: {n} ๋ฐ˜์Œ", + "mixer.key.drumsLocked": "๋“œ๋Ÿผ์€ ์กฐ์˜ฎ๊น€ํ•˜์ง€ ์•Š์•„์š”", + "mixer.key.unavailable": "์กฐ์˜ฎ๊น€์—๋Š” Web Audio๊ฐ€ ํ•„์š”ํ•ด์š”", + "aria.soloOnly": "{name}๋งŒ ์†”๋กœ", + "aria.download": "{name} ๋‹ค์šด๋กœ๋“œ", + "aria.volume": "{name} ๋ณผ๋ฅจ", + + "notif.bell": "์•Œ๋ฆผ", + "notif.title": "์•Œ๋ฆผ", + "notif.clearAll": "๋ชจ๋‘ ์ง€์šฐ๊ธฐ", + "notif.close": "์•Œ๋ฆผ ๋‹ซ๊ธฐ", + "notif.newRelease": "์ƒˆ ๋ฒ„์ „์ด ๋‚˜์™”์–ด์š”", + "notif.dismiss": "์•Œ๋ฆผ ์ง€์šฐ๊ธฐ", + "notif.empty": "์ƒˆ ์•Œ๋ฆผ์ด ์—†์–ด์š”", + + "nav.libraryNav": "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํƒ์ƒ‰", + "nav.toggleLibrary": "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ", + "nav.library": "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ", + "nav.favorites": "์ฆ๊ฒจ์ฐพ๊ธฐ", + "nav.trash": "ํœด์ง€ํ†ต", + "nav.importQueue": "๊ฐ€์ ธ์˜ค๊ธฐ ๋Œ€๊ธฐ์—ด", + "nav.queue": "๋Œ€๊ธฐ์—ด", + "nav.settings": "์„ค์ •", + "nav.weRecommend": "์ถ”์ฒœ", + "nav.weRecommendLine1": "์ด๋Ÿฐ ๊ณณ๋„", + "nav.weRecommendLine2": "์ถ”์ฒœํ•ด์š”", + "nav.help": "๋„์›€๋ง", + + "search.ariaLabel": "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒ€์ƒ‰", + "search.placeholder": "๊ฒ€์ƒ‰ ๋˜๋Š” #ํƒœ๊ทธโ€ฆ", + "search.tab.ytSongs": "YouTube ๊ณก", + "search.tab.ytPlaylists": "YouTube ์žฌ์ƒ๋ชฉ๋ก", + "search.tab.scSongs": "SoundCloud ๊ณก", + "search.searching": "๊ฒ€์ƒ‰ ์ค‘โ€ฆ", + "search.noResults": "๊ฒฐ๊ณผ๊ฐ€ ์—†์–ด์š”", + "search.failed": "๊ฒ€์ƒ‰์— ์‹คํŒจํ–ˆ์–ด์š”. ์—ฐ๊ฒฐ์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.", + "search.tooLong": "{mins}๋ถ„ ์ดˆ๊ณผ", + "search.tooLongHint": "์„ค์ •ํ•œ {mins}๋ถ„ ์ œํ•œ๋ณด๋‹ค ๊ธธ์–ด์š”. ์„ค์ •์—์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์š”.", + "search.preview": "๋ฏธ๋ฆฌ ๋“ฃ๊ธฐ", + "search.play": "์žฌ์ƒ", + "search.pause": "์ผ์‹œ์ •์ง€", + "search.seek": "์ด๋™", + "search.previewFailed": "๋ฏธ๋ฆฌ ๋“ค์„ ์ˆ˜ ์—†์–ด์š”", + "search.tagSuggestions": "ํƒœ๊ทธ ์ถ”์ฒœ", + "search.placeholderLibrary": "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒ€์ƒ‰โ€ฆ", + "search.placeholderFavorites": "์ฆ๊ฒจ์ฐพ๊ธฐ ๊ฒ€์ƒ‰โ€ฆ", + "search.placeholderTrash": "ํœด์ง€ํ†ต ๊ฒ€์ƒ‰โ€ฆ", + "trash.empty": "ํœด์ง€ํ†ต ๋น„์šฐ๊ธฐ", + "trash.isEmptyState": "ํœด์ง€ํ†ต์ด ๋น„์–ด ์žˆ์–ด์š”", + "trash.noSearchMatch": "๊ฒ€์ƒ‰๊ณผ ๋งž๋Š” ์‚ญ์ œ๋œ ํŠธ๋ž™์ด ์—†์–ด์š”", + + "meta.key": "ํ‚ค", + "meta.bpm": "BPM", + "meta.lufs": "LUFS", + "meta.duration": "๊ธธ์ด", + "meta.scale": "์Œ๊ณ„", + "meta.dynamicRange": "๋‹ค์ด๋‚ด๋ฏน ๋ ˆ์ธ์ง€", + "meta.tempoStability": "ํ…œํฌ ์•ˆ์ •์„ฑ", + + "presence.vocalGlobal": "์ „์ฒด ๋ณด์ปฌ", + "presence.drum": "๋“œ๋Ÿผ ๊ฐ•๋„", + "presence.bass": "๋ฒ ์ด์Šค ๋‘๊ป˜", + "presence.guitar": "๊ธฐํƒ€ ๋น„์ค‘", + "presence.piano": "ํ”ผ์•„๋…ธ ๋น„์ค‘", + "presence.other": "๊ธฐํƒ€ ์†Œ๋ฆฌ", + + "sections.title": "๊ตฌ๊ฐ„", + "sections.add": "์ถ”๊ฐ€", + "sections.addAria": "๊ตฌ๊ฐ„ ์ถ”๊ฐ€", + "sections.savingAria": "๊ตฌ๊ฐ„ ์ €์žฅ ์ค‘", + + "mixer.title": "๋ฏน์„œ", + + "panels.analysis": "๋ถ„์„", + + "panels.clickToCollapse": "๋ˆŒ๋Ÿฌ์„œ ์ ‘๊ธฐ", + + "panels.timeline": "ํƒ€์ž„๋ผ์ธ", + + "panels.analysisTitle": "ํŠธ๋ž™ ๋ถ„์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์ˆจ๊ธฐ๊ธฐ", + + "panels.sectionsTitle": "๊ตฌ๊ฐ„ ๋ง‰๋Œ€ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์ˆจ๊ธฐ๊ธฐ", + + "panels.timelineTitle": "ํƒ€์ž„๋ผ์ธ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์ˆจ๊ธฐ๊ธฐ", + "mixer.hint": "ํŽ˜์ด๋” ๋“œ๋ž˜๊ทธ ยท M/S", + "stemsPanel.ariaLabel": "์Šคํ…œ", + + "beatgrid.toolbarAria": "๋น„ํŠธ ๊ทธ๋ฆฌ๋“œ ํŽธ์ง‘๊ธฐ", + "beatgrid.gridLabel": "๊ทธ๋ฆฌ๋“œ", + "beatgrid.toolAria": "๋„๊ตฌ", + "beatgrid.move": "์ด๋™", + "beatgrid.moveTitle": "๋น„ํŠธ๋ฅผ ๋Œ์–ด์„œ ์˜ฎ๊ฒจ์š”", + "beatgrid.add": "์ถ”๊ฐ€", + "beatgrid.addTitle": "๋ˆŒ๋Ÿฌ์„œ ๋น„ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์š”", + "beatgrid.delete": "์‚ญ์ œ", + "beatgrid.deleteTitle": "๋น„ํŠธ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ง€์›Œ์ ธ์š”", + "beatgrid.barLine": "๋งˆ๋””์„ ", + "beatgrid.barLineTitle": "๋น„ํŠธ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ฒซ๋ฐ•์œผ๋กœ ํ‘œ์‹œํ•ด์š”", + "beatgrid.ripple": "์—ฐ๋™", + "beatgrid.snap": "์Šค๋ƒ…", + "beatgrid.bar": "๋งˆ๋””", + "beatgrid.barAria": "์ด ๊ตฌ๊ฐ„์˜ ๋งˆ๋””๋‹น ๋น„ํŠธ ์ˆ˜", + "beatgrid.undo": "์‹คํ–‰ ์ทจ์†Œ", + "beatgrid.undoTitle": "์‹คํ–‰ ์ทจ์†Œ (Cmd/Ctrl+Z)", + "beatgrid.redo": "๋‹ค์‹œ ์‹คํ–‰", + "beatgrid.redoTitle": "๋‹ค์‹œ ์‹คํ–‰ (Cmd/Ctrl+Shift+Z)", + "beatgrid.reset": "๋˜๋Œ๋ฆฌ๊ธฐ", + "beatgrid.resetTitle": "ํŽธ์ง‘์„ ๋ชจ๋‘ ๋ฒ„๋ฆฌ๊ณ  ๊ฐ์ง€๋œ ๊ทธ๋ฆฌ๋“œ๋กœ ๋˜๋Œ๋ ค์š”", + "beatgrid.done": "์™„๋ฃŒ", + "beatgrid.hint": "๋น„ํŠธ๋ฅผ ๋Œ๋ฉด ๊ตฌ๊ฐ„์˜ ๋ฐ•์ž๊ฐ€ ๋‹ค์‹œ ๋งž์ถฐ์ ธ์š”. Alt๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋Œ๋ฉด ํ•œ ๋น„ํŠธ๋งŒ ์›€์ง์—ฌ์š”.", + + "wave.loadingAria": "ํŒŒํ˜• ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘", + "job.cancelAria": "์ž‘์—… ์ทจ์†Œ", + "job.cancel": "์ทจ์†Œ", + + "footer.stemsPlaceholder": "โ€” ์Šคํ…œ", + "footer.stemsCount.other": "์Šคํ…œ {count}๊ฐœ", + + "footer.extractedLabel": "์ถ”์ถœ", + "footer.extracted": "{when} ์ถ”์ถœ", + "fav.toggleAria": "์ฆ๊ฒจ์ฐพ๊ธฐ ์ผœ๊ธฐ/๋„๊ธฐ", + "footer.seekAria": "์ด๋™", + + "export.optionsAria": "๋‚ด๋ณด๋‚ด๊ธฐ ์˜ต์…˜", + "export.formatAria": "๋‚ด๋ณด๋‚ด๊ธฐ ํ˜•์‹", + "export.includeClick": "ํด๋ฆญ ํŠธ๋ž™ ํฌํ•จ", + "export.videoFailed": "MP4๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์—†์–ด์š”. ์ด ํŠธ๋ž™์˜ ์˜์ƒ์„ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ์–ด์š”. ์˜ค๋””์˜ค ์Šคํ…œ์—๋Š” ์˜ํ–ฅ์ด ์—†์–ด์š”.", + "export.includeClickTitle": "๋‚ด๋ณด๋‚ด๋Š” ํŒŒ์ผ์— ํด๋ฆญ ํŠธ๋ž™์„ ์„ž์–ด์š”", + "export.addCountIn": "์นด์šดํŠธ์ธ ์ถ”๊ฐ€ (1๋งˆ๋””)", + "export.addCountInTitle": "์˜ค๋””์˜ค ์•ž์— ์นด์šดํŠธ์ธ ํด๋ฆญ์„ ํ•œ ๋งˆ๋”” ๋„ฃ์–ด์š”", + "export.mix": "๋ฏน์Šค ๋‚ด๋ณด๋‚ด๊ธฐ", + "export.mixDesc": "๋ฏน์Šคํ•œ ์˜ค๋””์˜ค๋ฅผ ๋‚ด๋ณด๋‚ด์š”", + "export.mixDescVideo": "์›๋ณธ ์˜์ƒ๊ณผ ํ•จ๊ป˜ ๋ฏน์Šค๋ฅผ ๋‚ด๋ณด๋‚ด์š”", + "export.failed": "๋‚ด๋ณด๋‚ด์ง€ ๋ชปํ–ˆ์–ด์š”.", + "export.allMuted": "๋ชจ๋“  ์Šคํ…œ์ด ์Œ์†Œ๊ฑฐ๋ผ ๋‚ด๋ณด๋‚ผ ๊ฒƒ์ด ์—†์–ด์š”.", + "export.noStems": "๋‚ด๋ณด๋‚ผ ์Šคํ…œ์ด ์—†์–ด์š”.", + "export.mixing": "๋‚ด๋ณด๋‚ด๋Š” ์ค‘โ€ฆ", + "export.allStems": "๋ชจ๋“  ์Šคํ…œ ๋‚ด๋ณด๋‚ด๊ธฐ", + "export.allStemsDesc": "๋ชจ๋“  ์Šคํ…œ์„ .zip ํ•˜๋‚˜๋กœ", + "export.currentRegion": "์„ ํƒ ๊ตฌ๊ฐ„ ๋‚ด๋ณด๋‚ด๊ธฐ", + "export.currentRegionDesc": "์„ ํƒํ•œ ๊ตฌ๊ฐ„์„ ๋‚ด๋ณด๋‚ด์š”", + + "transport.group": "ํŠธ๋žœ์ŠคํฌํŠธ", + "transport.stop": "์ •์ง€", + "transport.playPause": "์žฌ์ƒ / ์ผ์‹œ์ •์ง€", + + "position.group": "์œ„์น˜", + "position.loopTitle": "์„ ํƒํ•œ ๊ตฌ๊ฐ„์„ ๋ฐ˜๋ณตํ•ด์š” (L)", + "position.loopLabel": "๊ตฌ๊ฐ„ ๋ฐ˜๋ณต", + "position.loopExactTitle": "๋ฐ˜๋ณต ์‹œ์ž‘๊ณผ ๋์„ ์ •ํ™•ํžˆ (mm:ss.mmm ๋˜๋Š” ์ดˆ)", + "position.loopStartAria": "๋ฐ˜๋ณต ์‹œ์ž‘", + "position.loopEndAria": "๋ฐ˜๋ณต ๋", + + "speed.group": "์†๋„", + "pitch.group": "์ „์ฒด ํ‚ค", + "pitch.resetTitle": "๋ชจ๋“  ํŠธ๋ž™์„ ์›๋ž˜ ํ‚ค๋กœ ๋˜๋Œ๋ ค์š”", + "pitch.downTitle": "๋ฐ˜์Œ ๋‚ด๋ฆฌ๊ธฐ", + "pitch.upTitle": "๋ฐ˜์Œ ์˜ฌ๋ฆฌ๊ธฐ", + "speed.ariaLabel": "์žฌ์ƒ ์†๋„", + + "click.group": "ํด๋ฆญ ํŠธ๋ž™", + "click.alpha": "์•ŒํŒŒ", + "click.toggleTitle": "ํด๋ฆญ ํŠธ๋ž™ (K)", + "click.toggleAria": "ํด๋ฆญ ํŠธ๋ž™", + "click.unavailableAria": "ํด๋ฆญ ํŠธ๋ž™์„ ์“ธ ์ˆ˜ ์—†์Œ", + "click.on": "์ผœ๊ธฐ", + "click.optionsAria": "ํด๋ฆญ ํŠธ๋ž™ ์˜ต์…˜", + "click.countIn": "์นด์šดํŠธ์ธ", + "click.countInTitle": "์žฌ์ƒ์„ ๋ˆ„๋ฅด๋ฉด ๊ณก์ด ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ํด๋ฆญ์„ ํ•œ ๋งˆ๋”” ์„ธ์–ด์š”", + "click.barAccentAria": "N ๋น„ํŠธ๋งˆ๋‹ค ๊ฐ•์„ธ", + "click.auto": "์ž๋™ (๊ฐ์ง€๋จ)", + "click.autoNone": "์ž๋™ (์ฐพ์ง€ ๋ชปํ•จ)", + "click.off": "๋„๊ธฐ", + "click.editTitle": "๋น„ํŠธ ๊ทธ๋ฆฌ๋“œ ํŽธ์ง‘", + "click.grid": "๊ทธ๋ฆฌ๋“œ", + "click.rateAria": "ํด๋ฆญ ์†๋„", + "click.rateTitle": "ํด๋ฆญ ์†๋„๋ฅผ ์ ˆ๋ฐ˜ ๋˜๋Š” ๋‘ ๋ฐฐ๋กœ", + "click.half": "์ ˆ๋ฐ˜ ์†๋„", + "click.detected": "๊ฐ์ง€๋œ ํ…œํฌ", + "click.double": "๋‘ ๋ฐฐ ์†๋„", + "click.volumeAria": "ํด๋ฆญ ๋ณผ๋ฅจ", + "click.volumeTitle": "ํด๋ฆญ ๋ณผ๋ฅจ: {pct}", + "click.reason.loadTrack": "ํด๋ฆญ์„ ์“ฐ๋ ค๋ฉด ํŠธ๋ž™์„ ๋จผ์ € ์—ด์–ด ์ฃผ์„ธ์š”", + "click.reason.playbackUnavailable": "์ด ํŠธ๋ž™์€ ์žฌ์ƒํ•  ์ˆ˜ ์—†์–ด์š”", + "click.reason.noBeatGrid": "์ด ํŠธ๋ž™์—๋Š” ๋น„ํŠธ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์—†์–ด์š”", + "click.reason.unavailableOnPath": "์ด ์žฌ์ƒ ๋ฐฉ์‹์—์„œ๋Š” ํด๋ฆญ ํŠธ๋ž™์„ ์“ธ ์ˆ˜ ์—†์–ด์š”", + "click.reason.needsWebAudio": "ํด๋ฆญ ํŠธ๋ž™์—๋Š” Web Audio ์—”์ง„์ด ํ•„์š”ํ•ด์š”", + + "about.title": "StemDeck", + "about.tagline": "์˜คํ”ˆ ์†Œ์Šค. ๊ตฌ๋… ์—†์Œ. ์Œ์•…ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์Œ์•…ํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ๋งŒ๋“ค์—ˆ์–ด์š”.", + "about.closeAria": "์ •๋ณด ์ฐฝ ๋‹ซ๊ธฐ", + "about.website": "์›น์‚ฌ์ดํŠธ", + "about.github": "GitHub", + "about.discord": "Discord", + "about.reddit": "Reddit", + "about.instagram": "Instagram", + "about.x": "X", + + "friends.title": "์ถ”์ฒœ", + "friends.tagline": "์ข‹์€ ์ผ์„ ํ•˜๋Š” ๋ฉ‹์ง„ ์‚ฌ๋žŒ๋“ค์ด์—์š”. ํ•œ๋ฒˆ ๋งŒ๋‚˜ ๋ณด์„ธ์š” โค๏ธ", + "friends.closeAria": "์ถ”์ฒœ ์ฐฝ ๋‹ซ๊ธฐ", + + "release.title": "์ƒˆ ๋ฒ„์ „์ด ๋‚˜์™”์–ด์š”", + "release.closeAria": "๋ฆด๋ฆฌ์Šค ์ฐฝ ๋‹ซ๊ธฐ", + "release.updateServer": "์„œ๋ฒ„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ", + "release.pullImage": "์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”:", + "release.unraidNote": "Unraid์—์„œ๋Š” Community Applications ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.", + "release.download": "๋‹ค์šด๋กœ๋“œ", + "release.allReleases": "๋ชจ๋“  ๋ฆด๋ฆฌ์Šค", + "release.updateNow": "์ง€๊ธˆ ์—…๋ฐ์ดํŠธ", + "release.downloading": "์—…๋ฐ์ดํŠธ ๋ฐ›๋Š” ์ค‘โ€ฆ", + "release.restartUpdate": "๋‹ค์‹œ ์‹œ์ž‘ํ•ด์„œ ์—…๋ฐ์ดํŠธ", + "release.applying": "์—…๋ฐ์ดํŠธ ์ ์šฉ ์ค‘โ€ฆ", + "release.updateFailed": "์—…๋ฐ์ดํŠธ์— ์‹คํŒจํ–ˆ์–ด์š”", + + "failure.title": "๋ฌด์–ธ๊ฐ€ ์‹คํŒจํ–ˆ์–ด์š”", + "failure.closeAria": "์˜ค๋ฅ˜ ์ฐฝ ๋‹ซ๊ธฐ", + "failure.hint": "์•„๋ž˜ ๋‚ด์šฉ์ด ๋ฆฌํฌํŠธ์— ๋“ค์–ด๊ฐ€์š”. ํŠธ๋ž™ ์ œ๋ชฉ๊ณผ ์›๋ณธ ๋งํฌ๋Š” ํฌํ•จ๋˜์ง€ ์•Š์œผ๋‹ˆ, ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์œผ๋ฉด ์ง์ ‘ ์ ์–ด ์ฃผ์„ธ์š”. ์•„๋ž˜ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋ผ์š”.", + "failure.includeLogs": "์ตœ๊ทผ ๋กœ๊ทธ ํฌํ•จ", + "failure.collecting": "์ •๋ณด ๋ชจ์œผ๋Š” ์ค‘โ€ฆ", + "failure.fetchingLogs": "๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๋Š” ์ค‘โ€ฆ", + "failure.logsIncluded": "๋กœ๊ทธ๊ฐ€ ํฌํ•จ๋์–ด์š”", + "failure.reportGithub": "GitHub์— ์•Œ๋ฆฌ๊ธฐ", + "failure.reportDiscord": "Discord์— ์•Œ๋ฆฌ๊ธฐ", + + "settings.title": "์„ค์ •", + "settings.closeAria": "์„ค์ • ๋‹ซ๊ธฐ", + "settings.tab.general": "์ผ๋ฐ˜", + "settings.tab.network": "๋„คํŠธ์›Œํฌ", + "settings.tab.export": "๋‚ด๋ณด๋‚ด๊ธฐ", + "settings.tab.logs": "๋กœ๊ทธ", + "settings.tab.registry": "๋ ˆ์ง€์ŠคํŠธ๋ฆฌ", + "settings.readOnlyServer": "์„œ๋ฒ„ ๋ชจ๋“œ์—์„œ๋Š” ์ด ์„ค์ •์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์–ด์š”. ๋ฐ”๊พธ๋ ค๋ฉด ์„œ๋ฒ„ ์„ค์ •(์˜ˆ: docker-compose.yml)์„ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.", + + "settings.language.title": "์–ธ์–ด", + "settings.language.desc": "์ด ์•ฑ์—์„œ ์“ธ ํ‘œ์‹œ ์–ธ์–ด์˜ˆ์š”.", + + "settings.maxDuration.title": "์ตœ๋Œ€ ํŠธ๋ž™ ๊ธธ์ด", + "settings.maxDuration.desc": "์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ํŠธ๋ž™ ๊ธธ์ด์˜ˆ์š”, ๋ถ„ ๋‹จ์œ„ (์ตœ๋Œ€ {max}).", + "settings.playlistLimit.title": "์žฌ์ƒ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ ์ œํ•œ", + "settings.playlistLimit.desc": "์žฌ์ƒ๋ชฉ๋ก ํ•œ ๋ฒˆ์— ๋Œ€๊ธฐ์—ด์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํŠธ๋ž™ ์ˆ˜์˜ˆ์š” (์ตœ๋Œ€ 200).", + "settings.cookies.title": "YouTube ์ฟ ํ‚ค", + "settings.cookies.desc": "์„ ํƒ ์‚ฌํ•ญ์ด์—์š”. cookies.txt ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ, YouTube๊ฐ€ StemDeck์—๊ฒŒ ๋ด‡์ด ์•„๋‹˜์„ ํ™•์ธํ•˜๋ผ๊ณ  ํ•  ๋•Œ๋งŒ ์จ์š”. ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋น„์›Œ ๋‘์„ธ์š”.", + "settings.cookies.placeholder": "cookies.txt ๊ฒฝ๋กœ", + "settings.cookies.invalid": "ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ฝ์„ ์ˆ˜ ์—†์–ด์š”.", + "settings.stemsLocation.title": "StemData ์œ„์น˜", + "settings.autoDelete.title": "์™„๋ฃŒ๋œ ํŠธ๋ž™ ์ž๋™ ์‚ญ์ œ", + "settings.autoDelete.desc": "์ผœ์ง€ ์•Š์œผ๋ฉด ๊บผ์ ธ ์žˆ์–ด์š”. ๋ถ„๋ฆฌํ•œ ํŠธ๋ž™์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ„์† ๋ณด๊ด€ํ•ด์š”. ์‚ญ์ œํ•˜๋ฉด ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์–ด์š”.", + "settings.autoDelete.daysTitle": "์‚ญ์ œ๊นŒ์ง€", + "settings.autoDelete.daysDesc": "์™„๋ฃŒ๋œ ํŠธ๋ž™์„ ์‚ญ์ œํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋ณด๊ด€ํ•˜๋Š” ์ผ์ˆ˜์˜ˆ์š” (์ตœ๋Œ€ {max}).", + "settings.stemsLocation.change": "๋ณ€๊ฒฝโ€ฆ", + "settings.stemsLocation.resetting": "๋˜๋Œ๋ฆฌ๋Š” ์ค‘โ€ฆ", + "settings.stemsLocation.resetFailed": "๋˜๋Œ๋ฆฌ์ง€ ๋ชปํ–ˆ์–ด์š”. ์—ฐ๊ฒฐ์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.", + "settings.stemsLocation.syncing": "๋™๊ธฐํ™” ์ค‘โ€ฆ", + "settings.stemsLocation.syncFailed": "๋™๊ธฐํ™”ํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”. ์—ฐ๊ฒฐ์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.", + "settings.stemsLocation.inSync": "๋ชจ๋“  ํŠธ๋ž™์ด ๋™๊ธฐํ™”๋์–ด์š”.", + "settings.stemsLocation.unavailable": "์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ", + "settings.stemsLocation.persistFailed": "์œ„์น˜๋Š” ๋ฐ”๋€Œ์—ˆ์ง€๋งŒ ์ €์žฅ๋˜์ง€ ์•Š์•˜์–ด์š”. ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ด์ „ ํด๋”๋กœ ๋Œ์•„๊ฐ€์š”.", + "settings.stemsLocation.restartNote": "StemDeck์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ „ํ™˜์ด ๋๋‚˜์š”.", + "settings.stemsLocation.pickerFailed": "ํด๋” ์„ ํƒ ์ฐฝ์„ ์—ด์ง€ ๋ชปํ–ˆ์–ด์š”.", + "settings.stemsLocation.moving": "์Šคํ…œ์„ ์˜ฎ๊ธฐ๋Š” ์ค‘์ด์—์š”. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌ๋ฉด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์–ด์š”.", + "settings.stemsLocation.moveFailed": "์Šคํ…œ ํด๋”๋ฅผ ์˜ฎ๊ธฐ์ง€ ๋ชปํ–ˆ์–ด์š”.", + "settings.stemsLocation.serverUnreachable": "์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”.", + "settings.stemsLocation.movedPersistFailed.other": "{count}๊ฐœ๋ฅผ ์˜ฎ๊ฒผ์ง€๋งŒ ์ƒˆ ์œ„์น˜๋กœ ์ €์žฅํ•˜์ง€ ๋ชปํ–ˆ์–ด์š” (ํด๋”์— ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์„ธ์š”). ์ง€๊ธˆ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ด์ „ ์œ„์น˜๋กœ ๋Œ์•„๊ฐ€์š”. ๋‹ค์‹œ ์„ค์ •ํ•ด ๋ณด์„ธ์š”.", + "settings.stemsLocation.movedOk.other": "{count}๊ฐœ๋ฅผ ์˜ฎ๊ฒผ์–ด์š”. StemDeck์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ „ํ™˜์ด ๋๋‚˜์š”.", + + "settings.device.title": "์—ฐ์‚ฐ ์žฅ์น˜", + "settings.device.desc": "์Šคํ…œ ๋ถ„๋ฆฌ์— ์“ธ ์žฅ์น˜์˜ˆ์š”. ๋‹ค์Œ ํŠธ๋ž™๋ถ€ํ„ฐ ์ ์šฉ๋ผ์š”{resolved}.", + "settings.device.auto": "์ž๋™", + "settings.device.cuda": "CUDA (NVIDIA)", + "settings.device.mps": "MPS (Apple Silicon)", + "settings.device.cpu": "CPU", + "settings.device.currently": " (ํ˜„์žฌ: {device})", + "settings.device.notAvailable": " (์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ)", + "settings.quality.title": "๋ถ„๋ฆฌ ํ’ˆ์งˆ", + "settings.quality.desc": "์ตœ๊ณ  ํ’ˆ์งˆ์€ ๋ถ„๋ฆฌ๊ธฐ๋ฅผ ๋‘ ๋ฒˆ ๋Œ๋ ค ๋ฌด์ž‘์œ„๋กœ ์–ด๊ธ‹๋‚ธ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ท ํ•ด์š”. ์Šคํ…œ์ด ๋” ๊นจ๋—ํ•ด์ง€์ง€๋งŒ ์‹œ๊ฐ„์€ ๋‘ ๋ฐฐ ๊ฑธ๋ ค์š”.", + "settings.quality.standard": "ํ‘œ์ค€", + "settings.quality.best": "์ตœ๊ณ  (2๋ฐฐ ๋А๋ฆผ)", + + "settings.outOfSync.subhead": "๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ํŠธ๋ž™", + "settings.outOfSync.colName": "์ด๋ฆ„", + "settings.outOfSync.colSource": "์›๋ณธ", + "settings.outOfSync.colLocation": "์œ„์น˜", + "settings.outOfSync.resync": "๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ํŠธ๋ž™ ๋‹ค์‹œ ๋งž์ถ”๊ธฐ", + "settings.outOfSync.allSynced": "๋ชจ๋“  ํŠธ๋ž™์ด ๋™๊ธฐํ™”๋จ", + "settings.outOfSync.summary.other": "{count}๊ฐœ ํŠธ๋ž™์ด ๋™๊ธฐํ™”๋˜์ง€ ์•Š์•˜์–ด์š”", + "library.importedFile": "๊ฐ€์ ธ์˜จ ํŒŒ์ผ", + "library.syncing": "๋™๊ธฐํ™” ์ค‘โ€ฆ", + "library.syncFailed": "๋™๊ธฐํ™”ํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”. ์—ฐ๊ฒฐ์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.", + "library.recent": "์ตœ๊ทผ", + "library.stemCollections": "์Šคํ…œ ๋ชจ์Œ", + "library.tags": "ํƒœ๊ทธ", + "library.newFolder": "์ƒˆ ํด๋”", + "queue.importQueue": "๊ฐ€์ ธ์˜ค๊ธฐ ๋Œ€๊ธฐ์—ด", + "queue.paused.other": "์ผ์‹œ์ •์ง€๋จ. ์ง€๋‚œ ์„ธ์…˜์—์„œ ๋‚จ์€ ํŠธ๋ž™ {count}๊ฐœ์˜ˆ์š”.", + "queue.start": "์‹œ์ž‘", + "queue.starting": "์‹œ์ž‘ํ•˜๋Š” ์ค‘โ€ฆ", + "release.viewDownload": "๋‹ค์šด๋กœ๋“œ ๋ณด๊ธฐ", + + "track.localFile": "๋กœ์ปฌ ํŒŒ์ผ", + "track.web": "์›น", + "track.losslessWav": "๋ฌด์†์‹ค (WAV)", + "track.compressedMp3": "์••์ถ• (MP3)", + "track.qualityHigh": "๋†’์Œ", + "track.untitled": "์ œ๋ชฉ ์—†๋Š” ํŠธ๋ž™", + "track.unknown": "์•Œ ์ˆ˜ ์—†๋Š” ํŠธ๋ž™", + "track.removed": "์‚ญ์ œ๋จ", + "track.moveToTrash": "ํœด์ง€ํ†ต์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ", + "track.moveTitleToTrash": "{title}์„(๋ฅผ) ํœด์ง€ํ†ต์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ", + "folder.dragToReorder": "๋Œ์–ด์„œ ์ˆœ์„œ ๋ฐ”๊พธ๊ธฐ", + "folder.newSubfolder": "์ƒˆ ํ•˜์œ„ ํด๋”", + "folder.deleteFolder": "ํด๋” ์‚ญ์ œ", + "folder.unsorted": "๋ฏธ๋ถ„๋ฅ˜", + "favorites.noSearchMatch": "๊ฒ€์ƒ‰๊ณผ ๋งž๋Š” ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ€ ์—†์–ด์š”", + "favorites.empty": "์•„์ง ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ€ ์—†์–ด์š”. ํŠธ๋ž™์˜ โ™ฅ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ €์žฅ๋ผ์š”", + "queue.extractNext": "์ด ํŠธ๋ž™์„ ๋‹ค์Œ์œผ๋กœ ์ถ”์ถœ", + "queue.moveToFront": "{title}์„(๋ฅผ) ๋Œ€๊ธฐ์—ด ๋งจ ์•ž์œผ๋กœ", + "queue.cancelImport": "์ด ๊ฐ€์ ธ์˜ค๊ธฐ ์ทจ์†Œ", + "queue.cancelImportOf": "{title} ๊ฐ€์ ธ์˜ค๊ธฐ ์ทจ์†Œ", + "queue.pausedStatus": "์ผ์‹œ์ •์ง€๋จ", + "queue.positionInLine": "๋Œ€๊ธฐ ์ค‘. {position}๋ฒˆ์งธ์˜ˆ์š”", + + "settings.exportLogs.title": "๋กœ๊ทธ ๋‚ด๋ณด๋‚ด๊ธฐ", + "settings.exportLogs.desc": "๋ชจ๋“  ๋กœ๊ทธ ํŒŒ์ผ์„ zip ํ•˜๋‚˜๋กœ ๋ฐ›์•„์š”. ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ์— ์ฒจ๋ถ€ํ•˜๊ธฐ ์ข‹์•„์š”. ํŒŒ์ผ์ด ์–ด๋””์— ์žˆ๋Š”์ง€๋Š” ๋กœ๊ทธ ํƒญ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.", + "settings.exportLogs.button": "๋กœ๊ทธ ๋‚ด๋ณด๋‚ด๊ธฐ", + "settings.exportLogs.preparing": "์ค€๋น„ ์ค‘โ€ฆ", + "settings.exportLogs.error": "๋กœ๊ทธ๋ฅผ ๋‚ด๋ณด๋‚ด์ง€ ๋ชปํ–ˆ์–ด์š”.", + "status.unavailable": "์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ", + + "settings.resetData.title": "์•ฑ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”", + "settings.resetData.desc": "๋ชจ๋“  ํŠธ๋ž™, ์ž‘์—…, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•ญ๋ชฉ์„ ์˜๊ตฌํžˆ ์‚ญ์ œํ•ด์š”. ๊ณต์œ  ์„œ๋ฒ„๋ผ๋ฉด ์“ฐ๋Š” ์‚ฌ๋žŒ ๋ชจ๋‘์—๊ฒŒ ์˜ํ–ฅ์„ ์ค˜์š”. ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์–ด์š”.", + "settings.resetData.button": "์•ฑ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”โ€ฆ", + + "settings.network.allowTitle": "๋„คํŠธ์›Œํฌ์—์„œ StemDeck์— ์ ‘์† ํ—ˆ์šฉ", + "settings.network.allowDesc": "ํœด๋Œ€ํฐ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ์—์„œ ์•„๋ž˜ ์ฃผ์†Œ๋กœ StemDeck์„ ์—ด ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์š”.", + "settings.network.lockNote": "StemDeck์„ ์„œ๋ฒ„ ๋ชจ๋“œ๋กœ ์ผœ๋ฉด ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์–ด์š”. ์ด๋•Œ ๋„คํŠธ์›Œํฌ ์ ‘์†์€ ์„œ๋ฒ„ ์„ค์ •์—์„œ ์ •ํ•ด์ ธ์š”.", + "settings.network.port.title": "ํฌํŠธ", + "settings.network.port.desc": "StemDeck์ด ์“ฐ๋Š” ํฌํŠธ์˜ˆ์š”. ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ ์šฉ๋ผ์š”.", + "settings.network.noConnection": "๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์ฐพ์ง€ ๋ชปํ–ˆ์–ด์š”.", + "settings.network.qrHint": "์นด๋ฉ”๋ผ๊ฐ€ ๋„ˆ๋ฌด ์‹ ๋‚˜์ง€ ์•Š๋„๋ก ํ๋ฆฌ๊ฒŒ ํ•ด ๋’€์–ด์š”. ๋ˆŒ๋Ÿฌ์„œ ํ™•์ธํ•˜์„ธ์š”.", + "settings.network.tapToUnblur": "๋ˆŒ๋Ÿฌ์„œ ์„ ๋ช…ํ•˜๊ฒŒ", + "settings.network.qrCodeFor": "{url} QR ์ฝ”๋“œ", + + "settings.export.sampleRate.title": "์ƒ˜ํ”Œ๋ ˆ์ดํŠธ", + "settings.export.sampleRate.desc": "๋‚ด๋ณด๋‚ด๋Š” ๋ฏน์Šค์™€ ๊ตฌ๊ฐ„(WAV, FLAC, MP3)์˜ ์ƒ˜ํ”Œ๋ ˆ์ดํŠธ์˜ˆ์š”. ๋Œ€๋ถ€๋ถ„์˜ DAW์™€ ์ƒ˜ํ”Œ๋Ÿฌ์—๋Š” 44.1 kHz๊ฐ€ ์ž˜ ๋งž๊ณ , ์žฅ๋น„๊ฐ€ ๋‹ค๋ฅธ ๊ฐ’์„ ์š”๊ตฌํ•˜๋ฉด ๋ฐ”๊พธ์„ธ์š”.", + "settings.export.videoQuality.title": "MP4 ์˜์ƒ ํ’ˆ์งˆ", + "settings.export.videoQuality.desc": "MP4 ๋‚ด๋ณด๋‚ด๊ธฐ์™€ YouTube ์˜์ƒ์˜ ์ตœ๋Œ€ ํ•ด์ƒ๋„์˜ˆ์š”.", + + "settings.logs.locationTab": "์œ„์น˜", + "settings.logs.applicationTab": "์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ", + "settings.logs.backendTab": "๋ฐฑ์—”๋“œ ๋กœ๊ทธ", + "settings.logs.setupTab": "์„ค์น˜ ๋กœ๊ทธ", + "settings.logs.refresh": "์ƒˆ๋กœ๊ณ ์นจ", + "settings.logs.loading": "๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘โ€ฆ", + "settings.logs.location.title": "๋กœ๊ทธ ์œ„์น˜", + "settings.logs.location.desc": "์ด ์ปดํ“จํ„ฐ์—์„œ StemDeck์ด ๋กœ๊ทธ๋ฅผ ์“ฐ๋Š” ๊ณณ์ด์—์š”. ์ฝ๊ธฐ ์ „์šฉ์ด๋‹ˆ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ ์—ด๊ฑฐ๋‚˜ ๋กœ๊ทธ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์“ฐ์„ธ์š”.", + "settings.logs.application.title": "์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ", + "settings.logs.application.desc": "stemdeck.log์˜ ์ตœ๊ทผ ํ•œ ์‹œ๊ฐ„์ด์—์š”. ํŒŒ์ดํ”„๋ผ์ธ, API, ์ž‘์—… ๊ธฐ๋ก์ด ๋‹ด๊ฒจ์š”. ์ฝ๊ธฐ ์ „์šฉ์ด์—์š”.", + "settings.logs.applicationAria": "์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ (์ฝ๊ธฐ ์ „์šฉ)", + "settings.logs.backend.title": "๋ฐฑ์—”๋“œ ๋กœ๊ทธ", + "settings.logs.backend.desc": "backend.log์˜ ์ตœ๊ทผ ํ•œ ์‹œ๊ฐ„์ด์—์š”. ๋‚ด์žฅ Python ํ”„๋กœ์„ธ์Šค์˜ ์›๋ณธ ์ถœ๋ ฅ์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ๊ฐ€ ๋‚จ๊ธฐ๊ธฐ ์ „์— ์ค‘๋‹จ์‹œํ‚จ ์˜ค๋ฅ˜๊นŒ์ง€ ๋“ค์–ด ์žˆ์–ด์š”. ๋ฐ์Šคํฌํ†ฑ ์•ฑ ์ „์šฉ์ด๊ณ  ์ฝ๊ธฐ ์ „์šฉ์ด์—์š”.", + "settings.logs.backendAria": "๋ฐฑ์—”๋“œ ๋กœ๊ทธ (์ฝ๊ธฐ ์ „์šฉ)", + "settings.logs.setup.title": "์„ค์น˜ ๋กœ๊ทธ", + "settings.logs.setup.desc": "setup.log์˜ ์ตœ๊ทผ ํ•œ ์‹œ๊ฐ„์ด์—์š”. ์ฒซ ์‹คํ–‰ ์„ค์ •๊ณผ GPU ๋Ÿฐํƒ€์ž„ ์„ค์น˜ ๊ธฐ๋ก์ด์—์š”. ๋ฐ์Šคํฌํ†ฑ ์•ฑ ์ „์šฉ์ด๊ณ  ์ฝ๊ธฐ ์ „์šฉ์ด์—์š”.", + "settings.logs.setupAria": "์„ค์น˜ ๋กœ๊ทธ (์ฝ๊ธฐ ์ „์šฉ)", + + "settings.registry.title": "์ž‘์—… ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ", + "settings.registry.desc": "registry.json์„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋ณธ ๊ฑฐ์˜ˆ์š”. ๋””์Šคํฌ์— ์ €์žฅ๋œ ์™„๋ฃŒ ์ž‘์—… ๋ชฉ๋ก์ด์—์š”.", + "settings.registry.aria": "์ž‘์—… ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ (์ฝ๊ธฐ ์ „์šฉ)", + "settings.logs.noFilesYet": "์•„์ง ๋กœ๊ทธ ํŒŒ์ผ์ด ์—†์–ด์š”{folderNote}. ์‹คํ–‰ ํ›„ ์ฒซ ๋ฉ”์‹œ์ง€๋ถ€ํ„ฐ ๊ธฐ๋ก์ด ์‹œ์ž‘๋ผ์š”.", + "settings.logs.folderNotCreated": " (ํด๋”๊ฐ€ ์•„์ง ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์•˜์–ด์š”)", + "settings.logs.failedToLoad": "๋กœ๊ทธ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ–ˆ์–ด์š”.", + + "settings.done": "์™„๋ฃŒ", + + "settings.folder.rename": "ํด๋” ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ", + "settings.folder.namePlaceholder": "ํด๋” ์ด๋ฆ„", + "settings.folder.emptyError": "ํด๋” ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.", + "settings.folder.charsError": "๋ฌธ์ž, ์ˆซ์ž, ๊ณต๋ฐฑ ๋˜๋Š” - _ ' & ( ) . , ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์–ด์š”", + "settings.folder.cancel": "์ทจ์†Œ", + "settings.folder.save": "์ €์žฅ", + + "settings.dangerZone": "์œ„ํ—˜ ๊ตฌ์—ญ", + + "folderEditor.title": "ํด๋” ํŽธ์ง‘", + "folderEditor.closeAria": "๋‹ซ๊ธฐ", + "folderEditor.nameLabel": "์ด๋ฆ„", + "folderEditor.colorLabel": "์ƒ‰์ƒ", + "folderEditor.colorGroupAria": "ํด๋” ์ƒ‰์ƒ", + "folderEditor.cancel": "์ทจ์†Œ", + "folderEditor.save": "์ €์žฅ", + "folderEditor.emptyError": "ํด๋” ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.", + "folderEditor.tooLong": "ํด๋” ์ด๋ฆ„์ด ๋„ˆ๋ฌด ๊ธธ์–ด์š” (์ตœ๋Œ€ {max}).", + "folderEditor.charsError": "๋ฌธ์ž, ์ˆซ์ž, ๊ณต๋ฐฑ ๋˜๋Š” - _ ' & ( ) . , ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์–ด์š”", + + "notifKind.importFailed": "๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ", + "notifKind.playbackFailed": "์žฌ์ƒ ์‹คํŒจ", + "notifKind.exportFailed": "๋‚ด๋ณด๋‚ด๊ธฐ ์‹คํŒจ", + "notifKind.updateCheckFailed": "์—…๋ฐ์ดํŠธ ํ™•์ธ ์‹คํŒจ", + "notifKind.default": "๋ฌด์–ธ๊ฐ€ ์‹คํŒจํ–ˆ์–ด์š”", + "notif.somethingWentWrong": "๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์–ด์š”.", + "time.justNow": "๋ฐฉ๊ธˆ", + "time.minAgo.other": "{count}๋ถ„ ์ „", + "time.hoursAgo.other": "{count}์‹œ๊ฐ„ ์ „", + + "job.processing": "์ฒ˜๋ฆฌ ์ค‘", + "job.queuedTrack": "๋Œ€๊ธฐ ์ค‘์ธ ํŠธ๋ž™", + "job.process": "์ฒ˜๋ฆฌ", + "job.tryAgain": "๋‹ค์‹œ ์‹œ๋„", + "job.dismiss": "๋‹ซ๊ธฐ", + "job.peakDb": "ํ”ผํฌ {value} dB", + "job.dr.compressed": "์••์ถ•๋จ", + "job.dr.moderate": "๋ณดํ†ต", + "job.dr.high": "๋†’์Œ", + "job.dr.wide": "๋„“์Œ", + "job.stability.veryStable": "๋งค์šฐ ์•ˆ์ •์ ", + "job.stability.stable": "์•ˆ์ •์ ", + "job.stability.moderate": "๋ณดํ†ต", + "job.stability.variable": "๋ณ€๋™ ์žˆ์Œ", + "job.bpmValue": "{bpm} BPM", + "job.cancelling": "์ทจ์†Œํ•˜๋Š” ์ค‘โ€ฆ", + "job.processingTrackTitle": "ํŠธ๋ž™ ์ฒ˜๋ฆฌ ์ค‘", + "job.unknownError": "์•Œ ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜", + "job.noLongerExists": "์„œ๋ฒ„์— ์ด ์ž‘์—…์ด ๋”๋Š” ์—†์–ด์š”", + "job.audioProcessingFailed": "์˜ค๋””์˜ค ์ฒ˜๋ฆฌ์— ์‹คํŒจํ–ˆ์–ด์š”.", + "job.working": "์ž‘์—… ์ค‘โ€ฆ", + "settings.device.changeFailed": "์—ฐ์‚ฐ ์žฅ์น˜๋ฅผ ๋ฐ”๊พธ์ง€ ๋ชปํ–ˆ์–ด์š”.", + "update.checkFailed": "์—…๋ฐ์ดํŠธ๋ฅผ ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”.", + "track.unavailableReimport": "ํŠธ๋ž™์„ ์“ธ ์ˆ˜ ์—†์–ด์š”. ๋ˆŒ๋Ÿฌ์„œ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ค์„ธ์š”", + "track.unavailableReupload": "ํŠธ๋ž™์„ ์“ธ ์ˆ˜ ์—†์–ด์š”. ๋‹ค์‹œ ์˜ฌ๋ฆฌ๋ฉด ๋ณต๊ตฌ๋ผ์š”", + "track.audioUnavailableError": "์ด ํŠธ๋ž™์˜ ์˜ค๋””์˜ค๊ฐ€ ๋”๋Š” ์—†์–ด์š”. ๋‹ค์‹œ ์˜ฌ๋ฆฌ๋ฉด ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์–ด์š”.", + "job.restoreFailed": "ํŠธ๋ž™์„ ๋ณต๊ตฌํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”: {message}", + "job.startFailed": "์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”: {message}", + "upload.unsupportedFormat": "MP3, WAV, FLAC, MP4, M4A, OGG, Opus ํŒŒ์ผ๋งŒ ์“ธ ์ˆ˜ ์žˆ์–ด์š”.", + "upload.fileTooLarge": "ํŒŒ์ผ์ด ๋„ˆ๋ฌด ์ปค์š” ({size}). ์ตœ๋Œ€ {max}๊นŒ์ง€์˜ˆ์š”.", + "upload.skippedFiles.other": "{count}๊ฐœ ํŒŒ์ผ์„ ๊ฑด๋„ˆ๋›ฐ์—ˆ์–ด์š” ({reason}).", + "upload.reasonTooLarge": "๋„ˆ๋ฌด ํฌ๊ฑฐ๋‚˜ ์˜ค๋””์˜ค๊ฐ€ ์•„๋‹˜", + "upload.reasonNotAudio": "์˜ค๋””์˜ค๊ฐ€ ์•„๋‹˜", + + "player.readyToImport": "ํŠธ๋ž™์„ ๊ฐ€์ ธ์˜ฌ ์ค€๋น„๊ฐ€ ๋์–ด์š”", + "player.stillLoadingWaveform": "์•„์ง ํŒŒํ˜•์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘์ด์—์š”โ€ฆ", + "player.audioCouldNotLoad": "์ด ํŠธ๋ž™์˜ ์˜ค๋””์˜ค๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ–ˆ์–ด์š”.", + "player.playbackDisabledFull": "์ด ํŠธ๋ž™์€ ์žฌ์ƒํ•  ์ˆ˜ ์—†์–ด์š”. ๋‹ค๋ฅธ ํŠธ๋ž™์—๋Š” ์˜ํ–ฅ์ด ์—†์–ด์š”.", + "player.playbackDisabled": "์ด ํŠธ๋ž™์€ ์žฌ์ƒํ•  ์ˆ˜ ์—†์–ด์š”.", + + "metro.note.full": "{bpm} BPM์œผ๋กœ ํด๋ฆญ ์ค‘์ด์—์š”. ๋น„ํŠธ์˜ {conf}%๊ฐ€ ๋“œ๋Ÿผ๊ณผ ๋งž๊ณ , {accent}๋น„ํŠธ๋งˆ๋‹ค ๊ฐ•์„ธ๋ฅผ ์ค˜์š”. ํด๋ฆญ์ด ์ ˆ๋ฐ˜์ด๋‚˜ ๋‘ ๋ฐฐ๋กœ ๋А๊ปด์ง€๋ฉด /2 ๋˜๋Š” x2๋ฅผ ์“ฐ์„ธ์š”.", + "metro.note.noAccent": "{bpm} BPM์œผ๋กœ ํด๋ฆญ ์ค‘์ด์—์š”. ๋น„ํŠธ์˜ {conf}%๊ฐ€ ๋“œ๋Ÿผ๊ณผ ๋งž์•„์š”. ํด๋ฆญ์ด ์ ˆ๋ฐ˜์ด๋‚˜ ๋‘ ๋ฐฐ๋กœ ๋А๊ปด์ง€๋ฉด /2 ๋˜๋Š” x2๋ฅผ ์“ฐ์„ธ์š”.", + "metro.note.detectedSingleBar": "{bpm} BPM์œผ๋กœ ํด๋ฆญ ์ค‘์ด์—์š”. ๋น„ํŠธ์˜ {conf}%๊ฐ€ ๋“œ๋Ÿผ๊ณผ ๋งž๊ณ , ๊ฐ์ง€๋œ ์ฒซ๋ฐ•๋ถ€ํ„ฐ {beats}/4๋กœ ๊ฐ•์„ธ๋ฅผ ์ค˜์š”. ํด๋ฆญ์ด ์ ˆ๋ฐ˜์ด๋‚˜ ๋‘ ๋ฐฐ๋กœ ๋А๊ปด์ง€๋ฉด /2 ๋˜๋Š” x2๋ฅผ ์“ฐ์„ธ์š”.", + "metro.note.detectedMultiBar": "{bpm} BPM์œผ๋กœ ํด๋ฆญ ์ค‘์ด์—์š”. ๋น„ํŠธ์˜ {conf}%๊ฐ€ ๋“œ๋Ÿผ๊ณผ ๋งž๊ณ , ๊ฐ์ง€๋œ ๋ฐ•์ž ๊ตฌ๊ฐ„ {count}๊ฐœ์— ๊ฐ•์„ธ๋ฅผ ์ค˜์š”. ํด๋ฆญ์ด ์ ˆ๋ฐ˜์ด๋‚˜ ๋‘ ๋ฐฐ๋กœ ๋А๊ปด์ง€๋ฉด /2 ๋˜๋Š” x2๋ฅผ ์“ฐ์„ธ์š”.", + "metro.note.fallback": "์˜ˆ๋น„ ์ถ”์ ๊ธฐ๋กœ {bpm} BPM ํด๋ฆญ ์ค‘์ด์—์š”. ํด๋ฆญ์ด ์ ˆ๋ฐ˜์ด๋‚˜ ๋‘ ๋ฐฐ๋กœ ๋А๊ปด์ง€๋ฉด /2 ๋˜๋Š” x2๋ฅผ ์“ฐ์„ธ์š”.", + + "sections.saving": "์ €์žฅ ์ค‘", + "sections.saved": "์ €์žฅ๋จ", + "sections.deleteAria": "๊ตฌ๊ฐ„ ์‚ญ์ œ", + "sections.defaultName": "๊ตฌ๊ฐ„", + + "playlist.skip.unavailable.other": "์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” {count}๊ฐœ", + "playlist.skip.tooLong.other": "๋„ˆ๋ฌด ๊ธด {count}๊ฐœ", + "playlist.skip.overflow.other": "์ง€๊ธˆ ๋Œ€๊ธฐ์—ด์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” {count}๊ฐœ", + "playlist.skip.truncated": "์ฒ˜์Œ {cap}๊ฐœ๋ฅผ ๋„˜๋Š” ๋‚˜๋จธ์ง€", + "playlist.skippingPrefix": "{list}์„(๋ฅผ) ๊ฑด๋„ˆ๋›ฐ์–ด์š”.", + "playlist.listSep": ", ", + "playlist.importAriaLabel": "์žฌ์ƒ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ", + "playlist.couldNotRead": "๊ทธ ์žฌ์ƒ๋ชฉ๋ก์„ ์ฝ์ง€ ๋ชปํ–ˆ์–ด์š”: {message}", + "playlist.couldNotImport": "๊ทธ ์žฌ์ƒ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ์–ด์š”: {message}", + "playlist.queueFull": "๋Œ€๊ธฐ์—ด์ด ๊ฐ€๋“ ์ฐผ์–ด์š”. ๋น„์›Œ์ง€๊ธธ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜ ๋จผ์ € ํ•˜๋‚˜๋ฅผ ์ทจ์†Œํ•ด ์ฃผ์„ธ์š”.", + "playlist.nothingImportable": "๊ทธ ์žฌ์ƒ๋ชฉ๋ก์—์„œ ์ง€๊ธˆ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์—†์–ด์š”.", + "playlist.confirmTitle": "์ด ์žฌ์ƒ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ๊นŒ์š”?", + "playlist.confirmBody.other": "ํŠธ๋ž™ {count}๊ฐœ๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ™์€ ์ด๋ฆ„์˜ ํด๋”์— ๋Œ€๊ธฐ์—ด๋กœ ๋„ฃ์–ด์š”.{skipped}", + "playlist.skippedNote": " (์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” {count}๊ฐœ๋Š” ๊ฑด๋„ˆ๋›ฐ์–ด์š”.)", + "playlist.cancel": "์ทจ์†Œ", + "playlist.import.other": "ํŠธ๋ž™ {count}๊ฐœ ๊ฐ€์ ธ์˜ค๊ธฐ", + + "resetConfirm.title": "์•ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ• ๊นŒ์š”?", + "resetConfirm.ariaLabel": "์•ฑ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”", + "resetConfirm.body": "๋ชจ๋“  ํŠธ๋ž™, ์ž‘์—…, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•ญ๋ชฉ์„ ์˜๊ตฌํžˆ ์‚ญ์ œํ•ด์š”. ๊ณต์œ  ์„œ๋ฒ„๋ผ๋ฉด ์“ฐ๋Š” ์‚ฌ๋žŒ ๋ชจ๋‘์—๊ฒŒ ์˜ํ–ฅ์„ ์ค˜์š”. ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์–ด์š”.", + "resetConfirm.hint": "ํ™•์ธํ•˜๋ ค๋ฉด RESET์„ ์ž…๋ ฅํ•˜์„ธ์š”.", + "resetConfirm.typeToConfirmAria": "ํ™•์ธํ•˜๋ ค๋ฉด RESET์„ ์ž…๋ ฅํ•˜์„ธ์š”", + "resetConfirm.cancel": "์ทจ์†Œ", + "resetConfirm.go": "์•ฑ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”", + "resetConfirm.resetting": "์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ค‘โ€ฆ", + "resetConfirm.failed": "์ดˆ๊ธฐํ™”ํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”.", + "resetConfirm.failedConnection": "์ดˆ๊ธฐํ™”ํ•˜์ง€ ๋ชปํ–ˆ์–ด์š”. ์—ฐ๊ฒฐ์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.", +}; + +export const TRANSLATIONS = { en, pl, ja, ko, "zh-Hans": zhHans, de, fr, es, pt, "pt-PT": ptPT, id }; diff --git a/tests/js/i18n-detect.test.mjs b/tests/js/i18n-detect.test.mjs index a9154fa1..d6f13ee9 100644 --- a/tests/js/i18n-detect.test.mjs +++ b/tests/js/i18n-detect.test.mjs @@ -40,6 +40,7 @@ const LOCALES = { en: ["en", "en-US", "en-GB"], pl: ["pl", "pl-PL"], ja: ["ja", "ja-JP"], + ko: ["ko", "ko-KR"], "zh-Hans": ["zh", "zh-CN", "zh-Hans", "zh-SG"], de: ["de", "de-DE", "de-AT"], fr: ["fr", "fr-FR", "fr-CA"],