【发布时间】: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