在Django自然时间'd'而不是'days'

时间:2015-09-02 23:56:47

标签: python django humanize

我在使用DRF作为后端并使用naturaltime内置功能的移动应用程序中工作,但由于这是一个移动应用程序,屏幕空间是一个大问题(至少对我来说)。因此,对于任意日期,我得到:

"1 week, 2 days ago"

哪个好,但我想知道是否有可能获得

"1w, 2d ago"

我知道我可以用字符串替换单词,但我希望有更好的方法。有什么建议吗?谢谢!

3 个答案:

答案 0 :(得分:3)

执行此操作的最佳方法可能是“本地化”名称。 您可能想查看source of django.contrib.humanize。要翻译,备份并更改django/contrib/humanize/locale/<your language>/LC_MESSAGES/django.po处的文件,特别是从第240行开始。然后,运行manage.py compilemessages以更新.mo个文件。

编辑:

另一种方法是在不改变Django安装的情况下:

  1. 将以下行添加到settings.py,除非您已经这样做了:

    LOCALE_PATHS = (
        "/path/to/my/project/locale/",
    )
    
  2. 将名为en的子目录添加到上述路径

  3. 将名为django.po的文件添加到刚刚创建的en目录中。
  4. contents of the naturaltime translations粘贴到文件中。
  5. 根据自己的喜好进行更改。
  6. 运行manage.py compilemessages以从 .mo 所在的目录更新manage.py个文件,然后等待更改为传播。

答案 1 :(得分:1)

您可以尝试使用此短时间过滤器。 https://github.com/ollieglass/django-shortnaturaltime

答案 2 :(得分:0)