Как отображать все даты и время в джалали (не григорианском)

Я установил Discourse на Ubuntu локально, вне Docker. Как можно преобразовать даты на форуме в джалали? Спасибо

Поможет ли это?

https://askubuntu.com/questions/4704438/how-can-i-change-calender-to-persian-calender-like-in-kde

Не знаю, учитывает ли Discourse такую специфическую локализацию. Извините!

Что ж, я только что узнал, что Discourse поддерживает модули локализации. Так что кто-то более сведущий, чем я, сможет вас направить, я в этом уверен.

Спасибо большое за ответ.
К сожалению, нет.
Я имел в виду, как можно преобразовать даты публикаций и другие даты, отображаемые на форуме, из григорианского календаря в джалали.

Вы можете установить язык по умолчанию на персидский (фарси) в интерфейсе настроек администратора. Это может сработать.

Похоже, что отдельный пользователь Discourse не может задать предпочитаемый язык — полагаю, его браузер отправляет эту информацию с каждым запросом. Я заметил, что Chrome предлагает настройку языка, включающую персидский. Возможно, это сработает.

Спасибо большое за ответ.
К сожалению, нет.

Ах, извините, что это не помогло. Думаю, вам, возможно, потребуется какой-то плагин.

Итак, @serkhelesheyi, какой именно локаль вы хотите? Из вашего первого сообщения это не совсем очевидно.

Если такой локали не существует, я считаю, что модули локалей являются подключаемыми, и кто-то может написать её для вас.

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

Изменение локали на Иран/фарси вносит лишь одно различие: оно отображает месяцы григорианского календаря персидскими буквами. Я хочу отображать месяцы календаря Джалали, а не григорианского календаря.

Если у вас есть бюджет, вы можете запросить помощь на бирже.

Нет, к сожалению, у меня нет бюджета, но большое спасибо за представление маркетплейса.

Я попробовал это в командной строке

# locale-gen fa_IR.UTF-8

и теперь, кажется, что-то получилось:

# date
Mon Dec  9 15:43:50 CET 2024
# env LC_TIME=fa_IR.utf8 date
<U+202B>دوشنبه ۰۹ دسامبر ۲۴، ساعت ۱۵:۴۳:۵۱ (CET)<U+202C>

Но я не могу сказать, полезно ли это, так как не владею языком. (Подозреваю, что это то же самое, что вы видели: григорианская дата переведена слово в слово)

Спасибо большое. Нет, мне это не нужно. Это просто отображает названия месяцев персидскими буквами. Мне нужно, чтобы отображался месяц по джалали. Например, в тексте, который вы упомянули, упоминается слово «деса́мбер», что по-персидски означает декабрь (двенадцатый месяц). Мне нужно отображать девятый месяц джалали (то есть «Азар» (آذر)).

Действительно. Похоже, что на самом низком уровне Unix-систем вам ничто не поможет. Поэтому, к сожалению, вам потребуется решение на уровне приложения — какой-то пакет, тема или плагин для Discourse, который используется везде, где отображается дата.

Подобные функции, безусловно, существуют в JavaScript (moment.js, day.js, date-fns), но интеграция их в Discourse, если они ещё не доступны, — это техническая задача, превышающая мои возможности.

Редактирование: Я посмотрел, и, похоже, moment.js уже доступен, так что это может оказаться не так уж сложно.

Об этом есть информация на странице:

Да. Решение — использовать moment.js, но проблема в том, что я не знаю, как им пользоваться, и мне нужен кто-то, кто проведёт меня от начала до конца.

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

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

Но более перспективным выглядит этот:
Ошибка при загрузке отчётов панели управления при использовании moment-jalaali.js
который ведёт к более ранней теме:
Как правильно отображать даты джалали для персидского языка
(редактирование: ой, вижу, что эта ссылка уже упоминалась ранее)

Я бы рекомендовал изменить заголовок этой темы, например:
Как отображать все даты и время в системе джалали (а не григорианской)

(Я считаю, что требуется только изменение отображения — фактические временные метки в базе данных не будут изменены. Эти метки представляют собой количество секунд, прошедших с 1970 года).

Большое спасибо за ваше предложение и руководство.

Я изменил заголовок, как было предложено. Спасибо!

Убрал тег unsupported-install — этот вопрос не связан с этим фактом. Хотя @serkhelesheyi, я всё же рекомендую вам устанавливать систему, следуя официальным инструкциям по установке, чтобы избежать других возможных проблем.

Похоже, что @osama уже ответил на этот вопрос там. На данный момент нет поддерживаемого способа отображения дат и времени в джалали (не григорианском календаре), но это можно реализовать в плагине, если кто-то найдёт время и проявит интерес к этому.