Interpretarea proiectelor WordPress actualizări cu WordPress 4.6

În cadrul acestei serii, am acoperit exact ceea ce trebuie să faceți pentru a internaționaliza proiectele dvs. WordPress. Dacă nu ați citit niciunul dintre postările anterioare, vă recomandăm să le verificați.

Deși s-au făcut unele schimbări în modul în care funcționează internaționalizarea și localizarea în WordPress 4.6, aceasta nu înseamnă că tutorialurile anterioare sunt irelevante. Pur și simplu înseamnă că modul în care optați să distribuiți pluginurile și localizările acestora se va schimba.

Și asta vom acoperi în acest tutorial.

Înainte de a începe

Așa cum am menționat, acest tutorial presupune că sunteți prins de tot ceea ce am discutat până acum în această serie. Aceasta include:

  • Înțelegerea internaționalizării și de ce este important.
  • Cum să configurați un mediu de dezvoltare pentru a lucra cu exemplul de cod.
  • Înțelegerea localizării (și a diferenței dintre internaționalizare).
  • Cum să utilizați instrumentele pentru a începe traducerea șirurilor dvs. internaționalizate.

Dacă nici unul dintre cele de mai sus nu are sens, atunci vă rugăm să revedeți seria. Dacă vă simțiți încrezător că puteți explica sau utiliza fiecare dintre punctele de mai sus, sunteți gata să continuați.

Înțelegerea modificărilor

Lucrul frumos despre acest tutorial este că este mai degrabă informativ decât teoretic (sau practic, pentru asta contează). Asta înseamnă că nu va exista niciun cod care să demonstreze. Este vorba numai de diseminarea informațiilor și de faptul că știți ce să utilizați și când.

Înainte de a ajunge prea adânc în subiect, hai să facem o copie de rezervă și să vorbim despre întregul proces de internaționalizare a WordPress și cum funcționează cu încărcarea fișierelor localizate.

Cum funcționează internaționalizarea și localizarea

Conceptele de internaționalizare și localizare sunt relativ ușor de înțeles, dar pot fi și confuze ușor (când am început să lucrez în WordPress, chiar am folosit în mod greșit termenii).

Internaționalizarea este procesul de dezvoltare a plugin-ului dvs., astfel încât acesta să poată fi ușor tradus în alte limbi.

Astfel, modul în care pregătim toate șirurile și textul care poate fi citit de om în plugin-ul nostru trebuie să fie tradus pentru alte locații.

Localizarea, atunci, este actul de traducere efectivă a șirurilor și gruparea lor în pachete de limbi care vor fi apoi încărcate de WordPress în funcție de localizarea setată în instalare.

De exemplu, să presupunem că construiesc un plugin și folosesc engleza americană sau în engleză ro_ așa cum puteți vedea scris. Apoi veți vedea tot textul pe care l-am scris în limba mea.

Dar ce se întâmplă când cineva care dorește să folosească pluginul vrea să îl traducă în spaniolă? În primul rând, persoana responsabilă va utiliza un instrument, cum ar fi POEdit, pentru a furniza traducerile pentru fiecare șiruri de caractere. 

Apoi ea sau el va stoca aceste în limbi (sau orice alt director). Fișierul ar trebui să fie numit pe baza localului pentru care este asociat. În acest caz, es_ES.

Când plugin-ul este încărcat într-o instalare de WordPress instalată pe o mașină care are es_ES locale setat ca localizare implicită, fișierul de localizare va fi încărcat și va înlocui toate șirurile traduse cu echivalenții lor spanioli.

Și de mult timp, așa a funcționat procesul de internaționalizare. În plus, dacă optați pentru distribuirea pluginurilor în afara Depozitului Plugin WordPress, aceasta este ceva ce trebuie să faceți în continuare.

Dar ce se întâmplă pentru distribuirea acestor pluginuri în depozitului?

Traducerile Just-in-Time

În domeniul informaticii, există un concept de JIT (sau just-in-time), și de multe ori îl sunăm denumit compilație "just-in-time".

În computere, compilația just-in-time (JIT), cunoscută și sub denumirea de traducere dinamică, este compilația efectuată în timpul executării unui program - la momentul executării - mai degrabă decât înainte de execuție.

În cea mai recentă versiune de WordPress, adică WordPress 4.6, pluginurile internaționalizate care urmează unui protocol specific sunt capabile să profite de avantajele localizării just-in-time. Din blogul Make WordPress, aceste modificări pot fi rezumate după cum urmează:

Deoarece fișierele de traduceri sunt de obicei în interiorul wp-content / languages, WordPress scanează acum directorul pentru traducerile disponibile și le încarcă automat dacă întâlnește pentru prima oară un domeniu de text.

Ce înseamnă pentru noi dezvoltatorii? Pe scurt, aceasta înseamnă că, dacă distribuim munca noastră prin WordPress Plugin Repository, WordPress va scana mai întâi biblioteca de traduceri pentru a vedea dacă există unul pentru plugin-ul curent și localizarea lui. Dacă detectează unul, atunci îl va folosi pe acesta.

Dacă nu detectează o traducere, se poate întâmpla unul din cele două lucruri:

  1. Pluginul pur și simplu nu va fi localizat.
  2. Pluginul va utiliza fișierul de localizare inclus în plugin.

Există unele obiecții la această nouă abordare, deși:

  1. Nu mai trebuie să sunăm load_plugin_textdomain () în pluginurile bazate pe WordPress 4.6.
  2. Dacă aveți obiceiul de a utiliza unload_textdomain (), va trebui să încărcați manual traducerile după apel dacă doriți să le utilizați din nou.

Deși sunt simple, recomand să le citiți în întregime pentru a înțelege cum funcționează, funcționalitatea și modul în care se aplică muncii pe care o faceți zilnic.

În general vorbind, găsesc această caracteristică incredibil de frumos. Aceasta ne dă șansa să distribuim pluginuri care pot avea deja traduceri disponibile și care pot fi încărcate prin WordPress. 

Acestea fiind spuse, nu cred că este o scuză nu pentru a lega fișierele internaționalizate. La urma urmei, dacă un pachet de limbi nu este găsit, atunci va trebui să fie încărcat din limbi director. 

Și dacă scopul final este de a avea cele mai rezistente și robuste pluginuri disponibile, atunci nu ar trebui să ne bazăm pe ceva care nu există. În schimb, să sperăm pentru cele mai bune, dar planificați pentru cel mai rău.

Concluzie

Și cu asta, am acoperit tot ce putem despre modul în care WordPress se ocupă de internaționalizare și localizare pentru pluginurile care vor fi disponibile atât în ​​WordPress Plugin Repository, cât și pe cele pe care le veți distribui prin canalele proprii.

Dacă sunteți interesat să aflați mai multe despre WordPress din perspectiva dezvoltării, rețineți că lucrez exclusiv cu WordPress și scriu adesea despre el. Poți să-mi iei toate cursurile și tutorialele pe pagina mea de profil și poți să mă urmărești pe blogul meu și / sau pe Twitter la @tommcfarlin unde vorbesc despre dezvoltarea de software în contextul WordPress.

Ca întotdeauna, dacă sunteți în căutarea altor utilități pentru a vă ajuta să vă construiți un set tot mai mare de instrumente pentru WordPress sau, de exemplu, pentru a studia și a deveni mai bine versat în WordPress, nu uitați să vedeți ce avem la dispoziție în Envato Piaţă.

Nu ezitați să lăsați întrebările sau comentariile în feedul de mai jos și mă voi adresa fiecăruia.

Resurse conexe

Există o serie de resurse enumerate mai jos. Rețineți că acestea provin de la tutorialele anterioare, precum și de ceea ce sa menționat în acest tutorial. Cu toate acestea, dacă ați citit tutorialele anterioare, ar trebui să aveți o formă bună. Dacă ați optat să nu faceți acest lucru, atunci examinați cel puțin linkurile de mai jos.

  • Plugin Header
  • Domeniul textului
  • admin_menu
  • add_submenu_page
  • __ ()
  • esc_html_e ()
  • admin_enqueue_scripts
  • wp_enqueue_style
  • Domeniu Cale
  • poedit
  • plugins_loaded
  • load_plugin_textdomain
  • locale

Rețineți, de asemenea, că ați putea fi interesat să descărcați proiectul demonstrativ pentru a examina codul sursă și pentru a vedea cum funcționează. Acest lucru este valabil mai ales dacă sunteți în căutarea de a comercializa ceva în afara WordPress Plugin Repository.

Cod