view include/gui/locale.h @ 374:f7bb2978de48

gui/pages/anime_list: add Search right-click menu, don't create menu items that do nothing
author Paper <paper@tflc.us>
date Fri, 25 Jul 2025 11:03:34 -0400
parents 47c9f8502269
children
line wrap: on
line source

#ifndef MINORI_GUI_LOCALE_H_
#define MINORI_GUI_LOCALE_H_

#include <QLocale>
#include <QTranslator>
#include <memory>
#include <string>
#include <vector>

namespace Locale {

std::string GetLocaleFullName(const QLocale &locale);

class Locale {
public:
	Locale();
	Locale(const std::string &name);
	QLocale GetLocale() const;
	std::vector<QLocale> GetAvailableLocales() const;
	void RefreshAvailableLocales(); // why would this ever be called?
	bool IsLocaleAvailable(const QLocale &locale) const;
	bool SetActiveLocale(const QLocale &locale);

private:
	bool SwitchTranslator(QTranslator &translator, const QString &name);

	QTranslator _translator;
	QTranslator _translator_qt;
	QLocale _locale;
	std::vector<QLocale> _available_translations = {};
};

} // namespace Locale

#endif // MINORI_GUI_LOCALE_H_