Simon Willison’s Weblog


13 items tagged “i18n”


Falsehoods Programmers Believe About Names. People’s names are complicated. I’m not at all comfortable with the commonly used first name / last name distinction (as baked in to Django auth) since it doesn’t take cultural factors in to account.

# 17th June 2010, 7:44 pm / django, i18n, internationalisation, l10n, localisation, recovered, names


Language Detection: A Witch’s Brew? The Flickr team make the case for using the Accept-Language header over IP detection to pick a site’s language, with a simple UI for switching languages in case you get it wrong. They’ve been using this for two and a half years without any significant problems.

# 5th December 2009, 5:30 pm / flickr, http, i18n, l10n, languagdetection, language


The technical stack: Django and Flex. Nice case study of a site using Django’s i18n support along with django-rosetta.

# 11th September 2008, 8:33 pm / django, flex, i18n, jpstacey, python, rosetta, timetolead, torchbox

UnicodeDictWriter—write unicode strings out to Excel compatible CSV files using Python. Stuart Langridge and I spent quite a while this morning battling with Excel. The magic combination for storing unicode text in a CSV file such that Excel correctly reads it is UTF-16, a byte order mark and tab delimiters rather than commas.

# 20th August 2008, 12:19 pm / byteordermark, csv, excel, i18n, internationalisation, python, stuart-langridge, unicode, unicodedictwriter, utf16

He/She/They: Grammar and Facebook. Facebook are going to start requiring gender information because foreign language translations wind up being too confusing when that information is not available. Aside: I wish they’d implement proper title elements on their blog posts.

# 27th June 2008, 9:06 am / facebook, gender, grammar, i18n, l10n, usability

django-rosetta—Google Code. Very classy Django-powered interface for both reading and writing your project’s gettext catalog files, hence allowing application translators to work through a web interface.

# 11th April 2008, 7:31 am / django, djangorosetta, gettext, i18n, internationalisation


Thai personal names (via) “Family names were allocated to families systematically and the use of family names is still controlled by the government. Any two people in Thailand with the same family name are related.”

# 8th December 2007, 4:26 pm / i18n, james-clark, l10n, thailand, tim-bray

JavaScript Internationalisation, explained by reindeer. “Santa even spooked Comet recently by talking about him as if he were some pushy web server.”

# 8th December 2007, 2:04 pm / 24-ways, comet, i18n, internationalisation, javascript, matthew-somerville, santa

Django security fix released. Django’s internationalisation system has a denial of service hole in it; you’re vulnerable if you are using the i18n middleware. Fixes have been made available for trunk, 0.96, 0.95 and 0.91.

# 26th October 2007, 9:47 pm / denialofservice, django, i18n, internationalisation, python, security, vulnerability

BabelDjango. Tools for integrating Christopher Lenz’s Babel i18n framework with Django.

# 20th August 2007, 2:59 pm / babel, christopher-lenz, django, i18n, python

Announcing Babel. Impressive new Python i18n / l10n package, with improved message extraction and a huge amount of bundled locale data.

# 20th July 2007, 12:20 pm / babel, christopher-lenz, cldr, i18n, internationalisation, l10n, locale, localisation, python, unicode

Personal names around the world. I’ve always felt slightly uncomfortable about firstname/lastname fields in forms. Now I know why.

# 19th July 2007, 12:54 pm / forms, i18n, internationalisation, richardishida

Google Translate (beta). Google’s beta translator based on statistical analysis of things like the United Nations corpus. I have no idea how long this has been available; it isn’t linked from their homepage.

# 3rd July 2007, 4:43 pm / google, i18n, internationalisation, languages, translation