> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sitestorepro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Languages: Multilingual Storefront Configuration

> Add storefront languages, configure RTL and per-language currency, run AI bulk translation across 11 content entities, and track jobs in the Queue Monitor.

Site Store Pro's multilingual system lets you serve every page of your storefront — products, CMS content, emails, and UI labels — in as many languages as you need. Manage everything under **Admin → Languages** (`/admin/languages`). Languages you activate appear instantly as selectable options in the storefront flag switcher.

***

## Adding and Configuring a Language

<Steps>
  <Step title="Create a new language">
    Navigate to **Admin → Languages** and click **Add Language**. Enter the language name and the two-letter country code used by the flag (for example, `us`, `fr`, `de`, `es`).
  </Step>

  <Step title="Set the flag icon">
    Site Store Pro uses the **flag-icons** CSS library. Enter the two-letter ISO country code in the **Flag Code** field. The matching flag SVG loads automatically — no image uploads required.
  </Step>

  <Step title="Configure currency overrides">
    Expand the **Currency** section for the language and set the currency **Code** (e.g. `EUR`), **Symbol** (e.g. `€`), and **Placement** (before or after the amount). These overrides apply to all prices displayed when a visitor selects this language.
  </Step>

  <Step title="Enable RTL if needed">
    Toggle **RTL Support** for languages that read right-to-left, such as Arabic or Hebrew. When enabled, Site Store Pro sets `dir="rtl"` on the `<html>` element, which flips layout direction and text alignment across the entire storefront.
  </Step>

  <Step title="Save the language">
    Click **Save**. The language becomes available in the storefront language switcher and in the admin translation tools.
  </Step>
</Steps>

### Language Configuration Reference

| Setting          | Description                                                      | Example       |
| ---------------- | ---------------------------------------------------------------- | ------------- |
| Language Name    | Display name shown in the language switcher                      | `French`      |
| Flag Code        | Two-letter country code for the flag-icons library               | `fr`          |
| Currency Code    | ISO 4217 currency code                                           | `EUR`         |
| Currency Symbol  | Symbol rendered next to prices                                   | `€`           |
| Symbol Placement | Whether the symbol appears before or after the amount            | `before`      |
| RTL Support      | Sets right-to-left layout for the entire storefront when enabled | Toggle on/off |

***

## AI Bulk Translation

Site Store Pro can translate your entire content library into a new language in one background operation. The bulk translation pipeline covers **11 core content types**:

<CardGroup cols={2}>
  <Card title="CMS Pages" icon="file-lines">
    All page titles, slugs, and body content managed under Admin → CMS → Pages.
  </Card>

  <Card title="Products" icon="box">
    Product names, descriptions, and SEO metadata for every item in your catalog.
  </Card>

  <Card title="Product Variants" icon="tags">
    Variant option labels (e.g. color names, size labels) for all product variants.
  </Card>

  <Card title="Knowledge Base Articles" icon="book">
    Every article in your helpdesk knowledge base.
  </Card>

  <Card title="Testimonials" icon="star">
    Customer testimonial text displayed on the storefront.
  </Card>

  <Card title="Navigation Items" icon="bars">
    Top-navigation and footer navigation link labels.
  </Card>

  <Card title="List Menu Items" icon="list">
    Dropdown and mega-menu list entries.
  </Card>

  <Card title="Product Categories" icon="folder">
    Category names and descriptions used in the shop catalog.
  </Card>

  <Card title="Site Labels" icon="tag">
    All UI strings — button labels, form placeholders, and navigation text.
  </Card>

  <Card title="Email Templates" icon="envelope">
    Subject lines, greetings, body content, and footer text for every transactional email.
  </Card>

  <Card title="Plugin Settings" icon="puzzle-piece">
    Translatable text stored in active plugin configuration.
  </Card>
</CardGroup>

### Running a Bulk Translation

<Steps>
  <Step title="Open the Languages admin">
    Go to **Admin → Languages** and locate the language card for the target language.
  </Step>

  <Step title="Start bulk translation">
    Click **Bulk Translate All** on the language card. Site Store Pro dispatches a background job for each of the 11 content types and returns immediately — you do not need to keep the browser open.
  </Step>

  <Step title="Monitor progress">
    Open the **Queue Monitor** (see below) to watch jobs process in real time and catch any failures.
  </Step>
</Steps>

<Warning>
  Bulk AI translation requires a valid **OpenAI API key** configured in your environment (`OPENAI_API_KEY`). Without this key, translation jobs will fail silently in the queue. Verify the key is present and has sufficient API credits before triggering a bulk run.
</Warning>

***

## Inline Editor Translation Tabs

Every translatable record in the admin — products, CMS pages, categories, and more — displays a **language tab** for each active language in its editor.

<Tip>
  After running a bulk translation, open a few representative records and click through the language tabs to spot-check quality. AI translation is highly accurate for common phrases but may miss brand-specific terminology or product jargon. Use the inline text fields on each tab to correct any mistranslations manually, or click **AI Translate Record** on a single record to re-translate just that item.
</Tip>

***

## Site Labels

Site labels are the UI strings that appear throughout your storefront — button text, form labels, error messages, and navigation copy. Manage them under **Admin → Languages → Site Labels**.

Each label has a translation field for every active language. You can:

* Edit labels manually by typing directly into the translation field.
* Use the per-label **AI Translate** button to generate a translation for a single string.
* Run **Bulk Translate All** from the language card to translate all labels at once as part of the full pipeline.

***

## Email Template Translations

Transactional email templates (order confirmations, shipping notifications, password resets, and others) each support a language tab for every active language.

| Action                       | How to Use                                                                                                        |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Manual edit                  | Click a language tab on the template editor and type directly into the subject, greeting, body, and footer fields |
| AI translate single template | Click **AI Translate Email** on the template editor to auto-translate all fields for the current language tab     |
| Bulk translate all templates | Include email templates in the **Bulk Translate All** pipeline triggered from the language card                   |

***

## Queue Monitor

The **Queue Monitor** at **Admin → Languages → Queue Monitor** (`/admin/languages/queue-monitor`) gives you a real-time view of background translation jobs without requiring SSH access to your server.

### Status Indicators

| Color     | Meaning                                                 |
| --------- | ------------------------------------------------------- |
| 🟢 Green  | Job processed successfully                              |
| 🔴 Red    | Job failed — expand the entry to view the error message |
| 🟡 Yellow | Job is currently processing                             |

### Controls

| Control          | Description                                                                                |
| ---------------- | ------------------------------------------------------------------------------------------ |
| **Start Worker** | Launches a queue worker process on the server                                              |
| **Stop Worker**  | Gracefully terminates the running worker                                                   |
| **Set Max Jobs** | Limits how many jobs the worker processes before restarting (useful for memory management) |
| **Clear Log**    | Wipes the visible terminal output without affecting the queue itself                       |

<Info>
  The Queue Monitor streams live job log output directly in your browser. You can safely close the monitor tab mid-translation — jobs continue running on the server and the log is available when you return.
</Info>
