# Localization (/guides/localization)

Plunk localizes the strings it controls — the auto-injected unsubscribe footer on marketing emails, the hosted unsubscribe / subscribe / preferences pages — into the language of your audience. Your own template content (subject lines, body copy) is **not** translated automatically; you control that yourself.

## Setting the project default

Open **Settings → Project** and pick a default language. This is used for any contact who doesn't have a specific language set on their record.

## Overriding per contact

Set a `locale` field on the contact's `data` to override the project default for that recipient:

```bash
curl -X POST https://next-api.useplunk.com/v1/track \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada@example.com",
    "event": "signed_up",
    "data": { "locale": "fr" }
  }'
```

Use a [BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) / ISO 639 code that matches one of the supported languages below. You can also reference `{{locale}}` inside template variables to branch your own copy on the contact's language.

If the contact's `locale` doesn't match a supported language, Plunk falls back to the project default. If neither is set, English is used.

## Supported languages

| Code    | Language                         |
| ------- | -------------------------------- |
| `en`    | English                          |
| `nl`    | Dutch (Nederlands)               |
| `fr`    | French (Français)                |
| `de`    | German (Deutsch)                 |
| `es`    | Spanish (Español)                |
| `it`    | Italian (Italiano)               |
| `pt`    | Portuguese (Português)           |
| `pl`    | Polish (Polski)                  |
| `cs`    | Czech (Čeština)                  |
| `bg`    | Bulgarian (Български)            |
| `hi`    | Hindi (हिंदी)                    |
| `zh-CN` | Chinese (Simplified, China)      |
| `zh-TW` | Chinese (Traditional, Taiwan)    |
| `zh-HK` | Chinese (Traditional, Hong Kong) |

## What gets translated

| Surface                                            | Translated?                                                   |
| -------------------------------------------------- | ------------------------------------------------------------- |
| Unsubscribe footer on marketing emails             | Yes                                                           |
| Hosted unsubscribe / subscribe / preferences pages | Yes                                                           |
| **Your own template subject and body**             | No — author per-language templates and branch on `{{locale}}` |

## Translating your own templates

Plunk doesn't translate the content of your templates. Two common patterns:

* **One template per language**, picked in your code or workflow before sending. Name them with the locale suffix (`welcome-en`, `welcome-fr`).
* **One template with branched copy**, using `{{locale}}` inside Handlebars conditionals to inline different language variants. Workable for short copy; gets unwieldy for long emails.

For larger localization needs, the per-language template approach is easier to maintain.
