問題在於模式 - 也許shell正在爲您擴展它。
通常 - 避免模式中的路徑分隔符(不管是/或\)是很好的選擇。
如果你需要總是通過特定的選項給makemessages
命令,你可以考慮自己的包裝,像這樣的,我用我自己:
from django.conf import settings
from django.core.management.base import BaseCommand
from django.core.management import call_command
class Command(BaseCommand):
help = "Scan i18n messages without going into externals."
def handle(self, *args, **options):
call_command('makemessages',
all=True,
extensions=['html', 'inc'],
ignore_patterns=['externals*'])
這樣可以節省你打字,並給出了一個共同的入口指示在整個項目中掃描郵件(您的翻譯員同事不會通過遺漏某些參數來銷燬翻譯)。
不要刪除舊的.po
文件,只要您將它從完全不需要的文件(即 - 'django'目錄中的文件)中清除。這使得gettext的回收舊的未使用的消息,一旦被再次使用(或simmilar的,將被標記爲#, fuzzy
編輯 - 作爲mt4x注意 - 包裝上面不允許傳遞選項。包裝的命令這很容易解決:
from django.conf import settings
from django.core.management.base import BaseCommand
from django.core.management import call_command
from django.core.management.commands.makemessages import Command as MakeMessagesCommand
class Command(BaseCommand):
help = "Scan i18n messages without going into externals."
option_list = MakeMessagesCommand.option_list
def handle(self, *args, **options):
options['all'] = True
options['extensions'] = ['html', 'inc']
options['ignore_patterns'] = ['externals*']
call_command('makemessages', **options)
因此 - 您可以修復需要修復的東西,彎曲其餘 ,這一點需要不能盲目超越像上面,也是一些有條件的編輯。傳遞給命令的參數 - 將某些內容附加到列表中或只在丟失時添加它。
謝謝,「django *」也適用於我。 – balazs