1

My problem is that I have storyboard which support multiple languages (6). Since app was created before iOS6 I have 6 versions of storyboard. Now UI has been redesign a bit (mostly order of views has been changed) and I did changes only in English version.

Now how to propagate those changes to other languages with minimum effort?
I've noticed that since iOS6 and XCode 4.5 I can get rid of multiple storyboards and just provide translated strings for other languages. I've found this answer and this tutorial, but this refers only to new projects nothing about how to do this for old big projects.

Community
  • 1
  • 1
Marek R
  • 32,568
  • 6
  • 55
  • 140

1 Answers1

1

Ok I've got it!

  1. Enable "Use Base internationalization" for you project (just like in this answer). XCode will ask to select base language (probably you will select English).

  2. Select root storyboard (the root version which contains versions for all languges) in project navigator.
    Root storyboard

  3. Then in "view/Utilities/File inspector":
    enter image description here
    For each language change option from "Interface Builder Cocoa Touch Storyboard" to "Localizable Strings":
    enter image description here
    XCode will ask to confirm conversion.

  4. Before test UNINSTALL APPLICATION FROM DEVICE. Simple run from XCode will not remove old storyboard files from device and you can experience some strange problems (since I did some changes in UI I've experienced some unhandled exceptions).

  5. Verify that everything works and everything is translated properly. Add missing translation if necessary.

This procedure did work for me, with this big hiccup described in step NR 4.

Community
  • 1
  • 1
Marek R
  • 32,568
  • 6
  • 55
  • 140