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


分享到:


相關文章: