MediaWiki:Common.js

De wiki
Ir a la navegación Ir a la búsqueda

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */
// Ocultar pestaña de historial para todos
$(document).ready(function() {
    $('#ca-history').hide();
});

/* ===== RELOJ BILINGÜE + HUSOS HORARIOS ===== */
function iniciarRelojes() {
    // Verificar si los elementos existen
    if (!document.getElementById("hora-es") || !document.getElementById("hora-ar")) {
        console.error("Error: No se encontraron los elementos del reloj");
        return;
    }

    // Configuraciones de formato
    const configES = {
        timeZone: "Europe/Madrid",
        weekday: 'long',
        year: 'numeric',
        month: 'long',
        day: 'numeric',
        hour: '2-digit',
        minute: '2-digit',
       // second: '2-digit',
        hour12: false
       // , era: 'short' // Añade "d. C." (gregoriano)
    };

    const configAR = {
    	timeZone: "Europe/Madrid",
        weekday: 'long',
        year: 'numeric',
        month: 'long',
        day: 'numeric',
        hour: '2-digit',
        minute: '2-digit',
        // second: '2-digit',
        hour12: false,
        numberingSystem: 'arab'
       // , era: 'short' // Añade "م" (sin punto en algunos navegadores)
    };

    // Función para formatear la fecha en árabe con ".م"
    function formatearFechaArab(fecha) {
        let fechaFormateada = fecha.toLocaleString('ar-EG', configAR);
        // Reemplazar "م" (con o sin espacio) por ".م" con espacio adecuado
        return fechaFormateada.replace(/م\s*/, '.م ');
    }

    // Actualizar relojes
    function actualizarReloj() {
        try {
            const ahora = new Date(); // Solo una instancia de Date
            document.getElementById("hora-es").textContent = ahora.toLocaleString('es-ES', configES);
            document.getElementById("hora-ar").textContent = ahora.toLocaleString('ar-EG', configAR);
         // document.getElementById("hora-ar").textContent = formatearFechaArab(ahora);
        } catch (e) {
            console.error("Error al actualizar reloj:", e);
        }
    }

    // Actualizar husos horarios (sin cambios)
    function actualizarHusos() {
        const husos = [
            { id: "utc1", tz: "Africa/Algiers", nombre: "المغرب العربي" },
            { id: "utc2", tz: "Africa/Tripoli", nombre: "ليبيا والسودان" },
            { id: "utc3", tz: "Asia/Riyadh", nombre: "الخليج العربي" },
            { id: "utc4", tz: "Asia/Muscat", nombre: "عمان" }
        ];

        const ahora = new Date();
        husos.forEach(huso => {
            try {
                const opciones = {
                    timeZone: huso.tz,
                    hour: '2-digit',
                    minute: '2-digit',
                    second: '2-digit',
                    hour12: false
                };
                const elemento = document.getElementById(huso.id);
                if (elemento) {
                    elemento.textContent = ahora.toLocaleTimeString('ar-EG', opciones);
                }
            } catch (e) {
                console.error(`Error en huso ${huso.id}:`, e);
            }
        });
    }

    // Iniciar y programar actualizaciones
    actualizarReloj();
    actualizarHusos();
    setInterval(actualizarReloj, 1000);
    setInterval(actualizarHusos, 1000);
}

// Esperar a que el DOM esté listo
if (typeof mw !== 'undefined' && mw.loader) {
    mw.loader.using('jquery').then(() => $(document).ready(iniciarRelojes));
} else {
    document.addEventListener('DOMContentLoaded', iniciarRelojes);
}