Skip to main content

Overview

Spree supports two types of translations:
  1. Resource Translations — translatable content fields on models like Products, Taxons, and Stores (e.g., product name, description, slug)
  2. UI Translations — interface strings used in the admin panel (e.g., button labels, flash messages)
For configuring which locales and currencies are available in your store, see Markets. Markets control locale and currency assignment per geographic region.

Resource Translations

Resources with user-facing content fields have built-in support for translations. Each translatable resource has a corresponding translations table in the database — for example, product translations are stored in spree_product_translations.

Translatable Fields

ResourceTranslatable Fields
Productname, description, slug, meta_description, meta_keywords, meta_title
Taxonname, description, permalink
Taxonomyname
Option Typepresentation
Option Valuepresentation
Propertypresentation
Product Propertyvalue
Storename, meta_description, meta_keywords, seo_title, facebook, twitter, instagram, customer_support_email, description, address, contact_phone

Store API

To retrieve translated content, pass the locale via the X-Spree-Locale header or the SDK locale option:
// Fetch product in French
const product = await client.store.products.get('spree-tote', {
  locale: 'fr',
})

product.name        // "Sac Spree"
product.description // "Un sac fourre-tout élégant..."
product.slug        // "sac-spree"

// List taxons in German
const { data: taxons } = await client.store.taxons.list({}, {
  locale: 'de',
})
Slugs are also localized — a product can have different slugs per locale. See Slugs for details.

Managing Translations

Translations are managed in the Admin Panel. When editing a product, taxon, or other translatable resource, switch the locale selector to enter content in each language. Translations can also be managed via the Admin API.

UI Translations

Spree stores UI translation strings in a separate project: Spree I18n. This is a community-maintained project with locale files for 43+ languages. To install UI translations:
bundle add spree_i18n
Once installed, all translation files are available automatically — no need to copy any files.
The full list of supported locales is available in the Spree I18n GitHub repository.
  • Markets — Locale and currency configuration per geographic region
  • Slugs — Localized slugs and URL identifiers
  • Stores — Multi-store setup
  • Products — Product translations