RTL Is Not a Translation Problem. It's an Architecture Problem.
Most software is built in English first. Right-to-left languages — Arabic, Hebrew, Persian, Urdu — are treated as an afterthought. This isn't a translation problem. It's an architecture problem. When you write margin-left: 16px , you're not just styling — you're encoding a directional assumption into your codebase. Multiply that across thousands of files, and you have an application that fundamentally doesn't work for 400+ million Arabic speakers. I spent months contributing RTL support to open source platforms like AFFiNE (65k stars), and learned a painful lesson: most platforms have RTL issues buried across five distinct layers: Text engine — Does it understand BiDi? Direction logic — dir="rtl" and DirectionProvider CSS layout — Physical vs logical properties Translations — ar.json and i18n config Hardcoded text — Strings buried in JSX Fixing one layer without understanding the others leads to PRs that get rejected — like mine did on AFFiNE's blocksuite, where the maintainer correctl
Continue reading on Dev.to JavaScript
Opens in a new tab




