i18n: rename locale cookie to NEXT_LOCALE (Next.js convention)

This commit is contained in:
2026-08-24 19:06:06 +02:00
parent 21b948a4f8
commit f919c288b2
7 changed files with 95 additions and 7 deletions
+37 -2
View File
@@ -109,7 +109,7 @@ Dostępne tokeny (każdy ma odpowiednik `-dark` używany pod `dark:`):
| `--ipal-hover` | `#f5f5f5` | hover przycisków drugorzędnych |
| `--ipal-radius` | `0.375rem` | zaokrąglenie przycisków |
Wymaga `@source` skanującego pakiet (patrz frontend-setup.md) — inaczej Tailwind
Wymaga `@source` skanującego pakiet (patrz getting-started.md) — inaczej Tailwind
nie wygeneruje tych klas.
### Gdy tokeny nie wystarczą
@@ -131,4 +131,39 @@ Sloty: `root`, `primaryButton`, `secondaryButton`. Podany className zastępuje
domyślny (nie dokleja się).
Elementy mają też `data-ipal="banner"` i `data-ipal="cookie-button"` — stabilne
uchwyty do CSS albo testów e2e.
uchwyty do CSS albo testów e2e.
## Locale jako cookie functional (wbudowane)
Plugin sam zarządza jedną cookie functional: **`NEXT_LOCALE`** (wybór języka).
Nie musisz nic konfigurować — działa out of the box:
- **Zapis za zgodą.** Middleware zapisuje `NEXT_LOCALE` tylko, gdy użytkownik
zaakceptował kategorię **functional**. Bez zgody język działa (negocjacja per
żądanie), ale nie jest utrwalany w cookie.
- **Sprzątanie po cofnięciu.** Gdy użytkownik cofnie zgodę na functional, hook
consent usuwa `NEXT_LOCALE` automatycznie. Odpowiada za to `DEFAULT_COOKIE_MAP`:
```ts
const DEFAULT_COOKIE_MAP = {
functional: [LOCALE_COOKIE_NAME], // 'NEXT_LOCALE' — plugin zna własną cookie
}
```
### Twoje własne cookie functional/analytics
Jeśli ustawiasz własne cookie podlegające zgodzie, rozszerz mapę — hook wtedy
sprzątnie też Twoje po cofnięciu zgody:
```ts
useConsent({
functional: ['NEXT_LOCALE', 'moje-ustawienie'],
analytics: ['_ga', '_gid'],
})
```
Przekazana mapa zastępuje domyślną — pamiętaj dołączyć `NEXT_LOCALE`, jeśli
chcesz zachować sprzątanie locale (albo zaimportuj `LOCALE_COOKIE_NAME` i dodaj).
> Mechanizm zgody dla locale jest opisany też od strony i18n:
> [i18n.md](./i18n.md#cookie-locale-a-zgoda-rodo).