Django i18n:仅在网站级别上制作消息吗?

And*_*Dog 3 django internationalization

例如,我的网站中有几个字符串不属于任何应用程序

{% block title %}{% trans "Login" %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)

或者用于设置区域设置cookie的修改后的身份验证表单

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

现在,当我django-admin.py makemessages --all -e .html,.template在站点目录中执行时,它会从所有 Python,.html和.template文件中提取字符串,包括我的应用程序中的文件.那是因为我在该目录中开发我的应用程序:

Directory structure:

sitename
     myapp1
     myapp2

有没有办法提取我的应用程序中没有的所有字符串?

我找到的唯一解决方案是将app目录移到站点目录结构之外,但我使用的是bzr-externals(类似于git子模块或svn externals),因此在我的情况下没有意义.

将需要翻译的内容移动到新的应用程序中也是可能的,但我不知道这是否是唯一合理的解决方案.

ral*_*hje 5

根据您可以从要翻译的应用程序运行的文档makemessages,仅创建该特定应用程序的消息文件.也可以使用makemessages的--ignore参数过滤掉一些特定的文件夹.不过,这两者之间的结果会大不相同.