【问题标题】:How to activate translation for all management commands by default?如何默认激活所有管理命令的翻译?
【发布时间】:2020-01-14 12:25:48
【问题描述】:
默认情况下,我需要在所有 django 管理命令中激活翻译。目前我将这行代码放在我所有的管理命令中:
translation.activate(settings.LANGUAGE_CODE)
有时我会忘记在我的命令中考虑它。我需要它来发送翻译后的通知。有什么方法可以默认激活所有管理命令的翻译?
任何帮助表示赞赏。
【问题讨论】:
标签:
django
translation
django-i18n
django-management-command
【解决方案1】:
查看 BaseCommand 的源代码后,我发现 django 正在禁用翻译,我可以通过在 Command 类中添加一个属性来防止这种情况:
class CoreBaseCommand(BaseCommand):
leave_locale_alone = True
我确实将该行放在我的自定义 BaseCommand 中以应用于所有继承的命令。