如何在 Django Admin 中翻译模型标签?

问题描述 投票:0回答:4

我可以翻译 Django Admin 除了模型标签之外的内容,因为我不知道如何在 Django Admin 中翻译模型标签。

那么,如何在 Django Admin 中翻译模型标签?

python django django-models django-admin django-i18n
4个回答
73
投票

查看

Meta
选项
verbose_name
verbose_name_plural
,这两个选项都是可翻译的。


21
投票

您应该在所有模型的元数据中使用 ugettext_lazy util

from django.db import models
from django.utils.translation import ugettext_lazy as _

class Book(models.Model):
    ...

    class Meta:
        verbose_name = _("My Book")
        verbose_name_plural = _("My Books")

1
投票

您应该使用 gettext_lazy() 并将其设置为 verbose_nameverbose_name_plural 在 Django Admin 中翻译模型标签,如下所示。 *你可以看我的回答详细解释如何在Django中翻译:

# "models.py"

from django.db import models
from django.utils.translation import gettext_lazy as _

class Person(models.Model):
    ...

    class Meta:
        verbose_name = _("person") # Here
        verbose_name_plural = _("persons") # Here

0
投票

您也可以覆盖 admin.ModelAdmin 仅在管理中自定义模型名称,而不更改模型元

def __init__(self, model: type, admin_site: AdminSite) -> None:
        super().__init__(model, admin_site)
        self.opts.verbose_name = 'your custom model name'
        self.opts.verbose_name_plural = 'your custom title plural'
© www.soinside.com 2019 - 2024. All rights reserved.