django-admin compilemessages命令

compilemessages命令用于将.po文件编译成用于国际化和本地化的.mo文件。本文重点讲一下--ignore参数。

ignore参数是Django 3.0里新添加的参数,主要用于过滤locale文件路径,ignore参数值使用unix的 glob路径风格,如果想同时忽略多个路径可以添加多个ignore参数,用法如下:

django-admin compilemessages --ignore=cache --ignore=outdated/*/locale

但是在实际使用过程中发现--ignore参数一直不生效,最后研究发现,ignore所能处理的locale路径是有条件限制的,即ignore只能在一组规定的路径中查找locale。

由于compilemessages命令使用以下代码查找全部locale路径,所以--ignore参数所忽略的路径也应该包含在这些路径中:


django-admin compilemessages命令

执行以上代码的时候终端所处的位置就是查找locale路径的根目录,为了测试--ignore参数,我们在mysite文件夹下创建一个相同的locale文件夹,目录结构如下:

django-admin compilemessages命令

执行以上代码测试compilemessages命令所能查找的全部locale目录:

django-admin compilemessages命令

正常执行compilemessages命令:

django-admin compilemessages命令

我们可以看到根目录mysite下的所以locale文件都被编译了,接下来使用—ignore参数忽略polls目录下的locale文件:

django-admin compilemessages命令


参考文件:https://code.djangoproject.com/ticket/29973


分享到:


相關文章: