2010-07-29 22 views
5

मैं अपनी वेबसाइट का अनुवाद करने के लिए गेटटेक्स्ट का उपयोग करता हूं।जब आप अनुवादित पाठ में लिंक करते हैं तो आप गेटटेक्स्ट का उपयोग कैसे करते हैं?

टेक्स्ट अनुवाद में लिंक होना अच्छा लगेगा लेकिन मैं gettext फ़ाइलों में HTML टैग लिखना नहीं चाहता क्योंकि इन अनुवादों का कहीं और उपयोग किया जा सकता है।

मैं केवल वेब साइट के लिए टेक्स्ट (लिंक के साथ) और सभी उद्देश्यों के लिए पाठ बना सकता हूं।
मुझे 2 संस्करण बनाए रखना होगा। :-(

मैं भी पाठ में लिंक डालने के लिए एक कस्टम पार्सर लिख सकता है, लेकिन यह overkill लगता है और मैं The Danger of Naïveté

जो लोग एक ही समस्या थी, कैसे आपको लगता है कि संभाल की थी की affraid हूँ?

उत्तर

3

मैं पैरामीटर के रूप में लिंक डालता था। अधिकांश समय पूरे <a> -tag एक पैरामीटर है। Please see %s this link %s for more information. की तरह पहले% s को लिंक टैग पारित किया गया है, और दूसरा एक बंद </a> टैग पास कर दिया गया है।

अब जब मैं एक लिंक टेक्स्ट का अनुवाद किया जाना चाहिए तो मैं लिंक के रूप में केवल पूरे वाक्यांशों का उपयोग करता हूं। तो हमारे पास बस 'अधिक जानकारी के लिए यह लिंक देखें' जैसे टेक्स्ट हैं, इसे अनुवादित करें और इसके चारों ओर लिंक टैग डालें। अनुवादों का प्रबंधन करना बहुत आसान है, और आपके पास भ्रमित अनुवादक नहीं है, या आप जो करने की कोशिश कर रहे हैं उसे समझाते हुए समय बिताने की जरूरत है।

printf(__('Please see %s this link %s for more information.', 'text-domain'), '<a href="http://yolo.io" title="yolo">', '</a>'); 
1

मैं ईमानदारी से कुछ मूल HTML का उपयोग कर के बारे में भी चिंतित नहीं होगा (या bbCode, textile, markdown, आदि) सीधे आपके अनुवाद फाइलों में। यूआरएल अभी केवल एक समस्या यह प्रतीत हो सकती हैं, लेकिन क्या अन्य पाठ मार्कअप के बारे में

उल्लेख नहीं है कि यूआरएल स्वयं संभावित रूप से भाषा के आधार पर भिन्न हो सकता है।

मैं सहमत हूं कि अनुवाद फ़ाइलों में उनके मुद्दे हैं।

1

चयनित जवाब की मदद के लिए यहाँ एक व्यावहारिक उदाहरण है।

यह लिंक के लिए {curly brackets} का उपयोग करने का सुझाव देता है। उदाहरण के लिए के रूप में:

_("Please click {here} or {here}") 

और फिर अपने खुद के समारोह linkify कि दिए गए मापदंडों के साथ कर्ली कोष्ठक में चीजों को बदल देता लिखें। PHP में

linkify(
    _("Please click {here} or {here}"), 
    "</a>", 
    "<a href='www.example1.com'>", 
    "<a href='www.example2.com'>" 
) 

परिभाषा:

function linkify($string, $closingTag) { 
    $arguments = func_get_args(); 
    return preg_replace_callback(
     '/{(.*?)}/', // Ungreedy (*?) 
     function($matches) use ($arguments, $closingTag) { 
      static $i = 1; 
      $i++; 
      return $arguments[$i] . $matches[1] . $closingTag; 
     }, 
     $string 
    ); 
} 

पुनश्च: तुम भी आसानी से स्थानापन्न कर सकते हैं {} [], के रूप में मैंने देखा है कि poedit में इन कर्ली कोष्ठक अनुवादकों को चेतावनी देने के लिए और की सिफारिश के लिए उनका अनुवाद नहीं किया जाना चाहिए।

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