
# Imposta le sostituzioni dei testi

`PUT /v1/branding/texts/{screen}/{locale}` · autorizzazione `branding:write`

Scrive le sostituzioni dei testi per una schermata e una lingua; le chiavi nel corpo vengono aggiunte o sostituite, le altre chiavi vengono mantenute. Si possono sostituire solo le chiavi del catalogo integrato, e un valore deve mantenere i `{{ placeholders }}` del testo di catalogo. I caratteri di controllo e di controllo bidirezionali vengono rifiutati. I testi di sicurezza non possono essere sostituiti: la schermata di consenso, la conferma di dispositivo e disconnessione, l'avviso sui codici di recupero e il banner di anteprima. Ha effetto alla pubblicazione.

## Richiesta

| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `screen` | path | sì | Schermata della pagina ospitata (ad es. `login`, `authorize`). |
| `locale` | path | sì | Lingua supportata (ad es. `en`, `tr`). |
| `application_id` | query | no | Ambito dell'applicazione (`app_…`). Senza questo e `org_id` viene usato l'ambito dell'ambiente. |
| `org_id` | query | no | Ambito dell'organizzazione (`org_…`). Non può essere combinato con `application_id`. |
| `texts` | object | sì | Chiave → valore, da 1 a 500 chiavi, ogni valore da 1 a 1000 caratteri. |

## Risposta

`200 OK` con ogni sostituzione dell'ambito, della schermata e della lingua.

```json
{"screen": "login", "locale": "tr", "texts": {"title": "Hoş geldiniz"}}
```

## Errori

| HTTP | code | Quando |
|---|---|---|
| 400 | `unknown_field` | Il corpo contiene un campo sconosciuto o non è un oggetto JSON. |
| 404 | `not_found` | `application_id` o `org_id` non è valido, oppure l'applicazione non esiste in questo ambiente. |
| 422 | `validation_failed` | `texts` manca o è vuoto, una chiave è sconosciuta (`unknown_text_key`), un placeholder manca (`placeholder_mismatch`), la lingua non è supportata o un valore non è valido; `pointer` è `/texts/<key>`. Sono stati forniti sia `application_id` sia `org_id` (`mutually_exclusive`), oppure uno dei due è stato ripetuto (`repeated`). |
| 401 | `unauthenticated` | La credenziale manca, non è valida o è revocata. |
| 403 | `insufficient_permissions` | La credenziale non ha l'autorizzazione richiesta. |
| 429 | `rate_limited` | È stato superato il limite di frequenza; riprova dopo il periodo indicato in `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza non è disponibile temporaneamente; riprova dopo il periodo indicato in `Retry-After`. |

## Esempio

```bash
curl -X PUT "https://api.eu.keenauth.com/v1/branding/texts/login/tr" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"texts":{"title":"Hoş geldiniz"}}'
```
