2011-12-14 11 views
17

का उपयोग कर मौजूदा .ts फ़ाइलों के साथ अनुवाद फ़ाइलों (.ts) को मर्ज करें यहां मेरी समस्या है: हमारे पास हमारे उत्पाद के लिए नौ अलग-अलग भाषाओं के लिए .ts फ़ाइलें हैं। हमने लगभग 100 नए तारों को जोड़ा है जिन्हें अनुवादित करने की आवश्यकता है, लेकिन कुछ हमारी अगली रिलीज के लिए हैं, और कुछ इसके बाद रिलीज के लिए हैं। हमने अनुवादकों के साथ तारों को याद करने या समय से पहले तारों का अनुवाद करने में समस्याएं निभाई हैं। हम उन्हें छोटी .ts फ़ाइल भेजने में सक्षम होना चाहते हैं जिसमें केवल स्ट्रिंग्स हैं जिन्हें हम अभी अनुवाद करना चाहते हैं, और उसके बाद उस .ts फ़ाइल को बड़ी .ts फ़ाइल में विलय करें जिसमें शेष अनुवाद शामिल है।QT Utilities (lconvert)

हमारे अनुवादकों को क्यूटी लिंगुइस्ट का उपयोग करने की आवश्यकता है (पहले हमने उन्हें तारकीय परिणामों से कम कच्चे एक्सएमएल को संपादित करने दिया)।

एक समाधान संदर्भों का उपयोग करना होगा, लेकिन हमारी देव टीम उस विचार पर बहुत उत्सुक नहीं है। एक और हाथ से .ts फ़ाइलों को मर्ज करना होगा, लेकिन यह & पेस्ट त्रुटियों के लिए एक नुस्खा जैसा प्रतीत होता है।

क्या lupdate & के साथ कोई विधि है जो प्रोजेक्ट फ़ाइल को माध्यमिक .ts फ़ाइलों को जोड़ने या विलय करने के लिए है? मैंने क्यूटी-लैंड w/o में फ़ोरम के माध्यम से जवाब ढूंढ लिया है, लेकिन लूपडेट में स्विच अन्य अनुवाद फ़ाइलों को इंगित करने में सक्षम होने के लिए प्रेरित हैं। विशेष रूप से समर्थक स्विच जो कहते हैं:

-pro <filename> 
     Name of a .pro file. Useful for files with .pro file syntax but 
     different file suffix. Projects are recursed into and merged. 

example1: हम एक जर्मन .ts फ़ाइल है, हम एक अलग जर्मन अनुवाद फ़ाइल से 20 तार जोड़ने के लिए ऐसी है कि प्राथमिक अनुवाद फ़ाइल 20 सहित सभी स्ट्रिंग्स शामिल चाहते हैं एक नए।

उदाहरण 2: हमारे पास जर्मन .ts फ़ाइल है, हम एक अलग जर्मन अनुवाद फ़ाइल से 20 स्ट्रिंग जोड़ना चाहते हैं, जैसे द्वितीयक अनुवाद फ़ाइल को लूपडेट के दौरान प्राथमिक के साथ विलय कर दिया जाएगा ताकि परिणामस्वरूप .qm फ़ाइल में सभी शामिल हों 20 नए लोगों सहित तार।

क्या किसी ने इनमें से कोई भी किया है (और या तो काम करेगा) और क्या आप मुझे कुछ अंतर्दृष्टि दे सकते हैं?

उत्तर

30

उत्तर लूपडेट का उपयोग नहीं करता है, यह lconvert नामक एक और उपयोगिता में निहित है। यह एक माध्यमिक फ़ाइल है कि केवल तार में आपकी रुचि है शामिल हैं (प्राथमिक फ़ाइल से उन्हीं तार और हटाएं) बनाने के लिए काफी आसान है, तो चलाएँ:

lconvert -i primary.ts secondary.ts -o complete.ts

इस से सभी स्ट्रिंग्स ले जाएगा दो इनपुट फाइलें और आउटपुट फ़ाइल में उन्हें एक साथ रख दें। इस विधि का उपयोग करके मैं मूल फ़ाइल के शून्य अंतर फ़ाइल (टाइम स्टाम्प के अलावा) बनाने में सक्षम था कि मैं दो प्राथमिक & माध्यमिक फ़ाइलों को विभाजित करता हूं।

इस प्रश्न को बहुत ध्यान नहीं मिला, लेकिन शायद किसी को भी यही समस्या होगी और इससे मदद मिलेगी।

2

इस टिप के लिए धन्यवाद। ऐसा लगता है कि मेरे मामले के लिए ठीक से काम करना प्रतीत होता है: मैंने अपनी परियोजना से अद्यतन और नए तार निकालने का प्रयास किया, जो वर्तमान में पुराने संस्करण/रिलीज़ में अनुवाद के तहत है जिसका मैंने पहले से ही स्ट्रिंग का अनुवाद नहीं किया है।

समस्या केवल अनुवादकों को नए/अपडेट किए गए तार भेजने के लिए थी।

मैंने लूपडेट का उपयोग करके नई स्ट्रिंग को जोड़कर स्थिति को हल करने में पुराने तारों को पारित किया है, पुराने स्ट्रिंग को हटाने के लिए एक्सपीएथ "/ टीएस/संदर्भ/संदेश [नहीं (अनुवाद/@ प्रकार)] के साथ ऑक्सीजन एक्सएमएल संपादक का उपयोग करके एक शोध करें, और इसे बेकार रिक्त स्थान और कैरिज रिटर्न से साफ करें।

मैंने अनुवादित तारों को मर्ज करने के लिए, अपने समाधान के साथ lconvert का उपयोग करके विलय करने का प्रयास किया: पुराना और नया। यह सही ढंग से lrelease पास और ठीक से प्रदर्शित होते हैं।

+2

खुशी है कि यह आपके लिए काम करता है। एसओ शिष्टाचार के बिंदु के रूप में, आम तौर पर, यदि कोई उत्तर आपके लिए काम करता है, तो आप उस उत्तर के ऊपरी तीर पर क्लिक करेंगे और वैकल्पिक रूप से एक उत्तर जोड़ने के बजाय यह स्पष्ट करने के लिए एक टिप्पणी जोड़ें कि यह आपके लिए कैसे काम करता है मूल उत्तर पर एक टिप्पणी रही है। हालांकि कोई चिंता नहीं है। – delliottg

-3

का उपयोग एकाधिक अनुवाद

एकाधिक अनुवाद फ़ाइलें एक आवेदन में स्थापित किया जा सकता है। अनुवादों को रिवर्स ऑर्डर में खोजा जाता है जिसमें वे स्थापित किए गए थे, इसलिए हाल ही में स्थापित अनुवाद फ़ाइल को पहले अनुवादों के लिए खोजा गया है और सबसे पुरानी अनुवाद फ़ाइल की खोज आखिरी है। एक मिलान स्ट्रिंग युक्त अनुवाद के रूप में खोज बंद हो जाती है।

यह तंत्र किसी विशिष्ट अनुवाद को "चयनित" या दूसरों पर प्राथमिकता देने के लिए संभव बनाता है; क्यूएप्लिकेशन :: removeTranslator() फ़ंक्शन को पास करके इसे एप्लिकेशन से अनुवादक को अनइंस्टॉल करें और QApplication :: installTranslator() के साथ इसे पुनर्स्थापित करें। यह स्ट्रिंग मिलान के लिए खोजा जाने वाला पहला अनुवाद होगा।

सबूत लिंक: QTranslator Class Reference

+1

यह प्रश्न को हल नहीं करता है - डाउनवॉटेड। – ndbd

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

  • कोई संबंधित समस्या नहीं^_^