Я не думаю, что вы можете связать строки каким-либо образом.
Я бы порекомендовал сделать это в коде viewDidLoad
.
Обратите внимание, что строковые константы не так хорошидля текстов в пользовательском интерфейсе.
РЕДАКТИРОВАТЬ:
Xibs имеют свою собственную систему локализации, но я не думаю, что это очень хорошо.Это в основном означает создание нового xib для каждого языка.Если вы поддерживаете только один язык, просто поместите свои строки в xib, и проблема будет решена.
ПРИМЕЧАНИЕ: ниже приводится идея для моего текущего проекта, и я еще не реализовал ее, но я полагаю, что это будетдавайте легко добавим новые языковые переводы.
Моя идея для лучшей локализации xib состоит в том, чтобы определить IBOutlet для каждого локализуемого компонента (например, myButton1, myTextField1), а затем написать файл с локализованными строками (xml, properties, plist и т. д.).) где каждая строка вводится с помощью имени IBOutlet, например:
myXib1.myButton1.selected.title = This is a button.
myXib1.myTextField1.placeholder = "This is text field placeholder"
Затем необходимо написать метод, который принимает имя xib, находит текущий язык и просматривает все свойства строки для данного xib.Он может использовать [NSObject performSelector:]
для доступа к получателям IBOutlet:
id localizableView = [self performSelector:NSSelectorFromString(@"myButton1")];
, и вы вызываете этот метод из viewDidLoad
(или вы создаете класс UILocalizedController, который вызывает его автоматически, и все вашиконтроллеры будут его потомком).
Также обратите внимание, что существует класс NSLocalizedString
, который должен помочь вам с локализацией.