From c5937340b341f00faa17ab730b65814a84f74ae8 Mon Sep 17 00:00:00 2001 From: "Mr.WaterT" Date: Mon, 13 May 2024 05:29:49 +0900 Subject: [PATCH] Translate any other lang file to Korean --- src/locales/ko/battle.ts | 98 ++++++++++++++-------------- src/locales/ko/command-ui-handler.ts | 10 +-- src/locales/ko/fight-ui-handler.ts | 6 +- src/locales/ko/menu-ui-handler.ts | 38 +++++------ src/locales/ko/menu.ts | 74 ++++++++++----------- src/locales/ko/pokemon-stat.ts | 24 +++---- src/locales/ko/tutorial.ts | 62 +++++++++--------- 7 files changed, 156 insertions(+), 156 deletions(-) diff --git a/src/locales/ko/battle.ts b/src/locales/ko/battle.ts index 7c948e6f0..d2966d767 100644 --- a/src/locales/ko/battle.ts +++ b/src/locales/ko/battle.ts @@ -1,53 +1,53 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const battle: SimpleTranslationEntries = { - "bossAppeared": "{{bossName}} appeared.", - "trainerAppeared": "{{trainerName}}\nwould like to battle!", - "singleWildAppeared": "A wild {{pokemonName}} appeared!", - "multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!", - "playerComeBack": "Come back, {{pokemonName}}!", - "trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!", - "playerGo": "Go! {{pokemonName}}!", - "trainerGo": "{{trainerName}} sent out {{pokemonName}}!", - "switchQuestion": "Will you switch\n{{pokemonName}}?", - "trainerDefeated": `You defeated\n{{trainerName}}!`, - "pokemonCaught": "{{pokemonName}} was caught!", - "pokemon": "Pokémon", - "sendOutPokemon": "Go! {{pokemonName}}!", - "hitResultCriticalHit": "A critical hit!", - "hitResultSuperEffective": "It's super effective!", - "hitResultNotVeryEffective": "It's not very effective…", - "hitResultNoEffect": "It doesn't affect {{pokemonName}}!", - "hitResultOneHitKO": "It's a one-hit KO!", - "attackFailed": "But it failed!", - "attackHitsCount": `Hit {{count}} time(s)!`, - "expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!", - "levelUp": "{{pokemonName}} grew to\nLv. {{level}}!", - "learnMove": "{{pokemonName}} learned\n{{moveName}}!", - "learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.", - "learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.", - "learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?", - "learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?", - "learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.", - "learnMoveForgetQuestion": "Which move should be forgotten?", - "learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.", - "levelCapUp": "The level cap\nhas increased to {{levelCap}}!", - "moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.", - "moveNoPP": "There's no PP left for\nthis move!", - "moveDisabled": "{{moveName}} is disabled!", - "noPokeballForce": "An unseen force\nprevents using Poké Balls.", - "noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!", - "noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!", - "noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!", - "noEscapeForce": "An unseen force\nprevents escape.", - "noEscapeTrainer": "You can't run\nfrom a trainer battle!", - "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!", - "runAwaySuccess": "You got away safely!", - "runAwayCannotEscape": 'You can\'t escape!', - "escapeVerbSwitch": "switching", - "escapeVerbFlee": "fleeing", - "notDisabled": "{{pokemonName}}'s {{moveName}} is disabled\nno more!", - "skipItemQuestion": "Are you sure you want to skip taking an item?", - "eggHatching": "Oh?", - "ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?" + "bossAppeared": "보스 {{bossName}}(이)가 나타났다.", + "trainerAppeared": "{{trainerName}}(이)가\n승부를 걸어왔다!", + "singleWildAppeared": "앗! 야생 {{pokemonName}}(이)가\n튀어나왔다!", + "multiWildAppeared": "야생 {{pokemonName1}}(과)와\n{{pokemonName2}}(이)가 튀어나왔다!", + "playerComeBack": "돌아와, {{pokemonName}}!", + "trainerComeBack": "{{trainerName}}(는)은 {{pokemonName}}를(을) 넣어버렸다!", + "playerGo": "가랏! {{pokemonName}}!", + "trainerGo": "{{trainerName}}(는)은 {{pokemonName}}를(을) 내보냈다!", + "switchQuestion": "{{pokemonName}}를(을)\n교체하시겠습니까?", + "trainerDefeated": `{{trainerName}}과(와)의\n승부에서 이겼다!`, + "pokemonCaught": "신난다-!\n{{pokemonName}}을 붙잡았다!", + "pokemon": "포켓몬", + "sendOutPokemon": "가랏! {{pokemonName}}!", + "hitResultCriticalHit": "급소에 맞았다!", + "hitResultSuperEffective": "효과가 굉장했다!", + "hitResultNotVeryEffective": "효과가 별로인 듯하다…", + "hitResultNoEffect": "{{pokemonName}}에게는\n효과가 없는 것 같다…", + "hitResultOneHitKO": "일격필살!", + "attackFailed": "하지만 실패했다!", + "attackHitsCount": `{{count}}번 맞았다!`, + "expGain": "{{pokemonName}}(는)은\n{{exp}} 경험치를 얻었다!", + "levelUp": "{{pokemonName}}(는)은\n레벨 {{level}}(으)로 올랐다!", + "learnMove": "{{pokemonName}}(는)은 새로\n{{moveName}}를(을) 배웠다!", + "learnMovePrompt": "{{pokemonName}}(는)은 새로\n{{moveName}}를(을) 배우고 싶다…", + "learnMoveLimitReached": "그러나 {{pokemonName}}(는)은 기술을 4개\n알고 있으므로 더 이상 배울 수 없다!", + "learnMoveReplaceQuestion": "{{moveName}}대신 다른 기술을 잊게 하겠습니까?", + "learnMoveStopTeaching": "그럼… {{moveName}}를(을)\n배우는 것을 포기하겠습니까?", + "learnMoveNotLearned": "{{pokemonName}}(는)은\n결국 배우지 않았다!", + "learnMoveForgetQuestion": "어느 기술을 잊게 하고싶은가?", + "learnMoveForgetSuccess": "{{pokemonName}}(는)은 {{moveName}}를(을) 깨끗이 잊었다!", + "levelCapUp": "레벨의 최대치가\n{{levelCap}}까지 상승했다!", + "moveNotImplemented": "{{moveName}}(는)은 아직 구현되지 않아 사용할 수 없다…", + "moveNoPP": "기술의 남은 포인트가 없다!", + "moveDisabled": "{{moveName}}를(을) 쓸 수 없다!", + "noPokeballForce": "본 적 없는 힘이\n볼을 사용하지 못하게 한다.", + "noPokeballTrainer": "다른 트레이너의 포켓몬은 잡을 수 없다!", + "noPokeballMulti": "안돼! 2마리 있어서\n목표를 정할 수가 없어…!", + "noPokeballStrong": "너무 강해서 잡을 수가 없다!\n먼저 약화시켜야 한다!", + "noEscapeForce": "본 적 없는 힘이\n도망칠 수 없게 한다.", + "noEscapeTrainer": "안돼! 승부 도중에\n상대에게 등을 보일 순 없어!", + "noEscapePokemon": "{{pokemonName}}의 {{moveName}}때문에\n{{escapeVerb}} 수 없다!", + "runAwaySuccess": "무사히 도망쳤다!", + "runAwayCannotEscape": "도망칠 수 없었다!", + "escapeVerbSwitch": "교체할", + "escapeVerbFlee": "도망칠", + "notDisabled": "{{pokemonName}}의\n{{moveName}} 사슬묶기가 풀렸다!", + "skipItemQuestion": "아이템을 받지 않고 넘어가시겠습니까?", + "eggHatching": "어라?", + "ivScannerUseQuestion": "{{pokemonName}}에게 IV Scanner를 사용하시겠습니까?" } as const; \ No newline at end of file diff --git a/src/locales/ko/command-ui-handler.ts b/src/locales/ko/command-ui-handler.ts index 889c1378b..0b8601f32 100644 --- a/src/locales/ko/command-ui-handler.ts +++ b/src/locales/ko/command-ui-handler.ts @@ -1,9 +1,9 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const commandUiHandler: SimpleTranslationEntries = { - "fight": "Fight", - "ball": "Ball", - "pokemon": "Pokémon", - "run": "Run", - "actionMessage": "What will\n{{pokemonName}} do?", + "fight": "싸우다", + "ball": "볼", + "pokemon": "포켓몬", + "run": "도망치다", + "actionMessage": "{{pokemonName}}(는)은 무엇을 할까?", } as const; \ No newline at end of file diff --git a/src/locales/ko/fight-ui-handler.ts b/src/locales/ko/fight-ui-handler.ts index 7546e9af6..fe3e4561b 100644 --- a/src/locales/ko/fight-ui-handler.ts +++ b/src/locales/ko/fight-ui-handler.ts @@ -1,7 +1,7 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const fightUiHandler: SimpleTranslationEntries = { - "pp": "PP", - "power": "Power", - "accuracy": "Accuracy", + "pp": "PP", + "power": "위력", + "accuracy": "명중률", } as const; \ No newline at end of file diff --git a/src/locales/ko/menu-ui-handler.ts b/src/locales/ko/menu-ui-handler.ts index 5fde37ae3..7a9e73ba6 100644 --- a/src/locales/ko/menu-ui-handler.ts +++ b/src/locales/ko/menu-ui-handler.ts @@ -1,23 +1,23 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const menuUiHandler: SimpleTranslationEntries = { - "GAME_SETTINGS": 'Game Settings', - "ACHIEVEMENTS": "Achievements", - "STATS": "Stats", - "VOUCHERS": "Vouchers", - "EGG_LIST": "Egg List", - "EGG_GACHA": "Egg Gacha", - "MANAGE_DATA": "Manage Data", - "COMMUNITY": "Community", - "RETURN_TO_TITLE": "Return To Title", - "LOG_OUT": "Log Out", - "slot": "Slot {{slotNumber}}", - "importSession": "Import Session", - "importSlotSelect": "Select a slot to import to.", - "exportSession": "Export Session", - "exportSlotSelect": "Select a slot to export from.", - "importData": "Import Data", - "exportData": "Export Data", - "cancel": "Cancel", - "losingProgressionWarning": "You will lose any progress since the beginning of the battle. Proceed?" + "GAME_SETTINGS": "게임 설정", + "ACHIEVEMENTS": "업적", + "STATS": "통계", + "VOUCHERS": "바우처", + "EGG_LIST": "알 목록", + "EGG_GACHA": "알 뽑기", + "MANAGE_DATA": "데이터 관리", + "COMMUNITY": "커뮤니티", + "RETURN_TO_TITLE": "타이틀 화면으로", + "LOG_OUT": "로그아웃", + "slot": "슬롯 {{slotNumber}}", + "importSession": "세션 불러오기", + "importSlotSelect": "불러올 슬롯을 골라주세요.", + "exportSession": "세션 내보내기", + "exportSlotSelect": "내보낼 슬롯을 골라주세요.", + "importData": "데이터 불러오기", + "exportData": "데이터 내보내기", + "cancel": "취소", + "losingProgressionWarning": "전투 시작으로부터의 진행 상황을 잃게 됩니다. 계속하시겠습니까?" } as const; \ No newline at end of file diff --git a/src/locales/ko/menu.ts b/src/locales/ko/menu.ts index f857dd431..f8b9e0ee0 100644 --- a/src/locales/ko/menu.ts +++ b/src/locales/ko/menu.ts @@ -6,41 +6,41 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; * account interactions, descriptive text, etc. */ export const menu: SimpleTranslationEntries = { - "cancel": "취소", - "continue": "Continue", - "dailyRun": "Daily Run (Beta)", - "loadGame": "Load Game", - "newGame": "New Game", - "selectGameMode": "Select a game mode.", - "logInOrCreateAccount": "Log in or create an account to start. No email required!", - "username": "Username", - "password": "Password", - "login": "Login", - "register": "Register", - "emptyUsername": "Username must not be empty", - "invalidLoginUsername": "The provided username is invalid", - "invalidRegisterUsername": "Username must only contain letters, numbers, or underscores", - "invalidLoginPassword": "The provided password is invalid", - "invalidRegisterPassword": "Password must be 6 characters or longer", - "usernameAlreadyUsed": "The provided username is already in use", - "accountNonExistent": "The provided user does not exist", - "unmatchingPassword": "The provided password does not match", - "passwordNotMatchingConfirmPassword": "Password must match confirm password", - "confirmPassword": "Confirm Password", - "registrationAgeWarning": "By registering, you confirm you are of 13 years of age or older.", - "backToLogin": "Back to Login", - "failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this continues, please contact the administrator.", - "sessionSuccess": "Session loaded successfully.", - "failedToLoadSession": "Your session data could not be loaded.\nIt may be corrupted.", - "boyOrGirl": "Are you a boy or a girl?", - "boy": "Boy", - "girl": "Girl", - "dailyRankings": "Daily Rankings", - "weeklyRankings": "Weekly Rankings", - "noRankings": "No Rankings", - "loading": "Loading…", - "playersOnline": "Players Online", - "empty":"Empty", - "yes":"예", - "no":"아니오", + "cancel": "취소", + "continue": "계속하기", + "dailyRun": "데일리 런 (베타)", + "loadGame": "불러오기", + "newGame": "새 게임", + "selectGameMode": "게임 모드를 선택해주세요.", + "logInOrCreateAccount": "로그인 또는 등록을 해 주세요. 개인정보를 요구하지 않습니다!", + "username": "이름", + "password": "비밀번호", + "login": "로그인", + "register": "등록", + "emptyUsername": "이름은 비워둘 수 없습니다", + "invalidLoginUsername": "사용할 수 없는 이름입니다", + "invalidRegisterUsername": "이름은 알파벳, 숫자, 언더바(_)만 사용할 수 있습니다", + "invalidLoginPassword": "사용할 수 없는 비밀번호입니다", + "invalidRegisterPassword": "비밀번호는 여섯글자 이상이어야 합니다", + "usernameAlreadyUsed": "이미 사용중인 이름입니다", + "accountNonExistent": "등록되지 않은 이름입니다", + "unmatchingPassword": "비밀번호가 틀립니다", + "passwordNotMatchingConfirmPassword": "비밀번호가 일치하지 않습니다", + "confirmPassword": "비밀번호 재입력", + "registrationAgeWarning": "13세 이상입니다.", + "backToLogin": "로그인 화면으로", + "failedToLoadSaveData": "데이터를 불러올 수 없었습니다. 페이지를 새로고침해주세요.\n문제가 계속 발생한다면, 관리자에게 연락해주세요.", + "sessionSuccess": "세션 불러오기 성공.", + "failedToLoadSession": "세션을 불러올 수 없었습니다.\n파일이 손상되었을 수 있습니다.", + "boyOrGirl": "너는 남자니?\n아니면 여자니?", + "boy": "남자", + "girl": "여자", + "dailyRankings": "일간 랭킹", + "weeklyRankings": "주간 랭킹", + "noRankings": "랭킹 정보 없음", + "loading": "로딩 중…", + "playersOnline": "플레이어 온라인", + "empty":"빈 슬롯", + "yes":"예", + "no":"아니오", } as const; \ No newline at end of file diff --git a/src/locales/ko/pokemon-stat.ts b/src/locales/ko/pokemon-stat.ts index 908089bac..76f2a1f47 100644 --- a/src/locales/ko/pokemon-stat.ts +++ b/src/locales/ko/pokemon-stat.ts @@ -1,16 +1,16 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const pokemonStat: SimpleTranslationEntries = { - "HP": "HP", - "HPshortened": "HP", - "ATK": "공격", - "ATKshortened": "공격", - "DEF": "방어", - "DEFshortened": "방어", - "SPATK": "특수공격", - "SPATKshortened": "특공", - "SPDEF": "특수방어", - "SPDEFshortened": "특방", - "SPD": "스피드", - "SPDshortened": "스피드" + "HP": "HP", + "HPshortened": "HP", + "ATK": "공격", + "ATKshortened": "공격", + "DEF": "방어", + "DEFshortened": "방어", + "SPATK": "특수공격", + "SPATKshortened": "특공", + "SPDEF": "특수방어", + "SPDEFshortened": "특방", + "SPD": "스피드", + "SPDshortened": "스피드" } as const; \ No newline at end of file diff --git a/src/locales/ko/tutorial.ts b/src/locales/ko/tutorial.ts index 1b710642d..57f03c4a4 100644 --- a/src/locales/ko/tutorial.ts +++ b/src/locales/ko/tutorial.ts @@ -1,42 +1,42 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const tutorial: SimpleTranslationEntries = { - "intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements. - $This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used. - $The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community. - $If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`, + intro: `포켓로그에 오신 것을 환영합니다! 로그라이트 요소가 가미된 전투 중심의 포켓몬 팬게임입니다. + $이 게임은 수익을 창출하지 않으며 Pokémon 및 사용된 저작권 자산에 대한 소유권을 주장하지 않습니다. + $게임은 아직 작업중이지만 완전히 플레이할 수 있습니다.\n버그 신고는 디스코드 커뮤니티를 이용해 주시기 바랍니다. + $게임이 느릴 경우 브라우저 설정에서 '하드웨어 가속'이 켜져 있는지 확인해주세요.`, - "accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`, + accessMenu: `메뉴에 액세스하려면 입력을 기다리는 동안 M 또는 Esc를 누릅니다.\n메뉴에는 설정과 다양한 기능이 포함되어 있습니다.`, - "menu": `From this menu you can access the settings. - $From the settings you can change game speed, window style, and other options. - $There are also various other features here, so be sure to check them all!`, + menu: `이 메뉴에서 설정에 액세스할 수 있습니다. + $설정에서 게임 속도, 윈도우 스타일 및 기타 옵션을 변경할 수 있습니다. + $여기에는 다양한 다른 기능도 있으니 꼭 확인해보세요!`, - "starterSelect": `From this screen, you can select your starters.\nThese are your initial party members. - $Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10. - $You can also select gender, ability, and form depending on\nthe variants you've caught or hatched. - $The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`, + starterSelect: `이 화면에서 스타팅을 선택할 수 있습니다.\n이들은 당신의 첫 번째 파티 멤버들입니다. + $포켓몬에 따라 코스트가 정해져 있어 최대 6마리까지의 파티로\n시작할 수 있지만 코스트의 총합이 10을 넘겨선 안 됩니다. + $계속 잡거나 부화시켜서\n선택할 수 있는 성별, 특성, 폼 등의 폭을 넓힐 수 있습니다. + $개체값도 점점 누적되어 높아지므로,\n같은 포켓몬을 많이 잡아보세요!`, - "pokerus": `A daily random 3 selectable starters have a purple border. - $If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`, + pokerus: `매일 랜덤 스타팅 세 종류에 보라색 테두리가 쳐집니다. + $등록된 스타팅 중에 있다면,\n파티에 추가해서 능력치 화면을 확인해봅시다!`, - "statChange": `Stat changes persist across battles as long as your Pokémon aren't recalled. - $Your Pokémon are recalled before a trainer battle and before entering a new biome. - $You can also view the stat changes for the Pokémon on the field by holding C or Shift.`, + statChange: `포켓몬은 교체하지 않으면 다음 전투에서도 능력치 변화가 유지됩니다. + $대신 트레이너 배틀이나 새로운 바이옴 입장 직전에 자동으로 들여보내지게 됩니다. + $C 또는 Shift를 꾹 눌러 현재 포켓몬의 능력치 변화를 볼 수도 있습니다.`, - "selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one. - $These range from consumables, to Pokémon held items, to passive permanent items. - $Most non-consumable item effects will stack in various ways. - $Some items will only show up if they can be used, such as evolution items. - $You can also transfer held items between Pokémon using the transfer option. - $The transfer option will appear in the bottom right once you have obtained a held item. - $You may purchase consumable items with money, and a larger variety will be available the further you get. - $Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`, + selectItem: `전투가 끝날때마다 무작위 아이템 3개 중 하나를 선택하여 얻습니다. + $종류는 소모품, 포켓몬의 지닌 도구, 영구적 패시브 아이템에 이르기까지 다양합니다. + $대부분의 소모되지 않는 도구는 효과가 누적됩니다. + $진화용과 같은 일부분의 아이템은 사용할 수 있는 경우에만 등장합니다. + $지닌 도구 건내주기 기능을 사용해 포켓몬끼리 도구를 옮겨 지닐 수도 있습니다. + $지닌 도구가 있다면 아이템 선택 화면 오른쪽 하단에 건내주기 기능이 표시됩니다. + $돈으로 소모품을 구입할 수도 있으며, 웨이브 진행에 따라 구입 가능한 종류가 늘어납니다. + $아이템을 선택하면 다음 웨이브로 넘어가므로, 소모품 구입을 먼저 해 주세요.`, - "eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs. - $Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch. - $Hatched Pokémon also won't be added to your party, they will\nbe added to your starters. - $Pokémon hatched from eggs generally have better IVs than\nwild Pokémon. - $Some Pokémon can only even be obtained from eggs. - $There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`, + eggGacha: `이 화면에서 포켓몬 알 바우처를\n사용해 뽑기를 할 수 있습니다. + $알은 전투를 반복하다 보면 부화합니다.\n희귀할 수록 더 오래 걸립니다. + $부화시킨 포켓몬은 파티에 추가되지 않고\n스타팅에 등록될 것입니다. + $알에서 부화한 포켓몬은 일반적으로\n야생에서 잡은 포켓몬보다 더 높은 개체값을 지닙니다. + $일부 포켓몬은 알에서만 얻을 수 있습니다. + $각 뽑기 기계가 각각 다른 보너스를 가지고 있으므로,\n원하는 쪽을 사용해보세요!`, } as const; \ No newline at end of file