Come importare le traduzioni di temi e plugin su WordPress.org
Due percorsi permettono di rendere disponibili i file .po e .mo tradotti agli utenti di WordPress.org. Richiedi l'accesso al CLPTE (4-6 giorni) o includi i file .mo nella tua release (il giorno successivo). Entrambi funzionano. Il compromesso è tra la distribuzione canonica e la velocità. Questa guida illustra quando usare ciascun percorso e i passaggi per entrambi.
Hai tradotto il tuo plugin o tema con PTC (Private Translation Cloud) e hai i file .po e .mo. Gli utenti che installano il tuo plugin da WordPress.org non vedono quelle traduzioni per impostazione predefinita. I Language Pack di WordPress.org e i tuoi file inclusi nella release sono due canali di distribuzione separati. Scegline uno in base alla cadenza delle release e al pubblico di destinazione.
Percorso 1: pubblica le traduzioni tramite i Language Pack di WordPress.org (CLPTE)
Tempo totale: 4-6 giorni.
Passaggio 1: crea un account CLPTE
Il ruolo CLPTE (Cross-Locale Project Translation Editor) ti consente di inviare traduzioni per conto del tuo tema o plugin in ogni lingua di destinazione da un unico account. Un account Editor di traduzione standard è specifico per lingua; il CLPTE non lo è.
Se hai già un account su WordPress.org, potresti riscontrare un problema in cui il tuo nuovo account CLPTE viene disabilitato. WordPress non consente account multipli. Per risolvere, invia un'email a forum-password-resets@wordpress.org e spiega che stai cercando di creare un account CLPTE. Condividere la documentazione pertinente del team Polyglots con il moderatore e menzionare il team Polyglots su Slack sono entrambe azioni utili.
Tempo stimato: ~3-5 giorni (include il tempo di attesa se il tuo nuovo account è disabilitato).
Passaggio 2: richiedi l'accesso al CLPTE sul blog del team Polyglots
Con il tuo account abilitato, pubblica una richiesta sul blog Polyglots di WordPress.org. Segui il loro modello:
PTE/CLPTE Request
Plugin URL: https://wordpress.org/plugins/my-plugin/
Authors / Editors: @your-wp-username
Type of request: CLPTE
Riceverai una notifica quando la tua richiesta verrà approvata.
Tempo stimato: ~1 giorno (il Polyglots Global Team esamina le richieste in batch).
Passaggio 3: importa i file .po tradotti
- Accedi a
https://translate.wordpress.org/utilizzando il tuo account CLPTE. - Vai alla pagina del progetto di traduzione del tuo plugin o tema (ad esempio,
translate.wordpress.org/projects/wp-plugins/{your-plugin-slug}/). - Apri il progetto locale per ogni lingua che hai tradotto.
- Scorri verso il basso e fai clic su Importa traduzioni.
- Carica il tuo file
.po(o.mo). - Contrassegna le stringhe importate come «current» nell'editor di traduzione. Le stringhe approvate vengono incluse nella successiva generazione del Language Pack (in genere giornaliera).
- Ripeti l'operazione per ogni lingua di destinazione. Ogni locale ha la propria pagina di traduzione.
Tempo stimato: ~10-30 minuti per lingua.
Dopo una finestra di 24-48 ore per il Language Pack, i siti che eseguono il tuo plugin iniziano a ricevere le nuove traduzioni tramite gli aggiornamenti automatici dei Language Pack di WordPress. Gli utenti non vedono alcun avviso di aggiornamento. Le traduzioni appaiono e basta.
Cosa farà e non farà per te il CLPTE
- Non puoi sostituire le traduzioni della community esistenti. Vengono importate solo le stringhe non tradotte. L'aggiornamento di una traduzione della community esistente richiede il processo standard e l'attesa della revisione da parte del team del locale.
- Gli aggiornamenti richiedono caricamenti manuali per ogni release. Ogni nuova release comporta un nuovo ciclo di caricamenti.
- La creazione e l'approvazione dell'account richiedono in genere 4-6 giorni in totale.
Percorso 2: includi i file .mo all'interno del tuo plugin o tema
Se hai bisogno che le traduzioni vadano in produzione più velocemente di quanto consenta il CLPTE, o se preferisci non dipendere dalla pipeline di distribuzione di WordPress.org, includi i file .mo direttamente nella release del tuo plugin o tema. Tempo totale: 15-30 minuti.
Passaggio 1: aggiungi i file .mo alla directory /languages/
Posiziona i tuoi file .mo compilati all'interno della directory /languages/ del tuo plugin o tema in modo che WordPress li trovi durante il caricamento del tuo text domain:
my-plugin/
├─ my-plugin.php
├─ readme.txt
├─ languages/
│ ├─ my-plugin-es_ES.mo
│ ├─ my-plugin-es_ES.po
│ ├─ my-plugin-fr_FR.mo
│ ├─ my-plugin-fr_FR.po
│ ├─ my-plugin-de_DE.mo
│ └─ my-plugin-de_DE.po
Usa lo stesso text domain nei nomi dei tuoi file di traduzione e nelle tue chiamate load_plugin_textdomain() o load_theme_textdomain().
Passaggio 2: preferisci i tuoi file inclusi alle traduzioni della community
Per impostazione predefinita, WordPress dà priorità alle traduzioni della community di WordPress.org rispetto a quelle incluse. Per assicurarti che il tuo plugin o tema usi invece i file .mo inclusi, aggiungi il filtro load_textdomain_mofile.
Per i plugin, aggiungi al file principale del tuo plugin (ad es., my-plugin.php):
function my_plugin_load_embedded_translation_file( $mofile, $domain ) {
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/plugins/' ) ) {
$locale = apply_filters( 'plugin_locale', determine_locale(), $domain );
$local_mofile = WP_PLUGIN_DIR . '/' . dirname( plugin_basename( __FILE__ ) ) .
'/languages/' . $domain . '-' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile;
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_plugin_load_embedded_translation_file', 10, 2 );
Per i temi, aggiungi al file functions.php del tuo tema:
function my_theme_load_embedded_translation_file( $mofile, $domain ) {
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/themes/' ) ) {
$locale = apply_filters( 'theme_locale', determine_locale(), $domain );
$local_mofile = get_template_directory() . '/languages/' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile;
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_theme_load_embedded_translation_file', 10, 2 );
Conferma inoltre che il tuo plugin o tema carichi il text domain sull'hook corretto:
add_action( 'init', function() {
load_plugin_textdomain(
'my-plugin',
false,
dirname( plugin_basename( __FILE__ ) ) . '/languages'
);
} );
Passaggio 3: verifica che le traduzioni incluse si carichino su un sito di test
Installa il tuo plugin o tema su un sito di test e cambia la lingua di WordPress in una di quelle che hai fornito:
- Vai su Impostazioni > Generali > Lingua del sito e seleziona una lingua il cui file
.mosi trova nella tua cartella/languages/. - Carica una pagina o una schermata che contiene stringhe che sai essere tradotte.
- Conferma che le stringhe appaiano nella lingua corretta e corrispondano alle traduzioni che hai aggiunto.
Se vedi ancora vecchie traduzioni della community, rivedi lo snippet nel Passaggio 2. Deve indirizzare correttamente WordPress ai tuoi file .mo inclusi.
Esegui il commit dei file .mo, crea un tag per la release e fai push su wordpress.org tramite SVN come fai di solito.
Il compromesso tra velocità e distribuzione canonica
- Pro: immediato. Le nuove traduzioni vanno in produzione nel momento in cui gli utenti aggiornano il tuo plugin (o lo installano per la prima volta). Nessuna attesa di più giorni per il CLPTE. Nessun ciclo di approvazione del team Polyglots.
- Pro: controlli il flusso di lavoro. La cadenza delle traduzioni corrisponde esattamente alla cadenza delle release.
- Pro: nessuna dipendenza dal badge del plugin. Le traduzioni funzionano a prescindere dal fatto che il tuo plugin abbia i permessi CLPTE.
- Contro: la dimensione dei file del plugin aumenta. Ogni
.moè di piccole dimensioni (tipicamente 5-50 KB), ma 20 lingue aggiungono ~500 KB al download. - Contro: nessun aggiornamento automatico delle traduzioni tra le release del plugin. Con il CLPTE, le traduzioni aggiornate su wordpress.org si propagano agli utenti entro 48 ore, anche se non rilasci una nuova release. Con l'inclusione, le traduzioni si aggiornano solo quando rilasci una nuova release.
- Contro: nessun badge «translated». WordPress.org mostra un badge di completamento della traduzione nelle schede dei plugin in base alla copertura del Language Pack, non ai file
.moinclusi. L'inclusione da sola non fa ottenere il badge.
Quale percorso si adatta alla cadenza delle tue release?
| Situazione | Raccomandazione |
|---|---|
| Distribuzione canonica a lungo termine; vuoi il badge di traduzione | CLPTE: invia la richiesta al team Polyglots |
| Rilasci aggiornamenti del plugin mensilmente o più spesso, e la cadenza delle traduzioni può coincidere | Includi i file MO |
| Hai bisogno che le traduzioni vadano in produzione questa settimana e non puoi aspettare il CLPTE | Includi subito i file MO, richiedi il CLPTE in parallelo |
| Vuoi entrambi | Usa entrambi: non si escludono a vicenda |
L'approccio doppio è comune: includi i file MO per una disponibilità immediata e inviali al CLPTE per la distribuzione canonica. Gli utenti ottengono le traduzioni incluse al momento dell'aggiornamento; l'overlay del Language Pack le aggiorna tra una release e l'altra.
Traduci la tua prossima release del plugin con PTC
Inizia la tua prova di 30 giorni: 20.000 parole offerte da noi, nessuna carta di credito. Genera il tuo file .pot, caricalo su PTC, ottieni i file .po e .mo tradotti in pochi minuti, pronti per il CLPTE o per l'inclusione.
Correlati:
- Internazionalizzazione di WordPress: come tradurre temi e plugin: il tutorial principale che copre la generazione dei POT, i text domain e il caricamento delle traduzioni.
- Le traduzioni del plugin WordPress non vengono visualizzate? Risolvi le traduzioni mancanti: guida alla risoluzione dei problemi di caricamento più comuni.
- GlotPress vs PTC per la traduzione di plugin/temi WordPress: quando scegliere la traduzione della community rispetto a PTC.
- Manuale per le richieste PTE/CLPTE del team Polyglots di WordPress.org: il processo canonico di richiesta del CLPTE.