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