Languages
Three languages ship, including right-to-left. Choosing which to offer, and what translating actually involves.
Admin → Settings
What ships
| Language | Direction |
|---|---|
| English | Left to right |
| Español | Left to right |
| العربية (Arabic) | Right to left |
All three are complete: storefront, every dashboard, emails, invoices and PDF documents.
Enabling them
You choose which to offer. Enable one and there is no language switcher; enable several and the switcher appears in the header — which you can also remove, see Header, Navigation and Footer.
A visitor's language is remembered for their next visit, so somebody who switches to Spanish stays in Spanish.
Right-to-left is a real layout, not a mirror
Selecting Arabic flips the whole interface: sidebars, tables, forms, charts and printed documents. It is a separate stylesheet rather than a transformation, which is why it looks correct rather than reversed.
Arabic text is rendered with a bundled Arabic typeface — nothing is fetched from a font service. See Credits & licences.
What is translated and what is not
| Translated | Not translated |
|---|---|
| Every label, button and message in the product. | Menu dishes and descriptions. |
| Emails, invoices and PDFs. | Restaurant names and descriptions. |
| Built-in page wording, per language — see Pages. | Your blog posts and your own pages, unless you write each language. |
The built-in content editor is the exception worth knowing: its text is written per language, while images, videos, links and switches are shared across all of them. So a heading can differ by language without maintaining a separate picture for each.
Adding a language of your own
Each language is a single file in lang/ — en.php,
es.php, ar.php. A new one is a copy of en.php with the
values translated and the keys left alone.
- Keys are the identifiers. Change one and that string stops resolving.
- Placeholders must survive. Anything like
:countor:nameis replaced at runtime and has to remain, spelled exactly. - Keep the files in step. A key present in English and missing elsewhere is a gap that shows on screen.
When it doesn't work
Some text stays in English
Either it is your own content, which the product does not translate, or a key is missing from that language file and it fell back to English.
The switcher is not showing
Either only one language is enabled at Admin → Settings → General, or the Language element is switched off at Admin → Header.
Arabic layout looks broken after an update
A right-to-left stylesheet did not come across. Confirm the whole assets folder was
replaced.
A placeholder prints literally
A translated string lost or renamed it. Compare that key against the English file.