Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django makemessages not creating newly added languages

Tags:

python

django

I had 12 languages in my Django app, if I run the command:

python manage.py makemessages --all

It would create all the 12 .po files for the languages, now I added 3 more languages:

LANGUAGES = (
    ...
    ('th', gettext('Thai')),
    ('tl', gettext('Tagalog')),
    ('vi', gettext('Vietnamese')),
)

when I run the makemessages --all command it just skips the three new languages. Am I missing something ?

Edit: Maybe the documentation is hard to understand:

makemessages

django-admin makemessages

Runs over the entire source tree of the current directory and pulls out all strings marked for translation. It creates (or updates) a message file in the conf/locale (in the Django tree) or locale (for project and application) directory. After making changes to the messages files you need to compile them with compilemessages for use with the builtin gettext support. See the i18n documentation for details.

like image 472
PepperoniPizza Avatar asked Aug 13 '14 15:08

PepperoniPizza


1 Answers

You need to specify the languages you are interested in the first time at the command line.

python manage.py makemessages -l th -l tl -l vi

After that, subsequent calls with --all flag will generate PO files for all languages.

like image 165
Vinod Kurup Avatar answered Nov 16 '22 11:11

Vinod Kurup