ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvTranslationManager.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <QMenu>
11 #include <QPair>
12 #include <QVector>
13 
14 #include "CVAppCommon.h"
15 
16 class CVAPPCOMMON_LIB_API ccTranslationManager : public QObject {
17  Q_OBJECT
18 
19 public:
21 
22  ~ccTranslationManager() override = default;
23 
30  void registerTranslatorFile(const QString &prefix, const QString &path);
31 
35 
39  void loadTranslation(QString language);
40 
43  void populateMenu(QMenu *menu, const QString &pathToTranslationFiles);
44 
45 protected:
46  explicit ccTranslationManager() = default;
47 
48 private:
49  struct TranslatorFile {
50  QString prefix;
51  QString path;
52  };
53  using TranslatorFileList = QVector<TranslatorFile>;
54 
55  using TranslationInfo = QPair<QString, QString>;
56  using LanguageList = QVector<TranslationInfo>;
57 
58  const QString languagePref();
59 
62  LanguageList availableLanguages(const QString &appName,
63  const QString &pathToTranslationFiles);
64 
65  void setLanguagePref(const QString &languageCode);
66 
67  TranslatorFileList mTranslatorFileInfo;
68 };
#define CVAPPCOMMON_LIB_API
Definition: CVAppCommon.h:15
~ccTranslationManager() override=default
ccTranslationManager()=default
void populateMenu(QMenu *menu, const QString &pathToTranslationFiles)
static ccTranslationManager & get()
void loadTranslation(QString language)
void registerTranslatorFile(const QString &prefix, const QString &path)
static const std::string path
Definition: PointCloud.cpp:59