Languages

Three languages ship, including right-to-left. Choosing which to offer, and what translating actually involves.

Admin → Settings

What ships

LanguageDirection
EnglishLeft to right
EspañolLeft 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.

Offer only what you can support. Enabling Arabic makes the product Arabic, but your own content — menus, page wording, restaurant descriptions — stays in whatever it was written in. A half-translated site reads worse than a single-language one.

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

TranslatedNot 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 :count or :name is 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.
Language files are code, and an update replaces them. The three shipped files are overwritten when you update. Keep your own additions in a copy you can reapply, and diff against the new English file to find keys that were added — see Updating to a new version.

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.