7

मेरे पास एक फ्रीवेयर वैज्ञानिक ऐप है जिसका उपयोग लगभग 100 देशों में हजारों लोगों द्वारा किया जाता है। कई ने मुफ्त में अनुवाद करने की पेशकश की है। अब डी 2009 यह आसान बनाता है (एकीकृत और बाहरी स्थानीयकरण उपकरण, साथ ही देशी यूनिकोड समर्थन के साथ) मैं इसे कुछ भाषाओं के लिए करना चाहता हूं और उपयोगकर्ता ऊर्जा का समर्थन करने के लिए लगातार जोड़ना चाहता हूं।स्वयंसेवक अनुवादकों द्वारा डेल्फी 200 ऐप के स्थानीयकरण की प्रक्रिया?

मुझे लगता है कि मैं स्ट्रिंगशीट (दर्जनों लेकिन सैकड़ों नहीं) का अनुवाद करने के लिए एक स्प्रेडशीट वितरित करूंगा, उन्हें वापस कर दूंगा, और 2-3 उपयोगकर्ताओं से उसी भाषा में सबमिशन की तुलना करें, फिर काम करें सर्वसम्मति से विसंगतियों को हल करें। फिर मैं एकीकृत अनुवाद पर्यावरण का उपयोग करके स्थानीयकरण को शामिल कर दूंगा, और स्थानीयकृत अद्यतन वितरित करूंगा।

क्या किसी ने उपयोगकर्ताओं को अनुवाद सौंप दिया है? कोई गॉथ, डी 200 9-विशिष्ट या अन्यथा?

संपादित करें: क्या किसी ने डी 2009 बनाम dxgettext में बनाए गए स्थानीयकरण समर्थन की तुलना की है?

उत्तर

6

मैं कभी फ्रीवेयर या ओपन सोर्स अनुप्रयोगों के लिए स्वामित्व स्थानीयकरण उपकरण का मित्र नहीं रहा हूं। dxgettext का उपयोग करना, GNU gettext की डेल्फी बंदरगाह मेरे लिए एक बेहतर विकल्प की तरह दिखता है:

कार्यक्रम (यहां तक ​​कि बहुत बाद में की तुलना में इसके विकास) में
  • एकता आसान है।
  • अनुवाद योग्य तारों का निष्कर्षण कमांड लाइन प्रोग्राम द्वारा किया जा सकता है और इसलिए इसे आसानी से स्वचालित निर्माण में पेश किया जाता है।
  • सही संरचना के साथ एक नई निर्देशिका बनाकर, इसमें खाली अनुवाद फ़ाइल की प्रतिलिपि बनाकर, और तारों का अनुवाद करना शुरू करके एक नया अनुवाद जोड़ा जा सकता है। यह कुछ ऐसा है जो प्रत्येक उपयोगकर्ता स्वयं के लिए कर सकता है, नए अनुवाद के निर्माण के लिए मूल लेखक को शामिल करने की आवश्यकता नहीं है। इस प्रक्रिया के साथ तत्काल संतुष्टि भी मिलती है - एक बार प्रोग्राम को पुनरारंभ करने के बाद नए अनुवाद तुरंत दिखाए जाते हैं।
  • एक मौजूदा अनुवाद बदलना एक नया निर्माण करने से भी आसान है। इस प्रकार यदि किसी उपयोगकर्ता को वर्तनी या अन्य त्रुटियों या अनुवाद में सुधार के लिए आवश्यकताएं मिलती हैं तो वे उन्हें आसानी से सही कर सकते हैं और लेखक को परिवर्तन भेज सकते हैं।
  • नए प्रोग्राम संस्करण पुराने अनुवादों के साथ काम करते हैं, सिस्टम बहुत गहराई से घटता है - नए और अप्रतिबंधित तारों को आसानी से असम्बद्ध दिखाया जाता है।
  • अनुवाद केवल नोटपैड का उपयोग करके किया जा सकता है, लेकिन अनुवाद फ़ाइलों को बनाने और प्रबंधित करने के लिए कई निःशुल्क टूल भी हैं; dxgettext पेज पर लिंक देखें। वे स्वयं को स्थानांतरित कर रहे हैं, और स्प्रेडशीट पर कुछ फायदे हैं:
    • स्रोत कोड में तारों का स्थान दिखाया जा सकता है (निश्चित रूप से केवल ओपन सोर्स ऐप्स के लिए समझ में आता है)।
    • अनुवादित तारों का प्रतिशत दिखाया गया है।
    • पहले से अनुवादित तारों में संशोधन भी हाइलाइट किए गए हैं।
  • पूरी व्यवस्था परिपक्व और भविष्य प्रूफ है - मैं डेल्फी 4 कार्यक्रमों के लिए dxgettext का इस्तेमाल किया है, और कोई डेल्फी 2009 भी के लिए आवश्यक परिवर्तन होना चाहिए - अनुवाद फ़ाइलें हमेशा किया गया है UTF-8 एन्कोडेड।

अनुवाद के लिए स्प्रेडशीट का उपयोग करना आपके पास कुछ भाषाओं से अधिक होने के बाद मेरे लिए एक व्यावहारिक समाधान प्रतीत नहीं होता है। मान लीजिए कि एक नया प्रोग्राम संस्करण 2 नए स्ट्रिंग्स जोड़ता है और केवल 10 स्ट्रिंग्स को थोड़ा बदलता है - क्या आपको नई स्ट्रिंग्स को जोड़ने और सभी दर्जन स्प्रेडशीट फ़ाइलों में बदले हुए तारों को हाइलाइट करने की आवश्यकता नहीं होगी और उन्हें अपने अनुवादकों को फिर से भेजना होगा? Dxgettext का उपयोग करके आप उन सभी को बदली गई पीओ फ़ाइल को मेल करें।

संपादित करें:

समस्याओं के बारे में एक दिलचस्प टिप्पणी वहाँ dxgettext और पुस्तकालयों के साथ हो सकता है नहीं है। मैंने कभी इसका अनुभव नहीं किया, क्योंकि मैंने संसाधन स्ट्रिंग का पूरी तरह से उपयोग करना बंद कर दिया है। हमारे कार्यक्रमों का सबसे बड़ा हिस्सा जर्मन में है, और केवल कुछ अंग्रेजी में हैं या कई भाषाओं में अनुवादित हैं।

हमारी आंतरिक पुस्तकालयों "_ (...)" के आसपास के सभी अनुवाद तार का उपयोग करें। ENGLISH और USEGETTEXT परिभाषित करता है जो प्रति-परियोजना आधार पर सेट होते हैं। यदि ENGLISH या USEGETTEXT परिभाषित किया गया है, तो अंग्रेजी ग्रंथों को डीसीयू में संकलित किया जाता है, अन्यथा जर्मन पाठ डीसीयू में संकलित किया जाता है। यदि USEGETTEXT परिभाषित नहीं किया गया है "_()" एक फ़ंक्शन के रूप में संकलित किया गया है जो इसके पैरामीटर को देता है, अन्यथा dxgettext अनुवाद लुकअप का उपयोग किया जाता है।

+0

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

+0

मुझे dxgettext पृष्ठ पर "पूर्ण यूनिकोड समर्थन" दिखाई देता है, जो कि मेरे प्रश्न के लिए "हाँ" जैसा दिखता है। – Argalatyr

+3

मैं dxgettext के पक्ष में भी हूं। लेकिन कुछ गठिया हैं जो आपको शायद तब मिलेगी जब आपकी परियोजना अच्छी तरह से उन्नत हो: आमतौर पर, अनुवाद वैश्विक हैं, जिसका अर्थ यह है कि कभी-कभी एक अनुवाद जो कार्यक्रम के एक स्थान पर एक वाक्यांश फिट बैठता है, शायद इसे किसी अन्य स्थान पर फिट नहीं कर सकता है। पुस्तकालयों के लिए समर्थन भी स्पष्ट नहीं है: मैंने प्रत्येक लाइब्रेरी के लिए "डोमेन" का उपयोग करना शुरू कर दिया है, लेकिन इसका मतलब है कि मैं संसाधन स्ट्रिंग का उपयोग नहीं कर सकता क्योंकि तब मुझे वैश्विक स्तर पर डोमेन पंजीकृत करना होगा। लेकिन कुल मिलाकर मुझे वास्तव में dxgettext पसंद है। – dummzeuch

4

मेरे पास ... कुछ चुनौतियां हो सकती हैं।

  • एक स्ट्रिंग का अर्थ बहुत ज्यादा नहीं है, इसे संदर्भ की आवश्यकता है।
  • अनुवांशिक, एक ही स्ट्रिंग को एक से अधिक अनुवाद होने की आवश्यकता हो सकती है।
  • स्क्रीन अचल संपत्ति: भाषा के आधार पर अलग-अलग लंबाई से सावधान रहें, उदाहरण के लिए, फ्रेंच अंग्रेजी से अधिक वर्बोज़ बनता है।
  • जब तक आप किसी दिए गए भाषा में कुशल नहीं होते हैं, तो आप विसंगतियों का मूल्यांकन नहीं कर पाएंगे।
+1

धन्यवाद - ये सहायक हैं। चूंकि अधिकांश तारों में उनके साथ जुड़े स्पष्टीकरण संकेत टेक्स्ट होते हैं, और उनको भी अनुवादित करने की आवश्यकता होती है, मैं उन्हें स्प्रेडशीट के जोड़े गए कॉलम में उपलब्ध कराने की सोच रहा था। Une pierre, deux coups, n'est-ce pas? – Argalatyr

2

मैं अंत उपयोगकर्ताओं का अनुवाद करने में सक्षम बनाने के लिए TsiLang Translation Suite का उपयोग किया है। मैंने कोड को एन्क्रिप्शन की अनुमति देने के लिए संशोधित किया ताकि अगर कोई वास्तव में अच्छी नौकरी करता है तो वे अनुवाद फ़ाइल के खिलाफ अपने नाम की रक्षा कर सकते हैं, लेकिन आम तौर पर विचार यह है कि लोग अपने अनुवाद साझा कर सकते हैं और किसी भी छोटे हिस्से को जोड़/संपादित कर सकते हैं। यह देखते हुए कि यह ऐप के भीतर होता है, और तत्काल दृश्यता के साथ, यह वास्तव में अच्छी तरह से काम करता है।

2

जैसा कि आपने उल्लेख किया है, डी 200 9 स्थानीयकरण टूल के साथ आता है। उनका उपयोग क्यों नहीं कर रहे हैं? AFAIK आप बाहरी अनुवाद प्रबंधक (etm.exe) वितरित कर सकते हैं। क्या आपको और कुछ चाहिए?

इसके अलावा, स्थानीयकरण केवल पाठ का अनुवाद करने से कहीं अधिक है। ईटीएम .dfm संसाधनों के अनुवाद का भी समर्थन करता है।

+0

मुझे यह देखना अच्छा लगेगा कि दूसरों के बारे में क्या सोचते हैं। मैं डी 2009 उपकरण से मोहक हूं। Dxgettext के बारे में कुछ उत्कृष्ट बिंदु हैं, लेकिन उन लोगों से सुनना उपयोगी होगा जिन्होंने दोनों की कोशिश की है। – Argalatyr

+0

@Argalatyr: मैंने ईटीएम की कोशिश की है, और आईएमएचओ यह बस भयानक है। मैं अनुवाद प्रयोजनों के लिए इसे गैर-प्रोग्रामर को कभी नहीं दूंगा, अनुवाद करने योग्य तार सभी (गैर-स्ट्रिंग भी) गुणों से बाहर निकलते हैं जो यह दिखाता है। क्या होगा यदि कुछ सुप्रसिद्ध व्यक्ति alClient से alKlient का अनुवाद करता है? यूआई अनुवाद उद्देश्यों के लिए भी बुरा है, यह पाठ संपादन की तुलना में परियोजना के प्रबंधन की दिशा में बहुत अधिक तैयार है। सबकुछ ठीक नहीं है क्योंकि यह डेल्फी बॉक्स में आता है। – mghie

+0

@TOndrej: अनुवाद के उद्देश्य के लिए सभी डीएफएम समायोजित करना केवल जरूरी है क्योंकि वीसीएल में बदलती पाठ चौड़ाई के अनुसार गतिशील नियंत्रण लेआउट का कोई उचित तरीका नहीं है। यह डेवलपर/अनुवादक पर बोझ डालता है, जब कोड इसे स्वयं संभालने में सक्षम होना चाहिए। – mghie

1

पूर्णता के लिए, यहाँ एक और डेल्फी स्थानीयकरण मैं हाल ही में पाया गया है कि अच्छी तरह से डिजाइन और पॉलिश किए जाने की लग रहा है Delphi Localizer कहा जाता है उपकरण है। यह टूल सरकारी परियोजनाओं के अपवाद के साथ व्यावसायिक उपयोग के लिए स्वतंत्र है (बिल्कुल अपवाद क्यों नहीं है)।

FWIW मैं है अतीत में TsiLang अनुवाद सुइट का उपयोग करता है और वर्तमान में स्थानीयकरण उपकरण DevExpress VCL के साथ भेज दिया का उपयोग कर एक और परियोजना पर काम कर रहा हूँ। बाद में अपने घटकों के साथ-साथ तीसरे पक्ष के घटकों के साथ अच्छी तरह से एकीकृत करता है।

+0

डेल्फी 200 9 के लिए संगत नहीं है, शर्म की बात है, dxGetText का उपयोग करने के लिए अच्छा और आसान लग रहा है – none