view include/gui/locale.h @ 150:ffa535b6d630

*: avoid usage of std::[pair,tuple] https://arne-mertz.de/2017/03/smelly-pair-tuple/ it's better to use real structures and such where variables are easily known... also apparently using [] on structs is actually valid? I had no idea.
author Paper <mrpapersonic@gmail.com>
date Tue, 14 Nov 2023 16:27:33 -0500
parents 39521c47c7a3
children 862d0d8619f6
line wrap: on
line source

#ifndef __gui__locale_h
#define __gui__locale_h

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

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 = {};
};

}

#endif // __gui__locale_h