गेटटेक्स्ट के साथ लंबे समय तक ग्रंथों (दृश्य और ईमेल टेम्पलेट) का अनुवाद करना


9

मैं एक बहुभाषी PHP वेब एप्लिकेशन विकसित कर रहा हूं, और मुझे लंबे (-ish) टेक्स्ट मिले हैं, जो मुझे गेटटेक्स्ट के साथ अनुवाद करने की आवश्यकता है। ये ईमेल टेम्प्लेट हैं (आमतौर पर कम, लेकिन फिर भी कई पंक्तियाँ) और व्यू टेम्प्लेट के हिस्से (पाठ के लंबे वर्णनात्मक ब्लॉक)। इन ग्रंथों में कुछ सरल HTML शामिल होंगे (जोर देने के लिए बोल्ड / इटैलिक जैसी चीजें, शायद यहां या वहां एक लिंक)। टेम्प्लेट PHP स्क्रिप्ट होते हैं जिनका आउटपुट कैप्चर किया जाता है।

समस्या यह है कि लंबे समय तक ग्रंथों को संभालने के लिए गेटटेक्स्ट बहुत अनाड़ी लगता है। लंबे ग्रंथों में आम तौर पर छोटे पाठों की तुलना में समय के साथ अधिक परिवर्तन होते हैं - मैं या तो बदल सकता हूं ") और सभी अनुवादों में इसे अपडेट करना सुनिश्चित करें (जब बहुत लंबा हो तो बहुत काम हो सकता है और बहुत त्रुटि-प्रवण हो सकता है), या मैं रख सकता हूं msgstr "अपरिवर्तित और केवल अनुवादों को संशोधित करना (जो टेम्प्लेट में पुराने पाठों को भ्रामक बना देगा)। इसके अलावा, मैंने गेटटेक्स्ट स्ट्रिंग्स में HTML सहित सलाह के बारे में देखा है, लेकिन इसे टालने से बहुत सारे पाठों में एक ही प्राकृतिक टुकड़ा टूट जाएगा, जो अनुवाद करने और फिर से इकट्ठा करने के लिए एक बड़ा दुःस्वप्न होगा, और मैंने इसके खिलाफ सलाह भी देखी है अलग संदेशवाहक में गेटटेक्स्ट तार के अनावश्यक विभाजन।

अन्य दृष्टिकोण जो मैं देख रहा हूं वह इन लंबे ग्रंथों के लिए गेटटेक्स्ट को पूरी तरह से अनदेखा करना है, और प्रत्येक लोकेल के लिए बाहरी सबटैम्पलेट में उन ब्लॉकों को अलग करना है, और बस वर्तमान लोकेल के लिए एक को शामिल करना है। नुकसान यह है कि मैं gettext .po फ़ाइलों और पूरी तरह से अलग स्थान पर स्थित अलग टेम्प्लेट के बीच अनुवाद के प्रयास को अलग कर रहा हूं।

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


जवाबों:


3

मैं बहुत समय पहले इसी तरह की समस्या से जूझ रहा था (देखें /programming/8288050/can-i-automatically-update-msgids-in-gettexts-po-files-for-rivialial-text-change )।

असल में, दो विकल्प हैं:

  1. इसे वैसे ही करें जैसे कि गेटटेक्स्ट का उपयोग किया जाना है: मूल पाठों का उपयोग करें जैसे कि, HTML और सभी। तब मूल पाठ में हर परिवर्तन सभी अनुवादों को अमान्य कर देगा। msgmergeहालाँकि, फ़ज़ी मैचिंग इच्छा, आमतौर पर अभी भी पुराने अनुवाद के लिए सही मूल पाठ से मेल खाती है, इसलिए आमतौर पर पुराने अनुवाद अनुवादक के लिए उपलब्ध होंगे।
  2. मूल पाठ का उपयोग करने के रूप में। Msgstr "कुछ सिंथेटिक पहचानकर्ता (जैसे EMAIL_TEMPLATE_NEWSLETTER_START) का उपयोग करें। इस तरह, आईडी कभी नहीं बदलते हैं। मूल (शायद अंग्रेजी) ग्रंथ तो बस एक और अनुवाद हो जाएगा। मुख्य नुकसान: 1) आपको अलग से ट्रैक करना चाहिए जो अनुवाद अद्यतित हैं; 2) कुछ गेटटेक्स्ट टूल इस अच्छी तरह से संभाल नहीं सकते हैं (अनुवादकों को विशेष उपकरण की आवश्यकता हो सकती है)।

1

को बदल दें। और सुनिश्चित करें कि सभी अनुवादों में इसे अपडेट किया जा सकता है (जब काम बहुत हो सकता है और बहुत त्रुटि हो जाती है)

यह एक ऐसी चीज है जिसे आप आसानी से स्वचालित कर सकते हैं, इस प्रकार यह कम त्रुटि वाला है और कम काम भी करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.