Ticket #20566: 20566-poc.diff

File 20566-poc.diff, 4.5 KB (added by Claude Paroz, 11 years ago)
  • django/core/management/commands/makemessages.py

    diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py
    index 060def5..fe08379 100644
    a b class TranslatableFile(object):  
    7474                '--keyword=ngettext_lazy:1,2',
    7575                '--keyword=pgettext:1c,2',
    7676                '--keyword=npgettext:1c,2,3',
    77                 '--from-code=UTF-8',
    78                 '--add-comments=Translators',
    7977                '--output=-'
    80             ]
    81             if command.wrap:
    82                 args.append(command.wrap)
    83             if command.location:
    84                 args.append(command.location)
     78            ] + command.xgettext_options
    8579            args.append(work_file)
    8680        elif domain == 'django' and (file_ext == '.py' or file_ext in command.extensions):
    8781            thefile = self.file
    class TranslatableFile(object):  
    109103                '--keyword=npgettext:1c,2,3',
    110104                '--keyword=pgettext_lazy:1c,2',
    111105                '--keyword=npgettext_lazy:1c,2,3',
    112                 '--from-code=UTF-8',
    113                 '--add-comments=Translators',
    114106                '--output=-'
    115             ]
    116             if command.wrap:
    117                 args.append(command.wrap)
    118             if command.location:
    119                 args.append(command.location)
     107            ] + command.xgettext_options
    120108            args.append(work_file)
    121109        else:
    122110            return
    class Command(NoArgsCommand):  
    192180    requires_model_validation = False
    193181    leave_locale_alone = True
    194182
     183    msgmerge_options = ['-q', '--previous']
     184    msguniq_options = ['--to-code=utf-8']
     185    msgattrib_options = ['--no-obsolete']
     186    xgettext_options = ['--from-code=UTF-8', '--add-comments=Translators']
     187
    195188    def handle_noargs(self, *args, **options):
    196189        locale = options.get('locale')
    197190        self.domain = options.get('domain')
    class Command(NoArgsCommand):  
    203196        if options.get('use_default_ignore_patterns'):
    204197            ignore_patterns += ['CVS', '.*', '*~', '*.pyc']
    205198        self.ignore_patterns = list(set(ignore_patterns))
    206         self.wrap = '--no-wrap' if options.get('no_wrap') else ''
    207         self.location = '--no-location' if options.get('no_location') else ''
     199        if options.get('no_wrap'):
     200            self.msgmerge_options.append('--no-wrap')
     201            self.msguniq_options.append('--no-wrap')
     202            self.msgattrib_options.append('--no-wrap')
     203            self.xgettext_options.append('--no-wrap')
     204        if options.get('no_location'):
     205            self.msgmerge_options.append('--no-location')
     206            self.msguniq_options.append('--no-location')
     207            self.msgattrib_options.append('--no-location')
     208            self.xgettext_options.append('--no-location')
    208209        self.no_obsolete = options.get('no_obsolete')
    209210        self.keep_pot = options.get('keep_pot')
    210211
    class Command(NoArgsCommand):  
    325326
    326327        Uses mguniq, msgmerge, and msgattrib GNU gettext utilities.
    327328        """
    328         args = ['msguniq', '--to-code=utf-8']
    329         if self.wrap:
    330             args.append(self.wrap)
    331         if self.location:
    332             args.append(self.location)
    333         args.append(potfile)
     329        args = ['msguniq'] + self.msguniq_options + [potfile]
    334330        msgs, errors, status = popen_wrapper(args)
    335331        if errors:
    336332            if status != STATUS_OK:
    class Command(NoArgsCommand):  
    347343        if os.path.exists(pofile):
    348344            with open(potfile, 'w') as fp:
    349345                fp.write(msgs)
    350             args = ['msgmerge', '-q']
    351             if self.wrap:
    352                 args.append(self.wrap)
    353             if self.location:
    354                 args.append(self.location)
    355             args.extend([pofile, potfile])
     346            args = ['msgmerge'] + self.msgmerge_options + [pofile, potfile]
    356347            msgs, errors, status = popen_wrapper(args)
    357348            if errors:
    358349                if status != STATUS_OK:
    class Command(NoArgsCommand):  
    368359            fp.write(msgs)
    369360
    370361        if self.no_obsolete:
    371             args = ['msgattrib', '-o', pofile, '--no-obsolete']
    372             if self.wrap:
    373                 args.append(self.wrap)
    374             if self.location:
    375                 args.append(self.location)
    376             args.append(pofile)
     362            args = ['msgattrib'] + self.msgattrib_options + ['-o', pofile, pofile]
    377363            msgs, errors, status = popen_wrapper(args)
    378364            if errors:
    379365                if status != STATUS_OK:
Back to Top