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-2024 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-2024 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( "John Beard" ), LEAD_DEV, nullptr ) );
209 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Evans" ), LEAD_DEV, nullptr ) );
210 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ), LEAD_DEV, nullptr ) );
211 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seth Hillbrand" ), LEAD_DEV, nullptr ) );
212 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian McInerney" ), LEAD_DEV, nullptr ) );
213 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Roszko" ), LEAD_DEV, nullptr ) );
214 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Pointhuber" ), LEAD_DEV, nullptr ) );
215 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alex Shvartzkop" ), LEAD_DEV, nullptr ) );
216 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mike Williams" ), LEAD_DEV, nullptr ) );
217 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tomasz Wlostowski" ), LEAD_DEV, nullptr ) );
218 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Young" ), LEAD_DEV, nullptr ) );
219
220 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabien Corona" ), FORMER_DEV, nullptr ) );
221 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dick Hollenbeck" ), FORMER_DEV, nullptr ) );
222 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexis Lockwood" ), FORMER_DEV, nullptr ) );
223 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Sidebotham" ), FORMER_DEV, nullptr ) );
224 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Orson (Maciej Sumiński)" ), FORMER_DEV, nullptr ) );
225 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikolaj Wielgus" ), FORMER_DEV, nullptr ) );
226
227 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Aberg" ), CONTRIB_DEV, nullptr ) );
228 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yüksel Açikgöz" ), CONTRIB_DEV, nullptr ) );
229 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rohan Agrawal" ), CONTRIB_DEV, nullptr ) );
230 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Agricola" ), CONTRIB_DEV, nullptr ) );
231 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Erik Agsjö" ), CONTRIB_DEV, nullptr ) );
232 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nabeel Ahmad" ), CONTRIB_DEV, nullptr ) );
233 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Werner Almesberger" ), CONTRIB_DEV, nullptr ) );
234 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shawn Anastasio" ), CONTRIB_DEV, nullptr ) );
235 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Collin Anderson" ), CONTRIB_DEV, nullptr ) );
236 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tom Andrews" ), CONTRIB_DEV, nullptr ) );
237 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Subaru Arai" ), CONTRIB_DEV, nullptr ) );
238 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikael Arguedas" ), CONTRIB_DEV, nullptr ) );
239 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lachlan Audas" ), CONTRIB_DEV, nullptr ) );
240 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Noel Avila" ), CONTRIB_DEV, nullptr ) );
241
242 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pascal Baerten" ), CONTRIB_DEV, nullptr ) );
243 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ), CONTRIB_DEV, nullptr ) );
244 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Bashkov" ), CONTRIB_DEV, nullptr ) );
245 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Beardsworth" ), CONTRIB_DEV, nullptr ) );
246 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Beckler" ), CONTRIB_DEV, nullptr ) );
247 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Konrad Beckmann" ), CONTRIB_DEV, nullptr ) );
248 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eduardo Behr" ), CONTRIB_DEV, nullptr ) );
249 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "David Beinder" ), CONTRIB_DEV, nullptr ) );
250 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Bennett" ), CONTRIB_DEV, nullptr ) );
251 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Roman Beranek" ), CONTRIB_DEV, nullptr ) );
252 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Francois Berder" ), CONTRIB_DEV, nullptr ) );
253 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Berglund" ), CONTRIB_DEV, nullptr ) );
254 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gustav Bergquist" ), CONTRIB_DEV, nullptr ) );
255 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cirilo Bernardo" ), CONTRIB_DEV, nullptr ) );
256 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joël Bertrand" ), CONTRIB_DEV, nullptr ) );
257 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Beutling" ), CONTRIB_DEV, nullptr ) );
258 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian F. G. Bidulock" ), CONTRIB_DEV, nullptr ) );
259 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Blanchard" ), CONTRIB_DEV, nullptr ) );
260 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Steve Bollinger" ), CONTRIB_DEV, nullptr ) );
261 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blair Bonnett" ), CONTRIB_DEV, nullptr ) );
262 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Markus Bonk" ), CONTRIB_DEV, nullptr ) );
263 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Franck Bourdonnec" ), CONTRIB_DEV, nullptr ) );
264 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carlo Bramini" ), CONTRIB_DEV, nullptr ) );
265 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthias Breithaupt" ), CONTRIB_DEV, nullptr ) );
266 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Brüns" ), CONTRIB_DEV, nullptr ) );
267 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andreas Buhr" ), CONTRIB_DEV, nullptr ) );
268 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ryan Bunch" ), CONTRIB_DEV, nullptr ) );
269 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Emery Burhan" ), CONTRIB_DEV, nullptr ) );
270
271 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Scott Candey" ), CONTRIB_DEV, nullptr ) );
272 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Phinitnan Chanasabaeng" ), CONTRIB_DEV, nullptr ) );
273 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Shivpratap Chauhan" ), CONTRIB_DEV, nullptr ) );
274 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
275 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joseph Y. Chen" ), CONTRIB_DEV, nullptr ) );
276 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexey Chernov" ), CONTRIB_DEV, nullptr ) );
277 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Ciampa" ), CONTRIB_DEV, nullptr ) );
278 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus Comstedt" ), CONTRIB_DEV, nullptr ) );
279 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diogo Condeco" ), CONTRIB_DEV, nullptr ) );
280 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Colin Cooper" ), CONTRIB_DEV, nullptr ) );
281 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Emile Cormier" ), CONTRIB_DEV, nullptr ) );
282 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Garth Corral" ), CONTRIB_DEV, nullptr ) );
283 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Sergio Costas" ), CONTRIB_DEV, nullptr ) );
284 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Cozens" ), CONTRIB_DEV, nullptr ) );
285 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Cross" ), CONTRIB_DEV, nullptr ) );
286
287 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew D'Addesio" ), CONTRIB_DEV, nullptr ) );
288 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin d'Allens" ), CONTRIB_DEV, nullptr ) );
289 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Greg Davill" ), CONTRIB_DEV, nullptr ) );
290 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Camille Delbegue" ), CONTRIB_DEV, nullptr ) );
291 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Albin Dennevi" ), CONTRIB_DEV, nullptr ) );
292 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ruben De Smet" ), CONTRIB_DEV, nullptr ) );
293 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Dewing" ), CONTRIB_DEV, nullptr ) );
294 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Okan Demir" ), CONTRIB_DEV, nullptr ) );
295 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonas Diemer" ), CONTRIB_DEV, nullptr ) );
296 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Dooks" ), CONTRIB_DEV, nullptr ) );
297 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pavel Dovgalyuk" ), CONTRIB_DEV, nullptr ) );
298 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Downing" ), CONTRIB_DEV, nullptr ) );
299 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Dubiec" ), CONTRIB_DEV, nullptr ) );
300 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lucas Dumont" ), CONTRIB_DEV, nullptr ) );
301
302 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gerd Egidy" ), CONTRIB_DEV, nullptr ) );
303 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean Philippe Eimer" ), CONTRIB_DEV, nullptr ) );
304 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Ellis" ), CONTRIB_DEV, nullptr ) );
305 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oleg Endo" ), CONTRIB_DEV, nullptr ) );
306 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damien Espitallier" ), CONTRIB_DEV, nullptr ) );
307 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul Ewing" ), CONTRIB_DEV, nullptr ) );
308
309 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ), CONTRIB_DEV, nullptr ) );
310 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julian Fellinger" ), CONTRIB_DEV, nullptr ) );
311 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joe Ferner" ), CONTRIB_DEV, nullptr ) );
312 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Fiete" ), CONTRIB_DEV, nullptr ) );
313 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Figueroa" ), CONTRIB_DEV, nullptr ) );
314 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gilbert J.M. Forkel" ), CONTRIB_DEV, nullptr ) );
315 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vincenzo Fortunato" ), CONTRIB_DEV, nullptr ) );
316 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Drew Fustini" ), CONTRIB_DEV, nullptr ) );
317
318 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronnie Gaensli" ), CONTRIB_DEV, nullptr ) );
319 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Gagneraud" ), CONTRIB_DEV, nullptr ) );
320 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Gamari" ), CONTRIB_DEV, nullptr ) );
321 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashutosh Gangwar" ), CONTRIB_DEV, nullptr ) );
322 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alessandro Gatti" ), CONTRIB_DEV, nullptr ) );
323 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hal Gentz" ), CONTRIB_DEV, nullptr ) );
324 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Davide Gerhard" ), CONTRIB_DEV, nullptr ) );
325 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Geselbracht" ), CONTRIB_DEV, nullptr ) );
326 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Giulio Girardi" ), CONTRIB_DEV, nullptr ) );
327 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jeff Glass" ), CONTRIB_DEV, nullptr ) );
328 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Golubev" ), CONTRIB_DEV, nullptr ) );
329 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Angus Gratton" ), CONTRIB_DEV, nullptr ) );
330 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrea Greco" ), CONTRIB_DEV, nullptr ) );
331 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Element Green" ), CONTRIB_DEV, nullptr ) );
332 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mathias Grimmberger" ), CONTRIB_DEV, nullptr ) );
333 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johan Grip" ), CONTRIB_DEV, nullptr ) );
334 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hildo Guillardi Júnior" ), CONTRIB_DEV, nullptr ) );
335 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Niki Guldbrand" ), CONTRIB_DEV, nullptr ) );
336 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tanay Gupta" ), CONTRIB_DEV, nullptr ) );
337 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Guy" ), CONTRIB_DEV, nullptr ) );
338 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zoltan Gyarmati" ), CONTRIB_DEV, nullptr ) );
339
340 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Haas" ), CONTRIB_DEV, nullptr ) );
341 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Hämmerling" ), CONTRIB_DEV, nullptr ) );
342 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Hamminga" ), CONTRIB_DEV, nullptr ) );
343 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ma Han" ), CONTRIB_DEV, nullptr ) );
344 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Scott Hanson" ), CONTRIB_DEV, nullptr ) );
345 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ben Harris" ), CONTRIB_DEV, nullptr ) );
346 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lukas F. Hartmann" ), CONTRIB_DEV, nullptr ) );
347 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakob Haufe" ), CONTRIB_DEV, nullptr ) );
348 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Aylons Hazzud" ), CONTRIB_DEV, nullptr ) );
349 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Helmert" ), CONTRIB_DEV, nullptr ) );
350 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hartmut Henkel" ), CONTRIB_DEV, nullptr ) );
351 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Henning" ), CONTRIB_DEV, nullptr ) );
352 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paulo Henrique Silva" ), CONTRIB_DEV, nullptr ) );
353 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hans Henry von Tresckow" ), CONTRIB_DEV, nullptr ) );
354 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Diego Herranz" ), CONTRIB_DEV, nullptr ) );
355 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Hess" ), CONTRIB_DEV, nullptr ) );
356 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "David Holdeman" ), CONTRIB_DEV, nullptr ) );
357 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Laurens Holst" ), CONTRIB_DEV, nullptr ) );
358 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yang Hongbo" ), CONTRIB_DEV, nullptr ) );
359 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Hros" ), CONTRIB_DEV, nullptr ) );
360 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Josue Huaroto" ), CONTRIB_DEV, nullptr ) );
361 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matt Huszagh" ), CONTRIB_DEV, nullptr ) );
362 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Torsten Hüter" ), CONTRIB_DEV, nullptr ) );
363
364 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Ignacio Romero" ), CONTRIB_DEV, nullptr ) );
365 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Inacio" ), CONTRIB_DEV, nullptr ) );
366 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ), CONTRIB_DEV, nullptr ) );
367 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabián Inostroza" ), CONTRIB_DEV, nullptr ) );
368 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vlad Ivanov" ), CONTRIB_DEV, nullptr ) );
369 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andre Iwers" ), CONTRIB_DEV, nullptr ) );
370
371 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hasan Jaafar" ), CONTRIB_DEV, nullptr ) );
372 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "James Jackson" ), CONTRIB_DEV, nullptr ) );
373 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jerry Jacobs" ), CONTRIB_DEV, nullptr ) );
374 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Jacobsen" ), CONTRIB_DEV, nullptr ) );
375 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Jahelka" ), CONTRIB_DEV, nullptr ) );
376 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Janitschke" ), CONTRIB_DEV, nullptr ) );
377 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Jara-Almonte" ), CONTRIB_DEV, nullptr ) );
378 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zhuang Jiezhi" ), CONTRIB_DEV, nullptr ) );
379 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "José Jorge Enríquez" ), CONTRIB_DEV, nullptr ) );
380 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Franck Jullien" ), CONTRIB_DEV, nullptr ) );
381
382 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eeli Kaikkonen" ), CONTRIB_DEV, nullptr ) );
383 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lajos Kamocsay" ), CONTRIB_DEV, nullptr ) );
384 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Povilas Kanapickas" ), CONTRIB_DEV, nullptr ) );
385 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mikhail Karpenko" ), CONTRIB_DEV, nullptr ) );
386 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kerusey Karyu" ), CONTRIB_DEV, nullptr ) );
387 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Kavanagh" ), CONTRIB_DEV, nullptr ) );
388 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tom Keddie" ), CONTRIB_DEV, nullptr ) );
389 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Graham Keeth" ), CONTRIB_DEV, nullptr ) );
390 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yury Khalyavin" ), CONTRIB_DEV, nullptr ) );
391 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ), CONTRIB_DEV, nullptr ) );
392 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Georges Khaznadar" ), CONTRIB_DEV, nullptr ) );
393 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gary Kim" ), CONTRIB_DEV, nullptr ) );
394 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ingo Kletti" ), CONTRIB_DEV, nullptr ) );
395 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kliment" ), CONTRIB_DEV, nullptr ) );
396 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Sylwester Kocjan" ), CONTRIB_DEV, nullptr ) );
397 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Clemens Koller" ), CONTRIB_DEV, nullptr ) );
398 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Asuki Kono" ), CONTRIB_DEV, nullptr ) );
399 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jakub Kozdon" ), CONTRIB_DEV, nullptr ) );
400 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hajo Nils Krabbenhöft" ), CONTRIB_DEV, nullptr ) );
401 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Kueppers" ), CONTRIB_DEV, nullptr ) );
402 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martijn Kuipers" ), CONTRIB_DEV, nullptr ) );
403
404 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robbert Lagerweij" ), CONTRIB_DEV, nullptr ) );
405 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dimitris Lampridis" ), CONTRIB_DEV, nullptr ) );
406 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Langer" ), CONTRIB_DEV, nullptr ) );
407 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Lannen" ), CONTRIB_DEV, nullptr ) );
408 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mika Laitio" ), CONTRIB_DEV, nullptr ) );
409 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Floris Lambrechts" ), CONTRIB_DEV, nullptr ) );
410 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "lê văn lập" ), CONTRIB_DEV, nullptr ) );
411 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Anton Lazarev" ), CONTRIB_DEV, nullptr ) );
412 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dag Lem" ), CONTRIB_DEV, nullptr ) );
413 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ludovic Léau-mercier" ), CONTRIB_DEV, nullptr ) );
414 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paul LeoNerd Evens" ), CONTRIB_DEV, nullptr ) );
415 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonatan Liljedahl" ), CONTRIB_DEV, nullptr ) );
416 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Huanyin Liu" ), CONTRIB_DEV, nullptr ) );
417 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Lunev" ), CONTRIB_DEV, nullptr ) );
418 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Lutsenko" ), CONTRIB_DEV, nullptr ) );
419 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mario Luzeiro" ), CONTRIB_DEV, nullptr ) );
420
421 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Maibaum" ), CONTRIB_DEV, nullptr ) );
422 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Majchrzycki" ), CONTRIB_DEV, nullptr ) );
423 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Daniel Majewski" ), CONTRIB_DEV, nullptr ) );
424 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rachel Mant" ), CONTRIB_DEV, nullptr ) );
425 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lorenzo Marcantonio" ), CONTRIB_DEV, nullptr ) );
426 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miklós Márton" ), CONTRIB_DEV, nullptr ) );
427 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Mattila" ), CONTRIB_DEV, nullptr ) );
428 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Steffen Mauch" ), CONTRIB_DEV, nullptr ) );
429 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Mayton" ), CONTRIB_DEV, nullptr ) );
430 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Maui" ), CONTRIB_DEV, nullptr ) );
431 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kirill Mavreshko" ), CONTRIB_DEV, nullptr ) );
432 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miles McCoo" ), CONTRIB_DEV, nullptr ) );
433 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Charles McDowell" ), CONTRIB_DEV, nullptr ) );
434 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Moses McKnight" ), CONTRIB_DEV, nullptr ) );
435 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin McNamara" ), CONTRIB_DEV, nullptr ) );
436 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cameron McQuinn" ), CONTRIB_DEV, nullptr ) );
437 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ievgenii Meshcheriakov" ), CONTRIB_DEV, nullptr ) );
438 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ashley Mills" ), CONTRIB_DEV, nullptr ) );
439 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Moench-Tegeder" ), CONTRIB_DEV,
440 nullptr ) );
441 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Peter Montgomery" ), CONTRIB_DEV, nullptr ) );
442 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alejandro García Montoro" ), CONTRIB_DEV,
443 nullptr ) );
444 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Chris Morgan" ), CONTRIB_DEV, nullptr ) );
445 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Felix Morgner" ), CONTRIB_DEV, nullptr ) );
446 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Mrázek" ), CONTRIB_DEV, nullptr ) );
447
448 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Narigon" ), CONTRIB_DEV, nullptr ) );
449 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jon Neal" ), CONTRIB_DEV, nullptr ) );
450 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bastian Neumann" ), CONTRIB_DEV, nullptr ) );
451 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Daniil Nikolaev" ), CONTRIB_DEV, nullptr ) );
452 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristian Nielsen" ), CONTRIB_DEV, nullptr ) );
453 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Nogueira" ), CONTRIB_DEV, nullptr ) );
454 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Allan Nordhøy" ), CONTRIB_DEV, nullptr ) );
455 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henrik Nyberg" ), CONTRIB_DEV, nullptr ) );
456
457 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kristoffer Ödmark" ), CONTRIB_DEV, nullptr ) );
458 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Russell Oliver" ), CONTRIB_DEV, nullptr ) );
459 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jason Oster" ), CONTRIB_DEV, nullptr ) );
460
461 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Palazzolo" ), CONTRIB_DEV, nullptr ) );
462 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matus Pavelek" ), CONTRIB_DEV, nullptr ) );
463 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "luz paz" ), CONTRIB_DEV, nullptr ) );
464 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Miguel Angel Ajo Pelayo" ), CONTRIB_DEV, nullptr ) );
465 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Patrick Pereira" ), CONTRIB_DEV, nullptr ) );
466 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jacobo Aragunde Perez" ), CONTRIB_DEV, nullptr ) );
467 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthew Petroff" ), CONTRIB_DEV, nullptr ) );
468 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Pfister" ), CONTRIB_DEV, nullptr ) );
469 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabian Pflug" ), CONTRIB_DEV, nullptr ) );
470 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Pfluger" ), CONTRIB_DEV, nullptr ) );
471 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Brian Piccioni" ), CONTRIB_DEV, nullptr ) );
472 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nicolas Planel" ), CONTRIB_DEV, nullptr ) );
473 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Paweł Płóciennik" ), CONTRIB_DEV, nullptr ) );
474 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carl Poirier" ), CONTRIB_DEV, nullptr ) );
475 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Reece Pollack" ), CONTRIB_DEV, nullptr ) );
476 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alain Portal" ), CONTRIB_DEV, nullptr ) );
477 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrei Pozolotin" ), CONTRIB_DEV, nullptr ) );
478 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Antia Puentes" ), CONTRIB_DEV, nullptr ) );
479 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Zoltan Puskas" ), CONTRIB_DEV, nullptr ) );
480 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heikki Pulkkinen" ), CONTRIB_DEV, nullptr ) );
481
482 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Morgan Quigley" ), CONTRIB_DEV, nullptr ) );
483
484 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Barabas Raffai" ), CONTRIB_DEV, nullptr ) );
485 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Urja Rannikko" ), CONTRIB_DEV, nullptr ) );
486 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hendrik v. Raven" ), CONTRIB_DEV, nullptr ) );
487 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Joshua Redstone" ), CONTRIB_DEV, nullptr ) );
488 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michele Renda" ), CONTRIB_DEV, nullptr ) );
489 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jean-Samuel Reynaud" ), CONTRIB_DEV, nullptr ) );
490 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dmitry Rezvanov" ), CONTRIB_DEV, nullptr ) );
491 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Richter" ), CONTRIB_DEV, nullptr ) );
492 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christoph Riehl" ), CONTRIB_DEV, nullptr ) );
493 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thiadmer Riemersma" ), CONTRIB_DEV, nullptr ) );
494 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Gregor Riepl" ), CONTRIB_DEV, nullptr ) );
495 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "RigoLigoRLC" ), CONTRIB_DEV, nullptr ) );
496 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ), CONTRIB_DEV, nullptr ) );
497 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Lubomir Rintel" ), CONTRIB_DEV, nullptr ) );
498 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Érico Rolim" ), CONTRIB_DEV, nullptr ) );
499 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marcus A. Romer" ), CONTRIB_DEV, nullptr ) );
500 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Heiko Rosemann" ), CONTRIB_DEV, nullptr ) );
501 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Rossi" ), CONTRIB_DEV, nullptr ) );
502 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ian Roth" ), CONTRIB_DEV, nullptr ) );
503
504 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Clément Saccoccio" ), CONTRIB_DEV, nullptr ) );
505 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "J. Morio Sakaguchi" ), CONTRIB_DEV, nullptr ) );
506 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schaak" ), CONTRIB_DEV, nullptr ) );
507 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ross Schlaikjer" ), CONTRIB_DEV, nullptr ) );
508 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Julius Schmidt" ), CONTRIB_DEV, nullptr ) );
509 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Felix Schneider" ), CONTRIB_DEV, nullptr ) );
510 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marvin Schmidt" ), CONTRIB_DEV, nullptr ) );
511 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Carsten Schoenert" ), CONTRIB_DEV, nullptr ) );
512 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Schubert" ), CONTRIB_DEV, nullptr ) );
513 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Schulz" ), CONTRIB_DEV, nullptr ) );
514 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adrian Scripca" ), CONTRIB_DEV, nullptr ) );
515 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Pradeepa Senanayake" ), CONTRIB_DEV, nullptr ) );
516 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
517 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Severinsen" ), CONTRIB_DEV, nullptr ) );
518 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Cheng Sheng" ), CONTRIB_DEV, nullptr ) );
519 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yang Sheng" ), CONTRIB_DEV, nullptr ) );
520 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Chetan Shinde" ), CONTRIB_DEV, nullptr ) );
521 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Shuklin" ), CONTRIB_DEV, nullptr ) );
522 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adam Simpkins" ), CONTRIB_DEV, nullptr ) );
523 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Slawomir Siudym" ), CONTRIB_DEV, nullptr ) );
524 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Serantoni" ), CONTRIB_DEV, nullptr ) );
525 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Guillaume Simard" ), CONTRIB_DEV, nullptr ) );
526 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Sivak" ), CONTRIB_DEV, nullptr ) );
527 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ), CONTRIB_DEV, nullptr ) );
528 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Sliwa" ), CONTRIB_DEV, nullptr ) );
529 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Blake Smith" ), CONTRIB_DEV, nullptr ) );
530 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michal Sojka" ), CONTRIB_DEV, nullptr ) );
531 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Rafael Sokolowski" ), CONTRIB_DEV, nullptr ) );
532 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vesa Solonen" ), CONTRIB_DEV, nullptr ) );
533 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Ronald Sousa" ), CONTRIB_DEV, nullptr ) );
534 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Craig Southeren" ), CONTRIB_DEV, nullptr ) );
535 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Thomas Spindler" ), CONTRIB_DEV, nullptr ) );
536 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Seppe Stas" ), CONTRIB_DEV, nullptr ) );
537 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bernhard Stegmaier" ), CONTRIB_DEV, nullptr ) );
538 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Michael Steinberg" ), CONTRIB_DEV, nullptr ) );
539 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Marco Sterbik" ), CONTRIB_DEV, nullptr ) );
540 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Stock" ), CONTRIB_DEV, nullptr ) );
541 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Stoilov" ), CONTRIB_DEV, nullptr ) );
542 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroki Suenaga" ), CONTRIB_DEV, nullptr ) );
543 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kuba Sunderland-Ober" ), CONTRIB_DEV, nullptr ) );
544
545 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nimish Telang" ), CONTRIB_DEV, nullptr ) );
546 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Martin Thierer" ), CONTRIB_DEV, nullptr ) );
547 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Thorén" ), CONTRIB_DEV, nullptr ) );
548 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ), CONTRIB_DEV, nullptr ) );
549
550 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Ur" ), CONTRIB_DEV, nullptr ) );
551 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yon Uriarte" ), CONTRIB_DEV, nullptr ) );
552 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Matthias Urlichs" ), CONTRIB_DEV, nullptr ) );
553 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Vladimir Uryvaev" ), CONTRIB_DEV, nullptr ) );
554
555 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henri Valta" ), CONTRIB_DEV, nullptr ) );
556 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dave Vandenbout" ), CONTRIB_DEV, nullptr ) );
557 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Edwin van den Oetelaar" ), CONTRIB_DEV, nullptr ) );
558 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark van Doesburg" ), CONTRIB_DEV, nullptr ) );
559 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nils van Zuijlen" ), CONTRIB_DEV, nullptr ) );
560 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Fabio Varesano" ), CONTRIB_DEV, nullptr ) );
561 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Benjamin Vernoux" ), CONTRIB_DEV, nullptr ) );
562 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Villaro-Dixon" ), CONTRIB_DEV, nullptr ) );
563 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Mark Visser" ), CONTRIB_DEV, nullptr ) );
564 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Forrest Voight" ), CONTRIB_DEV, nullptr ) );
565 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Tormod Volden" ), CONTRIB_DEV, nullptr ) );
566
567 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bartek Wacławik" ), CONTRIB_DEV, nullptr ) );
568 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Johannes Wågen" ), CONTRIB_DEV, nullptr ) );
569 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Oliver Walters" ), CONTRIB_DEV, nullptr ) );
570 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jonathan Warner" ), CONTRIB_DEV, nullptr ) );
571 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dan Weatherill" ), CONTRIB_DEV, nullptr ) );
572 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Stefan Weber" ), CONTRIB_DEV, nullptr ) );
573 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Christian Weickhmann" ), CONTRIB_DEV, nullptr ) );
574 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Bevan Weiss" ), CONTRIB_DEV, nullptr ) );
575 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Simon Wells" ), CONTRIB_DEV, nullptr ) );
576 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Dominik Wernberger" ), CONTRIB_DEV, nullptr ) );
577 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jan Wichmann" ), CONTRIB_DEV, nullptr ) );
578 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Winters" ), CONTRIB_DEV, nullptr ) );
579 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Adam Wolf" ), CONTRIB_DEV, nullptr ) );
580 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrzej Wolski" ), CONTRIB_DEV, nullptr ) );
581 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Damian Wrobel" ), CONTRIB_DEV, nullptr ) );
582 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Wygle" ), CONTRIB_DEV, nullptr ) );
583
584 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Jiaxun Yang" ), CONTRIB_DEV, nullptr ) );
585 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Robert Yates" ), CONTRIB_DEV, nullptr ) );
586 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Yegor Yefremov" ), CONTRIB_DEV, nullptr ) );
587 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kenta Yonekura" ), CONTRIB_DEV, nullptr ) );
588
589 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Alexander Zakamaldin" ), CONTRIB_DEV, nullptr ) );
590 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Frank Zeeman" ), CONTRIB_DEV, nullptr ) );
591 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Henner Zeller" ), CONTRIB_DEV, nullptr ) );
592 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Andrew Zonenberg" ), CONTRIB_DEV, nullptr ) );
593 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Karl Zeilhofer" ), CONTRIB_DEV, nullptr ) );
594 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Kevin Zheng" ), CONTRIB_DEV, nullptr ) );
595
596 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "Nick Østergaard" ), CONTRIB_DEV, nullptr ) );
597 aInfo.AddDeveloper( new CONTRIBUTOR( wxT( "木 王" ), CONTRIB_DEV, nullptr ) );
598
599 // The document writers
600 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jean-Pierre Charras" ) ) );
601 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Marco Ciampa" ) ) );
602 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Jon Evans" ) ) );
603 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Dick Hollenbeck" ) ) );
604 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Graham Keeth" ) ) );
605 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Igor Plyatov" ) ) );
606 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Wayne Stambaugh" ) ) );
607 aInfo.AddDocWriter( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ) ) );
608
609 /* The translators
610 * As category the language to which the translation was done is used
611 */
612 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ondřej Čertík" ),
613 wxEmptyString,
614 wxEmptyString,
615 wxS( "Czech (CS)" ) ) );
616 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Martin Kratoška" ),
617 wxEmptyString,
618 wxEmptyString,
619 wxS( "Czech (CS)" ) ) );
620 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Radek Kuznik" ),
621 wxEmptyString,
622 wxEmptyString,
623 wxS( "Czech (CS)" ) ) );
624 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roman Ondráček" ),
625 wxEmptyString,
626 wxEmptyString,
627 wxS( "Czech (CS)" ) ) );
628 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "René Široký" ),
629 wxEmptyString,
630 wxEmptyString,
631 wxS( "Czech (CS)" ) ) );
632 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Straka" ),
633 wxEmptyString,
634 wxEmptyString,
635 wxS( "Czech (CS)" ) ) );
636 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Vykydal" ),
637 wxEmptyString,
638 wxEmptyString,
639 wxS( "Czech (CS)" ) ) );
640
641 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Mads Dyrmann" ),
642 wxEmptyString,
643 wxEmptyString,
644 wxS( "Danish (DA)" ) ) );
645 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Henrik Kauhanen" ),
646 wxEmptyString,
647 wxEmptyString,
648 wxS( "Danish (DA)" ) ) );
649 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Nick Østergaard" ),
650 wxEmptyString,
651 wxEmptyString,
652 wxS( "Danish (DA)" ) ) );
653
654 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Ettore Atalan" ),
655 wxEmptyString,
656 wxEmptyString,
657 wxS( "German (DE)" ) ) );
658 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Ivan Chuba" ),
659 wxEmptyString,
660 wxEmptyString,
661 wxS( "German (DE)" ) ) );
662 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Julian Daube" ),
663 wxEmptyString,
664 wxEmptyString,
665 wxS( "German (DE)" ) ) );
666 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Benedikt Freisen" ),
667 wxEmptyString,
668 wxEmptyString,
669 wxS( "German (DE)" ) ) );
670 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Jonathan Haas" ),
671 wxEmptyString,
672 wxEmptyString,
673 wxS( "German (DE)" ) ) );
674 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Hämmerling" ),
675 wxEmptyString,
676 wxEmptyString,
677 wxS( "German (DE)" ) ) );
678 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Johannes Maibaum" ),
679 wxEmptyString,
680 wxEmptyString,
681 wxS( "German (DE)" ) ) );
682 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
683 wxEmptyString,
684 wxEmptyString,
685 wxS( "German (DE)" ) ) );
686 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mathias Neumann" ),
687 wxEmptyString,
688 wxEmptyString,
689 wxS( "German (DE)" ) ) );
690 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ken Ovo" ),
691 wxEmptyString,
692 wxEmptyString,
693 wxS( "German (DE)" ) ) );
694 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Karl Schuh" ),
695 wxEmptyString,
696 wxEmptyString,
697 wxS( "German (DE)" ) ) );
698 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dominik Wernberger" ),
699 wxEmptyString,
700 wxEmptyString,
701 wxS( "German (DE)" ) ) );
702
703 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Manolis Stefanis" ),
704 wxEmptyString,
705 wxEmptyString,
706 wxS( "Greek (el_GR)" ) ) );
707 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Athanasios Vlastos" ),
708 wxEmptyString,
709 wxEmptyString,
710 wxS( "Greek (el_GR)" ) ) );
711 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Milonas Kostas" ),
712 wxEmptyString,
713 wxEmptyString,
714 wxS( "Greek (el_GR)" ) ) );
715 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Michail Misirlis" ),
716 wxEmptyString,
717 wxEmptyString,
718 wxS( "Greek (el_GR)" ) ) );
719 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Aristeidis Kimirtzis" ),
720 wxEmptyString,
721 wxEmptyString,
722 wxS( "Greek (el_GR)" ) ) );
723
724 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Adolfo Jayme Barrientos" ),
725 wxEmptyString,
726 wxEmptyString,
727 wxS( "Spanish (ES)" ) ) );
728 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Roberto Fernandez Bautista" ),
729 wxEmptyString,
730 wxEmptyString,
731 wxS( "Spanish (ES)" ) ) );
732 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Figuero" ),
733 wxEmptyString,
734 wxEmptyString,
735 wxS( "Spanish (ES)" ) ) );
736 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
737 wxEmptyString,
738 wxEmptyString,
739 wxS( "Spanish (ES)" ) ) );
740 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Pedro Martin del Valle" ),
741 wxEmptyString,
742 wxEmptyString,
743 wxS( "Spanish (ES)" ) ) );
744 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Gabriel Martinez" ),
745 wxEmptyString,
746 wxEmptyString,
747 wxS( "Spanish (ES)" ) ) );
748 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jose Perez" ),
749 wxEmptyString,
750 wxEmptyString,
751 wxS( "Spanish (ES)" ) ) );
752 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
753 wxEmptyString,
754 wxEmptyString,
755 wxS( "Spanish (ES)" ) ) );
756 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "VicSanRoPe" ),
757 wxEmptyString,
758 wxEmptyString,
759 wxS( "Spanish - Latin American (ES)" ) ) );
760
761 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ulices Avila Hernandez" ),
762 wxEmptyString,
763 wxEmptyString,
764 wxS( "Spanish - Latin American (ES)" ) ) );
765
766 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Vesa Solonen" ),
767 wxEmptyString,
768 wxEmptyString,
769 wxS( "Finnish (FI)" ) ) );
770 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Alex Gellen" ),
771 wxEmptyString,
772 wxEmptyString,
773 wxS( "Finnish (FI)" ) ) );
774 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Toni Laiho" ),
775 wxEmptyString,
776 wxEmptyString,
777 wxS( "Finnish (FI)" ) ) );
778 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
779 wxEmptyString,
780 wxEmptyString,
781 wxS( "Finnish (FI)" ) ) );
782 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Toni Laiho" ),
783 wxEmptyString,
784 wxEmptyString,
785 wxS( "Finnish (FI)" ) ) );
786 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "J. Lavoie" ),
787 wxEmptyString,
788 wxEmptyString,
789 wxS( "Finnish (FI)" ) ) );
790 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Purkka Koodari" ),
791 wxEmptyString,
792 wxEmptyString,
793 wxS( "Finnish (FI)" ) ) );
794 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Simo Mattila" ),
795 wxEmptyString,
796 wxEmptyString,
797 wxS( "Finnish (FI)" ) ) );
798 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Petri Niemelä" ),
799 wxEmptyString,
800 wxEmptyString,
801 wxS( "Finnish (FI)" ) ) );
802 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ola Rinta-Koski" ),
803 wxEmptyString,
804 wxEmptyString,
805 wxS( "Finnish (FI)" ) ) );
806 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Riku Viitanen" ),
807 wxEmptyString,
808 wxEmptyString,
809 wxS( "Finnish (FI)" ) ) );
810
811 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jean-Pierre Charras" ),
812 wxEmptyString,
813 wxEmptyString,
814 wxS( "French (FR)" ) ) );
815
816 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Marco Ciampa" ),
817 wxEmptyString,
818 wxEmptyString,
819 wxS( "Italian (IT)" ) ) );
820
821 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Subaru Arai" ),
822 wxEmptyString,
823 wxEmptyString,
824 wxS( "Japanese (JA)" ) ) );
825 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
826 wxEmptyString,
827 wxEmptyString,
828 wxS( "Japanese (JA)" ) ) );
829 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hidemichi Gotou" ),
830 wxEmptyString,
831 wxEmptyString,
832 wxS( "Japanese (JA)" ) ) );
833 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kinichiro Inoguchi" ),
834 wxEmptyString,
835 wxEmptyString,
836 wxS( "Japanese (JA)" ) ) );
837 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Keisuke Nakao" ),
838 wxEmptyString,
839 wxEmptyString,
840 wxS( "Japanese (JA)" ) ) );
841 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Norio Suzuki" ),
842 wxEmptyString,
843 wxEmptyString,
844 wxS( "Japanese (JA)" ) ) );
845 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "starfort-jp" ),
846 wxEmptyString,
847 wxEmptyString,
848 wxS( "Japanese (JA)" ) ) );
849 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hiroshi Tokita" ),
850 wxEmptyString,
851 wxEmptyString,
852 wxS( "Japanese (JA)" ) ) );
853 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kenta Yonekura" ),
854 wxEmptyString,
855 wxEmptyString,
856 wxS( "Japanese (JA)" ) ) );
857 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kaoru Zenyouji" ),
858 wxEmptyString,
859 wxEmptyString,
860 wxS( "Japanese (JA)" ) ) );
861
862 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "킴슨김랑기" ),
863 wxEmptyString,
864 wxEmptyString,
865 wxS( "Korean (KO)" ) ) );
866 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ji Yoon Choi" ),
867 wxEmptyString,
868 wxEmptyString,
869 wxS( "Korean (KO)" ) ) );
870 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jeongsuAn" ),
871 wxEmptyString,
872 wxEmptyString,
873 wxS( "Korean (KO)" ) ) );
874 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이상수" ),
875 wxEmptyString,
876 wxEmptyString,
877 wxS( "Korean (KO)" ) ) );
878 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "jehunseo" ),
879 wxEmptyString,
880 wxEmptyString,
881 wxS( "Korean (KO)" ) ) );
882 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Uibeom Jung" ),
883 wxEmptyString,
884 wxEmptyString,
885 wxS( "Korean (KO)" ) ) );
886 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박준언" ),
887 wxEmptyString,
888 wxEmptyString,
889 wxS( "Korean (KO)" ) ) );
890 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "방준영" ),
891 wxEmptyString,
892 wxEmptyString,
893 wxS( "Korean (KO)" ) ) );
894 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "박기정" ),
895 wxEmptyString,
896 wxEmptyString,
897 wxS( "Korean (KO)" ) ) );
898 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "hokim" ),
899 wxEmptyString,
900 wxEmptyString,
901 wxS( "Korean (KO)" ) ) );
902 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김낙환" ),
903 wxEmptyString,
904 wxEmptyString,
905 wxS( "Korean (KO)" ) ) );
906 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이기형" ),
907 wxEmptyString,
908 wxEmptyString,
909 wxS( "Korean (KO)" ) ) );
910 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "남우근" ),
911 wxEmptyString,
912 wxEmptyString,
913 wxS( "Korean (KO)" ) ) );
914 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "강명구" ),
915 wxEmptyString,
916 wxEmptyString,
917 wxS( "Korean (KO)" ) ) );
918 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김용재" ),
919 wxEmptyString,
920 wxEmptyString,
921 wxS( "Korean (KO)" ) ) );
922 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "서범기" ),
923 wxEmptyString,
924 wxEmptyString,
925 wxS( "Korean (KO)" ) ) );
926 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김세영" ),
927 wxEmptyString,
928 wxEmptyString,
929 wxS( "Korean (KO)" ) ) );
930 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "이윤성" ),
931 wxEmptyString,
932 wxEmptyString,
933 wxS( "Korean (KO)" ) ) );
934 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "김랑기" ),
935 wxEmptyString,
936 wxEmptyString,
937 wxS( "Korean (KO)" ) ) );
938 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "KwonHyeokbeom" ),
939 wxEmptyString,
940 wxEmptyString,
941 wxS( "Korean (KO)" ) ) );
942 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Minsu Kim (0xGabriel)" ),
943 wxEmptyString,
944 wxEmptyString,
945 wxS( "Korean (KO)" ) ) );
946 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "pedrolinharesmoreira" ),
947 wxEmptyString,
948 wxEmptyString,
949 wxS( "Korean (KO)" ) ) );
950
951 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
952 wxEmptyString,
953 wxEmptyString,
954 wxS( "Lithuanian (LT)" ) ) );
955 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dainius Mazuika" ),
956 wxEmptyString,
957 wxEmptyString,
958 wxS( "Lithuanian (LT)" ) ) );
959
960 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Arend-Jan van Hilten" ),
961 wxEmptyString,
962 wxEmptyString,
963 wxS( "Dutch (NL)" ) ) );
964 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "CJ van der Hoeven" ),
965 wxEmptyString,
966 wxEmptyString,
967 wxS( "Dutch (NL)" ) ) );
968 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Laurens Holst" ),
969 wxEmptyString,
970 wxEmptyString,
971 wxS( "Dutch (NL)" ) ) );
972 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Pim Jansen" ),
973 wxEmptyString,
974 wxEmptyString,
975 wxS( "Dutch (NL)" ) ) );
976 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
977 wxEmptyString,
978 wxEmptyString,
979 wxS( "Dutch (NL)" ) ) );
980 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Tom Niesse" ),
981 wxEmptyString,
982 wxEmptyString,
983 wxS( "Dutch (NL)" ) ) );
984 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Christiaan Nieuwlaat" ),
985 wxEmptyString,
986 wxEmptyString,
987 wxS( "Dutch (NL)" ) ) );
988 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Arend-Jan van Hilten" ),
989 wxEmptyString,
990 wxEmptyString,
991 wxS( "Dutch (NL)" ) ) );
992 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Bas Wijnen" ),
993 wxEmptyString,
994 wxEmptyString,
995 wxS( "Dutch (NL)" ) ) );
996
997 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jarl Gjessing" ),
998 wxEmptyString,
999 wxEmptyString,
1000 wxS( "Norwegian (NO)" ) ) );
1001 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
1002 wxEmptyString,
1003 wxEmptyString,
1004 wxS( "Norwegian (NO)" ) ) );
1005 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
1006 wxEmptyString,
1007 wxEmptyString,
1008 wxS( "Norwegian (NO)" ) ) );
1009 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Petter Reinholdtsen" ),
1010 wxEmptyString,
1011 wxEmptyString,
1012 wxS( "Norwegian (NO)" ) ) );
1013 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Håvard Syslak" ),
1014 wxEmptyString,
1015 wxEmptyString,
1016 wxS( "Norwegian (NO)" ) ) );
1017
1018 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ivan Chuba" ),
1019 wxEmptyString,
1020 wxEmptyString,
1021 wxS( "Polish (PL)" ) ) );
1022 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Kerusey Karyu" ),
1023 wxEmptyString,
1024 wxEmptyString,
1025 wxS( "Polish (PL)" ) ) );
1026 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Krzysztof Kawa" ),
1027 wxEmptyString,
1028 wxEmptyString,
1029 wxS( "Polish (PL)" ) ) );
1030 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eryk Michalak" ),
1031 wxEmptyString,
1032 wxEmptyString,
1033 wxS( "Polish (PL)" ) ) );
1034 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Filip Piękoś" ),
1035 wxEmptyString,
1036 wxEmptyString,
1037 wxS( "Polish (PL)" ) ) );
1038 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mark Roszko" ),
1039 wxEmptyString,
1040 wxEmptyString,
1041 wxS( "Polish (PL)" ) ) );
1042 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Mateusz Skowroński" ),
1043 wxEmptyString,
1044 wxEmptyString,
1045 wxS( "Polish (PL)" ) ) );
1046 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jan Sobków" ),
1047 wxEmptyString,
1048 wxEmptyString,
1049 wxS( "Polish (PL)" ) ) );
1050 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Grzegorz Szymaszek" ),
1051 wxEmptyString,
1052 wxEmptyString,
1053 wxS( "Polish (PL)" ) ) );
1054 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "ZbeeGin" ),
1055 wxEmptyString,
1056 wxEmptyString,
1057 wxS( "Polish (PL)" ) ) );
1058
1059 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
1060 wxEmptyString,
1061 wxEmptyString,
1062 wxS( "Brazilian Portuguese (PT_BR)" ) ) );
1063 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Wellington Terumi Uemura" ),
1064 wxEmptyString,
1065 wxEmptyString,
1066 wxS( "Brazilian Portuguese (PT_BR)" ) ) );
1067
1068 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Augusto Fraga Giachero" ),
1069 wxEmptyString,
1070 wxEmptyString,
1071 wxS( "Portuguese (PT)" ) ) );
1072 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Renie Marquet" ),
1073 wxEmptyString,
1074 wxEmptyString,
1075 wxS( "Portuguese (PT)" ) ) );
1076 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rafael Silva" ),
1077 wxEmptyString,
1078 wxEmptyString,
1079 wxS( "Portuguese (PT)" ) ) );
1080 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "ssantos" ),
1081 wxEmptyString,
1082 wxEmptyString,
1083 wxS( "Portuguese (PT)" ) ) );
1084
1085 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Igor Plyatov" ),
1086 wxEmptyString,
1087 wxEmptyString,
1088 wxS( "Russian (RU)" ) ) );
1089 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Дмитрий Дёмин" ),
1090 wxEmptyString,
1091 wxEmptyString,
1092 wxS( "Russian (RU)" ) ) );
1093 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Andrey Fedorushkov" ),
1094 wxEmptyString,
1095 wxEmptyString,
1096 wxS( "Russian (RU)" ) ) );
1097 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eldar Khayrullin" ),
1098 wxEmptyString,
1099 wxEmptyString,
1100 wxS( "Russian (RU)" ) ) );
1101 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Konstantin Baranovskiy" ),
1102 wxEmptyString,
1103 wxEmptyString,
1104 wxS( "Russian (RU)" ) ) );
1105
1106 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hanna Breisand" ),
1107 wxEmptyString,
1108 wxEmptyString,
1109 wxS( "Swedish (SV)" ) ) );
1110 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Axel Henriksson" ),
1111 wxEmptyString,
1112 wxEmptyString,
1113 wxS( "Swedish (SV)" ) ) );
1114 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Richard Jonsson" ),
1115 wxEmptyString,
1116 wxEmptyString,
1117 wxS( "Swedish (SV)" ) ) );
1118 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Henrik Kauhanen" ),
1119 wxEmptyString,
1120 wxEmptyString,
1121 wxS( "Swedish (SV)" ) ) );
1122 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Allan Nordhøy" ),
1123 wxEmptyString,
1124 wxEmptyString,
1125 wxS( "Swedish (SV)" ) ) );
1126 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Elias Sjögreen" ),
1127 wxEmptyString,
1128 wxEmptyString,
1129 wxS( "Swedish (SV)" ) ) );
1130
1131 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Boonchai Kingrungped" ),
1132 wxEmptyString,
1133 wxEmptyString,
1134 wxS( "Thai (TH)" ) ) );
1135
1136 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Artem" ),
1137 wxEmptyString,
1138 wxEmptyString,
1139 wxS( "Ukrainian (UK)" ) ) );
1140 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Ivan Chuba" ),
1141 wxEmptyString,
1142 wxEmptyString,
1143 wxS( "Ukrainian (UK)" ) ) );
1144 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Stanislav Kaliuk" ),
1145 wxEmptyString,
1146 wxEmptyString,
1147 wxS( "Ukrainian (UK)" ) ) );
1148 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Alexsandr Kuzemko" ),
1149 wxEmptyString,
1150 wxEmptyString,
1151 wxS( "Ukrainian (UK)" ) ) );
1152 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Andrii Shelestov" ),
1153 wxEmptyString,
1154 wxEmptyString,
1155 wxS( "Ukrainian (UK)" ) ) );
1156
1157 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "向阳阳" ),
1158 wxEmptyString,
1159 wxEmptyString,
1160 wxS( "Simplified Chinese (zh_CN)" ) ) );
1161 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "欠陥電気" ),
1162 wxEmptyString,
1163 wxEmptyString,
1164 wxS( "Simplified Chinese (zh_CN)" ) ) );
1165 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Liu Guang" ),
1166 wxEmptyString,
1167 wxEmptyString,
1168 wxS( "Simplified Chinese (zh_CN)" ) ) );
1169 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
1170 wxEmptyString,
1171 wxEmptyString,
1172 wxS( "Simplified Chinese (zh_CN)" ) ) );
1173 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Dingzhong Chen" ),
1174 wxEmptyString,
1175 wxEmptyString,
1176 wxS( "Simplified Chinese (zh_CN)" ) ) );
1177 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
1178 wxEmptyString,
1179 wxEmptyString,
1180 wxS( "Simplified Chinese (zh_CN)" ) ) );
1181 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Eric" ),
1182 wxEmptyString,
1183 wxEmptyString,
1184 wxS( "Simplified Chinese (zh_CN)" ) ) );
1185 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Hubert Hu" ),
1186 wxEmptyString,
1187 wxEmptyString,
1188 wxS( "Simplified Chinese (zh_CN)" ) ) );
1189 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Pinpang Liao" ),
1190 wxEmptyString,
1191 wxEmptyString,
1192 wxS( "Simplified Chinese (zh_CN)" ) ) );
1193 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Rigo Ligo" ),
1194 wxEmptyString,
1195 wxEmptyString,
1196 wxS( "Simplified Chinese (zh_CN)" ) ) );
1197 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Huanyin Liu" ),
1198 wxEmptyString,
1199 wxEmptyString,
1200 wxS( "Simplified Chinese (zh_CN)" ) ) );
1201 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Zhen Sun" ),
1202 wxEmptyString,
1203 wxEmptyString,
1204 wxS( "Simplified Chinese (zh_CN)" ) ) );
1205 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Jason Tan" ),
1206 wxEmptyString,
1207 wxEmptyString,
1208 wxS( "Simplified Chinese (zh_CN)" ) ) );
1209 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "yangyangdaji" ),
1210 wxEmptyString,
1211 wxEmptyString,
1212 wxS( "Simplified Chinese (zh_CN)" ) ) );
1213 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Li Yidong" ),
1214 wxEmptyString,
1215 wxEmptyString,
1216 wxS( "Simplified Chinese (zh_CN)" ) ) );
1217 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Tian Yunhao" ),
1218 wxEmptyString,
1219 wxEmptyString,
1220 wxS( "Simplified Chinese (zh_CN)" ) ) );
1221 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Lao Zhu" ),
1222 wxEmptyString,
1223 wxEmptyString,
1224 wxS( "Simplified Chinese (zh_CN)" ) ) );
1225
1226 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "撒景賢" ),
1227 wxEmptyString,
1228 wxEmptyString,
1229 wxS( "Traditional Chinese (zh_TW)" ) ) );
1230 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "David Chen" ),
1231 wxEmptyString,
1232 wxEmptyString,
1233 wxS( "Traditional Chinese (zh_TW)" ) ) );
1234 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "pon dahai" ),
1235 wxEmptyString,
1236 wxEmptyString,
1237 wxS( "Traditional Chinese (zh_TW)" ) ) );
1238 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "kai chiao chuang" ),
1239 wxEmptyString,
1240 wxEmptyString,
1241 wxS( "Traditional Chinese (zh_TW)" ) ) );
1242 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "William Lin" ),
1243 wxEmptyString,
1244 wxEmptyString,
1245 wxS( "Traditional Chinese (zh_TW)" ) ) );
1246 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Taotieren" ),
1247 wxEmptyString,
1248 wxEmptyString,
1249 wxS( "Traditional Chinese (zh_TW)" ) ) );
1250 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Li Yidong" ),
1251 wxEmptyString,
1252 wxEmptyString,
1253 wxS( "Traditional Chinese (zh_TW)" ) ) );
1254
1255 aInfo.AddTranslator( new CONTRIBUTOR( wxT( "Remy Halvick" ),
1256 wxEmptyString,
1257 wxEmptyString,
1258 wxS( "Other" ) ) );
1259
1260 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "David J S Briscoe" ),
1261 wxEmptyString,
1262 wxEmptyString,
1263 wxS( "Other" ) ) );
1264
1265 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Dominique Laigle" ),
1266 wxEmptyString,
1267 wxEmptyString,
1268 wxS( "Other" ) ) );
1269
1270 aInfo.AddTranslator( new CONTRIBUTOR( wxS( "Paul Burke" ),
1271 wxEmptyString,
1272 wxEmptyString,
1273 wxS( "Other" ) ) );
1274
1275
1276 // Program credits for library team
1277#define LIBRARIANS _( "Librarian Team" )
1278
1279 // Lead librarians
1280 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Carsten Presser"), LIBRARIANS,
1281 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1282
1283 // Active librarians
1284 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Geries AbuAkel" ), LIBRARIANS,
1285 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1286 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Patrick Baus" ), LIBRARIANS,
1287 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1288 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "John Beard" ), LIBRARIANS,
1289 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1290 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jeremy Boynes" ), LIBRARIANS,
1291 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1292 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Greg Cormier" ), LIBRARIANS,
1293 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1294 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jan Sebastian Götte (jaseg)" ), LIBRARIANS,
1295 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1296 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Petr Hodina" ), LIBRARIANS,
1297 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1298 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Mikkel Jeppesen" ), LIBRARIANS,
1299 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1300 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Aristeidis Kimirtzis" ), LIBRARIANS,
1301 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1302 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Brandon Kirisaki" ), LIBRARIANS,
1303 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1304 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Uli Köhler" ), LIBRARIANS,
1305 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1306 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Andrew Lutsenko" ), LIBRARIANS,
1307 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1308 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Jorge Neiva" ), LIBRARIANS,
1309 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1310 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Valentin Ochs" ), LIBRARIANS,
1311 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1312 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Carlos Nieves Ónega" ), LIBRARIANS,
1313 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1314 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Dash Peters" ), LIBRARIANS,
1315 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1316 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Armin Schoisswohl" ), LIBRARIANS,
1317 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1318 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Martin Sotirov" ), LIBRARIANS,
1319 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1320 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Kliment Yanev" ), LIBRARIANS,
1321 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1322
1323 // Former librarians
1324 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Christian Schlüter" ), LIBRARIANS,
1325 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1326 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Rene Poeschl" ), LIBRARIANS,
1327 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1328 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Antonio Vázquez Blanco " ), LIBRARIANS,
1329 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1330 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Daniel Giesbrecht" ), LIBRARIANS,
1331 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1332 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Otavio Augusto Gomes" ), LIBRARIANS,
1333 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1334 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "herostrat" ), LIBRARIANS,
1335 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1336 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Diego Herranz" ), LIBRARIANS,
1337 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1338 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Joel Guittet" ), LIBRARIANS,
1339 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1340 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Chris Morgan" ), LIBRARIANS,
1341 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1342 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Thomas Pointhuber" ), LIBRARIANS,
1343 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1344 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Evan Shultz" ), LIBRARIANS,
1345 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1346 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Bob Cousins" ), LIBRARIANS,
1347 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1348 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Nick Østergaard" ), LIBRARIANS,
1349 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1350 aInfo.AddLibrarian( new CONTRIBUTOR( wxT( "Oliver Walters" ), LIBRARIANS,
1351 aInfo.CreateKiBitmap( BITMAPS::library ) ) );
1352
1353#define MODELS_3D_CONTRIBUTION _( "3D models by" )
1354 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Maui" ),
1355 wxS( "https://github.com/easyw" ),
1356 wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D-generator" ),
1358 aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
1359 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
1360 wxEmptyString,
1361 wxS( "https://gitlab.com/kicad/libraries/kicad-packages3D/-/graphs/master" ),
1363 aInfo.CreateKiBitmap( BITMAPS::three_d ) ) );
1364
1365#define SYMBOL_LIB_CONTRIBUTION _( "Symbols by" )
1366 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
1367 wxEmptyString,
1368 wxS( "https://gitlab.com/kicad/libraries/kicad-symbols/-/graphs/master" ),
1371
1372#define FOOTPRINT_LIB_CONTRIBUTION _( "Footprints by" )
1373 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "Scripts by Thomas Pointhuber" ),
1374 wxEmptyString,
1375 wxS( "https://gitlab.com/kicad/libraries/kicad-footprint-generator" ),
1377 aInfo.CreateKiBitmap( BITMAPS::module ) ) );
1378 aInfo.AddLibrarian( new CONTRIBUTOR( wxS( "GitLab contributors" ),
1379 wxEmptyString,
1380 wxS( "https://gitlab.com/kicad/libraries/kicad-footprints/-/graphs/master" ),
1382 aInfo.CreateKiBitmap( BITMAPS::module ) ) );
1383
1384 // Program credits for icons
1385#define ICON_CONTRIBUTION _( "Icons by" )
1386 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Aleksandr Zyrianov" ),
1387 wxEmptyString,
1388 wxEmptyString,
1390 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Anda Subero" ),
1391 wxEmptyString,
1392 wxEmptyString,
1394 aInfo.AddArtist( new CONTRIBUTOR( wxT( "Iñigo Zuluaga" ),
1395 wxEmptyString,
1396 wxEmptyString,
1398 aInfo.AddArtist( new CONTRIBUTOR( wxS( "Fabrizio Tappero" ),
1399 wxEmptyString,
1400 wxEmptyString,
1402
1403 // Program credits for package developers.
1404#define PACKAGE_DEVS _( "Package Developers" )
1405
1406 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Steven Falco" ), PACKAGE_DEVS,
1407 aInfo.CreateKiBitmap( BITMAPS::zip ) ) );
1408 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Johannes Maibaum" ), PACKAGE_DEVS,
1409 aInfo.CreateKiBitmap( BITMAPS::zip ) ) );
1410 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Jean-Samuel Reynaud" ), PACKAGE_DEVS,
1411 aInfo.CreateKiBitmap( BITMAPS::zip ) ) );
1412 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Bernhard Stegmaier" ), PACKAGE_DEVS,
1413 aInfo.CreateKiBitmap( BITMAPS::zip ) ) );
1414 aInfo.AddPackager( new CONTRIBUTOR( wxS( "Adam Wolf" ) , PACKAGE_DEVS,
1415 aInfo.CreateKiBitmap( BITMAPS::zip ) ) );
1416 aInfo.AddPackager( new CONTRIBUTOR( wxT( "Nick Østergaard" ), PACKAGE_DEVS,
1417 aInfo.CreateKiBitmap( BITMAPS::zip ) ) );
1418}
1419
1420
1422{
1424 buildKicadAboutBanner( aParent, info );
1425
1426 DIALOG_ABOUT dlg( aParent, info );
1427 dlg.ShowModal();
1428}
1429
1430
1434
1444static wxString HtmlHyperlink( const wxString& aUrl, const wxString& aDescription )
1445{
1446 wxString hyperlink = wxEmptyString;
1447
1448 if( aDescription.IsEmpty() )
1449 hyperlink << wxS( "<a href='" ) << aUrl << wxS( "'>" ) << aUrl << wxS( "</a>" );
1450 else
1451 hyperlink << wxS( "<a href='" )<< aUrl << wxS( "'>" ) << aDescription << wxS( "</a>" );
1452
1453 return hyperlink;
1454}
1455
1456
1464static wxString HtmlNewline( const unsigned int aCount )
1465{
1466 wxString newlineTags = wxEmptyString;
1467
1468 for( size_t i = 0; i<aCount; ++i )
1469 newlineTags << wxS( "<br>" );
1470
1471 return newlineTags;
1472}
#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
#define PACKAGE_DEVS
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:119