PyCon Pune 2017

A conference on the Python programming language

i18n-ise Django Apps

Submitted Nov 7, 2016

i18n is short form of Internationalization: process of enabling any of the i18n frameworks (say gettext) for an application so that it can be localised to languages and cultures. Though baseline achieving i18n remains the same, it has various implementations. For example implementation of the most famous i18n framework gettext spans C/C++, Python, PHP, Java, JS, .NET and many others.

Meanwhile if one of them, say Java is considered we have Locale and ResourceBundle classes doing the same, i18n! Same with .NET Globalization namespace. Hence we have various i18n methods. In web development, frameworks (Rails, Drupal, etc.) may have their own method. Some keep their language resources in PO (gettext portable object), others in JSON, YML, INI, RESX, PROPERTIES etc.

We have 22 official languages in India, and this reflects a large population wish to browse-content/interact in their language. Stats shows people at Japan, China, France, Spain, Germany and other countries also prefer the same. i18n methods are being evaluated and enhanced which results in multilingual sites getting much popularity.

This session starts with an introduction to how gettext works and its python implementation. Steps involved in enabling Django i18n and l10n (localisation). Once we have Django application localisation-ready, how we can manage translations effectively.

Modern webapps include various frameworks mixedup, which actually takes i18n into more complex level like if we have Angularjs mixed at UI layer etc. We will have a discussion around this.

And then a quick look at several i18n related modules out there. Session ends in localising a simple django application. If you are building or planning to build your idea in Django lets discuss how we can achieve i18n for the stack.


1) demystify i18n
2) enable django i18n/l10n
3) manage translations
4) fullstack i18n view
5) i18n related modules
6) demo - djangoapp i18n/l10n


Working knowledge of gettext i18n framework.

Speaker bio

Software Engineer with i18n Eng Team, Red Hat. Has experience of 5+ years in i18n. Interests include i18n software development, web and devops. Contributes in Ansible and Zanata projects. Active in community and speaks at FOSSASIA, FUEL, PythonPune conferences/meetups. Blogs at