Функция deactivate

Функция deactivate применяется для отключения активного языка в Django, который был установлен ранее с помощью функции activate. После вызова этой функции все последующие вызовы gettext и других функций интернационализации будут использовать язык по умолчанию, указанный в настройках проекта. Функция не принимает никаких аргументов и возвращает None.

Синтаксис

pythonfrom django.utils.translation import deactivate

deactivate()

Пример

Давайте рассмотрим базовый пример использования функции deactivate:

pythonfrom django.utils.translation import activate, deactivate, gettext

# Активируем русский язык
activate('ru')
print(gettext('Hello'))

# Отключаем активный язык
deactivate()
print(gettext('Hello'))

Результат выполнения кода:

python"Привет"
"Hello"

Пример

Рассмотрим пример использования deactivate в контексте обработки запроса в представлении:

pythonfrom django.utils.translation import activate, deactivate, gettext
from django.http import HttpResponse

def my_view(request):
    # Активируем язык пользователя
    user_language = 'fr'
    activate(user_language)
    
    # Переводим строку на французский
    message = gettext('Welcome to our site')
    
    # Отключаем активный язык перед рендерингом
    deactivate()
    
    return HttpResponse(message)

Результат выполнения кода:

python"Bienvenue sur notre site"

Пример

Покажем, как deactivate влияет на последующие переводы в циклах:

pythonfrom django.utils.translation import activate, deactivate, gettext

# Активируем немецкий язык
activate('de')

# Перевод на немецкий
print(gettext('Good morning'))

# Отключаем активный язык
deactivate()

# Следующие переводы будут на английском
print(gettext('Good morning'))
print(gettext('How are you?'))

Результат выполнения кода:

python"Guten Morgen"
"Good morning"
"How are you?"

Смотрите также

  • функция activate,
    которая устанавливает активный язык
  • функция deactivate_all,
    которая полностью сбрасывает активный язык
  • функция get_language,
    которая возвращает текущий активный язык
  • функция override,
    которая временно изменяет язык в контекстном менеджере