This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Our next available supporter will start replying to tickets in about 7.01 hours from now. Thank you for your understanding.

This topic contains 34 risposte, has 2 voci.

Last updated by leandroD-2 5 giorni, 7 ore fa.

Assigned support staff: Alejandro.

Autore Post
February 23, 2020 at 10:45 am #5548561

leandroD-2

Ciao Alejandro,
ho tradotto delle stringhe registrate con la funzione "Auto register strings for translation" relative ad ultimate member plugin member directories fields.
Tutto funzionava perfettamente.
Improvvisamente le traduzione hanno smesso di funzionare e le stringhe tradotte (presenti e contrassegnate con Stato: Translation complete) sono visibili solo se la funzione "Auto register strings for translation" è abilitata.
Se disabilito la funzione le traduzioni non funzionano più.
Mi puoi aiutare a risolvere questo problema per favore?
Grazie anticipatamente.

February 23, 2020 at 2:26 pm #5548899

leandroD-2

UPDATE: Ho copiato il file ultimate-member-de_DE.mo da wp-content/languages/plugins in wp-content/languages/wpml sostituendo quello presente.
La traduzione è tornata a funzionare. Mancavano però delle stringhe tradotte.

In String Translation ho provato ad esportare un file .po (Select strings within domain: ultimate-member e Select which strings to display: Translation complete).
Ho rigenerato il file .mo e l'ho copiato in entrambi i percorsi wp-content/languages/plugins e
wp-content/languages/wpml.
Sembra funzionare tutto correttamente con tutte le traduzioni.

Ma è assolutamente necessario fare un po' di chiarezza sul ruolo dei file nei due percorsi sopra menzionati e su come la funzione "Auto Register Strings for Translation" gestisce le traduzioni e dove va a scrivere.

Rimango in attesa di risposte...

Grazie

February 24, 2020 at 11:15 am #5553753

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Ciao,

Questo problema che hai menzionato è in effetti qualcosa su cui stiamo lavorando. Non dipende al 100% da WPML ma certamente se noi dobbiamo tradurla dobbiamo cercare un metodo perché vengano caricate correttamente.

Il problema in poche parole è che ci sono dei plugin/temi che aggiungono del codice per caricare i file MO dopo che WPML l'ha fatto e quindi è come se ci fosse un overwrite di questa procedura, che fa in modo che non vengano riconosciute da WPML.

Abbiamo migliorato questa procedura nella versione 4.3.7 di WPML che è stata recentemente rilasciata la settimana scorsa e stiamo cercando di vedere se possiamo migliorarlo ancora, però sappi che ci stiamo lavorando.

Saluti.

February 24, 2020 at 4:26 pm #5556287

leandroD-2

Ma... wpml dovrebbe leggere il file dentro wp-content/languages/wpml o quello dentro wp-content/languages/plugins?
Il problema è che l'aggiornamento delle traduzioni parte in automatico quando viene aggiornato un qualsiasi plugin e i nuovi file sono sostituiti proprio in wp-content/languages/plugins.

Esiste un modo per bloccare l'aggiornamento delle traduzioni?

Questo non funziona:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
add_filter( 'auto_update_translation', '__return_false' );

Grazie anticipatamente.

February 24, 2020 at 4:35 pm #5556343

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

wp-content/languages/plugins è il posto dove viene aggiunto dal plugin stesso, ma ci deve essere una funzione nel plugin che forza la lettura da lì invece di quella nostra in languages/wpml/

Puoi provare a spostare invece il file dal plugin (quindi languages/plugin) a languages/wpml, così per forza verrà letto da WPML.

sembra che questo tu l'abbia fatto (come spiegato qui: https://wpml.org/it/forums/topic/auto-register-strings-for-translation-2/#post-5548899 )

Puoi provare a vedere se scrivendo questo:

load_theme_textdomain("aggiungi_il_tuo_dominio");

per ogni dominio che ti da problemi, il problema si risolve?

questo codice si deve aggiungere alla fine del file functions.php del tema attivo.

February 24, 2020 at 5:03 pm #5556501

leandroD-2

Ciao Alejandro, il realtà viene letto il file in wp-content/languages/plugins. Il problema è che quello copiato in wpml non viene letto ma quello che si aggiorna automaticamente.
Sto provando con:

function disable_ultimatemember_auto_translation_update( $update, $item ) {
    // disable automatic translations for ultimate-member
    if ( 'plugin' === $item->type && 'ultimatemember' === $item->slug ) {
        return false;
    }
    return $update;
}
add_filter( 'auto_update_translation', 'disable_ultimatemember_auto_translation_update', 10, 2 );

Devo verificare, poi provo load_theme_textdomain("aggiungi_il_tuo_dominio");
Il dominio senza https...?

Ti tengo aggiornato

February 25, 2020 at 10:57 am #5561523

leandroD-2

Alejandro, in "Translate texts in admin screens »" ho "um_role_doctor_meta" (dove doctor è un ruolo di ultimate member) che include
_um_pending_url e _um_login_redirect_url che contengono gli indirizzi di reindirizzamento a pagine specifiche.
Chiaramente devono essere diversi a seconda delle lingue.
Selezionando le stringhe e cliccando su Apply (come suggerito: Choose the fields you'd like to translate and click on the 'Apply' button. Then, use WPML's String translation to translate them) queste non vengono aggiunte a String Translation.
Anche la funzione "Export selected strings as a WPML config file...) non funziona. Va in loop e non viene esportato niente.
Come posso risolvere questo problema?
Grazie

February 25, 2020 at 11:02 am #5561565

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Ciao,

Dici "Il dominio senza https...?", non è il dominio del sito, scusami, è il dominio della stringa, quella che trovi sotto la colonna "Domain" in WPML > String Translation.

Per risolvere questo secondo problema basta seguire questa guida: https://wpml.org/documentation/getting-started-guide/theme-localization/translating-options-coming-from-themes-and-plugins/

Non ti serve il pulsante "apply" perché ci sono più input di quelli che permette il tuo server, quindi puoi anche aumentare il valore a un numero molto alto (50-60 mila) e probabilmente funzionerà anche come hai provato a farlo tu.

Saluti.

February 25, 2020 at 11:09 am #5561601

leandroD-2

no sono indirizzi con https,
il valore di _um_pending_url é hidden link xxx nella lingua principale/
e
il valore di _um_login_redirect_url è hidden link yyy nella lingua principale/
entrambi all'interno di um_role_doctor_meta

February 25, 2020 at 11:32 am #5561829

leandroD-2

Nel sorgente pagina c'è
icl_admin_options[um_role_doctor_meta][_um_pending_url]
icl_admin_options[um_role_doctor_meta][_um_login_redirect_url]

Quindi dovrebbe essere:

<wpml-config>
<admin-texts>
 <key name="um_role_doctor_meta">
  <key name="_um_pending_url" ></key>
 </key>
 <key name="um_role_doctor_meta">
  <key name="_um_login_redirect_url" ></key>
 </key>
</admin-texts>
</wpml-config>

Ma in Settings non c'è nessuna "XML Configuration tab"

February 25, 2020 at 12:51 pm #5562429

leandroD-2

Ho aggiunto manualmente

    <admin-texts>
     <key name="um_role_doctor_meta">
      <key name="_um_pending_url" ></key>
      <key name="_um_login_redirect_url" ></key>
     </key>
     <key name="um_options">
      <key name="g_recaptcha_language_code" ></key>
     </key>
    </admin-texts>

al file wpml-config.xml ma in String Translation le stringhe non sono visibili

February 25, 2020 at 2:58 pm #5563521

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Non ti compariva il Custom XML Conifiguration perché non hai Translation management installato. manualmente funziona pure però a questo punto prova ad andare su WPML > Theme and plugins localization e poi scansiona il tema dove hai inserito il wpml-config.php

dopo dovrai trovarli su WPML > Translation management.

Poi, quello che intendevo per il dominio, non è per questo problema ma per il problema principale dei file MO che vengono sovrascritti.

Parlo del seguente commento:

Dici "Il dominio senza https...?", non è il dominio del sito, scusami, è il dominio della stringa, quella che trovi sotto la colonna "Domain" in WPML > String Translation.

Questo vuol dire che se il dominio della stringa è "woocommerce"
allora il codice da inserire sul functions.php è:

load_theme_textdomain("woocommerce");

Saluti.

February 28, 2020 at 9:20 am #5583807

leandroD-2

Ciao Alejandro, Translation mamagment non è installato ma sinceramente il sito è già tradotto completamente, non credo sia necessario. Posso aggiungere il codice manualmente al file wpml-config.xml.

Ma, questo,

    <admin-texts>
     <key name="um_role_doctor_meta">
      <key name="_um_pending_url" ></key>
      <key name="_um_login_redirect_url" ></key>
     </key>
     <key name="um_options">
      <key name="g_recaptcha_language_code" ></key>
     </key>
    </admin-texts>

l'ho aggiunto al wpml-config.xml che si trova nella root del plugin.

Le stringhe non sono presenti in String Translation...

February 28, 2020 at 11:22 am #5584639

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Aggiungilo nel file wpml-config.xml del tema attivo perché non venga riscritto dal plugin e poi vai su WPML > Localize themes and plugins > seleziona e scannerizza il tema.

Questo dovrebbe farlo comparire su WPML > String Translation

February 28, 2020 at 12:47 pm #5585191

leandroD-2

Ho aggiunto il codice all'xml del tema e poi scansionato il plugin.
Le stringhe sono visibili e la traduzione Completata ma non funzionano.
Viene sempre fatto il redirect alla lingua principale (tedesco).
Ho anche provato anche a copiare il file admin_texts_um_role_doctor_meta-de_DE.mo creato nella cartella languages/wpml/ in languages/plugins/ ma niente...