Nuestro(s) sitio(s) está(n) casi exclusivamente restringido(s) a nuestra nación.
Tenemos un problema particular en el que nuestra zona horaria parece una ubicación específica en nuestro país, y por lo tanto puede confundir a los usuarios cuando se ve con el campo de ubicación inmediatamente debajo:
En este caso, el evento (local) se celebra en un establecimiento local bien conocido a unos 1000 km de la ciudad de Auckland (en otra ciudad). Tener el (Auckland) ahí es bastante engañoso.
Ha habido algo de discusión en el hilo enlazado al respecto:
Sería muy útil poder ocultar la zona horaria (especialmente en Eventos) para los eventos locales a nivel de sitio, pero no veo cómo hacerlo con CSS, y ask.discourse.com no ayuda.
Junto a esto, sería muy útil poder establecer los eventos locales como predeterminados.
la ciudad de la zona horaria del evento solo se muestra si “Mostrar hora local” está activado en la configuración del evento
“Mostrar hora local” está desactivado por defecto
Así que supongo que tienes usuarios que activan “Mostrar hora local”, y tú no quieres esto.
¿Qué pasaría si ocultas la configuración “Mostrar hora local” para que no se pueda activar?
.event-field.show-local-time {
display: none;
}
Los nuevos eventos mostrarán entonces la hora y la ciudad de la zona horaria del usuario. (No veo una forma de ocultar la ciudad, ya que es contenido generado).
por ejemplo, un evento creado en la hora de Phoenix se mostrará con mi propia hora local y “Chicago”.
Gracias por tu consideración y sugerencias, ¡Todd!
No exactamente, ese no es el problema. En realidad no importa mucho si es local o del usuario (será el mismo en la mayoría de los casos).
El problema es que nuestra zona horaria en particular es engañosa debido al texto que contiene (es la única zona horaria de Nueva Zelanda). Esto también se aplica a ti: en tu ejemplo anterior, implica que el evento se llevará a cabo en Little Creek, Chicago.
Bueno, después de golpearme la cabeza contra el muro de la codificación de vibraciones por un tiempo, tengo este fragmento de javascript (colocado en la pestaña JS de un Componente de Tema local) que me está funcionando:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("swap-auckland-for-nz", (api) => {
function swapTimezones(root = document) {
root.querySelectorAll('.relative-time').forEach(elem => {
if (elem.textContent && elem.textContent.includes('(Auckland)')) {
elem.textContent = elem.textContent.replace('(Auckland)', '(NZ)');
}
});
}
api.onPageChange(() => {
swapTimezones(document);
// Configurar observador de mutación persistente para eventos dinámicos/salida de calendario
const observer = new MutationObserver(() => {
swapTimezones(document);
});
observer.observe(document.body, { childList: true, subtree: true });
// Opcionalmente, también ejecutar de nuevo después de otros eventos de navegación
window.addEventListener("hashchange", () => swapTimezones(document));
window.addEventListener("popstate", () => swapTimezones(document));
});
});
Si encuentro tiempo, lo empaquetaré como un Componente de Tema instalable para que otros puedan usarlo si lo desean.
No me di cuenta de que Nueva Zelanda tenía una sola zona horaria, pero cuando terminé allí tuve la sensación de que tu problema necesitaría javascript. ¡Me alegro de que hayas encontrado una solución en JS!