LINUX.ORG.RU

Не работает локализация (перевод строк) в Django, где что я упустил?

 ,


0

1

Допустим, пытаюсь проверить, добавив соответствующий код в частично сделанный проект из официального turtorial'а.

settings.py

Шаблон:

{% if latest_poll_list %}
{% load i18n %}
{% trans "test" %}
    <ul>
    {% for poll in latest_poll_list %}
        <li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

.po-файл (шаблон сгенерирован командой django-admin makemessages -l ru):

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-05-24 17:15+0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"

#: polls/index.html:3
msgid "test"
msgstr "Тест"

В английском варианте текст — «Test mess».

Открываю, и в результате на этом месте вижу текст «test». При этом панель администрирования работает на русском.

Почему не работает? Что я упустил?

☆☆☆☆☆

Попробуйте использовать команду python manage.py makemessages --all в каталоге проекта или в каталоге джанго-приложения.

Предварительно стоит в каталогах приложений создать следующие каталоги: locale/ru и locale/ru-RU. Я обычно делаю ru мягкой ссылкой на ru-RU

k0valenk0_igor ★★★
()
Последнее исправление: k0valenk0_igor (всего исправлений: 1)
Ответ на: комментарий от anonymous

django.core.context_processors.i18n подруби

Он по умолчанию включен.

gruy ★★★★★
()
Ответ на: комментарий от gruy

Был в каталоге проекта, сейчас создал в каталоге приложения — внезапно заработало.

Но всё же интересно, можно ли сделать на весь проект? Что понимается под каталогом проекта? Та, где лежит manage.py или где лежит settings.py? Первый раз пробовал первое. Потом попробовал второе — вообще makemessages не создаёт po-файл (locale/ru/LC_MESSAGES/ создало).

Ttt ☆☆☆☆☆
() автор топика
Последнее исправление: Ttt (всего исправлений: 1)
Ответ на: комментарий от Ttt

Был в каталоге проекта

Это не по дзену. Приложения должны быть максимально независимы.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.