Force genstrings to build the Localizable.strings file in order of appearance rather than alphabetically

2.7k Views Asked by At

I'm new to internationalization and localization for iOS. I'm running genstrings: find . -name \*.m | xargs genstrings -o en.lproj to generate my Localizable.strings files. It builds the file in alphabetical order (by key).

For ease of translation I'd prefer that the keys and values be ordered by their order of appearance in the .m files. Is this possible with genstrings? I couldn't find the relevant info on its man page.

2

There are 2 best solutions below

2
On BEST ANSWER

It is not possible to change the behavior of genstrings other than what it is allowed within the parameters specified in the manual:

https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/genstrings.1.html

but if you want to ease the translation you can use Linguan

http://www.cocoanetics.com/apps/linguan/

If you want to stick to genstrings and are having some trouble with it you can try this page, it offers a good explanation:

http://spritebandits.wordpress.com/2012/01/25/ios-iphone-app-localization-genstrings-tips/

But yeah returning to the main question, it is not possible in my knowledge.

1
On

You could do something like:

find . -name '*.m' -print | xargs -n1 genstrings -a

I'm sure there are more elegant ways. Perhaps just use ls *.m instead of the find. The strings are kept together by file with -a switch but they are still sorted within each file.