
上QQ阅读APP看书,第一时间看更新
4.4 compilemessages
作用:将.po文件编译成用于国际化和本地化的.mo文件(使用makemessages命令可生成.po文件)。
语法:django-admin compilemessages
可选参数:
--locale LOCALE, -l LOCALE
指定待编译区域(locale),如果没有设置则编译全部区域的.po文件。
--exclude EXCLUDE, -x EXCLUDE
指定要从处理中排除的区域设置。如果没有提供,则不排除任何地区。
--use-fuzzy, -f
将模糊翻译编译到.mo文件。
--ignore PATTERN, -i PATTERN
编译消息文件时忽略与glob风格匹配的路径。可多次出现。
示例:首先在polls应用程序文件夹中准备下图所示的.po文件目录。

仅编译de区域的消息文件,如下图所示。

不编译de区域的消息文件,如下图所示。

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

为了测试--ignore参数,在mysite文件夹下创建一个相同的locale文件夹,目录结构如下:

执行以上代码测试compilemessages命令所能查找的全部locale目录,如下图所示。

正常执行compilemessages命令,如下图所示。

可以看到根目录mysite下所有locale文件都被编译了,接下来使--ignore参数忽略polls目录下的locale文件,如下图所示。

可以看到,此时只编译了mysite目录下的locale文件。