2012-07-19 15 views
6

मैं पीओएडिट को PHP एनोटेशन समझने का एक तरीका ढूंढ रहा हूं। यहाँ कोड का एक नमूना मैं पीओऍडिट लेने और सूची में डाल दिया करना चाहते हैं:PoEdit और PHP एनोटेशन

class MyController extends Controller { 

    /** 
    * @Title "Home" 
    */ 
    public function index() { 
     ... 
    } 

} 

दिलचस्प हिस्सा @Title एनोटेशन है। इसे फ्रंट कंट्रोलर में एक्सेस किया गया है और मास्टर व्यू को सौंपा गया है, प्रभावी ढंग से <title>...</title> टैग के अंदर समाप्त हो रहा है।

अब मुझे उस स्ट्रिंग का अनुवाद करने की आवश्यकता है, लेकिन PoEdit केवल _() अभिव्यक्तियों को समझता है, और कीवर्ड में @Title जोड़ना काम नहीं करता है। ऐसा शायद इसलिए है क्योंकि PHP में एनोटेशन टिप्पणी ब्लॉक में हैं।

क्या एनोटेशन को समझने के लिए PoEdit को मजबूर करने का कोई तरीका है?

+4

मैं वास्तव में दस्तावेज़ पर काम करना टिप्पणियों के उपयोग नापसंद करते हैं। टिप्पणियों को समझने के लिए टिप्पणियां मानव-पठनीय पाठ के लिए आरक्षित की जानी चाहिए, और संभवतः चर प्रकारों को चुनने में आईडीई की सहायता के लिए। यह एप्लिकेशन में किसी भी समारोह को सर्वर नहीं करना चाहिए। –

+0

यह PHP में एनोटेशन करने का एकमात्र तरीका है और वास्तव में भाषा में प्रतिबिंब उपप्रणाली द्वारा इसका समर्थन किया जाता है। विभिन्न प्रतिबिंब वर्गों पर विधि getDocComment() देखें। इसके अलावा, वे वास्तव में मनुष्यों के लिए पठनीय हैं - उपर्युक्त उदाहरण का विकल्प पृष्ठ दृश्य :: getInstance() -> setTitle ("Home") एक्शन कोड में कुछ होगा। –

+0

मैं @Truth से सहमत हूं, सामान करने के लिए एनोटेशन का उपयोग करके रिक्त फाइलों के फ़ाइल नाम के रूप में सहेजने वाले चर की तरह है; आप इसे कर सकते हैं, लेकिन यह सिर्फ अजीब है। और इसके अलावा, मूल्य को पढ़ने के लिए फ़ाइल को टेक्स्ट के रूप में एक्सेस करना एक कचरा लगता है जब कोई व्यक्ति, एक सामान्य चर सेट कर सकता है, उदाहरण के लिए एक सार्वजनिक वर्ग संपत्ति, जो भी मूल्य की आवश्यकता है। – Mahn

उत्तर

0

यदि आप वास्तव में ऐसा करना चाहते हैं तो आप केवल php फ़ाइलों से बाहरी स्ट्रिंग को स्ट्रिंग कर सकते हैं, जबकि एनोटेशन भाग को _ (स्ट्रिंग) के साथ बदलना; प्रत्येक मैच के लिए और उस फ़ाइल पर Poedit चलाएं। (गृह)

3

कम जवाब है, आप नहीं कर सकते: मैच में $1 एनोटेशन हो जाएगा (शीर्षक), $2 मूल्य होगा -

आप के साथ .*\*\s\@(\w+)\s\"(\w+)\".* यह मिलान कर सकते हैं।

POEdit xgettext का उपयोग इसलिए आपकी फ़ाइलों को स्कैन करने के लिए विशिष्ट वाक्यविन्यास का उपयोग करके, टिप्पणी की गई रेखाओं को अनदेखा कर देता है। > स्ट्रिंग 'परीक्षण'

_("test"); - -> स्ट्रिंग 'परीक्षण'

_('test' -> स्ट्रिंग

_('test');:

उदाहरण के लिए, अपने खोजशब्दों _ कर रहे हैं निम्नलिखित उदाहरण की तरह पार्स किया जाएगा 'परीक्षण'

_ 'test -> कोई पकड़

_('test -> कोई पकड़

_(test) -> कोई पकड़

_($test) -> कोई पकड़

//_('test'); -> कोई पकड़

/*_('test');*/ -> कोई पकड़

आप xgettext निष्पादित कर सकते हैं अन्य पैरामीटर का उपयोग करते हुए मुझे यकीन नहीं है कि क्या आप अपना लक्ष्य प्राप्त कर पाएंगे।


एक आसान ठीक नहीं है (मानक ओएफसी)

function placeholder($string){} 

तरह placeholder जैसे अन्य कीवर्ड जोड़ने और बनाने के एक php समारोह और इसका इस्तेमाल करने के लिए है तो poedit पार्स कर सकते हैं यह

class MyController extends Controller { 

    /** 
    * @Title "Home" 
    */ 
    public function index() { 
     placeholder('Home'); 
     ... 
    } 

} 

अपने फ्रंटएंड पार्सर पर बस सरल _($value) का उपयोग करें और आपका शीर्षक अनुवादित होगा।

डुनो आपका कोड कैसा है लेकिन यह इसके जैसा कुछ मान लेगा।

यह मानते हुए कि $ टैग = 'शीर्षक' और $ मूल्य = 'होम'

echo '<'.$tag.'>'._($value).'</'.$tag.'>'; 
संबंधित मुद्दे