Я удалил локализацию в Xcode, тогда я не могу добавить никаких локализаций назад
Я удалил локализацию проекта из информации о проекте по ошибке. И раскадровка, и родственный язык были удалены.
Я вернул раскадровку из предыдущего файла, но когда я хочу добавить новую локализацию, появилось окно и попросило меня "Выбрать файлы и язык ссылок для создания английской локализации", и файл ресурсов вообще отсутствует.
Как добавить локализации?
Ответы
Ответ 1
Добавление обратно локализации
Когда вы удаляете свои локализации, иногда вы можете получить ту ситуацию, когда вы не можете добавить какие-либо локализации в Xcode. Перейдите в командную строку и создайте папку двухбуквенную аббревиатуру ISO 639-1 с расширением lproj где-то в вашем проекте.
Создать пустую языковую папку
Например:
${SRCROOT}/Resources/Translations/nb.lproj
или
${SRCROOT}/Resources/Translations/en.lproj
Повторно добавить языковые файлы в проект
В папке создайте пустой файл с именем Localizable.strings
и добавьте этот файл в свой проект. Не добавляйте папку .lproj
, просто содержимое. Затем, когда вы вернетесь в файл проекта, вы увидите язык под локализациями. Теперь, когда вы добавили это, вы должны увидеть локализацию в своем проекте.
Нет флажка
Если добавленный файл, например раскадровка, не имеет флажка рядом с ним, что указывает на то, что это часть локализации языка, вам может потребоваться округлить их через другой язык. Для этого добавьте новый язык в проект. Он должен предложить вам скопировать существующие локализованные файлы на новый язык. Затем удалите разбитую локализацию и снова добавьте ее.
Мой пример
В качестве конкретного примера я добавил в проект nb.lproj раскадровку. Норвежский Bokmål появляется в проекте, но флажок для языка в инспекторе раскадровки не позволит мне добавить его. Я создал nb_NO в проекте, и мне было предложено скопировать файл раскадровки. Тогда в раскадровке был установлен флажок. Я удалил локализацию "nb" и снова добавил ее. Теперь все было так, как я этого хотел.
Ответ 2
Мне пришлось решить ту же проблему и нашел одно решение:
Вам нужно найти в finder файл *.xcodeproj и открыть его в качестве контейнера (ctrl + кликнуть по нему, и вы увидите его в контекстном меню)
Здесь вы можете увидеть файл project.pbxproj, откройте его в Xcode. Его большой (но все еще читаемый файл).
(лучше будет сделать копию на месте сохранения, прежде чем вы начнете)
Теперь его задача добавить недостающий язык в этот файл и его сделать. (U можно попробовать в другом проекте с локализациями).
Есть абзац, который нужно добавить. Искать в этом файле для этого /* End PBXSourcesBuildPhase section */
(его абзац прямо перед абзацем локализации отсутствует) и добавить что-то вроде этого после:
/* Begin PBXVariantGroup section */
27548D921611B0BE008EA1CD /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (
27548D941611B0BE008EA1CD /* en */,
);
name = Localizable.strings;
path = ../Code;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
Сначала вам нужно сделать некоторые изменения. Посмотрите на длинный номер 27548D921611B0BE008EA1CD
, его идентификатор файла локализации (или некоторый файл xib или другой локализованный файл...), если у вас нет в программе, просто добавьте в проект файл Localizable.string, повторите (или обновите) этот project.pbxpro и найдите это Localizable.string
, вы должны найти что-то вроде этого:
275490591611B0BE008EA1CD /* Localizable.strings in Resources */
и это то, что вам нужно заменить в параграфе локализации
также вам нужно сделать правильные настройки в параметрах пути и sourceTree. Эти два файла можно прочитать в файлеinspector в xcode.
Параметр "sourceTree" - это местоположение - в основном его относительная группа, поэтому sourceTree = "<group>";
Путь - путь относительно группы к файлу (если вы не знаете, попробуйте сделать некоторые файлы локализации в другом проекте и посмотрите на project.pbxpro, что все это работает)
После этого вы можете сохранить файл project.pbxpro, и вы должны увидеть в локации раздела "en" секцию xcode, и вы можете добавить больше локализаций и все другие материалы локализации.
Ответ 3
В xcode 6 выполните следующие действия:
-
В командной строке создайте следующую директорию/файловую структуру где-то вне вашей директории проекта:
-
В Xcode откройте проект и выберите "Файл" > "Добавить файлы в ProjectName", чтобы добавить недавно созданный каталог en.lproj.
- После этого в списке "Локализации" вы увидите английский.
Ответ 4
Это старая тема, но после этой проблемы, а затем попробовав решение (и если оно не работает точно), я подумал, что дам подробные сведения о том, что работает DID.
Как и исходный плакат, я случайно удалил все мои локализации и не получил явного обращения в Xcode - в настройках проекта в разделе Info он просто сказал, что "этот проект не был локализован", и когда я нажал на плюс ниже, был представлен пустой список файлов ресурсов.
Я последовал за руководством @Cameron, но обнаружил, что языковые папки с файлами Localizable.strings уже присутствовали в Finder, но не были подтверждены Xcode. Я не мог решить, как продолжить, но мне довелось увидеть несвязанный комментарий о добавлении файлов в Xcode, поэтому я попытался добавить существующую папку en.lproj и файл Localizable.strings.
Это сработало, и список для английского языка как языка разработки появился также в разделе "Информация".
Надеюсь, это поможет любому, кто испытывает ту же проблему!
Ответ 5
Просто создайте папку "Base.lproj" в finder и вставьте Xib, который вы хотите локализовать внутри него, и добавьте эту папку в свой проект. Теперь вы можете добавлять другие языки без проблем.