DEV Community

Ward van Teijlingen
Ward van Teijlingen

Posted on

Using Google Sheets to localize your app

If you're building a mobile app, chances are that you need to manage translations for multiple languages. There are many paid platforms that you can use to do this, but in this post I want to show you a free open source alternative: Localeasy.

With Localeasy you can use Google Sheets to store and manage your app translations. This has many benefits such as easy user management, change tracking, comments, no limits on contributors, and best of all: it's free of charge!

In this post I will show you how you to integrate Localeasy with your project. For this example we will use two languages: English and Dutch.

Creating a Google sheet

The first step is to create a new Google Sheet which will contain all translations in all the languages that you support. So let's hop over to sheets.google.com and create a new spreadsheet. I won't go into the details of how to create the sheet, but it should look something like this:

key en nl comment
welcome_title Hello world! Hallo wereld! copy for welcome screen
welcome_button Continue Volgende copy for button on welcome screen
  • The key column will hold the key of the translation.
  • The en and nl columns will hold the English and Dutch translations respectively.
  • The comment column can be used to add an optional comment to the row.

Make sure you create a public sharing link for the sheet, so that Localeasy can access it. (If you don't want to do this, you can also use OAuth to give access to specific users, but it requires a bit more setup)

Installing the Localeasy CLI

Use homebrew to install the Localeasy CLI.

> brew install wvteijlingen/tap/localeasy
Enter fullscreen mode Exit fullscreen mode

Integrating Localeasy with your codebase

One the CLI is installed, navigate to your project directory and run localeasy init to create a project configuration json file.

> cd ~/my-project
> localeasy init
Enter fullscreen mode Exit fullscreen mode

This command creates a localeasy.json configuration file in your project directory. This file contains two keys that need to be configured:

  • sheet: The URL of the Google Sheet that contains the translations. Copy and paste the URL of your sheet from your browser into this property.
  • locales: An object containing all languages that you want to support. Every key under locales must match a column in your Google Sheet. Every value is an output path for the translations in that language.

In our example with two languages, the configuration file would look like this:

{
  "sheet": "https://docs.google.com/spreadsheets/d/123/edit#gid=456",
  "locales": {
    // For iOS
    "en": "Supporting Files/Shared/en.lproj/Localizable.strings",
    "nl": "Supporting Files/Shared/nl.lproj/Localizable.strings"

    // For Android
    "en": "app/src/main/res/values/strings.xml",
    "nl": "app/src/main/res/values-nl/strings.xml"
  }
}
Enter fullscreen mode Exit fullscreen mode

Pulling translations

Now that the sheet and the localeasy.json file are set up, we can download the translations. To do this you can use the localeasy pull command. Make sure you run this in the directory that contains the localeasy.json file.

> cd ~/my-project
> localeasy pull
Enter fullscreen mode Exit fullscreen mode

That's it!

The process of managing your translations is now much easier. Just make a change to the Google sheet, run localeasy pull in your local working copy, and Localeasy will take care of the rest!

Top comments (0)