You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7 RTL语言本地化:如何让数字显示在文本正确侧?

解决Rails 7 RTL语言本地化中数字与文本顺序颠倒的问题

问题核心是希伯来语作为RTL(从右到左)语言,浏览器的双向文本排版算法会自动调整LTR字符(如数字)与RTL文本的顺序,导致你设置的排版逻辑被打乱。

解决方案:使用Unicode双向控制字符固定顺序

在本地化字符串的数字部分添加左到右标记(\u200E),强制数字按LTR方向显示,避免被RTL排版逻辑干扰。修改你的config/locales/he.yml如下:

he:
  parks:
    _filters_index:
      parks_count:
          zero: 'פארקים \u200E0'
          one: 'פארק \u200E1'
          other: 'פארקים \u200E%{count}'

原理说明

\u200E是Unicode标准中的左到右控制字符,它会告诉浏览器:后续的字符(这里是数字)需要按左到右的方向渲染,不受周围RTL文本的排版影响。这样就能实现文本在左、数字在右的预期显示效果。

验证效果

修改后,视图渲染的内容会正确呈现为:

  • 当count=0时:פארקים 0
  • 当count=1时:פארק 1
  • 当count=5时:פארקים 5

内容的提问来源于stack exchange,提问作者Rebecca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:58:20