Джанго - Можно ли перевести только некоторые модели (формы администратора)? - PullRequest
0 голосов
/ 10 мая 2019

Допустим, у вас есть сайт администратора django с общими моделями пользователей / групп, а также некоторые другие модели, которые вы хотите оставить не переведенными, но некоторые конкретные формы, которые необходимо перевести на другой предопределенный язык, так что это может бытьих легко использовать.

Подумайте на иврите / арабском: я нашел простые способы перевода имен полей и даже «rtl.css» для перевода моих форм частично .Тем не менее названия по-прежнему на английском языке, но они находятся в правой части экрана.

Документы и ряд примеров показывают, что существует хорошая поддержка, когда дело касается перевода всего сайта администратора.(установив язык на всем сайте через настройки), но я не мог найти, как установить язык специально для одной / нескольких форм, что кажется разумным запросом.

1 Ответ

0 голосов
/ 12 мая 2019

Это было намного проще, чем ожидалось ...

скопируйте rtl.css из репозитория django в вашу статическую /

Тогда в любом ModelAdmin, в котором вы хотите работать RTL, просто добавьте:

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)

И ты в порядке. Это повлияет только на администратора модели, которая была переопределена.

...