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

# Languages

> Generate AI-powered product content in multiple languages and configure language-specific prompts.

Cernel supports multi-language content generation. Enable the languages your store needs, give each one a translation prompt to guide AI output, and generate enriched content across all your active languages in a single enrichment run.

## How it works

Your organization has a **primary language** and can enable additional languages. When you run enrichment, Cernel generates content in each enabled language. Each language can carry its own **translation prompt** - additional context for that language, like grammar rules, cultural preferences, or terminology that should be used.

Languages are managed under **Tools > Languages**:

* The **languages list** is where you enable or disable languages and add new ones.
* Each language has its own **detail page** - open it to write that language's translation prompt and control how it's used during enrichment.

### Why you would use this

<CardGroup cols={2}>
  <Card title="Reach customers in their language" icon="earth-americas">
    Generate product descriptions, meta titles, and structured data in every language your store supports - without hiring translators.
  </Card>

  <Card title="Language-appropriate content" icon="message-lines">
    A per-language translation prompt ensures AI output follows the grammar, tone, and conventions of each target language, not just a direct translation.
  </Card>
</CardGroup>

## Setting up languages

<Steps>
  <Step title="Enable languages">
    Go to **Tools > Languages**. You'll see a table of available languages with their language code and status. Toggle languages on or off using the switch in each row.

    Your primary language is marked with a badge and cannot be disabled.

    <Frame>
      <img src="https://mintcdn.com/cernel-e5adbeb5/8s8TTk4ITllBQt38/images/languages/languages-table.png?fit=max&auto=format&n=8s8TTk4ITllBQt38&q=85&s=07149117ecbb877f6d1e45f3e36d866f" alt="The Languages settings table showing rows for English (Primary, Enabled), Danish (Enabled), German (Enabled), and French (Disabled), each with a language code and a toggle switch" width="2880" height="1800" data-path="images/languages/languages-table.png" />
    </Frame>
  </Step>

  <Step title="Add a new language">
    Click **Add Language** to enable a language that isn't in your list yet. Type the language code you want, for example `en` for English, `da` for Danish, or a region-specific code like `sv_FI` for Swedish (Finland), and click **Add Language**. Once added, the language appears in your table.

    <Frame caption="Adding a new language to your organization">
      <img src="https://mintcdn.com/cernel-e5adbeb5/shJaaIGxs0Ul_NRI/images/languages/add-language.png?fit=max&auto=format&n=shJaaIGxs0Ul_NRI&q=85&s=dad41ffb3041cc9140e845fd480d3d52" alt="The Add Language modal with a free-text Language field and placeholder e.g. en, da, sv_FI" width="2880" height="1800" data-path="images/languages/add-language.png" />
    </Frame>

    <Tip>
      Language codes follow the IETF / ISO 639 conventions Cernel uses across the platform. Use a two-letter code (`en`, `da`, `de`) for a generic language, or combine a language and region with an underscore (`sv_FI`, `pt_BR`, `en_GB`) when you need region-specific content. The platform validates the code on submit, so if a code isn't recognised you'll see an error and can try again.
    </Tip>
  </Step>

  <Step title="Configure a language's translation prompt">
    From **Tools > Languages**, click a language in the table to open its detail page. Here you can write a **translation prompt** for that language - instructions that guide how the AI produces content in it. Use it for:

    * Grammar and style rules specific to the language
    * Cultural conventions and preferences
    * Terminology that should (or shouldn't) be used

    Type `/` in the prompt editor to pull in a Data Source for reference, then click **Save**.

    <Frame caption="A language's detail page, with its translation prompt and the enrichment toggle">
      <img src="https://mintcdn.com/cernel-e5adbeb5/9Alp2p3swdhytTZ5/images/languages/language-detail.png?fit=max&auto=format&n=9Alp2p3swdhytTZ5&q=85&s=59a89649335e37a0860637040f6805ac" alt="The Danish language detail page showing the Translation Prompt section with an empty prompt editor and a Save button, and a 'Use translation prompt for all language enrichments' toggle switched on in the top-right corner of the section" width="2880" height="1800" data-path="images/languages/language-detail.png" />
    </Frame>

    <Tip>
      The **Use translation prompt for all language enrichments** toggle, at the top right of the Translation Prompt section, is on by default. While it's on, Cernel automatically instructs your agents to write this language's enriched content *in* that language, so your output always comes back correctly localised. Turn it off only if you'd rather control the output language entirely through your own prompts.
    </Tip>

    <Check>
      Your languages are configured. When you run enrichment, Cernel generates content in each enabled language, applying that language's translation prompt.
    </Check>
  </Step>
</Steps>

## Advanced configuration

<AccordionGroup>
  <Accordion title="Global Prompts for attribute types">
    Besides per-language translation prompts, you can set Global Prompts per attribute type (Text, HTML, Single Select, Multi Select). These are configured in **Settings > Global Prompts**. They provide foundational instructions that apply to all agents generating that type of content.

    For example, a system prompt for HTML might say "Always use semantic HTML headings" while one for Single Select might say "When uncertain, choose the closest match rather than leaving empty."
  </Accordion>

  <Accordion title="Translations for select attribute values">
    For Single Select and Multi Select attributes, the predefined values can be translated into each enabled language. When configuring an attribute, the Values section shows translation status for each value. You can auto-translate or enter translations manually.
  </Accordion>

  <Accordion title="Disabling a language">
    Disabling a language hides it from language selections but preserves all existing translations. You can re-enable it later without losing any data.
  </Accordion>
</AccordionGroup>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Do I need separate agents for each language?">
    No. The same agents work across all languages. Cernel handles the language context through each language's translation prompt and your language settings. Your agents focus on what to generate, not which language to use.
  </Accordion>

  <Accordion title="Can I enrich in only one language at a time?">
    The enrichment modal shows your enabled languages. Content is generated for all enabled languages by default. If you need content in just one language, you can manage this through your language settings.
  </Accordion>

  <Accordion title="What's the difference between a translation prompt and an agent prompt?">
    A **translation prompt** is set per language and applies automatically to all content generated in that language - it handles language-wide rules. **Agent prompts** define what content to generate and how. They work together: the agent prompt says "write a 150-word product description" and the language's translation prompt adds "use formal Danish grammar."
  </Accordion>

  <Accordion title="When a language is set to Translate, does it keep the original prompt's rules?">
    Yes. When a language is set to **Translate** (rather than **Generate**), Cernel translates the value produced in the source language instead of writing it again from scratch. The translation reuses the prompt that generated the original value as read-only guidance, so the translated value honors the same length, tone, and format rules as its source. For example, a value written to a 150-word limit stays within that limit after translation. Each translated value also passes the same quality check Cernel applies to generated content, so corrupted output is caught and retried automatically.
  </Accordion>
</AccordionGroup>

## What's next

<CardGroup cols={2}>
  <Card title="AI Agents" icon="arrow-right" href="/features/ai-agents">
    Create agents that generate content across all your enabled languages.
  </Card>

  <Card title="Enriching Products" icon="arrow-right" href="/features/jobs-and-enrichment">
    Run multi-language enrichment across your product catalog.
  </Card>
</CardGroup>
