Django i18n : makemessages only on site level possible?

标签 django internationalization

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

{% 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/

相关文章:

ruby-on-rails - Rails I18n中verification.rb验证方法不起作用?

python - 为什么我需要 DJANGO_SETTINGS_MODULE 集?

python - 从数据库重新加载 django 对象

.net - C#中如何区分简体中文和繁体中文?

ruby-on-rails - 如何使用 globalize2 在 I18n 中启用回退

ios - 如何检查 iOS 应用程序中真正使用了哪些本地化字符串?

python - 在 Python 中,将异常记录到文件的最佳方式是什么?

python - Django admin.site.register 不添加我的应用程序管理员

Django:将索引添加到元字段

python - 在 App-Engine 上使用韩语和印地语进行 django 翻译的 i18n 问题