Blog

Uitgebreide gids voor meertalige vertaling van WordPress-websites

Leonardo Losoviz
Door Leonardo Losoviz ·

Het vertalen van een WordPress-website is een complex proces dat zorgvuldige planning en uitvoering vereist. We hebben deze uitgebreide gids samengesteld op basis van onze uitgebreide ervaring met het vertalen van websites, met gebruikmaking van de plugin Gato AI Translations for Polylang.

Deze gids leidt je door alles wat je moet weten: van de eerste voorbereidingen en configuratie, via het eigenlijke vertaalproces, tot validatie en probleemoplossing. Volg deze gids om een soepele vertaalervaring te garanderen.

Installeer en configureer Polylang

Gato AI Translations for Polylang vereist dat Polylang is geïnstalleerd en geactiveerd. Polylang is het meertalige framework dat je talen en vertaalrelaties beheert.

Na de installatie moet je Polylang configureren met je talen:

  1. Ga naar Languages in je WordPress-beheermenu
  2. Voeg je standaardtaal toe (de taal van je bestaande inhoud)
  3. Voeg alle doeltalen toe waarnaar je wilt vertalen
Polylang-talen configureren
Talen toevoegen en configureren in de Polylang-instellingen

Je moet controleren of al je actieve plugins compatibel zijn met Polylang. Sommige plugins werken mogelijk niet correct in een meertalige omgeving.

Als je een incompatibele plugin ontdekt, zoek dan naar alternatieven, neem contact op met de ontwikkelaar voor ondersteuning, of overweeg of de plugin echt essentieel is.

Controleer en herstel je originele inhoud eerst

Voordat je begint met vertalen, is het essentieel om ervoor te zorgen dat je originele inhoud in perfecte staat is. Eventuele problemen in je oorspronkelijke inhoud worden gerepliceerd naar alle vertalingen, wat betekent dat je hetzelfde probleem meerdere keren moet oplossen (één keer per taal).

Checklist voor inhoudscontrole:

  1. Controleer op gebroken links

    • Gebruik een plugin zoals Broken Link Checker om gebroken interne en externe links te identificeren
    • Herstel alle gebroken links vóór het vertalen
    • Controleer of interne links verwijzen naar de juiste berichten/pagina's
  2. Controleer of alle afbeeldingen bestaan en zijn geoptimaliseerd

    • Controleer of alle afbeeldingen correct laden
    • Zorg ervoor dat afbeeldingen de juiste alt-tekst hebben voor toegankelijkheid en SEO
    • Controleer of de bestandsgrootten van afbeeldingen redelijk zijn (niet te groot)
    • Verwijder eventuele tijdelijke afbeeldingen of gebroken afbeeldingsverwijzingen
  3. Controleer opmaak en stijl

    • Controleer of de tekstopmaak consistent is
    • Controleer of koppen correct zijn gestructureerd (H1, H2, H3, enz.)
    • Zorg ervoor dat lijsten, tabellen en andere gestructureerde inhoud correct worden weergegeven
    • Test of aangepaste stijlen en CSS werken zoals verwacht
  4. Valideer de inhoudsstructuur

    • Zorg voor correct gebruik van Gutenberg-blokken of pagina-builder-elementen
    • Controleer of aangepaste berichttypen en taxonomieën correct zijn ingesteld
    • Controleer of metadata (aangepaste velden, ACF-velden, enz.) volledig is
  5. Controleer op tijdelijke inhoud

    • Verwijder eventuele "Lorem ipsum" of tijdelijke tekst
    • Vervang tijdelijke inhoud door definitieve versies
    • Zorg ervoor dat alle inhoud publicatieklaar is
  6. SEO-overwegingen

    • Controleer of metatitels en -beschrijvingen zijn ingesteld
    • Controleer of URL's SEO-vriendelijk zijn
    • Zorg voor correct gebruik van koppen voor de SEO-structuur

Bij het vertalen van inhoud moeten interne links worden bijgewerkt zodat ze verwijzen naar de vertaalde versies. Gato AI Translations for Polylang kan dit automatisch voor je afhandelen.

De plugin stelt je in staat om te configureren welke typen interne links moeten worden vervangen:

  • Custom Posts: links naar andere berichten, pagina's, aangepaste berichttypen, enz.
  • Media: links naar media-items (afbeeldingen, video's, enz.)
  • Tags: links naar tag-archiefpagina's
  • Categories: links naar categorie-archiefpagina's
  • Users: links naar auteurspagina's

Links naar berichten in de inhoud worden automatisch geëxtraheerd uit de originele inhoud en vervangen. Voor andere linktypen (media, tags, categorieën, gebruikers) moet je ze inschakelen in de instellingen als je wilt dat ze worden vervangen.

Hoe je dit configureert:

  1. Ga naar de instellingenpagina, onder Plugin Configuration > Internal Links Replacement
  2. Schakel alleen de linktypen in die je daadwerkelijk in je inhoud gebruikt
  3. Sla je instellingen op
Instellingenpagina voor het vervangen van interne links
Configureer welke typen interne links moeten worden vervangen in de plugin-instellingen

Om de functie voor het vervangen van interne links correct te laten werken, moeten alle links in je inhoud het juiste URL-formaat gebruiken. Dit geldt voor links in:

  • Bericht-/pagina-inhoud (Gutenberg-blokken, HTML, enz.)
  • Elementor-widgets en metavelden
  • Bricks-builder-elementen en metavelden
  • Aangepaste velden en metadata

URL-vereisten:

  1. URL's moeten het volledige domein bevatten

    • ✅ Correct: https://www.mijnsite.nl/hello-world/
    • ❌ Onjuist: /hello-world/ (relatieve URL)
    • ❌ Onjuist: hello-world/ (geen domein of protocol)
  2. URL's moeten verwijzen naar de huidige slug

    • Als je de slug van een bericht hebt gewijzigd, werk dan alle links bij om de nieuwe slug te gebruiken
    • WordPress moet het bericht kunnen ophalen via de URL
    • Oude slugs die doorverwijzen, werken niet voor linkvervanging
  3. URL's moeten het juiste domein gebruiken (geen omleidingen)

    • ✅ Correct: https://www.mijnsite.nl/hello-world/
    • ❌ Onjuist: https://mijnsite.nl/hello-world/ (als je site www gebruikt)
    • De plugin heeft het exacte domein nodig om links correct te matchen en te vervangen

Om onjuiste domeinen in URL's te corrigeren, kun je een plugin gebruiken zoals Better Search Replace om URL's rechtstreeks in je database te zoeken en te vervangen, bijv.: https://mijnsite.nl vervangen door https://www.mijnsite.nl.

Kies de status Concept of Gepubliceerd

Wanneer vertalingen worden aangemaakt, moet je beslissen of ze onmiddellijk moeten worden gepubliceerd of eerst als concepten moeten worden opgeslagen voor beoordeling.

Standaard worden vertalingen opgeslagen als concepten. Om vertalingen direct te publiceren, ga je naar de instellingenpagina, onder Plugin Configuration > General Configuration, en stel je de optie Status when translated in op Publish of Same as origin post (als het originele bericht al is gepubliceerd).

De optie 'Status when translated' instellen op 'Publish' of 'Same as origin post'
De optie 'Status when translated' instellen op 'Publish' of 'Same as origin post'

Als je vertaalt naar rechts-naar-links-talen zoals Hebreeuws, Arabisch, Farsi of Urdu, moet je ervoor zorgen dat je thema RTL-indelingen correct ondersteunt.

Blocksy-thema met LTR-indeling
Blocksy-thema met RTL-indeling
LTR- en RTL-indelingen in het Blocksy-thema

Wat RTL beïnvloedt:

RTL-talen vereisen meer dan alleen wijzigingen in de tekstrichting. Je thema moet het volgende aankunnen:

  • Indelingsrichting: elementen moeten van rechts naar links stromen
  • Tekstuitlijning: tekst moet standaard rechts worden uitgelijnd
  • Ruimte-aanpassingen: margin-left wordt margin-right, padding-left wordt padding-right, enz.
  • Navigatie: menu's en navigatie moeten RTL stromen
  • Formulieren: invoervelden en knoppen moeten correct worden uitgelijnd
  • Pictogrammen en afbeeldingen: moeten mogelijk worden gespiegeld of herpositioneerd

Wat al wordt afgehandeld:

  • Polylang stelt automatisch de juiste taalrichting in (dir="rtl"-attribuut)
  • Inhoudsvertaling werkt identiek voor RTL- en LTR-talen
  • Gato AI Translations vertaalt inhoud correct ongeacht de tekstrichting
Polylang-talenconfiguratie met RTL-talen
Polylang detecteert en configureert RTL-talen automatisch

Wat je moet controleren:

  1. RTL-ondersteuning van het thema: test je thema met een RTL-taal om te zien of het correct wordt afgehandeld

    • Veel moderne thema's bevatten RTL-stijlbladen
    • Controleer de documentatie van je thema voor informatie over RTL-ondersteuning
    • Zoek naar rtl.css of vergelijkbare bestanden in je thema
  2. Aangepaste CSS: controleer alle aangepaste CSS die je hebt toegevoegd

    • Hardgecodeerde links-/rechts-waarden moeten mogelijk worden aangepast
    • Overweeg het gebruik van logische eigenschappen (margin-inline-start in plaats van margin-left)
  3. Compatibiliteit met page builders: als je Elementor, Bricks of andere page builders gebruikt

    • Controleer of ze RTL-indelingen ondersteunen
    • Test indelingen in RTL-modus vóór het vertalen

Als je thema RTL niet goed ondersteunt, moet je mogelijk overstappen op een RTL-compatibel thema, aangepaste RTL-CSS toevoegen, of een plugin gebruiken die RTL-ondersteuning toevoegt.

Identificeer inhoud van externe plugins om te vertalen

Veel WordPress-plugins maken hun eigen aangepaste berichttypen (CPT's) aan om inhoud op te slaan (bijv.: WooCommerce-producten, Events Calendar-evenementen, LearnDash-cursussen, enz.).

Voordat je gaat vertalen, moet je:

  1. Identificeren welke CPT's inhoud bevatten die vertaald moet worden

    • Bekijk je actieve plugins en hun CPT's
    • Bepaal welke vertaling nodig hebben (niet alle hebben dat)
  2. Ervoor zorgen dat de relevante CPT's en taxonomieën vertaalbaar zijn

    • Ga naar Languages > Settings > Custom post types and Taxonomies in Polylang
    • Schakel vertaling in voor de relevante CPT's en taxonomieën
CPT's en taxonomieën configureren om te vertalen
CPT's en taxonomieën configureren om te vertalen

Automatisch vertaalvermeldingen aanmaken voor CPT's

Als een CPT de methode wp_insert_post gebruikt om vermeldingen aan te maken, kun je naar de instellingenpagina gaan, onder Plugin Configuration > General Configuration, en de optie Automatic creation of translation entries voor die CPT inschakelen zodat de plugin automatisch vertaalvermeldingen aanmaakt.

De optie 'Automatic creation of translation entries' instellen
De optie 'Automatic creation of translation entries' instellen

Als een CPT een andere methode gebruikt dan wp_insert_post, moet je handmatig vertaalvermeldingen aanmaken via de Polylang-UI voordat je ze kunt vertalen.

Bij WooCommerce-producten moet je bijvoorbeeld eerst de vertaalvermeldingen aanmaken. Bekijk de documentatie over het vertalen van aangepaste berichttypen van derden voor een demovideo.

Controleer of je SEO-plugin wordt ondersteund

SEO-metadata (metatitels, beschrijvingen, Open Graph-tags, enz.) is cruciaal voor meertalige SEO. Gato AI Translations for Polylang biedt ingebouwde ondersteuning voor de populairste SEO-plugins en vertaalt automatisch alle SEO-gerelateerde metadata.

De plugin ondersteunt 8 grote SEO-plugins:

  1. All in One SEO
  2. Rank Math
  3. SEO Simple Pack
  4. SEOPress
  5. Slim SEO
  6. The SEO Framework
  7. WP Meta SEO
  8. Yoast SEO

Als je een SEO-plugin gebruikt die hierboven niet wordt vermeld, moet je aangeven welke metasleutels je wilt synchroniseren en vertalen, overeenkomstig de SEO-plugin die je gebruikt. Elke plugin die zijn metadata opslaat in de wp_postmeta-tabel wordt ondersteund.

Kies je AI-provider en model

De kwaliteit van je vertalingen hangt af van de AI-service en het model dat je kiest.

Moderne AI-services (zoals ChatGPT, Claude en Gemini) produceren aanzienlijk betere vertalingen dan verouderde services (Google Translate of DeepL) omdat ze context, toon en nuance beter begrijpen; HTML-structuur en opmaak correct behouden; URL's of relatieve links niet onjuist vertalen; schrijfstijl en stem behouden in vertalingen; en beter omgaan met technische termen en domeinspecifieke taal.

Je kunt kiezen uit de volgende AI-services:

  • ChatGPT (OpenAI)
  • Claude (Anthropic)
  • DeepSeek
  • Gemini (Google)
  • Mistral AI
  • OpenRouter (LLM-aggregator die toegang biedt tot alle grote modellen, inclusief Grok en Llama)
  • Zelf gehoste LLM (gehost op je eigen server, bijv. via Ollama)

We raden aan de nieuwste beschikbare modelversies te gebruiken (bijv.: ChatGPT 5.2 in plaats van 5.0), omdat nieuwere modellen consequent betere vertaalkwaliteit bieden.

Pro-tip: Je kunt verschillende AI-services configureren voor verschillende talen. Gebruik bijvoorbeeld DeepSeek voor Chinees (uitstekende kwaliteit en zeer betaalbaar), ChatGPT voor Europese talen en Claude voor complexe technische inhoud. Hiermee kun je zowel kwaliteit als kosten optimaliseren.

Je kunt OpenRouter gebruiken om toegang te krijgen tot de nieuwste AI-modellen zodra ze worden uitgebracht.

Overweeg je AI-vertaalprompt aan te passen

De standaard vertaalprompt werkt goed voor de meeste inhoud, maar door hem aan te passen kun je de vertaalkwaliteit verbeteren voor jouw specifieke gebruikssituatie.

Voorbeeld:

Een reisblog kan zijn prompt aanpassen door het volgende toe te voegen:

Translate to a natural, flowing, easy-to-read, casual blog-style language. Keep original content structure, meaning, and styling (but do adjust sentence structure and style to be relevant to the target language).
 
Lightly improve boring parts - Add curiosity triggers, light humor, and light slang (as fits the target language), like a human travel blogger would write.

Je kunt de standaard prompt aanpassen, of meerdere aangepaste AI-prompts maken en selecteren welke je wilt gebruiken in de instellingen:

Een AI-prompt bewerken
Bewerk het systeembericht en de promptsjabloon voor aangepaste prompts

Controleer je Gutenberg-blokken

Voordat je gaat vertalen, moet je bepalen welke blokken je gebruikt en ervoor zorgen dat ze worden ondersteund voor vertaling.

Gutenberg-blokken die standaard worden ondersteund:

  • Alle WordPress-kernblokken: Paragraph, Heading, List, Quote, Image, Gallery, enz.
  • Blokken van derden: blokken van plugins Yoast SEO, GenerateBlocks, Kadence, Greenshift, enz.

Als je een niet-ondersteund blok gebruikt dat tekenreeksen bevat die vertaald moeten worden, kun je:

Hulp nodig? We kunnen aangepaste blokken voor je integreren. Bekijk onze Aangepaste Services als je liever hebt dat experts de integratie afhandelen.

Opmerking: er zijn blokken die niet kunnen worden vertaald.

Als je een niet-ondersteund blok moet vervangen, wil je alle berichten vinden die het gebruiken. Bekijk de tutorial over het vinden van berichten die een bepaald blok bevatten voor methoden om te identificeren waar specifieke blokken worden gebruikt.

Controleer je Elementor-widgets

Als je de Elementor page builder gebruikt, moet je controleren welke widgets je gebruikt en ervoor zorgen dat ze worden ondersteund voor vertaling. Het proces is vergelijkbaar met het controleren van Gutenberg-blokken, maar specifiek voor Elementor-widgets.

Alle kern-Elementor-widgets worden standaard ondersteund.

Als je niet-ondersteunde widgets hebt:

Controleer je Bricks-elementen

Als je de Bricks page builder gebruikt, moet je controleren welke elementen je gebruikt en ervoor zorgen dat ze worden ondersteund voor vertaling. Het proces is vergelijkbaar met het controleren van Gutenberg-blokken, maar specifiek voor Bricks-elementen.

Alle kern-Bricks-elementen worden standaard ondersteund.

Als je niet-ondersteunde elementen hebt:

Omgaan met afbeeldingen die tekst bevatten

Een veelgemaakte fout bij het vertalen van websites is vergeten dat afbeeldingen tekst kunnen bevatten die mogelijk vertaald moet worden.

Wanneer je een bericht vertaalt, worden de afbeeldingen gekopieerd naar de vertaalde versie en wordt de afbeeldingsmetadata (titel, alt-tekst, bijschrift) vertaald, maar eventuele tekst in die afbeeldingen blijft in de oorspronkelijke taal.

Om je afbeeldingen te controleren, is de eenvoudigste manier de WordPress-mediabibliotheek over te schakelen naar de Raster-indeling — hiermee kun je al je afbeeldingen in één oogopslag visueel scannen en snel afbeeldingen herkennen die ingebedde tekst in de verkeerde taal bevatten.

WordPress-mediabibliotheek in rasterindeling
Gebruik de rasterindeling in de mediabibliotheek om alle afbeeldingen visueel te bekijken op ingebedde tekst

Deze afbeelding bevat bijvoorbeeld Hebreeuwse tekst, waardoor ze ongeschikt is voor andere talen.

Kaart van Thailand met Hebreeuwse tekst
Afbeeldingen kunnen tekst bevatten waarmee rekening moet worden gehouden bij het vertalen

Je opties:

  1. Ingebedde tekst behouden (als de taal nog algemeen te begrijpen is)

    • Geschikt wanneer de tekst in een breed begrepen taal is of universele symbolen/cijfers gebruikt
    • Geen extra werk vereist
  2. Tekst uit afbeeldingen verwijderen

    • Gebruik afbeeldingen zonder ingebedde tekst
  3. Tekstoverlays gebruiken in plaats van ingebedde tekst

    • Gebruik afbeeldingen zonder ingebedde tekst
    • Overlay-tekst (met Gutenberg-blokken, Elementor-widgets, Bricks-elementen of CSS) die automatisch wordt vertaald
  4. Vertaalde versies van afbeeldingen maken

    • Maak aparte afbeeldingsbestanden voor elke taal
    • Vervang afbeeldingen handmatig in vertaalde berichten

Omgaan met de vertaling van aanvullende gebruikersgegevens

Polylang kan het biografieveld voor WordPress-gebruikersprofielen afhandelen, maar als je aanvullende gebruikersgegevens hebt opgeslagen in aangepaste velden (via ACF, Meta Box of andere middelen), heb je een speciale aanpak nodig.

Als je gebruikersgegevens hebt die vertaald moeten worden (bijv. functietitels, kwalificaties, beschrijvingen, enz.), moet je aparte velden aanmaken voor elke taal.

  1. Aparte velden aanmaken voor elke taal

    • Maak met ACF of Meta Box velden aan zoals:
      • Qualification EN
      • Qualification FR
      • Qualification DE
      • enz.
  2. Je thema bijwerken om het juiste veld weer te geven

    • Pas je themasjablonen aan om de huidige taal te controleren
    • Geef het juiste veld weer op basis van de actieve taal
    • Voorbeeld PHP-code:
      $current_lang = pll_current_language();
      $qualification = get_field("qualification_{$current_lang}", 'user_' . $user_id);
      echo $qualification;
  3. Velden handmatig invullen

    • Werk na het vertalen van inhoud de velden van gebruikersprofielen handmatig bij

Sla het vertalen van termen over die niet vertaald mogen worden

Sommige termen mogen nooit worden vertaald — merknamen, eigennamen, technische termen of domeinspecifieke terminologie.

Je kunt het vertalen van deze termen overslaan door instructies aan je aangepaste prompt toe te voegen, bijvoorbeeld:

Do not translate the following types of terms:
- Hotel names (e.g., "Grand Hotel", "Beach Resort")
- Restaurant names
- Brand names
- Technical acronyms (API, SEO, CMS, etc.)
 
Keep these terms exactly as they appear in the original text.

Vermijd dubbele tags in verschillende talen

Je inhoud kan tags hebben die hetzelfde concept vertegenwoordigen in twee verschillende talen. Wanneer deze tags worden vertaald, kunnen ze duplicaten of conflicten veroorzaken.

Als je bijvoorbeeld een Chinese website hebt die naar het Engels wordt vertaald, en je hebt zowel een tag 布宜诺斯艾利斯 (Buenos Aires in het Chinees) als een tag Buenos Aires in het Engels, dan worden bij het vertalen naar het Engels beide tags buenos-aires. Dit veroorzaakt een situatie met een dubbele tag.

Dubbele tag in 2 talen
Dubbele tag in 2 talen

Hoe je dit vóór het vertalen kunt oplossen:

  1. Controleer je tags

    • Bekijk alle tags in je originele taal
    • Identificeer tags die duplicaten kunnen zijn van tags in andere talen
    • Zoek naar tags die hetzelfde concept vertegenwoordigen maar in verschillende talen
  2. Tags samenvoegen

    • Kies één taalversie om te bewaren (doorgaans je originele taal)
    • Voeg dubbele tags samen of verwijder ze
    • Werk berichten bij om de samengevoegde tag te gebruiken
  3. Opruimen vóór het vertalen

    • Zorg ervoor dat je originele inhoud alleen tags in de originele taal bevat
    • Verwijder eventuele tags in doeltalen uit de originele inhoud
    • Dit voorkomt conflicten tijdens het vertalen

Vermijd dubbele locatienamen in verschillende talen

Als je inhoud koppen gebruikt die scripts mixen, zie je mogelijk dit patroon: de titel begint met een lokale plaatsnaam, dan dezelfde naam in Latijnse letters tussen haakjes, gevolgd door de rest van de regel.

Typisch oorspronkelijk patroon (voorbeeld):

  • Origineel (bijv. in het Hebreeuws): פוקט (Pouket) - מדריך לאי היפה — lokale naam, dan een Engelse of internationale spelling tussen haakjes, dan de ondertitel.
  • Vertaald (bijv. naar het Engels): Pouket (Pouket) - beautiful island guide.

Na de vertaling staat de kop al in één taal en schrift, zodat de letterlijke weergave van het model dezelfde plaatsnaam twee keer herhaalt (bijv. Pouket (Pouket)).

Oplossing: verfijn de vertaalprompt

Pas je prompt aan zodat het model overbodige "Naam (ZelfdeName)"-beginnen normaliseert wanneer de informatie tussen haakjes niets nieuws toevoegt. Voeg bijvoorbeeld instructies toe zoals:

If a heading begins with a place name followed by the same translated name in parentheses, remove the duplicate and keep one natural version. Do not remove the parenthesis if the text inside uses a different script, a different spelling, or includes additional descriptive information.

Let op je tag-/categorieslugs

Als je tag- of categorieslugs al in de doeltaal zijn, ga je er misschien van uit dat er niets te vertalen valt.

Categorieën in het Hebreeuws hebben hun slug in het Engels
Categorieën in het Hebreeuws hebben hun slug in het Engels

Dat is vaak prima — maar er is een addertje onder het gras met Polylang free (niet Pro).

Met Polylang Pro kunnen vertaalde termen dezelfde slug hergebruiken in verschillende talen. Met de gratis versie dwingt WordPress unieke slugs af voor alle talen, dus de slug van de vertaalde term krijgt automatisch het achtervoegsel -2.

Een categorie met slug travels_and_attractions in het Hebreeuws wordt bij vertaling naar het Engels bijvoorbeeld travels_and_attractions-2 in plaats van dezelfde slug te behouden.

Als dit gevolgen heeft voor je URL's of SEO, moet je de slugs na het vertalen handmatig corrigeren, of upgraden naar Polylang Pro om het hergebruik van slugs in verschillende talen mogelijk te maken.

Zorg ervoor dat je embeds in een acceptabele taal zijn

Als je inhoud van derden insluit — zoals Google Maps, social media-widgets of andere platform-iframes — controleer dan of de embed wordt weergegeven in de doeltaal.

Een Google Maps-embed die is geconfigureerd voor het Hebreeuws zal bijvoorbeeld nog steeds Hebreeuwse labels, straatnamen en UI weergeven, zelfs nadat je de rest van de pagina naar het Engels hebt vertaald. In dat geval kun je beter een taalonafhankelijke embed gebruiken.

Google Maps-embed met Hebreeuwse informatie op een Engelstalige pagina
Deze Google Maps-embed toont nog steeds Hebreeuwse informatie — niet geschikt na het vertalen van de site naar het Engels

Hetzelfde geldt voor elk platform of elke service die taalspecifieke embeds genereert (bijv. YouTube-hoofdstukken, beoordelingswidgets, boekingsformulieren). Controleer altijd elke embed na het vertalen.

Zorg ervoor dat er geen taalspecifieke stijlen in de originele inhoud zitten

Berichtinhoud geschreven voor een specifieke taal — met name RTL-talen zoals Hebreeuws of Arabisch — kan inline richtings- en taalattributen bevatten die rechtstreeks op HTML-elementen zijn toegepast. Wanneer die inhoud naar een andere taal wordt vertaald, worden die hardgecodeerde stijlen meegenomen en breken ze de indeling.

Veelvoorkomende boosdoeners in RTL-originele inhoud:

  • <div dir="rtl" lang="he"> — dwingt RTL-richting af en markeert de taal als Hebreeuws voor een hele sectie
  • <p dir="rtl"> — dwingt RTL-uitlijning af op afzonderlijke alinea's
  • <h2 style="text-align: right;"> — codeert rechtsuitlijning hard in koppen

Wanneer deze inhoud naar het Engels (of een andere LTR-taal) wordt vertaald, wordt de tekst Engels, maar de indeling wordt nog steeds van rechts naar links weergegeven — wat resulteert in verkeerd uitgelijnde koppen, omgekeerde tekststroom en gebroken opmaak.

Controleer vóór het vertalen je originele inhoud op deze attributen en verwijder ze. Laat het thema en de taal-/regioninstellingen van WordPress de richting en uitlijning globaal regelen, in plaats van ze in te bedden in afzonderlijke inhoudsblokken.

Omgaan met Elementor Theme Builder-sjablonen

Als je Elementor's Theme Builder gebruikt om globale sjablonen te maken (kopteksten, voetteksten, sjablonen voor afzonderlijke berichten, archiefsjablonen, enz.), is het belangrijk te begrijpen hoe deze sjablonen worden behandeld tijdens het vertalen.

Wat wordt vertaald:

  • Menu's: menu-items worden vervangen door vertaalde menuversies
  • Dynamische inhoud: inhoud die uit berichten/pagina's wordt opgehaald, wordt vertaald (omdat de broninhoud is vertaald)

Wat niet wordt vertaald:

  • Hardgecodeerde tekst: tekst die rechtstreeks aan het sjabloon is toegevoegd (niet afkomstig van dynamische inhoud) wordt NIET vertaald
  • Widgettekst: tekst in widgets zoals koppen, alinea's, knoppen, enz. blijft in de originele taal
  • Aangepaste HTML: alle aangepaste HTML of codeblokken blijven onvertaald

Voorbeeld:

Dit Elementor-koptekstsjabloon bevat hardgecodeerde tekst ("Our Phone Number:"):

Elementor-koptekstsjabloon
Elementor-koptekstsjabloon

Oplossing:

Ontwerp sjablonen om alleen gebruik te maken van:

  • Menu's (die automatisch worden vervangen)
  • Afbeeldingen (die taalonafhankelijk zijn)
  • Dynamische inhoud (die afkomstig is uit vertaalde berichten)
  • Vermijd het direct toevoegen van hardgecodeerde tekst, koppen of beschrijvingen in sjablonen

Dit zorgt ervoor dat de globale elementen van je site (kopteksten, voetteksten, enz.) correct werken in alle talen.

Advanced Custom Fields (ACF) configureren

Als je Advanced Custom Fields (ACF) gebruikt, moet je configureren hoe elk veld moet worden behandeld tijdens het vertalen. ACF-velden kunnen verschillende soorten inhoud bevatten, en elk type heeft mogelijk een andere behandeling nodig.

Onder de sectie Gato Translate kunnen ACF-velden worden ingesteld op een van deze opties:

  1. (Do nothing): het veld wordt overgeslagen bij vertaling of synchronisatie

  2. Translate: de veldinhoud wordt vertaald naar de doeltaal

    • Gebruik voor: tekstvelden, tekstgebiedvelden, WYSIWYG-velden en alle velden die vertaalbare tekst bevatten
  3. Copy: de veldwaarde wordt ongewijzigd gekopieerd naar de vertaling (niet vertaald)

    • Gebruik voor: getallen, datums, selectievakjes, waar/onwaar-velden en alle velden die niet vertaald mogen worden
  4. Translate Reference: het veld verwijst naar een andere entiteit (bericht, pagina, gebruiker, enz.), en de verwijzing wordt bijgewerkt om naar de vertaalde versie te wijzen

    • Gebruik voor: Post Object-, Page Link-, Relationship-, User- en Taxonomy-velden
De vertaaloptie voor een ACF-veld configureren
Configureer vertaalopties voor elk ACF-veld (Translate, Copy of Translate Reference)

Veldgroepen kunnen worden toegepast op meer dan alleen berichten en pagina's. Ze kunnen ook worden toegepast op:

  • Categorieën
  • Tags
  • Media-items
  • Gebruikers
  • Aangepaste taxonomieën
  • Aangepaste berichttypen

Zorg ervoor dat je ook vertaalinstellingen configureert voor veldgroepen die op deze entiteiten van toepassing zijn!

Als je Polylang Pro gebruikt, moet je ook de ACF-vertaalfuncties uitschakelen om Gato AI Translations de vertaling te laten afhandelen.

Meta Box configureren

Als je Meta Box gebruikt (een andere populaire plugin voor aangepaste velden), is het configuratieproces vergelijkbaar met ACF. Meta Box-velden moeten ook worden geconfigureerd voor vertaling, kopiëren of referentievertaling.

Onder de sectie Gato Translate kunnen Meta Box-velden worden ingesteld op een van deze opties:

  1. (Do nothing): het veld wordt overgeslagen bij vertaling of synchronisatie
  2. Translate: veldinhoud wordt vertaald
  3. Copy: veldwaarde wordt ongewijzigd gekopieerd
  4. Translate Reference: veldverwijzing wordt bijgewerkt om naar de vertaalde entiteit te wijzen
Synchronisatie/vertaling configureren voor een Meta Box-veldgroep
Synchronisatie/vertaling configureren voor een Meta Box-veldgroep

Je moet ook de Meta Box-vertaalfuncties van Polylang uitschakelen om Gato AI Translations de vertaling te laten afhandelen.

Aangepaste metavelden configureren

Naast ACF, Meta Box en SEO-plugins kan je site andere aangepaste metavelden hebben van:

  • Aangepaste code
  • Andere plugins
  • WordPress aangepaste velden (de basis Custom Fields-metabox)

Deze metavelden moeten handmatig worden geconfigureerd in de plugin-instellingen.

Aangepaste metasleutels identificeren:

  1. Exporteer je inhoud

    • Ga naar Tools > Export in WordPress
    • Exporteer alle inhoudstypen die je wilt vertalen
    • Dit maakt een XML-bestand met al je inhoud en metadata
  2. Analyseer het exportbestand

    • Open het XML-bestand in een teksteditor
    • Zoek naar <wp:postmeta>-tags
    • Maak een lijst van alle unieke metasleutels
  3. Filter bekende velden eruit

    • Verwijder ACF-velden (doorgaans voorafgegaan door de naam van je veldgroep)
    • Verwijder Meta Box-velden
    • Verwijder WordPress-kernvelden (bijv. _edit_last, _wp_old_slug, _thumbnail_id)
    • Verwijder SEO-pluginvelden (als je een ondersteunde SEO-plugin gebruikt)
  4. Identificeer wat er overblijft

    • Dit zijn je aangepaste metavelden
    • Bepaal wat elk veld bevat en hoe het behandeld moet worden

Vertaalbehoeften bepalen:

Bepaal voor elk aangepast metaveld:

  • Translate: bevat vertaalbare tekst (titels, beschrijvingen, inhoud)
  • Copy: bevat gegevens die niet vertaald mogen worden (ID's, getallen, instellingen)
  • Translate Reference: bevat entiteits-ID's die naar vertaalde versies moeten verwijzen

Configureren in de plugin:

  1. Ga naar de instellingen, onder het tabblad Meta Configuration
  2. Kies de vertaaloptie (Translate/Copy/Translate Reference)
  3. Voeg de aangepaste metasleutelnamen toe met een exacte overeenkomst of een regex-patroon
De metasleutels voor vertaling configureren
Configureer aangepaste metasleutels voor vertaling in de plugin-instellingen

Het vertaalproces uitvoeren

Nu alle voorbereidingen zijn voltooid, is het tijd om de vertalingen uit te voeren.

Test het proces eerst

Voordat je begint met het vertalen van je hele website, is het cruciaal om het proces eerst op kleine schaal te testen. Deze aanpak bespaart je tijd en voorkomt dat problemen worden gerepliceerd in al je inhoud.

Dit is de aanbevolen testworkflow:

  1. Begin met één bericht en één taal

    • Kies een representatief bericht dat verschillende inhoudstypen bevat (tekst, afbeeldingen, links, enz.)
    • Vertaal het naar slechts één doeltaal die je goed begrijpt
    • Valideer de vertaling grondig: controleer elk blok, elke link, elke afbeelding en elk stukje metadata
    • Als je een probleem ontdekt (bijv. een blok is niet vertaald, een link is niet vervangen, de opmaak is gebroken), los het op voordat je verdergaat. Hetzelfde probleem wordt voor alle talen gerepliceerd als je het nu niet aanpakt.
  2. Uitbreiden naar een paar meer berichten

    • Zodra de eerste vertaling perfect is, vertaal je 3-5 berichten meer naar dezelfde taal
    • Valideer elk bericht grondig
    • Dit helpt je patronen of terugkerende problemen te identificeren
  3. Testen met extra talen

    • Als je naar meerdere talen vertaalt, test je met nog een taal om er zeker van te zijn dat alles werkt voor verschillende taalcombinaties
  4. Ga dan pas over tot bulkvertaling

    • Zodra je er zeker van bent dat alles correct werkt, kun je doorgaan met het vertalen van de rest van je website

Deze incrementele aanpak zorgt ervoor dat configuratieproblemen of inhoudsproblemen vroeg worden ontdekt, wanneer ze gemakkelijk op te lossen zijn.

Volgorde van vertaling

De volgorde waarin je verschillende inhoudstypen vertaalt, is belangrijk, met name wanneer inhoud naar andere inhoud verwijst.

Vertaal inhoud in deze specifieke volgorde om referentieproblemen te vermijden:

  1. Users

    • Gebruikersbeschrijvingen kunnen in blokken worden opgenomen
  2. Taxonomies (Tags/Categories)

    • Tags en categorieën (en aangepaste taxonomieën) worden vaak door berichten gerefereerd, dus ze moeten bestaan voordat berichten worden vertaald
  3. Media

    • Media-items (afbeeldingen, video's, documenten) worden door berichten als uitgelichte afbeeldingen of galerij-afbeeldingen gerefereerd, vertaal ze dus vóór berichten
  4. Custom Post Types

    • Vertaal berichten, pagina's en andere CPT's
    • Belangrijk: als één CPT naar een andere verwijst, vertaal dan in omgekeerde afhankelijkheidsvolgorde
    • Bijvoorbeeld: als berichten gebruik maken van herbruikbare blokken (Reusable Blocks), vertaal dan eerst de herbruikbare blokken, daarna de berichten
  5. Menus

    • Vertaal menu's als laatste, omdat ze verwijzen naar berichten, pagina's en categorieën

Beslis of je slugs vertaalt of niet

Het vertalen van bericht- en taxonomieslugs naar de doeltaal is vaak wenselijk voor Latijns-schrift-talen (bijv. Frans, Duits, Spaans): het pad blijft leesbaar en je kunt gelokaliseerde zoekwoorden in de URL weerspiegelen.

Voor niet-Latijnse schriften — Hebreeuws, Japans, Chinees en dergelijke — worden gelokaliseerde slugs vaak een rommel: onhandige transliteraties, zeer lange segmenten, procentcodering of URL's die moeilijk te delen en te vergelijken zijn. Veel teams houden Latijnse (of originele taal) slugs aan voor die talen en vertrouwen op de vertaalde titel voor de zichtbare, gelokaliseerde naam.

Behandel slugvertaling als beleid per doeltaal, niet als een enkele aan/uit-schakelaar voor de hele site:

  1. Verdeel talen in groepen — bijv. "vertaal slugs" voor Latijnse doelen vs "vertaal geen slugs" voor Chinees, Japans, Hebreeuws, enz.
  2. Voer afzonderlijke vertaalbatches uit — vertaal in bulk naar één groep met slugvertaling ingeschakeld, voer dan een andere batch uit naar de andere groep met slugvertaling uitgeschakeld.
  3. Configureer elke batch via Gato Translate (Custom) (behandeld onder Hoe vertalingen uitvoeren hieronder): schakel opties uit zoals Translate custom post slugs? en Translate tag and category slugs? voor batches waarbij je slugs ongewijzigd wilt laten. Streef naar één beleid per uitvoering (bijv. één taal of één groep talen die dezelfde regel delen) zodat instellingen overeenkomen met het verwachte resultaat.

Voor gescripte of herhaalbare workflows ondersteunt WP-CLI --translate-slugs=true of --translate-slugs=false per aanroep.

Tweefasige vertaling

Als je interne linkvervanging of entiteitsreferentievertaling hebt ingeschakeld, moet je mogelijk in twee fasen vertalen:

Fase 1: Alleen eigenschappen vertalen

  1. Configureer de vertaling om inhoud en meta uit te sluiten, d.w.z. vertaal alleen eigenschappen (titel/naam en slug)
  2. Voer de vertaling uit
Alleen de berichteigenschappen (titel, slug) selecteren voor vertaling
Eerste fase: Alleen eigenschappen (titel, slug) vertalen om vertaalde vermeldingen aan te maken

Na het uitvoeren van de eerste fase worden de vertaalde berichten aangemaakt met hun vertaalde URL's en ID's, waardoor interne link-URL's en entiteitsreferentie-ID's kunnen worden omgezet naar de doeltaal.

Fase 2: Alleen inhoud en meta vertalen

  1. Configureer de vertaling om alleen inhoud en meta te vertalen (d.w.z. eigenschappen uitsluiten)
  2. Voer de vertaling opnieuw uit
Alleen de berichtinhoud en meta selecteren voor vertaling
Tweede fase: Alleen inhoud en meta vertalen om interne links en entiteitsreferenties te vervangen

Na het uitvoeren van de tweede fase worden de resterende inhoud en meta vertaald, en worden interne link-URL's en entiteitsreferentie-ID's vervangen door de vertaalde versies.

Hoe vertalingen uitvoeren

Optie 1: WordPress-beheer (Bulk Actions)

  1. Ga naar de inhoudslijst (Berichten, Pagina's, Media, enz.)
  2. Selecteer de items die je wilt vertalen
  3. Kies Gato Translate uit het dropdown-menu voor bulkacties
  4. Klik op Toepassen
De Gato Translate-actie uitvoeren
Gebruik bulkacties om meerdere items tegelijk te vertalen

Menu's worden anders vertaald: ze worden automatisch vertaald wanneer je ze opslaat in de menu-editor.

Alternatief: Gato Translate (Custom)

Voor meer controle gebruik je Gato Translate (Custom), waarmee je instellingen kunt overschrijven voor die specifieke vertaalrun:

De bulkactie Gato Translate (Custom) uitvoeren
Gebruik Gato Translate (Custom) voor aangepaste instellingen per vertaling

Dit opent een aangepaste instellingenpagina waar je specifieke opties kunt opgeven voor die vertaalrun:

De uitvoering van de actie 'Gato Translate' aanpassen
Pas vertaalinstellingen aan voor deze specifieke uitvoering

Optie 2: WP-CLI (voor grote batches)

Voor grote websites met honderden of duizenden items is WP-CLI een handig alternatief.

Je kunt vertalingen in batch uitvoeren via de opdrachtregel, waarna je de vertalingen op de achtergrond kunt uitvoeren terwijl je aan iets anders werkt.

Het script 'gatotranslate.sh' uitvoeren
Het script 'gatotranslate.sh' uitvoeren

Vertaallogboeken controleren

Wanneer een vertaling mislukt (door het offline gaan van de API, het opraken van API-credits, enz.) of waarschuwingen genereert, zie je een notificatiebadge in het plugin-menu:

Vertaling naar het Spaans van het bericht 'Hello World' is mislukt en een notificatiebadge wordt weergegeven
Notificatiebadge verschijnt wanneer vertalingen mislukken

Bekijk de vertaallogboeken om te begrijpen wat er is gebeurd:

  1. Ga naar het menu-item Logs in het plugin-menu
  2. Bekijk eventuele fouten of waarschuwingen
  3. Los eventuele problemen op voordat je verdergaat
Logboeken bekijken
Bekijk vertaallogboeken om problemen te identificeren
Enkel logboekitem bekijken
Bekijk een gedetailleerd logboekitem om de fout te begrijpen

Mislukte vertalingen opnieuw uitvoeren

Wanneer een vertaling mislukt, kun je alleen die vermelding en taal opnieuw laten vertalen en zo voorkomen dat je API-credits uitgeeft voor vertalingen die wel zijn geslaagd.

Mislukte vertalingen worden gemarkeerd met een gele achtergrond op het Polylang-bewerkingspictogram:

Gele achtergrond op Polylang-bewerkingspictogram voor mislukte vertalingen
Mislukte vertalingen worden gemarkeerd met een gele achtergrond

Je kunt filteren om alleen vermeldingen met mislukte vertalingen te tonen:

Filteren om alleen vermeldingen met mislukte vertalingen te tonen
Filteren om alleen mislukte vertalingen te tonen

Om alleen de mislukte vermeldingen opnieuw te vertalen, gebruik je de bulkactie Gato Translate (Custom) met de optie Process failed translations only:

Filteren om alleen vermeldingen met mislukte vertalingen te tonen
Lijst van vermeldingen met mislukte vertalingen
De optie 'Process failed translations only' selecteren op de instellingenpagina 'Gato Translate (Custom)'
Vertalingen opnieuw uitvoeren alleen voor mislukte vermeldingen

Vertaalkwaliteit en volledigheid valideren

Na het vertalen van inhoud is het cruciaal om te controleren of de vertalingen succesvol en van goede kwaliteit zijn. Ga er niet van uit dat alles perfect heeft gewerkt — neem de tijd om te verifiëren.

Validatie in de editor:

Open vertaalde berichten in de WordPress-editor en controleer:

  1. Inhoudsvertaling

    • Is alle tekst vertaald? (niet alleen de titel)
    • Zijn alle blokken/widgets/elementen vertaald?
    • Controleer Gutenberg-blokken, Elementor-widgets of Bricks-elementen
    • Controleer of de opmaak behouden is gebleven
  2. Aangepaste velden

    • Zijn ACF-velden correct vertaald/gekopieerd/gerefereerd?
    • Worden Meta Box-velden correct behandeld?
    • Zijn aangepaste metavelden correct geconfigureerd?
  3. SEO-metadata

    • Controleer of metatitels zijn vertaald
    • Controleer of metabeschrijvingen zijn vertaald
    • Bevestig dat Open Graph-tags zijn vertaald
    • Bekijk eventuele andere SEO-pluginvelden
  4. Media

    • Zijn uitgelichte afbeeldingen correct ingesteld?
    • Verwijzen afbeeldingen in de inhoud naar vertaalde versies (indien van toepassing)?
    • Zijn alt-teksten van afbeeldingen vertaald?
  5. Links

    • Verwijzen interne links naar vertaalde versies?
    • Zijn externe links correct behouden?
    • Werken categorie-/taglinks?

Validatie op de frontend:

Bekijk vertaalde berichten in de browser en controleer:

  1. Visuele weergave

    • Ziet de pagina er correct uit?
    • Is de indeling behouden?
    • Worden afbeeldingen correct weergegeven?
    • Is de stijl correct?
  2. Sjabloontoepassing

    • Wordt het juiste sjabloon gebruikt?
    • Worden koptekst/voettekst correct weergegeven?
    • Worden zijbalken/widgets weergegeven?
    • Toont het menu de vertaalde versie?
  3. Functionaliteit

    • Werken alle links?
    • Functioneren formulieren?
    • Werken interactieve elementen?
    • Is de navigatie correct?
  4. Taalspecifieke elementen

    • Voor RTL-talen, is de indeling correct?
    • Worden lettertypen correct weergegeven?
    • Is de tekstrichting correct?

Vertaalkwaliteit:

Moderne AI-vertaling is over het algemeen zeer goed, maar je moet nog steeds controleren:

  1. Talen die je begrijpt

    • Lees vertalingen door in talen die je kent
    • Controleer op nauwkeurigheid, toon en stijl
    • Controleer of technische termen correct zijn
    • Zorg ervoor dat de merkstem behouden is gebleven
  2. Talen die je niet begrijpt

    • Voor talen die je niet spreekt, overweeg dan een moedertaalspreker in te huren om te beoordelen
    • Dit is met name belangrijk voor talen die erg verschillen van de jouwe (bijv. Engels naar Koreaans, Chinees, Arabisch)
    • Zelfs een snelle beoordeling kan grote problemen opsporen
    • Professioneel proeflezen wordt aanbevolen voor belangrijke inhoud
  3. Domeinspecifieke inhoud

    • Technische inhoud heeft mogelijk expertbeoordeling nodig
    • Juridische/medische inhoud moet door professionals worden beoordeeld
    • Marketinginhoud heeft mogelijk aanpassingen van de merkstem nodig

Herstel "ongeldige inhoud"-blokken

Bij het vertalen van grote HTML-blobs die veel tags en attributen bevatten, kunnen AI-services soms een reactie retourneren die de uitvoer van het blok breekt.

Wanneer je bijvoorbeeld een core/paragraph-blok vertaalt dat een zeer grote HTML-blob bevat met ChatGPT 5.0 mini, zoals dit:

<!-- wp:paragraph -->
<p>
  Pédagogie: 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><strong><br></strong>Support : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Coûts : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Débouchés : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark>
</p>
<!-- /wp:paragraph -->

...kan de reactie een extra <mark>-tag introduceren die niet aanwezig was in de originele inhoud:

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★
+<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">

Bij het bewerken van het bericht in de WordPress-editor kan dat blok mogelijk niet worden weergegeven en in plaats daarvan het bericht "Block contains unexpected or invalid content" tonen:

Beschadigd blok met bericht over ongeldige inhoud
Beschadigd blok met bericht over ongeldige inhoud

Klikken op Attempt recovery zal het probleem waarschijnlijk oplossen.

Vermijd indien mogelijk het gebruik van HTML-blokken, omdat de volledige HTML-blob als één eenheid moet worden vertaald.

Gebruik in plaats daarvan aangepaste blokken met eigenschappen, zodat die vertaalbare tekenreeksen kunnen worden geïdentificeerd, geëxtraheerd en vertaald zonder de opmaak te breken.

Problemen met beschadigde gegevens oplossen

Soms kun je fouten tegenkomen tijdens het vertalen omdat je inhoud beschadigde of verouderde gegevens bevat. Dit gebeurt doorgaans wanneer:

  • Een berichttype eerder een functie ondersteunde (zoals bovenliggende berichten) maar dat niet meer doet
  • Inhoud verwijst naar entiteiten die niet meer bestaan
  • Database-inconsistenties door migraties of pluginwijzigingen
  • Verweesde relaties in aangepaste velden

De fout begrijpen:

Wanneer je een fout als deze ziet in de logboeken:

2025-10-25T03:40:38+00:00 Error [Query "create-missing-translation-media"] Execution with errors: 🔴 Object with ID '26061' (of type 'GenericCustomPost') cannot be loaded. Please check if referencing this ID is stale data (i.e. still stored on the WordPress database, but pointing to a non-existing object) and, if so, remove it or fix it.

Dit betekent:

  • De inhoud verwijst naar een entiteit (bericht, pagina, media, enz.) met ID 26061
  • Die entiteit bestaat niet meer in de database
  • De plugin kan niet vertalen omdat de verwijzing niet kan worden omgezet

Hoe je dit oplost:

Methode 1: WordPress-editor (eenvoudigst)

  1. Open het bericht/item dat niet kan worden vertaald
  2. Identificeer de beschadigde verwijzing (controleer aangepaste velden, relaties, enz.)
  3. Verwijder of herstel de verwijzing
  4. Sla het bericht op
  5. Probeer opnieuw te vertalen

Methode 2: Database opschonen

Als je het niet via de editor kunt oplossen:

  1. Identificeer welk veld de slechte verwijzing bevat
  2. Gebruik een databasetool of plugin om de verouderde gegevens te verwijderen
  3. Wees voorzichtig — maak altijd een back-up voordat je databasewijzigingen aanbrengt

Methode 3: Gato GraphQL (geavanceerd)

Omdat Gato AI Translations for Polylang onder de motorkap gebruik maakt van Gato GraphQL, kun je GraphQL queries uitvoeren om beschadigde gegevens programmatisch te herstellen:

  1. Haal eerst de ID's op van items met problemen met behulp van een GraphQL query.

  2. Los vervolgens het probleem op met een mutatie. Om bijvoorbeeld een ouderverwijzing van een media-item te verwijderen:

mutation {
  updateMediaItem( input: { id: 26066, customPostID: null } ) {
    status
    errors {
      __typename
      ...on GenericErrorPayload {
        message
      }
    }
  }
}

Als je het niet kunt oplossen:

Als de beschadigde gegevens niet kunnen worden opgeschoond, moet je mogelijk:

  • Het bericht/item opnieuw aanmaken
  • Inhoud exporteren, opschonen en opnieuw importeren
  • Contact opnemen met ondersteuning voor hulp bij complexe gevallen

Vertaalde vermeldingen integreren in de configuratie

Na het vertalen van je inhoud moeten de nieuw aangemaakte vertaalde vermeldingen mogelijk worden geïntegreerd in de websiteconfiguratie.

ACF-veldgroepen bijwerken

ACF-veldgroepen kunnen worden toegewezen aan specifieke berichten, pagina's, categorieën, tags of andere entiteiten. Wanneer je inhoud vertaalt, moeten de vertaalde versies mogelijk ook worden toegewezen aan dezelfde veldgroepen.

Werk na het vertalen je ACF-veldgroepstoewijzingen bij om de vertaalde versies op te nemen:

  1. Ga naar het menu-item Field Groups in het ACF-pluginmenu
  2. Bewerk de veldgroep die van toepassing is op specifieke entiteiten
  3. Voeg in de Location Rules de vertaalde versies toe
  4. Sla de veldgroep op

Voorbeeld:

Een veldgroep is van toepassing op het specifieke bericht "Hello World" in de originele taal:

ACF-veldgroep vóór het toevoegen van vertalingen
ACF-veldgroep vóór het toevoegen van vertalingen - alleen van toepassing op het originele bericht

Na het vertalen van het bericht moeten de vertaalde versies ("Hola Mundo" in het Spaans en "你好世界" in het Chinees) ook worden toegewezen aan dezelfde veldgroep:

ACF-veldgroep na het toevoegen van vertalingen
ACF-veldgroep na het toevoegen van vertalingen - van toepassing op alle taalversies

Dat is het!

Je hebt nu het vertaalproces voltooid. Gefeliciteerd! 👏

Conclusie

Deze uitgebreide gids zou je moeten helpen je WordPress-website succesvol te vertalen. Als je meer informatie nodig hebt, bekijk dan de Gato AI Translations for Polylang-documentatie.


Ontdek wat er komen gaat

Schrijf je in voor onze nieuwsbrief: verneem wanneer we een nieuwe versie uitbrengen, een nieuwe plugin lanceren of nieuws met je te delen hebben.