WPML

Bevor Sie beginnen

Installieren und aktivieren Sie diese Plugins:

  • Advanced Custom Fields oder ACF Pro.
  • WPML und WPML String-Übersetzung.
  • ACFML (das Add-on, das auf dieser Seite behandelt wird).

Ihre Feldgruppen sollten bereits in ACF konfiguriert sein. Sie können die Übersetzungseinstellungen pro Feld auch nachträglich ändern, die Reihenfolge der Schritte spielt also keine Rolle. Richten Sie die Feldgruppen ein und kehren Sie dann zu ACFML zurück.

Wählen Sie eine Übersetzungsoption für jede Feldgruppe

ACF-Feldgruppen verhalten sich bei der Übersetzung nicht alle gleich. ACFML bietet drei Übersetzungsoptionen für jede Feldgruppe. Um eine auszuwählen:

  1. Gehen Sie zu ACFFeldgruppen und bearbeiten Sie die Feldgruppe.
  2. Klicken Sie im Abschnitt Mehrsprachiges Setup unter Wählen Sie eine Übersetzungsoption für diese Feldgruppe bei der gewünschten Option auf Auswählen.
  3. Speichern Sie die Feldgruppe.

ACFML markiert die für Ihre Website vorgeschlagene Option als für diese Website empfohlen. Um später eine andere Option zu wählen, klicken Sie auf Option ändern. Ältere ACFML-Versionen nennen die ersten beiden Optionen Same fields across languages und Different fields across languages.

Gleicher Inhalt in jeder Sprache, übersetzt

Die typische Einstellung für die meisten ACF-Websites. Besucher in jeder Sprache sehen dieselben Seiten in ihrer eigenen Sprache. Der Text wird übersetzt, während das Layout und die Einstellungen gleich bleiben. Die Seite Unser Team ist das übliche Beispiel. Ihr Team ist in jeder Sprache gleich, also werden der Name und die Biografie jedes Teammitglieds übersetzt, und die Feldstruktur bleibt erhalten. Sie geben das Team in der Standardsprache ein und senden den Beitrag dann unter WPMLÜbersetzungenDashboard zur Übersetzung. Die übersetzten Werte fließen in dieselben Felder zurück. Diese Option funktioniert mit der automatischen Übersetzung und Alles übersetzen.

Jede Sprache hat ihren eigenen Inhalt

Verwenden Sie diese Option, wenn jede Sprache unterschiedliche Inhalte in derselben Feldgruppe anzeigt. Das übliche Beispiel ist ein Unternehmen, das lokale Veranstaltungen durchführt. Die englische Events-Seite zeigt Veranstaltungen für ein englisches Publikum und die französische Seite zeigt Veranstaltungen für ein französisches Publikum. Die Felder beginnen als Kopie des Originals. Danach behält jede Sprache ihre eigenen Werte. Sie bearbeiten jede Sprache im WordPress-Editor: Öffnen Sie den Beitrag, klicken Sie auf das Plus-Symbol für die Zielsprache in der Box Sprache, füllen Sie die Werte für diese Sprache aus und veröffentlichen Sie ihn. WPML synchronisiert die Sprachversionen danach nicht mehr, und die automatische Übersetzung wird nicht angewendet.

Experte

Verwenden Sie diese Option, wenn Sie eine Mischung benötigen: Einige Felder werden übersetzt, einige bleiben gleich und andere werden einmal kopiert und ändern sich dann in jeder Sprache. Wählen Sie Experte und legen Sie die Übersetzungseinstellung jedes Feldes manuell fest. Im Beispiel der Veranstaltungen verwenden der Titel und die Beschreibung Übersetzen, während der Preis, das Datum und die Adresse Kopieren verwenden. ACFML empfiehlt diese Option für neue Feldgruppen nicht. Eine in PHP oder Local JSON definierte Feldgruppe kann keine Übersetzungsoption haben. Dann verwendet sie Experte nur, wenn die Feldgruppe bereits existiert, bevor Ihre Website auf WPML 5.2 aktualisiert wird.

Übersetzungseinstellungen für jeden ACF-Feldtyp

Jedes Feld, das einen Wert speichert, hat eine von vier Übersetzungseinstellungen:

  • Übersetzen. Besucher sehen den Wert in ihrer eigenen Sprache. WPML füllt ihn mit der Übersetzung. Sie bearbeiten ihn im Übersetzungs-Editor.
  • Kopieren. Besucher in jeder Sprache sehen genau das, was das Original zeigt. Das Feld ist in den anderen Sprachen gesperrt.
  • Einmal kopieren. Der Wert beginnt als Kopie des Originals. Danach bearbeiten Sie ihn in jeder Sprache manuell. Wenn Sie das Feld in einer Übersetzung leeren, bleibt es leer. WPML kopiert den ursprünglichen Wert nicht erneut hinein.
  • Nicht übersetzen. Übersetzungen beginnen ohne diesen Wert. Sie können ihn in jeder Sprache manuell ausfüllen.

Wenn Sie Gleicher Inhalt in jeder Sprache, übersetzt oder Jede Sprache hat ihren eigenen Inhalt wählen, weist ACFML jedem Feld die für seinen Feldtyp empfohlene Einstellung zu. Die folgenden Tabellen zeigen diese empfohlenen Einstellungen. Um eine andere Einstellung für ein Feld festzulegen, verwenden Sie Experte. Um die empfohlene Einstellung eines Feldtyps auf der gesamten Website zu ändern, verwenden Sie den Filter acfml_field_group_mode_field_translation_preference (siehe Entwickler-Hooks für Ausnahmefälle unten).

Tab-, Akkordeon-, Nachrichten- und Trennzeichen-Felder speichern keinen Wert, daher haben sie keine Übersetzungseinstellung. Ein Feldtyp, der nicht in den Tabellen aufgeführt ist, zum Beispiel ein Feldtyp aus einem anderen Plugin, erhält bei beiden Übersetzungsoptionen die Einstellung Kopieren.

Repeater-, Flexible Content-, Gruppen- und Klon-Felder

Diese Felder enthalten andere Felder. Die empfohlene Einstellung des Container-Feldes ist Kopieren oder Einmal kopieren. ACFML bietet für das Container-Feld selbst nicht Übersetzen an. Jedes Unterfeld hat seine eigene Übersetzungseinstellung.

Bei Gleicher Inhalt in jeder Sprache, übersetzt bleiben die Zeilen von Repeater- und Flexible Content-Feldern in derselben Reihenfolge wie in der Standardsprache. Bei Experte, oder wenn ein Beitrag Feldgruppen mit unterschiedlichen Optionen verwendet, zeigt der Beitrags-Editor eine Box ACFML Synchronise translations an. Sie wird im Originalbeitrag angezeigt, wenn der Beitrag Übersetzungen und ein Repeater- oder Flexible Content-Feld hat. Wählen Sie Keep repeater and flexible sub-fields in the same order as the default language, um die Zeilen in allen Sprachen anzugleichen.

Basis-Felder

TypGleicher Inhalt in jeder Sprache, übersetztJede Sprache hat ihren eigenen Inhalt
TextÜbersetzenÜbersetzen
TextbereichÜbersetzenÜbersetzen
ZahlKopierenEinmal kopieren
BereichKopierenEinmal kopieren
E-MailKopierenEinmal kopieren
URLÜbersetzenÜbersetzen
PasswortKopierenEinmal kopieren

Inhaltsfelder

TypGleicher Inhalt in jeder Sprache, übersetztJede Sprache hat ihren eigenen Inhalt
BildKopierenEinmal kopieren
DateiKopierenEinmal kopieren
WYSIWYG-EditorÜbersetzenÜbersetzen
oEmbedKopierenEinmal kopieren
GalerieKopierenEinmal kopieren

Auswahlfelder

TypGleicher Inhalt in jeder Sprache, übersetztJede Sprache hat ihren eigenen Inhalt
AuswahlKopierenEinmal kopieren
KontrollkästchenKopierenEinmal kopieren
Radio-ButtonKopierenEinmal kopieren
Button-GruppeKopierenEinmal kopieren
Wahr / FalschKopierenEinmal kopieren

jQuery-Felder

TypGleicher Inhalt in jeder Sprache, übersetztJede Sprache hat ihren eigenen Inhalt
Google MapKopierenEinmal kopieren
DatumsauswahlKopierenEinmal kopieren
Datums- und ZeitauswahlKopierenEinmal kopieren
ZeitauswahlKopierenEinmal kopieren
FarbauswahlKopierenEinmal kopieren
SymbolauswahlKopierenEinmal kopieren

Layout-Felder

TypGleicher Inhalt in jeder Sprache, übersetztJede Sprache hat ihren eigenen Inhalt
GruppeKopierenEinmal kopieren
RepeaterKopierenEinmal kopieren
Flexible InhalteKopierenEinmal kopieren
KlonKopierenEinmal kopieren

Relationale Felder

TypGleicher Inhalt in jeder Sprache, übersetztJede Sprache hat ihren eigenen Inhalt
LinkÜbersetzenÜbersetzen
BeitragsobjektKopierenEinmal kopieren
Seiten-LinkKopierenEinmal kopieren
BeziehungKopierenEinmal kopieren
TaxonomieKopierenEinmal kopieren
BenutzerKopierenEinmal kopieren

Bei einem Link-Feld umfasst die Übersetzung den Link-Text und die URL. Wenn die URL auf eine Seite Ihrer Website verweist und Sie sie nicht ändern, zeigt WPML die Seite in der Sprache des Besuchers an.

Ab ACFML 5.0 verwenden URL- und Link-Felder standardmäßig die Einstellung Übersetzen.

TypGleicher Inhalt in jeder Sprache, übersetztJede Sprache hat ihren eigenen Inhalt
URLÜbersetzenÜbersetzen
LinkÜbersetzenÜbersetzen

Bidirektionale Beziehungen

Seit ACF 6.2 können Beziehungs-, Beitragsobjekt-, Taxonomie- und Benutzer-Felder bidirektional sein. Wenn Sie ein Ziel in dem Feld auswählen, fügt ACF Ihren Beitrag zum gekoppelten Feld des Ziels hinzu. Zum Beispiel setzt das Buch Dune sein Feld Autor auf Frank Herbert. ACF fügt dann Dune zum Feld Bücher von Frank Herbert hinzu.

ACFML behält das Paar in jeder Sprache bei:

  • Wenn WPML das Feld in eine Übersetzung kopiert, verweist ACFML das Feld auf das Ziel in derselben Sprache. Dann fügt ACFML die Übersetzung zum gepaarten Feld dieses Ziels hinzu. Das spanische Dune zeigt den spanischen Frank Herbert, und der spanische Frank Herbert listet das spanische Dune auf.
  • Wenn das Feld Kopieren verwendet und Sie das Ziel im Originalbeitrag ändern, aktualisiert WPML die Übersetzung. ACFML fügt die Übersetzung zum neuen Ziel in dieser Sprache hinzu und entfernt sie aus dem alten Ziel.
  • ACFML ändert nur die Ziele in der Sprache der Übersetzung. Die Beiträge in der Originalsprache behalten ihr eigenes Paar.
  • Wenn das Ziel noch keine Übersetzung hat, verweist die Übersetzung auf das ursprüngliche Ziel, und ACFML ändert das ursprüngliche Ziel nicht. Wenn Sie das Ziel später übersetzen, verweist ACFML das Feld auf die neue Übersetzung und fügt den Beitrag zu seinem gepaarten Feld hinzu. Das Feld listet das Ziel einmal auf.
  • Benutzer haben keine Übersetzungen, daher fügt ACFML keine Übersetzungen zum gepaarten Feld eines Benutzers hinzu. Dieses Feld behält den Originalbeitrag. In einer anderen Sprache zeigt ACFML die Übersetzung dieses Beitrags, es sei denn, das Feld verwendet Kopieren.

Dies funktioniert für die Einstellungen Kopieren und Einmal kopieren, welche die empfohlenen Einstellungen für diese Feldtypen sind. Es funktioniert auch, wenn Sie einen Beitrag mit WPML duplizieren.

ACF-Blöcke übersetzen

Standardmäßig speichern ACF-Blöcke ihre Feldwerte innerhalb des Blocks, im Beitragsinhalt, nicht als benutzerdefinierte Felder. ACFML sendet diese Werte zusammen mit dem Rest des Beitrags im selben Übersetzungsauftrag zur Übersetzung.

  • Der Block verwendet die Übersetzungsoption und die Feldeinstellungen der Feldgruppe, deren Standortregel dieser Block ist.
  • ACFML sendet nur die Felder, die Übersetzen verwenden. Felder, die Kopieren, Einmal kopieren oder Nicht übersetzen verwenden, behalten den Wert aus dem ursprünglichen Block.
  • Repeater- und Flexible-Content-Felder innerhalb eines Blocks werden ebenfalls übersetzt, auch wenn sie verschachtelt sind. Jedes Unterfeld verwendet seine eigene Übersetzungseinstellung.
  • Ein Block mit "usePostMeta": true im Abschnitt acf seiner block.json speichert seine Werte als benutzerdefinierte Felder des Beitrags, nicht im Block. Diese Werte werden wie jedes andere benutzerdefinierte Feld des Beitrags übersetzt, mit der Übersetzungsoption und den Feldeinstellungen der Feldgruppe.
  • Wenn Sie eine Übersetzungseinstellung in einer Feldgruppe ändern, die Sie für Blöcke verwenden, fragt WPML, ob Sie die bestehenden Übersetzungen aktualisieren möchten. Wenn Sie bestätigen, markiert WPML die Übersetzungen dieser Beiträge als aktualisierungsbedürftig. Senden Sie sie erneut zur Übersetzung, um die Änderung anzuwenden. Eine Änderung zu Nicht übersetzen markiert sie nicht.

In block.json deklarierte Felder

Seit ACF 6.8.1 kann ein Block seine Felder in seiner Datei block.json unter acf.fields deklarieren. ACF erstellt eine Feldgruppe für diese Felder, und Sie können diese Feldgruppe nicht im Admin-Bereich bearbeiten. ACFML weist ihr die Option Gleicher Inhalt in jeder Sprache, übersetzt und die empfohlene Einstellung für jeden Feldtyp zu, wie bei einer in PHP registrierten Feldgruppe.

Um eine andere Option für die gesamte Gruppe zu verwenden, fügen Sie acfml_field_group_mode zum Abschnitt acf von block.json oder zu acf_register_block_type() hinzu. Die akzeptierten Werte sind translation (Gleicher Inhalt in jeder Sprache, übersetzt), localization (Jede Sprache hat ihren eigenen Inhalt) und advanced (Experte). ACFML ignoriert jeden anderen Wert.

{
    "name": "acme/event-card",
    "title": "Event Card",
    "acf": {
        "mode": "preview",
        "acfml_field_group_mode": "localization",
        "fields": [ ... ]
    }
}

Um die Einstellung eines Feldes festzulegen, fügen Sie diesem Feld wpml_cf_preferences hinzu. ACFML behält diese Einstellung bei jeder Option bei. Mit Experte erhalten nur die Felder eine Einstellung, die wpml_cf_preferences deklarieren.

Wenn block.json keine Option benennt, speichert ACFML die Option, die es der Gruppe beim ersten Erkennen der Gruppe zuweist, und behält sie danach bei. Auf Websites, die diese Blöcke mit einer älteren ACFML-Version verwendet haben, ist die gespeicherte Option Experte.

Einstellungen für in PHP oder JSON registrierte Felder festlegen

ACF-Feldgruppen, die in PHP (mit acf_add_local_field_group()) oder über die Local-JSON-Funktion von ACF registriert wurden, übernehmen keine Übersetzungseinstellungen aus den Admin-Bildschirmen, da der Admin-Bereich sie nicht verwaltet. Legen Sie die Einstellungen an derselben Stelle fest, an der Sie die Felder registrieren.

Um die Übersetzungsoption der Feldgruppe festzulegen, fügen Sie der Definition den Schlüssel acfml_field_group_mode hinzu, mit translation, localization oder advanced (Experte). Wenn die Definition keine Übersetzungsoption festlegt, weist ACFML der Feldgruppe die Option Gleicher Inhalt in jeder Sprache, übersetzt zu, wenn es die Gruppe zum ersten Mal sieht. ACFML speichert diese Option und behält sie danach bei. Feldgruppen, die bereits existierten, bevor Ihre Website auf WPML 5.2 aktualisiert wurde, behalten Experte.

Fügen Sie für jedes Feld in der Feldgruppen-Definition einen wpml_cf_preferences-Schlüssel hinzu. Der Wert ist eine Ganzzahl, die den vier Übersetzungseinstellungen zugeordnet ist: 0 für Nicht übersetzen (WPML ignoriert das Feld), 1 für Kopieren (der Wert bleibt in allen Sprachen synchron), 2 für Übersetzen (der Wert wird übersetzt) und 3 für Einmal kopieren (der Wert wird in neue Übersetzungen kopiert, danach kann jede Sprache unabhängig bearbeitet werden).

Ein minimales Beispiel:

acf_add_local_field_group( [
    'key'    => 'group_1',
    'title'  => 'My Group',
    'fields' => [
        [
            'key'                 => 'field_1',
            'label'               => 'Sub Title',
            'name'                => 'sub_title',
            'type'                => 'text',
            'wpml_cf_preferences' => 2, // Translate.
        ],
    ],
    // ...rest of the field-group config
] );

Nachdem Sie die Felder im Code definiert haben, synchronisieren Sie die Einstellungen in WPML, damit der Admin-Bereich sie erkennt:

  1. Gehen Sie zu ACFWerkzeuge.
  2. Scrollen Sie zu ACF Local JSON und in PHP registrierte Felder übersetzen.
  3. Wählen Sie unter Übersetzungseinstellungen für lokale Felder synchronisieren die Option Jetzt einmal synchronisieren und klicken Sie auf Anwenden.

WPML liest die Einstellungen aus Ihren Felddefinitionen und speichert sie. Jetzt einmal synchronisieren wird einmal ausgeführt. Wenn Sie die Definitionen häufig ändern, wählen Sie stattdessen Bei jeder Anfrage synchronisieren (kann die Performance beeinträchtigen). Diese Option führt die Synchronisierung bei jeder Admin-Anfrage aus.

Wenn Sie die Local-JSON-Funktion von ACF verwenden, um Feldgruppen zwischen Websites zu teilen, schreibt ACFML die Übersetzungseinstellungen automatisch in die JSON-Dateien. Exportieren Sie eine JSON-Datei von einer Website und importieren Sie sie auf einer anderen. Die Ziel-Website übernimmt die Einstellungen, sobald ACFML auf beiden Seiten aktiv ist.

Feldgruppen, die ACF mit dem WP-CLI-Befehl wp acf json import oder über seine Abilities-API für KI-Tools erstellt, werden in der Datenbank gespeichert. ACFML weist ihnen die Option Gleicher Inhalt in jeder Sprache, übersetzt und die empfohlene Einstellung für jeden Feldtyp zu. Wenn das importierte JSON bereits einen Schlüssel acfml_field_group_mode enthält, verwendet ACFML stattdessen diese Option.

Feldgruppen in lokalen JSON-Dateien

ACF lädt die Feldgruppen des Ordners acf-json bei jeder Anfrage sehr früh. Ab WPML 5.2 liest ACFML diese Feldgruppen zur gleichen Zeit. Wenn Sie also die Übersetzungseinstellungen synchronisieren, deckt die Synchronisierung auch JSON-Feldgruppen ab. WPML verwendet dann die Einstellungen in den JSON-Dateien.

Fügen Sie in der JSON-Datei jedem Feld wpml_cf_preferences hinzu, mit denselben Werten wie in PHP. Dieser Schlüssel legt die Einstellung jedes Feldes fest, unabhängig von der Übersetzungsoption der Feldgruppe. Das Beispiel verwendet Experte:

{
    "key": "group_event",
    "title": "Event",
    "acfml_field_group_mode": "advanced",
    "fields": [
        {
            "key": "field_event_title",
            "label": "Event Title",
            "name": "event_title",
            "type": "text",
            "wpml_cf_preferences": 2
        },
        {
            "key": "field_event_price",
            "label": "Price",
            "name": "event_price",
            "type": "number",
            "wpml_cf_preferences": 1
        }
    ]
}

Um die Einstellungen und die Labels von JSON-Feldgruppen an WPML zu senden:

  1. Gehen Sie zu ACFWerkzeuge.
  2. Scrollen Sie zu ACF Local JSON und in PHP registrierte Felder übersetzen.
  3. Wählen Sie unter Übersetzungseinstellungen für lokale Felder synchronisieren die Option Jetzt einmal synchronisieren oder Bei jeder Anfrage synchronisieren (kann die Performance beeinträchtigen).
  4. Wählen Sie unter Labels zur Übersetzung registrieren die Option Labels jetzt registrieren.
  5. Klicken Sie auf Anwenden.

Um das Ergebnis zu überprüfen, gehen Sie zu WPMLEinstellungen und suchen Sie die Felder unter Übersetzung benutzerdefinierter Felder. Jedes Feld zeigt die Einstellung aus der JSON-Datei an. ACFML registriert auch die Labels der Feldgruppen, Beitragstypen, Taxonomien und Optionsseiten, die nur im Code existieren: im Ordner acf-json oder in PHP registriert. Übersetzen Sie diese wie die Labels jeder anderen Feldgruppe (siehe ACF-Feld-Labels übersetzen unten).

ACF-Feld-Labels übersetzen

ACF-Feld-Labels sind die Namen, die jedes benutzerdefinierte Feld im WordPress-Editor und im Frontend identifizieren (z. B. Telefonnummer, Adresse). Sie werden separat von den Feldwerten übersetzt und befinden sich in der WPML String-Übersetzung, nicht im Übersetzungsauftrag des Beitrags.

So senden Sie Feld-Labels zur Übersetzung:

  1. Öffnen Sie WPMLÜbersetzungenDashboard.
  2. Erweitern Sie den Abschnitt ACF-Feldgruppe.
  3. Wählen Sie das Element Feldgruppen-Labels für die Feldgruppe aus, die Sie übersetzen möchten.
  4. Wählen Sie eine Übersetzungsmethode (PTC, Ihren Übersetzer oder Selbst übersetzen) und senden Sie sie ab.

Die übersetzten Labels erscheinen automatisch im Frontend, sobald die Übersetzung abgeschlossen ist.

Feldbezeichnungen nicht mehr übersetzen

Standardmäßig enthält der Übersetzungsauftrag eines Beitrags nicht die Feldbezeichnungen. Sie übersetzen diese nur, wenn Sie das Element Field Group Labels vom Dashboard aus senden. Wenn Sie es nicht senden, zeigt ACF die Originalbezeichnungen an. Um die Originalbezeichnungen auch dann anzuzeigen, wenn Übersetzungen vorhanden sind, verwenden Sie den Filter acfml_should_translate_acf_entity und geben Sie false für die Felder oder Feldgruppen zurück, die Sie überspringen möchten. Die Referenz für ACFML-Hooks und -Konstanten enthält ein Beispiel.

ACF-Feldauswahlmöglichkeiten übersetzen

Auswahlfelder (Select, Checkbox, Radio Button, Button Group) haben ihre eigenen Optionsbezeichnungen (z. B. Small / Medium / Large). Diese befinden sich ebenfalls neben den Feldbezeichnungen und nicht innerhalb der Beitragsübersetzung. Senden Sie diese auf die gleiche Weise:

  1. Öffnen Sie WPMLÜbersetzungenDashboard.
  2. Erweitern Sie den Abschnitt ACF Field Group.
  3. Wählen Sie die Feldgruppe aus, deren Auswahlwerte Sie übersetzen möchten.
  4. Wählen Sie eine Übersetzungsmethode und senden Sie sie ab.

ACF Options Pages übersetzen

ACF Options Pages (globale Einstellungsbildschirme wie Contact details, Header settings, Footer links) werden als eigener Objekttyp übersetzt, getrennt von Beiträgen:

  1. Öffnen Sie WPMLÜbersetzungenDashboard.
  2. Erweitern Sie den Abschnitt ACF Options.
  3. Wählen Sie die Options Page aus, die Sie übersetzen möchten.
  4. Wählen Sie eine Übersetzungsmethode und senden Sie sie ab.

Die Werte der Options Page jeder Sprache werden automatisch angezeigt, wenn ACF die Option im Kontext dieser Sprache liest.

Die Übersetzungsoption der Feldgruppe auf der Options Page entscheidet, was mit jedem Feld passiert:

  • Felder, die Translate verwenden, werden in das Element ACF Options aufgenommen, das Sie vom Übersetzungs-Dashboard aus senden. Wenn die Übersetzung abgeschlossen ist, schreibt ACFML die Werte auf die Options Page dieser Sprache. Repeater- und Flexible Content-Felder erhalten dieselben Zeilen wie das Original.
  • Felder, die Copy verwenden, erhalten in jeder Sprache den Wert des Originals. Wenn Sie das Original speichern, aktualisiert ACFML die anderen Sprachen.
  • Felder, die Copy once verwenden, beginnen als Kopie des Originals. Danach bearbeiten Sie sie auf der Options Page der jeweiligen Sprache.

Verwenden Sie Each language has its own content, wenn sich die Optionen je nach Sprache unterscheiden. Zum Beispiel listet eine Options Page drei Vertriebsmitarbeiter auf Englisch und zwei auf Spanisch auf. Um die Option auszuwählen, bearbeiten Sie die Feldgruppe, wie bei jeder anderen Feldgruppe auch.

Um eine abgeschlossene Übersetzung zu ändern, gehen Sie zu WPMLÜbersetzungenÜbersetzungsaufträge und klicken Sie beim Auftrag ACF Options auf Bearbeiten. Sie können die übersetzten Werte auch unter WPMLString-Übersetzung bearbeiten. Wenn Sie dort eine Übersetzung speichern, schreibt ACFML sie auf die Options Page dieser Sprache.

Wenn Sie die Standardsprache der Website ändern, bleiben die vorhandenen Werte der Options Page in der Sprache, in der Sie sie geschrieben haben. ACF liest dieselben Werte wie vor der Änderung.

Im Code gibt get_field( 'my_field', 'option' ) den Wert der aktuellen Sprache zurück. Nach do_action( 'wpml_switch_language', 'fr' ) wird der französische Wert zurückgegeben. Dies funktioniert auch für Options Pages mit einer benutzerdefinierten post_id.

Häufige Fehlerquellen

  • Feldbezeichnungen scheinen unübersetzt zu sein. Sie befinden sich in der String-Übersetzung, nicht in der Beitragsübersetzung. Senden Sie das Element Field Group Labels der Feldgruppe vom Dashboard aus (siehe Feldbezeichnungen nicht mehr übersetzen oben).
  • Auswahlwerte scheinen unübersetzt zu sein. Gleiches Prinzip. Senden Sie die Feldgruppe aus dem Abschnitt ACF Field Group des Dashboards, damit die Optionswerte einbezogen werden.
  • Repeater-Zeilen sind nicht mehr synchron. Die Feldgruppe verwendet wahrscheinlich Expert. Bearbeiten Sie den Originalbeitrag, wählen Sie im Feld ACFML Synchronise translations die Option Keep repeater and flexible sub-fields in the same order as the default language aus und aktualisieren Sie den Beitrag. Oder stellen Sie die Feldgruppe auf Same content in every language, translated um.
  • Bedingte Logik verhält sich unerwartet. Wenn das steuernde Feld auf Copy oder Don’t translate eingestellt ist, folgt das bedingte Verhalten in allen Übersetzungen dem Wert der Ausgangssprache. Stellen Sie das steuernde Feld auf Translate ein, wenn sich sein Wert je nach Sprache unterscheiden soll.
  • Lokale Felder (in PHP registriert) ignorieren die im Admin-Bereich festgelegten Übersetzungseinstellungen. Legen Sie den Schlüssel wpml_cf_preferences in der Feldgruppen-Definition selbst fest und synchronisieren Sie über ACFWerkzeuge. Die Vorgehensweise finden Sie oben unter Einstellungen für in PHP oder JSON registrierte Felder festlegen.

Entwickler-Hooks für Sonderfälle

Für die programmatische Steuerung (bestimmte Felder von der Übersetzung ausschließen, die Standardeinstellung für einen Feldtyp website-weit überschreiben, Anmerkungen vor Übersetzern verbergen oder Feldgruppen-Strings von Beitrags-Übersetzungsaufträgen ausschließen) verfügt ACFML über zwei Filter und vier Konstanten. Die vollständige Referenz mit Codebeispielen finden Sie unter Referenz für ACFML-Hooks und -Konstanten.

Geschrieben vonAmir

Geschrieben vonAmir