# A nyelvváltó testreszabása

> Elhelyezés, sorrend, hiányzó fordítás kezelése, elrejtés, URL-argumentumok, CSS és gyorsítótár.

A beállítások a **WPML → Settings → Language Switchers** oldalon vannak, kérdések szerint csoportosítva. Részletesebb leírás: [Nyelvváltó](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/nyelvvalto/).

## Mit tud alapból?

- Az összes aktív nyelvet megmutatja, az általad megadott sorrendben.
- A nyelveket a saját nevükön (Deutsch, Français) vagy az oldal aktuális nyelvén (német, francia) is felcímkézheti.
- Opcionálisan zászlókat mutat (a témával együtt méreteződő sprite).
- Kezeli a hiányzó fordítást: vagy kihagyja a nyelvet, vagy a nyelv nyitóoldalára mutat.
- Elhelyezhető bármelyik menüben, bármelyik widgetterületen, a láblécben, vagy a bejegyzések fölött és alatt.
- Van hozzá Gutenberg-blokk.
- Elrejthető ott, ahol útban lenne (404, pénztár, fiók).
- A kirenderelt HTML-t gyorsítótárazza.

## Mely nyelvek jelenjenek meg, és milyen sorrendben?

A **Language switcher options** kártyán egy húzással rendezhető lista mutatja az összes aktív nyelvet. A sorrend minden nyelvváltóra érvényes az oldalon. Húzd a nyelveket fel vagy le, és mentsd. Ugyanitt választhatsz:

- **Saját vagy aktuális nyelvű felirat.** A saját nyelvű (Deutsch) vonzóbb az adott nyelv beszélőinek, az aktuális nyelvű (német) az először érkező látogatónak érthetőbb.
- **Zászlók be vagy ki,** és a zászló formátuma.

## Mi történjen, ha hiányzik a fordítás?

A **How to handle languages without translation** beállítás dönti el, mit mutasson a nyelvváltó egy olyan nyelvnél, amelyen nincs az aktuális oldalnak fordítása:

- **Skip language** (alapértelmezett). A nyelv eltűnik a váltóból az adott oldalon. Ez a legtisztább: a látogató csak olyan nyelvet lát, amelyen el is tudja olvasni az oldalt.
- **Link to home of language for missing translations.** A váltó a nyelv nyitóoldalára mutat. Így minden nyelv mindig elérhető, de a látogató váratlan tartalomra érkezhet.

## Hol jelenik meg?

Öt elhelyezés van, mindegyik külön kapcsolható ugyanazon az oldalon:

- **Menu language switcher.** Bármelyik WordPress-menübe betehető (fejléc, lábléc, oldalsáv). Több is lehet, menünként más elhelyezéssel, és mindegyiknek saját előnézeti sora van.
- **Widget language switcher.** Bármely, a témád által regisztrált widgetterületre: oldalsáv, fejléc, lábléc oszlopai.
- **Footer language switcher.** Egyetlen globális kapcsoló: a váltó minden oldal aljára kikerül.
- **Inline links to translations of posts.** Egy jelölőnégyzet: a bejegyzések fölött vagy alatt „ez a bejegyzés elérhető X nyelven” hivatkozások jelennek meg.
- **Custom switchers.** Ha a beépített elhelyezések nem elegek, a témafejlesztők a sablonfájlokból a WPML váltó-API-ját hívhatják. A beállítóoldalon a **Customize** gomb a megjelenítési lehetőségeket nyitja meg.

## A váltó elrejtése egyes oldalakon

Vannak oldalak, ahol nincs szükség váltóra: a 404-es oldal, a fiókképernyők, a pénztár. A WPML feltételes megjelenítési szabályaival oldalanként elrejtheted a váltót anélkül, hogy a témában `display:none` CSS-t használnál. A szabályokat ugyanezen az oldalon adod meg: válaszd ki azokat az oldalakat, ahol rejtve legyen, a szabály minden elhelyezésre egyszerre érvényes.

## URL-argumentumok megőrzése

Amikor a látogató a váltóra kattint, a WPML újraépíti a célnyelvi URL-t. Alapból a lekérdezési paraméterek (`?utm_source=newsletter`, szűrők stb.) elvesznek, ami elrontja az elemzési kampányokat és a szűrt listákat. A **Preserve URL arguments** mezőbe soronként írd be azokat a kulcsokat, amelyeknek át kell kerülniük a váltáskor. Részletek: [URL-argumentumok megőrzése váltáskor](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/nyelvvalto-url-argumentumok/).

## Egyedi CSS

Az **Additional CSS** alatti egyetlen szövegmezőbe írt stílus az oldal összes nyelvváltójára érvényes. Így a témafájlok érintése nélkül hozhatod összhangba a váltót a témával.

## A nyelvváltó sablonjának gyorsítótára

A WPML minden nyelvváltó kirenderelt HTML-jét gyorsítótárazza, ami gyorsabb oldalbetöltést ad forgalmas oldalon. A WPML 5.0-tól ehhez nincs beállítás: a gyorsítótár akkor működik, ha a WPML gyorsítótármappája írható. Ha megváltoztatsz egy váltóbeállítást, és nem látod az eredményt az oldalon, először a gyorsítótárat gyanítsd: a **WPML → Support** oldalon futtasd a **Clear cache** műveletet, majd töltsd újra az oldalt.

## Egyedi váltók a téma kódjában

Ha a beépített elhelyezések nem elegek (egy váltó a fejléc egy meghatározott pontján, a téma által rajzolt egyedi legördülő, bármi, ami nem menü vagy widgetterület), a WPML API-t ad a témafejlesztőknek. A **Custom language switchers** kártyán van egy **Enable** kapcsoló és egy **Customize** gomb. Bekapcsolás után a sablonkód a dokumentált PHP API-val bárhol kirajzolhatja a váltót. Lásd: [Nyelvváltó PHP-val és shortcode-dal](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/nyelvvalto-php-es-shortcode/).
