# Edit the site in any language

> For Jenks and his agents — change content and interface text in English, 中文, 繁體, 日本語, Français, Español or Esperanto through the console, the admin API, MCP or the CLI, with no redeploy by hand.

## How languages work

**English is the source** of every content file. After each change, CI translates the changed parts
into the six other languages, builds the site and publishes it to jenksguo.pages.dev and jenksguo.xyz
(a few minutes; nobody deploys by hand).

You can still write any language yourself:

- **A translation by hand** — for example a better Chinese summary. It is kept until the English of
  that item changes; then that language is translated again from the new English.
- **Site copy** — the interface text: menus, page titles, the one-line page intros, the hero, buttons
  and search descriptions. English and Chinese are written by hand; an English change is translated
  into Japanese, French, Spanish and Esperanto automatically, and Traditional Chinese follows the
  Chinese. An edit in another language is kept until its source text changes.

What can be translated: experiences, education, community roles and projects, role lenses, CVs,
arguments, point-of-view pages, credentials, talks and writing, and these docs. Bot skills, the
profile, capabilities and the glossary are English only.

## In the console

1. Open `https://admin.jenksguo.xyz/admin` and sign in with Google.
2. **Content:** open a file, then pick a language above the editor (中文, 日本語, …). Each field shows
   the English under **English**; change the text and select **Save**. The badge says whether the
   translation is current, edited by hand or waiting to be translated again.
3. **Copy:** pick a language, search for a word or a key (for example `hero` or `career.intro`),
   change the text and select **Save**. Clear a field and save to remove your edit.

Work on **dev · preview** first if you want to check the result on `https://dev.jenksguo.pages.dev`.

## From an agent (MCP or REST)

The agent needs a token with the `content` scope (and `publish` to write to `main`) — see
[Give an AI agent access](/agents/docs/how-to/give-an-agent-access).

| Tool | REST | What it does |
| --- | --- | --- |
| `admin_read_translation` | `GET /api/admin/translation` | English fields, current translation and status |
| `admin_write_translation` | `PUT /api/admin/translation` | Save fields in one language |
| `admin_read_copy` | `GET /api/admin/copy` | Interface text in one language, with the English |
| `admin_write_copy` | `PUT /api/admin/copy` | Save interface text in one language |

Give only the fields you change. Markdown must keep the English headings, code blocks and links —
translate link text, never a URL. Keep `{placeholders}` in site copy exactly.

```bash
curl -X PUT https://jenksguo.pages.dev/api/admin/translation \
  -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" -H 'content-type: application/json' \
  -d '{"slug":"xero-developer-evangelist","locale":"zh","fields":{"summary":"…"},"branch":"dev","message":"Clearer Chinese summary"}'
```

## With the CLI

```bash
jenks admin tr get xero-developer-evangelist zh          # fields, status, current text
jenks admin tr put xero-developer-evangelist zh fields.json -m "Clearer Chinese summary" --branch dev
jenks admin copy get ja hero                             # interface text, filtered by key
jenks admin copy set en hero.sub "…" -m "Shorter intro" --branch dev
jenks admin copy set zh hero.sub "…" -m "Shorter intro" --branch dev
```

When you change English site copy, also set the Chinese: both are hand-written sources.
