Строка даты в письмах должна быть понятна человеку

Новые записи дат в теме отображаются в соответствующих уведомлениях по электронной почте следующим образом:

Следующая встреча Freifunk в Makers Inn (еще не подтверждена)

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

Для канала публикации по электронной почте это должно быть переформатировано в читаемую человеком дату с учетом текущего часового пояса (в данном случае: CET) экземпляра Discourse.

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 лайка

Я не думаю, что это разумная просьба, так как это потребует дополнительного индивидуального поиска и обработки на стороне сервера для каждого письма.

Я не знаю код здесь, но это возможный недостаток, я согласен.
С другой стороны, мы видим правильную дату в визуальном календаре сверху… Тот, кто знает код, должен прокомментировать это…

Код я не проверял, но предполагаю, что в вебе дата загружается из базы данных на клиент и парсится на стороне клиента с помощью JS (что невозможно, когда вы рендерите контент на стороне клиента в почтовом клиенте).

Действительно, после того как письмо покидает наши серверы, мы не можем адаптировать его под часовой пояс получателя.

Ранее уже обсуждался этот вопрос: Discourse local dates need better presentation in emails

Переход на UTC стал улучшением по сравнению с отсутствием указания часового пояса или чрезмерно подробным отображением, где для каждой даты могли указываться три разных пояса. Однако последующая доработка для использования часового пояса сайта или пользователя так и не была реализована.

Даже если разница составляет несколько часовых поясов, многие люди, вероятно, смогут точнее оценить время, отталкиваясь от конкретного пояса, а не от UTC.

5 лайков

Текущее использование UTC в письмах действительно ужасно для «обычного пользователя», особенно если вы находитесь на противоположной стороне света (например, в Новой Зеландии).

Многие форумы на Discourse привязаны к одному часовому поясу; для них было бы великолепно иметь возможность указывать часовой пояс по умолчанию, отображаемый в письмах.

Для форумов, охватывающих несколько часовых поясов, всё сложнее — это подтверждается тем, что у нас до сих пор есть «временное» решение возрастом пять лет. Я бы очень хотел, чтобы кто-то значительно умнее (или хотя бы более преданный делу), чем я, разобрался с этим.

5 лайков

Абсолютно согласен на 100%. У нас есть форум, расположенный в Австралии, где закрытые темы используются как фактические рассылки. Почти все участники находятся в Австралии и ожидают, что время встреч будет указано в их часовом поясе. Время UTC в письмах сбивает с толку многих пользователей.

Неужели мы не можем хотя бы задать используемый часовой пояс и позволить каждому экземпляру выбрать, переопределять его или нет?

3 лайка

@j.jaffeux / @hugh / @lindsey, что вы думаете о:

Это:

  1. Изменяет формат даты по умолчанию на llll (например: Вт, 8 мая 2018 г., 2:00) вместо 2018-05-08T00:00:00Z UTC, который не очень удобен для восприятия.
  2. Добавляет настройку discourse_local_dates_email_timezone, позволяющую задавать часовой пояс по умолчанию для писем.
  3. Улучшает текст справки в настройках сайта (формат / часовой пояс).

Таким образом, в случае сильно локализованного Discourse вы можете установить часовой пояс страны, что сделает письма менее запутанными.

К сожалению, это немного сложнее: внедрение этого в конвейер не является тривиальной задачей.

5 лайков

Как бы вы ни представляли время, пожалуйста, пожалуйста, пожалуйста, всегда указывайте выбранный часовой пояс!

2 лайка

Извините, я не совсем понял. Не могли бы вы подробнее объяснить, что вы имеете в виду?

В приведённом примере нет указания часового пояса. Я считаю, что это было бы плохо, если бы именно такой формат использовался бы буквально. Я настоятельно рекомендую добавить соответствующее трёх- или четырёхбуквенное обозначение часового пояса или полное описание с указанием страны/города. В текущем тексте указано «UTC», что является однозначным указанием на то, что имеется в виду — новое поведение должно быть хотя бы таким же понятным.

Даже в рамках «узколокального обсуждения» вполне могут быть пользователи из соседних часовых поясов, возможны переходы на летнее время, а также пользователи, находящиеся в поездках и получающие доступ издалека.

2 лайка

Из того же PR :slight_smile:

discourse_local_dates_email_format:
    default: "llll UTC"

Это не та гора, за которую я готов умереть, но сейчас даты очень трудно понять, поэтому я рад, что у Нью-Йорка, Лондона и Парижа будет что-то немного менее запутанное… но очень сложно придумать формат, который подошел бы всем.

Однако мы можем оставить текущее состояние по умолчанию.

1 лайк

Что произойдет, если я изменю discourse_local_dates_email_timezone на “Europe/Paris”, но не обновлю формат на “llll Europe/Paris”? Приведет ли это к тому, что время будет конвертировано в парижское, но после него всё равно будет отображаться “UTC”?

2 лайка

Да, именно так это и произойдёт, настройки взаимосвязаны, нужно изменить обе.

До моего PR текст «UTC» был зашит в код, поэтому он даже не был настраиваемым.

3 лайка

Мне это кажется подверженным ошибкам. Возможно ли автоматически отображать выбранный часовой пояс, вместо того чтобы ожидать, что администратор вручную обновит формат? Сработает ли использование "llll z" в качестве значения по умолчанию для discourse_local_dates_email_format?

5 лайков

Отличное замечание, Moin :hugs: всё работает, обновил свой PR

6 лайков