RTL 用户的布局无法按用户设置,仅能在整个站点级别设置

我的浏览器被识别为希伯来语(RTL),因此整个 UI 都按 RTL 布局,即使我访问的是像 Vuejs 这样的 LTR 论坛。

这不是构建 RTL UI 的正确方式,这使得使用该应用变得非常困难。

例如,请查看下面的截图并尝试阅读它。你会发现阅读非常困难,因为所有标点符号都放在了错误的一侧,而且对齐效果也很差。

只有完全翻译过的部分才需要设置 direction:rtl 这个 CSS 属性。

例如,日期小部件本身应该具有这个属性。确实,由于其中的文本也是希伯来语,它在 RTL 模式下看起来效果不错。

目前,我不得不打开开发者工具,将 UI 改为 LTR 模式才能正常使用它。

整个 UI 采用 RTL 布局的情况,应该仅限于整个论坛使用 RTL 语言时,而不是仅仅因为浏览器被识别为 RTL 就应用 RTL 布局。

1 个赞

Discourse 仅在启用了“从 Accept-Language 请求头设置语言”站点设置时,才会使用浏览器的区域设置来设定用户的语言。启用后,匿名用户的语言将根据其浏览器的语言请求头进行设置。该设置也会在用户首次创建账户时设定其语言。用户可通过进入“偏好设置 / 界面”页面并选择所需的界面语言来覆盖该设置。一旦完成此操作,语言请求头将被忽略——用户选择的界面语言将优先于浏览器的语言请求头。

如果您为 Discourse 论坛选择了 RTL 语言,所有内容都将以 RTL 布局显示。如果您访问的是 LTR 网站,最好在偏好设置页面选择一种 LTR 语言。唯一的例外是启用了“支持混合文本方向”站点设置的情况。启用该设置后,帖子内容将根据其文本方向进行解析,并为帖子内容添加相应的 dir 属性。有关该设置的更多详情,请访问:https://meta.discourse.org/t/what-does-the-support-mixed-text-direction-setting-do/91247。

5 个赞

我的观点是,这为用户造成了糟糕的体验。你不能随意对任何内容应用 RTL 布局,因为这会破坏排版。你只应在翻译后的文本上应用 RTL。

因此,“从 Accept-Language 头部设置区域设置”功能识别出我的区域设置是可以的,但这并不意味着你可以对整个 HTML 应用 RTL。

区域设置应仅影响菜单和其他已翻译的内容,所有用户生成内容应保持其原始方向。

这是一个 Bug,原因有二:

  1. 所有访问某个论坛的 RTL 用户都需要更改设置,这不合逻辑。论坛本应开箱即用,正确显示。

  2. 更改设置虽然能修正方向,但也会改变菜单、日期等已翻译文本的语言,而这并非我所期望的。

我知道对于以英语(及其他 LTR 语言)为母语的用户来说,很难看出这个问题,因为你无法完全理解希伯来语或阿拉伯语界面的含义。但请相信,这种行为确实是错误的:用户内容和所有未翻译的内容都应保持其原始语言环境的方向。

1 个赞

上述提到的“支持混合文本方向”站点设置难道不能实现这一点吗?

2 个赞

对于 RTL(从右向左)语言环境,这是一个合理的担忧。正如本主题中提到的,启用“支持混合文本方向”将解决该问题,但该设置需要由站点管理员启用,并且会影响站点上的所有用户。或许可以添加一个设置,仅对选择的方向与站点默认语言环境不同的用户应用该设置。

2 个赞

我没见过混合内容长什么样,但根据你的描述,这应该能解决问题。
我觉得这应该是默认设置,我不明白为什么有人会想关闭它?帖子难道不应该完全按照作者的写作原样呈现吗?这还有其他副作用吗?

我作为会员在几个论坛中提出了这个错误报告,而不是作为论坛所有者。

如果我要请所有那些论坛管理员去更改一个能改善像我这样的用户的使用体验的设置,那会很尴尬。我认为他们期望论坛开箱即用,对所有用户都呈现良好的外观。

启用该设置后,浏览器会解析文本以确定其方向。这会对网站性能产生一些影响。最好能够仅针对需要该功能的用户启用此设置。该设置旨在帮助那些帖子中包含大量代码的从右向左(RTL)网站。在这种情况下,为所有用户启用该设置是合理的。

我认为,当用户的语言区域方向与网站的默认语言区域方向不同时,自动解析帖子内容以确定其文本方向是合理的。

3 个赞

也许这是一个不错的方法。
无论如何,我作为您客户的客户,带着 frustration 在此留言。希望您能修复这个问题,因为您似乎非常成功,这意味着我遇到的情况会越来越多 :slight_smile:

我已将其重新归类为 ux,同时也分配给自己,以便更仔细地研究如何最好地处理这个问题。我会在此汇报我的发现。

这就是正确的处理方式。请联系您的站点管理员 @danbars

1 个赞

我想知道的是,如果网站没有任何从右到左(RTL)的内容,是否还有必要启用该设置。在这种情况下,当用户的语言区域方向与网站的默认语言区域方向不同时,是否应该按用户自动启用该设置?例如,如果我在 Meta 上选择希伯来语语言区域,所有文本内容的对齐方向都是错误的。