"D" вместо "дней" в Django Naturaltime
Я работаю в мобильном приложении с DRF в качестве бэкэнда и использую naturaltime
встроенная функция, но поскольку это мобильное приложение, пространство на экране - большая проблема (по крайней мере, для меня). Итак, на произвольную дату я получаю:
"1 week, 2 days ago"
Что приятно, но мне интересно, если это возможно получить
"1w, 2d ago"
Я знаю, что могу заменить слова в строке, но я надеюсь, что есть лучший способ. Любое предложение? Спасибо!
3 ответа
Вероятно, лучший способ сделать это - "локализовать" имена. Вы можете посмотреть на источник django.contrib.humanize
, Для перевода сделайте резервную копию и измените файл в django/contrib/humanize/locale/<your language>/LC_MESSAGES/django.po
особенно начиная со строки 240. Затем запустите manage.py compilemessages
обновить .mo
файлы.
РЕДАКТИРОВАТЬ:
Альтернативный способ сделать это без изменения установки Django:
Добавьте следующие строки в
settings.py
, если вы уже не сделали так:LOCALE_PATHS = ( "/path/to/my/project/locale/", )
Добавить подкаталог с именем
en
на вышеуказанный путь- Добавить файл с именем
django.po
кen
каталог, который вы только что создали. - Вставьте содержимое
naturaltime
перевод в файл. - Измените их по своему вкусу.
- Бежать
manage.py compilemessages
обновить.mo
файлы из каталога, которыйmanage.py
находится в, затем дождитесь распространения изменений.
Вы можете попробовать этот фильтр shortnaturaltime. https://github.com/ollieglass/django-shortnaturaltime
Это не похоже на то, что вы можете настроить:
https://github.com/django/django/blob/master/django/contrib/humanize/templatetags/humanize.py