Woocommerce nyelvi frissítés letiltása


#1

Sziasztok!
Van egy bosszantó problémám a woocommerce fordítással kapcsolatosan…
A webáruházamban magázódós nyelvi fájlt használok amit én magam fordítottam le.
Ezt a fájlt helyezem el a “/wp-content/languages/plugins” mappába amit a woocommerce mindig szépen be is tölt.
Azonban a woocommerce minden frissítésnél (meg néha csak úgy) lecseréli a saját “gyári magyarra” ami viszont tegezős formátumú.
Kérdésem, hogy van-e valami apró kód (vagy bármi egyéb megoldás) amivel meglehetne mondani a woocommerce-nek hogy hagyja békén a nyelvi fájlt, köszönöm szépen de ne frissítgesse automatikusan.

Ezt a kódot kaptam amit betettem a function.php-ba:

add_filter( ‘auto_update_translation’, ‘__return_false’ );

De ez sajnos nem oldotta meg a dolgot
Továbbra frissülnek a háttérben a nyelvi fájlok. :frowning:

Köszi a segítséget előre is


#2

A WordPress frissítés egy nagyon kényes kérdés, sok hiedelem övezi, és ellentmondásos helyzetekben nincs rá helyes válasz, csak a legkisebb rossz.

Arra az esetre tudok mondani valamit, amikor a honlapnak van szakértő (core-t ismerő, kódot auditáló) gazdája. Ha nincs gazdája, arra azt tudom ajánlani, hogy legyen neki, tudjon annyit termelni, hogy lehessen neki.

Nagyon konzervatív vagyok a frissítések terén, pl. az 5.x verziót senkinek sem ajánlom. Talán majd 5.2-nél, de lehet később. Üzleti okok miatt a WP core gyorsabban halad, mint ahogyan működni tudna. A nagyon konzervatív azt jelenti, hogy valóban nem frissítem a core-t, a plugin-okat, hanem más területeken implementálok biztonsági intézkedéseket. A frissítés számomra főleg hibalehetőséget jelent, ezért a frissítést kereső HTTP kérések és a frissítések telepítése ki van kapcsolva.

Neked is azt ajánlom, hogy az ilyen motorháztető alatti dolgokat pici MU plugin-ekben valósítsd meg, ne a sablonban. Ha vásárolt sablonod van, akkor gyerek sablont kell használni, hogy ne okozzunk zűrzavart.

Visszatérve a frissítésekre: a core frissítések kikapcsolása és a plugin-ok részleges auditja mellett az azokban található - egyedi - frissítési mechanizmusokat is felderítem, és hook-okkal, üres függvényekkel megakadályozom a frissítést. Ez nagyon jó szerkesztői élményt okoz, mert nem kell várni munka közben a frissítések keresésére, illetve nem lesznek home call-ok a plugin szerzők honlapjára.

A kérdésedre tehát főként az a válaszom, hogy meg kell teremteni a szakértői támogatáshoz szükséges dolgokat, és csak akkor frissíteni, amikor van rá lehetőség, hogy a honlap alaposan át legyen nézve.
A WordPress core-t nem ismerem, viszont ismerem a logikáját és a grep paranccsal bele tudok keresni a kódjába!

$ grep "apply_filters" wp-admin/includes/class-language-pack-upgrader.php
                        $update = apply_filters( 'async_update_translation', $update, $language_update );

Itt kis munkával (próba hook-olás egy MU plugin-ban) meg lehet tanulni, hogy a kívánt WC nyelvi fájl frissítésére hogyan mondjunk nem-et.


#3

Köszönöm a válaszod,
Azt hiszem sajnos majdnem semmit nem értek abból amit írtál.
Én nem vagyok programozó, hanem mint több tízmillióan csak használom a WP-t.
Szerintem ez a problémám feltevésemben is egyértelműen kitűnik. :slight_smile:
Tehát akkor ezt a kódrészletet amit írtál helyezzem el a function.php-ban?
És akkor megoldódik ez a problémám?
Vagy mit csinál ez a kis kód részlet?

(Egyébként vásárolt sablonom van és használok hozzá gyerek sablont…)


#4

Esetleg Loco Translate-el megpróbáltad?

Két segítség hozzá, hogy ne íródjon felül a frissítésnél:



#5

Persze Loco-t használok a fordításhoz…
De a woocommerce nyelvi frissítés mindig felül írja po és mo fájlokat
Van valami Loco beállítás amivel ez megakadályozható?


#6

Elvileg ha jól állítod be azt, hogy hova mentse a fájlt, akkor nem írja felül. Az egyik cikkben erről volt szó.


#7

Amúgy a kódod csak ennyiből áll? Mert én a Loco Translate-nél ezt találtam:

if( function_exists(‘add_filter’) ){
add_filter( ‘auto_update_translation’, ‘__return_false’ );
}

ha nem ezt próbáltad, csak azt, amit bemásoltál, akkor nézd meg ezzel. ők írták, szerintem működni fog.


#8

Elnézést, csak a bennem feszülő gondolatokat írtam le.

Most kikeresem a WC nyelvi fájlok felülírásának módját, és közzé teszem hamar…


#9

wp-content/mu-plugins/wc-stop-translation-updates-hu.php (lehet a mu-plugins könyvtárat létre kell hozd)

<?php

// Hook plugin updates
add_filter( 'site_transient_update_plugins', function ( $transient ) {
    // Loop through all available updates
    if ( is_object( $transient ) && property_exists( $transient, 'translations' ) ) {
        foreach ( $transient->translations as $index => $update ) {
            // Remove Hungarian WooCommerce translation
            if ( 'plugin' === $update['type'] && 'woocommerce' === $update['slug'] && 'hu_HU' === $update['language'] ) {
                unset( $transient->translations[ $index ] );
                break;
            }
        }
    }
    return $transient;
}, 0 );

Némi visszajelzést szívesen veszek.


#10

Köszi, akkor most ezt beillesztettem és várok a következő nyelvi frissítésre… :slight_smile: