Skip to content
Pro · Professional tierRequires an Easy Invoice Pro Professional licence or above. Get Easy Invoice Pro →

Client Language

A Swiss agency invoicing French, German and Italian clients from one site needs three invoice languages, not one. WordPress has a single site language; this addon gives each client their own.

What you get

  • A language on the client record. Every document produced for that client — the public invoice and quote page, the PDF, the invoice, quote and payment emails — is rendered in it. Your admin screens never change.
  • Two sources of wording, layered:
    1. the WordPress language pack installed for that language translates the plugin's own strings;
    2. the Translations page (Easy Invoice → Translations) holds your wording per language — the document labels you renamed under Settings, and the email subjects and bodies you wrote.
  • Graceful fallback. Anything without a translation goes out in the site language, so a missing pack degrades to today's behaviour, never to broken output.

Enabling

  1. Install the language packs you need under Settings → General → Site Language (choose the language, save, then switch back — the pack stays installed), or with WP-CLI: wp language core install de_DE
  2. Open Easy Invoice → Addons and activate Client Language
  3. Open a client record: a Document language panel lists the site language and every installed pack. Pick one and save.
  4. Open Easy Invoice → Translations, choose the language, and fill in the labels and email text you want that client to see

The Translations page

One language at a time. Strings are grouped by where they appear:

  • Document labels — the labels as you saved them under Settings (e.g. "Sub Total", "Bill to"). A translation here applies wherever that label prints.
  • Plugin strings — labels the plugin prints itself, and plural pairs written as one|many.
  • Emails — the subject and body of every email template as saved on the Email settings screens. Placeholders such as work as usual.

Leave a field empty to keep the default. Export downloads the language as JSON (for a backup, or to hand to a translator); Import loads one back.

What is not translated

Content you typed on the invoice itself — line items, notes, terms — is yours and goes out as written. Dates and currency follow the switched locale's formats.

For developers

HookTypePurpose
easy_invoice_client_locale_switchedactionAfter the locale was switched for a client's document ($locale)
easy_invoice_text_settingfilter (free plugin)A saved document label on its way to a document ($value, $key, $default)
easy_invoice_email_template_datafilter (free plugin)An email template before subject and body are built ($template, $template_key, $document)
easy_invoice_email_finishedaction (free plugin)Once a send is over, whether or not it went out
easy_invoice_pro_translatable_stringsfilterAdd strings to the Translations page

The client's language is user meta _easy_invoice_client_locale; overrides live in easy_invoice_pro_translations_{locale}.