Django i18n: сделать сообщения только на уровне сайта возможно? - PullRequest
3 голосов
/ 31 декабря 2010

У меня есть несколько строк на моем сайте, которые не принадлежат ни одному приложению, например,

{% block title %}{% trans "Login" %}{% endblock %}

или модифицированная форма аутентификации, используемая для установки файла cookie локали

class AuthenticationFormWithLocaleOption(AuthenticationForm):
    locale = forms.ChoiceField(choices = settings.LANGUAGES,
                               required = False,
                               initial = preselectedLocale,
                               label = _("Locale/language"))

Теперь, когда я выполняю django-admin.py makemessages --all -e .html,.template в каталоге сайта, он извлекает строки из всех файлов Python, .html и .template, в том числе из моих приложений.Это потому, что я разрабатываю свои приложения внутри этого каталога:

Directory structure:

sitename
     myapp1
     myapp2

Есть ли способ извлечь все строки, которых нет в моих приложениях?

Единственное решениеЯ обнаружил, что нужно переместить каталоги приложений за пределы структуры каталогов сайта, но я использую bzr-externals (аналогично подмодулям git или svn externals), так что в моем случае это не имеет смысла.

Перемещениеэто также требует перевода в новое приложение, но я не знаю, является ли это единственным разумным решением.

1 Ответ

5 голосов
/ 02 января 2011

Согласно документации вы можете запустить makemessages из приложения, которое вы хотите перевести, создавая только файлы сообщений для этого конкретного приложения. Также возможно отфильтровать некоторые определенные папки, используя аргумент --ignore makemessages. Однако результаты между этими двумя будут совсем другими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...