Keep entries with the same keys in sync


I’m managing translations for an app that is developed natively on iOS and android.
I’ve clean up the code on both side to have the same strings with the same keys everywhere.

Then, I imported the strings.xml from android and the localizable.strings from iOS into the same project, and it Localazy did manage to mach the strings and translations on import — which was awesome.

The problem now is that I have all the keys and string duplicated, one from strings.xml and one from localizable.strings, in the translation interface, and if I change the translation to one key, it does not seem to update the copy from the other file. There is thus a big risk for the translations to diverge in the near future…

I would really like a feature that enforce entries with the same key to always be in sync across all files in the project!


as you invested time to make all the keys the same across your projects, wouldn’t it be better to only upload strings from one platform and use the format conversions to generate the file for the second platform?

E.g., you only upload your Android’s strings.xml and manage it with Localazy. The localizable.strings file can be generated using the format conversions feature.

It’s the most common use case for our format conversions.

I didn’t think about doing it that way. I could give it a try - would you have some write-up around about such a workflow ? I guess I’m not alone with this use case.

I do foresee an issue in that it makes it more difficult for the iOS developers to introduce changes if they have to go through the android xml.

There is a detailed article on this topic: How to convert Android XML to iOS .strings using Localazy

Of course, it’s necessary to introduce a viable workflow for both platforms. E.g., define that strings are only added on one of them. It’s better to have such a workflow than deal with duplicates.

Alternatively, I can imagine a completely different workflow:

  1. Having JSON file on Github where keys are added by developers
  2. On merge to master/main, the file is uploaded to Localazy using Github Actions (we have a Github action available)
  3. Using format conversions, the source file is converted to strings.xml and localizable.strings (or .stringsdict - we support plurals in JSON as well)

This way, you have a simple and readable definition of the source language strings and you can convert it to other formats as necessary.