Изменение изображения раскадровки экрана запуска на основе языка и региональных параметров в моем приложении Xamarin Forms для iOS

Я следил за рядом руководств в Интернете, чтобы попытаться изменить изображение на экране запуска моей раскадровки в зависимости от культуры, на которую настроен iPhone. Я могу изменить текст внутри приложения, чтобы знать, что культура установлена ​​правильно, и что я определил культуру в настройках проекта, но изображение на раскадровке запуска всегда показывает английскую картинку.

Моя раскадровка (созданная как экран запуска в разделе «Добавить новый файл») находится в корневом каталоге проекта iOS, и у меня есть папка «Ресурсы», которая содержит папки с именами en.lproj, fr.lproj и de.lproj. У меня есть изображение в каждой из этих папок с именем Header.png, которое немного отличается в зависимости от языка.

Из того, что я прочитал, установка свойства изображения элемента управления изображением в раскадровке на Header.png должна отображать английскую версию на основе моей культуры разработчика по умолчанию (что работает - это действительно происходит), а затем следует выбрать то же изображение из соответствующую папку на основе изменения культуры и перезапуска приложения. К сожалению, этого не происходит, он всегда тянет английский язык назад.

Я попытался поместить раскадровку в папку Base.lproj в корне проекта и в папку Base.lproj в папке «Ресурсы» и попытался переместить языковые папки (de.lproj и т. д.) из папки «Ресурсы» в корень. но ни один из них, казалось, ничего не изменил.

Я использую эмулятор iPhone 6 и разрабатываю в студии Xamarin (последняя альфа-версия).

Есть ли у кого-нибудь предложения относительно того, где я могу ошибаться? Я работал над этим весь день (и последнюю ночь), и это сводит меня с ума :(

Заранее спасибо,

Алан


person Alan Kell    schedule 30.06.2016    source источник


Ответы (1)


Я полагаю, что настройка для запуска раскадровок/экранов отличается от обычных раскадровок, которые вы используете для своего пользовательского интерфейса.

Я пытался локализовать изображения как в проекте Xamarin, так и в проекте Xcode, ни один из них не локализовал изображение на экране запуска, но после запуска одно и то же изображение будет локализовано на основной раскадровке.

Попробуйте создать отдельную раскадровку запуска для каждой локализации, поместив каждую в соответствующую папку .lproj.

https://developer.xamarin.com/guides/ios/advanced_topics/localization_and_internationalization/#Launch_Images

person BytesGuy    schedule 01.07.2016
comment
Спасибо за ответ. Я пробовал то, что вы предложили здесь, но, к сожалению, борюсь. Я переместил свой LaunchScreen.storyboard в Resources/en.lproj и сделал его копии в Resources/fr.lproj и Resources/de.lproj. В LaunchScreen.storyboard у меня есть элемент управления ImageView со свойством Image, установленным в Header.png. У меня есть разные файлы Header.png в каждой из языковых папок, но каждый раз, когда я запускаю проект, независимо от культуры, на которую настроено устройство, я получаю заголовок English Header.png :( У вас есть еще какие-либо предложения? шанс? - person Alan Kell; 02.07.2016
comment
Кроме того, в моем info.plist у меня есть «Базовое имя файла интерфейса экрана запуска», установленное на LaunchScreen, и «Базовое имя основного файла раскадровки», установленное на LaunchScreen. Я не ссылаюсь здесь на какую-либо папку, но она показывает экран запуска, поэтому я думаю, что ссылки на папки не требуются, поскольку они находятся в папке ресурсов? - person Alan Kell; 02.07.2016