Локализованная строка в Foundation.framework не найдена
Я получаю это предупреждение журнала при использовании моего приложения и не уверен, как справиться с этим сообщением:
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 </System/Library/Frameworks/Foundation.framework> (not loaded).
Кажется, файл локализации в рамках отсутствует, что было бы действительно странно. Повторное добавление фреймворка не помогло.
Любые намеки, связанные с ними.
Ответы
Ответ 1
Я получаю то же сообщение. В моем случае это похоже, что и TestFlight, и Crashlytics генерируют их;
[TestFlight takeOff:@"xxxxxxxxxxx"]; // Generates 2 messages
[Crashlytics startWithAPIKey:@"xxxxxxxxxxx"]; // Generates 1 message
Не причиняйте нам никаких проблем, поэтому оставим их в покое.
Update
Хорошо, добрался до конца. Если вы делаете локализацию, скорее всего, вы, вероятно, включили "Локализацию отладки" в вашей схеме (Product > Scheme > Edit Scheme в Xcode). Если вам интересно, почему вы получаете эти сообщения из разных библиотек, это, вероятно, потому, что вы все еще имеете это.
![Imgur]()
Ответ 2
У меня тоже была эта проблема.
Поскольку выключение предупреждения похоже на плохую идею (кажется, что переводы с высоким риском не будут работать так, как предполагалось), я обнаружил, что действительно вызвало проблему.
В моем случае проблема была пустой строкой в файле Localizable.strings. (Я использовал нестандартный способ его генерации, инструмент по умолчанию для генерации не добавит их)
То есть, в одном месте у меня была эта строка:
/* No comment provided by engineer. */
"" = "";
Если я удалю его, предупреждение исчезнет!
Похоже, что есть какая-то проблема в реализации таблицы строк, если вы добавляете пустые строки, что заставляет испортить все строковые таблицы, а не только ту, где проблема...
Возможно, кто-то найдет эту информацию полезной, поэтому я оставляю ее здесь.
Ответ 3
Если вы не укажете "Документ", то он будет выглядеть в файле Localizable.strings. В противном случае убедитесь, что у вас есть файл Document.strings в вашем проекте. Кроме того, "(Документ, сохраненный с помощью% @)" выглядит довольно странно для меня. Возможно, вы захотите проверить, что это действительно то, что вы хотите в качестве ключа для локализуемой строки.
Вот ссылка, которая может помочь вам понять процесс
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html
Ответ 4
Из того, что я нашел в своем недавнем проекте, эта ошибка возникла, когда у вас есть английский язык (только английский без региона), определенный на вашем устройстве.
Поскольку одна или несколько фреймворков не смогут найти строки перевода, вы получите эту ошибку в своем консольном журнале.
Надеюсь, что поможет
Ответ 5
Другая распространенная ошибка - забытое ";" в конце любой строки в файле, которая содержит ваши Localizable.strings. Это может легко произойти после массового копирования и вставки. К сожалению, это не так легко найти, потому что компилятор не жалуется на номер строки или любую другую полезную подсказку. Это может быть очень больно и утомительно, когда у вас большие локализуемые таблицы.
Результатом этой ошибки будет то, что некоторые переводы найдены, а другие нет, и найти причину сложно.
Мое решение, чтобы убедиться, что все ключи правильно определены (с ";" в конце строки):
- Откройте ваш файл "Localizable.strings" в Xcode
- Удалить нижнюю половину таблицы (для начала)
- Нажмите КОМАНДУ + B (сборка)
Если вы не получили ошибку, проблема должна быть в удаленной нижней половине. Вставьте его обратно, удалите сейчас только нижние 25% и повторите сборку. Повторяйте процесс, пока не сможете лучше определить проблему.