diff --git a/src/components/LocaleSelectorModal.tsx b/src/components/LocaleSelectorModal.tsx
index 63c05da..7ca5e84 100644
--- a/src/components/LocaleSelectorModal.tsx
+++ b/src/components/LocaleSelectorModal.tsx
@@ -25,6 +25,7 @@ export default function LocaleSelectorModal() {
+
{/* Add language here with the name of the language in his native name */}
diff --git a/src/locales/LocaleTranslations.tsx b/src/locales/LocaleTranslations.tsx
index 609a33d..0551e15 100644
--- a/src/locales/LocaleTranslations.tsx
+++ b/src/locales/LocaleTranslations.tsx
@@ -8,4 +8,5 @@ export default {
tr: require("./tr.json") as Record,
ru: require("./ru.json") as Record,
ua: require("./ua.json") as Record,
+ ko: require("./ko.json") as Record,
};
diff --git a/src/locales/ko.json b/src/locales/ko.json
new file mode 100644
index 0000000..34ceeb9
--- /dev/null
+++ b/src/locales/ko.json
@@ -0,0 +1,119 @@
+{
+ "topbar.discord": "Discord에서 저희와 참여하세요",
+ "topbar.beer": "저희에게 맥주를 사주세요 ❤️",
+ "presetButtons.applyPresetTooltip": "사전 설정이 RyzenAdj의 탭에 불러와서 적용됩니다.",
+ "presetButtons.loadPresetTooltip": "사전 설정은 RyzenAdj의 탭에 불러올 수 있지만 적용되지 않습니다.",
+ "presetAutoApply.whenSessionResume": "세션이 재개되었을 때",
+ "presetAutoApply.whenRCStart": "Ryzen Controller를 시작할 때",
+ "presetAutoApply.whenLaptopPluggedIn": "랩탑이 플러그에 연결되었을 때",
+ "presetAutoApply.whenLaptopPluggedOut": "랩탑이 플러그에 연결되지 않았을 때",
+ "presetButtons.confirmDeletion": "\"{preset}\"을(를) 삭제하겠습니까?",
+ "presetButtons.loadedPreset": "사전 설정 {preset}을(를) 불러왔습니다.",
+ "presetButtons.uploadPresetConfirmation": "사전 설정 {preset}을(를) 업로드하겠습니까?",
+ "presetListEmpty.youDontHaveAny": "아직 아무런 사전 설정이 없습니다",
+ "presetListEmpty.sentencePart1": "RyzenAdj 설정 탭 (CPU, GPU, ...)에서 사용 가능한 설정을",
+ "presetListEmpty.createPresetBtn": "사전 설정 생성",
+ "presetListEmpty.sentencePart2": "버튼을 클릭하여 생성할 수 있습니다.",
+ "PresetOnline.listNotLoadedYet": "목록을 불러오지 않았거나, 아직 온라인 사전 설정이 없습니다.",
+ "PresetOnline.loadPresetListBtn": "사전 설정 목록 불러오기",
+ "PresetOnline.sentencePart1": "자신의 사전 설정을",
+ "PresetOnline.uploadBtn": "업로드",
+ "PresetOnline.sentencePart2": "버튼을 클릭하여 공유할 수 있습니다.",
+ "sceneSelector.cpuTitle": "CPU",
+ "sceneSelector.gpuTitle": "GPU",
+ "ryzenAdj.maxGfxclk.label": "최대 Vega iGPU 클럭 주파수 (Mhz)",
+ "ryzenAdj.stapmTime.desc": "표면 온도 인식 전원 관리 (STAPM). 이것은 사용할 부스트 간격을 정의합니다.",
+ "ryzenAdj.slowLimit.desc": "부스트 단계가 꺼졌을 때 CPU가 사용할 수 있는 전력입니다.",
+ "appContext.minimizeOnLaunch.name": "최소화 상태로 시작",
+ "appContext.ryzenAdjPath.name": "RyzenAdj 경로",
+ "sceneSelector.settingsTitle": "설정",
+ "sceneSelector.powerTitle": "전력",
+ "ryzenAdj.slowTime.desc": "이것은 소켓에 전달될 일정한 전력을 공급하기 위해 부스트 간격에서 사용될 간격을 정의합니다.",
+ "ryzenAdj.slowTime.label": "패키지 전력 추적 (PPT) - 느린 간격",
+ "ryzenAdj.minFclkFrequency.desc": "인피니티 패브릭은 프로세서 다이 (GPU/CPU)를 연결하는 버스 연결에 대한 AMD의 마케팅 용어입니다. 이것은 버스의 최소 클럭 제한을 정의합니다.",
+ "ryzenAdj.maxFclkFrequency.desc": "인피니티 패브릭은 프로세서 다이 (GPU/CPU)를 연결하는 버스 연결에 대한 AMD의 마케팅 용어입니다. 이것은 버스의 최대 클럭 제한을 정의합니다.",
+ "ryzenAdj.stapmLimit.desc": "표면 온도 인식 전원 관리 (STAPM). 이것은 장치 부스트 간격을 관리하는 데 사용되는 소켓 전원 패키지 제한을 정의합니다.",
+ "ryzenAdj.stapmTime.label": "CPU 부스트 간격",
+ "ryzenAdj.vrmmaxCurrent.desc": "마더보드가 CPU로 전달할 수 있는 전류의 한계입니다.",
+ "ryzenAdj.vrmmaxCurrent.label": "VRM 전류 (A)",
+ "appContext.ryzenAdjPath.shortDesc": "RyzenAdj 바이너리의 전체 경로입니다.",
+ "ryzenAdj.maxFclkFrequency.label": "최대 인피니티 패브릭 주파수 (Mhz)",
+ "ryzenAdj.stapmLimit.label": "CPU TDP (W)",
+ "appContext.autoStartOnBoot.shortDesc": "컴퓨터를 시작할 때 Ryzen Controller를 실행합니다.",
+ "sceneSelector.presetsTitle": "사전 설정",
+ "ryzenAdj.psi0Current.label": "PSI0 전류 제한 (mA)",
+ "ryzenAdj.maxGfxclk.desc": "통합 (Vega) GPU가 실행될 수 있는 최대 클럭 속도입니다.",
+ "ryzenAdj.minFclkFrequency.label": "최소 인피니티 패브릭 주파수 (Mhz)",
+ "ryzenAdj.slowLimit.label": "CPU 최소 TDP (W)",
+ "appContext.minimizeOnLaunch.shortDesc": "Ryzen Controller를 최소화 상태로 시작합니다.",
+ "ryzenAdj.minGfxclk.label": "최소 Vega iGPU 클럭 주파수 (Mhz)",
+ "ryzenAdj.fastLimit.desc": "부스트 단계가 켜졌을 때 CPU가 사용할 수 있는 전력입니다.",
+ "appContext.minimizeToTray.name": "최소화 상태에서 트레이 상태로 전환",
+ "ryzenAdj.psi0Current.desc": "마더보드가 PSI0로 전달할 수 있는 전류의 한계입니다.",
+ "ryzenAdj.minGfxclk.desc": "통합 (Vega) GPU가 실행될 수 있는 최소 클럭 속도입니다.",
+ "ryzenAdj.fastLimit.label": "CPU 부스트 TDP (W)",
+ "appContext.autoStartOnBoot.name": "부트 시 자동 시작",
+ "appContext.minimizeToTray.shortDesc": "Ryzen Controller를 작업 표시줄 대신 트레이로 최소화합니다.",
+ "appContext.reApplyPeriodically.desc": "일부 랩톱에서는 BIOS가 RyzenAdj가 시도하려는 작업을 다시 설정하기도 합니다. 이를 통해 정기적으로 설정을 적용할 수 있습니다.",
+ "sceneSelector.releasesTitle": "릴리스",
+ "ryzenAdj.tctlTemp.desc": "부스트 단계가 꺼지기 전에 CPU가 도달할 수 있는 온도입니다.",
+ "appContext.reApplyPeriodically.name": "정기적으로 다시 적용",
+ "ryzenAdj.tctlTemp.label": "온도 제한 (°C)",
+ "appContext.reApplyPeriodically.shortDesc": "RyzenAdj 설정을 정기적으로 다시 적용할 수 있습니다 (매 X초마다).",
+ "PresetsScene.onlinePresetTitle": "온라인 사전 설정",
+ "PresetsScene.localPresetTitle": "로컬 사전 설정",
+ "PresetsScene.autoApplyTitle": "사전 설정 자동 적용",
+ "SettingsScene.settingsTitle": "설정",
+ "settingForm.currentPath": "현재 경로:",
+ "sysInfoCards.biosVersion": "BIOS 버전:",
+ "sysInfoCards.gpuPerfDesc": "{ram}Mb (동적 VRAM: {dyn}).",
+ "SettingsScene.sysInfoTitle": "시스템 정보",
+ "sysInfoCards.basicInfoTitle": "기본 정보",
+ "settingForm.browseBtn": "탐색",
+ "SettingsScene.systemHashDesc": "이것은 다운로드된 사전 설정 호환성을 보장하기 위해 사용됩니다.",
+ "sysInfoCards.CPUInfoTitle": "CPU 정보",
+ "sysInfoCards.cpuPerfDesc": "{physicalCores}코어, {cores}스레드에서 {speedmax}Ghz.",
+ "sysInfoCards.GPUInfoTitle": "GPU #{index} 정보",
+ "SettingsScene.loadingSysHash": "불러오는 중...",
+ "ryzenAdjBottomBar.prompt": "새 사전 설정 이름",
+ "ryzenAdjBottomBar.mustProvideName": "이름을 입력하세요",
+ "ryzenAdjBottomBar.presetCreated": "사전 설정 \"{newPresetName}\"이(가) 생성되었습니다",
+ "ryzenAdjBottomBar.presetWithSameNameExist": "사전 설정 이름 \"{newPresetName}\"이(가) 이미 존재합니다",
+ "presetButtons.apply": "적용",
+ "presetButtons.delete": "삭제",
+ "presetButtons.load": "불러오기",
+ "presetAutoApply.nonePreset": "없음",
+ "presetButtons.upload": "업로드",
+ "ryzenAdj.applySuccess": "RyzenAdj가 성공적으로 실행되었습니다.",
+ "presetButtons.uploadSucceed": "사전 설정 {preset}이(가) 업로드되었습니다",
+ "presetOnlineBtn.downloadTooltip": "로컬 사전 설정에 사전 설정이 저장됩니다.",
+ "presetOnlineBtn.loadTooltip": "사전 설정을 저장하지 않으면, RyzenAdj의 탭에 불러올 수 있지만 적용되지 않습니다..",
+ "presetOnlineBtn.download": "다운로드",
+ "presetOnlineBtn.load": "불러오기",
+ "presetButtons.presetWithSameNameAlreadyExistOnline": "사전 설정 이름이 온라인에 이미 존재합니다",
+ "presetOnlineBtn.presetDownloaded": "사전 설정 \"{presetName}\"을(를) 불러왔습니다",
+ "presetOnlineBtn.presetSameNameExist": "이미 같은 이름의 사전 설정을 가지고 있습니다",
+ "PresetsScene.cantVoteTwiceSamePreset": "같은 사전 설정에 2번 투표할 수 없습니다",
+ "PresetsScene.confirmVote": "이 사전 설정에 {투표}하겠습니까?",
+ "PresetsScene.updatingVotes": "투표를 갱신하는 중...",
+ "notification.settingsSaveSuccess": "설정이 성공적으로 저장되었습니다",
+ "ryzenAdjBottomBar.apply": "적용",
+ "ryzenAdjBottomBar.createPreset": "사전 설정 생성",
+ "ryzenAdjBottomBar.reset": "다시 설정",
+ "app.localeSelectorModalTitle": "언어 변경",
+ "appContext.newReleaseAvailable": "새로운 릴리스를 사용할 수 있으니, 릴리스 탭을 확인하세요.",
+ "PresetOnline.errorLoadingPresets": "사전 설정을 불러올 수 없습니다.",
+ "PresetOnline.retryLoadingPresetListBtn": "다시 시도",
+ "PresetOnline.pleaseCheckInternetConnection": "인터넷 연결을 확인하세요.",
+ "presetButtons.uploadError": "사전 설정을 업로드하는 도중에 오류가 발생했습니다",
+ "presetLine.compatibility": "호환성:",
+ "appContext.invalidPreset": "유효하지 않은 사전 설정을 적용할 수 없습니다",
+ "presetOnlineBtn.presetInvalidOrObsolete": "사전 설정 \"{presetName}\"은(는) 유효하지 않습니다",
+ "PresetsScene.errorWhileSendingVote": "투표를 보내는 도중에 오류가 발생했습니다",
+ "sysInfoCards.unableToGetSysInfo": "얻지 못한 시스템 정보:",
+ "settingForm.windowsBinFileType": "Windows 바이너리",
+ "appContext.ryzenAdjPath.wrongPath": "ryzenadj.exe의 경로가 잘못되었으니, 설정 탭에서 수정하세요.",
+ "ryzenAdjBottomBar.invalidPreset": "유효하지 않은 사전 설정을 적용할 수 없습니다",
+ "presetOnlineBtn.presetLoaded": "사전 설정 \"{presetName}\"을(를) 불러왔습니다",
+ "presetButtons.mustWaitForSignatureGen": "랩탑 서명이 생성될 때까지 기다리세요"
+}
diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts
index 567310e..fe8be1e 100644
--- a/src/react-app-env.d.ts
+++ b/src/react-app-env.d.ts
@@ -1,7 +1,7 @@
///
/* Add language here */
-type AvailableLanguages = "en" | "fr" | "ch" | "de" | "tr";
+type AvailableLanguages = "en" | "fr" | "ch" | "de" | "tr" | "ko";
type RyzenControllerTabForRyzenAdj = "power" | "cpu" | "gpu";