问题
(There are similar questions. Some resulted in answers that I've tried and found not to work. Others got no answers, I assume because the querents didn't supply as much detail as I'm about to.)
I started with a storyboard that worked well for my app; the strings it contains are in English. I wanted to add a French localization. I did this:
- Added a base localization, which transferred
MainStoryboard.storyboardfromen.lprojtoBase.lproj. - Added a French localization, which cloned 
InfoPlist.strings(English) andMainStoryboard.storyboard(Base) intofr.lproj. - Changed a couple of strings (titles of segments in a
UISegmentedControl) in the FrenchMainStoryboard.storyboard. - In the Simulator, set the language to French.
 - Ran the app from Xcode.
 
Result: This worked; my changed strings showed up in the running application.
But I want to be all fancy. I want to do the French localization using a .strings file. (It's not just a matter of being fancy; the French localization will be turned over to nontechnical translators, who can't be expected to master Interface Builder.) So:
- Selected the base 
MainStoryboard.storyboardin the Xcode Project navigator. - In the File inspector, under Localization, changed the French localization from "Interface Builder Cocoa Touch Storyboard" to "Localizable Strings."
 - Accepted Xcode's warning that the French storyboard will be discarded
in favor of a 
.stringsfile, which appears in the Assistant editor. - Made the same two edits; there's no question of their being the wrong
strings, because they're all commented as
IBUISegmentedControl...segmentTitles; and the label text doesn't appear anywhere else in the.stringsfile. - Deleted the existing (working) copy of the app from the simulator.
 - Ran the app.
 
Result: The view uses the base (originally English) localization, instead of loading the French strings.
This isn't satisfactory. I've tried deleting the app from the simulator, and even deleting the derived-data folder. The bug persists.
As I said, I can't turn a .storyboard file over to a nontechnical translator. How can I get iOS to accept the storyboard localizations from a .strings file?
回答1:
I had the same problem with my UISegmentedControls. It turns out that there is a bug in iOS 6: .strings storyboard localization won't work on UISegmentedControl text and on UISearchBar placeholders.
See this openradar: http://openradar.appspot.com/radar?id=2159402
Have you tried localizing other elements such as UILabels? That should work.
回答2:
Here is how I solved it:
in viewDidLoad:
[self.segmentedControl setTitle:NSLocalizedString(@"Title", @"Your localize comment") forSegmentAtIndex:0];
You can do the same for the search placeholder:
[self.searchBar setPlaceholder:NSLocalizedString(@"Your string placeholder", @"Your comment for localizers")];
Then just create a Localizable.strings file and it will work.
回答3:
For people developing for iOS 7 or higher and searching for the .strings format for a search bar, this is how you should translate the placeholder field for example:
/* Class = "UISearchBar"; normalTitle = "Search for Places"; ObjectID = "F3d-Ir-fni"; */
"F3d-Ir-fni.placeholder" = "Nach Orten suchen";
    来源:https://stackoverflow.com/questions/15075165/storyboard-base-localization-strings-file-does-not-localize-at-runtime