[libcalamares] Add a more extensible About message

- make the years easier to update without annoying translators
- make the maintainers extensible.
This commit is contained in:
Adriaan de Groot 2022-05-23 16:40:39 +02:00
parent f8345a09a2
commit 09255a1d9c
3 changed files with 97 additions and 0 deletions

View File

@ -24,6 +24,7 @@ set( OPTIONAL_PRIVATE_LIBRARIES "" )
set( OPTIONAL_PUBLIC_LIBRARIES "" )
set( libSources
CalamaresAbout.cpp
CppJob.cpp
GlobalStorage.cpp
Job.cpp

View File

@ -0,0 +1,73 @@
/* === This file is part of Calamares - <https://calamares.io> ===
*
* SPDX-FileCopyrightText: 2022 Adriaan de Groot <groot@kde.org>
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Calamares is Free Software: see the License-Identifier above.
*
*/
#include "CalamaresAbout.h"
#include <QCoreApplication>
static const char s_header[]
= QT_TRANSLATE_NOOP( "AboutData", "<h1>%1</h1><br/><strong>%2<br/> for %3</strong><br/><br/>" );
static const char s_footer[]
= QT_TRANSLATE_NOOP( "AboutData",
"Thanks to <a href=\"https://calamares.io/team/\">the Calamares team</a> "
"and the <a href=\"https://www.transifex.com/calamares/calamares/\">Calamares "
"translators team</a>.<br/><br/>"
"<a href=\"https://calamares.io/\">Calamares</a> "
"development is sponsored by <br/>"
"<a href=\"http://www.blue-systems.com/\">Blue Systems</a> - "
"Liberating Software." );
struct Maintainer
{
unsigned int start;
unsigned int end;
const char* name;
const char* email;
QString text() const
{
//: Copyright year-year Name <email-address>
return QCoreApplication::translate( "AboutData", "Copyright %1-%2 %3 &lt;%4&gt;<br/>" )
.arg( start )
.arg( end )
.arg( name )
.arg( email );
}
};
static constexpr const Maintainer maintainers[] = {
{ 2014, 2017, "Teo Mrnjavac", "teo@kde.org" },
{ 2017, 2022, "Adriaan de Groot", "groot@kde.org" },
};
static QString
aboutMaintainers()
{
return std::accumulate( std::cbegin( maintainers ),
std::cend( maintainers ),
QString(),
[]( QString& s, const Maintainer& m )
{
s += m.text();
return s;
} );
}
const QString
Calamares::aboutString()
{
return QCoreApplication::translate( "AboutData", s_header ) + aboutMaintainers()
+ QCoreApplication::translate( "AboutData", s_footer );
}
const QString
Calamares::aboutStringUntranslated()
{
return QString( s_header ) + aboutMaintainers() + QString( s_footer );
}

View File

@ -0,0 +1,23 @@
/* === This file is part of Calamares - <https://calamares.io> ===
*
* SPDX-FileCopyrightText: 2022 Adriaan de Groot <groot@kde.org>
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Calamares is Free Software: see the License-Identifier above.
*
*/
#ifndef CALAMARES_CALAMARESABOUT_H
#define CALAMARES_CALAMARESABOUT_H
#include "DllMacro.h"
#include <QString>
namespace Calamares
{
DLLEXPORT const QString aboutStringUntranslated();
DLLEXPORT const QString aboutString();
} // namespace Calamares
#endif