I'm looking for a way of how to provide more localizations for my app after it has been released, without the need that Apple has to approve every little change in my localization files. i.e. my app may first ship only in english, but a week later I may add czech, french and spanish as well.
So generally, what would you suggest? As far as I know, for every language there is a subdirectory in Xcode which contains a special strings plist. But that plist is not going to be stored in documents dir, and the standard implementation would always look only at these files on the private directory that can't be changed, right? Is there any practical / easy way to achieve this flexibility or should I just forget it and hard-code my whole app?
Best Answer
I have an application that downloads localized strings from a server. It creates a DownloadedBundle/[lang].lproj directory in application's cache directory and saves the downloaded Localizable.strings file there. Then it creates a NSBundle using the DownloadedBundle directory as the path, and loads the resources from that bundle.
Some code snippets, omitting the actual downloading part:
Disclaimer: This code is a simplified version of what I actually have and not tested in this form. But hopefully it gives some idea.