QML फ़ाइलों को अनुवाद योग्य बनाने के लिए गेटटेक्स्ट का उपयोग कैसे करें


10

मैं अजगर ( PySide ) और QML पर आधारित एक QtQuick ऐप लिखना चाहता हूं

मुझे पता है कि क्यूटी ऐप्स को अपनी खुद की ट्रांसलेशन तकनीक मिल गई है, लेकिन मैं इस एक के लिए मिलना चाहूंगा । अगर यह संभव हो तो मैं जानना चाहता हूं:

  • QML फ़ाइलों में अनुवाद के लिए मार्क स्ट्रिंग्स एक तरह से गेटटेक्स्ट टूल्स में उन्हें एक .potफ़ाइल में निकाल सकते हैं
  • रनटाइम में QML फ़ाइलों का अनुवाद करें।

मुझे पता है कि यह एकता 2D कोड में , C ++ में किया गया है, इसलिए मैं सोच रहा हूं कि यह पायथन के साथ कैसे किया जा सकता है।

नोट: मैं रनटाइम के दौरान विशेष रूप से गेटटेक्स्ट का उपयोग करने के बारे में बात कर रहा हूं, गेटटेक्स्ट और क्यूटी लिंग्विस्ट प्रारूपों के बीच कनवर्ट करने के बारे में नहीं।

जवाबों:


6

आमतौर पर क्यूटी में गेटटेक्स्ट ट्रांसलेशन का उपयोग करने का कोई तरीका नहीं है क्योंकि लाइब्रेरी एक आंतरिक ट्रांसलेशन मेकेनिज्म (Qtranslate और .ts फाइल) का उपयोग करता है जैसा कि यहां क्यूटीबग -2404 में बताया गया है ।

हालांकि, एक व्यवहार्य विकल्प है।

क्यूटी के साथ शिपिंग में एक टूलकिट कहा जाता है जिसे lconvert कहा जाता है। इसका उपयोग .ts फाइल को .po और इसके विपरीत में कनवर्ट करने के लिए किया जा सकता है।

तो आप अपने अनुवाद को सभी के साथ निकाल सकते हैं:

lupdate

फिर पो फाइल प्राप्त करने के लिए lconvert का उपयोग करें :

lconvert -of po -o file.po file.ts

अनुवाद के बाद आप पीओ फाइल को ts में बदल सकते हैं:

lconvert -of ts -o file.ts file.po

फिर आप इसे अपने सॉफ्टवेयर में उपयोग कर सकते हैं।

lupdate दोनों को qt QtQuick के लिए इस्तेमाल किया जा सकता है।


1
जवाब के लिए धन्यवाद!। मुझे रूपांतरण टूल के बारे में पता है, लेकिन वे रनटाइम पर अनुवाद लोड नहीं करेंगे। मुझे पता है कि क्यूटी अनुवाद कॉल को ओवरराइड करके तकनीकी रूप से संभव है, जैसा कि एकता 2 डी लोग सी ++ में करते हैं, मैं बस यह पता लगाने की कोशिश कर रहा हूं कि पायथन में यह कैसे करना है।
डेविड प्लेनेला

0

आप lupdate के स्रोत को हैक कर सकते हैं, जिसे आप qsTr स्थानापन्न करना चाहते हैं। (आसानी से) और फिर आप का उपयोग किया है lupdate + lconvert + आप उपयोग gettxt उद्देश्य को प्राप्त करने के लिए libintl हिरासत।


1
कृपया बताएं।
काज वोल्फ

qdeclarative.cpp को खोलें (lupdte स्रोत कोड में) "qsTr" को इसे अपनी इच्छित चीज़ के साथ प्रतिस्थापित करें, मान लें कि "dsTr" का उपयोग करें। फिर qs में dsTr ("you string") का उपयोग करें। ts फ़ाइल उत्पन्न करने के लिए modifed ल्यूपडेट का उपयोग करने के बाद lconvert एक पॉट फ़ाइल का उपयोग करें। अंतिम आपको वैश्विक संदर्भ में dsTr को लागू करने और निर्यात करने की आवश्यकता है
snyh

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