Steve - did you ever figure out a way to make this work?
I too want to an app to be sensitive to en_US and en_GB to ensure I spell "metres" as "meters" for our friends over the pond. Although I can set the locale via Settings on the iphone, it seems to ignore it when picking a Localizable.strings file to use.
My app has an
English,
en_US and
en_GB version of Localizable.strings, and I load the strings like this
NSString strFoo=[[NSBundle mainBundle] localizedStringForKey:(@"foo") value:@"" table:nil];
I can successfully pick up the language and locale with this
CFLocaleRef userLocaleRef = CFLocaleCopyCurrent();
CFStringRef str=CFLocaleGetIdentifier(userLocaleRef);
str contains
en_US when the phone is set to English/United States and
en_GB when set to English/United Kingdom. However, my
en_GB strings are not used.
Has anyone got this sort of thing working? At the moment, seems the only alternative would be for me to override the built in stuff and first attempt to load a localized string from another table based on the current locale, e.g. attempt to load from
en_GB.strings, and if that failed, allow the default behaviour....
So it seems the only way to do this is to roll your own localization code instead: