繁体   English   中英

在Django自然中,用'd'代替'days'

[英]'d' instead of 'days' in Django naturaltime

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

"1 week, 2 days ago"

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

"1w, 2d ago"

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

可能最好的方法是将名称“本地化”。 您可能需要查看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. naturaltime翻译内容粘贴到文件中。
  5. 根据自己的喜好更改它们。
  6. 运行manage.py compilemessages manage.py 所在 的目录中更新.mo文件,然后等待更改传播。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM