Подключение переводов элементов интерфейса на русский

This commit is contained in:
Andrei Astafev 2021-12-22 17:36:32 +03:00
parent 5983ec07a1
commit 345bef0dbd
4 changed files with 39 additions and 3 deletions

View File

@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.3)
cmake_policy(VERSION 3.0.2..3.7)
# Название и версия проекта и используемые языки программирования
project(myx-cmake-example-qt5-gui VERSION 0.2.0 LANGUAGES CXX)
project(myx-cmake-example-qt5-gui VERSION 0.3.0 LANGUAGES C CXX)
###
# Обязательные переменные для MyxCMake
@ -28,5 +28,8 @@ find_package(MyxCMake 0.4.1 REQUIRED)
find_package(Qt5Core COMPONENTS Private REQUIRED)
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
# Автоматически генерируемый заголовочный файл
myx_cmake_generate_private_config_header()
# Исходные тексты программы
add_subdirectory(src/myx-cmake-example-qt5-gui)

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>TestWindow</name>
<message>
<location filename="../src/myx-cmake-example-qt5-gui/test_window.ui" line="14"/>
<source>Test Window</source>
<translation>Тестовое окно</translation>
</message>
<message>
<location filename="../src/myx-cmake-example-qt5-gui/test_window.ui" line="27"/>
<source>Press me</source>
<translation>Нажми меня</translation>
</message>
</context>
</TS>

View File

@ -38,9 +38,16 @@ qt5_wrap_ui(TRGT_ui_h ${TRGT_ui})
# Правило для автоматической генерации препроцессором moc
qt5_wrap_cpp(TRGT_moc_cpp ${TRGT_moc_hpp})
# Поиск строк для локализации в файлах, перечисленных в ${TRGT_cpp} ${TRGT_ui}
# Создание и обновление файлов переводов в каталоге ${CMAKE_SOURCE_DIR}/l10n
# Интеграция переводов в исполняемый файл для подключения классом QTranslator
myx_cmake_qt5_translation(TRGT_qrc_cpp
OUTPUT_DIR ${CMAKE_SOURCE_DIR}/l10n
BASE_NAME ${TRGT}
SOURCES ${TRGT_cpp} ${TRGT_ui}
LANGUAGES ru_RU)
# Правило для автоматической генерации препроцессором qrc
# (обязательно после вызова функции qt5_translation, если она есть,
# так как она добавляет свои файлы к списку ресурсов)
qt5_add_resources(TRTG_qrc_cpp ${TRGT_qrc})
# Функция для создания цели, результатом которой будет сборка приложения

View File

@ -1,12 +1,21 @@
#include "myx_cmake_private_config_p.hpp"
#include "test_window.hpp"
#include <QApplication>
#include <QIcon>
#include <QTranslator>
int main( int argc, char** argv )
{
QApplication app( argc, argv );
// Подключение переводов в зависимости от текущей локали
auto* translator = new QTranslator( QApplication::instance() );
if ( translator->load( QLocale(), MYX_CMAKE_PROJECT_NAME, QStringLiteral( "_" ), QStringLiteral( ":/qm" ) ) )
{
QApplication::installTranslator( translator );
}
// Установка иконки для программы
QApplication::setWindowIcon( QIcon( ":/icon/icon.png" ) );