[Sugester V2](https://sugester.intum.com/kb/sugester-v2.md) / [CMS](https://sugester.intum.com/kb/sugester-v2/cms-1.md)

# [Wielojęzyczność w CMS Sugester2](https://sugester.intum.com/kb/sugester-v2/cms-wielojezycznosc-multilang.md)

# Wielojęzyczność w CMS Sugester2

CMS Sugester2 pozwala prowadzić jedną stronę w wielu językach. Każda wersja językowa może mieć osobną domenę (np. firma.pl po polsku, firma.com po angielsku) — a treści zarządzasz z jednego miejsca.

## Jak to działa?

Zamiast tworzyć osobne strony dla każdego języka, tworzysz **jedną stronę główną** (master) z tłumaczeniami w polach. System automatycznie wyświetla właściwy język na podstawie domeny, z której wchodzi użytkownik.

### Domeny

Każdej domenie przypisujesz język:

- `firma.pl` → polski
- `firma.com` → angielski
- `firma.fr` → francuski

Gdy ktoś wejdzie na `firma.fr`, CMS automatycznie wyświetli francuską wersję treści.

### Pola z tłumaczeniami

Na stronie master dodajesz tłumaczenia w strukturze per język:

- **pl** → Profesjonalna obsługa klienta
- **en** → Professional customer service
- **fr** → Service client professionnel

W szablonie strony używasz po prostu `{{ hero_title }}` — system sam dobierze właściwy język.

### Strony per język (slave)

Dla każdego języka tworzysz **pustą stronę** z:
- Adresem URL w docelowym języku (np. `pricing` dla angielskiej wersji `cennik`)
- Ustawionym językiem
- Wskazaniem na stronę master

Strona slave **nie ma własnej treści** — dziedziczy ją automatycznie z mastera. Dzięki temu edytujesz treść w jednym miejscu, a zmiana pojawia się na wszystkich wersjach językowych.

### Przykład

Strona master: **cennik** (po polsku)
- Zawiera tłumaczenia PL, EN, FR w polach

Strony slave:
- `pricing` (angielska) → wskazuje na master "cennik"
- `tarifs` (francuska) → wskazuje na master "cennik"

Użytkownik wchodzi na `firma.com/pricing` → widzi cennik po angielsku.
Użytkownik wchodzi na `firma.fr/tarifs` → widzi cennik po francusku.

## Strona główna i blog

Strona główna (adres `/`) i listing bloga to **jedna strona** bez slave'ów. Tłumaczenia obsługiwane są wyłącznie przez pola z tłumaczeniami — na każdej domenie wyświetla się odpowiednia wersja językowa.

## Ważne zasady

1. **Teksty w polach, nie w szablonie** — każdy widoczny tekst powinien być w polu z tłumaczeniem, nie wpisany na sztywno w HTML
2. **Slave = pusta strona** — slave zawiera tylko adres URL i wskazanie na master. Treść dziedziczy automatycznie
3. **Adresy bez prefiksu językowego** — slave ma adres `pricing`, nie `en/pricing`
4. **Edytuj w jednym miejscu** — zmiany w masterze automatycznie pojawiają się na wszystkich wersjach językowych

## Szablony (layout)

Layout również obsługuje wielojęzyczność. Menu, stopka i przyciski logowania dostosowują się do języka domeny. Zmienne layoutowe (np. adres rejestracji) są dostępne jako `{{ layout.nazwa_pola }}`.

## Włączenie

Aby włączyć wielojęzyczność na stronie:
1. W ustawieniach Site zaznacz **Multilang**
2. Podepnij domeny z ustawionym językiem
3. Dodaj tłumaczenia w polach strony master
4. Utwórz puste strony slave z adresami URL per język
