例如,我的网站中有几个不属于任何应用程序的字符串
{% 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
时,它会从all Python中提取字符串, .html 和 .template 文件,包括我的应用程序中的文件。这是因为我在该目录中开发我的应用程序:
Directory structure: sitename myapp1 myapp2
有什么方法可以提取我的应用中不存在的所有字符串吗?
我发现的唯一解决方案是将应用程序目录移到站点目录结构之外,但我使用的是 bzr-externals (类似于 git 子模块或 svn externals),因此这对我来说没有意义。
将需要翻译的内容移至新应用程序中也是可能的,但我不知道这是否是唯一合理的解决方案。
最佳答案
根据the documentation您可以从您想要翻译的应用程序运行 makemessages
,只为该特定应用程序创建消息文件。还可以使用 makemessages 的 --ignore
参数过滤掉某些特定文件夹。不过,这两者之间的结果会有很大不同。
关于 Django i18n : makemessages only on site level possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566312/