#ifndef TRANSLATOR_H #define TRANSLATOR_H #include "src/opl.h" /*! * \brief The ATranslator class is responsible for managing the QTranslator used for providing localisations. Translations * are planned, but are not currently being worked on. The way QT language tools are working with CMAKE, there are some * considerations for when works on translation actually start. See [here](https://bugreports.qt.io/browse/QTBUG-41736) * and [here](https://bugreports.qt.io/browse/QTBUG-76410). * Long story short, make sure to use a version of CMake that is 3.16 or earlier, or 3.19.2 or later. * * The translation source files (.ts) are located at /l10n and once compiled, the translation binaries * are at `$BINDIR/l10n/` and can be accessed via `OPL::L10N_FILES`. * * When a QTranslator is installed, the UI is updated through [QWidget::changeEvent()](https://doc.qt.io/qt-5/qwidget.html#changeEvent). * */ class Translator : public QObject { Q_OBJECT public: /*! * \brief Installs a QTranslator with the selected language. Defaults to English. Call this function before constructing the Main Window. */ static void installTranslator(OPL::Translation language = OPL::Translation::English); private: static QTranslator *translator; }; #endif // TRANSLATOR_H