There is a lot of pressure on software developers to reduce their release cycles, and localization needs to keep pace. Agile development is a standard practice in the software world today, it only makes sense that localization needs to find ways to avoid being a stumbling block. Our ultimate guide to agile localization brings you all its benefits and best practices.
What Is Agile Development?
The rise of mobile apps and SaaS platforms gave software developers the means for updating software, fixing bugs, and adding new features in close to real-time. They actively promoted this new approach, even launching a revolutionary Manifesto for Agile Software Development, which generated widespread expectations in the user base.
The Agile Manifesto defined 12 principles:
- Customer satisfaction by early and continuous delivery of valuable software,
- Welcome changing requirements, even in late development,
- Working software is delivered frequently,
- Close, daily cooperation between business people and developers,
- Projects are built around motivated individuals, who should be trusted,
- Face to Face conversation is the best form of communication,
- Working software is the primary measure of progress,
- Sustainable development, able to maintain a constant pace,
- Continuous attention to technical excellence and good design,
- Simplicity — the art of maximizing the amount of work not done is essential,
- Best architectures, requirements, designs emerge from self-organizing teams,
- The team reflects regularly on how to become more effective and adjust accordingly.
Although partially self-created, this demand for constant improvement led developers to abandon outdated ‘major release’ schedules (traditional waterfalls). Instead, they adopted new processes that mimicked just-in-time manufacturing. Ongoing tasks were broken up into ‘chunks’ that could be changed and released on a much more frequent basis.
This way, feature requests, bug fixes, minor and major improvements could be put into a schedule one by one, tested individually, and released when ready. Since work on such smaller chunks allowed for faster mini releases and quick adjustments to changes in requirements, this method became known as “agile development”.
What Is the Problem With Localization?
Even though localization is key to market expansion and global business development, software development still focuses on the primary language, the development language, the source language. Getting the software translated is still often regarded as an add-on process. Sure, as we will see below, some of the steps required for successful translation do appear to be unrelated to “development proper,” namely translation itself and translation review. And some steps can even appear as bothersome efforts to fix the problems introduced by the translators. Think of localization testing and the code adjustments required in response to the new-found “bugs.”
This is clearly a problem that goes away with a change in perspective. Once every participant understands that “localization is key to expansion,” then it becomes clear that localization must be viewed as an integral part of the software development process.
Other problems have to do with the nature of the beast. Product teams don’t always foresee the impact of a particular feature on localization. And by the time localization teams can give feedback on a feature, parts of development may have already moved on. Such temporal lags are unavoidable to a certain degree. Although, with the right processes and tools, they can be kept at a minimum.
Then, however, there are problems that simply should not exist anymore:
- Developers manually extract source content from code and databases,
- Project managers email files to translators,
- Project managers check in on translation status by phone or email,
- Developers cut and paste strings from a spreadsheet into a source file.
How tedious! The translation workflow must seamlessly integrate into the development process and all such manual tasks that can be automated should be automated. And status can and should be managed and monitored in a centralized system. Accomplish this and you have agile localization.
Agile Localization in Practice
The process we see emerging in many tech companies follows these steps:
Select a proper tool
A localization management tool should give all participants a clear view of their own task and also provide a clear overview of all aspects of localization management, including
- Track related expenses,
- Vendor management,
Phrase is designed to align and connect with agile development processes, uniting all your localization requirements in one management solution:
Preparing for Translation / Internationalization
Internationalization – or i18n if you want to know the industry jargon – is the process of making sure a piece of software can be adapted to different languages and regions.
This requires the use of mechanisms that offer the ability to change content dynamically based on the selected “locale”:
- Text fragments;
- Time and date formatting;
- Currency selection;
- Using different images for different “locales.”
This results in code that is stripped of all localizable elements, allowing you to switch it from one local “skin” to another.
For some programming languages or frameworks, Phrase would be directly involved in the internationalization process. In other cases, you can rest assured that Phrase will seamlessly pick up where third-party internationalization tools leave off.
A manual task that no tool can possibly automate: providing the translators with appropriate context. Resource files contain lists of IDs and strings, but translators need to know about the function of a string. Is it a label on a button (what for?) or a menu item (that leads where?). When string meanings are not completely obvious, it is very helpful when developers insert comments with contextual information.
Extracting Copy for Translation / Locale File Creation
The result of the internationalization process is a set of resource files. These are plain-text files that typically contain key-value pairs mapping identifiers to strings in the development language.
In many cases, the strings contained in the resource files need to be extracted and converted into a format that translators can work with.
Phrase not only takes care of the string extraction and conversion, but it can also monitor the resource files for changes and initiate these steps all on its own.
Submitting to translation
Localization management systems provide vendor management, providing you with the possibility to:
- Work with your own team of translators,
- Use machine translation, or
- Order professional translations from third-party translation vendors.
Strings that were extracted in the previous step are now forwarded to the chosen translation team (or tool). When appropriate, the system can make glossaries and style guides available to translators as well as other reference material.
When the translation process is finished, the work is reviewed for translation accuracy, consistency, and overall correctness. Measuring translation quality is difficult and errors can be the cause for lots of back-and-forth between reviewers and translators. Systems that integrate a review functionality can improve translation quality and accelerate the overall localization process.
Review of certain formal aspects can and should be automated – for example:
- Verifying the number of line breaks in source and target language,
- Ensuring that no numbers were changed,
- Checking that both language strings contain the same HTML tags,
- Verifying string length
Integration of Translation Files
The translated resource files must be transferred back from the translator to the development team for integration with the code. This might require another conversion to the required target file format.
After the translations are integrated into locale-specific resource files, it is important to do another testing and quality assurance run.
Most tools and frameworks have support for in-context preview systems and can facilitate collaborative teamwork between translators and developers.
Publishing / Release
After the translations have been added to the software and tested, your localized software (or your new feature) is ready for release!
Translation projects involve many parties, including but not limited to product managers, developers, translators, revisers, and reviewers.
As the volume of translations, the number of target languages, and the frequency of updates increases, team collaboration functionality becomes vital. After all, the number of people involved in, let’s say a 30-language release, is staggering.
Having a collaboration platform that allows you to oversee resource allocation and monitor feature-wide translation status and progress from the localization side in real-time is a benefit that you will learn to appreciate very quickly.
Phrase provides dashboards with accurate statistics on time spent, number of issues, status per content, status per language, and more.
We designed Phrase to support the need for an agile and continuous approach to localization as described above. Many years ago, we began to develop Phrase to meet an urgent need of our own and have grown it to a genuine translation management system that cannot only manage complex translation and localization projects but integrates them directly into the development workflows you are familiar with.
Years later, Phrase is used by clients across the world to accelerate the overall localization process and to get higher-quality translations at a lower total cost. It automates the translation and localization process, so that your business and developers can focus on continuous product development. Phrase is your reliable solution for scalable localization and partner in tearing down language barriers.