Merge unstable into development (#2173)

* Remove more scene synchronized

* Fix worktop options not appearing

* Format code [skip actions]

* Fix delay with server tasks

* Format code [skip actions]

* Fully fix fairy clock (#2146)

* Fix scene transition

* fully fix fairy clock

* Re-add call to `Player#updatePlayerGameTime`

* Format code [skip actions]

* Initialize the script loader in `ResourceLoader#loadAll`

* Fix region removal checking

* Format code [skip actions]

* Use Lombok's `EqualsAndHashCode` for comparing scene regions

* Format code [skip actions]

* Move 'invalid gather object' to `trace`

* Add more information to the 'unknown condition handler' message

* Move invalid ability action to trace

* Make `KcpTunnel` public

* Validate the NPC being talked to

* Format code [skip actions]

* NPCs are not spawned server side; change logic to handle it

* Format code [skip actions]

* unload scene when there are no players (#2147)

* unload scene when there are no players

* Update src/main/java/emu/grasscutter/game/world/Scene.java

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

---------

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Check if a command should be copied or HTTP should be used

* Lint Code [skip actions]

* Fix character names rendering incorrectly

* Add basic troubleshooting command

* Implement handbook teleporting

also a few formatting changes and sort data by logical sense

* Fix listener `ConcurrentModificationException` issue

* Add color change to `Join the Community!`

* Lint Code [skip actions]

* Make clickable buttons appear clickable

* Remove 'Mechanicus' entities from the list of entities

* Format code [skip actions]

* Fix going back returning a blank screen

* Implement entity spawning

* Add setting level to entity card

* Add support for 'plain text' mode

* Make descriptions of objects scrollable

* Lint Code [skip actions]

* Format code [skip actions]

* Change the way existing hooks work

* Format code [skip actions]

* Upgrade Javalin to 5.5.0 & Fix project warnings

* Upgrade logging libraries

* Fix gacha mappings static file issue

* Add temporary backwards compatability for `ServerHelper`

* Format code [skip actions]

* Remove artifact signatures from VCS

* Fix forge queue data protocol definition

* Run `spotlessApply`

* Format code [skip actions]

* Download data required for building artifacts

* Add call for Facebook logins

* Add the wiki page as a submodule

* Format code [skip actions]

* Update translation (#2150)

* Update translation

* Update translation

* Separate the dispatch and game servers (pt. 1)

gacha is still broken, handbook still needs to be done

* Format code [skip actions]

* Separate the dispatch and game servers (pt. 2)

this commit fixes the gacha page

* Add description for '/troubleshoot'

* Set default avatar talent level to 10

* Separate the dispatch and game servers (pt. 3)

implement handbook across servers!

* Format code [skip actions]

* Update GitHub Actions to use 'download-file' over 'wget'

* Gm handbook lmao (#2149)

* Fix font issue

* Fix avatars

* Fix text overflow in commands

* Fix virtualized lists and items page 😭😭

* magix why 💀

* use hover style in all minicards

* button

* remove console.log

* lint

* Add icons

* magix asked

* Fix overflow padding issue

* Fix achievement text overflow

* remove icons from repo

* Change command icon

* Add the wiki page as a submodule

* total magix moment

* fix text overflow in commands

* Fix discord button

* Make text scale on Minicard

* import icons and font from another source

* Add hover effects to siebar buttons

* move font and readme to submodule repo

* Make data folder a submodule

* import icons and font from data submodule

* Update README.md

* total magix moment

* magix moment v2

* submodule change

* Import `.webp` files

* Resize `HomeButton`

* Fix 'Copy Command' reappearing after changing pages

---------

Co-authored-by: KingRainbow44 <kobedo11@gmail.com>

* Lint Code [skip actions]

* Download data for the build, not for the lint

* format imports

this is really just to see if build handbook works kek

* Implement proper handbook authentication (pt. 1)

* Implement proper handbook authentication (pt. 2)

* Format code [skip actions]

* Add quest data dumping for the handbook

* Change colors to fit _something suitable_

* Format code [skip actions]

* Fix force pushing to branches after linting

* Fix logic of `SetPlayerPropReq`

* Move more group loading to `trace`

* Add handbook IP authentication in hybrid mode

* Fix player level up not displaying on the client properly

* Format code [skip actions]

* Fix game time locking

* Format code [skip actions]

* Update player properties

* Format code [skip actions]

* Move `warn`s for groups to `debug`

* Fix player pausing

* Move more logs to `trace`

* Use `removeItemById` for deleting items via quests

* Clean up logger more

* Pause in-game time when the world is paused

* Format code [skip actions]

* More player property documentation

* Multi-threaded resource loading

* Format code [skip actions]

* Add quest widgets

* Add quests page (basic impl.)

* Add/fix colors

also fix tailwind

* Remove banned packets

client modifications already perform the job of blocking malicious packets from being executed, no point in having this if self-windy is wanted

* Re-add `BeginCameraSceneLookNotify`

* Fix being unable to attack (#2157)

* Add `PlayerOpenChestEvent`

* Add methods to get players from the server

* Add static methods to register an event handler

* Add `PlayerEnterDungeonEvent`

* Remove legacy documentation from `PlayerMoveEvent`

* Add `PlayerChatEvent`

* Add defaults to `Position`

* Clean up `.utils`

* Revert `Multi-threaded resource loading`

* Fix changing target UID when talking to the server

* Lint Code [skip actions]

* Format code [skip actions]

* fix NPC talk triggering main quest in 46101 (#2158)

Make it so that only talks where the param matches the talkId are checked.

* Format code [skip actions]

* Partially fix Chasing Shadows (#2159)

* Partially fix Chasing Shadows

* Go ahead and move it before the return before Magix tells me to.

* Format code [skip actions]

* Bring back period lol (#2160)

* Disable SNI for the HTTPS server

* Add `EntityCreationEvent`

* Add initial startup message

this is so the server appears like its preparing to start

* Format code [skip actions]

* Enable debug mode for plugin loggers if enabled for the primary logger

* Add documentation about `WorldAreaConfigData`

* Make more fields in excels accessible

* Remove deprecated fields from `GetShopRsp`

* Run `spotlessApply` on definitions

* Add `PlayerEnterAreaEvent`

* Optimize event calls

* Fix event invokes

* Format code [skip actions]

* Remove manual autofinish for main quests. (#2162)

* Add world areas to the textmap cache

* Format code [skip actions]

* Don't overdefine variables in extended classes (#2163)

* Add dumper for world areas

* Format code [skip actions]

* instantiate personalLineList (#2165)

* Fix protocol definitions

thank you Nazrin! (+ hiro for raw definitions)

* Fix the background color leaking from the character widget

* Change HTML spacing to 2 spaces

* Implement hiding widgets

* Change scrollbar to a vibrant color

* Add _some_ scaling to the home buttons and its text

* Build the handbook with Gradle

* Fix the 'finer details' with the handbook UI

* Lint Code [skip actions]

* Fix target destination for the Gradle-built handbook

* Implement fetching a player across servers & Add a chainable JsonObject

useful for plugins! might be used in grasscutter eventually

* Fix GitHub actions

* Fix event calling & canceling

* Run `spotlessApply`

* Rename fields (might be wrong)

* Add/update all/more protocol definitions

* Add/update all/more protocol definitions

* Remove outdated packet

* Fix protocol definitions

* Format code [skip actions]

* Implement some lua variables for less console spam (#2172)

* Implement some lua variables for less console spam

* Add GetHostQuestState

This fixes some chapter 3 stuff.

* Format code [skip actions]

* Fix merge import

* Format code [skip actions]

* Fully fix fairy clock for real this time (#2167)

* Fully fix fairy clock For real this time

* Make it so relogging keeps the time lock state.

* Refactor out questLockTime

* Per Hartie, the client packet needs to be changed too

* Update src/main/java/emu/grasscutter/game/world/World.java

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Update src/main/java/emu/grasscutter/server/packet/recv/HandlerClientLockGameTimeNotify.java

* Remove all code not needed to get clock working

---------

Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>

* Implement a proper ability system (#2166)

* Apply fix `21dec2fe`

* Apply fix `89d01d5f`

* Apply fix `d900f154`

this one was already implemented; updated to use call from previous commit

* Ability changing commit

TODO: change info to debug

* Remove use of deprecated methods/fields

* Temp commit v2
(Adding LoseHP and some fixes)

* Oopsie

* Probably fix monster battle

* Fix issue with reflecting into fields

* Fix some things

* Fix ability names for 3.6 resources

* Improve logging

---------

Co-authored-by: StartForKiller <jesussanz2003@gmail.com>

* Format code [skip actions]

* Add system for sending messages between servers

* Format some code

* Remove protocol definitions from Spotless

* Default debug to false; enable with `-debug`

* Implement completely useless global value copying

* HACK: Return the avatar which holds the weapon when the weapon is referred to by ID

* Add properties to `AbilityModifier`

* Change the way HTML is served after authentication

* Use thread executors to speed up the database loading process

* Format code [skip actions]

* Add system for setting handbook address and port

* Lint Code [skip actions]

* Format code [skip actions]

* Fix game-related data not saving

* Format code [skip actions]

* Fix handbook server details

* Lint Code [skip actions]

* Format code [skip actions]

* Use the headers provided by a context to get the IP address

should acknowledge #1975

* Format code [skip actions]

* Move more logs to `trace`

* Format code [skip actions]

* more trace

* Fix something and implement weapon entities

* Format code [skip actions]

* Fix `EntityWeapon`

* Remove deprecated API & Fix resource checking

* Fix unnecessary warning for first-time setup

* Implement handbook request limiting

* Format code [skip actions]

* Fix new avatar weapons being null

* Format code [skip actions]

* Fix issue with 35303 being un-completable & Try to fix fulfilled quest conditions being met

* Load activity config on server startup

* Require plugins to specify an API version and match with the server

* Add default open state ignore list

* Format code [skip actions]

* Quick fix for questing, needs more investigation
This would make the questing work again

* Remove existing hack for 35303

* Fix ignored open states from being set

* Format code [skip actions]

* fix the stupidest bug ive ever seen

* Optimize player kicking on server close

* Format code [skip actions]

* Re-add hack to fix 35303

* Update GitHub actions

* Format code [skip actions]

* Potentially fix issues with regions

* Download additional handbook data

* Revert "Potentially fix issues with regions"

This reverts commit 84e3823695.

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: scooterboo <lewasite@yahoo.com>
Co-authored-by: Tesutarin <105267106+Tesutarin@users.noreply.github.com>
Co-authored-by: Scald <104459145+Arikatsu@users.noreply.github.com>
Co-authored-by: StartForKiller <jesussanz2003@gmail.com>
This commit is contained in:
Magix
2023-05-31 20:48:16 -07:00
committed by GitHub
parent f46fd372d2
commit 9e5b57a043
3839 changed files with 1841548 additions and 37533 deletions

View File

@@ -63,7 +63,10 @@
"game_version": "Game version: %s",
"resources": {
"loading": "Loading resources...",
"finish": "Finished loading resources."
"finish": "Finished loading resources.",
"custom": "Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "Invalid artifact ID.",
"avatarId": "Invalid avatar ID.",
"avatarLevel": "Invalid avatarLevel.",
"cfgId": "Invalid cfg ID.",
"entityId": "Invalid entity ID.",
"itemId": "Invalid item ID.",
"itemLevel": "Invalid itemLevel.",
@@ -166,6 +170,10 @@
"in_dungeon_error": "You are already in that dungeon.",
"description": "Enter a dungeon"
},
"entity": {
"description": "Modify an existing entity's properties",
"not_found_error": "Entity does not exist"
},
"give": {
"usage_relic": "Usage: give <artifactID> [mainPropID] [<appendPropID>[,<times>]]... [lv<level 0-20>]",
"illegal_relic": "This artifactID belongs to a blacklisted range, it may not be the one you wanted.",
@@ -184,8 +192,8 @@
"aliases": "Aliases: ",
"available_commands": "Available commands: ",
"tip_need_permission": "Permission: ",
"tip_need_no_permission": " None",
"tip_permission_targeted": " (Permission %s is also required to use on other players)",
"tip_need_no_permission": "None",
"tip_permission_targeted": "(Permission %s is also required to use on other players)",
"warn_player_has_no_permission": "Notice: You do not have permission to run this command.",
"description": "Sends the help message or shows information about a specified command"
},
@@ -230,7 +238,32 @@
"finished": "Finished quest %s.",
"not_found": "Quest not found.",
"invalid_id": "Invalid quest ID.",
"description": "Add or finish quests"
"description": "Add or finish quests",
"running": "Quest %s is %s (%s).",
"talking": "Talk %s is %s for main quest %s (%s).",
"state": {
"none": "unknown (none)",
"unstarted": "unfinished (not started, not completed)",
"unfinished": "unfinished (started, not completed)",
"finished": "finished (completed)",
"failed": "finished (completed, but failed)",
"exists": "found",
"not_exists": "not found"
},
"enabled": "Questing enabled."
},
"group": {
"invalid_groupid": "Invalid group ID.",
"invalid_suiteid": "Invalid suite ID.",
"group_not_found": "Group not found.",
"description": "Alter group loading",
"refreshed": "Group %s refreshed."
},
"cutscene": {
"description": "Plays a cutscene"
},
"sound": {
"description": "Plays a sound"
},
"reload": {
"reload_start": "Reloading config.",
@@ -343,6 +376,17 @@
"success": "Teleported %s to %s, %s, %s in scene %s.",
"description": "Change the player's position"
},
"trialAvatarActivity": {
"description": "Manipulate functionalities of Trial Avatar Activity. This includes toggling dungeon and reward states.",
"not_found": "Trial avatar activity player data not found. Maybe the activity is not enabled.",
"invalid_param": "Invalid parameter.",
"schedule_not_found": "Schedule %s not found.",
"success_schedule": "Changed schedule id to %s.",
"success_dungeon": "Togggled avatar %s's dungeon status.",
"success_dungeon_all": "Toggled all avatars' dungeon status.",
"success_reward": "Togggled avatar %s's reward status.",
"success_reward_all": "Togggled all avatars reward status."
},
"weather": {
"success": "Set weather ID to %s with climate type %s.",
"status": "Current weather ID is %s with climate type %s.",
@@ -362,6 +406,9 @@
"success": "Successful.",
"failure": "Failed, player not found.",
"description": "Unban a player"
},
"troubleshoot": {
"description": "Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -400,19 +447,23 @@
}
},
"plugin": {
"directory_failed": "Failed to create plugins directory: ",
"unable_to_load": "Unable to load plugin.",
"invalid_config": "Plugin %s has an invalid config file.",
"invalid_main_class": "Plugin %s has an invalid main class.",
"missing_config": "Plugin %s lacks a valid config file.",
"failed_to_load_plugin": "Failed to load plugin: %s",
"failed_to_load": "Failed to load a plugin.",
"failed_to_load_dependencies": "Failed to load plugins with dependencies.",
"loading_plugin": "Loading plugin: %s",
"failed_add_id": "Failed to add plugin identifier: %s",
"enabling_plugin": "Enabling plugin: %s",
"enabling_failed": "Failed to enable plugin: %s",
"disabling_plugin": "Disabling plugin: %s",
"disabling_failed": "Failed to disable plugin: %s"
"directory_failed": "Failed to create plugins directory: ",
"unable_to_load": "Unable to load plugin.",
"invalid_config": "Plugin %s has an invalid config file.",
"invalid_main_class": "Plugin %s has an invalid main class.",
"missing_config": "Plugin %s lacks a valid config file.",
"failed_to_load_plugin": "Failed to load plugin: %s",
"failed_to_load": "Failed to load a plugin.",
"failed_to_load_dependencies": "Failed to load plugins with dependencies.",
"loading_plugin": "Loading plugin: %s",
"failed_add_id": "Failed to add plugin identifier: %s",
"enabling_plugin": "Enabling plugin: %s",
"enabling_failed": "Failed to enable plugin: %s",
"disabling_plugin": "Disabling plugin: %s",
"disabling_failed": "Failed to disable plugin: %s",
"invalid_api": {
"not_present": "Plugin %s does not specify an API version.",
"lower": "Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "Versión del juego: %s",
"resources": {
"loading": "Cargando recursos...",
"finish": "Ha finalizado la carga de recursos."
"finish": "Ha finalizado la carga de recursos.",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "ID de artefacto no válido.",
"avatarId": "ID de avatar no válido.",
"avatarLevel": "avatarLevel inválido.",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "ID de entidad inválido.",
"itemId": "ID de objeto inválido.",
"itemLevel": "itemLevel inválido.",
@@ -166,6 +170,10 @@
"in_dungeon_error": "Ya estás en esa mazmorra.",
"description": "Te introduce en una mazmorra"
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "Usa: give <artifactID> [mainPropID] [<appendPropID>[,<veces>]]... [lv<nivel 0-20>]",
"illegal_relic": "Este artifactID pertenece a un rango de la lista negra, puede que no sea el que buscas.",
@@ -230,7 +238,32 @@
"finished": "Misión %s finalizada.",
"not_found": "Misión no encontrada.",
"invalid_id": "ID de misión inválido.",
"description": "Añade o finaliza misiones"
"description": "Añade o finaliza misiones",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "ID de grupo invalida.",
"invalid_suiteid": "ID del conjunto invalida.",
"group_not_found": "Grupo no encontrado.",
"description": "Altera la carga de grupos",
"refreshed": "Grupo %s refrescado."
},
"cutscene": {
"description": "Reproduce una escena"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "Recargando configuración.",
@@ -321,7 +354,7 @@
"team": {
"invalid_usage": "Uso inválido.",
"invalid_index": "Index inválido.",
"add_too_much": "El servidor solo permite tener como máximo %s avatar(es) en tu equipo.",
"add_too_much": "El servidor solo permite tener como máximo %d avatar(es) en tu equipo.",
"failed_to_add_avatar": "Error al añadir el avatar con ID %s.",
"failed_to_parse_index": "Error al usar el index: %s",
"remove_too_much": "No puedes quitar todos tus avatares.",
@@ -329,7 +362,7 @@
"index_out_of_range": "El index especificado está fuera de rango.",
"failed_parse_avatar_id": "Error al usar el ID del avatar: %s",
"avatar_already_in_team": "El avatar ya está en el equipo.",
"avatar_not_found": "Avatar %s no encontrado.",
"avatar_not_found": "Avatar %d no encontrado.",
"description": "Modifica tu equipo manualmente."
},
"teleportAll": {
@@ -343,6 +376,17 @@
"success": "Teletransportado %s a %s, %s, %s en el escenario %s.",
"description": "Cambia la posición del jugador"
},
"trialAvatarActivity": {
"description": "Manipular las funcionalidades de la Actividad de Avatar de Prueba. Esto incluye alternar estados de mazmorra y recompensa.",
"not_found": "No se encontraron los datos del jugador de la actividad del avatar de prueba. Quizás la actividad no esté habilitada.",
"invalid_param": "🇺🇸Invalid parameter.",
"schedule_not_found": "Horario %s no encontrado.",
"success_schedule": "Cambió la identificación del horario a %s.",
"success_dungeon": "Se alteró el estado de la mazmorra del avatar %s.",
"success_dungeon_all": "Cambiado el estado de mazmorra de todos los avatares.",
"success_reward": "Se alteró el estado de recompensa del avatar %s.",
"success_reward_all": "Cambiado el estado de recompensa de todos los avatares."
},
"weather": {
"success": "Establece el ID del clima %s con el tipo de clima %s.",
"status": "El ID del clima actual es %s con tipo de clima %s.",
@@ -362,6 +406,9 @@
"success": "Exitoso.",
"failure": "Error, jugador no encontrado.",
"description": "Elimina el veto a un jugador"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -379,23 +426,23 @@
},
"documentation": {
"handbook": {
"title": "GM Handbook",
"title": "🇺🇸GM Handbook",
"title_commands": "Comandos",
"title_avatars": "Avatares",
"title_items": "Objetos",
"title_scenes": "Escenario",
"title_monsters": "Monstruos",
"header_id": "Id",
"header_id": "🇺🇸Id",
"header_command": "Comando",
"header_description": "Descripción",
"header_avatar": "Avatar",
"header_avatar": "🇺🇸Avatar",
"header_item": "Objeto",
"header_scene": "Escenario",
"header_monster": "Monstruo"
},
"index": {
"title": "Documentación",
"handbook": "GM Handbook",
"handbook": "🇺🇸GM Handbook",
"gacha_mapping": "JSON de mapeo del Gacha"
}
},
@@ -413,6 +460,10 @@
"enabling_plugin": "Activando plugin: %s",
"enabling_failed": "Error al activar el plugin: %s",
"disabling_plugin": "Desactivando el plugin: %s",
"disabling_failed": "Error al desactivar el plugin: %s"
"disabling_failed": "Error al desactivar el plugin: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "Version du jeu: %s",
"resources": {
"loading": "Chargement des ressources...",
"finish": "Chargement des ressources terminé."
"finish": "Chargement des ressources terminé.",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "ID de l'artéfact invalide.",
"avatarId": "ID de l'avatar invalide.",
"avatarLevel": "avatarLevel invalide.",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "ID de l'entité invalide.",
"itemId": "ID de l'objet invalide.",
"itemLevel": "Niveau de l'objet invalide.",
@@ -166,6 +170,10 @@
"in_dungeon_error": "Vous êtes déjà dans ce donjon.",
"description": "Entrer dans un donjon"
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "Utilisation: give <artifactID> [mainPropID] [<appendPropID>[,<times>]]... [lv<level 0-20>]",
"illegal_relic": "L'ID de cet artéfact appartient a une liste blacklistée, ce n'est peut-être pas celui que vous désirez.",
@@ -230,7 +238,32 @@
"finished": "Quête terminée : %s.",
"not_found": "Quête introuvable.",
"invalid_id": "ID de la quête invalide.",
"description": "Ajoute ou termine une quête"
"description": "Ajoute ou termine une quête",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "Quêtes activées."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "Joue une cinématique"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "Rechargement de la configuration.",
@@ -321,7 +354,7 @@
"team": {
"invalid_usage": "Utilisation invalide.",
"invalid_index": "Index invalide.",
"add_too_much": "Ce serveur autorise à avoir au maximum %s avatar(s) dans votre équipe.",
"add_too_much": "Ce serveur autorise à avoir au maximum %d avatar(s) dans votre équipe.",
"failed_to_add_avatar": "Echec de l'ajout de l'avatar a l'ID %s dans votre équipe.",
"failed_to_parse_index": "Echec de l'analyse de l'index index: %s",
"remove_too_much": "Vous ne pouvez pas retirer tous les avatars.",
@@ -329,7 +362,7 @@
"index_out_of_range": "L'index spécifié est en dehors du champ.",
"failed_parse_avatar_id": "Echec de l'analyse de l'ID de l'avatar: %s",
"avatar_already_in_team": "L'avatar est déjà dans votre équipe.",
"avatar_not_found": "L'avatar %s est introuvable.",
"avatar_not_found": "L'avatar %d est introuvable.",
"description": "Modifie votre équipe manuellement."
},
"teleportAll": {
@@ -343,6 +376,17 @@
"success": "%s a été téléporté à %s, %s, %s dans la scène %s.",
"description": "Change la position du joueur"
},
"trialAvatarActivity": {
"description": "Manipuler les fonctionnalités de Trial Avatar Activity. Cela inclut le basculement des états de donjon et de récompense.",
"not_found": "Les données du lecteur d'activité d'avatar d'essai sont introuvables. Peut-être que l'activité n'est pas activée.",
"invalid_param": "Paramètre invalide.",
"schedule_not_found": "Horaire %s introuvable.",
"success_schedule": "ID de planification changé en %s.",
"success_dungeon": "Basculement du statut du donjon de l'avatar %s.",
"success_dungeon_all": "Basculement du statut de donjon de tous les avatars.",
"success_reward": "Basculement du statut de récompense de l'avatar %s.",
"success_reward_all": "Basculement du statut de récompense de tous les avatars."
},
"weather": {
"success": "L'ID de la météo à été défini a %s avec le type de climat %s.",
"status": "L'ID de la météo accutel est %s avec le type de climat %s.",
@@ -362,6 +406,9 @@
"success": "Succès.",
"failure": "Échec, joueur introuvable.",
"description": "Retire le bannissement d'un joueur"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -394,9 +441,9 @@
"header_monster": "Monstre"
},
"index": {
"title": "Documentation",
"title": "🇺🇸Documentation",
"handbook": "Manuel GM",
"gacha_mapping": "Gacha mapping JSON"
"gacha_mapping": "🇺🇸Gacha mapping JSON"
}
},
"plugin": {
@@ -413,6 +460,10 @@
"enabling_plugin": "Activation du plugin %s",
"enabling_failed": "Impossible d'activer le plugin %s",
"disabling_plugin": "Désactivation du plugin %s",
"disabling_failed": "Impossible de désactiver le plugin %s"
"disabling_failed": "Impossible de désactiver le plugin %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -1,7 +1,7 @@
{
"messages": {
"game": {
"address_bind": "Server di gioco avviato su \u001B[1m\u001B[33m%s:%s\u001B[0m",
"address_bind": "Server di gioco avviato su \u001b[1m\u001b[33m%s:%s\u001b[0m",
"port_bind": "Server di gioco avviato sulla porta %s",
"connect": "Client connesso da %s",
"disconnect": "Client disconnesso da %s",
@@ -9,7 +9,7 @@
"command_error": "Errore comando:"
},
"dispatch": {
"address_bind": "[Dispatch] Dispatch server avviato su \u001B[1m\u001B[33m%s:%s\u001B[0m",
"address_bind": "[Dispatch] Dispatch server avviato su \u001b[1m\u001b[33m%s:%s\u001b[0m",
"port_bind": "[Dispatch] Dispatch server avviato sulla porta %s",
"request": "[Dispatch] Client %s %s richiesta: %s",
"keystore": {
@@ -63,7 +63,10 @@
"game_version": "Versione del gioco: %s",
"resources": {
"loading": "Caricamento risorse...",
"finish": "Terminato il caricamento delle risorse."
"finish": "Terminato il caricamento delle risorse.",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -80,19 +83,20 @@
"set_to": "%s impostato su %s.",
"set_for_to": "%s per %s impostato su %s.",
"invalid": {
"amount": "Importo non valido.",
"artifactId": "ID artefatto non valido.",
"avatarId": "ID avatar non valido.",
"avatarLevel": "Livello avatar non valido.",
"entityId": "ID entità non valido.",
"itemId": "ID articolo non valido.",
"itemLevel": "ItemLevel non valido.",
"itemRefinement": "Raffinamento articolo non valido.",
"statValue": "Valore statistica non valido.",
"value_between": "Valore non valido: %s deve essere compreso tra %s e %s.",
"playerId": "ID giocatore non valido.",
"uid": "UID non valido.",
"id": "ID non valido."
"amount": "Importo non valido.",
"artifactId": "ID artefatto non valido.",
"avatarId": "ID avatar non valido.",
"avatarLevel": "Livello avatar non valido.",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "ID entità non valido.",
"itemId": "ID articolo non valido.",
"itemLevel": "ItemLevel non valido.",
"itemRefinement": "Raffinamento articolo non valido.",
"statValue": "Valore statistica non valido.",
"value_between": "Valore non valido: %s deve essere compreso tra %s e %s.",
"playerId": "ID giocatore non valido.",
"uid": "UID non valido.",
"id": "ID non valido."
}
},
"execution": {
@@ -154,7 +158,8 @@
"displays": "Display cancellati per %s.",
"virtuals": "Virtuali cancellate per %s.",
"everything": "Cancellato tutto per %s.",
"description": "Elimina gli oggetti sbloccati non equipaggiati dal tuo inventario. Il valore predefinito è 4* livello 1 raffinamento 1 o inferiore, ma può essere impostato su un livello superiore." },
"description": "Elimina gli oggetti sbloccati non equipaggiati dal tuo inventario. Il valore predefinito è 4* livello 1 raffinamento 1 o inferiore, ma può essere impostato su un livello superiore."
},
"coop": {
"success": "Convocato %s nel mondo di %s.",
"description": "Forza qualcuno a unirsi al mondo degli altri. Se nessuno viene preso di mira, ti manda comunque in modalità cooperativa."
@@ -165,6 +170,10 @@
"in_dungeon_error": "Sei già in quel dungeon.",
"description": "Entra in un dungeon"
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "Utilizzo: fornire <artifactID> [mainPropID] [<appendPropID>[,<times>]]... [lv<livello 0-20>]",
"illegal_relic": "Questo ID artefatto appartiene a un intervallo nella blacklist, potrebbe non essere quello che volevi.",
@@ -174,7 +183,7 @@
"given_avatar": "Dato %s con livello da %s a %s.",
"giveall_success": "Ha dato tutti gli oggetti con successo.",
"description": "Dà un oggetto a te o al giocatore specificato. Può anche dare tutte le armi, avatar e/o materiali, e può costruire artefatti personalizzati."
},
},
"heal": {
"success": "Tutti i personaggi sono stati curati.",
"description": "Guarisci tutti i personaggi della tua squadra attuale."
@@ -229,7 +238,32 @@
"finished": "Missione completata %s.",
"not_found": "Missione non trovata.",
"invalid_id": "ID missione non valido.",
"description": "Aggiungi o completa missioni"
"description": "Aggiungi o completa missioni",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "Riproduce un filmato"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "Ricarica configurazione.",
@@ -268,35 +302,35 @@
"error": "ERRORE: fase di costruzione %s non valida. Controlla lo stacktrace della console.",
"description": "Invia posta all'utente specificato. L'utilizzo di questo comando cambia in base al suo stato di composizione"
},
"sendMessage": {
"success": "Messaggio inviato.",
"description": "Invia un messaggio a un giocatore come server. Se usato senza target, invia a tutti i giocatori sul server."
},
"setConst": {
"range_error": "Il livello della costellazione deve essere compreso tra 0 e 6.",
"level_error": "Livello costellazione non valido.",
"fail": "Impossibile impostare la costellazione.",
"failed_success": "Le costellazioni per %s sono state impostate su %s. Ricarica la scena per vedere le modifiche.",
"success": "Le costellazioni per %s sono state impostate su %s.",
"successall": "Le costellazioni per tutti i personaggi sono state impostate su %s.",
"description": "Imposta il livello di costellazione per il tuo attuale personaggio attivo"
},
"setFetterLevel": {
"range_error": "Il livello di restrizione deve essere compreso tra 0 e 10.",
"success": "Livello di restrizione impostato su %s.",
"level_error": "Livello restrizione non valido.",
"description": "Imposta il tuo livello di restrizione per il tuo attuale personaggio attivo"
},
"setProp": {
"description": "Imposta le proprietà dell'intero account. Cose come godmode possono essere abilitate in questo modo, oltre a cambiare cose come il pavimento dell'abisso sbloccato e il progresso del pass battaglia.\n\tValori per <prop> (senza distinzione tra maiuscole e minuscole): GodMode | UnlimitedStamina | UnlimitedEnergy | TowerLevel | WorldLevel | BPLevel | SetOpenState | UnsetOpenState | UnlockMap\n\t(cont.) vedi PlayerProperty enum per altri possibili valori, nella forma PROP_MAX_SPRING_VOLUME -> max_spring_volume"
},
"setStats": {
"description": "Imposta la proprietà di combattimento per il tuo personaggio attivo corrente\n\tValori per <stat>: hp | maxhp | def | atk | em | er | crate | cdmg | cdr | heal | heali | shield | defi\n\t(cont.) Elemental DMG Bonus: epyro | ecryo | ehydro | egeo | edendro | eelectro | ephys\n\t(cont.) Elemental RES: respyro | rescryo | reshydro | resgeo | resdendro | reselectro | resphys",
"locked_to": "%s bloccato su %s.",
"locked_for_to": "%s per %s bloccato su %s.",
"unlocked": "%s sbloccato.",
"unlocked_for": "%s per %s sbloccato."
},
"sendMessage": {
"success": "Messaggio inviato.",
"description": "Invia un messaggio a un giocatore come server. Se usato senza target, invia a tutti i giocatori sul server."
},
"setConst": {
"range_error": "Il livello della costellazione deve essere compreso tra 0 e 6.",
"level_error": "Livello costellazione non valido.",
"fail": "Impossibile impostare la costellazione.",
"failed_success": "Le costellazioni per %s sono state impostate su %s. Ricarica la scena per vedere le modifiche.",
"success": "Le costellazioni per %s sono state impostate su %s.",
"successall": "Le costellazioni per tutti i personaggi sono state impostate su %s.",
"description": "Imposta il livello di costellazione per il tuo attuale personaggio attivo"
},
"setFetterLevel": {
"range_error": "Il livello di restrizione deve essere compreso tra 0 e 10.",
"success": "Livello di restrizione impostato su %s.",
"level_error": "Livello restrizione non valido.",
"description": "Imposta il tuo livello di restrizione per il tuo attuale personaggio attivo"
},
"setProp": {
"description": "Imposta le proprietà dell'intero account. Cose come godmode possono essere abilitate in questo modo, oltre a cambiare cose come il pavimento dell'abisso sbloccato e il progresso del pass battaglia.\n\tValori per <prop> (senza distinzione tra maiuscole e minuscole): GodMode | UnlimitedStamina | UnlimitedEnergy | TowerLevel | WorldLevel | BPLevel | SetOpenState | UnsetOpenState | UnlockMap\n\t(cont.) vedi PlayerProperty enum per altri possibili valori, nella forma PROP_MAX_SPRING_VOLUME -> max_spring_volume"
},
"setStats": {
"description": "Imposta la proprietà di combattimento per il tuo personaggio attivo corrente\n\tValori per <stat>: hp | maxhp | def | atk | em | er | crate | cdmg | cdr | heal | heali | shield | defi\n\t(cont.) Elemental DMG Bonus: epyro | ecryo | ehydro | egeo | edendro | eelectro | ephys\n\t(cont.) Elemental RES: respyro | rescryo | reshydro | resgeo | resdendro | reselectro | resphys",
"locked_to": "%s bloccato su %s.",
"locked_for_to": "%s per %s bloccato su %s.",
"unlocked": "%s sbloccato.",
"unlocked_for": "%s per %s sbloccato."
},
"spawn": {
"success": "Evocati %s di %s.",
"limit_reached": "Limite di evocazione della scena raggiunto. Generazione invece di %s entità.",
@@ -342,6 +376,17 @@
"success": "Teletrasportato %s in %s, %s, %s nella scena %s.",
"description": "Cambia la posizione del giocatore"
},
"trialAvatarActivity": {
"description": "Manipolare le funzionalità dell'attività Avatar di prova. Ciò include la commutazione degli stati dei sotterranei e delle ricompense.",
"not_found": "Dati giocatore attività avatar di prova non trovati. Forse l'attività non è abilitata.",
"invalid_param": "Parametro non valido.",
"schedule_not_found": "Programma %s non trovato.",
"success_schedule": "ID programma modificato in %s.",
"success_dungeon": "Stato del dungeon dell'avatar %s attivato.",
"success_dungeon_all": "Modificato lo stato dei dungeon di tutti gli avatar.",
"success_reward": "Stato della ricompensa dell'avatar %s attivato/disattivato.",
"success_reward_all": "Attivato/disattivato lo stato di ricompensa di tutti gli avatar."
},
"weather": {
"success": "Imposta l'ID meteo su %s con il tipo di clima %s.",
"status": "L'ID meteo attuale è %s con il tipo di clima %s.",
@@ -361,6 +406,9 @@
"success": "Successo.",
"failure": "Fallito, giocatore non trovato.",
"description": "Sbanna un giocatore"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -371,7 +419,7 @@
"available_three_stars": "Articoli a 3 stelle disponibili"
},
"records": {
"title": "Gacha Records",
"title": "🇺🇸Gacha Records",
"date": "Data",
"item": "oggetto"
}
@@ -387,7 +435,7 @@
"header_id": "ID",
"header_command": "Comando",
"header_description": "Descrizione",
"header_avatar": "Avatar",
"header_avatar": "🇺🇸Avatar",
"header_item": "Articolo",
"header_scene": "Scena",
"header_monster": "Mostro"
@@ -399,19 +447,23 @@
}
},
"plugin": {
"directory_failed": "Impossibile creare la directory dei plugin: ",
"unable_to_load": "Impossibile caricare il plug-in.",
"invalid_config": "Il plug-in %s ha un file di configurazione non valido.",
"invalid_main_class": "Il plug-in %s ha una classe principale non valida.",
"missing_config": "Il plug-in %s non ha un file di configurazione valido.",
"failed_to_load_plugin": "Impossibile caricare il plug-in: %s",
"failed_to_load": "Impossibile caricare un plug-in.",
"failed_to_load_dependencies": "Impossibile caricare i plugin con le dipendenze.",
"loading_plugin": "Caricamento plug-in: %s",
"failed_add_id": "Impossibile aggiungere l'identificatore del plug-in: %s",
"enabling_plugin": "Abilitazione plug-in: %s",
"enabling_failed": "Impossibile abilitare il plug-in: %s",
"disabling_plugin": "Disabilitazione plug-in: %s",
"disabling_failed": "Impossibile disabilitare il plug-in: %s"
"directory_failed": "Impossibile creare la directory dei plugin: ",
"unable_to_load": "Impossibile caricare il plug-in.",
"invalid_config": "Il plug-in %s ha un file di configurazione non valido.",
"invalid_main_class": "Il plug-in %s ha una classe principale non valida.",
"missing_config": "Il plug-in %s non ha un file di configurazione valido.",
"failed_to_load_plugin": "Impossibile caricare il plug-in: %s",
"failed_to_load": "Impossibile caricare un plug-in.",
"failed_to_load_dependencies": "Impossibile caricare i plugin con le dipendenze.",
"loading_plugin": "Caricamento plug-in: %s",
"failed_add_id": "Impossibile aggiungere l'identificatore del plug-in: %s",
"enabling_plugin": "Abilitazione plug-in: %s",
"enabling_failed": "Impossibile abilitare il plug-in: %s",
"disabling_plugin": "Disabilitazione plug-in: %s",
"disabling_failed": "Impossibile disabilitare il plug-in: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "ゲームバージョン: %s",
"resources": {
"loading": "resourcesファイルをロード中...",
"finish": "resourcesファイルのロードが完了。"
"finish": "resourcesファイルのロードが完了。",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "聖遺物IDが無効な値です。",
"avatarId": "キャラIDが無効な値です。",
"avatarLevel": "キャラレベルが無効な値です。",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "エンティティIDが無効な値です。",
"itemId": "アイテムIDが無効な値です。",
"itemLevel": "アイテムレベルが無効な値です。",
@@ -166,6 +170,10 @@
"in_dungeon_error": "あなたはすでにその秘境にいます。",
"description": "秘境に入ります。"
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "使用方法: give <聖遺物ID> [メインステータスID] [<サブステータスID>[,<強化回数>]]... [lv<レベル 0-20>]",
"illegal_relic": "この聖遺物IDはブラックリストに登録された範囲に属しています。必要な範囲ではない可能性があります。",
@@ -230,7 +238,32 @@
"finished": "クエスト %s を終了しました。",
"not_found": "クエストが見つかりません。",
"invalid_id": "クエストIDが無効です。",
"description": "クエストを追加または終了します。"
"description": "クエストを追加または終了します。",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "カットシーンを再生します"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "設定を再読み込みしています。",
@@ -343,6 +376,17 @@
"success": "%1$s を シーン %5$s の %2$s, %3$s, %4$s にテレポートさせました。",
"description": "プレイヤーの位置を変更します。"
},
"trialAvatarActivity": {
"description": "トライアル アバター アクティビティの機能を操作します。これには、ダンジョンと報酬の状態の切り替えが含まれます。",
"not_found": "試用アバター アクティビティ プレーヤー データが見つかりません。アクティビティが有効になっていない可能性があります。",
"invalid_param": "無効なパラメーター。",
"schedule_not_found": "スケジュール %s が見つかりません。",
"success_schedule": "スケジュール ID を %s に変更しました。",
"success_dungeon": "アバター %s のダンジョン ステータスを切り替えました。",
"success_dungeon_all": "すべてのアバターのダンジョン ステータスを切り替えました。",
"success_reward": "アバター %s の報酬ステータスを切り替えました。",
"success_reward_all": "すべてのアバターの報酬ステータスを切り替えました。"
},
"weather": {
"success": "天気のIDを気候タイプ %2$s の %1$s に設定しました。",
"status": "現在の天気のIDは気候タイプ %2$s の %1$s です。",
@@ -362,6 +406,9 @@
"success": "成功しました。",
"failure": "失敗しました。プレイヤーが見つかりません。",
"description": "プレイヤーのBANを解除します。"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -379,7 +426,7 @@
},
"documentation": {
"handbook": {
"title": "GM Handbook",
"title": "🇺🇸GM Handbook",
"title_commands": "コマンド",
"title_avatars": "キャラ",
"title_items": "アイテム",
@@ -395,7 +442,7 @@
},
"index": {
"title": "ドキュメント",
"handbook": "GM Handbook",
"handbook": "🇺🇸GM Handbook",
"gacha_mapping": "ガチャマップ JSON"
}
},
@@ -413,6 +460,10 @@
"enabling_plugin": "プラグインを有効にしています: %s",
"enabling_failed": "プラグインの有効化に失敗しました: %s",
"disabling_plugin": "プラグインを無効にしています: %s",
"disabling_failed": "プラグインの無効化に失敗しました: %s"
"disabling_failed": "プラグインの無効化に失敗しました: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "게임 버전: %s",
"resources": {
"loading": "리소스 로딩중...",
"finish": "리소스 로딩완료."
"finish": "리소스 로딩완료.",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "성유물ID가 잘못되었습니다.",
"avatarId": "캐릭터ID가 잘못되었습니다.",
"avatarLevel": "캐릭터 레벨이 잘못되었습니다.",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "엔티티ID가 잘못되었습니다.",
"itemId": "아이템ID가 잘못되었습니다.",
"itemLevel": "아이템 레벨이 잘못되었습니다.",
@@ -166,6 +170,10 @@
"in_dungeon_error": "이미 당신은 그 던전에 있습니다.",
"description": "던전에 진입합니다."
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "사용법: give <성유물ID> [mainPropID] [<appendPropID>[,<times>]]... [lv<레벨 0-20>]",
"illegal_relic": "이 성유물ID는 블랙리스트 범위에 있습니다. 원하는 ID가 아닐 수 있습니다.",
@@ -230,7 +238,32 @@
"finished": "%s 퀘스트를 마쳤습니다.",
"not_found": "퀘스트를 찾을 수 없습니다.",
"invalid_id": "퀘스트ID를 찾을 수 없습니다.",
"description": "퀘스트를 추가하거나 완료합니다."
"description": "퀘스트를 추가하거나 완료합니다.",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "🇺🇸Plays a cutscene"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "구성 설정을 다시 불러오는중...",
@@ -262,10 +295,10 @@
"set_message_sender": "메세지 발송자가 '%s'으로 설정되었습니다.\n계속하려면 '/sendmail <itemID|itemName|finish> [amount] [level]'을 사용하십시오.",
"send": "%s 의 %s을 (레벨 %s)을 메세지에 첨부했습니다.\n계속 항목을 추가하거나, '/sendmail finish'을 사용해 메세지를 보낼 수 있습니다..",
"invalid_arguments_please_use": "잘못된 인수입니다.\n '/sendmail %s'을 사용하십시오",
"title": "<title>",
"message": "<message>",
"sender": "<sender>",
"arguments": "<itemID|itemName|finish> [amount] [level]",
"title": "🇺🇸<title>",
"message": "🇺🇸<message>",
"sender": "🇺🇸<sender>",
"arguments": "🇺🇸<itemID|itemName|finish> [amount] [level]",
"error": "오류: 잘못된 시공 단계 %s. Console에서 스택을 확인하십시오.",
"description": "지정된 사용자에게 메세지를 보냅니다. 이 명령어의 사용법은 세부 내용에 따라 달라집니다."
},
@@ -321,7 +354,7 @@
"team": {
"invalid_usage": "잘못된 사용.",
"invalid_index": "잘못된 목차.",
"add_too_much": "팀에 넣을 수 있는 캐릭터 수의 최대는 %s 명 입니다.",
"add_too_much": "팀에 넣을 수 있는 캐릭터 수의 최대는 %d 명 입니다.",
"failed_to_add_avatar": "추가하는데 실패했습니다 캐릭터 ID %s.",
"failed_to_parse_index": "분석에 실패함 index: %s",
"remove_too_much": "팀에는 최소 1명의 캐릭터가 편성 되어야 합니다.",
@@ -329,7 +362,7 @@
"index_out_of_range": "지정된 목차는 범위 밖에 있습니다.",
"failed_parse_avatar_id": "분석에 실패한 캐릭터 ID: %s",
"avatar_already_in_team": "해당 캐릭터는 이미 팀에 포함되어 있습니다.",
"avatar_not_found": "캐릭터 %s 발견되지 않음.",
"avatar_not_found": "캐릭터 %d 발견되지 않음.",
"description": "당신의 팀을 수정으로 수정합니다."
},
"teleportAll": {
@@ -343,6 +376,17 @@
"success": " %s 을(를) %s, %s, %s 로 이동시켰습니다. scene %s.",
"description": "플레이어의 위치를 이동시킵니다."
},
"trialAvatarActivity": {
"description": "평가판 아바타 활동의 기능을 조작합니다. 여기에는 던전 및 보상 상태 전환이 포함됩니다.",
"not_found": "평가판 아바타 활동 플레이어 데이터를 찾을 수 없습니다. 활동이 활성화되지 않았을 수 있습니다.",
"invalid_param": "잘못된 매개 변수.",
"schedule_not_found": "일정 %s을(를) 찾을 수 없습니다.",
"success_schedule": "일정 ID를 %s(으)로 변경했습니다.",
"success_dungeon": "아바타 %s의 던전 상태를 전환했습니다.",
"success_dungeon_all": "모든 아바타의 던전 상태를 전환했습니다.",
"success_reward": "아바타 %s의 보상 상태를 전환했습니다.",
"success_reward_all": "모든 아바타 보상 상태를 전환했습니다."
},
"weather": {
"success": "설정 날씨 ID %s 를 %s 로.",
"status": "현재 날씨 ID 는 %s 기후는 %s입니다.",
@@ -362,6 +406,9 @@
"success": "성공.",
"failure": "실패, 플레이어를 찾을 수 없습니다.",
"description": "플레이어에 대한 밴을 해제합니다"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -395,8 +442,8 @@
},
"index": {
"title": "문서",
"handbook": "GM Handbook",
"gacha_mapping": "Gacha mapping JSON"
"handbook": "🇺🇸GM Handbook",
"gacha_mapping": "🇺🇸Gacha mapping JSON"
}
},
"plugin": {
@@ -413,6 +460,10 @@
"enabling_plugin": "플러그인을 활성화했습니다: %s",
"enabling_failed": "플러그인을 활성화하는데 실패했습니다: %s",
"disabling_plugin": "플러그인을 비활성화했습니다: %s",
"disabling_failed": "플러그인을 비활성화하는데 실패했습니다: %s"
"disabling_failed": "플러그인을 비활성화하는데 실패했습니다: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "Wersja gry: %s",
"resources": {
"loading": "Ładowanie zasobów...",
"finish": "Załadowano zasoby."
"finish": "Załadowano zasoby.",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "Błędne ID artefaktu.",
"avatarId": "Błędne ID postaci.",
"avatarLevel": "Błędny poziom postaci.",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "Błędne ID obiektu.",
"itemId": "Błędne ID przedmiotu.",
"itemLevel": "Błędny poziom przedmiotu.",
@@ -166,6 +170,10 @@
"in_dungeon_error": "Wskazany gracz już jest w tym lochu.",
"description": "Zmień loch, w którym ma się znajdować wskazany gracz."
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "give <ID reliktu> [ID pierwszego przedmiotu] [<ID drugiego przedmiotu>[, <ile razy je połączyć>]]... [lv<poziom od 0 do 20>]",
"illegal_relic": "Ten ID reliktu znajduje się na czarnej liście i może być nie tym, czego szukasz.",
@@ -230,7 +238,32 @@
"finished": "Zadanie %s zostało zakończone.",
"not_found": "Nie ma zadania o podanym ID.",
"invalid_id": "Błędny format ID zadania.",
"description": "Dodaj lub wykonaj wskazane zadanie."
"description": "Dodaj lub wykonaj wskazane zadanie.",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "Odtwarza przerywnik filmowy"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "Ponowne ładowanie konfiguracji...",
@@ -321,7 +354,7 @@
"team": {
"invalid_usage": "Nieprawidłowe użycie komendy.",
"invalid_index": "Błędny indeks.",
"add_too_much": "Można mieć maksymalnie %s postaci w zespole.",
"add_too_much": "Można mieć maksymalnie %d postaci w zespole.",
"failed_to_add_avatar": "Błąd podczas dodawania awatara o ID \"%s\".",
"failed_to_parse_index": "Błąd podczas przetwarzania indeksu \"%s\".",
"remove_too_much": "Nie możesz usunąć wszystkich awatarów w zespole.",
@@ -329,7 +362,7 @@
"index_out_of_range": "Podany indeks nie mieści się w swoim zakresie.",
"failed_parse_avatar_id": "Błędny ID awatara \"%s\".",
"avatar_already_in_team": "Podany awatar jest już w zespole wybranego gracza.",
"avatar_not_found": "Awatar o ID \"%s\" nie istnieje.",
"avatar_not_found": "Awatar o ID \"%d\" nie istnieje.",
"description": "Modyfikuj zespół wybranego gracza."
},
"teleportAll": {
@@ -343,6 +376,17 @@
"success": "Gracz %s został przeniesiony do pozycji (%s, %s, %s) w scenie o ID %s.",
"description": "Przemieść wybranego gracza do podanej pozycji w podanej scenie."
},
"trialAvatarActivity": {
"description": "Manipuluj funkcjami Trial Avatar Activity. Obejmuje to przełączanie stanów lochów i nagród.",
"not_found": "Nie znaleziono danych gracza o aktywności awatara w wersji próbnej. Być może aktywność nie jest włączona.",
"invalid_param": "Niewłaściwy parametr.",
"schedule_not_found": "Nie znaleziono harmonogramu %s.",
"success_schedule": "Zmieniono identyfikator harmonogramu na %s.",
"success_dungeon": "Przełączono stan lochów awatara %s.",
"success_dungeon_all": "Zmieniono stan lochów wszystkich awatarów.",
"success_reward": "Zmieniono status nagrody awatara %s.",
"success_reward_all": "Zmieniono status nagrody dla wszystkich awatarów."
},
"weather": {
"success": "ID pogody został ustawiony na %s, a typ klimatu na %s.",
"status": "Bieżące ID pogody to %s, a typ klimatu to %s.",
@@ -362,6 +406,9 @@
"success": "Pomyślnie odbanowano podanego gracza.",
"failure": "Gracz o podanym ID nie istnieje.",
"description": "Odbanuj podanego gracza."
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -413,6 +460,10 @@
"enabling_plugin": "Włączanie pluginu: %s",
"enabling_failed": "Nie udało się załączyć pluginu: %s",
"disabling_plugin": "Wyłączanie pluginu: %s",
"disabling_failed": "Nie udało się wyłączyć pluginu: %s"
"disabling_failed": "Nie udało się wyłączyć pluginu: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "Versiunea de joc: %s",
"resources": {
"loading": "Se încarcă resursele...",
"finish": "Resursele au fost încărcate."
"finish": "Resursele au fost încărcate.",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "ID de artefact invalid.",
"avatarId": "ID de avatar invalid.",
"avatarLevel": "avatarLevel invalid.",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "ID de entitate invalid.",
"itemId": "ID-ul articolului invalid.",
"itemLevel": "itemLevel invalid.",
@@ -166,6 +170,10 @@
"in_dungeon_error": "Ești deja în acea temniță.",
"description": "Intră într-o temniță."
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "Utilizare: give <artifactID> [mainPropID] [<appendPropID>[,<t>]]... [lv<nivel 0-20>]",
"illegal_relic": "Acest ID de artefact aparține unui interval de pe lista neagră, este posibil să nu fie cel pe care l-ați dorit.",
@@ -230,7 +238,32 @@
"finished": "Ați terminat misiunea %s.",
"not_found": "Misiunea nu a fost găsită.",
"invalid_id": "ID-ul misiunii nu a fost găsit.",
"description": "Adaugă sau termină misiuni"
"description": "Adaugă sau termină misiuni",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "🇺🇸Plays a cutscene"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "Se reîncarcă configurația.",
@@ -329,7 +362,7 @@
"index_out_of_range": "Indexul specificat este în afara intervalului.",
"failed_parse_avatar_id": "Nu a reușit să analizeze id-ul avatarului: %s",
"avatar_already_in_team": "Avatarul este deja în echipă.",
"avatar_not_found": "Avatarul %s nu a fost găsit.",
"avatar_not_found": "Avatarul %d nu a fost găsit.",
"description": "Modifică-ți echipa manual."
},
"teleportAll": {
@@ -343,6 +376,17 @@
"success": "Teleportat %s la %s, %s, %s în scena %s.",
"description": "Schimbă poziția jucătorului."
},
"trialAvatarActivity": {
"description": "Manipulați funcționalitățile activității de probă avatarului. Aceasta include comutarea stărilor de temniță și recompensă.",
"not_found": "Nie znaleziono danych gracza o aktywności awatara w wersji próbnej. Być może aktywność nie jest włączona.",
"invalid_param": "Niewłaściwy parametr.",
"schedule_not_found": "Nie znaleziono harmonogramu %s.",
"success_schedule": "Zmieniono identyfikator harmonogramu na %s.",
"success_dungeon": "Zmieniono stan lochów awatara %s.",
"success_dungeon_all": "Zmieniono stan lochów wszystkich awatarów.",
"success_reward": "Zmieniono status nagrody awatara %s.",
"success_reward_all": "Zmieniono status nagrody dla wszystkich awatarów."
},
"weather": {
"success": "A setat ID-ul meteo la %s cu tipul de climă %s",
"status": "ID-ul actual al vremii este %s cu tipul de climă %s",
@@ -362,6 +406,9 @@
"success": "Succes.",
"failure": "Eșec, jucătorul nu a fost găsit.",
"description": "Dezbancarea unui jucător"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -413,6 +460,10 @@
"enabling_plugin": "🇺🇸Enabling plugin: %s",
"enabling_failed": "🇺🇸Failed to enable plugin: %s",
"disabling_plugin": "🇺🇸Disabling plugin: %s",
"disabling_failed": "🇺🇸Failed to disable plugin: %s"
"disabling_failed": "🇺🇸Failed to disable plugin: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "Версия игры: %s",
"resources": {
"loading": "Загружаем ресурсы...",
"finish": "Загрузка ресурсов завершена."
"finish": "Загрузка ресурсов завершена.",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "Некорректный ID артефакта.",
"avatarId": "Некорректный ID персонажа.",
"avatarLevel": "Некорректный уровень персонажа (avatarLevel).",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "Некорректный ID сущности.",
"itemId": "Некорректный ID предмета.",
"itemLevel": "Некорректный уровень предмета (itemLevel).",
@@ -166,6 +170,10 @@
"in_dungeon_error": "Вы уже в этом подземелье.",
"description": "Позволяет войти в подземелье"
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "Применение: give <ID_артефакта> [ID_глав_хар-ки] [<ID доп_хар-ки>[,<раз>]]... [lv<уровень 0-20>]",
"illegal_relic": "Данный ID_артефакта находится в черном списке. Возможно, это не то, что вы хотите получить.",
@@ -230,7 +238,32 @@
"finished": "Квест %s был завершен.",
"not_found": "Квест не найден.",
"invalid_id": "Некорректный ID квеста.",
"description": "Добавляет (add) или завершает (finish) квесты"
"description": "Добавляет (add) или завершает (finish) квесты",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "Odtwarza przerywnik filmowy"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "Перезагружаем файл конфигурации.",
@@ -343,6 +376,17 @@
"success": "Игрок %s был телепортирован по координатам %s, %s, %s в сцене %s.",
"description": "Изменяет местоположение игрока"
},
"trialAvatarActivity": {
"description": "Управление функциями пробного аватара. Это включает в себя переключение состояний подземелий и наград.",
"not_found": "Данные об активности пробного аватара игрока не найдены. Возможно, активность не включена.",
"invalid_param": "Неверный параметр.",
"schedule_not_found": "Расписание %s не найдено.",
"success_schedule": "Идентификатор расписания изменен на %s.",
"success_dungeon": "Переключен статус подземелья аватара %s.",
"success_dungeon_all": "Переключен статус подземелий всех аватаров.",
"success_reward": "Переключен статус награды аватара %s.",
"success_reward_all": "Переключен статус вознаграждения всех аватаров."
},
"weather": {
"success": "Установлен ID погоды %s, тип климата: %s.",
"status": "Текущий ID погоды: %s, тип климата: %s.",
@@ -362,6 +406,9 @@
"success": "Успех.",
"failure": "Неудача, игрок не найден.",
"description": "Разблокировывает доступ к серверу (\"разбанивает\")"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -413,6 +460,10 @@
"enabling_plugin": "Включаем Плагин: %s",
"enabling_failed": "Ошибка включения Плагина: %s",
"disabling_plugin": "Отключаем Плагин: %s",
"disabling_failed": "Ошибка отключения Плагина: %s"
"disabling_failed": "Ошибка отключения Плагина: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -2,10 +2,10 @@
"messages": {
"game": {
"address_bind": "游戏服务器启动于 \u001b[1m\u001b[33m%s:%s\u001b[0m",
"port_bind": "游戏服务器已在端口 %s 上启动",
"connect": "客户端 %s 已连接",
"disconnect": "客户端 %s 已断开连接",
"game_update_error": "游戏更新时发生错误",
"port_bind": "游戏服务器已在端口 %s 上启动",
"connect": "客户端 %s 已连接",
"disconnect": "客户端 %s 已断开连接",
"game_update_error": "游戏更新时发生错误",
"command_error": "命令发生错误:"
},
"dispatch": {
@@ -14,12 +14,12 @@
"request": "[Dispatch] 客户端 %s 请求:%s %s",
"keystore": {
"general_error": "[Dispatch] 加载 keystore 文件时发生错误!",
"password_error": "[Dispatch] 加载 keystore 失败。正在尝试使用 keystore 默认密码...",
"no_keystore_error": "[Dispatch] 未找到 SSL 证书!已降级到 HTTP 模式",
"default_password": "[Dispatch] 成功加载 keystore 默认密码。请考虑将 config.json 中默认密码设置为 123456"
"password_error": "[Dispatch] 加载 keystore 文件失败。正在尝试使用 keystore 默认密码...",
"no_keystore_error": "[Dispatch] 未找到 SSL 证书!已回滚到 HTTP 模式",
"default_password": "[Dispatch] 成功加载 keystore 默认密码。请考虑将 config.json 中默认密码设置为 123456"
},
"authentication": {
"default_unable_to_verify": "[Authentication] 称为 verifyUser 的方法在默认验证程序中不可用"
"default_unable_to_verify": "[Authentication] 一些称为 verifyUser 的方法在默认验证程序中不可用"
},
"no_commands_error": "仅 Dispatch 模式不支持使用命令",
"unhandled_request_error": "[Dispatch] 潜在的未处理请求:%s %s",
@@ -31,7 +31,7 @@
"login_token_error": "[Dispatch] 客户端 %s 通过 token 登录失败",
"login_token_success": "[Dispatch] 客户端 %s 已通过 token 登录UID 为 %s",
"login_password_error": "[Dispatch] 客户端 %s 无法通过密码登录",
"login_password_storage_error": "[Dispatch] 客户端 %s 无法登录! 因为数据库中没有密码",
"login_password_storage_error": "[Dispatch] 客户端 %s 数据库中没有密码而无法登录",
"combo_token_success": "[Dispatch] 客户端 %s 成功交换 token",
"combo_token_error": "[Dispatch] 客户端 %s 交换 token 失败",
"account_login_create_success": "[Dispatch] 客户端 %s 登录失败:已注册 UID 为 %s 的账号",
@@ -53,17 +53,20 @@
"starting": "正在启动 Grasscutter...",
"shutdown": "正在关闭...",
"done": "加载完成!输入 \"help\" 查看命令列表",
"error": "发生了一个错误",
"error": "发生了一个错误",
"welcome": "欢迎使用 Grasscutter",
"run_mode_error": "无效的服务器运行模式:%s",
"run_mode_error": "无效的服务器运行模式:%s",
"run_mode_help": "服务器运行模式必须为 'HYBRID'(混合)、'DISPATCH_ONLY'(仅 Dispatch) 或 'GAME_ONLY'(仅游戏)。Grasscutter 启动失败...",
"create_resources": "正在创建 resources 目录...",
"resources_error": "请将 BinOutput 和 ExcelBinOutput 复制到 resources 目录",
"resources_error": "请将 BinOutput 和 ExcelBinOutput 复制到 resources 目录",
"version": "Grasscutter 版本:%s-%s",
"game_version": "游戏版本:%s",
"resources": {
"loading": "正在加载 resources...",
"finish": "完成加载 resources"
"finish": "完成加载 resources",
"custom": "在 'Anime-Game-Servers/CustomGCResources' 找到额外的 resources",
"missing_server": "为完整使用任务,推荐添加 'Server' 目录",
"missing_scenes": "为完整使用任务,推荐添加 'ScriptSceneData' 目录"
}
}
},
@@ -78,28 +81,29 @@
"no_usage_specified": "未指定用法",
"no_description_specified": "未指定说明",
"set_to": "%s 已设为 %s。",
"set_for_to": "%s [来自 %s] 已设为 %s。",
"set_for_to": "%s [玩家 %s] 已设为 %s。",
"invalid": {
"amount": "无效的数量。",
"artifactId": "无效的圣遗物ID。",
"avatarId": "无效的角色ID。",
"artifactId": "无效的圣遗物 ID。",
"avatarId": "无效的角色 ID。",
"avatarLevel": "无效的角色等级。",
"entityId": "无效的实体ID。",
"itemId": "无效的物品ID。",
"cfgId": "无效的 cfg ID。",
"entityId": "无效的实体 ID。",
"itemId": "无效的物品 ID。",
"itemLevel": "无效的物品等级。",
"itemRefinement": "无效的物品精炼等级。",
"statValue": "无效的属性值。",
"value_between": "无效的数值:%s 必须在 %s 和 %s 之间。",
"playerId": "无效的玩家ID。",
"uid": "无效的UID。",
"id": "无效的ID。"
"playerId": "无效的玩家 ID。",
"uid": "无效的 UID。",
"id": "无效的 ID。"
}
},
"execution": {
"usage_prefix": "用法:",
"player_exist_error": "玩家不存在。",
"player_offline_error": "玩家已离线。",
"item_player_exist_error": "无效的物品/玩家UID。",
"item_player_exist_error": "无效的物品/玩家 UID。",
"player_exist_offline_error": "玩家不存在或已离线。",
"argument_error": "无效的参数。",
"clear_target": "目标已清除。",
@@ -117,7 +121,7 @@
"success": "成功"
},
"account": {
"invalid": "无效的UID。",
"invalid": "无效的 UID。",
"exists": "具有此用户名和/或 UID 的账号已存在。",
"create": "已创建 UID 为 %s 的账号。",
"delete": "账号已删除。",
@@ -126,22 +130,22 @@
},
"achievement": {
"success": {
"grant": "🇺🇸Granted the achievement to %s.",
"revoke": "🇺🇸Revoked the achievement from %s.",
"progress": "🇺🇸Set progress of %s's achievement(id: %s) to %s.",
"grantall": "🇺🇸Granted %s achievement(s) to %s.",
"revokeall": "🇺🇸Revoked %s achievement(s) from %s."
"grant": "已为 %s 授予成就。",
"revoke": "已撤销 %s 的成就。",
"progress": "已设置 %s 的成就进度(ID %s) %s",
"grantall": "已授予 %s 条成就 [玩家 %s]。",
"revokeall": "已撤销 %s 条成就 [玩家 %s]。"
},
"fail": {
"achievement_not_found": "🇺🇸Achievement not found.",
"already_achieved": "🇺🇸%s has already achieved the achievement.",
"not_yet_achieved": "🇺🇸%s hasn't achieved the achievement yet."
"achievement_not_found": "未找到成就。",
"already_achieved": "%s 已经达成了成就。",
"not_yet_achieved": "%s 还未达成成就。"
},
"description": "🇺🇸Grant, Revoke or Progress achievements."
"description": "达成、撤销成就或设置成就进度"
},
"announce": {
"send_success": "成功发送了一则公告,你可以通过 /a revoke %s 撤销。",
"refresh_success": "成功刷新了公告配置[共 %s 个]",
"refresh_success": "成功刷新了公告配置 [共 %s 个]",
"revoke_done": "尝试撤回公告 %s。",
"not_found": "找不到公告 %s。",
"description": "向所有在线玩家发送公告,或者管理服务器的公告"
@@ -166,11 +170,15 @@
"in_dungeon_error": "你已经在这个秘境中了。",
"description": "进入指定秘境"
},
"entity": {
"description": "编辑现存实体的属性",
"not_found_error": "实体不存在。"
},
"give": {
"usage_relic": "用法give <圣遗物ID> [主词条ID] [<副词条ID>[,<强化次数>]]... [lv<等级 0-20>]",
"illegal_relic": "此圣遗物ID属于黑名单范围也许不是你想要的。",
"usage_relic": "用法give <圣遗物 ID> [主词条 ID] [<副词条 ID>[,<强化次数>]]... [lv<等级 0-20>]",
"illegal_relic": "此圣遗物 ID 属于黑名单范围,也许不是你想要的。",
"given": "已将 %s 个 %s 给予 %s。",
"given_with_level_and_refinement": "已将 %s [等级 %s, 精炼 %s] %s 个给予 %s。",
"given_with_level_and_refinement": "已将 %s [等级 %s精炼 %s] %s 个给予 %s。",
"given_level": "已将 %s [等级 %s] %s 个给予 %s。",
"given_avatar": "已将角色 %s [等级 %s] 给与 %s。",
"giveall_success": "成功给予全部物品。",
@@ -185,7 +193,7 @@
"available_commands": "可用命令:",
"tip_need_permission": "所需权限:",
"tip_need_no_permission": "无",
"tip_permission_targeted": " (对其他玩家使用这个命令还需要权限 %s)",
"tip_permission_targeted": "(对其他玩家使用这个命令还需要权限 %s)",
"warn_player_has_no_permission": "注意:你没有执行这个命令的权限。",
"description": "发送帮助信息或显示指定命令的信息"
},
@@ -196,11 +204,11 @@
},
"killall": {
"scene_not_found_in_player_world": "未在玩家世界中找到此场景。",
"kill_monsters_in_scene": "已杀死 %s 个怪物 [场景ID: %s ]",
"kill_monsters_in_scene": "已杀死 %s 个怪物 [场景 ID%s]。",
"description": "杀死所有怪物"
},
"killCharacter": {
"success": "已杀死 %s 当前角色。",
"success": "已杀死 %s 当前角色。",
"description": "杀死玩家当前角色"
},
"language": {
@@ -222,15 +230,40 @@
"description": "添加或移除指定玩家的权限"
},
"position": {
"success": "坐标:%s, %s, %s\n旋转%s, %s, %s\n场景ID%s",
"success": "坐标:%s, %s, %s\n旋转%s, %s, %s\n场景 ID%s",
"description": "获取所在位置和旋转信息"
},
"quest": {
"added": "已添加任务 %s。",
"finished": "已完成任务 %s。",
"not_found": "任务不存在。",
"invalid_id": "无效的任务ID。",
"description": "添加或完成任务"
"invalid_id": "无效的任务 ID。",
"description": "添加或完成任务",
"running": "任务 %s 的状态为 %s (%s)。",
"talking": "对话 %s 的状态为 %s [主要任务 %s] (%s)。",
"state": {
"none": "未知(无)",
"unstarted": "未完成(未开始,未结束)",
"unfinished": "未完成(已开始,未结束)",
"finished": "已完成(已结束)",
"failed": "已完成(已结束,失败)",
"exists": "存在",
"not_exists": "未找到"
},
"enabled": "任务已启用。"
},
"group": {
"invalid_groupid": "无效的 group ID。",
"invalid_suiteid": "无效的 suite ID。",
"group_not_found": "Group 不存在。",
"description": "更改 group 的加载",
"refreshed": "Group %s 已刷新。"
},
"cutscene": {
"description": "播放过场动画"
},
"sound": {
"description": "播放声音"
},
"reload": {
"reload_start": "正在重载配置文件和数据...",
@@ -238,7 +271,7 @@
"description": "重载配置文件和数据"
},
"resetConst": {
"reset_all": "重置所有角色的命之座。",
"reset_all": "重置所有角色的命之座。",
"success": "已重置 %s 的命之座,重新登录后生效。",
"description": "重置当前角色的命之座,执行命令后需重新登录以生效"
},
@@ -247,25 +280,25 @@
"description": "重置指定玩家的商店刷新时间"
},
"sendMail": {
"give_usage": "使用:/give <UID> <物品ID|物品名称> [数量] [等级] [精炼等级]",
"give_usage": "使用:/give <UID> <物品 ID|物品名称> [数量] [等级] [精炼等级]",
"user_not_exist": "玩家 '%s' 不存在。",
"start_composition": "开始撰写邮件。\n请使用 '/sendmail <标题>' 继续。\n你可以随时使用 '/sendmail stop' 停止。",
"templates": "邮件模板尚未实装...",
"invalid_arguments": "无效的参数。",
"send_cancel": "取消发送邮件",
"send_cancel": "取消发送邮件",
"send_done": "已将邮件发送给 %s",
"send_all_done": "邮件已发送给所有人!",
"not_composition_end": "邮件撰写未到最后阶段。\n请使用 '/sendmail %s' 继续,或使用 '/sendmail stop' 停止。",
"please_use": "请使用 '/sendmail %s'",
"set_title": "成功将邮件标题设为 '%s'。\n使用 '/sendmail <正文>' 来设置邮件内容。",
"set_contents": "成功将邮件内容设为 '%s'。\n使用 '/sendmail <发件人>' 来设置发件人。",
"set_message_sender": "发件人已设为 '%s'。\n使用 '/sendmail <物品ID|物品名称|finish> [数量] [等级]' 来添加附件。",
"set_message_sender": "发件人已设为 '%s'。\n使用 '/sendmail <物品 ID|物品名称|finish> [数量] [等级]' 来添加附件。",
"send": "已添加 %s 个 %s [等级 %s] 附件。\n如果没有要继续添加的附件请使用 `/sendmail finish` 来发送邮件。",
"invalid_arguments_please_use": "无效的参数。\n请使用 '/sendmail %s'",
"title": "<标题>",
"message": "<正文>",
"sender": "<发件人>",
"arguments": "<物品ID|物品名称|finish> [数量] [等级]",
"arguments": "<物品 ID|物品名称|finish> [数量] [等级]",
"error": "错误:无效的撰写阶段 %s。需要 StackTrace 请查看控制台。",
"description": "向指定用户发送邮件。此命令的用法会根据撰写阶段而改变"
},
@@ -289,14 +322,14 @@
"description": "设置当前角色的好感度等级"
},
"setProp": {
"description": "设置账号的状态。比如可以通过此命令启用 godmode也可以解锁深渊或更改纪行等级\n\t可更改的状态列表godmode(上帝模式)|nostamina(无限体力)|unlimitedenergy(无限能量)|abyss(深渊)|worldlevel(世界等级)|bplevel(纪行等级)\n\t查看 PlayerProperty enum 以获得其他数值,格式为 PROP_MAX_SPRING_VOLUME -> max_spring_volume"
"description": "设置账号的状态。比如可以通过此命令启用 GodMode也可以解锁深渊或更改纪行等级\n\t可更改的状态列表(不区分大小写)GodMode(上帝模式)|UnlimitedStamina(无限体力)|UnlimitedEnergy(无限能量)|TowerLevel(深渊)|WorldLevel(世界等级)|BPLevel(纪行等级)|SetOpenState(设置开放状态)|UnsetOpenState(取消开放状态)|UnlockMap(解锁地图)\n\t查看 PlayerProperty enum 以获得其他数值,格式为 PROP_MAX_SPRING_VOLUME -> max_spring_volume"
},
"setStats": {
"description": "设置当前角色的属性\n\t可更改的属性列表hp(生命值)|maxhp(最大生命值)|def(防御力)|atk(攻击力)|em(元素精通)|er(元素充能效率)|crate(暴击率)|cdmg(暴击伤害)|cdr(冷却缩减)|heal(治疗加成)|heali(受治疗加成)|shield(护盾强效)|defi(无视防御)\n\t元素增伤epyro(火)|ecryo(冰)|ehydro(水)|egeo(岩)|edendro(草)|eelectro(雷)|ephys(物理)\n\t元素抗性respyro(火)|rescryo(冰)|reshydro(水)|resgeo(岩)|resdendro(草)|reselectro(雷)|resphys(物理)",
"locked_to": "%s 已锁定为%s。",
"locked_for_to": "%s [来自 %s] 已锁定为%s。",
"locked_to": "%s 已锁定为 %s。",
"locked_for_to": "%s [玩家 %s] 已锁定为 %s。",
"unlocked": "%s 已解锁。",
"unlocked_for": "%s [来自 %s] 已解锁。"
"unlocked_for": "%s [玩家 %s] 已解锁。"
},
"spawn": {
"success": "已生成 %s 个 %s。",
@@ -309,9 +342,9 @@
},
"talent": {
"out_of_range": "无效的天赋等级。天赋等级必须在 1-15 之间。",
"set_id": "修改技能 %s - \"%s\" %s。",
"set_id": "修改技能 %s - \"%s\" %s。",
"id_desc": "技能 %s - \"%s\" - \"%s\"",
"invalid_skill_id": "无效的技能ID。",
"invalid_skill_id": "无效的技能 ID。",
"invalid_level": "无效的天赋等级。",
"normal_attack_id": "普通攻击的 ID 为 %s。",
"e_skill_id": "元素战技的 ID 为 %s。",
@@ -322,12 +355,12 @@
"invalid_usage": "无效的用法。",
"invalid_index": "无效的索引。",
"add_too_much": "服务端仅允许你队伍里至多有 %s 名角色。",
"failed_to_add_avatar": "无法根据ID %s 添加角色。",
"failed_to_add_avatar": "无法根据 ID %s 添加角色。",
"failed_to_parse_index": "无法解析索引:%s",
"remove_too_much": "你不能删除那么多角色,你的队伍列表将为空。",
"ignore_index": "忽略的索引列表:%s",
"index_out_of_range": "你指定的索引超出了范围。",
"failed_parse_avatar_id": "无法解析的角色ID%s",
"failed_parse_avatar_id": "无法解析的角色 ID%s",
"avatar_already_in_team": "角色已经在你的队伍中了。",
"avatar_not_found": "无法找到该角色:%s",
"description": "手动修改你的队伍"
@@ -343,10 +376,21 @@
"success": "传送 %s 到坐标 %s, %s, %s场景为 %s。",
"description": "改变指定玩家的位置"
},
"trialAvatarActivity": {
"description": "控制试用角色的活动。可以切换秘境和奖励的状态",
"not_found": "未找到试用角色活动的玩家数据。也许该活动未被启用。",
"invalid_param": "无效的参数。",
"schedule_not_found": "未找到计划 %s。",
"success_schedule": "已将计划 ID 更改为 %s。",
"success_dungeon": "已切换角色 %s 的秘境状态。",
"success_dungeon_all": "已切换所有角色的秘境状态。",
"success_reward": "已切换角色 %s 的奖励状态。",
"success_reward_all": "已切换所有角色的奖励状态。"
},
"weather": {
"success": "已设置天气ID 为 %s气候类型为 %s。",
"status": "当前天气ID 为 %s气候类型为 %s。",
"description": "更改天气ID和气候类型\n\t天气ID可以在 ./Resources/ExcelBinOutput/WeatherExcelConfigData.json 中找到\n\t气候类型sunny(晴天), cloudy(多云), rain(雨), thunderstorm(雷雨), snow(雪), mist(雾)"
"success": "已设置天气 ID 为 %s气候类型为 %s。",
"status": "当前天气 ID 为 %s气候类型为 %s。",
"description": "更改天气 ID 和气候类型\n\t天气 ID 可以在 ./Resources/ExcelBinOutput/WeatherExcelConfigData.json 中找到\n\t气候类型sunny(晴天), cloudy(多云), rain(雨), thunderstorm(雷雨), snow(雪), mist(雾)"
},
"ban": {
"success": "成功封禁玩家。",
@@ -355,13 +399,16 @@
"description": "封禁玩家"
},
"unlockall": {
"success": "已为%s 解锁全部开放状态。",
"success": "已为 %s 解锁全部开放状态。",
"description": "为玩家解锁全部开放状态"
},
"unban": {
"success": "成功取消玩家的封禁。",
"failure": "取消玩家的封禁失败,因为玩家不存在。",
"description": "取消玩家的封禁"
},
"troubleshoot": {
"description": "生成问题排除用的 debug 信息"
}
},
"gacha": {
@@ -402,9 +449,9 @@
"plugin": {
"directory_failed": "无法创建插件目录:",
"unable_to_load": "无法加载插件。",
"invalid_config": "插件%s 的配置文件无效。",
"invalid_main_class": "插件%s 的主类无效。",
"missing_config": "插件%s 缺少有效的配置文件。",
"invalid_config": "插件 %s 的配置文件无效。",
"invalid_main_class": "插件 %s 的主类无效。",
"missing_config": "插件 %s 缺少有效的配置文件。",
"failed_to_load_plugin": "无法加载插件:%s",
"failed_to_load": "无法加载插件。",
"failed_to_load_dependencies": "无法加载插件依赖。",
@@ -413,6 +460,10 @@
"enabling_plugin": "启用插件:%s",
"enabling_failed": "无法启用插件:%s",
"disabling_plugin": "正在禁用插件:%s",
"disabling_failed": "无法禁用插件:%s"
"disabling_failed": "无法禁用插件:%s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}

View File

@@ -63,7 +63,10 @@
"game_version": "遊戲版本:%s",
"resources": {
"loading": "加載資源中...",
"finish": "資源加載完成.。"
"finish": "資源加載完成.。",
"custom": "🇺🇸Find additional resources at: 'Anime-Game-Servers/CustomGCResources'.",
"missing_server": "🇺🇸To fully use questing, it is recommended to add the 'Server' folder.",
"missing_scenes": "🇺🇸To fully use questing, it is recommended to add the 'ScriptSceneData' folder."
}
}
},
@@ -84,6 +87,7 @@
"artifactId": "無效的聖遺物ID。",
"avatarId": "無效的角色ID。",
"avatarLevel": "無效的角色等級。",
"cfgId": "🇺🇸Invalid cfg ID.",
"entityId": "無效的實體ID。",
"itemId": "無效的物品ID。",
"itemLevel": "無效的物品等級。",
@@ -166,6 +170,10 @@
"in_dungeon_error": "你已經在祕境中了。",
"description": "進入指定祕境。"
},
"entity": {
"description": "🇺🇸Modify an existing entity's properties",
"not_found_error": "🇺🇸Entity does not exist"
},
"give": {
"usage_relic": "用法: give <artifactID> [mainPropID] [<appendPropID>[,<times>]]... [lv<level 0-20>]",
"illegal_relic": "你不可以取得這個聖遺物因為該聖遺物ID在黑名單列表內。",
@@ -230,7 +238,32 @@
"finished": "已完成任務 %s",
"not_found": "未找到任務",
"invalid_id": "無效的任務ID",
"description": "添加或完成任務"
"description": "添加或完成任務",
"running": "🇺🇸Quest %s is %s (%s).",
"talking": "🇺🇸Talk %s is %s for main quest %s (%s).",
"state": {
"none": "🇺🇸unknown (none)",
"unstarted": "🇺🇸unfinished (not started, not completed)",
"unfinished": "🇺🇸unfinished (started, not completed)",
"finished": "🇺🇸finished (completed)",
"failed": "🇺🇸finished (completed, but failed)",
"exists": "🇺🇸found",
"not_exists": "🇺🇸not found"
},
"enabled": "🇺🇸Questing enabled."
},
"group": {
"invalid_groupid": "🇺🇸Invalid group ID.",
"invalid_suiteid": "🇺🇸Invalid suite ID.",
"group_not_found": "🇺🇸Group not found.",
"description": "🇺🇸Alter group loading",
"refreshed": "🇺🇸Group %s refreshed."
},
"cutscene": {
"description": "🇺🇸Plays a cutscene"
},
"sound": {
"description": "🇺🇸Plays a sound"
},
"reload": {
"reload_start": "正在重新加載設定檔。",
@@ -343,6 +376,17 @@
"success": "傳送 %s 到座標 %s,%s,%s ,場景為 %s 。",
"description": "將玩家的位置傳送到你所指定的座標。"
},
"trialAvatarActivity": {
"description": "操縱試用角色活動的功能。這包括切換地牢和獎勵的狀態。",
"not_found": "未找到試用角色活動玩家數據。也許該活動未被啟用。",
"invalid_param": "無效的參數。",
"schedule_not_found": "未找到計劃 %s。",
"success_schedule": "已將計劃 ID 更改為 %s。",
"success_dungeon": "已切換角色 %s 的地牢狀態。",
"success_dungeon_all": "已切換所有角色的地牢狀態。",
"success_reward": "已切換角色 %s 的獎勵狀態。",
"success_reward_all": "已切換所有角色的獎勵狀態。"
},
"weather": {
"success": "已設定天氣ID 為 %s氣候型別為 %s。",
"status": "當前天氣ID 為 %s氣候型別為 %s。",
@@ -362,6 +406,9 @@
"success": "撤銷停權成功。",
"failure": "撤銷停權失敗,玩家帳號不存在。",
"description": "撤銷停權指定玩家。"
},
"troubleshoot": {
"description": "🇺🇸Generate debugging information for troubleshooting."
}
},
"gacha": {
@@ -413,6 +460,10 @@
"enabling_plugin": "🇺🇸Enabling plugin: %s",
"enabling_failed": "🇺🇸Failed to enable plugin: %s",
"disabling_plugin": "🇺🇸Disabling plugin: %s",
"disabling_failed": "🇺🇸Failed to disable plugin: %s"
"disabling_failed": "🇺🇸Failed to disable plugin: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}