As a team of product design and software development company, we're constantly on the lookout for ways to improve workflow efficiency and streamline processes. One significant challenge in mobile app development is localization—translating app content into multiple languages. Initially, we relied on an open-source tool that integrated Google Sheets for managing translations. However, when this tool encountered persistent authentication issues, it became unusable, disrupting our development process. Curious how we navigated the challenge? Dive in to find out!
In this article we will cover the following topics:
- Vision and Ideation
- Building the Foundation
- Expanding the Tool’s Capabilities
- Lingua’s Impact
- Real-World Usage Examples
- Vision for the Future
Recognizing the gap in the market, we decided to seize the opportunity and thought, "Why don't we build our own solution?" With this spark of an idea, we channeled our innovative spirit and deep technical expertise to develop Lingua. Lingua is a powerful, comprehensive tool specifically designed to simplify and enhance the localization process for both iOS and Android platforms.
This is just one example of how we turn challenges into cutting-edge solutions, demonstrating our commitment to excellence and our ability to deliver outstanding results.
Vision and Ideation
Our vision for Lingua was clear from the outset: create a robust, user-friendly tool that could handle the complexities of localization while integrating seamlessly into existing workflows. We aimed to design a solution that would not only address the shortcomings of the Google Sheets tool that we have been using before but also introduce new features that would make the localization process more intuitive and efficient.
Analyzing the Needs
Before diving into development, we conducted a thorough analysis of Google Sheets, identifying its strengths and areas for improvement. One of the key advantages was its simplicity and accessibility. However, there were significant limitations, such as the lack of support for plural forms, multiple languages, and different string format specifiers. We envisioned a tool that would be able to get around these restrictions while maintaining Google Sheets' user-friendliness.
Building the Foundation
Determined to create a robust solution, we retained the use of Google Sheets but significantly enhanced its functionality. We restructured the sheet to support plurals, multiple languages, and various string format specifiers. With these improvements in mind, we began building the core of Lingua using Swift, adhering to Clean Architecture principles to ensure maintainability and scalability. Every component was meticulously unit-tested to guarantee reliability and robustness.
Expanding the Tool’s Capabilities
The first version of Lingua was a terminal app for macOS, capable of generating .strings .strings and .stringsdict files for iOS and .xml files for Android. This initial release marked a significant milestone, but we didn’t stop there.
Recognizing the need for a more user-friendly interface, we developed a macOS application. This app allows users to manage their localization projects with a single click, streamlining the process even further. Additionally, we extended support to include a terminal app for Linux, catering to a broader range of developers.
Lingua’s Impact
Lingua offers numerous benefits that make it an indispensable tool for developers:
- Unified Translation System: Supports both iOS and Android platforms, providing a cohesive solution for cross-platform development.
- Seamless Integration: Automatically imports translations into project workflows, reducing manual intervention and errors.
- Error Minimization: Reduces the risk of typos in localization usage, ensuring consistency across all translations.
- Productivity Boost: Enhances productivity through intelligent auto-completion and semantic clarity, allowing developers to focus on core development tasks.
- Error Prevention: Safeguards against referencing non-existent translations, ensuring that every localization is accurate and functional.
Real-World Usage Examples
1. macOS Terminal App
For developers who prefer using the terminal, Lingua offers a straightforward and scriptable solution. Here's how you can use it:
Installation via Homebrew:
$ brew tap poviolabs/lingua
$ brew install lingua
Creating a Configuration File: Create a configuration file named lingua_config.json with your Google API key, sheet ID, and desired output directory manually or by running the command lingua config init.
Running the tool:
Execute the tool to generate localization files for iOS and Android.
$ lingua ios /path/to/lingua_config.json
$ lingua android /path/to/lingua_config.json
2. Linux Terminal App
Lingua also supports Linux, providing a flexible solution for cross-platform developers. Here’s how to get started:
Downloading the Latest Release:
Download the appropriate binary from GitHub based on your machine's architecture (e.g., Lingua_Linux_x86_64 or Lingua_Linux_arm64).
Making the Binary Executable:
$ chmod +x /path/to/Lingua_Linux_x86_64
$ mv Lingua_Linux lingua
$ sudo mv /path/to/lingua /usr/local/bin
Using the Tool:
Similar to the macOS terminal app, create a configuration file and run the tool.
$ lingua ios /path/to/lingua_config.json
$ lingua android /path/to/lingua_config.json
3. macOS Tool
For a more user-friendly experience, the Lingua macOS app is available on the App Store. This app provides a graphical interface for managing your localization projects.
Downloading the App:
Install the Lingua macOS app from the App Store.
https://apps.apple.com/us/app/lingua-tool/id6463116155
Download and try it out!
Configuring the App:
Use the settings panel within the app to configure your Google API key, sheet ID, and output directories.
Initiating Translations:
With the app’s intuitive interface, initiate the translation process with a single click or a shortcut, without needing to use terminal commands.
Vision for the Future
A desire to address the issues that mobile application developers are currently facing was the driving force behind the creation of Lingua. Moving forward, our vision is to continue enhancing Lingua, incorporating feedback from the developer community to introduce new features and improvements. By fostering an open dialogue with users, we aim to ensure that Lingua evolves to meet the ever-changing needs of the development landscape.
The need to overcome existing restrictions and improve the localization process served as the driving force behind the creation of Lingua. Today, Lingua stands as a testament to innovation, streamlining workflows and empowering developers to focus on what they do best—building exceptional applications. The tool not only simplifies the localization process but also sets a new standard for efficiency and reliability.
Moreover, we believe in giving back to the community. That’s why Lingua is open source. We invite you to check it out and contribute to its ongoing development. Your support helps us continue to innovate and share tools that benefit the wider developer community. Don’t forget to hit the star on GitHub to show your support!