1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

refactor: move translations to their own module

This commit is contained in:
sudden6 2020-05-21 00:28:16 +02:00
parent 0335f20362
commit f37813ff88
No known key found for this signature in database
GPG Key ID: 279509B499E032B9
4 changed files with 89 additions and 68 deletions

View File

@ -169,54 +169,8 @@ qt5_wrap_ui(${PROJECT_NAME}_FORMS
src/widget/form/settings/privacysettings.ui
src/widget/form/settings/userinterfacesettings.ui)
qt5_add_translation(${PROJECT_NAME}_QM_FILES
translations/ar.ts
translations/be.ts
translations/bg.ts
translations/cs.ts
translations/da.ts
translations/de.ts
translations/el.ts
translations/eo.ts
translations/es.ts
translations/et.ts
translations/fa.ts
translations/fi.ts
translations/fr.ts
translations/he.ts
translations/hr.ts
translations/hu.ts
translations/it.ts
translations/ja.ts
translations/jbo.ts
translations/ko.ts
translations/lt.ts
translations/mk.ts
translations/nl.ts
translations/no_nb.ts
translations/pl.ts
translations/pr.ts
translations/pt.ts
translations/pt_BR.ts
translations/ro.ts
translations/ru.ts
translations/sk.ts
translations/sl.ts
translations/sr.ts
translations/sr_Latn.ts
translations/sv.ts
translations/sw.ts
translations/ta.ts
translations/tr.ts
translations/ug.ts
translations/uk.ts
translations/zh_CN.ts
translations/zh_TW.ts
)
set(${PROJECT_NAME}_RESOURCES
res.qrc
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc
)
if(NOT SMILEYS)
@ -236,25 +190,6 @@ if(NOT "${SMILEYS}" STREQUAL "DISABLED")
endif()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in"
"<!DOCTYPE RCC>
<RCC version=\"1.0\">
<qresource prefix=\"/translations\">
")
foreach(qm ${${PROJECT_NAME}_QM_FILES})
get_filename_component(qm_name ${qm} NAME)
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in"
" <file alias=\"${qm_name}\">${qm}</file>\n")
endforeach(qm)
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in"
" </qresource>
</RCC>
")
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc)
set(${PROJECT_NAME}_SOURCES
src/chatlog/chatlinecontent.cpp
src/chatlog/chatlinecontent.h
@ -647,18 +582,19 @@ MESSAGE( STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS} )
add_subdirectory(util)
add_subdirectory(audio)
add_subdirectory(translations)
add_library(${PROJECT_NAME}_static
STATIC
${${PROJECT_NAME}_FORMS}
${${PROJECT_NAME}_SOURCES}
${${PROJECT_NAME}_QM_FILES})
${${PROJECT_NAME}_SOURCES})
target_link_libraries(${PROJECT_NAME}_static
${CMAKE_REQUIRED_LIBRARIES}
${ALL_LIBRARIES})
target_link_libraries(${PROJECT_NAME}_static util_library)
target_link_libraries(${PROJECT_NAME}_static audio_library)
target_link_libraries(${PROJECT_NAME}_static translations_library)
add_executable(${PROJECT_NAME}
WIN32

View File

@ -171,7 +171,7 @@ To get translations into qTox:
3. To update translated strings from Weblate, in the root of the qTox
repository execute the script `tools/update-weblate.sh`
4. If a new translation language has been added, update the following files:
- `CMakeLists.txt`
- `translations/CMakeLists.txt`
- `src/widget/form/settings/generalform.cpp`
- `translations/README.md`
- `translations/i18n.pri`

View File

@ -229,6 +229,9 @@ int main(int argc, char* argv[])
#endif
Settings& settings = Settings::getInstance();
QString locale = settings.getTranslation();
// We need to init the resources in the translations_library explicitely.
// See https://doc.qt.io/qt-5/resources.html#using-resources-in-a-library
Q_INIT_RESOURCE(translations);
Translator::translate(locale);
// Process arguments

82
translations/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,82 @@
# Copyright © 2020 by The qTox Project Contributors
#
# This file is part of qTox, a Qt-based graphical interface for Tox.
# qTox is libre software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# qTox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with qTox. If not, see <http://www.gnu.org/licenses/>
# Edit this list if translations are added
qt5_add_translation(translations_FILES
ar.ts
be.ts
bg.ts
cs.ts
da.ts
de.ts
el.ts
eo.ts
es.ts
et.ts
fa.ts
fi.ts
fr.ts
he.ts
hr.ts
hu.ts
it.ts
ja.ts
jbo.ts
ko.ts
lt.ts
mk.ts
nl.ts
no_nb.ts
pl.ts
pr.ts
pt.ts
pt_BR.ts
ro.ts
ru.ts
sk.ts
sl.ts
sr.ts
sr_Latn.ts
sv.ts
sw.ts
ta.ts
tr.ts
ug.ts
uk.ts
zh_CN.ts
zh_TW.ts
)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in"
"<!DOCTYPE RCC>
<RCC version=\"1.0\">
<qresource prefix=\"/translations\">
")
foreach(qm ${translations_FILES})
get_filename_component(qm_name ${qm} NAME)
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in"
" <file alias=\"${qm_name}\">${qm}</file>\n")
endforeach(qm)
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in"
" </qresource>
</RCC>
")
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc.in
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc)
add_library(translations_library ${translations_FILES} ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc)