(Есть похожие вопросы. Некоторые из них привели к ответам, которые я пробовал, и они не работали. У других не было ответов, я полагаю, потому что кверты не предоставили столько деталей, сколько я собираюсь.)
Я начал с раскадровки, которая хорошо работала для моего приложения; строки, которые он содержит, находятся на английском языке. Я хотел добавить французскую локализацию. Я сделал это:
- Добавлена базовая локализация, которая перенесена
MainStoryboard.storyboard
отen.lproj
доBase.lproj
. - Добавлена французская локализация, которая клонировала
InfoPlist.strings
(английский) иMainStoryboard.storyboard
(Base) вfr.lproj
. - Изменено несколько строк (заголовки сегментов в
UISegmentedControl
) во французскомMainStoryboard.storyboard
. - В симуляторе установите язык на французский язык.
- Отредактируйте приложение из Xcode.
Результат: это сработало; мои измененные строки появились в запущенном приложении.
Но я хочу быть всем фантазии. Я хочу сделать французскую локализацию с помощью файла .strings
. (Это не просто вопрос фантазии, французская локализация будет передана нетехническим переводчикам, которых нельзя ожидать, чтобы осваивать интерфейс Builder.) Итак:
- Выбрали базу
MainStoryboard.storyboard
в проекте Xcode навигатор. - В инспекторе файлов в разделе "Локализация" изменился французский локализации из "Interface Builder Cocoa Touch Storyboard" на "Локализованные строки".
- Принято Xcode предупреждение о том, что французская раскадровка будет отброшена
в пользу файла
.strings
, который появляется в редакторе помощника. - Сделал те же два изменения; там не вопрос о том, что они ошибаются
строки, потому что все они прокомментированы как
IBUISegmentedControl...segmentTitles
; и текст ярлыка не появляются в другом месте в файле.strings
. - Удалена существующая (рабочая) копия приложения из симулятора.
- Отмените приложение.
Результат. В представлении используется базовая (первоначально английская) локализация вместо загрузки французских строк.
Это неудовлетворительно. Я попытался удалить приложение из симулятора и даже удалить папку с производными данными. Ошибка сохраняется.
Как я уже сказал, я не могу превратить файл .storyboard
в нетехнический переводчик. Как я могу заставить iOS принять локализацию раскадровки из файла .strings
?