While localizing the Localizable.strings file of Be Tv I encountered a rather curious (mis)behaviour. I used the NSLocalizedString macro wherever I needed to get my localized text and used the genstring command to generate the Localizable.strings file. I made a dutch and french localization of this file and everything was working in the iPhone simulator. Nonetheless when deployed to my test device, the localization was not working. Localized nib files were though.
After fiddling with some Xcode settings, I gave up and resorted to Googling. Luckily I found this blog post, describing the exact same problem, giving an explanation why & providing a solution. Turns out the localized Localizable.strings file has the wrong encoding, UTF-8 instead of UTF-16. Change the encoding, do a clean rebuild and your localization is up & running.
To change the file’s encoding to UTF-16 from UTF-8, use ‘View’ –> ‘Text’ –> ‘File Encoding’ in XCode menu.
Credits go to Cagan Senturk.