Supporto » Varie ed eventuali » Problema traduzioni woocommerce

  • giorgiocurreli

    (@giorgiocurreli)


    Ciao a tutti, sto riscontrando un problema con woocommerce su un sito in italiano: la pagina di checkout presenta due testi di cui la traduzione non viene pescata correttamente, nello specifico rimangono invariati “your order” e “ship to a different address?”.

    Ho già provato sia con loco translate, che con say what? e alla fine ho installato poedit e ho verificato che nei file .po e .pot le traduzioni sono corrette e presenti.

    Qualcuno ha dei suggerimenti da darmi per correggere il problema?
    Grazie in anticipo
    Giorgio

    La pagina su cui ho bisogno di aiuto: [devi essere connesso per vedere il link]

Stai visualizzando 6 risposte - dal 1 al 6 (di 6 totali)
  • Ciao @giorgiocurreli,

    l’unica cosa che mi viene in mente è che il tema installato magari non stia usando le funzioni di traduzione di WordPress.

    Prova a guardare nella cartella del tema se esistono dei file che sovrascrivono quelli di Woocommerce.

    Questi sono gli originali del plugin e la rispettiva riga di codice che mostra le stringhe non tradotte:

    ...\plugins\woocommerce\templates\checkout\form-checkout.php
    
    <h3 id="order_review_heading"><?php esc_html_e( 'Your order', 'woocommerce' ); ?></h3>
    ...\plugins\woocommerce\templates\checkout\form-shipping.php
    
    <input id="ship-to-different-address-checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" <?php checked( apply_filters( 'woocommerce_ship_to_different_address_checked', 'shipping' === get_option( 'woocommerce_ship_to_destination' ) ? 1 : 0 ), 1 ); ?> type="checkbox" name="ship_to_different_address" value="1" /> <span><?php esc_html_e( 'Ship to a different address?', 'woocommerce' ); ?></span>

    Se trovi i file corrispondenti nel tema, verifica che le due stringhe siano all’interno della funzione esc_html_e(). In questo caso è consigliabile verificare se l’autore ha rilasciato un aggiornamento.

    Facci sapere se scopri qualcosa.
    Ciao!

    Chi ha creato la discussione giorgiocurreli

    (@giorgiocurreli)

    intanto grazie davvero per il suggerimento, do uno sguardo e cerco di capire

    Chi ha creato la discussione giorgiocurreli

    (@giorgiocurreli)

    Allora, la situazione è questa:
    i due file php del plugin sono esattamente come li hai indicati tu, nel tema ci sono i file corrispondenti ma al netto di un h4 anzichè h3 per il form check out e dell’indicazione del tema stesso la situazione mi sembra identica.

    The7: form-checkout.php (woocommerce/checkout/form-checkout.php)
    <h4 id=”order_review_heading”><?php esc_html_e( ‘Your order’, ‘the7mk2’ ); ?></h4>

    The7: form-shipping.php (woocommerce/checkout/form-shipping.php)
    <h3 id=”ship-to-different-address”>
    <label class=”woocommerce-form__label woocommerce-form__label-for-checkbox checkbox”>
    <input id=”ship-to-different-address-checkbox” class=”woocommerce-form__input woocommerce-form__input-checkbox input-checkbox” <?php checked( apply_filters( ‘woocommerce_ship_to_different_address_checked’, ‘shipping’ === get_option( ‘woocommerce_ship_to_destination’ ) ? 1 : 0 ), 1 ); ?> type=”checkbox” name=”ship_to_different_address” value=”1″ /> <span><?php esc_html_e( ‘Ship to a different address?’, ‘the7mk2’ ); ?></span>
    </label>
    </h3>

    C’è qualcosa di sbagliato che mi sfugge?

    La cosa più evidente che noto è che il tema sta usando le sue traduzioni, non quelle di Woocommerce.

    Se guardi la stessa riga presa dal plugin e dal tema te ne accorgi:

    Plugin: <?php esc_html_e( ‘Your order’, ‘woocommerce‘ ); ?>
    Tema: <?php esc_html_e( ‘Your order’, ‘the7mk2’ ); ?>

    Il secondo parametro della funzione esc_html_e() è il text domain, in sintesi dove andare a cercare le traduzioni. (documentazione).

    Nella seconda riga come puoi vedere il text domain non è ‘woocommerce’ ma quello del tema, per cui WordPress cercherà la traduzione di quella stringa nei file di lingua del tema.

    Se vuoi averne la certezza, potresti provare a sostituire ‘the7mk2’ con ‘woocommerce’ (fai sempre un backup prima, per sicurezza).

    Naturalmente sarebbe una soluzione non ottimale, perchè dovrebbe essere l’autore a sistemare la cosa. In alternativa, potresti creare un child theme in cui copi questi file e fai la modifica del text domain.

    Spero di essere stato comprensibile.
    Fammi sapere come va.

    • Questa risposta è stata modificata 3 anni, 8 mesi fa da Andrea Porotti.
    Chi ha creato la discussione giorgiocurreli

    (@giorgiocurreli)

    Grazie ancora, sei stato chiarissimo. Il sito è già impostato sul child, adesso vedo di correggere. Per l’inesperienza mi era sfuggito questo particolare, anche se ora che me lo hai indicato mi sento un imbecille dal momento che l’ho anche scritto che veniva indicato il tema…

    Nessun problema, le sviste capitano quando si lavora con il codice 🙂

Stai visualizzando 6 risposte - dal 1 al 6 (di 6 totali)
  • Il topic ‘Problema traduzioni woocommerce’ è chiuso a nuove risposte.