Add korean locale without translation
parent
10cf1cd94f
commit
f01959274b
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +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}}?"
|
||||||
|
} as const;
|
|
@ -0,0 +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?",
|
||||||
|
} as const;
|
|
@ -0,0 +1,28 @@
|
||||||
|
import { ability } from "./ability";
|
||||||
|
import { battle } from "./battle";
|
||||||
|
import { commandUiHandler } from "./command-ui-handler";
|
||||||
|
import { fightUiHandler } from "./fight-ui-handler";
|
||||||
|
import { menu } from "./menu";
|
||||||
|
import { menuUiHandler } from "./menu-ui-handler";
|
||||||
|
import { move } from "./move";
|
||||||
|
import { pokeball } from "./pokeball";
|
||||||
|
import { pokemon } from "./pokemon";
|
||||||
|
import { pokemonStat } from "./pokemon-stat";
|
||||||
|
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||||
|
import { tutorial } from "./tutorial";
|
||||||
|
|
||||||
|
|
||||||
|
export const koConfig = {
|
||||||
|
ability: ability,
|
||||||
|
battle: battle,
|
||||||
|
commandUiHandler: commandUiHandler,
|
||||||
|
fightUiHandler: fightUiHandler,
|
||||||
|
menuUiHandler: menuUiHandler,
|
||||||
|
menu: menu,
|
||||||
|
move: move,
|
||||||
|
pokeball: pokeball,
|
||||||
|
pokemonStat: pokemonStat,
|
||||||
|
pokemon: pokemon,
|
||||||
|
starterSelectUiHandler: starterSelectUiHandler,
|
||||||
|
tutorial: tutorial
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const fightUiHandler: SimpleTranslationEntries = {
|
||||||
|
"pp": "PP",
|
||||||
|
"power": "POWER",
|
||||||
|
} as const;
|
|
@ -0,0 +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?"
|
||||||
|
} as const;
|
|
@ -0,0 +1,46 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||||
|
* contents or directly related to Pokemon data. This includes menu navigation, settings,
|
||||||
|
* account interactions, descriptive text, etc.
|
||||||
|
*/
|
||||||
|
export const menu: SimpleTranslationEntries = {
|
||||||
|
"cancel": "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":"Yes",
|
||||||
|
"no":"No",
|
||||||
|
} as const;
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,10 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const pokeball: SimpleTranslationEntries = {
|
||||||
|
"pokeBall": "Poké Ball",
|
||||||
|
"greatBall": "Great Ball",
|
||||||
|
"ultraBall": "Ultra Ball",
|
||||||
|
"rogueBall": "Rogue Ball",
|
||||||
|
"masterBall": "Master Ball",
|
||||||
|
"luxuryBall": "Luxury Ball",
|
||||||
|
} as const;
|
|
@ -0,0 +1,16 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const pokemonStat: SimpleTranslationEntries = {
|
||||||
|
"HP": "Max. HP",
|
||||||
|
"HPshortened": "MaxHP",
|
||||||
|
"ATK": "Attack",
|
||||||
|
"ATKshortened": "Atk",
|
||||||
|
"DEF": "Defense",
|
||||||
|
"DEFshortened": "Def",
|
||||||
|
"SPATK": "Sp. Atk",
|
||||||
|
"SPATKshortened": "SpAtk",
|
||||||
|
"SPDEF": "Sp. Def",
|
||||||
|
"SPDEFshortened": "SpDef",
|
||||||
|
"SPD": "Speed",
|
||||||
|
"SPDshortened": "Spd"
|
||||||
|
} as const;
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,32 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||||
|
* contents or directly related to Pokemon data. This includes menu navigation, settings,
|
||||||
|
* account interactions, descriptive text, etc.
|
||||||
|
*/
|
||||||
|
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||||
|
"confirmStartTeam":'Begin with these Pokémon?',
|
||||||
|
"growthRate": "Growth Rate:",
|
||||||
|
"ability": "Ability:",
|
||||||
|
"passive": "Passive:",
|
||||||
|
"nature": "Nature:",
|
||||||
|
"eggMoves": 'Egg Moves',
|
||||||
|
"start": "Start",
|
||||||
|
"addToParty": "Add to Party",
|
||||||
|
"toggleIVs": 'Toggle IVs',
|
||||||
|
"manageMoves": 'Manage Moves',
|
||||||
|
"useCandies": 'Use Candies',
|
||||||
|
"selectMoveSwapOut": "Select a move to swap out.",
|
||||||
|
"selectMoveSwapWith": "Select a move to swap with",
|
||||||
|
"unlockPassive": "Unlock Passive",
|
||||||
|
"reduceCost": "Reduce Cost",
|
||||||
|
"cycleShiny": "R: Cycle Shiny",
|
||||||
|
"cycleForm": 'F: Cycle Form',
|
||||||
|
"cycleGender": 'G: Cycle Gender',
|
||||||
|
"cycleAbility": 'E: Cycle Ability',
|
||||||
|
"cycleNature": 'N: Cycle Nature',
|
||||||
|
"cycleVariant": 'V: Cycle Variant',
|
||||||
|
"enablePassive": "Enable Passive",
|
||||||
|
"disablePassive": "Disable Passive"
|
||||||
|
}
|
|
@ -0,0 +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.`,
|
||||||
|
|
||||||
|
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
|
||||||
|
|
||||||
|
"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!`,
|
||||||
|
|
||||||
|
"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!`,
|
||||||
|
|
||||||
|
"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!`,
|
||||||
|
|
||||||
|
"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.`,
|
||||||
|
|
||||||
|
"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.`,
|
||||||
|
|
||||||
|
"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!`,
|
||||||
|
} as const;
|
|
@ -7,6 +7,7 @@ import { esConfig } from '#app/locales/es/config.js';
|
||||||
import { frConfig } from '#app/locales/fr/config.js';
|
import { frConfig } from '#app/locales/fr/config.js';
|
||||||
import { itConfig } from '#app/locales/it/config.js';
|
import { itConfig } from '#app/locales/it/config.js';
|
||||||
import { zhCnConfig } from '#app/locales/zh_CN/config.js';
|
import { zhCnConfig } from '#app/locales/zh_CN/config.js';
|
||||||
|
import { koConfig } from '#app/locales/ko/config.js';
|
||||||
|
|
||||||
export interface SimpleTranslationEntries {
|
export interface SimpleTranslationEntries {
|
||||||
[key: string]: string
|
[key: string]: string
|
||||||
|
@ -59,7 +60,7 @@ export function initI18n(): void {
|
||||||
i18next.use(LanguageDetector).init({
|
i18next.use(LanguageDetector).init({
|
||||||
lng: lang,
|
lng: lang,
|
||||||
fallbackLng: 'en',
|
fallbackLng: 'en',
|
||||||
supportedLngs: ['en', 'es', 'fr', 'it', 'de', 'zh_CN'],
|
supportedLngs: ['en', 'es', 'fr', 'it', 'de', 'zh_CN', 'ko'],
|
||||||
debug: true,
|
debug: true,
|
||||||
interpolation: {
|
interpolation: {
|
||||||
escapeValue: false,
|
escapeValue: false,
|
||||||
|
@ -82,6 +83,9 @@ export function initI18n(): void {
|
||||||
},
|
},
|
||||||
zh_CN: {
|
zh_CN: {
|
||||||
...zhCnConfig
|
...zhCnConfig
|
||||||
|
},
|
||||||
|
ko: {
|
||||||
|
...koConfig
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -202,6 +202,10 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer)
|
||||||
label: '简体中文',
|
label: '简体中文',
|
||||||
handler: () => changeLocaleHandler('zh_CN')
|
handler: () => changeLocaleHandler('zh_CN')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '한국어',
|
||||||
|
handler: () => changeLocaleHandler('ko')
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: 'Cancel',
|
label: 'Cancel',
|
||||||
handler: () => cancelHandler()
|
handler: () => cancelHandler()
|
||||||
|
|
Loading…
Reference in New Issue