nathank
(Nathan Kershaw)
2월 26, 2026, 3:28오전
1
New Calendar Feature: Show Local Time 에서 이어지는 논의입니다:
저희 사이트는 거의 전적으로 우리나라로 제한되어 있습니다.
특정 문제가 있는데, 저희 시간대가 우리나라의 특정 지역처럼 보이므로, 바로 아래에 위치한 위치 필드와 함께 볼 때 사용자를 혼란스럽게 할 수 있습니다:
이 경우, (현지) 행사는 오클랜드 시에서 약 1000km 떨어진 다른 도시의 잘 알려진 현지 시설에서 개최되고 있습니다. 여기에 (Auckland)이 포함되어 있어 매우 오해의 소지가 있습니다.
링크된 스레드에서 이에 대한 논의가 있었습니다:
j.jaffeux:
네, 알고 있지만 최종 사용자는 모릅니다.
사이트 수준에서 현지 이벤트의 시간대를 숨길 수 있다면(특히 이벤트의 경우) 매우 유용할 것입니다. 하지만 CSS로 이를 수행하는 방법을 찾지 못하고 있으며, ask.discourse.com에서도 도움이 되지 않습니다.
이와 관련하여, 현지 이벤트를 기본값으로 설정할 수 있다면 매우 유용할 것입니다.
1개의 좋아요
ToddZ
2월 26, 2026, 4:17오전
2
제가 이해한 바로는:
이벤트 의 시간대 도시는 이벤트 설정에서 '로컬 시간 표시’가 활성화된 경우에만 표시됩니다.
'로컬 시간 표시’는 기본적으로 비활성화되어 있습니다.
즉, 사용자가 이벤트에서 '로컬 시간 표시’를 활성화하고 있으며, 이를 원치 않으시는 것으로 보입니다.
‘로컬 시간 표시’ 설정을 숨겨서 활성화할 수 없게 하는 것은 어떨까요?
.event-field.show-local-time {
display: none;
}
그렇게 하면 새 이벤트는 적어도 사용자 의 시간과 시간대 도시가 표시됩니다. 피닉스 시간으로 생성된 이벤트는 제 로컬 시간과 "Chicago"가 표시됩니다.
도시를 완전히 제거하는 방법은 보이지 않습니다 – 그것은 이미 처리된(cooked) 콘텐츠의 일부이기 때문입니다 – 그리고 여전히 혼란을 줄 수 있다고 생각합니다. 아마도 해당 셀렉터 내부의 괄호 안 텍스트에 대해 자바스크립트가 동작할 수 있을까요? CSS로 생각할 수 있는 최선의 방법은 시간대 팝업을 클릭하도록 장려하기 위해 아이콘을 추가하는 것입니다:
span.discourse-local-date.cooked-date::after {
content: " ℹ️";
}
nathank
(Nathan Kershaw)
2월 27, 2026, 4:20오전
3
이 건에 대한 검토와 조언에 감사드립니다, Todd!
아니에요, 그게 문제가 아닙니다. 현지 시간이든 사용자 시간이든 사실 크게 중요하지 않습니다 (대부분의 경우 둘은 동일할 테니까요).
문제는 우리의 특정 시간대 이름이 포함된 텍스트 때문에 오해를 살 수 있다는 점입니다 (이것은 뉴질랜드의 유일한 시간대입니다). 이 문제는 당신에게도 해당됩니다: 위 예시에서는 이벤트가 시카고의 리틀 크릭(Little Creek)에서 열린다는 인상을 줍니다.
저는 대신 이렇게 표현하고 싶습니다:
일단 ‘바이브 코딩(vibe coding)’ 벽에 머리를 부딪히다 보니, 결국 이 JavaScript 코드 조각(로컬 테마 컴포넌트의 JS 탭에 넣은 것)이 제게는 잘 작동하고 있습니다:
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);
// Set up persistent mutation observer for dynamic events/calendar output
const observer = new MutationObserver(() => {
swapTimezones(document);
});
observer.observe(document.body, { childList: true, subtree: true });
// Optionally, also run again after other navigation events
window.addEventListener("hashchange", () => swapTimezones(document));
window.addEventListener("popstate", () => swapTimezones(document));
});
});
시간이 나면 이걸 설치 가능한 테마 컴포넌트로 패키징해서 다른 사람들도 필요하면 사용할 수 있게 하려고 합니다.
ToddZ
2월 27, 2026, 4:42오전
4
뉴질랜드가 전부 하나의 시간대인 줄 몰랐는데, 거기에 있는 동안 작업을 마칠 때쯤에는 이 문제를 해결하려면 JavaScript가 필요할 것 같다는 느낌이 들었습니다. JavaScript로 해결책을 찾았다니 다행이네요!
1개의 좋아요