Documentatie · Technische documentatie

Internationalisering en Poedit

Dit document legt uit hoe de ADP Car Market Hub-plugin omgaat met vertalingen, waar de taalbestanden zich bevinden en hoe u vertalingen kunt bijwerken of toevoegen met behulp van Poedit (of een andere compatibele gettext-editor).

Wanneer u dit document moet gebruiken

Lees dit document als u:

  • De plugin wilt vertalen naar een nieuwe taal.
  • Een bestaande vertaling wilt bijwerken nadat de plugin is geüpgraded.
  • Wilt controleren welke locales zijn meegeleverd en hoe ze worden geladen.
  • Problemen wilt diagnosticeren met strings die onvertaald blijven in het beheergedeelte of op de frontend.

Overzicht

De plugin maakt gebruik van de standaard WordPress-internationaliseringsmechanismen (i18n):

  • Alle vertaalbare strings zijn verpakt in gettext-functies (__(), _e(), _n(), _x(), enz.) met het text domain adp-car-market-hub.
  • Vertalingen worden geladen uit de map languages/ van de plugin via load_plugin_textdomain() op plugins_loaded met prioriteit 1, voordat er voor de gebruiker zichtbare strings worden gerenderd.
  • Er wordt een POT-sjabloon (adp-car-market-hub.pot) met de plugin meegeleverd die kan worden geopend of opnieuw gegenereerd met Poedit of WP-CLI.

Het text domain komt overeen met de slug van de pluginmap (adp-car-market-hub), zodat vertalingen uit toolchains in de stijl van translate.wordpress.org automatisch worden herkend wanneer ze op de standaardlocaties worden geplaatst.

Bestanden in languages/

De meegeleverde map languages/ bevat:

  • adp-car-market-hub.pot — vertaalsjabloon gegenereerd door WP-CLI's i18n make-pot (zichtbaar in de POT-header).
  • adp-car-market-hub-de_DE.po — Duits (Duitsland).
  • adp-car-market-hub-de_DE_formal.po / adp-car-market-hub-de_DE_formal.mo — Duits (formeel).
  • adp-car-market-hub-de_AT.po — Duits (Oostenrijk).
  • adp-car-market-hub-de_CH.po — Duits (Zwitserland).
  • adp-car-market-hub-fr_FR.po — Frans (Frankrijk).
  • adp-car-market-hub-it_IT.po — Italiaans (Italië).

Controleer de exacte lijst met .po- en .mo-bestanden in de huidige plugin-versie voordat u klantgerichte teksten publiceert. WordPress laadt het .mo-bestand dat overeenkomt met de actieve site-locale; alleen .po-bestanden zijn niet voldoende tijdens runtime.

Vereisten of randvoorwaarden

  • Een gettext-editor — Poedit is de aanbevolen GUI-tool. De gratis editie is voldoende.
  • Optioneel: WP-CLI met het commando i18n, gebruikt om het POT-bestand opnieuw te genereren vanuit de broncode.
  • Schrijftoegang tot de map languages/ van de plugin (of een overschrijflocatie, zie hieronder).

Stapsgewijze instructies

Vertalen naar een nieuwe locale

  1. Open Poedit en kies Bestand → Nieuw van POT/PO-bestand....
  2. Selecteer languages/adp-car-market-hub.pot.
  3. Kies de doellocale. Sla het bestand op als adp-car-market-hub-<locale>.po in dezelfde map languages/, waarbij <locale> de WordPress-localecode is (bijvoorbeeld es_ES, nl_NL).
  4. Vertaal de strings in de editor.
  5. Sla het bestand op. Poedit schrijft automatisch een bijbehorend .mo-bestand naast het .po-bestand.
  6. Stel de WordPress-sitetaal in op uw nieuwe locale en herlaad de beheer- en frontend-pagina's om de vertalingen te controleren.

Een bestaande vertaling bijwerken na een plugin-upgrade

  1. Open het bestaande .po-bestand in Poedit.
  2. Kies Catalogus → Bijwerken van POT-bestand... en selecteer de nieuwe adp-car-market-hub.pot.
  3. Vertaal eventuele nieuwe of gewijzigde strings (Poedit markeert deze als onvertaald of 'fuzzy').
  4. Sla het bestand op. Het .mo-bestand wordt automatisch opnieuw gegenereerd.

De POT-sjabloon opnieuw genereren vanuit de broncode (optioneel)

Als u de broncode van de plugin beheert en de POT zelf wilt vernieuwen, kunt u dit doen met WP-CLI:

wp i18n make-pot . languages/adp-car-market-hub.pot --domain=adp-car-market-hub

Voer dit uit vanuit de hoofdmap van de plugin. De bestandskop registreert de WP-CLI-versie die het bestand heeft gegenereerd.

Vertalingen van buiten de pluginmap gebruiken

WordPress zoekt ook naar vertalingen in wp-content/languages/plugins/adp-car-market-hub-<locale>.mo. Plaats daar een aangepast .mo-bestand als u wilt dat vertalingen behouden blijven bij plugin-upgrades die languages/ overschrijven.

Operationele opmerkingen

  • Het text domain wordt geladen met prioriteit plugins_loaded op 1, wat bewust is ingesteld vóór de uitvoering van de hoofd-init()-callback van de plugin op de standaardprioriteit. Dit zorgt ervoor dat elke vertaalbare string die later wordt geregistreerd, al toegang heeft tot het geladen .mo-bestand.
  • Sla het .po-bestand altijd opnieuw op met Poedit (of compileer het .mo-bestand met msgfmt) na het bewerken — WordPress leest het binaire .mo-bestand tijdens runtime, niet het tekstuele .po-bestand.
  • Localecodes zijn hoofdlettergevoelig op hoofdlettergevoelige bestandssystemen. Gebruik de exacte WordPress-locale-id.
  • Vertalingsupdates mogen geen bronbestanden wijzigen; deze documentatietaak sluit deze expliciet uit.
  • Sommige strings (bijvoorbeeld model-id's van providers in de AI Assistant of technische optielabels) worden bewust in het Engels gelaten. Vertaal de voor de gebruiker zichtbare teksten en laat id's ongewijzigd.

Problemen oplossen

  • Een string verschijnt nog steeds in het Engels — controleer of er een .mo-bestand voor de actieve locale bestaat in languages/ (of in wp-content/languages/plugins/), of het bestand overeenkomt met het text domain van de plugin (adp-car-market-hub) en of uw WordPress-sitetaal correct is ingesteld.
  • Een nieuwe vertaling wordt pas geladen nadat de cache is geleegd — sommige object-cache-plugins cachen vertalingen. Leeg de WordPress-object-cache na het implementeren van nieuwe .mo-bestanden.
  • Poedit toont veel 'fuzzy' strings na een update — dit is te verwachten wanneer de brontekst verandert. Loop elke 'fuzzy' invoer na, corrigeer de vertaling en vink 'fuzzy' uit.
  • Aangepaste vertalingen worden overschreven door plugin-updates — bewaar aangepaste vertalingen in wp-content/languages/plugins/ in plaats van in de map languages/ van de plugin.

Gerelateerde documenten