in Ազատ ԾԱ և Օփենսորս, Վորդպրես, ՏՏ

Նախաբան

Ինչպե՞ս թարգմանել Վորդպրեսի փլագինները և թեմաները: Այս հոդվածի առաջին մասը հասկանալու համար անհրաժեշտ է php ծրագրավորման լեզվի տարրական իմացություն և թեթևակի ծանոթություն Վորդպրես հարթակի հետ: Եթե դուք միայն թարգմանություններով եք զբաղվում և ծրագրավորման հետ գործ չունեք, միանգամից անցեք երկրորդ մասին:

Տարբերակ ա (վատ ձև)

  1. մտնել փլագինի ֆայլերի մեջ
  2. գտնել կոդերի մեջ այն տողերը, որոնք անհրաժեշտ է թարգմանել ու ձեռքերով փոխել, գրել հայերեն:

Թերությունները
եթե թեմաների դեպքում դա որոշ չափով ընդունելի տարբերակ է, ապա փլագինների համար այդպես չի կարելի անել ոչ մի դեպքում, որովհետև փլագինները ունենում են աբդեյթներ, և այդ աբդեյթները անելուց հետո ֆայլերի մեջ ձեր կողմից արված փոփոխությունները կորչում են:

Տարբերակ բ (ճիշտ ձև)

Թարգմանել Վորդպրեսի կողմից օգտագործվող տեղայնացման(լոկալիզացիայի) համակարգի միջոցով:

Վորդպեսում բազմալեզվությունը ապահովելու համար օգտագործվում է GNU gettext գրադարանը և գործիքները: Դա հնարավորություն է տալիս բազմաթիվ լեզուներով  թարգմանել Վորդպրեսի քոռը, թեմաները և փլագինները:

 Ինչպե՞ս է դա աշխատում

Հասկանալու համար անհրաժեշտ է մտնել Վորդպրեսի փլագինների, թեմաների կամ էլ քոռի ֆայլերի մեջ , ու տեսնել, թե ինչպես է այն տպում տողերը: Տեղայնացում ապահովվող թեմաներում կտեսնենք հետևյալ ֆունկցիաների կիրառությունը:

  • __()
  • _e()

Gettext-ը ունի նաև այլ ֆունկցիաներ, բայց դրանց չեմ անդրադառնա, այս նյութը ավելի պրակտիկ դարձնելու նպատակով:
Այս երկու ֆունկցիաները աշխատում են գրեթե նույն ձևով, միայն այն տարբերությամբ  որ __() վերադարձնում է արժեք, իսկ _e() -ը միանգամից տպում է արժեքը:
Դիտենք շատ օգտակար փլագիններից մեկի կոդը, Related Posts via Category , բեռնեք այն, որովհետև օրինակները ցույց եմ տալու այս փլագինի ֆայլերի վրա:

/includes/admin.php ֆայլի մեջ կարող ենք տեսնել հետևյալ տողը

_e( 'Order','related-posts-via-categories' );

որտեղ _e( ) ֆունկցիայի առաջին փոփոխականը տպվող բառն է, իսկ երկրրորդը այսպես կոչվող տեքստդոմեյնը:  Մոտենում ենք ամենկակարևոր պահին: Երբ ծրագիրը հանդիպում է վերը նշված տողին, այն նայում է, կա՞ արդյոք ‘Order’ բառը թարգմանության ֆայլի մեջ, եթե այո, ապա թարգմանության ֆայլից վերցնում է թարգմանությունը, եթե ոչ տպում է ‘Order’ բառը:

Ըհը, հիմա անցնենք առաջ, ասացի թարգմանության ֆայլ, ի՞նչ ֆայլ է սա և որտե՞ղ է այն գտնում:
թարգմանության ֆայլը բինար ֆայլ է և ունի է .mo ընդյալնում: Այն պարունակում է տպվող տողերի թարգմանությունները:  Այն կարող է գտնվել ցանկացած տեղ: Սակայն պրակտիկորեն այն գտնվում փլագինի կամ թեմայի  հետևյալ պանակներից որևէ մեկում

  • /
  • /languages
  • /lang
  • /langs

Թարգմանությունների ֆայլերի իրական տեղը կոնկրետ փլագինի կամ թեմայի համար կարելի է իմանալ՝

1 փնտրելով պանակների մեջ, և գտնելով մյուս լեզուների թարգմանության ֆայլերը: Պարզ է, որ այս դեպքում պետք է ուղղակի դնել հայերեն թարգմանությունը մյուս թարգմանությունների հետ նույն պանակի մեջ:

2 ուսումնասիրելով կոդը (սա այն դեպքի համար է , երբ փլագինը կամ թեման դեռ չունեն ոչ մի լեզվով թարգմանություն): օրինակի համար նորից նայենք Related Posts via Category փլագինի կոդը, այնտեղ կա related-posts-via-categories.php ֆայլ որի մեջ կարող ենք գտնել հետևյալ տողը:

load_plugin_textdomain( 'related-posts-via-categories', false, basename( dirname( __FILE__ ) ) . '/languages' );

այս տողով սահմանվում է տեքստդոմեյնը և այն տեղը որտեղ գտնում է թարգմանության ֆայլը:
Մեր փլագինի դեպքում թարգմանության ֆայլը գտնվում է փլագինի պանակի /languages ենթապանակում:

Տեղայնացման (լոկալիզացիայի) ֆայլերի թարգմանությունը:

Կա մի հրաշալի ծրագիր՝ poedit, որը հնարավորություն է տալիս կատարել թարգմանություն և պահպանել այն .mo բինար ֆայլի տեսքով:
Բեռնեք այն այստեղից (Լինուքս,Վինդոուս,ԱյՕս)

Թարգմանության պրոցեսում մասնակցում են երեք տեսակ ֆայլեր, ահա դրանց ընդլայնումները՝

  • .pot (Portable Object Template) – շաբլոն, այն պարունակում է թարգմանության համար նախատեսված բոլոր տողերը: Սա իրականում սովորական տեքստային ֆայլ է, սրա մեջ չկա թարգմանություն:
  • .po (Portable Object) – .pot-ից ստեծված ֆայլ, որը ներառում է բոլոր տողերը և դրանց թարգմանությունները: Սա նույնպես տեքստային ֆայլ է:
  • .mo (Machine Object) – .po ֆայլի բինար տարբերակը, որի մեջ Վորդպրեսի կողմից որոնվում է թարգմանությունը:

Ի՞նչպես սկսել թարգմանությունը

Սկսելու համար մեզ անհրաժեշտ է համակարգչում տեղադրած(install) ունենալ  poedit ծրագիրը և թեմայի կամ փլագինի .pot ֆայլը:  (Related Posts via Category փլագինի դեպքում այն գտնվում է /languages պանակի մեջ):

Բացում ենք poedit ծրագիրը

poedit ծրագրի օգտագործումը 1

poedit ծրագրի օգտագործումը 1

Ինչպես երևում է պատկերի վրա File/New Catalog From POT File

 

poedit ծրագրի օգտագործումը 2

poedit ծրագրի օգտագործումը 2

Գրանցում ենք նոր կատալոգի տվյալները, մոտավորապես այնպես ինչպես ցույց եմ տվել սքրինշոթի վրա, այստեղ ամենակարևոր պահը Plural Forms դաշտի գրառումն է, հայերեն լեզվի համար գրում ենք այսպես

nplurals=2; plural=n != 1;

սա նշանակում է , որ հայերենը ունի մի հատ եզակի ու մի հատ էլ հոգնակի ձև, ի տարբերություն օրինակ ռուսերենի, ռուսերենի համար պիտի գրենք այսպես, այնտեղ երկու հոգնակիի ձև կա:

nplurals=3; plural=(n%10==1 && n%100!=11) ? 0 : ((n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20)) ? 1 : 2);

մյուս լեզուների համար կախված է լեզվի քերականական առանձնահատկություններից:

լավ անցնենք առաջ, առաջարկում է պահպանել .po կատալոգը ու ընտրել անունը, անունը դնում ենք .pot ֆայլի անունը, որպես վերջածանց ավելացնելով հայերենի կոդը hy_AM:

poedit ծրագրի օգտագործումը 3

poedit ծրագրի օգտագործումը 3

Եվ ահա մեր թարգմանչական միջավայրը պատրաստ է: Այն ունի այսպիսի տեսք

poedit ծրագրի օգտագործումը 4

poedit ծրագրի օգտագործումը 4

Մկնիկը դնում ենք այն տողի վրա , որը ցանկանում ենք թարգմանել, ներքևի մասում (նշված է 3-ով) գրում ենք հայերեն տարբերակը, անում ctrl+s և վերջ: Ահա արդեն ունենք .mo ֆայլ, որում կա order բառի հայերեն թարգմանությունը:

Մի այսպիսի տարբերակ էլ կարող է լինել

poedit ծրագրի օգտագործումը 5

poedit ծրագրի օգտագործումը 5

Այս օրինակում մենք տողի մեջ ունենք փոփոխական, %S գրառումը փոփոխական է, այս փոփոխականը պետք է պահպանել նաև թարգմանության մեջ:

Մեկ այլ տարբերակ էլ կարող է լինել այն տողերի համար, որոնք տպվող նախադասության մեջ եզակի և հոգնակի թվով պիտի գրվեն: Ահա այդպիսի օրինակ:

poedit ծրագրի օգտագործումը 6

poedit ծրագրի օգտագործումը 6

Այստեղ ինչպես տեսնում եք, պետք է երկու արժեք գրել, առաջին ներդիրում(նշված է 3-ով) գրել եզակի տարբերակը: Իսկ երկրորդ ներդիրում(նշված է 4-ով) գրել հոգնակին:

Ու չենք մոռանում ամեն տողը թարգմանելուց հետո անել ctrl+s:

Այս բոլոր գործողությունները հետագայում թարգմանությանը վերադառնալիս այլևս անհրաժեշտ չեն լինի, ուղղակի բացում եք .po ֆայլը poedit ծրագրով ու անում անհրաժեշտ փոփոխություններ: Ամեն անգամ save անելուց հետո թարմանում է ձեր վերջնական .mo որը և պիտի օգտագործեք այն սերվեր տեղադրելով:

Թարգմանություններ անելիս ձեզ կարող է օգտակար լինել այս էջը:

 Օգնություն ՏՏ Թարգմանիչներին

Ինչպիսի դժվարությունների կարող եք հանդիպել

1. պատահում  է այնպես, որ փլագինների կամ թեմաների  .pot ֆայլերում բացակայում են տողեր, որոնք թեմայի կոդի մեջ առկա են: Օրինակ կա հրաման

__('print all');

Սակայն print all-ը բացակայում է .pot ֆայլի մեջ, այդ դեպքում կարող եք բացել .pot(.po) ֆայլը ու ավելացնել այդ տողը, բացում եք այս դեպքում որևէ տեքստային խմբագրիչով, օրինակ Notepad++ ով , կամ այլ որևէ մեկով:

2. Որոշ փլագիններ, օրինակ 1` wp-polls -ը փլագինը ակտիվացնելիս բոլոր տողերը գրում է տվյալների բազայում, այսինքն ակտիվացված փլագինի ֆայլերի մեջ .mo ֆայլը ավելացնելիս փոփոխությունները չեք տեսնի: Այսպիսի փլագինների համար անհրաժեշտ է փլագին տեղադրելուց (install) անելուց առաջ նախօրոք կատարել թարգմանությունը, ու արդեն թարգմանության ֆայլի հետ միասին տեղադրել և ակտիվանել:

Հավելումներ

Իրականում gettext-ը օգտագործվում է ոչ միայն Վորդպրես հարթակի համար, այլ բազմաթիվ օփենսորդ և ֆրի ծրագրային լուծումներում:  Այսինքն .pot, .po, .mo ֆայլերի հետ աշխատանքի հմտությունները օգտակար կլինեն ոչ միայն Վորդպրեսի թարգմանության համար, այն նաև այլ բազմաթիվ դեպքերում:

Վորդպրեսի հետ կապված բոլոր նյութերս կարդացեք այստեղ:
Հոդվածներ Վորդպրեսի մասին
Թարգմանված փլագինները այստեղ
Վորդպրեսի փլագինների հայերեն թարգմանություններ

Ու եթե թարգմանում եք որևէ բան, փլագին, թեմա և այլն մի մոռացեք կիսվել 🙂

Վերադարձրու համայնքին

Վերադարձրու՛ համայնքին