summaryrefslogtreecommitdiff
path: root/django/core
diff options
context:
space:
mode:
authorCraig Blaszczyk <masterjakul@gmail.com>2012-06-07 11:23:25 +0200
committerRamiro Morales <cramm0@gmail.com>2013-01-17 00:53:17 -0300
commit6158c79dbef832bc8530107ab2d34f04a04471da (patch)
treec2821007f137fd51e55f955a0f0af7a368876f96 /django/core
parent295650bd01bc4d68e918b483a2366a092dae6636 (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.py16
-rw-r--r--django/core/management/commands/makemessages.py6
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',