चर

2012-10-12 7 views
12

संभव डुप्लिकेट gettext:
How does gettext handle dynamic content?चर

मैं PHP के gettext उपयोग कर रहा हूँ। मैं एक वाक्य का अनुवाद करना चाहता हूं जिसमें एक चर है। क्या यह संभव है?

उदाहरण के लिए, अंग्रेजी में:

Are you sure you want to block Alice?

(कहाँ "ऐलिस" उपयोगकर्ता का नाम है।)

लेकिन, जर्मन में, विषय वाक्य के अंत में प्रकट नहीं होता है ।

Sind Sie sicher, dass Sie Alice blockieren?

messages.po में, मैं

msgid "BLOCK" 
msgstr "Are you sure you want to block" 

है लेकिन मैं एक या अधिक चरों पारित करने के लिए कोई रास्ता नहीं देखते हैं। क्या यह संभव है?

+2

'% s' और' sprintf' या एक जैसे की तरह Placeholdrs में आमतौर पर उस के लिए उपयोग किया जाता है। इसके अलावा आपको गेटटेक्स्ट स्रोत स्ट्रिंग के लिए ABBReviations का उपयोग नहीं करना चाहिए। अप्रतिबंधित संदेशों के लिए सादे अंग्रेजी का प्रयोग करें। संदेश शायद ही कभी अभ्यास में बदलते हैं, और गेटटेक्स्ट कैटलॉग को आसानी से अनुकूलित किया जा सकता है यदि यह कभी होता है। – mario

उत्तर

26

poedit युद्धों को पहचानता है।

msgid "Are you sure you want to block %s?" 
msgstr "Sind Sie sicher, dass Sie %s blockieren?" 

और PHP

sprintf(_('Are you sure you want to block %s?'),'Alice'); 
+0

वैसे यह आसान था! धन्यवाद। Sprintf दिखाने के लिए संपादित किया है। printf बस लंबाई दिखाता है। –

+2

स्प्रिंटफ? क्यूं कर? Printf स्ट्रिंग मुद्रित करें और sprintf इसे वापस। शायद आप 'echo sprintf' लिखते हैं। –

+2

@chumkiu - 'sprintf()' शायद उन कारणों के लिए उपयोग किया जाता है जो गेटटेक्स्ट और स्थानीयकरण के लिए अप्रासंगिक हैं। (ऐप को शायद परिणामी स्ट्रिंग को स्टोर/हेरफेर करने की आवश्यकता होती है, इसे सीधे स्टडआउट पर आउटपुट नहीं किया जाता है।) – rinogo