WHBMP

Languages

Oct 19, 2026

What is translated

WHBMP ships with English, Spanish, German, French and Arabic. A language applies to everything your clients and visitors see:

  • the storefront: plans, cart, checkout and domain search;
  • the sign-in and password pages and the whole client area: dashboard, services, domains, invoices, tickets, contacts, team, account and affiliate pages;
  • the messages those pages show, such as "Your cart is empty", the errors on a form and the promotion code messages;
  • PDF invoices, in the client's language, Arabic included.

The admin portal is translated too, and each staff member chooses their own language (see below). Arabic is written right to left: the page switches direction by itself, and the layout, menus, icons, tables and the date picker are mirrored. Names, e-mail addresses, domains and numbers stay left to right inside an Arabic page, the way readers expect.

The admin portal language

Every staff member picks the language of their own admin portal on the My Account page (open your name in the top right, then My Account; the Language box is under your name). The choice is saved on their account (and follows them to every device), applies to the admin portal only and never changes what clients and visitors see. Any installed language can be chosen, even one you have not switched on for customers. Choosing English clears the choice. Staff who never choose see English.

The pages of the admin portal and the screens of the plugins you have installed (licensing, expenses, CMS, SMS and WhatsApp addons and the others) are translated. Text you or your staff typed (notes, product names, custom field names, email templates) stays as it was written.

Turn a language on

  1. Open Settings > General Settings > Locale and find the Language card.
  2. Tick the languages you want. A language that is not installed is dimmed. English is always on.
  3. Choose the Default Language. It is used for a visitor whose browser language is not on, and for emails to a client who has not chosen one.
  4. Leave Language switcher on to show a language menu on the storefront and in the client area, or switch it off to fix the site to one language.
  5. Save.

Installing a language never changes what visitors see by itself. It is on only after you tick it.

Which language a visitor sees

In this order:

  1. the signed-in client's own language, which is saved on their account when they pick one, either with the switcher or in the Language box on their Account Settings page (shown while more than one language is switched on; it is also the language of their emails, invoices and statements);
  2. the language chosen on the switcher (kept for a year);
  3. the language of the visitor's browser the first time, when it is one you have switched on;
  4. your default language.

A language you have switched off is never used. Any text a language does not have yet is shown in English.

Translate what you write

The names and texts you write yourself can be written in every language you have switched on. Whatever you type in the normal boxes is your default language and is shown whenever a language has no text of its own. Under the box (or on the edit page) a row of language tabs appears, one for each enabled language except the default. Fill in the tabs you want; leave a tab empty to show the default text.

What Where
Product name, tagline, short description and description the product's Details tab
Product group name, headline, tagline and features the group's page (one feature per line, in the same order)
Configurable option groups, options and their values Settings > Configurable Options
Billing cycle names Settings > Billing Cycles (Add or Edit)
Site menu items Settings > Site Menu (Edit an item)
Custom fields: name, description and the label of each drop-down choice the field's edit form (the value a client saves stays the option you wrote)
Support department name and description Support > Departments (Edit)
Email templates: subject and body the template's edit page, Other Languages
Knowledgebase, docs, blog and announcement posts, categories and tags the CMS plugin (CMS > Posts, CMS > Categories); needs CMS 1.2.0

A name that ships with WHBMP (Monthly, Billing, My Invoices, Open, Paid ...) is already translated, so the standard menu and cycles need no work. A web address stays the same in every language. Searching a knowledgebase searches the default-language text.

The invoice lines, the order and the emails a client receives use the language the client had when it happened: invoice line text is saved in that language when the invoice is made.

Emails in your clients' languages

An email to a client is written in that client's language. The 57 built-in templates come with a translation in Spanish, German, French and Arabic, used as long as you have not changed the English text of that template. If you edit a template, write its other languages on its Other Languages tab (the Start from the text used today button fills a tab with the text that would be sent now, so you can adjust it). Dates, product names, billing cycles and status words inside an email follow the same language. Emails to staff stay in English.

What is not translated yet

These are still in English for every language:

  • text added by plugins that are not part of the standard set (their own language files can be added to a plugin);
  • the names of payment gateways, tax names printed on invoices and the text of invoice lines already created;
  • emails to staff.

Right to left and PDF invoices

PDF invoices are drawn with mPDF, which joins the letters of Arabic and Persian, writes right to left and picks a font that has the letters of the language. A client's invoice, by email, download or bulk export, is written in that client's own language, and a bulk export can mix languages invoice by invoice. The font of the PDF Font Family setting (DejaVu Sans, Helvetica, Times or Courier) is used for Latin, Cyrillic and Greek text; Arabic text comes from a font that has Arabic letters.

Month names, country names, billing cycle names such as Monthly and Annually, and status words such as Paid and Pending also follow the language of the page.

The fonts that ship cover Latin, Greek, Cyrillic, Arabic and Persian. Chinese, Japanese and Korean fonts are large and are added together with those languages.

Notes for people who translate

  • A language pack is one file, lang/<code>.json: the English text on the left and the translation on the right. A text with a :name keeps that word exactly as it is. A text with a | has one form for each plural.
  • php artisan i18n:check checks the packs, php artisan i18n:missing <code> shows what a language still lacks, and php artisan i18n:scan counts the text in the views that is not translatable yet.
  • The translations that ship with WHBMP are a first draft written by machine. Have a native speaker check them, especially invoices and legal text, before you rely on them.
Powered by WHBMP