2012-11-26 25 views
11

मुझे पता है कि उदाहरण के लिए Poedit के साथ .po और .mo फ़ाइलों को उत्पन्न करके आम तौर पर विषयों और टेम्पलेट्स के लिए अनुवाद कैसे बनाएं। लेकिन चूंकि टेम्पलेट नाम प्रत्येक टेम्पलेट फ़ाइल के शीर्ष पर PHP टिप्पणियों में लिखे गए हैं, इसलिए इसे देखने के लिए इसका कोई तरीका नहीं है जैसा कि मैंने इसे देखा है।वर्डप्रेस टेम्पलेट नाम का अनुवाद कैसे करें?

वर्डप्रेस टेम्पलेट हैडर:

/** 
* Template Name: Three columns 
* 
* @package WordPress 
*/ 

टेम्पलेट नाम किसी भी तरह Wordpress द्वारा पार्स और जब एक पृष्ठ बनाने टेम्पलेट का चयन करें ड्रॉप-डाउन पॉप्युलेट करने के लिए प्रयोग किया जाता है।

तो मेरा सवाल है: क्या वर्डप्रेस टेम्पलेट नाम का अनुवाद करने का कोई तरीका है? क्या वर्डप्रेस किसी भी विशिष्ट चर के लिए भी देखता है जिसे मैं अपनी टेम्पलेट फ़ाइल में सेट कर सकता हूं? या यह असंभव है?

उत्तर

12

मैंने हाल ही में उस पर ठोकर खाई। यहाँ कैसे मैं इस के आसपास मिल गया है:

सबसे पहले, (यदि आप पहले कि नहीं है) Text Domain: mytext_domain अपने style.css, जहां mytext_domain अपने विषय के लिए वास्तविक पाठ डोमेन है में जोड़ें।

फिर अपने विषय में कहीं अनुवाद कार्य करने के लिए एक डमी कॉल जोड़ने (सबसे अच्छी बात सिर्फ तहत टेम्पलेट नाम घोषणा इसे जोड़ने के लिए है, तो आप आश्चर्य नहीं आता कि क्यों आप इसे डाल दिया है):

/** 
* Template Name: Three columns 
* 
* @package WordPress 
*/ 
__('Three columns', 'mytext_domain'); 

ऐसा करने का कारण यह है कि वर्डप्रेस आपके टेम्पलेट का नाम translate() फ़ंक्शन पर पास करता है, लेकिन चूंकि अनुवादक प्लगइन्स आपके कोड को पार्स करते हैं, इसलिए उन्हें पता नहीं है कि आपका टेम्पलेट नाम .po (या यह .mo था?) का हिस्सा होना चाहिए। फ़ाइल। __() पर डमी कॉल उस समस्या को हल करता है।

और कारण है कि आप Text Domain अपनी style.css की घोषणा क्यों करते हैं क्योंकि यह वह जगह है जहां वर्डप्रेस टेम्पलेट नामों को पार्स करते समय वर्डप्रेस आपकी थीम के टेक्स्टडोमेन की तलाश करता है।

मैं आपको सटीक स्रोत नहीं दे सकता, क्योंकि मैंने वास्तव में कोर कोड के चारों ओर पोक किया है, जब तक कि मुझे पता नहीं लगा कि यह कैसे काम करता है और मेरे टेम्पलेट नामों का अनुवाद कैसे कर सकता है।

पीपी: मुझे यकीन है कि कैसे काम करता है Poedit नहीं कर रहा हूँ - अगर आप हाथ से अपने अनुवाद जोड़ने के लिए, आप डमी कॉल की आवश्यकता न पड़े - बस के साथ और इसके बिना और उपयोग जो भी आपके लिए सर्वोत्तम है :)

+1

बढ़िया! वह चाल है। :) अजीब है कि इस पर लगभग कोई दस्तावेज नहीं है। दूसरों के लिए स्पष्टीकरण के लिए: आपको style.css में अपनी थीम परिभाषा टिप्पणियों में 'टेक्स्ट डोमेन: mytext_domain' जोड़ने की आवश्यकता है। – jamietelin

+1

हाँ, यह बहुत अधिक दस्तावेज नहीं है। मैंने [इस टिकट] से शुरू किया (http://core.trac.wordpress.org/ticket/6007) और तब कोर फाइलों के माध्यम से अपना रास्ता बना दिया जब तक कि मुझे समझ में नहीं आया कि यह कैसे काम करता है :) –

5

बेहतर परीक्षण विधि:

  1. अपने style.css फ़ाइल को Text Domain: theme-slug शीर्ष लेख जोड़ें, अगर आपने पहले से ऐसा नहीं किया है।

  2. develop.svn ट्रंक बाहर की जाँच के द्वारा सरकारी वर्डप्रेस डेवलपर पैकेज का एक चेकआउट प्राप्त करें: http://develop.svn.wordpress.org/trunk/

  3. वहाँ में, आप एक निर्देशिका/उपकरण/i18n बुलाया मिल जाएगा। उस निर्देशिका में makepot.php फ़ाइल है। इस प्रकार आप विषयों के लिए उपयोग कर सकते हैं:

> php makepot.php wp-theme /path/to/your/theme/directory theme-slug.pot

यह आप के लिए बर्तन फाइल बनाएगा नवीनतम वर्डप्रेस कोड का उपयोग कर। यह सब कुछ वर्डप्रेस i18n कार्यों, सब कुछ से हेडर से तार मिल जाता है।इसका मतलब यह भी है कि आपको किसी अन्य "नकली" तारों को बनाने की आवश्यकता नहीं है जैसे कि अन्य उत्तर बताते हैं।

सुनिश्चित करें कि आप थोड़ी देर में svn update प्रत्येक बार भी करें, क्योंकि i18n टूल्स और कोर ट्रंक कोड को हर समय नई चीजों के लिए अपडेट किया जा सकता है।

ध्यान दें कि i18n उपकरण का उपयोग करते समय, उन्हें ट्रंक चेकआउट में होना आवश्यक है। आप उन्हें फाइल सिस्टम में चारों ओर स्थानांतरित नहीं कर सकते हैं, क्योंकि वे फ़ाइलों के कुछ विश्लेषण करने के लिए वर्डप्रेस फ़ंक्शंस पर निर्भर करते हैं, इसलिए उनके पास सापेक्ष वर्डप्रेस कोर/src निर्देशिका में पेड़ का बैक अप लेता है। उपकरण के लिए ट्रंक निर्देशिका को पूरी तरह से काम करने के लिए बरकरार रखना आवश्यक है। हालांकि, ट्रंक निर्देशिका को कॉन्फ़िगर नहीं किया जा सकता है, आपको वर्डप्रेस की वर्किंग इंस्टॉलेशन करने की आवश्यकता नहीं है, इसे फ़ाइलों के पार्सिंग को ठीक से करने के लिए बस कुछ वर्डप्रेस कोड चाहिए।

संबंधित मुद्दे