Files
NightSpire/web-next/messages/es.json
T
Inna 96e996e9c2 Cliente SOAP + servicios de personaje SOAP (revive/unstuck) en Next.js
- lib/soap.ts: executeSoapCommand (port de ac_soap.py; POST SOAP + basic auth al
  worldserver, timeout 5s, null si inaccesible). AC_SOAP_* en .env.local.
- lib/characters.ts: getGameCharacters / characterIsOfflineAndOwned (acore_characters).
- lib/character-services.ts: soapCharacterAction genérico (valida propiedad+offline,
  cooldown 12h vía home_revive/unstuckhistory, SOAP, registra historial) ->
  reviveCharacter / unstuckCharacter.
- components/CharacterActionForm.tsx (cliente reutilizable: select + botón).
- Routes /api/character/revive|unstuck (guard de sesión) y páginas
  app/[locale]/revive|unstuck (SSR, guardas, i18n). Namespace Services.

Verificado: API sin sesión 401, páginas redirigen a login, cliente SOAP devuelve null
limpio sin worldserver. Patrón base para el resto de servicios de personaje.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 23:16:32 +00:00

140 lines
5.7 KiB
JSON

{
"Metadata": {
"title": "Nova WoW Server de WoW WotLK 3.4.3 Latino y Español 💎",
"description": "Descarga y juega gratis a WotLK Classic en Nova WoW - Server de WoW WotLK 3.4.3 Latino y Español - El mejor server de WoW 🔥"
},
"Nav": {
"home": "Inicio",
"login": "Iniciar sesión",
"register": "Crear cuenta",
"account": "Mi cuenta",
"logout": "Cerrar sesión",
"language": "Idioma"
},
"Home": {
"brand": "Nova WoW",
"serverStatus": "Estado del servidor",
"server": "Servidor",
"onlineCharacters": "Personajes en línea",
"login": "Login",
"address": "Dirección",
"notAvailable": "No disponible",
"news": "Noticias",
"noNews": "No hay noticias disponibles en este momento.",
"link": "Enlace",
"here": "aquí"
},
"Login": {
"title": "Conectar a Nova WoW",
"email": "Correo electrónico",
"password": "Contraseña",
"submit": "Conectar",
"connecting": "Conectando…",
"success": "Conexión exitosa. Redirigiendo…",
"invalidCredentials": "Correo o contraseña incorrectos",
"missingFields": "Por favor rellene todos los campos.",
"invalidRequest": "Solicitud no válida.",
"genericError": "Algo ha salido mal. Inténtalo más tarde.",
"forgot": "He olvidado mi contraseña/usuario",
"newHere": "¿Nuevo en la comunidad? Puedes crear una cuenta",
"createAccount": "aquí",
"captchaFailed": "Verificación anti-bots fallida. Reintenta."
},
"Account": {
"title": "Mi cuenta",
"bnetAccount": "Cuenta (Battle.net)",
"gameAccount": "Cuenta de juego",
"logout": "Cerrar sesión",
"points": "Puntos",
"dp": "PD",
"vp": "PV",
"battlepayCredits": "Créditos Battlepay",
"securityToken": "Token de seguridad",
"requested": "Solicitado",
"notRequested": "Sin solicitar",
"characters": "Mis personajes",
"level": "Nivel",
"noCharacters": "No tienes personajes todavía."
},
"SelectAccount": {
"title": "Selecciona tu cuenta de juego",
"loggedInAs": "Conectado como",
"choose": "Tu cuenta Battle.net tiene varias cuentas de juego. Elige con cuál quieres continuar:",
"noAccounts": "No se han encontrado cuentas de juego asociadas a esta cuenta Battle.net.",
"entering": "Entrando…",
"error": "No se pudo seleccionar la cuenta."
},
"Register": {
"title": "Creación de cuenta",
"info": "Tu cuenta es de tipo Battle.net: se identifica con tu correo electrónico. La contraseña debe ser alfanumérica y de hasta 16 caracteres. El correo debe ser de Gmail.",
"password": "Contraseña",
"confPassword": "Confirmar contraseña",
"email": "Correo electrónico de Gmail",
"confEmail": "Confirmar correo electrónico",
"recruiter": "Reclutante (opcional)",
"terms": "Acepto las Normas, los Términos y Condiciones y la Política de Privacidad",
"submit": "Crear cuenta",
"creating": "Creando…",
"success": "La cuenta se ha creado. Revisa tu correo para activarla.",
"missingFields": "Por favor, complete todos los campos.",
"passwordMismatch": "Las contraseñas no coinciden.",
"passwordTooLong": "La contraseña no debe exceder los 16 caracteres.",
"invalidEmail": "El correo electrónico no es válido.",
"emailExists": "Ya existe una cuenta con ese correo electrónico.",
"recruiterNotFound": "El reclutador ingresado no existe.",
"genericError": "Algo ha salido mal. Inténtalo más tarde.",
"captchaFailed": "Verificación anti-bots fallida. Reintenta."
},
"Activate": {
"activating": "Activando tu cuenta…",
"success": "¡Cuenta activada! Ya puedes iniciar sesión.",
"invalidLink": "El enlace no es válido o ya se ha usado.",
"expiredLink": "El enlace ha caducado. Solicita uno nuevo.",
"goLogin": "Ir a iniciar sesión"
},
"Recover": {
"title": "Recuperar cuenta",
"type": "¿Qué quieres recuperar?",
"typePassword": "Contraseña",
"typeAccountName": "Nombre de cuenta",
"typeActivation": "Enlace de activación",
"email": "Correo electrónico de Gmail",
"submit": "Solicitar",
"sending": "Enviando…",
"success": "Si existe una cuenta con ese correo, te hemos enviado la información.",
"invalidEmail": "Introduce un correo de Gmail válido.",
"genericError": "Algo ha salido mal. Inténtalo más tarde.",
"captchaFailed": "Verificación anti-bots fallida. Reintenta."
},
"Reset": {
"title": "Restablecer contraseña",
"password": "Nueva contraseña",
"confPassword": "Confirmar contraseña",
"submit": "Restablecer",
"saving": "Guardando…",
"success": "Contraseña restablecida. Ya puedes iniciar sesión.",
"goLogin": "Ir a iniciar sesión",
"invalidLink": "El enlace no es válido o ya se ha usado.",
"expiredLink": "El enlace ha caducado. Solicita uno nuevo.",
"passwordMismatch": "Las contraseñas no coinciden.",
"passwordTooLong": "La contraseña no debe exceder los 16 caracteres.",
"accountNotFound": "No se ha encontrado la cuenta.",
"genericError": "Algo ha salido mal. Inténtalo más tarde."
},
"Services": {
"reviveTitle": "Revivir personaje",
"unstuckTitle": "Desbloquear personaje",
"reviveAction": "Revivir",
"unstuckAction": "Desbloquear",
"selectCharacter": "Selecciona un personaje",
"noCharactersYet": "No tienes personajes disponibles.",
"processing": "Procesando…",
"success": "Acción realizada con éxito.",
"noCharacter": "Selecciona un personaje.",
"notOfflineOrOwned": "El personaje debe estar desconectado y ser tuyo.",
"cooldown": "Solo puedes hacerlo una vez cada 12 horas.",
"soapError": "Error de comunicación con el servidor. Inténtalo más tarde.",
"genericError": "Algo ha salido mal. Inténtalo más tarde."
}
}