2016-12-28 5 views
7

Здравствуйте, я хочу преобразовать весь внешний вид пользовательского интерфейса в арабский [from Right to left] Если пользователь меняет свой язык из настроек и открывает приложение.Пользовательский интерфейс для арабского английского iPhone с использованием autoresize?

У меня есть ниже запрос

1) Является ли мне нужно создать отдельный интерфейс для каждого? 2) Есть ли короткий путь для достижения этого? 3) Мне нужен полный пользовательский интерфейс, который должен быть преобразован как зеркало, которое с левой стороны [меню слайдов] должно быть с правой стороны и т. Д. 4) Xcode 8.2 имеет авторезистентность снова вводится с автоматической компоновкой, могу ли я сделать это без автоматической компоновки?

+3

Если вы используете автоматическую компоновку и правильно используете «ведущие»/«конечные» края/поля, а не «левый»/«правый», вам просто не нужно ничего делать (кроме убедитесь, что весь текст правильно соответствует там, где это необходимо). – jcaron

+0

Я просто использую autoresize ... Xcode 8.2 снова активирует его – iphonemaclover

ответ

1
  1. Нет, вы создаете только один пользовательский интерфейс, независимо от языка.

  2. Да, есть короткий путь, вы должны использовать локализацию. apple doc for internationlization

  3. преобразование интерфейса осуществляется прошивкой (это верно для контроллеров UIKit только см. Ниже редактировать)

  4. auotlayout не имеет ничего общего с локализацией., как правило, лучше использовать автовыброс, но вам необходимо рассчитать размеры разных экранов. снова не имеет ничего общего с локализацией. см. Ниже.

Редактировать: если вы хотите отразить свои собственные взгляды, например, uiimage и uilabel. то вы должны сделать это самостоятельно либо с автозагрузкой, либо с фреймами. если вы используете uinavigation или tabbarcontroller, эти контроллеры будут зеркально отображены iOS. поэтому вы должны сами позаботиться о просмотре контента. вы можете создавать различные ограничения и устанавливать их соответственно во время выполнения. но если ваши взгляды очень сложны, вы должны спроектировать 2 разных раскадровки один для слева направо и один для справа налево и загрузить соответствующую раскадровку во время запуска приложения.

re-edit: так вот мое приложение на английском языке. и мое приложение оленья кожа поддерживает правильный налево языки

english

теперь, если добавить, скажем, справа налево язык, как арабский: arabic

как вы можете видеть ячейки таблицы преобразуются iOS автоматически. и я только что добавил интернационализацию для арабского языка на английском, немецком и так далее. поэтому, если вы используете элементы управления UIKit в соответствующих местах, тогда он автоматически преобразуется. Но если ваше приложение очень настроено и имеет сложную иерархию представлений, то iOS не может помочь, тогда вы должны сделать это самостоятельно. если вы придерживаетесь стандартной и простой иерархии. то вам не стоит слишком беспокоиться об этом. просто проверьте его и посмотрите на него сами.

поэтому в моем приложении, например, все, что мне нужно сделать, это перевести строку в язык справа налево.

редактировать: здесь правильная информация apple doc относительно вопрос номер 4

Используйте Auto Layout раскладывать ваши взгляды относительно друг друга без неподвижных истоках, ширины и высоты, так что взгляды переставить и изменить размер соответственно при изменении языка или локали. Автоматическая компоновка позволяет иметь один набор файлов .storyboard и .xib для всех языков.

+0

эй спасибо за ответ, но для того, чтобы знать, моя работа выполняется с помощью autoresize, если я сейчас применяю интернационализацию в нем, он автоматически преобразует пользовательский интерфейс? даже если какая-то часть добавлена ​​программно? Предположим, что метка добавлена ​​в положение fdeviceheight-100 и fdevicewidth-50? будет ли он автоматически преобразовываться на 100 и 50? – iphonemaclover

+0

Я добавил дополнительные пояснения. –

+1

«auotlayout не имеет ничего общего с локализацией» - false. Как указано в комментариях к вопросу, использование ведущего/трейлинг вместо left/right приведет к тому, что пользовательский интерфейс будет отображаться, если язык устройства является справа налево. Это поведение родных приложений, и каждый должен это делать. – hybridcattt