Using GitHub for app localization

For my company conichi local market is German hence since the beginning we have our app localized into two languages: English and German. In my personal opinion, we’ve passed all usual steps that happen when it comes to mobile app localization.

We started with manual localization by a developer, which worked in the beginning but then became a mess. The next level for us was to delegate this responsibility to the special person. Unfortunately, it didn’t solve the problem of translation mis-synchronization. Then I made a proposal to try the GitHub to store our strings files, which worked better and I’d like to explain the process in details.

Using GitHub for app localization

The idea came to my mind not so long after I’ve read an article about pros and cons of using Github for design files. I found that article really interesting and started thinking about other problems that can be solved by version control system. Since we had a big problem in our app localization process, I thought why not to store localization files on Github, because it could improve the problem of uploading files somewhere, notifying the responsible person or team and it could potentially be automated which was a target for me.

Here I should clarify that I’ve heard about lots of services that potentially solve our problem, but either I didn’t do a proper research or I haven’t found anything that doesn’t bring third party translators into the process and remains simple to use for both — developers and translators (the links in comments are welcome, maybe we developed another wheel =) ).

So we started with the two separate reports for iOS and Android. Each repo contains the strings in case of iOS files. And the following diagram can show our flow:

These four steps look not that bad to follow, but after a while, we realized that this is only an ideal case, which is rare actually. Usually, our flow looks like this:

I’m not sure about you, but my reaction on all of this above was:

ut every time I see something that drives me crazy, in my mind starts working Mr. Automatization. I started thinking about replacing all developer’s steps from manual to automated. After a while, I released a solution called Nabokov, which refers to one of the greatest book translators in Russia. It brought the process into initial diagram without any caveats and edge cases that actually not edge.

It has multiple input lines because Nabokov uses the pre-commit hook to synchronize remote with project files. It means that each time developer commits something that contains the localization changes, Nabokov runs synchronization. All merge conflicts went off as well as the context switching because all you need is to manually run one command to synchronize project files with remote. As long as you use the terminal to work with git, this is completely same context, if you use any other app, you can run this action from time to time, that I hope doesn’t bother you much =).

Conclusion

As I said maybe I’ve invented another wheel and in that case, I will appreciate any links to the services with similar or better approach to localize the mobile application. At least this was my first real word ruby experience which is definitely improved my skills.