Նախաբան
Ինչպե՞ս թարգմանել Վորդպրեսի փլագինները և թեմաները: Այս հոդվածի առաջին մասը հասկանալու համար անհրաժեշտ է php ծրագրավորման լեզվի տարրական իմացություն և թեթևակի ծանոթություն Վորդպրես հարթակի հետ: Եթե դուք միայն թարգմանություններով եք զբաղվում և ծրագրավորման հետ գործ չունեք, միանգամից անցեք երկրորդ մասին:
Տարբերակ ա (վատ ձև)
- մտնել փլագինի ֆայլերի մեջ
- գտնել կոդերի մեջ այն տողերը, որոնք անհրաժեշտ է թարգմանել ու ձեռքերով փոխել, գրել հայերեն:
Թերությունները
եթե թեմաների դեպքում դա որոշ չափով ընդունելի տարբերակ է, ապա փլագինների համար այդպես չի կարելի անել ոչ մի դեպքում, որովհետև փլագինները ունենում են աբդեյթներ, և այդ աբդեյթները անելուց հետո ֆայլերի մեջ ձեր կողմից արված փոփոխությունները կորչում են:
Տարբերակ բ (ճիշտ ձև)
Թարգմանել Վորդպրեսի կողմից օգտագործվող տեղայնացման(լոկալիզացիայի) համակարգի միջոցով:
Վորդպեսում բազմալեզվությունը ապահովելու համար օգտագործվում է 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 ծրագիրը
Ինչպես երևում է պատկերի վրա File/New Catalog From POT File
Գրանցում ենք նոր կատալոգի տվյալները, մոտավորապես այնպես ինչպես ցույց եմ տվել սքրինշոթի վրա, այստեղ ամենակարևոր պահը 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:
Եվ ահա մեր թարգմանչական միջավայրը պատրաստ է: Այն ունի այսպիսի տեսք
Մկնիկը դնում ենք այն տողի վրա , որը ցանկանում ենք թարգմանել, ներքևի մասում (նշված է 3-ով) գրում ենք հայերեն տարբերակը, անում ctrl+s և վերջ: Ահա արդեն ունենք .mo ֆայլ, որում կա order բառի հայերեն թարգմանությունը:
Մի այսպիսի տարբերակ էլ կարող է լինել
Այս օրինակում մենք տողի մեջ ունենք փոփոխական, %S գրառումը փոփոխական է, այս փոփոխականը պետք է պահպանել նաև թարգմանության մեջ:
Մեկ այլ տարբերակ էլ կարող է լինել այն տողերի համար, որոնք տպվող նախադասության մեջ եզակի և հոգնակի թվով պիտի գրվեն: Ահա այդպիսի օրինակ:
Այստեղ ինչպես տեսնում եք, պետք է երկու արժեք գրել, առաջին ներդիրում(նշված է 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 ֆայլերի հետ աշխատանքի հմտությունները օգտակար կլինեն ոչ միայն Վորդպրեսի թարգմանության համար, այն նաև այլ բազմաթիվ դեպքերում:
Վորդպրեսի հետ կապված բոլոր նյութերս կարդացեք այստեղ:
Հոդվածներ Վորդպրեսի մասին
Թարգմանված փլագինները այստեղ
Վորդպրեսի փլագինների հայերեն թարգմանություններ
Ու եթե թարգմանում եք որևէ բան, փլագին, թեմա և այլն մի մոռացեք կիսվել 🙂