I don't think you can bind the strings in any way.
I would recommend do it in code in viewDidLoad
.
Note that string constants aren't so great for texts in UI.
EDIT:
Xibs have their own localization system but I don't think it's very good. It basically means creating a new xib for every language. If you support only one language, just put your strings into the xib and the problem is solved.
NOTE: the following is an idea for my current project and I haven't implemented it yet but I suppose it would let us easily add new language translations.
My idea for a better xib localization is to define IBOutlet for every localizable component (e.g. myButton1, myTextField1) and then write a file with localized strings (xml, properties, plist whatever) where every string is keyed by the IBOutlet name, e.g:
myXib1.myButton1.selected.title = This is a button.
myXib1.myTextField1.placeholder = "This is text field placeholder"
Then, you have to write a method which takes the xib name, finds current language and goes through all string properties for the given xib. It can use [NSObject performSelector:]
to access the IBOutlet getters:
id localizableView = [self performSelector:NSSelectorFromString(@"myButton1")];
and you call this method from viewDidLoad
(or you create a UILocalizedController class which calls it automatically and all your controllers will be its descendant).
Also note there is NSLocalizedString
class which should help you with localization.