Skip to content
weLabsweLabsStorefront Playbook
Live demoQuickstart

Features

Languages and RTL

Serve one storefront in several languages, with full right-to-left layouts, translated catalogue content and dates and prices that follow your store's settings.

Many stores sell in more than one language. The storefront serves them all from one deployment, with a language switcher in the header, a proper address for every language that search engines can index, and layouts that mirror completely for right-to-left scripts such as Arabic.

Where it shows
Every page, under a path prefix per extra language (for example /ar/shop)
Configure in
The deployment's STOREFRONT_LOCALES; translated content from WPML or Polylang in WordPress
Requires
Nothing extra for interface text; a multilingual WordPress plugin for translated products and posts
Try it in Demo Mode
Set STOREFRONT_LOCALES=en,ar to browse the demo store in English and Arabic
  • Their language, at a shareable address. The first language in the list is served without a prefix; every other language lives under its own prefix, such as /ar/. Links, bookmarks and search results keep the language.
  • A language switcher in the header that keeps them on the same page when they switch. It appears automatically when the store has more than one language, and not at all when it has one.
  • Full right-to-left layouts for Arabic, Persian, Hebrew and Urdu. The whole storefront mirrors, from the header to the checkout, not just the text direction.
  • Translated catalogue content where your WordPress site provides it: product names, descriptions, categories and posts in the Shopper’s language.

Interface text, such as buttons, labels and messages, comes from message catalogues shipped with the storefront. English and Arabic ship complete. Any other language can be added by translating those catalogues; until a phrase is translated, the English one is shown, so a new language never breaks a page.

Your content is a different matter: products, categories and posts come from WordPress. When the deployment sets WOO_MULTILINGUAL_PARAM (usually lang), the storefront passes the Shopper’s language to WordPress on every request, and a multilingual plugin such as WPML or Polylang answers in that language. Without one, the store’s single content language is shown in every interface language.

Right-to-left support is built in rather than bolted on: the storefront’s styles use logical directions throughout, and a lint rule plus a CI check stop anyone adding left/right-only styling by mistake.

Every public page tells search engines about its other language versions with hreflang links, and the sitemap lists each page in every language. See SEO.

Dates and prices follow your store, not the visitor’s device:

  • Dates in the store’s timezone. Order dates, Journal dates, sale end times and the Today’s Deals countdown all use the timezone set in WordPress › Settings › General. A sale that ends “Sunday at midnight” means the same moment to you, your support team and every Shopper.
  • Prices in the store’s currency format. The currency, symbol, number of decimals, separators and symbol position come from WooCommerce › Settings › General. Prices keep that format in every language, because currency belongs to the store, not to the language.
  • Dates and other numbers read naturally in the Shopper’s language, for example month names in Arabic.

Change either setting in WordPress and the storefront follows it, with no redeploy.

  1. Choose the languages. The deployment lists them in order in STOREFRONT_LOCALES, for example en,ar. The first is the default. See Configuration and Environment variables.
  2. Translate content in WordPress with WPML or Polylang, and set WOO_MULTILINGUAL_PARAM to the query parameter that plugin reads.
  3. Check the timezone and currency in WordPress and WooCommerce; see WooCommerce settings.
  • A bad list never takes the store down. An invalid STOREFRONT_LOCALES value falls back to English only.
  • Per-language policy pages and SEO. The Companion plugin can hold a different policy page and SEO pattern for each language, but the list of languages it offers is set by a developer filter today, not in wp-admin. See Pages and content.
  • Store identity is per deployment. The store name and fallback timezone and currency live in the storefront’s configuration and are used only until WordPress answers. See Store identity.
Storefront Playbook · Built by weLabsFeaturesFAQTalk to us