diff --git a/src/main/resources/languages/es-ES.json b/src/main/resources/languages/es-ES.json new file mode 100644 index 000000000..587f6dc46 --- /dev/null +++ b/src/main/resources/languages/es-ES.json @@ -0,0 +1,383 @@ +{ + "messages": { + "game": { + "port_bind": "Servidor del juego iniciado en el puerto %s", + "connect": "Cliente conectado desde %s", + "disconnect": "Cliente desconectado desde %s", + "game_update_error": "Ha ocurrido un error durante la actualización del juego.", + "command_error": "Comando de error:" + }, + "dispatch": { + "port_bind": "[Dispatch] El servidor de envío se inicio en el puerto %s", + "request": "[Dispatch] Petición %s %s del cliente: %s", + "keystore": { + "general_error": "[Dispatch] ¡Error mientras se cargaba el keystore!", + "password_error": "[Dispatch] No se puede cargar el keystore. Probando contraseña por defecto del keystore...", + "no_keystore_error": "[Dispatch] ¡No se ha encontrado el certificado SSL! Volviendo al servidor HTTP.", + "default_password": "[Dispatch] La contraseña por defecto del keystore se cargó correctamente. Por favor considera establecer la contraseña a 123456 en config.json." + }, + "authentication": { + "default_unable_to_verify": "[Authentication] Algo invocó el método verifyUser que no está disponible en el manejador de autentificación por defecto." + }, + "no_commands_error": "No se soporta el uso de comandos en modo de solo envío.", + "unhandled_request_error": "[Dispatch] Petición potencialmente no manejada %s : %s.", + "account": { + "login_attempt": "[Dispatch] El cliente %s esta intentando iniciar sesión.", + "login_success": "[Dispatch] El cliente %s inició sesión como %s.", + "login_max_player_limit": "[Dispatch] El cliente %s falló al iniciar sesión: Se ha alcanzado el límite de jugadores activos", + "login_token_attempt": "[Dispatch] El cliente %s está intentando iniciar sesión a través de un token.", + "login_token_error": "[Dispatch] El cliente %s falló al iniciar sesión a través de un token.", + "login_token_success": "[Dispatch] El cliente %s inició sesión a través de un token como %s.", + "combo_token_success": "[Dispatch] El cliente %s intercambió el combo token exitosamente.", + "combo_token_error": "[Dispatch] El cliente %s falló al intercambiar el combo token.", + "account_login_create_success": "[Dispatch] El cliente %s falló al iniciar sesión: Cuenta %s creada.", + "account_login_create_error": "[Dispatch] El cliente %s falló al iniciar sesión: Fallo al crear la cuenta.", + "account_login_exist_error": "[Dispatch] El cliente %s falló al iniciar sesión: Cuenta no encontrada.", + "account_cache_error": "Error de información de cache de la cuenta del juego.", + "session_key_error": "Clave de sesión incorrecta.", + "username_error": "Nombre de usuario no encontrado.", + "username_create_error": "Nombre de usuario no encontrado, la creación falló.", + "server_max_player_limit": "Se ha alcanzado el límite de jugadores activos" + }, + "router_error": "[Dispatch] No se ha podido vincular el router." + }, + "status": { + "free_software": "Grasscutter es software GRATUITO. Si has pagado por esto, puede que hayas sido estafado. Página del proyecto: https://github.com/Grasscutters/Grasscutter", + "starting": "Iniciando Grasscutter...", + "shutdown": "Finalizando...", + "done": "¡Hecho! Para ayuda, escribe \"help\"", + "error": "Ha ocurrido un error.", + "welcome": "¡Bienvenido a Grasscutter!", + "run_mode_error": "Modo de ejecución del servidor inválido: %s.", + "run_mode_help": "El modo de ejecución del servidor debe ser 'HYBRID', 'DISPATCH_ONLY', o 'GAME_ONLY'. No se ha podido iniciar Grasscutter...", + "create_resources": "Creando carpeta de recursos...", + "resources_error": "Copia las carpetas 'BinOutput' y 'ExcelBinOutput' en la carpeta resources.", + "version": "Versión de Grasscutter: %s-%s", + "game_version": "Versión del juego: %s", + "resources": { + "loading": "Cargando recursos...", + "finish": "Ha finalizado la carga de recursos." + } + } + }, + "commands": { + "generic": { + "not_specified": "Np se ha especificado un comando.", + "unknown_command": "Comando desconocido: %s", + "permission_error": "No tienes permiso para ejecutar este comando.", + "console_execute_error": "Este comando solo puede ser ejecutado desde la consola.", + "player_execute_error": "Ejecuta este comando desde el juego.", + "command_exist_error": "Ningún comando encontrado.", + "no_usage_specified": "No se ha especificado el uso", + "no_description_specified": "No se ha especificado la descripción", + "set_to": "Se ha establecido %s a %s.", + "set_for_to": "%s por %s establecido a %s.", + "invalid": { + "amount": "Cantidad no válida.", + "artifactId": "ID de artefacto no válido.", + "avatarId": "ID de avatar no válido.", + "avatarLevel": "avatarLevel inválido.", + "entityId": "ID de entidad inválido.", + "itemId": "ID de objeto inválido.", + "itemLevel": "itemLevel inválido.", + "itemRefinement": "itemRefinement inválido.", + "statValue": "Valor de estado inválido.", + "value_between": "Valor inválido: %s debe estar entre %s y %s.", + "playerId": "ID de jugador inválido.", + "uid": "UID inválido.", + "id": "ID inválido." + } + }, + "execution": { + "player_exist_error": "Jugador no encontrado.", + "player_offline_error": "El jugador no está activo.", + "item_player_exist_error": "Objeto o UID inválido.", + "player_exist_offline_error": "Jugador no encontrado o no está activo.", + "argument_error": "Argumentos inválidos.", + "clear_target": "Objetivo desfijado.", + "set_target": "Los siguientes comandos irán solo a @%s por defecto.", + "set_target_online": "@%s está activo. Algunos comandos pueden requerir un usuario inactivo.", + "set_target_offline": "@%s está inactivo. Algunos comandos pueden requerir un usuario activo.", + "need_target": "Este comando requiere un UID objetivo. Añade un argumento <@UID> o fija un objetivo persistente con /target @UID.", + "need_target_online": "Este comando requiere un UID objetivo activo, pero el objetivo actual está inactivo. Añade un argumento <@UID> diferente o fija un objetivo persistente con /target @UID.", + "need_target_offline": "Este comando requiere un UID objetivo inactivo, pero el objetivo actual está activo. Añade un argumento <@UID> diferente o fija un objetivo persistente con /target @UID." + }, + "status": { + "enabled": "Activado", + "disabled": "Desactivado", + "help": "Ayuda", + "success": "Exitoso" + }, + "account": { + "command_usage": "Uso: account [UID]", + "invalid": "UID inválido.", + "exists": "Una cuenta con este nombre de usuario y/o UID ya existe.", + "create": "Cuenta creada con UID %s.", + "delete": "Cuenta borrada.", + "no_account": "Cuenta no encontrada.", + "description": "Modifica las cuentas de usuario" + }, + "clear": { + "command_usage": "Uso: clear ", + "weapons": "Eliminadas las armas para %s.", + "artifacts": "Eliminados los artefactos para %s.", + "materials": "Eliminados los materiales para %s.", + "furniture": "Eliminados los muebles para %s.", + "displays": "Eliminadas las vistas para %s.", + "virtuals": "Eliminados los virtuales para %s.", + "everything": "Eliminado todo para %s.", + "description": "Elimina objetos desbloqueados no equipados, incluyendo objetos de rareza dorada, de tu inventario" + }, + "coop": { + "usage": "Uso: coop [UID del host]", + "success": "Invocado %s al mundo de %s.", + "description": "Fuerza a alquien a ser invocado al mundo de otro. Si no se establece un objetivo, te envía a tí al modo cooperativo." + }, + "enter_dungeon": { + "usage": "Uso: enterdungeon ", + "changed": "Cambiado a la mazmorra %s.", + "not_found_error": "La mazmorra no existe.", + "in_dungeon_error": "Ya estás en esa mazmorra.", + "description": "Te introduce en una mazmorra" + }, + "give": { + "usage": "Uso: give [x] [lv] [r]", + "usage_relic": "Uso: give [mainPropID] [[,]]... [lv]", + "illegal_relic": "Este artifactID pertenece a un rango de la lista negra, puede que no sea el que buscas.", + "given": "Dado %s de %s a %s.", + "given_with_level_and_refinement": "Dado %s con nivel %s, refinamiento %s %s veces a %s.", + "given_level": "Dado %s con nivel %s %s veces a %s.", + "given_avatar": "Dado %s con nivel %s a %s.", + "giveall_success": "Se han dado todos los objetos correctamente.", + "description": "Da un objeto a tí o al jugador especificado. También puede dar armas, avatares y/o materiales, y puede construir artefactos personalizados." + }, + "heal": { + "success": "Todos los personajes han sido curados.", + "description": "Cura a todos los personajes en tu equipo actual." + }, + "help": { + "usage": "Uso: ", + "aliases": "Aliases: ", + "available_commands": "Comandos disponibles: ", + "description": "Envía el mensaje de ayuda o muestra información sobre un comando específico" + }, + "kick": { + "player_kick_player": "El jugador [%s:%s] ha echado al jugador [%s:%s]", + "server_kick_player": "Echando al jugador [%s:%s]...", + "description": "Echa al jugador específico del servidor (WIP)" + }, + "killall": { + "usage": "Uso: killall [playerUID] [sceneID]", + "scene_not_found_in_player_world": "Escenario no encontrado en el mundo del jugador.", + "kill_monsters_in_scene": "Matando %s monstruos en el escenario %s.", + "description": "Mata todas las entidades" + }, + "killCharacter": { + "usage": "Uso: killcharacter [playerID]", + "success": "Se ha matado al personaje actual de %s.", + "description": "Mata al personaje actual del jugador" + }, + "language": { + "current_language": "El idioma actual es %s.", + "language_changed": "Idioma cambiado a %s.", + "language_not_found": "El servidor no tiene ese idioma actualmente.", + "description": "Muestra o cambia el idioma actual" + }, + "list": { + "success": "Hay %s jugador(es) activos:", + "description": "Lista los jugadores activos" + }, + "permission": { + "usage": "Uso: permission ", + "add": "Permiso añadido.", + "has_error": "¡Ya tiene este permiso!", + "remove": "Permiso eliminado.", + "not_have_error": "¡No tiene este permiso!", + "account_error": "La cuenta no puede ser encontrada.", + "description": "Da o quita un permiso a un jugador" + }, + "position": { + "success": "Coordenadas: %s, %s, %s\nID de la escena: %s", + "description": "Da las coordenadas" + }, + "quest": { + "usage": "quest [questID]", + "added": "Misión %s añadida.", + "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" + }, + "reload": { + "reload_start": "Recargando configuración.", + "reload_done": "Recarga completada.", + "description": "Recarga la configuración del servidor" + }, + "resetConst": { + "reset_all": "Reinicia las constelaciones de todos los avatares.", + "success": "Las constelaciones para %s han sido reiniciadas. Por favor, vuelve a iniciar sesión para ver los cambios.", + "description": "Reinicia el nivel de constelación en tu personaje actual, necesitarás iniciar sesión de nuevo para ver los cambios" + }, + "resetShopLimit": { + "usage": "Uso: resetshop ", + "success": "Reinicio completado.", + "description": "Reinicia el tiempo de refrescado de la tienda del jugador objetivo" + }, + "sendMail": { + "usage": "Uso: sendmail [templateID]", + "user_not_exist": "El usuario con ID '%s' No existe.", + "start_composition": "Empezando la construcción del correo.\nPor favor usa '/sendmail ' para continuar.\nPuedes usar '/sendmail stop' en cualquier momento.", + "templates": "Las plantillas de correos se implementarán pronto...", + "invalid_arguments": "Argumentos inválidos.", + "send_cancel": "Envío de mensaje cancelado.", + "send_done": "¡Mensaje enviado al usuario %s!", + "send_all_done": "¡Mensaje enviado a todos los usuarios!", + "not_composition_end": "La construcción del mensaje no está en la fase final.\nPor favor usa '/sendmail %s' o '/sendmail stop' para cancelar", + "please_use": "Por favor usa '/sendmail %s'", + "set_title": "Título del mensaje establecido a '%s'.\nUsa '/sendmail ' para continuar.", + "set_contents": "Contenido del mensaje establecido a '%s'.\nUse '/sendmail ' para continuar.", + "set_message_sender": "Remitente del mensaje establecido a '%s'.\nUsa '/sendmail [cantidad] [nivel]' para continuar.", + "send": "Adjuntado %s de %s (nivel %s) al mensaje.\nContinúa añadiendo más objetos o usa '/sendmail finish' para mandar el mensaje.", + "invalid_arguments_please_use": "Argumentos inválidos.\n Por favor usa '/sendmail %s'", + "title": "", + "message": "", + "sender": "", + "arguments": " [cantidad] [nivel]", + "error": "ERROR: Estado de construcción inválido %s. Comprueba la consola para ver los detalles.", + "description": "Envía un mensaje al usuario especificado. El uso de este comando cambia con el estado de la construcción del mensaje" + }, + "sendMessage": { + "usage": "Uso: sendmessage ", + "success": "Mensaje enviado.", + "description": "Envía un mensaje a un jugador como servidor. Si se usa sin un objetivo fijado, lo envía a todos los jugadores del servidor." + }, + "setFetterLevel": { + "usage": "Uso: setfetterlevel ", + "range_error": "El nivel de amistad debe estar entre 0 y 10.", + "success": "Nivel de amistad establecido a %s.", + "level_error": "Nivel de amistad inválido.", + "description": "Establece tu nivel de amistad para tu personaje actual" + }, + "setProp": { + "usage": "Uso: setprop|prop \n\tValores para : godmode | nostamina | unlimitedenergy | abyss | worldlevel | bplevel\n\t(cont.) Observa PlayerProperty enum para ver otros posibles valores, de la forma PROP_MAX_SPRING_VOLUME -> max_spring_volume", + "description": "Establece propiedades de la cuenta. Cosas como el modo Dios pueden ser establecidos con este comando, además de cambiar cosas como desbloquear pisos del abusmo o progreso del pase de batalla." + }, + "setStats": { + "usage": "Uso: setstats|stats \n\tValores para : hp | maxhp | def | atk | em | er | crate | cdmg | cdr | heal | heali | shield | defi\n\t(cont.) Bonus de daño elemental: epyro | ecryo | ehydro | egeo | edendro | eelectro | ephys\n\t(cont.) Resistencia elemental: respyro | rescryo | reshydro | resgeo | resdendro | reselectro | resphys\n", + "description": "Establece propiedades de combate para tu personaje actual" + }, + "spawn": { + "usage": "Uso: spawn [cantidad] [nivel(solo monstruos)] [ (solo monstruos, opcional)]", + "success": "Generados %s de %s.", + "limit_reached": "Se ha alcanzado el límite de generaciones en la escena. Generando %s entidades en su lugar.", + "description": "Genera una entidad cerca de tí" + }, + "stop": { + "success": "Finalizando el servidor...", + "description": "Detiene el servidor" + }, + "talent": { + "usage_1": "Para establecer el nivel de un talento: /talent set ", + "usage_2": "Otra forma de establecer el nuvel de un talento: /talent ", + "usage_3": "Para obtener el ID de un talento: /talent getid", + "lower_16": "Nivel de talento inválido. El nivel debe ser menor que 16.", + "set_id": "Establecido el talento a %s.", + "set_atk": "Establecido el talento del ataque normal a %s.", + "set_e": "Establecido el talento E a %s.", + "set_q": "Establecido el talento Q a %s.", + "invalid_skill_id": "ID de habilidad inválido.", + "set_this": "Establece este talento a %s.", + "invalid_level": "Nivel de talento inválido.", + "normal_attack_id": "ID del ataque normal %s.", + "e_skill_id": "ID de la habilidad E %s.", + "q_skill_id": "ID de la habilidad Q %s.", + "description": "Establece el nivel de un talento para tu personaje actual" + }, + "team": { + "usage": "Uso: team [avatarID,...] [index|first|last|index-index,...]", + "invalid_usage": "Uso inválido.", + "add_usage": "Uso (añadir): team add [index]", + "invalid_index": "Index inválido.", + "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.", + "remove_usage": "Uso (quitar): team remove ", + "failed_to_parse_index": "Error al usar el index: %s", + "remove_too_much": "No puedes quitar todos tus avatares.", + "ignore_index": "index(es) ignorados: %s", + "set_usage": "Uso (estableces): team set ", + "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 %d no encontrado.", + "description": "Modifica tu equipo a mano." + }, + "teleportAll": { + "success": "Invocados todos los jugadores a tu localización.", + "error": "Solo puedes usar este comando en modo MP.", + "description": "Teletransporta a todos los jugadores en tu mundo a tu localización" + }, + "teleport": { + "usage_server": "Uso: tp @ [sceneID]", + "usage": "Uso: tp [@] [sceneID]", + "specify_player_id": "Dees especificar un ID de jugador.", + "invalid_position": "Posición inválida.", + "exists_error": "El escenario especificado no existe.", + "success": "Teletransportado %s a %s, %s, %s en el escenario %s.", + "description": "Cambia la posición del jugador" + }, + "weather": { + "usage": "Uso: weather [weatherId] [tipo de clima]\nLos IDs de climas pueden ser encontrados en WeatherExcelConfigData.json.\nTipos de clima: sunny, cloudy, rain, thunderstorm, snow, mist", + "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.", + "description": "Cambia el ID del clima y el tipo de clima. Los IDs de climas pueden ser encontrados en WeatherExcelConfigData.json.\nTipos de clima: sunny, cloudy, rain, thunderstorm, snow, mist" + }, + "ban": { + "command_usage": "Uso: ban <@playerId> [marca de tiempo] [razón]", + "success": "Exitoso.", + "failure": "Error, jugador no encontrado.", + "invalid_time": "No se puede establecer la marca de tiempo.", + "description": "Beta a un jugador" + }, + "unban": { + "command_usage": "Uso: unban <@playerId>", + "success": "Exitoso.", + "failure": "Error, jugador no encontrado.", + "description": "Elimina el beto a un jugador" + } + }, + "gacha": { + "details": { + "title": "Detalles del banner", + "available_five_stars": "Objetos de 5 estrellas disponibles", + "available_four_stars": "Objetos de 4 estrellas disponibles", + "available_three_stars": "Objetos de 3 estrellas disponibles" + }, + "records": { + "title": "Historial de Gacha", + "date": "Fecha", + "item": "Objeto" + } + }, + "documentation": { + "handbook": { + "title": "GM Handbook", + "title_commands": "Comandos", + "title_avatars": "Avatares", + "title_items": "Objetos", + "title_scenes": "Escenario", + "title_monsters": "Monstruos", + "header_id": "Id", + "header_command": "Comando", + "header_description": "Descripción", + "header_avatar": "Avatar", + "header_item": "Objeto", + "header_scene": "Escenario", + "header_monster": "Monstruo" + }, + "index": { + "title": "Documentación", + "handbook": "GM Handbook", + "gacha_mapping": "JSON de mapeo del Gacha" + } + } +}