# Egyedi mezők fordítási beállításai a wpml-config.xml fájlban

> Translate, Copy, Copy once és Ignore beállítás, mezőattribútumok, kódolás, linkek, azonosítók átalakítása és kifejezésmezők.

## Az egyedi mezők fordítási beállításai

A WPML négy fordítási beállítást ad az egyedi mezőkhöz:

| Beállítás | Mit csinál | Látszik az ATE-ben? |
|---|---|---|
| Translate | Az egyedi mező értékét fordíthatóvá teszi. | Igen |
| Copy | Átmásolja az értéket az alapértelmezett nyelvről a másodlagosra, és szinkronban tartja őket. | Nem |
| Copy once | Egyszer átmásolja az értéket, de nem tartja szinkronban. | Nem |
| Ignore | Nem másolja át az értéket a másodlagos nyelvre. | Nem |

Példa az egyedi mezők felvételére a konfigurációs fájlba:

```xml
<wpml-config>
  <custom-fields>
     <custom-field action="copy">quantity</custom-field>
     <custom-field action="translate">custom-title</custom-field>
     <custom-field action="copy">weight</custom-field>
     <custom-field action="copy-once">bg-color</custom-field>
     <custom-field action="translate">custom-description</custom-field>
     <custom-field action="ignore">date-added</custom-field>
  </custom-fields>
</wpml-config>
```

## Attribútumok az egyedi mezőkhöz

### Stílus, címke és csoport

A mező regisztrálásához attribútumokat adhatsz:

- `style`: egysoros (`line`), szövegterület (`textarea`) vagy WYSIWYG (`visual`) megjelenítés;
- `label`: a mező neve a konfigurációs fájlban. A WPML nem adja át az Advanced Translation Editornak, ezért a fordító nem látja;
- `group`: a csoport neve, amelybe a mező tartozik a konfigurációs fájlban. Az Advanced Translation Editorban minden regisztrált egyedi mező együtt szerepel a **Custom Fields** alatt, a csoport neve nem látszik, és külön szakasz sem jön létre hozzá.

```xml
<wpml-config>
  <custom-fields>
    <custom-field action="translate" style="line" label="Title">custom-title</custom-field>
    <custom-field action="translate" style="textarea" label="Description">custom-description</custom-field>
    <custom-field action="translate" style="visual" label="Some content" group="Custom group">custom-wysiwyg</custom-field>
  </custom-fields>
</wpml-config>
```

Az Advanced Translation Editorban mind a három mező együtt jelenik meg a **Custom Fields** alatt, a regisztrálás sorrendjében.

### Kódolás

Az opcionális `encoding` attribútummal megváltoztathatod az alapértelmezett (kódolás nélküli) kódolást. Értékei:

- `json`
- `base64`
- `urlencode`

Több kódolást vesszővel választhatsz el:

```xml
<wpml-config>
  <custom-fields>
    <custom-field action="translate" encoding="json,base64">keywords</custom-field>
  </custom-fields>
</wpml-config>
```

### Hivatkozások átalakítása

Ha az egyedi mező hivatkozást tartalmaz, a `translate_link_target` attribútummal rákényszerítheted a WPML-t, hogy ellenőrizze és igazítsa a mező hivatkozásait. Ehhez a hivatkozásnak `<a>` címkékben kell lennie.

```xml
<wpml-config>
  <custom-fields>
    <custom-field action="translate" translate_link_target="1">name_of_the_acf_field</custom-field>
  </custom-fields>
</wpml-config>
```

A WPML alapból az egyedi mezők minden al-kulcsát lefordítja. Ha ezt el akarod kerülni, add meg, mely al-kulcsokat kell lefordítani:

```xml
<wpml-config>
  <custom-fields>
    <custom-field action="translate">with_attributes</custom-field>
    <custom-field action="translate">with_deep_attributes</custom-field>
    <custom-field action="translate">no_attributes</custom-field>
  </custom-fields>
  <custom-fields-texts>
    <key name="with_attributes">
        <key name="attribute1" />
        <key name="attribute2" />
    </key>
    <key name="with_deep_attributes">
        <key name="attribute1" />
        <key name="attribute2">
          <key name="level1">
          <key name="level2">
          </key>
          </key>
        </key>
    </key>
  </custom-fields-texts>
</wpml-config>
```

### Helyettesítő karakterek

Helyettesítő karaktereket ugyanúgy használhatsz, mint az admin szövegeknél:

- `<key name="title-*" />`: minden `title-` kezdetű al-mezőre illeszkedik;
- `<key name="*" />`: minden al-mezőre illeszkedik, általában tömbindex megadására;
- a `[{"title":"First title"},{"title":"Second title"}]` szerkezethez használd a következőt:

```xml
<wpml-config>
  <custom-fields-texts>
    <key name="key-name">
    <key name="*">
    <key name="title" />
    </key>
    </key>
  </custom-fields-texts>
</wpml-config>
```

### Azonosítók automatikus átalakítása a bejegyzések egyedi mezőiben

A WPML 4.8-tól megadhatod az egyedi mezőkben tárolt azonosítókat. A WPML a frontenden lecseréli őket a lefordított változatukra. Ez csak akkor működik, ha a fordítási beállítás **Copy** (`<custom-field action="copy">`).

A `custom-fields` részben használd:

- `type`: milyen objektumra hivatkozik, például `post-ids`;
- `sub-type` (opcionális): ha egy bejegyzéstípus slugját is meg akarod adni.

A WPML ezeket az alakokat ismeri fel és alakítja át:

- egyetlen azonosító (123);
- vesszővel elválasztott lista („123,456,789”);
- azonosítók tömbje vagy kódolt tömbje ([123,456,789]).

```xml
<custom-fields>
	<custom-field action="copy" type="post-ids" sub-type="product">custom_field_with_id</custom-field>
</custom-fields>
```

Ha az azonosítók a `custom-fields-texts` részben, al-szinten vannak beágyazva, a WPML a mező fordítási beállításától (copy, translate stb.) függetlenül felismeri és átalakítja őket:

```xml
<wpml-config>
  <custom-fields-texts>
    <key name="custom_field_with_nested_ids">
      <key name="custom_field_nested_key_with_ids" type="post-ids" sub-type="product" />
      <key name="custom_field_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
      <key name="custom_field_nested_key_with_subkey">
        <key name="custom_field_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
      </key>
    </key>
  </custom-fields-texts>
</wpml-config>
```

Ugyanezzel a `type` és `sub-type` szintaxissal azonosítókat adhatsz meg az admin szövegekben is (a `wp_options` táblában).

## Kifejezésmezők (taxonómia-termek egyedi mezői) fordítási beállításai

A taxonómia-termek egyedi mezőinek fordításához meg kell adnod a mező nevét és a műveletet: `translate`, `copy`, `copy-once` vagy `ignore`. A kódot a `wpml-config` címke alá tedd.

- `translate`: a felhasználó lefordíthatja a mező értékét. Az érték megjelenik a fordítószerkesztő képernyőjén, és kézzel, automatikusan vagy más fordítóknak elküldve fordítható.
- `copy`: az alapértelmezett nyelv értékét átmásolja a másodlagos nyelvekre. Az alapértelmezett nyelv értékének módosítása mindig átmásolódik. A `copy` mezők nem jelennek meg a fordítószerkesztőben.
- `copy-once`: a kezdeti fordításkor átmásolja az értéket. Ezek a mezők nem jelennek meg a fordítószerkesztőben, de a felhasználó a szerkesztőképernyőn módosíthatja a másodlagos nyelv értékét.
- `ignore`: nem másolja át a mezőt a másodlagos nyelvre.

```xml
<wpml-config>
  <custom-term-fields>
    <custom-term-field action="copy">term_meta_A</custom-term-field>
    <custom-term-field action="translate">term_meta_B</custom-term-field>
    <custom-term-field action="ignore">term_meta_C</custom-term-field>
    <custom-term-field action="copy-once">term_meta_D</custom-term-field>
  </custom-term-fields>
</wpml-config>
```

### A kifejezések egyedi mezőiben tárolt azonosítók átalakítása

Ez is csak akkor megy, ha a mező **Copy** beállítású (`<custom-term-field action="copy">`). A bejegyzések egyedi mezőihez hasonlóan itt is megadhatod a taxonómia-mezőkben tárolt objektumazonosítókat, a WPML pedig átalakítja őket a lefordított változatra. A `custom-term-fields` részben használd:

- `type`: milyen objektumra hivatkozik, például `post-ids` vagy `taxonomy-ids`;
- `sub-type` (opcionális): a konkrét entitás.

```xml
<wpml-config>
  <custom-term-fields>
    <custom-term-field action="copy" type="post-ids" sub-type="product">custom_term_field_with_id</custom-term-field>
  </custom-term-fields>
</wpml-config>
```

Az általános tudnivalókat a [Nyelvi konfigurációs fájl](https://hub.hellowp.io/hu/plugins/sitepress-multilingual-cms/fejleszto-wpml-config/) fejezet tartalmazza.
