Django makemessages for apps in site-packages
Asked Answered
C

3

7

How can I collect translation strings outside of my project folder using Django's built-in makemessages facility? The management command makemessages is very convenient and I'd like to use it for applications located in site-packages.

Churchgoer answered 4/11, 2010 at 11:44 Comment(0)
B
2

Other than makemessages I found PyBabel very useful. Here is a bind to Django itself: http://babel.edgewall.org/wiki/BabelDjango

Bac answered 15/11, 2010 at 13:20 Comment(0)
C
12

(1) Activate a virtual environment where Django is installed.

(2) Go directory of the app for which you want the messages to be generated:

$ cd path/to/app/in/site/packages/

(3) Make sure it has "locale" directory. If not - make one.

$ mkdir locale

(4) From your app directory run the following command:

$ django-admin.py makemessages -l [LANGUAGE_CODE]

Example for Dutch:

$ django-admin.py makemessages -l nl

Example for Russian:

$ django-admin.py makemessages -l ru
Contrail answered 5/11, 2013 at 18:30 Comment(2)
I'm not sure this is what the OP asks, does this collect strings outside of the project? As far as I know, this will just collect strings from html, txt, and py files inside of the project or app.Overshine
Yes, it does collect strings from the package you are running it from. That's why we have cd path/to/app/in/site/packages/.Contrail
B
2

Other than makemessages I found PyBabel very useful. Here is a bind to Django itself: http://babel.edgewall.org/wiki/BabelDjango

Bac answered 15/11, 2010 at 13:20 Comment(0)
P
0

With symbol links (ln -s) but it's not very convenient. Usually if the apps are on PYTHONPATH shouldn't the translations folders be catched by makemessages ?

Placket answered 4/11, 2010 at 12:20 Comment(2)
Now I do use symlinks but that's an ugly workaround. It's hard-coded in makemessages.py to find files in the current working directory, it skips PYTHONPATH.Churchgoer
When using symlinks remember to add the --symlinks option to makemessagesOvershine

© 2022 - 2024 — McMap. All rights reserved.