我的网站中有几个不属于任何应用的字符串,例如
{% 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
有没有办法提取我应用中不存在的所有字符串?
我找到的唯一解决方案是将app目录移到站点目录结构之外,但我使用的是bzr-externals(类似于git子模块或svn externals),因此在我的情况下没有意义。
将需要翻译的内容移动到新的应用程序中也是可能的,但我不知道这是否是唯一合理的解决方案。
答案 0 :(得分:5)
根据the documentation,您可以从要翻译的应用中运行makemessages
,仅为该特定应用创建消息文件。也可以使用makemessages'--ignore
参数过滤掉一些特定的文件夹。不过,这两者之间的结果会大不相同。