WooCommerce, WPML en gelaagde navigatie

Druk bezig met een meertalige webshop in WordPress. De webshop bouwen we met WooCommerce en de vertaling regelen we met WPML. De website is eerst grotendeels opgezet in Nederlands, daarna hebben we de Duitse versie toegevoegd. Daar ging in het begin wat mis. Niet alles werd meegenomen met de vertaling en bij het activeren van de plugin WooCommerce Multilingual verdwenen de categories en eigenschappen bij de producten. Gelukkig werd dit snel verholpen door de supportafdeling van WPML. Maar bij het afronden van het project liepen we tegen problemen op. Wat we ook probeerden, de gelaagde navigatie op de Duitse site wilde niet werken. Meerdere mensen van WPML hebben er naar gekeken. Verschillende tips uitgevoerd, maar niets hielp. Uiteindelijk vond ik de oplossing zelf. Omdat misschien meer mensen tegen dit (of een soortgelijk probleem aanlopen, deel ik de oplossing hier

Het probleem

Wat was het geval. We hadden netjes Duitse en Nederlands producten. We hadden de attributen in twee talen – maar toch werkte de gelaagde navigatie niet. Nu bleek dat we de Nederlandse en Duitse termen niet gekoppeld hadden (tip support van WPML). Maar dat leek niet de oplossing. Zelf had ik het idee dat het wellicht in de database zat, aangezien daar iets was gewijzigd bij ons eerste probleem. Dat die attributen in beide talen toch niet goed waren opgezet. Maar daar zat het kennelijk ook niet in.

Maar de oplossing bleek veel eenvoudiger. De gelaagde navigatie van WooCommerce zet je op met widgets. Voor elk attribuut een eigen widget. En wat hadden wij gedaan? We hadden zowel voor de Duitse als voor de Nederlandse site widgets gemaakt. De widgets een class gegeven voor de taal en op de Duitse site de Nederlandse widgets op display:none en andersom voor de Nederlandse website. Een heel handig manier om op de juiste site de juiste taal soms naar voren te halen. Maar dat werkt dus niet, want wat wij als de Duitse gelaagde navigatie zagen, was dat helemaal niet.

Hoe moet het wel

Je maakt gewoon voor elk attribute een widget. Geeft deze widget een titel in de hoofdtaal en gaat vervolgens naar WPML – stringtranslations en vertaalt daar de titels van de widgets. De rest gaat vanzelf. Kom je op de Duitse site, dan krijgt de widget netjes de Duitse titel en zie je de Duitse termen van dit attribuut.
Daarnaast spreekt het voor zich dat elke term netjes in de diverse talen is vertaald en dat deze vertalingen zijn gekoppeld. Een fout die hier namelijk ook gemaakt was is dat er Nederlandse én Duitse termen waren aangemaakt.

Alles over het vertalen van de attributes (of Eigenschappen) vind je in de documentatie van WPML

Stringtranslations

Aldoende merk ik dat sommige dingen via die stringtranslations inderdaad heel handig opgelost kunnen worden. En veel meer kun je via WPML handiger regelen dan iets twee keer maken en dan via een taalclass buiten beeld houden.

Dus overall tip: Wil je iets in meerdere talen – kijk dan eerst of je het via stringtranslations kunt vertalen. Zo niet, ga dan pas op zoek naar andere oplossingen.

9 reacties

  1. waar kan ik in WPML die string location vinden? kunt u mij daarin advies geven. Wil graag in mijn template de widgets vertalen indien mogelijk

    Bijvoorbaat heel hartelijk dank,

    Peter

    • sorry, heb hem al gevonden, moest apart geinstalleerd worden, excuses voor het ongemak. Hopelijk gaat jullie vertaaltip goed werken

      • Inderdaad je kan daar perfect de kop mee vertalen maar hoe de rest… ik heb o.a. ook een teaser als widget en ook daar kan ik de tekst niet van wijzigen

  2. Beste Peter, Ik heb een vraag die volgens mij gerelateerd is. Ik heb in mijn site producten via Woo Product Importer in de site gezet. Dat gaat prima. Nu zou ik graag alle artikelen ook in het Engels laten verschijnen. (graag in het Engels maar in het Nederlands is ook prima.)

    Is het mogelijk dat via de door u beschreven Widgets? Of moet ik echt alle producten handmatig omzetten? Mijn site bouwer komt er niet meer aan uit. Volgens hem kan dat hat alleen stuk voor stuk.

    Op wat voor manier heeft u de artikelen er in gezet? En op wat voor manier de tweede taal?

    Alvast bedankt voor uw antwoord! Groeten, Johan

    • Deze vraag is niet direct gerelateerd, maar maakt niet uit. Wat jij wilt, als ik het goed begrijp, is een tweetalige webwinkel. Dat kun je doen met WPML in combinatie met WooCommerce MultiLingual. Hiermee kun je alle producten vertalen. Via product bewerken heb je dan ook de optie om het product naar een andere taal om te kopieren.

      • Bedankt voor de snelle reactie Karin,
        Ik heb het net geprobeerd maar de prijs en foto worden niet meegenomen 🙁 En met nu nog maar een kleine 3000 artikelen erg bewerkelijk. Is er ook een manier dat als je een product (Nederlands product) in de winkelwagen hebt en van taal wisselt (op Engels klikt) dat het product niet gewist wordt uit de winkelwagen? Het artikel is Nederlands en blijft niet zichtbaar als je een andere taal kiest. Dan zou het ook opgelost zijn. producten in het Nederlands te bestellen en toch kan men informatie in het Engels kan bekijken elders in de site (diverse pagina’s zijn in het Engels zoals biografieën) en daarna hun aankoop doen via de Nederlandse betaal module… Ze hebben immers ook in de Nederlandse shop hun artikelen uitgezocht. Ik hoop dat je begrijpt wat ik bedoel.

        • Dat het product uit de winkelwagen wordt gewist lijkt mij niet goed en daarvoor zou ik even contact opnemen met WooCommerce of WPML. BInnen WPML heb je trouwens de optie om aan te geven of een bericht/product/pagina waarvoor geen vertaling voor is wel of niet moet verschijnen op de pagina. Zo kun je een website in het Nederlands maken. Een deel vertalen. Deze vertaalde posts zie je op de website en de rest blijft in het NL ook al ben je op de EN website. Instelling staat op WPML Talen. Verder kun je via WPML media alle afbeeldingen/media beschikbaar stellen voor andere talen. Bij het vertalen van de producten kun je aangeven wat met de verschillende onderdelen van het product bij andere talen moet gebeuren, kopieren, zelf vertalen..Alles wat dus voor alle talen hetzelfde is kun je zetten op kopieren. Als je een vertaling van het product hebt gemaakt en je slaat het op dan worden deze gekoppeld. Er is redelijk wat documentatie over te vinden – zeker bij WPML over WooCommerce Multilingual.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *