# Oldalépítő-tartalom regisztrálása fordításra

> Shortcode-attribútumok, linkek, médiaazonosítók és objektumazonosítók regisztrálása a wpml-config.xml fájlban oldalépítős tartalomhoz.

Ez az útmutató azoknak szól, akik témát vagy bővítményt fejlesztenek, vagy saját oldalépítő-kódot adnak az oldalukhoz. A `wpml-config.xml` fájlban megadhatod, mely szövegeket, médiákat, linkeket és azonosítókat kezeljen a WPML fordíthatóként.

Ha harmadik féltől származó oldalépítőt használsz, és az egyedi widgetjeit nem tudod lefordítani, fordulj a WPML ügyfélszolgálatához.

A konfigurációs fájl elkészítésében a [Multilingual Tools](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-multilingual-tools/) bővítmény segít.

## Szövegek fordítása

Tegyük fel, hogy egy Visual Composerrel készült oldalon van egy szövegelválasztó címmel:

```text
[vc_text_separator title="Separator Title"]
```

Hogy a WPML tudja, hogy a `title` fordítandó, vedd fel a `wpml-config.xml` fájlba:

```xml
<wpml-config>
  <shortcodes>
    <shortcode>
        <tag>vc_text_separator</tag>
        <attributes>
            <attribute>title</attribute>
        </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>
```

A szerkezet:

- A `shortcodes` elembe kerül minden fordítandó shortcode.
- A `shortcode` elem fog össze egy shortcode-hoz tartozó minden elemet.
- A `tag` elem a shortcode neve (itt `vc_text_separator`).
- Egy shortcode-nak egy vagy több attribútuma lehet: ezeket az `attributes` elembe tedd, és mindegyiket egy `attribute` elemmel add meg.

### Linkek

Az oldalépítők elemei között gyakran vannak linkattribútumok. A `type="link"` beállítással elérheted, hogy a belső linkek automatikusan a lefordított bejegyzésre mutassanak.

Mellé használhatod az `encoding` attribútumot, amely az oldalépítők különleges kódolását kezeli. Értéke általában az adott oldalépítőtől függ:

| Érték | Mire való |
|---|---|
| `base64` | Visual Composer nyers HTML shortcode: a HTML base64-es szövegként van tárolva. |
| `vc_link` | A Visual Composer speciális linkformátuma. |
| `vc_values` | A Visual Composer speciális kódolása a folyamatjelző, a kördiagram és a vonaldiagram widgetek értékeihez. |
| `av_link` | Az Enfold speciális linkformátuma. |
| `allow_html_tags` | A shortcode-attribútumokból általában kiszűrődnek a HTML-címkék. Ezzel engedélyezheted őket. Óvatosan használd: bizonyos helyzetekben elrontja a formázást, és biztonsági kockázat is lehet. |

```xml
<wpml-config>
  <shortcodes>
    <shortcode>
        <tag>av_button</tag>
        <attributes>
            <attribute>label</attribute>
            <attribute type="link" encoding="av_link">link</attribute>
        </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>
```

Ha URL-kódolt shortcode-okat használsz, azokról külön tudnivalók vannak.

### Címkék

A `tag` és az `attribute` elemhez megadhatsz egy `label` attribútumot. Ez a felirat megjelenik a szöveg mellett a Haladó fordítószerkesztőben és a klasszikus fordítószerkesztőben is, és bekerül az exportált XLIFF-fájlokba. Segít a fordítónak megérteni a szöveg összefüggését.

```xml
<wpml-config>
    <shortcodes>
        <shortcode>
            <tag label="My shortcode label">my_shortcode</tag>
            <attributes>
                <attribute label="Shortcode title">title</attribute>
            </attributes>
        </shortcode>
    </shortcodes>
</wpml-config>
```

### Mezők csoportosítása

Az átláthatóság kedvéért a mezők címkéjének elejére beírhatod a csoport nevét. Például egy cselekvésre ösztönző gombnál:

```xml
<wpml-config>
    <shortcodes>
        <shortcode>
            <tag label="Call To Action: Content">et_pb_cta</tag>
            <attributes>
                <attribute label="Call To Action: Title">title</attribute>
                <attribute label="Call To Action: Button Text">button_text</attribute>
                <attribute label="Call To Action: Button URL" type="link">button_url</attribute>
            </attributes>
        </shortcode>
    </shortcodes>
</wpml-config>
```

Fontos: a WPML ezeket a címkéket nem adja át a Haladó fordítószerkesztőnek. A fordító minden attribútumot külön mezőként lát, a shortcode alatt csoportosítva, és a mezők tartalmából ismeri fel, melyik micsoda. A `label` attribútum viszont része a konfigurációs formátumnak, ezért érdemes beállítani.

## Média fordítása

A Media Translation kiegészítővel az oldalépítős tartalomban nyelvenként más képet is használhatsz. Ehhez a WPML-nek le kell cserélnie a képek azonosítóit és URL-jeit, és neked kell megmondanod neki, hogy az oldalépítő shortcode-jai hol tárolják ezeket:

```xml
<wpml-config>
  <shortcodes>
    <shortcode>
        <!-- A gallery_ids attribútum médiaazonosítóit cseréli, a shortcode tartalmát figyelmen kívül hagyja -->
        <tag ignore-content="1">et_pb_gallery</tag>
        <attributes>
          <attribute type="media-ids">gallery_ids</attribute>
        </attributes>
    </shortcode>
    <shortcode>
        <!-- A tartalomban lévő média URL-jét cseréli, a title és alt fordítható, a src média URL -->
        <tag type="media-url">et_pb_image</tag>
        <attributes>
          <attribute>title_text</attribute>
          <attribute>alt</attribute>
          <attribute type="media-url">src</attribute>
        </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>
```

Használható értékek:

- **`ignore-content`** (a `tag` elemen, nem kötelező, 0 vagy 1): az új média-shortcode-ok visszamenőleges kompatibilitásához. Ha értéke 1, a shortcode tartalmát nem dolgozza fel.
- **`type`** a `tag` elemen: ha a shortcode tartalma média URL-t tartalmaz, `media-url` az értéke.
- **`type`** az `attribute` elemen:
  - `media-ids`: médiaazonosítók vesszővel elválasztott listája,
  - `media-url`: a média URL-je,
  - `link`: az oldal egy másik oldalára mutat, és a WPML automatikusan a lefordított oldal URL-jére cseréli.

### Média a blokkattribútumokban

A `media-url` és a `media-ids` típus Gutenberg-blokkoknál is használható, például háttérképek fordításához. A shortcode-októl eltérően itt a `<gutenberg-block>` elem és a beágyazott `<key>` elemek adják meg a `type="media-url"` vagy `type="media-ids"` beállítást. Így a Media Translation kiegészítő a háttérképeket is le tudja fordítani.

Ez a Gutenberg-blokkokra és a Divi 5-re is működik, mert a Divi 5 blokkokban tárolja a tartalmat:

```xml
<wpml-config>
  <gutenberg-blocks>
    <gutenberg-block type="divi/section" translate="1">
      <key name="module">
        <key name="decoration">
          <key name="background">
            <key name="desktop">
              <key name="value">
                <key name="image">
                  <key name="url" type="media-url" />
                </key>
              </key>
            </key>
          </key>
        </key>
      </key>
    </gutenberg-block>
  </gutenberg-blocks>
</wpml-config>
```

## Oldalépítő-widgetek

Az oldalépítő-widgeteket is regisztrálhatod a konfigurációs fájlban, ennek részleteit az [Egyedi oldalépítő-widgetek regisztrálása](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-oldalepito-widgetek/) fejezet írja le.

## Shortcode-azonosítók automatikus cseréje

A WPML 4.5.9-től megadhatod, hogy egy shortcode-attribútum bejegyzés- vagy taxonómiatag-azonosítókat tartalmaz. A WPML ezeket az oldal frontendjén automatikusan a megfelelő nyelvű azonosítóra cseréli.

A WPML 4.8-tól ugyanez a logika működik az [admin szövegekben](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-admin-szovegek/) tárolt objektumazonosítókra, valamint a bejegyzések egyedi mezőiben és az egyedi taxonómiatagok mezőiben lévő azonosítókra is.

Példa: ebben a shortcode-ban a `product_ids` termékazonosítókat tartalmaz.

```text
[foo_product_list product_ids="12,34,56"]
```

Jelezd a WPML-nek, hogy az attribútum bejegyzésazonosítókat tárol:

```xml
<shortcode>
    <tag ignore-content="1">foo_product_list</tag>
    <attributes>
        <attribute type="post-ids" sub-type="product">product_ids</attribute>
    </attributes>
</shortcode>
```

A frontenden a shortcode automatikusan így jelenik meg a másik nyelven:

```text
[foo_product_list product_ids="13,35,57"]
```

Beállítások:

- **`type`**: `post-ids` vagy `taxonomy-ids`.
- **`sub-type`** (nem kötelező): a konkrét entitás, ha ismered. Például `product` a WooCommerce termék bejegyzéstípusához. Ha nem adod meg, a WPML kitalálja.

Az azonosítók cseréje rugalmas, és a legtöbb formátumot felismeri: egyetlen azonosítót, azonosítólistát, szerializált tömböt és JSON-ba kódolt tömböt.

### Helyettesítő karakter az attribútumnevekben

Egyes shortcode-ok sok, hasonló nevű attribútumban tárolnak azonosítót, például `include_category`, `include_portfolio_category`, `include_product_cat`. Egy `<attribute>` sor mindet lefedheti, ha az attribútumnévben `*` karaktert használsz:

```xml
<shortcode>
    <tag>fusion_post_cards</tag>
    <attributes>
        <attribute type="taxonomy-ids" exclude="include_product_skus">include_*</attribute>
        <attribute type="taxonomy-ids" exclude="exclude_product_skus">exclude_*</attribute>
    </attributes>
</shortcode>
```

- A `*` egy vagy több betűt, számjegyet, `_` vagy `-` jelet helyettesít.
- A `*` csak a `type="post-ids"` és a `type="taxonomy-ids"` beállításnál működik.
- A név többi részét a WPML pontosan egyezteti, reguláris kifejezést az attribútumnevekben nem fogad el.
- Az `exclude` (nem kötelező) teljes attribútumnevek vesszővel elválasztott listája. Ezekben a WPML nem cseréli az azonosítókat. Használd azokra az attribútumokra, amelyek neve illeszkedik, de nem azonosítót tárolnak, például `include_product_skus`.

## Kapcsolódó fejezetek

- [Egyedi shortcode-ok fordítása](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-shortcode-forditas/)
- [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/)
- [Egyedi Gutenberg-blokkok fordíthatóvá tétele](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-gutenberg-blokkok/)
- [A wp_options táblában tárolt szövegek](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-admin-szovegek/)
- [A nyelvváltó testreszabása XML-ből](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-nyelvvalto-konfiguracio/)
