#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
file generate_contributions.py
This file is part of LyX, the document processor.
Licence details can be found in the file COPYING.
author Angus Leeming
Full author contact details are available in file CREDITS
This script both stores and manipulates the raw data needed to
create CREDITS, credits.inc and blanket-permission.inc
Usage:
$ python generate_contributions.py \
CREDITS \
credits.inc \
blanket-permission.inc
where the arguments are the pathnames of the generated files.
'''
import codecs, sys, textwrap
def xml_escape(s):
s = s.replace("&", "&")
s = s.replace("<", "<")
s = s.replace(">", ">")
s = s.replace('"', '"')
return s
class contributor:
def __init__(self,
name,
contact,
licence,
permission_title,
archive_id,
permission_date,
credit):
self.name = name
self.contact = contact
self.licence = licence
self.permission_title = permission_title
self.archive_id = archive_id
self.permission_date = permission_date
self.credit = credit
def as_txt_credits(self):
result = [ '@b%s\n' % self.name ]
if len(self.contact) != 0:
if self.contact.find("http") != -1:
result.append('@i%s\n' % self.contact)
else:
result.append('@iE-mail: %s\n' % self.contact)
result.append(' %s\n' % self.credit.replace('\n', '\n '))
return "".join(result)
def as_php_credits(self, wrapper):
return '''
$output=$output.credits_contrib("%s",
"%s",
"%s");
''' % ( xml_escape(self.name),
xml_escape(self.contact),
"\n".join(wrapper.wrap(xml_escape(self.credit))) )
def as_php_blanket(self):
return '''
$output=$output.blanket_contrib("%s",
"%s",
"%s",
"%s",
"%s");
''' % ( xml_escape(self.name),
xml_escape(self.contact),
xml_escape(self.permission_title),
xml_escape(self.archive_id),
xml_escape(self.permission_date) )
def error(message):
if message:
sys.stderr.write(message + '\n')
sys.exit(1)
def usage(prog_name):
return '''
Usage:
$ python generate_contributions.py \\
CREDITS \\
credits.inc \\
blanket-permission.inc
where the arguments are the pathnames of the generated files.
'''
def collate_incomplete(contributors):
missing_credit = []
missing_licence = []
for contributor in contributors:
if len(contributor.credit) == 0:
missing_credit.append(contributor.name)
if len(contributor.licence) == 0:
missing_licence.append(contributor.name)
return '''WARNING!
The following contributors do not have a CREDITS entry:
%s
These ones have no explicit licence statement:
%s
''' % ( ",\n ".join(missing_credit), ",\n ".join(missing_licence))
def as_txt_credits(contributors):
results = []
for contributor in contributors:
if len(contributor.credit) != 0:
results.append(contributor.as_txt_credits())
results.append('''
If your name doesn't appear here although you've done something for LyX, or your entry is wrong or incomplete, just drop some e-mail to lyx@lyx.org. Thanks.
''')
return "".join(results)
def header():
return '''[[${email} | ${name}]]";
else
$output=$output. "
[[mailto:${email} | ${name}]]";
} else
$output=$output. "${name}";
$msg = preg_replace("/\\n */", "\\n ", ltrim($msg));
$output=$output. "
${msg}
";
return $output;
}
function credits_output() {
$output=$output."
If your name doesn't appear here although you've done
something for LyX, or your entry is wrong or incomplete,
just drop an e-mail to the
[[mailto:lyx-devel@lists.lyx.org | lyx-devel]]
mailing list. Thanks.
";
''')
wrapper = textwrap.TextWrapper(width=60, subsequent_indent=" ")
for contributor in contributors:
if len(contributor.credit) != 0:
results.append(contributor.as_php_credits(wrapper))
results.append('''
$output=$output."
";
return $output;
}
''')
results.append(footer())
return "".join(results)
def as_php_blanket(contributors, file):
results = []
results.append(header())
results.append('''
function blanket_contrib($name, $email, $msg_title, $msg_ref, $date) {
$email = str_replace(' () ', '@', $email);
$email = str_replace(' ! ', '.', $email);
$output=$output. "
[[mailto:${email} | ${name}]]
See the lyx-devel mailing list message
"";
if (isset($msg_ref) && $msg_ref != "") {
$msg_ref = htmlspecialchars("$msg_ref");
$output=$output. "[[http://marc.info/?l=lyx-devel&" . ${msg_ref} . "|" . ${msg_title} . "]]";
} else {
$output=$output. "${msg_title}";
}
$output=$output. ""
of $date.
";
return $output;
}
function blanket_output() {
$output=$output."
The following people hereby grant permission to license their
contributions to LyX under the
[[http://www.opensource.org/licenses/gpl-license.php |
Gnu General Public License]], version 2 or later.
";
''')
for contributor in contributors:
if contributor.licence == "GPL":
results.append(contributor.as_php_blanket())
results.append('''
$output=$output."
";
$output=$output."
The following people hereby grant permission to license their
contributions to LyX under the
[[http://www.opensource.org/licenses/artistic-license-2.0.php |
Artistic License 2]].
";
''')
for contributor in contributors:
if contributor.licence == "Artistic":
results.append(contributor.as_php_blanket())
results.append('''
$output=$output."
";
return $output;
}
''')
results.append(footer())
return "".join(results)
def main(argv, contributors):
if len(argv) != 4:
error(usage(argv[0]))
txt_credits_data = unicode(as_txt_credits(contributors)).encode("utf-8")
txt_credits = open(argv[1], "w")
txt_credits.write(txt_credits_data)
php_credits_data = unicode(as_php_credits(contributors, argv[2])).encode("utf-8")
php_credits = open(argv[2], "w")
php_credits.write(php_credits_data)
php_blanket_data = unicode(as_php_blanket(contributors, argv[3])).encode("utf-8")
php_blanket = open(argv[3], "w")
php_blanket.write(php_blanket_data)
warning_data = unicode(collate_incomplete(contributors) + '\n').encode("utf-8")
sys.stderr.write(warning_data)
# Store the raw data.
contributors = [
contributor(u"Ramanathan Vishnampet",
"rvishnampet () gmail ! com",
"GPL",
"Re: [Patch] -fobjc-exceptions for compiling linkback sources with g++ on Mac",
"",
"17 February 2014",
u"Support for g++ on 4.8 Mac"),
contributor(u"Ronen Abravanel",
"ronena () gmail ! com",
"GPL",
"Re: Patch: Diagram inset",
"m=128486837824718",
"19 September 2010",
u"Support for feyn diagrams"),
contributor(u"Maarten Afman",
"info () afman ! net",
"GPL",
"Fwd: Re: The LyX licence",
"m=110958096916679",
"27 February 2005",
u"Dutch translation team member"),
contributor(u"Hatim Alahmadi",
"dr.hatim () hotmail ! com",
"GPL",
"license issue",
"m=121727417724431",
"28 July 2008",
u"Arabic translation"),
contributor(u"Asger Alstrup",
"aalstrup () laerdal ! dk",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110899716913300",
"21 February 2005",
u"General hacking of user interface stuff and those other bits and pieces"),
contributor(u"Jesper Stemann Andersen",
"jesper () sait ! dk",
"GPL",
"Contributions GPLed",
"m=130336947315984",
"21 April 2011",
u"Danish translation"),
contributor(u"Pascal André",
"andre () via ! ecp ! fr",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111263406200012",
"1 April 2005",
u"External style definition files, linuxdoc sgml support and more ftp-site ftp.lyx.org"),
contributor(u"Liviu Andronic",
"landronimirc () gmail ! com",
"GPL",
"contributions GPLed",
"m=121869084720708",
"14 August 2008",
u"Romanian localization and support for the frletter document class"),
contributor(u"João Luis Meloni Assirati",
"assirati () nonada ! if ! usp ! br",
"GPL",
"Re: The LyX licence",
"m=110918749022256",
"23 February 2005",
u"Added support for unix sockets and thence the 'inverse DVI' feature"),
contributor(u"Patrick Atamaniuk",
"atamaniuk () frobs ! net",
"GPL",
"License for my contributions",
"m=129594232112957",
"28 January 2011",
u"fix-cm module"),
contributor(u"Gioele Barabucci",
"gioele () svario ! it",
"GPL",
"Contribution license",
"m=136933235620262",
"23 May 2013",
u"ACM-SIGS layouts"),
contributor(u"Özgür Uğraş Baran",
"ugras.baran () gmail ! com",
"GPL",
"Re: [patch] new InsetCommandParams",
"m=116124030512963",
"19 October 2006",
u"New commandparams structure, Nomenclature inset"),
contributor(u"Susana Barbosa",
"susana.barbosa () fc ! up ! pt",
"GPL",
"License",
"m=118707828425316",
"14 August 2007",
u"Portuguese translation"),
contributor(u"Yves Bastide",
"yves.bastide () irisa ! fr",
"GPL",
"Re: The LyX licence",
"m=110959913631678",
"28 February 2005",
u"Bug fixes"),
contributor(u"Heinrich Bauer",
"heinrich.bauer () t-mobile ! de",
"GPL",
"Fwd: Re: The LyX licence",
"m=110910430117798",
"22 February 2005",
u"Fixes for dvi output original version of page selection for printing"),
contributor(u"Georg Baum",
"georg.baum () post ! rwth-aachen ! de",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110899912526043",
"21 February 2005",
u"tex2lyx improvements, bug fixes, unicode work"),
contributor(u"Hans Bausewein",
"hans () comerwell ! xs4all ! nl",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111262999400394",
"2 April 2005",
'"case insensitive" and "complete word" search'),
contributor(u"Kornel Benko",
"Kornel.Benko () berlin ! de",
"GPL",
"The LyX licence",
"m=123100818303101",
"3 January 2009",
u"small bugfixes, CMake build system, Slovak translation"),
contributor(u"Jacob Bishop",
"bishop.jacob () gmail ! com",
"GPL",
"Contributions...APA 6 Layout",
"m=135654106502977",
"26 December 2012",
u"APA 6 Layout"),
contributor(u"Punyashloka Biswal",
"punya.biswal () gmail ! com",
"GPL",
"Re: Patch for ticket #6848",
"m=128298296923913",
"28 August 2010",
u"Bug fixes"),
contributor(u"Graham Biswell",
"graham () gbiswell ! com",
"GPL",
"Re: The LyX licence",
"m=111269177728853",
"5 April 2005",
u"Small bugfixes that were very hard to find"),
contributor(u"Lars Gullik Bjønnes",
"larsbj () gullik ! net",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110907078027047",
"22 February 2005",
u"Improvements to user interface (menus and keyhandling) including a configurable toolbar and a few other (not so) minor things, like rewriting most of the LyX kernel. Also previous source maintainer."),
contributor(u"Alfredo Braunstein",
"abraunst () lyx ! org",
"GPL",
"Re: The LyX licence",
"m=110927069513172",
"24 February 2005",
u"A (pseudo) threaded graphics loader queue, lots of fixes, etc."),
contributor(u"Christian Buescher",
"christian.buescher () uni-bielefeld ! de",
"",
"",
"",
"",
u"User-definable keys, lyxserver and more"),
contributor(u"Johnathan Burchill",
"jkerrb () users ! sourceforge ! net",
"GPL",
"Re: The LyX licence",
"m=110908472818670",
"22 February 2005",
u"Ported John Levon's original 'change tracking' code to later versions of LyX. Numerous bug fixes thereof."),
contributor(u"Francesc Burrull i Mestres",
"fburrull () mat ! upc ! es",
"",
"",
"",
"",
u"Catalan translation"),
contributor(u"Sergiu Carpov",
"ssmiler () gmail ! com",
"GPL",
"Re: Bug #5522",
"m=124721248310586",
"10 July 2009",
u"Bug fixes"),
contributor(u"Humberto Nicolás Castejón",
"beconico () gmail ! com",
"GPL",
"Re: The LyX licence",
"m=111833854105023",
"9 June 2005",
u"Spanish translation of the Windows installer"),
contributor(u"Matěj Cepl",
"matej () ceplovi ! cz",
"GPL",
"Re: The LyX licence",
"m=110913090232039",
"22 February 2005",
u"Improvements to the czech keymaps"),
contributor(u"Albert Chin",
"lyx-devel () mlists ! thewrittenword ! com",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111220294831831",
"30 March 2005",
u"Bug fixes"),
contributor(u"Jean-Pierre Chrétien",
"jeanpierre.chretien () free ! fr",
"GPL",
"Re: The LyX licence",
"m=111842518713710",
"10 June 2005",
u"French translations"),
contributor(u"Claudio Coco",
"lacocio () libero ! it",
"GPL",
"Agreement to GNU General Public licence",
"m=113749629514591",
"17 January 2006",
u"Italian translation"),
contributor(u"Yuri Chornoivan",
"yurchor () ukr ! net",
"GPL",
"Permission grant",
"m=121681339315810",
"23 July 2008",
u"Ukrainian translation"),
contributor(u"Tommaso Cucinotta",
"cucinotta () sssup !it",
"GPL",
"Re: View Menu proposal",
"m=119030065212621",
"20 Sep 2007",
u"Advanced search feature"),
contributor(u"Matthias Kalle Dalheimer",
"kalle () kdab ! net",
"GPL",
"Re: The LyX licence",
"m=110908857130107",
"22 February 2005",
u"Qt2 port"),
contributor(u"Ulysse Danglis",
"o2d () freemail ! gr",
"GPL",
"License of el.po",
"m=126738357204586",
"28 February 2010",
u"Greek translations"),
contributor(u"Ewan Davies",
"ewan.davies () googlemail ! com",
"GPL",
"Re: Starting Development",
"m=124248720628359",
"17 May 2009",
u"doxygen to LFUNs.lyx conversion"),
contributor(u"Jack Dessert",
"jackdesert556 () gmail ! com",
"GPL",
"License",
"m=126994985831115",
"30 March 2010",
u"Patches for configure.py"),
contributor(u"Anders Ekberg",
"anek () chalmers ! se",
"GPL",
"License agreement",
"m=113725822602516",
"14 January 2006",
u"Improvements to the Swedish translation of the Windows Installer"),
contributor(u"Martin Engbers",
"martin.engbers () gmx ! de",
"GPL",
"Re: [patch] Icon replacement",
"m=123877725311464",
"Apr 3 2009",
u"icon loading tweaks"),
contributor(u"Matthias Ettrich",
"ettrich () trolltech ! com",
"GPL",
"Fwd: Re: The LyX licence",
"m=110959638810040",
"28 February 2005",
u"Started the project, implemented the early versions, various improvements including undo/redo, tables, and much, much more"),
contributor(u"Baruch Even",
"baruch () ev-en ! org",
"GPL",
"Re: The LyX licence",
"m=110936007609786",
"25 February 2005",
u"New graphics handling scheme and more"),
contributor(u"Dov Feldstern",
"dfeldstern () fastimap ! com",
"GPL",
"Re: Farsi support re-submission plus a little more",
"m=118064913824836",
"31 May 2007",
u"RTL/BiDi-related fixes"),
contributor(u"Michał Fita",
"michal ! fita () gmail ! com",
"GPL",
"Statement for Polish translation",
"m=121615623122376",
"15 July 2008",
u"Polish translation"),
contributor(u"Ronald Florence",
"ron () 18james ! com",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111262821108510",
"31 March 2005",
u"Maintainer of the OS X port(s)"),
contributor(u"José Ramom Flores d'as Seixas",
"fa2ramon () usc ! es",
"GPL",
"Re: Galician translation",
"m=116136920230072",
"20 October 2006",
u"Galician documentation and localization"),
contributor(u"John Michael Floyd",
"jmf () pwd ! nsw ! gov ! au",
"",
"",
"",
"",
u"Bug fix to the spellchecker"),
contributor(u"Nicola Focci",
"nicola.focci () gmail ! com",
"GPL",
"Permission",
"m=120946605432341",
"29 April 2008",
u"Italian translation of documentations"),
contributor(u"Enrico Forestieri",
"forenr () tlc ! unipr ! it",
"GPL",
"Re: lyxpreview2ppm.py",
"m=111894292115287",
"16 June 2005",
u"Italian translations, many bug fixes and features"),
contributor(u"Eitan Frachtenberg",
"sky8an () gmail ! com",
"GPL",
"Re: [PATCH] BibTeX annotation support",
"m=111130799028250",
"20 March 2005",
u"BibTeX annotation support"),
contributor(u"Darren Freeman",
"dfreeman () ieee ! org",
"GPL",
"Licence",
"m=118612951707590",
"3 August 2007",
u"Improvements to mouse wheel scrolling; many bug reports"),
contributor(u"Max Funk",
"maxkhfunk () gmx ! net",
"GPL",
"GPL",
"m=130659936521230",
"28 May 2011",
u"Bug fixes"),
contributor(u"Edscott Wilson Garcia",
"edscott () xfce ! org",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111219295119021",
"30 March 2005",
u"Bug fixes"),
contributor(u"Ignacio García",
"ignacio.gmorales () gmail ! com",
"GPL",
"Re: es_EmbeddedObjects",
"m=117079592919653",
"06 February 2007",
u"Spanish translation of documentations"),
contributor(u"Michael Gerz",
"michael.gerz () teststep ! org",
"GPL",
"Re: The LyX licence",
"m=110909251110103",
"22 February 2005",
u"Change tracking, German localization, bug fixes"),
contributor(u"Stefano Ghirlanda",
"stefano.ghirlanda () unibo ! it",
"GPL",
"Re: The LyX licence",
"m=110959835300777",
"28 February 2005",
u"Improvements to lyxserver"),
contributor(u"Hartmut Goebel",
"h.goebel () crazy-compilers ! com",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111225910223564",
"30 March 2005",
u"Improvements to Koma-Script classes"),
contributor(u"Riccardo Gori",
"goriccardo () gmail ! com",
"GPL",
"Re: r35561 - lyx-devel/trunk/src/insets",
"m=128626762015975",
"5 Oct 2010",
u"Fixing tabular code"),
contributor(u"Peter Gumm",
"gumm () mathematik ! uni-marburg ! de",
"GPL",
"Re: xy-pic manual",
"m=122469079629276",
"22 October 2008",
u"XY-pic manual"),
contributor(u"İbrahim Güngör",
"h.ibrahim.gungor () gmail ! com",
"GPL",
"Update Turkish Translation",
"m=122583550732670",
"4 Nov 2008",
u"Turkish translation"),
contributor(u"Hartmut Haase",
"hha4491 () web ! de",
"GPL",
"Re: The LyX licence",
"m=110915427710167",
"23 February 2005",
u"German translation of the documentation"),
contributor(u"Helge Hafting",
"helgehaf () aitel ! hist ! no",
"GPL",
"Re: The LyX licence",
"m=110916171925288",
"23 February 2005",
u"Norwegian documentation and localization"),
contributor(u"Richard Heck",
"rgheck () comcast ! net",
"GPL",
"GPL Statement",
"m=117501689204059",
"27 March 2007",
u"Bug fixes, layout modules, BibTeX code, XHTML export. Current stable branch maintainer."),
contributor(u"Bennett Helm",
"bennett.helm () fandm ! edu",
"GPL",
"Re: The LyX licence",
"m=110907988312372",
"22 February 2005",
u"Maintainer of the OSX ports, taking over from Ronald Florence"),
contributor(u"Kevin B. Hendricks",
"kevin.hendricks () sympatico ! ca",
"GPL",
"Fwd: Re: Integration of libmythes and hunspell",
"m=124190107613441",
"9 May 2009",
u"Author of the MyThes thesaurus library"),
contributor(u"Claus Hentschel",
"claus.hentschel () mbau ! fh-hannover ! de",
"",
"",
"",
"",
u"Win32 port of LyX 1.1.x"),
contributor(u"Josh Hieronymous",
"josh.p.hieronymus () gmail ! com",
"GPL",
"licensing my contributions to LyX",
"m=137426932127289",
"19 July 2013",
u"XHTML and ePub Improvements (GSOC Student)"),
contributor(u"Claus Hindsgaul",
"claus_h () image ! dk",
"GPL",
"Re: The LyX licence",
"m=110908607416324",
"22 February 2005",
u"Danish translation"),
contributor(u"Martin Hoffmann",
"hoffimar () gmail ! com",
"GPL",
"Re: #8703: 'new shortcut' box closes if no shortcut",
"m=138105799411067",
"6 October 2013",
u"Dialog usability fix"),
contributor(u"Bernard Hurley",
"bernard () fong-hurley ! org ! uk",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111218682804142",
"30 March 2005",
u"Fixes to literate programming support"),
contributor(u"Marius Ionescu",
"felijohn () gmail ! com",
"GPL",
"permission to licence",
"m=115935958330941",
"27 September 2006",
u"Romanian localization"),
contributor(u"Bernhard Iselborn",
"bernhard.iselborn () sap ! com",
"GPL",
"RE: The LyX licence",
"m=111268306522212",
"5 April 2005",
u"Some minor bug-fixes, FAQ, linuxdoc sgml support"),
contributor(u"Masanori Iwami",
"masa.iwm () gmail ! com",
"GPL",
"Re: [patch] Addition of input method support",
"m=117541512517453",
"1 April 2007",
u"Development of CJK language support"),
contributor(u"Michal Jaegermann",
"michal () ellpspace ! math ! ualberta ! ca",
"GPL",
"Re: The LyX licence",
"m=110909853626643",
"22 February 2005",
u"Fix to a very hard-to-find egcs bug that crashed LyX on alpha architecture"),
contributor(u"Harshula Jayasuriya",
"harshula () gmail ! com",
"GPL",
"Re: Bug in export to DocBook",
"m=116884249725701",
"15 January 2007",
u"Fix docbook generation of nested lists"),
contributor(u"David L. Johnson",
"david.johnson () lehigh ! edu",
"GPL",
"GPL",
"m=110908492016593",
"22 February 2005",
u"Public relations, feedback, documentation and support"),
contributor(u"Robert van der Kamp",
"robnet () wxs ! nl",
"GPL",
"Re: The LyX licence",
"m=111268623330209",
"5 April 2005",
u"Various small things and code simplifying"),
contributor(u"Amir Karger",
"amirkarger () gmail ! com",
"GPL",
"Re: The LyX licence",
"m=110912688520245",
"23 February 2005",
u"Tutorial, reLyX: the LaTeX to LyX translator"),
contributor(u"Zahari Dmitrov Kassabov",
"zaharid () gmail ! com",
"GPL",
"GPL Statement",
"m=135540059615508",
"13 December 2012",
u"Bug fixes"),
contributor(u"Carmen Kauffmann",
"",
"",
"",
"",
"",
u"Original name that is now two characters shorter"),
contributor(u"KDE Artists",
"http://artist.kde.org/",
"",
"",
"",
"",
u"Authors of several of the icons LyX uses"),
contributor(u"Andreas Klostermann",
"andreas_klostermann () web ! de",
"GPL",
"blanket-permission",
"m=111054675600338",
"11 March 2005",
u"Gtk reference insertion dialog"),
contributor(u"Timo Kluck",
"tkluck () gmail ! com",
"GPL",
"license statement",
"m=132334049317495",
"8 December 2011",
u"Dutch translation, icon fixes"),
contributor(u"Kostantino",
"ciclope10 () alice ! it",
"GPL",
"Permission granted",
"m=115513400621782",
"9 August 2006",
u"Italian localization of the interface"),
contributor(u"Scott Kostyshak",
"skostysh@princeton.edu",
"GPL",
"GPL Statement",
"m=133076234031944",
"3 March 2012",
u"Small UI fixes"),
contributor(u"Michael Koziarski",
"koziarski () gmail ! com",
"GPL",
"Re: The LyX licence",
"m=110909592017966",
"22 February 2005",
u"Gnome port"),
contributor(u"Peter Kremer",
"kremer () bme-tel ! ttt ! bme ! hu",
"",
"",
"",
"",
u"Hungarian translation and bind file for menu shortcuts"),
contributor(u'Marcus Kriele',
"mkriele () me ! com",
"GPL",
"License permission",
"m=130384781027177",
"26 April 2011",
u"Fixing various sv* layouts"),
contributor(u'Valeriy Kruchko',
"lerkru () gmail ! com",
"GPL",
"Re: translation in to russian about 68%",
"m=125904983806681",
"24 November 2009",
u"Russian translation of the user interface"),
contributor(u"Peter Kümmel",
"syntheticpp () gmx ! net",
"GPL",
"License",
"m=114968828021007",
"7 June 2006",
u"Qt4 coding, CMake build system, bug fixing, testing, clean ups, and profiling"),
contributor(u"Bernd Kümmerlen",
"bkuemmer () gmx ! net",
"GPL",
"Re: The LyX licence",
"m=110934318821667",
"25 February 2005",
u"Initial version of the koma-script textclasses"),
contributor(u"Felix Kurth",
"felix () fkurth ! de",
"GPL",
"Re: The LyX licence",
"m=110908918916109",
"22 February 2005",
u"Support for textclass g-brief2"),
contributor(u"Rob Lahaye",
"lahaye () snu ! ac ! kr",
"GPL",
"Re: The LyX licence",
"m=110908714131711",
"22 February 2005",
u"Xforms dialogs and GUI related code"),
contributor(u"Jean-Marc Lasgouttes",
"lasgouttes () lyx ! org",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110899928510452",
"21 February 2005",
u"configure and Makefile-stuff, many bugfixes and more. Previous stable branch maintainer."),
contributor(u"Victor Lavrenko",
"lyx () lavrenko ! pp ! ru",
"",
"",
"",
"",
u"Russian translation"),
contributor(u"Angus Leeming",
"leeming () lyx ! org",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110899671520339",
"21 February 2005",
u"GUI-I-fication of insets and more"),
contributor(u"Edwin Leuven",
"e.leuven () gmail ! com",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110899657530749",
"21 February 2005",
u"Tabular and misc UI stuff"),
contributor(u"John Levon",
"levon () movementarian ! org",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110899535600562",
"21 February 2005",
u"Qt2 frontend, GUII work, bugfixes"),
contributor(u"Ling Li",
"ling () caltech ! edu",
"GPL",
"Re: LyX 1.4cvs crash on Fedora Core 3",
"m=111204368700246",
"28 March 2005",
u"Added native support for \makebox to mathed. Several bug fixes, both to the source code and to the llncs layout file"),
contributor(u"LibreOffice Team",
"http://www.libreoffice.org/",
"LGPL",
"",
"",
"",
u"Libreoffice Icon Theme"),
contributor(u"Tomasz Łuczak",
"tlu () technodat ! com ! pl",
"GPL",
"Re: [Cvslog] lyx-devel po/: ChangeLog pl.po lib/: CREDITS",
"m=113580483406067",
"28 December 2005",
u"Polish translation and mw* layouts files"),
contributor(u"Hangzai Luo",
"memcache () gmail ! com",
"GPL",
"Re: [patch] tex2lyx crash when full path is given from commandline on Win32",
"m=118326161706627",
"1 July 2007",
u"Bugfixes"),
contributor(u"Mohamed Magdy",
"physicist2010 () gmail ! com>",
"GPL",
"A permission to use my Arabic-Translation for LyX?",
"m=126877445318267",
"16 March 2010",
u"Arabic translation"),
contributor(u"Tetsuya Makimura",
"makimura () ims ! tsukuba.ac ! jp",
"GPL",
"Re: Support request for Japanese without CJK, again (Re: [Fwd: About Japanese edition ...)",
"m=121905769227884",
"18 August 2008",
u"Improvements to the Japanese language support."),
contributor(u"José Matos",
"jamatos () fc ! up ! pt",
"GPL",
"Re: The LyX licence",
"m=110907762926766",
"22 February 2005",
u"linuxdoc sgml support. Previous release manager."),
contributor(u"Roman Maurer",
"roman.maurer () amis ! net",
"GPL",
"Re: The LyX licence",
"m=110952616722307",
"27 February 2005",
u"Slovenian translation coordinator"),
contributor(u"John McCabe-Dansted",
"gmatht () gmail ! com",
"GPL",
"Re: Randomly Generated Crash Reports Useful?",
"m=124515770509946",
"15 June 2009",
u"Keys-test module, bug fixing"),
contributor(u"Caolán McNamara",
"caolanm () redhat ! com",
"GPL",
"Statement for enchant integration",
"m=126389593805123",
"19 January 2010",
u"Support for the enchant spell checking library"),
contributor(u"Tino Meinen",
"a.t.meinen () chello ! nl",
"GPL",
"Re: Licensing your contributions to LyX",
"m=113078277722316",
"31 October 2005",
u"Dutch translation coordinator"),
contributor(u"Siegfried Meunier-Guttin-Cluzel",
"meunier () coria ! fr",
"GPL",
"French translations",
"m=119485816312776",
"12 November 2007",
u"French translations of the documentation"),
contributor(u"Günter Milde",
"milde () users ! berlios ! de",
"GPL",
"copyleft",
"m=122398147620761",
"14 October 2008",
u"Unicode and layout file fixes"),
contributor(u"Dustin J. Mitchell",
"dustin () v ! igoro ! us",
"GPL",
"Fwd: Your patch for LyX",
"m=139255709609015",
"16 February 2014",
u"Fix for csv2lyx"),
contributor(u"Joan Montané",
"jmontane () gmail ! com",
"GPL",
"Re: LyX translation updates needed",
"m=118765575314017",
"21 August 2007",
u"Catalan translations of menus"),
contributor(u"Iñaki Larrañaga Murgoitio",
"dooteo () euskalgnu ! org",
"GPL",
"Re: The LyX licence",
"m=110908606525783",
"22 February 2005",
u"Basque documentation and localization"),
contributor(u"Daniel Naber",
"daniel.naber () t-online ! de",
"GPL",
"Re: The LyX licence",
"m=110911176213928",
"22 February 2005",
u"Improvements to the find&replace dialog"),
contributor(u"Pablo De Napoli",
"pdenapo () mate ! dm ! uba ! ar",
"GPL",
"Re: The LyX licence",
"m=110908904400120",
"22 February 2005",
u"Math panel dialogs"),
contributor(u"Dirk Niggemann",
"dabn100 () cam ! ac ! uk",
"",
"",
"",
"",
u"config. handling enhancements, bugfixes, printer enhancements path mingling"),
contributor(u"Jens Nöckel",
"noeckel () uoregon !edu",
"GPL",
"GPL statement",
"m=128485749516885",
"19 September 2010",
u"Mac OS X enhancements"),
contributor(u"Rob Oakes",
"lyx-devel () oak-tree ! us>",
"GPL",
"Outline Contributions",
"m=124615188102843",
"27 June 2009",
u"Improvements to the outliner."),
contributor(u"Oxygen Team",
"http://www.oxygen-icons.org/",
"LGPL",
"",
"",
"",
u"Oxygen Icon Theme"),
contributor(u"Carl Ollivier-Gooch",
"cfog () mech ! ubc ! ca",
"GPL",
"Re: The LyX licence --- a gentle nudge",
"m=111220662413921",
"30 March 2005",
u"Support for two-column figure (figure*) and table (table*) environments. Fixed minibuffer entry of floats."),
contributor(u"Gilad Orr",
"giladorr () gmail ! com",
"GPL",
"Internationalization-Hebrew",
"m=138314500901798",
"28 October 2013",
u"Hebrew translation."),
contributor(u'Panayotis "PAP" Papasotiriou',
"papasot () upatras ! gr",
"GPL",
"Re: The LyX licence",
"m=110933552929119",
"25 February 2005",
u"Support for kluwer and ijmpd document classes"),
contributor(u'Andrey V. Panov',
"panov () canopus ! iacp ! dvo ! ru",
"GPL",
"Re: Russian translation for LyX",
"m=119853644302866",
"24 December 2007",
u"Russian translation of the user interface"),
contributor(u'Bo Peng',
"ben.bob () gmail ! com",
"GPL",
"Re: Python version of configure script (preview version)",
"m=112681895510418",
"15 September 2005",
u"Conversion of all shell scripts to Python, shortcuts dialog, session, view-source, auto-view, embedding features and scons build system."),
contributor(u'John Perry',
"john.perry () usm ! edu",
"GPL",
"Contributions",
"m=128874016511551",
"2 November 2010",
u"Named theorems module."),
contributor(u"Joacim Persson",
"sp2joap1 () ida ! his ! se",
"",
"",
"",
"",
u"po-file for Swedish, a tool for picking shortcuts, bug reports and hacking atrandom"),
contributor(u"Zvezdan Petkovic",
"zpetkovic () acm ! org",
"GPL",
"Re: The LyX licence",
"m=111276877900892",
"6 April 2005",
u"Better support for serbian and serbocroatian"),
contributor(u"Geoffroy Piroux",
"piroux () fyma ! ucl ! ac ! be",
"",
"",
"",
"",
u"Mathematica backend for mathed"),
contributor(u"Benjamin Piwowarski",
"benjamin ! piwowarski () lip6 ! fr",
"GPL",
"GPL statement",
"m=133958334631163",
"13 June 2012",
u"AppleScript, integration with bibliography managers"),
contributor(u"Neoklis Polyzotis",
"alkis () soe ! ucsc ! edu",
"GPL",
"Fwd: Re: The LyX licence",
"m=111039215519777",
"9 March 2005",
u"Keymap work"),
contributor(u"André Pönitz",
"andre.poenitz () mathematik ! tu-chemnitz ! de",
"GPL",
"Re: The LyX licence",
"m=111143534724146",
"21 March 2005",
u"mathed rewrite to use STL file io with streams --export and --import command line options"),
contributor(u"Kornelia Pönitz",
"kornelia.poenitz () mathematik ! tu-chemnitz ! de",
"GPL",
"Re: The LyX licence",
"m=111121553103800",
"19 March 2005",
u"heavy mathed testing; provided siamltex document class"),
contributor(u"Bernhard Psaier",
"",
"",
"",
"",
"",
u"Designer of the LyX-Banner"),
contributor(u"Thomas Pundt",
"thomas () pundt ! de",
"GPL",
"Re: The LyX licence",
"m=111277917703326",
"6 April 2005",
u"initial configure script"),
contributor(u"Allan Rae",
"rae () itee ! uq ! edu ! au",
"GPL",
"lyx-1.3.6cvs configure.in patch",
"m=110905169512662",
"21 February 2005",
u"GUI-I architect, LyX PR head, LDN, bug reports/fixes, Itemize Bullet Selection, xforms-0.81 + gcc-2.6.3 compatibility"),
contributor(u"Manoj Rajagopalan",
"rmanoj () umich ! edu",
"GPL",
"Re: patch for case-insensitive reference sorting",
"m=123506398801004",
"Feb 19 2009",
u"reference dialog tweaks"),
contributor(u"Vincent van Ravesteijn",
"V.F.vanRavesteijn () tudelft ! nl",
"GPL",
"RE: crash lyx-1.6rc1",
"m=121786603726114",
"4 August 2008",
u"lots of fixes"),
contributor(u"Adrien Rebollo",
"adrien.rebollo () gmx ! fr",
"GPL",
"Re: The LyX licence",
"m=110918633227093",
"23 February 2005",
u"French translation of the docs; latin 3, 4 and 9 support"),
contributor(u"Garst R. Reese",
"garstr () isn ! net",
"GPL",
"blanket-permission.txt:",
"m=110911480107491",
"22 February 2005",
u"provided hollywood and broadway classes for writing screen scripts and plays"),
contributor(u"Bernhard Reiter",
"ockham () gmx ! net",
"GPL",
"Re: RFC: GThesaurus.C et al.",
"m=112912017013984",
"12 October 2005",
u"Gtk frontend"),
contributor(u"Ruurd Reitsma",
"rareitsma () yahoo ! com",
"GPL",
"Fwd: Re: The LyX licence",
"m=110959179412819",
"28 February 2005",
u"Creator of the native port of LyX to Windows"),
contributor(u"Bernd Rellermeyer",
"bernd.rellermeyer () arcor ! de",
"GPL",
"Re: The LyX licence",
"m=111317142419908",
"10 April 2005",
u"Support for Koma-Script family of classes"),
contributor(u"Michael Ressler",
"mike.ressler () alum ! mit ! edu",
"GPL",
"Re: The LyX licence",
"m=110926603925431",
"24 February 2005",
u"documentation maintainer, AASTeX support"),
contributor(u"Richman Reuven",
"richman.reuven () gmail ! com",
"GPL",
"gpl 2+ ok :)",
"m=130368087529359",
"24 April 2011",
u"Hebrew localisation"),
contributor(u"Christian Ridderström",
"christian.ridderstrom () gmail ! com",
"GPL",
"Re: The LyX licence",
"m=110910933124056",
"22 February 2005",
u"The driving force behind, and maintainer of, the LyX wiki wiki.\nSwedish translation of the Windows installer"),
contributor(u"Julien Rioux",
"jrioux () lyx ! org",
"GPL",
"Re: #6361: configure.py ignores packages required by user-defined modules",
"m=125986505101722",
"3 December 2009",
u"Bug fixes, lilypond and revtex support, citation modules."),
contributor(u"Bernhard Roider",
"bernhard.roider () sonnenkinder ! org",
"GPL",
"Re: [PATCH] immediatly display saved filename in tab",
"m=117009852211669",
"29 January 2007",
u"Various bug fixes"),
contributor(u"Jim Rotmalm",
"jim.rotmalm () gmail ! com",
"GPL",
"License for my contributions.",
"m=129582352017079",
"24 January 2011",
u"Swedish translation"),
contributor(u"Paul A. Rubin",
"rubin () msu ! edu",
"GPL",
"Re: [patch] reworked AMS classes (bugs 4087, 4223)",
"m=119072721929143",
"25 September 2007",
u"Major rework of the AMS classes"),
contributor(u"Guy Rutenberg",
"guyrutenberg () gmail ! com",
"GPL",
"Re: [PATCH] Strange Behaivor: xdg-open left as zombie",
"m=137365070116624",
"12 July 2013",
u"System call fixes"),
contributor(u"Ran Rutenberg",
"ran.rutenberg () gmail ! com",
"GPL",
"The New Hebrew Translation of the Introduction",
"m=116172457024967",
"24 October 2006",
u"Hebrew translation"),
contributor(u'Pavel Sanda',
"ps () ucw ! cz",
"GPL",
"Re: czech translation",
"m=115522417204086",
"10 August 2006",
u"Czech translation, added various features, lfuns docs/review. Current release manager."),
contributor(u"Szõke Sándor",
"alex () lyx ! hu",
"GPL",
"Contribution to LyX",
"m=113449408830523",
"13 December 2005",
u"Hungarian translation"),
contributor(u"Janus Sandsgaard",
"janus () janus ! dk",
"GPL",
"Re: The LyX licence",
"m=111839355328045",
"10 June 2005",
u"Danish translation of the Windows installer"),
contributor(u"Stefan Schimanski",
"sts () 1stein ! org",
"GPL",
"GPL statement",
"m=117541472517274",
"1 April 2007",
u"font improvements, bug fixes"),
contributor(u"Horst Schirmeier",
"horst () schirmeier ! com",
"GPL",
"Re: [patch] reordering capabilities for GuiBibtex",
"m=120009631506298",
"12 January 2008",
u"small fixes"),
contributor(u"Hubert Schreier",
"schreier () sc ! edu",
"",
"",
"",
"",
u"spellchecker (ispell frontend); beautiful document-manager based on the simple table of contents (removed)"),
contributor(u"Ivan Schreter",
"schreter () kdk ! sk",
"",
"",
"",
"",
u"international support and kbmaps for slovak, czech, german, ... wysiwyg figure"),
contributor(u"Eulogio Serradilla Rodríguez",
"eulogio.sr () terra ! es",
"GPL",
"Re: The LyX licence",
"m=110915313018478",
"23 February 2005",
u"contribution to the spanish internationalization"),
contributor(u"Nickolay Shashkin",
"mecareful () gmail ! com",
"GPL",
"GPL statement",
"m=134026564400578",
"21 June 2012",
u"bugfixes"),
contributor(u"Miyata Shigeru",
"miyata () kusm ! kyoto-u ! ac ! jp",
"",
"",
"",
"",
u"OS/2 port"),
contributor(u"Alejandro Aguilar Sierra",
"asierra () servidor ! unam ! mx",
"GPL",
"Fwd: Re: The LyX licence",
"m=110918647812358",
"23 February 2005",
u"Fast parsing with lyxlex, pseudoactions, mathpanel, Math Editor, combox and more"),
contributor(u"Lior Silberman",
"lior () princeton ! edu",
"GPL",
"Fwd: Re: The LyX licence",
"m=110910432427450",
"22 February 2005",
u"Tweaks to various XForms dialogs. Implemented the --userdir command line option, enabling LyX to run with multiple configurations for different users. Implemented the original code to make colours for different inset properties configurable."),
contributor(u"Waluyo Adi Siswanto",
"was.uthm () gmail ! com",
"GPL",
"Licence contributions",
"m=123595530114385",
"Mar 2 2009",
u"Indonesian translation"),
contributor(u"Giovanni Sora",
"g.sora () tiscali ! it",
"GPL",
"License ia.po",
"m=129968786830788",
"9 March 2011",
u"Interlingua translation"),
contributor(u"Andre Spiegel",
"spiegel () gnu ! org",
"GPL",
"Re: The LyX licence",
"m=110908534728505",
"22 February 2005",
u"vertical spaces"),
contributor(u"Jürgen Spitzmüller",
"juergen.sp () t-online ! de",
"GPL",
"Re: The LyX licence",
"m=110907530127164",
"22 February 2005",
u"Qt frontend, bugfixes. Former stable branch maintainer."),
contributor(u"John Spray",
"jcs116 () york ! ac ! uk",
"GPL",
"Re: The LyX licence",
"m=110909415400170",
"22 February 2005",
u"Gtk frontend"),
contributor(u"Ben Stanley",
"ben.stanley () exemail ! com ! au",
"GPL",
"Re: The LyX licence",
"m=110923981012056",
"24 February 2005",
u"fix bugs with error insets placement"),
contributor(u"Uwe Stöhr",
"uwestoehr () web ! de",
"GPL",
"Re: The LyX licence",
"m=111833345825278",
"9 June 2005",
u"Current documentation maintainer, Windows installer, bug fixes"),
contributor(u"David Suárez de Lis",
"excalibor () iname ! com",
"",
"",
"",
"",
u"maintaining es.po since v1.0.0 and other small i18n issues small fixes"),
contributor(u"Peter Sütterlin",
"p.suetterlin () astro ! uu ! nl",
"GPL",
"Re: The LyX licence",
"m=110915086404972",
"23 February 2005",
u"aapaper support, german documentation translation, bug reports"),
contributor(u"Kayvan Aghaiepour Sylvan",
"kayvan () sylvan ! com",
"GPL",
"Re: The LyX licence",
"m=110908748407087",
"22 February 2005",
u"noweb2lyx and reLyX integration of noweb files. added Import->Noweb and key bindings to menus"),
contributor(u"TaoWang (mgc)",
"mgcgogo () gmail ! com",
"GPL",
"Re: Chinese Version of Tutorial.lyx",
"m=125785021631705",
"10 November 2009",
u"translation of documentation and user interface to Simplified Chinese"),
contributor(u'Sergey Tereschenko',
"serg.partizan () gmail ! com",
"GPL",
"my contributions",
"m=126065880524135",
"12 December 2009",
u"Russian translation of the user interface"),
contributor(u"Reuben Thomas",
"rrt () sc3d ! org",
"GPL",
"Re: The LyX licence",
"m=110911018202083",
"22 February 2005",
u"ENTCS document class and lots of useful bug reports"),
contributor(u"Dekel Tsur",
"dtsur () cs ! ucsd ! edu",
"GPL",
"Fwd: Re: The LyX licence",
"m=110910437519054",
"22 February 2005",
u"Hebrew support, general file converter, many many bug fixes"),
contributor(u"Matthias Urlichs",
"smurf () smurf ! noris ! de",
"GPL",
"Re: The LyX licence",
"m=110912859312991",
"22 February 2005",
u"bug reports and small fixes"),
contributor(u"H. Turgut Uyar",
"uyar () ce ! itu ! edu ! tr",
"GPL",
"Re: The LyX licence",
"m=110917146423892",
"23 February 2005",
u"turkish kbmaps"),
contributor(u"Mostafa Vahedi",
"vahedi58 () yahoo ! com",
"GPL",
"Re: improving Arabic-like language support",
"m=117769964731842",
"27 April 2007",
u"Farsi support and translations"),
contributor(u"Marko Vendelin",
"markov () ioc ! ee",
"GPL",
"Re: The LyX licence",
"m=110909439912594",
"22 February 2005",
u"Gnome frontend"),
contributor(u"Joost Verburg",
"joostverburg () users ! sourceforge ! net",
"GPL",
"Re: New Windows Installer",
"m=114957884100403",
"6 June 2006",
u"A new and improved Windows installer"),
contributor(u"Martin Vermeer",
"martin.vermeer () hut ! fi",
"GPL",
"Re: The LyX licence",
"m=110907543900367",
"22 February 2005",
u"support for optional argument in sections/captions svjour/svjog, egs and llncs document classes. Lot of bug hunting (and fixing!)"),
contributor(u"Jürgen Vigna",
"jug () lyx ! org",
"GPL",
"Re: Licensing of tex2lyx (and perhaps LyX itself?)",
"m=110899839906262",
"21 February 2005",
u"complete rewrite of the tabular, text inset; fax and plain text export support; iletter and dinbrief support"),
contributor(u"Pauli Virtanen",
"pauli.virtanen () hut ! fi",
"GPL",
"Re: The LyX licence",
"m=110918662408397",
"23 February 2005",
u"Finnish localization of the interface"),
contributor(u"Herbert Voß",
"herbert.voss () alumni ! tu-berlin ! de",
"GPL",
"Fwd: Re: The LyX licence",
"m=110910439013234",
"22 February 2005",
u"The one who answers all questions on lyx-users mailing list and maintains www.lyx.org/help/ Big insetgraphics and bibliography cleanups"),
contributor(u"Andreas Vox",
"avox () arcor ! de",
"GPL",
"Re: The LyX licence",
"m=110907443424620",
"22 February 2005",
u"Bug fixes, feedback on LyX behaviour on the Mac, and improvements to DocBook export"),
contributor(u"venom00 (c/o J-M Lasgouttes)",
"venom00 () arcadiaclub ! com",
"GPL",
"I love GPL, what about you?",
"m=129098897014967",
"29 November 2010",
u"Bug fixing"),
contributor(u"Jason Waskiewicz",
"jason.waskiewicz () sendit ! nodak ! edu",
"GPL",
"[Fwd: Re: tufte-book layout for LyX]",
"m=125659179116032",
"26 October 2009",
u"Layouts for the Tufte document classes"),
contributor(u"John P. Weiss",
"jpweiss () frontiernet ! net",
"Artistic",
"Re: Small problem with BlanketPermission on the new site.",
"m=123238170812776",
"18 January 2009",
u"Bugreports and suggestions, slides class support, editor of the documentationproject, 6/96-9/97. Tutorial chapter 1"),
contributor(u"Edmar Wienskoski",
"edmar () freescale ! com",
"GPL",
"Re: The LyX licence",
"m=111280236425781",
"6 April 2005",
u"literate programming support; various bug fixes"),
contributor(u"Mate Wierdl",
"mw () wierdlmpc ! msci ! memphis ! edu",
"",
"",
"",
"",
u"Maintainer of the @lists.lyx.org mailing-lists"),
contributor(u"Serge Winitzki",
"winitzki () erebus ! phys ! cwru ! edu",
"",
"",
"",
"",
u"updates to the Scientific Word bindings"),
contributor(u"Stephan Witt",
"stephan.witt () beusen ! de",
"GPL",
"Re: The LyX licence",
"m=110909031824764",
"22 February 2005",
u"support for CVS revision control, native spell checker interface for Mac OS"),
contributor(u"Russ Woodroofe",
"paranoia () math ! cornell ! edu",
"GPL",
"Re: AMS math question environment",
"m=123091448326090",
"1 January 2009",
u"question layout environment"),
contributor(u"Yihui Xie",
"xie () yihui ! name",
"GPL",
"GPL Statement",
"m=130523685427995",
"3 June 2011",
u"Bugfixing, Chinese translation, Sweave support"),
contributor(u"Huang Ying",
"huangy () sh ! necas ! nec ! com ! cn",
"GPL",
"Re: The LyX licence",
"m=110956742604611",
"28 February 2005",
u"Gtk frontend"),
contributor(u"Koji Yokota",
"yokota () res ! otaru-uc ! ac ! jp",
"GPL",
"Re: [PATCH] po/ja.po: Japanese message file for 1.5.0 (merged from",
"m=118033214223720",
"28 May 2007",
u"Japanese translation"),
contributor(u"Abdelrazak Younes",
"younes.a () free ! fr",
"GPL",
"Re: [Patch] RFQ: ParagraphList Rewrite",
"m=113993670602439",
"14 February 2006",
u"Qt4 frontend, editing optimisations"),
contributor(u"Henner Zeller",
"henner.zeller () freiheit ! com",
"GPL",
"Re: The LyX licence",
"m=110911591218107",
"22 February 2005",
u"rotation of wysiwyg figures"),
contributor(u"Xiaokun Zhu",
"xiaokun () aero ! gla ! ac ! uk",
"",
"",
"",
"",
u"bug reports and small fixes") ]
if __name__ == "__main__":
main(sys.argv, contributors)