Sto avendo questo CMakeLists.txt
nella directory con i file di traduzione (*.ts
):internazionalizzazione Qt e CMake: come aggiornare ts * e non perdono li
SET(TRANSLATIONS
lang_de.ts
lang_en.ts
)
FIND_PACKAGE(Qt5LinguistTools)
QT5_ADD_TRANSLATION(QM_FILES ${TRANSLATIONS})
SET(QM_FILES ${QM_FILES} PARENT_SCOPE)
ADD_CUSTOM_TARGET (translations ALL DEPENDS ${QM_FILES})
costruisce *.qm
file da specificato *.ts
.
Ma voglio migliorare questo e ottenere due target personalizzati, che non verranno creati automaticamente. Uno per aggiungere nuove stringhe da fonti nei file ts
e uno per l'aggiornamento ts
. L'ultimo dovrebbe aggiornare ts
da fonti e rimuovere le stringhe obsolete da ts
.
ho cercato di aggiungere questo dopo le linee di cui sopra:
ADD_CUSTOM_TARGET (
ts_append
COMMAND QT5_CREATE_TRANSLATION(QM_FILES ${CMAKE_SOURCE_DIR}/src/app ${TRANSLATIONS} OPTIONS -I ${CMAKE_SOURCE_DIR}/src)
)
ADD_CUSTOM_TARGET (
ts_refresh
COMMAND QT5_CREATE_TRANSLATION(QM_FILES ${CMAKE_SOURCE_DIR}/src/app ${TRANSLATIONS} OPTIONS -no-obsolete -I ${CMAKE_SOURCE_DIR}/src)
)
ma sembra non posso usare QT5_CREATE_TRANSLATION
macro all'interno di destinazione personalizzato, non è vero?
Forse sono sulla strada sbagliata, come è possibile risolvere questo problema: un facile aggiornamento del ts
e non perderle dopo make clean
?
SET_DIRECTORY_PROPERTIES (PROPERTIES CLEAN_NO_CUSTOM TRUE) con una sottodirectory non funziona per me (utilizzando CMake 3.2.1): il link che hai postato non è disponibile, quindi forse puoi elaborare come hai fatto questo lavoro. Se si specifica SET_DIRECTORY_PROPERTIES (PROPERTIES CLEAN_NO_CUSTOM TRUE) nel file di livello superiore funziona comunque. Voglio avere tutti gli altri file generati cancellati, quindi questa è una soluzione per me. –
Il file è stato spostato, l'ho messo in un gist invece e aggiornato il link. – Jan
Grazie per la risposta @ Jan! Ho dovuto ritardare il lavoro su questo progetto e non ho un ambiente di sviluppo configurato per verificare il tuo suggerimento adesso. Segnalo come accettato non appena posso provare questo – Storm