Overview
Spree supports two types of translations:- Resource Translations — translatable content fields on models like Products, Taxons, and Stores (e.g., product name, description, slug)
- UI Translations — interface strings used in the admin panel (e.g., button labels, flash messages)
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 inspree_product_translations.
Translatable Fields
| Resource | Translatable Fields |
|---|---|
| Product | name, description, slug, meta_description, meta_keywords, meta_title |
| Taxon | name, description, permalink |
| Taxonomy | name |
| Option Type | presentation |
| Option Value | presentation |
| Property | presentation |
| Product Property | value |
| Store | name, 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 theX-Spree-Locale header or the SDK locale option:
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:The full list of supported locales is available in the Spree I18n GitHub repository.

