Languages
Nine languages ship, two of them right-to-left. Choosing which to offer, and what translating actually involves.
Admin → Settings
What ships
| Language | Direction | PDF documents |
|---|---|---|
| English | Left to right | In the language |
| Español (Spanish) | Left to right | In the language |
| Français (French) | Left to right | In the language |
| Nederlands (Dutch) | Left to right | In the language |
| Русский (Russian) | Left to right | In English |
| हिन्दी (Hindi) | Left to right | In English |
| বাংলা (Bengali) | Left to right | In English |
| اردو (Urdu) | Right to left | In the language |
| العربية (Arabic) | Right to left | In the language |
All nine cover the storefront, every dashboard and every e-mail. The invoices and weekly reports the product draws as PDF files follow the language wherever the bundled PDF engine can draw the script — Latin and Arabic script. For Russian, Hindi and Bengali those two PDF documents are drawn in English; their on-screen and e-mailed versions stay translated.
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 or Urdu 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 and Urdu are rendered with the bundled Arabic-script typeface; Russian, Hindi and Bengali use the fonts the visitor's own system has for those scripts (Segoe UI and Nirmala UI on Windows, Noto Sans on Linux and Android, the system faces on Apple devices). 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, fr.php, nl.php, ru.php,
hi.php, bn.php, ur.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 or Urdu 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.