When comes to using multiple languages in one single site, Django is very handy. You can use .po file to do your translation for you.

Process is very simple: First create .po file. To make .po file I would suggest to use poedit or Rosetta. Here is another option that is using django's very own Localisation. Second create a folder name locale within tour django project and add the language named (for example: ru__RU for Russian language) within locale. Within ru___RU folder, create another folder named 'LC__MESSAGES'. There save the .po file you have created. Save the .po file in name django.po. File Map:


Now run this command: django-admin.py compilemessages to generate .mo file(django.mo). Third comes to final touch. in Language settings in your settings.py add ru_RU like this:

    ('en-us', 'English'),
    ('ru_RU', 'Russian'),

LANGUAGE_CODE = 'en-us' 'ru_RU' 

Add locale path :

    os.path.join(PROJECT_PATH, '../locale'),

and finally add a middleware in in MIDDLEWARE_CLASSES or MIDDLEWARES.


That should the trick.