#pragma once

#include <QDir>
#include <QLocale>
#include <QTranslator>

#include "aqsi-commons-qt_global.h"

namespace aqsi {

class AQSICOMMONSQT_EXPORT UiTranslator : public QObject
{
    Q_OBJECT
public:
    explicit UiTranslator(QObject* parent = nullptr);

    /**
     * \brief Обновляет перевод пользовательского интерфейса приложения, при изменении настроек связанных с локалью
     * (установленным языком).
     * \details При необходимости загрузки нового перевода проверяет его наличие в директории,
     * установленную при помощи метода void UiTranslator::setTranslationDir(QDir const&).
     */
    void update();

    /**
     * \brief Устанавливает директорию, содержащую переводы пользовательского интерфейса приложения.
     * \param [in] dir - Директория, содержащая переводы пользовательского интерфейса приложения.
     */
    void setTranslationsDir(QDir const& dir);

private:
    QTranslator m_translator;
    QDir m_translations_dir;
};

}  // namespace aqsi
