2010-05-03 19 views
5

के साथ स्थानीयकरण मैं अपने ज़ेंड फ्रेमवर्क आवेदकॉन में कुछ ग्रंथों को स्थानांतरित करना चाहता था। की तरह कुछ ग्रंथों के होते हैं:एचटीएमएल-टैग

Hello, I'm <a href="test.php" title="Title-Attribute" rel="test">a sample text</a>, greetings to all of you! :)

हैं कि इसमें कोई html है, यह localizate करने के लिए सरल है, लेकिन यह में एचटीएमएल, साथ मैं इसे कैसे सबसे अच्छा क्या करना चाहिए?

+0

उसी विषय पर चर्चा की गई है http://stackoverflow.com/questions/2566432/add-some-html-to-zend-forms/2567764#2567764 वहां देखें – user1400

उत्तर

4

Virtaal जैसे कुछ स्थानीयकरण उपकरण way में एक्सएमएल (एचटीएमएल) टैग संभालते हैं जो अनुवादक के साथ काम करना आसान बनाता है। दूसरा विकल्प एक स्ट्रिंग स्वरूपण चर के साथ टैग को प्रतिस्थापित करके और स्वरूपण के परिणामस्वरूप प्रारूप स्ट्रिंग को स्थानीय बनाने योग्य बनाकर अपने स्थानीय लोगों को प्रस्तुत स्ट्रिंग को सरल बनाना है। उदाहरण के लिए (मैं ज्यादातर उदाहरण के लिए अनुमान लगा रहा हूँ और पीएचपी बहुत अच्छी तरह से पता नहीं है): स्ट्रिंग कि localiser देखेंगे

printf(_("Hello, I'm %sa sample%s, greetings to all of you!"), '<a href="test.php" title="Title-Attribute" rel="test">', "</a>");

ऊपर बयान में केवल युक्त एक है %s स्वरूपण चर (क्योंकि यह _() गेटटेक्स्ट फ़ंक्शन में लपेटा गया है)। यह निश्चित रूप से, स्थानीयकरणकर्ता को काफी उलझन में पड़ने की कमी है यदि वह इस बात से अनजान है कि चर के साथ क्या बदला जाएगा, इसलिए उचित स्थानीयकरण टिप्पणी शामिल करें।

+2

मुझे समझ में आया कि "शीर्षक-विशेषता" का भी अनुवाद करना होगा। – Gordon

+0

उस मामले में xtofl का उत्तर बेहतर दिखता है। इसे ऊपर उठाया वही विचार, यद्यपि। :) – Walter

2

आपको यूआई में मौजूद किसी भी स्ट्रिंग को स्थानीयकृत करना चाहिए। इस स्थिति में, आपके पास यूआई/नियंत्रण तत्वों का संयोजन है। इसका मतलब है कि title विशेषता की सामग्री को अलग से स्थानांतरित किया जाना है।

इस मामले में, इसका मतलब है:

$guilink = "<a href='test.php' " 
      ."title='".gettext("Title-Attribute")."'" 
      ." rel='test'>" 
      .gettext("a sample text") 
      ."</a>"; 

$guistring = sprintf( 
     gettext("Hello, I'm %s, greetings to all of you! :)"), $guilink); 

लेकिन, जैसा कि गॉर्डन कहते हैं: overcomplicate नहीं है।

1

अनुवाद एडेप्टर के लिए इसे कोई फर्क नहीं पड़ता कि अनुवाद में HTML है या नहीं। यदि आपको इनलाइन एचटीएमएल के साथ छोटे तार मिलते हैं, तो बस HTML के साथ अनुवाद को अपनी भाषा स्रोत फ़ाइल में आवश्यकतानुसार रखें। आपको केवल यह सुनिश्चित करना होगा कि स्ट्रिंग के अंदर HTML होने पर आउटपुट बच निकला नहीं है।


संपादित xtofl जैसा टिप्पणी में कहा, भाषा फ़ाइल के अंदर एचटीएमएल होने क्योंकि अनुवादक एचटीएमएल से निपटने के साथ अपरिचित हो सकता है नहीं, एक इष्टतम समाधान है। जबकि उसमें कुछ सच्चाई है, मुझे यह उपेक्षित लगता है। एचटीएमएल रॉकेट विज्ञान नहीं है और कुछ मामलों के लिए जहां इनलाइन एचटीएमएल तत्व प्रकट हो सकते हैं, आप उन्हें धोखा शीट प्रदान कर सकते हैं। व्यावसायिक अनुवादक इसे संभालने में सक्षम होना चाहिए। एक और चिंता उन्हें अनचाहे सामग्री डालने, उदाहरण के लिए लिंक (यदि आप पेशेवरों के बजाय सामुदायिक अनुवादकों के साथ काम कर रहे हैं)। लेकिन चूंकि आपने किसी भी अनुवादक का उल्लेख नहीं किया है, इसलिए मुझे लगता है कि आप स्वयं अनुवाद कर रहे हैं, इस मामले में उपर्युक्त सभी yagni है। overcomplicate things की कोई आवश्यकता नहीं है।

+0

किनारे पर ले जाकर, आप अनुवादक अपना ले सकते हैं पूर्ण स्रोत कोड और स्ट्रिंग अक्षर चुनें ... मुझे यह पसंद नहीं है, वास्तव में। नौकरी कुशलतापूर्वक पूरा करने के लिए, अनुवादकों को तकनीकी विवरणों का अनजान होना चाहिए। (कौन जानता है कि एचटीएमएल फॉर्म के इनपुट में 'नाम' विशेषता को 'नाम', 'नाम', 'gnorpx' में अनुवादित किया जाना चाहिए?) – xtofl

+0

@xtofl ओपी के उद्देश्य के लिए, उपरोक्त एक मान्य दृष्टिकोण है।हम नहीं जानते कि ओपी अनुवादकों के साथ काम कर रहा है या नहीं। यदि ओपी करता है, तो अनुवादक संभावित रूप से उसे बता सकते हैं, अगर वे इनलाइन HTML को संभाल सकते हैं। अगर आपको लगता है कि यह एक बेहतर समाधान है, तो अपने उत्तर को मिटा दें। – Gordon