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";