Carsten
Carsten

Reputation: 1059

Localizable string in Foundation.framework not found

I'm getting this log warning while using my app and I'm not sure how to deal with this message:

2014-10-21 12:57:54.472 App[7067:2540152] Localizable string "(A Document Being Saved By %@)" not found in strings table "Document" of bundle CFBundle 0x12e508f60 (not loaded).

It seems, the localization file within the framework is missing, which would be really weird. Re-adding the framework didn't help.

Any hints apprechiated.

Upvotes: 24

Views: 7067

Answers (6)

Alexei Mikhailov
Alexei Mikhailov

Reputation: 91

Looked all over StackOverflow looking for a solution.

And found a mistake.

I just duplicated the localization, for example:

let str = "String".localized

After that, as well:

str.localized

And after that I claim

[strings] ERROR: String not found in table Localizable of bundle CFBundle 0x14bd01fc0

Upvotes: 0

LukeSideWalker
LukeSideWalker

Reputation: 7910

Another common mistake is the forgotten ";" at the end of any line in the file, that holds your Localizable.strings. This can easily happen after massive copy and paste. Unfortunately it is not easy to locate, because the compiler does not complain with a line number or any other helpful hint. This can be very painful and tedious, when you have big localizable tables.

The result of that mistake will be, that some translations are found, others not and its hard to find the reason.

My solution to make sure, all keys are proper defined (with the ";" at the end of the line):

  1. Open your file "Localizable.strings" in Xcode
  2. Delete the lower half of the table (for a start)
  3. Press COMMAND + B (build)

If you don't get an error, the problem must be in the deleted lower half. Paste it back, delete now only the lower 25 % and repeat build. Repeat the process until you can better locate the problem.

Upvotes: 0

thibaut noah
thibaut noah

Reputation: 1514

From what i found in my recent project, this error occured when you have the english language (just english with no region) defined in your device. Since one or more framework will fail to find translation strings you will have this error in your console log. Hope that helps

Upvotes: 2

Olof Hedman
Olof Hedman

Reputation: 613

I just had this problem too.

Since turning off the warning seems like a bad idea (Feels like high risk translations will not work as intended), I tracked down what actually caused the problem.

In my case, the problem was an empty string in the Localizable.strings file. (I used a non-standard way to generate it, the default genstrings tool will not add them)

That is, in one place I had this line:

/* No comment provided by engineer. */
"" = "";

If I removed it, the warning disappeared! Seems like there is some problem in the string table implementation if you add empty strings, that makes all string tables mess up, not only the one where the problem is...

Maybe someone will find this information useful, so I leave it here.

Upvotes: 4

PaulB
PaulB

Reputation: 982

I'm getting the same message. In my case it looks like both TestFlight and Crashlytics are generating them;

[TestFlight takeOff:@"xxxxxxxxxxx"]; // Generates 2 messages 
[Crashlytics startWithAPIKey:@"xxxxxxxxxxx"]; // Generates 1 message

Not causing us any trouble, so leaving them alone for now.

Update

Ok, got to the bottom of it. If you've been doing localization, chances are you probably enabled 'Localization Debugging' in your scheme (Product > Scheme > Edit Scheme in Xcode). If you're wondering why you're getting these messages from the various libraries, it's probably because you still have it enabled.

Imgur

Upvotes: 32

Bradley Thomas
Bradley Thomas

Reputation: 4097

If you don't specify "Document" then it will look in the file Localizable.strings. Otherwise make sure you have the file Document.strings in your project. Also, "(A Document Being Saved By %@)" looks pretty weird to me. You might want to check this is really what you want as a key for a localizable string.

Here is a link that may help you understand the process

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html

Upvotes: 2

Related Questions