Come importare le traduzioni di temi e plugin su WordPress.org
Esistono due strade per mettere i file .po e .mo tradotti a disposizione degli utenti di WordPress.org. Richiedere l'accesso CLPTE (4-6 giorni) o includere i file .mo direttamente nel tuo rilascio (giorno successivo). Entrambe le opzioni sono valide. Il compromesso è tra distribuzione canonica e velocità. Questa guida spiega quando utilizzare ciascun percorso e i passaggi dettagliati per entrambi.
Hai tradotto il tuo plugin o tema con PTC (Private Translation Cloud) e hai ottenuto i file .po e .mo. Gli utenti che installano il tuo plugin da WordPress.org non vedono queste traduzioni per impostazione predefinita. I Language Pack di WordPress.org e i tuoi file inclusi nel pacchetto sono due canali di distribuzione separati. Scegline uno in base alla tua frequenza di rilascio e al tuo pubblico.
Percorso 1: Pubblicare 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 permette di inviare traduzioni per conto del tuo tema o plugin in ogni lingua di destinazione da un unico account. Un normale account di Translation Editor è limitato a una singola lingua; il CLPTE no.
Se hai già un account su WordPress.org, potresti riscontrare un problema per cui il tuo nuovo account CLPTE viene disabilitato. WordPress non consente account multipli. Per risolvere, invia un'e-mail a forum-password-resets@wordpress.org spiegando che stai cercando di creare un account CLPTE. Condividi la documentazione pertinente di Polyglots con il moderatore e contatta il team Polyglots su Slack: può essere d'aiuto.
Tempo stimato: ~3-5 giorni (incluso il tempo di attesa se il nuovo account viene disabilitato).
Passaggio 2: Richiedi l'accesso CLPTE sul blog di Polyglots
Una volta abilitato l'account, 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 sarà approvata.
Tempo stimato: ~1 giorno (il Global Team di Polyglots revisiona le richieste a lotti).
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 clicca su Import Translations.
- Carica il tuo file
.po(o.mo). - Contrassegna le stringhe importate come “current” nell'editor di traduzione. Le stringhe approvate entreranno a far parte della successiva generazione del Language Pack (solitamente giornaliera).
- Ripeti per ogni lingua di destinazione. Ogni locale ha la sua pagina di traduzione.
Tempo stimato: ~10-30 minuti per lingua.
Dopo una finestra di 24-48 ore per la generazione del Language Pack, i siti che utilizzano il tuo plugin inizieranno a ricevere le nuove traduzioni tramite gli aggiornamenti automatici dei Language Pack di WordPress. Gli utenti non vedranno alcun avviso di aggiornamento. Le traduzioni appariranno semplicemente.
Cosa farà e cosa non farà il CLPTE per te
- 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 locale.
- Gli aggiornamenti richiedono caricamenti manuali per ogni rilascio. Ogni nuovo rilascio comporta un nuovo ciclo di caricamenti.
- La creazione dell'account e l'approvazione richiedono solitamente 4-6 giorni in totale.
Percorso 2: Includere i file .mo all'interno del plugin o del tema
Se hai bisogno che le traduzioni siano online più velocemente di quanto consentito dal CLPTE, o se preferisci non dipendere dalla pipeline di distribuzione di WordPress.org, includi i file .mo direttamente nel rilascio 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 quando carica il 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 file di traduzione e nelle tue chiamate a load_plugin_textdomain() o load_theme_textdomain().
Passaggio 2: Dai la preferenza ai file inclusi rispetto alle traduzioni della community
Per impostazione predefinita, WordPress dà la priorità alle traduzioni della community di WordPress.org rispetto a quelle incluse nel pacchetto. Per assicurarti che il tuo plugin o tema utilizzi invece i file .mo inclusi, aggiungi il filtro load_textdomain_mofile.
Per i plugin, aggiungi al file principale del tuo plugin (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 );
Inoltre, conferma 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 vengano caricate su un sito di test
Installa il tuo plugin o tema su un sito di test e imposta WordPress in una delle lingue che hai fornito:
- Vai su Impostazioni > Generale > Lingua del sito e seleziona una lingua per la quale è presente il file
.monella tua cartella/languages/. - Carica una pagina o una schermata che contenga stringhe che sai essere tradotte.
- Conferma che le stringhe appaiano nella lingua corretta e corrispondano alle traduzioni che hai aggiunto.
Se vedi ancora le vecchie traduzioni della community, rivedi lo snippet al Passaggio 2. Deve indirizzare correttamente WordPress verso i tuoi file .mo inclusi.
Esegui il commit dei file .mo, crea un tag per il rilascio e invia a wordpress.org tramite SVN come fai abitualmente.
Il compromesso tra velocità e distribuzione canonica
- Pro: istantaneo. Le nuove traduzioni sono online 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 da parte del team Polyglots.
- Pro: controlli il workflow. La frequenza delle traduzioni corrisponde esattamente alla tua frequenza di rilascio.
- Pro: nessuna dipendenza dal badge del plugin. Le traduzioni funzionano indipendentemente dal fatto che il tuo plugin abbia i permessi CLPTE.
- Contro: le dimensioni del file del plugin aumentano. Ogni file
.moè piccolo (solitamente 5-50 KB), ma 20 lingue aggiungono circa 500 KB al download. - Contro: nessun aggiornamento automatico delle traduzioni tra i rilasci del plugin. Con il CLPTE, le traduzioni aggiornate su wordpress.org si propagano agli utenti entro 48 ore, anche se non effettui un nuovo rilascio. Con l'inclusione nel pacchetto, le traduzioni si aggiornano solo quando rilasci una nuova versione.
- Contro: nessun badge “tradotto”. WordPress.org mostra un badge di completamento della traduzione nelle schede dei plugin basandosi sulla copertura dei Language Pack, non sui file
.moinclusi. L'inclusione da sola non fa ottenere il badge.
Quale percorso si adatta alla tua frequenza di rilascio?
| Situazione | Raccomandazione |
|---|---|
| Distribuzione canonica a lungo termine; vuoi il badge della traduzione | CLPTE - segui la procedura di richiesta Polyglots |
| Rilasci aggiornamenti del plugin mensilmente o più spesso, e la frequenza delle traduzioni può coincidere | Includi i file MO |
| Hai bisogno delle traduzioni online questa settimana e non puoi aspettare il CLPTE | Includi i file MO ora, richiedi il CLPTE in parallelo |
| Vuoi entrambi | Usa entrambi - non si escludono a vicenda |
L'approccio duale è comune: includi i file MO per la disponibilità immediata e invia al CLPTE per la distribuzione canonica. Gli utenti ottengono le traduzioni incluse all'aggiornamento; la sovrapposizione del Language Pack le aggiorna tra un rilascio e l'altro.
Traduci il tuo prossimo rilascio del plugin con PTC
Inizia la tua prova gratuita di 30 giorni - 20.000 parole offerte da noi, senza 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 essere inclusi nel pacchetto.
Correlati:
- Internazionalizzazione di WordPress: come tradurre temi e plugin - il tutorial principale che copre la generazione di POT, i text domain e il caricamento delle traduzioni.
- Le traduzioni del plugin WordPress non appaiono? Risolvi le traduzioni mancanti - guida alla risoluzione dei problemi per i più comuni errori di caricamento.
- GlotPress vs PTC per la traduzione di plugin/temi WordPress - quando scegliere la traduzione della community rispetto a PTC.
- Manuale per la richiesta PTE/CLPTE di WordPress.org Polyglots - il processo canonico di richiesta CLPTE.