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

# Languages

> Serve your site in several languages: write one, and the rest is translated for you

Your site can speak more than one language. You write your copy in **one** language (the
site's *source language*), and wondeya automatically translates everything you did not
write yourself, moments after you save. Today the supported languages are **Spanish** and
**English**; the model is built to grow beyond them.

## How it works

1. **Pick the site's languages.** In your project's Domains tab, the *Site languages* card
   declares which languages the site serves and which one is the source: the language you
   write in. Each page remembers the source it was created with: changing the site's
   source later applies to the navbar, footer and pages you create afterwards, while
   existing pages keep serving the language they were written in at their bare URL.
2. **Write in your language.** The page editorial (badge, headline, description) and the
   navbar and footer are yours to write exactly as before, in the source language.
3. **The rest is filled in.** After every save, anything missing in the other languages is
   machine-translated automatically (with the exceptions listed under *What gets
   translated*). Saving stays instant in the language you edited; the
   translations land a few seconds later and the public pages update on their own.

## One URL per language

Each language gets its own address, which is what makes translated pages real pages
(shareable, cacheable and indexable):

```
https://acme.wondeya.app/pricing      → the page's source language (say, Spanish)
https://acme.wondeya.app/en/pricing   → the English variant
```

Because language prefixes are addresses, the language codes themselves (`/es`, `/en`)
are reserved: a page cannot live at those paths.

Search engines are told about every variant with `hreflang` alternates in your sitemap,
each variant is its own canonical URL, and a variant whose translation has not landed yet
is served with a fallback and kept out of search indexes until it is complete. When a site
serves more than one language, the navbar shows a small language switcher.

## Your edits always win

Every translated text remembers where it came from:

| State        | Meaning                                                                                                                                  |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **Auto**     | Machine-translated from your source text, up to date. Re-translated automatically whenever you change the source.                        |
| **Edited**   | You wrote or corrected this translation by hand. The machine never touches it again.                                                     |
| **Outdated** | You edited this translation by hand, and the source text changed afterwards. It keeps serving, and the console flags it for your review. |

To edit a translation, switch the language selector in the editing dialog and type over
it. To hand a field back to the machine, clear it: an empty translated field is refilled
automatically on the next save. *Re-translate* re-runs the translation for a page or for
the navbar and footer: it fills gaps and refreshes outdated automatic text, and never
overwrites something you wrote.

## What gets translated

* The **page editorial**: badge, headline, highlighted fragment and description.
* The page's **SEO title and meta description**: the texts a search engine shows. They
  follow the same Auto / Edited / Outdated rules as the editorial; the page's social
  image is shared across languages.
* The **navbar and footer**: link labels, footer group titles and the legal name. Link
  *destinations* are shared across languages; only the text is per-language.
* The **agent's display copy**: the subtitle, description and suggested questions a visitor
  reads before typing. It belongs to the agent rather than the page, and is translated into
  the languages the agent itself speaks, so the same brain greets visitors in the right
  language on every page and every embed that uses it.

What is **not** translated:

* The body of a **document page** (privacy, terms): a legal or informational document is
  yours to word, so the machine never translates it. Add each language yourself when you
  edit the page; a language you have not written serves the source document whole.
* Your **knowledge base**: the agent already answers in the visitor's language, whatever
  language your documents are in.
* Asset **alt text** you curated per language, and internal names that visitors never see.

## The conversation

The agent has always answered in the language the visitor writes in. With language
variants, the conversation *starts* right too: a visitor on `/en/…` gets the English page,
English suggested questions, and an agent whose framing matches the page they are reading.

## The embed

The widget is independent of your site's pages (it embeds an agent, not a page), so its
language is set by the snippet you install; see [Widget](/docs/widget).
