Django - 在不更改应用程序语言的情况下更改 timeuntil 语言

Django - Change timeuntil language without changing application language

我正在使用 Django 模板的 timeuntil 标签。我想以不同于英语的语言获得输出,但不更改 settings.py 中的 LANGUAGE_CODE(这会更改整个应用程序的语言)。 我不做本地化,也不想做。

可能吗?

您必须创建 custom template filter,它将使用不同的语言环境调用 django 的 timeuntil。例如,意大利语版本将如下所示:

# app/templatetags/timeuntil_it.py
from django.template.base import Library
from django.template.defaultfilters import timeuntil_filter
from django.utils import translation

register = Library()

@register.filter
def timeuntil_it(value, arg=None):
    with translation.override('it'):
        time_until = timeuntil_filter(value, arg)
    return time_until

并且在模板中你应该加载这个模板库:

{% load timeuntil_it %}
{{ future_time|timeuntil_it }}