# Easy localization management with Google spreadsheets

DevFeed: [Easy localization management with Google spreadsheets](<https://devfeed.tech/articles/easy-localization-management-with-google-spreadsheets-21616.md>)

Original publisher: [Read original article](<http://miqu.me/blog/2016/11/19/easy-localizations-management-with-spreadsheets/>)

Author: Miguel Angel Quiñones

Published: 2016-11-19T16:50:18Z

Content type: article

Language: en

Sources: [Miguel Quinones](<https://devfeed.tech/sources/miguel-quinones.md>)

Topics: [Localization (l10n)](<https://devfeed.tech/topics/localization.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Google](<https://devfeed.tech/topics/google.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Database](<https://devfeed.tech/topics/database.md>), [API](<https://devfeed.tech/topics/api.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Web](<https://devfeed.tech/topics/web.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [automation](<https://devfeed.tech/tags/automation.md>), [ci](<https://devfeed.tech/tags/ci.md>), [database](<https://devfeed.tech/tags/database.md>), [google](<https://devfeed.tech/tags/google.md>), [json](<https://devfeed.tech/tags/json.md>), [swift](<https://devfeed.tech/tags/swift.md>), [web](<https://devfeed.tech/tags/web.md>)

## AI overview

This article explains how to manage application localizations with Google spreadsheets, a local or CI script, and Swift. The workflow uses spreadsheet data to generate localized string files while improving collaboration with translators.

## Source excerpt

Last thursday I gave a talk at NSLondon meetup called 'Minimum Viable Tooling'. The topic was examples of approaching tooling and automation for small teams. I showed real examples of what we do at Peak, where I currently work. One of the things people showed interest in after the talk was how we deal with localizations. In this post I will replicate the simple solution from scratch, so you can follow along and get started with your own projects. And we will be using Swift for the scripting, just because we can! The minimal CMS In the talk I showed what we currently use to automate generation of strings at Peak. The goal of the solution is twofold: The first is to remove manual manipulation of local strings files by developers. The second is to raise visibility of any translation across the company and enable easier collaboration with translators. This is generally achieved by using a CMS, either a built solution or your own. We'll build our own by leveraging Google spreadsheets as a database and web interface. So we'll need two simple parts: One one side, the strings are hosted in a Google spreasheet. Then on the other side, we'll run a script locally or on our CI every time we want to update strings in the application. The script will load the spreasheet contents, and generate the appropiate .strings file contents. The spreadsheet I've created an example spreadsheet here. It contains rows with keys, and columns with the supported language keys in your app: Here you can take two approaches for your script; you can either use any Google spreadsheet library for a popular scripting language like Ruby or Python, or you can leverage yet another service on top of spreasheets: Sheetsu. Using the service means you don't need any library because it converts the content to a JSON API that can be easily parsed with traditional code. We'll use this as it's the simplest solution. Note that we would need to pay to have more flexibility as the free plan only allows one spreadshee