djangointernationalizationtranslationgettext

Why doesn't django take my language file into account?


I followed the whole documentation about text translation, but django doesn't take my .mo file into account.

Some facts:

So my folder structure is:

project/
  site/
  locale/
    fr/
      LC_MESSAGES/
        django.mo
        django.po

But I get nothing translated... How to make django take these files into account ?


Edit

Adding /home/www/project/locale to settings.LOCALE_PATHS works. However, Django should find this path by itself, and I don't like using absolute paths. What happens here ?


Solution

  • LOCALE_PATHS

    Django looks for translation files in 3 locations by default (according to the documentation):

    LOCALE_PATHS only need to be used if your translation files aren't in your app directories or on the PYTHON_PATH.

    An example of LOCALE_PATHS in settings.py

    LOCALE_PATHS = (
        '/home/www/project/conf/locale', # replace with correct path here
    )
    

    MIDDLEWARE_CLASSES

    Add django.middleware.locale.LocaleMiddleware to MIDDLEWARE_CLASSES in settings.py

    LANGUAGES

    LANGUAGES = (
        ('fr', 'Français'),
    )