@MAGistr_MTM
Учусь программировать

Как перевести несколько слов?

Доброго времени суток.

Как мне сделать так, что бы выражение "165,39 € for 5 (saving 8,71 €)" переводилось в зависимости от локализации? То-есть, если я выберу русский язык, тогда эта фраза должна выглядеть примерно так "165,39 € за 5 (экономия 8,71 €)".

Я разрабатываю магазин на Django-Oscar. В нем для перевода нужно сделать следующее:
В начале шаблона(template) добавить строку {% load i18n %}. И в самом шаблоне, то что нужно перевести выделить вот так: {% trans "Product Information" %}.

Но если я напишу что-то такое: {% trans "for" %}, оно не переводить даже "for". Я так понимаю Django не знает такого слова для перевода. Как мне с этим справится?

Буду очень благодарен за помощь.
  • Вопрос задан
  • 684 просмотра
Решения вопроса 1
Окай. Тебе нужно включить все настройки. Потом подключить {% load i18n %}. Потом выделить нужный текст {% trans "Product Information" %}. Дальге команда в терминале ./manage.py makemessages makemessages -l ru. Дальше ищешь папку в корне проекат locale/ru/LC_MESSAGES. В ней есть файл django.po. Открываешь увдишь такой текст
............
#: minisite/apps/info/forms.py:21
msgid "Product Information"
msgstr ""
..............

Сюда нужно ввести перевод -----> msgstr "ПЕРЕВОД СТРОКИ".
Дальше нужно скомпилировать перевод ./manage.py compilemessages.
Ну и еще нужно что бы на сайте был переключатель для языков.
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as languages %}

<html lang="{{LANGUAGE_CODE}}">
{% for lang_code, lang_name in languages %}
    {% language lang_code %}
      {%if LANGUAGE_CODE != lang_code%}
       <a class="navbar-brand" href="#">{% trans 'Change language' %}</a>
      {%endif%}
    {% endlanguage %}
{% endfor %}
</html>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы