diff options
| author | Claude Paroz <claude@2xlibre.net> | 2014-03-06 10:13:22 +0100 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2014-03-06 10:20:01 +0100 |
| commit | 06efeae598c6dafbe56d2ea323a0dccdd5bf2b8e (patch) | |
| tree | a41cb5ac13ab4bed39c4d7ef413c6a86aba79665 /django/core | |
| parent | 20948612c79b936424cb12cf9988713708232ced (diff) | |
Added --previous flag to msgmerge command used by makemessages
Also took the opportunity to slightly refactor gettext options
so as to ease customization by subclassing the command.
Thanks Michal Čihař for the report and initial patch.
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/management/commands/makemessages.py | 57 |
1 files changed, 23 insertions, 34 deletions
diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 9c81bc8e20..7c2555ba2f 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -80,14 +80,8 @@ class TranslatableFile(object): '--keyword=ngettext_lazy:1,2', '--keyword=pgettext:1c,2', '--keyword=npgettext:1c,2,3', - '--from-code=UTF-8', - '--add-comments=Translators', '--output=-' - ] - if command.wrap: - args.append(command.wrap) - if command.location: - args.append(command.location) + ] + command.xgettext_options args.append(work_file) elif domain == 'django' and (file_ext == '.py' or file_ext in command.extensions): thefile = self.file @@ -115,14 +109,8 @@ class TranslatableFile(object): '--keyword=npgettext:1c,2,3', '--keyword=pgettext_lazy:1c,2', '--keyword=npgettext_lazy:1c,2,3', - '--from-code=UTF-8', - '--add-comments=Translators', '--output=-' - ] - if command.wrap: - args.append(command.wrap) - if command.location: - args.append(command.location) + ] + command.xgettext_options args.append(work_file) else: return @@ -206,6 +194,11 @@ class Command(NoArgsCommand): requires_system_checks = False leave_locale_alone = True + msgmerge_options = ['-q', '--previous'] + msguniq_options = ['--to-code=utf-8'] + msgattrib_options = ['--no-obsolete'] + xgettext_options = ['--from-code=UTF-8', '--add-comments=Translators'] + def handle_noargs(self, *args, **options): locale = options.get('locale') self.domain = options.get('domain') @@ -217,8 +210,19 @@ class Command(NoArgsCommand): if options.get('use_default_ignore_patterns'): ignore_patterns += ['CVS', '.*', '*~', '*.pyc'] self.ignore_patterns = list(set(ignore_patterns)) - self.wrap = '--no-wrap' if options.get('no_wrap') else '' - self.location = '--no-location' if options.get('no_location') else '' + + # Avoid messing with mutable class variables + if options.get('no_wrap'): + self.msgmerge_options = self.msgmerge_options[:] + ['--no-wrap'] + self.msguniq_options = self.msguniq_options[:] + ['--no-wrap'] + self.msgattrib_options = self.msgattrib_options[:] + ['--no-wrap'] + self.xgettext_options = self.xgettext_options[:] + ['--no-wrap'] + if options.get('no_location'): + self.msgmerge_options = self.msgmerge_options[:] + ['--no-location'] + self.msguniq_options = self.msguniq_options[:] + ['--no-location'] + self.msgattrib_options = self.msgattrib_options[:] + ['--no-location'] + self.xgettext_options = self.xgettext_options[:] + ['--no-location'] + self.no_obsolete = options.get('no_obsolete') self.keep_pot = options.get('keep_pot') @@ -307,12 +311,7 @@ class Command(NoArgsCommand): potfile = os.path.join(path, '%s.pot' % str(self.domain)) if not os.path.exists(potfile): continue - args = ['msguniq', '--to-code=utf-8'] - if self.wrap: - args.append(self.wrap) - if self.location: - args.append(self.location) - args.append(potfile) + args = ['msguniq'] + self.msguniq_options + [potfile] msgs, errors, status = popen_wrapper(args) if errors: if status != STATUS_OK: @@ -389,12 +388,7 @@ class Command(NoArgsCommand): pofile = os.path.join(basedir, '%s.po' % str(self.domain)) if os.path.exists(pofile): - args = ['msgmerge', '-q'] - if self.wrap: - args.append(self.wrap) - if self.location: - args.append(self.location) - args.extend([pofile, potfile]) + args = ['msgmerge'] + self.msgmerge_options + [pofile, potfile] msgs, errors, status = popen_wrapper(args) if errors: if status != STATUS_OK: @@ -413,12 +407,7 @@ class Command(NoArgsCommand): fp.write(msgs) if self.no_obsolete: - args = ['msgattrib', '-o', pofile, '--no-obsolete'] - if self.wrap: - args.append(self.wrap) - if self.location: - args.append(self.location) - args.append(pofile) + args = ['msgattrib'] + self.msgattrib_options + ['-o', pofile, pofile] msgs, errors, status = popen_wrapper(args) if errors: if status != STATUS_OK: |
