# WPML kódolási API: shortcode-ok és konstansok

> A WPML shortcode-jai, nyelvi és beállító konstansai, a CSS és JS fájlok letiltása, valamint a teszt- és fejlesztői oldalak védelme.

A WPML három eszközt ad a téma- és bővítményfejlesztőknek: hookokat (filterek és actionök), shortcode-okat és konstansokat. A shortcode-okat a tartalomban és PHP-kódban is használhatod (`do_shortcode()`).

## Nyelvi konstansok

| Konstans | Leírás | Példa |
|---|---|---|
| `ICL_LANGUAGE_CODE` | az aktuális nyelv kódja | fr |
| `ICL_LANGUAGE_NAME` | az aktuális nyelv neve az aktuális nyelven | Français |
| `ICL_LANGUAGE_NAME_EN` | az aktuális nyelv neve angolul | French |

Ezek a konstansok elavultak, az aktuális nyelv lekérdezésére a `wpml_current_language` filter ajánlott.

## A WPML CSS és JS fájljainak letiltása

A WPML saját CSS és JS fájlokat tölt be a navigáció és a nyelvváltó stílusához. Hogy melyik töltődik be, a választott nyelvváltótól függ. A fájlok a bővítmény `templates/language-switchers/<választott nyelvváltó>/` mappájában vannak. Ha a témádban nincs rájuk szükség, ezekkel a konstansokkal tilthatod le őket:

| Konstans | Milyen fájlt tilt le |
|---|---|
| `ICL_DONT_LOAD_NAVIGATION_CSS` | a navigáció stíluslapjait: `cms-navigation-base.css`, `cms-navigation.css` |
| `ICL_DONT_LOAD_LANGUAGE_SELECTOR_CSS` | a nyelvváltó `style.css` fájlját |
| `ICL_DONT_LOAD_LANGUAGES_JS` | a nyelvváltó `script.js` fájlját |

A konstansokat a téma `functions.php` fájljában add meg:

```php
define( 'ICL_DONT_LOAD_NAVIGATION_CSS', true );
```

## Teszt- és fejlesztői oldalak: a fordítási szolgáltatással való kapcsolat letiltása

Fejlesztéskor gyakori, hogy az éles oldalt lemásolod egy teszt- vagy fejlesztői környezetbe. Ez a másolat alapból pontosan úgy kapcsolódik a fordítási szolgáltatáshoz, mint az éles oldal, ami zavart okozhat az éles oldal kommunikációjában. Példa:

1. A tesztoldal lehív egy kész fordítást a fordítási szolgáltatástól.
2. A szolgáltatás „kézbesítettnek” jelöli az elemeket.
3. Az éles oldalon már nem tudod lehívni ezeket a kézbesített fordításokat.

Ennek elkerülésére jelezd a WPML-nek, hogy a másolat csak tesztelésre szolgál. Add a következő sort a `wp-config.php` fájlhoz:

```php
define( 'WPML_ENVIRONMENT', 'test' );
```

Ez csak a kritikus kéréseket tiltja le, a legtöbb kérés továbbra is működik. A fordítási szolgáltatások listája például a megszokott módon megjelenik.

## WPML-shortcode-ok

### `wpml_language_selector_widget`

- A WPML legördülő nyelvváltóját jeleníti meg.
- A `wpml_add_language_selector` hookhoz hasonló.
- A kimenetet a **WPML → Settings → Language Switchers** oldal **Custom language switcher** szakaszában testreszabhatod.

### `wpml_language_selector_footer`

- A WPML vízszintes nyelvváltóját jeleníti meg.
- A kimenete megegyezik a `wpml_footer_language_selector` hookéval.
- A kimenetet a **WPML → Settings → Language Switchers** oldal **Footer language switcher** szakaszában testreszabhatod.

### `wpml_language_form_field`

- Egyedi keresőűrlapot tesz többnyelvűvé. A kimenete megegyezik a `wpml_add_language_form_field` hookéval.

### `wpml-string`

Sztringet regisztrál és fordít. A String Translation aktív kell hozzá.

```text
[wpml-string context="my-domain" name="my-name"]My string[/wpml-string]
```

A sztring fordításához nyisd meg a **WPML → String Translation** oldalt, és keresd meg a saját neveiddel: **Domain**: `my-domain`, **Name**: `my-name`, **String**: `My string`. A sztring csak akkor regisztrálódik, ha előbb megnyitod a frontenden azt az oldalt, amelyen szerepel.

### `wpml_language_switcher`

```text
[wpml_language_switcher type="footer" flags=1 native=1 translated=1][/wpml_language_switcher]
```

| Argumentum | Jelentés |
|---|---|
| `type` | a nyelvváltó típusa: `footer`, `post_translations`, `widget` vagy `custom` (alapértelmezett) |
| `flags` (alias: `display_flags`) | 1: zászlók megjelenítése, 0: nem |
| `link_current` (alias: `display_link_for_current_lang`) | 1: az aktuális nyelv is link, 0: nem |
| `native` (alias: `display_names_in_native_lang`) | 1: nyelvnevek a saját nyelven, 0: nem |
| `translated` (alias: `display_names_in_current_lang`) | 1: nyelvnevek az aktuális nyelven, 0: nem |
| `template` | a sablon slugja, ha felül kell írni; egyébként a típus határozza meg |

A `type` paraméternél a WPML a **WPML → Settings → Languages** oldal beállításait használja, kivéve a `widget` típust, amely az alapértelmezett beállításokat veszi.

## A WPML Multilingual CMS konstansai

| Konstans | Mit csinál |
|---|---|
| `ICL_DISABLE_CACHE` | `true` esetén kikapcsolja a WPML objektum-gyorsítótárát. Alapértelmezett: `false`. |
| `ICL_DONT_LOAD_LANGUAGES_JS` | `true` esetén eltávolítja a nyelvváltó JavaScript-fájlját. |
| `ICL_DONT_LOAD_LANGUAGE_SELECTOR_CSS` | `true` esetén eltávolítja a nyelvváltó CSS-fájlját. |
| `WPML_TRANSLATOR_CAN_USE_LS_SHORTCODE` | `true` esetén a fordító fordítás közben használhatja a `wpml_language_selector_widget` shortcode-ot. |
| `WPML_TRANSLATION_AUTO_UPDATE_ENABLED` | Az oldalépítőknél a WPML magától frissíti a fordítást, ha az eredeti oldal változik. `false` értékkel kikapcsolhatod. |
| `WPML_TAXONOMY_TRANSLATION_MAX_TERMS_RESULTS_SET` | A **WPML → Taxonomy translation** oldalon megjelenő elemek száma. Alapértelmezett: 1000. |
| `WPML_SAVE_XLIFF_PATH` | A szerveren az a mappa, ahová a **WPML → Translations** oldalról letöltött XLIFF-fájlok másolata kerül. |
| `WPML_DO_NOT_RESIZE_UPLOADED_FLAGS` | A nyelvváltó zászlói alapból 18×12 pixelesre méreteződnek. `true` esetén ez kikapcsol, például ha saját CSS vagy JS kezeli a zászlókat, vagy animált GIF-et használsz. |
| `WPML_INSTALLER_LOGGING` | `true` esetén a WPML telepítőjének minden eseménye naplózódik az `installer.log` fájlba (a bővítmény `vendor/otgs/installer/` mappájában). Csak fejlesztőknek való, az általános telepítői naplót a **WPML → Support → Installer Support** oldalon találod. |
| `OTGS_DISABLE_AUTO_UPDATES` | `true` esetén a WPML és a Toolset nem ellenőrzi automatikusan a frissítéseket, ezt kézzel kell megtenned. |
| `WPML_EXPORT_ALL_TO_XLIFF_LIMIT` | A **WPML → Translations** oldalról XLIFF-be exportálható feladatok legnagyobb száma. Alapértelmezett: 1700. Gyors szerveren növelheted. |

Példa a `WPML_SAVE_XLIFF_PATH` használatára:

```php
define( 'WPML_SAVE_XLIFF_PATH', '/home/test-user/Desktop' );
```

## A WPML String Translation konstansai

| Konstans | Mit csinál |
|---|---|
| `WPML_ST_SYNC_TRANSLATION_FILES` | `true` esetén több szerver között szinkronizálja a WPML fordítási fájljait (MO-fájlok). |
| `WPML_ST_MO_SCANNING_LIMIT` | Hány MO-fájlt importálhat a String Translation egyetlen kérésben. Alapértelmezett: 20000. |

## A WPML CMS Nav konstansai

| Konstans | Mit csinál |
|---|---|
| `WPML_CMS_NAV_DISABLE_CACHE` | `true` esetén kikapcsolja a CMS Navigation gyorsítótárazását. |
| `ICL_DONT_LOAD_NAVIGATION_CSS` | `true` esetén nem tölti be a `cms-navigation-base.css` és a `cms-navigation.css` fájlt. |

A CMS Navigationről a [WPML CMS Navigation](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-cms-navigation/) fejezetben olvashatsz.

## A WPML Multilingual & Multicurrency for WooCommerce konstansa

A `WCML_GEOLOCATED_COUNTRY` konstanssal kényszerítheted, hogy a WooCommerce-kiegészítő egy adott országot használjon a földrajzi helymeghatározáskor. Az érték kétbetűs országkód, például `GH` Ghánához. Tesztelésre hasznos.

```php
define( 'WCML_GEOLOCATED_COUNTRY', 'GH' );
```

Egyedi modulokhoz a `wcml_geolocation_get_user_country` hookot használd.
