# Your app in other languages

Offer your site in French, Spanish or any other language. You read every translation before anyone else sees it.

Your site can be read in other languages. Each language gets its own address: your About page in French is `/fr/about`. Nobody but you sees a translated word until you have read it and said yes.

## How to turn it on

Tell your AI: *"Offer my site in French and Spanish."* It adds this to the app's `deploy.json` and deploys again:

```json
"languages": { "offer": ["fr", "es"] }
```

Languages are written the way a browser writes them: `fr`, `es`, `de`, `pt-BR`, `zh-Hans`. An app can offer up to 30. Your AI needs uarpie 0.3.0 or later: `npx uarpie@latest` makes sure.

Or add one yourself: on your app's page in the dashboard, open **Settings**, and under **Your site in other languages** press **Add a language**. A language you add there stays offered when your AI deploys again, even if its `deploy.json` does not name it. **Stop offering it** takes it away again; its translations are kept, and come back if you add it again.

It works for websites. It needs a paid plan, and the app must be one you have kept.

Three limits: on a one-page app, the `/fr` part leaves the address once the app starts (a reload comes back in French); on Next.js, links inside client components reload the page; and the original words can show for a split second as a page opens.

## What gets translated

Everything your visitors read on your pages, in two ways:

- **Pages you name.** List the pages that look the same for everyone in `speed.shared` in [deploy.json](/docs/deploy-json): `["/", "/about", "/prices"]`. They are translated when you deploy, before anybody can reach them. Name each page by its address; a pattern like `/blog/*` is left to the second way. Never name a page that shows anything personal.
- **Everything else on screen.** Menus, buttons, words your app draws in the browser, and pages you have not named. They are translated as you look around your app in the language, screen by screen.

A page whose words have not changed is not translated again. Words inside pictures, and anything a visitor types, stay as they are.

## Read it, then publish

On your app's page in the dashboard, **Your site in other languages** lists each language.

1. Press **Open it in French**. Your site opens in French, for you alone.
2. Look around. Each screen you open is translated as you go, and the dashboard counts what is waiting for you. The bell at the top of the dashboard tells you when a translation is waiting.
3. When you are happy, press **Publish**. Everyone can read it from then on, though the first few visits after you publish may still show the old version.

**Take it back** returns a language to just you. The first few visits after that may still show the translation. Publishing is always your decision.

Search engines are told about every language you publish, so people searching in that language can find your pages.

## Change the wording

Under each language, **See every line** lists every line of your app: your own words on one side, the translation on the other, each in a box you can change. Find a line by its words, or show only the ones waiting for you. Change one and press **Save**.

You can also change it on the page itself. While you read your site in the language, press **Edit wording** in the bottom right corner, then click the words you want to change. A box shows them in your own language and in the translation. Write what they should say and press **Save**.

Your wording replaces the translation everywhere those words appear on your site, and it stays when you deploy again. If the language is published, visitors see it too, though the first few visits after your change may still show the old wording. If it is not published, your wording waits with the rest until you publish. Words that were never translated can be given your own wording the same way. Changing wording is never counted against your translated pages.

## What it costs

Each plan includes translated pages every month, for all your apps together: 5 on Personal, 10 on Family, 40 on Community, none on Free. One page into one language counts as one. Words your app draws on screen count as one page for every 500 words. Your billing page shows how many you have used.

A page past your plan's number is never charged. It stays in your own language until the month starts again, and is translated the next time you deploy or look around your app in that language. See [Your month and the spending limit](/docs/spending-limit).
