The problem
A UAE business rarely publishes in one language. The site runs in English and Arabic, the audience adds Persian and Urdu, and the person responsible for quality can read perhaps two of the four. So nobody in the company can answer a simple question: is our Arabic side actually correct today?
The failures are not grammatical. A page can be perfectly translated and still show a phone number in reverse, a price with the dirham on the wrong side, a “Read more” button in English at the end of an Arabic paragraph, and two different styles of digit within one screen. Each is small. Together they are the reason a reader decides the company does not really operate in their language.
What it is
RTL Ready is a WordPress plugin with two halves. The first corrects right-to-left display faults as each page is served — number and time order, currency position, digit style, arrow direction, interface strings left in English — in Arabic, Persian and Urdu, without changing a word of stored content, and reversible switch by switch.
The second is a health report, which is the half that matters to whoever owns quality. It gives a score out of a hundred across pages, products, menus and the theme, in every language the site publishes: which pages have no translation, where English is left inside a non-English page, whether the language tags are right for search engines, and which web addresses are encoded into unreadable strings. There is also an on-page checker, visible only to a logged-in reviewer, that marks faults on the live page itself.
Why it was hard
Three scripts, not one. Persian and Urdu share direction with Arabic and little else: different digits, different letterforms, different typography. Treating them as dialects of an Arabic implementation produces pages that are wrong in ways their readers find insulting. Each language gets its own font, served from the site’s own server, and its own digit handling.
The plugin also has to be a guest. The sites it runs on already have Polylang or WPML for languages, an SEO plugin for titles and sitemaps, WooCommerce for prices and Elementor for layout. It adds nothing those already do, writes nothing they own, and leaves nothing behind when removed.
And every fix runs at render time, on pages nobody reviewed, in mixed text that carries Latin brand names and numbers alongside the Arabic. It has to be fast enough to be invisible and conservative enough never to break a line that was already correct.
The report is the product for the person who cannot read the page
The fixes are what a reader notices. The report is what a manager, a marketing lead or an agency client can act on, and it is deliberately written to be read by somebody who does not speak the language being checked.
That turns an argument that used to be about taste — “our Arabic looks fine” — into a number, a list, and a date. It also gives an agency in this market something it has never had: a way to show a client what was wrong before the work and what is right after it, in the client’s own dashboard.
What it refuses to do
It does not translate. It does not rewrite content. It does not become another SEO plugin, and it does not claim to make a badly built theme good. A tool that quietly edits what a company published is a liability, not a feature — so the plugin reads, reports and renders, and stored content stays exactly as its author left it.
What it demonstrates
Right-to-left quality has been treated as a design problem for twenty years, which is why it keeps being re-solved badly in every project. Most of it is a fixed set of rules, and rules belong in software that applies them on every page, every time, rather than in a style guide nobody opens.
It is also the same principle I apply to systems work generally: make the invisible measurable, make every change reversible, and let the owner see the state of their own property without needing an expert in the room.
Where it is now
Live at rtlready.com, with the free plugin published on WordPress.org and a paid tier for multi-site reporting. Arabic, Persian and Urdu are covered from the first release, and it runs alongside Polylang, WPML, Elementor and WooCommerce rather than in place of any of them.