Article Image
Article Image

In every project, the same problem is bound to happen (if you care and do localization - tip: you should do it, even if you plan to release your app just in English, just set it up.): You add an element to storyboard and you want to translate it, but you have a .strings file in that language already and the changes aren’t propagated automatically. If you follow the various “guides” online that tell you to remove and re-add the file you’ll end up with a new file and you’d need to retranslate everything all over. Same with localizable.string: If you run genstrings again you will lose your localization!

I found an even better way. Check the bottom of the post!

If you just have a few elements you can just add them manually (use the other entries to help you).

  • Go to Main.storyboard
  • Select the element to translate (a label for example)
  • Go to the custom class bar (the third one) in the right sidebar
  • Copy the Object-ID in the Document section
  • Switch back to your Main.strings file
  • Paste the id like this:

    “YjH-1m-BVM.text” = “Increase by”;

Note: Make sure to add the .text at the end of the Object-ID, the same thing for other elements (it’s not always .text so be wary), it’s what you would use in code [I guess] to access the text property. You can use the rest of the .strings file previously autogenerated to help you with that.

##A Better Way

I forgot that shipping with OSX there is a great utility called “FileMerge” that compares the differences between two files.

Here’s what to do (works even if you need to edit a lot of entries):

  • Open Xcode and turn on a new localization
  • Generate the .strings file for the localization
  • Drag the strings file for the localization you want to update on the left and the .strings file that Xcode just generated on the right (or vice-versa)
  • On the next screen, you will see both files side by side with all the differences highlighted. Now just copy and paste whatever you want to change.
Blog Logo

Valentino Urbano



Valentino Urbano

iOS Developer, Swift, Writer, Husband

Back to Overview