Re: Base.lproj vs en.lproj?
Re: Base.lproj vs en.lproj?
- Subject: Re: Base.lproj vs en.lproj?
- From: Charles Srstka <email@hidden>
- Date: Thu, 12 Mar 2015 16:51:11 -0500
On Mar 12, 2015, at 3:51 PM, Karl Moskowski <email@hidden> wrote:
>
> If “Use Base Internationalization” is checked in a project’s info tab, and the resources—.xib files and Localizable.strings—are all in English, are the .strings files in en.lproj/ required? The strings in en.lproj/ are verbatim copies of those in Base.lproj/. (We have two app projects; one for OS X and one for iOS.)
>
> Can I safely delete English from the project’s localizations? Will the app display English strings from Base.lproj when run on a system whose language is not one of the other .lproj values?
>
> I’ve searched a bit for this, and have been unable to find a clear answer. I’ve given it a try, and it seems to work, but I’d like to be sure.
>
> Thanks in advance.
Here’s what I’ve found, in my anecdotal experience:
1. XIB files in Base.lproj will load all their English strings when the app is run in English, even if there is no corresponding strings file in en.lproj. This makes sense, because the XIB file is being used as a starting point, and if there’s no custom localization, might as well just stick with what’s in the XIB that you already loaded.
2. Strings files in Base.lproj will load when run in English if there’s nothing in en.lproj… but only on Mavericks and higher. If you are targeting Mountain Lion, be warned that if there is no Localizable.strings file in en.lproj, the app will randomly pick one from one of the other lprojs. There doesn’t seem to be any rhyme or reason to what language it picked, although in my testing it seems to like Simplified Chinese a lot. Having part of the interface randomly show up in another language can have pretty hilarious results for your end users; I got some pretty amusing reports from my beta testers about this issue. Thank God that got caught before it went to release.
Anyway, long story short, I don’t recommend putting strings files in Base.lproj. Even the 10.9+ behavior I couldn’t find any promise of anywhere in the documentation, so who knows if even that might regress in 10.11 or something.
Charles
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden