3 thoughts
last posted Nov. 24, 2014, 11:32 p.m.
get stream as: markdown or atom

I once again find myself working on an i18n/l10n (internationalization/localization) effort, so I figure I may as well document how things evolve for public consumption.


As background: I first worked on i18n during the Zope 3 sprints at PyCon 2003 (I think that's the right year), working with Stefan and Jim on zope.i18n.

At Creative Commons, I worked on i18n for the license chooser, licenses, wiki, etc, as well as the desktop apps we wrote for a while. Lots of gnarly bits in there, but still mostly gettext based. I think we were localizing the deeds into 40-50 languages when I left, and had done some serious work to accept translation suggestions from the community with approval/acceptance by our partner organizations. Jinja, ZPT, content negotiation, lots of fun stuff.

At Eventbrite I worked on i18n again, again with Python and gettext. Mako templates + javascript, as well as figuring out how multiple TLDs would work (ie, eventbrite.fr should start in French (fr-FR), but what happens if you want eventbrite.fr in Spanish? The answer is non-obvious, and we worked really hard to get it close to right. The real answer is "Don't do multiple TLDs; it's sort of dumb.")


At Remind things are even more involved. We're going to need to translate:

  • Android and iOS native applications
  • Angular web application
  • Text content in our Rails API
  • Small messages in Node.js and Golang based services
  • Help center content store in Zendesk
  • Life-cycle emails sent via customer.io