# Egyedi shortcode-ok fordítása

> Szöveges és azonosító alapú shortcode-ok fordítása kompatibilis és nem kompatibilis bővítményeknél, saját shortcode-oknál, valamint a beégetett szövegek kezelése.

A WPML-lel a szöveget kiíró és az azonosító alapján elemet megjelenítő shortcode-ok is fordíthatók.

**Szöveges shortcode** szöveget ír ki:

```text
[goodmorning name="Dear client"]
```

**Azonosító alapú shortcode** egy elemet az azonosítója alapján jelenít meg:

```text
[myslider id="1"]
[myslider id="2"]
```

Itt minden shortcode más csúszkát jelenít meg, például az egyik angolul, a másik spanyolul. A lefordításhoz az egyik csúszka azonosítóját a másikéra kell cserélni (például 1 → 2). Ehhez a számértékek fordítását is engedélyezni kell, lásd: [Számértékek fordíthatóvá tétele](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-szamertekek-forditasa/).

## Kompatibilis bővítmények és témák shortcode-jai

Ha a shortcode kompatibilis bővítményből vagy témából származik:

1. Nyisd meg a **WPML → Fordítások** oldalt.
2. Küldd lefordításra a shortcode-ot tartalmazó oldalt.

A shortcode az oldal többi tartalma között megjelenik a Haladó fordítószerkesztőben, például a `[goodmorning name="Dear client"]` esetén a `name` attribútum szövege.

Ha a shortcode linkattribútumot is tartalmaz, az a feladat megnyitásától kezdve ott van a mezők listájában, mint bármelyik másik mező. Hosszú oldalon a keresősávval ugorhatsz rá.

## Nem kompatibilis bővítmények és témák shortcode-jai

Ilyen esetben a shortcode-ot előbb regisztrálnod kell a WPML **Custom XML Configuration** konfigurációjában (**WPML → Beállítások → Custom XML Configuration**, lásd: [A konfiguráció felülírása](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-konfiguracio-felulirasa/)).

Példa két shortcode-dal:

```text
[fanpage link="https://example.com"]Some content[/fanpage]
[goodmorning name="dear client" type="official"]
```

Regisztrálásuk:

```xml
<wpml-config>
  <shortcodes>
    <shortcode>
      <tag>goodmorning</tag>
      <attributes>
        <attribute>name</attribute>
        <attribute>type</attribute>
      </attributes>
    </shortcode>
    <shortcode>
      <tag label="Fanpage shortcode">fanpage</tag>
      <attributes>
        <attribute>link</attribute>
      </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>
```

A konfiguráció felépítése:

- Az összes shortcode a `<shortcodes>` elembe kerül.
- Egy shortcode beállításait a `<shortcode>` elem fogja össze.
- A shortcode nevét a `<tag>` elem adja meg, ide tehetsz egyéni címkét is (`label`). A címke a szöveg mellett megjelenik a Haladó fordítószerkesztőben.
- Minden attribútum címét egy `<attribute>` elem adja meg.
- Az attribútumokat az `<attributes>` elem fogja össze.

A regisztrálás után a shortcode-ot az oldal többi tartalmával együtt fordíthatod a **WPML → Fordítások** oldalról.

## Saját shortcode-ok

Ha a shortcode-ot te fejlesztetted, előbb regisztrálnod kell a WPML-ben. Utána az oldal többi tartalmával együtt fordíthatod.

## Beégetett szövegek a shortcode-ban

A WPML alapból nem fordítja a kódba beégetett szövegeket. Hogy fordíthatók legyenek, használd a Gettext keretrendszert. Példa, ahol a „Good morning” beégetett szöveg:

```php
function goodmorning_att($atts) {
    $default = array(
        'name' => 'there',
    );
    $a = shortcode_atts($default, $atts);
    return 'Good morning, '.$a['name'];
}
add_shortcode('goodmorning', 'goodmorning_att');
```

A fordíthatóvá tételhez cseréld a szöveget Gettext-hívásra:

```php
function goodmorning_att($atts) {
    $default = array(
        'name' => 'there',
    );
    $a = shortcode_atts($default, $atts);
    return __('Good morning, ', 'default').$a['name'];
}
add_shortcode('goodmorning', 'goodmorning_att');
```

Így a „Good morning” szöveg fordíthatóvá válik, és megjelenik a String Translationben (lásd még: [Gettext használata](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-gettext/)).

## Kapcsolódó fejezetek

- [Oldalépítő-tartalom regisztrálása fordításra](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-oldalepito-tartalom/)
- [Egyedi oldalépítő-widgetek regisztrálása](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-oldalepito-widgetek/)
- [Egyedi mezők a wpml-config.xml fájlban](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-egyedi-mezok/)
- [Egyedi bejegyzéstípusok és taxonómiák](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-egyedi-tipusok-taxonomiak/)
