Slotara ships with complete UI translations for 8 popular languages. Every panel β Super Admin, Business, and the public-facing booking pages β is fully translated. Users switch language with a single click from the header; the choice is stored in their session and takes effect immediately without a page reload.
Since v1.7, every UI string is served from a single per-language source file and can be viewed, searched, and edited directly from the Translation Dashboard β no file editing or redeploy required. You can also add or remove whole languages from the same screen.
| Code | Language | Native Name |
|---|---|---|
en |
English | English |
es |
Spanish | EspaΓ±ol |
de |
German | Deutsch |
fr |
French | FranΓ§ais |
ar |
Arabic | Ψ§ΩΨΉΨ±Ψ¨ΩΨ© |
ru |
Russian | Π ΡΡΡΠΊΠΈΠΉ |
zh |
Chinese (Simplified) | δΈζ |
hi |
Hindi | ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯ |
All 8 languages cover the full interface: navigation, form labels, validation messages, button text, notifications, and email template subject lines.
The Translation Dashboard (/admin/translations) is a single screen for viewing and editing every translation string in the app. Super admins can review coverage, translate missing strings, and manage languages without touching the codebase.
What you can do:
{info} Edits made in the dashboard are written straight to the language files on disk and take effect immediately β no cache clear or redeploy needed.
{primary} The editor always shows the English string alongside each field as a reference, so translators never lose the original context.
Super admins can control which languages are active platform-wide from a single checkbox list.
To change enabled languages:
The change takes effect immediately across every panel and public page without any cache clear or deploy. Disabled languages disappear from:
locale.switch endpoint (a request to switch to a disabled locale is silently rejected).{info} Disabling a language only hides it from the UI β its translation files remain on disk. Re-enabling it restores it immediately.
{warning} If a user has a disabled language saved as their profile locale, they will fall back to the app default (
en) on their next session.
The language switcher lives in the top-right header of every panel (shown as a two-letter locale code, e.g. EN, ES, DE).
The selected language is stored in the user's session, so it persists across page navigations until changed or until the session expires.
| Area | Translated? |
|---|---|
Super Admin Panel (/admin) |
β Full UI |
Business Panel (/manage) |
β Full UI |
Public Booking Page (/{slug}) |
β Full UI |
| Email notifications | β Subject lines |
| Validation error messages | β Yes |
| API responses | β (English only) |
{info} The language switcher controls the panel UI language. It does not change the content your business has entered (service names, descriptions, etc.) β those are business-controlled.
For most changes, use the Translation Dashboard β edit strings inline and add or remove languages from the UI, with no file editing or redeploy. The rest of this section covers the underlying file layout for anyone who prefers to edit on disk or manage translations in version control.
As of v1.7, the interface strings are consolidated into a single JSON file per language at the root of lang/, keyed by the English source text:
lang/
en.json β English (source of truth β keys are the English strings)
es.json β Spanish
de.json β German
fr.json β French
ar.json β Arabic
ru.json β Russian
zh.json β Chinese
hi.json β Hindi
en/ es/ β¦ β a few framework/group files (e.g. installer.php, auth.php)
Earlier versions kept many small PHP files per locale (lang/en/booking.php, nav.php, pages.php, β¦). These were consolidated into the JSON files to give one source of truth per language and remove duplicated strings. A handful of PHP group files remain for the installer and framework/validation messages.
To edit an existing translation on disk, open the language's JSON file (e.g. lang/fr.json) and change the value for the matching key:
{
"Book now": "RΓ©server maintenant"
}
No cache clear is required for JSON language files. (If you edit one of the remaining PHP group files, run php artisan cache:clear.)
To add a new language manually:
lang/en.json to lang/<code>.json using the ISO 639-1 code (e.g. lang/pt.json) and translate the values.{info} The Add Language button on the Translation Dashboard does all of the above for you β copying the source file and enabling the locale in one step.
{primary} RTL support β Arabic (
ar) is automatically rendered right-to-left, and any other right-to-left locale is detected and rendered the same way.