Child-theme ontwikkeling
Bij de installatie van de hoofdplugin wordt in het child-theme een integratie gedaan zodat er (in ieder geval) een aanbod pagina en een detail pagina van de objecten beschikbaar wordt. Wij leveren hiervoor ook altijd een voorbeeld thema aan, echter bevat deze ook strings die niet vertaalbaar zijn opgezet. Zo kúnnen er nog meer strings bijkomen tijdens de integratie die niet standaard vertaalbaar zijn.
Internationalisatie
WordPress heeft uitgebreide documentatie voor het vertaalbaar opzetten van je thema. Wij verwijzen dus voor alle details graag door naar de WordPress Theme Handbook.
In het kort
WordPress maakt globale functies beschikbaar die gebruikt kunnen worden in thema ontwikkeling om eigen strings vertaalbaar op te zetten. Zonder het gebruik van deze functies kan WPML deze strings niet herkennen en dus niet vertaalbaar opzetten. Het is daarom voor het volledig vertaalbaar maken van de integratie van onze hoofdplugin van belang dat de thema integratie nagelopen wordt.
Wij raden aan om de integratie in een child-thema te doen. Deze standaard werkwijze houden we ook aan in deze documentatie.
Hardcoded strings
Een hardcoded string is een stuk tekst die niet binnen een globale functie voor internationalisatie van WordPress staat. Bijvoorbeeld voor een titel binnen de archive.php
:
<div class="makelaar-container">
<h1 class="entry-title">Complete aanbod</h1>
<div id="entity-search">
<?php echo Wonen::template('search'); ?>
</div>
</div>
De titel "Complete aanbod" is hardcoded en kan niet gewijzigd worden. Er dient dus een globale functie van WordPress gebruikt te worden zodat de string dynamisch wordt. De dynamische waarde wordt dan door WPML bepaalt en zal resulteren in de vertaalde tekst voor de taal waarop de bezoeker de pagina bekijkt. De string kan dan dus veranderen afhankelijk van de ingestelde taal.
Vertaalbare string
Wanneer we de bovenstaande hardcoded string "Complete aanbod" vertaalbaar willen maken vergt dat een kleine aanpassing. Hieronder een voorbeeld:
<div class="makelaar-container">
<h1 class="entry-title"><?php esc_html_e('Complete aanbod', 'my-theme'); ?></h1>
<div id="entity-search">
<?php echo Wonen::template('search'); ?>
</div>
</div>
Wanneer het thema nu gelokaliseerd wordt door WPML (documentatie) wordt ook deze string gevonden onder het domein "my-theme". Je hebt volledige vrijheid over het domein dat je gebruikt voor je eigen thema. Let er op dat de vertalingen dan beschikbaar worden onder dit domein en niet onder het domein van onze addon: "tussendoor_multilingual".
In het voorbeeld wordt gebruik gemaakt van een helper functie die escaping en lokalisatie combineert. Documentatie van WordPress vind je hier.