Xcode 6 iOS launchScreen.xib проблема локализации
В моем приложении у меня три языка. В файле launchScreen.xib также есть три локации.
![enter image description here]()
Как и localizable.strings, я изменил текст, который должен использоваться Object-ID.
![enter image description here]()
При запуске приложения всегда используется английский текст, а не локализованный. И есть символ "X", который является символом LaunchScreen.xib и LaunchScreen.xib(Base). Зачем? Как я могу решить эту проблему?
Ответы
Ответ 1
Правильный ответ на конкретную локализацию экрана запуска находится здесь:
Локализация Default.png не работает
И для краткости я вложу основные шаги:
- Создайте файл InfoPlist.strings. (File, New, Resource, струнные)
- Локализовать его и добавить ключ "UILaunchStoryboardName" со значением, являющимся именем xib, которое вы хотите отобразить в качестве экрана запуска для этой локализации.
Например, для испанской версии добавьте ключ и имя экрана запуска для испанской версии экрана запуска в недавно созданных InfoPlist.strings, локализованных для испанского.
"UILaunchStoryboardName" = "Launch_es";
Ответ 2
Как документ Apple, экран запуска никогда не будет локализовать ваш текст:
"Избегайте включения текста на экране запуска. Поскольку экраны запуска являются статическими, любой отображаемый текст не будет локализован."
https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen/
Ответ 3
Я хотел бы дать четкое описание исправления в соответствии с предыдущей информацией.
У меня такая же проблема, и я не могу найти четкое описание. У меня теперь есть Xcode 8.2.1 и Swift 3.0.
В заключение:
Я скопировал LaunchScreen.storyboard и добавил его в проект с именем Launch_ru.storyboard. После того, как я сделал локализацию Launch_ru.storyboard.
Затем нужно выбрать его и добавить базовую локализацию.
Затем нужно добавить к добавлению в основной файл локализации ключ InfoPList.string "UILaunchStoryboardName" = "Launch_ru";
где Launch_ru - это имя моей новой Launch_ru.storyboard.
Эти три действия исправили мою проблему.
Ответ 4
Fawkes ответ является правильным:
- Создайте файл InfoPlist.strings. (File, New, Resource, струнные)
- Локализовать его и добавить ключ "UILaunchStoryboardName" со значением, являющимся именем xib, которое вы хотите отобразить в качестве экрана запуска для этой локализации.
Следует отметить, что все раскадровки экрана запуска, которые вам в конечном итоге должны быть решены как "базовая локализация" в инспекторе файлов:
![введите описание изображения здесь]()
Если вы случайно пометили их как локализацию для другого языка, это не сработает (он просто отобразит черный экран!)
Ответ 5
У меня была такая же проблема, после чего я использовал MCLocalization, и это очень легко интегрировать в ваше приложение. Он отлично работал у меня.