【问题标题】:How to override django admin translated column header (verbose_name of a field)如何覆盖 django admin 翻译的列标题(字段的详细名称)
【发布时间】:2012-09-07 05:41:59
【问题描述】:

我只想对 first name 列标题使用我自己的翻译。就是这样。

我的研究将我引向 django 自己的消息文件,其中包含:

#: models.py:235
msgid "first name"
msgstr "nombre propio"

所以我创建了文件

./site/project/locale/es/LC_MESSAGES/django.po

并把我的新 3 行

#: models.py:235
msgid "first name"
msgstr "nombre"

我已经尝试了所有可能的位置,并在设置中:

LOCALE_PATHS = ('/home/djdev/site/project/locale',)

但管理员用户列表总是显示名字的默认翻译。

我使用的解决方法是创建一个函数并在 *list_display* 中调用它,如下所示:

def my_full_name(self, obj):
    try:
        return obj.last_name + ' ' + obj.first_name
    except CustomProfile.DoesNotExist:
        return ''
my_full_name.admin_order_field = 'last_name'

list_display = ('username', 'my_full_name', 'email')

...这对我来说已经足够了,但我仍然很好奇,因为这只是列表视图而不是表单的解决方法。

问候,

【问题讨论】:

  • 一个。您是否记得运行 compilemessages 以实际使用更新的翻译制作 django.mo 文件?湾。您是否尝试在自己的 locale/es/LAC_MESSAGES/django.po 中添加相同的“first_name”值并运行 compilemessages?
  • 不...我发誓我已经做到了(选项a)但我忘记了。我的错 :( 谢谢 :$
  • 我会把它写成答案然后:D
  • @Martin0x777 您是否将这 3 行手动添加到 .po 文件中??

标签: model internationalization django-admin field verbose


【解决方案1】:

请记住始终运行python manage.py compilemessages 以实际创建显示翻译内容所需的二进制django.mo 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 2019-07-25
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    相关资源
    最近更新 更多