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

# Localization

> Serve every partner in their own language and currency - translate portal content automatically and show deals, commissions, and analytics in the currency that makes sense to each partner.

export const Headless = ({prompts = []}) => {
  const PromptRow = ({prompt}) => {
    const [copied, setCopied] = useState(false);
    const copy = () => {
      try {
        navigator.clipboard?.writeText(prompt);
      } catch {}
      setCopied(true);
      setTimeout(() => setCopied(false), 1600);
    };
    return <div className="group flex items-center justify-between gap-3 px-4 py-3 transition-colors hover:bg-[#FD90FF]/[0.06]">
        <span className="text-sm leading-relaxed text-zinc-700 dark:text-zinc-200">{prompt}</span>
        <button type="button" onClick={copy} aria-label={copied ? "Copied to clipboard" : "Copy prompt"} className={`shrink-0 rounded-md p-1.5 transition-all hover:bg-[#FD90FF]/10 focus:opacity-100 focus:outline-none ${copied ? "text-[#FD90FF] opacity-100" : "text-zinc-400 opacity-0 group-hover:opacity-100 dark:text-zinc-500"}`}>
          {copied ? <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M20 6L9 17l-5-5" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg> : <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" strokeWidth="2" />
              <path d="M5 15V5a2 2 0 0 1 2-2h10" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>}
        </button>
      </div>;
  };
  return <>
      <p>
        Introw is <strong>headless</strong> by design: run everything here in plain language from Claude, ChatGPT,
        Slack, Teams, or your own CRM through Introw's <a href="/features/developer/mcp">MCP server</a>, with every
        action written straight back to your CRM source of truth. The portal is one surface, never the only one.
      </p>

      {prompts.length > 0 ? <div className="not-prose my-6 overflow-hidden rounded-2xl border border-zinc-200/80 bg-white shadow-sm dark:border-white/10 dark:bg-white/[0.02]">
          <div className="flex items-center gap-2 border-b border-zinc-200/80 bg-gradient-to-r from-[#FD90FF]/10 via-[#FD90FF]/5 to-transparent px-4 py-2.5 dark:border-white/10">
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4 text-[#FD90FF]" aria-hidden="true">
              <path d="M12 2.5l2 5.5 5.5 2-5.5 2-2 5.5-2-5.5L4.5 10l5.5-2 2-5.5z" fill="currentColor" />
              <path d="M18.5 14l1 2.6 2.6 1-2.6 1-1 2.6-1-2.6-2.6-1 2.6-1 1-2.6z" fill="currentColor" opacity="0.55" />
            </svg>
            <span className="text-xs font-semibold uppercase tracking-wider text-zinc-500 dark:text-zinc-400">
              Try it from your LLM
            </span>
          </div>

          <div className="flex flex-col divide-y divide-zinc-100 dark:divide-white/[0.06]">
            {prompts.map(prompt => <PromptRow key={prompt} prompt={prompt} />)}
          </div>

          <a href="/headless" className="flex items-center justify-between gap-2 border-t border-zinc-200/80 px-4 py-2.5 text-sm font-medium text-zinc-600 no-underline transition-colors hover:text-[#FD90FF] dark:border-white/10 dark:text-zinc-300">
            <span>See the full headless playbook</span>
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </a>
        </div> : <Card title="See the headless motion" icon="wand-magic-sparkles" href="/headless">
          The agentic playbook - lifecycle deep dives and a Claude Code skill library that run your partner program
          from Claude, ChatGPT, Slack, and your CRM.
        </Card>}
    </>;
};

> A partner program is only as good as the experience it gives each partner. Localization lets you run one program that meets partners in their language and their currency, so a reseller in Tokyo and a referral partner in Berlin both feel like the program was built for them.

## What this area does

Localization covers two capabilities. Multi-lingual lets you add the languages your partners speak,
set a default, and have portal content, courses, forms, and emails appear in each partner's language,
translated automatically and kept consistent with a brand glossary. Multi-currency lets you enable
currency conversion, set your company base currency, and assign each partner a currency, so deals,
commissions, and analytics display in the amounts each side expects.

Both features work the same way operationally: you configure them once, and the right language or
currency follows the partner across every surface they touch, on or off the portal.

## Why it matters

* **Partner self-serve** - Partners read, learn, and act in their own language without asking.
* **Trust and accuracy** - Currency values are converted with CRM-synced rates, so numbers reconcile.

## How it fits together

Set language and currency once, and they follow the partner everywhere:

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  language["Language"] --> partner["Partner profile"]
  currency["Currency"] --> partner
  partner --> surfaces["Every surface the partner touches"]
```

## Capabilities

<CardGroup cols={2}>
  <Card title="Multi-lingual" icon="language" href="./multilingual">
    Translate portal content into your partners' languages.
  </Card>

  <Card title="Multi-currency" icon="coins" href="./multi-currency">
    Show deals and commissions in each partner's currency.
  </Card>
</CardGroup>

## Who works in this area

<CardGroup cols={2}>
  <Card title="Partner Operations" icon="user">
    Configures languages and currency.
  </Card>

  <Card title="Partner Marketing" icon="user">
    Keeps translated content on brand.
  </Card>

  <Card title="Finance" icon="user">
    Relies on accurate currency conversion.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Set Acme's language to French and currency to EUR.",
"Answer this partner's question in Spanish.",
]}
/>

## All guides

{/* ROLLUP:START - generated content goes here */}

<CardGroup cols={2}>
  <Card title="Run your program in multiple currencies" icon="book-open" href="/features/localization/multi-currency/guides/enable-multi-currency">
    Set your base currency, turn on multi-currency, confirm CRM-synced rates, and give each partner the currency they work in.
  </Card>

  <Card title="Control which experiences get translated" icon="book-open" href="/features/localization/multilingual/guides/enable-multilingual-for-an-experience">
    Turn automatic translation on or off for a specific portal experience.
  </Card>

  <Card title="Keep your brand correct in every language" icon="book-open" href="/features/localization/multilingual/guides/manage-the-brand-glossary">
    Define protected terms so product names and trademarks are never mistranslated.
  </Card>

  <Card title="Set up the languages your partners see" icon="book-open" href="/features/localization/multilingual/guides/set-up-portal-languages">
    Add the locales your partners speak, set the fallback default, and control how each partner is served their language.
  </Card>

  <Card title="Localize a file in the asset library" icon="book-open" href="/features/localization/multilingual/guides/translate-an-asset">
    Give a library asset translated versions so partners download collateral in their language.
  </Card>
</CardGroup>
