Мой браузер определяется как иврит (RTL), из-за чего весь интерфейс выстраивается в направлении справа налево, даже когда я захожу на форумы с направлением слева направо, такие как Vuejs.
Это неверный подход к построению RTL-интерфейса, который сильно затрудняет использование приложения.
Возьмем, к примеру, скриншот ниже, и попробуйте его прочитать. Вы увидите, что это действительно сложно, потому что вся пунктуация расположена не на своих местах, а выравнивание нарушено.
Свойство CSS direction:rtl должно применяться только к тем частям, которые полностью переведены.
Например, сам виджет даты должен иметь это свойство. Действительно, в RTL-режиме он выглядит хорошо, так как текст на иврите.
В данный момент я вынужден открывать инструменты разработчика и переключать интерфейс в режим LTR, чтобы иметь возможность им пользоваться.
Режим RTL для всего интерфейса следует использовать только в случаях, когда весь форум на языке с направлением справа налево, а не просто когда браузер определяется как RTL.
Discourse использует локаль браузера для установки локалей пользователя только в том случае, если включена настройка сайта «Устанавливать локаль из заголовка Accept-Language». При включении этой настройки локаль устанавливается для анонимных пользователей на основе заголовка языка их браузера. Эта настройка также устанавливает локаль для пользователей при первом создании аккаунта на сайте. Эту локаль пользователь может изменить, перейдя на страницу «Настройки / Интерфейс» и выбрав желаемый язык интерфейса для сайта. После этого заголовки языка будут игнорироваться — выбранный пользователем язык интерфейса имеет приоритет над заголовком языка браузера.
Если вы выберете RTL-локаль для форума Discourse, весь контент будет отображаться с макетом справа налево. Если вы находитесь на сайте с направлением слева направо, лучше выбрать локаль с направлением слева направо на странице ваших настроек. Единственное исключение — если включена настройка сайта «Поддержка смешанного направления текста». При включении этой настройки содержимое постов анализируется на предмет направления текста, и к содержимому постов добавляются соответствующие атрибуты dir. Подробнее об этой настройке можно узнать здесь: Supporting mixed text directions.
Моя позиция заключается в том, что это создаёт некорректный опыт для пользователя. Нельзя просто так включать поддержку RTL (справа налево) где угодно, так как это ломает макет. Поддержку RTL следует включать только для переведённых текстов.
Поэтому нормально, что функция «установить локаль из заголовка accept language» определяет мою локаль, но это не означает, что можно применять RTL ко всему HTML.
Локаль должна влиять на меню и другой переведённый контент, а весь пользовательский контент должен оставаться в своём исходном направлении.
Это ошибка по двум причинам:
Нелогично, что все пользователи с RTL-языками, посещающие какой-либо форум, должны менять свои настройки. Форум должен корректно отображаться «из коробки».
Изменение настроек исправит направление, но также изменит язык переведённых текстов, таких как меню, даты и т. д., чего я не хочу.
Я понимаю, что для носителей английского языка (и других LTR-языков) это трудно заметить, так как вы не можете многого понять в интерфейсе на иврите или арабском, но, пожалуйста, поверьте мне: это просто неверное поведение. Пользовательский контент и весь непереведённый контент должны оставаться в своей исходной локали.
Это обоснованная проблема для локалей с направлением справа налево (RTL). Как уже упоминалось в этой теме, включение параметра «поддержка смешанного направления текста» решит проблему, однако этот параметр должен быть включён администратором сайта и повлияет на всех пользователей сайта. Возможно, стоит добавить настройку, позволяющую применять её только для пользователей, чей выбранный язык отличается по направлению от языка по умолчанию на сайте.
Я не видел, как выглядит смешанный контент, но, судя по вашему описанию, это должно решить проблему.
Думаю, это должно быть настройкой по умолчанию, и мне интересно, зачем вообще кто-то захочет её отключать? Разве пост не должен выглядеть точно так, как его написал автор? Есть ли у этого какие-либо побочные эффекты?
Я открыл этот баг как участник нескольких форумов, а не как владелец форума.
Было бы неловко, если бы мне пришлось просить всех этих администраторов форумов изменить настройку, которая улучшила бы опыт для пользователей вроде меня. Думаю, они ожидают, что форум будет хорошо выглядеть для всех своих пользователей сразу после установки.
Когда настройка включена, текст анализируется в браузере для определения его направления. Это окажет некоторое влияние на производительность сайта. Было бы хорошо иметь возможность включать эту настройку только для пользователей, которым она необходима. Настройка была разработана для помощи сайтам с направлением RTL, которые содержат много кода в своих сообщениях. В таком случае имеет смысл включить её для всех пользователей.
Я считаю, что в случае, когда локаль пользователя имеет направление, отличное от направления по умолчанию на сайте, может иметь смысл автоматически анализировать содержимое сообщений на предмет направления текста.
Возможно, это хороший подход.
В любом случае, я оставляю это здесь как разочарованный клиент ваших клиентов. Надеюсь, вы исправите это, потому что вы, похоже, очень успешны, а это значит, что я сталкиваюсь с этим всё чаще
Я перекатегоризировал это в ux, но также назначил задачу себе, чтобы внимательнее изучить, как лучше всего решить эту проблему. Я вернусь сюда с результатами.
Меня интересует, имеет ли смысл требовать от сайта включать эту настройку, если на нём нет контента на языках с написанием справа налево (RTL). В таком случае было бы логично автоматически включать эту настройку для каждого пользователя, если направление письма его локального языка отличается от направления по умолчанию для сайта. Например, если я выбираю иврит в Meta, весь текстовый контент выравнивается в неправильном направлении.