Internationalisation
django CMS excels in its multilingual support, and can be configured to handle a vast range of different requirements. Its behaviour is flexible and can be controlled at a granular level in CMS_LANGUAGES
. Other Internationalisation and localisation (I18N and L10N) settings offer further control.
See How to serve multiple languages on how to set up a multilingual django CMS project.
URLs
Multilingual URLs require the use of i18n_patterns()
. For more information about this see the official Django documentation on the subject. Multilingual URLs describes what you need to do in a django CMS project.
How django CMS determines which language to serve
django CMS uses a number of standard Django mechanisms to choose the language for the user, in the following order of preference:
- language code in the URL - for example,
http://example.com/de
(when multilingual URLs are enabled) - language stored in the browsing session
- language stored in a cookie from a previous session
- language requested by the browser in the
Accept-Language
header - the default
LANGUAGE_CODE
in the site’s settings
More in-depth documentation about this is available at https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-language-preference