我在使用带有选择字段的应用程序 django-modeltranslation 时遇到问题。
我的模型计划有一个名为间隔的字段,有以下选择:
class IntervalChoices(models.TextChoices):
DAY = DATE_INTERVALS.DAY, _("Day")
WEEK = DATE_INTERVALS.WEEK, _("Week")
MONTH = DATE_INTERVALS.MONTH, _("Month")
YEAR = DATE_INTERVALS.YEAR, _("Year")
class Plan(SoftDeleteBasedMixin):
INTERVALS = IntervalChoices
interval = models.CharField(
choices=INTERVALS.choices,
max_length=12,
default=INTERVALS.MONTH,
help_text="The frequency with which a subscription should be billed.",
)
我使用 django-modeltranslation 来翻译管理上的标签和计划描述,方法是直接在 Django 管理中输入它们,但由于这些选择是预设的,我无法在管理中编辑它们。
我已经在选项名称上使用了 gettextlazy ,并且在 django.po 上有翻译
#:plan.py:44 msgid "Day" msgstr "Dia"
#:plan.py:45 msgid "Week" msgstr "Semana"
#:plan.py:46 msgid "Month" msgstr "Mês"
#:plan.py:47 msgid "Year" msgstr "Ano"
但是当我将网站或管理员更改为葡萄牙语(这是我要翻译的语言之一)时,间隔会以英语显示。
这是我的翻译.py
from billing.models.plan import Plan
from modeltranslation.translator import TranslationOptions, register
@register(Plan)
class PlanTranslationOptions(TranslationOptions):
fields = ("label", "description")
有人可以帮我看看如何继续吗?
添加翻译后是否运行过
python manage.py compilemessages
命令?