manage.py makemessages 不适用于项目的 urls.py 文件

manage.py makemessages doesn't work for project's urls.py file

我是 运行 manage.py makemessages --ignore=venv/* -l fr 这似乎是 运行 正确。每个 gettext() 调用都存在于生成的 django.po 文件中,主 urls.py 文件除外,因此仅显示英文版本的 URL。

其他 urls.py 个文件(在应用程序内)gettext() 调用已成功找到并存在于 django.po 个文件中。

P.S.: 我知道 gettext 不支持 Python 的新 f 字符串,但是没有 f -任何 gettext() 调用中的字符串。

我的主要 urls.py 文件如下所示:

from django.contrib import admin
from django.urls import path, include
from django.conf.urls.i18n import i18n_patterns
from django.utils.translation import gettext_lazy as _

urlpatterns = i18n_patterns(
    path(f'{_("admin")}/', admin.site.urls),
    path(f'{_("narratives")}/', include('notebook.urls', namespace='narrative')),
    prefix_default_language=False,
)

这是由 f 弦的工作方式引起的。当我将 path(f'{_("admin")}/', admin.site.urls)
更改为
path('%(link)s/'.format(link=_("admin")), admin.site.urls) 时,它确实按预期工作了。

我不太了解 f 弦,所以这是我能想到的最佳解决方法。