Rebranding a NightSpire en toda la web

Marca, dominios y correos: UltimoWoW/Nova WoW -> NightSpire, cualquier URL de
esos dominios -> https://www.nightspire.gg y los correos -> consultas@nightspire.gg.
98 sustituciones en 16 ficheros de textos de usuario (messages/, app/, components/).

Assets: logo largo de cabecera y vídeo sustituidos por los de NightSpire (el logo
nuevo es 214x28, igual que el viejo, así que no hace falta tocar el CSS).

Redes: apuntan a las cuentas de NightSpire, tanto en el pie de la web como en el
de los correos (que seguían enlazando a las de NovaWoW desde el porte del diseño).

Cookie de sesión novawow_session -> nightspire_session. Cierra la sesión de todos
los conectados una vez; se asume ahora, recién hecho el cutover.

Ficheros del tema renombrados: novawow-style.css -> nightspire-style.css y
novawow-main-logo-transparent.webp -> nightspire-main-logo-transparent.webp, para
que la marca vieja no quede ni en las rutas.

El foro externo (foro.ultimowow.com) pasa a ser el nuestro: <Link> a /forum, que
respeta el idioma y no abre pestaña nueva.

NO se tocan y es a propósito:
- Los comentarios que nombran AzerothCore: describen el comportamiento REAL del
  core (límite de 12 ítems por correo, convención de baneos, SOAP...). Cambiarlos
  a NightSpire los volvería falsos. Además AzerothCore no aparece en la web: las
  14 menciones son todas comentarios de código.
- El regex de brandify() sigue buscando los nombres VIEJOS: son los que hay
  escritos en las noticias de la BD.
- lib/changelog.ts REPO='Inna/NovaWoW': es la ruta real del repo en Gitea.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 15:15:57 +00:00
parent cccc70338d
commit 579396c34a
29 changed files with 112 additions and 106 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ export default async function ContactUsPage() {
<div className="body-box-content">
<p>{t('contact.p1')}</p>
<p>{t('contact.p2')}</p>
<p className="second-brown">contacto@ultimowow.com</p>
<p className="second-brown">consultas@nightspire.gg</p>
<br />
<p>{t('contact.p3')}</p>
<p>{t('contact.p4')}</p>
+5 -5
View File
@@ -47,8 +47,8 @@ export default async function CookiesPage() {
</tr>
</thead>
<tbody>
<tr><td>PHPSESSID</td><td>UltimoWoW</td><td>{t('cookies.nPurpose1')}</td><td>{t('cookies.durSession')}</td></tr>
<tr><td>uw_cookie_consent</td><td>UltimoWoW</td><td>{t('cookies.nPurpose2')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>PHPSESSID</td><td>NightSpire</td><td>{t('cookies.nPurpose1')}</td><td>{t('cookies.durSession')}</td></tr>
<tr><td>uw_cookie_consent</td><td>NightSpire</td><td>{t('cookies.nPurpose2')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>cf_clearance</td><td>Cloudflare</td><td>{t('cookies.nPurpose3')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>__cf_bm</td><td>Cloudflare</td><td>{t('cookies.nPurpose4')}</td><td>{t('cookies.dur30Min')}</td></tr>
<tr><td>_cfuvid</td><td>Cloudflare</td><td>{t('cookies.nPurpose5')}</td><td>{t('cookies.durSession')}</td></tr>
@@ -76,9 +76,9 @@ export default async function CookiesPage() {
</tr>
</thead>
<tbody>
<tr><td>comments_sort</td><td>wotlk.ultimowow.com</td><td>{t('cookies.prefPurpose1')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>wwcomments_sort</td><td>wotlk.ultimowow.com</td><td>{t('cookies.prefPurpose2')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>temp_default_3dmodel</td><td>wotlk.ultimowow.com</td><td>{t('cookies.prefPurpose3')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>comments_sort</td><td>www.nightspire.gg</td><td>{t('cookies.prefPurpose1')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>wwcomments_sort</td><td>www.nightspire.gg</td><td>{t('cookies.prefPurpose2')}</td><td>{t('cookies.dur1Year')}</td></tr>
<tr><td>temp_default_3dmodel</td><td>www.nightspire.gg</td><td>{t('cookies.prefPurpose3')}</td><td>{t('cookies.dur1Year')}</td></tr>
</tbody>
</table>
+7 -4
View File
@@ -1,5 +1,6 @@
import type { Metadata } from 'next'
import { getTranslations, setRequestLocale } from 'next-intl/server'
import { Link } from '@/i18n/navigation'
import { getRealmName } from '@/lib/realm'
export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise<Metadata> {
@@ -62,11 +63,11 @@ export default async function HelpPage({ params }: { params: Promise<{ locale: s
<br />
<span>{t('help.websiteTitle')}</span>
<p>{t('help.websiteText')}</p>
<p>{t('help.mailTo')} <a href="mailto:ryuzaki@ultimowow.com">ryuzaki@ultimowow.com</a></p>
<p>{t('help.mailTo')} <a href="mailto:consultas@nightspire.gg">consultas@nightspire.gg</a></p>
<br />
<span>{t('help.pdTitle')}</span>
<p>{t('help.pdText')}</p>
<p>{t('help.mailTo')} <a href="mailto:contacto@ultimowow.com">contacto@ultimowow.com</a></p>
<p>{t('help.mailTo')} <a href="mailto:consultas@nightspire.gg">consultas@nightspire.gg</a></p>
<br />
<fieldset>
<legend>{t('help.contactMeans')}</legend>
@@ -82,13 +83,15 @@ export default async function HelpPage({ params }: { params: Promise<{ locale: s
<br />
<span>{t('help.discordTitle')}</span>
<p>{t.rich('help.discord1', { link: (c) => <a href="https://discordapp.com/" target="_blank" rel="noopener noreferrer">{c}</a> })}</p>
<p>{t.rich('help.discord2', { link: (c) => <a href="https://discord.ultimowow.com" target="_blank" rel="noopener noreferrer">{c}</a> })}</p>
<p>{t.rich('help.discord2', { link: (c) => <a href="https://discord.nightspire.gg" target="_blank" rel="noopener noreferrer">{c}</a> })}</p>
<p>{t('help.discord3')}</p>
<br />
<span>{t('help.forosTitle')}</span>
<p>{t('help.foros1', { realm })}</p>
<p>{t('help.foros2')}</p>
<p>{t.rich('help.foros3', { link: (c) => <a href="https://foro.ultimowow.com/" target="_blank" rel="noopener noreferrer">{c}</a> })}</p>
{/* Antes iba a foro.ultimowow.com; ahora es NUESTRO foro, así que
va con Link (respeta el idioma) y sin abrir pestaña nueva. */}
<p>{t.rich('help.foros3', { link: (c) => <Link href="/forum">{c}</Link> })}</p>
<br />
<span>{t('help.emailTitle')}</span>
<p>{t('help.email1')}</p>
+3 -3
View File
@@ -27,7 +27,7 @@ export async function generateMetadata({
title: t('title'),
description: t('description'),
openGraph: {
siteName: 'NovaWoW',
siteName: 'NightSpire',
title: t('title'),
description: t('description'),
type: 'website',
@@ -65,8 +65,8 @@ export default async function LocaleLayout({
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"
/>
{/* Tema real de NovaWoW (nw-ryu). Va el ÚLTIMO para ganar la cascada. */}
<link rel="stylesheet" href="/nw-themes/nw-ryu/nw-css/novawow-style.css?v=2" />
{/* Tema real de NightSpire (nw-ryu). Va el ÚLTIMO para ganar la cascada. */}
<link rel="stylesheet" href="/nw-themes/nw-ryu/nw-css/nightspire-style.css?v=2" />
{/* Config de los tooltips de wowhead (debe definirse antes de tooltips.js).
OJO con el `window.`: tooltips.js lee `window.whTooltips`, y un `const` a
nivel de script queda en el ámbito léxico del script (no crea propiedad en
+2 -2
View File
@@ -29,8 +29,8 @@ export default async function LegalNoticePage() {
<p>{t('legalNotice.p5')}</p>
<br />
<p className="second-brown">{t('legalNotice.contactTitle')}</p>
<p>ultimowow.com</p>
<p>info@ultimowow.com</p>
<p>www.nightspire.gg</p>
<p>consultas@nightspire.gg</p>
</div>
</div>
</div>
+2 -2
View File
@@ -28,7 +28,7 @@ export default async function MaintenancePage({ params }: { params: Promise<{ lo
<p>
{t.rich('maintenance.discord', {
link: (c) => (
<a href="https://discord.gg/novawow" target="_blank" rel="noopener noreferrer">
<a href="https://discord.gg/nightspire" target="_blank" rel="noopener noreferrer">
{c}
</a>
),
@@ -36,7 +36,7 @@ export default async function MaintenancePage({ params }: { params: Promise<{ lo
</p>
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
src="/nw-themes/nw-ryu/nw-images/nw-general/novawow-maintenance.webp"
src="/nw-themes/nw-ryu/nw-images/nw-general/nightspire-maintenance.webp"
width={437}
alt={t('maintenance.pageTitle')}
/>
+4 -1
View File
@@ -15,9 +15,12 @@ async function getData(locale: string): Promise<{ noticias: Noticia[]; status: S
}
}
// Sustituye la marca «UltimoWoW»/«Nova WoW» por el nombre del reino SOLO en el
// Las 50 noticias de la BD vienen del portal viejo y llevan «UltimoWoW»/«Nova WoW»
// escritos dentro. Esto los sustituye por el nombre del reino al vuelo, SOLO en el
// texto visible (fuera de las etiquetas < >), para no romper las URLs de los
// enlaces; respeta MAYÚSCULAS y no toca dominios «...com».
//
// OJO: el regex debe seguir buscando los nombres VIEJOS — son los que hay en la BD.
function brandify(html: string, realm: string): string {
const re = /(?:ultimo\s?wow|nova\s?wow)(?!\.com)/gi
const repl = (m: string) => (m === m.toUpperCase() ? realm.toUpperCase() : realm)
@@ -71,8 +71,8 @@ export default async function PrivacyPolicyPage() {
<p className="second-brown">{t('privacy.h8')}</p>
<p>{t('privacy.p20')}</p>
<p>Error 404</p>
<p>ultimowow.com</p>
<p>info@ultimowow.com</p>
<p>www.nightspire.gg</p>
<p>consultas@nightspire.gg</p>
<br />
<p className="grey-info2">{t('privacy.updated')}</p>
</div>
+3 -3
View File
@@ -34,7 +34,7 @@ export default async function RefundPolicyPage() {
<p className="second-brown">{t('refund.h3')}</p>
<p>{t('refund.p6')}</p>
<p>{t('refund.p7')}</p>
<p>{t.rich('refund.p8', { link: (c) => <a href="mailto:contacto@ultimowow.com">{c}</a> })}</p>
<p>{t.rich('refund.p8', { link: (c) => <a href="mailto:consultas@nightspire.gg">{c}</a> })}</p>
<br />
<hr />
<br />
@@ -99,8 +99,8 @@ export default async function RefundPolicyPage() {
<p className="second-brown">{t('refund.h12')}</p>
<p>{t('refund.p35')}</p>
<p>Error 404</p>
<p>ultimowow.com</p>
<p>info@ultimowow.com</p>
<p>www.nightspire.gg</p>
<p>consultas@nightspire.gg</p>
<br />
<p className="grey-info2">{t('refund.updated')}</p>
</div>
@@ -113,7 +113,7 @@ export default async function TermsAndConditionsPage() {
<p>{t('terms.p43')}</p>
<br />
<p className="grey-info2">Error 404</p>
<p className="grey-info2">info@ultimowow.com</p>
<p className="grey-info2">consultas@nightspire.gg</p>
</div>
</div>
</div>
+1 -1
View File
@@ -124,7 +124,7 @@ export default async function TransHistoryPage({ params }: { params: Promise<{ l
<p>{t('trans.intro2')}</p>
<p>
{t.rich('trans.intro3', {
mail: (c) => <a href="mailto:contacto@ultimowow.com">{c}</a>,
mail: (c) => <a href="mailto:consultas@nightspire.gg">{c}</a>,
})}
</p>
</ServiceBox>
+2 -2
View File
@@ -1,6 +1,6 @@
@import 'tailwindcss';
/* Tokens de diseño NovaWoW (paleta oscura fantasía WotLK). */
/* Tokens de diseño NightSpire (paleta oscura fantasía WotLK). */
@theme {
--color-nw-bg: #140d08;
--color-nw-panel: #241812;
@@ -17,7 +17,7 @@
}
/* El fondo, la tipografía (FuturaEF-Book) y los estilos base del <body>
los controla el tema real nw-ryu (novawow-style.css), cargado en el <head>
los controla el tema real nw-ryu (nightspire-style.css), cargado en el <head>
del layout. No los redefinimos aquí para que el tema Django quede idéntico. */
/* El tema nw-ryu se diseñó para los defaults del navegador (igual que la web
+1 -1
View File
@@ -5,7 +5,7 @@ import { useLocale, useTranslations } from 'next-intl'
import { Link } from '@/i18n/navigation'
import { wowheadWotlkHome } from '@/lib/wowhead'
const SERVER_NAME = 'NovaWoW'
const SERVER_NAME = 'NightSpire'
/**
* Cabecera / barra de navegación — réplica EXACTA del partial Django
+10 -10
View File
@@ -10,10 +10,10 @@ export async function Social() {
<div className="social-media">
<span className="big-font">{t('social.followUs')}</span>
<a
href="https://www.facebook.com/NovaWoW/"
href="https://www.facebook.com/NightSpire"
className="social-button social-button-responsive facebook"
target="_blank"
title="Facebook NovaWoW"
title="Facebook NightSpire"
rel="noopener noreferrer"
>
<div className="social-inline">
@@ -21,10 +21,10 @@ export async function Social() {
</div>
</a>
<a
href="https://www.instagram.com/NovaWoW/"
href="https://www.instagram.com/NightSpire"
className="social-button social-button-responsive instagram"
target="_blank"
title="Instagram NovaWoW"
title="Instagram NightSpire"
rel="noopener noreferrer"
>
<div className="social-inline">
@@ -32,10 +32,10 @@ export async function Social() {
</div>
</a>
<a
href="https://twitter.com/NovaWoW"
href="https://twitter.com/NightSpire"
className="social-button social-button-responsive twitter"
target="_blank"
title="Twitter NovaWoW"
title="Twitter NightSpire"
rel="noopener noreferrer"
>
<div className="social-inline">
@@ -43,10 +43,10 @@ export async function Social() {
</div>
</a>
<a
href="https://www.youtube.com/channel/UCaHL8BZcho8AkeM9wckQbyg"
href="https://www.youtube.com/@NightSpire"
className="social-button social-button-responsive youtube"
target="_blank"
title="Youtube NovaWoW"
title="Youtube NightSpire"
rel="noopener noreferrer"
>
<div className="social-inline">
@@ -54,10 +54,10 @@ export async function Social() {
</div>
</a>
<a
href="https://discord.novawow.com"
href="https://discord.nightspire.gg"
className="social-button social-button-responsive discord"
target="_blank"
title="Discord NovaWoW"
title="Discord NightSpire"
rel="noopener noreferrer"
>
<div className="social-inline">
+2 -2
View File
@@ -1,6 +1,6 @@
import { Link } from '@/i18n/navigation'
const SERVER_NAME = 'NovaWoW'
const SERVER_NAME = 'NightSpire'
/**
* Bloque de vídeo de cabecera — réplica del partial Django `partials/video.html`
@@ -15,7 +15,7 @@ export function Video() {
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
className="nw_main_logo_img"
src="/nw-themes/nw-ryu/nw-images/nw-logos/novawow-main-logo-transparent.webp"
src="/nw-themes/nw-ryu/nw-images/nw-logos/nightspire-main-logo-transparent.webp"
alt={SERVER_NAME}
title={SERVER_NAME}
/>
+2 -2
View File
@@ -43,7 +43,7 @@ export async function requestEmailChange(
const link = `${site}/confirm-old-email?hash=${oldHash}`
await sendMail(
current,
`Confirma el cambio de correo - Nova WoW`,
`Confirma el cambio de correo - NightSpire`,
confirmOldEmailHtml(session.username ?? current, newEmail, link),
)
return { success: true }
@@ -62,7 +62,7 @@ export async function confirmOldEmail(hash: string): Promise<Result> {
const link = `${site}/confirm-new-email?hash=${act.hash}`
await sendMail(
act.email,
`Confirma tu nuevo correo - Nova WoW`,
`Confirma tu nuevo correo - NightSpire`,
confirmNewEmailHtml(act.username ?? act.email, link),
)
return { success: true }
+5 -5
View File
@@ -21,7 +21,7 @@
* entra con el correo, no con un usuario).
*/
const SERVER_NAME = 'NovaWoW'
const SERVER_NAME = 'NightSpire'
/** Raíz del sitio, sin barra final. De aquí salen todos los enlaces e imágenes. */
function siteUrl(): string {
@@ -184,10 +184,10 @@ function layout(label: string, title: string, rows: string[], locale = 'es'): st
<td align="center" style="padding:0;Margin:0;padding-top:15px;padding-bottom:15px;font-size:0">
<table cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://www.facebook.com/NovaWoW/" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Facebook" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://www.instagram.com/NovaWoW/" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Instagram" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://twitter.com/NovaWoW" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Twitter" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://www.youtube.com/channel/UCaHL8BZcho8AkeM9wckQbyg" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Youtube" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://www.facebook.com/NightSpire" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Facebook" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://www.instagram.com/NightSpire" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Instagram" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://twitter.com/NightSpire" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Twitter" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://www.youtube.com/@NightSpire" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank"><img title="Youtube" src="${site}/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
</tr>
</tbody></table></td>
</tr>
+1 -1
View File
@@ -22,7 +22,7 @@ export interface ServerStatus {
// Puerto del worldserver (AzerothCore) para el estado del reino.
const WORLD_PORT = 8085
/** Etiqueta de expansión por build del cliente (incluye WoW Classic; Nova WoW = 3.4.3 = 54261). */
/** Etiqueta de expansión por build del cliente (incluye WoW Classic; el nuestro = 3.4.3 = 54261). */
export function expansionFromGamebuild(gamebuild: number): string {
if (gamebuild === 12340) return 'WotLK'
if (gamebuild >= 44000 && gamebuild <= 54261) return 'WotLK Classic'
+3 -3
View File
@@ -7,13 +7,13 @@ export async function getRealmName(): Promise<string> {
const [rows] = await db(DB.auth).query<RowDataPacket[]>(
'SELECT name FROM realmlist ORDER BY id LIMIT 1',
)
return rows[0]?.name || 'NovaWoW'
return rows[0]?.name || 'NightSpire'
} catch {
return 'NovaWoW'
return 'NightSpire'
}
}
/** Slug del reino para la URL (p. ej. «Nova WoW» → «novawow», «Trinity» → «trinity»). */
/** Slug del reino para la URL (p. ej. «Night Spire» → «nightspire», «Trinity» → «trinity»). */
export function realmSlug(name: string): string {
return name.toLowerCase().replace(/[^a-z0-9]/g, '')
}
+4 -4
View File
@@ -51,7 +51,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
const link = `${site}/reset-password?token=${token}`
await sendMail(
email,
'Restablecer contraseña - Nova WoW',
'Restablecer contraseña - NightSpire',
passwordResetEmailHtml(email, link),
)
}
@@ -88,7 +88,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
const nameById = new Map(games.map((g) => [g.id, g.username]))
await sendMail(
email,
'Tu Token de seguridad - Nova WoW',
'Tu Token de seguridad - NightSpire',
securityTokensListEmailHtml(
email,
toks.map((r) => ({ username: String(nameById.get(r.user_id) ?? r.user_id), token: r.token })),
@@ -116,7 +116,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
)
await sendMail(
email,
'Tus cuentas de juego - Nova WoW',
'Tus cuentas de juego - NightSpire',
accountNamesEmailHtml(
email,
games.map((g) => String(g.username)),
@@ -139,7 +139,7 @@ export async function requestRecovery(type: string, value: string): Promise<Resu
const link = `${site}/activate-account?act=${rows[0].hash}`
await sendMail(
email,
`Activación de la cuenta ${email} - Nova WoW`,
`Activación de la cuenta ${email} - NightSpire`,
activationEmailHtml(email, link),
)
}
+1 -1
View File
@@ -73,7 +73,7 @@ export async function registerAccount(input: RegisterInput): Promise<Result> {
)
const link = `${process.env.SITE_URL}/activate-account?act=${hash}`
await sendMail(email, `Activación de la cuenta ${email} - Nova WoW`, activationEmailHtml(email, link))
await sendMail(email, `Activación de la cuenta ${email} - NightSpire`, activationEmailHtml(email, link))
return { success: true }
}
+1 -1
View File
@@ -36,7 +36,7 @@ export async function requestSecurityToken(session: SessionData, ip: string): Pr
)
// La cuenta es el correo: con Battle.net se entra con él, no con un usuario.
await sendMail(email, 'Token de seguridad - Nova WoW', securityTokenEmailHtml(email, token, ip || '0.0.0.0'))
await sendMail(email, 'Token de seguridad - NightSpire', securityTokenEmailHtml(email, token, ip || '0.0.0.0'))
const [created] = await db(DB.default).query<RowDataPacket[]>(
'SELECT created_at FROM securitytoken WHERE user_id = ? ORDER BY created_at DESC LIMIT 1',
+1 -1
View File
@@ -15,7 +15,7 @@ export interface SessionData {
export const sessionOptions: SessionOptions = {
password: process.env.SESSION_SECRET as string,
cookieName: 'novawow_session',
cookieName: 'nightspire_session',
cookieOptions: {
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
+24 -24
View File
@@ -1,7 +1,7 @@
{
"Metadata": {
"title": "Nova WoW WoW WotLK 3.4.3 Server - Latino & Español 💎",
"description": "Download and play WotLK Classic for free on Nova WoW - WoW WotLK 3.4.3 server - The best WoW server 🔥"
"title": "NightSpire WoW WotLK 3.4.3 Server - Latino & Español 💎",
"description": "Download and play WotLK Classic for free on NightSpire - WoW WotLK 3.4.3 server - The best WoW server 🔥"
},
"Nav": {
"home": "Home",
@@ -16,7 +16,7 @@
"store": "Store"
},
"Home": {
"brand": "Nova WoW",
"brand": "NightSpire",
"serverStatus": "Server status",
"server": "Server",
"onlineCharacters": "Online characters",
@@ -32,7 +32,7 @@
"ctaForum": "View forums"
},
"Login": {
"title": "Sign in to Nova WoW",
"title": "Sign in to NightSpire",
"email": "Email",
"password": "Password",
"submit": "Sign in",
@@ -1000,7 +1000,7 @@
"pageTitle": "PD and PV history",
"intro1": "Here you will see the most recent PD and PV usage on the account.",
"intro2": "With this information you can keep track of everything you have acquired as well as check that all activity is normal.",
"intro3": "If you notice any suspicious movement, you can contact the Nova WoW team.",
"intro3": "If you notice any suspicious movement, you can contact the NightSpire team.",
"boxTitle": "PD and PV history",
"currentBalance": "Current balance:",
"noMovements": "No movements",
@@ -1037,7 +1037,7 @@
"pageTitle": "Transaction history",
"intro1": "Here you will see the information we receive from our different automatic payment platforms.",
"intro2": "Have you had a problem with any transaction?",
"intro3": "If you have had a problem with one of the transactions or you have not received your PD, you can contact us on our Discord or through the email <mail>contacto@ultimowow.com</mail>.",
"intro3": "If you have had a problem with one of the transactions or you have not received your PD, you can contact us on our Discord or through the email <mail>consultas@nightspire.gg</mail>.",
"noteStripe": "Card payments are normally approved within a few seconds.",
"noteSumup": "SumUp may take a few minutes to confirm the payment after completing the checkout.",
"paidNote": "You will receive the PD corresponding to each transaction only when it is approved and the status is <s>PAID</s> (Paid).",
@@ -1136,8 +1136,8 @@
"dur90Days": "90 days",
"dur3Months": "3 months",
"providerVarious": "Various",
"nPurpose1": "Maintains the user's session state across pages. Present on ultimowow.com and wotlk.ultimowow.com.",
"nPurpose2": "Stores your cookie consent preferences. Shared between ultimowow.com and wotlk.ultimowow.com.",
"nPurpose1": "Maintains the user's session state across pages. Present on www.nightspire.gg and www.nightspire.gg.",
"nPurpose2": "Stores your cookie consent preferences. Shared between www.nightspire.gg and www.nightspire.gg.",
"nPurpose3": "Identifies legitimate traffic and protects against bots.",
"nPurpose4": "Bot management and protection against DDoS attacks.",
"nPurpose5": "Session identifier for traffic management.",
@@ -1227,12 +1227,12 @@
"h1": "IMPORTANT",
"p1": "Please take a moment to read the terms and conditions detailed below. If you agree with them, then you may enter our site.",
"h2": "ACCEPTANCE OF THE TERMS OF USE AND CONDITIONS",
"p2": "UltimoWoW is a non-profit project developed with the purpose of simulating outdated versions of the server for educational purposes only. The Services offered by UltimoWoW do not support nor will they provide any kind of modification for the server or its files; that said, by using this site or any service belonging to or derived from the Administration, the user accepts responsibility for following and complying with the server's end-user license agreement (EULA).",
"p3": "UltimoWoW does not provide nor take responsibility for the distribution of any server client or external source that contains it. The client download links offered by this site or any medium under its responsibility will always point to said external sources, which, as of this date, do not belong to nor have any relationship with this administration. UltimoWoW is therefore, and under no circumstances, responsible for any aspect regarding said source, namely: quality, performance, warranties or any other characteristic determinant to its purpose, whether or not it is one.",
"p4": "By accessing, browsing or using this Internet site, hereinafter (the “Site”), owned by the UltimoWoW administration, hereinafter (the “Administration”), the user acknowledges having read and understood these terms and conditions of use, hereinafter (“Terms and Conditions”) and agrees to abide by them and comply with all applicable rules, laws and regulations that form part of the legislation in force in their place of residence, or to which they are otherwise subject. In addition, when the user uses any service supplied or referenced on the Site (provided it resides under the responsibility or ownership of the Administration), they will be subject to the rules, guides, policies, terms and conditions applicable to said services.",
"p2": "NightSpire is a non-profit project developed with the purpose of simulating outdated versions of the server for educational purposes only. The Services offered by NightSpire do not support nor will they provide any kind of modification for the server or its files; that said, by using this site or any service belonging to or derived from the Administration, the user accepts responsibility for following and complying with the server's end-user license agreement (EULA).",
"p3": "NightSpire does not provide nor take responsibility for the distribution of any server client or external source that contains it. The client download links offered by this site or any medium under its responsibility will always point to said external sources, which, as of this date, do not belong to nor have any relationship with this administration. NightSpire is therefore, and under no circumstances, responsible for any aspect regarding said source, namely: quality, performance, warranties or any other characteristic determinant to its purpose, whether or not it is one.",
"p4": "By accessing, browsing or using this Internet site, hereinafter (the “Site”), owned by the NightSpire administration, hereinafter (the “Administration”), the user acknowledges having read and understood these terms and conditions of use, hereinafter (“Terms and Conditions”) and agrees to abide by them and comply with all applicable rules, laws and regulations that form part of the legislation in force in their place of residence, or to which they are otherwise subject. In addition, when the user uses any service supplied or referenced on the Site (provided it resides under the responsibility or ownership of the Administration), they will be subject to the rules, guides, policies, terms and conditions applicable to said services.",
"p5": "This Site is controlled and developed by the Administration, reachable through its Discord platforms.",
"p6": "The Administration is not responsible for the material on this Site being appropriate or available for use in other places, its access being prohibited from territories where its content is illegal. Those who choose to access this Site from other places do so on their own initiative, and it is their responsibility to comply with the applicable local laws.",
"p7": "These Terms and Conditions are subject to change at discretion, without prior notice and at any time, under the sole will of UltimoWoW, and starting from the date of publication of their modification on this Site, all operations carried out between the Administration and the user shall be governed by the modified document.",
"p7": "These Terms and Conditions are subject to change at discretion, without prior notice and at any time, under the sole will of NightSpire, and starting from the date of publication of their modification on this Site, all operations carried out between the Administration and the user shall be governed by the modified document.",
"h3": "OUR SERVICE: USE, DISTRIBUTION AND DISCLAIMER OF LIABILITY",
"p8": "In accordance with the legislation to which the Administration is subject, the material contained on this Site or any other that may be under its responsibility or care, hereinafter (the “Services” or the “Service”), including without limitation, every image, links, logo, design, insignia, brand, photograph, sound, text, message, tool, software, technology, product, file, information, data, demonstration, sample, promotional material, audiovisual work or multimedia work, and any other element or form of expression (collectively and hereinafter, (the \"Materials\"), are supplied to the best of our knowledge and understanding; however, it is not possible to rule out errors of content or of the material, which is why the Administration assumes no responsibility for the quality, veracity or accuracy of the published information nor for the omissions, errors or discrepancies that may be found in the published information or service provided. ",
"p9": "Regarding the information published in the Services, the Administration confers no warranties of any kind, express or implied, excluding, but not limited to:",
@@ -1240,8 +1240,8 @@
"p11": "- Uninterrupted stability of the Service.",
"p12": "- Existence of errors or viruses, as well as its security.",
"p13": "- Accuracy, reliability, qualification or certification for its download.",
"p14": "The Administration is not responsible for the use the user makes of the contents included in the Services, nor for the decisions they make regarding them. The information regarding the products and services of UltimoWoW, included in its Services, is provided for non-commercial educational purposes and does not constitute an offer of sale to its users.",
"p15": "UltimoWoW reserves the right, at its discretion, to:",
"p14": "The Administration is not responsible for the use the user makes of the contents included in the Services, nor for the decisions they make regarding them. The information regarding the products and services of NightSpire, included in its Services, is provided for non-commercial educational purposes and does not constitute an offer of sale to its users.",
"p15": "NightSpire reserves the right, at its discretion, to:",
"p16": "- Correct any error, omission or inaccuracy in the data provided.",
"p17": "- Change or update, discontinue or delete the information contained in the Services at any time and without prior notice.",
"p18": "- As well as disclaim liability regarding the timeliness, lack of storage, inaccuracy or incorrect delivery of any information or data that it \"normally\" provides, whether temporarily or permanently.",
@@ -1257,9 +1257,9 @@
"p26": "- Using any technique or software to alter or manipulate the variables preset by the server and the Administration.",
"p27": "Cheating is strictly prohibited and the Administration reserves the right to deny any user access to the Service, provided that they have incurred or been the object of an offense of this type, whether directly or indirectly.",
"h6": "PURCHASES, CLAIMS, REFUNDS AND WARRANTIES",
"p28": "UltimoWoW does not represent nor constitute a remittance entity nor a financial services entity of any kind and consequently has no control or responsibility whatsoever over the origin of the funds used to make purchases toward its community. Nor is it responsible for the risks that the user takes on their own will when carrying out financial operations of any type.",
"p28": "NightSpire does not represent nor constitute a remittance entity nor a financial services entity of any kind and consequently has no control or responsibility whatsoever over the origin of the funds used to make purchases toward its community. Nor is it responsible for the risks that the user takes on their own will when carrying out financial operations of any type.",
"p29": "Purchases: will always be considered of voluntary good faith and in no case an obligation of any kind for any user. Note also that purchases by natural persons under 18 years of age, or in any case those persons who have not yet reached, under the relevant local legal entities that apply to them, their legal age of majority, are strictly prohibited.",
"p30": "The Service: in any case, does not require any kind of purchase for full and complete use and enjoyment. That said, the user will have an official communication channel via email contacto@ultimowow.com in order to notify the Administration of any error made by either party, in order to issue and make effective a fair resolution.",
"p30": "The Service: in any case, does not require any kind of purchase for full and complete use and enjoyment. That said, the user will have an official communication channel via email consultas@nightspire.gg in order to notify the Administration of any error made by either party, in order to issue and make effective a fair resolution.",
"p31": "The Administration: guarantees and commits to providing the buyer with all the information they may require about the current forms or methods of purchase for the community. As well as clarifying any doubt that may arise about the established steps or processes of the same, provided that said information resides within the limits that concern the buyer and has a purely informational purpose.",
"p32": "Taking the above into account, the buyer has monetary and service refund guarantees, subject to the aspects and conditions set out below.",
"h7": "Monetary:",
@@ -1275,7 +1275,7 @@
"p41": "As well as the Administration guaranteeing the restoration of the service due to technical and specific problems, between the Service and the payment platforms, always beyond the buyer's control, if said services were not delivered automatically and immediately in their name. ",
"h9": "PRIVACY POLICY",
"p42": "The Service and the Administration collect information regarding the user such as email address, name, password, language and time zone, in order to provide better optimization of their services each time, using this information to adapt the functionalities to better performance in line with the user and their requirements. Said information may also be used to keep the user informed through independent communication channels not related to the Service, informing about important news, updates, technical problems or any other information of such nature that the Administration considers relevant to the user's interests. ",
"p43": "The Administration and the Service commit to safeguarding the confidentiality of such data, as well as to guaranteeing the NON-disclosure of it, except in cases where the laws in force governing the Administration consider it necessary and mandatory for reasons not related to UltimoWoW. "
"p43": "The Administration and the Service commit to safeguarding the confidentiality of such data, as well as to guaranteeing the NON-disclosure of it, except in cases where the laws in force governing the Administration consider it necessary and mandatory for reasons not related to NightSpire. "
},
"refund": {
"title": "Refund Policy",
@@ -1289,7 +1289,7 @@
"h3": "NOTIFICATION TIME",
"p6": "Any error or problem with our services must be notified to the administration within a maximum period of 48 hours from the delivery of the service.",
"p7": "After this period of time, the user can no longer request any type of refund.",
"p8": "Contact: <link>contacto@ultimowow.com</link>.",
"p8": "Contact: <link>consultas@nightspire.gg</link>.",
"h4": "COVERAGE",
"p9": "This refund policy covers:",
"p10": "- Acquisition of the wrong service due to a poor selection by the user.",
@@ -1330,10 +1330,10 @@
},
"legalNotice": {
"title": "Legal Notice",
"p1": "The website \"UltimoWoW.com\" and its subdomains (hereinafter, \"the website\") are offered solely for informational and entertainment purposes. UltimoWoW is not responsible for the use that users make of the website. Although correct use is intended, UltimoWoW assumes no responsibility for the actions, decisions or consequences derived from the use of the website. Users are responsible for verifying the accuracy, completeness and usefulness of the information provided, as well as for complying with applicable laws and regulations when using the content of the website.",
"p2": "Third-party links: The website may contain links to third-party websites. These links are provided solely for your convenience and do not imply the endorsement or affiliation of UltimoWoW with said websites. UltimoWoW is not responsible for the content or privacy practices of these third-party websites.",
"p1": "The website \"NightSpire.com\" and its subdomains (hereinafter, \"the website\") are offered solely for informational and entertainment purposes. NightSpire is not responsible for the use that users make of the website. Although correct use is intended, NightSpire assumes no responsibility for the actions, decisions or consequences derived from the use of the website. Users are responsible for verifying the accuracy, completeness and usefulness of the information provided, as well as for complying with applicable laws and regulations when using the content of the website.",
"p2": "Third-party links: The website may contain links to third-party websites. These links are provided solely for your convenience and do not imply the endorsement or affiliation of NightSpire with said websites. NightSpire is not responsible for the content or privacy practices of these third-party websites.",
"p3": "Privacy and Cookies: The collection and use of your personal data is governed by our Privacy Policy and the use of cookies is governed by our Cookie Declaration. By using the website, you accept our practices described in said policies.",
"p4": "Copyright: Users of the website must respect copyright and not publish content that infringes the intellectual property rights of third parties. UltimoWoW is committed to protecting copyright and complying with applicable laws. If you find infringing content, contact us using the infringement claim mechanism described below.",
"p4": "Copyright: Users of the website must respect copyright and not publish content that infringes the intellectual property rights of third parties. NightSpire is committed to protecting copyright and complying with applicable laws. If you find infringing content, contact us using the infringement claim mechanism described below.",
"p5": "Infringement claim mechanism: If you believe that your work has been used in an unauthorized manner on the website, you can submit a copyright infringement claim by providing the required information. Contact us using the contact details below.",
"contactTitle": "Contact"
},
@@ -1341,10 +1341,10 @@
"title": "Contact us",
"p1": "Thank you for your interest in contacting us!",
"p2": "If you have any questions, inquiries or comments, we will be happy to help you. Please send an email to the following address:",
"p3": "Error 404 is the company that represents the UltimoWoW service.",
"p3": "Error 404 is the company that represents the NightSpire service.",
"p4": "We strive to respond to all messages within 48 business hours.",
"p5": "Be sure to include the relevant information in your email so that we can provide you with an accurate and timely response.",
"p6": "At Error 404, we value your comments and opinions. Your satisfaction is our priority and we strive to provide you with the best possible experience at UltimoWoW.",
"p6": "At Error 404, we value your comments and opinions. Your satisfaction is our priority and we strive to provide you with the best possible experience at NightSpire.",
"p7": "We look forward to hearing from you soon!",
"p8": "Sincerely, the Error 404 team."
}
@@ -1863,7 +1863,7 @@
"errorChoose": "You must choose a client and an operating system.",
"macGuideTitle": "Guide to run the client on mac OS Catalina",
"mac1": "macOS Catalina no longer supports applications that run in 32-bit, and the client runs in 32-bit.",
"mac2": "By following the steps below you will be able to enjoy UltimoWoW without problems on macOS Catalina.",
"mac2": "By following the steps below you will be able to enjoy NightSpire without problems on macOS Catalina.",
"macInstructions": "Instructions",
"macStep1": "1 - Download and install <crossover>CrossOver</crossover>.",
"macStep2": "2 - Once you have downloaded the client, run CrossOver and click \"Install a Windows application\".",
+24 -24
View File
@@ -1,7 +1,7 @@
{
"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 🔥"
"title": "NightSpire Server de WoW WotLK 3.4.3 Latino y Español 💎",
"description": "Descarga y juega gratis a WotLK Classic en NightSpire - Server de WoW WotLK 3.4.3 Latino y Español - El mejor server de WoW 🔥"
},
"Nav": {
"home": "Inicio",
@@ -16,7 +16,7 @@
"store": "Tienda"
},
"Home": {
"brand": "Nova WoW",
"brand": "NightSpire",
"serverStatus": "Estado del servidor",
"server": "Servidor",
"onlineCharacters": "Personajes en línea",
@@ -32,7 +32,7 @@
"ctaForum": "Ver foros"
},
"Login": {
"title": "Conectar a Nova WoW",
"title": "Conectar a NightSpire",
"email": "Correo electrónico",
"password": "Contraseña",
"submit": "Conectar",
@@ -1000,7 +1000,7 @@
"pageTitle": "Historial de PD y PV",
"intro1": "Aquí verás los consumos de PD y PV más recientes que ha tenido la cuenta.",
"intro2": "Con esta información podrás tener control de todo lo que has adquirido así como también chequear que toda la actividad sea normal.",
"intro3": "Si observas algún movimiento sospechoso, puedes contactar con el equipo de Nova WoW.",
"intro3": "Si observas algún movimiento sospechoso, puedes contactar con el equipo de NightSpire.",
"boxTitle": "Historial de PD y PV",
"currentBalance": "Saldo actual:",
"noMovements": "No hay movimientos",
@@ -1037,7 +1037,7 @@
"pageTitle": "Historial de transacciones",
"intro1": "Aquí verás la información que recibimos de nuestras diferentes plataformas de pago automáticas.",
"intro2": "¿Has tenido algún problema con alguna transacción?",
"intro3": "Si has tenido un problema con una de las transacciones o no has recibido tus PD, puedes contactarnos en nuestro Discord o a través del correo <mail>contacto@ultimowow.com</mail>.",
"intro3": "Si has tenido un problema con una de las transacciones o no has recibido tus PD, puedes contactarnos en nuestro Discord o a través del correo <mail>consultas@nightspire.gg</mail>.",
"noteStripe": "Los pagos con tarjeta se aprueban normalmente en unos segundos.",
"noteSumup": "SumUp puede tardar unos minutos en confirmar el pago tras completar el checkout.",
"paidNote": "Recibirás los PD correspondientes a cada transacción sólo cuando esté aprobada y el estado sea <s>PAID</s> (Pagado).",
@@ -1136,8 +1136,8 @@
"dur90Days": "90 días",
"dur3Months": "3 meses",
"providerVarious": "Varios",
"nPurpose1": "Mantiene el estado de la sesión del usuario entre páginas. Presente en ultimowow.com y wotlk.ultimowow.com.",
"nPurpose2": "Almacena tus preferencias de consentimiento de cookies. Se comparte entre ultimowow.com y wotlk.ultimowow.com.",
"nPurpose1": "Mantiene el estado de la sesión del usuario entre páginas. Presente en www.nightspire.gg y www.nightspire.gg.",
"nPurpose2": "Almacena tus preferencias de consentimiento de cookies. Se comparte entre www.nightspire.gg y www.nightspire.gg.",
"nPurpose3": "Identifica tráfico legítimo y protege contra bots.",
"nPurpose4": "Bot management y protección contra ataques DDoS.",
"nPurpose5": "Identificador de sesión para gestión de tráfico.",
@@ -1227,12 +1227,12 @@
"h1": "IMPORTANTE",
"p1": "Por favor, tómese un momento para leer los términos y condiciones detallados debajo. Si está de acuerdo con ellos, entonces podrá ingresar en nuestro sitio.",
"h2": "ACEPTACIÓN DE LOS TÉRMINOS DE USO Y CONDICIONES",
"p2": "UltimoWoW es un proyecto sin ánimo de lucro desarrollado con la finalidad de simular versiones desactualizadas del servidor con fines únicamente educativos. Los Servicios ofrecidos por UltimoWoW no apoyan ni proveerán modificación de ningún tipo para con el servidor o sus ficheros, dicho esto, el usuario al hacer uso de este sitio o cualquier servicio perteneciente o derivado de la Administración, acepta hacerse responsable de seguir y cumplir con el contrato de licencia para usuarios finales (EULA) del servidor.",
"p3": "UltimoWoW no provee ni se responsabiliza por la distribución de ningún cliente del servidor o fuente externa que lo contenga. Los enlaces de descarga para el cliente ofrecidos por este sitio o cualquier medio bajo su responsabilidad, apuntarán siempre a dichas fuentes externas, las cuales, a la fecha no pertenecen ni poseen relación alguna con esta administración. No haciéndose UltimoWoW de esta manera, y bajo ningún concepto, responsable sobre aspecto alguno sobre dicha fuente, dígase: calidad, rendimiento, garantías o cualquiera fuese o no, característica determinante a su fin.",
"p4": "Al acceder, navegar o usar este sitio de Internet y en adelante (el “Sitio”), propiedad de la administración UltimoWoW en adelante (la “Administración”), el usuario admite haber leído y entendido los presentes términos y condiciones de uso, en adelante (“Términos y Condiciones”) y está de acuerdo en acatar los mismos y cumplir con todas las normas, leyes y reglamentos aplicables que hagan parte de la legislación vigente en su lugar de residencia, o a las que se sujete indistintamente. Además, cuando el usuario utilice cualquier servicio suministrado o referenciado en el Sitio, (siempre y cuando éste resida bajo responsabilidad o propiedad de la Administración) estará sujeto a las reglas, guías, políticas, términos y condiciones aplicables a dichos servicios.",
"p2": "NightSpire es un proyecto sin ánimo de lucro desarrollado con la finalidad de simular versiones desactualizadas del servidor con fines únicamente educativos. Los Servicios ofrecidos por NightSpire no apoyan ni proveerán modificación de ningún tipo para con el servidor o sus ficheros, dicho esto, el usuario al hacer uso de este sitio o cualquier servicio perteneciente o derivado de la Administración, acepta hacerse responsable de seguir y cumplir con el contrato de licencia para usuarios finales (EULA) del servidor.",
"p3": "NightSpire no provee ni se responsabiliza por la distribución de ningún cliente del servidor o fuente externa que lo contenga. Los enlaces de descarga para el cliente ofrecidos por este sitio o cualquier medio bajo su responsabilidad, apuntarán siempre a dichas fuentes externas, las cuales, a la fecha no pertenecen ni poseen relación alguna con esta administración. No haciéndose NightSpire de esta manera, y bajo ningún concepto, responsable sobre aspecto alguno sobre dicha fuente, dígase: calidad, rendimiento, garantías o cualquiera fuese o no, característica determinante a su fin.",
"p4": "Al acceder, navegar o usar este sitio de Internet y en adelante (el “Sitio”), propiedad de la administración NightSpire en adelante (la “Administración”), el usuario admite haber leído y entendido los presentes términos y condiciones de uso, en adelante (“Términos y Condiciones”) y está de acuerdo en acatar los mismos y cumplir con todas las normas, leyes y reglamentos aplicables que hagan parte de la legislación vigente en su lugar de residencia, o a las que se sujete indistintamente. Además, cuando el usuario utilice cualquier servicio suministrado o referenciado en el Sitio, (siempre y cuando éste resida bajo responsabilidad o propiedad de la Administración) estará sujeto a las reglas, guías, políticas, términos y condiciones aplicables a dichos servicios.",
"p5": "Este Sitio es controlado y desarrollado por la Administración, localizable a través de sus plataformas de Discord.",
"p6": "La Administración no es responsable de que el material en este Sitio sea apropiado o esté disponible para su uso en otros lugares, estando prohibido su acceso desde territorios donde su contenido sea ilegal. Aquellos que decidan acceder a este Sitio desde otros lugares lo harán bajo su propia iniciativa, y es su responsabilidad el sujetarse a las leyes locales que sean aplicables.",
"p7": "Estos Términos y Condiciones están sujetos a cambios a discreción, sin previo aviso y en cualquier momento, bajo la sola voluntad de UltimoWoW, y partiendo de la fecha de publicación de la modificación de los mismos en este Sitio, todas las operaciones celebradas entre la Administración y el usuario se regirán por el documento modificado.",
"p7": "Estos Términos y Condiciones están sujetos a cambios a discreción, sin previo aviso y en cualquier momento, bajo la sola voluntad de NightSpire, y partiendo de la fecha de publicación de la modificación de los mismos en este Sitio, todas las operaciones celebradas entre la Administración y el usuario se regirán por el documento modificado.",
"h3": "NUESTRO SERVICIO: USO, DISTRIBUCIÓN Y DESCARGO DE RESPONSABILIDADES",
"p8": "De conformidad con las legislaciones bajo las cuales la Administración se acate, el material contenido en este Sitio o cualquier otro que se encontrase bajo su responsabilidad o tutela y en adelante, (los “Servicios” o el “Servicio”), incluyendo sin limitación, toda imagen, links, logotipo, diseño, insignia, marca, fotografía, sonido, texto, mensaje, herramienta, software, tecnología, producto, archivo, información, dato, demostración, muestra, material promocional, obra audiovisual u obra multimedia, y cualquiera sea otro elemento o forma de expresión (de forma colectiva y en adelante, (los \"Materiales\"), son suministrados según nuestro leal saber y entender, sin embargo, no es posible descartar errores de contenido o del material, razón por la cual la Administración no asume responsabilidad por la calidad, veracidad o exactitud, de la información publicada ni por las omisiones, errores o discrepancias que pudiesen encontrarse en la información publicada o servicio brindado. ",
"p9": "Respecto a la información publicada en los Servicios, la Administración no confiere garantías de ningún tipo, expresas ni implícitas, excluyendo, más no limitado a:",
@@ -1240,8 +1240,8 @@
"p11": "- Estabilidad ininterrumpida del Servicio.",
"p12": "- Existencia de errores o virus, así como sobre su seguridad.",
"p13": "- Exactitud, confiabilidad, calificación o certificación para su descarga.",
"p14": "La Administración no se hace responsable sobre el uso que el usuario haga de los contenidos incluidos en los Servicios, ni de las decisiones que tome respecto a éstos. La información respecto a los productos y servicios de UltimoWoW, incluida en sus Servicios es brindada con fines edcuativos no comerciales y no constituye oferta de venta para sus usuarios.",
"p15": "UltimoWoW se reserva el derecho de a discreción:",
"p14": "La Administración no se hace responsable sobre el uso que el usuario haga de los contenidos incluidos en los Servicios, ni de las decisiones que tome respecto a éstos. La información respecto a los productos y servicios de NightSpire, incluida en sus Servicios es brindada con fines edcuativos no comerciales y no constituye oferta de venta para sus usuarios.",
"p15": "NightSpire se reserva el derecho de a discreción:",
"p16": "- Corregir cualquier error, omisión o inexactitud en los datos brindados.",
"p17": "- Cambiar o actualizar, descontinuar o eliminar la información contenida en los Servicios en cualquier momento y sin previo aviso.",
"p18": "- Así como también se exime de responsabilidad sobre lo que refiere a la puntualidad, falta de almacenamiento, inexactitud o entrega incorrecta de cualquier información o dato de los que “normalmente” proporcione, ya sea temporal o permanentemente.",
@@ -1257,9 +1257,9 @@
"p26": "- Utilizar cualquier técnica o software para alterar o manipular las variables preestablecidas por el servidor y la Administración.",
"p27": "Se prohíbe terminantemente hacer trampas y la Administración se reserva el derecho de denegar a cualquier usuario el acceso al Servicio, siempre y cuando hubiere incurrido o fuese objeto de una falta de este tipo ya fuese directa e indirectamente.",
"h6": "COMPRAS, RECLAMACIONES, REEMBOLSOS Y GARANTÍAS",
"p28": "UltimoWoW no representa ni constituye entidad remesadora ni de servicios financieros de ninguna índole y en consecuencia no posee control o responsabilidad alguna sobre el origen de aquellos fondos utilizados para realizar compras hacia su comunidad. Así como tampoco se responsabiliza por los riesgos que el usuario tomase bajo su propia voluntad, a la hora de ejecutar operaciones financieras de cualquier tipo.",
"p28": "NightSpire no representa ni constituye entidad remesadora ni de servicios financieros de ninguna índole y en consecuencia no posee control o responsabilidad alguna sobre el origen de aquellos fondos utilizados para realizar compras hacia su comunidad. Así como tampoco se responsabiliza por los riesgos que el usuario tomase bajo su propia voluntad, a la hora de ejecutar operaciones financieras de cualquier tipo.",
"p29": "Las compras: serán consideradas siempre de fe voluntaria y en ningún caso, obligación de ningún tipo para ningún usuario. Nótese además que quedan terminantemente prohibidos las compras por parte de personas naturales menores de 18 años o dígase en cualquier caso aquellas personas que no alcanzaran aún al amparo de las entidades legales locales y pertinentes que le competan, su mayoría de edad.",
"p30": "El Servicio: en cualquier caso, no requiere ningún tipo de compra para un uso y disfrute total y a plenitud. Dicho esto, el usuario contará con un canal de comunicación oficial vía email contacto@ultimowow.com con el objetivo de notificar a la Administración de cualquier error cometido por cualquiera de las partes, en aras de emitir y hacer efectiva justa resolución",
"p30": "El Servicio: en cualquier caso, no requiere ningún tipo de compra para un uso y disfrute total y a plenitud. Dicho esto, el usuario contará con un canal de comunicación oficial vía email consultas@nightspire.gg con el objetivo de notificar a la Administración de cualquier error cometido por cualquiera de las partes, en aras de emitir y hacer efectiva justa resolución",
"p31": "La Administración: garantiza y se compromete en brindar al comprador toda información que requiriese sobre las formas o métodos de compra vigentes para con la comunidad. Así como aclarar cualquier duda que pudiese surgir sobre los pasos o procesos establecidos de las mismas, siempre y cuando dicha información resida dentro de los límites que competan al comprador y posea un propósito únicamente informativo.",
"p32": "Tomado en cuenta lo anterior, el comprador cuenta con garantías de reembolso monetario y de servicios, atendiendo a aspectos y condiciones expuestos a continuación.",
"h7": "Monetarios:",
@@ -1275,7 +1275,7 @@
"p41": "Así como también la Administración garantizará la restauración del servicio por problemas técnicos y puntuales, entre el Servicio y las plataformas de pago siempre ajenos al comprador, no fuesen entregados dichos servicios de forma automática e inmediata a nombre del mismo. ",
"h9": "POLÍTICA DE PRIVACIDAD",
"p42": "El Servicio y la Administración recopilan información referente al usuario tales como dirección de correo electrónico, nombre, contraseña, idioma y zona horaria, con el fin de brindarle una mejor optimización cada vez a sus servicios, utilizando esta información para acomodar las funcionalidades a un mejor rendimiento a fin con el usuario y sus requerimientos. Dicha información también podrá ser usada para mantener al usuario mediante canales de comunicaciones independientes y no referentes al Servicio, informando sobre noticias importantes, actualizaciones, problemas técnicos o cualquier otra información de tal índole que considerase la Administración relevante a los intereses del usuario. ",
"p43": "La Administración y el Servicio se comprometen a salvaguardar la confidencialidad sobre tales datos, así como a garantizar la NO divulgación de estos, exceptuando los casos donde las leyes vigentes que rigiesen sobre la Administración lo consideraran necesario y mandatorio por motivos no referentes a UltimoWoW. "
"p43": "La Administración y el Servicio se comprometen a salvaguardar la confidencialidad sobre tales datos, así como a garantizar la NO divulgación de estos, exceptuando los casos donde las leyes vigentes que rigiesen sobre la Administración lo consideraran necesario y mandatorio por motivos no referentes a NightSpire. "
},
"refund": {
"title": "Política de reembolso",
@@ -1289,7 +1289,7 @@
"h3": "TIEMPO DE NOTIFICACIÓN",
"p6": "Cualquier error o problema de nuestros servicios debe ser notificado a la administración en un período máximo de 48 horas desde la entrega del servicio.",
"p7": "Pasado este período de tiempo, el usuario ya no puede solicitar ningún tipo de devolución.",
"p8": "Contacto: <link>contacto@ultimowow.com</link>.",
"p8": "Contacto: <link>consultas@nightspire.gg</link>.",
"h4": "COBERTURA",
"p9": "Esta política de devolución cubre:",
"p10": "- Adquisición del servicio incorrecto por una mala selección del usuario.",
@@ -1330,10 +1330,10 @@
},
"legalNotice": {
"title": "Aviso legal",
"p1": "El sitio web \"UltimoWoW.com\" y sus subdominios (en adelante, \"el sitio web\") se ofrecen únicamente con fines informativos y de entretenimiento. UltimoWoW no se hace responsable del uso que los usuarios hagan del sitio web. Aunque se procura que se dé un uso correcto, UltimoWoW no asume responsabilidad por las acciones, decisiones o consecuencias derivadas del uso del sitio web. Los usuarios son responsables de verificar la precisión, integridad y utilidad de la información proporcionada, así como de cumplir con las leyes y regulaciones aplicables al utilizar el contenido del sitio web.",
"p2": "Enlaces a terceros: El sitio web puede contener enlaces a sitios web de terceros. Estos enlaces se proporcionan únicamente para tu conveniencia y no implican el respaldo o afiliación de UltimoWoW con dichos sitios web. UltimoWoW no se hace responsable del contenido o las prácticas de privacidad de estos sitios web de terceros.",
"p1": "El sitio web \"NightSpire.com\" y sus subdominios (en adelante, \"el sitio web\") se ofrecen únicamente con fines informativos y de entretenimiento. NightSpire no se hace responsable del uso que los usuarios hagan del sitio web. Aunque se procura que se dé un uso correcto, NightSpire no asume responsabilidad por las acciones, decisiones o consecuencias derivadas del uso del sitio web. Los usuarios son responsables de verificar la precisión, integridad y utilidad de la información proporcionada, así como de cumplir con las leyes y regulaciones aplicables al utilizar el contenido del sitio web.",
"p2": "Enlaces a terceros: El sitio web puede contener enlaces a sitios web de terceros. Estos enlaces se proporcionan únicamente para tu conveniencia y no implican el respaldo o afiliación de NightSpire con dichos sitios web. NightSpire no se hace responsable del contenido o las prácticas de privacidad de estos sitios web de terceros.",
"p3": "Privacidad y Cookies: La recopilación y uso de tus datos personales se rigen por nuestra Política de Privacidad y el uso de cookies se rige por nuestra Declaración de Cookies. Al utilizar el sitio web, aceptas nuestras prácticas descritas en dichas políticas.",
"p4": "Derechos de autor: Los usuarios del sitio web deben respetar los derechos de autor y no publicar contenido que infrinja los derechos de propiedad intelectual de terceros. UltimoWoW se compromete a proteger los derechos de autor y cumplir con las leyes aplicables. Si encuentras contenido infractor, contáctanos utilizando el mecanismo de reclamación de infracción descrito a continuación.",
"p4": "Derechos de autor: Los usuarios del sitio web deben respetar los derechos de autor y no publicar contenido que infrinja los derechos de propiedad intelectual de terceros. NightSpire se compromete a proteger los derechos de autor y cumplir con las leyes aplicables. Si encuentras contenido infractor, contáctanos utilizando el mecanismo de reclamación de infracción descrito a continuación.",
"p5": "Mecanismo de reclamación de infracción: Si crees que tu trabajo ha sido utilizado de manera no autorizada en el sitio web, puedes presentar una reclamación por infracción de derechos de autor proporcionando la información requerida. Contáctanos utilizando los datos de contacto a continuación.",
"contactTitle": "Contacto"
},
@@ -1341,10 +1341,10 @@
"title": "Contáctanos",
"p1": "¡Gracias por tu interés en contactar con nosotros!",
"p2": "Si tienes alguna pregunta, consulta o comentario, estaremos encantados de ayudarte. Por favor, envía un correo electrónico a la siguiente dirección:",
"p3": "Error 404 es la empresa que representa el servicio de UltimoWoW.",
"p3": "Error 404 es la empresa que representa el servicio de NightSpire.",
"p4": "Nos esforzamos por responder a todos los mensajes en un plazo de 48 horas hábiles.",
"p5": "Asegúrate de incluir la información relevante en tu correo para que podamos brindarte una respuesta precisa y oportuna.",
"p6": "En Error 404, valoramos tus comentarios y opiniones. Tu satisfacción es nuestra prioridad y nos esforzamos por brindarte la mejor experiencia posible en UltimoWoW.",
"p6": "En Error 404, valoramos tus comentarios y opiniones. Tu satisfacción es nuestra prioridad y nos esforzamos por brindarte la mejor experiencia posible en NightSpire.",
"p7": "¡Esperamos tener noticias tuyas pronto!",
"p8": "Atentamente, el equipo de Error 404."
}
@@ -1863,7 +1863,7 @@
"errorChoose": "Debes escoger un cliente y un sistema operativo.",
"macGuideTitle": "Guía para ejecutar el cliente en mac OS Catalina",
"mac1": "macOS Catalina ya no soporta aplicaciones que trabajan en 32bits, y el cliente se ejecuta en 32bits.",
"mac2": "Siguiendo los pasos a continuación podrás disfrutar UltimoWoW sin problemas en macOS Catalina.",
"mac2": "Siguiendo los pasos a continuación podrás disfrutar NightSpire sin problemas en macOS Catalina.",
"macInstructions": "Instrucciones",
"macStep1": "1 - Descarga e instala <crossover>CrossOver</crossover>.",
"macStep2": "2 - Una vez que tengas descargado el cliente, ejecuta CrossOver y haz clic en \"Instalar una aplicación para Windows\".",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB