KiCad PCB EDA Suite
Loading...
Searching...
No Matches
AboutDialog_main.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2010 Rafael Sokolowski <[email protected]>
5 * Copyright (C) 2010-2023 KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, you may find one here:
19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20 * or you may search the http://www.gnu.org website for the version 2 license,
21 * or you may write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 */
24
25#include <boost/version.hpp>
26#include <wx/aboutdlg.h>
27#include <wx/arrimpl.cpp>
28#include <wx/textctrl.h>
29#include <wx/utils.h>
30
31/* Used icons:
32 * show_3d_xpm; // 3D icon
33 * module_xpm;
34 * icon_kicad_xpm; // Icon of the application
35 */
36#include <bitmaps.h>
37#include <build_version.h>
38#include <common.h>
39#include <kiplatform/app.h>
40#include <pgm_base.h>
41#include <eda_base_frame.h>
42
43#include "aboutinfo.h"
44#include "dialog_about.h"
45
46
47WX_DEFINE_OBJARRAY( CONTRIBUTORS )
48
49// Helper functions:
50static wxString HtmlHyperlink( const wxString& url, const wxString& description = wxEmptyString );
51static wxString HtmlNewline( const unsigned int amount = 1 );
52
53
59{
60 // Set application specific icon
61 aInfo.SetAppIcon( aParent->GetIcon() );
62
63 /* Set title */
64 aInfo.SetAppName( Pgm().App().GetAppName() );
65
66 /* Copyright information */
67 aInfo.SetCopyright( wxT( "(C) 1992-2023 KiCad Developers Team" ) );
68
69 /* KiCad build version */
70 wxString version;
71 version << ( KIPLATFORM::APP::IsOperatingSystemUnsupported() ? wxString( wxS( "(UNSUPPORTED)" ) )
72 : GetBuildVersion() )
73#ifdef DEBUG
74 << wxT( ", debug" )
75#else
76 << wxT( ", release" )
77#endif
78 << wxT( " build" );
79
80 aInfo.SetBuildVersion( version );
81 aInfo.SetBuildDate( GetBuildDate() );
82
83 /* wxWidgets version */
84 wxString libVersion;
85 libVersion << wxGetLibraryVersionInfo().GetVersionString();
86
87 /* Unicode or ANSI version */
88#if wxUSE_UNICODE
89 libVersion << wxT( " Unicode " );
90#else
91 libVersion << wxT( " ANSI " );
92#endif
93
94 // Just in case someone builds KiCad with the platform native of Boost instead of
95 // the version included with the KiCad source.
96 libVersion << wxT( "and Boost " ) << ( BOOST_VERSION / 100000 ) << wxT( "." )
97 << ( BOOST_VERSION / 100 % 1000 ) << wxT( "." ) << ( BOOST_VERSION % 100 )
98 << wxT( "\n" );
99
100 // Operating System Information
101
102 wxPlatformInfo platformInfo;
103
104 libVersion << wxT( "Platform: " ) << wxGetOsDescription() << wxT( ", " )
106
107 aInfo.SetLibVersion( libVersion );
108
109 // info/description part HTML formatted:
110 wxString description;
111
112 /* short description */
113 description << wxT( "<p>" );
114 description << wxT( "<b><u>" )
115 << _( "Description" )
116 << wxT( "</u></b>" ); // bold & underlined font for caption
117
118 description << wxT( "<p>" )
119 << _( "The KiCad EDA Suite is a set of open source applications for the "
120 "creation of electronic schematics and printed circuit boards." )
121 << wxT( "</p>" );
122
123 description << wxT( "</p>" );
124
125 /* websites */
126 description << wxT( "<p><b><u>" )
127 << _( "KiCad on the web" )
128 << wxT( "</u></b>" ); // bold & underlined font for caption
129
130 // bullet-ed list with some http links
131 description << wxT( "<ul>" );
132 description << wxT( "<li>" )
133 << _( "The official KiCad website - " )
134 << HtmlHyperlink( wxS( "http://www.kicad.org" ) )
135 << wxT( "</li>" );
136 description << wxT( "<li>" )
137 << _( "Developer website - " )
138 << HtmlHyperlink( wxS( "https://go.kicad.org/dev" ) )
139 << wxT( "</li>" );
140
141 description << wxT( "<li>" )
142 << _("Official KiCad library repositories - " )
143 << HtmlHyperlink( wxS( "https://go.kicad.org/libraries" ) )
144 << wxT( "</li>" );
145
146 description << wxT( "</ul></p>" );
147
148 description << wxT( "<p><b><u>" )
149 << _( "Bug tracker" )
150 << wxT( "</u></b>" ); // bold & underlined font caption
151
152 // bullet-ed list with some http links
153 description << wxT( "<ul>" );
154 description << wxT( "<li>" )
155 << _( "Report or examine bugs - " )
156 << HtmlHyperlink( wxS( "https://go.kicad.org/bugs" ) )
157 << wxT( "</li>" );
158 description << wxT( "</ul></p>" );
159
160 description << wxT( "<p><b><u>" )
161 << _( "KiCad users group and community" )
162 << wxT( "</u></b>" ); // bold & underlined font caption
163
164 description << wxT( "<ul>" );
165 description << wxT( "<li>" )
166 << _( "KiCad forum - " )
167 << HtmlHyperlink( wxS( "https://go.kicad.org/forum" ) )
168 << wxT( "</li>" );
169
170 description << wxT( "</ul></p>" );
171
172 aInfo.SetDescription( description );
173
174
175 // License information also HTML formatted:
176 wxString license;
177 license
178 << wxT( "<div align='center'>" )
179 << HtmlNewline( 4 )
180 << _( "The complete KiCad EDA Suite is released under the" ) << HtmlNewline( 2 )
181 << HtmlHyperlink( wxS( "http://www.gnu.org/licenses" ),
182 _( "GNU General Public License (GPL) version 3 or any later version" ) )
183 << wxT( "</div>" );
184
185 aInfo.SetLicense( license );
186
187
188 /* A contributor consists of the following information:
189 * Mandatory:
190 * - Name
191 * Optional:
192 * - EMail address
193 * - Category
194 * - Category specific icon
195 *
196 * All contributors of the same category will be enumerated under this category
197 * which should be represented by the same icon.
198 */
199
200 // The core developers
201#define LEAD_DEV _( "Lead Development Team" )
202#define FORMER_DEV _( "Lead Development Alumni" )
203#define CONTRIB_DEV _( "Additional Contributions By")
204 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Pierre Charras" ), LEAD_DEV, nullptr ) );
205 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Wayne Stambaugh" ), LEAD_DEV, nullptr ) );
206
207 // Alphabetical after the first two
208 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Evans" ), LEAD_DEV, nullptr ) );
209 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ), LEAD_DEV, nullptr ) );
210 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seth Hillbrand" ), LEAD_DEV, nullptr ) );
211 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian McInerney" ), LEAD_DEV, nullptr ) );
212 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Roszko" ), LEAD_DEV, nullptr ) );
213 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Pointhuber" ), LEAD_DEV, nullptr ) );
214 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alex Shvartzkop" ), LEAD_DEV, nullptr ) );
215 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mike Williams" ), LEAD_DEV, nullptr ) );
216 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tomasz Wlostowski" ), LEAD_DEV, nullptr ) );
217 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Young" ), LEAD_DEV, nullptr ) );
218
219 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "John Beard" ), FORMER_DEV, nullptr ) );
220 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dick Hollenbeck" ), FORMER_DEV, nullptr ) );
221 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexis Lockwood" ), FORMER_DEV, nullptr ) );
222 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Sidebotham" ), FORMER_DEV, nullptr ) );
223 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Orson (Maciej Sumiński)" ), FORMER_DEV, nullptr ) );
224 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikolaj Wielgus" ), FORMER_DEV, nullptr ) );
225
226 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Aberg" ), CONTRIB_DEV, nullptr ) );
227 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rohan Agrawal" ), CONTRIB_DEV, nullptr ) );
228 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Agricola" ), CONTRIB_DEV, nullptr ) );
229 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nabeel Ahmad" ), CONTRIB_DEV, nullptr ) );
230 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Werner Almesberger" ), CONTRIB_DEV, nullptr ) );
231 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shawn Anastasio" ), CONTRIB_DEV, nullptr ) );
232 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Collin Anderson" ), CONTRIB_DEV, nullptr ) );
233 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tom Andrews" ), CONTRIB_DEV, nullptr ) );
234 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikael Arguedas" ), CONTRIB_DEV, nullptr ) );
235 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lachlan Audas" ), CONTRIB_DEV, nullptr ) );
236 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Noel Avila" ), CONTRIB_DEV, nullptr ) );
237
238 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pascal Baerten" ), CONTRIB_DEV, nullptr ) );
239 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ), CONTRIB_DEV, nullptr ) );
240 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Bashkov" ), CONTRIB_DEV, nullptr ) );
241 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Beardsworth" ), CONTRIB_DEV, nullptr ) );
242 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Beckler" ), CONTRIB_DEV, nullptr ) );
243 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konrad Beckmann" ), CONTRIB_DEV, nullptr ) );
244 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eduardo Behr" ), CONTRIB_DEV, nullptr ) );
245 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "David Beinder" ), CONTRIB_DEV, nullptr ) );
246 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Bennett" ), CONTRIB_DEV, nullptr ) );
247 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Beranek" ), CONTRIB_DEV, nullptr ) );
248 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Francois Berder" ), CONTRIB_DEV, nullptr ) );
249 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gustav Bergquist" ), CONTRIB_DEV, nullptr ) );
250 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cirilo Bernardo" ), CONTRIB_DEV, nullptr ) );
251 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joël Bertrand" ), CONTRIB_DEV, nullptr ) );
252 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Beutling" ), CONTRIB_DEV, nullptr ) );
253 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian F. G. Bidulock" ), CONTRIB_DEV, nullptr ) );
254 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Blanchard" ), CONTRIB_DEV, nullptr ) );
255 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blair Bonnett" ), CONTRIB_DEV, nullptr ) );
256 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Markus Bonk" ), CONTRIB_DEV, nullptr ) );
257 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Franck Bourdonnec" ), CONTRIB_DEV, nullptr ) );
258 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carlo Bramini" ), CONTRIB_DEV, nullptr ) );
259 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Brüns" ), CONTRIB_DEV, nullptr ) );
260 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Buhr" ), CONTRIB_DEV, nullptr ) );
261 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ryan Bunch" ), CONTRIB_DEV, nullptr ) );
262 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Emery Burhan" ), CONTRIB_DEV, nullptr ) );
263
264 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Scott Candey" ), CONTRIB_DEV, nullptr ) );
265 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Phinitnan Chanasabaeng" ), CONTRIB_DEV, nullptr ) );
266 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shivpratap Chauhan" ), CONTRIB_DEV, nullptr ) );
267 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
268 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joseph Y. Chen" ), CONTRIB_DEV, nullptr ) );
269 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexey Chernov" ), CONTRIB_DEV, nullptr ) );
270 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Ciampa" ), CONTRIB_DEV, nullptr ) );
271 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus Comstedt" ), CONTRIB_DEV, nullptr ) );
272 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diogo Condeco" ), CONTRIB_DEV, nullptr ) );
273 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Colin Cooper" ), CONTRIB_DEV, nullptr ) );
274 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabien Corona" ), CONTRIB_DEV, nullptr ) );
275 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Garth Corral" ), CONTRIB_DEV, nullptr ) );
276 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
277 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Cross" ), CONTRIB_DEV, nullptr ) );
278
279 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew D'Addesio" ), CONTRIB_DEV, nullptr ) );
280 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin d'Allens" ), CONTRIB_DEV, nullptr ) );
281 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Greg Davill" ), CONTRIB_DEV, nullptr ) );
282 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Camille Delbegue" ), CONTRIB_DEV, nullptr ) );
283 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Albin Dennevi" ), CONTRIB_DEV, nullptr ) );
284 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ruben De Smet" ), CONTRIB_DEV, nullptr ) );
285 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Dewing" ), CONTRIB_DEV, nullptr ) );
286 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonas Diemer" ), CONTRIB_DEV, nullptr ) );
287 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Dooks" ), CONTRIB_DEV, nullptr ) );
288 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pavel Dovgalyuk" ), CONTRIB_DEV, nullptr ) );
289 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Downing" ), CONTRIB_DEV, nullptr ) );
290 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Dubiec" ), CONTRIB_DEV, nullptr ) );
291
292 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gerd Egidy" ), CONTRIB_DEV, nullptr ) );
293 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean Philippe Eimer" ), CONTRIB_DEV, nullptr ) );
294 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Ellis" ), CONTRIB_DEV, nullptr ) );
295 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oleg Endo" ), CONTRIB_DEV, nullptr ) );
296 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damien Espitallier" ), CONTRIB_DEV, nullptr ) );
297 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul Ewing" ), CONTRIB_DEV, nullptr ) );
298
299 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ), CONTRIB_DEV, nullptr ) );
300 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julian Fellinger" ), CONTRIB_DEV, nullptr ) );
301 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joe Ferner" ), CONTRIB_DEV, nullptr ) );
302 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Fiete" ), CONTRIB_DEV, nullptr ) );
303 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Figueroa" ), CONTRIB_DEV, nullptr ) );
304 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vincenzo Fortunato" ), CONTRIB_DEV, nullptr ) );
305 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Drew Fustini" ), CONTRIB_DEV, nullptr ) );
306
307 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronnie Gaensli" ), CONTRIB_DEV, nullptr ) );
308 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Gagneraud" ), CONTRIB_DEV, nullptr ) );
309 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Gamari" ), CONTRIB_DEV, nullptr ) );
310 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashutosh Gangwar" ), CONTRIB_DEV, nullptr ) );
311 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alessandro Gatti" ), CONTRIB_DEV, nullptr ) );
312 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hal Gentz" ), CONTRIB_DEV, nullptr ) );
313 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Davide Gerhard" ), CONTRIB_DEV, nullptr ) );
314 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Geselbracht" ), CONTRIB_DEV, nullptr ) );
315 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Giulio Girardi" ), CONTRIB_DEV, nullptr ) );
316 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Glass" ), CONTRIB_DEV, nullptr ) );
317 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Golubev" ), CONTRIB_DEV, nullptr ) );
318 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Angus Gratton" ), CONTRIB_DEV, nullptr ) );
319 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Element Green" ), CONTRIB_DEV, nullptr ) );
320 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mathias Grimmberger" ), CONTRIB_DEV, nullptr ) );
321 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johan Grip" ), CONTRIB_DEV, nullptr ) );
322 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hildo Guillardi Júnior" ), CONTRIB_DEV, nullptr ) );
323 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Niki Guldbrand" ), CONTRIB_DEV, nullptr ) );
324 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tanay Gupta" ), CONTRIB_DEV, nullptr ) );
325 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Guy" ), CONTRIB_DEV, nullptr ) );
326 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zoltan Gyarmati" ), CONTRIB_DEV, nullptr ) );
327
328 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Haas" ), CONTRIB_DEV, nullptr ) );
329 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Hämmerling" ), CONTRIB_DEV, nullptr ) );
330 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Hamminga" ), CONTRIB_DEV, nullptr ) );
331 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Scott Hanson" ), CONTRIB_DEV, nullptr ) );
332 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Harris" ), CONTRIB_DEV, nullptr ) );
333 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lukas F. Hartmann" ), CONTRIB_DEV, nullptr ) );
334 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakob Haufe" ), CONTRIB_DEV, nullptr ) );
335 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Aylons Hazzud" ), CONTRIB_DEV, nullptr ) );
336 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Helmert" ), CONTRIB_DEV, nullptr ) );
337 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hartmut Henkel" ), CONTRIB_DEV, nullptr ) );
338 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Henning" ), CONTRIB_DEV, nullptr ) );
339 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paulo Henrique Silva" ), CONTRIB_DEV, nullptr ) );
340 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hans Henry von Tresckow" ), CONTRIB_DEV, nullptr ) );
341 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diego Herranz" ), CONTRIB_DEV, nullptr ) );
342 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Hess" ), CONTRIB_DEV, nullptr ) );
343 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Hros" ), CONTRIB_DEV, nullptr ) );
344 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matt Huszagh" ), CONTRIB_DEV, nullptr ) );
345 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Torsten Hüter" ), CONTRIB_DEV, nullptr ) );
346
347 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Ignacio Romero" ), CONTRIB_DEV, nullptr ) );
348 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Inacio" ), CONTRIB_DEV, nullptr ) );
349 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ), CONTRIB_DEV, nullptr ) );
350 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabián Inostroza" ), CONTRIB_DEV, nullptr ) );
351 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vlad Ivanov" ), CONTRIB_DEV, nullptr ) );
352
353 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "James Jackson" ), CONTRIB_DEV, nullptr ) );
354 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jerry Jacobs" ), CONTRIB_DEV, nullptr ) );
355 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Jacobsen" ), CONTRIB_DEV, nullptr ) );
356 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Jahelka" ), CONTRIB_DEV, nullptr ) );
357 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Janitschke" ), CONTRIB_DEV, nullptr ) );
358 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Jara-Almonte" ), CONTRIB_DEV, nullptr ) );
359 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gilbert J.M. Forkel" ), CONTRIB_DEV, nullptr ) );
360 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Jorge Enríquez" ), CONTRIB_DEV, nullptr ) );
361 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Franck Jullien" ), CONTRIB_DEV, nullptr ) );
362
363 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eeli Kaikkonen" ), CONTRIB_DEV, nullptr ) );
364 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lajos Kamocsay" ), CONTRIB_DEV, nullptr ) );
365 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Povilas Kanapickas" ), CONTRIB_DEV, nullptr ) );
366 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikhail Karpenko" ), CONTRIB_DEV, nullptr ) );
367 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kerusey Karyu" ), CONTRIB_DEV, nullptr ) );
368 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Kavanagh" ), CONTRIB_DEV, nullptr ) );
369 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tom Keddie" ), CONTRIB_DEV, nullptr ) );
370 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Graham Keeth" ), CONTRIB_DEV, nullptr ) );
371 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yury Khalyavin" ), CONTRIB_DEV, nullptr ) );
372 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ), CONTRIB_DEV, nullptr ) );
373 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gary Kim" ), CONTRIB_DEV, nullptr ) );
374 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ingo Kletti" ), CONTRIB_DEV, nullptr ) );
375 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kliment" ), CONTRIB_DEV, nullptr ) );
376 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Sylwester Kocjan" ), CONTRIB_DEV, nullptr ) );
377 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Clemens Koller" ), CONTRIB_DEV, nullptr ) );
378 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Asuki Kono" ), CONTRIB_DEV, nullptr ) );
379 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakub Kozdon" ), CONTRIB_DEV, nullptr ) );
380 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hajo Nils Krabbenhöft" ), CONTRIB_DEV, nullptr ) );
381 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Kueppers" ), CONTRIB_DEV, nullptr ) );
382 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martijn Kuipers" ), CONTRIB_DEV, nullptr ) );
383
384 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robbert Lagerweij" ), CONTRIB_DEV, nullptr ) );
385 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dimitris Lampridis" ), CONTRIB_DEV, nullptr ) );
386 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Langer" ), CONTRIB_DEV, nullptr ) );
387 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Lannen" ), CONTRIB_DEV, nullptr ) );
388 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mika Laitio" ), CONTRIB_DEV, nullptr ) );
389 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Floris Lambrechts" ), CONTRIB_DEV, nullptr ) );
390 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "lê văn lập" ), CONTRIB_DEV, nullptr ) );
391 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Lazarev" ), CONTRIB_DEV, nullptr ) );
392 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dag Lem" ), CONTRIB_DEV, nullptr ) );
393 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ludovic Léau-mercier" ), CONTRIB_DEV, nullptr ) );
394 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul LeoNerd Evens" ), CONTRIB_DEV, nullptr ) );
395 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonatan Liljedahl" ), CONTRIB_DEV, nullptr ) );
396 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Huanyin Liu" ), CONTRIB_DEV, nullptr ) );
397 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Lunev" ), CONTRIB_DEV, nullptr ) );
398 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Lutsenko" ), CONTRIB_DEV, nullptr ) );
399 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Luzeiro" ), CONTRIB_DEV, nullptr ) );
400
401 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Maibaum" ), CONTRIB_DEV, nullptr ) );
402 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Majchrzycki" ), CONTRIB_DEV, nullptr ) );
403 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Daniel Majewski" ), CONTRIB_DEV, nullptr ) );
404 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rachel Mant" ), CONTRIB_DEV, nullptr ) );
405 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lorenzo Marcantonio" ), CONTRIB_DEV, nullptr ) );
406 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miklós Márton" ), CONTRIB_DEV, nullptr ) );
407 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Mattila" ), CONTRIB_DEV, nullptr ) );
408 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Steffen Mauch" ), CONTRIB_DEV, nullptr ) );
409 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Mayton" ), CONTRIB_DEV, nullptr ) );
410 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Maui" ), CONTRIB_DEV, nullptr ) );
411 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kirill Mavreshko" ), CONTRIB_DEV, nullptr ) );
412 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miles McCoo" ), CONTRIB_DEV, nullptr ) );
413 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Charles McDowell" ), CONTRIB_DEV, nullptr ) );
414 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Moses McKnight" ), CONTRIB_DEV, nullptr ) );
415 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin McNamara" ), CONTRIB_DEV, nullptr ) );
416 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cameron McQuinn" ), CONTRIB_DEV, nullptr ) );
417 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ievgenii Meshcheriakov" ), CONTRIB_DEV, nullptr ) );
418 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashley Mills" ), CONTRIB_DEV, nullptr ) );
419 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Moench-Tegeder" ), CONTRIB_DEV, nullptr ) );
420 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Peter Montgomery" ), CONTRIB_DEV, nullptr ) );
421 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alejandro García Montoro" ), CONTRIB_DEV, nullptr ) );
422 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Chris Morgan" ), CONTRIB_DEV, nullptr ) );
423 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Felix Morgner" ), CONTRIB_DEV, nullptr ) );
424 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Mrázek" ), CONTRIB_DEV, nullptr ) );
425
426 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Narigon" ), CONTRIB_DEV, nullptr ) );
427 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Neal" ), CONTRIB_DEV, nullptr ) );
428 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bastian Neumann" ), CONTRIB_DEV, nullptr ) );
429 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Daniil Nikolaev" ), CONTRIB_DEV, nullptr ) );
430 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristian Nielsen" ), CONTRIB_DEV, nullptr ) );
431 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Nogueira" ), CONTRIB_DEV, nullptr ) );
432 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Allan Nordhøy" ), CONTRIB_DEV, nullptr ) );
433 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henrik Nyberg" ), CONTRIB_DEV, nullptr ) );
434
435 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristoffer Ödmark" ), CONTRIB_DEV, nullptr ) );
436 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Russell Oliver" ), CONTRIB_DEV, nullptr ) );
437 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jason Oster" ), CONTRIB_DEV, nullptr ) );
438
439 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Palazzolo" ), CONTRIB_DEV, nullptr ) );
440 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "luz paz" ), CONTRIB_DEV, nullptr ) );
441 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miguel Angel Ajo Pelayo" ), CONTRIB_DEV, nullptr ) );
442 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Patrick Pereira" ), CONTRIB_DEV, nullptr ) );
443 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jacobo Aragunde Perez" ), CONTRIB_DEV, nullptr ) );
444 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Petroff" ), CONTRIB_DEV, nullptr ) );
445 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Pfister" ), CONTRIB_DEV, nullptr ) );
446 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Pfluger" ), CONTRIB_DEV, nullptr ) );
447 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Piccioni" ), CONTRIB_DEV, nullptr ) );
448 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nicolas Planel" ), CONTRIB_DEV, nullptr ) );
449 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carl Poirier" ), CONTRIB_DEV, nullptr ) );
450 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Reece Pollack" ), CONTRIB_DEV, nullptr ) );
451 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alain Portal" ), CONTRIB_DEV, nullptr ) );
452 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrei Pozolotin" ), CONTRIB_DEV, nullptr ) );
453 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Antia Puentes" ), CONTRIB_DEV, nullptr ) );
454 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zoltan Puskas" ), CONTRIB_DEV, nullptr ) );
455 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heikki Pulkkinen" ), CONTRIB_DEV, nullptr ) );
456
457 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Morgan Quigley" ), CONTRIB_DEV, nullptr ) );
458
459 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Barabas Raffai" ), CONTRIB_DEV, nullptr ) );
460 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Urja Rannikko" ), CONTRIB_DEV, nullptr ) );
461 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joshua Redstone" ), CONTRIB_DEV, nullptr ) );
462 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michele Renda" ), CONTRIB_DEV, nullptr ) );
463 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Samuel Reynaud" ), CONTRIB_DEV, nullptr ) );
464 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dmitry Rezvanov" ), CONTRIB_DEV, nullptr ) );
465 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Richter" ), CONTRIB_DEV, nullptr ) );
466 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Riehl" ), CONTRIB_DEV, nullptr ) );
467 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thiadmer Riemersma" ), CONTRIB_DEV, nullptr ) );
468 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gregor Riepl" ), CONTRIB_DEV, nullptr ) );
469 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "RigoLigoRLC" ), CONTRIB_DEV, nullptr ) );
470 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ), CONTRIB_DEV, nullptr ) );
471 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lubomir Rintel" ), CONTRIB_DEV, nullptr ) );
472 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Rolim" ), CONTRIB_DEV, nullptr ) );
473 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus A. Romer" ), CONTRIB_DEV, nullptr ) );
474 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heiko Rosemann" ), CONTRIB_DEV, nullptr ) );
475 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Rossi" ), CONTRIB_DEV, nullptr ) );
476 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian Roth" ), CONTRIB_DEV, nullptr ) );
477
478 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "J. Morio Sakaguchi" ), CONTRIB_DEV, nullptr ) );
479 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schaak" ), CONTRIB_DEV, nullptr ) );
480 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ross Schlaikjer" ), CONTRIB_DEV, nullptr ) );
481 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julius Schmidt" ), CONTRIB_DEV, nullptr ) );
482 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Felix Schneider" ), CONTRIB_DEV, nullptr ) );
483 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marvin Schmidt" ), CONTRIB_DEV, nullptr ) );
484 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carsten Schoenert" ), CONTRIB_DEV, nullptr ) );
485 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schubert" ), CONTRIB_DEV, nullptr ) );
486 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Schulz" ), CONTRIB_DEV, nullptr ) );
487 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adrian Scripca" ), CONTRIB_DEV, nullptr ) );
488 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pradeepa Senanayake" ), CONTRIB_DEV, nullptr ) );
489 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
490 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Severinsen" ), CONTRIB_DEV, nullptr ) );
491 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cheng Sheng" ), CONTRIB_DEV, nullptr ) );
492 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yang Sheng" ), CONTRIB_DEV, nullptr ) );
493 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Chetan Shinde" ), CONTRIB_DEV, nullptr ) );
494 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Shuklin" ), CONTRIB_DEV, nullptr ) );
495 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Slawomir Siudym" ), CONTRIB_DEV, nullptr ) );
496 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
497 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Guillaume Simard" ), CONTRIB_DEV, nullptr ) );
498 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Sivak" ), CONTRIB_DEV, nullptr ) );
499 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ), CONTRIB_DEV, nullptr ) );
500 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Sliwa" ), CONTRIB_DEV, nullptr ) );
501 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blake Smith" ), CONTRIB_DEV, nullptr ) );
502 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Sojka" ), CONTRIB_DEV, nullptr ) );
503 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rafael Sokolowski" ), CONTRIB_DEV, nullptr ) );
504 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vesa Solonen" ), CONTRIB_DEV, nullptr ) );
505 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronald Sousa" ), CONTRIB_DEV, nullptr ) );
506 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Craig Southeren" ), CONTRIB_DEV, nullptr ) );
507 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Spindler" ), CONTRIB_DEV, nullptr ) );
508 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seppe Stas" ), CONTRIB_DEV, nullptr ) );
509 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bernhard Stegmaier" ), CONTRIB_DEV, nullptr ) );
510 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Steinberg" ), CONTRIB_DEV, nullptr ) );
511 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Sterbik" ), CONTRIB_DEV, nullptr ) );
512 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Stock" ), CONTRIB_DEV, nullptr ) );
513 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Stoilov" ), CONTRIB_DEV, nullptr ) );
514 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroki Suenaga" ), CONTRIB_DEV, nullptr ) );
515
516 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Thorén" ), CONTRIB_DEV, nullptr ) );
517 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ), CONTRIB_DEV, nullptr ) );
518
519 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Ur" ), CONTRIB_DEV, nullptr ) );
520 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthias Urlichs" ), CONTRIB_DEV, nullptr ) );
521 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Uryvaev" ), CONTRIB_DEV, nullptr ) );
522
523 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henri Valta" ), CONTRIB_DEV, nullptr ) );
524 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dave Vandenbout" ), CONTRIB_DEV, nullptr ) );
525 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Edwin van den Oetelaar" ), CONTRIB_DEV, nullptr ) );
526 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark van Doesburg" ), CONTRIB_DEV, nullptr ) );
527 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Varesano" ), CONTRIB_DEV, nullptr ) );
528 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Benjamin Vernoux" ), CONTRIB_DEV, nullptr ) );
529 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Villaro-Dixon" ), CONTRIB_DEV, nullptr ) );
530 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Forrest Voight" ), CONTRIB_DEV, nullptr ) );
531 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tormod Volden" ), CONTRIB_DEV, nullptr ) );
532
533 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Wågen" ), CONTRIB_DEV, nullptr ) );
534 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oliver Walters" ), CONTRIB_DEV, nullptr ) );
535 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Warner" ), CONTRIB_DEV, nullptr ) );
536 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Weatherill" ), CONTRIB_DEV, nullptr ) );
537 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Weber" ), CONTRIB_DEV, nullptr ) );
538 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bevan Weiss" ), CONTRIB_DEV, nullptr ) );
539 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Wells" ), CONTRIB_DEV, nullptr ) );
540 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Wernberger" ), CONTRIB_DEV, nullptr ) );
541 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Winters" ), CONTRIB_DEV, nullptr ) );
542 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adam Wolf" ), CONTRIB_DEV, nullptr ) );
543 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrzej Wolski" ), CONTRIB_DEV, nullptr ) );
544 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damian Wrobel" ), CONTRIB_DEV, nullptr ) );
545 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Wygle" ), CONTRIB_DEV, nullptr ) );
546
547 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jiaxun Yang" ), CONTRIB_DEV, nullptr ) );
548 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robert Yates" ), CONTRIB_DEV, nullptr ) );
549 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yegor Yefremov" ), CONTRIB_DEV, nullptr ) );
550 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kenta Yonekura" ), CONTRIB_DEV, nullptr ) );
551
552 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Zakamaldin" ), CONTRIB_DEV, nullptr ) );
553 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Zeeman" ), CONTRIB_DEV, nullptr ) );
554 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henner Zeller" ), CONTRIB_DEV, nullptr ) );
555 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Zonenberg" ), CONTRIB_DEV, nullptr ) );
556 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Zeilhofer" ), CONTRIB_DEV, nullptr ) );
557 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Zheng" ), CONTRIB_DEV, nullptr ) );
558
559 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Østergaard" ), CONTRIB_DEV, nullptr ) );
560 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "木 王" ), CONTRIB_DEV, nullptr ) );
561
562 // The document writers
563 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jean-Pierre Charras" ) ) );
564 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Marco Ciampa" ) ) );
565 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jon Evans" ) ) );
566 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Dick Hollenbeck" ) ) );
567 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Graham Keeth" ) ) );
568 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Igor Plyatov" ) ) );
569 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Wayne Stambaugh" ) ) );
570 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ) ) );
571
572 /* The translators
573 * As category the language to which the translation was done is used
574 */
575 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ondřej Čertík" ),
576 wxEmptyString,
577 wxEmptyString,
578 wxS( "Czech (CS)" ) ) );
579 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Martin Kratoška" ),
580 wxEmptyString,
581 wxEmptyString,
582 wxS( "Czech (CS)" ) ) );
583 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Radek Kuznik" ),
584 wxEmptyString,
585 wxEmptyString,
586 wxS( "Czech (CS)" ) ) );
587 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roman Ondráček" ),
588 wxEmptyString,
589 wxEmptyString,
590 wxS( "Czech (CS)" ) ) );
591 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "René Široký" ),
592 wxEmptyString,
593 wxEmptyString,
594 wxS( "Czech (CS)" ) ) );
595 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Straka" ),
596 wxEmptyString,
597 wxEmptyString,
598 wxS( "Czech (CS)" ) ) );
599 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Vykydal" ),
600 wxEmptyString,
601 wxEmptyString,
602 wxS( "Czech (CS)" ) ) );
603
604 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Mads Dyrmann" ),
605 wxEmptyString,
606 wxEmptyString,
607 wxS( "Danish (DA)" ) ) );
608 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Henrik Kauhanen" ),
609 wxEmptyString,
610 wxEmptyString,
611 wxS( "Danish (DA)" ) ) );
612 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Nick Østergaard" ),
613 wxEmptyString,
614 wxEmptyString,
615 wxS( "Danish (DA)" ) ) );
616
617 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Ivan Chuba" ),
618 wxEmptyString,
619 wxEmptyString,
620 wxS( "German (DE)" ) ) );
621 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Benedikt Freisen" ),
622 wxEmptyString,
623 wxEmptyString,
624 wxS( "German (DE)" ) ) );
625 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Jonathan Haas" ),
626 wxEmptyString,
627 wxEmptyString,
628 wxS( "German (DE)" ) ) );
629 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Hämmerling" ),
630 wxEmptyString,
631 wxEmptyString,
632 wxS( "German (DE)" ) ) );
633 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
634 wxEmptyString,
635 wxEmptyString,
636 wxS( "German (DE)" ) ) );
637 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mathias Neumann" ),
638 wxEmptyString,
639 wxEmptyString,
640 wxS( "German (DE)" ) ) );
641 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dominik Wernberger" ),
642 wxEmptyString,
643 wxEmptyString,
644 wxS( "German (DE)" ) ) );
645
646 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Manolis Stefanis" ),
647 wxEmptyString,
648 wxEmptyString,
649 wxS( "Greek (el_GR)" ) ) );
650 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Athanasios Vlastos" ),
651 wxEmptyString,
652 wxEmptyString,
653 wxS( "Greek (el_GR)" ) ) );
654 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Milonas Kostas" ),
655 wxEmptyString,
656 wxEmptyString,
657 wxS( "Greek (el_GR)" ) ) );
658 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Michail Misirlis" ),
659 wxEmptyString,
660 wxEmptyString,
661 wxS( "Greek (el_GR)" ) ) );
662 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Aristeidis Kimirtzis" ),
663 wxEmptyString,
664 wxEmptyString,
665 wxS( "Greek (el_GR)" ) ) );
666
667 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Adolfo Jayme Barrientos" ),
668 wxEmptyString,
669 wxEmptyString,
670 wxS( "Spanish (ES)" ) ) );
671 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ),
672 wxEmptyString,
673 wxEmptyString,
674 wxS( "Spanish (ES)" ) ) );
675 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Figuero" ),
676 wxEmptyString,
677 wxEmptyString,
678 wxS( "Spanish (ES)" ) ) );
679 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
680 wxEmptyString,
681 wxEmptyString,
682 wxS( "Spanish (ES)" ) ) );
683 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Pedro Martin del Valle" ),
684 wxEmptyString,
685 wxEmptyString,
686 wxS( "Spanish (ES)" ) ) );
687 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jose Perez" ),
688 wxEmptyString,
689 wxEmptyString,
690 wxS( "Spanish (ES)" ) ) );
691 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
692 wxEmptyString,
693 wxEmptyString,
694 wxS( "Spanish (ES)" ) ) );
695 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "VicSanRoPe" ),
696 wxEmptyString,
697 wxEmptyString,
698 wxS( "Spanish - Latin American (ES)" ) ) );
699
700 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ulices Avila Hernandez" ),
701 wxEmptyString,
702 wxEmptyString,
703 wxS( "Spanish - Latin American (ES)" ) ) );
704
705 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Vesa Solonen" ),
706 wxEmptyString,
707 wxEmptyString,
708 wxS( "Finnish (FI)" ) ) );
709 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Alex Gellen" ),
710 wxEmptyString,
711 wxEmptyString,
712 wxS( "Finnish (FI)" ) ) );
713 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Toni Laiho" ),
714 wxEmptyString,
715 wxEmptyString,
716 wxS( "Finnish (FI)" ) ) );
717 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
718 wxEmptyString,
719 wxEmptyString,
720 wxS( "Finnish (FI)" ) ) );
721 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "J. Lavoie" ),
722 wxEmptyString,
723 wxEmptyString,
724 wxS( "Finnish (FI)" ) ) );
725 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Purkka Koodari" ),
726 wxEmptyString,
727 wxEmptyString,
728 wxS( "Finnish (FI)" ) ) );
729 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Simo Mattila" ),
730 wxEmptyString,
731 wxEmptyString,
732 wxS( "Finnish (FI)" ) ) );
733 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Petri Niemelä" ),
734 wxEmptyString,
735 wxEmptyString,
736 wxS( "Finnish (FI)" ) ) );
737 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ),
738 wxEmptyString,
739 wxEmptyString,
740 wxS( "Finnish (FI)" ) ) );
741 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Riku Viitanen" ),
742 wxEmptyString,
743 wxEmptyString,
744 wxS( "Finnish (FI)" ) ) );
745
746 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jean-Pierre Charras" ),
747 wxEmptyString,
748 wxEmptyString,
749 wxS( "French (FR)" ) ) );
750
751 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Marco Ciampa" ),
752 wxEmptyString,
753 wxEmptyString,
754 wxS( "Italian (IT)" ) ) );
755
756 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
757 wxEmptyString,
758 wxEmptyString,
759 wxS( "Japanese (JA)" ) ) );
760 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hidemichi Gotou" ),
761 wxEmptyString,
762 wxEmptyString,
763 wxS( "Japanese (JA)" ) ) );
764 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ),
765 wxEmptyString,
766 wxEmptyString,
767 wxS( "Japanese (JA)" ) ) );
768 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Keisuke Nakao" ),
769 wxEmptyString,
770 wxEmptyString,
771 wxS( "Japanese (JA)" ) ) );
772 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Norio Suzuki" ),
773 wxEmptyString,
774 wxEmptyString,
775 wxS( "Japanese (JA)" ) ) );
776 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "starfort-jp" ),
777 wxEmptyString,
778 wxEmptyString,
779 wxS( "Japanese (JA)" ) ) );
780 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ),
781 wxEmptyString,
782 wxEmptyString,
783 wxS( "Japanese (JA)" ) ) );
784 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kenta Yonekura" ),
785 wxEmptyString,
786 wxEmptyString,
787 wxS( "Japanese (JA)" ) ) );
788 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kaoru Zenyouji" ),
789 wxEmptyString,
790 wxEmptyString,
791 wxS( "Japanese (JA)" ) ) );
792
793 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "킴슨김랑기" ),
794 wxEmptyString,
795 wxEmptyString,
796 wxS( "Korean (KO)" ) ) );
797 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
798 wxEmptyString,
799 wxEmptyString,
800 wxS( "Korean (KO)" ) ) );
801 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jeongsuAn" ),
802 wxEmptyString,
803 wxEmptyString,
804 wxS( "Korean (KO)" ) ) );
805 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이상수" ),
806 wxEmptyString,
807 wxEmptyString,
808 wxS( "Korean (KO)" ) ) );
809 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jehunseo" ),
810 wxEmptyString,
811 wxEmptyString,
812 wxS( "Korean (KO)" ) ) );
813 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Uibeom Jung" ),
814 wxEmptyString,
815 wxEmptyString,
816 wxS( "Korean (KO)" ) ) );
817 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박준언" ),
818 wxEmptyString,
819 wxEmptyString,
820 wxS( "Korean (KO)" ) ) );
821 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "방준영" ),
822 wxEmptyString,
823 wxEmptyString,
824 wxS( "Korean (KO)" ) ) );
825 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박기정" ),
826 wxEmptyString,
827 wxEmptyString,
828 wxS( "Korean (KO)" ) ) );
829 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "hokim" ),
830 wxEmptyString,
831 wxEmptyString,
832 wxS( "Korean (KO)" ) ) );
833 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김낙환" ),
834 wxEmptyString,
835 wxEmptyString,
836 wxS( "Korean (KO)" ) ) );
837 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이기형" ),
838 wxEmptyString,
839 wxEmptyString,
840 wxS( "Korean (KO)" ) ) );
841 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "남우근" ),
842 wxEmptyString,
843 wxEmptyString,
844 wxS( "Korean (KO)" ) ) );
845 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "강명구" ),
846 wxEmptyString,
847 wxEmptyString,
848 wxS( "Korean (KO)" ) ) );
849 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김용재" ),
850 wxEmptyString,
851 wxEmptyString,
852 wxS( "Korean (KO)" ) ) );
853 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "서범기" ),
854 wxEmptyString,
855 wxEmptyString,
856 wxS( "Korean (KO)" ) ) );
857 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김세영" ),
858 wxEmptyString,
859 wxEmptyString,
860 wxS( "Korean (KO)" ) ) );
861 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이윤성" ),
862 wxEmptyString,
863 wxEmptyString,
864 wxS( "Korean (KO)" ) ) );
865 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "KwonHyeokbeom" ),
866 wxEmptyString,
867 wxEmptyString,
868 wxS( "Korean (KO)" ) ) );
869 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Minsu Kim (0xGabriel)" ),
870 wxEmptyString,
871 wxEmptyString,
872 wxS( "Korean (KO)" ) ) );
873
874 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
875 wxEmptyString,
876 wxEmptyString,
877 wxS( "Lithuanian (LT)" ) ) );
878 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dainius Mazuika" ),
879 wxEmptyString,
880 wxEmptyString,
881 wxS( "Lithuanian (LT)" ) ) );
882
883 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Arend-Jan van Hilten" ),
884 wxEmptyString,
885 wxEmptyString,
886 wxS( "Dutch (NL)" ) ) );
887 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "CJ van der Hoeven" ),
888 wxEmptyString,
889 wxEmptyString,
890 wxS( "Dutch (NL)" ) ) );
891 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Pim Jansen" ),
892 wxEmptyString,
893 wxEmptyString,
894 wxS( "Dutch (NL)" ) ) );
895 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
896 wxEmptyString,
897 wxEmptyString,
898 wxS( "Dutch (NL)" ) ) );
899 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Bas Wijnen" ),
900 wxEmptyString,
901 wxEmptyString,
902 wxS( "Dutch (NL)" ) ) );
903 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Tom Niesse" ),
904 wxEmptyString,
905 wxEmptyString,
906 wxS( "Dutch (NL)" ) ) );
907 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Christiaan Nieuwlaat" ),
908 wxEmptyString,
909 wxEmptyString,
910 wxS( "Dutch (NL)" ) ) );
911
912 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jarl Gjessing" ),
913 wxEmptyString,
914 wxEmptyString,
915 wxS( "Norwegian (NO)" ) ) );
916 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
917 wxEmptyString,
918 wxEmptyString,
919 wxS( "Norwegian (NO)" ) ) );
920 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
921 wxEmptyString,
922 wxEmptyString,
923 wxS( "Norwegian (NO)" ) ) );
924 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Petter Reinholdtsen" ),
925 wxEmptyString,
926 wxEmptyString,
927 wxS( "Norwegian (NO)" ) ) );
928 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Håvard Syslak" ),
929 wxEmptyString,
930 wxEmptyString,
931 wxS( "Norwegian (NO)" ) ) );
932
933 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ivan Chuba" ),
934 wxEmptyString,
935 wxEmptyString,
936 wxS( "Polish (PL)" ) ) );
937 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kerusey Karyu" ),
938 wxEmptyString,
939 wxEmptyString,
940 wxS( "Polish (PL)" ) ) );
941 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Krzysztof Kawa" ),
942 wxEmptyString,
943 wxEmptyString,
944 wxS( "Polish (PL)" ) ) );
945 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Roszko" ),
946 wxEmptyString,
947 wxEmptyString,
948 wxS( "Polish (PL)" ) ) );
949 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ),
950 wxEmptyString,
951 wxEmptyString,
952 wxS( "Polish (PL)" ) ) );
953 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Grzegorz Szymaszek" ),
954 wxEmptyString,
955 wxEmptyString,
956 wxS( "Polish (PL)" ) ) );
957 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "ZbeeGin" ),
958 wxEmptyString,
959 wxEmptyString,
960 wxS( "Polish (PL)" ) ) );
961
962 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
963 wxEmptyString,
964 wxEmptyString,
965 wxS( "Brazilian Portuguese (PT_BR)" ) ) );
966 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Wellington Terumi Uemura" ),
967 wxEmptyString,
968 wxEmptyString,
969 wxS( "Brazilian Portuguese (PT_BR)" ) ) );
970
971 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
972 wxEmptyString,
973 wxEmptyString,
974 wxS( "Portuguese (PT)" ) ) );
975 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Renie Marquet" ),
976 wxEmptyString,
977 wxEmptyString,
978 wxS( "Portuguese (PT)" ) ) );
979 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rafael Silva" ),
980 wxEmptyString,
981 wxEmptyString,
982 wxS( "Portuguese (PT)" ) ) );
983 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "ssantos" ),
984 wxEmptyString,
985 wxEmptyString,
986 wxS( "Portuguese (PT)" ) ) );
987
988 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Igor Plyatov" ),
989 wxEmptyString,
990 wxEmptyString,
991 wxS( "Russian (RU)" ) ) );
992 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Дмитрий Дёмин" ),
993 wxEmptyString,
994 wxEmptyString,
995 wxS( "Russian (RU)" ) ) );
996 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ),
997 wxEmptyString,
998 wxEmptyString,
999 wxS( "Russian (RU)" ) ) );
1000 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ),
1001 wxEmptyString,
1002 wxEmptyString,
1003 wxS( "Russian (RU)" ) ) );
1004 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ),
1005 wxEmptyString,
1006 wxEmptyString,
1007 wxS( "Russian (RU)" ) ) );
1008
1009 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hanna Breisand" ),
1010 wxEmptyString,
1011 wxEmptyString,
1012 wxS( "Swedish (SV)" ) ) );
1013 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Axel Henriksson" ),
1014 wxEmptyString,
1015 wxEmptyString,
1016 wxS( "Swedish (SV)" ) ) );
1017 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Richard Jonsson" ),
1018 wxEmptyString,
1019 wxEmptyString,
1020 wxS( "Swedish (SV)" ) ) );
1021 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
1022 wxEmptyString,
1023 wxEmptyString,
1024 wxS( "Swedish (SV)" ) ) );
1025 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
1026 wxEmptyString,
1027 wxEmptyString,
1028 wxS( "Swedish (SV)" ) ) );
1029
1030 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Boonchai Kingrungped" ),
1031 wxEmptyString,
1032 wxEmptyString,
1033 wxS( "Thai (TH)" ) ) );
1034
1035 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Artem" ),
1036 wxEmptyString,
1037 wxEmptyString,
1038 wxS( "Ukrainian (UK)" ) ) );
1039 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ivan Chuba" ),
1040 wxEmptyString,
1041 wxEmptyString,
1042 wxS( "Ukrainian (UK)" ) ) );
1043 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Stanislav Kaliuk" ),
1044 wxEmptyString,
1045 wxEmptyString,
1046 wxS( "Ukrainian (UK)" ) ) );
1047 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Alexsandr Kuzemko" ),
1048 wxEmptyString,
1049 wxEmptyString,
1050 wxS( "Ukrainian (UK)" ) ) );
1051 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Andrii Shelestov" ),
1052 wxEmptyString,
1053 wxEmptyString,
1054 wxS( "Ukrainian (UK)" ) ) );
1055
1056 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Liu Guang" ),
1057 wxEmptyString,
1058 wxEmptyString,
1059 wxS( "Simplified Chinese (zh_CN)" ) ) );
1060 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
1061 wxEmptyString,
1062 wxEmptyString,
1063 wxS( "Simplified Chinese (zh_CN)" ) ) );
1064 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dingzhong Chen" ),
1065 wxEmptyString,
1066 wxEmptyString,
1067 wxS( "Simplified Chinese (zh_CN)" ) ) );
1068 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
1069 wxEmptyString,
1070 wxEmptyString,
1071 wxS( "Simplified Chinese (zh_CN)" ) ) );
1072 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eric" ),
1073 wxEmptyString,
1074 wxEmptyString,
1075 wxS( "Simplified Chinese (zh_CN)" ) ) );
1076 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rigo Ligo" ),
1077 wxEmptyString,
1078 wxEmptyString,
1079 wxS( "Simplified Chinese (zh_CN)" ) ) );
1080 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Huanyin Liu" ),
1081 wxEmptyString,
1082 wxEmptyString,
1083 wxS( "Simplified Chinese (zh_CN)" ) ) );
1084 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "yangyangdaji" ),
1085 wxEmptyString,
1086 wxEmptyString,
1087 wxS( "Simplified Chinese (zh_CN)" ) ) );
1088 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Tian Yunhao" ),
1089 wxEmptyString,
1090 wxEmptyString,
1091 wxS( "Simplified Chinese (zh_CN)" ) ) );
1092
1093 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
1094 wxEmptyString,
1095 wxEmptyString,
1096 wxS( "Traditional Chinese (zh_TW)" ) ) );
1097 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "pon dahai" ),
1098 wxEmptyString,
1099 wxEmptyString,
1100 wxS( "Traditional Chinese (zh_TW)" ) ) );
1101 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "kai chiao chuang" ),
1102 wxEmptyString,
1103 wxEmptyString,
1104 wxS( "Traditional Chinese (zh_TW)" ) ) );
1105 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
1106 wxEmptyString,
1107 wxEmptyString,
1108 wxS( "Traditional Chinese (zh_TW)" ) ) );
1109 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "william" ),
1110 wxEmptyString,
1111 wxEmptyString,
1112 wxS( "Traditional Chinese (zh_TW)" ) ) );
1113
1114 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Remy Halvick" ),
1115 wxEmptyString,
1116 wxEmptyString,
1117 wxS( "Other" ) ) );
1118
1119 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "David J S Briscoe" ),
1120 wxEmptyString,
1121 wxEmptyString,
1122 wxS( "Other" ) ) );
1123
1124 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Dominique Laigle" ),
1125 wxEmptyString,
1126 wxEmptyString,
1127 wxS( "Other" ) ) );
1128
1129 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Paul Burke" ),
1130 wxEmptyString,
1131 wxEmptyString,
1132 wxS( "Other" ) ) );
1133
1134
1135 // Program credits for library team
1136 #define LIBRARIANS _( "KiCad Librarian Team" )
1137 // Lead librarians
1138 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "cpresser"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1139
1140 // Active librarians
1141 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Aristeidis Kimirtzis"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1142 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "apo"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1143 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Armin Schoisswohl"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1144 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Carlos Nieves Ónega"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1145 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Dash Peters"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1146 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jan Sebastian Götte (jaseg)"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1147 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Greg Cormier"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1148 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jeremy Boynes"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1149 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jorge Neiva"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1150 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Kliment"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1151 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Andrew Lutsenko"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1152
1153 // Former librarians
1154 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Christian Schlüter"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1155 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Rene Poeschl"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1156 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Antonio Vázquez Blanco "), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1157 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Daniel Giesbrecht"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1158 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Otavio Augusto Gomes"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1159 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "herostrat"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1160 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Diego Herranz"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1161 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Joel Guittet"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1162 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Chris Morgan"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1163 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Thomas Pointhuber"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1164 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Evan Shultz"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1165 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Bob Cousins"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1166 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "nickoe"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1167 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Oliver Walters"), LIBRARIANS, aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1168
1169 #define MODELS_3D_CONTRIBUTION _( "3D models by" )
1170 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Maui" ),
1171 wxS( "https://github.com/easyw" ),
1172 wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D-generator" ),
1174 aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
1175 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
1176 wxEmptyString,
1177 wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D/-/graphs/master" ),
1179 aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
1180
1181 #define SYMBOL_LIB_CONTRIBUTION _( "Symbols by" )
1182 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
1183 wxEmptyString,
1184 wxS( "https://gitlab.com/kicad/libraries/kicad-symbols/-/graphs/master" ),
1187
1188 #define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints by" )
1189 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Thomas Pointhuber" ),
1190 wxEmptyString,
1191 wxS( "https://gitlab.com/kicad/libraries/kicad-footprint-generator" ),
1193 aInfo.CreateKiBitmap( BITMAPS::module ) ) );
1194 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
1195 wxEmptyString,
1196 wxS( "https://gitlab.com/kicad/libraries/kicad-footprints/-/graphs/master" ),
1198 aInfo.CreateKiBitmap( BITMAPS::module ) ) );
1199
1200 // Program credits for icons
1201 #define ICON_CONTRIBUTION _( "Icons by" )
1202 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Aleksandr Zyrianov" ),
1203 wxEmptyString,
1204 wxEmptyString,
1206 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
1207 wxEmptyString,
1208 wxEmptyString,
1210 aInfo.AddArtist( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ),
1211 wxEmptyString,
1212 wxEmptyString,
1214
1215 // Program credits for package developers.
1216 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Steven Falco" ) ) );
1217 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Jean-Samuel Reynaud" ) ) );
1218 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Bernhard Stegmaier" ) ) );
1219 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Adam Wolf" ) ) );
1220 aInfo.AddPackager( new CONTRIBUTOR( wxT( "Nick Østergaard" ) ) );
1221}
1222
1223
1225{
1227 buildKicadAboutBanner( aParent, info );
1228
1229 DIALOG_ABOUT dlg( aParent, info );
1230 dlg.ShowModal();
1231}
1232
1233
1237
1247static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
1248{
1249 wxString hyperlink = wxEmptyString;
1250
1251 if( aDescription.IsEmpty() )
1252 hyperlink << wxS( "<a href='" ) << aUrl << wxS( "'>" ) << aUrl << wxS( "</a>" );
1253 else
1254 hyperlink << wxS( "<a href='" )<< aUrl << wxS( "'>" ) << aDescription << wxS( "</a>" );
1255
1256 return hyperlink;
1257}
1258
1259
1267static wxString HtmlNewline( const unsigned int aCount )
1268{
1269 wxString newlineTags = wxEmptyString;
1270
1271 for( size_t i = 0; i<aCount; ++i )
1272 newlineTags << wxS( "<br>" );
1273
1274 return newlineTags;
1275}
#define MODELS_3D_CONTRIBUTION
static wxString HtmlNewline(const unsigned int amount=1)
Create an HTML newline character sequence of aCount.
#define ICON_CONTRIBUTION
static wxString HtmlHyperlink(const wxString &url, const wxString &description=wxEmptyString)
Helper functions.
#define LEAD_DEV
#define FORMER_DEV
#define LIBRARIANS
void ShowAboutDialog(EDA_BASE_FRAME *aParent)
#define FOOTPRINT_LIB_CONTRIBUTION
static void buildKicadAboutBanner(EDA_BASE_FRAME *aParent, ABOUT_APP_INFO &aInfo)
Initializes the ABOUT_APP_INFO object with application specific information.
#define SYMBOL_LIB_CONTRIBUTION
#define CONTRIB_DEV
@ add_component
wxString GetBuildVersion()
Get the full KiCad version string.
wxString GetPlatformGetBitnessName()
wxString GetBuildDate()
Get the build date as a string.
An object of this class is meant to be used to store application specific information like who has co...
Definition: aboutinfo.h:45
void AddDocWriter(const CONTRIBUTOR *docwriter)
Definition: aboutinfo.h:56
void SetBuildDate(const wxString &date)
Definition: aboutinfo.h:108
void AddTranslator(const CONTRIBUTOR *translator)
Definition: aboutinfo.h:74
void AddDeveloper(const CONTRIBUTOR *developer)
Definition: aboutinfo.h:50
void SetAppName(const wxString &name)
Definition: aboutinfo.h:102
void SetDescription(const wxString &text)
Definition: aboutinfo.h:93
void SetLibVersion(const wxString &version)
Definition: aboutinfo.h:111
wxBitmap * CreateKiBitmap(BITMAPS aBitmap)
Definition: aboutinfo.h:118
void AddArtist(const CONTRIBUTOR *artist)
Definition: aboutinfo.h:68
void SetBuildVersion(const wxString &version)
Definition: aboutinfo.h:105
void SetAppIcon(const wxIcon &aIcon)
Definition: aboutinfo.h:114
void SetLicense(const wxString &text)
Definition: aboutinfo.h:96
void SetCopyright(const wxString &text)
Definition: aboutinfo.h:99
void AddLibrarian(const CONTRIBUTOR *aLibrarian)
Definition: aboutinfo.h:62
void AddPackager(const CONTRIBUTOR *packager)
Definition: aboutinfo.h:80
A contributor, a person which was involved in the development of the application or which has contrib...
Definition: aboutinfo.h:161
About dialog to show application specific information.
Definition: dialog_about.h:54
The base frame for deriving all KiCad main window classes.
The common library.
#define _(s)
Base window classes and related definitions.
bool IsOperatingSystemUnsupported()
Checks if the Operating System is explicitly unsupported and we want to prevent users from sending bu...
Definition: gtk/app.cpp:58
see class PGM_BASE
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:115