Не удалось создать django.po

Я новичок в веб-приложении django,

моя структура проекта выглядит так: x -> x -> settings.py

в settings.py у меня есть следующая запись:

from django.utils.translation import ugettext_lazy as _
LOCALE_PATHS = ( 
join (BASE_DIR, 'locale'), 
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.locale.LocaleMiddleware',
)

LANGUAGE_CODE = 'en-us'
LANGUAGES = (
    ('en', _('English')),
    #('en-us', ugettext('English US')),
    ('es', _('Spanish')),
    ('en-Gb', _('English UK')),
)

USE_I18N = True

USE_L10N = True

USE_TZ = True

Я установил get text на свой MAC OSX 10.7.5.

в моем шаблоне:

{% load i18n %}
{% trans "Login To UI Mirror" %}

Используя приведенную ниже команду

django-admin.py makemessages -a

кажется, он может генерировать django.po

но он отсутствует с

идентификатор сообщения, определенный в шаблоне.

вот что у него есть:

#: settings.py:156
msgid "English"
msgstr ""

#: settings.py:158
msgid "Spanish"
msgstr ""

#: settings.py:159
msgid "English UK"
msgstr ""

Любая помощь будет оценена.

Спасибо

Коды шаблонов:

_base.html:

{% load compress %}
{% load i18n %}
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        {# Mobile meta tag #}
        <meta name="HandheldFriendly" content="True">
        <meta name="MobileOptimized" content="320">
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
        <meta http-equiv="cleartype" content="on">
        {# Favicons #}
        <link rel="icon" href="{{static}}images/uimirror.ico" type="image/x-icon">
        {% block title %}
            {% include "core/_title.html" with location='lgn_reg' %}
        {% endblock title %}

        {# Tile icon for Win8 (144x144 + tile color) #}
        {% block css_media %}
            {% include "core/_media.html" with location='lgn_reg' %}
        {% endblock css_media %}
    </head>

    <body>
        {% block content %}

        {% endblock content %}

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
        {% block script_media %}
            {% include "core/_script_media.html" with location='lgn' %}
        {% endblock script_media %}

    </body>
</html>

1-е расширение:

login_register.html

{% extends 'core/_base.html' %}

{% block css_media %}
    {% include "core/_media.html" with location=location %}
{% endblock css_media %}

{% block content %}
    <div class="uimmaincontainer" id="uimmaincontainer">
    {% include "core/login_register/_login_register_theme.html" with location=location %}
    {% include "core/login_register/_login.html" with location=location%}
    {% include "core/login_register/_register.html" with location=location%}
    </div>
{% endblock content %}

Трансблок:

_login_register_theme.html

{% load i18n %}
<div class="pt15 {% if location == 'lgn' %} active {% else %} hidden {% endif %}" id="_ui_lgn_them">
    <h4 aria-hidden="true" class="">
        <img width="15" height="15" alt=""
            src="#"
            class="uiHeaderImage img">{% trans "Login To UI Mirror" %}
    </h4>
    <div class="clearfix">
        <div class="mb5 uiHeaderSubTitle f-left fsm tc-3">Enter to the most existing virtual world.</div>
    </div>
</div>

person Jayaram    schedule 29.01.2014    source источник
comment
Содержит ли ваш settings.py: TEMPLATE_LOADERS = ('django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader',)?   -  person Agate    schedule 29.01.2014
comment
Извините, тогда у меня больше нет идей. Вы смотрели этот вопрос? stackoverflow.com/questions/7054082/   -  person Agate    schedule 29.01.2014
comment
Еще одна вещь, когда я запускаю приложение, оно говорит: Недопустимый тег блока: «транс», хотя у меня есть {% load i18n %} в _base.html… может быть, я что-то упустил   -  person Jayaram    schedule 29.01.2014
comment
В вопросе, который я связал в своем предыдущем комментарии, один парень предлагает добавить {% load i18n %} в каждый шаблон, от которого наследуется окончательный шаблон.   -  person Agate    schedule 29.01.2014
comment
О, и если ваш шаблон расширяет другой, может быть, вам просто нужно поместить оператор {% trans %} в блок, который существует в родительском шаблоне?   -  person Agate    schedule 29.01.2014
comment
Хорошо, спасибо .. ошибка шаблона была устранена путем добавления загрузки i18n, спасибо за указание .. но все равно сообщение make не генерируется   -  person Jayaram    schedule 29.01.2014
comment
Можете ли вы отредактировать свой вопрос и вставить весь код шаблона?   -  person Agate    schedule 29.01.2014
comment
Готово, пожалуйста, посмотрите   -  person Jayaram    schedule 29.01.2014
comment
давайте продолжим обсуждение в чате   -  person Agate    schedule 29.01.2014


Ответы (1)


Я думаю, что есть проблема со структурой каталогов вашего шаблона. загрузчик шаблонов Django ищите каталог под названием «templates» в вашем приложении.

Ваши шаблоны находятся под core/login_register/, поэтому django не может их найти.

Вы можете использовать следующую структуру для своих шаблонов:

└── yourapp
    └── templates
        └── yourapp 
            ├── base.html
            └── index.html

Таким образом, django найдет ваши шаблоны, и вы даже сможете переопределить эти шаблоны в других приложениях:

└── yourapp
    └── templates
        └── yourapp 
            ├── base.html
            └── index.html
└── anotherapp
    └── templates
        └── yourapp 
            ├── base.html # it will override the template yourapp/templates/yourapp/base.html

Это общая структура для проектов django.

person Agate    schedule 29.01.2014