РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
711 of 818 menu

Функция activate

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

Синтаксис

from django.utils.translation import activate activate(language_code)

Пример

Установим русский язык для текущего запроса с помощью функции activate:

from django.utils.translation import activate from django.utils.translation import gettext as _ # Activate Russian language activate('ru') # Get translated string message = _("Hello, world!") print(message)

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

"Привет, мир!"

Пример

Установим язык на основе предпочтений пользователя, хранящихся в сессии:

from django.utils.translation import activate from django.utils.translation import gettext as _ # Get user language from session user_language = request.session.get('language', 'en') # Activate user's language activate(user_language) # Get translated content welcome = _("Welcome to our website!") print(welcome)

Результат выполнения кода при user_language = 'fr':

"Bienvenue sur notre site Web!"

Пример

Использование функции activate в консольном скрипте для генерации отчётов на разных языках:

from django.utils.translation import activate from django.utils.translation import gettext as _ def generate_report(lang_code): # Activate specific language activate(lang_code) # Generate report content header = _("Sales Report") total_label = _("Total Sales") date_label = _("Date") return { 'header': header, 'total_label': total_label, 'date_label': date_label } # Generate reports for different languages report_en = generate_report('en') report_ru = generate_report('ru') print(f"English: {report_en['header']}") print(f"Russian: {report_ru['header']}")

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

"English: Sales Report" "Russian: Отчёт о продажах"

Пример

Восстановление языка после его изменения с помощью функции activate:

from django.utils.translation import activate, get_language from django.utils.translation import gettext as _ # Store current language original_lang = get_language() try: # Activate new language for specific operation activate('es') # Do some work in Spanish greeting = _("Hello!") print(f"Spanish greeting: {greeting}") finally: # Restore original language activate(original_lang) # Back to original language current_lang = get_language() print(f"Current language after restore: {current_lang}")

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

"Spanish greeting: ¡Hola!" "Current language after restore: en"

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

  • функция deactivate,
    которая деактивирует текущий язык
  • функция get_language,
    которая возвращает текущий активный язык
  • функция gettext,
    которая выполняет перевод строки
  • функция override,
    которая временно переопределяет язык в контекстном менеджере
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить