annotate include/gui/locale.h @ 187:9613d72b097e

*: multiple performance improvements like marking `static const` when it makes sense... date: change old stupid heap-based method to a structure which should make copying the thing actually make a copy. also many performance-based changes, like removing the std::tie dependency and forward-declaring nlohmann json *: replace every instance of QString::fromUtf8 to Strings::ToQString. the main difference is that our function will always convert exactly what is in the string, while some other times it would only convert up to the nearest NUL byte
author Paper <mrpapersonic@gmail.com>
date Wed, 06 Dec 2023 13:43:54 -0500
parents 39521c47c7a3
children 862d0d8619f6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
109
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
1 #ifndef __gui__locale_h
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
2 #define __gui__locale_h
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
3
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
4 #include <QLocale>
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
5 #include <QTranslator>
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
6 #include <vector>
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
7 #include <string>
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
8 #include <memory>
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
9
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
10 namespace Locale {
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
11
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
12 std::string GetLocaleFullName(const QLocale& locale);
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
13
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
14 class Locale {
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
15 public:
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
16 Locale();
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
17 Locale(const std::string& name);
118
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 109
diff changeset
18 QLocale GetLocale() const;
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 109
diff changeset
19 std::vector<QLocale> GetAvailableLocales() const;
109
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
20 void RefreshAvailableLocales(); // why would this ever be called?
118
39521c47c7a3 *: another huge megacommit, SORRY
Paper <mrpapersonic@gmail.com>
parents: 109
diff changeset
21 bool IsLocaleAvailable(const QLocale& locale) const;
109
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
22 bool SetActiveLocale(const QLocale& locale);
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
23
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
24 private:
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
25 bool SwitchTranslator(QTranslator& translator, const QString& name);
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
26
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
27 QTranslator _translator;
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
28 QTranslator _translator_qt;
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
29 QLocale _locale;
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
30 std::vector<QLocale> _available_translations = {};
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
31 };
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
32
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
33 }
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
34
79714c95a145 *: add translation files and locale files
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
35 #endif // __gui__locale_h