mirror of https://github.com/mgba-emu/mgba.git
Qt: Properly ship Qt translations
This commit is contained in:
parent
2ff1deed60
commit
253719d7a1
1
CHANGES
1
CHANGES
|
@ -188,6 +188,7 @@ Misc:
|
|||
- Qt: Dismiss game crashing/failing dialogs when a new game loads
|
||||
- GBA Memory: Call crash callbacks regardless of if hard crash is enabled
|
||||
- SDL: Remove writing back obtained samples (fixes mgba.io/i/768)
|
||||
- Qt: Properly ship Qt translations
|
||||
|
||||
0.6 beta 1: (2017-06-29)
|
||||
- Initial beta for 0.6
|
||||
|
|
|
@ -228,8 +228,20 @@ if(Qt5LinguistTools_FOUND)
|
|||
else()
|
||||
qt5_add_translation(TRANSLATION_FILES ${TS_FILES})
|
||||
endif()
|
||||
set(QT_QM_FILES)
|
||||
if(QT_STATIC)
|
||||
get_target_property(QT_CORE_LOCATION Qt5::Core LOCATION)
|
||||
get_filename_component(QT_CORE_LOCATION ${QT_CORE_LOCATION} DIRECTORY)
|
||||
get_filename_component(QT_QM_LOCATION "${QT_CORE_LOCATION}/../translations" ABSOLUTE)
|
||||
foreach(TS ${TS_FILES})
|
||||
get_filename_component(TS ${TS} NAME)
|
||||
string(REGEX REPLACE "${BINARY_NAME}-(.*).ts$" "qtbase_\\1.qm" QT_QM "${TS}")
|
||||
list(APPEND QT_QM_FILES "${QT_QM_LOCATION}/${QT_QM}")
|
||||
endforeach()
|
||||
list(APPEND TRANSLATION_FILES ${QT_QM_FILES})
|
||||
endif()
|
||||
add_custom_command(OUTPUT ${TRANSLATION_QRC}
|
||||
COMMAND ${CMAKE_COMMAND} -DTRANSLATION_QRC:FILEPATH="${TRANSLATION_QRC}" -DQM_BASE="${CMAKE_CURRENT_BINARY_DIR}" -P "${CMAKE_CURRENT_SOURCE_DIR}/ts.cmake"
|
||||
COMMAND ${CMAKE_COMMAND} -DTRANSLATION_QRC:FILEPATH="${TRANSLATION_QRC}" -DQM_BASE="${CMAKE_CURRENT_BINARY_DIR}" "-DTRANSLATION_FILES='${TRANSLATION_FILES}'" -P "${CMAKE_CURRENT_SOURCE_DIR}/ts.cmake"
|
||||
DEPENDS ${TRANSLATION_FILES})
|
||||
qt5_add_resources(TRANSLATION_RESOURCES ${TRANSLATION_QRC})
|
||||
list(APPEND RESOURCES ${TRANSLATION_RESOURCES})
|
||||
|
@ -263,7 +275,6 @@ if(APPLE OR WIN32)
|
|||
set_target_properties(${BINARY_NAME}-qt PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
|
||||
endif()
|
||||
if(APPLE)
|
||||
message(STATUS ${CMAKE_SYSTEM_NAME})
|
||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
|
||||
get_target_property(QTCOCOA Qt5::QCocoaIntegrationPlugin LOCATION)
|
||||
get_target_property(COREAUDIO Qt5::CoreAudioPlugin LOCATION)
|
||||
|
|
|
@ -169,7 +169,7 @@ SettingsView::SettingsView(ConfigController* controller, InputController* inputC
|
|||
m_ui.languages->setItemData(0, QLocale("en"));
|
||||
QDir ts(":/translations/");
|
||||
for (auto name : ts.entryList()) {
|
||||
if (!name.endsWith(".qm")) {
|
||||
if (!name.endsWith(".qm") || !name.startsWith(binaryName)) {
|
||||
continue;
|
||||
}
|
||||
QLocale locale(name.remove(QString("%0-").arg(binaryName)).remove(".qm"));
|
||||
|
|
|
@ -58,6 +58,12 @@ int main(int argc, char* argv[]) {
|
|||
qtTranslator.load(locale, "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
||||
application.installTranslator(&qtTranslator);
|
||||
|
||||
#ifdef QT_STATIC
|
||||
QTranslator qtStaticTranslator;
|
||||
qtStaticTranslator.load(locale, "qtbase", "_", ":/translations/");
|
||||
application.installTranslator(&qtStaticTranslator);
|
||||
#endif
|
||||
|
||||
QTranslator langTranslator;
|
||||
langTranslator.load(locale, binaryName, "-", ":/translations/");
|
||||
application.installTranslator(&langTranslator);
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
file(GLOB TRANSLATION_FILES "${QM_BASE}/*.qm")
|
||||
file(WRITE ${TRANSLATION_QRC} "<RCC>\n\t<qresource prefix=\"/translations/\">\n")
|
||||
foreach(TS ${TRANSLATION_FILES})
|
||||
get_filename_component(TS_BASE "${TS}" NAME)
|
||||
file(APPEND ${TRANSLATION_QRC} "\t\t<file>${TS_BASE}</file>\n")
|
||||
file(APPEND ${TRANSLATION_QRC} "\t\t<file alias=\"${TS_BASE}\">${TS}</file>\n")
|
||||
endforeach()
|
||||
file(APPEND ${TRANSLATION_QRC} "\t</qresource>\n</RCC>")
|
||||
|
|
Loading…
Reference in New Issue