Насколько важно зеркальное отображение пользовательского интерфейса _entire_ для носителей арабского языка?

StackOverflow https://stackoverflow.com/questions/1030221

Вопрос

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

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

Основная причина, по которой я спрашиваю, заключается в том, что Microsoft Windows использует путь зеркального отображения всего, что написано на арабском языке, но я только что заметил новую поддержку арабского языка в iPhone OS 3.0, практически ничего является зеркальным отображением, даже без примеров label-textbox.Я бы подумал, что это довольно плохо со стороны Apple, но широко ли подобные вещи приняты в арабском мире?

Это было полезно?

Решение

На арабском языке мы читаем и сканируем графические элементы справа налево

Вам нужно будет перевернуть весь экран по горизонтали, за исключением изображений и текста (библиотека BiDi - обычно в ОС - справляется с этим). Вы переворачиваете только местоположения элемента управления.

Элемент управления, ограниченный (x1, y1, x2, y2) на экране aw * h, становится (w-x2, y1, w-x1, y2), содержимое прямоугольника не должно быть перевернуто, только положение , Это сохранит свои размеры.

Например, сравните новости Google на английском и арабский ... обратите внимание на меню, изображения, новости.

Обычно допускается одно исключение, медиаплееры по-прежнему слева направо по историческим причинам (магнитофоны, видеоустройства VHS никогда не были локализованы).

Другие советы

Это важно. Представьте, что вы используете какое-то программное обеспечение, написанное на арабском языке, которое было переведено на английский, и некоторые вещи были перевернуты неправильно.

В целом, Windows (в частности, Vista и WIn7) и Office очень хорошо переведены на языки чтения справа налево. Вы можете использовать это как пример того, что делать - это особенно верно для элементов пользовательского интерфейса верхнего уровня

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

Зеркальное отображение чрезвычайно важно не только потому, что текст будет отображаться правильно, но и из-за "ментальной модели" пользователя.

Когда язык пишется справа налево, все ожидания пользователя меняются, но еще более интересным эффектом является изменение терминологии.То, что мы обычно называем позиционированием "влево" и "вправо", на самом деле оказывается "началом" и "концом" (или "до" и "после"), что делает зеркальное отображение интерфейса немного более сложным.

Кроме того, у вас будут элементы, которые не должны быть зеркально отражены.Есть несколько примеров программного обеспечения, которое без разбора отражает все кнопки и создает веселые (ужасные ...) результаты.Вот несколько примеров:

  • Кнопки "Отменить" и "Повторить":Отменить означает "вернуться назад".;на английском языке (LTR) это означает "перейти влево", но на арабском или иврите это означает "перейти вправо", поэтому кнопка нажимается, и то же самое относится к кнопке повтора.Однако в RTL порядок одна из этих двух кнопок также перевернута, что означает, что вы "дважды перевернули" их представление, что, по сути, дает вам пару кнопок в RTL, которые посмотри точно такая же, как пара в LTR, за исключением разных значений.Реализация этого может привести к путанице.
  • Зеркальное отображение значков # 1 (списки):По большей части значки обычно зеркально отображаются.Например, значок, представляющий маркированный список, будет иметь маркеры слева для LTR и маркеры справа для RTL.Большинство программ "просто" отражают его, что вполне разумно.Однако есть несколько программных продуктов (к сожалению, одним из них является OpenOffice), которые также отражают нумерованный список.Это создает ситуацию, когда сами цифры переворачиваются (поэтому цифра 2 на этом значке выглядит как 5).
  • Зеркальное отображение значка # 2 (вопросительный знак):Другим примером является кнопка "справка", которая обычно обозначается вопросительным знаком.Это еще более сложный процесс, потому что он отличается для нескольких языков RTL.Некоторые языки RTL, такие как арабский, отображают вопросительный знак в обратном порядке (؟), но другие, например иврит, отображают его так же, как английский (?).Это зеркальное отображение зависит от языка, а не только от RTL / LTR.

Еще одна проблема заключается в создании программного обеспечения со смешанным контентом.Например, если ваше программное обеспечение отображает некоторый заданный контент, но позволяет пользователю изменять язык интерфейса, вы можете столкнуться с интересными проблемами "переключать-не-переключать".

Если у вас есть какое-либо программное обеспечение, позволяющее, например, читать RSS-каналы, контент может постоянно быть LTR, но если ваш пользователь переключит свой интерфейс на RTL, то некоторые элементы интерфейса должны отражать друг друга, в то время как другие - нет.Например, если мы рассмотрим приведенные выше примеры значков, то "маркированные списки" в этом случае не должны переворачиваться, потому что, хотя интерфейс RTL, фактическое содержимое, которое вы вставляете, ожидается LTR, поэтому маркер будет практически слева направо, и маркер представляет это.

Задача в этих случаях заключается в том, чтобы решить, какая часть вашего программного обеспечения является "контентом", а какая - "интерфейсом", и, хотя это выполнимо, это сложная задача.

Подводя итог, можно сказать, что зеркальное отображение интерфейсов не так прямолинейно, как кажется, и во многих случаях действительно зависит от назначения и контекста вашего программного обеспечения.Я бы сказал, что это чрезвычайно важно, потому что ментальная модель пользователей RTL (с точки зрения того, где что "начинается" и "заканчивается") обратная, и точно так же, как глаза пользователей LTR автоматически отводятся в верхний левый угол (именно поэтому логотипы обычно размещаются там), глаза пользователей RTL обычно автоматически отводятся в верхний правый угол - и ваш интерфейс должен это уважать.Тем не менее, вам следует проанализировать свой интерфейс и способ отображения вашего контента и интерфейса в целом, и остерегаться случаев, когда переключение / зеркальное отображение на самом деле не подходит.

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top