49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
// Copyright 2021-2023 The Mumble Developers. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license
|
|
// that can be found in the LICENSE file at the root of the
|
|
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
|
|
|
|
#ifndef MUMBLE_MUMBLE_TRANSLATIONS_H_
|
|
#define MUMBLE_MUMBLE_TRANSLATIONS_H_
|
|
|
|
#include <QStringList>
|
|
|
|
class QApplication;
|
|
class QLocale;
|
|
class QTranslator;
|
|
|
|
namespace Mumble {
|
|
namespace Translations {
|
|
|
|
/**
|
|
* A lifetime guard for translators. Basically a smart-pointer for an ensemble of translators
|
|
*/
|
|
struct LifetimeGuard {
|
|
QTranslator *m_bundledTranslator = nullptr;
|
|
QTranslator *m_overwriteTranslator = nullptr;
|
|
QTranslator *m_qtTranslator = nullptr;
|
|
|
|
LifetimeGuard() = default;
|
|
LifetimeGuard(LifetimeGuard &&old);
|
|
LifetimeGuard(const LifetimeGuard &) = delete;
|
|
~LifetimeGuard();
|
|
};
|
|
|
|
QStringList getDefaultTranslationDirectories();
|
|
|
|
QStringList getTranslationDirectories(const QApplication &app, const QStringList &extraDirectories);
|
|
|
|
/**
|
|
* Installs translators for the given locale to the given application. If extraDirectories are provided,
|
|
* they will be used for the overwrite translator.
|
|
*
|
|
* @returns The lifetime guard of the created translators. This object must not be destroyed before
|
|
* the given application has terminated.
|
|
*/
|
|
LifetimeGuard installTranslators(const QLocale &locale, QApplication &app, const QStringList &extraDirectories);
|
|
|
|
} // namespace Translations
|
|
} // namespace Mumble
|
|
|
|
#endif // MUMBLE_MUMBLE_TRANSLATIONS_H_
|