Tradurre un plugin utilizzando i file .po .mo

2 lug 2012, 22:20:10
Visualizzazioni: 117K
Voti: 39

Voglio tradurre questo plugin.

Il plugin è già stato tradotto in altre lingue e ha i file .pot per aggiungere nuove lingue (per quanto ho capito dalla descrizione).

Come posso creare i file .po e .mo per la mia nuova lingua e renderli accessibili in modo che vengano utilizzati dal plugin? Ho provato a definire la lingua russa nel mio file wp-config.php inserendo la definizione qui sotto:

define ('WPLANG', 'ru_RU');
0
Tutte le risposte alla domanda 5
1
50

L'Editor

Ce ne sono altri, ma il più utilizzato è: Poedit, un editor cross-platform per cataloghi gettext (file .po).

I Formati

  • .mo sta per Machine Object
    -- esportazione compilata del file .po che viene utilizzata da WordPress
  • .po sta per Portable Object
    -- file di testo modificabile contenente le stringhe di traduzione
    -- basato sul file master .pot, utilizzando la funzione Update from POT file di PoEdit
    -- alcune persone distribuiscono questo come file master, ma dovrebbe essere utilizzato solo per le traduzioni
  • .pot sta per Portable Object Template
    -- file di testo modificabile utilizzato per estrarre tutte le stringhe traducibili da WordPress stesso, dai Temi e dai Plugin, utilizzando la funzione Update from Sources di PoEdit

La Procedura

  • Duplica il file .pot e rinominalo in plugin-basename-lang_COUNTRY.po
  • Esempio per il caso del plugin citato: subscribe-reloaded-pt_BR.po
    -- pt_BR significa Portoghese Brasile, ma molte lingue non hanno una variante per paese...
    -- dovrai inserire la tua lingua
  • WPLANG nel file wp-config.php deve essere impostato sulla tua lingua, ad esempio pt_BR
  • Ogni volta che salvi il file .po, PoEdit genera automaticamente un file .mo, che è quello che utilizza WordPress e sostanzialmente l'unico che devi caricare

Osservazioni

  • Se fai una traduzione completa o parziale ma significativa, inviala all'autore del plugin così che possa includerla nel Repository e tu possa ottenere il riconoscimento
  • Non dimenticare di fare un backup della tua traduzione, perché se aggiorni il plugin il tuo file andrà perso
  • Il suggerimento del plugin di @user17078 è piuttosto interessante, ma non l'ho mai usato molto
3 lug 2012 01:02:36
Commenti

Quanto tempo dovrebbe impiegare il nuovo file mo/po per avere effetto?

Nemo Nemo
14 dic 2015 02:30:18
1

(Ecco un ESEMPIO di traduzione in ITALIANO. MODIFICARE i valori secondo le proprie esigenze.)

In ogni intestazione del plugin, c'è un nome univoco. (ad esempio:

/*
Plugin Name: my-pluginname
.......
*/

poi, nella cartella del plugin, crea una cartella "languages";

quindi, nel file .php del tuo plugin (da qualche parte all'inizio), inserisci il codice di inizializzazione:

class load_language 
{
    public function __construct()
    {
    add_action('init', array($this, 'load_my_transl'));
    }

     public function load_my_transl()
    {
        load_plugin_textdomain('my-pluginname', FALSE, dirname(plugin_basename(__FILE__)).'/languages/');
    }
}

$zzzz = new load_language;

quindi apri un editor di testo e inserisci questo codice (NOTA CHE stiamo aggiungendo solo due messaggi di esempio, "ciao" e "arrivederci", quindi puoi AGGIUNGERE TANTI MESSAGGI QUANTI VUOI con righe simili).

# Traduzioni in italiano per il pacchetto PACKAGE.
# Copyright (C) 2012 IL DETENTORE DEL COPYRIGHT DEL PACCHETTO
# Questo file è distribuito con la stessa licenza del pacchetto PACKAGE.
# Generato automaticamente, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: my-pluginname 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 13:46-0400\n"
"PO-Revision-Date: 2013-03-21 11:20+0400\n"
"Last-Translator: Generato automaticamente\n"
"Language-Team: nessuno\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"


#: mypluginindex.php:87 (è solo una nota per ricordare dove appare il nostro codice)
msgid "mymessage1"
msgstr "Ciao"

#: mypluginindex.php:88
msgid "mymessage2"
msgstr "Arrivederci"

quindi salva questo file come "my-pluginname-it_IT.po" (nota che .po è un'estensione del file, quindi controlla che il tuo programma di editor di testo non abbia salvato come "my-pluginname-it_IT.po.TXT").

quindi scarica il software POEDIT e apri questo file. Poi modifica il campo "traduzione" e salva come "my-pluginname-it_IT" verranno generati due file (Se poEdit non genera automaticamente il secondo file .mo, vai su File -> Preferenze -> Editor e seleziona la casella che dice "Compila automaticamente il file .mo al salvataggio"),

quindi inserisci questi due file nella cartella "languages".

dopo questo, apri wp-config.php e trova questo codice:

define ('WPLANG, '');

e modificalo in

define ('WPLANG, 'it_IT');

È tutto. Quando WordPress viene caricato, leggerà il file di lingua del tuo plugin, con il prefisso -it_IT.

Quindi, nel file .php del plugin, invece di:

echo "Qualcosa di stringa";

dovresti usare:

echo __("mymessage1", 'my-pluginname');



Finito. Ora dovresti testare il tuo plugin.

p.s. link utilizzati:

25 ott 2013 02:37:36
Commenti

Ho provato questo con il mio tema. In header.php, ho echo __("thanks-for-visiting", 'transparent');. In theme\languages\transparent-en_US.po, ho msgid "thanks-for-visiting" msgstr "Ciao! Grazie per la visita. Dai un'occhiata in giro e iscriviti a ". Questo mostra "thanks-for-visiting" sul front end.

Steve Steve
10 mar 2014 08:09:07
4

Puoi provare questo plugin codestyling-localization:. Puoi tradurre i tuoi plugin e temi utilizzandolo.

2 lug 2012 23:20:42
Commenti

Questo è il miglior plugin di traduzione che abbia mai visto. Questo plugin può surclassare Poedit in qualsiasi momento e la parte migliore è che è gratuito e intuitivo. Questa risposta dovrebbe essere votata positivamente almeno.

Gogol Gogol
2 ott 2014 12:37:10

Non esiste più.

Chris Cox Chris Cox
3 giu 2015 14:27:03

Sembra una buona alternativa: https://wordpress.org/plugins/say-what/

jetlej jetlej
10 giu 2015 21:36:29

@jetlej interessante, non sembra funzionare per il mio file po però :/

Nemo Nemo
14 dic 2015 02:29:49
0

Dovresti utilizzare POEdit. È un'applicazione gratuita per creare file .po/.mo.

Ho scritto un tutorial molto dettagliato sull'intero argomento qui. Puoi saltare direttamente al Passo 3 - Crea il File di Traduzione per il Text Domain.

3 lug 2012 00:29:23
2

Suggerisco anche http://poeditor.com/. È uno strumento di traduzione basato sul web che funziona molto bene con file .po, .mo, .pot e altri tipi di file.

29 gen 2013 13:56:33
Commenti

Un visitatore ha proposto una modifica puntando a un nuovo plugin per questo servizio: http://wordpress.org/extend/plugins/poeditor/

brasofilo brasofilo
17 mag 2013 10:33:15

poeditor.com non esiste più...

Cypher Cypher
27 apr 2020 20:15:47