Django-是否可以仅翻译某些模型(管理表单)?

时间:2019-05-10 18:16:48

标签: django django-models django-forms django-i18n

假设您有一个django管理站点,其中包含常用的“用户/组”模型,以及一些其他您希望不进行翻译的模型,但某些特定形式需要翻译为另一种预定义语言,因此可以易于使用。

希伯来语/阿拉伯语: 我找到了一种翻译字段名称的简便方法,甚至找到了“ rtl.css”来部分翻译我的表单。标题仍然是英语,但仍显示在屏幕右侧。

文档以及许多示例显示,在翻译整个管理网站时(通过设置在整个网站上设置语言)可以提供很好的支持,但是我找不到如何设置该语言专门针对一种/某些形式,这似乎是合理的要求。

1 个答案:

答案 0 :(得分:0)

那比预期的要容易得多...

将rtl.css从Django存储库复制到您的static /

然后在要使用RTL的任何ModelAdmin中只需添加:

class Media:
    css = {'all': ('project_name_folder/css/rtl.css',)}

def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
    translation.activate('he') # 'he' for hebrew
    return super().render_change_form(request, context, add, change,         
    translation.activate('en') # go back to english/LTR for other views

form_url,obj)

你很好。这将只影响被覆盖的模型的管理员。