Traducerea unui plugin folosind fișiere .po și .mo

2 iul. 2012, 22:20:10
Vizualizări: 117K
Voturi: 39

Vreau să traduc acest plugin.

Plugin-ul a fost deja tradus în alte limbi și are fișiere .pot pentru adăugarea de noi limbi (din câte am înțeles din descriere).

Cum pot crea fișiere .po și .mo pentru noua mea limbă și cum le fac accesibile pentru a fi utilizate de plugin? Am încercat să definesc limba rusă în fișierul meu wp-config.php inserând definiția de mai jos:

define ('WPLANG', 'ru_RU');
0
Toate răspunsurile la întrebare 5
1
50

Editorul

Există și altele, dar cel mai folosit este: Poedit, un editor cross-platform pentru fișierele de cataloage gettext (.po).

Formatele

  • .mo înseamnă Machine Object (Obiect Mașină)
    -- export compilat al fișierului .po care este folosit de WordPress
  • .po înseamnă Portable Object (Obiect Portabil)
    -- fișier text editabil care conține șirurile de traducere
    -- bazat pe fișierul master .pot, folosind funcția Update from POT file din PoEdit
    -- unii distribuie acest fișier ca master, dar ar trebui folosit doar pentru traduceri
  • .pot înseamnă Portable Object Template (Șablon Obiect Portabil)
    -- fișier text editabil folosit pentru a extrage toate șirurile traductibile din WordPress, Tematici și Plugin-uri, utilizând funcția Update from Sources din PoEdit

Procedura

  • Duplică fișierul .pot și redenumește-l în plugin-basename-limbă_ȚARĂ.po
  • Exemplu pentru cazul plugin-ului menționat: subscribe-reloaded-pt_BR.po
    -- pt_BR înseamnă Portugheză Brazilia, dar multe limbi nu au o variație pe țară...
    -- va trebui să completezi cu propria limbă
  • WPLANG în fișierul wp-config.php trebuie setat la limba ta, de ex., ro_RO
  • De fiecare dată când salvezi fișierul .po, PoEdit generează automat un fișier .mo, care este cel folosit de WordPress și practic singurul pe care trebuie să-l încarci

Observații

  • Dacă realizezi o traducere completă sau decent parțială, trimite-o autorului plugin-ului pentru a o include în Repository și vei primi credit pentru asta
  • Nu uita să faci o copie de rezervă a traducerii tale, deoarece dacă faci upgrade la plugin, fișierul tău va fi pierdut
  • Sugestia plugin-ului @user17078 este destul de bună, dar nu am folosit-o prea mult
3 iul. 2012 01:02:36
Comentarii

Cât timp ar trebui să dureze până când noul fișier mo/po își are efectul?

Nemo Nemo
14 dec. 2015 02:30:18
1

(Iată un EXEMPLU de traducere în ROMÂNĂ. SCHIMBAȚI detaliile cu cele dorite de dumneavoastră.)

în fiecare fișier principal al plugin-ului, există un nume unic. (de exemplu:

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

apoi, în folderul acelui plugin, creați un folder "languages";

apoi, în fișierul .php al plugin-ului (undeva în partea de sus), inserați codul de inițializare:

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;

apoi deschideți orice editor de text și inserați următorul cod (OBSERVAȚI că adăugăm doar două mesaje exemplu, "hello" și "bye", deci puteți ADĂUGA ORICÂTE mesaje DORIȚI cu linii similare).

# Traduceri în engleză pentru pachetul PACKAGE.
# Copyright (C) 2012 DEȚINĂTORUL DE COPYRIGHT AL PACHETULUI
# Acest fișier este distribuit sub aceeași licență ca pachetul PACKAGE.
# Generat automat, 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: Generat automat\n"
"Language-Team: niciunul\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 (este doar o linie de notă, pentru a reaminti unde apare codul nostru)
msgid "mymessage1"
msgstr "Bună"

#: mypluginindex.php:88
msgid "mymessage2"
msgstr "La revedere"

apoi salvați acest fișier ca "my-pluginname-en_US.po" (observați că .po este extensia fișierului, deci verificați că programul dumneavoastră de editare text nu a salvat ca "my-pluginname-en_US.po.TXT").

apoi descărcați software-ul POEDIT și deschideți acest fișier. apoi editați câmpul "translation" și salvați ca "my-pluginname-ro_RO" vor fi generate două fișiere (Dacă poEdit nu generează automat al doilea fișier .mo, mergeți la File -> Preferences -> Editor și bifați caseta care spune "Automatically compile .mo file on save"),

apoi puneți aceste două fișiere în folderul "languages".

după aceasta, deschideți wp-config.php și găsiți acest cod:

define ('WPLANG, '');

și schimbați în

define ('WPLANG, 'ro_RO');

Asta e tot. Când WordPress se încarcă, va citi fișierul de limbă al plugin-ului dumneavoastră, cu prefixul -ro_RO.

Deci, în fișierul .php al plugin-ului, în loc de:

echo "Something string";

ar trebui să folosiți:

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



Gata. Acum ar trebui să testați plugin-ul dumneavoastră.

p.s. link-uri folosite:

25 oct. 2013 02:37:36
Comentarii

Am încercat asta cu tema mea. În header.php, am echo __("thanks-for-visiting", 'transparent');. În theme\languages\transparent-en_US.po, am msgid "thanks-for-visiting" msgstr "Bună! Mulțumim pentru vizită. Răsfoiți și abonați-vă la ". Acest lucru afișează "thanks-for-visiting" în front-end.

Steve Steve
10 mar. 2014 08:09:07
4

Puteți încerca acest plugin codestyling-localization:. Puteți traduce plugin-urile și temele folosind acest instrument.

2 iul. 2012 23:20:42
Comentarii

Acesta este cel mai bun plugin de traducere pe care l-am văzut vreodată. Acest plugin poate înlocui oricând poedit, iar partea cea mai bună este că este gratuit și ușor de utilizat. Acest răspuns ar trebui votat în sus cel puțin.

Gogol Gogol
2 oct. 2014 12:37:10

Nu mai există.

Chris Cox Chris Cox
3 iun. 2015 14:27:03

Aceasta pare o alternativă bună: https://wordpress.org/plugins/say-what/

jetlej jetlej
10 iun. 2015 21:36:29

@jetlej interesant, dar nu pare să funcționeze pentru fișierul meu po :/

Nemo Nemo
14 dec. 2015 02:29:49
0

Vei dori să folosești POEdit. Este o aplicație gratuită pentru crearea fișierelor .po/.mo.

Am scris un tutorial destul de detaliat pe întreaga temă aici. Poți sări direct la Pasul 3 - Crează Fișierul de Traducere pentru Domeniul Textual.

3 iul. 2012 00:29:23
2

Sugerez, de asemenea, http://poeditor.com/. Este un instrument de traducere bazat pe web care funcționează excelent cu fișiere .po, .mo, .pot și alte tipuri de fișiere.

29 ian. 2013 13:56:33
Comentarii

Un vizitator a propus o editare care indică un nou plugin pentru acest serviciu: http://wordpress.org/extend/plugins/poeditor/

brasofilo brasofilo
17 mai 2013 10:33:15

poeditor.com nu mai există...

Cypher Cypher
27 apr. 2020 20:15:47