Oneiros
Oneiros

Reputation: 4378

Xcode: Run project with specified localization


My Cocoa project is localized in Italian (my language) and English language.
If I run it, i see everything in Italian (of course, my OS is italian!).
How can I run it to test the English localization without changing the OS language?

Upvotes: 20

Views: 5427

Answers (2)

sidyll
sidyll

Reputation: 59277

In the old times, Leopard and before, the get info window in Finder would let you choose the available languages. So it was a matter of deselecting the language that you don't want to use and it would "default" to the other.

These days you can use an utility like this one. I'd love to know what it does behind the scenes though.


I finally found a nice solution in the cocoa-dev mailing list archives. Apparently, you can change the default domain within the arguments passed to your executable, and this causes the global preference to be overwritten. It can be achieved with the -AppleLanguages flag, pass a list of the languages in the preferred order:

~/apath/AppName.app/Contents/MacOS/AppName -AppleLanguages "(Italian, English)"

Run this from your terminal and it should give a different precedence for the language. Notice you can also specify a single element list "(Italian)" —makes more sense for testing purposes.

To do it within Xcode and avoid the terminal, go to the menu Product > Edit Scheme… . Then, in your run configuration switch to the Arguments tab and create a new one to be passed on launch. Add -AppleLanguages "(Japanese)" text to it. Something similar to this:

Xcode Screen Shot

Upvotes: 36

Jeremy
Jeremy

Reputation: 9020

Assuming you have a file that holds all the strings, swap the names of the files. Or, if you've got a it.lproj and en.lproj group in your project, just move your InfoPlist.strings (or whatever you named it) into the other group and vice versa.

Upvotes: 0

Related Questions