AusweisApp2
LanguageLoader.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \brief Loads translation files for different languages.
3  *
4  * \copyright Copyright (c) 2014-2022 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #pragma once
8 
9 #include <QLocale>
10 #include <QSharedPointer>
11 #include <QTranslator>
12 #include <QVector>
13 
14 class test_LanguageLoader;
15 class test_ProviderParser;
16 class test_ProviderConfigurationParser;
17 
18 namespace governikus
19 {
20 
22 {
23  Q_DISABLE_COPY(LanguageLoader)
24  friend class ::test_LanguageLoader;
25  friend class ::test_ProviderConfigurationParser;
26 
27  private:
28  static const QLocale::Language mFallbackLanguage;
29  static QLocale mDefaultLanguage;
30 
31  QString mPath;
32  QVector<QSharedPointer<QTranslator>> mTranslatorList;
33  const QStringList mComponentList;
34  QLocale mUsedLocale;
35 
36  bool loadTranslationFiles(const QLocale& pLocale);
37  QSharedPointer<QTranslator> createTranslator(const QLocale& pLocale, const QString& pComponent);
38 
39  protected:
41  ~LanguageLoader() = default;
42 
43  public:
44  [[nodiscard]] static const QLocale& getDefaultLanguage();
45  static void setDefaultLanguage(const QLocale& pLocale);
47  static QString getLocaleCode(const QLocale& pLocale = getInstance().getUsedLocale());
48 
49 #ifndef QT_NO_DEBUG
50  [[nodiscard]] const QString& getPath() const;
51  void setPath(const QString& pPath);
52 #endif
53 
54  void load(const QLocale& pLocale = getDefaultLanguage());
55  void unload();
56  [[nodiscard]] bool isLoaded() const;
57  [[nodiscard]] const QLocale& getUsedLocale() const;
58  [[nodiscard]] QLocale::Language getFallbackLanguage() const;
59  [[nodiscard]] QList<QLocale> getAvailableLocales() const;
60 };
61 
62 } // namespace governikus
Definition: LanguageLoader.h:22
bool isLoaded() const
Definition: LanguageLoader.cpp:123
static LanguageLoader & getInstance()
static const QLocale & getDefaultLanguage()
Definition: LanguageLoader.cpp:44
static void setDefaultLanguage(const QLocale &pLocale)
Definition: LanguageLoader.cpp:50
void unload()
Definition: LanguageLoader.cpp:158
void setPath(const QString &pPath)
Definition: LanguageLoader.cpp:69
const QString & getPath() const
Definition: LanguageLoader.cpp:63
static QString getLocaleCode(const QLocale &pLocale=getInstance().getUsedLocale())
Definition: LanguageLoader.cpp:56
QLocale::Language getFallbackLanguage() const
Definition: LanguageLoader.cpp:184
QList< QLocale > getAvailableLocales() const
Definition: LanguageLoader.cpp:94
void load(const QLocale &pLocale=getDefaultLanguage())
Definition: LanguageLoader.cpp:129
const QLocale & getUsedLocale() const
Definition: LanguageLoader.cpp:178
A simple template renderer.
Definition: ActivationContext.h:15