1

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

"1 week, 2 days ago"

这很好,但我想知道是否有可能得到

"1w, 2d ago"

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

4

3 回答 3

3

可能最好的方法是“本地化”名称。您可能想查看. 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.poen您刚刚创建的目录中。
  4. 将翻译的内容naturaltime粘贴到文件中。
  5. 根据您的喜好更改它们。
  6. 运行以从的目录manage.py compilemessages更新.mo文件,然后等待更改传播。 manage.py
于 2015-09-03T00:04:04.490 回答
1

你可以试试这个 shortnaturaltime 过滤器。 https://github.com/ollieglass/django-shortnaturaltime

于 2015-09-03T00:15:19.993 回答
0

您似乎无法自定义:

https://github.com/django/django/blob/master/django/contrib/humanize/templatetags/humanize.py#L189

于 2015-09-03T00:09:54.457 回答