Функция deactivate
Функция deactivate применяется для отключения активного языка в Django, который был установлен ранее с помощью функции activate. После вызова этой функции все последующие вызовы gettext и других функций интернационализации будут использовать язык по умолчанию, указанный в настройках проекта. Функция не принимает никаких аргументов и возвращает None.
Синтаксис
from django.utils.translation import deactivate
deactivate()
Пример
Давайте рассмотрим базовый пример использования функции deactivate:
from django.utils.translation import activate, deactivate, gettext
# Активируем русский язык
activate('ru')
print(gettext('Hello'))
# Отключаем активный язык
deactivate()
print(gettext('Hello'))
Результат выполнения кода:
"Привет"
"Hello"
Пример
Рассмотрим пример использования deactivate в контексте обработки запроса в представлении:
from 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)
Результат выполнения кода:
"Bienvenue sur notre site"
Пример
Покажем, как deactivate влияет на последующие переводы в циклах:
from django.utils.translation import activate, deactivate, gettext
# Активируем немецкий язык
activate('de')
# Перевод на немецкий
print(gettext('Good morning'))
# Отключаем активный язык
deactivate()
# Следующие переводы будут на английском
print(gettext('Good morning'))
print(gettext('How are you?'))
Результат выполнения кода:
"Guten Morgen"
"Good morning"
"How are you?"
Смотрите также
-
функция
activate,
которая устанавливает активный язык -
функция
deactivate_all,
которая полностью сбрасывает активный язык -
функция
get_language,
которая возвращает текущий активный язык -
функция
override,
которая временно изменяет язык в контекстном менеджере