이메일의 날짜 줄은 사람이 읽기 쉽게 표시되어야 합니다

토론 주제에 새 날짜 항목이 추가되면, 해당 알림 메일에서는 다음과 같이 표시됩니다:

Nächstes Freifunk Treffen Makers Inn (noch unbestätigt)

2024-04-18T16:00:00Z UTC→2024-04-18T20:00:00Z UTC

메일 게시 채널의 경우, 이 형식은 Discourse 인스턴스의 현재 시간대(이 경우: CET)를 고려하여 사람이 읽기 쉬운 날짜 정보로 다시 포맷되어야 합니다.

4개의 좋아요

Discourse 인스턴스에는 "시간대"라는 개념이 없습니다. 개별 사용자 세션에만 시간대가 있습니다.

1개의 좋아요

네, 이 경우 날짜 줄은 알림 이메일을 받는 사용자의 시간대로 변환되어야 합니다.

1개의 좋아요
  1. 이벤트 또는 이벤트 생성자의 시간대에 맞춰 표시되어야 합니다.
  2. 더 보기 좋게 포맷되어야 합니다. 예를 들어, “2024-04-18T16:00:00Z UTC→2024-04-18T20:00:00Z UTC” 대신 “UTC 2024-04-18, 16:00-20:00”처럼 표시되어야 합니다.
1개의 좋아요

아니오 :wink: 수신자에게는 그들 자신의 시간대로 변환되어 표시되어야 합니다. 따라서

UTC 2024-04-18, 16:00-20:00 대신

CET 2024-04-18, 18:00-22:00으로 표기되어야 합니다.

스레드 상단의 시각 캘린더에도 올바른 시간이 표시되어 있습니다.

3개의 좋아요

각 이메일마다 서버 측에서 추가적인 개별 조회와 처리가 필요하기 때문에, 이는 합리적인 요청이라고 생각하지 않습니다.

여기 코드를 잘 모르지만, 이건 가능한 단점일 수 있다고 동의합니다.
반면, 상단의 시각적 캘린더에서는 올바른 날짜가 표시되고 있습니다 … 코드를 아는 사람이 여기에 댓글을 달았으면 좋겠습니다 …

코드를 직접 확인하지는 않았지만, 웹에서는 날짜가 데이터베이스에서 클라이언트로 동일하게 로드되고, 클라이언트 측에서 JavaScript를 통해 파싱된다고 추정합니다(메일 클라이언트에서 콘텐츠를 클라이언트 측으로 렌더링할 경우 이러한 옵션을 사용할 수 없기 때문입니다).

사실, 이메일이 우리의 서버를 벗어난 후에는 수신자의 시간대에 맞춰 조정할 수 있는 방법이 없습니다.

이전에 이에 대한 논의가 있었습니다: Discourse local dates need better presentation in emails

UTC로 전환한 것은 시간대를 표시하지 않거나, 모든 날짜에 대해 3개의 시간대가 표시될 수 있는 매우 장황한 상황을 개선한 것이었습니다. 하지만 여전히 사이트/사용자 시간대를 활용하기 위한 후속 조치가 이루어지지 않았습니다.

몇 시간 차이밖에 나지 않더라도, 많은 사람들은 UTC보다는 특정 시간대를 기준으로 하는 것이 언제인지 더 잘 추측할 수 있을 것입니다.

5개의 좋아요

이메일에 표시되는 현재 UTC 시간은 일반 사용자에게 정말, 정말 불편합니다. 특히 세계의 반대편(예: 뉴질랜드)에 있는 사용자라면 더욱 그렇습니다.

많은 Discourse 기반 포럼은 단일 시간대에 뿌리를 두고 있습니다. 이러한 경우, 이메일에 기본적으로 표시되는 시간대를 지정할 수 있으면 완벽하게 작동할 것입니다.

시간대가 여러 개에 걸쳐 있는 포럼의 경우, 상황이 더 복잡합니다. 5년 된 ‘임시’ 수정안이 여전히 남아 있는 것이 그 증거입니다. 저보다 훨씬 더 똑똑하거나(아니면 적어도 더 헌신적인) 누군가가 이 문제를 해결해 주기를 진심으로 바랍니다.

5개의 좋아요

100% 동의합니다. 저희 포럼은 호주에 위치해 있으며, 폐쇄된 토픽을 사실상 메일링 리스트로 활용하고 있습니다. 거의 모든 사용자가 호주에 거주하며, 회의 시간이 이를 반영하기를 기대합니다. 이메일에 UTC로 표시되는 것은 많은 사용자에게 완전히 혼란스럽습니다.

적어도 사용할 시간대를 설정하고, 각 인스턴스가 이를 오버라이드할지 여부를 선택할 수 있게 해줄 수는 없나요?

3개의 좋아요

@j.jaffeux / @hugh / @lindsey 이 PR에 대해 어떻게 생각하시나요?

이 PR은 다음과 같은 내용을 포함합니다:

  1. 기본 이메일 날짜 형식을 llll(예: Tue, May 8, 2018 2:00 AM)로 변경합니다.
    기존 형식인 2018-05-08T00:00:00Z UTC는 가독성이 좋지 않기 때문입니다.
  2. 이메일의 기본 시간대를 설정할 수 있는 discourse_local_dates_email_timezone 옵션을 추가합니다.
  3. 사이트 설정(형식/시간대)의 도움말 텍스트를 개선합니다.

따라서 지역성이 강한 Discourse 인스턴스의 경우 해당 국가의 시간대로 설정하여 이메일이 혼란스럽지 않도록 할 수 있습니다.

이 부분은 다소 복잡하며, 이를 파이프라인에 통합하는 것은 쉽지 않습니다.

5개의 좋아요

시간을 어떻게 표시하든, 반드시 선택한 시간대를 포함해 주세요! 꼭, 꼭, 꼭 포함해 주세요!

2개의 좋아요

죄송하지만 무슨 말씀인지 잘 모르겠습니다. 여기서 말씀하신 내용을 좀 더 자세히 설명해 주실 수 있을까요?

예시 텍스트에는 시간대가 없습니다. 이것이 실제로 사용될 것이라면 좋지 않다고 생각합니다. 적절한 3~4글자 시간대 설명자나 국가/도시의 긴 형식 설명자를 추가하는 것을 강력히 권장합니다. 기존 텍스트에는 "UTC"가 포함되어 있어 의도가 모호하지 않은 명확한 표시인데, 새로운 동작은 최소한 그 정도는 되어야 합니다.

"매우 지역적인 대화"라 할지라도 인접 시간대에 있는 사용자가 있을 수 있고, 일광절약시간제(DST)로 인한 시간 변경이 있을 수 있으며, 여행 중 멀리서 접근하는 사용자가 있을 수도 있습니다.

2개의 좋아요

같은 PR에서 :slight_smile:

discourse_local_dates_email_format:
    default: "llll UTC"

이 부분은 크게 문제 삼고 싶지 않지만, 이제 날짜를 이해하기가 매우 어렵습니다. 그래서 NYC/런던/파리 사용자들이 조금은 덜 혼란스러운 것을 받게 되어 다행입니다… 하지만 모든 사람에게 만족스러운 포맷을 만드는 것은 정말 어렵습니다.

기본값은 기존 상태 그대로 유지할 수 있습니다.

1개의 좋아요

discourse_local_dates_email_timezone를 "Europe/Paris

2개의 좋아요

네, 그렇게 됩니다. 설정이 서로 연결되어 있어 두 가지를 모두 변경해야 합니다.

제 PR 이전에는 "UTC"라는 텍스트가 하드코딩되어 있어서 아예 설정할 수도 없었습니다.

3개의 좋아요

그건 오류가 발생하기 쉬운 것 같은데요. 관리자가 수동으로 형식을 업데이트하도록 기대하는 대신, 선택된 시간대를 자동으로 표시하는 것이 가능한가요? discourse_local_dates_email_format의 기본값으로 "llll z"를 사용하는 것이 작동할까요?

5개의 좋아요

좋은 지적이네요, Moin! :hugs: PR을 업데이트했습니다.

6개의 좋아요