kicad/common/dialog_about/AboutDialog_main.cpp

1276 lines
78 KiB
C++
Raw Normal View History

/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2010 Rafael Sokolowski <Rafael.Sokolowski@web.de>
2023-01-22 16:09:49 +00:00
* Copyright (C) 2010-2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <boost/version.hpp>
2010-09-03 14:33:09 +00:00
#include <wx/aboutdlg.h>
#include <wx/arrimpl.cpp>
2010-09-03 14:33:09 +00:00
#include <wx/textctrl.h>
#include <wx/utils.h>
2010-09-03 14:33:09 +00:00
/* Used icons:
* show_3d_xpm; // 3D icon
* module_xpm;
* icon_kicad_xpm; // Icon of the application
2010-09-03 14:33:09 +00:00
*/
#include <bitmaps.h>
#include <build_version.h>
#include <common.h>
#include <kiplatform/app.h>
* KIWAY Milestone A): Make major modules into DLL/DSOs. ! The initial testing of this commit should be done using a Debug build so that all the wxASSERT()s are enabled. Also, be sure and keep enabled the USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it off is senseless anyways. If you want stable code, go back to a prior version, the one tagged with "stable". * Relocate all functionality out of the wxApp derivative into more finely targeted purposes: a) DLL/DSO specific b) PROJECT specific c) EXE or process specific d) configuration file specific data e) configuration file manipulations functions. All of this functionality was blended into an extremely large wxApp derivative and that was incompatible with the desire to support multiple concurrently loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects. An amazing amount of organization come from simply sorting each bit of functionality into the proper box. * Switch to wxConfigBase from wxConfig everywhere except instantiation. * Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD, PGM_SINGLE_TOP, * Remove "Return" prefix on many function names. * Remove obvious comments from CMakeLists.txt files, and from else() and endif()s. * Fix building boost for use in a DSO on linux. * Remove some of the assumptions in the CMakeLists.txt files that windows had to be the host platform when building windows binaries. * Reduce the number of wxStrings being constructed at program load time via static construction. * Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that these functions are useful even when the wxConfigBase comes from another source, as is the case in the KICAD_MANAGER_FRAME. * Move the setting of the KIPRJMOD environment variable into class PROJECT, so that it can be moved into a project variable soon, and out of FP_LIB_TABLE. * Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all its child wxFrames and wxDialogs now have a Kiway() member function which returns a KIWAY& that that window tree branch is in support of. This is like wxWindows DNA in that child windows get this member with proper value at time of construction. * Anticipate some of the needs for milestones B) and C) and make code adjustments now in an effort to reduce work in those milestones. * No testing has been done for python scripting, since milestone C) has that being largely reworked and re-thought-out.
2014-03-20 00:42:08 +00:00
#include <pgm_base.h>
2018-01-29 15:39:40 +00:00
#include <eda_base_frame.h>
#include "aboutinfo.h"
#include "dialog_about.h"
2010-09-03 14:33:09 +00:00
WX_DEFINE_OBJARRAY( CONTRIBUTORS )
2010-09-03 14:33:09 +00:00
// Helper functions:
static wxString HtmlHyperlink( const wxString& url, const wxString& description = wxEmptyString );
static wxString HtmlNewline( const unsigned int amount = 1 );
/**
* Initializes the <code>ABOUT_APP_INFO</code> object with application specific information.
* This is the object which holds all information about the application
2010-09-03 14:33:09 +00:00
*/
static void buildKicadAboutBanner( EDA_BASE_FRAME* aParent, ABOUT_APP_INFO& aInfo )
2010-09-03 14:33:09 +00:00
{
// Set application specific icon
aInfo.SetAppIcon( aParent->GetIcon() );
2010-09-03 14:33:09 +00:00
/* Set title */
aInfo.SetAppName( Pgm().App().GetAppName() );
2010-09-03 14:33:09 +00:00
/* Copyright information */
2023-12-31 23:12:59 +00:00
aInfo.SetCopyright( wxT( "(C) 1992-2024 KiCad Developers Team" ) );
2010-09-03 14:33:09 +00:00
/* KiCad build version */
wxString version;
2023-01-16 01:22:17 +00:00
version << ( KIPLATFORM::APP::IsOperatingSystemUnsupported() ? wxString( wxS( "(UNSUPPORTED)" ) )
: GetBuildVersion() )
#ifdef DEBUG
2023-01-17 12:42:30 +00:00
<< wxT( ", debug" )
#else
2023-01-17 12:42:30 +00:00
<< wxT( ", release" )
#endif
2023-01-17 12:42:30 +00:00
<< wxT( " build" );
aInfo.SetBuildVersion( version );
aInfo.SetBuildDate( GetBuildDate() );
2010-09-03 14:33:09 +00:00
/* wxWidgets version */
wxString libVersion;
libVersion << wxGetLibraryVersionInfo().GetVersionString();
2010-09-03 14:33:09 +00:00
/* Unicode or ANSI version */
2010-09-03 14:33:09 +00:00
#if wxUSE_UNICODE
libVersion << wxT( " Unicode " );
2010-09-03 14:33:09 +00:00
#else
libVersion << wxT( " ANSI " );
2010-09-03 14:33:09 +00:00
#endif
// Just in case someone builds KiCad with the platform native of Boost instead of
// the version included with the KiCad source.
2023-01-17 12:42:30 +00:00
libVersion << wxT( "and Boost " ) << ( BOOST_VERSION / 100000 ) << wxT( "." )
<< ( BOOST_VERSION / 100 % 1000 ) << wxT( "." ) << ( BOOST_VERSION % 100 )
<< wxT( "\n" );
// Operating System Information
2010-09-03 14:33:09 +00:00
wxPlatformInfo platformInfo;
2010-09-03 14:33:09 +00:00
2023-01-17 12:42:30 +00:00
libVersion << wxT( "Platform: " ) << wxGetOsDescription() << wxT( ", " )
<< GetPlatformGetBitnessName();
2010-09-03 14:33:09 +00:00
aInfo.SetLibVersion( libVersion );
2010-09-03 14:33:09 +00:00
// info/description part HTML formatted:
2010-09-03 14:33:09 +00:00
wxString description;
/* short description */
2023-01-17 12:42:30 +00:00
description << wxT( "<p>" );
description << wxT( "<b><u>" )
<< _( "Description" )
2023-01-17 12:42:30 +00:00
<< wxT( "</u></b>" ); // bold & underlined font for caption
2010-09-03 14:33:09 +00:00
2023-01-17 12:42:30 +00:00
description << wxT( "<p>" )
<< _( "The KiCad EDA Suite is a set of open source applications for the "
"creation of electronic schematics and printed circuit boards." )
2023-01-17 12:42:30 +00:00
<< wxT( "</p>" );
2010-09-03 14:33:09 +00:00
2023-01-17 12:42:30 +00:00
description << wxT( "</p>" );
2010-09-03 14:33:09 +00:00
/* websites */
2023-01-17 12:42:30 +00:00
description << wxT( "<p><b><u>" )
<< _( "KiCad on the web" )
2023-01-17 12:42:30 +00:00
<< wxT( "</u></b>" ); // bold & underlined font for caption
2010-09-03 14:33:09 +00:00
// bullet-ed list with some http links
2023-01-17 12:42:30 +00:00
description << wxT( "<ul>" );
description << wxT( "<li>" )
<< _( "The official KiCad website - " )
2023-01-22 14:41:33 +00:00
<< HtmlHyperlink( wxS( "http://www.kicad.org" ) )
2023-01-17 12:42:30 +00:00
<< wxT( "</li>" );
description << wxT( "<li>" )
2020-10-20 21:47:32 +00:00
<< _( "Developer website - " )
2023-01-22 14:41:33 +00:00
<< HtmlHyperlink( wxS( "https://go.kicad.org/dev" ) )
2023-01-17 12:42:30 +00:00
<< wxT( "</li>" );
2017-01-03 15:01:47 +00:00
2023-01-17 12:42:30 +00:00
description << wxT( "<li>" )
<< _("Official KiCad library repositories - " )
2023-01-22 14:41:33 +00:00
<< HtmlHyperlink( wxS( "https://go.kicad.org/libraries" ) )
2023-01-17 12:42:30 +00:00
<< wxT( "</li>" );
2023-01-17 12:42:30 +00:00
description << wxT( "</ul></p>" );
2010-09-03 14:33:09 +00:00
2023-01-17 12:42:30 +00:00
description << wxT( "<p><b><u>" )
<< _( "Bug tracker" )
2023-01-17 12:42:30 +00:00
<< wxT( "</u></b>" ); // bold & underlined font caption
2010-09-03 14:33:09 +00:00
// bullet-ed list with some http links
2023-01-17 12:42:30 +00:00
description << wxT( "<ul>" );
description << wxT( "<li>" )
<< _( "Report or examine bugs - " )
2023-01-22 14:41:33 +00:00
<< HtmlHyperlink( wxS( "https://go.kicad.org/bugs" ) )
2023-01-17 12:42:30 +00:00
<< wxT( "</li>" );
description << wxT( "</ul></p>" );
2023-01-17 12:42:30 +00:00
description << wxT( "<p><b><u>" )
2020-10-20 21:47:32 +00:00
<< _( "KiCad users group and community" )
2023-01-17 12:42:30 +00:00
<< wxT( "</u></b>" ); // bold & underlined font caption
2023-01-17 12:42:30 +00:00
description << wxT( "<ul>" );
description << wxT( "<li>" )
<< _( "KiCad forum - " )
2023-01-22 14:41:33 +00:00
<< HtmlHyperlink( wxS( "https://go.kicad.org/forum" ) )
2023-01-17 12:42:30 +00:00
<< wxT( "</li>" );
2023-01-17 12:42:30 +00:00
description << wxT( "</ul></p>" );
2010-09-03 14:33:09 +00:00
aInfo.SetDescription( description );
2010-09-03 14:33:09 +00:00
// License information also HTML formatted:
2010-09-03 14:33:09 +00:00
wxString license;
license
2023-01-17 12:42:30 +00:00
<< wxT( "<div align='center'>" )
2010-09-03 14:33:09 +00:00
<< HtmlNewline( 4 )
<< _( "The complete KiCad EDA Suite is released under the" ) << HtmlNewline( 2 )
2023-01-22 14:41:33 +00:00
<< HtmlHyperlink( wxS( "http://www.gnu.org/licenses" ),
_( "GNU General Public License (GPL) version 3 or any later version" ) )
2023-01-17 12:42:30 +00:00
<< wxT( "</div>" );
2010-09-03 14:33:09 +00:00
aInfo.SetLicense( license );
2010-09-03 14:33:09 +00:00
/* A contributor consists of the following information:
* Mandatory:
* - Name
* Optional:
* - EMail address
2010-09-03 14:33:09 +00:00
* - Category
* - Category specific icon
*
* All contributors of the same category will be enumerated under this category
* which should be represented by the same icon.
*/
// The core developers
#define LEAD_DEV _( "Lead Development Team" )
#define FORMER_DEV _( "Lead Development Alumni" )
#define CONTRIB_DEV _( "Additional Contributions By")
2023-01-17 12:42:30 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Pierre Charras" ), LEAD_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Wayne Stambaugh" ), LEAD_DEV, nullptr ) );
// Alphabetical after the first two
2023-01-17 12:42:30 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Evans" ), LEAD_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ), LEAD_DEV, nullptr ) );
2023-01-17 12:42:30 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seth Hillbrand" ), LEAD_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian McInerney" ), LEAD_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Roszko" ), LEAD_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Pointhuber" ), LEAD_DEV, nullptr ) );
2023-01-22 16:09:49 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alex Shvartzkop" ), LEAD_DEV, nullptr ) );
2022-09-28 20:49:30 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mike Williams" ), LEAD_DEV, nullptr ) );
2023-01-17 12:42:30 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tomasz Wlostowski" ), LEAD_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Young" ), LEAD_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "John Beard" ), FORMER_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dick Hollenbeck" ), FORMER_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexis Lockwood" ), FORMER_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Sidebotham" ), FORMER_DEV, nullptr ) );
2022-09-28 20:49:30 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Orson (Maciej Sumiński)" ), FORMER_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikolaj Wielgus" ), FORMER_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Aberg" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rohan Agrawal" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Agricola" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nabeel Ahmad" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Werner Almesberger" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shawn Anastasio" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Collin Anderson" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tom Andrews" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikael Arguedas" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lachlan Audas" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Noel Avila" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pascal Baerten" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Bashkov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Beardsworth" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Beckler" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konrad Beckmann" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eduardo Behr" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "David Beinder" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Bennett" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Beranek" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Francois Berder" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gustav Bergquist" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cirilo Bernardo" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joël Bertrand" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Beutling" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian F. G. Bidulock" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Blanchard" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blair Bonnett" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Markus Bonk" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Franck Bourdonnec" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carlo Bramini" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Brüns" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Buhr" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ryan Bunch" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Emery Burhan" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Scott Candey" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Phinitnan Chanasabaeng" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shivpratap Chauhan" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joseph Y. Chen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexey Chernov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Ciampa" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus Comstedt" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diogo Condeco" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Colin Cooper" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabien Corona" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Garth Corral" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Cross" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew D'Addesio" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin d'Allens" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Greg Davill" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Camille Delbegue" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Albin Dennevi" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ruben De Smet" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Dewing" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonas Diemer" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Dooks" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pavel Dovgalyuk" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Downing" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Dubiec" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gerd Egidy" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean Philippe Eimer" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Ellis" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oleg Endo" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damien Espitallier" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul Ewing" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julian Fellinger" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joe Ferner" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Fiete" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Figueroa" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vincenzo Fortunato" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Drew Fustini" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronnie Gaensli" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Gagneraud" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Gamari" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashutosh Gangwar" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alessandro Gatti" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hal Gentz" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Davide Gerhard" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Geselbracht" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Giulio Girardi" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Glass" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Golubev" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Angus Gratton" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Element Green" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mathias Grimmberger" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johan Grip" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hildo Guillardi Júnior" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Niki Guldbrand" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tanay Gupta" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Guy" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zoltan Gyarmati" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Haas" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Hämmerling" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Hamminga" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Scott Hanson" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Harris" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lukas F. Hartmann" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakob Haufe" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Aylons Hazzud" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Helmert" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hartmut Henkel" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Henning" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paulo Henrique Silva" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hans Henry von Tresckow" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diego Herranz" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Hess" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Hros" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matt Huszagh" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Torsten Hüter" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Ignacio Romero" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Inacio" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabián Inostroza" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vlad Ivanov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "James Jackson" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jerry Jacobs" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Jacobsen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Jahelka" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Janitschke" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Jara-Almonte" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gilbert J.M. Forkel" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Jorge Enríquez" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Franck Jullien" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eeli Kaikkonen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lajos Kamocsay" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Povilas Kanapickas" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikhail Karpenko" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kerusey Karyu" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Kavanagh" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tom Keddie" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Graham Keeth" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yury Khalyavin" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gary Kim" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ingo Kletti" ), CONTRIB_DEV, nullptr ) );
2023-01-19 16:28:31 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kliment" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Sylwester Kocjan" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Clemens Koller" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Asuki Kono" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakub Kozdon" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hajo Nils Krabbenhöft" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Kueppers" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martijn Kuipers" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robbert Lagerweij" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dimitris Lampridis" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Langer" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Lannen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mika Laitio" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Floris Lambrechts" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "lê văn lập" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Lazarev" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dag Lem" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ludovic Léau-mercier" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul LeoNerd Evens" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonatan Liljedahl" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Huanyin Liu" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Lunev" ), CONTRIB_DEV, nullptr ) );
2021-11-27 13:21:29 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Lutsenko" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Luzeiro" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Maibaum" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Majchrzycki" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Daniel Majewski" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rachel Mant" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lorenzo Marcantonio" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miklós Márton" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Mattila" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Steffen Mauch" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Mayton" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Maui" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kirill Mavreshko" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miles McCoo" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Charles McDowell" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Moses McKnight" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin McNamara" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cameron McQuinn" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ievgenii Meshcheriakov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashley Mills" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Moench-Tegeder" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Peter Montgomery" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alejandro García Montoro" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Chris Morgan" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Felix Morgner" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Mrázek" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Narigon" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Neal" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bastian Neumann" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Daniil Nikolaev" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristian Nielsen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Nogueira" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Allan Nordhøy" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henrik Nyberg" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristoffer Ödmark" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Russell Oliver" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jason Oster" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Palazzolo" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "luz paz" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miguel Angel Ajo Pelayo" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Patrick Pereira" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jacobo Aragunde Perez" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Petroff" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Pfister" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Pfluger" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Piccioni" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nicolas Planel" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carl Poirier" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Reece Pollack" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alain Portal" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrei Pozolotin" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Antia Puentes" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zoltan Puskas" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heikki Pulkkinen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Morgan Quigley" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Barabas Raffai" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Urja Rannikko" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joshua Redstone" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michele Renda" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Samuel Reynaud" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dmitry Rezvanov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Richter" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Riehl" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thiadmer Riemersma" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gregor Riepl" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "RigoLigoRLC" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lubomir Rintel" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Rolim" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus A. Romer" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heiko Rosemann" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Rossi" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian Roth" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "J. Morio Sakaguchi" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schaak" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ross Schlaikjer" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julius Schmidt" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Felix Schneider" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marvin Schmidt" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carsten Schoenert" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schubert" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Schulz" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adrian Scripca" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pradeepa Senanayake" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Severinsen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cheng Sheng" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yang Sheng" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Chetan Shinde" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Shuklin" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Slawomir Siudym" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Guillaume Simard" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Sivak" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Sliwa" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blake Smith" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Sojka" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rafael Sokolowski" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vesa Solonen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronald Sousa" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Craig Southeren" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Spindler" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seppe Stas" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bernhard Stegmaier" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Steinberg" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Sterbik" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Stock" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Stoilov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroki Suenaga" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Thorén" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Ur" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthias Urlichs" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Uryvaev" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henri Valta" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dave Vandenbout" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Edwin van den Oetelaar" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark van Doesburg" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Varesano" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Benjamin Vernoux" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Villaro-Dixon" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Forrest Voight" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tormod Volden" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Wågen" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oliver Walters" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Warner" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Weatherill" ), CONTRIB_DEV, nullptr ) );
2021-11-27 12:28:31 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Weber" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bevan Weiss" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Wells" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Wernberger" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Winters" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adam Wolf" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrzej Wolski" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damian Wrobel" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Wygle" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jiaxun Yang" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robert Yates" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yegor Yefremov" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kenta Yonekura" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Zakamaldin" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Zeeman" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henner Zeller" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Zonenberg" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Zeilhofer" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Zheng" ), CONTRIB_DEV, nullptr ) );
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Østergaard" ), CONTRIB_DEV, nullptr ) );
2023-01-30 17:31:55 +00:00
aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "木 王" ), CONTRIB_DEV, nullptr ) );
// The document writers
2023-01-17 12:42:30 +00:00
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jean-Pierre Charras" ) ) );
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Marco Ciampa" ) ) );
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jon Evans" ) ) );
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Dick Hollenbeck" ) ) );
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Graham Keeth" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Igor Plyatov" ) ) );
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Wayne Stambaugh" ) ) );
aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ) ) );
2010-09-03 14:33:09 +00:00
/* The translators
* As category the language to which the translation was done is used
*/
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ondřej Čertík" ),
wxEmptyString,
wxEmptyString,
wxS( "Czech (CS)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Martin Kratoška" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Czech (CS)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Radek Kuznik" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Czech (CS)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roman Ondráček" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Czech (CS)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "René Široký" ),
wxEmptyString,
wxEmptyString,
wxS( "Czech (CS)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Straka" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Czech (CS)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Vykydal" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Czech (CS)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Mads Dyrmann" ),
wxEmptyString,
wxEmptyString,
wxS( "Danish (DA)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Henrik Kauhanen" ),
wxEmptyString,
wxEmptyString,
wxS( "Danish (DA)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Nick Østergaard" ),
wxEmptyString,
wxEmptyString,
wxS( "Danish (DA)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Ivan Chuba" ),
wxEmptyString,
wxEmptyString,
wxS( "German (DE)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Benedikt Freisen" ),
wxEmptyString,
wxEmptyString,
wxS( "German (DE)" ) ) );
2023-01-22 14:41:33 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Jonathan Haas" ),
2021-08-20 19:16:56 +00:00
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "German (DE)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Hämmerling" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "German (DE)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
wxEmptyString,
wxEmptyString,
wxS( "German (DE)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mathias Neumann" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "German (DE)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dominik Wernberger" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "German (DE)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Manolis Stefanis" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Greek (el_GR)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Athanasios Vlastos" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Greek (el_GR)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Milonas Kostas" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Greek (el_GR)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Michail Misirlis" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Greek (el_GR)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Aristeidis Kimirtzis" ),
wxEmptyString,
wxEmptyString,
wxS( "Greek (el_GR)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Adolfo Jayme Barrientos" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Spanish (ES)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Spanish (ES)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Figuero" ),
wxEmptyString,
wxEmptyString,
wxS( "Spanish (ES)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Spanish (ES)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Pedro Martin del Valle" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Spanish (ES)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jose Perez" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Spanish (ES)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Spanish (ES)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "VicSanRoPe" ),
wxEmptyString,
wxEmptyString,
wxS( "Spanish - Latin American (ES)" ) ) );
2023-01-30 17:31:55 +00:00
2022-09-28 20:49:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ulices Avila Hernandez" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Spanish - Latin American (ES)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Vesa Solonen" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Finnish (FI)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Alex Gellen" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Finnish (FI)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Toni Laiho" ),
wxEmptyString,
wxEmptyString,
wxS( "Finnish (FI)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
wxEmptyString,
wxEmptyString,
wxS( "Finnish (FI)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "J. Lavoie" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Finnish (FI)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Purkka Koodari" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Finnish (FI)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Simo Mattila" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Finnish (FI)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Petri Niemelä" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Finnish (FI)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ),
2021-12-14 21:01:10 +00:00
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Finnish (FI)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Riku Viitanen" ),
wxEmptyString,
wxEmptyString,
wxS( "Finnish (FI)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jean-Pierre Charras" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "French (FR)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Marco Ciampa" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Italian (IT)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
2021-04-12 22:19:02 +00:00
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hidemichi Gotou" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Keisuke Nakao" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Norio Suzuki" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "starfort-jp" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kenta Yonekura" ),
wxEmptyString,
wxEmptyString,
wxS( "Japanese (JA)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kaoru Zenyouji" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Japanese (JA)" ) ) );
2023-01-30 17:31:55 +00:00
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "킴슨김랑기" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jeongsuAn" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이상수" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jehunseo" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Uibeom Jung" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박준언" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "방준영" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박기정" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "hokim" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김낙환" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이기형" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "남우근" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "강명구" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김용재" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
2021-08-20 19:16:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "서범기" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김세영" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이윤성" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "KwonHyeokbeom" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Minsu Kim (0xGabriel)" ),
wxEmptyString,
wxEmptyString,
wxS( "Korean (KO)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
wxEmptyString,
wxEmptyString,
wxS( "Lithuanian (LT)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dainius Mazuika" ),
wxEmptyString,
wxEmptyString,
wxS( "Lithuanian (LT)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Arend-Jan van Hilten" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Dutch (NL)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "CJ van der Hoeven" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Dutch (NL)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Pim Jansen" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Dutch (NL)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
wxEmptyString,
wxEmptyString,
wxS( "Dutch (NL)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Bas Wijnen" ),
wxEmptyString,
wxEmptyString,
wxS( "Dutch (NL)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Tom Niesse" ),
wxEmptyString,
wxEmptyString,
wxS( "Dutch (NL)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Christiaan Nieuwlaat" ),
wxEmptyString,
wxEmptyString,
wxS( "Dutch (NL)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jarl Gjessing" ),
wxEmptyString,
wxEmptyString,
wxS( "Norwegian (NO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
wxEmptyString,
wxEmptyString,
wxS( "Norwegian (NO)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Norwegian (NO)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Petter Reinholdtsen" ),
wxEmptyString,
wxEmptyString,
wxS( "Norwegian (NO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Håvard Syslak" ),
wxEmptyString,
wxEmptyString,
wxS( "Norwegian (NO)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ivan Chuba" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Polish (PL)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kerusey Karyu" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Polish (PL)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Krzysztof Kawa" ),
wxEmptyString,
wxEmptyString,
wxS( "Polish (PL)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Roszko" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Polish (PL)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ),
wxEmptyString,
wxEmptyString,
wxS( "Polish (PL)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Grzegorz Szymaszek" ),
wxEmptyString,
wxEmptyString,
wxS( "Polish (PL)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "ZbeeGin" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Polish (PL)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Brazilian Portuguese (PT_BR)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Wellington Terumi Uemura" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Brazilian Portuguese (PT_BR)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Portuguese (PT)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Renie Marquet" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Portuguese (PT)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rafael Silva" ),
2021-12-14 21:01:10 +00:00
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Portuguese (PT)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "ssantos" ),
wxEmptyString,
wxEmptyString,
wxS( "Portuguese (PT)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Igor Plyatov" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Russian (RU)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Дмитрий Дёмин" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Russian (RU)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Russian (RU)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Russian (RU)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Russian (RU)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hanna Breisand" ),
wxEmptyString,
wxEmptyString,
wxS( "Swedish (SV)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Axel Henriksson" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Swedish (SV)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Richard Jonsson" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Swedish (SV)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
wxEmptyString,
wxEmptyString,
wxS( "Swedish (SV)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Swedish (SV)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Boonchai Kingrungped" ),
2021-10-05 16:18:25 +00:00
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Thai (TH)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Artem" ),
wxEmptyString,
wxEmptyString,
wxS( "Ukrainian (UK)" ) ) );
2023-01-30 19:52:56 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ivan Chuba" ),
wxEmptyString,
wxEmptyString,
wxS( "Ukrainian (UK)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Stanislav Kaliuk" ),
wxEmptyString,
wxEmptyString,
wxS( "Ukrainian (UK)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Alexsandr Kuzemko" ),
wxEmptyString,
wxEmptyString,
wxS( "Ukrainian (UK)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Andrii Shelestov" ),
wxEmptyString,
wxEmptyString,
wxS( "Ukrainian (UK)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Liu Guang" ),
wxEmptyString,
2019-08-10 21:22:27 +00:00
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
2019-08-10 21:22:27 +00:00
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dingzhong Chen" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eric" ),
wxEmptyString,
wxEmptyString,
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rigo Ligo" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Huanyin Liu" ),
wxEmptyString,
wxEmptyString,
wxS( "Simplified Chinese (zh_CN)" ) ) );
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "yangyangdaji" ),
wxEmptyString,
wxEmptyString,
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Tian Yunhao" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Simplified Chinese (zh_CN)" ) ) );
2023-01-30 17:31:55 +00:00
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Traditional Chinese (zh_TW)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "pon dahai" ),
wxEmptyString,
wxEmptyString,
wxS( "Traditional Chinese (zh_TW)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "kai chiao chuang" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Traditional Chinese (zh_TW)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Traditional Chinese (zh_TW)" ) ) );
2023-01-30 17:31:55 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "william" ),
wxEmptyString,
wxEmptyString,
wxS( "Traditional Chinese (zh_TW)" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Remy Halvick" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Other" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "David J S Briscoe" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Other" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Dominique Laigle" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Other" ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Paul Burke" ),
wxEmptyString,
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "Other" ) ) );
2023-01-19 16:28:31 +00:00
// Program credits for library team
#define LIBRARIANS _( "KiCad Librarian Team" )
2023-01-19 16:28:31 +00:00
// Lead librarians
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "cpresser"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
// Active librarians
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Aristeidis Kimirtzis"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "apo"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Armin Schoisswohl"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Carlos Nieves Ónega"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Dash Peters"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jan Sebastian Götte (jaseg)"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Greg Cormier"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jeremy Boynes"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jorge Neiva"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Kliment"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Andrew Lutsenko"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
// Former librarians
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Christian Schlüter"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Rene Poeschl"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Antonio Vázquez Blanco "), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Daniel Giesbrecht"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Otavio Augusto Gomes"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "herostrat"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Diego Herranz"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
2021-05-11 11:19:10 +00:00
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Joel Guittet"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Chris Morgan"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Thomas Pointhuber"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Evan Shultz"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
2023-01-19 16:28:31 +00:00
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Bob Cousins"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "nickoe"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Oliver Walters"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
#define MODELS_3D_CONTRIBUTION _( "3D models by" )
2023-01-17 12:42:30 +00:00
aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Maui" ),
2023-01-22 14:41:33 +00:00
wxS( "https://github.com/easyw" ),
wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D-generator" ),
MODELS_3D_CONTRIBUTION,
aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D/-/graphs/master" ),
MODELS_3D_CONTRIBUTION,
aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
#define SYMBOL_LIB_CONTRIBUTION _( "Symbols by" )
2023-01-17 12:42:30 +00:00
aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
wxEmptyString,
2023-02-20 19:44:37 +00:00
wxS( "https://gitlab.com/kicad/libraries/kicad-symbols/-/graphs/master" ),
SYMBOL_LIB_CONTRIBUTION,
aInfo.CreateKiBitmap( BITMAPS::add_component ) ) );
#define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints by" )
2023-01-17 12:42:30 +00:00
aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Thomas Pointhuber" ),
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "https://gitlab.com/kicad/libraries/kicad-footprint-generator" ),
FOOTPRINT_LIB_CONTRIBUTION,
aInfo.CreateKiBitmap( BITMAPS::module ) ) );
2023-01-17 12:42:30 +00:00
aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
wxEmptyString,
2023-01-22 14:41:33 +00:00
wxS( "https://gitlab.com/kicad/libraries/kicad-footprints/-/graphs/master" ),
FOOTPRINT_LIB_CONTRIBUTION,
aInfo.CreateKiBitmap( BITMAPS::module ) ) );
// Program credits for icons
#define ICON_CONTRIBUTION _( "Icons by" )
aInfo.AddArtist( new CONTRIBUTOR( wxT( "Aleksandr Zyrianov" ),
wxEmptyString,
wxEmptyString,
ICON_CONTRIBUTION ) );
aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
wxEmptyString,
wxEmptyString,
ICON_CONTRIBUTION ) );
2023-01-22 14:41:33 +00:00
aInfo.AddArtist( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ),
wxEmptyString,
wxEmptyString,
ICON_CONTRIBUTION ) );
// Program credits for package developers.
2023-01-17 12:42:30 +00:00
aInfo.AddPackager( new CONTRIBUTOR( wxS( "Steven Falco" ) ) );
aInfo.AddPackager( new CONTRIBUTOR( wxS( "Jean-Samuel Reynaud" ) ) );
aInfo.AddPackager( new CONTRIBUTOR( wxS( "Bernhard Stegmaier" ) ) );
aInfo.AddPackager( new CONTRIBUTOR( wxS( "Adam Wolf" ) ) );
aInfo.AddPackager( new CONTRIBUTOR( wxT( "Nick Østergaard" ) ) );
2010-09-03 14:33:09 +00:00
}
void ShowAboutDialog( EDA_BASE_FRAME* aParent )
2010-09-03 14:33:09 +00:00
{
ABOUT_APP_INFO info;
buildKicadAboutBanner( aParent, info );
2010-09-03 14:33:09 +00:00
DIALOG_ABOUT dlg( aParent, info );
dlg.ShowModal();
2010-09-03 14:33:09 +00:00
}
///////////////////////////////////////////////////////////////////////////////
/// Helper functions
///////////////////////////////////////////////////////////////////////////////
/**
* Wrap \a aUrl with a HTML anchor tag containing a hyperlink text reference
2010-09-03 14:33:09 +00:00
* to form a HTML hyperlink.
*
* @param aUrl the url that will be embedded in an anchor tag containing a hyperlink reference
* @param aDescription the optional describing text that will be represented as a hyperlink.
2010-09-03 14:33:09 +00:00
* If not specified the url will be used as hyperlink.
* @return a HTML conform hyperlink like <a href='url'>description</a>
*/
static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
2010-09-03 14:33:09 +00:00
{
wxString hyperlink = wxEmptyString;
if( aDescription.IsEmpty() )
2023-01-17 12:42:30 +00:00
hyperlink << wxS( "<a href='" ) << aUrl << wxS( "'>" ) << aUrl << wxS( "</a>" );
2010-09-03 14:33:09 +00:00
else
2023-01-17 12:42:30 +00:00
hyperlink << wxS( "<a href='" )<< aUrl << wxS( "'>" ) << aDescription << wxS( "</a>" );
2010-09-03 14:33:09 +00:00
return hyperlink;
}
/**
* Create an HTML newline character sequence of \a aCount.
2010-09-03 14:33:09 +00:00
*
* @param aCount the number of HTML newline tags to concatenate, default is to return just
* one <br> tag.
2010-09-03 14:33:09 +00:00
* @return the concatenated amount of HTML newline tag(s) <br>
*/
static wxString HtmlNewline( const unsigned int aCount )
2010-09-03 14:33:09 +00:00
{
wxString newlineTags = wxEmptyString;
for( size_t i = 0; i<aCount; ++i )
2023-01-17 12:42:30 +00:00
newlineTags << wxS( "<br>" );
2010-09-03 14:33:09 +00:00
return newlineTags;
}