====== Qt ====== ====== Локализация ====== ===== Поддержка переводов в программе ===== Согласно [[http://doc.qt.io/qt-5/internationalization.html | документации Qt]], поддержка локализованного (а точнее - "интернационализованного" -- т.н. "i18n") интерфейса в программе включается следующим образом: int main(int argc, char *argv[]) { QApplication app(argc, argv); QTranslator qtTranslator; qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); app.installTranslator(&qtTranslator); QTranslator myappTranslator; myappTranslator.load("myapp_" + QLocale::system().name()); app.installTranslator(&myappTranslator); ... return app.exec(); } Такой код загружает перевод, соответствующй системным настройкам языка. Вместо этого можно в явном виде загрузить нужный перевод: myappTranslator.load("myapp_uk_UA"); При этом необходимо, чтобы существовал соответствующий файл перевода "''myapp_uk.qm''", которые генерируются из исходных файлов перевода "''myapp_uk.ts''". ===== Обновление и компиляция переводов ===== ==== Средствами Qt ==== Для того, чтобы файлы переводов можно было обновлять и компилировать, их необходимо перечислить в проектном файле Qt (например, ''myapp.pro'')((http://doc.qt.io/qt-5/linguist-programmers.html)): TRANSLATIONS = myapp_uk.ts \ myapp_ru.ts \ myapp_en.ts Тогда можно создать или обновить файлы переводов на основании подлежащих переводу строк, содержащихся в исходных файлах программы, перечисленных в разделах ''SOURCES'' и ''HEADERS'' этого же проектного файла: lupdate myapp.pro Или напрямую передать команде ''lupdate'' список исходных файлов и имя выходного ''ts''-файла: lupdate *.cpp *.h *.ui -ts myapp_uk.ts После чего -- скомпилировать из ''ts''-файлов перевода ''qm''-файлы, подходящие для загрузки нашей программой во время запуска: lrelease myapp.pro или lrelease myapp_*.ts ==== Средствами CMake ==== Чтобы файлы переводов автоматически обновлялись и компилировались при каждой сборке программы, можно в файл CMakeLists.txt внести такие правки: find_package(Qt5LinguistTools) SET(Translation_files spectrophot_uk.ts spectrophot_ru.ts ) QT5_CREATE_TRANSLATION(TranslationSrcs ${CMAKE_CURRENT_SOURCE_DIR} ${Translation_files}) ... ADD_EXECUTABLE(myapp ${Srcs} ${UISrcs} ${TranslationSrcs}) ====== Установка в Windows ====== Чтобы установить Qt в ОС Windows, можно скачать с официального сайта [[http://download.qt.io/archive/qt/5.5/5.5.1/qt-opensource-windows-x86-mingw492-5.5.1.exe | установщик]] (1ГБ), включающий в себя также и MinGW. Установка очень проста -- достаточно запустить скачанный файл установщика. Однако, в установленном виде Qt может занимать много места на диске - порядка нескольких гигабайт. ====== Сборка приложений под Windows ====== ===== Динамическая компоновка ===== Собрать исполнимый файл собственной программы можно в QtCreator, который идёт в комплекте установщика Qt, скачанного ранее. Но если он скомпанован с библиотеками Qt или какими-то другими динамически, эти библиотеки должны сопровождать исполнимый файл, чтобы он мог запускаться. ===== Статическая компоновка ===== http://doc.qt.io/qt-5/windows-deployment.html#creating-the-application-package http://doc.qt.io/qt-5/qmake-project-files.html#general-configuration FIXME