Skip to content
Snippets Groups Projects
Commit 6298932c authored by Kateryna Kostiuk's avatar Kateryna Kostiuk Committed by Kateryna Kostiuk
Browse files

translations: fix on macOS

- fix translations path
- generate .lproj folders for supported languages to be recognized by
QLocale. https://bugreports.qt.io/browse/QTBUG-72491

Gitlab: #578
Change-Id: Ic4c3b74c654a1c00de71c31c9debe397990870f7
parent 3821b78b
No related branches found
No related tags found
No related merge requests found
...@@ -635,24 +635,27 @@ else() ...@@ -635,24 +635,27 @@ else()
# translations # translations
if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND) if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND)
message("Releasing and copying translation files") set(LRC ${PROJECT_SOURCE_DIR}/../lrc)
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/") set(APP_CONTAINER "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app/Contents")
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/share/libringclient/translations/")
file(GLOB TS_CLIENT_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts) file(GLOB TS_CLIENT_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts)
file(GLOB TS_LRC_FILES ${LRC}/translations/*.ts) file(GLOB TS_LRC_FILES ${LRC}/translations/*.ts)
# generate lproj folders
FOREACH(QM_FILE ${TS_LRC_FILES})
# Extract language code from filename
GET_FILENAME_COMPONENT(FILENAME ${QM_FILE} NAME_WE)
STRING(REGEX REPLACE "^lrc_" "" LANG ${FILENAME})
file(MAKE_DIRECTORY ${APP_CONTAINER}/Resources/${LANG}.lproj)
ENDFOREACH()
set_source_files_properties(${TS_CLIENT_FILES} PROPERTIES OUTPUT_LOCATION set_source_files_properties(${TS_CLIENT_FILES} PROPERTIES OUTPUT_LOCATION
"${CMAKE_BINARY_DIR}/share/ring/translations") "${APP_CONTAINER}/Resources/share/ring/translations")
set_source_files_properties(${TS_LRC_FILES} PROPERTIES OUTPUT_LOCATION set_source_files_properties(${TS_LRC_FILES} PROPERTIES OUTPUT_LOCATION
"${CMAKE_BINARY_DIR}/share/libringclient/translations") "${APP_CONTAINER}/Resources/share/libringclient/translations")
qt_add_translation(QM_CLIENT_FILES ${TS_CLIENT_FILES}) qt_add_translation(QM_CLIENT_FILES ${TS_CLIENT_FILES})
qt_add_translation(QM_LRC_FILES ${TS_LRC_FILES}) qt_add_translation(QM_LRC_FILES ${TS_LRC_FILES})
target_sources(${PROJECT_NAME} PRIVATE ${QM_CLIENT_FILES}) target_sources(${PROJECT_NAME} PRIVATE ${QM_CLIENT_FILES})
target_sources(${PROJECT_NAME} PRIVATE ${QM_LRC_FILES}) target_sources(${PROJECT_NAME} PRIVATE ${QM_LRC_FILES})
install(DIRECTORY "${CMAKE_BINARY_DIR}/share/ring/translations/"
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/ring/translations)
install(DIRECTORY "${CMAKE_BINARY_DIR}/share/libringclient/translations/"
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/libringclient/translations)
endif() endif()
set_target_properties(${PROJECT_NAME} PROPERTIES set_target_properties(${PROJECT_NAME} PROPERTIES
MACOSX_BUNDLE TRUE MACOSX_BUNDLE TRUE
......
...@@ -62,6 +62,10 @@ AppSettingsManager::loadTranslations() ...@@ -62,6 +62,10 @@ AppSettingsManager::loadTranslations()
{ {
#if defined(Q_OS_LINUX) && defined(JAMI_INSTALL_PREFIX) #if defined(Q_OS_LINUX) && defined(JAMI_INSTALL_PREFIX)
QString appDir = JAMI_INSTALL_PREFIX; QString appDir = JAMI_INSTALL_PREFIX;
#elif defined(Q_OS_MACOS)
QDir dir(qApp->applicationDirPath());
dir.cdUp();
QString appDir = dir.absolutePath() + "/Resources/share";
#else #else
QString appDir = qApp->applicationDirPath() + QDir::separator() + "share"; QString appDir = qApp->applicationDirPath() + QDir::separator() + "share";
#endif #endif
...@@ -125,4 +129,4 @@ AppSettingsManager::loadTranslations() ...@@ -125,4 +129,4 @@ AppSettingsManager::loadTranslations()
} }
Q_EMIT retranslate(); Q_EMIT retranslate();
} }
\ No newline at end of file
...@@ -425,6 +425,10 @@ UtilsAdapter::supportedLang() ...@@ -425,6 +425,10 @@ UtilsAdapter::supportedLang()
{ {
#if defined(Q_OS_LINUX) && defined(JAMI_INSTALL_PREFIX) #if defined(Q_OS_LINUX) && defined(JAMI_INSTALL_PREFIX)
QString appDir = JAMI_INSTALL_PREFIX; QString appDir = JAMI_INSTALL_PREFIX;
#elif defined(Q_OS_MACOS)
QDir dir(qApp->applicationDirPath());
dir.cdUp();
QString appDir = dir.absolutePath() + "/Resources/share";
#else #else
QString appDir = qApp->applicationDirPath() + QDir::separator() + "share"; QString appDir = qApp->applicationDirPath() + QDir::separator() + "share";
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment