====== 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