PTC

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

  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 fai clic su Importa traduzioni.
  5. Carica il tuo file .po (o .mo).
  6. Contrassegna le stringhe importate come «current» nell'editor di traduzione. Le stringhe approvate vengono incluse nella successiva generazione del Language Pack (in genere giornaliera).
  7. 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:

  1. Vai su Impostazioni > Generali > Lingua del sito e seleziona una lingua il cui file .mo si trova nella tua cartella /languages/.
  2. Carica una pagina o una schermata che contiene stringhe che sai essere tradotte.
  3. 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 .mo inclusi. 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: