diff options
| author | Craig Blaszczyk <masterjakul@gmail.com> | 2012-06-07 11:23:25 +0200 |
|---|---|---|
| committer | Ramiro Morales <cramm0@gmail.com> | 2013-01-17 00:53:17 -0300 |
| commit | 6158c79dbef832bc8530107ab2d34f04a04471da (patch) | |
| tree | c2821007f137fd51e55f955a0f0af7a368876f96 /django/core | |
| parent | 295650bd01bc4d68e918b483a2366a092dae6636 (diff) | |
Made (make|compile)messages commands accept multiple locales at once.
Thanks Craig Blaszczyk for the initial patch. Refs #17181.
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/management/commands/compilemessages.py | 16 | ||||
| -rw-r--r-- | django/core/management/commands/makemessages.py | 6 |
2 files changed, 13 insertions, 9 deletions
diff --git a/django/core/management/commands/compilemessages.py b/django/core/management/commands/compilemessages.py index e1d8a33332..684ef3514c 100644 --- a/django/core/management/commands/compilemessages.py +++ b/django/core/management/commands/compilemessages.py @@ -28,10 +28,14 @@ def compile_messages(stderr, locale=None): for basedir in basedirs: if locale: - basedir = os.path.join(basedir, locale, 'LC_MESSAGES') - for dirpath, dirnames, filenames in os.walk(basedir): - for f in filenames: - if f.endswith('.po'): + dirs = [os.path.join(basedir, l, 'LC_MESSAGES') for l in (locale if isinstance(locale, list) else [locale])] + else: + dirs = [basedir] + for ldir in dirs: + for dirpath, dirnames, filenames in os.walk(ldir): + for f in filenames: + if not f.endswith('.po'): + continue stderr.write('processing file %s in %s\n' % (f, dirpath)) fn = os.path.join(dirpath, f) if has_bom(fn): @@ -53,8 +57,8 @@ def compile_messages(stderr, locale=None): class Command(BaseCommand): option_list = BaseCommand.option_list + ( - make_option('--locale', '-l', dest='locale', - help='The locale to process. Default is to process all.'), + make_option('--locale', '-l', dest='locale', action='append', + help='locale(s) to process (e.g. de_AT). Default is to process all. Can be used multiple times, accepts a comma-separated list of locale names.'), ) help = 'Compiles .po files to .mo files for use with builtin gettext support.' diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 2b2755d8d1..31971a9101 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -304,7 +304,7 @@ def make_messages(locale=None, domain='django', verbosity=1, all=False, locales = [] if locale is not None: - locales.append(str(locale)) + locales += locale.split(',') if not isinstance(locale, list) else locale elif all: locale_dirs = filter(os.path.isdir, glob.glob('%s/*' % localedir)) locales = [os.path.basename(l) for l in locale_dirs] @@ -341,8 +341,8 @@ def make_messages(locale=None, domain='django', verbosity=1, all=False, class Command(NoArgsCommand): option_list = NoArgsCommand.option_list + ( - make_option('--locale', '-l', default=None, dest='locale', - help='Creates or updates the message files for the given locale (e.g. pt_BR).'), + make_option('--locale', '-l', default=None, dest='locale', action='append', + help='Creates or updates the message files for the given locale(s) (e.g. pt_BR). Can be used multiple times, accepts a comma-separated list of locale names.'), make_option('--domain', '-d', default='django', dest='domain', help='The domain of the message files (default: "django").'), make_option('--all', '-a', action='store_true', dest='all', |
