Django translation doesnt work in python code

21 Views Asked by At

I have an application with the default language set to RU. My 2nd second language on the page is en. Everything in my HTML templates seem to be working except this part of code

If I set the translation to the code below. I will get only english translation, it means even if my page is in russian, i will get english translation of the text below anyway.

from django.utils.translation import gettext_lazy as _

def get_country_info(country):
    country_info = {
        "Germany": _("Германия - это страна с богатой историей и культурой, расположенная в центре Европы. Она является домом для таких всемирно известных городов, как Берлин, Мюнхен, Гамбург и Кёльн. Германия славится своей архитектурой, музеями, пивом и колбасой."),
        "USA": _("США - это крупнейшая страна мира по площади и населению. Она расположена в Северной Америке и является ведущим мировым экономическим и культурным центром. США известны своими небоскрёбами, Голливудом, Диснейлендом и Ниагарским водопадом."),
        "UK": _("Соединённое Королевство - это островное государство, расположенное в Северной Атлантике. Оно включает в себя Англию, Шотландию, Уэльс и Северную Ирландию. Великобритания является родиной английского языка, парламента, Биг-Бена и королевы Елизаветы II."),
        "Turkey": _("Турция - это страна, расположенная на стыке Европы и Азии. Она известна своими пляжами, древними руинами, мечетями и базарами. Турция является популярным туристическим направлением для любителей истории, культуры и отдыха на пляже."),
        "France": _("Франция - это страна, расположенная в Западной Европе. Она является родиной Эйфелевой башни, Лувра, круассанов и лягушачьих лапок. Франция известна своей изысканной кухней, модой и искусством."),
        "Italy": _("Италия - это страна, расположенная в Южной Европе. Она является родиной Колизея, Римского форума, Пизанской башни и пиццы. Италия славится своей историей, культурой и кухней."),
        "Russia": _("Россия - это крупнейшая страна в мире по площади. Она расположена в Евразии и включает в себя множество природных и культурных достопримечательностей. Россия известна своей историей, культурой, балетом и водкой."),
        "Belarus": _("Беларусь - это страна, расположенная в Восточной Европе. Она является родиной Минска, Беловежской Пущи и Несвижского замка. Беларусь известна своей богатой историей и культурой."),
        "Uzbekistan": _("Узбекистан - это страна, расположенная в Центральной Азии. Она является родиной Самарканда, Бухары и Хивы. Узбекистан известен своей богатой историей и культурой."),
        "Kazakhstan": _("Казахстан - это страна, расположенная в Центральной Азии. Она является родиной Алма-Аты, Байкала и космодрома Байконур. Казахстан известен своей богатой природой и историей."),
        "Armenia": _("Армения - это страна, расположенная на Ближнем Востоке. Она является родиной Еревана, горы Арарат и армянского коньяка. Армения известна своей богатой историей и культурой."),
        "Azerbaijan": _("Азербайджан - это страна, расположенная на Кавказе. Она является родиной Баку, Гянджи и азербайджанского ковра. Азербайджан известен своей богатой историей и культурой."),
        "India": _("Индия - это страна, расположенная в Южной Азии. Она является родиной Дели, Тадж-Махала и йоги. Индия известна своей богатой историей, культурой и кухней."),
        "Thailand": _("Таиланд - это страна, расположенная в Юго-Восточной Азии. Она является родиной Бангкока, Пхукета и тайского массажа. Таиланд известен своей богатой культурой, природой и кухней."),
        "Japan": _("Япония - это страна, расположенная в Восточной Азии. Она является родиной Токио, Киото и суши. Япония известна своей современной культурой, технологией и кухней."),
        "South-Korea": _("Южная Корея - это страна, расположенная в Восточной Азии. Она является родиной Сеула, Пусана и корейской поп-музыки. Южная Корея известна своей современной культурой, технологией и кухней."),
        "China": _("Китай - это страна, расположенная в Восточной Азии. Она является родиной Пекина, Великой Китайской стены и китайской кухни. Китай известен своей богатой историей, культурой и экономикой."),
    }

    return country_info[country]

settings.py

LANGUAGE_CODE = "ru"

LANGUAGES = (
    ('en', _('english')),
    ('ru', _('russian'))
)

LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale/'),
)

PARLER_LANGUAGES = {
    None:(
        {'code':'en'},
        {'code':'ru'}
    ),
    'default':{
        'fallbacks':['en'],
        'hide_untranslated': False,
    }
}

TIME_ZONE = 'UTC'

USE_I18N = True
USE_L10N = True
USE_TZ = True

UPD: I am retrieving information via DRF

@api_view(["GET"])
def get_country_data(request,id):
    country_name = id 
    return Response({country_name : get_country_info(country_name)})
0

There are 0 best solutions below