]> git.lyx.org Git - lyx.git/blobdiff - lib/generate_contributions.py
Remove profiling.py
[lyx.git] / lib / generate_contributions.py
index 6a0b829ca4171c058c528fcae413da44f5dfc5a7..a255b1c4ca4ad02abf52ec4743447f3578fb9e40 100755 (executable)
@@ -1,5 +1,4 @@
 #! /usr/bin/python3
-# -*- coding: utf-8 -*-
 
 '''
 file generate_contributions.py
@@ -51,39 +50,32 @@ class contributor:
 
 
      def as_txt_credits(self):
-          result = [ '@b%s\n' % self.name ]
+          result = [ f'@b{self.name}\n' ]
           if len(self.contact) != 0:
                if self.contact.find("https") != -1:
-                    result.append('@i%s\n' % self.contact)
+                    result.append(f'@i{self.contact}\n')
                else:
-                    result.append('@iE-mail: %s\n' % self.contact)
-          result.append('   %s\n' % self.credit.replace('\n', '\n   '))
+                    result.append(f'@iE-mail: {self.contact}\n')
+          result.append(f'   {self.credit.replace("\n", "\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))) )
+          return f'''
+$output=$output.credits_contrib("{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) )
-
+          return f'''
+$output=$output.blanket_contrib("{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:
@@ -114,13 +106,13 @@ def collate_incomplete(contributors):
           if len(contributor.licence) == 0:
               missing_licence.append(contributor.name)
 
-    return '''WARNING!
+    return f'''WARNING!
 The following contributors do not have a CREDITS entry:
-    %s
+    {",\n    ".join(missing_credit)}
 
 These ones have no explicit licence statement:
-    %s
-''' % ( ",\n    ".join(missing_credit), ",\n    ".join(missing_licence))
+    {",\n    ".join(missing_licence)}
+'''
 
 
 def as_txt_credits(contributors):
@@ -162,27 +154,31 @@ function credits_contrib($name, $email, $msg) {
 $email = str_replace(' () ', '@', $email);
 $email = str_replace(' ! ', '.', $email);
 
+if(!isset($output)){ $output = ''; }
+
 if (isset($email) && $email != "") {
         if (strncasecmp($email,"https",4) == 0)
-            $output =$output. "<dt><b>[[${email} | ${name}]]</b>";
+            $output =$output. "<dt><b>[[{$email} | {$name}]]</b>";
          else
-            $output=$output. "<dt><b>[[mailto:${email} | ${name}]]</b>";
+            $output=$output. "<dt><b>[[mailto:{$email} | {$name}]]</b>";
 } else
-        $output=$output. "<dt><b>${name}</b>";
+        $output=$output. "<dt><b>{$name}</b>";
 
 $msg = preg_replace("/\\n */", "\\n  ", ltrim($msg));
 
 $output=$output. "
  </dt>
  <dd>
-  ${msg}
+  {$msg}
  </dd>";
+
 return $output;
 }
 
 function credits_output() {
 
+if(!isset($output)){ $output = ''; }
+
 $output=$output."<p>
      If your name doesn't appear here although you've done
      something for LyX, or your entry is wrong or incomplete,
@@ -223,10 +219,12 @@ function blanket_contrib($name, $email, $msg_title, $msg_ref, $date) {
 $email = str_replace(' () ', '@', $email);
 $email = str_replace(' ! ', '.', $email);
 
+if(!isset($output)){ $output = ''; }
+
 $output=$output. "
 
  <dt>
-  <b>[[mailto:${email} | ${name}]]</b>
+  <b>[[mailto:{$email} | {$name}]]</b>
  </dt>
  <dd>
   See the lyx-devel mailing list message
@@ -234,20 +232,26 @@ $output=$output. "
 
 if (isset($msg_ref) && $msg_ref != "") {
         $msg_ref = htmlspecialchars("$msg_ref");
-        $output=$output. "[[https://marc.info/?l=lyx-devel&amp;" . ${msg_ref} . "|" . ${msg_title} . "]]";
+        if (substr($msg_ref, 0, 2) == "m=") {
+                $output=$output. "[[https://marc.info/?l=lyx-devel&amp;" . $msg_ref . "|" . $msg_title . "]]";
+        } else {
+                $output=$output. "[[https://www.mail-archive.com/lyx-devel@lists.lyx.org/" . $msg_ref . ".html |" . $msg_title . "]]";
+        }
 } else {
-        $output=$output. "${msg_title}";
+        $output=$output. "{$msg_title}";
 }
 
 $output=$output. "&quot;
   of $date.
  </dd>";
+
 return $output;
 }
 
 function blanket_output() {
 
+if(!isset($output)){ $output = ''; }
+
 $output=$output."<p>
      The following people hereby grant permission to license their
      contributions to LyX under the
@@ -296,166 +300,171 @@ def main(argv, contributors):
      if len(argv) != 4:
           error(usage(argv[0]))
 
-     if sys.version_info[0] < 3:
-         txt_credits_data = unicode(as_txt_credits(contributors)).encode("utf-8")
-     else:
-         txt_credits_data = str(as_txt_credits(contributors)).encode("utf-8")
+     txt_credits_data = str(as_txt_credits(contributors)).encode("utf-8")
      txt_credits = open(argv[1], "wb")
+     txt_credits.write(b"# Do not edit this file. It is created by the " \
+         b"script generate_contributions.py\n# and any direct change to " \
+         b"this file will be overwritten.\n")
      txt_credits.write(txt_credits_data)
 
-     if sys.version_info[0] < 3:
-         php_credits_data = unicode(as_php_credits(contributors, argv[2])).encode("utf-8")
-     else:
-         php_credits_data = str(as_php_credits(contributors, argv[2])).encode("utf-8")
+     php_credits_data = str(as_php_credits(contributors, argv[2])).encode("utf-8")
      php_credits = open(argv[2], "wb")
      php_credits.write(php_credits_data)
 
-     if sys.version_info[0] < 3:
-         php_blanket_data = unicode(as_php_blanket(contributors, argv[3])).encode("utf-8")
-     else:
-         php_blanket_data = str(as_php_blanket(contributors, argv[3])).encode("utf-8")
+     php_blanket_data = str(as_php_blanket(contributors, argv[3])).encode("utf-8")
      php_blanket = open(argv[3], "wb")
      php_blanket.write(php_blanket_data)
 
-     if sys.version_info[0] < 3:
-         warning_data =  unicode(collate_incomplete(contributors) + '\n').encode("utf-8")
-     else:
-         warning_data =  str(collate_incomplete(contributors) + '\n').encode("utf-8")
+     warning_data =  str(collate_incomplete(contributors) + '\n').encode("utf-8")
      sys.stderr.write(warning_data.decode('utf-8'))
 
 
 # Store the raw data.
+#
+# NOTE: syntax is
+#      contributor(u"Name",
+#                 "Email [address () domain ! tld]",
+#                 "GPL",
+#                 "Message title",
+#                 "Message ID",
+#                 "Date of Message",
+#                 u"Type of contribution"),
+#
+# Message ID can be either MARC [e.g., "m=1234567891011"]
+#                or mail-archive.com [e.g., "msg75510"]
+# (note that MARC was used exclusively until 2019-10, when MARC stopped
+#  archieving lyx-devel)
 contributors = [
 
-     contributor(u"Ronen Abravanel",
+     contributor("Ronen Abravanel",
                  "ronena () gmail ! com",
                  "GPL",
                  "Re: Patch: Diagram inset",
                  "m=128486837824718",
                  "19 September 2010",
-                 u"Support for feyn diagrams"),
+                 "Support for feyn diagrams"),
 
-     contributor(u"Maarten Afman",
+     contributor("Maarten Afman",
                  "info () afman ! net",
                  "GPL",
                  "Fwd: Re: The LyX licence",
                  "m=110958096916679",
                  "27 February 2005",
-                 u"Dutch translation team member"),
+                 "Dutch translation team member"),
 
-     contributor(u"Hatim Alahmadi",
+     contributor("Hatim Alahmadi",
                  "dr.hatim () hotmail ! com",
                  "GPL",
                  "license issue",
                  "m=121727417724431",
                  "28 July 2008",
-                 u"Arabic translation"),
+                 "Arabic translation"),
 
-     contributor(u"Asger Alstrup",
+     contributor("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"),
+                 "General hacking of user interface stuff and those other bits and pieces"),
 
-     contributor(u"Jesper Stemann Andersen",
+     contributor("Jesper Stemann Andersen",
                  "jesper () sait ! dk",
                  "GPL",
                  "Contributions GPLed",
                  "m=130336947315984",
                  "21 April 2011",
-                 u"Danish translation"),
+                 "Danish translation"),
 
-     contributor(u"Pascal André",
+     contributor("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"),
+                 "External style definition files, linuxdoc sgml support and more ftp-site ftp.lyx.org"),
 
-     contributor(u"Liviu Andronic",
+     contributor("Liviu Andronic",
                  "landronimirc () gmail ! com",
                  "GPL",
                  "contributions GPLed",
                  "m=121869084720708",
                  "14 August 2008",
-                 u"Romanian localization and support for the frletter document class"),
+                 "Romanian localization and support for the frletter document class"),
 
-     contributor(u"Georger Araujo",
+     contributor("Georger Araujo",
                  "georger_br () yahoo ! com ! br",
                  "GPL",
                  "pt_BR.po translation for LyX 2.1.3",
                  "m=143058265303480",
                  "2 May 2015",
-                 u"Brazilian Portuguese translation"),
+                 "Brazilian Portuguese translation"),
 
-     contributor(u"João Luis Meloni Assirati",
+     contributor("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"),
+                 "Added support for unix sockets and thence the 'inverse DVI' feature"),
 
-     contributor(u"Patrick Atamaniuk",
+     contributor("Patrick Atamaniuk",
                  "atamaniuk () frobs ! net",
                  "GPL",
                  "License for my contributions",
                  "m=129594232112957",
                  "28 January 2011",
-                 u"fix-cm module"),
+                 "fix-cm module"),
 
-     contributor(u"Gioele Barabucci",
+     contributor("Gioele Barabucci",
                  "gioele () svario ! it",
                  "GPL",
                  "Contribution license",
                  "m=136933235620262",
                  "23 May 2013",
-                 u"ACM-SIGS layouts"),
+                 "ACM-SIGS layouts"),
 
-     contributor(u"Özgür Uğraş Baran",
+     contributor("Ö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"),
+                 "New commandparams structure, Nomenclature inset"),
 
-    contributor(u"Susana Barbosa",
+    contributor("Susana Barbosa",
                  "susana.barbosa () fc ! up ! pt",
                  "GPL",
                  "License",
                  "m=118707828425316",
                  "14 August 2007",
-                 u"Portuguese translation"),
+                 "Portuguese translation"),
 
-     contributor(u"Yves Bastide",
+     contributor("Yves Bastide",
                  "yves.bastide () irisa ! fr",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110959913631678",
                  "28 February 2005",
-                 u"Bug fixes"),
+                 "Bug fixes"),
 
-     contributor(u"Heinrich Bauer",
+     contributor("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"),
+                 "Fixes for dvi output original version of page selection for printing"),
 
-     contributor(u"Georg Baum",
+     contributor("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"),
+                 "tex2lyx improvements, bug fixes, unicode work"),
 
-     contributor(u"Hans Bausewein",
+     contributor("Hans Bausewein",
                  "hans () comerwell ! xs4all ! nl",
                  "GPL",
                  "Re: The LyX licence --- a gentle nudge",
@@ -463,1711 +472,1879 @@ contributors = [
                  "2 April 2005",
                  '"case insensitive" and "complete word" search'),
 
-     contributor(u"Kornel Benko",
+     contributor("Kornel Benko",
                  "Kornel.Benko () berlin ! de",
                  "GPL",
                  "The LyX licence",
                  "m=123100818303101",
                  "3 January 2009",
-                 u"CMake build system, Slovak translation, Advanced search with format"),
+                 "CMake build system, Slovak translation, Advanced search with format"),
 
-     contributor(u"Jacob Bishop",
+     contributor("Lorenzo Bertini",
+                 "lorenzobertini97 () gmail ! com",
+                 "GPL",
+                 "Contributions licensing",
+                 "m=160829081615487",
+                 "18 December 2020",
+                 "Bug fixes"),
+
+     contributor("Jacob Bishop",
                  "bishop.jacob () gmail ! com",
                  "GPL",
                  "Contributions...APA 6 Layout",
                  "m=135654106502977",
                  "26 December 2012",
-                 u"APA 6 Layout"),
+                 "APA 6 Layout"),
 
-     contributor(u"Punyashloka Biswal",
+     contributor("Punyashloka Biswal",
                  "punya.biswal () gmail ! com",
                  "GPL",
                  "Re: Patch for ticket #6848",
                  "m=128298296923913",
                  "28 August 2010",
-                 u"Bug fixes"),
+                 "Bug fixes"),
 
-     contributor(u"Graham Biswell",
+     contributor("Graham Biswell",
                  "graham () gbiswell ! com",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111269177728853",
                  "5 April 2005",
-                 u"Small bugfixes that were very hard to find"),
+                 "Small bugfixes that were very hard to find"),
 
-     contributor(u"Lars Gullik Bjønnes",
+     contributor("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."),
+                 "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",
+     contributor("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."),
+                 "A (pseudo) threaded graphics loader queue, lots of fixes, etc."),
 
-     contributor(u"Martin A. Brown",
+     contributor("Martin A. Brown",
                  "martin () linux-ip ! net",
                  "GPL",
                  "Re: public identifier for DocBook XML export",
                  "m=148391461928571",
                  "8 January 2017",
-                 u"Docbook fixes"),
+                 "Docbook fixes"),
 
-     contributor(u"Christian Buescher",
+     contributor("Christian Buescher",
                  "christian.buescher () uni-bielefeld ! de",
                  "",
                  "",
                  "",
                  "",
-                 u"User-definable keys, lyxserver and more"),
+                 "User-definable keys, lyxserver and more"),
 
-     contributor(u"Johnathan Burchill",
+     contributor("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."),
+                 "Ported John Levon's original 'change tracking' code to later versions of LyX. Numerous bug fixes thereof."),
 
-     contributor(u"Francesc Burrull i Mestres",
+     contributor("Francesc Burrull i Mestres",
                  "fburrull () mat ! upc ! es",
                  "",
                  "",
                  "",
                  "",
-                 u"Catalan translation"),
+                 "Catalan translation"),
 
-     contributor(u"Sergiu Carpov",
+     contributor("Sergiu Carpov",
                  "ssmiler () gmail ! com",
                  "GPL",
                  "Re: Bug #5522",
                  "m=124721248310586",
                  "10 July 2009",
-                 u"Bug fixes"),
+                 "Bug fixes"),
 
-     contributor(u"Humberto Nicolás Castejón",
+     contributor("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"),
+                 "Spanish translation of the Windows installer"),
 
-     contributor(u"Matěj Cepl",
+     contributor("Matěj Cepl",
                  "matej () ceplovi ! cz",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110913090232039",
                  "22 February 2005",
-                 u"Improvements to the czech keymaps"),
+                 "Improvements to the czech keymaps"),
 
-     contributor(u"Albert Chin",
+     contributor("Albert Chin",
                  "lyx-devel () mlists ! thewrittenword ! com",
                  "GPL",
                  "Re: The LyX licence --- a gentle nudge",
                  "m=111220294831831",
                  "30 March 2005",
-                 u"Bug fixes"),
+                 "Bug fixes"),
+
+     contributor("Henry Chern",
+                 "henrychern () yandex ! com",
+                 "GPL",
+                 "[no subject]",
+                 "m=159048578028108",
+                 "26 May 2020",
+                 "Russian translation of documentation"),
+
+     contributor("Yuri Chornoivan",
+                 "yurchor () ukr ! net",
+                 "GPL",
+                 "Permission grant",
+                 "m=121681339315810",
+                 "23 July 2008",
+                 "Ukrainian translation"),
 
-     contributor(u"Jean-Pierre Chrétien",
+     contributor("Eugene Chornyi",
+                 "technikmagma () gmail ! com",
+                 "GPL",
+                 "Contribution license",
+                 "m=157822065931930",
+                 "5 January 2020",
+                 "Windows installation improvements"),
+
+     contributor("Jean-Pierre Chrétien",
                  "jeanpierre.chretien () free ! fr",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111842518713710",
                  "10 June 2005",
-                 u"French translations"),
+                 "French translations"),
 
-     contributor(u"Claudio Coco",
+     contributor("Claudio Coco",
                  "lacocio () libero ! it",
                  "GPL",
                  "Agreement to GNU General Public licence",
                  "m=113749629514591",
                  "17 January 2006",
-                 u"Italian translation"),
+                 "Italian translation"),
 
-     contributor(u"Yuri Chornoivan",
-                 "yurchor () ukr ! net",
+     contributor("Sam Crawley",
+                 "sam () crawley ! nz",
                  "GPL",
-                 "Permission grant",
-                 "m=121681339315810",
-                 "23 July 2008",
-                 u"Ukrainian translation"),
+                 "Re: [Patch] Test suite for compare function",
+                 "m=160506560831489",
+                 "11 November 2020",
+                 "Compare-feature fixes"),
 
-     contributor(u"Tommaso Cucinotta",
-                 "cucinotta () sssup !it",
+     contributor("Tommaso Cucinotta",
+                 "cucinotta () sssup ! it",
                  "GPL",
                  "Re: View Menu proposal",
                  "m=119030065212621",
                  "20 Sep 2007",
-                 u"Advanced search feature"),
+                 "Advanced search feature"),
+
+     contributor("Thibaut Cuvelier",
+                 "dourouc05 () gmail ! com",
+                 "GPL",
+                 "Re: Patches to improve compatibility with modern C++ standard",
+                 "m=158862338815864",
+                 "4 May 2020",
+                 "Windows compatibility patches, DocBook backend"),
 
-     contributor(u"Matthias Kalle Dalheimer",
+     contributor("Matthias Kalle Dalheimer",
                  "kalle () kdab ! net",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110908857130107",
                  "22 February 2005",
-                 u"Qt2 port"),
+                 "Qt2 port"),
 
-     contributor(u"Ulysse Danglis",
+     contributor("Ulysse Danglis",
                  "o2d () freemail ! gr",
                  "GPL",
                  "License of el.po",
                  "m=126738357204586",
                  "28 February 2010",
-                 u"Greek translations"),
+                 "Greek translations"),
 
-     contributor(u"Ewan Davies",
+     contributor("Ewan Davies",
                  "ewan.davies () googlemail ! com",
                  "GPL",
                  "Re: Starting Development",
                  "m=124248720628359",
                  "17 May 2009",
-                 u"doxygen to LFUNs.lyx conversion"),
+                 "doxygen to LFUNs.lyx conversion"),
 
-     contributor(u"Jack Dessert",
+     contributor("Jack Dessert",
                  "jackdesert556 () gmail ! com",
                  "GPL",
                  "License",
                  "m=126994985831115",
                  "30 March 2010",
-                 u"Patches for configure.py"),
+                 "Patches for configure.py"),
 
-     contributor(u"Min Ding",
+     contributor("Min Ding",
                  "u5032331 () uds ! anu ! edu ! au",
                  "GPL",
                  "Accept GUN GPL",
                  "m=139864105011133",
                  "27 April 2014",
-                 u"Chinese (simplified) translations"),
+                 "Chinese (simplified) translations"),
 
-     contributor(u"Alexander Dunlap",
+     contributor("Alexander Dunlap",
                  "alexander.dunlap () gmail ! com",
                  "GPL",
                  "licensing statement",
                  "m=151914230920804",
                  "20 February 2018",
-                 u"Improvement to recent files support"),
+                 "Improvement to recent files support"),
 
-     contributor(u"Anders Ekberg",
+     contributor("Anders Ekberg",
                  "anek () chalmers ! se",
                  "GPL",
                  "License agreement",
                  "m=113725822602516",
                  "14 January 2006",
-                 u"Improvements to the Swedish translation of the Windows Installer"),
+                 "Improvements to the Swedish translation of the Windows Installer"),
 
-     contributor(u"Martin Engbers",
+     contributor("Martin Engbers",
                  "martin.engbers () gmx ! de",
                  "GPL",
                  "Re: [patch] Icon replacement",
                  "m=123877725311464",
                  "Apr 3 2009",
-                 u"icon loading tweaks"),
+                 "icon loading tweaks"),
 
-     contributor(u"Matthias Ettrich",
+     contributor("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"),
+                 "Started the project, implemented the early versions, various improvements including undo/redo, tables, and much, much more"),
 
-     contributor(u"Baruch Even",
+     contributor("Baruch Even",
                  "baruch () ev-en ! org",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110936007609786",
                  "25 February 2005",
-                 u"New graphics handling scheme and more"),
+                 "New graphics handling scheme and more"),
 
-     contributor(u"Dov Feldstern",
+     contributor("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"),
+                 "RTL/BiDi-related fixes"),
 
-     contributor(u"Michał Fita",
+     contributor("Daniel Fernández",
+                 "d3vf4n () tutanota ! com",
+                 "GPL",
+                 "Re: Contribution License",
+                 "m=169260363732687",
+                 "21 Aug 2023",
+                 "es/ca translations"),
+
+     contributor("Udi Fogiel",
+                 "udifoglle () gmail ! com",
+                 "GPL",
+                 "Re: spurious spaces around forceLTR insets",
+                 "m=168113096516846",
+                 "10 April 2023",
+                 "RTL/BiDi-related fixes"),
+
+     contributor("Michał Fita",
                  "michal ! fita () gmail ! com",
                  "GPL",
                  "Statement for Polish translation",
                  "m=121615623122376",
                  "15 July 2008",
-                 u"Polish translation"),
+                 "Polish translation"),
 
-     contributor(u"Ronald Florence",
+     contributor("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)"),
+                 "Maintainer of the OS X port(s)"),
 
-     contributor(u"José Ramom Flores d'as Seixas",
+     contributor("José Ramom Flores d'as Seixas",
                  "fa2ramon () usc ! es",
                  "GPL",
                  "Re: Galician translation",
                  "m=116136920230072",
                  "20 October 2006",
-                 u"Galician documentation and localization"),
+                 "Galician documentation and localization"),
 
-     contributor(u"John Michael Floyd",
+     contributor("John Michael Floyd",
                  "jmf () pwd ! nsw ! gov ! au",
                  "",
                  "",
                  "",
                  "",
-                 u"Bug fix to the spellchecker"),
+                 "Bug fix to the spellchecker"),
 
-     contributor(u"Nicola Focci",
+     contributor("Nicola Focci",
                  "nicola.focci () gmail ! com",
                  "GPL",
                  "Permission",
                  "m=120946605432341",
                  "29 April 2008",
-                 u"Italian translation of documentations"),
+                 "Italian translation of documentations"),
 
-     contributor(u"Enrico Forestieri",
+     contributor("Enrico Forestieri",
                  "forenr () tlc ! unipr ! it",
                  "GPL",
                  "Re: lyxpreview2ppm.py",
                  "m=111894292115287",
                  "16 June 2005",
-                 u"Italian translations, many bug fixes and features"),
+                 "Italian translations, many bug fixes and features"),
 
-     contributor(u"Gilbert J. M. Forkel",
+     contributor("Gilbert J. M. Forkel",
                  "gilbert () erlangen ! ccc ! de",
                  "GPL",
                  "GPL",
                  "m=153286983821872",
                  "29 July 2018",
-                 u"Bug fixes"),
+                 "Bug fixes"),
 
-     contributor(u"Eitan Frachtenberg",
+     contributor("Eitan Frachtenberg",
                  "sky8an () gmail ! com",
                  "GPL",
                  "Re: [PATCH] BibTeX annotation support",
                  "m=111130799028250",
                  "20 March 2005",
-                 u"BibTeX annotation support"),
+                 "BibTeX annotation support"),
 
-     contributor(u"Darren Freeman",
+     contributor("Darren Freeman",
                  "dfreeman () ieee ! org",
                  "GPL",
                  "Licence",
                  "m=118612951707590",
                  "3 August 2007",
-                 u"Improvements to mouse wheel scrolling; many bug reports"),
+                 "Improvements to mouse wheel scrolling; many bug reports"),
 
-     contributor(u"Max Funk",
+     contributor("Max Funk",
                  "maxkhfunk () gmx ! net",
                  "GPL",
                  "GPL",
                  "m=130659936521230",
                  "28 May 2011",
-                 u"Bug fixes"),
+                 "Bug fixes"),
 
-     contributor(u"Edscott Wilson Garcia",
+     contributor("Edscott Wilson Garcia",
                  "edscott () xfce ! org",
                  "GPL",
                  "Re: The LyX licence --- a gentle nudge",
                  "m=111219295119021",
                  "30 March 2005",
-                 u"Bug fixes"),
+                 "Bug fixes"),
 
-     contributor(u"Ignacio García",
+     contributor("Ignacio García",
                  "ignacio.gmorales () gmail ! com",
                  "GPL",
                  "Re: es_EmbeddedObjects",
                  "m=117079592919653",
                  "06 February 2007",
-                 u"Spanish translation of documentations"),
+                 "Spanish translation of documentations"),
 
-     contributor(u"Michael Gerz",
+     contributor("Michael Gerz",
                  "michael.gerz () teststep ! org",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110909251110103",
                  "22 February 2005",
-                 u"Change tracking, German localization, bug fixes"),
+                 "Change tracking, German localization, bug fixes"),
 
-     contributor(u"Stefano Ghirlanda",
+     contributor("Stefano Ghirlanda",
                  "stefano.ghirlanda () unibo ! it",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110959835300777",
                  "28 February 2005",
-                 u"Improvements to lyxserver"),
+                 "Improvements to lyxserver"),
 
-     contributor(u"Shankar Giri Venkita Giri",
+     contributor("Shankar Giri Venkita Giri",
                  "girivs () gmx ! com",
                  "GPL",
                  "Blanket permission",
                  "m=146162343015182",
                  "25 April 2016",
-                 u"Mingw-w64 build fixes"),
+                 "Mingw-w64 build fixes"),
 
-     contributor(u"D. Gloger",
+     contributor("D. Gloger",
                  "2wochenurlaub () gloger ! biz",
                  "GPL",
                  "Re: external material template: SVG -> PDF/PS with LaTeX",
                  "m=151298047124676",
                  "11 December 2017",
-                 u"Inkscape External Template"),
+                 "Inkscape External Template"),
 
-     contributor(u"Hartmut Goebel",
+     contributor("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"),
+                 "Improvements to Koma-Script classes"),
 
-     contributor(u"Riccardo Gori",
+     contributor("Riccardo Gori",
                  "goriccardo () gmail ! com",
                  "GPL",
                  "Re: r35561 - lyx-devel/trunk/src/insets",
                  "m=128626762015975",
                  "5 Oct 2010",
-                 u"Fixing tabular code"),
+                 "Fixing tabular code"),
 
-      contributor(u"Peter Gumm",
+      contributor("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",
+                 "XY-pic manual"),
+
+     contributor("İbrahim Güngör",
                  "h.ibrahim.gungor () gmail ! com",
                  "GPL",
                  "Update Turkish Translation",
                  "m=122583550732670",
                  "4 Nov 2008",
-                 u"Turkish translation"),
+                 "Turkish translation"),
 
-     contributor(u"Hartmut Haase",
+     contributor("Hartmut Haase",
                  "hha4491 () web ! de",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110915427710167",
                  "23 February 2005",
-                 u"German translation of the documentation"),
+                 "German translation of the documentation"),
 
-     contributor(u"Helge Hafting",
+     contributor("Helge Hafting",
                  "helgehaf () aitel ! hist ! no",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110916171925288",
                  "23 February 2005",
-                 u"Norwegian documentation and localization"),
+                 "Norwegian documentation and localization"),
 
-     contributor(u"Jessica Hamilton",
+     contributor("Jessica Hamilton",
                  "jessica.l.hamilton () gmail ! com",
                  "GPL",
                  "Contributor License",
                  "m=143381137411598",
                  "9 June 2015",
-                 u"Haiku OS support"),
+                 "Haiku OS support"),
 
-     contributor(u"Jan Niklas Hasse",
+     contributor("Jan Niklas Hasse",
                  "jhasse () bixense ! com",
                  "GPL",
                  "Re: Patch to make it possible to open empty files",
                  "m=148163124122780",
                  "23 December 2016",
-                 u"File opening enhancement"),
+                 "File opening enhancement"),
 
-     contributor(u"Richard Kimberly Heck",
+     contributor("Richard Kimberly Heck",
                  "rikiheck () lyx ! org",
                  "GPL",
                  "GPL Statement",
                  "m=117501689204059",
                  "27 March 2007",
-                 u"Bug fixes, layout modules, BibTeX code, XHTML export. Current stable branch maintainer."),
+                 "Bug fixes, layout modules, BibTeX code, XHTML export. Current stable branch maintainer."),
 
-     contributor(u"Bennett Helm",
+     contributor("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"),
+                 "Maintainer of the OSX ports, taking over from Ronald Florence"),
 
-     contributor(u"Kevin B. Hendricks",
+     contributor("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"),
+                 "Author of the MyThes thesaurus library"),
 
-     contributor(u"Claus Hentschel",
+     contributor("Claus Hentschel",
                  "claus.hentschel () mbau ! fh-hannover ! de",
                  "",
                  "",
                  "",
                  "",
-                 u"Win32 port of LyX 1.1.x"),
+                 "Win32 port of LyX 1.1.x"),
 
-     contributor(u"Josh Hieronymous",
+     contributor("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)"),
+                 "XHTML and ePub Improvements (GSOC Student)"),
 
-     contributor(u"Claus Hindsgaul",
+     contributor("Christopher Hillenbrand",
+                 "chillenb.lists () gmail ! com",
+                 "GPL",
+                 "Re: Limit text width in the editor window (non-fullscreen mode)",
+                 "m=166714427827929",
+                 "30 October 2022",
+                 "User Interface Improvements"),
+
+     contributor("Claus Hindsgaul",
                  "claus_h () image ! dk",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110908607416324",
                  "22 February 2005",
-                 u"Danish translation"),
+                 "Danish translation"),
 
-     contributor(u"Martin Hoffmann",
+     contributor("Martin Hoffmann",
                  "hoffimar () gmail ! com",
                  "GPL",
                  "Re: #8703: 'new shortcut' box closes if no shortcut",
                  "m=138105799411067",
                  "6 October 2013",
-                 u"Dialog usability fix"),
+                 "Dialog usability fix"),
 
-     contributor(u"Winfred Huang",
+     contributor("Winfred Huang",
                  "tone90999 () hotmail ! com",
                  "GPL",
                  "License for Chinese translation",
                  "m=153274007430136",
                  "28 July 2018",
-                 u"Simplified Chinese Localization"),
+                 "Simplified Chinese Localization"),
 
-     contributor(u"John Hudson",
+     contributor("John Hudson",
                  "j.r.hudson () virginmedia ! com",
                  "GPL",
                  "Contributions",
                  "m=146722333213915",
                  "29 June 2016",
-                 u"Documentation updates"),
+                 "Documentation updates"),
 
-     contributor(u"Bernard Hurley",
+     contributor("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"),
+                 "Fixes to literate programming support"),
 
-     contributor(u"Marius Ionescu",
+     contributor("Marius Ionescu",
                  "felijohn () gmail ! com",
                  "GPL",
                  "permission to licence",
                  "m=115935958330941",
                  "27 September 2006",
-                 u"Romanian localization"),
+                 "Romanian localization"),
 
-     contributor(u"Bernhard Iselborn",
+     contributor("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"),
+                 "Some minor bug-fixes, FAQ, linuxdoc sgml support"),
 
-     contributor(u"Masanori Iwami",
+     contributor("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"),
+                 "Development of CJK language support"),
 
-     contributor(u"Michal Jaegermann",
+     contributor("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"),
+                 "Fix to a very hard-to-find egcs bug that crashed LyX on alpha architecture"),
 
-     contributor(u"Harshula Jayasuriya",
+     contributor("Harshula Jayasuriya",
                  "harshula () gmail ! com",
                  "GPL",
                  "Re: Bug in export to DocBook",
                  "m=116884249725701",
                  "15 January 2007",
-                 u"Fix docbook generation of nested lists"),
+                 "Fix docbook generation of nested lists"),
 
-     contributor(u"David L. Johnson",
+     contributor("David L. Johnson",
                  "david.johnson () lehigh ! edu",
                  "GPL",
                  "GPL",
                  "m=110908492016593",
                  "22 February 2005",
-                 u"Public relations, feedback, documentation and support"),
+                 "Public relations, feedback, documentation and support"),
 
-     contributor(u"Joice Joseph",
+     contributor("Joice Joseph",
                  "joicey () yandex ! com",
                  "GPL",
                  "Re: patch: added document language malayalam",
                  "m=155214496414909",
                  "9 March 2019",
-                 u"Support for Malayalam"),
+                 "Support for Malayalam"),
 
-     contributor(u"Robert van der Kamp",
+     contributor("Robert van der Kamp",
                  "robnet () wxs ! nl",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111268623330209",
                  "5 April 2005",
-                 u"Various small things and code simplifying"),
+                 "Various small things and code simplifying"),
 
-     contributor(u"Amir Karger",
+     contributor("Amir Karger",
                  "amirkarger () gmail ! com",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110912688520245",
                  "23 February 2005",
-                 u"Tutorial, reLyX: the LaTeX to LyX translator"),
+                 "Tutorial, reLyX: the LaTeX to LyX translator"),
 
-     contributor(u"Zahari Dmitrov Kassabov",
+     contributor("Zahari Dmitrov Kassabov",
                  "zaharid () gmail ! com",
                  "GPL",
                  "GPL Statement",
                  "m=135540059615508",
                  "13 December 2012",
-                 u"Bug fixes"),
+                 "Bug fixes"),
 
-     contributor(u"Carmen Kauffmann",
+     contributor("Carmen Kauffmann",
                  "",
                  "",
                  "",
                  "",
                  "",
-                 u"Original name that is now two characters shorter"),
+                 "Original name that is now two characters shorter"),
 
-     contributor(u"KDE Artists",
+     contributor("KDE Artists",
                  "",
                  "",
                  "",
                  "",
                  "",
-                 u"Authors of several of the icons LyX uses"),
+                 "Authors of several of the icons LyX uses"),
 
-     contributor(u"Andreas Klostermann",
+     contributor("Andreas Klostermann",
                  "andreas_klostermann () web ! de",
                  "GPL",
                  "blanket-permission",
                  "m=111054675600338",
                  "11 March 2005",
-                 u"Gtk reference insertion dialog"),
+                 "Gtk reference insertion dialog"),
 
-     contributor(u"Timo Kluck",
+     contributor("Timo Kluck",
                  "tkluck () gmail ! com",
                  "GPL",
                  "license statement",
                  "m=132334049317495",
                  "8 December 2011",
-                 u"Dutch translation, icon fixes"),
+                 "Dutch translation, icon fixes"),
 
-     contributor(u"Kostantino",
+     contributor("Kostantino",
                  "ciclope10 () alice ! it",
                  "GPL",
                  "Permission granted",
                  "m=115513400621782",
                  "9 August 2006",
-                 u"Italian localization of the interface"),
+                 "Italian localization of the interface"),
 
-     contributor(u"Scott Kostyshak",
+     contributor("Scott Kostyshak",
                  "skostysh () princeton ! edu",
                  "GPL",
                  "GPL Statement",
                  "m=133076234031944",
                  "3 March 2012",
-                 u"Small UI fixes"),
+                 "Small UI fixes"),
 
-     contributor(u"Michael Koziarski",
+     contributor("Michael Koziarski",
                  "koziarski () gmail ! com",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110909592017966",
                  "22 February 2005",
-                 u"Gnome port"),
+                 "Gnome port"),
 
-     contributor(u"Peter Kremer",
+     contributor("Peter Kremer",
                  "kremer () bme-tel ! ttt ! bme ! hu",
                  "",
                  "",
                  "",
                  "",
-                 u"Hungarian translation and bind file for menu shortcuts"),
+                 "Hungarian translation and bind file for menu shortcuts"),
 
-     contributor(u'Marcus Kriele',
+     contributor('Marcus Kriele',
                  "mkriele () me ! com",
                  "GPL",
                  "License permission",
                  "m=130384781027177",
                  "26 April 2011",
-                 u"Fixing various sv* layouts"),
+                 "Fixing various sv* layouts"),
 
-     contributor(u'Valeriy Kruchko',
+     contributor('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"),
+                 "Russian translation of the user interface"),
 
-     contributor(u"Peter Kümmel",
+     contributor("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"),
+                 "Qt4 coding, CMake build system, bug fixing, testing, clean ups, and profiling"),
 
-     contributor(u"Bernd Kümmerlen",
+     contributor("Bernd Kümmerlen",
                  "bkuemmer () gmx ! net",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110934318821667",
                  "25 February 2005",
-                 u"Initial version of the koma-script textclasses"),
+                 "Initial version of the koma-script textclasses"),
 
-     contributor(u"Joel Kulesza",
-                 "jkulesza () gmail ! com>",
+     contributor("Joel Kulesza",
+                 "jkulesza () gmail ! com",
                  "GPL",
                  "License to Publish Work",
                  "m=147735429207382",
                  "25 October 2016",
-                 u"User interface improvements"),
+                 "User interface improvements"),
 
-     contributor(u"Felix Kurth",
+     contributor("Felix Kurth",
                  "felix () fkurth ! de",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110908918916109",
                  "22 February 2005",
-                 u"Support for textclass g-brief2"),
+                 "Support for textclass g-brief2"),
 
-     contributor(u"Rob Lahaye",
+     contributor("Rob Lahaye",
                  "lahaye () snu ! ac ! kr",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110908714131711",
                  "22 February 2005",
-                 u"Xforms dialogs and GUI related code"),
+                 "Xforms dialogs and GUI related code"),
 
-     contributor(u"Jean-Marc Lasgouttes",
+     contributor("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."),
+                 "configure and Makefile-stuff, many bugfixes and more. Previous stable branch maintainer."),
 
-     contributor(u"Victor Lavrenko",
+     contributor("Victor Lavrenko",
                  "lyx () lavrenko ! pp ! ru",
                  "",
                  "",
                  "",
                  "",
-                 u"Russian translation"),
+                 "Russian translation"),
 
-     contributor(u"Angus Leeming",
+     contributor("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"),
+                 "GUI-I-fication of insets and more"),
 
-     contributor(u"Edwin Leuven",
+     contributor("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"),
+                 "Tabular and misc UI stuff"),
 
-     contributor(u"John Levon",
+     contributor("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"),
+                 "Qt2 frontend, GUII work, bugfixes"),
 
-     contributor(u"Ling Li",
+     contributor("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"),
+                 "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",
+     contributor("LibreOffice Team",
                  "https://www.libreoffice.org/",
                  "LGPL",
                  "",
                  "",
                  "",
-                 u"Libreoffice Icon Theme"),
+                 "Libreoffice Icon Theme"),
 
-     contributor(u"Tomasz Łuczak",
+     contributor("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"),
+                 "Polish translation and mw* layouts files"),
 
-     contributor(u"Hangzai Luo",
+     contributor("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"),
+                 "Bugfixes"),
 
-     contributor(u"Mohamed Magdy",
-                 "physicist2010 () gmail ! com>",
+     contributor("Mohamed Magdy",
+                 "physicist2010 () gmail ! com",
                  "GPL",
                  "A permission to use my Arabic-Translation for LyX?",
                  "m=126877445318267",
                  "16 March 2010",
-                 u"Arabic translation"),
+                 "Arabic translation"),
 
-     contributor(u"Jari-Matti Mäkelä",
+     contributor("Jari-Matti Mäkelä",
                  "jmjmak () utu ! fi",
                  "GPL",
                  "Re: lyx fi translation update",
                  "m=142987910907596",
                  "24 April 2015",
-                 u"Contribution to the Finnish Localization."),
+                 "Contribution to the Finnish Localization."),
 
-     contributor(u"Tetsuya Makimura",
+     contributor("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."),
+                 "Improvements to the Japanese language support."),
 
-     contributor(u"José Matos",
+     contributor("José Matos",
                  "jamatos () fc ! up ! pt",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110907762926766",
                  "22 February 2005",
-                 u"linuxdoc sgml support. Previous release manager."),
+                 "linuxdoc sgml support. Previous release manager."),
 
-     contributor(u"Roman Maurer",
+     contributor("Roman Maurer",
                  "roman.maurer () amis ! net",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110952616722307",
                  "27 February 2005",
-                 u"Slovenian translation coordinator"),
+                 "Slovenian translation coordinator"),
 
-     contributor(u"John McCabe-Dansted",
+     contributor("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",
+                 "Keys-test module, bug fixing"),
+
+     contributor("Caolán McNamara",
                  "caolanm () redhat ! com",
                  "GPL",
                  "Statement for enchant integration",
                  "m=126389593805123",
                  "19 January 2010",
-                 u"Support for the enchant spell checking library"),
+                 "Support for the enchant spell checking library"),
 
-     contributor(u"Tino Meinen",
+     contributor("Tino Meinen",
                  "a.t.meinen () chello ! nl",
                  "GPL",
                  "Re: Licensing your contributions to LyX",
                  "m=113078277722316",
                  "31 October 2005",
-                 u"Dutch translation coordinator"),
+                 "Dutch translation coordinator"),
 
-     contributor(u"Siegfried Meunier-Guttin-Cluzel",
+     contributor("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",
+                 "French translations of the documentation"),
+
+      contributor("Günter Milde",
                  "milde () users ! berlios ! de",
                  "GPL",
                  "copyleft",
                  "m=122398147620761",
                  "14 October 2008",
-                 u"Unicode and layout file fixes"),
+                 "Unicode and layout file fixes"),
 
-      contributor(u"Dustin J. Mitchell",
+      contributor("Dustin J. Mitchell",
                  "dustin () v ! igoro ! us",
                  "GPL",
                  "Fwd: Your patch for LyX",
                  "m=139255709609015",
                  "16 February 2014",
-                 u"Fix for csv2lyx"),
+                 "Fix for csv2lyx"),
 
-     contributor(u"Joan Montané",
+     contributor("Joan Montané",
                  "jmontane () gmail ! com",
                  "GPL",
                  "Re: LyX translation updates needed",
                  "m=118765575314017",
                  "21 August 2007",
-                 u"Catalan translations of menus"),
+                 "Catalan translations of menus"),
 
-     contributor(u"Stéphane Mourey",
+     contributor("Stéphane Mourey",
                  "stephane.mourey () impossible-exil ! info",
                  "GPL",
                  "Re: gpl",
                  "m=141381522413781",
                  "20 October 2014",
-                 u"New lfun server-get-statistics"),
+                 "New lfun server-get-statistics"),
 
-     contributor(u"Guillaume Munch",
+     contributor("Guillaume Munch",
                  "gm () lyx ! org",
                  "GPL",
                  "Re: -std=c++11 and [PATCH] Improve the display of the source (bugs #6501,#7359)",
                  "m=143890980923229",
                  "07 August 2015",
-                 u"Several bug fixes, mainly mathed"),
+                 "Several bug fixes, mainly mathed"),
 
-     contributor(u"Iñaki Larrañaga Murgoitio",
+     contributor("Iñaki Larrañaga Murgoitio",
                  "dooteo () euskalgnu ! org",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110908606525783",
                  "22 February 2005",
-                 u"Basque documentation and localization"),
+                 "Basque documentation and localization"),
 
-     contributor(u"Daniel Naber",
+     contributor("Daniel Naber",
                  "daniel.naber () t-online ! de",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110911176213928",
                  "22 February 2005",
-                 u"Improvements to the find&replace dialog"),
+                 "Improvements to the find&replace dialog"),
 
-     contributor(u"Pablo De Napoli",
+     contributor("Pablo De Napoli",
                  "pdenapo () mate ! dm ! uba ! ar",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110908904400120",
                  "22 February 2005",
-                 u"Math panel dialogs"),
+                 "Math panel dialogs"),
 
-     contributor(u"Dirk Niggemann",
+     contributor("Phillip Netro",
+                 "hobbes () centurylink ! net",
+                 "GPL",
+                 "RE: GPL Statement",
+                 "m=160532510203924",
+                 "14 November 2020",
+                 "Review of Manuals"),
+
+     contributor("Dirk Niggemann",
                  "dabn100 () cam ! ac ! uk",
                  "",
                  "",
                  "",
                  "",
-                 u"config. handling enhancements, bugfixes, printer enhancements path mingling"),
+                 "config. handling enhancements, bugfixes, printer enhancements path mingling"),
 
-     contributor(u"Jens Nöckel",
-                 "noeckel () uoregon !edu",
+     contributor("Jens Nöckel",
+                 "noeckel () uoregon ! edu",
                  "GPL",
                  "GPL statement",
                  "m=128485749516885",
                  "19 September 2010",
-                 u"Mac OS X enhancements"),
+                 "Mac OS X enhancements"),
 
-     contributor(u"Rob Oakes",
-                 "lyx-devel () oak-tree ! us>",
+     contributor("Rob Oakes",
+                 "lyx-devel () oak-tree ! us",
                  "GPL",
                  "Outline Contributions",
                  "m=124615188102843",
                  "27 June 2009",
-                 u"Improvements to the outliner."),
+                 "Improvements to the outliner."),
 
-     contributor(u"Oxygen Team",
+     contributor("Oxygen Team",
                  "https://techbase.kde.org/Projects/Oxygen",
                  "LGPL",
                  "",
                  "",
                  "",
-                 u"Oxygen Icon Theme"),
+                 "Oxygen Icon Theme"),
 
-     contributor(u"Carl Ollivier-Gooch",
+     contributor("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."),
+                 "Support for two-column figure (figure*) and table (table*) environments.  Fixed minibuffer entry of floats."),
 
-     contributor(u"Gilad Orr",
+     contributor("Isaac Oscar Gariano",
+                 "IsaacOscar () live ! com ! au",
+                 "GPL",
+                 "Re: [PATCH] Make math autocorrrect work with more than 2 chars",
+                 "m=155874284418501",
+                 "25 May 2019",
+                 "Improvements to math autocorrect"),
+
+     contributor("Gilad Orr",
                  "giladorr () gmail ! com",
                  "GPL",
                  "Internationalization-Hebrew",
                  "m=138314500901798",
                  "28 October 2013",
-                 u"Hebrew translation."),
+                 "Hebrew translation."),
 
-     contributor(u'Panayotis "PAP" Papasotiriou',
+     contributor('Panayotis "PAP" Papasotiriou',
                  "papasot () upatras ! gr",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110933552929119",
                  "25 February 2005",
-                 u"Support for kluwer and ijmpd document classes"),
+                 "Support for kluwer and ijmpd document classes"),
 
-     contributor(u'Andrey V. Panov',
+     contributor('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"),
+                 "Russian translation of the user interface"),
 
-     contributor(u'Dal Ho Park',
+     contributor('Dal Ho Park',
                  "airdalho () gmail ! com",
                  "GPL",
                  "splash.lyx translation (Korean)",
                  "m=139436383128181",
                  "9 March 2014",
-                 u"Korean translation"),
+                 "Korean translation"),
 
-     contributor(u'Andrew Parsloe',
+     contributor('Andrew Parsloe',
                  "aparsloe () clear ! net ! nz",
                  "GPL",
                  "GPL declaration",
                  "m=147941540519608",
                  "17 November 2016",
-                 u"Module updates"),
+                 "Module updates"),
+
+     contributor('Idan Pazi',
+                 "idan.kp () gmail ! com",
+                 "GPL",
+                 "Re: windows preview bug fix",
+                 "m=171024249203393",
+                 "12 March 2024",
+                 "Windows-specific fixes"),
 
-     contributor(u'Bo Peng',
+     contributor('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."),
+                 "Conversion of all shell scripts to Python, shortcuts dialog, session, view-source, auto-view, embedding features and scons build system."),
 
-     contributor(u'John Perry',
+     contributor('John Perry',
                  "john.perry () usm ! edu",
                  "GPL",
                  "Contributions",
                  "m=128874016511551",
                  "2 November 2010",
-                 u"Named theorems module."),
+                 "Named theorems module."),
 
-     contributor(u"Joacim Persson",
+     contributor("Joacim Persson",
                  "sp2joap1 () ida ! his ! se",
                  "",
                  "",
                  "",
                  "",
-                 u"po-file for Swedish, a tool for picking shortcuts, bug reports and hacking atrandom"),
+                 "po-file for Swedish, a tool for picking shortcuts, bug reports and hacking atrandom"),
 
-     contributor(u"Zvezdan Petkovic",
+     contributor("Zvezdan Petkovic",
                  "zpetkovic () acm ! org",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111276877900892",
                  "6 April 2005",
-                 u"Better support for serbian and serbocroatian"),
+                 "Better support for serbian and serbocroatian"),
 
-     contributor(u"Prannoy Pilligundla",
+     contributor("Prannoy Pilligundla",
                  "prannoy.bits () gmail ! com",
                  "GPL",
                  "Contribution license",
                  "m=139332446711707",
                  "25 February 2014",
-                 u"Full screen statusbar toggling"),
+                 "Full screen statusbar toggling"),
 
-     contributor(u"Geoffroy Piroux",
+     contributor("Geoffroy Piroux",
                  "piroux () fyma ! ucl ! ac ! be",
                  "",
                  "",
                  "",
                  "",
-                 u"Mathematica backend for mathed"),
+                 "Mathematica backend for mathed"),
 
-     contributor(u"Benjamin Piwowarski",
+     contributor("Benjamin Piwowarski",
                  "benjamin ! piwowarski () lip6 ! fr",
                  "GPL",
                  "GPL statement",
                  "m=133958334631163",
                  "13 June 2012",
-                 u"AppleScript, integration with bibliography managers"),
+                 "AppleScript, integration with bibliography managers"),
 
-     contributor(u"Neoklis Polyzotis",
+     contributor("Neoklis Polyzotis",
                  "alkis () soe ! ucsc ! edu",
                  "GPL",
                  "Fwd: Re: The LyX licence",
                  "m=111039215519777",
                  "9 March 2005",
-                 u"Keymap work"),
+                 "Keymap work"),
 
-     contributor(u"André Pönitz",
+     contributor("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"),
+                 "mathed rewrite to use STL file io with streams --export and --import command line options"),
 
-     contributor(u"Kornelia Pönitz",
+     contributor("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"),
+                 "heavy mathed testing; provided siamltex document class"),
 
-     contributor(u"Bernhard Psaier",
+     contributor("Bernhard Psaier",
                  "",
                  "",
                  "",
                  "",
                  "",
-                 u"Designer of the LyX-Banner"),
+                 "Designer of the LyX-Banner"),
 
-     contributor(u"Thomas Pundt",
+     contributor("Thomas Pundt",
                  "thomas () pundt ! de",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111277917703326",
                  "6 April 2005",
-                 u"initial configure script"),
+                 "initial configure script"),
 
-     contributor(u"Zheru Qiu",
+     contributor("Zheru Qiu",
                  "qzr () mail ! ustc ! edu ! cn",
                  "GPL",
                  "Fwd: Permission of using my translation under GPL",
                  "m=148702600212546",
                  "5 February 2017",
-                 u"Chinese localisation"),
+                 "Chinese localisation"),
 
-     contributor(u"Allan Rae",
+     contributor("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"Daniel Ramöller",
-                 "d.lyx () web ! de", 
-                 "GPL", 
-                 "Permission", 
-                 "m=147578627921242", 
-                 "Oct 6 2016", 
-                 u"UI improvements"),
-
-     contributor(u"Vincent van Ravesteijn",
+                 "GUI-I architect, LyX PR head, LDN, bug reports/fixes, Itemize Bullet Selection, xforms-0.81 + gcc-2.6.3 compatibility"),
+
+     contributor("Manoj Rajagopalan",
+                 "rmanoj () umich ! edu",
+                 "GPL",
+                 "Re: patch for case-insensitive reference sorting",
+                 "m=123506398801004",
+                 "Feb 19 2009",
+                 "reference dialog tweaks"),
+
+     contributor("Daniel Ramöller",
+                 "d.lyx () web ! de",
+                 "GPL",
+                 "Permission",
+                 "m=147578627921242",
+                 "Oct 6 2016",
+                 "UI improvements"),
+
+     contributor("Vincent van Ravesteijn",
                  "V.F.vanRavesteijn () tudelft ! nl",
                  "GPL",
                  "RE: crash lyx-1.6rc1",
                  "m=121786603726114",
                  "4 August 2008",
-                 u"lots of fixes"),
+                 "lots of fixes"),
 
-     contributor(u"Adrien Rebollo",
+     contributor("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"),
+                 "French translation of the docs; latin 3, 4 and 9 support"),
 
-     contributor(u"Garst R. Reese",
+     contributor("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"),
+                 "provided hollywood and broadway classes for writing screen scripts and plays"),
 
-     contributor(u"Bernhard Reiter",
+     contributor("Bernhard Reiter",
                  "ockham () gmx ! net",
                  "GPL",
                  "Re: RFC: GThesaurus.C et al.",
                  "m=112912017013984",
                  "12 October 2005",
-                 u"Gtk frontend"),
+                 "Gtk frontend"),
 
-     contributor(u"Ruurd Reitsma",
+     contributor("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"),
+                 "Creator of the native port of LyX to Windows"),
 
-     contributor(u"Bernd Rellermeyer",
+     contributor("Bernd Rellermeyer",
                  "bernd.rellermeyer () arcor ! de",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111317142419908",
                  "10 April 2005",
-                 u"Support for Koma-Script family of classes"),
+                 "Support for Koma-Script family of classes"),
 
-     contributor(u"Michael Ressler",
+     contributor("renyhp (c/o J-M Lasgouttes)",
+                 "renyhp () disroot ! org",
+                 "GPL",
+                 "LyX ticket #11804",
+                 "m=169459313128600",
+                 "13 September 2023",
+                 "Support for hepnames/hepparticles"),
+
+     contributor("Michael Ressler",
                  "mike.ressler () alum ! mit ! edu",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110926603925431",
                  "24 February 2005",
-                 u"documentation maintainer, AASTeX support"),
+                 "documentation maintainer, AASTeX support"),
 
-     contributor(u"Richman Reuven",
+     contributor("Richman Reuven",
                  "richman.reuven () gmail ! com",
                  "GPL",
                  "gpl 2+ ok :)",
                  "m=130368087529359",
                  "24 April 2011",
-                 u"Hebrew localisation"),
+                 "Hebrew localisation"),
 
-     contributor(u"Christian Ridderström",
+     contributor("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"),
+                 "The driving force behind, and maintainer of, the LyX wiki wiki.\nSwedish translation of the Windows installer"),
 
-     contributor(u"Julien Rioux",
+     contributor("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."),
+                 "Bug fixes, lilypond and revtex support, citation modules."),
 
-     contributor(u"Bernhard Roider",
+     contributor("Bernhard Roider",
                  "bernhard.roider () sonnenkinder ! org",
                  "GPL",
                  "Re: [PATCH] immediatly display saved filename in tab",
                  "m=117009852211669",
                  "29 January 2007",
-                 u"Various bug fixes"),
+                 "Various bug fixes"),
 
-     contributor(u"Jim Rotmalm",
+     contributor("Michael Roitzsch",
+                 "reactorcontrol () icloud ! com",
+                 "GPL",
+                 "Re: TeXFiles.py compatibility with Nix on macOS",
+                 "m=156146891826580",
+                 "25 June 2019",
+                 "Fixes for the Nix package manager"),
+
+     contributor("Jim Rotmalm",
                  "jim.rotmalm () gmail ! com",
                  "GPL",
                  "License for my contributions.",
                  "m=129582352017079",
                  "24 January 2011",
-                 u"Swedish translation"),
+                 "Swedish translation"),
 
-     contributor(u"Paul A. Rubin",
+     contributor("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"),
+                 "Major rework of the AMS classes"),
 
-     contributor(u"Dima Ruinskiy",
+     contributor("Dima Ruinskiy",
                  "dima.ruinskiy () outlook ! com",
                  "GPL",
                  "Joining LyX development team",
                  "m=146687842921797",
                  "24 June 2016",
-                 u"Reintroduction of Windows Vista support (bug 10186)"),
+                 "Reintroduction of Windows Vista support (bug 10186)"),
 
-     contributor(u"Guy Rutenberg",
+     contributor("Guy Rutenberg",
                  "guyrutenberg () gmail ! com",
                  "GPL",
                  "Re: [PATCH] Strange Behaivor: xdg-open left as zombie",
                  "m=137365070116624",
                  "12 July 2013",
-                 u"System call fixes"),
+                 "System call fixes"),
 
-     contributor(u"Ran Rutenberg",
+     contributor("Ran Rutenberg",
                  "ran.rutenberg () gmail ! com",
                  "GPL",
                  "The New Hebrew Translation of the Introduction",
                  "m=116172457024967",
                  "24 October 2006",
-                 u"Hebrew translation"),
+                 "Hebrew translation"),
 
-     contributor(u'Pavel Sanda',
+     contributor('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."),
+                 "Czech translation, added various features, lfuns docs/review. Current release manager."),
 
-     contributor(u"Szõke Sándor",
+     contributor("Szõke Sándor",
                  "alex () lyx ! hu",
                  "GPL",
                  "Contribution to LyX",
                  "m=113449408830523",
                  "13 December 2005",
-                 u"Hungarian translation"),
+                 "Hungarian translation"),
 
-     contributor(u"Janus Sandsgaard",
+     contributor("Janus Sandsgaard",
                  "janus () janus ! dk",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111839355328045",
                  "10 June 2005",
-                 u"Danish translation of the Windows installer"),
+                 "Danish translation of the Windows installer"),
 
-     contributor(u"Stefan Schimanski",
+     contributor("Stefan Schimanski",
                  "sts () 1stein ! org",
                  "GPL",
                  "GPL statement",
                  "m=117541472517274",
                  "1 April 2007",
-                 u"font improvements, bug fixes"),
-     
-     contributor(u"Horst Schirmeier",
+                 "font improvements, bug fixes"),
+
+     contributor("Horst Schirmeier",
                  "horst () schirmeier ! com",
                  "GPL",
                  "Re: [patch] reordering capabilities for GuiBibtex",
                  "m=120009631506298",
                  "12 January 2008",
-                 u"small fixes"),
+                 "small fixes"),
+
+     contributor("Christoph Schmitz",
+                 "chr.schmitz () web ! de",
+                 "GPL",
+                 "Re: German Translation of \"Additional Features\"",
+                 "m=161899755219050",
+                 "21 April 2021",
+                 "Contribution to German manuals"),
 
-     contributor(u"Hubert Schreier",
+     contributor("Hubert Schreier",
                  "schreier () sc ! edu",
                  "",
                  "",
                  "",
                  "",
-                 u"spellchecker (ispell frontend); beautiful document-manager based on the simple table of contents (removed)"),
+                 "spellchecker (ispell frontend); beautiful document-manager based on the simple table of contents (removed)"),
 
-     contributor(u"Ivan Schreter",
+     contributor("Ivan Schreter",
                  "schreter () kdk ! sk",
                  "",
                  "",
                  "",
                  "",
-                 u"international support and kbmaps for slovak, czech, german, ... wysiwyg figure"),
+                 "international support and kbmaps for slovak, czech, german, ... wysiwyg figure"),
 
-     contributor(u"Eulogio Serradilla Rodríguez",
+     contributor("Eulogio Serradilla Rodríguez",
                  "eulogio.sr () terra ! es",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110915313018478",
                  "23 February 2005",
-                 u"contribution to the spanish internationalization"),
+                 "contribution to the spanish internationalization"),
 
-     contributor(u"Nickolay Shashkin",
+     contributor("Nickolay Shashkin",
                  "mecareful () gmail ! com",
                  "GPL",
                  "GPL statement",
                  "m=134026564400578",
                  "21 June 2012",
-                 u"bugfixes"),
+                 "bugfixes"),
 
-     contributor(u"Miyata Shigeru",
+     contributor("Omer Shechter",
+                 "omer.shechter () mail ! huji ! ac ! il",
+                 "GPL",
+                 "Contributions licensing",
+                 "m=170428353115475",
+                 "03 January 2024",
+                 "Hebrew Localization"),
+
+     contributor("Miyata Shigeru",
                  "miyata () kusm ! kyoto-u ! ac ! jp",
                  "",
                  "",
                  "",
                  "",
-                 u"OS/2 port"),
+                 "OS/2 port"),
 
-     contributor(u"Alejandro Aguilar Sierra",
+     contributor("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"),
+                 "Fast parsing with lyxlex, pseudoactions, mathpanel, Math Editor, combox and more"),
 
-     contributor(u"Lior Silberman",
+     contributor("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",
+                 "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("Waluyo Adi Siswanto",
                  "was.uthm () gmail ! com",
                  "GPL",
                  "Licence contributions",
                  "m=123595530114385",
                  "Mar 2 2009",
-                 u"Indonesian translation"),
+                 "Indonesian translation"),
 
-     contributor(u"Yuriy Skalko",
+     contributor("Yuriy Skalko",
                  "yuriy.skalko () gmail ! com",
                  "GPL",
                  "Re: Updated Russian translation",
                  "m=151306079714476",
                  "12 December 2017",
-                 u"Russian translation of the user interface"),
-     
-     contributor(u"Giovanni Sora",
+                 "Russian localization and documentation, bug reports and fixes, updating of code"),
+
+     contributor("Hernán Gustavo Solari",
+                 "hgsolari () gmail ! com",
+                 "GPL",
+                 "Re: Bug#1008257: lyx: bash-completion not working",
+                 "m=164864464510820",
+                 "30 March 2022",
+                 "bash-completion fixes"),
+
+     contributor("Giovanni Sora",
                  "g.sora () tiscali ! it",
                  "GPL",
                  "License ia.po",
                  "m=129968786830788",
                  "9 March 2011",
-                 u"Interlingua translation"),
+                 "Interlingua translation"),
 
-     contributor(u"Andre Spiegel",
+     contributor("Andre Spiegel",
                  "spiegel () gnu ! org",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110908534728505",
                  "22 February 2005",
-                 u"vertical spaces"),
+                 "vertical spaces"),
 
-     contributor(u"Jürgen Spitzmüller",
-                 "juergen.sp () t-online ! de",
+     contributor("Jürgen Spitzmüller",
+                 "spitz () lyx ! org",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110907530127164",
                  "22 February 2005",
-                 u"Qt frontend, bugfixes. Former stable branch maintainer."),
+                 "Many bugfixes and features. Former stable branch maintainer."),
 
-     contributor(u"John Spray",
+     contributor("John Spray",
                  "jcs116 () york ! ac ! uk",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110909415400170",
                  "22 February 2005",
-                 u"Gtk frontend"),
+                 "Gtk frontend"),
 
-     contributor(u"Ben Stanley",
+     contributor("Ben Stanley",
                  "ben.stanley () exemail ! com ! au",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110923981012056",
                  "24 February 2005",
-                 u"fix bugs with error insets placement"),
+                 "fix bugs with error insets placement"),
 
-     contributor(u"Uwe Stöhr",
+     contributor("Uwe Stöhr",
                  "uwestoehr () web ! de",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111833345825278",
                  "9 June 2005",
-                 u"Current documentation maintainer, Windows installer, bug fixes"),
+                 "Current documentation maintainer, Windows installer, bug fixes"),
+
+     contributor("Niko Strijbol",
+                 "strijbol ! niko () gmail ! com",
+                 "GPL",
+                 "License agreement (cf. Dutch translations)",
+                 "m=156107304318577",
+                 "20 June 2019",
+                 "Dutch translation of the user interface"),
 
-     contributor(u"David Suárez de Lis",
+     contributor("David Suárez de Lis",
                  "excalibor () iname ! com",
                  "",
                  "",
                  "",
                  "",
-                 u"maintaining es.po since v1.0.0 and other small i18n issues small fixes"),
+                 "maintaining es.po since v1.0.0 and other small i18n issues small fixes"),
 
-     contributor(u"Peter Sütterlin",
+     contributor("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"),
+                 "aapaper support, german documentation translation, bug reports"),
 
-     contributor(u"Stefan Swerk",
+     contributor("Stefan Swerk",
                  "stefan_lyx () swerk ! priv ! at",
                  "GPL",
                  "Contribution license",
                  "m=142644092217864",
                  "15 March 2015",
-                 u"europasscv support"),
+                 "europasscv support"),
 
-     contributor(u"Kayvan Aghaiepour Sylvan",
+     contributor("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"),
+                 "noweb2lyx and reLyX integration of noweb files. added Import->Noweb and key bindings to menus"),
 
-     contributor(u"TaoWang (mgc)",
+     contributor("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"),
+                 "translation of documentation and user interface to Simplified Chinese"),
 
-     contributor(u'Sergey Tereschenko',
+     contributor('Sergey Tereschenko',
                  "serg.partizan () gmail ! com",
                  "GPL",
                  "my contributions",
                  "m=126065880524135",
                  "12 December 2009",
-                 u"Russian translation of the user interface"),
+                 "Russian translation of the user interface"),
 
-     contributor(u"Reuben Thomas",
+     contributor("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"),
+                 "ENTCS document class and lots of useful bug reports"),
 
-     contributor(u"Dekel Tsur",
+     contributor("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"),
+                 "Hebrew support, general file converter, many many bug fixes"),
 
-     contributor(u"Matthias Urlichs",
+     contributor("Matthias Urlichs",
                  "smurf () smurf ! noris ! de",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110912859312991",
                  "22 February 2005",
-                 u"bug reports and small fixes"),
+                 "bug reports and small fixes"),
 
-     contributor(u"H. Turgut Uyar",
+     contributor("H. Turgut Uyar",
                  "uyar () ce ! itu ! edu ! tr",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110917146423892",
                  "23 February 2005",
-                 u"turkish kbmaps"),
+                 "turkish kbmaps"),
 
-     contributor(u"Mostafa Vahedi",
+     contributor("Mostafa Vahedi",
                  "vahedi58 () yahoo ! com",
                  "GPL",
                  "Re: improving Arabic-like language support",
                  "m=117769964731842",
                  "27 April 2007",
-                 u"Farsi support and translations"),
+                 "Farsi support and translations"),
 
-     contributor(u"Marko Vendelin",
+     contributor("Marko Vendelin",
                  "markov () ioc ! ee",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110909439912594",
                  "22 February 2005",
-                 u"Gnome frontend"),
+                 "Gnome frontend"),
 
-     contributor(u"Joost Verburg",
+     contributor("Joost Verburg",
                  "joostverburg () users ! sourceforge ! net",
                  "GPL",
                  "Re: New Windows Installer",
                  "m=114957884100403",
                  "6 June 2006",
-                 u"A new and improved Windows installer"),
+                 "A new and improved Windows installer"),
 
-     contributor(u"Martin Vermeer",
+     contributor("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!)"),
+                 "support for optional argument in sections/captions svjour/svjog, egs and llncs document classes. Lot of bug hunting (and fixing!)"),
 
-     contributor(u"Veselin",
+     contributor("Veselin Jeliazkov",
                  "vveesskkoo () gmail ! com",
                  "GPL",
                  "Re: po/bg.po update",
                  "m=155531922001223",
                  "15 April 2019",
-                 u"Bulgarian localization"),
+                 "Bulgarian localization"),
 
-     contributor(u"Jürgen Vigna",
+     contributor("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"),
+                 "complete rewrite of the tabular, text inset; fax and plain text export support; iletter and dinbrief support"),
 
-     contributor(u"Pauli Virtanen",
+     contributor("Pauli Virtanen",
                  "pauli.virtanen () hut ! fi",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110918662408397",
                  "23 February 2005",
-                 u"Finnish localization of the interface"),
+                 "Finnish localization of the interface"),
 
-     contributor(u"Ramanathan Vishnampet",
+     contributor("Ramanathan Vishnampet",
                  "rvishnampet () gmail ! com",
                  "GPL",
                  "Re: [Patch] -fobjc-exceptions for compiling linkback sources with g++ on Mac",
-                 "",
+                 "m=139265874002562",
                  "17 February 2014",
-                 u"Support for g++ on 4.8 Mac"),
+                 "Support for g++ on 4.8 Mac"),
 
-     contributor(u"Herbert Voß",
+     contributor("Patrick De Visschere",
+                 "pdvisschere () edpnet ! be",
+                 "GPL",
+                 "Re: Blanket permission",
+                 "m=157529692807608",
+                 "2 December 2019",
+                 "Improvements to the CMake build scripts"),
+
+     contributor("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"),
+                 "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",
+     contributor("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"),
+                 "Bug fixes, feedback on LyX behaviour on the Mac, and improvements to DocBook export"),
 
-     contributor(u"venom00 (c/o J-M Lasgouttes)",
+     contributor("venom00 (c/o J-M Lasgouttes)",
                  "venom00 () arcadiaclub ! com",
                  "GPL",
                  "I love GPL, what about you?",
                  "m=129098897014967",
                  "29 November 2010",
-                 u"Bug fixing"),
+                 "Bug fixing"),
 
-     contributor(u"Jason Waskiewicz",
+     contributor("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"),
+                 "Layouts for the Tufte document classes"),
 
-     contributor(u"John P. Weiss",
+     contributor("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"),
+                 "Bugreports and suggestions, slides class support, editor of the documentationproject, 6/96-9/97. Tutorial chapter 1"),
 
-     contributor(u"Edmar Wienskoski",
+     contributor("Edmar Wienskoski",
                  "edmar () freescale ! com",
                  "GPL",
                  "Re: The LyX licence",
                  "m=111280236425781",
                  "6 April 2005",
-                 u"literate programming support; various bug fixes"),
+                 "literate programming support; various bug fixes"),
 
-     contributor(u"Mate Wierdl",
+     contributor("Mate Wierdl",
                  "mw () wierdlmpc ! msci ! memphis ! edu",
                  "",
                  "",
                  "",
                  "",
-                 u"Maintainer of the @lists.lyx.org mailing-lists"),
+                 "Maintainer of the @lists.lyx.org mailing-lists"),
 
-     contributor(u"Sergei Winitzki",
+     contributor("Sergei Winitzki",
                  "winitzki () gmail ! com",
                  "GPL",
                  "Re: patch to include latest supported programming languages in listings.tex",
                  "m=155530602429557",
                  "15 April 2019",
-                 u"updates to the Scientific Word bindings"),
+                 "updates to the Scientific Word bindings"),
 
-     contributor(u"Stephan Witt",
+     contributor("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"),
+                 "support for CVS revision control, native spell checker interface for Mac OS"),
 
-     contributor(u"Jürgen Womser-Schütz",
+     contributor("Jürgen Womser-Schütz",
                  "jws1954 () gmx ! de",
                  "GPL",
                  "Re: Bug #11484",
                  "m=154990590319314",
                  "11 February 2019",
-                 u"Improvements to the Include File dialog"),
+                 "Improvements to the Include File dialog"),
 
-     contributor(u"Russ Woodroofe",
+     contributor("Russ Woodroofe",
                  "paranoia () math ! cornell ! edu",
                  "GPL",
                  "Re: AMS math question environment",
                  "m=123091448326090",
                  "1 January 2009",
-                 u"question layout environment"),
+                 "question layout environment"),
 
-     contributor(u"Mingyi Wu",
+     contributor("Mingyi Wu",
                  "mingi.eo97g () g2 ! nctu ! edu ! tw",
                  "GPL",
                  "newcomer",
                  "m=139389779502232",
                  "3 March 2014",
-                 u"Chinese (traditional) translations"),
+                 "Chinese (traditional) translations"),
 
-     contributor(u"Roy Xia",
+     contributor("Roy Xia",
                  "royxia062 () gmail ! com",
                  "GPL",
                  "GPL Statement",
                  "m=139434481324689",
                  "9 March 2014",
-                 u"Bugfixing"),
+                 "Bugfixing"),
 
-     contributor(u"Yihui Xie",
+     contributor("Yihui Xie",
                  "xie () yihui ! name",
                  "GPL",
                  "GPL Statement",
                  "m=130523685427995",
                  "3 June 2011",
-                 u"Bugfixing, Chinese translation, Sweave support"),
+                 "Bugfixing, Chinese translation, Sweave support"),
 
-     contributor(u"Huang Ying",
+     contributor("Huang Ying",
                  "huangy () sh ! necas ! nec ! com ! cn",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110956742604611",
                  "28 February 2005",
-                 u"Gtk frontend"),
+                 "Gtk frontend"),
 
-     contributor(u"Koji Yokota",
+     contributor("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"),
+                 "Japanese translation"),
 
-     contributor(u"Abdelrazak Younes",
+     contributor("Abdelrazak Younes",
                  "younes.a () free ! fr",
                  "GPL",
                  "Re: [Patch] RFQ: ParagraphList Rewrite",
                  "m=113993670602439",
                  "14 February 2006",
-                 u"Qt4 frontend, editing optimisations"),
+                 "Qt4 frontend, editing optimisations"),
+
+     contributor("Yitzhak Zangi",
+                 "yitzc1 () gmail ! com",
+                 "GPL",
+                 "blanket pemission for translation etc.",
+                 "m=170427463709581",
+                 "03 January 2024",
+                 "Hebrew Localization"),
+
+     contributor("Kees Zeelenberg",
+                 "kzstatis () gmail ! com",
+                 "GPL",
+                 "LyX Contributions license",
+                 "m=170453607422463",
+                 "6 January 2024",
+                 "Dutch localization"),
 
-     contributor(u"Henner Zeller",
+     contributor("Henner Zeller",
                  "henner.zeller () freiheit ! com",
                  "GPL",
                  "Re: The LyX licence",
                  "m=110911591218107",
                  "22 February 2005",
-                 u"rotation of wysiwyg figures"),
+                 "rotation of wysiwyg figures"),
 
-     contributor(u"Xiaokun Zhu",
+     contributor("Xiaokun Zhu",
                  "xiaokun () aero ! gla ! ac ! uk",
                  "",
                  "",
                  "",
                  "",
-                 u"bug reports and small fixes") ]
+                 "bug reports and small fixes"),
+
+     contributor("Jiaxu Zi",
+                 "3119932298 () qq ! com",
+                 "GPL",
+                 "Re: Update zh_CN Translation",
+                 "m=171281941029208",
+                 "10 April 2024",
+                 "Chinese translation") ]
+
 
 
 if __name__ == "__main__":
      main(sys.argv, contributors)
-