Ondersteuning » Vertaling WordPress (NL) » Aanpassen vertalingen komen niet overal door

  • Opgelost gerlofcognito

    (@gerlofcognito)


    Goedendag, als ik een vertaling aanmaak voor mijn eigen WooCommerce theme werkt dit allemaal prima:
    __(‘hoi’, ‘domain’);
    Ik zet het in de .pot file, maak een .po file aan en een .mo file wordt gegenereerd.

    Maar als ik nu de vertaling in de .po file aanpas en de .mo file opnieuw genereer werkt het in de templates niet maar in functions.php wel. Dus als ik direct uit functions.php de vertaling echo komt de nieuwe in beeld maar zet ik deze in footer.php of header.php dan komt de oude vertaling in beeld. Als ik iets anders in de templates verander komt wel direct in beeld.

    Is er ergens een cache die ik kan legen voor de template vertalingen? Of is dit een bekende bug?

    Bij voorbaat dank.

10 reacties aan het bekijken - 1 tot 10 (van in totaal 10)
  • Guido

    (@guido07111975)

    Hoi,

    Dus als ik direct uit functions.php de vertaling echo komt de nieuwe in beeld

    Kun je uitleggen hoe je dit doet?

    Als het een bestaand thema is van WP punt org, dan zal altijd eerst de vertaling (po/mo) gebruikt worden die in map wp-content/languages/themes staat.

    Guido

    Thread starter gerlofcognito

    (@gerlofcognito)

    Ik maak zelf een theme. waarbij ik het textdomain op deze manier laad.

    add_action('init', 'tmrwTextDomain');
    function tmrwTextDomain() {
        load_theme_textdomain('tmrw', get_template_directory() . '/languages/');
    }

    Dit werkt allemaal prima. Stel ik vertaal hoi naar hey, dan werkt dat overal. Maar als ik hoi nu een tweede keer aanpas naar hey2 dan werkt het wel als ik een echo vanuit functions.php gebruik. Maar stel dat ik dezelfde echo vanuit header.php of footer.php do, dan komt er hey te staan i.p.v. hey. (Dus bovenaan de pagina staat hey2 vanuit functions.php en op de pagina zelf staat hey, de oude vertaling.) Ik snap er niks van ik heb de .po en .mo files al verwijderd maar hetzelfde blijft gebeuren.

    Guido

    (@guido07111975)

    Maar hoe echo jij vanuit bestand functions? Dat snap ik niet..

    Guido

    Thread starter gerlofcognito

    (@gerlofcognito)

    add_action('init', 'tmrwTextDomain');
    function tmrwTextDomain() {
        load_theme_textdomain('tmrw', get_template_directory() . '/languages/');
        echo __('hoi', 'tmrw');
    }

    Dit werkt met de nieuwe vertaling prima, maar via het template krijg ik via <?php echo __(‘hoi’, ’tmrw’); ?> de oude waarde.

    • Deze reactie is gewijzigd 10 maanden geleden door gerlofcognito.
    Guido

    (@guido07111975)

    Hoi,

    Ik snap em, maar begrijp niet waarom je verschillende vertalingen krijgt. De betreffende functie kijkt altijd eerst in de map wp-content/languages/themes naar vertaal bestanden vh thema. Heb je daarin ook een po/mo bestand van je thema staan misschien? Of gebruik je in je thema misschien verschillende tekst domeinen?

    Guido

    Thread starter gerlofcognito

    (@gerlofcognito)

    Zover ik weet alleen in wp-content/themes/theme/languages. Ik gebruik ook maar een tekst domein. Kan het zijn dat po/mo bestanden naar wp-content/languages/themes gekopieerd wordt? Is er ook een standaard voor de naam die aangehouden wordt dan kan ik dat testen. Ik heb via een grep geprobeerd om mijn vertalingen te vinden maar bij mo bestanden zal dat wel niet lukken.

    In ieder geval alvast bedankt voor het meedenken zover.

    EDIT: ik zie in de map wp-content/languages/themes alleen de 22 en 23 theme vertalingen van WP zelf: twentytwentythree-nl_NL.po.

    • Deze reactie is gewijzigd 10 maanden geleden door gerlofcognito.
    Guido

    (@guido07111975)

    Hoi,

    Ik heb zelf ook wel eens gedoe gehad met vertalingen die ik aan een thema zelf had toegevoegd.

    Wat sowieso gaat werken is deze bestanden in map wp-content/languages/themes zetten. Po en mo moeten qua naam worden: thema_naam-nl_NL.po / mo. Zolang je thema niet dezelfde naam heeft als eentje op wp punt org worden ze niet overschreven.

    Als alternatief zou je een plugin zoals Loco Translate kunnen gebruiken voor je vertalingen.

    Guido

    Thread starter gerlofcognito

    (@gerlofcognito)

    Ook dat werkte helaas niet. Ik gebruik nu ook Loco Translate. (Heb het ook met de hand geprobeerd maar dat geeft hetzelfde effect.)

    Ik denk dat ik het maar opgeef en een cron elke dag de vertalingen in een wp_option laat zetten en daar dan de vertaling maar uithaal in het template….

    Thread starter gerlofcognito

    (@gerlofcognito)

    Het is beschamend dat het me zo lang gekost heeft maar ik ben er achter. De plugin TranslatePress haalt vertalingen uit je po file en cached deze. Er wordt dus ook nooit meer naar aanpassingen gekeken. Dus de eerste vertaling die je er in zit blijft voor altijd staan. Er is een optie onder Advanced –> Debug –> Disable translation for gettext strings om dit uit te zetten.

    Dan werkt het dus wel in functions.php voor translatepress actief is maar daarna niet meer. Erg verwarrend.

    @guido07111975 hartstikke bedankt voor je hulp!

    Guido

    (@guido07111975)

    Ah mooi dat het opgelost is. Bedankt voor je update.

    Guido

10 reacties aan het bekijken - 1 tot 10 (van in totaal 10)
  • Het onderwerp ‘Aanpassen vertalingen komen niet overal door’ is gesloten voor nieuwe reacties.