如何在 Jalali(非 Gregorian)中显示所有日期和时间

我已在 Ubuntu 上本地安装了 Discourse,不在 Docker 中。如何将论坛中的日期转换为Jalali日期?
谢谢

2 个赞

这有帮助吗?

我不知道 Discourse 是否会考虑如此具体的本地化。抱歉!

2 个赞

我刚刚发现 Discourse 支持 locale 模块。所以比我更懂的人能够指导你,我对此很有信心。

1 个赞

非常感谢您的回答。
不幸的是,没有。
我的意思是,如何将论坛中显示的帖子的日期和其他日期从公历转换为 Jalali。

1 个赞

您可以在管理员设置界面将默认区域设置为波斯语/法尔西语。这或许可行。

似乎没有办法让单个 Discourse 用户设置他们偏好的区域设置——我猜他们的浏览器会在每次请求时发送该信息。我看到 Chrome 提供了包括波斯语在内的语言设置。也许这会起作用。

1 个赞

非常感谢您的回答。
但不幸的是,不行。

1 个赞

啊,抱歉,这没有帮助。我认为您可能需要某种插件。

2 个赞

所以 @serkhelesheyi 你到底想要什么确切的区域设置?从你的 OP 来看并不明显。

如果它不存在,我认为区域设置模块是可插入的,有人可以为你编写一个。

另外,顺便说一句,你会发现这里支持人员强烈建议通过 Docker 安装 Discourse,并且通常不愿意帮助非 Docker 安装,因为任何数量的事情都可能与标准设置不同。只是顺便说一句。

将区域设置为伊朗/波斯语,唯一的区别是它以波斯字母显示公历月份。我想做的是显示 Jalali 日历的月份,而不是公历的月份。

2 个赞

如果您有预算,可以在 marketplace 上寻求帮助。

1 个赞

不,很遗憾我没有预算,但非常感谢您介绍市场。

我在命令行中尝试了以下操作:

# 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>

但我无法确定它是否有用,因为我没有这方面的语言技能。(我怀疑这和你看到的一样,公历日期被逐字翻译了)

非常感谢
不,我不想这样。这只是显示了波斯字母的月份名称。我想要的是实际显示 Jalali 月份。
例如,在你提到的文本中,“دسامبر”一词被提及为一个月份,在波斯语中发音为 December(十二月)。我想要显示的是 Jalali 日历的第九个月(我的意思是“Azar”(آذر))。

确实如此。在我看来,在最低的 Unix 系统级别上没有什么可以帮助您。因此,您确实需要应用程序级别的某些东西——某种用于 Discourse 的包、主题或插件,它被用于所有有日期的地方。

这些功能当然存在于 JavaScript 中——(moment.js、day.js、date-fns)——但如果它们尚未提供,将它们整合到 Discourse 中是一项技术任务,超出了我自己的能力。

编辑:我看了一下,似乎 moment.js 已经可用,所以这可能并不那么困难。

1 个赞

这里有一些相关信息:

3 个赞

是的。解决方案是使用 moment.js,但我不知道如何使用它,我需要有人从头到尾指导我。

1 个赞

非常感谢您的指导。
我之前看过这个帖子,但我的问题是我不知道如何操作,需要有人向我解释所有步骤。

我注意到之前有一个类似的要求:
将 Discourse 的视图层中的公历日期转换为 Jalali 日期的转换器

但这个更有希望:
使用 moment-jalaali.js 时加载仪表板报告出错

它又链接回这个更早的:
如何为波斯语正确显示 Jalali 日期
(编辑:哎呀,我看到这个之前已经被链接过了)

我建议更改此主题的标题,也许是:
如何以 Jalali(而非公历)显示所有日期和时间

(我认为需要的是纯粹的显示——数据库中的实际时间戳不会改变。这些时间戳将是自 1970 年以来的秒数)

1 个赞

非常感谢您的建议和指导。

我已按建议更改了标题。谢谢!

移除了 unsupported-install 标签 - 此问题与该事实无关。不过,我建议 @serkhelesheyi 使用官方安装说明进行安装,以避免遇到其他可能遇到的问题。

看起来 @osama 在那里回答了这个问题。目前没有支持的方法可以显示 Jalali(而非公历)的日期和时间,但如果有人有时间和兴趣,可以将其实现为插件。

3 个赞