Слишком все у вас как-то запутано. Нужно вначале систематизировать что для чего нужно.
1. Локализация информации о программе.
Информация о приложении (название, коипрайт) содержится в файле Info.plist. Переведенные строки хранятся в файле InfoPlist.strings отдельно для каждого языка.
2. Локализация строк из кода.
Для локализации текста из кода (например, сообщений об ошибках) используется конструкция вида NSLocalizedStrings(@«key», @«comment») или CFCopyLocalizedString(«key», «comment»). NSLocalizedString ищет переводы в Localizable.strings, который создается и добавляется вручную. Ключи из кода достаются утилитой genstrings(1). Для добавления перевода достаточно добавить «key» = «перевод»; в Localizable.strings для нужного языка.
3. Локализация XIB/storyboard
В Xcode4 это работало так (для меня по крайней мере): для кажого языка была своя версия файла. Цикл перевода включал в себя доставание строк из xib/storyboard в стандартный .strings файл используя утилиту ibtool, перевод строк, генерацию локализованой версии xib (например ru.lproj/MainMenu.xib) с помощью того же ibtool.
Xcode5 теперь позволяет убрать последний шаг, можно сразу создать ru.lproj/MainMenu.strings, где будут переводы строк из en.lproj/MainMenu.xib. Компоновка базового xib-а и переводов будет происходить во время выполнения.
То есть если текст кнопки устанавливатеся в коде вручную с помощью NSLocalizedString, то «Back» = «Назад»; нужно писать в Localizable.strings. Если же это часть xib'а, то в русскую версию Main.strings добавляется «fqu-r0-dDY.title» = «Назад»;
Поддерживать все это дело вручную даже на небольшом проекте та еще головная боль. Я когда-то использовал
iLingual, но она не верх удобства и уже немного устарела. В результате написал
свою тулзовину (disclaimer: она коммерческая, но если перевод всего на один язык, то регистрация не требуется)