Ios – Can’t retrieve localized strings from Localizable.strings file

ioslocalizable.stringslocalizationobjective cswift

I'm unable to get the correct localized german strings from the Localizable.strings file. My app setup looks like this

  • Main.storyboard

    • Main.storyboard (Base)
    • Main.strings (German) -> these strings are translated correctly
  • Localizable.strings

    • Localizable.strings (English)
    • Localizable.strings (German) -> can't get these strings

Inside the app I'm trying to get the string like this

NSString *item = NSLocalizedString(@"Group expenses", @"Menu item");

The Localizable.strings (German) file looks like this

/* Menu item */
"Group expenses" = "Gruppenausgaben";

When I set a breakpoint after item I always get the English string back, however the path for the resource seems correct NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"];
gives me: /data/Containers/Bundle/Application/5E3ED6BF-71E1-4C60-9EDA-610C9A32B8EF/MyApp.app/de.lproj

I also have localized the string file

enter image description here

enter image description here

It's also included in Copy Bundle Resources

enter image description here

I tried several answers from different questions here on stackoverflow, like deleting app and do a clean (shift+cmd+k), setting application language under
Edit Scheme
, …

Best Answer

Ok, I think I know the reason for your bug. Parse had an issue with adding Localizable.strings as documented here. This was fixed in 1.8.1 version of their framework:

V1.8.1 — AUGUST 19, 2015

...

Fixed: Overwritten localizations when used via CocoaPods and integrating as static library.

...

You can also check this question.

So, just make sure you use the latest version of the framework and all should work :)

Related Topic