2011-03-23 14 views
8

मैंने अभी wp के लिए अपना पहला प्लगइन बनाया है, और यहां तक ​​कि यदि यह एक महान "कोड कविता" नहीं है;) यह काम करता है जैसा कि यह करना चाहिए। यह एक प्लगइन है जो गैलरी व्यू 3.0 jquery प्लगइन (http://spaceforaname.com/galleryview) का उपयोग कर डिफ़ॉल्ट WP गैलरी को बदलता है।वर्डप्रेस प्लगइन लोकलाइजेशन

एकमात्र चीज जो मैं करने में सक्षम नहीं हूं वह स्थानीयकरण है। इस प्लगइन के लिए स्थानीयकरण का अर्थ व्यवस्थापक इंटरफ़ेस का अनुवाद करना है, जहां कोई परिणामस्वरूप गैलरी के पहलू को बदलने के लिए jquery प्लगइन विकल्प कॉन्फ़िगर कर सकता है।

मैंने वेब पर मौजूद लाखों ट्यूटोरियल का पालन करने की कोशिश की है, मंचों पर इस मुद्दे के बारे में बहुत सी पोस्ट पढ़ी हैं और कोडेक्स के दिशानिर्देशों का पालन किया है ... लेकिन अभी भी कोई भाग्य नहीं है।

  1. हर पाठ लाइन एक gettext समारोह (__ और _e)
  2. poedit का उपयोग कर मैं पुलिस और मो फ़ाइल प्लगइन निर्देशिका स्कैनिंग (बनाया अंदर है:

    इस

    मैं क्या किया है है हरथ ठीक हो गया), तो मैंने उस फाइल पर अनुवाद जोड़े।

  3. मैंने .po फ़ाइल को नाम दिया है जैसे कि NAME-OF-the-PLUGIN-it_IT.po (.mo फ़ाइल एक ही नाम से उत्पन्न हुई थी)
  4. मैंने प्लगइन फ़ोल्डर/भाषाओं के अंदर अनुवाद फ़ाइलों को रखा है (फ़ोल्डर का नाम प्लगइन और अनुवाद फ़ाइलों में से एक है)
  5. तो मैंने मुख्य प्लगइन फ़ाइल के अंदर load_plugin_textdomain फ़ंक्शन जोड़ने का प्रयास किया है। मैंने कोशिश की है क्योंकि इसे काम करने का कोई तरीका नहीं है।

जो पर केवल एक चीज मैं यकीन नहीं है तथ्य यह है कि मैं बना लिया है प्लगइन एक वर्ग + निर्माता funcions के तहत नहीं है ... सिर्फ इसलिए कि मैं अभी भी कोडिंग में इतना अच्छा नहीं कर रहा हूँ है। मुख्य प्लगइन फ़ाइल में

add_action('init', 'gw_load_translation_file'); 

function gw_load_translation_file() { 
// relative path to WP_PLUGIN_DIR where the translation files will sit: 
$plugin_path = dirname(plugin_basename(__FILE__) .'/languages'); 
load_plugin_textdomain('gallery-view-for-wordpress', false, $plugin_path); 
} 

ऊपर लाइनों एक तर्क के भीतर नहीं हैं, वे तो बस, उस तरह:

लेकिन मैं load_plugin_textdomain एक init add_action अंदर रख दिया है, इस तरह।

<h3><?php _e('Panel Options','gallery-view-for-wordpress') ?></h3> 

मैं क्या समझ में नहीं आया:

इस gettext कार्यों के अपने प्रयोग का एक उदाहरण है?

+0

कौन-सी भाषा अपने WP-config.php में सेट किया गया है पर जवाब था? –

+0

मुझे इसके साथ भी समस्याएं हैं। अब तक Google पर कुछ भी उपयोगी खोजने में असफल रहा है - शायद WP के नवीनतम संस्करणों के साथ एक नया मुद्दा? थोड़ा अजीब लगता है कि यह केवल प्लगइन्स को प्रभावित करेगा, हालांकि। मेरे प्रयासों और ओपी के बीच एकमात्र अंतर यह है कि मैं/plugins रूट dir (वास्तविक प्लगइन.एफ़.पी. फ़ाइल के समान स्थान) से .mo और .po फ़ाइलों को लोड करने का प्रयास कर रहा हूं। मेरा wplang fr-FR पर सेट है - वर्तमान थीम ठीक है, यह केवल प्लगइन है जो टेक्स्ट डोमेन लोड नहीं करेगा। – hollsk

+0

@ हॉल्स्क, मैंने यहां प्रश्न भी पोस्ट किया है http://wordpress.stackexchange.com/questions/12810/plugin-localization लेकिन कोई भाग्य नहीं, कोई कहता है कि यह काम कर रहा है ... लेकिन मेरे लिए नहीं – bluantinoo

उत्तर

4

मेरी गलती भाषा फाइल पथ घोषणा पर थी।

इस तय:

$plugin_path = dirname(plugin_basename(__FILE__)) . '/languages/'; 

इस गलत था:

$plugin_path = dirname(plugin_basename(__FILE__) .'/languages'); 

मैं Wordpress Stack Exchange

+0

बहुत बहुत धन्यवाद! यह सबसे कष्टप्रद डिबगिंग क्षण है जो मैंने कभी किया है, क्योंकि अंत में रिक्त रेखाएं सीख रही हैं। PHP फाइलें नहीं हैं व्यर्थ। – daveagp

1

मेरे पिछले बयान के विपरीत, मैं इस फ़ाइलनाम का प्रयोग सफल रहा है: gallery-view-for-wp-it_IT.mo

अजीब है, हालांकि - विषयों सिर्फ it_IT.mo का उपयोग करें।

+0

@bluantinoo मैंने Wordpress के लिए Opzioni गैलरी व्यू प्राप्त करने में कामयाब रहा है :) उत्तर के संपादन को देखें। –

+0

@ निकोले क्या आपका मतलब है कि यदि आप गैलरी सेटिंग्स पृष्ठ पर जाते हैं तो आप इतालवी में अनुवादित इंटरफ़ेस देखते हैं? – bluantinoo

+1

सिर्फ शीर्षक, आपने अन्य फ़ील्ड का अनुवाद नहीं किया है। –

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