Evernote has more than 150,000,000 users worldwide, and more than 70% of them are outside of the United States. Right from the start, Evernote positioned itself as an international company, and we put much effort into localization. Evernote is being translated into more than 30 languages, and although we have a very agile development process, as well as many types of software clients for various platforms, we still manage to provide translations on time and simultaneously ship new Evernote releases in multiple languages. How do we do that?
The answer is continuous localization. It is a fully automated way of dealing with localization, and it revolutionizes the localization process the same way automatic build integration and automated QA revolutionizes software development.
Here’s how this approach works in our case:
- Our developers work with English resources only and push them to our version control system. All they need to care about is internationalization: making sure that strings are properly externalized into resource files, and that UI properly supports different locales
- Localization system continuously pulls these changes, parses source files, extracts strings and publishes on our translation server
- Our translators, both paid ones and volunteers, work online and provide translations to the newly published strings
- As soon as translations arrive, localization system generates localized resource files and pushes them into version control
This process completely isolates developers from the burden of maintaining multiple locales, merging changes and resolving merge conflicts. It isolates our translators from intricacies of file formats, as they work in a clean and easy-to-use translation environment. Lastly, our localization managers don’t have to do any export/import and other routine tasks, and can focus on helping translators deliver better quality translation, providing them additional context, and reporting internationalization-related issues back to the development team.
Due to this streamlined process, we save much time at each step — we can start translating new strings as early as possible, we can see them in the nightly builds as early as possible, and we can catch related bugs and provide feedback as early as possible. This process fits into the agile development cycle and ensures that localization poses no barrier to company’s growth.
We started working on our localization platform 7 years ago, and have been constantly improving it as the company grew and localization requirements changed. Through these years, the small tool evolved into a powerful and highly configurable system that supports multiple version control systems, more than 20 different file formats, a system which is easy to extend and tailor to specific requirements of each localization project.
We at Evernote are fans of Open Source, and use a good deal of Open Source products and libraries. Now it’s time to give back to the community. During the last half year we’ve been busy preparing our localization system, writing documentation, cleaning up code. And today we’re proud to release it publicly as an open-source product! It’s called Serge, an acronym standing for ‘String Extraction and Resource Generation Engine’.
Check out Serge website, serge.io — it contains download instructions and extensive documentation on the product.
Please let us know what you think of it. We hope Serge will help other developers, big or small, deliver localized products faster, with better quality, and in more languages.