首页 > 解决方案 > Django - 是否可以只翻译一些模型(管理表单)?

问题描述

假设您有一个 django 管理站点,其中包含常见的用户/组模型,以及您希望保留未翻译的一些其他模型,但需要将某些特定形式翻译成另一种预定义语言,因此它可以很容易使用他们。

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

文档和一些示例表明,在翻译整个管理站点时有很好的支持(通过设置在整个站点上设置语言),但我找不到如何专门设置语言一种/一些形式,这似乎是一个合理的要求。

标签: djangodjango-modelsdjango-formsdjango-i18n

解决方案


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

将 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,对象)

你可以走了。这只会影响被覆盖模型的管理员。


推荐阅读