{
  "messages": {
    "game": {
      "address_bind": "🇺🇸Game Server started at \u001b[1m\u001b[33m%s:%s\u001b[0m",
      "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": {
      "address_bind": "🇺🇸[Dispatch] Dispatch server started at \u001b[1m\u001b[33m%s:%s\u001b[0m",
      "port_bind": "[Dispatch] El servidor de envío se inició 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 está 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.",
        "login_password_error": "[Dispatch] El cliente %s falló al iniciar sesión vía contraseña.",
        "login_password_storage_error": "[Dispatch] El cliente %s falló al iniciar sesión vía contraseña porque no hay contraseña en la base de datos.",
        "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 caché 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ó.",
        "password_error": "Contraseña no válida",
        "password_length_error": "La longitud de la contraseña debe ser mayor o igual a 8",
        "password_storage_error": "No tienes contraseña para tu cuenta. Por favor contacta a un administrador.",
        "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": "No 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": {
      "usage_prefix": "Uso: ",
      "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": {
      "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"
    },
    "announce": {
      "send_success": "Se envió el anuncio correctamente, puedes revocarlo con /a revoke %s.",
      "refresh_success": "Se refrescó el archivo de configuración de anuncio correctamente. [Total %s]",
      "revoke_done": "Intentando revocar el anuncio %s.",
      "not_found": "No se pudo encontrar el anuncio %s.",
      "description": "Envía un anuncio a todos los jugadores activos, o gestiona anuncios del server"
    },
    "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": {
      "success": "Invocado %s al mundo de %s.",
      "description": "Fuerza a alguien a ser invocado al mundo de otro. Si no se establece un objetivo, te envía a ti al modo cooperativo."
    },
    "enter_dungeon": {
      "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_relic": "Uso: 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.",
      "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 ti 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": {
      "aliases": "Alias: ",
      "available_commands": "Comandos disponibles: ",
      "tip_need_permission": "Permiso: ",
      "tip_need_no_permission": "Ninguno",
      "tip_permission_targeted": "(El permiso %s es también requerido para usarlo en otros jugadores)",
      "warn_player_has_no_permission": "Nota: No tienes permiso para ejecutar este comando.",
      "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": {
      "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": {
      "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": {
      "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 del escenario: %s",
      "description": "Da las coordenadas en el escenario actual"
    },
    "quest": {
      "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": {
      "success": "Reinicio completado.",
      "description": "Reinicia el tiempo de refrescado de la tienda del jugador objetivo"
    },
    "sendMail": {
      "give_usage": "Uso: give <player> <itemID|itemName> [cantidad] [nivel] [refinamiento]",
      "user_not_exist": "El usuario con ID '%s' No existe.",
      "start_composition": "Empezando la construcción del correo.\nPor favor usa '/sendmail <título>' 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 <contenido>' para continuar.",
      "set_contents": "Contenido del mensaje establecido a '%s'.\nUse '/sendmail <remitente>' para continuar.",
      "set_message_sender": "Remitente del mensaje establecido a '%s'.\nUsa '/sendmail <itemID|itemName|finish> [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": "<Título>",
      "message": "<Mensaje>",
      "sender": "<Remitente>",
      "arguments": "<itemID|itemName|finish> [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": {
      "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."
    },
    "setConst": {
      "range_error": "El nivel de constelación debe estar entre 0 y 6.",
      "level_error": "Nivel de constelación inválido.",
      "fail": "Error al establecer la constelación.",
      "failed_success": "Las constelaciones de %s han sido establecidas a %s. Por favor reinicia el escenario para ver los cambios.",
      "success": "Las constelaciones de %s han sido establecidas a %s.",
      "description": "Establece el nivel de constelación para tu personaje actual"
    },
    "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": {
      "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.\n\tValores para <prop>: 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"
    },
    "setStats": {
      "description": "Establece propiedades de combate para tu personaje actual\n\tValores para <estado>: 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",
      "locked_to": "%s fijado a %s.",
      "locked_for_to": "%s para %s fijado a %s.",
      "unlocked": "%s desfijado.",
      "unlocked_for": "%s para %s desfijado."
    },
    "spawn": {
      "success": "Generados %s de %s.",
      "limit_reached": "Se ha alcanzado el límite de generaciones en el escenario. Generando %s entidades en su lugar.",
      "description": "Genera una entidad cerca de tí"
    },
    "stop": {
      "success": "Finalizando el servidor...",
      "description": "Detiene el servidor"
    },
    "talent": {
      "lower_16": "Nivel de talento inválido. El nivel debe ser menor que 16.",
      "set_id": "🇺🇸Set talent %s - \"%s\" to %s.",
      "id_desc": "🇺🇸Talent %s - \"%s\" - \"%s\"",
      "invalid_skill_id": "ID de habilidad inválido.",
      "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": {
      "invalid_usage": "Uso inválido.",
      "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.",
      "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",
      "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": {
      "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": {
      "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 ./Resources/ExcelBinOutput/WeatherExcelConfigData.json.\nTipos de clima: sunny, cloudy, rain, thunderstorm, snow, mist"
    },
    "ban": {
      "success": "Exitoso.",
      "failure": "Error, jugador no encontrado.",
      "invalid_time": "No se puede establecer la marca de tiempo.",
      "description": "Beta a un jugador"
    },
    "unlockall": {
      "success": "Desfijados todos los estados abiertos para %s.",
      "description": "Desfija todos los estados abiertos para un jugador."
    },
    "unban": {
      "success": "Exitoso.",
      "failure": "Error, jugador no encontrado.",
      "description": "Elimina el veto 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"
    }
  }
}
