When I assign text programmatically, I can use NSLocalizedString(....), but if I am writing the text directly in IB (say to a UILabel) how do I localize it?
from iOS 7 & Xcode 5 on, you should avoid using NSLocalizedString where possible. The preferred method is called 'base localisation', and works through the Storyboard. It will save you a lot of work. If you google for 'base localisation' you'll find enough tutorials to get you going