Drupal 7 meertalige taxonomie
Deze tutorial vertrekt van een website waar al meer dan één taal aanwezig is. Het is aan te raden Engels als default te houden. Dit kan je controleren onder Configuration » Regional and language » Languages. Indien hier maar één taal aanwezig is, voeg dan een tweede toe.
Er zijn twee methodes om tags te vertalen:
Entity Translation
Dit is de gemakkelijkste maar minst flexibele methode. Het laat toe om de taxonomie termen en beschrijving te vertalen via de vertaling van de velden. De naam van het vocabulaire kan dan weer niet vertaald worden.
Benodigde modules:
- Locale (core)
- Entity Translation: https://drupal.org/project/entity_translation
- Title: https://drupal.org/project/title
Ga naar Configuration » Regional and Language » Languages » Detection and Selection. Vink zowel voor user interface als content URL aan. Vink bij User interface ook Interface aan en sleep deze gans naar boven.
Vergeet niet om het juiste blok om van taal te switchen aan te zetten. Zet het blok Language switcher (User interface text) aan en geef het een plaats op de website.
Na deze basishandelingen kunnen we ons richten op het vertalen van de tags:
- Laat vertaling van taxonomie toe door deze aan te vinken onder Configuration » Regional and language » Entity translation. Laat de instellingen verder op de standaardwaarden staan.
- Ga vervolgens naar de taxonomie die vertaald moet worden en klik onder het tabblad manage fields zowel bij name als description op replace. Dit is de Title module die echte velden maakt van beide, zodat ze vertaald kunnen worden.
Je beschikt nu over een tabje translate om zowel de naam als de beschrijving te vertalen.
Wanneer je een artikel ingeeft en taxonomie tags toevoegt, dan zal bij het wijzigen van de language switcher, de tag mee wijzigen. Uiteraard impliceert het ook dat, als je inhoud toevoegt in één taal, je nadien via Administration » Structure » Taxonomy zal moeten passeren en de tags hier vertalen.
Internationalization
Deze methode zit ingebed in de module i18n. Deze is complexer maar flexibeler.
Benodigde modules:
- Locale (core)
- Variable: https://drupal.org/project/variable. Enkel de basismodule aanzetten.
- i18n: https://drupal.org/project/i18n. Naast de basismodule moet en ook de submodules Field translation, String translation, Translation sets en uiteraard Taxonomy translation aangezet worden.
Ga naar Configuration » Regional and Language » Languages » Detection and Selection. Vink onder User interface text language detection URL aan.
Als we naar onze tags gaan via Structure » Taxonomy » Tags, tabje Edit, dan zien we dat er vier opties aangeboden worden om taxonomie te vertalen:
- Geen meertaligheid
- Localiseren: alle termen vertalen via string translation
- Vertalen: sommige termen vertalen
- Vaste taal
Lokaliseren is de meest interessante omdat niets je tegenhoudt om als vertaling net dezelfde term te geven als het origineel, bijvoorbeeld coach, kunnen we zowel voor NL als EN gebruiken.
Bij het ingeven van een taxonomie term krijgen we nu ook een optie 'Save and translate'.
Om de foutmelding "The string taxonomy:term:#:description for textgroup taxonomy is not allowed for translation because of its text format" te vermijden, ga naar Configuration » Regional and language » Multilingual settings en vink daar 'Filtered HTML aan bij 'Translatable text formats'.
Vergeet ook hier niet om het Language switcher (User interface text) blok aan te zetten en een plaats te geven op de front-end van de website.
Zorg ervoor dat de vertaling van de tags getoond wordt bij het weergeven op de pagina. Ga daarvoor naar het inhoudstype waarvan sprake (in mijn geval Administration » Structure » Content types » Article) en kies bij weergave voor Link (localized).
Merk op dat de naam van het vocabulaire op de pagina nog niet vertaald is. Activeer hiervoor de i18n submodule Field Translation. Ga vervolgens naar het inhoudstype in kwestie (in mijn geval artikel: Administration » Structure » Content types » Article) en kies Manage Fields van het vocabulaire in kwestie. Dan edit en vervolgens het tabje Translate.
Voila, nu is ook de naam van het vocabulaire vertaald!
Voeg reactie toe