PTC

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

  1. Accedi a https://translate.wordpress.org/ utilizzando il tuo account CLPTE.
  2. Vai alla pagina del progetto di traduzione del tuo plugin o tema (ad esempio, translate.wordpress.org/projects/wp-plugins/{your-plugin-slug}/).
  3. Apri il progetto locale per ogni lingua che hai tradotto.
  4. Scorri verso il basso e clicca su Import Translations.
  5. Carica il tuo file .po (o .mo).
  6. 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).
  7. 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:

  1. Vai su Impostazioni > Generale > Lingua del sito e seleziona una lingua per la quale è presente il file .mo nella tua cartella /languages/.
  2. Carica una pagina o una schermata che contenga stringhe che sai essere tradotte.
  3. 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 .mo inclusi. 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: