# Szűrők többnyelvűsítése WPML-lel

> A WPML beállítása a JetSmartFilters szűrőihez: fordítható bejegyzéstípus, egyéni mezők és taxonómiák, a szűrők, az oldal és a szövegek fordítása.

A JetSmartFilters kompatibilis a WPML-lel, így a szűrők címkéi, lehetőségei és a hozzájuk kapcsolódó tartalom bármelyik nyelvre lefordítható. A szűrők a háttérben és a nyilvános oldalon egyaránt működnek, ezért a taxonómiákat, a kategóriák slugjait, az egyéni mezőket és a szövegeket is le kell fordítani. Ha ez kimarad, a lefordított szűrő a második nyelvű oldalon nem fog működni.

## Követelmények

- A WPML **Multilingual CMS** (vagy Multilingual Agency) csomagja telepítve és aktiválva
- JetSmartFilters

## Alapok

1. Telepítsd és aktiváld a **WPML Multilingual CMS** és a **WPML String Translation** alapkomponenseket.
2. A **WPML → Setup** oldalon futtasd végig a gyorsbeállító varázslót, és regisztráld a WPML-t.
3. A **WPML → Translation Dashboard** oldalon választod ki a lefordítandó tartalmat.
4. Válaszd ki a fordítás módját: kézi vagy automatikus.

## Előkészületek a WPML beállításaiban

### A szűrők bejegyzéstípusa

1. Nyisd meg a **WPML → Settings** oldalt.
2. A **Multilingual Content Setup** fülön a **Post Types Translation** szakaszban keresd meg a **Smart Filters** bejegyzéstípust.
3. Három lehetőség közül választhatsz:

   | Lehetőség | Hatása |
   | --- | --- |
   | **Translatable, only show translated items** | Az oldalon csak a lefordított elemek jelennek meg. |
   | **Translatable, use translation if available or fallback to default language** | A lefordított elemek fordítással jelennek meg, a fordítás nélküliek az alapnyelven. |
   | **Not translatable** | A bejegyzéstípus változatlan marad. |

4. Tedd fordíthatóvá a **Smart Filters** típust, és kattints a **Save** gombra.

### Az egyéni mezők

1. A **WPML → Settings** oldalon keresd meg a **Custom Fields Translation** szakaszt, és kattints a neve melletti **Show system fields** hivatkozásra.
2. Keresd meg a JetSmartFilters mezőit: `_filter_label` és `_filter_type`.
3. Mezőnként négy beállítás közül választhatsz:

   | Lehetőség | Hatása |
   | --- | --- |
   | **Don't translate** | A mező értéke a második nyelvű oldalakon is az alapnyelvi marad. |
   | **Copy** | Az alapnyelvi érték mindig átmásolódik a második nyelvre, akkor is, ha később módosítod. |
   | **Copy once** | Az érték az első fordításkor másolódik át, utána a második nyelven átírhatod, és nem íródik felül. |
   | **Translate** | A mező értéke fordítható. |

4. A `_filter_label` mező legyen **Translate**, hogy a WPML felismerje a lefordítandó szűrőcímkéket. A `_filter_type` mező lehet **Copy** vagy **Translate**.
5. Ha a szűrő adatforrása egy egyéni mező (a példában a `genres`), azt is állítsd **Translate** értékre.
6. A szakasz alatt kattints a **Save** gombra.

### A taxonómiák

A szűrés és az archívumkeresés mindig taxonómiákat használ, ezért a szűrőkhöz tartozó taxonómiákat, címkéket és kifejezéseket is le kell fordítani.

1. A **WPML → Settings** oldalon a **Taxonomies Translation** szakaszban keresd meg a szűrők által használt taxonómiákat, és tedd őket fordíthatóvá (a példában a „Book Term” a **Translatable (only show translated items)** értéket kapja).
2. Kattints a **Save** gombra.
3. Ellenőrizd, hogy a **Slug translations** szakasz beállítása be van kapcsolva, és mentsd. Ez szinkronizálja a lefordított kifejezéseket a nyelvek között. Nélküle a második nyelvű tartalom nem kapja meg a helyes címkéket és kategóriákat.

### A kifejezések és slugok fordítása

A WPML a taxonómiákat a hozzájuk tartozó tartalom fordításakor magától fordítja. Külön fordításhoz:

1. Nyisd meg a **WPML → Taxonomy Translation** oldalt.
2. A **Select the taxonomy to translate** listából válaszd ki a taxonómiát (a példában „Book Term”).
3. Az egyes kifejezések fölé víve az egeret megjelenik a **Copy to all languages** hivatkozás, amellyel az alapnyelvi érték átmásolható a többi nyelvre.
4. A ceruza vagy a plusz ikonnal szerkesztheted vagy felveheted a fordítást. Add meg az új fordításokat, és kattints a **Save** gombra.
5. Ismételd meg minden kifejezésnél és minden nyelven, és ne feledd a taxonómia címkéit és slugjait sem lefordítani.

## A szűrők fordítása

1. Nyisd meg az **Intelligens szűrők → Minden szűrő** listát, és kattints a kívánt szűrő melletti **Edit** gombra.
2. A **Language** panelen kattints a kívánt nyelv melletti plusz gombra.
3. Ugyanaz a szűrőszerkesztő nyílik meg, de most a célnyelvre fordítod a tartalmat: írd át a **Szűrő neve** mezőt, **Kézi bevitel** adatforrásnál pedig a **Lehetőségek listája** szakasz címkéit.
4. A többi mezőt hagyd változatlanul, töltsd ki a **Szűrőcímkék** szakaszt, és kattints az **Update** gombra.
5. Ugyanígy fordítsd le az összes szűrőt.

## A szűrő az oldalon

1. Szerkessz egy oldalt (**Oldalak → Új oldal**) Elementorral, a blokkszerkesztővel vagy Bricksszel.
2. Add hozzá a WPML nyelvváltó widgetet, és állítsd be tetszés szerint.
3. Add hozzá a szűrő widgetet (a példában a **Jelölőnégyzetek** szűrőt): a **Select filter** mezőben válaszd ki a szűrőt, a **This filter for** mezőben pedig a szolgáltatót (a példában **JetEngine**).
4. Add hozzá a szolgáltatót, például a JetEngine **Listing Grid** widgetet, amelynek tartalmát előre lefordítottad.
5. Kattints a **Publish** gombra.

Az oldal lefordításához:

1. Nyisd meg a **WPML → Translation Dashboard** oldalt, bontsd ki a **Pages** szakaszt, és keresd meg az oldalt.
2. Jelöld ki, és kattints a **Translate your content** gombra.
3. A 2. lépésben válaszd ki a fordítás módját (a WPML a saját AI-fordítómotorját, a Private Translation Cloudot ajánlja).

### Szövegek fordítása

1. A **Translation Dashboard** oldalon bontsd ki az **Other texts (Strings)** szakaszt. A WPML a nyilvános oldal megtekintésekor magától gyűjti ide a szövegeket.
2. Szűrhetsz tartomány szerint (például `jet-smart-filters`), vagy rákereshetsz egy szövegre.
3. Jelöld ki a fordítandó szövegeket, és a 2. lépésben küldd kézi vagy automatikus fordításra, mint bármely más tartalmat.
4. Ha JetEngine-es szűrőforrást használsz, fordítsd le a **Jet Engine Admin Labels** tartomány címkéit is.

## Az eredmény ellenőrzése

Nyisd meg az oldalt a nyilvános felületen, és a nyelvváltóval válaszd ki a célnyelvet: a fordított tartalom megjelenik. Jelölj ki lehetőségeket a szűrőben, és ellenőrizd, hogy a szűrés megfelelően működik.

## Ismert hibák

Ha a lefordított szűrők, szűrőlehetőségek vagy a szűrt tartalom a második nyelvű oldalon is az alapnyelven jelenik meg, bár a fordítások és a WPML is rendben vannak, a hiba a WPML nyelvi sütijével vagy a gyorsítótárral lehet kapcsolatos. A JetSmartFilters az AJAX-kérések közben a WPML nyelvfelismerésére támaszkodik. Ha a kérés nem kapja meg helyesen az aktuális nyelvet, a szűrési eredmények, a kifejezések és a lehetőségek az alapnyelven jelenhetnek meg.

1. Nyisd meg az érintett oldalt, és a böngésző fejlesztői eszközeiben lépj az **Application → Cookies** részre.
2. Ellenőrizd, hogy létezik-e a `wp-wpml_current_language` süti, és a kiválasztott nyelv kódját tartalmazza-e.
3. Ha a szűrés inkognitó módban működik, de a megszokott böngészőben nem, a gyorsítótár a hibás. Nézd át a gyorsítótár beállításait, és biztosítsd, hogy a WPML nyelvi sütijei megmaradnak és elérhetők az AJAX-kérések alatt.

A szójegyzék alapú szűrők fordításáról a [Szójegyzék alapú szűrő fordítása](https://hub.hellowp.io/hu/plugins/jet-smart-filters/integraciok-wpml-szojegyzek/) fejezet szól.
