Welcome to django-localeurl


django-localeurl is currently un-maintained (so pull requests will not be reviewed or merged), and its approach has been obsoleted by the introduction of locale-aware URL patterns in Django itself. If you are nonetheless interested in taking over maintenance of django-localeurl, please file an issue to volunteer. Thank you!

The localeurl Django application allows you to specify the language of a page in the URL.

Suppose you have a Django website in multiple languages. Using localeurl, without modifying your URLconfs, you can have URLs like this: http://www.example.com/nl/company/profile. Any URLs without a language prefix will be redirected to add the prefix for the default language (or, optionally, the language preferred in the user’s browser settings).

Some reasons for using localeurl:

  • Search engines will index all languages.
  • Every page should have a unique URL. If you feel that different languages means different pages, then each language should get its own unique URL.
  • If you don’t set the language via the URL, setting the language for the website should be done using a POST request (because it influences subsequent page views, see Django ticket #3651). You might prefer a simple link for changing the language, and localeurl allows this.

You can install localeurl with pip:

pip install django-localeurl

or install the in-development version:

pip install django-localeurl==dev

The localeurl code is licensed under the MIT License. See the LICENSE.txt file in the distribution.