Revolut Yaroslav T

Revolut's Evolution of Translations Management for Android

Original post Evolution of Translations Management for Android

Article Summary

Yaroslav T from Revolut reveals how managing translations for 6 apps across 330 modules and 33 languages evolved from a simple library to a custom Gradle plugin. The journey took 7 years and countless iterations.

Revolut's Android team needed to scale their translation workflow as they grew from a single app to a multi-app, multi-module architecture. They partnered with Lokalise for translations but had to completely rethink their engineering approach multiple times to handle the complexity.

Key Takeaways

Critical Insight

A custom Gradle plugin with conventional configuration replaced fragile Bash scripts, enabling each of 330+ modules to manage translations independently while preventing conflicts and breaking changes.

Continue reading

What This Article Covers

Problem

Revolut's codebase spans over 1 million lines of code across 330 modules. Managing translations required flexibility, but their Yaml, Bash, and Kotlin setup was fragile and hard to test. The system also couldn't download translations in parallel.

Solution

Yaroslav T's team wrote a custom Gradle plugin in Kotlin. It removed the need for Yaml configs and Bash scripts. Instead, each module could declare its translation needs directly in Gradle configuration blocks.

Impact

The plugin made it possible to run unit and integration tests in CI. It eliminated six separate Bash scripts that had to be maintained. Translation downloads across all 330+ modules now run in parallel without duplicating configuration.

The article reveals three critical rules they implemented to prevent translations from breaking production releases across multiple app versions.

This page summarizes “Evolution of Translations Management for Android” by Revolut, published Dec 5, 2023. All credit for the original work goes to the authors.

Read the original on medium.com (opens in new tab)

AI tools for Android

Browse all AI tools →