I found a problem in l10n/utils.py/get_locale_conv (). The code calls locale.setlocale() with a string parameter returned by locale.normalize(loc), which returns inconsistent values. For example, locale.normalize('ja') returns 'ja-JP.EUC-JP' even on UTF-8 system (ubuntu 8.10). As a result, the system crashes.
As of Python 2.0, setlocale() allows passing a tuple (lang,encoding) instead of a string. I modified the code to pass a tuple (loc,'utf-8'), and it started working as expected. It should be simpler than the current code base.
Reported by hnak