On July 17, we hosted a Tech Talk focused on internationalization in our San Francisco office. Internationalization has been a key focus at Lumosity over the last few years, so we wanted to share some of what we’ve learned with the larger community. We also invited Julien Silland of Strava to share his own thoughts around the process. For those of you who were not able to attend – or attended but want a recap – below is a summary of the evening.
First up, our own Cameron Dutro addressed the group. Cameron is a software engineer at Lumosity with a specific focus on i18n engineering. He joined our team a little under a year ago and was previously an engineer at Twitter.
The focus of Cameron’s talk was the various tools he uses to make the internationalization process smoother. He noted that localization is an inherently human-driven process, but that the right tools can equip your team for success. In particular, Cameron mentioned the Common Locale Data Repository (CLDR), which he noted is a wonderful (and free) resource providing support for locale-specific date and time formatting, collation, segmentation, and much more.
A second tool is Rosette, a new technology developed in-house for maintaining UI phrases and their translations. At this time, Lumosity supports six foreign languages on mobile and web, and Rosette has simplified much of our localization process. The program enables “continuous translation” to automate the discovery of new translatable content. Continuous translation grew out of the xtreme programming mantras of continuous integration and delivery – if testing is good, then do it all the time; if translating is good, then do it all the time. Rosette is git-based, open-source, and modular, and you can find the rosette-template project on Github to start running your own Rosette instance.
You can find all of the details of Cameron’s points from his talk in his presentation slides here.
Up next was Julien Silland, who spoke to his experience as an engineering manager at Strava. Strava is a digital community for athletes – particularly runners and cyclists – and their product features a variety of tools to help these athletes succeed. The community has a large presence outside of the US, so internationalizing the product experience has been one of their primary initiatives. i18n, Julien argued, is about “repaying debt.” In a perfect world, your product will have been international and localized from the get-go, but this typically isn’t feasible for new companies. (He also drew a distinction between internationalization and localization – the latter is a product feature, while the former is not.)
Over the course of his talk, Julien walked us through his team’s process. First, he said, your team must consider the objectives for expanding internationally – whether your interest is due to new users or revenue potential, your objectives will help determine whether or not your existing experience will need to change. Once you’ve defined your goals, your team can proceed by creating a content inventory (including a glossary), establishing a content flow for both mobile and web, and then iterating. In Strava’s case, iterating meant, among other things, starting with one platform and one locale first (mobile and France, respectively).
Like Cameron, Julien mentioned CLDR. In fact, he quoted Dan McKinley (Etsy, Stripe) and told us, “Choose boring technology.” With internationalization, he argued, the risk of not getting things right is high, so it’s always best to rely on tried-and-true tools, such as CLDR. Another tool Julien mentioned is a pseudolocalization tool called Cub (written in Java), which helps engineers detect anti-patterns like concatenation, layouts that don’t scale, hardcoded strings and non-externalized content.
To conclude his talk, Julien shared some indicators of success. In addition to your domestic users not noticing any changes, Julien told us that having your international users complain that they don’t see English anymore is also a marker of success. (You should, he noted, give these users the option to switch back to English if they’d like.) You can find all of Julien’s success indicators, as well as additional points from his talk, in his presentation slides here.