मेरे पास एक क्यूटी 4 सीएमके प्रोजेक्ट है और मैं आउटपुट बाइनरी में i18n के लिए क्यूएम फ़ाइलों को एकीकृत करना चाहता हूं। ये नियम मैं अब तक टीएस और QM फ़ाइलें पैदा करने के लिए कर रहे हैं:cmake और QRC का उपयोग कर बाइनरी में Qt4 qm फ़ाइलों को एकीकृत करने के लिए कैसे?
set(myapp_TRANSLATIONS
i18n/myapp_de.ts
)
set(FILES_TO_TRANSLATE
${myapp_SRCS}
${myapp_MOC_HDRS}
)
QT4_CREATE_TRANSLATION(QM_FILES ${FILES_TO_TRANSLATE} ${myapp_TRANSLATIONS})
QT4_ADD_TRANSLATION(QM ${myapp_TRANSLATIONS})
मैं निष्पादन करने के लिए QM फ़ाइलें जोड़ने के लिए निम्नलिखित की कोशिश की:
add_executable(myapp ${myapp_SRCS} ${myapp_MOC_SRCS} ${myapp_RCC_SRCS} ${QM})
यह मुख्य रूप से प्रारंभ है। सीपीपी:
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
QTranslator appTranslator;
appTranslator.load("myapp_" + QLocale::system().name());
app.installTranslator(&appTranslator);
हालांकि, strings mypp
पता चलता है कि अनुवाद के द्विआधारी में नहीं जा रहे हैं।
अद्यतन:
QT4_ADD_RESOURCES(myapp_QM_RCC_SRCS i18n/translations.qrc)
का उपयोग कर और निष्पादन योग्य निर्भरता को myapp_QM_RCC_SRCS
जोड़ने
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/resources">
<file>myapp_de.qm</file>
<file> ... .qm</file>
</qresource>
</RCC>
और: मैं एक i18n/translations.qrc
करने के लिए प्रत्येक QM फ़ाइल जोड़ा।
लेकिन यह निर्माण समय के दौरान विफल रहता है इस तथ्य के कारण धन्यवाद कि सीएमके एक छाया निर्माण (स्रोत डीआईआर के बाहर निर्माण) करता है लेकिन क्यूआरसी फाइलों के सापेक्ष संदर्भित फाइलों की अपेक्षा निर्भरता के लिए क्यूआरसी फाइलों को पार करता है (अच्छी सुविधा लेकिन कोई मेक नहीं है नियम है कि उस स्थान पर क्यूएम फ़ाइल कैसे बनाएं)। क्यूएम फाइलें ${CMAKE_CURRENT_BINARY_DIR}
(जहां वे छाया निर्माण का उपयोग कर रहे हैं) में हैं, लेकिन ${CMAKE_CURRENT_SOURCE_DIR}
(जहां गैर-जेनरेट की गई फाइलें होनी चाहिए) - इसलिए स्थिति के आधार पर दोनों स्थान सही होंगे)।
वादा करता है, मैं कोशिश करूँगा। +1 – hurikhan77
मैंने सीखने के लिए चरण-दर-चरण से अपना विचार बनाया है कि आपने यह कैसे किया है। अच्छी तरह से काम। – hurikhan77
ठोस! एक आकर्षण की तरह काम किया – Claudiu