texlive[49069] Master/texmf-dist: biblatex (3nov18)

commits+karl at tug.org commits+karl at tug.org
Sat Nov 3 22:11:02 CET 2018


Revision: 49069
          http://tug.org/svn/texlive?view=revision&revision=49069
Author:   karl
Date:     2018-11-03 22:11:01 +0100 (Sat, 03 Nov 2018)
Log Message:
-----------
biblatex (3nov18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bib
    trunk/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst
    trunk/Master/texmf-dist/doc/latex/biblatex/CHANGES.md
    trunk/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/04-delimiters-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/04-delimiters-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-bibtex.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/90-related-entries-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/95-customlists-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/96-dates-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bib
    trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx
    trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx
    trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.def
    trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
    trunk/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def
    trunk/Master/texmf-dist/tex/latex/biblatex/blx-dm.def
    trunk/Master/texmf-dist/tex/latex/biblatex/blx-natbib.def
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/bulgarian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/galician.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/latvian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/norsk.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/ukrainian.lbx

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations-biber.pdf
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.bib
    trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.tex
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/hungarian.lbx
    trunk/Master/texmf-dist/tex/latex/biblatex/lbx/magyar.lbx

Modified: trunk/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bib
===================================================================
--- trunk/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bib	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bib	2018-11-03 21:11:01 UTC (rev 49069)
@@ -417,7 +417,7 @@
                   \texttt{editor} as well as a \texttt{series} field},
 }
 
- at book{aristotle:rhetoric,
+ at mvbook{aristotle:rhetoric,
   author       = {Aristotle},
   title        = {The Rhetoric of {Aristotle} with a commentary by the late {Edward
                   Meredith Cope}},
@@ -666,7 +666,7 @@
                   fields},
 }
 
- at book{knuth:ct,
+ at mvbook{knuth:ct,
   author       = {Knuth, Donald E.},
   title        = {Computers \& Typesetting},
   date         = {1984/1986},
@@ -675,16 +675,15 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1984-0},
   sorttitle    = {Computers & Typesetting},
   indexsorttitle= {Computers & Typesetting},
-  annotation   = {A five-volume book cited as a whole. This is a \texttt{book}
+  annotation   = {A five-volume book cited as a whole. This is a \texttt{mvbook}
                   entry, note the \texttt{volumes} field},
 }
 
 @book{knuth:ct:a,
   author       = {Knuth, Donald E.},
-  title        = {The {\TeX} book},
+  title        = {The {\TeX book}},
   date         = 1984,
   maintitle    = {Computers \& Typesetting},
   volume       = {A},
@@ -692,13 +691,12 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1984-1},
   sorttitle    = {Computers & Typesetting A},
   indexsorttitle= {The TeXbook},
   indextitle   = {\protect\TeX book, The},
   shorttitle   = {\TeX book},
   annotation   = {The first volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields. We want this
+                  \texttt{sorttitle} field. We want this
                   volume to be listed after the entry referring to the entire
                   five-volume set. Also note the \texttt{indextitle} and
                   \texttt{indexsorttitle} fields. Indexing packages that don't
@@ -708,7 +706,7 @@
 
 @book{knuth:ct:b,
   author       = {Knuth, Donald E.},
-  title        = {\TeX: The Program},
+  title        = {{\TeX}: The Program},
   date         = 1986,
   maintitle    = {Computers \& Typesetting},
   volume       = {B},
@@ -716,12 +714,11 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-1},
   sorttitle    = {Computers & Typesetting B},
   indexsorttitle= {TeX: The Program},
   shorttitle   = {\TeX},
   annotation   = {The second volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields. Also note the
+                  \texttt{sorttitle} field. Also note the
                   \texttt{indexsorttitle} field},
 }
 
@@ -735,18 +732,17 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-2},
   sorttitle    = {Computers & Typesetting C},
   indextitle   = {METAFONTbook, The},
   shorttitle   = {METAFONTbook},
   annotation   = {The third volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields as well as the
+                  \texttt{sorttitle} field as well as the
                   \texttt{indextitle} field},
 }
 
 @book{knuth:ct:d,
   author       = {Knuth, Donald E.},
-  title        = {METAFONT: The Program},
+  title        = {{METAFONT}: The Program},
   date         = 1986,
   maintitle    = {Computers \& Typesetting},
   volume       = {D},
@@ -754,11 +750,10 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-3},
   sorttitle    = {Computers & Typesetting D},
   shorttitle   = {METAFONT},
   annotation   = {The fourth volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields},
+                  \texttt{sorttitle} field},
 }
 
 @book{knuth:ct:e,
@@ -771,13 +766,12 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-4},
   sorttitle    = {Computers & Typesetting E},
   annotation   = {The fifth volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields},
+                  \texttt{sorttitle} field},
 }
 
- at book{knuth:ct:related,
+ at mvbook{knuth:ct:related,
   author       = {Knuth, Donald E.},
   title        = {Computers \& Typesetting},
   date         = {1984/1986},
@@ -786,7 +780,6 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1984-0},
   sorttitle    = {Computers & Typesetting},
   indexsorttitle= {Computers & Typesetting},
   related      = {knuth:ct:a,knuth:ct:b,knuth:ct:c,knuth:ct:d,knuth:ct:e},
@@ -909,7 +902,7 @@
                   \texttt{relatedtype} fields},
 }
 
- at book{nietzsche:ksa,
+ at mvbook{nietzsche:ksa,
   author       = {Nietzsche, Friedrich},
   title        = {S{\"a}mtliche Werke},
   date         = 1988,
@@ -919,16 +912,15 @@
   publisher    = dtv # { and Walter de Gruyter},
   location     = {M{\"u}nchen and Berlin and New York},
   langid       = {german},
-  sortyear     = {1988-0},
   sorttitle    = {Werke-00-000},
   indexsorttitle= {Samtliche Werke},
   subtitle     = {Kritische Studienausgabe},
   annotation   = {The critical edition of Nietzsche's works. This is a
-                  \texttt{book} entry referring to a 15-volume work as a
+                  \texttt{mvbook} entry referring to a 15-volume work as a
                   whole. Note the \texttt{volumes} field and the format of the
                   \texttt{publisher} and \texttt{location} fields in the
                   database file. Also note the \texttt{sorttitle} and
-                  \texttt{sortyear} fields which are used to fine-tune the
+                  field which is used to fine-tune the
                   sorting order of the bibliography. We want this item listed
                   first in the bibliography},
 }
@@ -946,7 +938,6 @@
   publisher    = dtv # { and Walter de Gruyter},
   location     = {M{\"u}nchen and Berlin and New York},
   langid       = {german},
-  sortyear     = {1988-1},
   sorttitle    = {Werke-01-000},
   indexsorttitle= {Samtliche Werke I},
   bookauthor   = {Nietzsche, Friedrich},
@@ -955,8 +946,8 @@
   annotation   = {A single volume from the critical edition of Nietzsche's
                   works. This \texttt{book} entry explicitly refers to the first
                   volume only. Note the \texttt{title} and \texttt{maintitle}
-                  fields. Also note the \texttt{sorttitle} and \texttt{sortyear}
-                  fields. We want this entry to be listed after the entry
+                  fields. Also note the \texttt{sorttitle} 
+                  field. We want this entry to be listed after the entry
                   referring to the entire edition},
 }
 
@@ -1061,7 +1052,7 @@
                   the \texttt{related} and \texttt{relatedtype} fields},
 }
 
- at book{vazques-de-parga,
+ at mvbook{vazques-de-parga,
   author       = {V{\'a}zques{ de }Parga, Luis and Lacarra, Jos{\'e} Mar{\'i}a
                   and Ur{\'i}a R{\'i}u, Juan},
   title        = {Las Peregrinaciones a Santiago de Compostela},
@@ -1074,7 +1065,7 @@
   sorttitle    = {Peregrinaciones a Santiago de Compostela},
   indextitle   = {Peregrinaciones a Santiago de Compostela, Las},
   shorttitle   = {Peregrinaciones},
-  annotation   = {A multivolume book cited as a whole. This is a \texttt{book}
+  annotation   = {A multivolume book cited as a whole. This is a \texttt{mvbook}
                   entry with \texttt{volumes}, \texttt{note},
                   \texttt{sorttitle}, and \texttt{indextitle} fields},
 }
@@ -1108,7 +1099,7 @@
                   \texttt{indextitle} fields},
 }
 
- at collection{britannica,
+ at mvcollection{britannica,
   editor       = {Preece, Warren E.},
   title        = {The {New Encyclop{\ae}dia Britannica}},
   date         = 2003,
@@ -1123,7 +1114,7 @@
   sorttitle    = {Encyclop{\ae}dia Britannica},
   indextitle   = {{Encyclop{\ae}dia Britannica}, The {New}},
   shorttitle   = {{Encyclop{\ae}dia Britannica}},
-  annotation   = {This is a \texttt{collection} entry for an encyclopedia. Note
+  annotation   = {This is a \texttt{mvcollection} entry for an encyclopedia. Note
                   the \texttt{useeditor} option in the \texttt{options} field as
                   well as the \texttt{sorttitle} field. We want this entry to be
                   cited and alphabetized by title even though there is an
@@ -1159,7 +1150,7 @@
   pages        = {1-23},
 }
 
- at collection{jaffe,
+ at mvcollection{jaffe,
   editor       = {Jaff{\'e}, Philipp},
   title        = {Regesta Pontificum Romanorum ab condita ecclesia ad annum post
                   Christum natum \textsc{mcxcviii}},
@@ -1173,7 +1164,7 @@
   editoratype  = {redactor},
   indextitle   = {Regesta Pontificum Romanorum},
   shorttitle   = {Regesta Pontificum Romanorum},
-  annotation   = {A \texttt{collection} entry with \texttt{edition} and
+  annotation   = {A \texttt{mvcollection} entry with \texttt{edition} and
                   \texttt{volumes} fields. Note the \texttt{editora} and
                   \texttt{editoratype} fields},
 }
@@ -1252,7 +1243,6 @@
   location     = {M{\"u}nchen and Berlin and New York},
   pages        = {243-334},
   langid       = {german},
-  sortyear     = {1988-2},
   sorttitle    = {Werke-01-243},
   indexsorttitle= {Vom Nutzen und Nachtheil der Historie fur das Leben},
   indextitle   = {Vom Nutzen und Nachtheil der Historie f{\"u}r das Leben},
@@ -1261,7 +1251,7 @@
                   This \texttt{inbook} entry explicitly refers to an essay found
                   in the first volume. Note the \texttt{title},
                   \texttt{booktitle}, and \texttt{maintitle} fields. Also note
-                  the \texttt{sorttitle} and \texttt{sortyear} fields. We want
+                  the \texttt{sorttitle} field. We want
                   this entry to be listed after the entry referring to the
                   entire first volume},
 }

Modified: trunk/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst	2018-11-03 21:11:01 UTC (rev 49069)
@@ -158,24 +158,29 @@
     verbb
     verbc
   }
-  { skipbib skiplos skiplab useauthor useeditor usetranslator useprefix singletitle }
-  { entryoptions labelhash namehash fullhash dateyear dateendyear extradate labelalpha extraalpha 
-    sortinit label.name label.year sortkey.nosort sortkey.name sortkey.year
-    sortkey.title sortkey.alpha sort.year sort.alph warningmsg }
+  { skipbib skiplos skiplab
+    useauthor useeditor usetranslator useprefix
+    singletitle }
+  { entryoptions labelhash namehash fullhash
+    dateyear dateendyear extradate labelalpha extraalpha label.name label.year
+    sortinit sortkey.nosort sortkey.name sortkey.year
+    sortkey.title sortkey.alpha sort.year sort.alph
+    warningmsg }
 
 INTEGERS { ctrl.debug ctrl.bibtex8 ctrl.maxline ctrl.sorting ctrl.cssort
-           ctrl.maxnames ctrl.minnames ctrl.useauthor ctrl.useeditor ctrl.usetranslator
+           ctrl.maxnames ctrl.minnames ctrl.maxalphanames ctrl.minalphanames
+           ctrl.useauthor ctrl.useeditor ctrl.usetranslator
            ctrl.useprefix ctrl.labelalpha ctrl.singletitle
-           ctrl.labeldate citecount 
+           ctrl.labeldate citecount
            tempctra tempctrb tempctrc resvctra resvctrb resvctrc
            last.extra.num }
 
-STRINGS  { ctrl.alphaothers ctrl.sortstr
+STRINGS  { ctrl.alphaothers ctrl.sortalphaothers ctrl.sortstr
            templist tempstrga tempstrgb resvstrga resvstrgb resvstrgc
            last.name last.hash last.year last.extra }
 
 FUNCTION {initialize} {
-  "$Revision: 3.8 $"
+  "$Revision: 3.11 $"
   #12 entry.max$ substring$
   #-3 entry.max$ substring$
   "Biblatex version: " swap$ * top$
@@ -190,8 +195,11 @@
    #0   'ctrl.useprefix :=
    #1   'ctrl.minnames :=
   #99   'ctrl.maxnames :=
+   #1   'ctrl.minalphanames :=
+   #3   'ctrl.maxalphanames :=
   #79   'ctrl.maxline :=
   "+"   'ctrl.alphaothers :=
+  " "   'ctrl.sortalphaothers :=
   "nty" 'ctrl.sortstr :=
 }
 
@@ -255,8 +263,8 @@
 }
 
 FUNCTION {ctrl:labelalpha} {
-  ctrl.labelalpha ctrl:skiplab not and
-  shorthand empty$
+  ctrl.labelalpha
+  ctrl:skiplab not
   and
 }
 
@@ -474,7 +482,7 @@
           if$
         }
         { "shorteditor" }
-      if$  
+      if$
     }
     { push:labelname:translator }
   if$
@@ -596,7 +604,7 @@
           if$
         }
         { "shortauthor" }
-      if$  
+      if$
     }
     { push:labelname:editor }
   if$
@@ -610,7 +618,7 @@
 }
 
 FUNCTION {warning} {
-  "\item " swap$ * 
+  "\item " swap$ *
   warningmsg empty$
     'skip$
     { warningmsg " " * swap$ * }
@@ -679,7 +687,9 @@
 }
 
 FUNCTION {format:name:initials} {
+  ".-" "\bibinithyphendelim " str:replace
   ".~" "\bibinitperiod\bibinitdelim " str:replace
+  ". " "\bibinitperiod\bibinitdelim " str:replace
   "." "\bibinitperiod" str:replace
 }
 
@@ -686,7 +696,7 @@
 FUNCTION {is.number} {
   #1
   { #0 > }
-    { duplicate$ #1 #1 substring$ chr.to.int$ 
+    { duplicate$ #1 #1 substring$ chr.to.int$
       duplicate$ #47 >
       swap$      #58 <
       and
@@ -873,7 +883,7 @@
       split.date:date
       tempctra
         'skip$
-        { pop$ pop$ pop$ pop$ pop$ pop$ "" "" "" "" "" "" 
+        { pop$ pop$ pop$ pop$ pop$ pop$ "" "" "" "" "" ""
           templist warning:invalid
         }
       if$
@@ -906,7 +916,7 @@
         { templist tempctra "{vv}" format.name$
           duplicate$ empty$
             { pop$ "" }
-            { "u" change.case$ "t" change.case$ 
+            { "u" change.case$ "t" change.case$
               delimiter.3 * }
           if$
           templist tempctra
@@ -1122,7 +1132,7 @@
         'skip$
       if$
       swap$ "\field" swap$ wrap:braces *
-      swap$ wrap:braces * output:indent:field 
+      swap$ wrap:braces * output:indent:field
       }
   if$
 }
@@ -1201,7 +1211,8 @@
     { 'tempstrga :=
       "\verb" swap$ wrap:braces * output:indent:field
       { tempstrga empty$ not }
-        { "\verb " tempstrga #1 ctrl.maxline #10 - substring$ * output:indent:field
+        { "\verb " tempstrga #1 ctrl.maxline #10 - substring$ *
+          output:indent:field
           tempstrga ctrl.maxline #9 - global.max$ substring$ 'tempstrga :=
         }
       while$
@@ -1315,7 +1326,7 @@
           output:write:name:prefix
           output:write:name:last
           output:write:name:suffix
-	      output:write:name:first
+          output:write:name:first
           "}}%" output:indent:subfield
           tempctra #1 + 'tempctra :=
           tempctrb #1 - 'tempctrb :=
@@ -1346,28 +1357,28 @@
       #0 'tempctrc :=
       { templist purify tempctrb global.max$ substring$ num.names$ #0 > }
         { templist tempctrb #1 substring$ "{" =
-	    { tempctrc #1 + 'tempctrc :=
-	      tempctrb #1 + 'tempctrb := }
-	    { templist tempctrb #1 substring$ "}" =
-		{ tempctrc #1 - 'tempctrc :=
-		  tempctrb #1 + 'tempctrb := }
-		{ templist tempctrb #5 substring$
-        	  duplicate$ " AND " =
-        	  swap$      " and " =
-        	  or
-		  tempctrc #1 <
-		  and
-        	    { templist tempctra tempctrb tempctra - substring$
-        	      wrap:braces "%" * output:indent:subfield
-        	      tempctrb #5 + duplicate$
-        	      'tempctra :=
-        	      'tempctrb :=
-        	    }
-        	    { tempctrb #1 + 'tempctrb := }
-        	  if$
-		}
+            { tempctrc #1 + 'tempctrc :=
+              tempctrb #1 + 'tempctrb := }
+            { templist tempctrb #1 substring$ "}" =
+                { tempctrc #1 - 'tempctrc :=
+                  tempctrb #1 + 'tempctrb := }
+                { templist tempctrb #5 substring$
+                  duplicate$ " AND " =
+                  swap$      " and " =
+                  or
+                  tempctrc #1 <
+                  and
+                    { templist tempctra tempctrb tempctra - substring$
+                      wrap:braces "%" * output:indent:subfield
+                      tempctrb #5 + duplicate$
+                      'tempctra :=
+                      'tempctrb :=
+                    }
+                    { tempctrb #1 + 'tempctrb := }
+                  if$
+                }
               if$
-	    }
+            }
           if$
         }
       while$
@@ -1388,7 +1399,7 @@
         { "\set"   }
         { "\inset" }
       if$
-      entryset wrap:braces * output:indent:field 
+      entryset wrap:braces * output:indent:field
     }
   if$
   xref empty$
@@ -1661,7 +1672,7 @@
       if$
     }
   if$
-  output:write:field 
+  output:write:field
   "location" location
   duplicate$ empty$
     { pop$ address }
@@ -1887,14 +1898,16 @@
 % This version corresponds to the .bbl version, *not* the biblatex version!
 FUNCTION {input:control:version} {
   input:control:parse
-  "$Revision: 2.9 $"
+  "$Revision: 3.0 $"
   #12 entry.max$ substring$
   #-3 entry.max$ substring$
   'tempstrga :=
   duplicate$ tempstrga =
     { pop$ }
-    { "Version mismatch: biblatex.bst=" tempstrga *
-      ", biblatex.sty=" * swap$ * warning$
+    { "bbl version mismatch: biblatex.bst has " tempstrga *
+      ", but biblatex.sty has " * swap$ * warning$
+      "         The bbl version need not be the same as the biblatex version."
+      top$
       pop$ "" }
   if$
 }
@@ -1918,8 +1931,11 @@
           input:control:options 'ctrl.sorting :=
           input:control:options 'ctrl.maxnames :=
           input:control:options 'ctrl.minnames :=
+          input:control:options 'ctrl.maxalphanames :=
+          input:control:options 'ctrl.minalphanames :=
           input:control:options 'ctrl.maxline :=
           input:control:parse   'ctrl.alphaothers :=
+          input:control:parse   'ctrl.sortalphaothers :=
           'ctrl.sortstr :=
         }
       if$
@@ -1952,10 +1968,10 @@
     { tempstrgb input:options:add
       #1 }
     { duplicate$ "true" =
-        { pop$ "" tempstrgb input:options:add 
+        { pop$ "" tempstrgb input:options:add
           #1 }
         { duplicate$ tempstrgb input:options:add
-          bol.to.int 
+          bol.to.int
         }
       if$
     }
@@ -1978,11 +1994,11 @@
                         { input:options:known 'skiplos := }
                         { tempstrgb "skiplab" =
                             { input:options:known 'skiplab := }
-                            { tempstrgb "dataonly" = 
-                                { input:options:known 
+                            { tempstrgb "dataonly" =
+                                { input:options:known
                                   duplicate$ 'skipbib :=
-                                  duplicate$ 'skiplos := 
-                                             'skiplab := 
+                                  duplicate$ 'skiplos :=
+                                             'skiplab :=
                                 }
                                 { tempstrgb input:options:add }
                               if$
@@ -2072,8 +2088,8 @@
       ctrl:set entryset empty$ or
         'skip$
         { #1 'skipbib :=
-          #1 'skiplos := 
-          #1 'skiplab := 
+          #1 'skiplos :=
+          #1 'skiplab :=
         }
       if$
       "date" date split.date
@@ -2122,7 +2138,7 @@
         { templist tempctra "{vv}" format.name$
           duplicate$ empty$
             { pop$ "" }
-            { "u" change.case$ "t" change.case$ 
+            { "u" change.case$ "t" change.case$
               delimiter.3 * }
           if$
         }
@@ -2168,8 +2184,8 @@
         { templist num.names$ #1 - 'tempctrb := }
         { templist num.names$ 'tempctrb := }
       if$
-      tempctrb ctrl.maxnames >
-        { ctrl.minnames 'tempctrb := }
+      tempctrb ctrl.maxalphanames >
+        { ctrl.minalphanames 'tempctrb := }
         'skip$
       if$
       tempctrb #1 >
@@ -2197,7 +2213,7 @@
       if$
     }
   if$
-  templist num.names$ ctrl.maxnames >
+  templist num.names$ ctrl.maxalphanames >
   templist andothers
   or
     { ctrl.alphaothers * }
@@ -2273,33 +2289,36 @@
 
 FUNCTION {makelabel:ctrl:alpha} {
   ctrl:labelalpha
-    { label empty$
-        { push:cite purify #1 #3 substring$
-          "u" change.case$ "t" change.case$ }
-        { label makelabel:alpha:year * }
-      if$
-    }
     { shorthand empty$
-        { "" }
+        { label empty$
+            { push:cite purify #1 #3 substring$
+              "u" change.case$ "t" change.case$ }
+            { label makelabel:alpha:year * }
+          if$
+        }
         { shorthand }
       if$
     }
+    { "" }
   if$
 }
 
 FUNCTION {makelabel:ctrl:alpha:format} {
   ctrl:labelalpha
-    { label empty$
-        { makelabel:alpha:format }
-        { pop$ label }
+    { shorthand empty$
+        { label empty$
+            { makelabel:alpha:format }
+            { pop$ label }
+          if$
+          makelabel:alpha:year *
+        }
+        { pop$
+          shorthand
+        }
       if$
-      makelabel:alpha:year *
     }
     { pop$
-      ctrl.labelalpha not shorthand empty$ or
-        { "" }
-        { shorthand }
-      if$
+      ""
     }
   if$
 }
@@ -2353,7 +2372,8 @@
 
 FUNCTION {labelsort:alph} {
   ctrl:labelalpha
-    { labelalpha normalize delimiter.1 *
+    { labelalpha ctrl.alphaothers ctrl.sortalphaothers str:replace
+      purify delimiter.1 *
       push:presort * delimiter.1 *
       sortkey empty$
         { ctrl.sorting #10 >
@@ -2620,8 +2640,13 @@
       labelalpha empty$
         'skip$
         { extraalpha empty$
-            { labelalpha normalize 'sortkey.alpha := }
-            { labelalpha normalize extraalpha #4 pad.number * 'sortkey.alpha := }
+            { labelalpha ctrl.alphaothers ctrl.sortalphaothers str:replace
+              purify
+              'sortkey.alpha := }
+            { labelalpha ctrl.alphaothers ctrl.sortalphaothers str:replace
+              purify
+              extraalpha #4 pad.number *
+              'sortkey.alpha := }
           if$
         }
       if$
@@ -2705,7 +2730,7 @@
 % This version corresponds to the .bbl version, *not* the biblatex version!
 FUNCTION {output:main:begin} {
   "% $ biblatex auxiliary file $"                               write$ newline$
-  "% $ biblatex bbl format version " "$Revision: 2.9 $"
+  "% $ biblatex bbl format version " "$Revision: 3.0 $"
   #12 entry.max$ substring$ #-3 entry.max$ substring$ * " $" *  write$ newline$
   "% Do not modify the above lines!"                            write$ newline$
   "%"                                                           write$ newline$
@@ -2723,7 +2748,7 @@
   "  {}"                                                        write$ newline$
   "\endgroup"                                                   write$ newline$
   newline$
-  "\datalist[entry]{" ctrl.sortstr * "/global//global/global}" *              write$
+  "\datalist[entry]{" ctrl.sortstr * "/global//global/global}" *         write$
 }
 
 FUNCTION {output:main:preamble} {

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/CHANGES.md	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/CHANGES.md	2018-11-03 21:11:01 UTC (rev 49069)
@@ -1,3 +1,125 @@
+# RELEASE NOTES FOR VERSION 3.12
+- **INCOMPATIBLE CHANGE** The syntax for defining data annotations in the
+  BibLaTeXML data source format has changed to accommodate named
+  annotations. Annotations are no longer attributes but are fully-fledged
+  elements. It is not expected that this will impact any current users.
+- **INCOMPATIBLE CHANGE** The field/fieldset argument to the `\translit`
+  command is now  mandatory to allow for a new optional argument which
+  restricts transliteration to entries with particular `langid` fields.
+- The field `sortyear` is an integer field now and not a literal. This is
+  because the `sortX` fields should be the same datatype as the `X` field
+  as sorting depends on this. This fixes an issue where years were not
+  sorted properly as integers. `sortyear` was sometimes used to tune date
+  sorting as in "1984-1", "1984-2" etc. for multi-volume collections with
+  the same year. However, this is really an abuse of the sorting template
+  system since this should be done by having a semantically more granular
+  sorting item to differentiate below the year level (typically, `volume`
+  does this for multi-volume works and this is already part of all default
+  sorting templates). The example .bib that comes with biblatex has been
+  changed to remove such `sortyear` abuses and the sorting is not impacted
+  as they examples using this already have either `volume` or `sorttitle`
+  which made this abuse of `sortyear` unnecessary anyway.
+- The field `number` is a literal field now and not an integer. This allows for
+  a wider range of possible input such as "S1", "Suppl. 1", "1-3".
+  If you want to sort by `number` and only have integers in there, you should
+  consider using a custom data model to turn `number` back into an integer type
+  field, since sorting integers as literals has performance implications and
+  might lead to undesired sorting such as "1", "10", "2".
+- **INCOMPATIBLE CHANGE** Removed the 'semi-hidden' option `noerroretextools`.
+  If you want to load `noerroretextools` now, you need to define the macro
+  `\blx at noerroretextools` instead. This can for example be done with
+  ```
+  \usepackage{etoolbox}
+  \cslet{blx at noerroretextools}\empty
+  \usepackage{biblatex}
+  ```
+  or
+  ```
+  \makeatletter
+  \let\blx at noerroretextools\@empty
+  \makeatother
+  \usepackage{biblatex}
+  ```
+  You still need to make sure that all macros used by `biblatex` are restored
+  to their `etoolbox` definitions before loading `biblatex`.
+- New macro `\abx at missing@entry` to style missing entrykeys in citations.
+- Added field format deprecation macros `\DeprecateFieldFormatWithReplacement`
+  and friends.
+- Add `\ifdateyearsequal` to check if two dates have the same year and era
+  date part. Since `year`s are always non-negative integers and the 'sign' is
+  stored as the `era`, you should use `\ifdateyearsequal` instead of a simple
+  `\iffieldequals{#1year}{#2year}` to compare years. The latter can lead to
+  undesired results if the years have opposite signs, but are otherwise the
+  same.
+- New values `part+`, `chapter+`, `section+` and `subsection+` for 'section'-
+  valued options `refsection`, `refsegment` and `citereset`. These options
+  are then executed at not only the specified level of sectioning, but also
+  all higher levels.
+- Add second optional argument to `\DeclareDelimAlias*`.
+- Allow keywords for dataonly/skipped entries as well.
+- Added `maxcitecounter`.
+- Deprecate `\labelnamepunct` in favour of the context-sensitive
+  `nametitledelim`.
+  For compatibility reasons `\labelnamepunct` still pops up in the code here
+  and there, but `nametitledelim` should be preferred now.
+- The `xstring` package is not loaded by default any more.
+  Style developers whose styles make use of that package should load it
+  explicitly.
+- `authoryear.bbx` now has a macro `bbx:ifmergeddate` that can be used to
+  check whether the date has been printed at the beginning of an entry
+  and can thus be suppressed later in the `date` and `issue+date` macros.
+  The macro works like a test and expands to the `<true>` branch if the date
+  has been merged and can be suppressed, it expands to `<false>` if the date
+  has not been merged. In practice `\printdate` should then be issued
+  if and only if the test yields false.
+
+  This change means that the definition of the `date` macro can be the same for
+  all mergedate settings and that only `bbx:ifmergeddate` is redefined for
+  each different value. No backwards compatibility issues are expected,
+  but style authors are encouraged to test the changes and see if the new
+  macro could be useful for their styles.
+- For a long time `biblatex` has defined `\enquote` if `csquotes` was not
+  loaded. This behaviour was not documented, the official command intended
+  for quotation marks was always `\mkbibquote`. Because `biblatex` should not
+  (re)define user-level commands that are not primarily associated with
+  citations or the bibliography, from this release on `\enquote` is not defined
+  any more, instead the internal command `\blx at enquote` is defined and used.
+  The same holds for `\initoquote`, `\initiquote`, `\textooquote`,
+  `\textcoquote`, `\textoiquote`, `\textciquote`.
+  `biblatex` still defines the internal commands `\@quotelevel`, `\@quotereset`
+  and `\@setquotesfcodes` if `csquotes` is not loaded.
+
+  Users are encouraged to use `csquotes` for proper quotation marks, but can
+  get back the old behaviour with
+  ```
+  \makeatletter
+  \providerobustcmd*{\enquote}{\blx at enquote}
+  \makeatother
+  ```
+  or
+  ```
+  \newrobustcmd*{\enquote}{\mkbibquote}
+  ```
+- Add new list wrapper and name wrapper formats (`\DeclareListWrapperFormat`,
+  `\DeclareNameWrapperFormat`) to style a (name) lists in its entirety.
+  This is useful because name and lists formats normally style only one
+  particular item of the list. The wrapper format can be used to easily format
+  the entire list in italics, for example.
+- `\DeclareCitePunctuationPosition` can be used to configure the punctuation
+  position for citation commands similar to the optional `position` argument
+  of `\DeclareAutoCiteCommand`.
+- If the `\pdfmdfivesum` primitive is available (via `pdftexcmds`'
+  `\pdf at mdfivesum`) the `labelprefix` value is hashed for internal use, making
+  it safer for construction of macro names and the like. If you don't like
+  that you can turn off the behaviour by redefining `\blx at mdfivesum`. The
+  fallback in case `\pdf at mdfivesum` is unavailable is
+  ```
+  \let\blx at mdfivesum\@firstofone
+  ```
+
+  As before the labelprefix value is fully expanded before use. If its contents
+  are unexpandable you need to avoid expansion with `\detokenize`.
+
 # RELEASE NOTES FOR VERSION 3.11
 - `\printbiblist` now supports `driver` and `biblistfilter` options
   to change the defaults set by the biblistname.

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/biblatex.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/biblatex.tex	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/biblatex.tex	2018-11-03 21:11:01 UTC (rev 49069)
@@ -60,7 +60,7 @@
   url={\biblatexhome},
   author={Philipp Lehman \\(with Philip Kime, Moritz Wemheuer, Audrey Boruvka and Joseph Wright)},
   email={},
-  revision={3.11},
+  revision={3.12},
   date={\today}}
 
 \hypersetup{%
@@ -183,13 +183,14 @@
 Sebastià Vila-Marta (Catalan);
 Ivo Pletikosić (Croatian);
 Michal Hoftich (Czech);
-Jonas Nyrup (Danish);
+Christian Mondrup, Jonas Nyrup (Danish);
 Johannes Wilm (Danish\slash Norwegian);
 Alexander van Loon, Pieter Belmans, Hendrik Maryns (Dutch);
-Benson Muite (Estonian);
+Kristian Kankainen, Benson Muite (Estonian);
 Hannu Väisänen, Janne Kujanpää (Finnish);
 Denis Bitouzé (French);
 Apostolos Syropoulos, Prokopis (Greek);
+Márton Marczell, Bence Ferdinandy (Hungarian);
 Baldur Kristinsson (Icelandic);
 Enrico Gregorio, Andrea Marchitelli (Italian);
 Rihards Skuja (Latvian);
@@ -198,7 +199,7 @@
 José Carlos Santos (Portuguese);
 Oleg Domanov (Russian);
 Martin Vrábel, Dávid Lupták (Slovak);
-Tea Tušar and Bogdan Filipič (Slovene);
+Tea Tušar, Bogdan Filipič (Slovene);
 Ignacio Fernández Galván (Spanish);
 Per Starbäck, Carl-Gustav Werner, Filip Åsblom (Swedish);
 Sergiy M. Ponomarenko (Ukrainian).
@@ -230,8 +231,8 @@
 \item[logreq]
 This \latex package, which is also loaded automatically, provides a frontend for writing machine-readable messages to an auxiliary log file. It is available from \acr{CTAN}.\fnurl{http://ctan.org/pkg/logreq/}
 
-\item[xstring]
-This \latex package, which is also loaded automatically, provides advanced string processing macros. It is available from \acr{CTAN}.\fnurl{http://ctan.org/pkg/xstring/}
+\item[pdftexcmds]
+This \latex package, which is loaded automatically, implements \pdftex primitives for \luatex, it also offers a unified interface for these primitives across engines. It is available from \acr{CTAN}.\fnurl{http://ctan.org/pkg/pdftexcmds/}
 
 \end{marglist}
 
@@ -335,9 +336,9 @@
 The \sty{etextools} package provides enhancements to list macros defined by \sty{etoolbox} and a few other tools for command definitions.
 The package redefines list handling macros in a way incompatible with \biblatex.
 
-If you must load the \sty{etextools} package at all costs, use the load-time option \opt{noerroretextools}.
-With \kvopt{noerroretextools}{true} no error will be issued if \sty{etextools} is loaded, that message is degraded to a warning instead.
-In that case you need to make sure that \cmd{forlistloop} has its original \sty{etoolbox} definition when \biblatex\ is loaded.
+If you must load the \sty{etextools} package at all costs, define the control sequence \cs{blx at noerroretextools} before you load \biblatex.
+If \cs{blx at noerroretextools} is defined, no error will be issued if \sty{etextools} is loaded, the message is degraded to a warning instead.
+In that case you need to make sure that all redefined macros used by \biblatex\ (currently only \cmd{forlistloop}) have their original \sty{etoolbox} definitions when \biblatex\ is loaded.
 
 \end{marglist}
 
@@ -347,7 +348,7 @@
 \biber\ versions are closely coupled with \biblatex\ versions. You
 need to have the right combination of the two. \biber\ will throw a fatal error
 during processing if it encounters information which comes from a
-\biblatex\ version which is incompatible. \tabref{tab:int:pre:bibercompat} shows a
+\biblatex\ version which is incompatible. \Tabref{tab:int:pre:bibercompat} shows a
 compatibility matrix for the recent versions.
 
 \begin{table}
@@ -492,7 +493,7 @@
 A fallback type for entries which do not fit into any other category. Use the field \bibfield{howpublished} to supply publishing information in free format, if applicable. The field \bibfield{type} may be useful as well. \bibfield{author}, \bibfield{editor}, and \bibfield{year} are omissible in terms of \secref{bib:use:key}.
 
 \reqitem{author/editor, title, year/date}
-\optitem{subtitle, titleaddon, language, howpublished, type, version, note, organization, location, date, month, year, addendum, pubstate, doi, eprint, eprintclass, eprinttype, url, urldate}
+\optitem{subtitle, titleaddon, language, howpublished, type, version, note, organization, location, month, addendum, pubstate, doi, eprint, eprintclass, eprinttype, url, urldate}
 
 \typeitem{online}
 
@@ -499,7 +500,7 @@
 An online resource. \bibfield{author}, \bibfield{editor}, and \bibfield{year} are omissible in terms of \secref{bib:use:key}. This entry type is intended for sources such as web sites which are intrinsically online resources. Note that all entry types support the \bibfield{url} field. For example, when adding an article from an online journal, it may be preferable to use the \bibtype{article} type and its \bibfield{url} field.
 
 \reqitem{author/editor, title, year/date, url}
-\optitem{subtitle, titleaddon, language, version, note, organization, date, month, year, addendum, pubstate, urldate}
+\optitem{subtitle, titleaddon, language, version, note, organization, month, addendum, pubstate, doi, eprint, eprintclass, eprinttype, urldate}
 
 \typeitem{patent}
 
@@ -506,7 +507,7 @@
 A patent or patent request. The number or record token is given in the \bibfield{number} field. Use the \bibfield{type} field to specify the type and the \bibfield{location} field to indicate the scope of the patent, if different from the scope implied by the \bibfield{type}. Note that the \bibfield{location} field is treated as a key list with this entry type, see \secref{bib:fld:typ} for details.
 
 \reqitem{author, title, number, year/date}
-\optitem{holder, subtitle, titleaddon, type, version, location, note, date, month, year, addendum, pubstate, doi, eprint, eprintclass, eprinttype, url, urldate}
+\optitem{holder, subtitle, titleaddon, type, version, location, note, month, addendum, pubstate, doi, eprint, eprintclass, eprinttype, url, urldate}
 
 \typeitem{periodical}
 
@@ -513,7 +514,7 @@
 An complete issue of a periodical, such as a special issue of a journal. The title of the periodical is given in the \bibfield{title} field. If the issue has its own title in addition to the main title of the periodical, it goes in the \bibfield{issuetitle} field. The \bibfield{editor} is omissible in terms of \secref{bib:use:key}.
 
 \reqitem{editor, title, year/date}
-\optitem{editora, editorb, editorc, subtitle, issuetitle, issuesubtitle, language, series, volume, number, issue, date, month, year, note, issn, addendum, pubstate, doi, eprint, eprintclass, eprinttype, url, urldate}
+\optitem{editora, editorb, editorc, subtitle, issuetitle, issuesubtitle, language, series, volume, number, issue, month, note, issn, addendum, pubstate, doi, eprint, eprintclass, eprinttype, url, urldate}
 
 \typeitem{suppperiodical}
 
@@ -575,7 +576,7 @@
 A work with an author and a title which has not been formally published, such as a manuscript or the script of a talk. Use the fields \bibfield{howpublished} and \bibfield{note} to supply additional information in free format, if applicable.
 
 \reqitem{author, title, year/date}
-\optitem{subtitle, titleaddon, type, eventtitle, eventtitleaddon, eventdate, venue, language, howpublished, note, location, isbn, date, month, year, addendum, pubstate, url, urldate}
+\optitem{subtitle, titleaddon, type, eventtitle, eventtitleaddon, eventdate, venue, language, howpublished, note, location, isbn, month, addendum, pubstate, url, urldate}
 
 \typeitem{xdata}
 
@@ -583,7 +584,7 @@
 
 \typeitem{custom[a--f]}
 
-Custom types for special bibliography styles. Not used by the standard styles.
+Custom types for special bibliography styles. The standard styles defined no bibliography drivers for these types.
 
 \end{typelist}
 
@@ -610,10 +611,10 @@
 
 \end{typelist}
 
-\subsubsection{Unsupported Types}
+\subsubsection{Non-standard Types}
 \label{bib:typ:ctm}
 
-The types in this section are similar to the custom types \bibtype{custom[a--f]}, \ie the standard bibliography styles provide no support for these types. When using the standard styles, they will be treated as \bibtype{misc} entries.
+The types in this section are similar to the custom types \bibtype{custom[a--f]}, \ie the standard bibliography styles provide no bibliography drivers for these types. When using the standard styles, they will therefore generally be treated as \bibtype{misc} entries---exceptions to this rule are noted in the descriptions below. The types are known to the default data model and will be happily accepted by \biber.
 
 \begin{typelist}
 
@@ -729,7 +730,7 @@
 
 \item[Range fields] consist of one or more ranges where all dashes are normalized and replaced by the command \cmd{bibrangedash}. A range is something optionally followed by one or more dashes optionally followed by some non-dash (e.g. \texttt{5--7}). Any number of consecutive dashes will only yield a single range dash. A typical example of a range field is the \bibfield{pages} field. See also the \cmd{bibrangessep} command which can be used to customise the separator between multiple ranges. Range fields will be skipped and will generate a warning if they do not consist of one or more ranges. You can normalise messy range fields before they are parsed using \cmd{DeclareSourcemap} (see \secref{aut:ctm:map}).
 
-\item[Integer fields] hold integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{extradate} or \bibfield{volume} field. Such fields are sorted as integers. \biber makes a (quite serious) effort to map non-arabic representations (roman numerals for example) to integers for sorting purposes. 
+\item[Integer fields] hold integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{extradate} or \bibfield{volume} field. Such fields are sorted as integers. \biber makes a (quite serious) effort to map non-arabic representations (roman numerals for example) to integers for sorting purposes. See the \opt{noroman} option which can be used to suppress roman numeral parsing. This can help in cases where there is an ambiguity between parsing as roman numerals or alphanumeric (e.g. <C>), see \secref{use:opt:pre:int}.
 
 \item[Datepart fields] hold unformatted integers which may be converted to ordinals or strings as they are printed. A typical example is the \bibfield{month} field. For every field of datatype \bibfield{date} in the datamodel, datepart fields are automatically created with the following names: \bibfield{$<$datetype$>$year}, \bibfield{$<$datetype$>$endyear}, \bibfield{$<$datetype$>$month}, \bibfield{$<$datetype$>$endmonth}, \bibfield{$<$datetype$>$day}, \bibfield{$<$datetype$>$endday}, \bibfield{$<$datetype$>$hour}, \bibfield{$<$datetype$>$endhour}, \bibfield{$<$datetype$>$minute}, \bibfield{$<$datetype$>$endminute}, \bibfield{$<$datetype$>$second}, \bibfield{$<$datetype$>$endsecond}, \bibfield{$<$datetype$>$timezone}, \bibfield{$<$datetype$>$endtimezone}. $<$datetype$>$ is the string preceding <date> for any datamodel field of \kvopt{datatype}{date}. For example, in the default datamodel, <event>, <orig>, <url> and the empty string <> for the date field \bibfield{date}.
 
@@ -901,7 +902,7 @@
 
 \listitem{holder}{name}
 
-The holder(s) of a \bibtype{patent}, if different from the \bibfield{author}. Not that corporate holders need to be wrapped in an additional set of braces, see \secref{bib:use:inc} for details. This list may also be useful for the custom types listed in \secref{bib:typ:ctm}.
+The holder(s) of a \bibtype{patent}, if different from the \bibfield{author}. Note that corporate holders need to be wrapped in an additional set of braces, see \secref{bib:use:inc} for details. This list may also be useful for the custom types listed in \secref{bib:typ:ctm}.
 
 \fielditem{howpublished}{literal}
 
@@ -941,7 +942,7 @@
 
 \fielditem{issue}{literal}
 
-The issue of a journal. This field is intended for journals whose individual issues are identified by a designation such as <Spring> or <Summer> rather than the month or a number. Since the placement of \bibfield{issue} is similar to \bibfield{month} and \bibfield{number}, this field may also be useful with double issues and other special cases. See also \bibfield{month}, \bibfield{number}, and \secref{bib:use:iss}.
+The issue of a journal. This field is intended for journals whose individual issues are identified by a designation such as <Spring> or <Summer> rather than the month or a number. The placement of \bibfield{issue} is similar to \bibfield{month} and \bibfield{number}, integer ranges and short designators are better written to the \bibfield{number} field. See also \bibfield{month}, \bibfield{number}, and \secref{bib:use:iss}.
 
 \fielditem{issuesubtitle}{literal}
 
@@ -1005,9 +1006,9 @@
 
 Miscellaneous bibliographic data which does not fit into any other field. The \bibfield{note} field may be used to record bibliographic data in a free format. Publication facts such as «Reprint of the edition London 1831» are typical candidates for the \bibfield{note} field. See also \bibfield{addendum}.
 
-\fielditem{number}{integer}
+\fielditem{number}{literal}
 
-The number of a journal or the volume\slash number of a book in a \bibfield{series}. See also \bibfield{issue} as well as \secref{bib:use:ser, bib:use:iss}. With \bibtype{patent} entries, this is the number or record token of a patent or patent request. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes.
+The number of a journal or the volume\slash number of a book in a \bibfield{series}. See also \bibfield{issue} as well as \secref{bib:use:ser, bib:use:iss}. With \bibtype{patent} entries, this is the number or record token of a patent or patent request. Normally this field will be an integer or an integer range, but in certain cases it may also contain «S1», «Suppl.\ 1», in these cases the output should be scrutinised carefully.
 
 \listitem{organization}{literal}
 
@@ -1131,11 +1132,11 @@
 
 \fielditem{volume}{integer}
 
-The volume of a multi"=volume book or a periodical. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes. See also \bibfield{part}.
+The volume of a multi"=volume book or a periodical. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes. See also \bibfield{part}. See the \opt{noroman} option which can be used to suppress roman numeral parsing. This can help in cases where there is an ambiguity between parsing as roman numerals or alphanumeric (e.g. <C>), see \secref{use:opt:pre:int}.
 
 \fielditem{volumes}{integer}
 
-The total number of volumes of a multi"=volume work. Depending on the entry type, this field refers to \bibfield{title} or \bibfield{maintitle}. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes.
+The total number of volumes of a multi"=volume work. Depending on the entry type, this field refers to \bibfield{title} or \bibfield{maintitle}. It is expected to be an integer, not necessarily in arabic numerals since \biber will automatically from roman numerals or arabic letter to integers internally for sorting purposes. See the \opt{noroman} option which can be used to suppress roman numeral parsing. This can help in cases where there is an ambiguity between parsing as roman numerals or alphanumeric (e.g. <C>), see \secref{use:opt:pre:int}.
 
 \fielditem{year}{literal}
 
@@ -1198,6 +1199,7 @@
              & Austria        & \opt{naustrian} \\
              & Switzerland    & \opt{nswissgerman} \\
 Greek        & Greece         & \opt{greek} \\
+Hungarian    & Hungary        & \opt{magyar}, \opt{hungarian} \\
 Icelandic    & Iceland        & \opt{icelandic} \\
 Italian      & Italy          & \opt{italian} \\
 Latvian      & Latvia         & \opt{latvian} \\
@@ -1302,9 +1304,9 @@
 
 A field used to modify the sorting order of the bibliography. If present, this field is used instead of the \bibfield{title} field when sorting the bibliography. The \bibfield{sorttitle} field may come in handy if you have an entry with a title like «An Introduction to\dots» and want that alphabetized under <I> rather than <A>. In this case, you could put «Introduction to\dots» in the \bibfield{sorttitle} field. Please refer to \secref{use:srt} for further details. This field is consumed by the backend processing and does not appear in the \path{.bbl}.
 
-\fielditem{sortyear}{literal}
+\fielditem{sortyear}{integer}
 
-A field used to modify the sorting order of the bibliography. If present, this field is used instead of the \bibfield{year} field when sorting the bibliography. Please refer to \secref{use:srt} for further details. This field is consumed by the backend processing and does not appear in the \path{.bbl}. Note that this is not an integer but rather a literal field as sometimes things like «1984-1» are used to modify temporal sorting.
+A field used to modify the sorting order of the bibliography. In the default sorting templates, if this field is present, it is used instead of the \bibfield{year} field when sorting the bibliography. Please refer to \secref{use:srt} for further details. This field is consumed by the backend processing and does not appear in the \path{.bbl}.
 
 \fielditem{xdata}{separated list of entrykeys}
 
@@ -1362,7 +1364,7 @@
 
 \fielditem{archiveprefix}{literal}
 
-An alias for \bibfield{eprinttype}, provided for arXiv compatibility. See \secref{bib:fld:dat,use:use:epr}. 
+An alias for \bibfield{eprinttype}, provided for arXiv compatibility. See \secref{bib:fld:dat,use:use:epr}.
 
 \fielditem{journal}{literal}
 
@@ -1378,7 +1380,7 @@
 
 \fielditem{primaryclass}{literal}
 
-An alias for \bibfield{eprintclass}, provided for arXiv compatibility. See \secref{bib:fld:dat,use:use:epr}. 
+An alias for \bibfield{eprintclass}, provided for arXiv compatibility. See \secref{bib:fld:dat,use:use:epr}.
 
 \listitem{school}{literal}
 
@@ -1589,7 +1591,7 @@
   ...
 \end{lstlisting}
 %
-You may add more roles by initializing and defining a new localisation key whose name corresponds to the identifier in the \bibfield{editor...type} field. See \secref{use:lng,aut:lng:cmd} for details. 
+You may add more roles by initializing and defining a new localisation key whose name corresponds to the identifier in the \bibfield{editor...type} field. See \secref{use:lng,aut:lng:cmd} for details.
 
 \subsubsection{Publication and Journal Series}
 \label{bib:use:ser}
@@ -1822,7 +1824,7 @@
 
 \paragraph{Specifying Encodings}
 \label{bib:cav:enc:enc}
-When using a non-Ascii encoding in the \file{bib} file, it is important to understand what \biblatex can do for you and what may require manual intervention. The package takes care of the \latex side, \ie it ensures that the data imported from the \file{bbl} file is interpreted correctly, provided that the \opt{bibencoding} package option is set properly. All of this is handled automatically and no further steps, apart from setting the \opt{bibencoding} option in certain cases, are required. Here are a few typical usage scenarios along with the relevant lines from the document preamble:
+When using a non-Ascii encoding in the \file{bib} file, it is important to understand what \biblatex can do for you and what may require manual intervention. The package takes care of the \latex side, \ie it ensures that the data imported from the \file{bbl} file is interpreted correctly, provided that the \opt{bibencoding} package option (or the datasource specific override for this, see \secref{use:bib:res}) is set properly. All of this is handled automatically and no further steps, apart from setting the \opt{bibencoding} option in certain cases, are required. Here are a few typical usage scenarios along with the relevant lines from the document preamble:
 
 \begin{itemize}
 \setlength{\itemsep}{0pt}
@@ -1861,7 +1863,7 @@
 \usepackage[bibencoding=latin1]{biblatex}
 \end{ltxexample}
 
-The same scenario with \xetex or \luatex in native \utf mode:
+The same scenario with \latex release 2018-04-01 or above, \xetex or \luatex in native \utf mode:
 
 \begin{ltxexample}
 \usepackage[bibencoding=latin1]{biblatex}
@@ -2043,11 +2045,11 @@
 
 \intitem[3]{maxnames}
 
-A threshold affecting all lists of names (\bibfield{author}, \bibfield{editor}, etc.). If a list exceeds this threshold, \ie if it holds more than \prm{integer} names, it is automatically truncated according to the setting of the \opt{minnames} option. \opt{maxnames} is the master option which sets both \opt{maxbibnames} and \opt{maxcitenames}.
+A threshold affecting all lists of names (\bibfield{author}, \bibfield{editor}, etc.). If a list exceeds this threshold, \ie if it holds more than \prm{integer} names, it is automatically truncated according to the setting of the \opt{minnames} option. \opt{maxnames} is the master option which sets \opt{maxbibnames}, \opt{maxcitenames} and \opt{maxsortnames}. Note that the \opt{uniquelist} feature can locally override \opt{maxnames}, see the documentation of the \opt{uniquelist} option in \secref{use:opt:pre:int} and \secref{aut:cav:amb}.
 
 \intitem[1]{minnames}
 
-A limit affecting all lists of names (\bibfield{author}, \bibfield{editor}, etc.). If a list holds more than \prm{maxnames} names, it is automatically truncated to \prm{minnames} names. The \prm{minnames} value must be smaller than or equal to \prm{maxnames}. \opt{minnames} is the master option which sets both \opt{minbibnames} and \opt{mincitenames}.
+A limit affecting all lists of names (\bibfield{author}, \bibfield{editor}, etc.). If a list holds more than \prm{maxnames} names, it is automatically truncated to \prm{minnames} names. The \prm{minnames} value must be smaller than or equal to \prm{maxnames}. \opt{minnames} is the master option which sets both \opt{minbibnames} and \opt{mincitenames}. Like \opt{maxnames} the value of \opt{minnames} can be overridden by \opt{uniquelist}.
 
 \intitem[\prm{maxnames}]{maxbibnames}
 
@@ -2061,10 +2063,19 @@
 
 Similar to \opt{maxnames} but affects only the citations in the document body.
 
+
 \intitem[\prm{minnames}]{mincitenames}
 
 Similar to \opt{minnames} but affects only the citations in the document body.
 
+\intitem[\prm{maxbibnames}]{maxsortnames}
+
+Similar to \opt{maxnames} but affects only the names visible to sorting. Since this defaults to \prm{maxbibnames}, you should set this after \opt{maxbibnames} if \opt{maxbibnames} is explicitly set.
+
+\intitem[\prm{minbibnames}]{minsortnames}
+
+Similar to \opt{minnames} but affects only the names visible to sorting. Since this defaults to \prm{minbibnames}, you should set this after \opt{minbibnames} if \opt{minbibnames} is explicitly set.
+
 \intitem[3]{maxitems}
 
 Similar to \opt{maxnames}, but affecting all literal lists (\bibfield{publisher}, \bibfield{location}, etc.).
@@ -2083,7 +2094,7 @@
 
 \optitem[autobib]{language}{\opt{autobib}, \opt{autocite}, \opt{auto}, \prm{language}}
 
-This option controls multilingual support. When set to \opt{autobib}, \opt{autocite} or \opt{auto}, \biblatex will try to get the main document language from the \sty{babel}/\sty{polyglossia} package (and fall back to English if \sty{babel}/\sty{polyglossia} is not available). It is also possible to select the package language manually. In this case, the language chosen will override the \bibfield{langid} of entries and you should still choose a language switching environment with the \opt{autolang} option to select how the switch to the manually chosen language is handled. Please refer to \tabref{bib:fld:tab1} for a list of supported languages and the corresponding identifiers. \opt{autobib} switches the language for each entry in the bibliography using the \bibfield{langid} field and the language environment specified by the \opt{autolang} option. \opt{autocite} switches the language for each citation using the \bibfield{langid} field and the language environment specified by the \opt{autolang} option. \opt{auto} is a shorthand to set both \opt{autobib} and \opt{autocite}.
+This option controls multilingual support. By default \biblatex automatically picks up the active surrounding language from the \sty{babel}/\sty{polyglossia} package (and fall back to English if \sty{babel}/\sty{polyglossia} is not available). \opt{autobib} switches the language for each entry in the bibliography using the \bibfield{langid} field and the language environment specified by the \opt{autolang} option. \opt{autocite} switches the language for each citation using the \bibfield{langid} field and the language environment specified by the \opt{autolang} option. \opt{auto} is a shorthand to set both \opt{autobib} and \opt{autocite}. It is also possible to select the package language manually. In this case, the language chosen will override the \bibfield{langid} of entries and you should still choose a language switching environment with the \opt{autolang} option to select how the switch to the manually chosen language is handled. Please refer to \tabref{bib:fld:tab1} for a list of supported languages and the corresponding identifiers.
 
 \boolitem[true]{clearlang}
 
@@ -2091,15 +2102,15 @@
 
 \optitem[none]{autolang}{\opt{none}, \opt{hyphen}, \opt{other}, \opt{other*}, \opt{langname}}
 
-This option controls which \sty{babel} language environment\footnote{\sty{polyglossia} understands the \sty{babel} language environments too and so this option controls both the \sty{babel} and \sty{polyglossia} language environments.} is used if the \sty{babel}/\sty{polyglossia} package is loaded and a bibliography entry includes a \bibfield{langid} field (see \secref{bib:fld:spc}). Note that \biblatex automatically adjusts to the main document language if \sty{babel}/\sty{polyglossia} is loaded. In multilingual documents, it will also continually adjust to the current language as far as citations and the default language of the bibliography is concerned. The effect of language adjustment depends on the language environment selected by this option. The possible choices are:
+This option controls which \sty{babel} language environment\footnote{\sty{polyglossia} understands the \sty{babel} language environments too and so this option controls both the \sty{babel} and \sty{polyglossia} language environments.} is used if the \sty{babel}/\sty{polyglossia} package is loaded and a bibliography entry includes a \bibfield{langid} field (see \secref{bib:fld:spc}). Note that regardless of the selected value \biblatex automatically adjusts to the main document language if \sty{babel}/\sty{polyglossia} is loaded. In multilingual documents, it will also continually adjust to the current language as far as citations and the default language of the bibliography is concerned. The effect of additional language adjustment, which can negate the effect of picking up the surrounding language, depends on the language environment selected by this option. The possible choices are:
 
 \begin{valuelist}
 
 \item[none]
-Disable this feature, \ie do not use any language environment at all.
+Do not use any additional enclosing language environment at all. This means that citations and the bibliography are set in the currently active language---this need not be the main language.
 
 \item[hyphen]
-Enclose the entry in a \env{hyphenrules} environment. This will load hyphenation patterns for the language specified in the \bibfield{langid} field of the entry, if available.
+Enclose the entry in a \env{hyphenrules} environment. This will load hyphenation patterns for the language specified in the \bibfield{langid} field of the entry, if available. Localisation strings and extra language definitions are not changed and taken from the surrounding language environment.
 
 \item[other]
 Enclose the entry in an \env{otherlanguage} environment. This will load hyphenation patterns for the specified language, enable all extra definitions which \sty{babel}/\sty{polyglossia} and \biblatex provide for the respective language, and translate key terms such as <editor> and <volume>. The extra definitions include localisations of the date format, of ordinals, and similar things.
@@ -2213,7 +2224,7 @@
 
 This option controls whether external files requested by way of the \cmd{printfile} command are loaded. See also \secref{use:use:prf} and \cmd{printfile} in \secref{aut:bib:dat}. Note that this feature is disabled by default for performance reasons.
 
-\optitem[none]{refsection}{\opt{none}, \opt{part}, \opt{chapter}, \opt{section}, \opt{subsection}}
+\optitem[none]{refsection}{\opt{none}, \opt{part}, \opt{chapter}, \opt{chapter+}, \opt{section}, \opt{section+}, \opt{subsection}, \opt{subsection+}}
 
 This option automatically starts a new reference section at a document division such as a chapter or a section. This is equivalent to the \cmd{newrefsection} command, see \secref{use:bib:sec} for details. The following choice of document divisions is available:
 
@@ -2221,17 +2232,20 @@
 \item[none] Disable this feature.
 \item[part] Start a reference section at every \cmd{part} command.
 \item[chapter] Start a reference section at every \cmd{chapter} command.
+\item[chapter+] Start a reference section at every \cmd{chapter} and every higher level of sectioning, i.e. \cmd{part}.
 \item[section] Start a reference section at every \cmd{section} command.
+\item[section+] Start a reference section at every \cmd{section} and every higher level of sectioning, i.e. \cmd{part} and \cmd{chapter} (if available).
 \item[subsection] Start a reference section at every \cmd{subsection} command.
+\item[subsection+] Start a reference section at every \cmd{subsection} and every higher level of sectioning, i.e. \cmd{part}, \cmd{chapter} (if available) and \cmd{section}.
 \end{valuelist}
 %
 The starred versions of these commands will not start a new reference section.
 
-\optitem[none]{refsegment}{\opt{none}, \opt{part}, \opt{chapter}, \opt{section}, \opt{subsection}}
+\optitem[none]{refsegment}{\opt{none}, \opt{part}, \opt{chapter}, \opt{chapter+}, \opt{section}, \opt{section+}, \opt{subsection}, \opt{subsection+}}
 
 Similar to the \opt{refsection} option but starts a new reference segment. This is equivalent to the \cmd{newrefsegment} command, see \secref{use:bib:seg} for details. When using both options, note that you can only apply this option to a lower"=level document division than the one \opt{refsection} is applied to and that nested reference segments will be local to the enclosing reference section.
 
-\optitem[none]{citereset}{\opt{none}, \opt{part}, \opt{chapter}, \opt{section}, \opt{subsection}}
+\optitem[none]{citereset}{\opt{none}, \opt{part}, \opt{chapter}, \opt{chapter+}, \opt{section}, \opt{section+}, \opt{subsection}, \opt{subsection+}}
 
 This option automatically executes the \cmd{citereset} command from \secref{use:cit:msc} at a document division such as a chapter or a section. The following choice of document divisions is available:
 
@@ -2418,7 +2432,7 @@
 
 \begin{valuelist}
 
-\item[auto] Try to auto-detect the input encoding. If the \sty{inputenc}\slash \sty{inputenx}\slash \sty{luainputenc} package is available, \biblatex will get the main encoding from that package. If not, it assumes \utf encoding if \xetex or \luatex has been detected, and Ascii otherwise.
+\item[auto] Try to auto-detect the input encoding. If the \sty{inputenc}\slash \sty{inputenx}\slash \sty{luainputenc} package is available, \biblatex will get the main encoding from that package. If not, it assumes \utf encoding if a \latex format using at least the April 2018 version of the kernel, \xetex or \luatex has been detected, and Ascii otherwise.
 
 \item[\prm{encoding}] Specifies the \prm{encoding} explicitly. This is for odd cases in which auto-detection fails or you want to force a certain encoding for some reason.
 
@@ -2428,7 +2442,7 @@
 
 \optitem[auto]{bibencoding}{\opt{auto}, \prm{encoding}}
 
-Specifies the encoding of the \file{bib} files. This option corresponds to \biber's \opt{--input-encoding} option. The following choices are available:
+Specifies the default encoding of the \file{bib} files. This can be overridden on a per-datasource basis using the \opt{bibencoding} option to \cmd{addbibresource}, see \secref{use:bib:res}. This option corresponds to \biber's \opt{--input-encoding} option. The following choices are available:
 
 \begin{valuelist}
 
@@ -2617,6 +2631,12 @@
 Whether or not to provide the special field \bibfield{labelnumber}, see \secref{aut:bbx:fld} for details.
 This option is also settable on a per-type basis.
 
+\boolitem[false]{noroman}
+
+Whether or not to try to parse roman numerals encountered in integer fields for sorting purposes. Since \biber also tries to parse alphanumeric values when sorting integer fields, this roman numeral parsing can be a problem when, for example, <C> is encountered as this could be a roman numeral or a simple alphanumeric string which would have a different integer value depending on how it was parsed. It is likely that this is most useful on a per-entry basis for entries that have, for example, a \bibfield{volume} field with values such as <A>, <B>, <C>, <D> which should not be parsed as roman numerals since this would give incorrect integer values for <C> and <D>.
+
+This option is also settable on a per-type and per-entry basis.
+
 \boolitem[false]{labeltitle}
 
 Whether or not to provide the special field \bibfield{extratitle}, see \secref{aut:bbx:fld} for details. Note that the special field \bibfield{labeltitle} is always provided and this option controls rather whether \bibfield{labeltitle} is used to generate \bibfield{extratitle} information. This option is also settable on a per-type basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
@@ -2627,7 +2647,7 @@
 
 \boolitem[false]{labeldateparts}
 
-Whether or not to provide the special fields \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday}, \bibfield{labelendyear}, \bibfield{labelendmonth}, \bibfield{labelendday}, \bibfield{labelhour}, \bibfield{labelendhour}, \bibfield{labelminute}, \bibfield{labelendminute}, \bibfield{labelsecond}, \bibfield{labelendsecond}, \bibfield{labelseason}, \bibfield{labelendseason}, \bibfield{labeltimezone}, \bibfield{labelendtimeone} and \bibfield{extradate}, see \secref{aut:bbx:fld} for details. 
+Whether or not to provide the special fields \bibfield{labelyear}, \bibfield{labelmonth}, \bibfield{labelday}, \bibfield{labelendyear}, \bibfield{labelendmonth}, \bibfield{labelendday}, \bibfield{labelhour}, \bibfield{labelendhour}, \bibfield{labelminute}, \bibfield{labelendminute}, \bibfield{labelsecond}, \bibfield{labelendsecond}, \bibfield{labelseason}, \bibfield{labelendseason}, \bibfield{labeltimezone}, \bibfield{labelendtimeone} and \bibfield{extradate}, see \secref{aut:bbx:fld} for details.
 This option is also settable on a per-type basis. Table \ref{use:opt:tab1} summarises the various \opt{extra*} disambiguation counters and what they track.
 
 \begin{table}
@@ -2690,7 +2710,7 @@
 \item[minfull] A variant of \texttt{full} which only disambiguates names in identical lists of base nameparts (by default, lists of family names).
 \end{valuelist}
 %
-Note that the \opt{uniquename} option will also affect \opt{uniquelist}, the \cmd{ifsingletitle} test, and the \bibfield{extradate} field. See \secref{aut:cav:amb} for further details and practical examples.
+Note that the \opt{uniquename} option will also affect \opt{uniquelist}, the \cmd{ifsingletitle} test, and the \bibfield{extradate} and \bibfield{extraname} fields. See \secref{aut:cav:amb} for further details and practical examples.
 
 \optitem[false]{uniquelist}{\opt{true}, \opt{false}, \opt{minyear}}
 
@@ -2702,7 +2722,7 @@
 \item[minyear] Disambiguate the \bibfield{labelname} list only if the truncated list is identical to another one with the same \bibfield{labelyear}. This mode of operation is useful for author-year styles and requires \kvopt{labeldateparts}{true}.
 \end{valuelist}
 %
-Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} test and the \bibfield{extradate} field. See \secref{aut:cav:amb} for further details and practical examples.
+Note that the \opt{uniquelist} option will also affect the \cmd{ifsingletitle} test and the \bibfield{extradate} and \bibfield{extraname} fields. See \secref{aut:cav:amb} for further details and practical examples.
 
 \end{optionlist}
 
@@ -2717,25 +2737,26 @@
 \multicolumn{1}{@{}H}{Enabled counter} &
 \multicolumn{1}{@{}H}{Counter tracks} \\
 \cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule{4-4}
-labelalpha     & labelalpha       & extraalpha     &  label\\
-labeldateparts & labelyear        & extradate      &  labelname+\\
-               & labelmonth       &                &  labelyear\\
-               & labelday         &                &  \\
-               & labelendyear     &                &  \\
-               & labelendmonth    &                &  \\
-               & labelendday      &                &  \\
-               & labelhour        &                &  \\
-               & labelminute      &                &  \\
-               & labelsecond      &                &  \\
-               & labelendhour     &                &  \\
-               & labelendminute   &                &  \\
-               & labelendsecond   &                &  \\
-               & labelseason      &                &  \\
-               & labelendseason   &                &  \\
-               & labeltimezone    &                &  \\
-               & labelendtimezone &                &  \\
-labeltitle     & {\rmfamily ---}  & extratitle     &  labelname+labeltitle\\
-labeltitleyear & {\rmfamily ---}  & extratitleyear &  labeltitle+labelyear\\
+labelalpha      & labelalpha       & extraalpha     &  label\\
+labeldateparts  & labelyear        & extradate      &  labelname+\\
+                & labelmonth       &                &  labelyear\\
+                & labelday         &                &  \\
+                & labelendyear     &                &  \\
+                & labelendmonth    &                &  \\
+                & labelendday      &                &  \\
+                & labelhour        &                &  \\
+                & labelminute      &                &  \\
+                & labelsecond      &                &  \\
+                & labelendhour     &                &  \\
+                & labelendminute   &                &  \\
+                & labelendsecond   &                &  \\
+                & labelseason      &                &  \\
+                & labelendseason   &                &  \\
+                & labeltimezone    &                &  \\
+                & labelendtimezone &                &  \\
+labeltitle      & {\rmfamily ---}  & extratitle     &  labelname+labeltitle\\
+labeltitleyear  & {\rmfamily ---}  & extratitleyear &  labeltitle+labelyear\\
+{\rmfamily ---} & {\rmfamily ---}  & extraname      &  labelname\\
 \bottomrule
 \end{tabularx}
 \caption{Disambiguation counters}
@@ -2781,8 +2802,8 @@
 
 \boolitem[true]{use$<$name$>$}
 
-As per \opt{useauthor}, \opt{useeditor} and \opt{usetranslator}, all name lists defined in the data model have an option controlling their behaviour in sorting and labelling automatically 
-defined. Global, per-type and per-entry options called <use$<$name$>$>are automatically created. 
+As per \opt{useauthor}, \opt{useeditor} and \opt{usetranslator}, all name lists defined in the data model have an option controlling their behaviour in sorting and labelling automatically
+defined. Global, per-type and per-entry options called <use$<$name$>$>are automatically created.
 
 \boolitem[false]{useprefix}
 
@@ -3113,7 +3134,7 @@
 %
 There are several problems with this. Firstly, it will break \bibtex's fragile name parsing routines and probably won't compile at all. Secondly, it is not only mixing up data with markup, it does so in a hard-coded way: this data can't easily be shared and used with other styles. While it is possible to achieve this formatting using \biblatex internals in a style or document, this is a complex and unreliable method which many users will not wish to use.
 
-In order to address these issues, \biblatex has a general data annotation facility which allows you to attach a comma"=separated list of annotations to data fields, items within data field lists (like names) and even parts of specific items such as parts of names (given name, family name etc.). There are macros provided to check for annotations which can be used in formatting directives.
+In order to address these issues, \biblatex has a general data annotation facility which allows you to attach any number of a comma"=separated list of annotations to data fields, items within data field lists (like names) and even parts of specific items such as parts of names (given name, family name etc.). There are macros provided to check for annotations which can be used in formatting directives.
 
 There are three «scopes» for data annotations, in order of increasing specificity:
 
@@ -3125,48 +3146,34 @@
 %
 Data annotations are supported for \bibtex and \biblatexml data sources.
 
-Attaching annotations to data is easy in \biblatexml data sources as they are specified by simple XML attributes. Continuing with the example above, we would have:
-
-\begin{lstlisting}[language=xml]
-<bltx:entries xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml">
-  <bltx:entry id="test" entrytype="misc">
-    <bltx:names type="author">
-      <bltx:name>
-        <bltx:namepart type="given" initial="F">First1</bltx:namepart>
-        <bltx:namepart type="family" initial="L" annotation="student">Last1</bltx:namepart>
-      </bltx:name>
-      <bltx:name annotation="corresponding">
-        <bltx:namepart type="given" initial="F">First2</bltx:namepart>
-        <bltx:namepart type="family" initial="L">Last2</bltx:namepart>
-      </bltx:name>
-      <bltx:name>
-        <bltx:namepart type="given" initial="F">First3</bltx:namepart>
-        <bltx:namepart type="family" initial="L">Last3</bltx:namepart>
-      </bltx:name>
-    </bltx:names>
-  </bltx:entry>
-</bltx:entries>
+\begin{lstlisting}[style=bibtex]{}
+ at MISC{ann1,
+  AUTHOR           = {Last1, First1 and Last2, First2 and Last3, First3},
+  AUTHOR+an        = {1:family=student;2=corresponding},
+  TITLE            = {The Title},
+  TITLE+an:default = {=titleannotation},
+  TITLE+an:french  = {="Le titre"},
+  TITLE+an:german  = {="Der Titel"},
+}
 \end{lstlisting}
 %
-Here the annotations are attached in an obvious way to the data items. With \bibtex data sources, the format for annotations is not quite as intuitive:
+Here the field name suffix \texttt{+an} is a user-definable\footnote{See \biber's \opt{--annotation-marker} option.} suffix which marks a data field as an annotation of the unsuffixed field. Multiple annotations can be provided for the same field since all annotations are named. After the annotation marker is the optional named annotation marker \footnote{See \biber's \opt{--named-annotation-marker} option.} and an optional annotation name. The annotation name is <default> if not specified and so in the above example the following two are equivalent:
 
 \begin{lstlisting}[style=bibtex]{}
- at MISC{ann1,
-  AUTHOR    = {Last1, First1 and Last2, First2 and Last3, First3},
-  AUTHOR+an = {1:family=student;2=corresponding},
-}
+TITLE+an         = {=titleannotation},
+TITLE+an:default = {=titleannotation},
 \end{lstlisting}
 %
-Here the field name suffix \texttt{+an} is a user-definable\footnote{See \biber's \opt{--annotation-marker} option.} suffix which marks a data field as an annotation of the unsuffixed field. The format of annotation fields in \bibtex data sources is is as follows:
+The format of annotation fields in \bibtex data sources is is as follows:
 
 \begin{lstlisting}
 <annotationspecs> ::= <annotationspec> [ ";" <annotationspec> ]
 <annotationspec>  ::= [ <itemcount> [ ":" <part> ] ] "=" <annotations>
 <annotations>     ::= <annotation> [ "," <annotation> ]
-<annotation>      ::= (string)
+<annotation>      ::= ["] (string) ["]
 \end{lstlisting}
 %
-That is, one or more specifications separated by semi-colons. Each specification is an equals sign followed by a comma"=separated list of annotation keywords. To annotation a specific item in a list, put the number of the list item before the equals sign (lists start at 1). If you need to annotate a specific part of the list item, give its name after the list item number, preceded by a colon. Name part names are defined in the data model, see \secref{aut:bbx:drv}. Some examples:
+That is, one or more specifications separated by semi-colons. Each specification is an equals sign followed by a comma"=separated list of annotation keywords or a string enclosed in double-quotes (a <literal> annotation, see below). To annotate a specific item in a list, put the number of the list item before the equals sign (lists start at 1). If you need to annotate a specific part of the list item, give its name after the list item number, preceded by a colon. Name part names are defined in the data model, see \secref{aut:bbx:drv}. Some further examples:
 
 \begin{lstlisting}[style=bibtex]{}
 AUTHOR      = {Last1, First1 and Last2, First2 and Last3, First3},
@@ -3178,28 +3185,71 @@
 }
 \end{lstlisting}
 %
-To access the annotation information when formatting bibliography data, three macros are provided, corresponding to the three annotation scopes:
+Attaching annotations to data is similar in \biblatexml data sources. Using the example above, we would have:
 
+\begin{lstlisting}[language=xml]
+<bltx:entries xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml">
+  <bltx:entry id="test" entrytype="misc">
+    <bltx:names type="author">
+      <bltx:name>
+        <bltx:namepart type="given" initial="F">First1</bltx:namepart>
+        <bltx:namepart type="family" initial="L">Last1</bltx:namepart>
+      </bltx:name>
+      <bltx:name>
+        <bltx:namepart type="given" initial="F">First2</bltx:namepart>
+        <bltx:namepart type="family" initial="L">Last2</bltx:namepart>
+      </bltx:name>
+      <bltx:name>
+        <bltx:namepart type="given" initial="F">First3</bltx:namepart>
+        <bltx:namepart type="family" initial="L">Last3</bltx:namepart>
+      </bltx:name>
+    </bltx:names>
+    </bltx:annotation field="author" item="1" part="family">student</bltx:annotation>
+    </bltx:annotation field="author" item="2">corresponding</bltx:annotation>
+  </bltx:entry>
+</bltx:entries>
+\end{lstlisting}
+%
+To access the annotation information when formatting bibliography data, macros are provided, corresponding to the three annotation scopes:
+
 \begin{ltxsyntax}
 
-\cmditem{iffieldannotation}[field]{annotation}{true}{false}
+\cmditem{iffieldannotation}[field][annotationname]{annotation}{true}{false}
 
-Executes \prm{true} if the data field \prm{field} has an annotation \prm{annotation} and false otherwise. If \prm{field} is not given, the current data field as indicated by \cmd{currentfield}, \cmd{currentlist} or \cmd{currentname} (see \secref{aut:bib:fmt}) is assumed. Of course, this is only possible if these commands are defined, that is, inside formatting directives.
+Executes \prm{true} if the data field \prm{field} has an annotation \prm{annotation} for the annotation called \prm{annotationname} and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). If \prm{field} is not given, the current data field as indicated by \cmd{currentfield}, \cmd{currentlist} or \cmd{currentname} (see \secref{aut:bib:fmt}) is assumed. Of course, this is only possible if these commands are defined, that is, inside formatting directives.
 
-\cmditem{ifitemannotation}[field][item]{annotation}{true}{false}
+\cmditem{ifitemannotation}[field][annotationname][item]{annotation}{true}{false}
 
-Executes \prm{true} if the item \prm{item} in the data field \prm{field} has an annotation \prm{annotation} and false otherwise. The optional argument \prm{field} can be inferred if not provided as with \cmd{iffieldannotation}. If \prm{item} is not given, the number of the item currently being processed as given by \cnt{listcount} is used.
+Executes \prm{true} if the item \prm{item} in the data field \prm{field} has an annotation \prm{annotation} and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The optional argument \prm{field} can be inferred if not provided as with \cmd{iffieldannotation}. If \prm{item} is not given, the number of the item currently being processed as given by \cnt{listcount} is used.
 
-\cmditem{ifpartannotation}[field][item]{part}{annotation}{true}{false}
+\cmditem{ifpartannotation}[field][annotationname][item]{part}{annotation}{true}{false}
 
-Executes \prm{true} if the part named \prm{part} in item \prm{item} in the data field \prm{field} has an annotation \prm{annotation} and false otherwise. The two optional arguments \prm{field} and \prm{item} can be inferred as in \cmd{ifitemannotation}. The parameter \prm{part} can never be inferred and is therefore a mandatory argument.
+Executes \prm{true} if the part named \prm{part} in item \prm{item} in the data field \prm{field} has an annotation \prm{annotation} and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The two optional arguments \prm{field} and \prm{item} can be inferred as in \cmd{ifitemannotation}. The parameter \prm{part} can never be inferred and is therefore a mandatory argument.
 
-Date fields are special and handled in a context where \cmd{currentfield} is not accessible. Thus there is a fourth command to access annotations for dates.
+Date fields are special and handled in a context where \cmd{currentfield} is not accessible. Thus there is a fourth command to test annotations for dates.
 
-\cmditem{ifdateannotation}{datetype}{annotation}{true}{false}
+\cmditem{ifdateannotation}[annotationname]{datetype}{annotation}{true}{false}
 
-Executes \prm{true} if the date field \prm{datetype} has an annotation \prm{annotation} and false otherwise. The \prm{datetype} argument is mandatory, because it can not be inferred in most contexts where \cmd{ifdateannotation} will be used.
+Executes \prm{true} if the date field \prm{datetype} has an annotation \prm{annotation} and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The \prm{datetype} argument is mandatory, because it cannot be inferred in most contexts where \cmd{ifdateannotation} will be used.
 
+\cmditem{hasfieldannotation}[field][annotationname]{true}{false}
+
+Executes \prm{true} if the data field \prm{field} has a literal annotation \prm{annotationname} defined and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). If \prm{field} is not given, the current data field as indicated by \cmd{currentfield}, \cmd{currentlist} or \cmd{currentname} (see \secref{aut:bib:fmt}) is assumed. Of course, this is only possible if these commands are defined, that is, inside formatting directives.
+
+\cmditem{hasitemannotation}[field][annotationname][item]{true}{false}
+
+Executes \prm{true} if the item \prm{item} in the data field \prm{field} has a literal annotation \prm{annotationname} defined and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The optional argument \prm{field} can be inferred if not provided as with \cmd{iffieldannotation}. If \prm{item} is not given, the number of the item currently being processed as given by \cnt{listcount} is used.
+
+\cmditem{haspartannotation}[field][annotationname][item]{part}{true}{false}
+
+Executes \prm{true} if the part named \prm{part} in the item \prm{item} in the data field \prm{field} has a literal annotation \prm{annotationname} defined and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The two optional arguments \prm{field} and \prm{item} can be inferred as in \cmd{ifitemannotation}. The parameter \prm{part} can never be inferred and is therefore a mandatory argument.
+
+Date fields are special and handled in a context where \cmd{currentfield} is not accessible. Thus there is a fourth command to test the existence of annotations for dates.
+
+\cmditem{hasdateannotation}[annotationname]{datetype}{true}{false}
+
+Executes \prm{true} if the date field \prm{datetype} has any annotation \prm{annotationname} defined and false otherwise. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The \prm{datetype} argument is mandatory, because it cannot be inferred in most contexts where \cmd{ifdateannotation} will be used.
+
 \end{ltxsyntax}
 %
 As an example of how to use the annotation information to solve the problem originally presented in this section, this could be used in the name formatting directives to put an asterisk after all family names annotated as «student»:
@@ -3224,6 +3274,59 @@
     {#1}}
 \end{lstlisting}
 
+\subsubsection{Literal Annotations}
+
+If the annotation is a string enclosed in double-quotes, the annotation is a <literal> annotation. In this case the annotation can be retrieved and used as a string rather than as meta-information used to determine formatting. This is useful in order to be able to attached specific annotations to data which are to be printed as-is. For example:
+
+\begin{lstlisting}[style=bibtex]{}
+AUTHOR = {{American Educational Research Association} and {American Psychological Association}
+            and {National Council on Measurement in Education}},
+AUTHOR+an = {1:family="AERA"; 2:family="APA"; 3:family="NCME"}
+}
+\end{lstlisting}
+%
+Such annotations are not keys whose presence can be tested for but are rather literal information attached to the data. The values are retrieved by the following macros
+
+\begin{ltxsyntax}
+
+\cmditem{getfieldannotation}[field][annotationname]
+
+Retrieves any literal annotation for the field \prm{field}. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). If \prm{field} is not given, the current data field as indicated by \cmd{currentfield}, \cmd{currentlist} or \cmd{currentname} (see \secref{aut:bib:fmt}) is assumed. Of course, this is only possible if these commands are defined, that is, inside formatting directives.
+
+\cmditem{getitemannotation}[field][annotationname][item]
+
+Retrieves any literal annotation for the item \prm{item} in the field \prm{field}. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The optional argument \prm{field} can be inferred if not provided as with \cmd{getfieldannotation}. If \prm{item} is not given, the number of the item currently being processed as given by \cnt{listcount} is used.
+
+\cmditem{getpartannotation}[field][annotationname][item]{part}
+
+Retrieves any literal annotation for the part \prm{part}. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The two optional arguments \prm{field} and \prm{item} can be inferred as in \cmd{getitemannotation}. The parameter \prm{part} can never be inferred and is therefore a mandatory argument.
+
+Date fields are special and handled in a context where \cmd{currentfield} is not accessible. Thus there is a fourth command to access literal annotations for dates.
+
+\cmditem{getdateannotation}[annotationname]{datetype}
+
+Retrieve a literal annotation for the datefield \prm{datetype}. If \prm{annotatationname} is not given, then the annotation named <default> is assumed (this is the name given to annotations defined without an explicit name). The \prm{datetype} argument is mandatory, because it cannot be inferred in most contexts where \cmd{getdateannotation} will be used.
+
+\end{ltxsyntax}
+%
+So, for example, given the bibliography entry above, we could put the following in the preamble:
+
+\begin{ltxexample}[style=latex]
+\renewcommand*{\mkbibnamefamily}[1]{%
+  #1\space\mkbibparens{\getpartannotation{family}}}
+\end{ltxexample}
+%
+In order to get something like this in the bibliography when formatting names:
+
+\begin{lstlisting}[style=bibtex]{}
+  American Educational Research Association (AERA) and
+  American Psychological Association (APA), and
+  National Council on Measurement in Education (NCME)
+}
+\end{lstlisting}
+%
+Naturally there are semantically more elegant ways of dealing with corporate authors without using the <family> namepart (see \secref{aut:bbx:drv}) but this example demonstrates clearly a use for literal annotations.
+
 \subsection{Bibliography Commands}
 \label{use:bib}
 
@@ -3247,9 +3350,13 @@
 
 \begin{optionlist*}
 
+\valitem{bibencoding}{bibencoding}
+
+This option can be used to override the global \opt{bibencoding} option for a particular \prm{resource}.
+
 \valitem{label}{identifier}
 
-Assigns a label to a resource. The \prm{identifier} may be used in place of the full resource name in the optional argument of \env{refsection} (see \secref{use:bib:sec}).
+Assigns a label to a resource. The \prm{identifier} may be used in place of the full resource name in the optional argument of \env{refsection} (see \secref{use:bib:sec}). The label is a \emph{unique} identifier for the \prm{resource}, so each label should only be used once.
 
 \valitem[local]{location}{location}
 
@@ -3543,7 +3650,7 @@
 
 \cmditem{DeclareBibliographyCategory}{category}
 
-Declares a new \prm{category}, to be used in conjunction with \cmd{addtocategory} and the 
+Declares a new \prm{category}, to be used in conjunction with \cmd{addtocategory} and the
 \opt{category} and \opt{notcategory} filters of \cmd{printbibliography}. This command is used in the document preamble.
 
 \cmditem{addtocategory}{category}{key}
@@ -3813,7 +3920,7 @@
 \item The citation of entry \bibfield{misc} would draw its data from the reference context with \opt{sorting=ydnt}
 \end{itemize}
 %
-In cases where the user has entries which occur in multiple bibliographies in different forms or with potentially different labels (in a numeric scheme with different \bibfield{labelprefix} values for example), it may be necessary to tell \biblatex from which reference context you wish to draw the citation information. As shown above this can be done by explicitly putting citations inside reference contexts. This can be onerous in a large document and so there is specific functionality for assigning citations to reference contexts programatically, see the \cmd{assignrefcontext*} macros below. 
+In cases where the user has entries which occur in multiple bibliographies in different forms or with potentially different labels (in a numeric scheme with different \bibfield{labelprefix} values for example), it may be necessary to tell \biblatex from which reference context you wish to draw the citation information. As shown above this can be done by explicitly putting citations inside reference contexts. This can be onerous in a large document and so there is specific functionality for assigning citations to reference contexts programatically, see the \cmd{assignrefcontext*} macros below.
 
 \begin{ltxsyntax}
 
@@ -3825,7 +3932,7 @@
 
 \valitem{sorting}{name}
 
-Specify a sorting template defined previously with \cmd{DeclareSortingTemplate}. This template is used to determine which data to retrieve and/or print for an entry in the commands inside the context. 
+Specify a sorting template defined previously with \cmd{DeclareSortingTemplate}. This template is used to determine which data to retrieve and/or print for an entry in the commands inside the context.
 
 \valitem{sortingnamekeytemplatename}{name}
 
@@ -3845,7 +3952,7 @@
 
 \valitem{labelprefix}{string}
 
-This option applies to numerical citation\slash bibliography styles only and requires that the \opt{defernumbers} option from \secref{use:opt:pre:gen} be enabled globally. Setting this option will implicitly enable \opt{resetnumbers} for the any \cmd{printbibliography} in the scope of the context (unless overridden by a user-specified value for \opt{resetnumbers}). The option assigns the \prm{string} as a prefix to all entries in the reference context. For example, if the \prm{string} is \texttt{A}, the numerical labels printed will be \texttt{[A1]}, \texttt{[A2]}, \texttt{[A3]}, etc. This is useful for subdivided numerical bibliographies where each subbibliography uses a different prefix. The \prm{string} is available to styles in the \bibfield{labelprefix} field of all affected entries. See \secref{aut:bbx:fld:lab} for details.
+This option applies to numerical citation\slash bibliography styles only and requires that the \opt{defernumbers} option from \secref{use:opt:pre:gen} be enabled globally. Setting this option will implicitly enable \opt{resetnumbers} for the any \cmd{printbibliography} in the scope of the context (unless overridden by a user-specified value for \opt{resetnumbers}). The option assigns the \prm{string} as a prefix to all entries in the reference context. For example, if the \prm{string} is \texttt{A}, the numerical labels printed will be \texttt{[A1]}, \texttt{[A2]}, \texttt{[A3]}, etc. This is useful for subdivided numerical bibliographies where each subbibliography uses a different prefix. The \prm{string} is available to styles in the \bibfield{labelprefix} field of all affected entries. Note that the \prm{string} is fully expanded, which means that you can use context-dependent macros like \cmd{thechapter}, but not unexpandable commands such as \cmd{dag}. If you need to pass unexpandable code to \prm{string}, protect it from expansion with \cmd{detokenize}. See \secref{aut:bbx:fld:lab} for details.
 
 \end{optionlist*}
 %
@@ -4573,8 +4680,8 @@
 \csitem{bibnamedash}
 The dash to be used as a replacement for recurrent authors or editors in the bibliography. The default is an <em> or an <en> dash, depending on the indentation of the list of references.
 
-\csitem{labelnamepunct}
-The separator printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined). With the default styles, this separator replaces \cmd{newunitpunct} at this location. The default definition is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation. See also \cmd{nametitledelim} \secref{use:fmt:csd}.
+\csitem{labelnamepunct}\DeprecatedMark
+A separator to be printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined) instead of \cmd{newunitpunct}. The default is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation but permits convenient reconfiguration. This punctuation command is deprecated and has been superseded by the context-sensitive \cmd{nametitledelim} (see \secref{use:fmt:csd}). For backwards compatibility reasons, however, \cmd{nametitledelim} still defaults to \cmd{labelnamepunct} in the \texttt{bib} and \texttt{biblist} contexts. Style authors may want to consider replacing \cmd{labelnampunct} with \texttt{\textbackslash printdelim\{nametitledelim\}} and users may want to prefer modifying the context-sensitive \texttt{nametitledelim} with \cmd{DeclareDelimFormat} over redefining \cmd{labelnamepunct}.
 
 \csitem{subtitlepunct}
 The separator printed between the fields \bibfield{title} and \bibfield{subtitle}, \bibfield{booktitle} and \bibfield{booksubtitle}, as well as \bibfield{maintitle} and \bibfield{mainsubtitle}. With the default styles, this separator replaces \cmd{newunitpunct} at this location. The default definition is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation.
@@ -4665,16 +4772,16 @@
 Similar to \cmd{multicitedelim}, but used by \cmd{textcite} and related commands (\secref{use:cit:cbx}). The default is a comma plus an interword space. The standard styles modify this provisional definition to ensure that the delimiter before the final citation is the localised term <and>, separated by interword spaces. See also \cmd{finalandcomma} and \cmd{finalandsemicolon} in \secref{use:fmt:lng}.
 
 \csitem{nametitledelim}\CSdelimMark
-The delimiter printed between the author\slash editor and the title by author-title and some verbose citation styles. The default definition inside bibliographies is \cmd{labelnamepunct} and is a comma plus an interword space otherwise.
+The delimiter printed between the author\slash editor and the title by author-title and some verbose citation styles and in the bibliography. In author-year bibliography styles this delimiter is placed after the author\slash editor and year and before the title. The default definition inside bibliographies is the now deprecated \cmd{labelnamepunct} and is a comma plus an interword space otherwise.
 
 \csitem{nameyeardelim}\CSdelimMark
-The delimiter printed between the author\slash editor and the year by author-year citation styles. The default definition is an interword space. 
+The delimiter printed between the author\slash editor and the year by author-year citation and bibliography styles. The default definition is an interword space.
 
 \csitem{namelabeldelim}\CSdelimMark
 The delimiter printed between the name\slash title and the label by alphabetic and numeric citation styles. The default definition is an interword space.
 
 \csitem{nonameyeardelim}\CSdelimMark
-The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation styles. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used. The default definition is an interword space.
+The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation and bibliography styles. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used. The default definition is an interword space.
 
 \csitem{authortypedelim}\CSdelimMark
 The delimiter printed between the author and the \texttt{authortype}.
@@ -4767,11 +4874,23 @@
 Declares the delimiter macros in the comma"=separated list \prm{names} with the replacement test \prm{code}. If the optional comma"=separated list of \prm{contexts} is given, declare the \prm{names} only for those contexts. \prm{names} defined without any \prm{contexts} behave just like the global delimiter definitions which \cmd{newcommand} gives---just a plain macro with a replacement which can be used as \cmd{name}. However, you can also call delimiter macros defined in this way by using \cmd{printdelim}, which is context-aware. The starred version clears all \prm{context} specific declarations for all \prm{names} first.
 
 \cmditem{DeclareDelimAlias}{alias}{delim}
-\cmditem*{DeclareDelimAlias}*[context, \dots]{alias}{delim}
+\cmditem*{DeclareDelimAlias}*[alias context, \dots]{alias}[delim context]{delim}
 
-Declares \prm{alias} to be an alias for the delimiter \prm{delim}. The assigment is valid for all existing contexts of \prm{alias}.
-The starred version assigns the alias for the given \opt{contexts} only---if the optional argument is empty, assigment is for the global/empty context.
+Declares \prm{alias} to be an alias for the delimiter \prm{delim}. The assigment is performed for all existing contexts of the target \prm{delim}.
+The starred version assigns the alias for specific contexts only. The first optional argument \prm{alias context} holds a list of contexts for which the assignment is going to be performed. If it is empty or missing the global/empty context is assumed. The second optional argument \prm{delim context} specifies the context of the target delimiter. This argument may not be a list, it can only hold one context. If it is missing the \prm{alias context} is assumed (if \prm{alias context} is a list, the assignment is performed separately for each list item), if it is empty the global context is used.
 
+\begin{ltxexample}[style=latex]
+\DeclareDelimAlias*[bib,biblist]{finalnamedelim}[]{multinamedelim}
+\end{ltxexample}
+%
+Defines the \opt{bib} and \opt{biblist} contexts of \cmd{finalnamedelim} as aliases of \cmd{multinamedelim} in global context.
+On the other hand
+\begin{ltxexample}[style=latex]
+\DeclareDelimAlias*[bib,biblist]{finalnamedelim}{multinamedelim}
+\end{ltxexample}
+%
+defines \cmd{finalnamedelim} in the context \opt{bib} to be an alias of \cmd{multinamedelim} in the \opt{bib} context and defines \cmd{finalnamedelim} in \opt{biblist} context to be an alias of \cmd{multinamedelim} in \opt{biblist}.
+
 \cmditem{printdelim}[context]{name}
 
 Prints a delimiter with name \prm{name}, locally establishing a optional \prm{context} first. Without the optional \prm{context}, \cmd{printdelim} uses the currently active delimiter context.
@@ -4801,7 +4920,7 @@
 \begin{ltxexample}[style=latex]
 \DeclareDelimcontextAlias{cbx at textcite}{textcite}
 \end{ltxexample}
-% 
+%
 This (which is a default setting), makes sure that when inside the
 \cmd{cbx at textcite} citation command, the context is in fact \opt{textcite}
 as expected.
@@ -4812,7 +4931,7 @@
 
 \begin{description}
 \item[none] At begin document
-\item[bib] Inside a bibliography begun with \cmd{printbibliography} or inside a \cmd{usedriver} 
+\item[bib] Inside a bibliography begun with \cmd{printbibliography} or inside a \cmd{usedriver}
 \item[biblist] Inside a bibliography list begun with \cmd{printbiblist}
 \item[<citecommand>] Inside a citation command \cmd{citecommand} defined with \cmd{DeclareCiteCommand}
 \end{description}
@@ -4821,10 +4940,11 @@
 
 \begin{ltxexample}[style=latex]
 \DeclareDelimFormat{nametitledelim}{\addcomma\space}
+\DeclareDelimFormat[bib,biblist]{nametitledelim}{\labelnamepunct}
 \DeclareDelimFormat[textcite]{nametitledelim}{\addspace}
 \end{ltxexample}
 %
-This means that \cmd{nametitledelim} is defined globally as <\cmd{addcomma}\cmd{space}> as per the standard delimiter interface. However, in addition, the delimiter can be printed using \cmd{printdelim} which would print the same as \cmd{nametitledelim} apart from inside a \cmd{textcite}, in which it would print \cmd{addspace} which is more suitable for running text. If desired, a context can be forced with the optional argument to \cmd{printdelim}, so
+This means that \cmd{nametitledelim} is defined globally as <\cmd{addcomma}\cmd{space}> as per the standard delimiter interface. However, in addition, the delimiter can be printed using \cmd{printdelim} which would print the same as \cmd{nametitledelim} apart from inside a \cmd{textcite}, in which it would print \cmd{addspace} which is more suitable for running text, and in a bibliography (list) in which it takes the value of \cmd{labelnamepunct} for compatibility reasons. If desired, a context can be forced with the optional argument to \cmd{printdelim}, so
 
 \begin{ltxexample}[style=latex]
 \printdelim[textcite]{nametitledelim}
@@ -5031,7 +5151,7 @@
 
 \cmditem{mknumalph}{integer}
 
-Takes an integer in the range 1--702 as its argument and converts it to a string as follows: 1=a, \textellipsis, 26=z, 27=aa, \textellipsis, 702=zz. This is intended for use in formatting directives for the \bibfield{extradate} and \bibfield{extraalpha} fields.
+Takes an integer in the range 1--702 as its argument and converts it to a string as follows: 1=a, \textellipsis, 26=z, 27=aa, \textellipsis, 702=zz. This is intended for use in formatting directives for the \bibfield{extradate}, \bibfield{extraname} and \bibfield{extraalpha} fields.
 
 \cmditem{mkbibacro}{text}
 
@@ -5069,7 +5189,7 @@
 \subsubsection{Bulgarian}
 \label{use:loc:bul}
 
-Like the Greek localisation module, the Bulgarian module also requires \utf support. It will not work with any other encoding. 
+Like the Greek localisation module, the Bulgarian module also requires \utf support. It will not work with any other encoding.
 
 \subsubsection{American}
 \label{use:loc:us}
@@ -5122,8 +5242,14 @@
 \subsubsection{Russian}
 \label{use:loc:rus}
 
-Like the Greek localisation module, the Russian module also requires \utf support. It will not work with any other encoding. 
+Like the Greek localisation module, the Russian module also requires \utf support. It will not work with any other encoding.
 
+\subsubsection{Hungarian}
+\label{use:loc:hun}
+
+The Hungarian localisation module needs to redefine certain field formats to obtain the grammatically correct word order. This means that these field formats are overwritten whenever the Hungarian localisation is active, no matter whether they were defined in the preamble or by a custom style. So please be aware that using the Hungarian localisation module may cause the bibliography output to deviate from the format dictated by the loaded style and preamble definitions. Changes to this behaviour need to be made using \cmd{DefineBibliographyExtras}. In particular \cmd{mkpageprefix} is redefined to output the page number as a prefix following Hungarian convention, and all formats of fields involving pages were modified so that page ranges are printed as ordinal ranges. The Hungarian localisation module will print a warning to remind you of these changes whenever it is loaded in a document. The warning tells you how to silence it.
+
+
 \subsection{Usage Notes}
 \label{use:use}
 
@@ -5733,7 +5859,7 @@
 
 To utilise all of the features described here, \biblatex must be used with the
 \biber program as a backend. Indeed, the documentation in general assumes this. However, for a \emph{limited} subset of use cases it is possible to use the
-long-established \bibtex program (either the 7-bit \texttt{bibtex} or 
+long-established \bibtex program (either the 7-bit \texttt{bibtex} or
 8-bit \texttt{bibtex8}) as the supporting backend. This works in much the
 same way as for \biber with the only proviso being that \bibtex is much more
 limited as a backend.
@@ -5741,7 +5867,7 @@
 Using \bibtex as the backend requires that the option \opt{backend=bibtex}
 or \opt{backend=bibtex8} is given at load time. The \biblatex package will
 then write appropriate data for use by \bibtex into the auxiliary file(s)
-and a special data file (automatically included in those to be read by 
+and a special data file (automatically included in those to be read by
 \bibtex).  The \bibtex(8) program should then be run on each auxiliary file:
 \biblatex will list all of the required files in the log.
 
@@ -5833,8 +5959,8 @@
   {}{{0}{}{book}{1994}{}{}{}{}{Reading, Mass.\bpubaddr{}Addison-Wesley%
   \bibbdsep{} 1994}}{{The LaTeX Companion}{}{}{2}{}{}{}{}{}}{\bibnf
   {Goossens}{Michel}{M.}{}{}\Bibbfsasep\bibnf{Mittelbach}{Frank}{F.}%
-  {}{}\Bibbstasep\bibnf{Samarin}{Alexander}{A.}{}{}}{\bibtfont{The 
-  LaTeX Companion}.\ \apyformat{Reading, Mass.\bpubaddr{} 
+  {}{}\Bibbstasep\bibnf{Samarin}{Alexander}{A.}{}{}}{\bibtfont{The
+  LaTeX Companion}.\ \apyformat{Reading, Mass.\bpubaddr{}
   Addison-Wesley\bibbdsep{} 1994}}}
 \end{ltxexample}
 %
@@ -5857,7 +5983,7 @@
 
 \begin{enumerate}
 
-\item Run \bin{latex}: The first step is similar to the traditional procedure described above: \cmd{bibstyle} and \cmd{bibdata} commands are written to th \file{bcf} file, along with \cmd{citation} commands for all citations. We then wait for the backend to supply the required data. 
+\item Run \bin{latex}: The first step is similar to the traditional procedure described above: \cmd{bibstyle} and \cmd{bibdata} commands are written to th \file{bcf} file, along with \cmd{citation} commands for all citations. We then wait for the backend to supply the required data.
 
 \item Run \bin{biber}: The backend supplies those entries from the \file{bib} file which were requested by the \cmd{citation} commands in the auxiliary file. However, it does not write a printable bibliography to the \file{bbl} file, but rather a structured representation of the bibliographic data. Just like an \file{aux} file, this \file{bbl} file does not print anything when read in. It merely puts data in memory.
 
@@ -5956,7 +6082,7 @@
 
 \cmditem{DeclareBibliographyOption}[datatype]{key}[value]{code}
 
-This command defines additional preamble options in \keyval format. The \prm{key} is the option key. The \prm{code} is arbitrary \tex code to be executed whenever the option is used. The value passed to the option is passed on to the \prm{code} as |#1|. The optional \prm{value} is a default value to be used if the bare key is given without any value. This is useful for boolean switches. 
+This command defines additional preamble options in \keyval format. The \prm{key} is the option key. The \prm{code} is arbitrary \tex code to be executed whenever the option is used. The value passed to the option is passed on to the \prm{code} as |#1|. The optional \prm{value} is a default value to be used if the bare key is given without any value. This is useful for boolean switches.
 The \prm{datatype} is a the datatype for the option. If omitted, it defaults to <boolean>. For example, with a definition like the following:
 
 \begin{ltxexample}
@@ -6080,7 +6206,7 @@
     {}}
 \end{ltxexample}
 %
-Formatting directives for names are similar to those for literal lists. 
+Formatting directives for names are similar to those for literal lists.
 
 Names depend on the datamodel constant <nameparts> which has the default definition:
 
@@ -6109,14 +6235,14 @@
 
 Note these per-namepart uniqueness macros are essentially an override of the \opt{uniquename} value (see \secref{aut:aux:tst}) for the name as a whole. Styles can choose to use either the less granular \opt{uniquename} value or the more detailed per-namepart values. Usually the general \opt{uniquename} value is enough for ordinary Western names but the more granular information per-namepart is provided to allow sophisticated name uniqueness processing for more complex name schemata.
 
-The name formatting directive is executed once for each name in the name list. Here is an example:
+The name formatting directive is executed once for each name in the name list. Here is a simplified example---the standard name formats are more intricate:
 
 \begin{ltxexample}
 \DeclareNameFormat{author}{%
   \ifthenelse{\value{listcount}=1}
     {\namepartfamily%
-     \ifblank{\namepartgiven}{}{\addcomma\space\namepartgiven}}
-    {\ifblank{\namepartgiven}{}{\namepartgiven\space}%
+     \ifdefvoid{\namepartgiven}{}{\addcomma\space\namepartgiven}}
+    {\ifdefvoid{\namepartgiven}{}{\namepartgiven\space}%
      \namepartfamily}%
   \ifthenelse{\value{listcount}<\value{liststop}}
     {\addcomma\space}
@@ -6123,8 +6249,13 @@
     {}}
 \end{ltxexample}
 %
-The above directive reverses the name of the first author («Family, Given») and prints the remaining names in their regular sequence («Given Family»). Note that the only component which is guaranteed to be available is the family name, hence we have to check which parts of the name are actually present. If a certain name part is not available, the corresponding macro will be empty. As with directives for literal lists, the separator to be inserted between the individual items in the name list is also handled by the formatting directive, hence we have to check whether we are in the middle of the list or at the end when inserting it. This is what the second \cmd{ifthenelse} test does.
+The above directive reverses the name of the first author («Family, Given») and prints the remaining names in their regular sequence («Given Family»). Note that the only component which is guaranteed to be available is the family name, hence we have to check which parts of the name are actually present. If a certain name part is not available, the corresponding macro will be empty. As with directives for literal lists, the separator to be inserted between the individual items in the name list is also handled by the formatting directive, hence we have to check whether we are in the middle of the list or at the end when inserting it. This is what the second \cmd{ifthenelse} test does. See also \secref{aut:bib:fmt}.
 
+A similar output that also respects the \cmd{multinamedelim} and \cmd{finalnamedelim} commands as well as the <prefix> and <suffix> name parts can be achieved with
+\begin{ltxexample}
+\DeclareNameAlias{author}{family-given/given-family}
+\end{ltxexample}
+
 \subsubsection{Special Fields}
 \label{aut:bbx:fld}
 
@@ -6158,7 +6289,7 @@
 
 \fielditem{entrykey}{string}
 
-The entry key of an item in the \file{bib} file. This is the string used by \biblatex and the backend to identify an entry in the \file{bib} file. 
+The entry key of an item in the \file{bib} file. This is the string used by \biblatex and the backend to identify an entry in the \file{bib} file.
 
 \fielditem{childentrykey}{string}\DeprecatedMark
 
@@ -6264,7 +6395,7 @@
 
 \fielditem{clonesourcekey}{string}
 
-This field holds the entry key of the entry from which an entry was cloned. Clones are created for 
+This field holds the entry key of the entry from which an entry was cloned. Clones are created for
 entries which are mentioned in \bibfield{related} fields as part of related entry processing, for example.
 
 \fielditem{urlraw}{verbatim}
@@ -6290,6 +6421,10 @@
 The name to be printed in citations. This list is a copy of either the \bibfield{shortauthor}, the \bibfield{author}, the \bibfield{shorteditor}, the \bibfield{editor}, or the \bibfield{translator} list, which are normally checked for in this order. If no authors and editors are available, this list is undefined. Note that this list is also responsive to the \opt{use$<$name$>$}, options, see \secref{use:opt:bib}. Citation styles should use this list when printing the name in a citation. This list is provided for convenience only and does not carry any additional meaning.
 This field may be customized. See \secref{aut:ctm:fld} for details.
 
+\fielditem{extraname}{integer}
+
+Holds a count of the number of bibliography entries within a refsection which derive from the same \bibfield{labelname} list. This counter takes account of \opt{uniquename} settings (see \secref{use:opt:pre:int}). While not used by any standard styles, this field is useful in styles which wish to number bibliography entries on a per-\bibfield{labelname} basis. This field will only exist if there is a \bibfield{labelname}. The \bibfield{extraname} counter is related to, but conceptually different from \cmd{ifsingletitle} (see \secref{use:opt:pre:int} and \secref{aut:aux:tst}).
+
 \fielditem{labelnumber}{literal}
 
 The number of the bibliography entry, as required by numeric citation schemes. If the \bibfield{shorthand} field is defined, \biblatex does not assign a number to the respective entry. In this case \bibfield{labelnumber} is the shorthand rather than a number. Numeric styles must use the value of this field instead of a counter. Note that this field needs to be requested with the package option \opt{labelnumber}, see \secref{use:opt:pre:int} for details. Also see the package option \opt{defernumbers} in \secref{use:opt:pre:gen}.
@@ -6845,9 +6980,23 @@
 A definition provided in the document preamble can be subsequently adopted with the following: (see \secref{use:cfg:opt}).
 
 \begin{ltxexample}
-\ExecuteBibliographyOptions{autocite=<<name>>} 
+\ExecuteBibliographyOptions{autocite=<<name>>}
 \end{ltxexample}
 
+\cmditem{DeclareCitePunctuationPosition}{command}{position}
+
+Set up the cite command \prm{command} to move punctuation marks after the citation like \cmd{autocite}. The \prm{position} argument can take the values \opt{r}, \opt{l}, \opt{f}, \opt{c}, \opt{o} and \opt{d}.
+If an unknown \prm{position} identifier is used, it defaults to \opt{o}.
+\begin{valuelist}
+\item[r] The punctuation mark is not moved and remains to the right of the citation.
+\item[l] The punctuation mark is moved to the left of the citation and thus appears before it.
+\item[f] Like \opt{r} in footnotes and like \opt{l} otherwise.
+\item[c] Pass the punctuation on to the internal implementation of the citation commands. It will then be executed within the \prm{wrapper} command if given.
+\item[o] Retain the default set-up of \opt{c} for citation defined commands without \prm{wrapper} command and \opt{l} for citation commands defined with a \prm{wrapper} command.
+\item[d] Drop the explicit punctuation mark. It will only be available as the field \bibfield{postpunct}.
+\end{valuelist}
+%
+This command can not be used for \cmd{autocite}, to configure \cmd{autocite} use the optional \prm{position} argument for \cmd{DeclareAutoCiteCommand}.
 \end{ltxsyntax}
 
 \subsubsection{Special Fields}
@@ -6896,7 +7045,7 @@
 \cmditem{DeprecateName}{name}{message}
 
 When an attempt is made to print \prm{field}, \prm{list}, \prm{name}, a
-deprecation warning issued with the additional \prm{message}.  This aids
+deprecation warning is issued with the additional \prm{message}.  This aids
 style authors who are changing field names in their style. Note that the
 deprecated item must no longer be defined in the datamodel for this work;
 \prm{field}, \prm{list} or \prm{name} cannot be listed anywhere as an
@@ -7020,12 +7169,12 @@
 
 \cmditem{DeclareListInputHandler}{list}{code}
 
-As \cmd{DeclareFieldInputHandler} but for lists. Within the \prm{code}, the macro \cmd{NewValue} 
+As \cmd{DeclareFieldInputHandler} but for lists. Within the \prm{code}, the macro \cmd{NewValue}
 contains the value of the list and \cmd{NewCount} contains the number of items in the list.
 
 \cmditem{DeclareNameInputHandler}{name}{code}
 
-As \cmd{DeclareFieldInputHandler} but for names. Within the \prm{code}, the macro \cmd{NewValue} 
+As \cmd{DeclareFieldInputHandler} but for names. Within the \prm{code}, the macro \cmd{NewValue}
 contains the value of the name, \cmd{NewCount} contains the number of individual names in the name and \cmd{NewOption} contains any per-name options passed in the \file{.bbl}.
 
 \end{ltxsyntax}
@@ -7075,6 +7224,16 @@
 %
 If a certain part of a name is not available, the corresponding macro will be empty, hence you may use, for example, the \sty{etoolbox} tests like \cmd{ifdefvoid} to check for the individual parts of a name. The name of the name list currently being processed is available to the \prm{code} as \cmd{currentname}. Note that the formatting directive also handles the punctuation to be inserted between separate names and between the individual parts of a name. You need to check whether you are in the middle of or at the end of the list, \ie whether \cnt{listcount} is smaller than or equal to \cnt{liststop}. See also \secref{use:cav:nam}. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. \emph{Do not put any whitespace between the arguments to this macro as the definitions are quite complex and you will get unexpected results}.
 
+\cmditem{DeclareListWrapperFormat}[entrytype, \dots]{format}{code}
+\cmditem*{DeclareListWrapperFormat}*{format}{code}
+
+Defines the list wrapper format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed once for the entire list processed by \cmd{printlist}. The name of the literal list currently being processed is available to the \prm{code} as \cmd{currentlist}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared.
+
+\cmditem{DeclareNameWrapperFormat}[entrytype, \dots]{format}{code}
+\cmditem*{DeclareNameWrapperFormat}*{format}{code}
+
+Defines the list wrapper format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed once for the entire name list processed by \cmd{printnames}. The name of the literal list currently being processed is available to the \prm{code} as \cmd{currentname}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared.
+
 \cmditem{DeclareIndexFieldFormat}[entrytype, \dots]{format}{code}
 \cmditem*{DeclareIndexFieldFormat}*{format}{code}
 
@@ -7090,6 +7249,17 @@
 
 Defines the name list format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed for every name in a list processed by \cmd{indexnames}. The name of the name list currently being processed is available to the \prm{code} as \cmd{currentname}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. The parts of the name will be passed to the \prm{code} as separate arguments. This command is very similar to \cmd{DeclareNameFormat} except that the data handled by the \prm{code} is not intended to be printed but written to the index. Note that \cmd{indexnames} will execute the \prm{code} as is, \ie the \prm{code} must include \cmd{index} or a similar command. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared.
 
+\cmditem{DeclareIndexListWrapperFormat}[entrytype, \dots]{format}{code}
+\cmditem*{DeclareIndexListWrapperFormat}*{format}{code}
+
+Similar to \cmd{DeclareIndexListFormat} but for the list format used for indices.
+
+
+\cmditem{DeclareIndexNameWrapperFormat}[entrytype, \dots]{format}{code}
+\cmditem*{DeclareIndexNameWrapperFormat}*{format}{code}
+
+Similar to \cmd{DeclareIndexNameFormat} but for the name list format used for indices.
+
 \cmditem{DeclareFieldAlias}[entry type]{alias}[format entry type]{format}
 
 Declares \prm{alias} to be an alias for the field format \prm{format}. If an \prm{entrytype} is specified, the alias is specific to that type. The \prm{format entry type} is the entry type of the backend format. This is only required when declaring an alias for a type"=specific formatting directive.
@@ -7102,6 +7272,14 @@
 
 Declares \prm{alias} to be an alias for the name list format \prm{format}. If an \prm{entrytype} is specified, the alias is specific to that type. The \prm{format entry type} is the entry type of the backend format. This is only required when declaring an alias for a type"=specific formatting directive.
 
+\cmditem{DeclareListWrapperAlias}[entry type]{alias}[format entry type]{format}
+
+Declares \prm{alias} to be an alias for the outer list format \prm{format}. If an \prm{entrytype} is specified, the alias is specific to that type. The \prm{format entry type} is the entry type of the backend format. This is only required when declaring an alias for a type"=specific formatting directive.
+
+\cmditem{DeclareNameWrapperAlias}[entry type]{alias}[format entry type]{format}
+
+Declares \prm{alias} to be an alias for the outer name list format \prm{format}. If an \prm{entrytype} is specified, the alias is specific to that type. The \prm{format entry type} is the entry type of the backend format. This is only required when declaring an alias for a type"=specific formatting directive.
+
 \cmditem{DeclareIndexFieldAlias}[entry type]{alias}[format entry type]{format}
 
 Declares \prm{alias} to be an alias for the field format \prm{format}. If an \prm{entrytype} is specified, the alias is specific to that type. The \prm{format entry type} is the entry type of the backend format. This is only required when declaring an alias for a type"=specific formatting directive.
@@ -7114,6 +7292,54 @@
 
 Declares \prm{alias} to be an alias for the name list format \prm{format}. If an \prm{entrytype} is specified, the alias is specific to that type. The \prm{format entry type} is the entry type of the backend format. This is only required when declaring an alias for a type"=specific formatting directive.
 
+\cmditem{DeclareIndexListWrapperAlias}[entrytype, \dots]{format}{code}
+
+Similar to \cmd{DeclareIndexListFormat} but for the list format used for indices.
+
+\cmditem{DeclareIndexNameWrapperAlias}[entrytype, \dots]{format}{code}
+
+Similar to \cmd{DeclareIndexNameFormat} but for the name list format used for indices.
+
+\cmditem{DeprecateFieldFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Declares \prm{alias} to be an alias for the name list format \prm{format} and issue a deprecation warning. If an \prm{entrytype} is specified, the alias is specific to that type. The \prm{format entry type} is the entry type of the backend format. This is only required when declaring an alias for a type"=specific formatting directive.
+
+\cmditem{DeprecateListFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for list formats.
+
+\cmditem{DeprecateNameFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for name formats.
+
+\cmditem{DeprecateListWrapperFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for outer list formats.
+
+\cmditem{DeprecateNameWrapperFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for outer name formats.
+
+\cmditem{DeprecateIndexFieldFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for index field formats.
+
+\cmditem{DeprecateIndexListFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for index list formats.
+
+\cmditem{DeprecateIndexNameFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for index name formats.
+
+\cmditem{DeprecateIndexListWrapperFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for index list formats.
+
+\cmditem{DeprecateIndexNameWrapperFormatWithReplacement}[entry type]{alias}[format entry type]{format}
+
+Similar to \cmd{DeprecateFieldFormatWithReplacement} but for index name formats.
+
 \end{ltxsyntax}
 
 \subsection{Customization}
@@ -7149,7 +7375,7 @@
 
 \cmditem{DeclareDatafieldSet}{name}{specification}
 
-Declare a set of datasource fields with name \prm{name}. 
+Declare a set of datasource fields with name \prm{name}.
 
 \begin{optionlist*}
 
@@ -7263,7 +7489,7 @@
 
 Loop over all \cmd{step}s in this \cmd{map}, setting the special variable |$MAPLOOP| %$
 to each of the comma-separated values contained in \prm{loopval}. \prm{loopval} can either be the name of a datafield set defined with \cmd{DeclareDatafieldSet} (see \secref{aut:ctm:dsets}), a datasource field which is fetched and parsed as a comma"=separated values list or an explicit comma"=separated values list. \prm{loopval} is determined in this order. This allows the user to repeat a group of \cmd{step}s for each value \prm{loopval}. Using regexp maps, it is possible to create a CSV field for use with this functionality. The special variable |$MAPUNIQ| %$
-may also be used the \cmd{step}s to generate a random unique string. This can be useful when creating keys for new entries. An example:
+may also be used in the \cmd{step}s to generate a random unique string. This can be useful when creating keys for new entries. An example:
 
 \begin{ltxexample}[style=latex]
 \DeclareSourcemap{
@@ -7306,7 +7532,9 @@
 \valitem{notfield}{entryfield}
 \valitem{fieldtarget}{entryfield}
 \valitem{match}{regexp}
+\valitem{matchi}{regexp}
 \valitem{notmatch}{regexp}
+\valitem{notmatchi}{regexp}
 \valitem{replace}{regexp}
 \valitem{fieldset}{entryfield}
 \valitem{fieldvalue}{string}
@@ -7329,10 +7557,10 @@
 
 \begin{itemize}
 \item If \texttt{entrynew} is set, a new entry is created with the entry key \texttt{entrynewkey} and the entry type given in the option \texttt{entrynewtype}. This
-  entry is only in-scope during the processing of the current entry and can be referenced by   
-  \texttt{entrytarget}.  In \texttt{entrynewkey}, you may use standard Perl regular expression 
+  entry is only in-scope during the processing of the current entry and can be referenced by
+  \texttt{entrytarget}.  In \texttt{entrynewkey}, you may use standard Perl regular expression
   backreferences to captures from a  previous \texttt{match} step.
-\item When a \texttt{fieldset} step has \texttt{entrytarget} set to the entrykey of an entry 
+\item When a \texttt{fieldset} step has \texttt{entrytarget} set to the entrykey of an entry
   created by \texttt{entrynew}, the target for the field set will be the \texttt{entrytarget} entry
   rather than the entry being currently processed. This allows users to create new entries and set
   fields in them.
@@ -7345,10 +7573,10 @@
   select the entries which you want to apply this to using prior
   mapping steps.
 \item If \texttt{entryclone} is set, a clone of the entry is created with an entry key
-  \texttt{clonekey}. Obviously this may cause labelling problems in author/year styles etc.  
-  and should be used with care. The cloned entry is in-scope during the processing of the 
-  current entry and can be modified by passing its key as the value to \texttt{entrytarget}. 
-  In \texttt{clonekey}, you may use standard Perl regular expression backreferences to 
+  \texttt{clonekey}. Obviously this may cause labelling problems in author/year styles etc.
+  and should be used with care. The cloned entry is in-scope during the processing of the
+  current entry and can be modified by passing its key as the value to \texttt{entrytarget}.
+  In \texttt{clonekey}, you may use standard Perl regular expression backreferences to
   captures from a previous \texttt{match} step.
 \item Change the \texttt{typesource} \prm{entrytype} to the
   \texttt{typetarget} \prm{entrytype}, if defined. If
@@ -7356,10 +7584,12 @@
 \item Change the \texttt{fieldsource} \prm{entryfield} to
   \texttt{fieldtarget}, if defined. If
   \texttt{final} is \texttt{true} then if there is no \texttt{fieldsource} \prm{entryfield} in the entry, processing of the parent \cmd{map} immediately terminates.
-\item If \texttt{notfield} is used then only apply the step if the \prm{entryfield} does not exist.
+\item If \texttt{notfield} is true only if the \prm{entryfield} does not
+  exist. Usually used with \texttt{final} so that if an entry does contain
+  \prm{entryfield}, the map terminates.
 \item If \texttt{match} is defined but
   \texttt{replace} is not, only apply the step if the \texttt{fieldsource} \prm{entryfield} matches the
-  \texttt{match} regular expression (logic is reversed if you use \texttt{notmatch} instead)\footnote{Regular expressions are full Perl 5.16 regular expressions. This means you may need to deal with special characters, see examples.}. You may use capture parenthesis as usual and refer to these (\$1\ldots\$9) in later \texttt{fieldvalue} specifications. This allows you to pull out parts of some fields and put these parts in other fields.
+  \texttt{match} regular expression (logic is reversed if you use \texttt{notmatch} and case-insensitive if you use the versions ending in <i>)\footnote{Regular expressions are full Perl 5.16 regular expressions. This means you may need to deal with special characters, see examples.}. You may use capture parenthesis as usual and refer to these (\$1\ldots\$9) in later \texttt{fieldvalue} specifications. This allows you to pull out parts of some fields and put these parts in other fields.
 \item Perform a regular expression match and replace on the value of the \texttt{fieldsource} \prm{entryfield} if \texttt{match} and \texttt{replace} are defined.
 \item If \texttt{fieldset} is defined, then its value is \prm{entryfield}
   which will be set to a value specified by further options. If
@@ -7387,6 +7617,8 @@
 which is the citation key of the entry. With \biblatexml\ the \bibfield{entrykey} is a normal attribute and can be reference like any other attribute. Naturally, this <field> cannot
 be changed (used as \texttt{fieldset}, \texttt{fieldtarget} or changed using \texttt{replace}).
 
+Macros used in \cmd{step} are expanded. Unexpandable contents should be protected with \cmd{detokenize}, regular expressions can be escaped using the dedicated \cmd{regexp} command (see the examples below).
+
 \begin{ltxsyntax}
 
 \cmditem{DeclareStyleSourcemap}{specification}
@@ -7447,8 +7679,8 @@
 }
 \end{ltxexample}
 %
-Any \bibfield{chat} entrytypes would become \bibfield{customa} entrytypes and 
-would automatically have a \bibfield{type} field set to 
+Any \bibfield{chat} entrytypes would become \bibfield{customa} entrytypes and
+would automatically have a \bibfield{type} field set to
 <chat> unless the \bibfield{type} field already exists in the entry (because
 \texttt{overwrite} is false by default). This mapping applies only to entries of type
 \bibtype{chat} since the first step has \texttt{final} set and so if the
@@ -7896,7 +8128,7 @@
 
 \cmditem{constraintfield}{field}
 
-For constraints of \prm{type} <data>, the constraint applies to this \prm{field}. For constraints of \prm{type} <mandatory>, the entry must contain this \prm{field}. 
+For constraints of \prm{type} <data>, the constraint applies to this \prm{field}. For constraints of \prm{type} <mandatory>, the entry must contain this \prm{field}.
 
 The data model declaration macros may be used multiple times as they append to the previous definitions. In order to replace, change or remove existing definitions (such as the default model which is loaded with \biblatex), you should reset (clear) the current definition and then set what you want using the following macros. Typically, these macros will be the first things in any \file{biblatex-dm.cfg} file:
 
@@ -8210,7 +8442,7 @@
   }
 }
 \end{ltxexample}
-% 
+%
 This would be the result (note that the individual family name label parts are no longer unambiguous):
 
 \begin{lstlisting}{}
@@ -8377,7 +8609,7 @@
 
 \choitem{locale}{\prm{locale}}
 
-The locale for the sorting template which then overrides the global sorting locale in the \opt{sortlocale} option discussed in \secref{use:opt:pre:gen}. 
+The locale for the sorting template which then overrides the global sorting locale in the \opt{sortlocale} option discussed in \secref{use:opt:pre:gen}.
 
 \end{optionlist*}
 
@@ -8419,7 +8651,7 @@
 
 \choitem[left]{padside}{left, right}
 
-Pads a field on the \texttt{left} or \texttt{right} side using \opt{padchar} so that its width is \opt{padwidth}. If no padding option is set, no padding is done at all. If any padding option is specified, then padding is performed and the missing options are assigned built-in default values. If padding and substring matching are both specified, the substring match is performed first. 
+Pads a field on the \texttt{left} or \texttt{right} side using \opt{padchar} so that its width is \opt{padwidth}. If no padding option is set, no padding is done at all. If any padding option is specified, then padding is performed and the missing options are assigned built-in default values. If padding and substring matching are both specified, the substring match is performed first.
 
 \intitem[4]{padwidth}
 
@@ -8672,14 +8904,14 @@
 
 \cmditem{DeclareSortTranslit}[entrytype]{specification}
 
-Languages which can be written in different scripts or alphabets often only have CLDR sorting tailoring for one script and it is expected that you transliterate into the supported script for sorting purposes. A common example is Sanskrit which is often written in academic contexts in IAST 
+Languages which can be written in different scripts or alphabets often only have CLDR sorting tailoring for one script and it is expected that you transliterate into the supported script for sorting purposes. A common example is Sanskrit which is often written in academic contexts in IAST
 romanised script but which needs to be sorted in the <sa> locale which expects the Devanāgarī script. Another common case is transliteration of Russian Cyrillic into Latin as defined by the ALA-LC standard. Such requirement means that it is necessary to transliterate into the sorting script internally. \cmd{DeclareSortTranslit} declares which parts of an entry you would like to transliterate for sorting purposes. Without the \prm{entrytype} parameter, the \prm{specification} applies to all entrytypes. The \prm{specification} is one or more \cmd{translit} commands:
 
-\cmditem{translit}{field or fieldset}{from}{to}
+\cmditem{translit}[langids]{field or fieldset}{from}{to}
 
-Specifies that the data field \bibfield{field} or all fields in a fieldset \prm{fieldset} declared with \cmd{DeclareDatafieldSet} (see \secref{aut:ctm:dsets}) should be transliterated from script \prm{from} to script \prm{to} for sorting purposes. The field/set argument can also be <*> to apply transliteration to all fields. The valid \prm{from} and \prm{to} values are given in table \ref{tab:translit}. Note that \biblatex does not aim to support general transliteration, only those which are useful for sorting purposes. Please open a GitHub ticket for \biblatex\ if you think you need additional transliterations.
+Specifies that the data field \bibfield{field} or all fields in a fieldset \prm{fieldset} declared with \cmd{DeclareDatafieldSet} (see \secref{aut:ctm:dsets}) should be transliterated from script \prm{from} to script \prm{to} for sorting purposes. The field/set argument should be <*> to apply transliteration to all fields. The valid \prm{from} and \prm{to} values are given in table \ref{tab:translit}. The optional \prm{langids} parameter is a comma-separated list of \bibfield{langid} fields and the transliteration will apply only to bibliography entries containing one of the \bibfield{langid}s in the list. Note that \biblatex does not aim to support general transliteration, only those which are useful for sorting purposes. Please open a GitHub ticket for \biblatex\ if you think you need additional transliterations.
 
-An example of transliterating titles so that they sort correctly in Sanskrit:
+An example of transliterating titles so that they sort correctly in Sanskrit. This example assumes that entries that should have their title fields transliterated have a \bibfield{langid} field set to <sanskrit>.
 
 \begin{ltxexample}
 \DeclareDatafieldSet{settitles}{
@@ -8693,7 +8925,7 @@
 }
 
 \DeclareSortTranslit{
-  \translit[settitles]{iast}{devanagari}
+  \translit[sanskrit]{settitles}{iast}{devanagari}
 }
 \end{ltxexample}
 
@@ -8719,7 +8951,7 @@
 \subsubsection[Bibliography List Filters]{Bibliography List Filters}
 \label{aut:ctm:bibfilt}
 
-When using customisable bibliography lists (See \secref{use:bib:biblist}), usually one wants to return in the \file{.bbl} only those entries which have the particular fields which the bibliography list is summarising. For example, when printing a normal list of shorthands, you want the list returned by \biber in the \file{.bbl} to contain only those entries which have a \bibfield{shorthand} field. This is accomplished by defining a bibliography list filter using the \cmd{DeclareBiblistFilter} command. This differs from the filters defined using \cmd{defbibfilter} (see \secref{use:bib:flt}) since the filters defined by \cmd{defbibfilter} run inside \biblatex after the \file{.bbl} has been generated. In addition, bibliography lists in the \file{.bbl} do not contain entry data, only the citation keys for the entries and so no filtering by \biblatex using \cmd{defbibfilter} is possible for bibliography lists.
+When using customisable bibliography lists (See \secref{use:bib:biblist}), usually one wants to return in the \file{.bbl} only those entries which have the particular fields which the bibliography list is summarising. For example, when printing a normal list of shorthands, you want the list returned by \biber in the \file{.bbl} to contain only those entries which have a \bibfield{shorthand} field. This is accomplished by defining a bibliography list filter using the \cmd{DeclareBiblistFilter} command. This differs from the filters defined using \cmd{defbibfilter} (see \secref{use:bib:flt}) since the filters defined by \cmd{defbibfilter} run inside \biblatex after the \file{.bbl} has been generated.
 
 \begin{ltxsyntax}
 \cmditem{DeclareBiblistFilter}{name}{specification}
@@ -8757,7 +8989,7 @@
 \subsubsection{Controlling Name Initials Generation}
 \label{aut:ctm:noinit}
 
-Generating initials for name parts from a given name involves some difficulties when you have names with prefixes, diacritics, hyphens etc. Often, you want to ignore things like prefixes when generating initials so that the initials for «al-Hasan» is just «H» instead of «a-H». This is tricky when you also have names like «Ho-Pun» where you want the initials to be «H-P», for example. 
+Generating initials for name parts from a given name involves some difficulties when you have names with prefixes, diacritics, hyphens etc. Often, you want to ignore things like prefixes when generating initials so that the initials for «al-Hasan» is just «H» instead of «a-H». This is tricky when you also have names like «Ho-Pun» where you want the initials to be «H-P», for example.
 
 \begin{ltxsyntax}
 
@@ -8795,9 +9027,9 @@
 
 Defines regular expressions to strip from particular fields or types of fields when sorting. The \prm{specification} is an undelimited list of \cmd{nosort} directives which specify the regular expressions to remove from particular fields or type of field. Spaces, tabs and line endings may be used freely to visually arrange the \prm{specification}. Blank lines are not permissible. This command may only be used in the preamble.
 
-\cmditem{nosort}{field or field type}{regexp}
+\cmditem{nosort}{field or datafield set}{regexp}
 
-Any number of \cmd{nosort} commands can be given each of which specifies to remove the \prm{regexp} from the \prm{field} or \prm{field type}. A \prm{field type} is simple a convenience grouping of semantically similar fields from which you might want to remove a regexp. Table \ref{aut:nosort} shows the available field types. Since regular expressions usually contain special characters, it is best to enclose them in the provided \cmd{regexp} macro as shown---this will pass the expression through to \biber correctly.
+Any number of \cmd{nosort} commands can be given each of which specifies to remove the \prm{regexp} from the \prm{field} or \prm{datafield set}. A \prm{datafield set} is simply a convenience grouping of semantically similar fields from which you might want to remove a regexp. See \secref{aut:ctm:dsets} for the avaiable sets, their members and customisation. Since regular expressions usually contain special characters, it is best to enclose them in the provided \cmd{regexp} macro as shown---this will pass the expression through to \biber correctly.
 
 \end{ltxsyntax}
 
@@ -8806,13 +9038,13 @@
 \begin{ltxexample}
 \DeclareNosort{
   % strip prefixes like 'al-' when sorting names
-  \nosort{type_names}{\regexp{<<\A\p{L}{2}\p{Pd}>>}}
+  \nosort{setnames}{\regexp{<<\A\p{L}{2}\p{Pd}>>}}
   % strip some diacritics when sorting names
-  \nosort{type_names}{\regexp{<<[\x{2bf}\x{2018}]>>}}
+  \nosort{setnames}{\regexp{<<[\x{2bf}\x{2018}]>>}}
 }
 \end{ltxexample}
 %
-This \biber default strips a couple of diacritics and also strips prefixes from names when sorting. Suppose you wanted to ignore «The» at the beginning of a \bibfield{title} field when sorting:
+This \biber default strips a couple of diacritics and also strips two-letter prefixes (like «Al-») from names when sorting. Suppose you wanted to ignore «The» at the beginning of the \bibfield{title} field when sorting:
 
 \begin{ltxexample}
 \DeclareNosort{
@@ -8824,48 +9056,10 @@
 
 \begin{ltxexample}
 \DeclareNosort{
-  \nosort{<<type_title>>}{\regexp{<<\AThe\s+>>}}
+  \nosort{<<settitles>>}{\regexp{<<\AThe\s+>>}}
 }
 \end{ltxexample}
 
-\begin{table}[h]
-\tablesetup
-\begin{tabular}{@{}V{0.5\textwidth}@{}V{0.5\textwidth}@{}}
-\toprule
-\multicolumn{1}{@{}H}{Field Type} &
-\multicolumn{1}{@{}H}{Fields} \\
-\cmidrule(r){1-1}\cmidrule{2-2}
-|type_name| & |author| \\
-             & |afterword| \\
-             & |annotator| \\
-             & |bookauthor| \\
-             & |commentator| \\
-             & |editor| \\
-             & |editora| \\
-             & |editorb| \\
-             & |editorc| \\
-             & |foreword| \\
-             & |holder| \\
-             & |introduction| \\
-             & |namea| \\
-             & |nameb| \\
-             & |namec| \\
-             & |shortauthor| \\
-             & |shorteditor| \\
-             & |translator| \\
-|type_title| & |booktitle| \\
-              & |eventtitle| \\
-              & |issuetitle| \\
-              & |journaltitle| \\
-              & |maintitle| \\
-              & |origtitle| \\
-              & |title| \\
-\bottomrule
-\end{tabular}
-\caption{Field types for \cmd{nosort}}
-\label{aut:nosort}
-\end{table}
-
 \subsubsection{Special Fields}
 \label{aut:ctm:fld}
 
@@ -8987,7 +9181,7 @@
   }
 }
 \end{ltxexample}
-% 
+%
 Entries without the specified granularity of information will disambiguate at the lowest granularity they contain, so, for example, with:
 \begin{ltxexample}
 \DeclareExtradate{%
@@ -9050,7 +9244,7 @@
 
 \begin{optionlist*}
 
-\boolitem[true]{all} Whether or not to inherit all fields from the parent by default. 
+\boolitem[true]{all} Whether or not to inherit all fields from the parent by default.
 
 \kvopt{all}{true} means that the child entry inherits all fields from the parent, unless a more specific inheritance rule has been set up with \cmd{DeclareDataInheritance}. If an inheritance rule is defined for a field, data inheritance is controlled by that rule. \kvopt{all}{false} means that no data is inherited from the parent by default and each field to be inherited requires an explicit inheritance rule set up with \cmd{DeclareDataInheritance}. The package default is \kvopt{all}{true}.
 
@@ -9155,7 +9349,7 @@
 }
 \end{ltxexample}
 %
-This rule prevents inheritance of the \bibfield{introduction} field. It applies to all targets of type 
+This rule prevents inheritance of the \bibfield{introduction} field. It applies to all targets of type
 \bibtype{inbook} or \bibtype{incollection}, regardless of the source entry type.
 
 \begin{ltxexample}
@@ -9397,7 +9591,11 @@
 
 Expands to \prm{true} if the two dates \prm{datetype1} and \prm{datetype2} would show in different precision when printed with \cmd{print$<$datetype1$>$date} and \cmd{print$<$datetype2$>$date} respectively, and to \prm{false} otherwise.
 
+\cmditem{ifdateyearsequal}{datetype1}{datetype2}{true}{false}
 
+Expands to \prm{true} if the two dates \prm{datetype1} and \prm{datetype2} have the same year and era. Since the sign of the date is saved in the era field, years should be compared using this command to avoid confusion when the two years have opposite signs
+
+
 \cmditem{ifcaselang}[language]{true}{false}
 
 Expands to \prm{true} if the the optional \prm{language} is one of those
@@ -9525,6 +9723,10 @@
 
 Expands to \prm{true} if there is only one work by the \opt{labelname} name in the bibliography, and to \prm{false} otherwise. If \opt{labelname} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{singletitle}.
 
+\cmditem{ifnocite}{true}{false}
+
+Expands to \prm{true} if the entry was \emph{only} included in the \file{.bbl} via \cmd{nocite}. That is, returns \prm{false} if an entry was both \cmd{nocite}'d and \cmd{cite}'d.
+
 \cmditem{ifuniquetitle}{true}{false}
 
 Expands to \prm{true} if there is only one work with the title \opt{labeltitle} and to \prm{false} otherwise. If \opt{labeltitle} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniquetitle}.
@@ -9539,7 +9741,7 @@
 
 \cmditem{ifuniqueprimaryauthor}{true}{false}
 
-Expands to \prm{true} if there is only one work by the the primary (first) author name of \opt{labelname} and to \prm{false} otherwise. Only the base name parts of the author name are considered, as defined by \cmd{DeclareUniquenameTemplate} see \secref{aut:cav:amb}. If \opt{labelname} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniqueprimaryauthor}. 
+Expands to \prm{true} if there is only one work by the the primary (first) author name of \opt{labelname} and to \prm{false} otherwise. Only the base name parts of the author name are considered, as defined by \cmd{DeclareUniquenameTemplate} see \secref{aut:cav:amb}. If \opt{labelname} is not set for an entry, this will always expand to \prm{false}. Note that this feature needs to be enabled explicitly with the package option \opt{uniqueprimaryauthor}.
 
 \cmditem{ifandothers}{list}{true}{false}
 
@@ -9721,6 +9923,10 @@
 
 This counter indicates how many times the entry currently being processed is cited in the current reference section. Note that this feature needs to be enabled explicitly with the package option \opt{citecounter}. If the option is set to \texttt{context}, citations in the body text and in footnotes are counted separately. In this case, \cnt{citecounter} will hold the value of the context it is used in.
 
+\cntitem{maxcitecounter}
+
+This counter holds the maximum value of \cnt{citecounter} across all entries in the current reference section. Like \cnt{citecounter} it is only available if the \opt{citecounter} option is enabled and tracks footnotes and text separately if the option is set to \texttt{context}.
+
 \cntitem{uniquename}
 This counter refers to the \bibfield{labelname} list. It is set on a per-name basis. Its value is \texttt{0} if the base parts of the name (by default just the <family> part of the name) are unique, \texttt{1} if adding the other non-base parts of the name (as specified in the uniquename template defined by \cmd{DeclareUniquenameTemplate}) as initials will make it unique, and \texttt{2} if adding the full form of the non-base parts of the name are required to disambiguate the name. This information is required by author-year and author-title citation schemes which add additional parts of the name when citing different authors with the same family name. For example, (given the default \cmd{DeclareUniquenameTemplate} definition) if there is one <John Doe> and one <Edward Doe> in the list of references, this counter will be set to \texttt{1}. If there is one <John Doe> and one <Jane Doe>, the value of the counter will be \texttt{2}. If the option is set to \texttt{init}\slash \texttt{allinit}\slash \texttt{mininit}, the counter will be limited to \texttt{1}. This is useful for citations styles which use initials to disambiguate names but never print the full name in citations. If adding the initials is not sufficient to disambiguate the name, \cnt{uniquename} will also be set to \texttt{0} for that name. This feature needs to be enabled explicitly with the package option \opt{uniquename}. Note that the \cnt{uniquename} counter is local to \cmd{printnames} and that it is only set for the \bibfield{labelname} list and for the name list that \bibfield{labelname} has been derived from (typically \bibfield{author} or \bibfield{editor}). Its value is zero in any other context, i.e., it must be evaluated in the name formatting directives handling name lists. See \secref{aut:cav:amb} for further details and practical examples. This counter can be overridden on a per-namepart basis by consulting the \cmd{namepart<namepart>un} macros during name formatting, see \secref{aut:bbx:drv}.
 
@@ -9836,6 +10042,16 @@
 
 These commands save and restore the formatting directive \prm{format}, as defined with \cmd{DeclareNameFormat}. Both commands work within a local scope. They are mainly provided for use in localisation files.
 
+\cmditem{savelistwrapperformat}[entry type]{format}
+\cmditem{restorelistwrapperformat}[entry type]{format}
+
+These commands save and restore the formatting directive \prm{format}, as defined with \cmd{DeclareListWrapperFormat}. Both commands work within a local scope. They are mainly provided for use in localisation files.
+
+\cmditem{savenamewrapperformat}[entry type]{format}
+\cmditem{restorenamewrapperformat}[entry type]{format}
+
+These commands save and restore the formatting directive \prm{format}, as defined with \cmd{DeclareNameWrapperFormat}. Both commands work within a local scope. They are mainly provided for use in localisation files.
+
 \cmditem{ifbibmacroundef}{name}{true}{false}
 
 Expands to \prm{true} if the bibliography macro \prm{name} is undefined, and to \prm{false} otherwise.
@@ -9843,6 +10059,8 @@
 \cmditem{iffieldformatundef}[entry type]{name}{true}{false}
 \cmditem{iflistformatundef}[entry type]{name}{true}{false}
 \cmditem{ifnameformatundef}[entry type]{name}{true}{false}
+\cmditem{iflistwrapperformatundef}[entry type]{name}{true}{false}
+\cmditem{ifnamewrapperformatundef}[entry type]{name}{true}{false}
 
 Expands to \prm{true} if the formatting directive \prm{format} is undefined, and to \prm{false}
 otherwise.
@@ -9903,6 +10121,21 @@
 \end{lstlisting}
 %
 The problem with this convention is that the braces will suppress the kerning on both sides of the enclosed letter. It is preferable to wrap the entire word in braces as shown in the first example.
+Macros in titles must also be protected with braces
+\begin{lstlisting}[style=bibtex]{}
+title = {The {\TeX book}},
+\end{lstlisting}
+%
+Due to its complex implementation this command can not accept arbitrary input, it only safely operates on raw text or field data. In the standard styles the \texttt{title} and other \texttt{title}-like field formats do not work together with \cmd{MakeSentenceCase} because of their argument structure, so the standard styles offer a dedicated \texttt{titlecase} field format to apply this command. To enable sentence casing in standard styles for languages that support it you would use:
+\begin{ltxexample}
+\DeclareFieldFormat{titlecase}{<<\MakeSentenceCase*{#1}>>}
+\end{ltxexample}
+%
+Sentence casing can then be disabled by resetting that field format to
+\begin{ltxexample}
+\DeclareFieldFormat{titlecase}{<<#1>>}
+\end{ltxexample}
+Custom styles may follow a different approach, but style authors are encouraged to apply the same general ideas to their styles.
 
 \cmditem{mkpageprefix}[pagination][postpro]{text}
 
@@ -9941,7 +10174,7 @@
 1111--1115	& 1111--5	& 1111--5	& 1111--5	\\
 \cmidrule{2-4}
 & \multicolumn{1}{@{}H}{\ttfamily maxcomprange=1000}
-& \multicolumn{1}{@{}H}{\ttfamily maxcomprange=100} 
+& \multicolumn{1}{@{}H}{\ttfamily maxcomprange=100}
 & \multicolumn{1}{@{}H}{\ttfamily maxcomprange=10} \\
 \cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule{4-4}
 1111--1115	& 1111--5	& 1111--5	& 1111--5	\\
@@ -9949,7 +10182,7 @@
 1111--1555	& 1111--555	& 1111--1555	& 1111--1555	\\
 \cmidrule{2-4}
 & \multicolumn{1}{@{}H}{\ttfamily mincompwidth=1}
-& \multicolumn{1}{@{}H}{\ttfamily mincompwidth=10} 
+& \multicolumn{1}{@{}H}{\ttfamily mincompwidth=10}
 & \multicolumn{1}{@{}H}{\ttfamily mincompwidth=100} \\
 \cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule{4-4}
 1111--1115	& 1111--5	& 1111--15	& 1111--115	\\
@@ -10411,7 +10644,7 @@
 
 \cmditem{bibstring}[wrapper]{key}
 
-Prints the localisation string \prm{key}, where \prm{key} is an identifier in lowercase letters (see \secref{aut:lng:key}). The string will be capitalized as required, see \secref{aut:pct:cfg} for details. 
+Prints the localisation string \prm{key}, where \prm{key} is an identifier in lowercase letters (see \secref{aut:lng:key}). The string will be capitalized as required, see \secref{aut:pct:cfg} for details.
 Depending on the \opt{abbreviate} package option from \secref{use:opt:pre:gen}, \cmd{bibstring} prints the short or the long version of the string. If localisation strings are nested, \ie if \cmd{bibstring} is used in another string, it will behave like \cmd{bibxstring}.
 If the \prm{wrapper} argument is given, the string is passed to the \prm{wrapper} for formatting. This is intended for font commands such as \cmd{emph}.
 
@@ -11067,6 +11300,7 @@
 \item[langfrench] The language <French>.
 \item[langgerman] The language <German>.
 \item[langgreek] The language <Greek>.
+\item[langhungarian] The language <Hungarian>.
 \item[langitalian] The language <Italian>.
 \item[langjapanese] The language <Japanese>.
 \item[langlatin] The language <Latin>.
@@ -11099,6 +11333,7 @@
 \item[fromfrench] The expression <from [the] French>.
 \item[fromgerman] The expression <from [the] German>.
 \item[fromgreek] The expression <from [the] Greek>.
+\item[fromhungarian] The language <from [the] Hungarian>.
 \item[fromitalian] The expression <from [the] Italian>.
 \item[fromjapanese] The expression <from [the] Japanese>.
 \item[fromlatin] The expression <from [the] Latin>.
@@ -11254,8 +11489,8 @@
 \csitem{bibnamedash}
 The dash to be used as a replacement for recurrent authors or editors in the bibliography. The default is an <em> or an <en> dash, depending on the indentation of the list of references.
 
-\csitem{labelnamepunct}
-The separator to be printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined). Use this separator instead of \cmd{newunitpunct} at this location. The default is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation but permits convenient reconfiguration. See also \cmd{nametitledelim} \secref{use:fmt:csd}.
+\csitem{labelnamepunct}\DeprecatedMark
+A separator to be printed after the name used for alphabetizing in the bibliography (\bibfield{author} or \bibfield{editor}, if the \bibfield{author} field is undefined) instead of \cmd{newunitpunct}. The default is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation but permits convenient reconfiguration. This punctuation command is deprecated and has been superseded by the context-sensitive \cmd{nametitledelim} (see \secref{use:fmt:csd}). For backwards compatibility reasons, however, \cmd{nametitledelim} still defaults to \cmd{labelnamepunct} in the \texttt{bib} and \texttt{biblist} contexts. Style authors may want to consider replacing \cmd{labelnampunct} with \texttt{\textbackslash printdelim\{nametitledelim\}} and users may want to prefer modifying the context-sensitive \texttt{nametitledelim} with \cmd{DeclareDelimFormat} over redefining \cmd{labelnamepunct}.
 
 \csitem{subtitlepunct}
 The separator to be printed between the fields \bibfield{title} and \bibfield{subtitle}, \bibfield{booktitle} and \bibfield{booksubtitle}, as well as \bibfield{maintitle} and \bibfield{mainsubtitle}. Use this separator instead of \cmd{newunitpunct} at this location. The default is \cmd{newunitpunct}, \ie it is not handled differently from regular unit punctuation but permits convenient reconfiguration.
@@ -11303,16 +11538,16 @@
 Similar to \cmd{multicitedelim}, but intended for \cmd{textcite} and related commands (\secref{use:cit:cbx}).
 
 \csitem{nametitledelim}
-The delimiter to be printed between the author\slash editor and the title. This command should be incorporated in the definition of all citation commands of author-title and some verbose citation styles.
+The delimiter to be printed between the author\slash editor and the title. This command should be incorporated in the definition of all citation commands of author-title and some verbose citation styles and in the bibliography drivers---in author-year bibliographies \cs{nametitledelim} may be printed between the author\slash editor-year block and the title.
 
 \csitem{nameyeardelim}
-The delimiter to be printed between the author\slash editor and the year. This command should be incorporated in the definition of all citation commands of author-year citation styles.
+The delimiter to be printed between the author\slash editor and the year. This command should be incorporated in the definition of all citation commands of author-year citation styles and in the bibliography drivers.
 
 \csitem{namelabeldelim}
 The delimiter printed between the name\slash title and the label. This command should be incorporated in the definition of all citation commands of alphabetic and numeric citation styles.
 
 \csitem{nonameyeardelim}
-The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation styles. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used.
+The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation styles and the bibliography. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used.
 
 \csitem{authortypedelim}
 The delimiter printed between the author and the \texttt{authortype}.
@@ -11330,7 +11565,7 @@
 The delimiter to be printed after the \prm{prenote} argument of a citation command.
 
 \csitem{postnotedelim}
-The delimiter to be printed after the \prm{postnote} argument of a citation command.
+The delimiter to be printed before the \prm{postnote} argument of a citation command.
 
 \csitem{extpostnotedelim}
 The delimiter printed between the citation and the parenthetical \prm{postnote} argument of a citation command when the postnote occurs outside of the citation parentheses. In the standard styles, this occurs when the citation uses the shorthand field of the entry.
@@ -11600,27 +11835,27 @@
 
 \cmditem{mkyearzeros}{integer}
 
-This command strips leading zeros from a year or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+This command strips leading zeros from a year or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros. If zeros are enforced, this command calls \cmd{forcezerosy} and thus expands its argument with \cmd{protected at edef}.
 
 \cmditem{mkmonthzeros}{integer}
 
-This command strips leading zeros from a month or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+This command strips leading zeros from a month or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros. If zeros are enforced, this command calls \cmd{forcezerosmdt} and thus expands its argument with \cmd{protected at edef}.
 
 \cmditem{mkdayzeros}{integer}
 
-This command strips leading zeros from a day or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros.
+This command strips leading zeros from a day or enforces them, depending on the \opt{datezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of date formatting macros. If zeros are enforced, this command calls \cmd{forcezerosmdt} and thus expands its argument with \cmd{protected at edef}.
 
 \cmditem{mktimezeros}{integer}
 
-This command strips leading zeros from a number or preserves them, depending on the \opt{timezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of time formatting macros.
+This command strips leading zeros from a number or preserves them, depending on the \opt{timezeros} package option (\secref{use:opt:pre:gen}). It is intended for use in the definition of time formatting macros. If zeros are enforced, this command calls \cmd{forcezerosmdt} and thus expands its argument with \cmd{protected at edef}.
 
 \cmditem{forcezerosy}{integer}
 
-This command adds zeros to a year (or any number supposed to be 4-digits). It is intended for date formatting and ordinals.
+This command adds zeros to a year (or any number supposed to be 4-digits). It is intended for date formatting and ordinals. The argument is expanded with \cmd{protected at edef} before it is processed.
 
 \cmditem{forcezerosmdt}{integer}
 
-This command adds zeros to a month, day or time part (or any number supposed to be 2-digits). It is intended for date/time formatting and ordinals.
+This command adds zeros to a month, day or time part (or any number supposed to be 2-digits). It is intended for date/time formatting and ordinals. The argument is expanded with \cmd{protected at edef} before it is processed.
 
 \cmditem{stripzeros}{integer}
 
@@ -11697,7 +11932,7 @@
 
 \lenitem{labelnumberwidth}
 
-This length register indicates the width of the widest \bibfield{labelnumber}. Numeric bibliography styles 
+This length register indicates the width of the widest \bibfield{labelnumber}. Numeric bibliography styles
 should incorporate this length in the definition of the bibliography environment.
 
 \lenitem{labelalphawidth}
@@ -11712,6 +11947,18 @@
 
 This counter holds the highest number found in any \bibfield{extradate} field.
 
+\cntitem{maxextraname}
+
+This counter holds the highest number found in any \bibfield{extraname} field.
+
+\cntitem{maxextratitle}
+
+This counter holds the highest number found in any \bibfield{extratitle} field.
+
+\cntitem{maxextratitleyear}
+
+This counter holds the highest number found in any \bibfield{extratitleyear} field.
+
 \cntitem{refsection}
 
 This counter indicates the current \env{refsection} environment. When queried in a bibliography heading, the counter returns the value of the \opt{refsection} option passed to \cmd{printbibliography}.
@@ -12376,11 +12623,11 @@
 There is one fundamental principle style authors should keep in mind when designing a bibliography driver: block and unit punctuation is handled asynchronously. This is best explained by way of example. Consider the following code snippet:
 
 \begin{ltxexample}
-\printfield{title}% 
-\newunit 
+\printfield{title}%
+\newunit
 \printfield{edition}%
-\newunit 
-\printfield{note}% 
+\newunit
+\printfield{note}%
 \end{ltxexample}
 %
 If there is no \bibfield{edition} field, this piece of code will not print:
@@ -12410,11 +12657,11 @@
 Block and unit punctuation will only be inserted if \emph{all} of these conditions apply. Let's reconsider the above example:
 
 \begin{ltxexample}
-\printfield{title}% 
-\newunit 
+\printfield{title}%
+\newunit
 \printfield{edition}%
-\newunit 
-\printfield{note}% 
+\newunit
+\printfield{note}%
 \end{ltxexample}
 %
 Here's what happens if the \bibfield{edition} field is undefined. The first \cmd{printfield} command prints the title and sets an internal <new~text> flag. The first \cmd{newunit} sets an internal <new~unit> flag. No punctuation has been printed at this point. The second \cmd{printfield} does nothing because the \bibfield{edition} field is undefined. The next \cmd{newunit} command sets the internal flag <new unit> again. Still no punctuation has been printed. The third \cmd{printfield} checks if the \bibfield{note} field is defined. If so, it looks at the <new~text> and <new~unit> flags. If both are set, it inserts the punctuation buffer before printing the note. It then clears the <new~unit> flag and sets the <new~text> flag again.
@@ -12443,8 +12690,8 @@
 It is a fairly common misconception to think of the unit punctuation as something that is handled synchronously. This typically causes problems if the driver includes any literal text. Consider this erroneous code snippet which will generate misplaced unit punctuation:
 
 \begin{ltxexample}
-\printfield{title}% 
-\newunit 
+\printfield{title}%
+\newunit
 <<(>>\printfield{series} \printfield{number}<<)>>%
 \end{ltxexample}
 %
@@ -12920,11 +13167,11 @@
 
 \begin{lstlisting}[language=xml]
 <?xml-model href="biblatexml.rng"
-            type="application/xml"            
+            type="application/xml"
             schematypens="http://relaxng.org/ns/structure/1.0"?>
 \end{lstlisting}
 %
-When \biber\ generates \biblatexml\ data sources, it automatically adds this line and points the schema model (href) attribute at the automatically generated RelaXNG XML schema for ease of validation. 
+When \biber\ generates \biblatexml\ data sources, it automatically adds this line and points the schema model (href) attribute at the automatically generated RelaXNG XML schema for ease of validation.
 
 \subsection{Body}
 
@@ -12950,7 +13197,7 @@
 \begin{lstlisting}[language=xml]
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml-model href="biblatexml.rng"
-            type="application/xml"            
+            type="application/xml"
             schematypens="http://relaxng.org/ns/structure/1.0"?>
 <bltx:entries
   xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml">
@@ -13033,7 +13280,7 @@
 
 \begin{itemize}
   \item The optional \bibfield{morenames} attribute performs the same task as the \bibtex\ datasource format <and others> string at the end of a name.
-  \item Note that optional \opt{useprefix} option can be specified can be specified at the level of a name list or an individual name in the name list. This is impossible with \bibtex\ datasources.
+  \item Note that optional \opt{useprefix} option can be specified at the level of a name list or an individual name in the name list. This is impossible with \bibtex\ datasources.
   \item Individual names may have an optional \bibfield{gender} attribute which must be one of those defined in the datamodel <gender> constant list. This is currently not used by standard styles but is available in \biblatex name formats if necessary.
   \item A name list is composed of one or more \bibfield{name} elements.
   \item Each name is composed of name parts of a \bibfield{type} defined by the data model <nameparts> constant.
@@ -13095,7 +13342,7 @@
 \begin{lstlisting}[language=xml]
     <bltx:related>
       <bltx:item type="reprint"
-                 ids="rel1,rel2" 
+                 ids="rel1,rel2"
                  string="Somestring"
                  options="skipbiblist"/>
     </bltx:related>
@@ -13112,7 +13359,7 @@
 }
 \end{lstlisting}
 %
-As per \secref{aut:ctm:rel}, the \bibfield{string} and \bibfield{options} attributes are optional. 
+As per \secref{aut:ctm:rel}, the \bibfield{string} and \bibfield{options} attributes are optional.
 
 \section{Option Scope}
 \label{apx:opt}
@@ -13155,10 +13402,10 @@
 	V{0.3\textwidth}@{}%
 	C{0.1\textwidth}@{}%
   C{0.1\textwidth}@{}%
-  C{0.1\textwidth}@{}%  
   C{0.1\textwidth}@{}%
   C{0.1\textwidth}@{}%
   C{0.1\textwidth}@{}%
+  C{0.1\textwidth}@{}%
   C{0.1\textwidth}@{}}
 \toprule
 \multicolumn{1}{@{}H}{Option} &
@@ -13237,6 +13484,7 @@
 maxalphanames	&\+&\+&\_&\+&\+&\_&\_\\
 maxbibnames	&\+&\+&\_&\+&\+&\_&\_\\
 maxcitenames	&\+&\+&\_&\+&\+&\_&\_\\
+maxsortnames	&\+&\+&\_&\+&\+&\_&\_\\
 maxitems	&\+&\+&\_&\+&\+&\_&\_\\
 maxnames	&\+&\+&\_&\+&\+&\_&\_\\
 maxparens	&\+&\+&\_&\_&\_&\_&\_\\
@@ -13244,6 +13492,7 @@
 minalphanames	&\+&\+&\_&\+&\+&\_&\_\\
 minbibnames	&\+&\+&\_&\+&\+&\_&\_\\
 mincitenames	&\+&\+&\_&\+&\+&\_&\_\\
+minsortnames	&\+&\+&\_&\+&\+&\_&\_\\
 mincrossrefs	&\+&\+&\_&\_&\_&\_&\_\\
 minxrefs	&\+&\+&\_&\_&\_&\_&\_\\
 minitems	&\+&\+&\_&\+&\+&\_&\_\\
@@ -13296,6 +13545,26 @@
 This revision history is a list of changes relevant to users of this package. Changes of a more technical nature which do not affect the user interface or the behavior of the package are not included in the list. More technical details are to be found in the \file{CHANGES.md} file. The numbers on the right indicate the relevant section of this manual.
 
 \begin{changelog}
+\begin{release}{3.12}{2018-10-30}
+\item Added literal and named annotation functionality\see{use:annote}
+\item Added \cmd{ifnocite}\see{aut:aux:tst}
+\item Added case-insensitive versions of matching operators\see{aut:ctm:map}
+\item Added \bibfield{langid}s optional argument to \cmd{DeclareSortTranslit}\see{aut:ctm:srt}
+\item Added \opt{noroman} option\see{use:opt:pre:int}
+\item Changed \bibfield{sortyear} to an integer field\see{bib:fld:spc}
+\item Added \bibfield{extraname}\see{aut:bbx:fld:lab}
+\item Added \opt{bibencoding} option to \cmd{addbibresource}\see{use:bib:res}
+\item Changed type of \bibfield{number} from integer to literal \see{bib:fld:dat}
+\item Removed \opt{noerroretextools} option\see{int:pre:inc}
+\item Added \opt{maxsortnames} and \opt{minsortnames}\see{use:opt:pre:gen}
+\item Added \cmd{DeprecateFieldFormatWithReplacement} and friends\see{aut:bib:fmt}
+\item Added list and name wrappers\see{aut:bib:fmt}
+\item Added \cs{ifdateyearsequal}\see{aut:aux:tst}
+\item Added <and higher> sectioning values for \opt{citereset}, \opt{refsection} and \opt{refsegment} options\see{use:opt:pre:gen}
+\item Added Hungarian localisation\see{use:loc:hun}
+\item Added \cmd{DeclareCitePunctuationPosition}\see{aut:cbx:cbx}
+\end{release}
+
 \begin{release}{3.11}{2018-02-20}
 \item Added \opt{entrynocite} option to sourcemapping\see{aut:ctm:map}
 \item Added \opt{driver} and \opt{biblistfilter} options to \cmd{printbiblist}\see{use:bib:biblist}

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex	2018-11-03 21:11:01 UTC (rev 49069)
@@ -18,13 +18,17 @@
 %\usepackage[estonian]{babel}
 %\usepackage[finnish]{babel}
 %\usepackage[french]{babel}
+%\usepackage[galician]{babel}
 %\usepackage[german]{babel}
 %\usepackage[icelandic]{babel}
 %\usepackage[italian]{babel}
+%\usepackage[latvian]{babel}
+%\usepackage[magyar]{babel}
 %\usepackage[norsk]{babel}
 %\usepackage[nynorsk]{babel}
 %\usepackage[polish]{babel}
 %\usepackage[portuguese]{babel}
+%\usepackage[slovak]{babel}
 %\usepackage[slovene]{babel}
 %\usepackage[spanish]{babel}
 %\usepackage[swedish]{babel}
@@ -32,7 +36,9 @@
 % -- Russian
 %\usepackage[T1,T2A]{fontenc}
 %\usepackage[utf8]{inputenc}
+%\usepackage[bulgarian]{babel}
 %\usepackage[russian]{babel}
+%\usepackage[ukrainian]{babel}
 % -- Greek
 %\usepackage[T1]{fontenc}
 %\usepackage[utf8]{inputenx}
@@ -589,6 +595,7 @@
 \keyitem{langfrench} The language <French>.
 \keyitem{langgerman} The language <German>.
 \keyitem{langgreek} The language <Greek>.
+\keyitem{langhungarian} The language <Hungarian>.
 \keyitem{langitalian} The language <Italian>.
 \keyitem{langjapanese} The language <Japanese>.
 \keyitem{langlatin} The language <Latin>.
@@ -621,6 +628,7 @@
 \keyitem{fromfrench} The expression <from [the] French>.
 \keyitem{fromgerman} The expression <from [the] German>.
 \keyitem{fromgreek} The expression <from [the] Greek>.
+\keyitem{fromhungarian} The language <from [the] Hungarian>.
 \keyitem{fromitalian} The expression <from [the] Italian>.
 \keyitem{fromjapanese} The expression <from [the] Japanese>.
 \keyitem{fromlatin} The expression <from [the] Latin>.

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/04-delimiters-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/04-delimiters-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug-bibtex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/90-related-entries-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex	2018-11-03 21:11:01 UTC (rev 49069)
@@ -123,7 +123,7 @@
 
 % Use transliteration to sort Cyrillic among Latin script
 \DeclareSortTranslit{
-  \translit{russian}{bgn/pcgn-standard}
+  \translit[russian]{*}{russian}{bgn/pcgn-standard}
 }
 
 \makeatletter

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/examples/94-labelprefix.tex	2018-11-03 21:11:01 UTC (rev 49069)
@@ -27,25 +27,26 @@
 explicit assignment to particular refcontexts with the
 \cmd{assignrefcontext*} macros.\\
 
-% refcontext=none/global//
+% refcontext=none/global//global/global
 
 This is a publication by Aristotle:
-\cite{aristotle:anima} % comes from refcontext=none/global/R
+\cite{aristotle:anima} % comes from refcontext=none/global/R/global/global
 
 These are not publications by Aristotle:
-\cite{yoon} % comes from default refcontext=none/global/Q due to \assignrefcontextentries
-\cite{worman} % comes from default refcontext=nty/global// and not from
-              % nty/global/T in next refsection even though that is the
+\cite{yoon} % comes from default refcontext=none/global/Q/global/global due
+            % to \assignrefcontextentries
+\cite{worman} % comes from default refcontext=nty/global//global/global and not from
+              % nty/global/T/global/global in next refsection even though that is the
               % last printed bib/biblist with worman in it. This is because
               % refcontext defaults are local to refcontexts
-\cite{piccato} % comes from refcontext=none/global/Q due to \assignrefcontextcats
-\cite{nussbaum} % comes from refcontext=none/global/S due to \assignrefcontextkeyws*
+\cite{piccato} % comes from refcontext=none/global/Q/global/global due to \assignrefcontextcats
+\cite{nussbaum} % comes from refcontext=none/global/S/global/global due to \assignrefcontextkeyws*
 
 This is another publication by Aristotle:
-\cite{aristotle:physics} % comes from refcontext=none/global/R
+\cite{aristotle:physics} % comes from refcontext=none/global/R/global/global
 
 \begin{refcontext}{rcone}
-% refcontext=none/global/R
+% refcontext=none/global/R/global/global
 \printbibliography[keyword=primary, title={Aristotle Publications}]
 % aristotle:anima and aristotle:physics default refcontext is this one
 \end{refcontext}
@@ -54,30 +55,30 @@
 % Note here that the optional argument to \newrefcontext overrides the
 % value set with the named refcontext
 \newrefcontext[labelprefix=S]{rctwo}
-% refcontext=none/global/S
+% refcontext=none/global/S/global/global
 \printbibliography[notkeyword=primary, title={Other publications}]
 \endrefcontext
 
 \begin{refcontext}[labelprefix=Q]
-% refcontext=none/global/Q
+% refcontext=none/global/Q/global/global
 \printbibliography[filter=cats, title={Other publications}]
 \end{refcontext}
 
 \begin{refcontext}[sorting=nty]
-% refcontext=nty/global//
+% refcontext=nty/global//global/global
 \printbibliography[resetnumbers, notkeyword=primary, title={More Other publications}]
 % Nussbaum default refcontext is this one
 % piccato default refcontext is this one
 % yoon default refcontext is this one
 % worman default refcontext is this one
-\cite{nussbaum} % comes from refcontext=nty/global// due to weak \assignrefcontextkeyws*
+\cite{nussbaum} % comes from refcontext=nty/global//global/global due to weak \assignrefcontextkeyws*
 \end{refcontext}
 
 \section*{New Refsection}
 \newrefsection
-\cite{worman} % comes from default refcontext=nty/global/T
+\cite{worman} % comes from default refcontext=nty/global/T/global/global
 \begin{refcontext}[labelprefix=T]{rcone}
-% refcontext=nty/global//
+% refcontext=nty/global//global/global
 \printbibliography[resetnumbers, notkeyword=primary, title={More Other publications}]
 \end{refcontext}
 

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/95-customlists-biber.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/96-dates-biber.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations-biber.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations-biber.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations-biber.pdf	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations-biber.pdf	2018-11-03 21:11:01 UTC (rev 49069)

Property changes on: trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations-biber.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.bib	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.bib	2018-11-03 21:11:01 UTC (rev 49069)
@@ -0,0 +1,12 @@
+%% LaTeX2e file `97-annotations.bib'
+%% generated by the `filecontents' environment
+%% from source `97-annotations' on 2018/10/04.
+%%
+ at MISC{ann1,
+  AUTHOR           = {Last1, First1 and Last2, First2 and Last3, First3},
+  AUTHOR+an        = {1:family=student;2=corresponding},
+  TITLE            = {The Title},
+  TITLE+an:default = {=titleannotation},
+  TITLE+an:french  = {="Le titre"},
+  TITLE+an:german  = {="Der Titel"}
+}


Property changes on: trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.tex	2018-11-03 21:11:01 UTC (rev 49069)
@@ -0,0 +1,53 @@
+%
+% This file demonstrates the data annotation feature
+%
+\documentclass[a4paper]{article}
+\usepackage{fontspec}
+\usepackage[american]{babel}
+\usepackage{csquotes}
+\usepackage{filecontents}
+\begin{filecontents}{\jobname.bib}
+ at MISC{ann1,
+  AUTHOR           = {Last1, First1 and Last2, First2 and Last3, First3},
+  AUTHOR+an        = {1:family=student;2=corresponding},
+  TITLE            = {The Title},
+  TITLE+an:default = {=titleannotation},
+  TITLE+an:french  = {="Le titre"},
+  TITLE+an:german  = {="Der Titel"}
+}
+\end{filecontents}
+\usepackage[backend=biber]{biblatex}
+\addbibresource{\jobname.bib}
+
+\renewcommand*{\mkbibnamefamily}[1]{%
+  \ifitemannotation{corresponding}
+    {\textbf{#1}}
+    {#1}%
+  \ifpartannotation{family}{student}
+    {\textsuperscript{*}}
+    {}}
+
+% Default for numeric style so we are overriding the active format for titles
+\DeclareFieldFormat{titlecase}{
+  \iffieldannotation{titleannotation}{\textsc{#1}}{#1}%
+  \hasfieldannotation[][french]{\mkbibparens{\getfieldannotation[][french]}}{}%
+  \hasfieldannotation[][german]{\mkbibparens{\getfieldannotation[][german]}}{}}
+
+\begin{document}
+The annotation feature allows the user to attache metadata, either in the
+form of strings to be tested for in formatting commands, or in the form of
+strings to be printed as-is. This example demonstrates all aspects of the
+annotation feature:
+
+\begin{itemize}
+\item Metadata attaching to fields, items in a list or parts of an item in
+  a list (e.g. name parts)
+\item Literal annotations where the annotation is a string to be printed
+  rather than used as a metadata test for other formatting.
+\item Multiple named annotations for the same data field.
+\item The ``default'' name for annotations with no explicit name.
+\end{itemize}
+
+\cite{ann1}
+\printbibliography
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/biblatex/examples/97-annotations.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bib	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bib	2018-11-03 21:11:01 UTC (rev 49069)
@@ -417,7 +417,7 @@
                   \texttt{editor} as well as a \texttt{series} field},
 }
 
- at book{aristotle:rhetoric,
+ at mvbook{aristotle:rhetoric,
   author       = {Aristotle},
   title        = {The Rhetoric of {Aristotle} with a commentary by the late {Edward
                   Meredith Cope}},
@@ -666,7 +666,7 @@
                   fields},
 }
 
- at book{knuth:ct,
+ at mvbook{knuth:ct,
   author       = {Knuth, Donald E.},
   title        = {Computers \& Typesetting},
   date         = {1984/1986},
@@ -675,16 +675,15 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1984-0},
   sorttitle    = {Computers & Typesetting},
   indexsorttitle= {Computers & Typesetting},
-  annotation   = {A five-volume book cited as a whole. This is a \texttt{book}
+  annotation   = {A five-volume book cited as a whole. This is a \texttt{mvbook}
                   entry, note the \texttt{volumes} field},
 }
 
 @book{knuth:ct:a,
   author       = {Knuth, Donald E.},
-  title        = {The {\TeX} book},
+  title        = {The {\TeX book}},
   date         = 1984,
   maintitle    = {Computers \& Typesetting},
   volume       = {A},
@@ -692,13 +691,12 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1984-1},
   sorttitle    = {Computers & Typesetting A},
   indexsorttitle= {The TeXbook},
   indextitle   = {\protect\TeX book, The},
   shorttitle   = {\TeX book},
   annotation   = {The first volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields. We want this
+                  \texttt{sorttitle} field. We want this
                   volume to be listed after the entry referring to the entire
                   five-volume set. Also note the \texttt{indextitle} and
                   \texttt{indexsorttitle} fields. Indexing packages that don't
@@ -708,7 +706,7 @@
 
 @book{knuth:ct:b,
   author       = {Knuth, Donald E.},
-  title        = {\TeX: The Program},
+  title        = {{\TeX}: The Program},
   date         = 1986,
   maintitle    = {Computers \& Typesetting},
   volume       = {B},
@@ -716,12 +714,11 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-1},
   sorttitle    = {Computers & Typesetting B},
   indexsorttitle= {TeX: The Program},
   shorttitle   = {\TeX},
   annotation   = {The second volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields. Also note the
+                  \texttt{sorttitle} field. Also note the
                   \texttt{indexsorttitle} field},
 }
 
@@ -735,18 +732,17 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-2},
   sorttitle    = {Computers & Typesetting C},
   indextitle   = {METAFONTbook, The},
   shorttitle   = {METAFONTbook},
   annotation   = {The third volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields as well as the
+                  \texttt{sorttitle} field as well as the
                   \texttt{indextitle} field},
 }
 
 @book{knuth:ct:d,
   author       = {Knuth, Donald E.},
-  title        = {METAFONT: The Program},
+  title        = {{METAFONT}: The Program},
   date         = 1986,
   maintitle    = {Computers \& Typesetting},
   volume       = {D},
@@ -754,11 +750,10 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-3},
   sorttitle    = {Computers & Typesetting D},
   shorttitle   = {METAFONT},
   annotation   = {The fourth volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields},
+                  \texttt{sorttitle} field},
 }
 
 @book{knuth:ct:e,
@@ -771,13 +766,12 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1986-4},
   sorttitle    = {Computers & Typesetting E},
   annotation   = {The fifth volume of a five-volume book. Note the
-                  \texttt{sorttitle} and \texttt{sortyear} fields},
+                  \texttt{sorttitle} field},
 }
 
- at book{knuth:ct:related,
+ at mvbook{knuth:ct:related,
   author       = {Knuth, Donald E.},
   title        = {Computers \& Typesetting},
   date         = {1984/1986},
@@ -786,7 +780,6 @@
   location     = {Reading, Mass.},
   langid       = {english},
   langidopts   = {variant=american},
-  sortyear     = {1984-0},
   sorttitle    = {Computers & Typesetting},
   indexsorttitle= {Computers & Typesetting},
   related      = {knuth:ct:a,knuth:ct:b,knuth:ct:c,knuth:ct:d,knuth:ct:e},
@@ -909,7 +902,7 @@
                   \texttt{relatedtype} fields},
 }
 
- at book{nietzsche:ksa,
+ at mvbook{nietzsche:ksa,
   author       = {Nietzsche, Friedrich},
   title        = {S{\"a}mtliche Werke},
   date         = 1988,
@@ -919,16 +912,15 @@
   publisher    = dtv # { and Walter de Gruyter},
   location     = {M{\"u}nchen and Berlin and New York},
   langid       = {german},
-  sortyear     = {1988-0},
   sorttitle    = {Werke-00-000},
   indexsorttitle= {Samtliche Werke},
   subtitle     = {Kritische Studienausgabe},
   annotation   = {The critical edition of Nietzsche's works. This is a
-                  \texttt{book} entry referring to a 15-volume work as a
+                  \texttt{mvbook} entry referring to a 15-volume work as a
                   whole. Note the \texttt{volumes} field and the format of the
                   \texttt{publisher} and \texttt{location} fields in the
                   database file. Also note the \texttt{sorttitle} and
-                  \texttt{sortyear} fields which are used to fine-tune the
+                  field which is used to fine-tune the
                   sorting order of the bibliography. We want this item listed
                   first in the bibliography},
 }
@@ -946,7 +938,6 @@
   publisher    = dtv # { and Walter de Gruyter},
   location     = {M{\"u}nchen and Berlin and New York},
   langid       = {german},
-  sortyear     = {1988-1},
   sorttitle    = {Werke-01-000},
   indexsorttitle= {Samtliche Werke I},
   bookauthor   = {Nietzsche, Friedrich},
@@ -955,8 +946,8 @@
   annotation   = {A single volume from the critical edition of Nietzsche's
                   works. This \texttt{book} entry explicitly refers to the first
                   volume only. Note the \texttt{title} and \texttt{maintitle}
-                  fields. Also note the \texttt{sorttitle} and \texttt{sortyear}
-                  fields. We want this entry to be listed after the entry
+                  fields. Also note the \texttt{sorttitle} 
+                  field. We want this entry to be listed after the entry
                   referring to the entire edition},
 }
 
@@ -1061,7 +1052,7 @@
                   the \texttt{related} and \texttt{relatedtype} fields},
 }
 
- at book{vazques-de-parga,
+ at mvbook{vazques-de-parga,
   author       = {V{\'a}zques{ de }Parga, Luis and Lacarra, Jos{\'e} Mar{\'i}a
                   and Ur{\'i}a R{\'i}u, Juan},
   title        = {Las Peregrinaciones a Santiago de Compostela},
@@ -1074,7 +1065,7 @@
   sorttitle    = {Peregrinaciones a Santiago de Compostela},
   indextitle   = {Peregrinaciones a Santiago de Compostela, Las},
   shorttitle   = {Peregrinaciones},
-  annotation   = {A multivolume book cited as a whole. This is a \texttt{book}
+  annotation   = {A multivolume book cited as a whole. This is a \texttt{mvbook}
                   entry with \texttt{volumes}, \texttt{note},
                   \texttt{sorttitle}, and \texttt{indextitle} fields},
 }
@@ -1108,7 +1099,7 @@
                   \texttt{indextitle} fields},
 }
 
- at collection{britannica,
+ at mvcollection{britannica,
   editor       = {Preece, Warren E.},
   title        = {The {New Encyclop{\ae}dia Britannica}},
   date         = 2003,
@@ -1123,7 +1114,7 @@
   sorttitle    = {Encyclop{\ae}dia Britannica},
   indextitle   = {{Encyclop{\ae}dia Britannica}, The {New}},
   shorttitle   = {{Encyclop{\ae}dia Britannica}},
-  annotation   = {This is a \texttt{collection} entry for an encyclopedia. Note
+  annotation   = {This is a \texttt{mvcollection} entry for an encyclopedia. Note
                   the \texttt{useeditor} option in the \texttt{options} field as
                   well as the \texttt{sorttitle} field. We want this entry to be
                   cited and alphabetized by title even though there is an
@@ -1159,7 +1150,7 @@
   pages        = {1-23},
 }
 
- at collection{jaffe,
+ at mvcollection{jaffe,
   editor       = {Jaff{\'e}, Philipp},
   title        = {Regesta Pontificum Romanorum ab condita ecclesia ad annum post
                   Christum natum \textsc{mcxcviii}},
@@ -1173,7 +1164,7 @@
   editoratype  = {redactor},
   indextitle   = {Regesta Pontificum Romanorum},
   shorttitle   = {Regesta Pontificum Romanorum},
-  annotation   = {A \texttt{collection} entry with \texttt{edition} and
+  annotation   = {A \texttt{mvcollection} entry with \texttt{edition} and
                   \texttt{volumes} fields. Note the \texttt{editora} and
                   \texttt{editoratype} fields},
 }
@@ -1252,7 +1243,6 @@
   location     = {M{\"u}nchen and Berlin and New York},
   pages        = {243-334},
   langid       = {german},
-  sortyear     = {1988-2},
   sorttitle    = {Werke-01-243},
   indexsorttitle= {Vom Nutzen und Nachtheil der Historie fur das Leben},
   indextitle   = {Vom Nutzen und Nachtheil der Historie f{\"u}r das Leben},
@@ -1261,7 +1251,7 @@
                   This \texttt{inbook} entry explicitly refers to an essay found
                   in the first volume. Note the \texttt{title},
                   \texttt{booktitle}, and \texttt{maintitle} fields. Also note
-                  the \texttt{sorttitle} and \texttt{sortyear} fields. We want
+                  the \texttt{sorttitle} field. We want
                   this entry to be listed after the entry referring to the
                   entire first volume},
 }

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -17,6 +17,10 @@
 \DeclareNameAlias{editor}{sortname}
 \DeclareNameAlias{translator}{sortname}
 
+\DeclareNameWrapperAlias{author}{sortname}
+\DeclareNameWrapperAlias{editor}{sortname}
+\DeclareNameWrapperAlias{translator}{sortname}
+
 \defbibenvironment{bibliography}
   {\list
      {}

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -24,6 +24,13 @@
     Using 'date+extradate' instead}%
   \usebibmacro{date+extradate}}
 
+\newbibmacro*{bbx:ifmergeddate}{\@secondoftwo}
+
+\renewbibmacro*{date}{%
+  \usebibmacro{bbx:ifmergeddate}
+    {}
+    {\printdate}}%
+
 \def\bbx at opt@mergedate at true{\bbx at opt@mergedate at compact}
 
 % merge date/issue with date label
@@ -37,12 +44,9 @@
             \setunit*{\addspace}%
             \printdateextra}
            {\printlabeldateextra}}}}%
-  \renewbibmacro*{date}{%
-    \iflabeldateisdate
-      {}
-      {\printdate}}%
+  \renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}%
   \renewbibmacro*{issue+date}{%
-    \iflabeldateisdate
+    \usebibmacro{bbx:ifmergeddate}
       {}
       {\printtext[parens]{%
          \printfield{issue}%
@@ -58,20 +62,18 @@
          \iflabeldateisdate
            {\printdateextra}
            {\printlabeldateextra}}}}%
-  \renewbibmacro*{date}{%
-    \iflabeldateisdate
+  \renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}%
+  \renewbibmacro*{issue+date}{%
+    \ifboolexpr{test {\usebibmacro{bbx:ifmergeddate}}
+                and
+                test {\iffieldundef{issue}}}
       {}
-      {\printdate}}%
-  \renewbibmacro*{issue+date}{%
-    \ifboolexpr{not test {\iffieldundef{issue}}
-                or not test {\iflabeldateisdate}}
       {\printtext[parens]{%
          \printfield{issue}%
          \setunit*{\addspace}%
-         \iflabeldateisdate
+         \usebibmacro{bbx:ifmergeddate}
            {}
-           {\printdate}}}
-      {}%
+           {\printdate}}}%
     \newunit}}
 
 % merge year-only date with date label
@@ -80,20 +82,17 @@
     \iffieldundef{labelyear}
       {}
       {\printtext[parens]{\printlabeldateextra}}}%
-  \renewbibmacro*{date}{%
+  \renewbibmacro*{bbx:ifmergeddate}{%
     \ifboolexpr{
       test {\iflabeldateisdate}
       and
       not test {\ifdateshavedifferentprecision{label}{}}
-    }
-      {}
-      {\printdate}}%
+    }%
+  }%
   \renewbibmacro*{issue+date}{%
     \ifboolexpr{
-      test {\iflabeldateisdate}
+      test {\usebibmacro{bbx:ifmergeddate}}
       and
-      not test {\ifdateshavedifferentprecision{label}{}}
-      and
       test {\iffieldundef{issue}}
     }
       {}
@@ -109,7 +108,7 @@
     \iffieldundef{labelyear}
       {}
       {\printtext[parens]{\printlabeldateextra}}}%
-  \renewbibmacro*{date}{%
+  \renewbibmacro*{bbx:ifmergeddate}{%
     \ifboolexpr{
       test {\iflabeldateisdate}
       and
@@ -116,17 +115,12 @@
       not test {\ifdateshavedifferentprecision{label}{}}
       and
       test {\iffieldundef{extradate}}
-    }
-      {}
-      {\printdate}}%
+    }%
+  }%
   \renewbibmacro*{issue+date}{%
     \ifboolexpr{
-      test {\iflabeldateisdate}
+      test {\usebibmacro{bbx:ifmergeddate}}
       and
-      not test {\ifdateshavedifferentprecision{label}{}}
-      and
-      test {\iffieldundef{extradate}}
-      and
       test {\iffieldundef{issue}}
     }
       {}
@@ -142,7 +136,7 @@
     \iffieldundef{labelyear}
       {}
       {\printtext[parens]{\printlabeldateextra}}}%
-  \renewbibmacro*{date}{\printdate}%
+  \renewbibmacro*{bbx:ifmergeddate}{\@secondoftwo}%
   \renewbibmacro*{issue+date}{%
     \printtext[parens]{%
       \printfield{issue}%
@@ -159,6 +153,10 @@
 \DeclareNameAlias{editor}{sortname}
 \DeclareNameAlias{translator}{sortname}
 
+\DeclareNameWrapperAlias{author}{sortname}
+\DeclareNameWrapperAlias{editor}{sortname}
+\DeclareNameWrapperAlias{translator}{sortname}
+
 \defbibenvironment{bibliography}
   {\list
      {}

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.def	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.def	2018-11-03 21:11:01 UTC (rev 49069)
@@ -545,7 +545,7 @@
 % Generic formats for \printtext and \printfield
 
 \DeclareFieldFormat{emph}{\mkbibemph{#1}}
-\DeclareFieldFormat{bold}{\textbf{#1}}
+\DeclareFieldFormat{bold}{\mkbibbold{#1}}
 \DeclareFieldFormat{smallcaps}{\textsc{#1}}
 \DeclareFieldFormat{parens}{\mkbibparens{#1}}
 \DeclareFieldFormat{brackets}{\mkbibbrackets{#1}}
@@ -562,6 +562,8 @@
 % Formatting directives for literal lists
 % ------------------------------------------------------------------
 
+\DeclareListWrapperFormat{default}{#1}
+
 % The fallback used by \printlist
 
 \DeclareListFormat{default}{%
@@ -809,7 +811,8 @@
 % Formatting directives for name lists
 % ------------------------------------------------------------------
 
-\DeclareNameAlias{first-last}{given-family}% legacy alias
+\DeclareNameWrapperFormat{default}{#1}
+
 \DeclareNameFormat{given-family}{%
   \ifgiveninits
     {\usebibmacro{name:given-family}
@@ -824,7 +827,8 @@
       {\namepartsuffix}}%
   \usebibmacro{name:andothers}}
 
-\DeclareNameAlias{last-first}{family-given}% legacy alias
+\DeprecateNameFormatWithReplacement{first-last}{given-family}
+
 \DeclareNameFormat{family-given}{%
   \ifgiveninits
     {\usebibmacro{name:family-given}
@@ -838,8 +842,10 @@
       {\namepartprefix}
       {\namepartsuffix}}%
   \usebibmacro{name:andothers}}
+  
+\DeprecateNameFormatWithReplacement{last-first}{family-given}
 
-\DeclareNameAlias{last-first/first-last}{family-given/given-family}% legacy alias
+
 \DeclareNameFormat{family-given/given-family}{%
   \ifnumequal{\value{listcount}}{1}
     {\ifgiveninits
@@ -872,6 +878,8 @@
          {\namepartsuffix}}}%
   \usebibmacro{name:andothers}}
 
+\DeprecateNameFormatWithReplacement{last-first/first-last}{family-given/given-family}
+
 \DeclareNameFormat{initsonly}{%
   \usebibmacro{name:given-family}
     {\namepartfamilyi}
@@ -1091,6 +1099,8 @@
 
 % The fallback used by \indexlist
 
+\DeclareIndexListWrapperFormat{default}{#1}
+
 \DeclareIndexListFormat{default}{\index{#1}}
 
 % ------------------------------------------------------------------
@@ -1102,6 +1112,8 @@
 
 % The fallback used by \indexnames
 
+\DeclareIndexNameWrapperFormat{default}{#1}
+
 \DeclareIndexNameFormat{default}{%
   \usebibmacro{index:name}
     {\index}
@@ -1756,7 +1768,7 @@
 \defbibheading{none}{}
 
 \def\abx at MakeMarkcase{\MakeUppercase}
-\AtEndPreamble{%
+\AtBeginDocument{%
   \ifcsundef{MakeMarkcase}{}{\def\abx at MakeMarkcase{\MakeMarkcase}}}
 
 \ifcase\abx at classtype\relax % article
@@ -2966,7 +2978,9 @@
        \usebibmacro{publisher+location+date}%
        \newunit\newblock
        \usebibmacro{chapter+pages}}
-      {\printfield[title:hook]{journaltitle}%
+      {\renewbibmacro*{journal}{%
+         \printfield[title:hook]{journaltitle}}%
+       \usebibmacro{journal+issuetitle}%
        \newunit\newblock
        \usebibmacro{byeditor+others}%
        \newunit\newblock

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.sty	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/biblatex.sty	2018-11-03 21:11:01 UTC (rev 49069)
@@ -12,8 +12,8 @@
 % particular purpose.
 
 % Set up the version strings here
-\def\abx at date{2018/03/04}
-\def\abx at version{3.11}
+\def\abx at date{2018/11/02}
+\def\abx at version{3.12}
 \def\abx at bbxid{\abx at date\space v\abx at version\space biblatex bibliography style (PK/MW)}
 \def\abx at cbxid{\abx at date\space v\abx at version\space biblatex citation style (PK/MW)}
 \def\abx at lbxid{\abx at date\space v\abx at version\space biblatex localization (PK/MW)}
@@ -22,12 +22,12 @@
 % This is not updated by build script as the control file version
 % does not necessarily change with the package version.
 % This is used when writing the .bcf
-\def\blx at bcfversion{3.4}
+\def\blx at bcfversion{3.5}
 
 % This is not updated by build script as the bbl version
 % does not necessarily change with the package version.
 % This is used when checking the .bbl
-\def\blx at bblversion{2.9}
+\def\blx at bblversion{3.0}
 
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
 \ProvidesPackage{biblatex}
@@ -34,7 +34,7 @@
 [\abx at date\space v\abx at version\space programmable bibliographies (PK/MW)]
 
 %% Dependencies
-\RequirePackage{pdftexcmds}
+\RequirePackage{pdftexcmds}[2018/01/30]
 \RequirePackage{etoolbox}
 \RequirePackage{keyval}
 \RequirePackage{kvoptions}
@@ -41,7 +41,6 @@
 \RequirePackage{logreq}
 \RequirePackage{ifthen}
 \RequirePackage{url}
-\RequirePackage{xstring}
 %\RequirePackage{trace}
 
 \@ifpackagelater{etoolbox}{2010/11/29}
@@ -53,15 +52,6 @@
       This is a fatal error. I'm aborting now}%
    \endinput}
 
-\@ifpackagelater{xstring}{2013/10/13}
-  {}
-  {\PackageError{biblatex}
-     {Outdated 'xstring' package}
-     {Upgrade to xstring v1.7c (2013/10/13) or later.\MessageBreak
-      I found: '\csuse{xstringversion}'.\MessageBreak
-      This is a fatal error. I'm aborting now}%
-   \endinput}
-
 % polyglossia pretends to be babel, so we need to make sure
 % we are definitely talking to babel here.
 \AtEndPreamble{%
@@ -99,8 +89,95 @@
 \catcode`\^=7
 \def\blx at nl{^^J}
 
+\protected\def\blx at safe@actives{%
+  \let\blx at if@safe at actives\if at safe@actives
+  \let\if at safe@actives\iftrue}
+
+\protected\def\blx at rest@actives{%
+  \let\if at safe@actives\blx at if@safe at actives}
+
+%% Early errors and warnings
+\protected\def\blx at error#1#2{%
+  \begingroup
+  \blx at safe@actives
+  \PackageError{biblatex}{#1}{#2.}%
+  \endgroup}
+
+\protected\def\blx at warning@noline#1{%
+  \begingroup
+  \blx at safe@actives
+  \PackageWarningNoLine{biblatex}{#1}%
+  \endgroup}
+\let\blx at warning\blx at warning@noline
+\AtEndOfPackage{%
+  \protected\def\blx at warning#1{%
+    \begingroup
+    \blx at safe@actives
+    \PackageWarning{biblatex}{#1}%
+    \endgroup}}
+
 %% Compatibility
+\def\blx at packageincompatibility{%
+  \def\do##1{%
+    \@ifpackageloaded{##1}
+      {\ifcsundef{blx at pkgloaded@##1}
+         {\global\cslet{blx at pkgloaded@##1}\@empty
+          \blx at error
+            {Incompatible package '##1'}
+            {The '##1' package and biblatex are incompatible}}
+         {}}
+      {}}%
+  \docsvlist{%
+    amsrefs,apacite,babelbib,backref,bibtopic,bibunits,chapterbib,
+    cite,citeref,drftcite,footbib,inlinebib,jurabib,mcite,mciteplus,
+    mlbib,multibbl,multibib,natbib,opcit,overcite,splitbib,ucs}%
+  % etextools is special, it gets an option to demote the error to a warning
+  % remind people to restore \forlistloop
+  \ifcsdef{blx at noerroretextools}
+    {\@ifpackageloaded{etextools}
+       {\ifcsundef{blx at pkgloaded@etextools}
+          {\global\cslet{blx at pkgloaded@etextools}\@empty
+           \blx at warning@noline{%
+             Incompatible package 'etextools' loaded,\MessageBreak
+             no error is thrown because you defined\MessageBreak
+             '\string\blx at noerroretextools'.\MessageBreak
+             'etextools' redefines '\string\forlistloop', you must\MessageBreak
+             restore the definition from 'etoolbox'\MessageBreak
+             before you load biblatex}}
+          {}}
+       {}}
+    {\@ifpackageloaded{etextools}
+       {\ifcsundef{blx at pkgloaded@etextools}
+          {\global\cslet{blx at pkgloaded@etextools}\@empty
+           \blx at error
+             {Incompatible package 'etextools'}
+             {The 'etextools' package and biblatex are
+              incompatible.\MessageBreak
+              If you must load 'etextools' at all costs, define the command%
+              \MessageBreak '\string\blx at noerroretextools'}}
+          {}}
+       {}}}
 
+% Call this right here, almost immediately after loading to give sensible
+% errors for incompatibilities that arise at loading-time.
+% The macro is called again a second time in \AtEndPreamble when all packages
+% should be loaded.
+% This still can't catch all cases, \usepackage{biblatex}\usepackage{natbib}
+% still gives a weird error.
+\blx at packageincompatibility
+
+% people should not be abusing noerroretextools, so warn if it is not needed
+\def\blx at packageincompatibility@endpreambleonly{%
+  \ifcsdef{blx at noerroretextools}
+    {\@ifpackageloaded{etextools}
+       {}
+       {\blx at warning@noline{%
+          You defined '\string\blx at noerroretextools',\MessageBreak
+          but 'etextools' is not loaded.\MessageBreak
+          Please do not define '\string\blx at noerroretextools'\MessageBreak
+          unless you really need it}}}
+    {}}
+
 \begingroup
 \catcode`\#=12
 \gdef\blx at patchbidifootnotes{%
@@ -122,35 +199,8 @@
 \endgroup
 
 \AtEndPreamble{%
-  \def\do#1{%
-    \@ifpackageloaded{#1}
-      {\blx at error
-         {Incompatible package '#1'}
-         {The '#1' package and biblatex are incompatible}}
-      {}}%
-  \docsvlist{%
-    amsrefs,apacite,babelbib,backref,bibtopic,bibunits,chapterbib,
-    cite,citeref,drftcite,footbib,inlinebib,jurabib,mcite,mciteplus,
-    mlbib,multibbl,multibib,natbib,opcit,overcite,splitbib,ucs}%
-  \iftoggle{blx at noerroretextools}
-    {\@ifpackageloaded{etextools}
-       {\blx at warning@noline{%
-          Incompatible package 'etextools' loaded,\MessageBreak
-          no error is thrown because you set\MessageBreak
-          'noerroretextools=true'.\MessageBreak
-          'etextools' redefines '\string\forlistloop', you will\MessageBreak
-          need to restore the definition from 'etoolbox'}}
-       {\blx at warning@noline{%
-          You set 'noerroretextools=true',\MessageBreak
-          but 'etextools' is not loaded.\MessageBreak
-          Please do not set 'noerroretextools' to 'true'\MessageBreak
-          unless you really need it}}}
-    {\@ifpackageloaded{etextools}
-       {\blx at error
-          {Incompatible package 'etextools'}
-          {The 'etextools' package and biblatex are incompatible.\MessageBreak
-           If you must load 'etextools' at all costs, set 'noerroretextools=true'}}
-       {}}%
+  \blx at packageincompatibility
+  \blx at packageincompatibility@endpreambleonly
   \def\blx at langstrings{}%
   % Set up sortlocale defaults and default language if babel/polyglossia is not loaded
   \ifdefstring\blx at sortlocale{auto}
@@ -164,15 +214,15 @@
      \ifundef\xpg at loaded
        {\let\xpg at loaded\@empty
         \let\xpg at vloaded\@empty
-        \PackageWarningNoLine{biblatex}{Upgrade package 'polyglossia' to > v1.42.0 recommended}}
+        \blx at warning@noline{Upgrade package 'polyglossia' to > v1.42.0 recommended}}
        {}%
      \def\do#1{\blx at langsetup{#1}}%
      \expandafter\docsvlist\expandafter{\xpg at loaded}%
      \expandafter\docsvlist\expandafter{\xpg at vloaded}%
      \ifboolexpr{
-      not test {\iftoggle{blx at autolangbib}}
+      not togl {blx at autolangbib}
       and
-      not test {\iftoggle{blx at autolangcite}}}
+      not togl {blx at autolangcite}}
        {\blx at mknoautolang}
        {\blx at mkautolangpoly}}
     {\@ifpackageloaded{babel}
@@ -180,9 +230,9 @@
        \def\do#1{\blx at langsetup{#1}}%
        \expandafter\docsvlist\expandafter{\bbl at loaded}%
        \ifboolexpr{
-        not test {\iftoggle{blx at autolangbib}}
+        not togl {blx at autolangbib}
         and
-        not test {\iftoggle{blx at autolangcite}}}
+        not togl {blx at autolangcite}}
          {\blx at mknoautolang}
          {\blx at mkautolangbabel}}
       {\blx at mknoautolang}}%
@@ -256,12 +306,15 @@
     \l at doldold@footnotetext,% ledmac
     \predefinedfootnotetext,% linguex
     \@fntORI}%                frenchle
-  \iftoggle{blx at tempa}%       ams classes
-    {\patchcmd\@footnotetext
-       {\@makefntext}
-       {\toggletrue{blx at footnote}\@makefntext}
-       {\togglefalse{blx at tempa}}
-       {}}
+  \iftoggle{blx at tempa}%       ams classes ...
+    {\def\do#1{%
+       \patchcmd#1
+         {\@makefntext}
+         {\toggletrue{blx at footnote}\@makefntext}
+         {\togglefalse{blx at tempa}}
+         {}}%
+     \docsvlist{\@footnotetext,%    ams classes standard
+                \H@@footnotetext}}% hyperref
     {}%
   \@ifpackageloaded{bidi}%    bidi
     {\blx at patchbidifootnotes}
@@ -378,7 +431,14 @@
        {}%
      \@ifpackagelater{csquotes}{2010/06/09}
        {}
-       {\newcommand*{\@quotereset}{}\newcount\@quotereset}}
+       {\newcommand*{\@quotereset}{}\newcount\@quotereset}%
+     \newcommand*{\blx at initoquote}{\initoquote}%
+     \newcommand*{\blx at textooquote}{\textooquote}%
+     \newcommand*{\blx at textcoquote}{\textcoquote}%
+     \newcommand*{\blx at initiquote}{\initiquote}%
+     \newcommand*{\blx at textoiquote}{\textoiquote}%
+     \newcommand*{\blx at textciquote}{\textciquote}%
+     \newcommand*{\blx at enquote}{\enquote}}
     {\@ifpackageloaded{babel}
        {\blx at warning@noline{%
           'babel/polyglossia' detected but 'csquotes' missing.\MessageBreak
@@ -390,27 +450,28 @@
      \newcount\@quotereset
      \newcommand*{\@setquotesfcodes}{}%
      \let\@setquotesfcodes\relax
-     \newrobustcmd*{\initoquote}{\@quotelevel\@ne}%
-     \newrobustcmd*{\initiquote}{\@quotelevel\tw@}%
-     \newrobustcmd*{\textooquote}{``}%
-     \newrobustcmd*{\textcoquote}{''}%
-     \newrobustcmd*{\textoiquote}{`\relax}% block ligs
-     \newrobustcmd*{\textciquote}{'\relax}% block ligs
-     \newrobustcmd*{\enquote}{\@ifstar\blx at enquote@ii\blx at enquote}%
-     \def\blx at enquote{%
+     \newrobustcmd*{\blx at initoquote}{\@quotelevel\@ne}%
+     \newrobustcmd*{\blx at initiquote}{\@quotelevel\tw@}%
+     \newrobustcmd*{\blx at textooquote}{``}%
+     \newrobustcmd*{\blx at textcoquote}{''}%
+     \newrobustcmd*{\blx at textoiquote}{`\relax}% block ligs
+     \newrobustcmd*{\blx at textciquote}{'\relax}% block ligs
+     \newrobustcmd*{\blx at enquote}
+       {\@ifstar\blx at enquote@iii\blx at enquote@i}%
+     \def\blx at enquote@i{%
        \ifnum\@quotelevel>\z@
+         \expandafter\blx at enquote@iii
+       \else
          \expandafter\blx at enquote@ii
-       \else
-         \expandafter\blx at enquote@i
        \fi}%
-     \long\def\blx at enquote@i#1{%
-       \begingroup\initoquote
-       \textooquote#1\textcoquote
-       \endgroup}%
      \long\def\blx at enquote@ii#1{%
-       \begingroup\initiquote
-       \textoiquote#1\textciquote
+       \begingroup\blx at initoquote
+       \blx at textooquote#1\blx at textcoquote
        \endgroup}%
+     \long\def\blx at enquote@iii#1{%
+       \begingroup\blx at initiquote
+       \blx at textoiquote#1\blx at textciquote
+       \endgroup}%
      \appto\blx at setsfcodes{%
        \sfcode`\`=\z@
        \sfcode`\'=\z@}}%
@@ -448,10 +509,70 @@
 % trick showkeys into believing we're havard
 \let\HAR at checkdef\@empty
 
+\providecommand{\@gobblefive}[5]{}
+
+\ifundef\pdf at mdfivesum
+  {\let\blx at mdfivesum\@firstofone
+   \blx at warning@noline{Command '\string\pdf at mdfivesum' undefined.\MessageBreak
+     'labelprefix' may not be able to accept all input}}
+  {\let\blx at mdfivesum\pdf at mdfivesum}
+
+
+% xstring replacements
+
+% reverse a given string
+% idea by egreg (https://tex.stackexchange.com/users/4427/egreg)
+% from https://tex.stackexchange.com/q/36034/
+% relicensed under LPPL according to
+% https://tex.meta.stackexchange.com/a/3333/
+\def\blx at revstr#1{%
+  \ifblank{#1}
+    {}
+    {\blx at revstr@l #1\blx at revstr@b at i\blx at revstr@b at ii}}
+
+\def\blx at revstr@l#1#2\blx at revstr@b at i#3\blx at revstr@b at ii{%
+  \ifblank{#2}
+    {#1#3}
+    {\blx at revstr@l#2\blx at revstr@b at i#1#3\blx at revstr@b at ii}}
+
+% these tests are inspired by Stephan v. Bechtolsheim's TUGboat article
+% https://www.tug.org/TUGboat/tb09-1/tb20bechtolsheim.pdf
+% but we need to test for start and end and not for generic substring
+% start is easy, delimited arguments help there
+\protected\def\blx at ifstrstartswith#1#2{%
+  \def\blx at ifstrstartswith@i ##1#2##2&{%
+    \ifblank{##1}}%
+  \blx at ifstrstartswith@i #1#2&}
+
+% end is harder, so we reverse everything and apply the start test
+\protected\def\blx at ifstrendswith#1#2{%
+  \begingroup
+  \edef\blx at tempa{\endgroup
+    \noexpand\blx at ifstrstartswith{\blx at revstr{#1}}{\blx at revstr{#2}}}%
+  \blx at tempa}
+
+% not expandable, so write the result to the macro given in #3
+% {<string>}{<strip>}{<result>}
+% <result> will contain the bit of <string>
+% after the first occurrence of <strip>
+\protected\def\blx at stripfromstartinto#1#2#3{%
+  \def\blx at stripfromstart@i ##1#2##2&{%
+    \def#3{##2}}%
+  \blx at stripfromstart@i #1&}
+
+% {<string>}{<strip>}{<result>}
+% <result> will contain the bit of <string>
+% before the last occurence of <strip>
+\protected\def\blx at stripfromendinto#1#2#3{%
+  \begingroup
+  \edef\blx at tempa{\endgroup
+    \noexpand\blx at stripfromstartinto{\blx at revstr{#1}}{\blx at revstr{#2}}}%
+  \blx at tempa{#3}%
+  \edef#3{\noexpand\blx at revstr{#3}}%
+  \edef#3{#3}}
+
 %% Allocation
 
-\providecommand{\@gobblefive}[5]{}
-
 % Counter to track nested tabularx environemnts so we don't
 % try to patch the commands more than once below as this undefs some
 % macros and an error is thrown
@@ -486,6 +607,8 @@
 \def\theminitems{\the\c at minitems}
 \newcounter{citecounter}
 \def\thecitecount{\the\c at citecounter}
+\newcounter{maxcitecounter}
+\def\themaxcitecounter{\the\c at maxcitecounter}
 \newcounter{savedcitecounter}
 \def\thecitecount{\the\c at savedcitecounter}
 \newcounter{uniquelist}
@@ -500,6 +623,8 @@
 \def\themaxextratitle{\the\c at maxextratitle}
 \newcounter{maxextratitleyear}
 \def\themaxextratitleyear{\the\c at maxextratitleyear}
+\newcounter{maxextraname}
+\def\themaxextraname{\the\c at maxextraname}
 \newcounter{maxextradate}
 \def\themaxextradate{\the\c at maxextradate}
 \newcounter{maxextraalpha}
@@ -524,7 +649,9 @@
 \newcount\blx at parenlevel@text
 \newcount\blx at parenlevel@foot
 \expandafter\newcount\csname blx at sectionciteorder@0\endcsname
+\newcount\blx at entrysetcounter
 
+
 \def\blx at uniquename{0}
 \def\blx at uniquelist{0}
 \def\blx at maxbibnames{0}
@@ -531,10 +658,14 @@
 \def\blx at minbibnames{0}
 \def\blx at maxcitenames{0}
 \def\blx at mincitenames{0}
+\def\blx at maxsortnames{0}
+\def\blx at minsortnames{0}
 \def\blx at maxbibnames@type{\blx at maxbibnames}
 \def\blx at minbibnames@type{\blx at minbibnames}
 \def\blx at maxcitenames@type{\blx at maxcitenames}
 \def\blx at mincitenames@type{\blx at mincitenames}
+\def\blx at maxsortnames@type{\blx at maxsortnames}
+\def\blx at minsortnames@type{\blx at minsortnames}
 \def\blx at maxalphanames{0}
 \def\blx at minalphanames{0}
 \def\blx at maxitems{0}
@@ -590,6 +721,7 @@
 \newtoggle{blx at labeltitleyear}
 \newtoggle{blx at labeldateparts}
 \newtoggle{blx at natbib}
+\newtoggle{blx at noroman}
 \newtoggle{blx at mcite}
 \newtoggle{blx at loadfiles}
 \newtoggle{blx at singletitle}
@@ -615,14 +747,12 @@
 \newtoggle{blx at localnumber}
 \newtoggle{blx at refcontext}
 
-% Nice command from etextools which causes too many problems if you load
-% the whole package
-% Don't use it on arbitrary user input as it dies on non-expandable arguments
-\newcommand*{\blx at xifempty}[1]{\blx at xifstrcmp{#1}{}}
-% {string1}{string2}{true}{false}
-\newcommand*{\blx at xifstrcmp}[2]{\csname @%
-  \ifnum\pdf at strcmp{#1}{#2}=0 first\else second\fi
-  oftwo\endcsname}
+\newcommand*{\blx at xifstrequal}[2]{%
+  \begingroup
+  \edef\blx at tempa{%
+    \endgroup
+    \noexpand\ifstrequal{#1}{#2}}%
+  \blx at tempa}
 
 % Special fields which need resolution using the information provided by biber
 \listadd\abx at rfields{labeltitle}
@@ -658,6 +788,8 @@
 % Initialise some lists which track changing citations/sortingtemplates
 % etc. between runs
 \global\let\blx at cites\@empty
+\global\let\blx at nocites\@empty
+\global\let\blx at directcites\@empty
 \global\let\blx at refcontexts\@empty
 \global\let\blx at lastrefcontexts\@empty
 \global\let\blx at sortingtemplatenames\@empty
@@ -680,16 +812,22 @@
 % Deprecations
 \newrobustcmd*{\DeprecateField}[2]{%
   \csdef{abx at field@#1}{%
-    \ifcsundef{abx at field@legacy at warning@#1}{\blx at warning@noline{Field '#1' is deprecated. #2}}{}%
-    \global\cslet{abx at field@legacy at warning@#1}\@empty}}%
+    \ifcsundef{abx at legacywarning@field@#1}
+      {\blx at warning@noline{Field '#1' is deprecated. #2}}
+      {}%
+    \global\cslet{abx at legacywarning@field@#1}\@empty}}%
 \newrobustcmd*{\DeprecateList}[2]{%
   \csdef{abx at list@#1}{%
-    \ifcsundef{abx at list@legacy at warning@#1}{\blx at warning@noline{List '#1' is deprecated. #2}}{}%
-    \global\cslet{abx at list@legacy at warning@#1}\@empty}}%
+    \ifcsundef{abx at legacywarning@list@#1}
+      {\blx at warning@noline{List '#1' is deprecated. #2}}
+      {}%
+    \global\cslet{abx at legacywarning@list@#1}\@empty}}
 \newrobustcmd*{\DeprecateName}[2]{%
   \csdef{abx at name@#1}{%
-    \ifcsundef{abx at name@legacy at warning@#1}{\blx at warning@noline{Name '#1' is deprecated. #2}}{}%
-    \global\cslet{abx at name@legacy at warning@#1}\@empty}}%
+    \ifcsundef{abx at legacywarning@name@#1}
+      {\blx at warning@noline{Name '#1' is deprecated. #2}}
+      {}%
+    \global\cslet{abx at legacywarning@name@#1}\@empty}}
 
 \let\blx at aliasfields\@empty
 
@@ -698,13 +836,13 @@
     \ifcsundef{abx at field@#2}
       {}
       {\csdef{abx at field@#1}{%
-        \csuse{abx at field@#2}%
-        \ifcsundef{abx at field@legacy at warning@#1}
-          {\blx at warning@noline{Field '#1' is deprecated.\MessageBreak
-             Please use '#2' instead.\MessageBreak
-             Using '#2' now}}
-          {}%
-        \global\cslet{abx at field@legacy at warning@#1}\@empty}}}}
+         \csuse{abx at field@#2}%
+         \ifcsundef{abx at legacywarning@field@#1}
+           {\blx at warning@noline{Field '#1' is deprecated.\MessageBreak
+              Please use '#2' instead.\MessageBreak
+              Using '#2' now}}
+           {}%
+         \global\cslet{abx at legacywarning@field@#1}\@empty}}}}
 
 \newrobustcmd*{\DeprecateListWithReplacement}[2]{%
   \appto\blx at aliasfields{%
@@ -711,13 +849,13 @@
     \ifcsundef{abx at list@#2}
       {}
       {\csdef{abx at list@#1}{%
-        \csuse{abx at list@#2}%
-        \ifcsundef{abx at list@legacy at warning@#1}
-          {\blx at warning@noline{List '#1' is deprecated.\MessageBreak
-             Please use '#2' instead.\MessageBreak
-             Using '#2' now}}
-          {}%
-        \global\cslet{abx at list@legacy at warning@#1}\@empty}}}}
+         \csuse{abx at list@#2}%
+         \ifcsundef{abx at legacywarning@list@#1}
+           {\blx at warning@noline{List '#1' is deprecated.\MessageBreak
+              Please use '#2' instead.\MessageBreak
+              Using '#2' now}}
+           {}%
+         \global\cslet{abx at legacywarning@list@#1}\@empty}}}}
 
 \newrobustcmd*{\DeprecateNameWithReplacement}[2]{%
   \appto\blx at aliasfields{%
@@ -724,13 +862,13 @@
     \ifcsundef{abx at name@#2}
       {}
       {\csdef{abx at name@#1}{%
-        \csuse{abx at name@#2}%
-        \ifcsundef{abx at name@legacy at warning@#1}
-          {\blx at warning@noline{Name '#1' is deprecated.\MessageBreak
-             Please use '#2' instead.\MessageBreak
-             Using '#2' now}}
-          {}%
-        \global\cslet{abx at name@legacy at warning@#1}\@empty}}}}
+         \csuse{abx at name@#2}%
+         \ifcsundef{abx at legacywarning@name@#1}
+           {\blx at warning@noline{Name '#1' is deprecated.\MessageBreak
+              Please use '#2' instead.\MessageBreak
+              Using '#2' now}}
+           {}%
+         \global\cslet{abx at legacywarning@name@#1}\@empty}}}}
 
 %% Initialisation
 \def\blx at blxinit{%
@@ -760,13 +898,6 @@
     {}}
 
 %% Auxiliary commands
-\protected\def\blx at safe@actives{%
-  \let\blx at if@safe at actives\if at safe@actives
-  \let\if at safe@actives\iftrue}
-
-\protected\def\blx at rest@actives{%
-  \let\if at safe@actives\blx at if@safe at actives}
-
 \protected\def\blx at regimc#1{%
   \xappto\blx at blxinit{%
     \let\noexpand#1\expandafter\noexpand\csname
@@ -980,27 +1111,7 @@
   )
 }}
 
-%% User feedback
-
-\protected\def\blx at error#1#2{%
-  \begingroup
-  \blx at safe@actives
-  \PackageError{biblatex}{#1}{#2.}%
-  \endgroup}
-
-\protected\def\blx at warning@noline#1{%
-  \begingroup
-  \blx at safe@actives
-  \PackageWarningNoLine{biblatex}{#1}%
-  \endgroup}
-\let\blx at warning\blx at warning@noline
-\AtEndOfPackage{
-  \protected\def\blx at warning#1{%
-    \begingroup
-    \blx at safe@actives
-    \PackageWarning{biblatex}{#1}%
-    \endgroup}}
-
+%% More user feedback
 \protected\def\blx at warning@entry#1{%
   \ifdef\abx at field@entrykey
     {\blx at warning{#1\MessageBreak at entry '\abx at field@entrykey'}}
@@ -1012,7 +1123,7 @@
   \PackageInfo{biblatex}{#1\@gobble}%
   \endgroup}
 \let\blx at info\blx at info@noline
-\AtEndOfPackage{
+\AtEndOfPackage{%
   \protected\def\blx at info#1{%
     \begingroup
     \blx at safe@actives
@@ -1160,7 +1271,8 @@
   \blx at warning{Conflicting options.\MessageBreak#1}}
 
 \def\blx at warn@badoptdt#1{%
-  \blx at warning{Invalid option datatype '#1'.\MessageBreak Defaulting to 'boolean'}}
+  \blx at warning{Invalid option datatype '#1'.\MessageBreak
+    Defaulting to 'boolean'}}
 
 \def\blx at warn@depropt#1{%
   \blx at warning{Deprecated option.\MessageBreak Ignoring '#1'}}
@@ -2046,6 +2158,8 @@
 \def\blx at imc@ifbibmacroundef#1{%
   \ifcsundef{abx at macro@#1}}
 
+\def\ifbibmacroundef{\blx at imc@ifbibmacroundef}
+
 % {<field>}
 \def\blx at imc@thefield#1{\csuse{abx at field@#1}}
 
@@ -2732,7 +2846,7 @@
   \blx at imc@iffieldundef{#1}
     {\@secondoftwo}
     {\expandafter\expandafter
-     \expandafter\ifinteger
+     \expandafter\blx at imc@ifinteger
      \expandafter\expandafter
      \expandafter{\csname abx at field@#1\endcsname}}}
 
@@ -3246,12 +3360,15 @@
     {\blx at declaredelimclear}
     {\blx at declaredelim}}
 
+\def\blx at cleardelim#1{%
+  \ifcsvoid{blx at declaredelimcontexts@#1}
+    {}
+    {\def\do##1{\csundef{blx at printdelim@##1@#1}}%
+     \dolistcsloop{blx at declaredelimcontexts@#1}}%
+  \cslet{blx at declaredelimcontexts@#1}\@empty}
+
 \newrobustcmd*{\blx at declaredelimclear}[3][]{%
-  \ifcsvoid{blx at declaredelimcontexts@#2}
-    {}
-    {\def\do##1{\csundef{blx at printdelim@##1@#2}}%
-     \dolistcsloop{blx at declaredelimcontexts@#2}}%
-  \cslet{blx at declaredelimcontexts@#2}\@empty
+  \blx at cleardelim{#2}%
   \ifblank{#1}
     {\blx at declaredelim{#2}{#3}}
     {\blx at declaredelim[#1]{#2}{#3}}}
@@ -3272,32 +3389,64 @@
     \csdef{#1##1}{#4}}%
   \forcsvlist{\do at i}{#3}}
 
-% *[<contextname, ...>]{<alias>}{<delim>}
+% *[<alias context, ...>]{<alias>}[<delim context>]{<delim>}
 \newrobustcmd*{\DeclareDelimAlias}{%
   \@ifstar
-    {\blx at declaredelimalias}
-    {\blx at declaredelimaliasauto}}
+    {\blx at declaredelimalias@expl}
+    {\blx at declaredelimalias@auto}}
 
-\newrobustcmd*{\blx at declaredelimalias}[3][]{%
-  \ifblank{#1}
-    {\blx at declaredelimalias@i{}{#2}{#3}}
-    {\def\do##1{%
-       \blx at declaredelimalias@i{blx at printdelim@##1@}{#2}{#3}}%
-     \docsvlist{#1}}}
-
-\newrobustcmd*{\blx at declaredelimaliasauto}[2]{%
-  \blx at declaredelimalias@i{}{#1}{#2}%
+\newrobustcmd*{\blx at declaredelimalias@auto}[2]{%
+  \blx at cleardelim{#1}%
+  \blx at declaredelimalias@def{}{#1}{}{#2}%
   \ifcsvoid{blx at declaredelimcontexts@#2}
     {}
     {\def\do##1{%
-       \blx at declaredelimalias@i{blx at printdelim@##1@}{#1}{#2}}%
+       \blx at declaredelimalias@def
+         {blx at printdelim@##1@}{#1}{blx at printdelim@##1@}{#2}}%
      \dolistcsloop{blx at declaredelimcontexts@#2}}}
 
-\def\blx at declaredelimalias@i#1#2#3{%
+\def\blx at declaredelimalias@expl{%
+  \@ifnextchar[%]
+    {\blx at declaredelimalias@expl at i}
+    {\blx at declaredelimalias@expl at i[]}}
+
+\def\blx at declaredelimalias@expl at i[#1]#2{%
+  \@ifnextchar[%]
+    {\blx at declaredelimalias@expl at iii{#1}{#2}}
+    {\blx at declaredelimalias@expl at ii{#1}{#2}}}
+
+\def\blx at declaredelimalias@expl at ii#1#2#3{%
+  \ifblank{#1}
+    {\blx at declaredelimalias@def{}{#2}{}{#3}}
+    {\def\do##1{%
+       \blx at declaredelimalias@def
+         {blx at printdelim@##1@}{#2}{blx at printdelim@##1@}{#3}}%
+     \docsvlist{#1}}}
+
+\def\blx at declaredelimalias@expl at iii#1#2[#3]#4{%
+  \ifblank{#1}
+    {\ifblank{#3}
+       {\blx at declaredelimalias@def{}{#2}{}{#4}}
+       {\blx at declaredelimalias@def{}{#2}{blx at printdelim@#3@}{#4}}}
+    {\ifblank{#3}
+       {\def\do##1{%
+          \blx at declaredelimalias@def
+            {blx at printdelim@##1@}{#2}{}{#4}}}
+       {\def\do##1{%
+          \blx at declaredelimalias@def
+            {blx at printdelim@##1@}{#2}{blx at printdelim@#3@}{#4}}}%
+     \docsvlist{#1}}}
+
+\def\blx at declaredelimalias@def#1#2#3#4{%
   \ifcsdef{#1#2}
     {\blx at inf@delimdeclare{#2}{#1}}
     {}%
-  \csdef{#1#2}{\csuse{#1#3}}}
+  \ifblank{#1}
+    {}
+    {\ifinlistcs{#1}{blx at declaredelimcontexts@#2}
+       {}
+       {\listcsadd{blx at declaredelimcontexts@#2}{#1}}}%
+  \csdef{#1#2}{\ifcsundef{#3#4}{\csuse{#4}}{\csuse{#3#4}}}}
 
 \def\blx at delimcontext{none}
 \newcommand*{\printdelim}[2][]{%
@@ -3320,7 +3469,7 @@
     {#1}}
 
 \newcommand*{\DeclareDelimcontextAlias}[2]{%
-  \csgdef{blx at delimcontextalias@#1}{#2}}
+  \csdef{blx at delimcontextalias@#1}{#2}}
 
 \newrobustcmd*{\AtUsedriver}{%
   \@ifstar
@@ -3483,6 +3632,10 @@
               or (not test {\ifdatehastime{#1}}
                   and test {\ifdatehastime{#2}})}}
 
+\def\blx at imc@ifdateyearsequal#1#2{%
+  \ifboolexpr{ test {\iffieldsequal{#1year}{#2year}}
+               and test {\iffieldsequal{#1dateera}{#2dateera}}}}
+
 \blx at regimcs{%
   \ifdriver \thefield \strfield \csfield \usefield \thelist \strlist \thename \strname
   \clearfield \clearlist \clearname \restorefield \restorelist \restorename
@@ -3490,7 +3643,7 @@
   \ifciteseen  \ifciteibid \ifciteidem \ifopcit \ifloccit
   \ifcurrentfield \ifcurrentlist \ifcurrentname \ifentrytype
   \iffieldequalcs \iffieldequals \iffieldequalstr \iffieldsequal
-  \ifbibmacroundef \iffieldundef \iffieldxref \iflistequalcs \iflistequals
+  \iffieldundef \iffieldxref \iflistequalcs \iflistequals
   \iflistsequal \iflistundef \iflistxref
   \ifmorenames \ifmoreitems \iffirstcitekey \iflastcitekey
   \ifnameequalcs \ifnameequals \ifnamesequal \ifnameundef \ifnamexref
@@ -3500,6 +3653,7 @@
   \iffieldint \iffieldnum \iffieldnums \iffieldpages
   \iflabeldateisdate \ifdatehasyearonlyprecision \ifdatehastime
   \ifdateshavedifferentprecision
+  \ifdateyearsequal
   \mkpageprefix \mkpagetotal
   \newblock \newunit \setunit \printunit \finentry}
 
@@ -3515,6 +3669,7 @@
   \def\ifcrossrefsource{\iftoggle{abx at bool@crossrefsource}}%
   \def\ifxrefsource{\iftoggle{abx at bool@xrefsource}}%
   \def\ifsingletitle{\iftoggle{abx at bool@singletitle}}%
+  \def\ifnocite{\iftoggle{abx at bool@nocite}}%
   \def\ifuniquetitle{\iftoggle{abx at bool@uniquetitle}}%
   \def\ifuniquebaretitle{\iftoggle{abx at bool@uniquebaretitle}}%
   \def\ifuniquework{\iftoggle{abx at bool@uniquework}}%
@@ -3851,6 +4006,24 @@
     {\blx at defformat\blx at defplainformat{fid}*}
     {\blx at defformat\blx at defplainformat{fid}{}}}
 
+\newrobustcmd*{\DeclareNameWrapperFormat}{%
+  \@ifstar
+    {\blx at defformat\blx at defnameformat{nwd}*}
+    {\blx at defformat\blx at defnameformat{nwd}{}}}
+\newrobustcmd*{\DeclareIndexNameWrapperFormat}{%
+  \@ifstar
+    {\blx at defformat\blx at defnameformat{nxd}*}
+    {\blx at defformat\blx at defnameformat{nxd}{}}}
+
+\newrobustcmd*{\DeclareListWrapperFormat}{%
+  \@ifstar
+    {\blx at defformat\blx at defplainformat{lwd}*}
+    {\blx at defformat\blx at defplainformat{lwd}{}}}
+\newrobustcmd*{\DeclareIndexListWrapperFormat}{%
+  \@ifstar
+    {\blx at defformat\blx at defplainformat{lxd}*}
+    {\blx at defformat\blx at defplainformat{lxd}{}}}
+
 % {<macro>}{<class>}{<*>}
 \def\blx at defformat#1#2#3{%
   \@ifnextchar[%]
@@ -3936,15 +4109,21 @@
 \newrobustcmd*{\savefieldformat}[2][*]{\blx at save{abx at ffd@#1@#2}}
 \newrobustcmd*{\savelistformat}[2][*]{\blx at save{abx at lfd@#1@#2}}
 \newrobustcmd*{\savenameformat}[2][*]{\blx at save{abx at nfd@#1@#2}}
+\newrobustcmd*{\savelistwrapperformat}[2][*]{\blx at save{abx at lwd@#1@#2}}
+\newrobustcmd*{\savenamewrapperformat}[2][*]{\blx at save{abx at nwd@#1@#2}}
 
 \newrobustcmd*{\restorefieldformat}[2][*]{\blx at restore{abx at ffd@#1@#2}}
 \newrobustcmd*{\restorelistformat}[2][*]{\blx at restore{abx at lfd@#1@#2}}
 \newrobustcmd*{\restorenameformat}[2][*]{\blx at restore{abx at nfd@#1@#2}}
+\newrobustcmd*{\restorelistwrapperformat}[2][*]{\blx at restore{abx at lwd@#1@#2}}
+\newrobustcmd*{\restorenamewrapperformat}[2][*]{\blx at restore{abx at nwd@#1@#2}}
 
 % [<entrytype>]{<name>}{<true>}{<false>}
 \newrobustcmd*{\iffieldformatundef}[2][*]{\ifcsundef{abx at ffd@#1@#2}}
 \newrobustcmd*{\iflistformatundef}[2][*]{\ifcsundef{abx at lfd@#1@#2}}
 \newrobustcmd*{\ifnameformatundef}[2][*]{\ifcsundef{abx at nfd@#1@#2}}
+\newrobustcmd*{\iflistwrapperformatundef}[2][*]{\ifcsundef{abx at lwd@#1@#2}}
+\newrobustcmd*{\ifnamewrapperformatundef}[2][*]{\ifcsundef{abx at nwd@#1@#2}}
 
 % [<entrytype>]{<alias>}[<entrytype>]{<name>}
 \newrobustcmd*{\DeclareNameAlias}{\blx at defalias{nfd}}
@@ -3956,6 +4135,62 @@
 \newrobustcmd*{\DeclareFieldAlias}{\blx at defalias{ffd}}
 \newrobustcmd*{\DeclareIndexFieldAlias}{\blx at defalias{fid}}
 
+\newrobustcmd*{\DeclareNameWrapperAlias}{\blx at defalias{nwd}}
+\newrobustcmd*{\DeclareIndexNameWrapperAlias}{\blx at defalias{nxd}}
+
+\newrobustcmd*{\DeclareListWrapperAlias}{\blx at defalias{lwd}}
+\newrobustcmd*{\DeclareIndexListWrapperAlias}{\blx at defalias{lxd}}
+
+% #1: internal type signature, #2: type text for warning
+%      #3         #4         #5          #6
+% [aliastype]{aliasname}[formattype]{formatname}
+\def\blx at deprecateformat#1#2{%
+  \@ifnextchar[%]
+    {\blx at deprecateformat@i{#1}{#2}}
+    {\blx at deprecateformat@i{#1}{#2}[*]}}
+\def\blx at deprecateformat@i#1#2[#3]#4{%
+  \@ifnextchar[%]
+    {\blx at deprecateformat@ii{#1}{#2}{#3}{#4}}
+    {\blx at deprecateformat@ii{#1}{#2}{#3}{#4}[*]}}
+\def\blx at deprecateformat@ii#1#2#3#4[#5]#6{%
+  \blx at safe@actives
+  \afterassignment\blx at rest@actives
+  \csdef{abx@#1@#3@#4}{%
+    \ifcsundef{abx at legacywarning@#1@#3@#4}
+      {\global\cslet{abx at legacywarning@#1@#3@#4}\@empty
+       \blx at warning@noline{%
+         #2 '#4' deprecated.\MessageBreak
+         Please use '#6' instead.\MessageBreak
+         Using '#6' now}}
+      {}%
+    \csname abx@#1@#5@#6\endcsname}}
+
+% [<entrytype>]{<alias>}[<entrytype>]{<name>}
+\newrobustcmd*{\DeprecateNameFormatWithReplacement}{%
+  \blx at deprecateformat{nfd}{Name format}}
+\newrobustcmd*{\DeprecateIndexNameFormatWithReplacement}{%
+  \blx at deprecateformat{nid}{Index name format}}
+
+\newrobustcmd*{\DeprecateListFormatWithReplacement}{%
+  \blx at deprecateformat{lfd}{List format}}
+\newrobustcmd*{\DeprecateIndexListFormatWithReplacement}{%
+  \blx at deprecateformat{lid}{Index list format}}
+
+\newrobustcmd*{\DeprecateFieldFormatWithReplacement}{%
+  \blx at deprecateformat{ffd}{Field format}}
+\newrobustcmd*{\DeprecateIndexFieldFormatWithReplacement}{%
+  \blx at deprecateformat{fid}{Index field format}}
+
+\newrobustcmd*{\DeprecateNameWrapperFormatWithReplacement}{%
+  \blx at deprecateformat{nwd}{Name wrapper format}}
+\newrobustcmd*{\DeprecateIndexNameWrapperFormatWithReplacement}{%
+  \blx at deprecateformat{nxd}{Index name wrapper format}}
+
+\newrobustcmd*{\DeprecateListWrapperFormatWithReplacement}{%
+  \blx at deprecateformat{lwd}{List wrapper format}}
+\newrobustcmd*{\DeprecateIndexListWrapperFormatWithReplacement}{%
+  \blx at deprecateformat{lxd}{Index list wrapper format}}
+
 % [<format>]{<text>}
 \newrobustcmd{\blx at imc@printtext}[2][]{%
   \ifblank{#2}
@@ -4032,13 +4267,16 @@
 \def\blx at printnames#1#2#3#4{%
   \blx at imc@ifnameundef{#4}
     {\blx at nounit}
-    {\blx at getformat\blx at theformat{nfd}{#1}{#4}%
-     \ifdefvoid\blx at theformat
+    {\blx at getformat\blx at thewrapperformat{nwd}{#1}{#4}%
+     \ifdefvoid\blx at thewrapperformat
        {\blx at nounit}
-       {\blx at begunit
-        \blx at namesetup{#2}{#3}{#4}%
-        \expandafter\blx at nameparser\blx at thedata{}&%
-        \blx at endunit}}}
+       {\blx at getformat\blx at theformat{nfd}{#1}{#4}%
+        \ifdefvoid\blx at theformat
+          {\blx at nounit}
+          {\blx at begunit
+           \blx at namesetup{#2}{#3}{#4}%
+           \blx at thewrapperformat{\expandafter\blx at nameparser\blx at thedata{}&}%
+           \blx at endunit}}}}
 
 \def\blx at namesetup#1#2#3{%
   \def\currentname{#3}%
@@ -4119,14 +4357,17 @@
 \def\blx at indexnames#1#2#3#4{%
   \blx at imc@ifnameundef{#4}
     {}
-    {\blx at getformat\blx at theformat{nid}{#1}{#4}%
-     \ifdefvoid\blx at theformat
+    {\blx at getformat\blx at thewrapperformat{nxd}{#1}{#4}%
+     \ifdefvoid\blx at thewrapperformat
        {}
-       {\begingroup
-        \blx at namesetup{#2}{#3}{#4}%
-        \blx at indexnamesetup
-        \expandafter\blx at nameparser\blx at thedata{}&%
-        \endgroup}}}
+       {\blx at getformat\blx at theformat{nid}{#1}{#4}%
+        \ifdefvoid\blx at theformat
+          {}
+          {\begingroup
+           \blx at namesetup{#2}{#3}{#4}%
+           \blx at indexnamesetup
+           \expandafter\blx at nameparser\blx at thedata{}&%
+           \endgroup}}}}
 
 \def\blx at indexnamesetup{%
   \let\bibinitperiod\bibindexinitperiod
@@ -4154,6 +4395,7 @@
 
 % {name opts}{nameparts}
 \long\def\blx at nameparser@i#1#2{%
+  \begingroup
   \ifblank{#1}
     {}
     {\setkeys{blx at opt@name}{#1}}%
@@ -4166,7 +4408,8 @@
   % Still pass the nameparts forward for backwards compat
   % When \nameparts is finally removed, remove the "{2}" and remove the
   % arg to \blx at defformat@d in def of \blx at defnameformat
-  \blx at theformat{#2}}
+  \blx at theformat{#2}%
+  \endgroup}
 
 \long\def\blx at namebreak#1&{}
 
@@ -4178,13 +4421,16 @@
 \def\blx at printlist#1#2#3#4{%
   \blx at imc@iflistundef{#4}
     {\blx at nounit}
-    {\blx at getformat\blx at theformat{lfd}{#1}{#4}%
-     \ifdefvoid\blx at theformat
+    {\blx at getformat\blx at thewrapperformat{lwd}{#1}{#4}%
+     \ifdefvoid\blx at thewrapperformat
        {\blx at nounit}
-       {\blx at begunit
-        \blx at listsetup{#2}{#3}{#4}%
-        \expandafter\blx at listparser\blx at thedata{}&%
-        \blx at endunit}}}
+       {\blx at getformat\blx at theformat{lfd}{#1}{#4}%
+        \ifdefvoid\blx at theformat
+          {\blx at nounit}
+          {\blx at begunit
+           \blx at listsetup{#2}{#3}{#4}%
+           \blx at thewrapperformat{\expandafter\blx at listparser\blx at thedata{}&}%
+           \blx at endunit}}}}
 
 \def\blx at listsetup#1#2#3{%
   \def\currentlist{#3}%
@@ -4221,13 +4467,16 @@
 \def\blx at indexlist#1#2#3#4{%
   \blx at imc@iflistundef{#4}
     {}
-    {\blx at getformat\blx at theformat{lid}{#1}{#4}%
-     \ifdefvoid\blx at theformat
+    {\blx at getformat\blx at thewrapperformat{lxd}{#1}{#4}%
+     \ifdefvoid\blx at thewrapperformat
        {}
-       {\begingroup
-        \blx at listsetup{#2}{#3}{#4}%
-        \expandafter\blx at listparser\blx at thedata{}&%
-        \endgroup}}}
+       {\blx at getformat\blx at theformat{lid}{#1}{#4}%
+        \ifdefvoid\blx at theformat
+          {}
+          {\begingroup
+           \blx at listsetup{#2}{#3}{#4}%
+           \expandafter\blx at listparser\blx at thedata{}&%
+           \endgroup}}}}
 
 % {<item1>}{<item2>}{...}
 \long\def\blx at listparser#1{%
@@ -4285,7 +4534,8 @@
      \blx at getdata{#1}%
      \blx at setoptions@type\abx at field@entrytype
      \blx at setoptions@entry
-     \def\abx at field@entrysetcount{1}%
+     \global\blx at entrysetcounter\@ne
+     \edef\abx at field@entrysetcount{\the\blx at entrysetcounter}%
      \blx at execute
      \blx at beglangbib
      \blx at begunit
@@ -4304,9 +4554,10 @@
     {\begingroup
      \blx at resetdata
      \blx at getdata{#1}%
-     \blx at entrysetcount
      \blx at setoptions@type\abx at field@entrytype
      \blx at setoptions@entry
+     \global\advance\blx at entrysetcounter\@ne
+     \edef\abx at field@entrysetcount{\the\blx at entrysetcounter}%
      \addtocounter{instcount}\@ne
      \blx at execute
      \blx at beglangbib
@@ -4820,6 +5071,7 @@
   \do{langgalician}%
   \do{langgerman}%
   \do{langgreek}%
+  \do{langhungarian}%
   \do{langitalian}%
   \do{langjapanese}%
   \do{langlatin}%
@@ -4848,6 +5100,7 @@
   \do{fromgalician}%
   \do{fromgerman}%
   \do{fromgreek}%
+  \do{fromhungarian}%
   \do{fromitalian}%
   \do{fromjapanese}%
   \do{fromlatin}%
@@ -5081,6 +5334,9 @@
 % .lbx files must be read with one of the two following commands,
 % do not use \blx at inputonce. Only the commands here make sure that the file
 % is read as many times as necessary.
+% blx at file@lbx at simple@#1 only blocks the file being added to the file list
+% blx at file@lbx at once@#1 blocks a file from being loaded again by the input-once
+% routine
 % {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>}
 \protected\long\def\blx at lbx@input at handler@simple#1#2#3#4#5#6{%
   \blx at info@noline{Trying to load #2..}%
@@ -5087,27 +5343,30 @@
   \IfFileExists{#1}
     {\blx at info@noline{... file '#1' found}%
      #3\@@input\@filef at und#4#5%
-     \ifcsundef{blx at file@lbx@#1}
+     \ifcsundef{blx at file@lbx at simple@#1}
        {\listxadd\blx at list@req at stat{#1}%
         \@addtofilelist{#1}%
-        \global\cslet{blx at file@lbx@#1}\@empty}
+        \global\cslet{blx at file@lbx at simple@#1}\@empty}
        {}}
     {\blx at info@noline{... file '#1' not found}#6}}
 
 % {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>}
 \protected\long\def\blx at lbx@input at handler@once#1#2#3#4#5#6{%
-  \ifcsundef{blx at file@lbx@#1}
+  \ifcsundef{blx at file@lbx at once@#1}
     {\blx at info@noline{Trying to load #2..}%
-     \global\cslet{blx at file@lbx@#1}\@empty
      \IfFileExists{#1}
        {\blx at info@noline{... file '#1' found}%
         #3\@@input\@filef at und#4#5%
-        \listxadd\blx at list@req at stat{#1}%
-        \@addtofilelist{#1}}
-       {\blx at info@noline{... file '#1' not found}#6}}
+        \ifcsundef{blx at file@lbx at simple@#1}
+          {\listxadd\blx at list@req at stat{#1}%
+           \@addtofilelist{#1}}
+          {}}
+       {\blx at info@noline{... file '#1' not found}#6}%
+     \global\cslet{blx at file@lbx at once@#1}\@empty
+     \global\cslet{blx at file@lbx at simple@#1}\@empty}
     {#5}}
 
-\def\blx at lbx@input at process@strings#1{
+\def\blx at lbx@input at process@strings#1{%
   \global\cslet{abx at strings@#1}\@empty
   \def\InheritBibliographyStrings{%
     \blx at letbibstrings{#1}}%
@@ -5129,7 +5388,7 @@
   \blx at lbx@input at process@extras{#1}%
   \def\DeclareHyphenationExceptions{\blx at hyphexcept{#1}}}
 
-\def\blx at lbx@input at postprocess@strings#1{
+\def\blx at lbx@input at postprocess@strings#1{%
   \csuse{blx at hook@strings@#1}}
 
 \def\blx at lbx@input at postprocess@extras#1{%
@@ -5220,39 +5479,42 @@
   \mktimerange{12h}}
 
 \expandafter\newrobustcmd\expandafter*\csname mktimerange24hcomp\endcsname[1]{%
-  \iffieldundef{#1hour}{}
+  \iffieldundef{#1hour}
+    {}
     {\ifboolexpr{test {\iffieldundef{#1endhour}}
                  or
                  test {\iffieldequalstr{#1endhour}{}}}
        {\mktimerange{24h}{#1}}
        {\iffieldsequal{#1hour}{#1endhour}
-         % 14:xx:xx 14:xx:xx
-         {\iffieldsequal{#1minute}{#1endminute}
-         % 14:13:xx 14:13:xx
-           {\toggletrue{blx at seconds}%
-            \printtext[#1time]{\csuse{mkbibtime24h}{#1hour}{#1minute}{#1second}{}%
-            \bibtimerangesep
-            \csuse{mkbibtime24h}{}{}{#1endsecond}{}}}
-           % 14:13:xx 14:14:xx
-           {\toggletrue{blx at seconds}%
-            \printtext[#1time]{\csuse{mkbibtime24h}{#1hour}{#1minute}{}{}%
-            \bibtimerangesep
-            \csuse{mkbibtime24h}{}{#1endminute}{}{}}}}
-         % 14:xx:xx 15:xx:xx
-         {\mktimerange{24h}{#1}}}}}
+          % 14:xx:xx 14:xx:xx
+          {\iffieldsequal{#1minute}{#1endminute}
+             % 14:13:xx 14:13:xx
+             {\toggletrue{blx at seconds}%
+              \printtext[#1time]{%
+                \csuse{mkbibtime24h}{#1hour}{#1minute}{#1second}{}%
+              \bibtimerangesep
+              \csuse{mkbibtime24h}{}{}{#1endsecond}{}}}
+             % 14:13:xx 14:14:xx
+             {\toggletrue{blx at seconds}%
+              \printtext[#1time]{\csuse{mkbibtime24h}{#1hour}{#1minute}{}{}%
+              \bibtimerangesep
+              \csuse{mkbibtime24h}{}{#1endminute}{}{}}}}
+          % 14:xx:xx 15:xx:xx
+          {\mktimerange{24h}{#1}}}}}
 
 % {<24h|24hcomp|12h>}{<datetype>}
 \newrobustcmd*{\mktimerange}[2]{%
-  \iffieldundef{#2hour}{}
+  \iffieldundef{#2hour}
+    {\blx at nounit}
     {\blx at timepre{#2}{}%
      \printtext[#2time]{\csuse{mkbibtime#1}{#2hour}{#2minute}{#2second}{#2timezone}%
-      \iffieldundef{#2endhour}
-      {}
-      {\blx at timepre{#2}{end}%
-       \iffieldequalstr{#2endhour}{}
-         {\mbox{\bibtimerangesep}}
-         {\bibtimerangesep
-          \csuse{mkbibtime#1}{#2endhour}{#2endminute}{#2endsecond}{#2endtimezone}}}}}}
+     \iffieldundef{#2endhour}
+       {}
+       {\blx at timepre{#2}{end}%
+        \iffieldequalstr{#2endhour}{}
+          {\mbox{\bibtimerangesep}}
+          {\bibtimerangesep
+           \csuse{mkbibtime#1}{#2endhour}{#2endminute}{#2endsecond}{#2endtimezone}}}}}}
 
 % {<datetype>}{''|end}
 \newrobustcmd*{\blx at timepre}[2]{%
@@ -5266,7 +5528,7 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          % Such a season component can only come from an ISO8601 season which replaces
@@ -5297,20 +5559,20 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          % Such a season component can only come from an ISO8601 season which replaces
          % a normal month so if it exists, we know that a normal date print is ruled out
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
               {\iffieldsequal{#2month}{#2endmonth}
                  {\csuse{mkbibdate#1}{}{}{#2day}}
                  {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
               {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
                \iffieldsequal{#2dateera}{#2enddateera}{}
-                {\dateeraprint{#2year}}}}
-           {\iffieldsequal{#2year}{#2endyear}
+                 {\dateeraprint{#2year}}}}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibseasondate#1}{}{#2season}}
              {\csuse{mkbibseasondate#1}{#2year}{#2season}%
               \iffieldsequal{#2dateera}{#2enddateera}{}
@@ -5333,7 +5595,7 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          % Such a season component can only come from an ISO8601 season which replaces
@@ -5367,13 +5629,13 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          % Such a season component can only come from an ISO8601 season which replaces
          % a normal month so if it exists, we know that a normal date print is ruled out
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
               {\iffieldsequal{#2month}{#2endmonth}
                  {\csuse{mkbibdate#1}{}{}{#2day}}
                  {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
@@ -5380,10 +5642,10 @@
               {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
                \iffieldsequal{#2dateera}{#2enddateera}{}
                  {\dateeraprint{#2year}}}}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibseasondate#1}{}{#2season}}
              {\csuse{mkbibseasondate#1}{#2year}{#2season}%
-               \iffieldsequal{#2dateera}{#2enddateera}{}
+              \iffieldsequal{#2dateera}{#2enddateera}{}
                 {\dateeraprint{#2year}}}}%
          \dateuncertainprint
          \iffieldundef{#2endyear}
@@ -5417,7 +5679,7 @@
   \blx at imc@clearfield{#1endminute}%
   \blx at imc@clearfield{#1endsecond}%
   \blx at imc@clearfield{#1endtimezone}%
-  \iffieldsequal{#1year}{#1endyear}
+  \ifdateyearsequal{#1}{#1end}
     {\blx at imc@clearfield{#1endyear}}
     {}%
   \mkdaterangefull{short}{#1}}
@@ -5427,7 +5689,7 @@
   \begingroup
     \blx at metadateinfo{#1}%
     \iffieldundef{#1year}
-      {}
+      {\blx at nounit}
       {\printtext[#1date]{%
          \datecircaprint
          % Such a season component can only come from an  ISO8601 season which replaces
@@ -5459,7 +5721,7 @@
   \begingroup
     \blx at metadateinfo{#1}%
     \iffieldundef{#1year}
-      {}
+      {\blx at nounit}
       {\printtext[#1date]{%
          \datecircaprint
          % Such a season component can only come from an ISO8601 season which replaces
@@ -5509,7 +5771,7 @@
   \blx at imc@clearfield{#1endminute}%
   \blx at imc@clearfield{#1endsecond}%
   \blx at imc@clearfield{#1endtimezone}%
-  \iffieldsequal{#1year}{#1endyear}
+  \ifdateyearsequal{#1}{#1end}
     {\blx at imc@clearfield{#1endyear}}
     {}%
   \mkdaterangefullextra{short}{#1}}
@@ -5521,8 +5783,8 @@
     and
     not test {\iffieldundef{#1#2hour}}}
     {\blx at timepre{#1}{#2}%
-      \printtext{\bibdatetimesep}%
-      \printtext[#1time]{\csuse{mkbibtime\csuse{blx at timeformat@#1time}}{#1#2hour}{#1#2minute}{#1#2second}{#1#2timezone}}}
+     \printtext{\bibdatetimesep}%
+     \printtext[#1time]{\csuse{mkbibtime\csuse{blx at timeformat@#1time}}{#1#2hour}{#1#2minute}{#1#2second}{#1#2timezone}}}
     {}}
 
 \newrobustcmd*{\mkdaterangeiso}[1]{%
@@ -5530,7 +5792,7 @@
     \blx at metadateinfo{#1}%
     \def\bibdatetimesep{T}%
     \iffieldundef{#1year}
-      {}
+      {\blx at nounit}
       {\printtext[#1date]{%
          \blx at isodate{#1}{}%
          \ifboolexpr{%
@@ -5562,7 +5824,7 @@
     \blx at metadateinfo{#1}%
     \def\bibdatetimesep{T}%
     \iffieldundef{#1year}
-      {}
+      {\blx at nounit}
       {\printtext[#1date]{%
          \blx at isodate[extradate]{#1}{}%
          \ifboolexpr{%
@@ -5601,10 +5863,10 @@
     {\hyphen\blx at seasonmap{\thefield{#2#3season}}}}
 
 \def\blx at seasonmap#1{%
-  \blx at xifstrcmp{#1}{spring}{21}
-    {\blx at xifstrcmp{#1}{summer}{22}
-      {\blx at xifstrcmp{#1}{autumn}{23}
-        {\blx at xifstrcmp{#1}{winter}{24}{}}}}}
+  \blx at xifstrequal{#1}{spring}{21}
+    {\blx at xifstrequal{#1}{summer}{22}
+      {\blx at xifstrequal{#1}{autumn}{23}
+        {\blx at xifstrequal{#1}{winter}{24}{}}}}}
 
 \newrobustcmd*{\blx at isotime}[2]{%
   \blx at imc@forcezerosmdt{\thefield{#1#2hour}}%
@@ -5614,6 +5876,11 @@
     {\mkbibtimezone{\thefield{#1#2timezone}}}
     {}}
 
+% some sane defaults for bibliography extras
+% many of these should be redefined in the .lbx files
+% all .lbx files should have date and time handling, so the fallback values
+% issue a warning to make people aware of the deficiency in their file
+% \mkbibordinal should also only be used if it is defined, so it warns as well
 % times
 \newrobustcmd*{\bibtimesep}{:}
 \newrobustcmd*{\bibtimerangesep}{\textendash}
@@ -5633,19 +5900,132 @@
 \newrobustcmd*{\bibrangedash}{\textendash}
 \newrobustcmd*{\bibrangessep}{,\space}
 % formatters
-\newrobustcmd*{\mkbibtimezone}[1]{\blx at xifstrcmp{#1}{UTC}{\bibutctimezone}{#1}}
-\newrobustcmd*{\mkbibdatelong}[3]{}
-\newrobustcmd*{\mkbibdateshort}[3]{}
-\newrobustcmd*{\mkbibseasondateshort}[2]{}
-\newrobustcmd*{\mkbibseasondatelong}[2]{}
-\expandafter\newrobustcmd\expandafter*\csname mkbibtime24h\endcsname[4]{}
-\expandafter\newrobustcmd\expandafter*\csname mkbibtime12h\endcsname[4]{}
+\newrobustcmd*{\mkbibtimezone}[1]{\blx at xifstrequal{#1}{Z}{\bibutctimezone}{#1}}
+% you should never end up needing the next few definitions
+% but it is safer to do something than just swallow the input
+\newrobustcmd*{\mkbibdatelong}[3]{%
+  \blx at warning@noline{%
+    Using fallback definition for \string\mkbibdatelong.\MessageBreak
+    The command should be defined in the .lbx file.\MessageBreak
+    If you see this message, the .lbx file could not be\MessageBreak
+    loaded, is faulty or does not contain a definition\MessageBreak
+    for \string\mkbibdatelong
+  }%
+  \iffieldundef{#3}
+    {}
+    {\mkbibordinal{\thefield{#3}}%
+     \iffieldundef{#2}{}{\nobreakspace}}%
+  \iffieldundef{#2}
+    {}
+    {\mkbibmonth{\thefield{#2}}%
+     \iffieldundef{#1}{}{\space}}%
+  \iffieldbibstring{#1}
+    {\bibstring{\thefield{#1}}}
+    {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}
+
+\newrobustcmd*{\mkbibdateshort}[3]{%
+  \blx at warning@noline{%
+    Using fallback definition for \string\mkbibdateshort.\MessageBreak
+    The command should be defined in the .lbx file.\MessageBreak
+    If you see this message, the .lbx file could not be\MessageBreak
+    loaded, is faulty or does not contain a definition\MessageBreak
+    for \string\mkbibdateshort
+  }%
+  \iffieldundef{#3}
+    {}
+    {\mkdayzeros{\thefield{#3}}%
+     \iffieldundef{#2}{}{/}}%
+  \iffieldundef{#2}
+    {}
+    {\mkmonthzeros{\thefield{#2}}%
+     \iffieldundef{#1}{}{/}}%
+  \iffieldbibstring{#1}
+    {\bibstring{\thefield{#1}}}
+    {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}
+
+\expandafter\newrobustcmd\expandafter*\csname mkbibtime24h\endcsname[4]{%
+  \blx at warning@noline{%
+    Using fallback definition for
+    \expandafter\string\csname mkbibtime24h\endcsname.\MessageBreak
+    The command should be defined in the .lbx file.\MessageBreak
+    If you see this message, the .lbx file could not be\MessageBreak
+    loaded, is faulty or does not contain a definition\MessageBreak
+    for \expandafter\string\csname mkbibtime24h\endcsname
+  }%
+    \iffieldundef{#1}{}
+      {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+    \iffieldundef{#2}{}
+      {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+    \iffieldundef{#3}{}
+      {\printtext{\mktimezeros{\thefield{#3}}}}%
+    \setunit{}%
+    \iffieldundef{#4}{}
+      {\bibtimezonesep
+       \mkbibtimezone{\thefield{#4}}}}
+
+\expandafter\newrobustcmd\expandafter*\csname mkbibtime12h\endcsname[4]{%
+  \blx at warning@noline{%
+    Using fallback definition for
+    \expandafter\string\csname mkbibtime12h\endcsname.\MessageBreak
+    The command should be defined in the .lbx file.\MessageBreak
+    If you see this message, the .lbx file could not be\MessageBreak
+    loaded, is faulty or does not contain a definition\MessageBreak
+    for \expandafter\string\csname mkbibtime12h\endcsname
+  }%
+    \stripzeros{\mktimehh{\thefield{#1}}}%
+    \bibtimesep
+    \forcezerosmdt{\thefield{#2}}%
+    \iffieldundef{#3}{}
+      {\bibtimesep
+       \forcezeros{\thefield{#3}}}%
+     \space
+     \ifnumless{\thefield{#1}}{12}
+       {\bibstring{am}}
+       {\bibstring{pm}}%
+    \iffieldundef{#4}{}
+     {\space\bibtimezonesep
+      \parentext{\mkbibtimezone{\thefield{#4}}}}}
+
+\newrobustcmd*{\mkbibseasondateshort}[2]{%
+  \blx at warning@noline{%
+    Using fallback definition for \string\mkbibseasondateshort.\MessageBreak
+    The command should be defined in the .lbx file.\MessageBreak
+    If you see this message, the .lbx file could not be\MessageBreak
+    loaded, is faulty or does not contain a definition\MessageBreak
+    for \string\mkbibseasondateshort
+  }%
+  \mkbibseason{\thefield{#2}}%
+  \iffieldundef{#1}{}{\space}%
+  \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}
+
+\newrobustcmd*{\mkbibseasondatelong}[2]{%
+  \blx at warning@noline{%
+    Using fallback definition for \string\mkbibseasondatelong.\MessageBreak
+    The command should be defined in the .lbx file.\MessageBreak
+    If you see this message, the .lbx file could not be\MessageBreak
+    loaded, is faulty or does not contain a definition\MessageBreak
+    for \string\mkbibseasondatelong
+  }%
+  \mkbibseason{\thefield{#2}}%
+  \iffieldundef{#1}{}{\space}%
+  \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}
+
 \newrobustcmd*{\finalandcomma}{}
 \newrobustcmd*{\finalandsemicolon}{}
-\newrobustcmd*{\mkbibordinal}[1]{#1}
+\newrobustcmd*{\mkbibordinal}[1]{%
+  \blx at warning@noline{%
+    Using fallback definition for \string\mkbibordinal.\MessageBreak
+    The command should be defined in the .lbx file.\MessageBreak
+    If you see this message, the .lbx file could not be\MessageBreak
+    loaded, is faulty or does not contain a definition\MessageBreak
+    for \string\mkbibordinal
+  }%
+  #1%
+}
 \newrobustcmd*{\mkbibmascord}{\mkbibordinal}
 \newrobustcmd*{\mkbibfemord}{\mkbibordinal}
 \newrobustcmd*{\mkbibneutord}{\mkbibordinal}
+% the following is usually not redefined in an .lbx
 \newrobustcmd*{\mkbibseason}[1]{\abx at bibseason{#1}}
 \newrobustcmd*{\mkbibmonth}[1]{%
   \ifcase0#1\relax
@@ -5669,25 +6049,37 @@
 % strip leading zeros and prepend zero for month/day/timeparts
 % Allow for non numeric labelyear values
 \protected\def\blx at imc@forcezerosmdt#1{%
-  \IfInteger{#1}
-    {\ifnumless{#1}{10}
-      {0\the\numexpr(#1)\relax}
-      {#1}}
+  \protected at edef\blx at tempa{#1}%
+  \expandafter\blx at imc@forcezerosmdt at i\expandafter{\blx at tempa}}
+
+\protected\def\blx at imc@forcezerosmdt at i#1{%
+  \notblank{#1}
+    {\blx at imc@ifinteger{#1}
+       {\ifnumless{#1}{10}
+         {0\the\numexpr(#1)\relax}
+         {#1}}
+       {#1}}
     {#1}}
 
 % strip leading zeros and prepend zero(s) for year
 % Allow for non numeric labelyear values
 \protected\def\blx at imc@forcezerosy#1{%
-  \IfInteger{#1}
-    {\ifnumless{#1}{10}% 1-digit year
-       {000\the\numexpr(#1)\relax}
-       {\ifnumless{#1}{100}% 2-digit year
-         {00\the\numexpr(#1)\relax}
-         {\ifnumless{#1}{1000}% 3-digit year
-           {0\the\numexpr(#1)\relax}
-           {#1}}}}
-    {#1}}
+  \protected at edef\blx at tempa{#1}%
+  \expandafter\blx at imc@forcezerosy at i\expandafter{\blx at tempa}}
 
+\protected\def\blx at imc@forcezerosy at i#1{%
+  \notblank{#1}
+    {\blx at imc@ifinteger{#1}
+       {\ifnumless{#1}{10}% 1-digit year
+          {000\the\numexpr(#1)\relax}
+          {\ifnumless{#1}{100}% 2-digit year
+            {00\the\numexpr(#1)\relax}
+            {\ifnumless{#1}{1000}% 3-digit year
+              {0\the\numexpr(#1)\relax}
+              {#1}}}}
+       {#1}}
+    {#1}}%
+
 \let\blx at imc@mkyearzeros\blx at imc@forcezerosy
 \let\blx at imc@mkmonthzeros\blx at imc@forcezerosmdt
 \let\blx at imc@mkdayzeros\blx at imc@forcezerosmdt
@@ -5711,7 +6103,9 @@
 \let\blx at imc@printlabeltime\@empty
 \let\blx at imc@printlabeldateextra\@empty
 
-\blx at regimcs{\printlabeldate \printlabeltime \printlabeldateextra \stripzeros \forcezerosy \forcezerosmdt \mkyearzeros \mkmonthzeros \mkdayzeros \mktimezeros}
+\blx at regimcs{\printlabeldate \printlabeltime \printlabeldateextra
+  \stripzeros \forcezerosy \forcezerosmdt
+  \mkyearzeros \mkmonthzeros \mkdayzeros \mktimezeros}
 
 % User macro for retrieving currrent language
 \def\currentlang{\blx at languagename}
@@ -6010,7 +6404,7 @@
 
 % '', event, url, orig etc.
 \def\do#1{%
-  \StrCut{#1}{date}\blx at datetype\blx at tempnull
+  \blx at stripfromendinto{#1}{date}\blx at datetype
   \listxadd\blx at datetypes{\blx at datetype}}
 \abx at dodates
 % main date field has an empty prefix (''date) which can't be added to a list
@@ -6058,7 +6452,7 @@
 % to biblatex. For options which only biber needs to see, they can be
 % passed to the .bcf directly using \blx at collectopts
 % [<datatype>]{<key>}[<value>]{<code>}
-\newrobustcmd*{\DeclareBibliographyOption}[2][]{
+\newrobustcmd*{\DeclareBibliographyOption}[2][]{%
   \ifblank{#1}
     {\def\blx at tempa{boolean}}
     {\ifcsundef{blx at globalopts@#1}
@@ -6121,7 +6515,7 @@
 
 % Sanity check on date field names - they *must* end in 'date' to make things easier/possible later
 \def\do#1{%
-  \IfEndWith{#1}{date}
+  \blx at ifstrendswith{#1}{date}
     {}
     {\blx at error
        {Invalid date field name '#1'}
@@ -6207,6 +6601,7 @@
   \do{entrysetcount}%
   \do{entrytype}%
   \do{extraalpha}%
+  \do{extraname}%
   \do{extratitle}%
   \do{extratitleyear}%
   \do{extradate}%
@@ -6233,6 +6628,7 @@
   \do{uniquebaretitle}%
   \do{uniquework}%
   \do{uniqueprimaryauthor}%
+  \do{nocite}%
   \dolistloop\blx at datemetabooleans}
 
 % Date datatype fields
@@ -6298,10 +6694,10 @@
         \iffieldnum{#1}
           {\begingroup
            \let\blx at tempa\@empty
-           \IfEndWith{#1}{endyear}
-             {\StrCut{#1}{endyear}\blx at datetype\blx at tempnull
+           \blx at ifstrendswith{#1}{endyear}
+             {\blx at stripfromendinto{#1}{endyear}\blx at datetype
               \def\blx at tempa{end}}
-             {\StrCut{#1}{year}\blx at datetype\blx at tempnull}%
+             {\blx at stripfromendinto{#1}{year}\blx at datetype}%
            \csuse{if\blx at datetype\blx at tempa dateera}{bce}
              {\ifnumless{0-\thefield{#1}}{0}
                {\printtext{\csuse{bibdateera\blx at tempa prefix}}}
@@ -6313,10 +6709,10 @@
         \iffieldnum{#1}
           {\begingroup
            \let\blx at tempa\@empty
-           \IfEndWith{#1}{endyear}
-             {\StrCut{#1}{endyear}\blx at datetype\blx at tempnull
+           \blx at ifstrendswith{#1}{endyear}
+             {\blx at stripfromendinto{#1}{endyear}\blx at datetype
               \def\blx at tempa{end}}
-             {\StrCut{#1}{year}\blx at datetype\blx at tempnull}%
+             {\blx at stripfromendinto{#1}{year}\blx at datetype}%
            \csuse{if\blx at datetype\blx at tempa dateera}{bce}
              {\ifnum\numexpr0-\thefield{#1}\relax<\blx at dateeraauto
                 % \midsentence is to suppress automatic capitalisation
@@ -6722,59 +7118,188 @@
   \catcode\endlinechar=12\relax
   \blx at bbl@verbadd at i}
 
-% {<scope>}{<field>}{<itemcount>}{<part>}{<value>}
-\protected\def\blx at bbl@annotationdef#1#2#3#4#5{%
+% {<scope>}{<field>}{<name>}{<itemcount>}{<part>}{<isliteral>}{<value>}
+\protected\def\blx at bbl@annotationdef#1#2#3#4#5#6#7{%
   \ifstrequal{#1}{field}
      {\csxappto\blx at bbl@data{%
-        \listadd\noexpand\abx at annotation@defined{#1@#2}%
-        \def\do####1{\listcsadd{abx at annotation@#1@#2}{####1}}%
-        \docsvlist{#5}}}
+        \listadd\noexpand\abx at annotation@defined{field@#2@#3}}%
+      \ifstrequal{#6}{1}
+        {\csgappto\blx at bbl@data{%
+           \csdef{abx at annotation@literal at field@#2@#3}{#7}}}
+        {\csxappto\blx at bbl@data{%
+           \def\do####1{\listcsadd{abx at annotation@field@#2@#3}{####1}}%
+           \docsvlist{#7}}}}
      {}%
   \ifstrequal{#1}{item}
      {\csxappto\blx at bbl@data{%
-        \listadd\noexpand\abx at annotation@defined{#1@#2@#3}%
-        \def\do####1{\listcsadd{abx at annotation@#1@#2@#3}{####1}}%
-        \docsvlist{#5}}}
+        \listadd\noexpand\abx at annotation@defined{item@#2@#3@#4}}%
+      \ifstrequal{#6}{1}
+        {\csgappto\blx at bbl@data{%
+           \csdef{abx at annotation@literal at item@#2@#3@#4}{#7}}}
+        {\csxappto\blx at bbl@data{%
+           \def\do####1{\listcsadd{abx at annotation@item@#2@#3@#4}{####1}}%
+           \docsvlist{#7}}}}
      {}%
   \ifstrequal{#1}{part}
      {\csxappto\blx at bbl@data{%
-        \listadd\noexpand\abx at annotation@defined{#1@#2@#3@#4}%
-        \def\do####1{\listcsadd{abx at annotation@#1@#2@#3@#4}{####1}}%
-        \docsvlist{#5}}}
+        \listadd\noexpand\abx at annotation@defined{part@#2@#3@#4@#5}}%
+      \ifstrequal{#6}{1}
+        {\csgappto\blx at bbl@data{%
+           \csdef{abx at annotation@literal at part@#2@#3@#4@#5}{#7}}}
+        {\csxappto\blx at bbl@data{%
+          \def\do####1{\listcsadd{abx at annotation@part@#2@#3@#4@#5}{####1}}%
+          \docsvlist{#7}}}}
      {}}
 
-% [<field>]{<annotation>}
-\newcommand*{\blx at imc@iffieldannotation}[2][]{%
-  \ifblank{#1}
-    {\ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
-     \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
-     \ifdefvoid\currentname{}{\let\blx at tempa\currentname}}
-    {\def\blx at tempa{#1}}%
-  \blx at resolve@annotation at label{\blx at tempa}%
-  \ifinlistcs{#2}{abx at annotation@field@\blx at tempa}}
+% [<field>][<annotationname>]
+\def\blx at imc@getfieldannotation{%
+  \let\blx at tempa\@empty
+  \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
+  \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
+  \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
+  \@ifnextchar[%]
+   {\blx at imc@getfieldannotation at i}
+   {\blx at imc@getfieldannotation at i[\blx at tempa]}}
 
-% [<field>][<item>]{<annotation>}
+\def\blx at imc@getfieldannotation at i[#1]{%
+ \ifstrempty{#1}
+   {\blx at imc@getfieldannotation at i[\blx at tempa]}
+   {\@ifnextchar[%]
+      {\blx at imc@getfieldannotation at ii{#1}}
+      {\blx at imc@getfieldannotation at ii{#1}[default]}}}
+
+\def\blx at imc@getfieldannotation at ii#1[#2]{%
+  \def\blx at tempb{#1}%
+  \blx at resolve@annotation at label{\blx at tempb}%
+  \ifcsdef{abx at annotation@literal at field@\blx at tempb @#2}
+    {\csuse{abx at annotation@literal at field@\blx at tempb @#2}}
+    {}}
+
+% [<field>][<annotationname>][<item>]
+\def\blx at imc@getitemannotation{%
+  \let\blx at tempa\@empty
+  \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
+  \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
+  \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
+  \@ifnextchar[%]
+   {\blx at imc@getitemannotation at i}
+   {\blx at imc@getitemannotation at i[\blx at tempa]}}
+
+\def\blx at imc@getitemannotation at i[#1]{%
+  \ifstrempty{#1}
+    {\blx at imc@getitemannotation at i[\blx at tempa]}
+    {\@ifnextchar[%]
+      {\blx at imc@getitemannotation at ii{#1}}
+      {\blx at imc@getitemannotation at ii{#1}[default]}}}
+
+\def\blx at imc@getitemannotation at ii#1[#2]{%
+  \ifstrempty{#2}
+    {\def\blx at tempb{default}}
+    {\def\blx at tempb{#2}}%
+  \@ifnextchar[%]
+    {\blx at imc@getitemannotation at iii{#1}{\blx at tempb}}
+    {\blx at imc@getitemannotation at iii{#1}{\blx at tempb}[\the\value{listcount}]}}
+
+\def\blx at imc@getitemannotation at iii#1#2[#3]{%
+  \def\blx at tempc{#1}%
+  \blx at resolve@annotation at label{\blx at tempc}%
+  \ifcsdef{abx at annotation@literal at item@\blx at tempc @#2@#3}
+    {\csuse{abx at annotation@literal at item@\blx at tempc @#2@#3}}
+    {}}
+
+% [<field>][<annotationname>][<item>]{<part>}
+\def\blx at imc@getpartannotation{%
+  \let\blx at tempa\@empty
+  \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
+  \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
+  \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
+  \@ifnextchar[%]
+    {\blx at imc@getpartannotation at i}
+    {\blx at imc@getpartannotation at i[\blx at tempa]}}
+
+\def\blx at imc@getpartannotation at i[#1]{%
+  \ifstrempty{#1}
+    {\blx at imc@getpartannotation at i[\blx at tempa]}
+    {\@ifnextchar[%]
+      {\blx at imc@getpartannotation at ii{#1}}
+      {\blx at imc@getpartannotation at ii{#1}[default]}}}
+
+\def\blx at imc@getpartannotation at ii#1[#2]{%
+ \ifstrempty{#2}
+   {\def\blx at tempb{default}}
+   {\def\blx at tempb{#2}}%
+  \@ifnextchar[%]
+    {\blx at imc@getpartannotation at iii{#1}{\blx at tempb}}
+    {\blx at imc@getpartannotation at iii{#1}{\blx at tempb}[\the\value{listcount}]}}
+
+\def\blx at imc@getpartannotation at iii#1#2[#3]#4{%
+  \ifstrempty{#3}
+    {\def\blx at tempc{\the\value{listcount}}}
+    {\def\blx at tempc{#3}}%
+  \def\blx at tempd{#1}%
+  \blx at resolve@annotation at label{\blx at tempd}%
+  \ifcsdef{abx at annotation@literal at part@\blx at tempd @#2@\blx at tempc @#4}
+    {\csuse{abx at annotation@literal at part@\blx at tempd @#2@\blx at tempc @#4}}
+    {}}
+
+% [<field>][<annotationname>]{<annotation>}
+\def\blx at imc@iffieldannotation{%
+  \let\blx at tempa\@empty
+  \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
+  \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
+  \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
+ \@ifnextchar[%]
+    {\blx at imc@iffieldannotation at i}
+    {\blx at imc@iffieldannotation at i[\blx at tempa]}}
+
+\def\blx at imc@iffieldannotation at i[#1]{%
+  \ifstrempty{#1}
+    {\blx at imc@iffieldannotation at i[\blx at tempa]}
+    {\@ifnextchar[%]
+      {\blx at imc@iffieldannotation at ii{#1}}
+      {\blx at imc@iffieldannotation at ii{#1}[default]}}}
+
+\def\blx at imc@iffieldannotation at ii#1[#2]#3{%
+  \ifstrempty{#2}
+    {\def\blx at tempb{default}}
+    {\def\blx at tempb{#2}}%
+  \def\blx at tempc{#1}%
+  \blx at resolve@annotation at label{\blx at tempc}%
+  \ifinlistcs{#3}{abx at annotation@field@\blx at tempc @\blx at tempb}}
+
+% [<field>][<annotationname>][<item>]{<annotation>}
 \def\blx at imc@ifitemannotation{%
+  \let\blx at tempa\@empty
   \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
   \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
   \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
-  \@ifnextchar[%]
+   \@ifnextchar[%]
     {\blx at imc@ifitemannotation at i}
+    {\blx at imc@ifitemannotation at i[\blx at tempa]}}
+
+\def\blx at imc@ifitemannotation at i[#1]{%
+  \ifstrempty{#1}
     {\blx at imc@ifitemannotation at i[\blx at tempa]}
-}
+    {\@ifnextchar[%]
+      {\blx at imc@ifitemannotation at ii{#1}}
+      {\blx at imc@ifitemannotation at ii{#1}[default]}}}
 
-\def\blx at imc@ifitemannotation at i[#1]{%
+\def\blx at imc@ifitemannotation at ii#1[#2]{%
+  \ifstrempty{#2}
+    {\def\blx at tempb{default}}
+    {\def\blx at tempb{#2}}%
   \@ifnextchar[%]
-    {\blx at imc@ifitemannotation at ii{#1}}
-    {\blx at imc@ifitemannotation at ii{#1}[\the\value{listcount}]}}
+    {\blx at imc@ifitemannotation at iii{#1}{\blx at tempb}}
+    {\blx at imc@ifitemannotation at iii{#1}{\blx at tempb}[\the\value{listcount}]}}
 
-\def\blx at imc@ifitemannotation at ii#1[#2]#3{%
-  \def\blx at tempb{#1}%
-  \blx at resolve@annotation at label{\blx at tempb}%
-  \ifinlistcs{#3}{abx at annotation@item@\blx at tempb @#2}}
+\def\blx at imc@ifitemannotation at iii#1#2[#3]#4{%
+  \def\blx at tempc{#1}%
+  \blx at resolve@annotation at label{\blx at tempc}%
+  \ifinlistcs{#4}{abx at annotation@item@\blx at tempc @#2@#3}}
 
-% [<field>][<item>]{<part>}{<annotation>}
+% [<field>][<annotationname>][<item>]{<part>}{<annotation>}
 \def\blx at imc@ifpartannotation{%
+  \let\blx at tempa\@empty
   \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
   \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
   \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
@@ -6783,30 +7308,164 @@
     {\blx at imc@ifpartannotation at i[\blx at tempa]}}
 
 \def\blx at imc@ifpartannotation at i[#1]{%
+  \ifstrempty{#1}
+    {\blx at imc@ifpartannotation at i[\blx at tempa]}
+    {\@ifnextchar[%]
+      {\blx at imc@ifpartannotation at ii{#1}}
+      {\blx at imc@ifpartannotation at ii{#1}[default]}}}
+
+\def\blx at imc@ifpartannotation at ii#1[#2]{%
+ \ifstrempty{#2}
+   {\def\blx at tempb{default}}
+   {\def\blx at tempb{#2}}%
   \@ifnextchar[%]
-    {\blx at imc@ifpartannotation at ii{#1}}
-    {\blx at imc@ifpartannotation at ii{#1}[\the\value{listcount}]}}
+    {\blx at imc@ifpartannotation at iii{#1}{\blx at tempb}}
+    {\blx at imc@ifpartannotation at iii{#1}{\blx at tempb}[\the\value{listcount}]}}
 
-\def\blx at imc@ifpartannotation at ii#1[#2]#3#4{%
-  \def\blx at tempb{#1}%
-  \blx at resolve@annotation at label{\blx at tempb}%
-  \ifinlistcs{#4}{abx at annotation@part@\blx at tempb @#2@#3}}
+\def\blx at imc@ifpartannotation at iii#1#2[#3]#4#5{%
+  \ifstrempty{#3}
+    {\def\blx at tempc{\the\value{listcount}}}
+    {\def\blx at tempc{#3}}%
+  \def\blx at tempd{#1}%
+  \blx at resolve@annotation at label{\blx at tempd}%
+  \ifinlistcs{#5}{abx at annotation@part@\blx at tempd @#2@\blx at tempc @#4}}
 
-% {<datetype>}{<annotation>}
+% [<field>][<annotationname>]
+\def\blx at imc@hasfieldannotation{%
+  \let\blx at tempa\@empty
+  \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
+  \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
+  \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
+ \@ifnextchar[%]
+    {\blx at imc@hasfieldannotation at i}
+    {\blx at imc@hasfieldannotation at i[\blx at tempa]}}
+
+\def\blx at imc@hasfieldannotation at i[#1]{%
+  \ifstrempty{#1}
+    {\blx at imc@hasfieldannotation at i[\blx at tempa]}
+    {\@ifnextchar[%]
+      {\blx at imc@hasfieldannotation at ii{#1}}
+      {\blx at imc@hasfieldannotation at ii{#1}[default]}}}
+
+\def\blx at imc@hasfieldannotation at ii#1[#2]{%
+  \ifstrempty{#2}
+    {\def\blx at tempb{default}}
+    {\def\blx at tempb{#2}}%
+  \def\blx at tempc{#1}%
+  \blx at resolve@annotation at label{\blx at tempc}%
+  \ifcsdef{abx at annotation@literal at field@\blx at tempc @\blx at tempb}}
+
+% [<field>][<annotationname>][<item>]
+\def\blx at imc@hasitemannotation{%
+  \let\blx at tempa\@empty
+  \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
+  \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
+  \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
+   \@ifnextchar[%]
+    {\blx at imc@hasitemannotation at i}
+    {\blx at imc@hasitemannotation at i[\blx at tempa]}}
+
+\def\blx at imc@hasitemannotation at i[#1]{%
+  \ifstrempty{#1}
+    {\blx at imc@hasitemannotation at i[\blx at tempa]}
+    {\@ifnextchar[%]
+      {\blx at imc@hasitemannotation at ii{#1}}
+      {\blx at imc@hasitemannotation at ii{#1}[default]}}}
+
+\def\blx at imc@hasitemannotation at ii#1[#2]{%
+  \ifstrempty{#2}
+    {\def\blx at tempb{default}}
+    {\def\blx at tempb{#2}}%
+  \@ifnextchar[%]
+    {\blx at imc@hasitemannotation at iii{#1}{\blx at tempb}}
+    {\blx at imc@hasitemannotation at iii{#1}{\blx at tempb}[\the\value{listcount}]}}
+
+\def\blx at imc@hasitemannotation at iii#1#2[#3]{%
+  \def\blx at tempc{#1}%
+  \blx at resolve@annotation at label{\blx at tempc}%
+  \ifcsdef{abx at annotation@literal at item@\blx at tempc @#2@#3}}
+
+% [<field>][<annotationname>][<item>]{<part>}
+\def\blx at imc@haspartannotation{%
+  \let\blx at tempa\@empty
+  \ifdefvoid\currentfield{}{\let\blx at tempa\currentfield}%
+  \ifdefvoid\currentlist{}{\let\blx at tempa\currentlist}%
+  \ifdefvoid\currentname{}{\let\blx at tempa\currentname}%
+  \@ifnextchar[%]
+    {\blx at imc@haspartannotation at i}
+    {\blx at imc@haspartannotation at i[\blx at tempa]}}
+
+\def\blx at imc@haspartannotation at i[#1]{%
+  \ifstrempty{#1}
+    {\blx at imc@haspartannotation at i[\blx at tempa]}
+    {\@ifnextchar[%]
+      {\blx at imc@haspartannotation at ii{#1}}
+      {\blx at imc@haspartannotation at ii{#1}[default]}}}
+
+\def\blx at imc@haspartannotation at ii#1[#2]{%
+ \ifstrempty{#2}
+   {\def\blx at tempb{default}}
+   {\def\blx at tempb{#2}}%
+  \@ifnextchar[%]
+    {\blx at imc@haspartannotation at iii{#1}{\blx at tempb}}
+    {\blx at imc@haspartannotation at iii{#1}{\blx at tempb}[\the\value{listcount}]}}
+
+\def\blx at imc@haspartannotation at iii#1#2[#3]#4{%
+  \ifstrempty{#3}
+    {\def\blx at tempc{\the\value{listcount}}}
+    {\def\blx at tempc{#3}}%
+  \def\blx at tempd{#1}%
+  \blx at resolve@annotation at label{\blx at tempd}%
+  \ifcsdef{abx at annotation@literal at part@\blx at tempd @#2@\blx at tempc @#4}}
+
 % labeldatesource has a slightly different format than other <field>sources
 % that's one reason for a dedicated command, the other being that this command
 % is probably only used in contexts where \currentfield is not defined, so
 % the <datetype> argument is always required
-\newcommand*{\blx at imc@ifdateannotation}[2]{%
-  \def\blx at tempa{#1}%
-  \ifcsundef{abx at field@\blx at tempa source}
+% [<annotationname>]{<datetype>}{<annotation>}
+\newcommand*{\blx at imc@ifdateannotation}[3][]{%
+  \ifblank{#1}
+    {\def\blx at tempa{default}}
+    {\def\blx at tempa{#1}}%
+  \def\blx at tempb{#2}%
+  \ifcsundef{abx at field@\blx at tempb source}
     {}%
-    {\letcs\blx at tempa{abx at field@\blx at tempa source}%
-     \edef\blx at tempa{\blx at tempa date}}%
-  \ifinlistcs{#2}{abx at annotation@field@\blx at tempa}}
+    {\letcs\blx at tempa{abx at field@\blx at tempb source}%
+     \edef\blx at tempb{\blx at tempb date}}%
+  \ifinlistcs{#3}{abx at annotation@field@\blx at tempb @\blx at tempa}}
 
+% [<annotationname>]{<datetype>}
+\newcommand*{\blx at imc@hasdateannotation}[2][]{%
+  \ifblank{#1}
+    {\def\blx at tempa{default}}
+    {\def\blx at tempa{#1}}%
+  \def\blx at tempb{#2}%
+  \ifcsundef{abx at field@\blx at tempb source}
+    {}%
+    {\letcs\blx at tempa{abx at field@\blx at tempb source}%
+     \edef\blx at tempb{\blx at tempb date}}%
+  \ifboolexpr { test {\ifcsdef{abx at annotation@field@\blx at tempb @\blx at tempa}}
+                or
+                test {\ifcsdef{abx at annotation@literal at field@\blx at tempb @\blx at tempa}} }}
+
+% [<annotationname>]{<datetype>}
+\newcommand*{\blx at imc@getdateannotation}[2][]{%
+  \ifblank{#1}
+    {\def\blx at tempa{default}}
+    {\def\blx at tempa{#1}}%
+  \def\blx at tempb{#1}%
+  \ifcsundef{abx at field@\blx at tempb source}
+    {}%
+    {\letcs\blx at tempb{abx at field@\blx at tempb source}%
+     \edef\blx at tempb{\blx at tempb date}}%
+  \ifcsdef{abx at annotation@literal at field@\blx at tempb @\blx at tempa}
+    {\csuse{abx at annotation@literal at field@\blx at tempb @\blx at tempa}}
+    {}}
+
 \blx at regimcs{\iffieldannotation \ifitemannotation \ifpartannotation
-             \ifdateannotation}
+  \ifdateannotation \getfieldannotation \getitemannotation \getpartannotation
+  \getdateannotation \hasfieldannotation \hasitemannotation \haspartannotation
+  \hasdateannotation}
 
 % {<fieldname>}
 \def\blx at resolve@annotation at label#1{%
@@ -6902,10 +7561,8 @@
 
 % {<keyword>,...}
 \protected\def\blx at bbl@keyw#1{%
-  \iftoggle{blx at skipbib}
-    {}
-    {\forcsvlist{\blx at addkeyword{\abx at field@entrykey}}{#1}%
-     \blx at bbl@fielddef{keywords}{#1}}}
+  \forcsvlist{\blx at addkeyword{\abx at field@entrykey}}{#1}%
+  \blx at bbl@fielddef{keywords}{#1}}
 
 \def\blx at addkeyword#1#2{%
   \listcsxadd{blx at keyw@\the\c at refsection @\detokenize{#2}}{#1}}
@@ -7269,20 +7926,21 @@
     {}%
   \nottoggle{blx at skiplab}
     {\iftoggle{blx at labelnumber}
-      {\blx at bbl@labelnumber}
-      {}%
-    \iftoggle{blx at labelalpha}
-      {\blx at bbl@labelalpha}
-      {}%
-    \iftoggle{blx at labeltitle}
-      {\blx at bbl@labeltitle}
-      {}%
-    \iftoggle{blx at labeltitleyear}
-      {\blx at bbl@labeltitleyear}
-      {}%
-    \iftoggle{blx at labeldateparts}
-      {\blx at bbl@labeldate}
-      {}}
+       {\blx at bbl@labelnumber}
+       {}%
+     \iftoggle{blx at labelalpha}
+       {\blx at bbl@labelalpha}
+       {}%
+     \iftoggle{blx at labeltitle}
+       {\blx at bbl@labeltitle}
+       {}%
+     \iftoggle{blx at labeltitleyear}
+       {\blx at bbl@labeltitleyear}
+       {}%
+     \iftoggle{blx at labeldateparts}
+       {\blx at bbl@labeldate}
+       {}%
+     \blx at bbl@labelname}
     {}%
   \blx at bbl@titles
   \blx at bbl@hooks
@@ -7301,7 +7959,7 @@
     {\letcs\blx at tempa{blx at dlist@centry@\the\c at refsection @\blx at refcontext@context}%
      \global\cslet{blx at dlist@centry@\the\c at refsection @\blx at refcontext@context}\@empty
      \forlistloop\blx at addset@i\blx at tempa}
-    {\PackageWarningNoLine{biblatex}{Sorting template has changed}}%
+    {\blx at warning@noline{Sorting template has changed}}%
   \endgroup}
 
 \def\blx at addset@i#1{%
@@ -7470,6 +8128,13 @@
        \global\c at maxextratitleyear\abx at field@extratitleyear\relax
      \fi}}
 
+\def\blx at bbl@labelname{%
+  \ifundef\abx at field@extraname
+    {}
+    {\ifnum\abx at field@extraname>\c at maxextraname
+       \global\c at maxextraname\abx at field@extraname\relax
+     \fi}}
+
 \def\blx at bbl@labeldate{%
   \ifundef\abx at field@extradate
     {}
@@ -7555,7 +8220,7 @@
 % {<refcontext>}
 % Get the saved information on which refcontexts were mentioned last run
 \protected\def\abx at aux@refcontext#1{%
-  \listgadd\blx at lastrefcontexts{#1}}
+  \listxadd\blx at lastrefcontexts{\detokenize{#1}}}
 
 % {<sortingtemplatename>}
 % Get the saved information on which shorthand sorting templates were mentioned last run
@@ -8202,7 +8867,7 @@
     {}
     {\listxadd\blx at dlistnames{\blx at refcontext@context @\blx at tempe @entry}%
      \csxappto{blx at dlists}{%
-       \blx at xml@dlist{\blx at refcontext@context}{entry}{\blx at tempe}{\blx at xml@dlist at refcontext{\blx at refcontext@sortingtemplatename}{\blx at refcontext@sortingnamekeytemplatename}{\blx at refcontext@labelprefix}{\blx at refcontext@uniquenametemplatename}{\blx at refcontext@labelalphanametemplatename}}{}}}%
+       \blx at xml@dlist{\blx at refcontext@context}{entry}{\blx at tempe}{\blx at xml@dlist at refcontext{\blx at refcontext@sortingtemplatename}{\blx at refcontext@sortingnamekeytemplatename}{\blx at refcontext@labelprefix at real}{\blx at refcontext@uniquenametemplatename}{\blx at refcontext@labelalphanametemplatename}}{}}}%
   \ifdefvoid\blx at tempa
     {\blx at warn@bibempty\endgroup}
     {\blx at bibliography\blx at tempa}}
@@ -8451,6 +9116,17 @@
 
 \let\blx at bibcheck\relax
 
+\def\blx at edef@refcontext#1{%
+  \edef\blx at refcontext@context{#1}%
+  \expandafter\edef\expandafter\blx at refcontext@context\expandafter{%
+    \expandafter\detokenize\expandafter{\blx at refcontext@context}}}
+
+\def\blx at xdef@refcontext#1{%
+  \edef\blx at refcontext@context{#1}%
+  \expandafter\xdef\expandafter\blx at refcontext@context\expandafter{%
+    \expandafter\detokenize\expandafter{\blx at refcontext@context}}}
+
+
 % This sets and saves to the .aux the default refcontext for an entry. The
 % default refcontext for an entry is the refcontext of the last
 % bibliography in the refsection in which it is actually printed. This
@@ -8468,7 +9144,7 @@
 % <refsection><key><refcontext>
 \def\abx at aux@defaultrefcontext#1#2#3{%
   \global\boolfalse{refcontextdefaults}%
-  \csxdef{blx at assignedrefcontextbib@#1@#2}{#3}}
+  \csxdef{blx at assignedrefcontextbib@#1@#2}{\detokenize{#3}}}
 \def\abx at aux@refcontextdefaultsdone{%
   \global\boolfalse{refcontextdefaults}}
 
@@ -8609,9 +9285,12 @@
     \ifcsdef{blx at sortingtemplate@#2}
       {#2}
       {\blx at refcontext@sortingtemplatename}}%
-  % locally define this since we want to fetch data from the datalist named
-  % after the list we are printing rather than the data in refcontext list
-  \edef\blx at refcontext@context{\blx at tempc/\blx at refcontext@sortingnamekeytemplatename/\blx at refcontext@labelprefix/\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}%
+    % locally define this since we want to fetch data from the datalist named
+    % after the list we are printing rather than the data in refcontext list
+    % Note that the name must be unique so we prepend "#2:" because the combination of
+    % options might not generate a unique name since sortschemename has a fallback to the
+    % refcontext scheme if there is no sortscheme named after the list
+    \blx at edef@refcontext{#2:\blx at tempc/\blx at refcontext@sortingnamekeytemplatename/\blx at refcontext@labelprefix/\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}%
   \xifinlist\blx at tempc\blx at sortingtemplatenames
     {}
     {\listxadd\blx at sortingtemplatenames\blx at tempc}%
@@ -8642,8 +9321,8 @@
   \xifinlist{\blx at refcontext@context @\blx at tempe @list}\blx at dlistnames
     {}
     {\listxadd\blx at dlistnames{\blx at refcontext@context @\blx at tempe @list}%
-     \csxappto{blx at dlists}{%
-       \blx at xml@dlist{\blx at refcontext@context}{list}{\blx at tempe}{\blx at xml@dlist at refcontext{\blx at tempc}{\blx at refcontext@sortingnamekeytemplatename}{\blx at refcontext@labelprefix}{\blx at refcontext@uniquenametemplatename}{\blx at refcontext@labelalphanametemplatename}}{\csuse{blx at biblistfilters@\blx at thebiblistfilter}}}}%
+     \xappto\blx at dlists{%
+       \blx at xml@dlist{\blx at refcontext@context}{list}{\blx at tempe}{\blx at xml@dlist at refcontext{\blx at tempc}{\blx at refcontext@sortingnamekeytemplatename}{\blx at refcontext@labelprefix at real}{\blx at refcontext@uniquenametemplatename}{\blx at refcontext@labelalphanametemplatename}}{\csuse{blx at biblistfilters@\blx at thebiblistfilter}}}}%
   \ifdefvoid\blx at tempa
     {\blx at warn@biblistempty{#2}\endgroup}
     {\blx at biblist\blx at tempa}}
@@ -8759,7 +9438,7 @@
      \xifinlist\blx at refcontext@sortingtemplatename\blx at sortingtemplatenames
        {}
        {\listxadd\blx at sortingtemplatenames\blx at refcontext@sortingtemplatename}%
-     \xdef\blx at refcontext@context{\blx at refcontext@sortingtemplatename/\blx at refcontext@sortingnamekeytemplatename/\blx at refcontext@labelprefix/\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}%
+     \blx at xdef@refcontext{\blx at refcontext@sortingtemplatename/\blx at refcontext@sortingnamekeytemplatename/\blx at refcontext@labelprefix/\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}%
      % Add the refcontext to the list of refcontexts so we can compare on next run
      \xifinlist\blx at refcontext@context\blx at refcontexts
        {}
@@ -8782,11 +9461,12 @@
 \protected\def\endrefcontext{%
   \togglefalse{blx at refcontext}%
   \global\let\blx at refcontext@labelprefix\@empty
+  \global\let\blx at refcontext@labelprefix at real\@empty
   \xdef\blx at refcontext@sortingtemplatename{\blx at sorting}%
   \gdef\blx at refcontext@sortingnamekeytemplatename{global}%
   \gdef\blx at refcontext@uniquenametemplatename{global}%
   \gdef\blx at refcontext@labelalphanametemplatename{global}%
-  \xdef\blx at refcontext@context{\blx at refcontext@sortingtemplatename/\blx at refcontext@sortingnamekeytemplatename//\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}}
+  \blx at xdef@refcontext{\blx at refcontext@sortingtemplatename/\blx at refcontext@sortingnamekeytemplatename//\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}}
 
 % Meta option to set all name template options
 \define at key{blx at refcontext}{nametemplates}{%
@@ -8798,8 +9478,16 @@
 \define at key{blx at refcontext}{sortingnamekeytemplatename}{\gdef\blx at refcontext@sortingnamekeytemplatename{#1}}
 \define at key{blx at refcontext}{uniquenametemplatename}{\gdef\blx at refcontext@uniquenametemplatename{#1}}
 \define at key{blx at refcontext}{labelalphanametemplatename}{\gdef\blx at refcontext@labelalphanametemplatename{#1}}
+
+% labelprefix cannot be used as is because it is used to construct the internal
+% refcontext name which is referenced/expanded a lot all over the place. So,
+% we hash the given input and use the safe hash as internal name.
+% But that is not enough since the MD5 hash function expands the argument all
+% the way and so unexpandable content like \dag breaks.
+% Unexpandable content should be protected with \detokenize.
 \define at key{blx at refcontext}{labelprefix}{%
-  \gdef\blx at refcontext@labelprefix{#1}%
+  \xdef\blx at refcontext@labelprefix{\blx at mdfivesum{#1}}%
+  \gdef\blx at refcontext@labelprefix at real{#1}%
   \iftoggle{blx at defernumbers}
     {}%
     {\iftoggle{blx at labelnumber}
@@ -8823,7 +9511,8 @@
   \setkeys{blx at assignrefcontext}{#2}%
   \def\do##1{%
     \listxadd\blx at assignedrefcontextkeywlist{##1}%
-    \csxdef{blx at assignedrefcontextkeyws#1@\the\c at refsection @##1}{\blx at tempa/\blx at tempb/\blx at tempc/\blx at tempd/\blx at tempe}}
+    \csxdef{blx at assignedrefcontextkeyws#1@\the\c at refsection @##1}%
+      {\blx at tempa/\blx at tempb/\blx at tempc/\blx at tempd/\blx at tempe}}%
   \docsvlist{#3}}
 
 % [refcontext keys]{<category1>,<category2>,...}
@@ -8841,7 +9530,8 @@
   \setkeys{blx at assignrefcontext}{#2}%
   \def\do##1{%
     \listxadd\blx at assignedrefcontextcatlist{##1}%
-    \csxdef{blx at assignedrefcontextcats#1@\the\c at refsection @##1}{\blx at tempa/\blx at tempb/\blx at tempc/\blx at tempd/\blx at tempe}}
+    \csxdef{blx at assignedrefcontextcats#1@\the\c at refsection @##1}%
+      {\blx at tempa/\blx at tempb/\blx at tempc/\blx at tempd/\blx at tempe}}%
   \docsvlist{#3}}
 
 % [refcontext keys]{<entrykey1>,<entrykey2>,...}
@@ -8858,7 +9548,8 @@
   \def\blx at tempe{global}%
   \setkeys{blx at assignrefcontext}{#2}%
   \def\do##1{%
-    \csxdef{blx at assignedrefcontextkeys#1@\the\c at refsection @##1}{\blx at tempa/\blx at tempb/\blx at tempc/\blx at tempd/\blx at tempe}}%
+    \csxdef{blx at assignedrefcontextkeys#1@\the\c at refsection @##1}%
+      {\blx at tempa/\blx at tempb/\blx at tempc/\blx at tempd/\blx at tempe}}%
   \docsvlist{#3}}
 
 % Meta option to set all name template options
@@ -8869,7 +9560,8 @@
 
 \define at key{blx at assignrefcontext}{sorting}{\def\blx at tempa{#1}}
 \define at key{blx at assignrefcontext}{sortingnamekeytemplatename}{\def\blx at tempb{#1}}
-\define at key{blx at assignrefcontext}{labelprefix}{\def\blx at tempc{#1}}
+\define at key{blx at assignrefcontext}{labelprefix}{%
+  \edef\blx at tempc{\blx at mdfivesum{#1}}}
 \define at key{blx at assignrefcontext}{uniquenametemplatename}{\def\blx at tempd{#1}}
 \define at key{blx at assignrefcontext}{labelalphanametemplatename}{\def\blx at tempe{#1}}
 
@@ -8955,6 +9647,7 @@
   \endgroup}
 
 \protected\def\endrefsection{%
+  \endrefcontext
   \blx at endrefsection
   \blx at inf@refsec}
 
@@ -8969,11 +9662,11 @@
     % Make sure this counter exists. Sometimes it might not when using, e.g:
     % refsection=chapter and \includeonly to put in the chapters or when
     % inserting citations into table of contents
-    \ifcsname blx at sectionciteorder@\the\c at refsection\endcsname\else
-      \expandafter\newcount\csname blx at sectionciteorder@\the\c at refsection\endcsname
-    \fi
+    \ifcscounter{blx at sectionciteorder@\the\c at refsection}
+      {}
+      {\expandafter\newcount\csname blx at sectionciteorder@\the\c at refsection\endcsname}%
     \global\advance\csname blx at sectionciteorder@\the\c at refsection\endcsname\@ne
-    \blx at auxwrite\blx at bcfout{}{\blx at xml@citekey{##1}{\expandafter\the\csname blx at sectionciteorder@\the\c at refsection\endcsname}}}%
+    \blx at auxwrite\blx at bcfout{}{\blx at xml@citekey{##1}{}{\expandafter\the\csname blx at sectionciteorder@\the\c at refsection\endcsname}}}%
   \dolistcsloop{blx at keyaliases@\the\c at refsection}%
   \ifnum\c at refsection>\z@
     \blx at auxwrite\blx at bcfout{}{%
@@ -9047,22 +9740,36 @@
 \def\blx at refpatch@chapter#1{%
   \ifundef\chapter
     {\blx at err@nodocdiv{chapter}}
-    {\pretocmd\@makechapterhead{#1}
-       {}
-       {\blx at err@patch{\string\@makechapterhead}}
-     \pretocmd\@makeschapterhead{#1}
-       {}
-       {\blx at err@patch{\string\@makeschapterhead}}}}
+    {% the \ifcsundef{KOMAClassName} should be redundant, but you never know
+     \ifboolexpr{test {\ifcsundef{KOMAClassName}}
+                 or test {\ifcsundef{startsection at secnumdepth}}}
+       {\pretocmd\@makechapterhead{#1}
+          {}
+          {\blx at err@patch{\string\@makechapterhead}}
+        \pretocmd\@makeschapterhead{#1}
+          {}
+          {\blx at err@patch{\string\@makeschapterhead}}}
+       {% <- new KOMA >= 3.26 defines \startsection at secnumdepth
+        \At at startsection{\ifnumequal{\startsection at secnumdepth}{0}{#1}{}}}}}
 
 \def\blx at refpatch@sect#1{%
   \ifcsundef{#1}
     {\blx at err@nodocdiv{#1}\@gobbletwo}
-    {\blx at refpatch@sect at i}}
+    {% the \ifcsundef{KOMAClassName} should be redundant, but you never know
+     \ifboolexpr{test {\ifcsundef{KOMAClassName}}
+                 or test {\ifcsundef{startsection at secnumdepth}}}
+       {\blx at refpatch@sect at i}
+       {\blx at refpatch@sect at koma}}}
 
+% KOMA >= 3.26 defines \startsection at secnumdepth to check the sectioning level,
+% so we can now use \At at startsection
+\def\blx at refpatch@sect at koma#1#2{%
+  \At at startsection{\ifnumequal{\startsection at secnumdepth}{#2}{#1}{}}}
+
 \edef\blx at refpatch@sect at i#1#2{%
   \def\noexpand\do##1{%
-     \pretocmd##1%
-       {\noexpand\blx at refpatch@sect at ii{#1}{#2}{\string#2}}
+    \pretocmd##1%
+      {\noexpand\blx at refpatch@sect at ii{#1}{#2}{\string#2}}
       {\togglefalse{blx at tempa}\noexpand\listbreak}
       {}}%
   \noexpand\blx at refpatch@sect at iii}
@@ -9078,7 +9785,7 @@
     \H at old@sect,%    hyperref
     \NR at sect,%       nameref
     \scr at sect,%      koma-script 3.x
-    \scr at startsection,%  bad hack for koma >= 3.15
+    \scr at startsection,%  bad hack for koma 3.15 <= v <= 3.25
     \@startsection}%         latex
   \iftoggle{blx at tempa}
     {\blx at err@patch{\string\@sect}}
@@ -9137,6 +9844,8 @@
   \def\blx at tempa{file}%
   \def\blx at tempb{bibtex}%
   \def\blx at tempc{local}%
+  \undef\blx at tempd
+  \let\blx at tempe\@empty
   \blx at xsanitizeafter{\forcsvlist\blx at addbib@legacy}{#1}%
   \endgroup}
 \@onlypreamble\bibliography
@@ -9183,6 +9892,7 @@
   \def\blx at tempb{bibtex}%
   \def\blx at tempc{local}%
   \undef\blx at tempd
+  \let\blx at tempe\@empty
   \setkeys{blx at addbib}{#2}%
   \blx at xsanitizeafter{#1}{#3}%
   \endgroup}
@@ -9198,6 +9908,7 @@
 \define at key{blx at addbib}{datatype}{\def\blx at tempb{#1}}
 \define at key{blx at addbib}{location}{\def\blx at tempc{#1}}
 \define at key{blx at addbib}{label}{\edef\blx at tempd{\detokenize{#1}}}
+\define at key{blx at addbib}{bibencoding}{\def\blx at tempe{#1}}
 
 % \blx at res@type@<resource>      resource -> type
 % \blx at res@data@<resource>      resource -> datatype
@@ -9208,6 +9919,7 @@
   \csxdef{blx at res@type@#1}{\blx at tempa}%
   \csxdef{blx at res@data@#1}{\blx at tempb}%
   \csxdef{blx at res@loca@#1}{\blx at tempc}%
+  \csxdef{blx at res@bibencoding@#1}{\blx at tempe}%
   \ifdef\blx at tempd
     {\csxdef{blx at res@labl@\blx at tempd}{#1}}
     {}}
@@ -9237,6 +9949,9 @@
       {\ifcsdef{blx at res@data@#2}
         {\csuse{blx at res@data@#2}}
         {bibtex}}
+      {\ifcsvoid{blx at res@bibencoding@#2}
+        {}
+        { encoding="\csuse{blx at res@bibencoding@#2}"}}
       {#3}}}
 
 %% Citations
@@ -9311,8 +10026,22 @@
   \blx at loccitreset}
 
 % {<entrykey>}{<message>}
+% Wrapper to track cite keys which are \nocited
+\def\blx at nocitation#1#2{%
+  \ifinlist{#1}\blx at nocites
+    {}
+    {\listgadd\blx at nocites{#1}}%
+  \blx at citation@i{#1}{#2}}
+
+% {<entrykey>}{<message>}
 % Just a wrapper to suppress citation tracking in toc/lof etc.
 \def\blx at citation#1#2{%
+  \ifinlist{#1}\blx at directcites
+    {}
+    {\listgadd\blx at directcites{#1}}%
+  \blx at citation@i{#1}{#2}}
+
+\def\blx at citation@i#1#2{%
   \ifbool{citerequest}
     {\blx at citation@entry{#1}{#2}}
     {}}
@@ -9338,6 +10067,12 @@
 \protected\def\abx at aux@segm#1#2#3{%
   \listcsxadd{blx at segm@#1@#2}{\detokenize{#3}}}
 
+\def\blx at nocitation@all{%
+  \ifinlist{*}\blx at nocites
+    {}
+    {\listgadd\blx at nocites{*}}%
+  \blx at citation@all}
+
 \def\blx at citation@all{%
   \ifbool{citerequest}
     {\blx at bibreq{*}%
@@ -9352,11 +10087,21 @@
 \protected\def\blx at bibreq#1{%
   \begingroup
   \blx at xmlsanitizeafter{\def\blx at tempa}{#1}%
+  \let\blx at tempb\@empty
+  % Only output as \nocited if a key wasn't also directly \cite'd
+  % Since citekey output is sequential as cites are read, the .bcf might contain
+  % duplicate keys with differring nocite attributes if \nocite{X} and \cite{X} both occur
+  % but biber deals with this and priorities \cites
+  \ifboolexpr{test {\ifinlist{#1}\blx at nocites}
+              and
+              not test {\ifinlist{#1}\blx at directcites}}
+    {\def\blx at tempb{ nocite="1"}}
+    {}%
   % citeall is always order "0" - this makes no real difference as biber
   % ignores all other citekeys in the section if citeall is present
   \ifstrequal{*}{#1}
-    {\blx at auxwrite\blx at bcfout{}{\blx at xml@citekey{\blx at tempa}{0}}}
-    {\blx at auxwrite\blx at bcfout{}{\blx at xml@citekey{\blx at tempa}{\expandafter\the\csname blx at sectionciteorder@\the\c at refsection\endcsname}}}%
+    {\blx at auxwrite\blx at bcfout{}{\blx at xml@citekey{\blx at tempa}{\blx at tempb}{0}}}
+    {\blx at auxwrite\blx at bcfout{}{\blx at xml@citekey{\blx at tempa}{\blx at tempb}{\expandafter\the\csname blx at sectionciteorder@\the\c at refsection\endcsname}}}%
   \endgroup}
 
 % {<set>}{<key1,key2,key3>}
@@ -9405,12 +10150,15 @@
   \begingroup
   % This must be here and not after \blx at citeadd as this changes the refcontext
   \letcs\blx at tempb{blx at dlist@centry@\the\c at refsection @\blx at refcontext@context}%
+  \ifundef\blx at tempb
+    {\let\blx at tempb\@empty}
+    {}%
   % Make sure this counter exists. Sometimes it might not when using, e.g:
   % refsection=chapter and \includeonly to put in the chapters or when
   % inserting citations into table of contents
-  \ifcsname blx at sectionciteorder@\the\c at refsection\endcsname\else
-    \expandafter\newcount\csname blx at sectionciteorder@\the\c at refsection\endcsname
-  \fi
+  \ifcscounter{blx at sectionciteorder@\the\c at refsection}
+    {}
+    {\expandafter\newcount\csname blx at sectionciteorder@\the\c at refsection\endcsname}%
   \global\advance\csname blx at sectionciteorder@\the\c at refsection\endcsname\@ne
   \blx at tempcnta\z@
   \blx at tempcntb\z@
@@ -9450,6 +10198,9 @@
 \def\blx at citenosort{%
   \let\blx at tempb\blx at tempa}
 
+\def\abx at missing@entry#1{%
+  \abx at missing{#1}}
+
 % {<entrykey>}
 \def\blx at citeadd#1{%
   \ifcsdef{blx at keyalias@\the\c at refsection @#1}
@@ -9461,7 +10212,7 @@
     {\advance\blx at tempcnta\@ne
      \listeadd\blx at tempa{\blx at realkey}}
     {\ifnum\blx at tempcntb>\z@\multicitedelim\fi
-     \expandafter\abx at missing\expandafter{\blx at realkey}%
+     \expandafter\abx at missing@entry\expandafter{\blx at realkey}%
      \advance\blx at tempcntb\@ne}}
 
 % set default refcontext for one citation key
@@ -9478,7 +10229,7 @@
   % refcontext defined
   \ifcsdef{blx at assignedrefcontextbib@\the\c at refsection @#1}
     {\letcs\blx at refcontext@context{blx at assignedrefcontextbib@\the\c at refsection @#1}}
-    {\edef\blx at refcontext@context{\blx at sorting/global//global/global}}%
+    {\blx at edef@refcontext{\blx at sorting/global//global/global}}%
   % assignment via keyword list
   \ifdef\blx at assignedrefcontextkeywlist
     {\def\do##1{%
@@ -9594,10 +10345,35 @@
     {}}
 
 % {<refsection>}{<entrykey>}
+% set maxcitecounter as well, note that we also define a maxcitecounter across
+% all refsections, but that does not have a high-level interface
 \protected\def\blx at aux@count#1#2{%
-  \csnumgdef{blx at count@#1@\detokenize{#2}}{\csuse{blx at count@#1@\detokenize{#2}}+1}}
+  \csnumgdef{blx at count@#1@\detokenize{#2}}{%
+    \csuse{blx at count@#1@\detokenize{#2}}+1}%
+  \ifnumgreater{\csuse{blx at count@#1@\detokenize{#2}}}{%
+      0\csuse{blx at maxcitecounter@#1}}
+    {\csnumgdef{blx at maxcitecounter@#1}{%
+       \csuse{blx at count@#1@\detokenize{#2}}}}
+    {}%
+  \ifnumgreater{\csuse{blx at count@#1@\detokenize{#2}}}{%
+      0\csuse{blx at maxcitecounter}}
+    {\csnumgdef{blx at maxcitecounter}{%
+       \csuse{blx at count@#1@\detokenize{#2}}}}
+    {}}
+
 \protected\def\blx at aux@fncount#1#2{%
-  \csnumgdef{blx at fncount@#1@\detokenize{#2}}{\csuse{blx at fncount@#1@\detokenize{#2}}+1}}
+  \csnumgdef{blx at fncount@#1@\detokenize{#2}}{%
+    \csuse{blx at fncount@#1@\detokenize{#2}}+1}%
+  \ifnumgreater{\csuse{blx at fncount@#1@\detokenize{#2}}}{%
+      0\csuse{blx at maxfncitecounter@#1}}
+    {\csnumgdef{blx at maxfncitecounter@#1}{%
+       \csuse{blx at fncount@#1@\detokenize{#2}}}}
+    {}%
+  \ifnumgreater{\csuse{blx at fncount@#1@\detokenize{#2}}}{%
+      0\csuse{blx at maxfncitecounter}}
+    {\csnumgdef{blx at maxfncitecounter}{%
+       \csuse{blx at fncount@#1@\detokenize{#2}}}}
+    {}}
 
 \let\abx at aux@count\@gobbletwo
 \let\abx at aux@fncount\@gobbletwo
@@ -9608,14 +10384,22 @@
 
 \protected\def\blx at setcitecounter@global{%
   \c at citecounter0%
-  \csuse{blx at count@\the\c at refsection @\abx at field@entrykey}%
+    \csuse{blx at count@\the\c at refsection @\abx at field@entrykey}%
+  \relax
+  \c at maxcitecounter0%
+    \csuse{blx at maxcitecounter@\the\c at refsection}%
   \relax}
 
 \protected\def\blx at setcitecounter@context{%
   \c at citecounter0%
-  \iftoggle{blx at footnote}
-    {\csuse{blx at fncount@\the\c at refsection @\abx at field@entrykey}}
-    {\csuse{blx at count@\the\c at refsection @\abx at field@entrykey}}%
+    \iftoggle{blx at footnote}
+      {\csuse{blx at fncount@\the\c at refsection @\abx at field@entrykey}}
+      {\csuse{blx at count@\the\c at refsection @\abx at field@entrykey}}%
+  \relax
+  \c at maxcitecounter0%
+    \iftoggle{blx at footnote}
+      {\csuse{blx at maxfncitecounter@\the\c at refsection}}
+      {\csuse{blx at maxcitecounter@\the\c at refsection}}%
   \relax}
 
 % cite tracker
@@ -10069,7 +10853,7 @@
     \iftoggle{blx at bibliography}
       {}
       {\ifstrequal{*}{#1}
-        {\blx at citation@all}
+        {\blx at nocitation@all}
         {\blx at xsanitizeafter{\forcsvlist\blx at nocite@do}{#1}}}}%
   \@esphack}
 
@@ -10077,11 +10861,11 @@
     % Make sure this counter exists. Sometimes it might not when using, e.g:
     % refsection=chapter and \includeonly to put in the chapters or when
     % inserting citations into table of contents
-    \ifcsname blx at sectionciteorder@\the\c at refsection\endcsname\else
-      \expandafter\newcount\csname blx at sectionciteorder@\the\c at refsection\endcsname
-    \fi
+    \ifcscounter{blx at sectionciteorder@\the\c at refsection}
+      {}
+      {\expandafter\newcount\csname blx at sectionciteorder@\the\c at refsection\endcsname}%
   \global\advance\csname blx at sectionciteorder@\the\c at refsection\endcsname\@ne
-  \blx at citation{#1}\blx at msg@cundef}
+  \blx at nocitation{#1}\blx at msg@cundef}
 
 % {<macro>}[<arg1>][<arg2>]{<arg3>}
 % => <macro>{<arg1>}{<arg2>}{<arg3>}
@@ -10202,18 +10986,52 @@
     {\blx at defcitecmd@ii{#2#1}}}
 
 \long\def\blx at defcitecmd@ii#1{%
-  \protected\csedef{blx at cite@#1}{\blxciteicmd{#1}}%
-  \blx at defcitecmd@iv{#1}}
+  \csundef{blx at defcite@wrapper@#1}%
+  \blx at defcitecmd@iv{#1}%
+  \blx at defcitecmd@v{#1}}
 
 \long\def\blx at defcitecmd@iii#1[#2]{%
+  \csdef{blx at defcite@wrapper@#1}{#2}%
+  \blx at defcitecmd@iv{#1}%
+  \blx at defcitecmd@v{#1}}
+
+\long\def\blx at defcitecmd@iv#1{%
   \protected\long\csedef{blx at cite@#1}##1##2##3##4{%
-    \begingroup
-    \blx at citeinit
-    \unexpanded{#2}{\blxciteicmd{#1}{##1}{##2}{##3}{}}%
-    ##4\endgroup}%
-  \blx at defcitecmd@iv{#1}}
+    \ifboolexpe{test {\ifcsundef{blx at defcite@wrapper@#1}}
+                and
+                (test {\ifcsundef{blx at citepunct@#1}}
+                 or
+                 test {\ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at c}})}
+      {}
+      {\begingroup
+       \blx at citeinit}%
+    \ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at l}
+      {\noexpand\unspace##4}
+      {}%
+    \ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at f}
+      {\noexpand\iftoggle{blx at footnote}{}{\unspace##4}}
+      {}%
+    \ifcsundef{blx at defcite@wrapper@#1}
+      {\blxciteicmd{#1}{##1}{##2}{##3}{%
+         \ifcsundef{blx at citepunct@#1}{##4}{}%
+         \ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at c}{##4}{}}}
+      {\csexpandonce{blx at defcite@wrapper@#1}{%
+         \blxciteicmd{#1}{##1}{##2}{##3}{%
+           \ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at c}{##4}{}}}%
+       \ifcsundef{blx at citepunct@#1}{##4}{}}%
+    \ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at r}{##4}{}%
+    \ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at f}
+      {\noexpand\iftoggle{blx at footnote}{##4}{}}
+      {}%
+    \ifboolexpe{test {\ifcsundef{blx at defcite@wrapper@#1}}
+                and
+                (test {\ifcsundef{blx at citepunct@#1}}
+                 or
+                 test {\ifcsequal{blx at citepunct@#1}{blx at citepunctid@pos at c}})}
+      {}
+      {\endgroup}}}
 
-\long\def\blx at defcitecmd@iv#1#2#3#4#5{%
+\long\def\blx at defcitecmd@v#1#2#3#4#5{%
   \protected\long\csdef{blx at citei@#1}##1##2##3##4{%
     \ifblank{##1}
       {}
@@ -10436,14 +11254,15 @@
     \blx at citecmdinit
     \noexpand\@ifstar
       {\expandafter\noexpand
-       \csname blx at mcite@#4\endcsname*%
+       \csname blx at macitei@#1\endcsname*%
        \expandafter\noexpand
-       \csname blx at macitei@#1\endcsname}
+       \csname blx at maciteii@#1\endcsname}
       {\expandafter\noexpand
-       \csname blx at mcite@#4\endcsname{}%
+       \csname blx at macitei@#1\endcsname{}%
        \expandafter\noexpand
-       \csname blx at macitei@#1\endcsname}}%
-  \protected\csedef{blx at macitei@#1}##1##2##3{%
+       \csname blx at maciteii@#1\endcsname}}%
+  \csedef{blx at macitei@#1}{\csname blx at mcite@#4\endcsname}%
+  \protected\csedef{blx at maciteii@#1}##1##2##3{%
     \if l#2\noexpand\unspace##3\fi
     \if f#2\noexpand\iftoggle{blx at footnote}{}{\unspace##3}\fi
     ##1{##2}%
@@ -10458,6 +11277,36 @@
     {\let\blx at thecheckpunct\blx at checkpunct
      \def\blx at autopunct{#1}}}
 
+% {<command>}{<pos marker>}
+% pos markers are:
+%   l: move punctuation before the command (i.e. left of it)
+%   r: leave punctuation after the command (i.e. to the right)
+%   f: like l in normal text, like r in footnotes
+%   c: pass on to the cite command,
+%      the punctuation will eventually end up as field 'postpunct'
+%   d: discard the punctuation
+%   o (or any other value): restores the old standard behaviour
+%      r for wrapped citation commands,
+%      c for unwrapped ones
+\newrobustcmd*{\DeclareCitePunctuationPosition}[2]{%
+  \begingroup
+  \escapechar\m at ne
+  \edef\blx at tempa{\endgroup
+    \noexpand\blx at defcitepunctpos@i{\string#1}{#2}}%
+  \blx at tempa}
+
+\def\blx at citepunctid@pos at l{l}
+\def\blx at citepunctid@pos at r{r}
+\def\blx at citepunctid@pos at f{f}
+\def\blx at citepunctid@pos at c{c}
+\def\blx at citepunctid@pos at d{d}
+
+\def\blx at defcitepunctpos@i#1#2{%
+  \ifcsundef{blx at citepunctid@pos@#2}
+    {\csundef{blx at citepunct@#1}}
+    {\csletcs{blx at citepunct@#1}{blx at citepunctid@pos@#2}}%
+  \blx at defcitecmd@iv{#1}}
+
 \AfterEndPreamble{% babel
   \begingroup
   \makeatletter
@@ -10637,6 +11486,7 @@
     \def\ifuseprefix{\blx at TE{\iftoggle{blx at useprefix}}}%
     \def\ifterseinits{\blx at TE{\iftoggle{blx at terseinits}}}%
     \def\ifsingletitle{\blx at TE{\iftoggle{abx at bool@singletitle}}}%
+    \def\ifnocite{\blx at TE{\iftoggle{abx at bool@nocite}}}%
     \def\ifuniquetitle{\blx at TE{\iftoggle{abx at bool@uniquetitle}}}%
     \def\ifuniquebaretitle{\blx at TE{\iftoggle{abx at bool@uniquebaretitle}}}%
     \def\ifuniquework{\blx at TE{\iftoggle{abx at bool@uniquework}}}%
@@ -10647,7 +11497,9 @@
       \blx at TE{\blx at imc@ifdatehasyearonlyprecision{#1}}}%
     \def\ifdatehastime#1{\blx at TE{\blx at imc@ifdatehastime{#1}}}%
     \def\ifdateshavedifferentprecision#1#2{%
-      \blx at TE{\blx at imc@ifdateshavedifferentprecision{#1}{#2}}}}}
+      \blx at TE{\blx at imc@ifdateshavedifferentprecision{#1}{#2}}}%
+    \def\ifdateyearsequal#1#2{%
+      \blx at TE{\blx at imc@ifdateyearsequal{#1}{#2}}}}}
 
 % {<listmacro>}{<filtercsname>} => matches in <listmacro>
 \protected\def\blx at bibfilter#1#2{%
@@ -10667,9 +11519,9 @@
   \blx at tempa}
 
 %% Auxiliary macros
-\newrobustcmd*{\mkbibquote}{\enquote}
+\newrobustcmd*{\mkbibquote}{\blx at enquote}
 \protected\def\blx at imc@mkbibquote{%
-  \blx at ifuspunct\blx at usquote\enquote}
+  \blx at ifuspunct\blx at usquote\blx at enquote}
 
 \def\blx at usquote{%
   \ifnum\@quotelevel>\z@
@@ -10680,26 +11532,26 @@
 
 \long\def\blx at usoquote#1{%
   \begingroup
-  \initoquote
-  \textooquote#1%
+  \blx at initoquote
+  \blx at textooquote#1%
   \futurelet\@let at token\blx at usoquote@i}
 
 \def\blx at usoquote@i{%
   \blx at usqcheck
     {\ifx\blx at postpunct\@empty\else\blx at dopostpunct\fi
-     \textcoquote\endgroup}
-    {\blx at setpostpunct\textcoquote\endgroup}}
+     \blx at textcoquote\endgroup}
+    {\blx at setpostpunct\blx at textcoquote\endgroup}}
 
 \long\def\blx at usiquote#1{%
   \begingroup
-  \initiquote
-  \textoiquote#1%
+  \blx at initiquote
+  \blx at textoiquote#1%
   \futurelet\@let at token\blx at usiquote@i}
 
 \def\blx at usiquote@i{%
   \blx at usqcheck
-    {\textciquote\endgroup}
-    {\blx at setpostpunct\textciquote\endgroup}}
+    {\blx at textciquote\endgroup}
+    {\blx at setpostpunct\blx at textciquote\endgroup}}
 
 \long\def\blx at usqcheck#1#2{%
   \def\blx at tempa{#1}%
@@ -11041,8 +11893,8 @@
   ~~<bcf:transliteration entrytype="#1">\blx at nl
   #2%
   ~~</bcf:transliteration>\blx at nl}
-\xdef\blx at xml@translit#1#2#3{%
-  ~~~~<bcf:translit target="#1" from="#2" to="#3"/>\blx at nl}
+\xdef\blx at xml@translit#1#2#3#4{%
+  ~~~~<bcf:translit #1target="#2" from="#3" to="#4"/>\blx at nl}
 
 \xdef\blx at xml@sourcemap#1{%
   ~~<bcf:sourcemap>\blx at nl
@@ -11220,10 +12072,10 @@
   ~~<bcf:bibdata section="#1">\blx at nl
   #2%
   ~~</bcf:bibdata>\blx at nl}
-\xdef\blx at xml@datasource#1#2#3{%
-  ~~~~<bcf:datasource type="#1" datatype="#2">#3</bcf:datasource>\blx at nl}
-\xdef\blx at xml@citekey#1#2{%
-  ~~~~<bcf:citekey order="#2">#1</bcf:citekey>}
+\xdef\blx at xml@datasource#1#2#3#4{%
+  ~~~~<bcf:datasource type="#1" datatype="#2"#3>#4</bcf:datasource>\blx at nl}
+\xdef\blx at xml@citekey#1#2#3{%
+  ~~~~<bcf:citekey order="#3"#2>#1</bcf:citekey>}
 \xdef\blx at xml@citeset#1#2{%
   ~~~~<bcf:citekey type="set" members="#2">#1</bcf:citekey>}
 \xdef\blx at xml@svalue#1#2{%
@@ -11260,10 +12112,12 @@
     \blx at xml@svalue{maxalphanames}{\blx at maxalphanames}%
     \blx at xml@svalue{maxbibnames}{\blx at maxbibnames}%
     \blx at xml@svalue{maxcitenames}{\blx at maxcitenames}%
+    \blx at xml@svalue{maxsortnames}{\blx at maxsortnames}%
     \blx at xml@svalue{maxitems}{\blx at maxitems}%
     \blx at xml@svalue{minalphanames}{\blx at minalphanames}%
     \blx at xml@svalue{minbibnames}{\blx at minbibnames}%
     \blx at xml@svalue{mincitenames}{\blx at mincitenames}%
+    \blx at xml@svalue{minsortnames}{\blx at minsortnames}%
     \blx at xml@svalue{minitems}{\blx at minitems}%
     \blx at xml@toggle{singletitle}%
     \blx at xml@svalue{sortalphaothers}{\sortalphaothers}%
@@ -11303,10 +12157,12 @@
     \blx at xml@svalue{maxalphanames}{\blx at maxalphanames}%
     \blx at xml@svalue{maxbibnames}{\blx at maxbibnames@type}%
     \blx at xml@svalue{maxcitenames}{\blx at maxcitenames@type}%
+    \blx at xml@svalue{maxsortnames}{\blx at maxsortnames@type}%
     \blx at xml@svalue{maxitems}{\blx at maxitems@type}%
     \blx at xml@svalue{minalphanames}{\blx at minalphanames}%
     \blx at xml@svalue{minbibnames}{\blx at minbibnames@type}%
     \blx at xml@svalue{mincitenames}{\blx at mincitenames@type}%
+    \blx at xml@svalue{minsortnames}{\blx at minsortnames@type}%
     \blx at xml@svalue{minitems}{\blx at minitems@type}%
     \blx at xml@toggle{singletitle}%
     \blx at xml@toggle{skipbib}%
@@ -11354,15 +12210,13 @@
   \ifdef\blx at opts@type
     {\def\do##1{%
        \begingroup
+       \let\protect\relax
        \blx at setoptions@type{##1}%
        % Expand the type use* name toggles
        \let\blx at xml@nametoggles\@empty
        \def\do####1{\eappto\blx at xml@nametoggles{\blx at xml@toggle{use####1}}}%
        \abx at donames
-       \begingroup
-       \let\protect\relax
        \blx at checkoptions@type
-       \endgroup
        \xappto\blx at tempa{\blx at bcf@options at type{##1}}%
        \endgroup}%
      \dolistloop\blx at opts@type}
@@ -11849,8 +12703,12 @@
     {}}
 \define at key{blx at sourcemap@step}{match}{% characters
   \appto\blx at tempf{ map\string_match="#1"}}
+\define at key{blx at sourcemap@step}{matchi}{% characters
+  \appto\blx at tempf{ map\string_matchi="#1"}}
 \define at key{blx at sourcemap@step}{notmatch}{% characters
   \appto\blx at tempf{ map\string_notmatch="#1"}}
+\define at key{blx at sourcemap@step}{notmatchi}{% characters
+  \appto\blx at tempf{ map\string_notmatchi="#1"}}
 \define at key{blx at sourcemap@step}{replace}{% characters
   \eappto\blx at tempf{ map\string_replace="#1"}}
 
@@ -12143,15 +13001,15 @@
          Use '\string\DeclareBiblistFilter' to define it}}
     {\def\blx at thebiblistfilter{#1}}}
 
-% [<entrytype>]
+% [<langids>][<entrytype>]{translitsource}{translittarget}
 \newrobustcmd*{\DeclareSortTranslit}[2][]{%
   \begingroup
   \ifblank{#1}
     {\def\blx at tempa{*}}
     {\def\blx at tempa{#1}}%
-    \let\translit\blx at translit@setup
-    \let\blx at tempb\@empty
-    #2%
+  \let\translit\blx at translit@setup
+  \let\blx at tempb\@empty
+  #2%
   \global\cslet{blx at translit@\blx at tempa}\blx at tempb
   \xifinlist\blx at tempa\blx at translits
     {}
@@ -12161,9 +13019,11 @@
 \blx at collectopts{xml}{blx at globalopts}{translit}% for passing to the .bcf
 \blx at collectopts{xml}{blx at typeopts}{translit}% for passing to the .bcf
 
-\newcommand*{\blx at translit@setup}[3][*]{%
+\newcommand*{\blx at translit@setup}[4][]{%
   \eappto\blx at tempb{%
-    \blx at xml@translit{#1}{#2}{#3}}}
+    \ifblank{#1}
+     {\blx at xml@translit{}{#2}{#3}{#4}}
+     {\blx at xml@translit{langids="#1" }{#2}{#3}{#4}}}}
 
 % [<specname>]{<spec>}
 \newrobustcmd*{\DeclareUniquenameTemplate}[2][]{%
@@ -12598,9 +13458,14 @@
 \define at key{blx at opt@ldt}{mcite}[true]{%
   \settoggle{blx at mcite}{#1}}
 
-\newtoggle{blx at noerroretextools}
 \define at key{blx at opt@ldt}{noerroretextools}[true]{%
-  \settoggle{blx at noerroretextools}{#1}}
+  \blx at warning@noline{%
+    The option 'noerroretextools' is deprecated.\MessageBreak
+    Define the control sequence '\string\blx at noerroretextools'\MessageBreak
+    before loading biblatex instead}%
+  \ifstrequal{#1}{true}
+    {\global\cslet{blx at noerroretextools}\@empty}
+    {\csgundef{blx at noerroretextools}}}
 
 % load-time and preamble
 
@@ -12667,9 +13532,10 @@
   \listxadd\blx at sortingtemplatenames\blx at sorting
   \def\blx at refcontext@sortingnamekeytemplatename{global}%
   \let\blx at refcontext@labelprefix\@empty
+  \let\blx at refcontext@labelprefix at real\@empty
   \def\blx at refcontext@uniquenametemplatename{global}%
   \def\blx at refcontext@labelalphanametemplatename{global}%
-  \xdef\blx at refcontext@context{\blx at refcontext@sortingtemplatename/\blx at refcontext@sortingnamekeytemplatename/\blx at refcontext@labelprefix/\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}%
+  \blx at xdef@refcontext{\blx at refcontext@sortingtemplatename/\blx at refcontext@sortingnamekeytemplatename/\blx at refcontext@labelprefix/\blx at refcontext@uniquenametemplatename/\blx at refcontext@labelalphanametemplatename}%
   \listxadd\blx at refcontexts\blx at refcontext@context}
 
 \DeclareBibliographyOption[boolean]{sortcase}[true]{%
@@ -12680,17 +13546,21 @@
 
 \DeclareBibliographyOption[integer]{maxnames}{%
   \numdef\blx at maxcitenames{#1}%
-  \numdef\blx at maxbibnames{#1}}
+  \numdef\blx at maxbibnames{#1}%
+  \numdef\blx at maxsortnames{#1}}
 \DeclareBibliographyOption[integer]{minnames}{%
   \numdef\blx at mincitenames{#1}%
-  \numdef\blx at minbibnames{#1}}
+  \numdef\blx at minbibnames{#1}%
+  \numdef\blx at minsortnames{#1}}
 \DeclareTypeOption[integer]{maxnames}{%
   \numdef\blx at maxcitenames@type{#1}%
   \numdef\blx at maxbibnames@type{#1}%
+  \numdef\blx at maxsortnames@type{#1}%
   \c at maxnames#1\relax}
 \DeclareTypeOption[integer]{minnames}{%
   \numdef\blx at mincitenames@type{#1}%
   \numdef\blx at minbibnames@type{#1}%
+  \numdef\blx at minsortnames@type{#1}%
   \c at minnames#1\relax}
 \DeclareEntryOption[integer]{maxnames}{%
   \c at maxnames#1\relax}
@@ -12698,16 +13568,20 @@
   \c at minnames#1\relax}
 
 \DeclareBibliographyOption[integer]{maxbibnames}{%
-  \numdef\blx at maxbibnames{#1}}
+  \numdef\blx at maxbibnames{#1}%
+  \numdef\blx at maxsortnames{#1}}
 \DeclareBibliographyOption[integer]{minbibnames}{%
-  \numdef\blx at minbibnames{#1}}
+  \numdef\blx at minbibnames{#1}%
+  \numdef\blx at minsortnames{#1}}
 \DeclareTypeOption[integer]{maxbibnames}{%
   \numdef\blx at maxbibnames@type{#1}%
+  \numdef\blx at maxsortnames@type{#1}%
   \iftoggle{blx at bibliography}
     {\c at maxnames#1\relax}
     {}}
 \DeclareTypeOption[integer]{minbibnames}{%
   \numdef\blx at minbibnames@type{#1}%
+  \numdef\blx at minsortnames@type{#1}%
   \iftoggle{blx at bibliography}
     {\c at minnames#1\relax}
     {}}
@@ -12743,12 +13617,25 @@
     {}
     {\c at minnames#1\relax}}
 
+\DeclareBibliographyOption[integer]{maxsortnames}{%
+  \numdef\blx at maxsortnames{#1}}
+\DeclareBibliographyOption[integer]{minsortnames}{%
+  \numdef\blx at minsortnames{#1}}
+\DeclareTypeOption[integer]{maxsortnames}{%
+  \numdef\blx at maxsortnames@type{#1}}
+\DeclareTypeOption[integer]{minsortnames}{%
+  \numdef\blx at minsortnames@type{#1}}
+\DeclareEntryOption[integer]{maxsortnames}{}
+\DeclareEntryOption[integer]{minsortnames}{}
+
 \appto\blx at checkoptions@global{%
   \blx at maxmin@num{maxbibnames}{minbibnames}\blx at maxbibnames\blx at minbibnames
-  \blx at maxmin@num{maxcitenames}{mincitenames}\blx at maxcitenames\blx at mincitenames}
+  \blx at maxmin@num{maxcitenames}{mincitenames}\blx at maxcitenames\blx at mincitenames
+  \blx at maxmin@num{maxsortnames}{minsortnames}\blx at maxsortnames\blx at minsortnames}
 \appto\blx at checkoptions@type{%
   \blx at maxmin@num{maxbibnames}{minbibnames}\blx at maxbibnames@type\blx at minbibnames@type
-  \blx at maxmin@num{maxcitenames}{mincitenames}\blx at maxcitenames@type\blx at mincitenames@type}
+  \blx at maxmin@num{maxcitenames}{mincitenames}\blx at maxcitenames@type\blx at mincitenames@type
+  \blx at maxmin@num{maxsortnames}{minsortnames}\blx at maxsortnames@type\blx at minsortnames@type}
 \appto\blx at checkoptions@entry{%
   \blx at maxmin@cnt{maxnames}{minnames}\c at maxnames\c at minnames}
 
@@ -13571,6 +14458,13 @@
 \def\blx at opt@uniquename at mininit{5}
 \def\blx at opt@uniquename at minfull{6}
 
+\DeclareBibliographyOption[boolean]{noroman}[true]{%
+  \settoggle{blx at noroman}{#1}}
+\DeclareTypeOption[boolean]{noroman}[true]{%
+  \settoggle{blx at noroman}{#1}}
+\DeclareEntryOption[boolean]{noroman}[true]{%
+  \settoggle{blx at noroman}{#1}}
+
 \DeclareBibliographyOption[boolean]{singletitle}[true]{%
   \settoggle{blx at singletitle}{#1}}
 \DeclareTypeOption[boolean]{singletitle}[true]{%
@@ -13606,81 +14500,96 @@
 \DeclareBibliographyOption[boolean]{locallabelwidth}[true]{%
   \blx at key@locallabelwidth{#1}}
 
+%{<switch>}{<patch>}{<pre>}{<post>}
+\def\blx at patchsection@switch#1#2#3#4{%
+  \AtEndPreamble{%
+    #3%
+    \ifcase#1
+    \or % 1: part
+      \blx at refpatch@part{#2}%
+    \or % 2: chapter
+      \blx at refpatch@chapter{#2}%
+    \or % 3: section
+      \blx at refpatch@sect{section}{#2}{1}%
+    \or % 4: subsection
+      \blx at refpatch@sect{subsection}{#2}{2}%
+    \or % 5: chapter+ = part, chapter
+      \blx at refpatch@part{#2}%
+      \blx at refpatch@chapter{#2}%
+    \or % 6: section+ = part, chapter, section
+      \blx at refpatch@part{#2}%
+      \ifundef\chapter
+        {}
+        {\blx at refpatch@chapter{#2}}%
+      \blx at refpatch@sect{section}{#2}{1}%
+    \or % 7: subsection+ = part, chapter, section, subsection
+      \blx at refpatch@part{#2}%
+      \ifundef\chapter
+        {}
+        {\blx at refpatch@chapter{#2}}%
+      \blx at refpatch@sect{section}{#2}{1}%
+      \blx at refpatch@sect{subsection}{#2}{2}%
+    \fi
+    #4%
+  }%
+}
+
 \DeclareBibliographyOption[string]{refsection}{%
   \ifcsdef{blx at opt@refsection@#1}
     {\letcs\blx at refsecreset@level{blx at opt@refsection@#1}}
     {\blx at err@invopt{refsection=#1}{}}}
-\def\blx at opt@refsection at none{0}
-\def\blx at opt@refsection at part{1}
-\def\blx at opt@refsection at chapter{2}
-\def\blx at opt@refsection at section{3}
-\def\blx at opt@refsection at subsection{4}
+\csdef{blx at opt@refsection at none}{0}
+\csdef{blx at opt@refsection at part}{1}
+\csdef{blx at opt@refsection at chapter}{2}
+\csdef{blx at opt@refsection at section}{3}
+\csdef{blx at opt@refsection at subsection}{4}
+\csdef{blx at opt@refsection at chapter+}{5}
+\csdef{blx at opt@refsection at section+}{6}
+\csdef{blx at opt@refsection at subsection+}{7}
 
-\AtEndPreamble{%
-  \ifcase\blx at refsecreset@level
-  \or % 1
-    \blx at refpatch@part\newrefsection
-  \or % 2
-    \blx at refpatch@chapter\newrefsection
-  \or % 3
-    \blx at refpatch@sect{section}{\newrefsection}{1}%
-  \or % 4
-    \blx at refpatch@sect{subsection}{\newrefsection}{2}%
-  \fi}
+\blx at patchsection@switch{\blx at refsecreset@level}{\newrefsection}{}{}
 
 \DeclareBibliographyOption[string]{refsegment}{%
   \ifcsdef{blx at opt@refsegment@#1}
     {\letcs\blx at refsegreset@level{blx at opt@refsegment@#1}}
     {\blx at err@invopt{refsegment=#1}{}}}
-\def\blx at opt@refsegment at none{0}
-\def\blx at opt@refsegment at part{1}
-\def\blx at opt@refsegment at chapter{2}
-\def\blx at opt@refsegment at section{3}
-\def\blx at opt@refsegment at subsection{4}
+\csdef{blx at opt@refsegment at none}{0}
+\csdef{blx at opt@refsegment at part}{1}
+\csdef{blx at opt@refsegment at chapter}{2}
+\csdef{blx at opt@refsegment at section}{3}
+\csdef{blx at opt@refsegment at subsection}{4}
+\csdef{blx at opt@refsegment at chapter+}{5}
+\csdef{blx at opt@refsegment at section+}{6}
+\csdef{blx at opt@refsegment at subsection+}{7}
 
-\AtEndPreamble{%
-  \ifnumgreater\blx at refsegreset@level\z@
-    {\ifnumgreater\blx at refsegreset@level\blx at refsecreset@level
-       {}
-       {\blx at err@confopt
-          {refsegment/refsection}
-          {The 'refsegment' option must point to a
-           lower-level\MessageBreak document division
-           than 'refsection'}%
-        \def\blx at refsegreset@level{0}}}
-    {}%
-  \ifcase\blx at refsegreset@level
-  \or % 1
-    \blx at refpatch@part\newrefsegment
-  \or % 2
-    \blx at refpatch@chapter\newrefsegment
-  \or % 3
-    \blx at refpatch@sect{section}{\newrefsegment}{1}%
-  \or % 4
-    \blx at refpatch@sect{subsection}{\newrefsegment}{2}%
-  \fi}
+\blx at patchsection@switch{\blx at refsegreset@level}
+  {\newrefsegment}
+  {\ifnumgreater\blx at refsegreset@level\z@
+     {\ifnumgreater\blx at refsegreset@level\blx at refsecreset@level
+        {}
+        {\blx at err@confopt
+           {refsegment/refsection}
+           {The 'refsegment' option must point to a
+            lower-level\MessageBreak document division
+            than 'refsection'}%
+         \def\blx at refsegreset@level{0}}}
+     {}}
+  {}
 
 \DeclareBibliographyOption[string]{citereset}{%
   \ifcsdef{blx at opt@citereset@#1}
     {\letcs\blx at citereset@level{blx at opt@citereset@#1}}
     {\blx at err@invopt{citereset=#1}{}}}
-\def\blx at opt@citereset at none{0}
-\def\blx at opt@citereset at part{1}
-\def\blx at opt@citereset at chapter{2}
-\def\blx at opt@citereset at section{3}
-\def\blx at opt@citereset at subsection{4}
+\csdef{blx at opt@citereset at none}{0}
+\csdef{blx at opt@citereset at part}{1}
+\csdef{blx at opt@citereset at chapter}{2}
+\csdef{blx at opt@citereset at section}{3}
+\csdef{blx at opt@citereset at subsection}{4}
+\csdef{blx at opt@citereset at chapter+}{5}
+\csdef{blx at opt@citereset at section+}{6}
+\csdef{blx at opt@citereset at subsection+}{7}
 
-\AtEndPreamble{%
-  \ifcase\blx at citereset@level
-  \or % 1
-    \blx at refpatch@part{\citereset\blx at inf@creset}%
-  \or % 2
-    \blx at refpatch@chapter{\citereset\blx at inf@creset}%
-  \or % 3
-    \blx at refpatch@sect{section}{\citereset\blx at inf@creset}{1}%
-  \or % 4
-    \blx at refpatch@sect{subsection}{\citereset\blx at inf@creset}{2}%
-  \fi}
+\blx at patchsection@switch{\blx at citereset@level}{\citereset\blx at inf@creset}{}{}
 
 \DeclareBibliographyOption[boolean]{bibwarn}[true]{%
   \ifstrequal{#1}{true}
@@ -13848,7 +14757,7 @@
     {}%
     \def\do#1{%
       \ifcsstring{blx at dateformat@#1}{iso}
-        {\StrCut{#1}{date}\blx at datetype\blx at tempnull
+        {\blx at stripfromendinto{#1}{date}\blx at datetype
          \ifdefstring\blx at dateera{astronomical}{}
            {\blx at warn@conflopt{%
               '#1=iso' requires 'dateera=astronomical'.\MessageBreak
@@ -13952,9 +14861,9 @@
   \blx at checkencoding
   \if at filesw
     \blx at ctrlwrite
-    \blx at bblinput
-    \blx at maxsection\z@
   \fi
+  \blx at bblinput
+  \blx at maxsection\z@
   \csuse{abx at preamble}%
   \blx at inf@refsec
   \blx at inf@refseg}
@@ -13976,4 +14885,6 @@
     \blx at dopreamblecmds
     \let\do\noexpand}}
 
+\def\BiblatexHungarianWarningOff{\global\let\lbx at hu@loadinfo\@empty}
+
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/blx-bibtex.def	2018-11-03 21:11:01 UTC (rev 49069)
@@ -53,14 +53,13 @@
      \string\citation{biblatex-control}}}
 
 \def\blx at sig@bib{@Comment{$ biblatex control file $}}
-\edef\blx at ver@bib{@Comment{$ biblatex version \blx at bblversion\space $}}
+\edef\blx at ver@bib{%
+  @Comment{$ biblatex bbl format version \blx at bblversion\space $}}
 
 \let\blx at sig@aux\blx at sig@bbl
 \let\blx at ver@aux\blx at ver@bbl
 
-\edef\blx at msg@aux{%
-  \blx at sig@aux\blx at nl
-  \blx at ver@aux\blx at nl
+\edef\blx at msg@text{%
   \@percentchar\space Do not modify this file!\blx at nl
   \@percentchar\blx at nl
   \@percentchar\space This is an auxiliary file
@@ -67,17 +66,17 @@
   used by the 'biblatex' package.\blx at nl
   \@percentchar\space This file may safely be deleted.
   It will be recreated as\blx at nl
-  \@percentchar\space required.\blx at nl
+  \@percentchar\space required.\blx at nl}
+
+\edef\blx at msg@aux{%
+  \blx at sig@aux\blx at nl
+  \blx at ver@aux\blx at nl
+  \blx at msg@text
   \@percentchar\blx at nl\string\relax\blx at nl}
 \edef\blx at msg@bib{%
   \blx at sig@bib\blx at nl
   \blx at ver@bib\blx at nl
-  Do not modify this file!\blx at nl\blx at nl
-  This is an auxiliary file used
-  by the 'biblatex' package.\blx at nl
-  This file may safely be deleted.
-  It will be recreated as\blx at nl
-  required.\blx at nl\blx at nl}
+  \blx at msg@text\blx at nl}
 
 % User feedback
 
@@ -416,8 +415,11 @@
     \noexpand\csuse{blx at sorting@\noexpand\blx at sorting}:%
     \noexpand\blx at maxcitenames:%
     \noexpand\blx at mincitenames:%
+    \noexpand\blx at maxalphanames:%
+    \noexpand\blx at minalphanames:%
     \noexpand\blx at maxline:%
     \noexpand\detokenize\noexpand\expandafter{\noexpand\labelalphaothers}:%
+    \noexpand\detokenize\noexpand\expandafter{\noexpand\blx at sortalphaothers}:%
     \noexpand\detokenize\noexpand\expandafter{\noexpand\blx at sorting}%
   \string},\blx at nl
   \string}%
@@ -424,6 +426,9 @@
 }
 
 \def\blx at ctrlwrite{%
+  % \sortalphaothers should only contain safe characters,
+  % so we should be able to \edef it
+  \edef\blx at sortalphaothers{\sortalphaothers}%
   \immediate\openout\blx at write\blx at ctrlfile\blxauxsuffix.bib\relax
   \blx at auxwrite\blx at write{}{\blx at ctrl}%
   \immediate\closeout\blx at write}

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/blx-dm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/blx-dm.def	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/blx-dm.def	2018-11-03 21:11:01 UTC (rev 49069)
@@ -224,7 +224,7 @@
        \ifinlistcs{##1}{blx at datamodel@fields}
          {}
          {\listcsgadd{blx at datamodel@fields}{##1}}%
-       \StrCut{##1}{date}\blx at datetype\blx at tempnull
+       \blx at stripfromendinto{##1}{date}\blx at datetype
        % dateparts which are ok to be null (by default *endyear)
        \def\do####1{%
          \let\blx at tempa\@empty% reset setkeys buffer due to loop calls
@@ -445,7 +445,7 @@
 \DeclareDatamodelEntrytypes[skipout]{xdata}
 
 \DeclareDatamodelFields[type=field, datatype=integer]{
-  number,
+  sortyear,
   volume,
   volumes}
 
@@ -488,6 +488,7 @@
   maintitleaddon,
   nameaddon,
   note,
+  number,
   origtitle,
   pagetotal,
   part,
@@ -515,7 +516,6 @@
   shorttitle}
 
 \DeclareDatamodelFields[type=field, datatype=literal, skipout]{
-  sortyear,
   sorttitle,
   sortshorthand,
   sortkey,
@@ -1087,8 +1087,12 @@
 \DeclareDatamodelEntryfields[online]{
   addendum,
   author,
+  doi,
   editor,
   editortype,
+  eprint,
+  eprintclass,
+  eprinttype,
   language,
   note,
   organization,

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/blx-natbib.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/blx-natbib.def	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/blx-natbib.def	2018-11-03 21:11:01 UTC (rev 49069)
@@ -1,7 +1,7 @@
 \ProvidesFile{blx-natbib.def}
 [\abx at cptid]
 
-\renewcommand*{\nameyeardelim}{\addcomma\space}
+\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
 
 \newrobustcmd*{\citet}{%
   \@ifstar
@@ -16,13 +16,11 @@
     {\parencite}}
 
 \newrobustcmd*{\citealt}{%
+  \AtNextCite{\DeclareDelimFormat{nameyeardelim}{\addspace}}%
   \@ifstar
-    {\AtNextCite{%
-       \def\nameyeardelim{\addspace}%
-       \AtEachCitekey{\defcounter{maxnames}{999}}}%
+    {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}%
      \cite}
-    {\AtNextCite{\def\nameyeardelim{\addspace}}%
-     \cite}}
+    {\cite}}
 
 \newrobustcmd*{\citealp}{%
   \@ifstar

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/brazilian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -58,7 +58,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -458,6 +458,7 @@
   langgalician     = {{galego}{galego}},
   langgerman       = {{alem\~ao}{alem\~ao}},
   langgreek        = {{grego}{grego}},
+  langhungarian    = {{h\'ungaro}{h\'ungaro}},
   langitalian      = {{italiano}{italiano}},
   langjapanese     = {{japon\^es}{japon\^es}},
   langlatin        = {{latim}{latim}},
@@ -486,6 +487,7 @@
   fromgalician     = {{do galego}{do galego}},
   fromgerman       = {{do alem\~ao}{do alem\~ao}},
   fromgreek        = {{do grego}{do grego}},
+  fromhungarian    = {{do h\'ungaro}{do h\'ungaro}},
   fromitalian      = {{do italiano}{do italiano}},
   fromjapanese     = {{do japon\^es}{do japon\^es}},
   fromlatin        = {{do latim}{do latim}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/british.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -58,7 +58,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/bulgarian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/bulgarian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/bulgarian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -48,7 +48,7 @@
       {}
       {\iffieldundef{#3}
          {\mkbibmonth{\thefield{#2}}}
-         {\lbx at ru@mkbibdatemonth{\thefield{#2}}}%
+         {\lbx at bg@mkbibdatemonth{\thefield{#2}}}%
        \iffieldundef{#1}{}{\space}}%
     \iffieldbibstring{#1}
       {\bibstring{\thefield{#1}}}
@@ -85,7 +85,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -502,6 +502,7 @@
   langgalician     = {{галисийски}{гал\adddot}},
   langgerman       = {{немски}{нем\adddot}},
   langgreek        = {{гръцки}{гр\adddot}},
+  langhungarian    = {{унгарски}{унг\adddot}},
   langitalian      = {{италиански}{итал\adddot}},
   langjapanese     = {{японски}{яп\adddot}},
   langlatin        = {{латински}{лат\adddot}},
@@ -528,7 +529,8 @@
   fromfrench       = {{от френски}{от\addabbrvspace фр\adddot}},
   fromgalician     = {{от галисийски}{от\addabbrvspace гал\adddot}},
   fromgerman       = {{от немски}{от\addabbrvspace нем\adddot}},
-  fromgreek        = {{от гръцки}{от\addabbrvspace греч\adddot}},
+  fromgreek        = {{от гръцки}{от\addabbrvspace гр\adddot}},
+  fromhungarian    = {{от унгарски}{от\addabbrvspace унг\adddot}},
   fromitalian      = {{от италиански}{от\addabbrvspace итал\adddot}},
   fromjapanese     = {{от японски}{от\addabbrvspace яп\adddot}},
   fromlatin        = {{от латински}{от\addabbrvspace лат\adddot}},
@@ -595,4 +597,4 @@
     #1\BibliographyWarning{Month out of range}%
   \fi}%
 
-\endinput
\ No newline at end of file
+\endinput

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/catalan.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -81,7 +81,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -135,7 +135,7 @@
   annotations      = {{notes}{n\adddot}},
   introduction     = {{introducci\'o}{intr\adddot}},
   foreword         = {{pr\`oleg}{pr\`ol\adddot}},
-  afterword        = {{ep{\'\i}leg}{ep\adddot}},
+  afterword        = {{ep\'{\i}leg}{ep\adddot}},
   editortr         = {{editor i traductor}{ed\adddotspace i trad\adddot}},
   editorstr        = {{editors i traductors}{ed\adddotspace i trad\adddot}},
   editorco         = {{editor i comentarista}{ed\adddotspace i com\adddot}},
@@ -150,9 +150,9 @@
                       {ed\adddotspace i aut\adddotspace del pr\`ol\adddot}},
   editorsfo        = {{editors i autors del pr\`oleg}
                       {ed\adddotspace i aut\adddotspace del pr\`ol\adddot}},
-  editoraf         = {{editor i autor de l'ep{\'\i}leg} %
+  editoraf         = {{editor i autor de l'ep\'{\i}leg}
                       {ed\adddotspace i aut\adddotspace de l'ep\adddot}},
-  editorsaf        = {{editors i autors de l'ep{\'\i}leg} %
+  editorsaf        = {{editors i autors de l'ep\'{\i}leg}
                       {ed\adddotspace i aut\adddotspace de l'ep\adddot}},
   editortrco       = {{editor, traductor i comentarista}
                       {ed.,\addabbrvspace trad\adddotspace i com\adddot}},
@@ -170,9 +170,9 @@
                       {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
   editorstrfo      = {{editors, traductors i autors del pr\`oleg}
                       {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
-  editortraf       = {{editor, traductor i autor de l'ep{\'\i}leg}
+  editortraf       = {{editor, traductor i autor de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de l'ep\adddot}},
-  editorstraf      = {{editors, traductors i autors de l'ep{\'\i}leg}
+  editorstraf      = {{editors, traductors i autors de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de l'ep\adddot}},
   editorcoin       = {{editor, comentarista i autor de la introducci\'o}
                       {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}},
@@ -182,9 +182,9 @@
                       {ed.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
   editorscofo      = {{editors, comentaristes i autors del pr\`oleg}
                       {ed.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
-  editorcoaf       = {{editor, comentarista i autor de l'ep{\'\i}leg}
+  editorcoaf       = {{editor, comentarista i autor de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
-  editorscoaf      = {{editors, comentaristes i autors de l'ep{\'\i}leg}
+  editorscoaf      = {{editors, comentaristes i autors de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
   editoranin       = {{editor, anotador i autor de la introducci\'o}
                       {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
@@ -194,9 +194,9 @@
                       {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
   editorsanfo      = {{editors, anotadors i autors del pr\`oleg}
                       {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
-  editoranaf       = {{editor, anotador i autor de l'ep{\'\i}leg}
+  editoranaf       = {{editor, anotador i autor de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
-  editorsanaf      = {{editors, anotadors i autors de l'ep{\'\i}leg}
+  editorsanaf      = {{editors, anotadors i autors de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
   editortrcoin     = {{editor, traductor, comentarista i autor de la introducci\'o}
                       {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}},
@@ -206,9 +206,9 @@
                       {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot }},
   editorstrcofo    = {{editors, traductors, comentaristes i autors del pr\`oleg}
                       {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot }},
-  editortrcoaf     = {{editor, traductor, comentarista i autor de l'ep{\'\i}leg}
+  editortrcoaf     = {{editor, traductor, comentarista i autor de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
-  editorstrcoaf    = {{editors, traductors, comentaristes i autors de l'ep{\'\i}leg}
+  editorstrcoaf    = {{editors, traductors, comentaristes i autors de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
   editortranin     = {{editor, traductor, anotador i autor de la introducci\'o}
                       {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
@@ -218,9 +218,9 @@
                       {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de pr\`ol\adddot}},
   editorstranfo    = {{editors, traductors, anotadors i autors del pr\`oleg}
                       {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de pr\`ol\adddot}},
-  editortranaf     = {{editor, traductor, anotador i autor de l'ep{\'\i}leg}
+  editortranaf     = {{editor, traductor, anotador i autor de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
-  editorstranaf    = {{editors, traductors, anotadors i autors de l'ep{\'\i}leg}
+  editorstranaf    = {{editors, traductors, anotadors i autors de l'ep\'{\i}leg}
                       {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
   translatorco     = {{traductor i comentarista}
                       {trad\adddotspace i com\adddot}},
@@ -238,9 +238,9 @@
                       {trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
   translatorsfo    = {{traductors i autors del pr\`oleg}
                       {trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
-  translatoraf     = {{traductor i autor de l'ep{\'\i}leg}
+  translatoraf     = {{traductor i autor de l'ep\'{\i}leg}
                       {trad\adddotspace i aut\adddotspace de l'ep\adddot}},
-  translatorsaf    = {{traductors i autors de l'ep{\'\i}leg}
+  translatorsaf    = {{traductors i autors de l'ep\'{\i}leg}
                       {trad\adddotspace i aut\adddotspace de l'ep\adddot}},
   translatorcoin   = {{traductor, comentarista i autor de la introducci\'o}
                       {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddotspace}},
@@ -250,9 +250,9 @@
                       {trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
   translatorscofo  = {{traductors, comentaristes i autors del pr\`oleg}
                       {trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
-  translatorcoaf   = {{traductor, comentarista i autor de l'ep{\'\i}leg}
+  translatorcoaf   = {{traductor, comentarista i autor de l'ep\'{\i}leg}
                       {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
-  translatorscoaf  = {{traductors, comentaristes i autors de l'ep{\'\i}leg}
+  translatorscoaf  = {{traductors, comentaristes i autors de l'ep\'{\i}leg}
                       {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
   translatoranin   = {{traductor, anotador i autor de la introducci\'o}
                       {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
@@ -262,13 +262,13 @@
                       {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
   translatorsanfo  = {{traductors, anotadors i autors del pr\`oleg}
                       {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
-  translatoranaf   = {{traductor, anotador i autor de l'ep{\'\i}leg}
+  translatoranaf   = {{traductor, anotador i autor de l'ep\'{\i}leg}
                       {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
-  translatorsanaf  = {{traductors, anotadors i autors de l'ep{\'\i}leg}
+  translatorsanaf  = {{traductors, anotadors i autors de l'ep\'{\i}leg}
                       {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
-% organizer        = {{}{}},% FIXME: missing
-% organizers       = {{}{}},% FIXME: missing
-% byorganizer      = {{}{}},% FIXME: missing
+  organizer        = {{organitzador}{org\adddot}},
+  organizers       = {{organitzadors}{org\adddot}},
+  byorganizer      = {{organitzat per}{org\adddotspace per}},
   byauthor         = {{per}{per}},
   byeditor         = {{edici\'o a cura \smartof}{ed\adddotspace\smartof}},
   bycompiler       = {{compilaci\'o a cura \smartof}{comp\adddotspace\smartof}},
@@ -279,16 +279,16 @@
   bycontinuator    = {{continuat per}{cont\adddotspace per}},
   bycollaborator   = {{amb la co\l.laboraci\'o \smartof}{amb la co\l.l\adddotspace\smartof}},
   bytranslator     = {{traducci\'o \lbx at fromlang\ a cura \smartof}{trad\adddotspace\lbx at fromlang\ \smartof}},
-  bycommentator    = {{comentaris a cura \smartof}{com\adddotspace\smartof}},
+  bycommentator    = {{comentari a cura \smartof}{com\adddotspace\smartof}},
   byannotator      = {{notes a cura \smartof}{n\adddotspace\smartof}},
-  withcommentator  = {{amb comentaris a cura \smartof}{amb com\adddotspace\smartof}},
+  withcommentator  = {{amb un comentari a cura \smartof}{amb un com\adddotspace\smartof}},
   withannotator    = {{amb notes a cura \smartof}{amb n\adddotspace\smartof}},
-  withintroduction = {{amb la introducci\'o a cura \smartof}{amb la intr\adddotspace\smartof}},
-  withforeword     = {{amb el pr\`oleg a cura \smartof}{amb el pr\`ol\adddotspace\smartof}},
-  withafterword    = {{amb l'ep{\'\i}leg a cura \smartof}{amb l'ep\adddotspace\smartof}},
+  withintroduction = {{amb una introducci\'o a cura \smartof}{amb una intr\adddotspace\smartof}},
+  withforeword     = {{amb un pr\`oleg a cura \smartof}{amb un pr\`ol\adddotspace\smartof}},
+  withafterword    = {{amb un ep\'{\i}leg a cura \smartof}{amb un ep\adddotspace\smartof}},
   byeditortr       = {{edici\'o i traducci\'o \lbx at fromlang\ a cura \smartof}%
                       {ed\adddotspace i trad\adddotspace\lbx at fromlang\ \smartof}},
-  byeditorco       = {{edici\'o i comentaris a cura \smartof}%
+  byeditorco       = {{edici\'o i comentari a cura \smartof}%
                       {ed\adddotspace i com\adddotspace\smartof}},
   byeditoran       = {{edici\'o i notes a cura \smartof}%
                       {ed\adddotspace i n\adddotspace\smartof}},
@@ -296,9 +296,9 @@
                       {ed\adddotspace i intr\adddotspace\smartof}},
   byeditorfo       = {{edici\'o i pr\`oleg a cura \smartof}%
                       {ed\adddotspace i pr\`ol\adddotspace\smartof}},
-  byeditoraf       = {{edici\'o i ep{\'\i}leg a cura \smartof}%
+  byeditoraf       = {{edici\'o i ep\'{\i}leg a cura \smartof}%
                       {ed\adddotspace i ep\adddotspace\smartof}},
-  byeditortrco     = {{edici\'o, traducci\'o \lbx at fromlang\ i comentaris a cura \smartof}%
+  byeditortrco     = {{edici\'o, traducci\'o \lbx at fromlang\ i comentari a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddotspace\lbx at fromlang\ i com\adddotspace\smartof}},
   byeditortran     = {{edici\'o, traducci\'o \lbx at fromlang\ i notes a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddotspace\lbx at fromlang\ i n\adddotspace\smartof}},
@@ -306,33 +306,33 @@
                       {ed.,\addabbrvspace trad\adddotspace\lbx at fromlang\ i intr\adddotspace\smartof}},
   byeditortrfo     = {{edici\'o, traducci\'o \lbx at fromlang\ i pr\`oleg a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddotspace\lbx at fromlang\ i pr\`ol\adddotspace\smartof}},
-  byeditortraf     = {{edici\'o, traducci\'o \lbx at fromlang\ i ep{\'\i}leg a cura \smartof}%
+  byeditortraf     = {{edici\'o, traducci\'o \lbx at fromlang\ i ep\'{\i}leg a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddotspace\lbx at fromlang\ i ep\adddotspace\smartof}},
-  byeditorcoin     = {{edici\'o, comentaris i introducci\'o a cura \smartof}
+  byeditorcoin     = {{edici\'o, comentari i introducci\'o a cura \smartof}
                       {ed.,\addabbrvspace com\adddotspace i intr\adddotspace\smartof}},
-  byeditorcofo     = {{edici\'o, comentaris i pr\`oleg a cura \smartof}
+  byeditorcofo     = {{edici\'o, comentari i pr\`oleg a cura \smartof}
                       {ed.,\addabbrvspace com\adddotspace i pr\`ol\adddotspace\smartof}},
-  byeditorcoaf     = {{edici\'o, comentaris i ep{\'\i}leg a cura \smartof}%
+  byeditorcoaf     = {{edici\'o, comentari i ep\'{\i}leg a cura \smartof}%
                       {ed.,\addabbrvspace com\adddotspace i ep\adddotspace\smartof}},
   byeditoranin     = {{edici\'o, notes i introducci\'o a cura \smartof}%
                       {ed.,\addabbrvspace n\adddotspace i intr\adddotspace\smartof}},
   byeditoranfo     = {{edici\'o, notes i pr\`oleg a cura \smartof}%
                       {ed.,\addabbrvspace n\adddotspace i pr\`ol\adddotspace\smartof}},
-  byeditoranaf     = {{edici\'o, notes i ep{\'\i}leg a cura \smartof}%
+  byeditoranaf     = {{edici\'o, notes i ep\'{\i}leg a cura \smartof}%
                       {ed.,\addabbrvspace n\adddotspace i ep\adddotspace\smartof}},
-  byeditortrcoin   = {{edici\'o, traducci\'o \lbx at fromlang, comentaris i introducci\'o a cura \smartof}%
+  byeditortrcoin   = {{edici\'o, traducci\'o \lbx at fromlang, comentari i introducci\'o a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddotspace \lbx at fromlang, com\adddotspace i intr\adddotspace\smartof}},
-  byeditortrcofo   = {{edici\'o, traducci\'o \lbx at fromlang, comentaris i pr\`oleg a cura \smartof}%
+  byeditortrcofo   = {{edici\'o, traducci\'o \lbx at fromlang, comentari i pr\`oleg a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddotspace \lbx at fromlang, com\adddotspace i pr\`ol\adddotspace\smartof}},
-  byeditortrcoaf   = {{edici\'o, traducci\'o \lbx at fromlang, comentaris i ep{\'\i}leg a cura \smartof}%
+  byeditortrcoaf   = {{edici\'o, traducci\'o \lbx at fromlang, comentari i ep\'{\i}leg a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddot\ \lbx at fromlang, com\adddot\ i ep\adddot\ \smartof}},
   byeditortranin   = {{edici\'o, traducci\'o \lbx at fromlang, notes i introducci\'o a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddot\ \lbx at fromlang, n\adddot\ i intr\adddot\ \smartof}},
   byeditortranfo   = {{edici\'o, traducci\'o \lbx at fromlang, notes i pr\`oleg a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddot\ \lbx at fromlang, n\adddot\ i pr\`ol\adddot\ \smartof}},
-  byeditortranaf   = {{edici\'o, traducci\'o \lbx at fromlang, notes i ep{\'\i}leg a cura \smartof}%
+  byeditortranaf   = {{edici\'o, traducci\'o \lbx at fromlang, notes i ep\'{\i}leg a cura \smartof}%
                       {ed.,\addabbrvspace trad\adddot\ \lbx at fromlang, n\adddot\ i ep\adddot\ \smartof}},
-  bytranslatorco   = {{traducci\'o \lbx at fromlang\ i comentaris a cura \smartof}%
+  bytranslatorco   = {{traducci\'o \lbx at fromlang\ i comentari a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang\ i com\adddot\ \smartof}},
   bytranslatoran   = {{traducci\'o \lbx at fromlang\ i notes a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang\ i n\adddot\ \smartof}},
@@ -340,19 +340,19 @@
                       {trad\adddot\ \lbx at fromlang\ i intr\adddot\ \smartof}},
   bytranslatorfo   = {{traducci\'o \lbx at fromlang\ i pr\`oleg a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang\ i pr\`ol\adddot\ \smartof}},
-  bytranslatoraf   = {{traducci\'o \lbx at fromlang\ i ep{\'\i}leg a cura \smartof}%
+  bytranslatoraf   = {{traducci\'o \lbx at fromlang\ i ep\'{\i}leg a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang\ i ep\adddot\ \smartof}},
-  bytranslatorcoin = {{traducci\'o \lbx at fromlang, comentaris i introducci\'o a cura \smartof}%
+  bytranslatorcoin = {{traducci\'o \lbx at fromlang, comentari i introducci\'o a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang, com\adddot\ i intr\adddot\ \smartof}},
-  bytranslatorcofo = {{traducci\'o \lbx at fromlang, comentaris i pr\`oleg a cura \smartof}%
+  bytranslatorcofo = {{traducci\'o \lbx at fromlang, comentari i pr\`oleg a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang, com\adddot\ i pr\`ol\adddot\ \smartof}},
-  bytranslatorcoaf = {{traducci\'o \lbx at fromlang, comentaris i ep{\'\i}leg a cura \smartof}%
+  bytranslatorcoaf = {{traducci\'o \lbx at fromlang, comentari i ep\'{\i}leg a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang, com\adddot\ i ep\adddot\ \smartof}},
   bytranslatoranin = {{traducci\'o \lbx at fromlang, notes i introducci\'o a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang, n\adddot\ i intr\adddot\ \smartof}},
   bytranslatoranfo = {{traducci\'o \lbx at fromlang, notes i pr\`oleg a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang, n\adddot\ i pr\`ol\adddot\ \smartof}},
-  bytranslatoranaf = {{traducci\'o \lbx at fromlang, notes i ep{\'\i}leg a cura \smartof}%
+  bytranslatoranaf = {{traducci\'o \lbx at fromlang, notes i ep\'{\i}leg a cura \smartof}%
                       {trad\adddot\ \lbx at fromlang, n\adddot\ i ep\adddot\ \smartof}},
   and              = {{i}{i}},
   andothers        = {{et al\adddot}{et al\adddot}},
@@ -374,10 +374,10 @@
   reprintfrom      = {{reimpr\`es \smartof}{reimpr\adddotspace\smartof}},
   reviewof         = {{ressenya \smartof}{ress\adddotspace\smartof}},
   translationof    = {{traducci\'o \smartof}{trad\adddotspace\smartof}},
-  translationas    = {{tradu{\"\i}t com}{trad\adddotspace com}},
-  translationfrom  = {{tradu{\"\i}t del}{trad\adddotspace del}}, % Unsure of 'del'
-  origpubas        = {{publicat originalment com}{pub\adddotspace orig\adddotspace com}},
-  origpubin        = {{publicat originalment el}{pub\adddotspace orig\adddotspace el}},
+  translationas    = {{tradu\"{\i}t com}{trad\adddotspace com}},
+  translationfrom  = {{tradu\"{\i}t del}{trad\adddotspace del}}, % Unsure of 'del'
+  origpubas        = {{publicat origin\`ariament com}{pub\adddotspace orig\adddotspace com}},
+  origpubin        = {{publicat origin\`ariament el}{pub\adddotspace orig\adddotspace el}},
   astitle          = {{com}{com}},
   bypublisher      = {{per}{per}},
   page             = {{p\`agina}{p\`ag\adddot}},
@@ -384,8 +384,8 @@
   pages            = {{p\`agines}{p\`ag\adddot}},
   column           = {{columna}{col\adddot}},
   columns          = {{columnes}{cols\adddot}},
-  line             = {{l{\'\i}nia}{l{\'\i}n\adddot}},
-  lines            = {{l{\'\i}nies}{l{\'\i}n\adddot}},
+  line             = {{l\'{\i}nia}{l\'{\i}n\adddot}},
+  lines            = {{l\'{\i}nies}{l\'{\i}n\adddot}},
   nodate           = {{sine data}{s\adddotspace d\adddot}},
   verse            = {{vers}{v\adddot}},
   verses           = {{versos}{v\adddot}},
@@ -393,27 +393,27 @@
   sections         = {{apartats}{\S}},
   paragraph        = {{par\`agraf}{\P}},
   paragraphs       = {{par\`agrafs}{\P}},
-% pagetotal        = {{}{}},% FIXME: missing
-% pagetotals       = {{}{}},% FIXME: missing
-% columntotal      = {{}{}},% FIXME: missing
-% columntotals     = {{}{}},% FIXME: missing
-% linetotal        = {{}{}},% FIXME: missing
-% linetotals       = {{}{}},% FIXME: missing
-% versetotal       = {{}{}},% FIXME: missing
-% versetotals      = {{}{}},% FIXME: missing
-% sectiontotal     = {{}{}},% FIXME: missing
-% sectiontotals    = {{}{}},% FIXME: missing
-% paragraphtotal   = {{}{}},% FIXME: missing
-% paragraphtotals  = {{}{}},% FIXME: missing
+  pagetotal        = {{p\`agina}{p\`ag\adddot}},
+  pagetotals       = {{p\`agines}{p\`ag\adddot}},
+  columntotal      = {{columna}{col\adddot}},
+  columntotals     = {{columnes}{col\adddot}},
+  linetotal        = {{l\'{\i}nia}{l\'{\i}n\adddot}},
+  linetotals       = {{l\'{\i}nies}{l\'{\i}n\adddot}},
+  versetotal       = {{vers}{v\adddot}},
+  versetotals      = {{versos}{v\adddot}},
+  sectiontotal     = {{secci\'o}{\S}},
+  sectiontotals    = {{seccions}{\S}},
+  paragraphtotal   = {{par\`agrafs}{\P}},
+  paragraphtotals  = {{par\`agrafs}{\P}},
   in               = {{a}{a}},
-  inseries         = {{\smartof}{\smartof}},
+  inseries         = {{a}{a}},
   ofseries         = {{\smartof}{\smartof}},
   number           = {{n\'umero}{n\'um\adddot}},
-  chapter          = {{cap{\'\i}tol}{cap\adddot}},
-% bathesis         = {{}{}},% FIXME: missing
-  mathesis         = {{tesi de m\`aster}{tesi de m\`aster}},
+  chapter          = {{cap\'{\i}tol}{cap\adddot}},
+  bathesis         = {{treball final de grau}{treb\adddotspace fin\adddotspace de gr\adddot}},
+  mathesis         = {{treball final de m\`aster}{treb\adddotspace fin\adddotspace de m\`ast\adddot}},
   phdthesis        = {{tesi doctoral}{tesi doct\adddot}},
-  candthesis       = {{tesi de candidatura}{tesi de cand\adddotspace}},
+  candthesis       = {{tesi de candidatura}{tesi de cand\adddot}},
   resreport        = {{informe de recerca}{inf\adddotspace de rec\adddot}},
   techreport       = {{informe t\`ecnic}{inf\adddotspace t\`ec\adddot}},
   software         = {{programari}{prog\adddot}},
@@ -422,25 +422,25 @@
   version          = {{versi\'o}{vers\adddot}},
   url              = {{adre\c{c}a}{adr\adddot}},
   urlfrom          = {{disponible a}{disp\adddotspace a}},
-  urlseen          = {{consultat}{cons\adddotspace}},
+  urlseen          = {{consultat}{cons\adddotspace}}, % Possibly better «consultat \smartel», but \smartel unavailable
   inpreparation    = {{en preparaci\'o}{en prep\adddot}},
   inpress          = {{a impremta}{a impr\adddot}},% Per revisar
   prepublished     = {{pre-publicat}{pre-publicat}},
   submitted        = {{enviat a publicar}{env\adddotspace a pub\adddot}},
-  forthcoming      = {{acceptat per a publicar}{acc\adddotspace per a pub\adddot}},
+  forthcoming      = {{properament}{prop\adddot}},
   citedas          = {{d'ara endavant citat com}{d'ara end\adddotspace cit\adddotspace com}},
-  thiscite         = {{aquesta citaci\'o}{aqu\adddotspace cit\adddot}},
+  thiscite         = {{concretament}{concr\adddot}},% Check
   seenote          = {{vegeu la nota}{v\adddotspace la n\adddot}},
   quotedin         = {{citat a}{cit\adddotspace a}},
-  idem             = {{{\'\i}dem}{{\'\i}d\adddot}},
-  idemsf           = {{{\'\i}dem}{{\'\i}d\adddot}},
-  idemsm           = {{{\'\i}dem}{{\'\i}d\adddot}},
-  idemsn           = {{{\'\i}dem}{{\'\i}d\adddot}},
-  idempf           = {{{\'\i}dem}{{\'\i}d\adddot}},
-  idempm           = {{{\'\i}dem}{{\'\i}d\adddot}},
-  idempn           = {{{\'\i}dem}{{\'\i}d\adddot}},
-  idempp           = {{{\'\i}dem}{{\'\i}d\adddot}},
-  ibidem           = {{ib{\'\i}dem}{ib\adddot}},
+  idem             = {{\'{\i}dem}{\'{\i}d\adddot}},
+  idemsf           = {{\'{\i}dem}{\'{\i}d\adddot}},
+  idemsm           = {{\'{\i}dem}{\'{\i}d\adddot}},
+  idemsn           = {{\'{\i}dem}{\'{\i}d\adddot}},
+  idempf           = {{\'{\i}dem}{\'{\i}d\adddot}},
+  idempm           = {{\'{\i}dem}{\'{\i}d\adddot}},
+  idempn           = {{\'{\i}dem}{\'{\i}d\adddot}},
+  idempp           = {{\'{\i}dem}{\'{\i}d\adddot}},
+  ibidem           = {{ib\'{\i}dem}{ib\adddot}},
   opcit            = {{\`op\adddotspace cit\adddot}{\`op\adddotspace cit\adddot}},
   loccit           = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
   confer           = {{cf\adddot}{cf\adddot}},
@@ -465,7 +465,7 @@
   december         = {{desembre}{des\adddot}},
   langamerican     = {{angl\`es americ\`a}{ang\adddotspace amer\adddot}},
   langbrazilian    = {{portugu\`es brasiler}{port\adddotspace bras\adddot}},
-% langbulgarian    = {{}{}},% FIXME: missing
+  langbulgarian    = {{b\'ulgar}{b\'ulg\adddot}},
   langcatalan      = {{catal\`a}{cat\adddot}},
   langczech        = {{txec}{txec}},
   langcroatian     = {{croat}{croat}},
@@ -472,26 +472,29 @@
   langdanish       = {{dan\`es}{dan\adddot}},
   langdutch        = {{neerland\`es}{neerl\adddot}},
   langenglish      = {{angl\`es}{ang\adddot}},
-% langestonian     = {{}{}},% FIXME: missing
+  langestonian     = {{estoni\`a}{eston\adddot}},
   langfinnish      = {{fin\`es}{fin\adddot}},
   langfrench       = {{franc\`es}{fr\adddot}},
   langgalician     = {{gallec}{gal\adddot}},
   langgerman       = {{alemany}{al\adddot}},
   langgreek        = {{grec}{grec}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{itali\`a}{it\adddot}},
-  langlatin        = {{llat{\'\i}}{ll\adddot}},
-% langlatvian      = {{}{}},% FIXME: missing
+  langjapanese     = {{japon\`es}{jap\adddot}},
+  langlatin        = {{llat\'{\i}}{ll\adddot}},
+  langlatvian      = {{litu\`a}{lit\adddot}},
   langnorwegian    = {{noruec}{nor\adddot}},
   langpolish       = {{polon\`es}{pol\adddot}},
   langportuguese   = {{portugu\`es}{port\adddot}},
   langrussian      = {{rus}{rus}},
-% langslovak       = {{}{}},% FIXME: missing
-  langslovene      = {{eslov\`e}{esl\adddot}},
+  langslovak       = {{eslovac}{eslovac}},
+  langslovene      = {{eslov\`e}{eslov\`e}},
   langspanish      = {{castell\`a}{cast\adddot}},
   langswedish      = {{suec}{suec}},
+  langukrainian    = {{ucra\"{\i}n\`es}{ucr\adddot}},
   fromamerican     = {{de l'angl\`es americ\`a}{de l'ang\adddotspace amer\adddot}},
   frombrazilian    = {{del portugu\`es brasiler}{del port\adddotspace bras\adddot}},
-% frombulgarian    = {{}{}},% FIXME: missing
+  frombulgarian    = {{del b\'ulgar}{del bulg\adddot}},
   fromcatalan      = {{del catal\`a}{del cat\adddot}},
   fromcroatian     = {{del croat}{del croat}},
   fromczech        = {{del txec}{del txec}},
@@ -498,23 +501,26 @@
   fromdanish       = {{del dan\`es}{del dan\adddot}},
   fromdutch        = {{del neerland\`es}{del neerl\adddot}},
   fromenglish      = {{de l'angl\`es}{de l'ang\adddot}},
-% fromestonian     = {{}{}},% FIXME: missing
+  fromestonian     = {{de l'estoni\`a}{de l'eston\adddot}},
   fromfinnish      = {{del fin\`es}{del fin\adddot}},
   fromfrench       = {{del franc\`es}{del fr\adddot}},
-  fromgalician     = {{del gallec}{del gal\adddot}},
+  fromgalician     = {{del gallec}{del gall\adddot}},
   fromgerman       = {{de l'alemany}{de l'al\adddot}},
   fromgreek        = {{del grec}{del grec}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{de l'itali\`a}{de l'it\adddot}},
-  fromlatin        = {{del llat{\'\i}}{del ll\adddot}},
-% fromlatvian      = {{}{}},% FIXME: missing
+  fromjapanese     = {{del japon\`es}{del jap\adddot}},
+  fromlatin        = {{del llat\'{\i}}{del ll\adddot}},
+  fromlatvian      = {{del litu\`a}{del lit\adddot}},
   fromnorwegian    = {{del noruec}{del nor\adddot}},
   frompolish       = {{del polon\`es}{del pol\adddot}},
   fromportuguese   = {{del portugu\`es}{del port\adddot}},
   fromrussian      = {{del rus}{del rus}},
-% fromslovak       = {{}{}},% FIXME: missing
-  fromslovene      = {{de l'eslov\`e}{de l'esl\adddot}},
+  fromslovak       = {{de l'eslovac}{de l'eslovac}},
+  fromslovene      = {{de l'eslov\`e}{de l'eslov\`e}},
   fromspanish      = {{del castell\`a}{del cast\adddot}},
   fromswedish      = {{del suec}{del suec}},
+  fromukrainian    = {{de l'ucra\"{\i}n\`es}{de l'ucr\adddot}},
   countryde        = {{Alemanya}{DE}},
   countryeu        = {{Uni\'o Europea}{UE}},
   countryep        = {{Uni\'o Europea}{UE}},
@@ -541,11 +547,11 @@
   beforecommonera  = {{abans de l'Era Comuna}{AEC}},
   annodomini       = {{despr\'es de Crist}{dC}},
   beforechrist     = {{abans de Crist}{aC}},
-% circa            = {{}{}},% FIXME: missing
-% spring           = {{}{}},% FIXME: missing
-% summer           = {{}{}},% FIXME: missing
-% autumn           = {{}{}},% FIXME: missing
-% winter           = {{}{}},% FIXME: missing
+  circa            = {{circa}{c\adddot}},
+  spring           = {{primavera}{prim\adddot}},
+  summer           = {{estiu}{est\adddot}},
+  autumn           = {{tardor}{tard\adddot}},
+  winter           = {{hivern}{hiv\adddot}},
   am               = {{a\adddotspace m\adddot}{a\adddotspace m\adddot}},
   pm               = {{p\adddotspace m\adddot}{p\adddotspace m\adddot}},
 }
@@ -561,7 +567,7 @@
   \begingroup
   \def\forceD##1{a\relax}%
   \def\forceDE##1{x\relax}%
-  \def\do##1{\let##1\@empty}%
+  \def\do##1{\let##1\@firstofone}%
   \abx at dosingleaccents
   \abx at dodoubleaccents
   \def\i{i}\def\j{j}%
@@ -578,7 +584,7 @@
     \let~\@empty
   \fi
   \let\protect\noexpand
-  \lowercase{\edef\lbx at tempa{#1}}%
+  \edef\lbx at tempa{#1}%
   \expandafter\futurelet
   \expandafter\lbx at tempa
   \expandafter\lbx at ca@smartof at ii
@@ -589,23 +595,31 @@
     \def\lbx at tempa##1{\futurelet\lbx at tempa\lbx at ca@smartof at ii##1}%
   \else\ifcat\noexpand~\noexpand\lbx at tempa
     \def\lbx at tempa##1{\futurelet\lbx at tempa\lbx at ca@smartof at ii}%
-  \else\if a\noexpand\lbx at tempa
+  \else
+    \ifnum 0%
+      \if a\noexpand\lbx at tempa 1\fi
+      \if e\noexpand\lbx at tempa 1\fi
+      \if i\noexpand\lbx at tempa 1\fi
+      \if o\noexpand\lbx at tempa 1\fi
+      \if u\noexpand\lbx at tempa 1\fi
+      \if y\noexpand\lbx at tempa 1\fi
+      \if A\noexpand\lbx at tempa 1\fi
+      \if E\noexpand\lbx at tempa 1\fi
+      \if I\noexpand\lbx at tempa 1\fi
+      \if O\noexpand\lbx at tempa 1\fi
+      \if U\noexpand\lbx at tempa 1\fi
+      \if Y\noexpand\lbx at tempa 1\fi
+      >0 %
     \let\lbx at tempa\lbx at ca@smartof at d
-  \else\if e\noexpand\lbx at tempa
-    \let\lbx at tempa\lbx at ca@smartof at d
-  \else\if i\noexpand\lbx at tempa
-    \let\lbx at tempa\lbx at ca@smartof at d
-  \else\if o\noexpand\lbx at tempa
-    \let\lbx at tempa\lbx at ca@smartof at d
-  \else\if u\noexpand\lbx at tempa
-    \let\lbx at tempa\lbx at ca@smartof at d
-  \else\if y\noexpand\lbx at tempa
-    \let\lbx at tempa\lbx at ca@smartof at d
-  \else\if h\noexpand\lbx at tempa
+  \else
+    \ifnum 0%
+      \if h\noexpand\lbx at tempa 1\fi
+      \if H\noexpand\lbx at tempa 1\fi
+      >0 %
     \def\lbx at tempa##1{\futurelet\lbx at tempa\lbx at ca@smartof at ii}%
   \else
     \let\lbx at tempa\lbx at ca@smartof at de
-  \fi\fi\fi\fi\fi\fi\fi\fi\fi
+  \fi\fi\fi\fi
   \lbx at tempa}
 
 \gdef\lbx at ca@smartof at d#1&{\endgroup d'}

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/croatian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -61,7 +61,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -487,6 +487,7 @@
   langgalician     = {{galicijski}{galicijski}},
   langgerman       = {{njema\v{c}ki}{njema\v{c}ki}},
   langgreek        = {{gr\v{c}ki}{gr\v{c}ki}},
+  langhungarian    = {{ma\dj arski}{ma\dj arski}},
   langitalian      = {{talijanski}{talijanski}},
   langlatin        = {{latinski}{latinski}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -513,6 +514,7 @@
   fromgalician     = {{s galicijskog}{s galicijskog}},
   fromgerman       = {{s njema\v{c}kog}{s njema\v{c}kog}},
   fromgreek        = {{s gr\v{c}kog}{s gr\v{c}kog}},
+  fromhungarian    = {{s ma\dj arskog}{s ma\dj arskog}},
   fromitalian      = {{s talijanskog}{s talijanskog}},
   fromlatin        = {{s latinskog}{s latinskog}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/czech.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -53,7 +53,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -399,6 +399,7 @@
   langgalician     = {{galicij\v{s}tina}{gal\adddot}},
   langgerman       = {{n\v{e}m\v{c}ina}{n\v{e}m\adddot}},
   langgreek        = {{\v{r}e\v{c}tina}{\v{r}e\v{c}\adddot}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{ital\v{s}tina}{ital\adddot}},
   langlatin        = {{latina}{lat\adddot}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -424,6 +425,7 @@
   fromgalician     = {{z galicij\v{s}tiny}{z gal\adddot}},
   fromgerman       = {{z n\v{e}m\v{c}iny}{z n\v{e}m\adddot}},
   fromgreek        = {{z \v{r}e\v{c}tiny}{z \v{r}e\v{c}\adddot}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{z ital\v{s}tiny}{z ital\adddot}},
   fromlatin        = {{z latiny}{z lat\adddot}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/danish.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -51,7 +51,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -71,38 +71,30 @@
 
 \DeclareBibliographyStrings{%
   bibliography     = {{Bibliografi}{Bibliografi}},
-  references       = {{Referencer}{Referencer}},
-  shorthands       = {{Fortegnelse over forkortelser}{Forkortelsesfortegnelse}},
+  references       = {{Litteraturhenvisninger}{Litteratur}},
+  shorthands       = {{Forkortelser}{Forkortelser}},
   editor           = {{redakt\o r}{red\adddot}},
-  editors          = {{redakt\o rer}{red\adddot}},
+  editors          = {{redakt\o rer}{redd\adddot}},
   compiler         = {{kompilator}{kompilator}},
   compilers        = {{kompilatorer}{kompilatorer}},
-% alternative translation:
-% compiler         = {{redakt\o r}{red\adddot}},
-% compilers        = {{redakt\o rer}{red\adddot}},
-  redactor         = {{redakt\o r}{red\adddot}},% FIXME: redactor and editor are the same string; need to find a noun corresponding to "bearbejdet af"
-  redactors        = {{redakt\o rer}{red\adddot}},
-% reviser          = {{}{}},% FIXME: missing
-% revisers         = {{}{}},% FIXME: missing
-  founder          = {{grundl\ae gger}{grundl\adddot}},
-  founders          = {{grundl\ae ggere}{grundl\adddot}},
-% continuator      = {{}{}},% FIXME: missing
-% continuators     = {{}{}},% FIXME: missing
-% collaborator     = {{}{}},% FIXME: missing
-% collaborators    = {{}{}},% FIXME: missing
+  redactor         = {{medredakt\o r}{medred\adddot}},
+  redactors        = {{medredakt\o rer}{medredd\adddot}},
+  reviser          = {{revision}{rev\adddot}},
+  revisers         = {{revision}{revv\adddot}},
+  founder          = {{stifter}{stifter}},
+  founders         = {{stiftere}{stiftere}},
+  continuator      = {{videref{\o}rer}{videref\adddot}},
+  continuators     = {{videref{\o}rere}{videreff\adddot}},
+  collaborator     = {{medarbejder}{medarb\adddot}},
+  collaborators    = {{medarbejdere}{medarbb\adddot}},
   translator       = {{overs\ae tter}{overs\adddot}},
-  translators      = {{overs\ae ttere}{overs\adddot}},
+  translators      = {{overs\ae ttere}{overss\adddot}},
   commentator      = {{kommentator}{komm\adddot}},
   commentators     = {{kommentatorer}{komm\adddot}},
-  annotator        = {{fortolker}{fortolker}},
-  annotators       = {{fortolkere}{fortolkere}},
-% alternative translations:
-% annotator        = {{kommentator}{kommentator}},
-% annotators       = {{kommentatorer}{kommentatorer}},
+  annotator        = {{kommentator}{komm\adddot}},
+  annotators       = {{kommentatorer}{komm\adddot}},
   commentary       = {{kommentar}{komm\adddot}},
-  annotations      = {{forklaringer}{forkl\adddot}},
-% alternative translation:
-% annotations      = {{fortolkning}{fortolkning}},
+  annotations      = {{annoteringer}{ann.\adddot}},
   introduction     = {{indledning}{indl\adddot}},
   foreword         = {{forord}{forord}},
   afterword        = {{efterord}{efterord}},
@@ -109,336 +101,330 @@
   editortr         = {{redakt\o r og overs\ae tter}%
                       {red\adddotspace og overs\adddot}},
   editorstr        = {{redakt\o rer og overs\ae ttere}%
-                      {red\adddotspace og overs\adddot}},
+                      {redd\adddotspace og overss\adddot}},
   editorco         = {{redakt\o r og kommentator}
                       {red\adddotspace og komm\adddot}},
   editorsco        = {{redakt\o rer og kommentatorer}
+                      {redd\adddotspace og komm\adddot}},
+  editoran         = {{redakt\o r og kommentator}%
                       {red\adddotspace og komm\adddot}},
-  editoran         = {{redakt\o r og forklaringer}%
-                      {red\adddotspace og forkl\adddot}},
-  editorsan        = {{redakt\o rer og forklaringer}%
-                      {red\adddotspace og forkl\adddot}},
-  editorin         = {{redakt\o r og indledning}%
+  editorsan        = {{redakt\o rer og kommentatorer}%
+                      {redd\adddotspace og komm\adddot}},
+  editorin         = {{redaktion og indledning}%
                       {red\adddotspace og indl\adddot}},
-  editorsin        = {{redakt\o rer og indledning}%
-                      {red\adddotspace og indl\adddot}},
-  editorfo         = {{redakt\o r og forord}%
+  editorsin        = {{redaktion og indledning}%
+                      {redd\adddotspace og indl\adddot}},
+  editorfo         = {{redaktion og forord}%
                       {red\adddotspace og forord}},
-  editorsfo        = {{redakt\o rer og forord}%
-                      {red\adddotspace og forord}},
-  editoraf         = {{redakt\o r og efterord}%
+  editorsfo        = {{redaktion og forord}%
+                      {redd\adddotspace og forord}},
+  editoraf         = {{redaktion og efterord}%
                       {red\adddotspace og efterord}},
-  editorsaf        = {{redakt\o rer og efterord}%
-                      {red\adddotspace og efterord}},
+  editorsaf        = {{redaktion og efterord}%
+                      {redd\adddotspace og efterord}},
   editortrco       = {{redakt\o r, overs\ae tter og kommentator}%
                       {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
   editorstrco      = {{redakt\o rer, overs\ae ttere og kommentatorer}%
+                      {redd.,\addabbrvspace overss\adddotspace og komm\adddot}},
+  editortran       = {{redakt\o r, overs\ae tter og kommentator}%
                       {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
-  editortran       = {{redakt\o r, overs\ae tter og forklaringer}%
-                      {red.,\addabbrvspace overs\adddotspace og forkl\adddot}},
-  editorstran      = {{redakt\o rer, overs\ae ttere og forklaringer}%
-                      {red.,\addabbrvspace overs\adddotspace og forkl\adddot}},
-  editortrin       = {{redakt\o r, overs\ae tter og indledning}%
+  editorstran      = {{redakt\o rer, overs\ae ttere og kommentatorer}%
+                      {redd.,\addabbrvspace overss\adddotspace og komm\adddot}},
+  editortrin       = {{redaktion, overs\ae ttelse og indledning}%
                       {red.,\addabbrvspace overs\adddotspace og indl\adddot}},
-  editorstrin      = {{redakt\o rer, overs\ae ttere og indledning}%
-                      {red.,\addabbrvspace overs\adddotspace og indl\adddot}},
-  editortrfo       = {{redakt\o r, overs\ae tter og forord}%
+  editorstrin      = {{redaktion, overs\ae ttelse og indledning}%
+                      {redd.,\addabbrvspace overs\adddotspace og indl\adddot}},
+  editortrfo       = {{redaktion, overs\ae ttelse og forord}%
                       {red.,\addabbrvspace overs\adddotspace og forord}},
-  editorstrfo      = {{redakt\o rer, overs\ae ttere og forord}%
-                      {red.,\addabbrvspace overs\adddotspace og forord}},
-  editortraf       = {{redakt\o r, overs\ae tter og efterord}%
+  editorstrfo      = {{redaktion, overs\ae ttelse og forord}%
+                      {redd.,\addabbrvspace overs\adddotspace og forord}},
+  editortraf       = {{redaktion, overs\ae ttelse og efterord}%
                       {red.,\addabbrvspace overs\adddotspace og efterord}},
-  editorstraf      = {{redakt\o rer, overs\ae ttere og efterord}%
-                      {red.,\addabbrvspace overs\adddotspace og efterord}},
-  editorcoin       = {{redakt\o r, kommentator og indledning}%
+  editorstraf      = {{redaktion, overs\ae ttelse og efterord}%
+                      {redd.,\addabbrvspace overs\adddotspace og efterord}},
+  editorcoin       = {{redaktion, kommentarer og indledning}%
                       {red.,\addabbrvspace komm\adddotspace og indl\adddot}},
-  editorscoin      = {{redakt\o rer, kommentatorer og indledning}%
-                      {red.,\addabbrvspace komm\adddotspace og indl\adddot}},
-  editorcofo       = {{redakt\o r, kommentator og forord}%
+  editorscoin      = {{redaktion, kommentarer og indledning}%
+                      {redd.,\addabbrvspace komm\adddotspace og indl\adddot}},
+  editorcofo       = {{redaktion, kommentarer og forord}%
                       {red.,\addabbrvspace komm\adddotspace og forord}},
-  editorscofo      = {{redakt\o rer, kommentatorer og forord}%
-                      {red.,\addabbrvspace komm\adddotspace og forord}},
-  editorcoaf       = {{redakt\o r, kommentator og efterord}%
+  editorscofo      = {{redaktion, kommentarer og forord}%
+                      {redd.,\addabbrvspace komm\adddotspace og forord}},
+  editorcoaf       = {{redaktion, kommentarer og efterord}%
                       {red.,\addabbrvspace komm\adddotspace og efterord}},
-  editorscoaf      = {{redakt\o rer, kommentatorer og efterord}%
-                      {red.,\addabbrvspace komm\adddotspace og efterord}},
-  editoranin       = {{redakt\o r, forklaringer og indledning}%
-                      {red.,\addabbrvspace forkl\adddotspace og indl\adddot}},
-  editorsanin      = {{redakt\o rer, forklaringer og indledning}%
-                      {red.,\addabbrvspace forkl\adddotspace og indl\adddot}},
-  editoranfo       = {{redakt\o r, forklaringer og forord}%
-                      {red.,\addabbrvspace forkl\adddotspace og forord}},
-  editorsanfo      = {{redakt\o rer, forklaringer og forord}%
-                      {red.,\addabbrvspace forkl\adddotspace og forord}},
-  editoranaf       = {{redakt\o r, forklaringer og efterord}%
-                      {red.,\addabbrvspace forkl\adddotspace og efterord}},
-  editorsanaf      = {{redakt\o rer, forklaringer og efterord}%
-                      {red.,\addabbrvspace forkl\adddotspace og efterord}},
-  editortrcoin     = {{redakt\o r, overs\ae tter, kommentator og indledning}%
+  editorscoaf      = {{redaktion, kommentarer og efterord}%
+                      {redd.,\addabbrvspace komm\adddotspace og efterord}},
+  editoranin       = {{redaktion, annoteringer og indledning}%
+                      {red.,\addabbrvspace ann\adddotspace og indl\adddot}},
+  editorsanin      = {{redaktion, \adddotspace og indledning}%
+                      {redd.,\addabbrvspace ann\adddotspace og indl\adddot}},
+  editoranfo       = {{redaktion, \adddotspace og forord}%
+                      {red.,\addabbrvspace ann\adddotspace og forord}},
+  editorsanfo      = {{redaktion, annoteringer og forord}%
+                      {redd.,\addabbrvspace ann\adddotspace og forord}},
+  editoranaf       = {{redaktion, annoteringer og efterord}%
+                      {red.,\addabbrvspace ann\adddotspace og efterord}},
+  editorsanaf      = {{redaktion, annoteringer og efterord}%
+                      {redd.,\addabbrvspace ann\adddotspace og efterord}},
+  editortrcoin     = {{redaktion, overs\ae ttelse, kommentarer og indledning}%
                       {red.,\addabbrvspace overs., komm\adddotspace og indl\adddot}},
-  editorstrcoin    = {{redakt\o rer, overs\ae ttere, kommentatorer og indledning}%
-                      {red.,\addabbrvspace overs., komm\adddotspace og indl\adddot}},
-  editortrcofo     = {{redakt\o r, overs\ae tter, kommentator og forord}%
+  editorstrcoin    = {{redaktion, overs\ae ttelse, kommentarer og indledning}%
+                      {redd.,\addabbrvspace overs., komm\adddotspace og indl\adddot}},
+  editortrcofo     = {{redaktion, overs\ae ttelse, kommentarer og forord}%
                       {red.,\addabbrvspace overs., komm\adddotspace og forord}},
-  editorstrcofo    = {{redakt\o rer, overs\ae ttere, kommentatorer og forord}%
-                      {red.,\addabbrvspace overs., komm\adddotspace og forord}},
-  editortrcoaf     = {{redakt\o r, overs\ae tter, kommentator og efterord}%
+  editorstrcofo    = {{redaktion, overs\ae ttelse, kommentarer og forord}%
+                      {redd.,\addabbrvspace overs., komm\adddotspace og forord}},
+  editortrcoaf     = {{redaktion, overs\ae ttelse, kommentarer og efterord}%
                       {red.,\addabbrvspace overs., komm\adddotspace og efterord}},
-  editorstrcoaf    = {{redakt\o rer, overs\ae ttere, kommentatorer og efterord}%
-                      {red.,\addabbrvspace overs., komm\adddotspace og efterord}},
-  editortranin     = {{redakt\o r, overs\ae tter, forklaringer og indledning}%
-                      {red.,\addabbrvspace overs., forkl\adddotspace og indl\adddot}},
-  editorstranin    = {{redakt\o rer, overs\ae ttere, forklaringer og indledning}%
-                      {red.,\addabbrvspace overs., forkl\adddotspace og indl\adddot}},
-  editortranfo     = {{redakt\o r, overs\ae tter, forklaringer og forord}%
-                      {red.,\addabbrvspace overs., forkl\adddotspace og forord}},
-  editorstranfo    = {{redakt\o rer, overs\ae ttere, forklaringer og forord}%
-                      {red.,\addabbrvspace overs., forkl\adddotspace og forord}},
-  editortranaf     = {{redakt\o r, overs\ae tter, forklaringer og efterord}%
-                      {red.,\addabbrvspace overs., forkl\adddotspace og efterord}},
-  editorstranaf    = {{redakt\o rer, overs\ae ttere, forklaringer og efterord}%
-                      {red.,\addabbrvspace overs., forkl\adddotspace og efterord}},
-  translatorco     = {{overs\ae tter og kommentator}%
+  editorstrcoaf    = {{redaktion, overs\ae ttelse, kommentarer og efterord}%
+                      {redd.,\addabbrvspace overs., komm\adddotspace og efterord}},
+  editortranin     = {{redaktion, overs\ae ttelse, annoteringer og indledning}%
+                      {red.,\addabbrvspace overs., ann\adddotspace og indl\adddot}},
+  editorstranin    = {{redaktion, overs\ae ttelse, annoteringer og indledning}%
+                      {redd.,\addabbrvspace overs., ann\adddotspace og indl\adddot}},
+  editortranfo     = {{redaktion, overs\ae ttelse, annoteringer og forord}%
+                      {red.,\addabbrvspace overs., ann\adddotspace og forord}},
+  editorstranfo    = {{redaktion, overs\ae ttelse, annoteringer og forord}%
+                      {redd.,\addabbrvspace overs., ann\adddotspace og forord}},
+  editortranaf     = {{redaktion, overs\ae ttelse, annoteringer og efterord}%
+                      {red.,\addabbrvspace overs., ann\adddotspace og efterord}},
+  editorstranaf    = {{redaktion, overs\ae ttelse, annoteringer og efterord}%
+                      {redd.,\addabbrvspace overs., ann\adddotspace og efterord}},
+  translatorco     = {{overs\ae ttelse og kommentarer}%
                       {overs\adddotspace og komm\adddot}},
-  translatorsco    = {{overs\ae ttere og kommentatorer}%
+  translatorsco    = {{overs\ae ttelse og kommentarer}%
                       {overs\adddotspace og komm\adddot}},
-  translatoran     = {{overs\ae tter og forklaringer}%
-                      {overs\adddotspace og forkl\adddot}},
-  translatorsan    = {{overs\ae ttere og forklaringer}%
-                      {overs\adddotspace og forkl\adddot}},
-  translatorin     = {{overs\ae tter og indledning}%
+  translatoran     = {{overs\ae ttelse og annoteringer}%
+                      {overs\adddotspace og ann\adddot}},
+  translatorsan    = {{overs\ae ttelse og annoteringer}%
+                      {overs\adddotspace og ann\adddot}},
+  translatorin     = {{overs\ae ttelse og indledning}%
                       {overs\adddotspace og indl\adddot}},
-  translatorsin    = {{overs\ae ttere og indledning}%
+  translatorsin    = {{overs\ae ttelse og indledning}%
                       {overs\adddotspace og indl\adddot}},
-  translatorfo     = {{overs\ae tter og forord}%
+  translatorfo     = {{overs\ae ttelse og forord}%
                       {overs\adddotspace og forord}},
-  translatorsfo    = {{overs\ae ttere og forord}%
+  translatorsfo    = {{overs\ae ttelse og forord}%
                       {overs\adddotspace og forord}},
-  translatoraf     = {{overs\ae tter og efterord}%
+  translatoraf     = {{overs\ae ttelse og efterord}%
                       {overs\adddotspace og efterord}},
-  translatorsaf    = {{overs\ae ttere og efterord}%
+  translatorsaf    = {{overs\ae ttelse og efterord}%
                       {overs\adddotspace og efterord}},
-  translatorcoin   = {{overs\ae tter, kommentarer og indledning}%
+  translatorcoin   = {{overs\ae ttelse, kommentarer og indledning}%
                       {overs., komm\adddotspace og indl\adddot}},
-  translatorscoin  = {{overs\ae ttere, kommentarer og indledning}%
+  translatorscoin  = {{overs\ae ttelse, kommentarer og indledning}%
                       {overs., komm\adddotspace og indl\adddot}},
-  translatorcofo   = {{overs\ae tter, kommentarer og forord}%
+  translatorcofo   = {{overs\ae ttelse, kommentarer og forord}%
                       {overs., komm\adddotspace og forord}},
-  translatorscofo  = {{overs\ae ttere, kommentarer og forord}%
+  translatorscofo  = {{overs\ae ttelse, kommentarer og forord}%
                       {overs., komm\adddotspace og forord}},
-  translatorcoaf   = {{overs\ae tter, kommentarer og efterord}%
+  translatorcoaf   = {{overs\ae ttelse, kommentarer og efterord}%
                       {overs., komm\adddotspace og efterord}},
-  translatorscoaf  = {{overs\ae ttere, kommentarer og efterord}%
+  translatorscoaf  = {{overs\ae ttelse, kommentarer og efterord}%
                       {overs., komm\adddotspace og efterord}},
-  translatoranin   = {{overs\ae tter, forklaringer og indledning}%
-                      {overs., forkl\adddotspace og indl\adddot}},
-  translatorsanin  = {{overs\ae ttere, forklaringer og indledning}%
-                      {overs., forkl\adddotspace og indl\adddot}},
-  translatoranfo   = {{overs\ae tter, forklaringer og forord}%
-                      {overs., forkl\adddotspace og forord}},
-  translatorsanfo  = {{overs\ae ttere, forklaringer og forord}%
-                      {overs., forkl\adddotspace og forord}},
-  translatoranaf   = {{overs\ae tter, forklaringer og efterord}%
-                      {overs., forkl\adddotspace og efterord}},
-  translatorsanaf  = {{overs\ae ttere, forklaringer og efterord}%
-                      {overs., forkl\adddotspace og efterord}},
-% organizer        = {{}{}},% FIXME: missing
-% organizers       = {{}{}},% FIXME: missing
-% byorganizer      = {{}{}},% FIXME: missing
+  translatoranin   = {{overs\ae ttelse, annoteringer og indledning}%
+                      {overs., ann\adddotspace og indl\adddot}},
+  translatorsanin  = {{overs\ae ttelse, annoteringer og indledning}%
+                      {overs., ann\adddotspace og indl\adddot}},
+  translatoranfo   = {{overs\ae ttelse, annoteringer og forord}%
+                      {overs., ann\adddotspace og forord}},
+  translatorsanfo  = {{overs\ae ttelse, annoteringer og forord}%
+                      {overs., ann\adddotspace og forord}},
+  translatoranaf   = {{overs\ae ttelse, annoteringer og efterord}%
+                      {overs., ann\adddotspace og efterord}},
+  translatorsanaf  = {{overs\ae ttelse, annoteringer og efterord}%
+                      {overs., ann\adddotspace og efterord}},
+  organizer        = {{organisator}{org\adddot}},
+  organizers       = {{organisatorer}{orgg\adddot}},
+  byorganizer      = {{organiseret af}{org\adddotspace av}},
   byauthor         = {{af}{af}},
   byeditor         = {{udgivet af}{udg\adddotspace af}},
   bycompiler       = {{kompileret af}{komp\adddotspace af}},
   byredactor       = {{bearbejdet af}{bearb\adddotspace af}},
   byreviser        = {{revideret af}{rev\adddotspace af}},
-  byreviewer       = {{bed\o mt af}{bed\adddotspace af}},
-  byfounder        = {{grundlagt af}{grundl\adddotspace af}},
+  byreviewer       = {{bed\o mt af}{bed\o mt af}},
+  byfounder        = {{stiftet af}{stiftet af}},
   bycontinuator    = {{videref\o rt af}{videref\adddotspace af}},
-  bycollaborator   = {{i samarbejde med}{i samarb\adddotspace med}},
-  bytranslator     = {{oversat \lbx at lfromlang\ af}{oversat \lbx at sfromlang\ af}},
+  bycollaborator   = {{i samarbejde med}{i samarb\adddotspace m\adddotspace}},
+  bytranslator     = {{oversat \lbx at lfromlang\ af}%
+  		      {overs\adddot \lbx at sfromlang\ af}},
   bycommentator    = {{kommenteret af}{komm\adddot\ af}},
-  byannotator      = {{forklaret af}{forkl\adddot\ af}},
-% alternative translation
-% byannotator      = {{fortolket af}{fortolket af}},
-  withcommentator  = {{med en kommentar af}{med en komm\adddot\ af}},
-  withannotator    = {{med forklaringer af}{med forkl\adddot\ af}},
-  withintroduction = {{med en indledning af}{med en indl\adddot\ af}},
-  withforeword     = {{med et forord af}{med et forord af}},
-  withafterword    = {{med et efterord af}{med et efterord af}},
+  byannotator      = {{annoteret af}{ann\adddot\ af}},
+  withcommentator  = {{med kommentarer af}{m\adddotspace komm\adddot\ af}},
+  withannotator    = {{med annoteringer af}{m\adddotspace ann\adddot\ af}},
+  withintroduction = {{med indledning af}{m\adddotspace indl\adddot\ af}},
+  withforeword     = {{med forord af}{m\adddotspace forord af}},
+  withafterword    = {{med efterord af}{m\adddotspace efterord af}},
   byeditortr       = {{udgivet og oversat \lbx at lfromlang\ af}%
-                      {udg\adddotspace og oversat \lbx at sfromlang\ af}},
+                      {udg\adddotspace og overs\adddot \lbx at sfromlang\ af}},
   byeditorco       = {{udgivet og kommenteret af}%
                       {udg\adddotspace og komm\adddot\ af}},
-  byeditoran       = {{udgivet og forklaret af}%
-                      {udg\adddotspace og forkl\adddot\ af}},
-  byeditorin       = {{udgivet og med en indledning skrevet af}%
-                      {udg\adddotspace og med en indledning skrev\adddot\ af}},
-  byeditorfo       = {{udgivet og med et forord skrevet af}%
-                      {udg\adddotspace og med et forord skrev\adddot\ af}},
-  byeditoraf       = {{udgivet og med et efterord skrevet af}%
-                      {udg\adddotspace og med et efterord skrev\adddot\ af}},
+  byeditoran       = {{udgivet med annoteringer af}%
+                      {udg\adddotspace m\adddotspace ann\adddotspace af}},
+  byeditorin       = {{udgivet med indledning af}%
+                      {udg\adddotspace med indl\adddot\ af}},
+  byeditorfo       = {{udgivet med forord af}%
+                      {udg\adddotspace med forord af}},
+  byeditoraf       = {{udgivet med efterord af}%
+                      {udg\adddotspace med efterord af}},
   byeditortrco     = {{udgivet, oversat \lbx at lfromlang\ og kommenteret af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang\ og komm\adddot\ af}},
-  byeditortran     = {{udgivet, oversat \lbx at lfromlang\ og forklaret af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang\ og forkl\adddot\ af}},
-  byeditortrin     = {{udgivet, oversat \lbx at lfromlang\ og med en indledning skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang\ og med en indl\adddot\ skrev\adddot\ af}},
-  byeditortrfo     = {{udgivet, oversat \lbx at lfromlang\ og med et forord skrevet af}%
-                      {wnoversat \lbx at sfromlang\ og med et forord skrev\adddot\ af}},
-  byeditortraf     = {{udgivet, oversat \lbx at lfromlang\ og med et efterord skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang\ og med et efterord skrev\adddot\ af}},
-  byeditorcoin     = {{udgivet, kommenteret og med en indledning skrevet af}%
-                      {udg.,\addabbrvspace komm\adddot\ og med en indl\adddot\ skrev\adddot\ af}},
-  byeditorcofo     = {{udgivet, kommenteret og med et forord skrevet af}%
-                      {udg.,\addabbrvspace komm\adddot\ og med et forord skrev\adddot\ af}},
-  byeditorcoaf     = {{udgivet, kommenteret og med et efterord skrevet af}%
-                      {udg.,\addabbrvspace komm\adddot\ og med et efterord skrev\adddot\ af}},
-  byeditoranin     = {{udgivet, forklaret og med en indledning skrevet af}%
-                      {udg.,\addabbrvspace forkl\adddot\ og med en indl\adddot\ skrev\adddot\ af}},
-  byeditoranfo     = {{udgivet, forklaret og med et forord skrevet af}%
-                      {udg.,\addabbrvspace forkl\adddot\ og med et forord skrev\adddot\ af}},
-  byeditoranaf     = {{udgivet, forklaret og med et efterord skrevet af}%
-                      {udg.,\addabbrvspace forkl\adddot\ og med et efterord skrev\adddot\ af}},
-  byeditortrcoin   = {{udgivet, oversat \lbx at lfromlang, kommenteret og med en indledning skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang, komm\adddot\ og med en indl\adddot\ skrev\adddot\ af}},
-  byeditortrcofo   = {{udgivet, oversat \lbx at lfromlang, kommenteret og med et forord skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang, komm\adddot\ og med et forord skrev\adddot\ af}},
-  byeditortrcoaf   = {{udgivet, oversat \lbx at lfromlang, kommenteret og med et efterord skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang, komm\adddot\ og med et efterord skrev\adddot\ af}},
-  byeditortranin   = {{udgivet, oversat \lbx at lfromlang, forklaret og med en indledning skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang, forkl\adddot\ og med en indl\adddot\ skrev\adddot\ af}},
-  byeditortranfo   = {{udgivet, oversat \lbx at lfromlang, forklaret og med et forord skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang, forkl\adddot\ og med et forord skrev\adddot\ af}},
-  byeditortranaf   = {{udgivet, oversat \lbx at lfromlang, forklaret og med et efterord skrevet af}%
-                      {udg.,\addabbrvspace oversat \lbx at sfromlang, forkl\adddot\ og med et efterord skrev\adddot\ af}},
-  bytranslatorco   = {{oversat \lbx at lfromlang\ og kommenteret af}%
-                      {oversat \lbx at sfromlang\ og komm\adddot\ af}},
-  bytranslatoran   = {{oversat \lbx at lfromlang\ og forklaret af}%
-                      {oversat \lbx at sfromlang\ og forkl\adddot\ af}},
-  bytranslatorin   = {{oversat \lbx at lfromlang\ og med en indledning skrevet af}%
-                      {oversat \lbx at sfromlang\ og med en indl\adddot\ skrev\adddot\ af}},
-  bytranslatorfo   = {{oversat \lbx at lfromlang\ og med et forord skrevet af}%
-                      {oversat \lbx at sfromlang\ og med et forord skrev\adddot\ af}},
-  bytranslatoraf   = {{oversat \lbx at lfromlang\ og med et efterord skrevet af}%
-                      {oversat \lbx at sfromlang\ og med et efterord skrev\adddot\ af}},
-  bytranslatorcoin = {{oversat \lbx at lfromlang, kommenteret og med en indledning skrevet af}%
-                      {oversat \lbx at sfromlang, komm\adddot\ og med en indl\adddot\ skrev\adddot\ af}},
-  bytranslatorcofo = {{oversat \lbx at lfromlang, kommenteret og med et forord skrevet af}%
-                      {oversat \lbx at sfromlang, komm\adddot\ og med et forord skrev\adddot\ af}},
-  bytranslatorcoaf = {{oversat \lbx at lfromlang, kommenteret og med et efterord skrevet af}%
-                      {oversat \lbx at sfromlang, komm\adddot\ og med et efterord skrev\adddot\ af}},
-  bytranslatoranin = {{oversat \lbx at lfromlang, forklaret og med en indledning skrevet af}%
-                      {oversat \lbx at sfromlang, forkl\adddot\ og med en indl\adddot\ skrev\adddot\ af}},
-  bytranslatoranfo = {{oversat \lbx at lfromlang, forklaret og med et forord skrevet af}%
-                      {oversat \lbx at sfromlang, forkl\adddot\ og med et forord skrev\adddot\ af}},
-  bytranslatoranaf = {{oversat \lbx at lfromlang, forklaret og med et efterord skrevet af}%
-                      {oversat \lbx at sfromlang, forkl\adddot\ og med et efterord skrev\adddot\ af}},
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang\ og komm\adddot\ af}},
+  byeditortran     = {{udgivet, oversat \lbx at lfromlang\ og annoteret af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang\ og ann\adddot\ af}},
+  byeditortrin     = {{udgivet, oversat \lbx at lfromlang\ og med indledning af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang\ og indl\adddot\ af}},
+  byeditortrfo     = {{udgivet, oversat \lbx at lfromlang\ og med forord af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang\ og forord af}},
+  byeditortraf     = {{udgivet, oversat \lbx at lfromlang\ og med efterord af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang\ og efterord af}},
+  byeditorcoin     = {{udgivet, kommenteret og med indledning af}%
+                      {udg.,\addabbrvspace komm\adddot\ og indl\adddotspace af}},
+  byeditorcofo     = {{udgivet, kommenteret og med forord af}%
+                      {udg.,\addabbrvspace komm\adddot\ og forord af}},
+  byeditorcoaf     = {{udgivet, kommenteret og med efterord af}%
+                      {udg.,\addabbrvspace komm\adddot\ og efterord af}},
+  byeditoranin     = {{udgivet, annoteret og med indledning af}%
+                      {udg.,\addabbrvspace ann\adddot\ og indl\adddot\ af}},
+  byeditoranfo     = {{udgivet, annoteret og med forord af}%
+                      {udg.,\addabbrvspace ann\adddot\ og forord af}},
+  byeditoranaf     = {{udgivet, annoteret og med efterord af}%
+                      {udg.,\addabbrvspace ann\adddot\ og efterord af}},
+  byeditortrcoin   = {{udgivet, oversat \lbx at lfromlang, kommenteret og med indledning af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang, komm\adddot\ og indl\adddot\ af}},
+  byeditortrcofo   = {{udgivet, oversat \lbx at lfromlang, kommenteret og med forord af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang, komm\adddot\ og forord af}},
+  byeditortrcoaf   = {{udgivet, oversat \lbx at lfromlang, kommenteret og med efterord af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang, komm\adddot\ og efterord af}},
+  byeditortranin   = {{udgivet, oversat \lbx at lfromlang, med annoteringer og indledning af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang, ann\adddot\ og indl\adddot\ af}},
+  byeditortranfo   = {{udgivet, oversat \lbx at lfromlang, med annoteringer og forord af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang, ann\adddot\ og forord af}},
+  byeditortranaf   = {{udgivet, oversat \lbx at lfromlang, med annoteringer og efterord af}%
+                      {udg.,\addabbrvspace overs\adddot\ \lbx at sfromlang, ann\adddot\ og efterord af}},
+  bytranslatorco   = {{oversat \lbx at lfromlang\ med kommentarer af}%
+                      {overs\adddot\ \lbx at sfromlang\ m\adddotspace komm\adddot\ af}},
+  bytranslatoran   = {{oversat \lbx at lfromlang\ og annoteret af}%
+                      {overs\adddot\ \lbx at sfromlang\ og ann\adddot\ af}},
+  bytranslatorin   = {{oversat \lbx at lfromlang\ med indledning af}%
+                      {overs\adddot\ \lbx at sfromlang\ m\adddotspace indl\adddot\ af}},
+  bytranslatorfo   = {{oversat \lbx at lfromlang\ med forord af}%
+                      {overs\adddot\ \lbx at sfromlang\ m\adddotspace forord af}},
+  bytranslatoraf   = {{oversat \lbx at lfromlang\ med efterord af}%
+                      {overs\adddot\ \lbx at sfromlang\ m\adddotspace efterord af}},
+  bytranslatorcoin = {{oversat \lbx at lfromlang\addspace med kommentarer og indledning af}%
+                      {overs\adddot\ \lbx at sfromlang\addspace m\adddotspace komm\adddotspace og indl\adddotspace af}},
+  bytranslatorcofo = {{oversat \lbx at lfromlang\addspace med kommentarer og forord af}%
+                      {overs\adddot\ \lbx at sfromlang\addspace m\adddotspace komm\adddot\ og forord af}},
+  bytranslatorcoaf = {{oversat \lbx at lfromlang\addspace med kommentarer og efterord af}%
+                      {overs\adddot\ \lbx at sfromlang\addspace m\adddotspace komm\adddot\ og efterord af}},
+  bytranslatoranin = {{oversat \lbx at lfromlang\addspace med annoteringer og indledning af}%
+                      {overs\adddot\ \lbx at sfromlang\addspace m\adddotspace ann\adddot\ og indl\adddot\ af}},
+  bytranslatoranfo = {{oversat \lbx at lfromlang\addspace med annoteringer og forord af}%
+                      {overs\adddot\ \lbx at sfromlang\addspace m\adddotspace ann\adddot\ og forord af}},
+  bytranslatoranaf = {{oversat \lbx at lfromlang\addspace med annoteringer og efterord af}%
+                      {overs\adddot\ \lbx at sfromlang\addspace m\adddotspace ann\adddot\ og efterord af}},
   and              = {{og}{og}},
-  andothers        = {{med flere}{m.fl\adddot}},% FIXME: spacing after abbreviation dot?
-  andmore          = {{med flere}{m.fl\adddot}},% FIXME: spacing after abbreviation dot?
+  andothers        = {{med flere}{m.fl\adddot}},
+  andmore          = {{med mere}{m.m\adddot}},
   volume           = {{bind}{bd\adddot}},
-  volumes          = {{bind}{bd\adddot}},
+  volumes          = {{bind}{bdd\adddot}},
   involumes        = {{i}{i}},
-  jourvol          = {{\aa rgang}{\aa g\adddot}},
-  jourser          = {{serie}{ser\adddot}},
+  jourvol          = {{\aa rgang}{\aa rg\adddot}},
+  jourser          = {{r\ae kke}{rk\adddot}},
   book             = {{bog}{bog}},
   part             = {{del}{del}},
-  issue            = {{oplag}{opl\adddot}},
-  newseries        = {{ny serie}{n.s\adddot}},% FIXME: spacing after abbreviation dot?
-  oldseries        = {{gammel serie}{g.s\adddot}},% FIXME: spacing after abbreviation dot?
+  issue            = {{nummer}{nr\adddot}},
+  newseries        = {{ny r\ae kke}{ny rk\adddot}},
+  oldseries        = {{gammel r\ae kke}{gl. rk\adddot}},
   edition          = {{udgave}{udg\adddot}},
-  reprint          = {{eftertryk}{eftertryk}},
-  reprintof        = {{eftertryk af}{eftertryk af}},
-  reprintas        = {{eftertryk i}{eftertryk i}},
-  reprintfrom      = {{eftertryk fra}{eftertryk fra}},% FIXME: check
-% alternative translations:
-% reprint          = {{genoptryk}{genoptryk}},
-% reprintof        = {{genoptryk af}{genoptryk af}},
-% reprintas        = {{genoptrykt i}{genoptrykt i}},
-% reprintas        = {{genoptrykt som}{genoptrykt som}},
-  translationof    = {{overs\ae ttelse af}{overs\ae ttelse af}},% FIXME: check
-  translationas    = {{oversat som}{oversat som}},% FIXME: check
-  translationfrom  = {{oversat fra}{oversat fra}},% FIXME: check
+  reprint          = {{genoptryk}{genoptr\adddot}},
+  reprintof        = {{genoptryk af}{genoptr\adddot\ af}},
+  reprintas        = {{genoptryk under titlen}{genoptr\adddot\ under titlen}},
+  reprintfrom      = {{genoptryk fra}{genoptr\adddot\ fra}},
+  translationof    = {{overs\ae ttelse af}{overs\adddot\ af}},
+  translationas    = {{oversat under titlen}{overs\adddotspace\ under titlen}},
+  translationfrom  = {{oversat fra}{overs\adddotspace\ fra}},
   reviewof         = {{bed\o mmelse af}{bed\adddotspace af}},
-  origpubas        = {{oprindeligt udgivet som}{oprindelig udgivet som}},% FIXME: check
-  origpubin        = {{oprindeligt udgivet i}{oprindeligt udgivet i}},% FIXME: check
-  astitle          = {{i}{i}},% FIXME: check
-  bypublisher      = {{af}{af}},% FIXME: check
-  nodate           = {{n\adddot d\adddot}{n\adddot d\adddot}},%FIXME
+  origpubas        = {{oprindeligt udgivet som}{opr\adddot\ udg\adddot\ som}},
+  origpubin        = {{oprindeligt udgivet i}{opr\adddot\ udg\adddot\ i}},
+  astitle          = {{under titlen}{under titlen}},
+  bypublisher      = {{af}{af}},
+  nodate           = {{udateret}{udat\adddot}},
   page             = {{side}{s\adddot}},
-  pages            = {{sider}{s\adddot}},
+  pages            = {{sider}{ss\adddot}},
   column           = {{spalte}{sp\adddot}},
-  columns          = {{spalter}{sp\adddot}},
+  columns          = {{spalter}{spp\adddot}},
   line             = {{linje}{l\adddot}},
   lines            = {{linjer}{l\adddot}},
   verse            = {{vers}{v\adddot}},
-  verses           = {{vers}{v\adddot}},
-  section          = {{afsnit}{\S}},% FIXME: check
-  sections         = {{afsnit}{\S\S}},% FIXME: check
-% alternative translations:
-% section          = {{paragraf}{\S}},
-% sections         = {{paragrafer}{\S\S}},
-% paragraph        = {{}{}},% FIXME: missing
-% paragraphs       = {{}{}},% FIXME: missing
-% pagetotal        = {{}{}},% FIXME: missing
-% pagetotals       = {{}{}},% FIXME: missing
-% columntotal      = {{}{}},% FIXME: missing
-% columntotals     = {{}{}},% FIXME: missing
-% linetotal        = {{}{}},% FIXME: missing
-% linetotals       = {{}{}},% FIXME: missing
-% versetotal       = {{}{}},% FIXME: missing
-% versetotals      = {{}{}},% FIXME: missing
-% sectiontotal     = {{}{}},% FIXME: missing
-% sectiontotals    = {{}{}},% FIXME: missing
-% paragraphtotal   = {{}{}},% FIXME: missing
-% paragraphtotals  = {{}{}},% FIXME: missing
+  verses           = {{vers}{vv\adddot}},
+  section          = {{paragraf}{par\adddot}},
+  sections         = {{paragraffer}{parr\adddot}},
+  paragraph        = {{afsnit}{afsn\adddot}},
+  paragraphs       = {{afsnit}{afsnn\adddot}},
+  pagetotal        = {{side}{s\adddot}},
+  pagetotals       = {{sider}{ss\adddot}},
+  columntotal      = {{spalte}{sp\adddot}},
+  columntotals     = {{spalter}{spp\adddot}},
+  line             = {{linje}{l\adddot}},
+  lines            = {{linjer}{ll\adddot}},
+  verse            = {{vers}{v\adddot}},
+  verses           = {{vers}{vv\adddot}},
+  linetotal        = {{linje}{l\adddot}},
+  linetotals       = {{linje}{ll\adddot}},
+  versetotal       = {{vers}{v\adddot}},
+  versetotals      = {{vers}{vv\adddot}},
+  sectiontotal     = {{paragraf}{par\adddot}},
+  sectiontotals    = {{paragraffer}{parr\adddot}},
+  paragraphtotal   = {{afsnit}{afsn\adddot}},
+  paragraphtotals  = {{afsnit}{afsnn\adddot}},%
   in               = {{i}{i}},
-  inseries         = {{r\ae kken}{r\ae kken}},
-  ofseries         = {{af r\ae kken}{af r\ae kken}},
+  inseries         = {{i r\ae kken}{i rk\adddot}},
+  ofseries         = {{fra r\ae kken}{fra rk\adddot}},
   number           = {{nummer}{nr\adddot}},
+%  numbers          = {{numre}{nrr\adddot}},
   chapter          = {{kapitel}{kap\adddot}},
-% bathesis         = {{}{}},% FIXME: missing
-  mathesis         = {{speciale}{speciale}},% FIXME: check
-  phdthesis        = {{ph.d.-afhandling}{ph.d.-afh\adddot}},
-  candthesis       = {{kandidatafhandling}{kandidatafh\adddot}},% FIXME: check
+  bathesis         = {{bachelorafhandling}{bachelorafh\adddot}},
+  mathesis         = {{masterafhandling}{masterafh\adddot}},
+  phdthesis        = {{PhD afhandling}{PhD afh\adddot}},
+  candthesis       = {{specialeafhandling}{specialeafh\adddot}},
   resreport        = {{forskningsrapport}{forskningsrap\adddot}},
-  techreport       = {{teknisk rapport}{tek\adddot\ rap\adddot}},
+  techreport       = {{teknisk rapport}{tekn\adddot\ rap\adddot}},
   software         = {{software}{software}},
   datacd           = {{data-cd}{data-cd}},
   audiocd          = {{lyd-cd}{lyd-cd}},
   version          = {{version}{vers\adddot}},
-  url              = {{side}{side}},
+  url              = {{webadresse}{webadr\adddot}},
   urlfrom          = {{tilg\ae ngelig fra}{tilg\adddotspace fra}},
-  urlseen          = {{sidst set}{sidst set}},
+  urlseen          = {{senest bes\o gt}{senest bes\adddot}},
   inpreparation    = {{under udarbejdelse}{under udarb\adddot}},
-  submitted        = {{indsendt}{indsendt}},
+  submitted        = {{indleveret}{indlev\adddot}},
   forthcoming      = {{under udgivelse}{under udgiv\adddot}},
   inpress          = {{i trykken}{i trykken}},
-  prepublished     = {{pre-publiceret}{pre-publ\adddot}},
+  prepublished     = {{pr\ae publiceret}{pr\ae publ\adddot}},
   citedas          = {{herefter citeret som}{herefter cit\adddot\ som}},
   thiscite         = {{her}{her}},
-  seenote          = {{se note}{se note}},
-% alternative translation:
-% seenote          = {{se anm\ae rkning}{se anm\adddot}},
-  quotedin         = {{citeret efter}{citeret efter}},
-  idem             = {{den samme}{den~s\adddot}},
-  idemsf           = {{den samme}{den~s\adddot}},
-  idemsm           = {{den samme}{den~s\adddot}},
-  idemsn           = {{det samme}{det~s\adddot}},
-  idempf           = {{de samme}{de~s\adddot}},
-  idempm           = {{de samme}{de~s\adddot}},
-  idempn           = {{de samme}{de~s\adddot}},
-  idempp           = {{de samme}{de~s\adddot}},
+  seenote          = {{se note}{se nt\adddot}},
+  quotedin         = {{citeret efter}{cit\adddot\ efter}},
+  idem             = {{den samme}{d\adddot s\adddot}},
+  idemsf           = {{den samme}{d\adddot s\adddot}},
+  idemsm           = {{den samme}{d\adddot s\adddot}},
+  idemsn           = {{det samme}{d\adddot s\adddot}},
+  idempf           = {{de samme}{d\adddot s\adddot}},
+  idempm           = {{de samme}{d\adddot s\adddot}},
+  idempn           = {{de samme}{d\adddot s\adddot}},
+  idempp           = {{de samme}{d\adddot s\adddot}},
   ibidem           = {{ibidem}{ibid\adddot}},
-  opcit            = {{op.\adddotspace cit\adddot}{op.\adddotspace cit\adddot}},% FIXME: spacing after abbreviation dot?
-  loccit           = {{loc.\adddotspace cit\adddot}{loc.\adddotspace cit\adddot}},% FIXME: spacing after abbreviation dot?
-  confer           = {{j\ae vnf\o r}{jf\adddot}},
-  sequens          = {{sq\adddot}{sq\adddot}},
-  sequentes        = {{sqq\adddot}{sqq\adddot}},
+  opcit            = {{op.\adddotspace cit\adddot}{op.\adddotspace cit\adddot}},
+  loccit           = {{loc.\adddotspace cit\adddot}{loc.\adddotspace cit\adddot}},
+  confer           = {{j\ae vnf\o r}{jvf\adddot}},
+  sequens          = {{f\adddot}{f\adddot}},
+  sequentes        = {{ff\adddot}{ff\adddot}},
   passim           = {{passim}{pass\adddot}},
   see              = {{se}{s\adddot}},
-  seealso          = {{se ogs\aa}{s.\aa\adddot}},% FIXME: spacing after abbreviation dot?
+  seealso          = {{se ogs\aa}{se ogs\aa}},
   backrefpage      = {{se side}{se s\adddot}},
-  backrefpages     = {{se sider}{se s\adddot}},
+  backrefpages     = {{se siderne}{se ss\adddot}},
   january          = {{januar}{jan\adddot}},
   february         = {{februar}{feb\adddot}},
   march            = {{marts}{mar\adddot}},
@@ -453,91 +439,95 @@
   december         = {{december}{dec\adddot}},
   langamerican     = {{amerikansk-engelsk}{amerikansk-engelsk}},
   langbrazilian    = {{brasiliansk-portugisisk}{brasiliansk-portugisisk}},
-% langbulgarian    = {{}{}},% FIXME: missing
-  langcatalan      = {{catalansk}{catalansk}},
+  langbulgarian    = {{bulgarsk}{bulgarsk}},
+  langcatalan      = {{katalansk}{katalansk}},
   langcroatian     = {{kroatisk}{kroatisk}},
   langczech        = {{tjekkisk}{tjekkisk}},
   langdanish       = {{dansk}{dansk}},
   langdutch        = {{nederlandsk}{nederlandsk}},
   langenglish      = {{engelsk}{engelsk}},
-% langestonian     = {{}{}},% FIXME: missing
+  langestonian     = {{estisk}{estisk}},
   langfinnish      = {{finsk}{finsk}},
   langfrench       = {{fransk}{fransk}},
   langgalician     = {{galicisk}{galicisk}},
   langgerman       = {{tysk}{tysk}},
   langgreek        = {{gr\ae sk}{gr\ae sk}},
+  langhungarian    = {{ungarsk}{ungarsk}},
   langitalian      = {{italiensk}{italiensk}},
+  langjapanese     = {{japansk}{japansk}},
   langlatin        = {{latin}{latin}},
-% langlatvian      = {{}{}},% FIXME: missing
+  langlatvian      = {{lettisk}{lettisk}},
   langnorwegian    = {{norsk}{norsk}},
   langpolish       = {{polsk}{polsk}},
   langportuguese   = {{portugisisk}{portugisisk}},
   langrussian      = {{russisk}{russisk}},
-% langslovak       = {{}{}},% FIXME: missing
+  langslovak       = {{slovakisk}{slovakisk}},
   langslovene      = {{slovensk}{slovensk}},
   langspanish      = {{spansk}{spansk}},
   langswedish      = {{svensk}{svensk}},
+  langukrainian    = {{ukrainsk}{ukrainsk}},
   fromamerican     = {{fra amerikansk-engelsk}{fra amerikansk-engelsk}},
   frombrazilian    = {{fra brasiliansk-portugisisk}{fra brasiliansk-portugisisk}},
-% frombulgarian    = {{}{}},% FIXME: missing
-  fromcatalan      = {{fra catalansk}{fra catalansk}},
+  frombulgarian    = {{fra bulgarsk}{fra bulgarsk}},
+  fromcatalan      = {{fra katalansk}{fra katalansk}},
   fromcroatian     = {{fra kroatisk}{fra kroatisk}},
   fromczech        = {{fra tjekkisk}{fra tjekkisk}},
   fromdanish       = {{fra dansk}{fra dansk}},
   fromdutch        = {{fra nederlandsk}{fra nederlandsk}},
   fromenglish      = {{fra engelsk}{fra engelsk}},
-% fromestonian     = {{}{}},% FIXME: missing
+  fromestonian     = {{fra estisk}{fra estisk}},
   fromfinnish      = {{fra finsk}{fra finsk}},
   fromfrench       = {{fra fransk}{fra fransk}},
   fromgalician     = {{fra galicisk}{fra galicisk}},
   fromgerman       = {{fra tysk}{fra tysk}},
   fromgreek        = {{fra gr\ae sk}{fra gr\ae sk}},
+  fromhungarian    = {{fra ungarsk}{fra ungarsk}},
   fromitalian      = {{fra italiensk}{fra italiensk}},
+  fromjapanese     = {{fra japansk}{fra japansk}},
   fromlatin        = {{fra latin}{fra latin}},
-% fromlatvian      = {{}{}},% FIXME: missing
+  fromlatvian      = {{fra lettisk}{fra lettisk}},
   fromnorwegian    = {{fra norsk}{fra norsk}},
   frompolish       = {{fra polsk}{fra polsk}},
   fromportuguese   = {{fra portugisisk}{fra portugisisk}},
   fromrussian      = {{fra russisk}{fra russisk}},
-% fromslovak       = {{}{}},% FIXME: missing
+  fromslovak       = {{fra slovakisk}{fra slovakisk}},
   fromslovene      = {{fra slovensk}{fra slovensk}},
   fromspanish      = {{fra spansk}{fra spansk}},
   fromswedish      = {{fra svensk}{fra svensk}},
+  fromukrainian    = {{fra ukrainsk}{fra ukrainsk}},
   countryde        = {{Tyskland}{DE}},
   countryeu        = {{Europ\ae iske Union}{EU}},
   countryep        = {{Europ\ae iske Union}{EP}},
   countryfr        = {{Frankrig}{FR}},
-  countryuk        = {{Storbritanien}{GB}},
+  countryuk        = {{Storbritannien}{GB}},
   countryus        = {{USA}{US}},
-  patent           = {{patent}{patent}},
-  patentde         = {{tysk patent}{tys\adddot\ pat\adddot}},
+  patent           = {{patent}{pat\adddot}},
+  patentde         = {{tysk patent}{tysk pat\adddot}},
   patenteu         = {{europ\ae isk patent}{eur\adddot\ pat\adddot}},
-  patentfr         = {{fransk patent}{fra\adddot\ pat\adddot}},
-  patentuk         = {{britisk patent}{brit\adddot pat\adddot}},
-  patentus         = {{amerikansk patent}{amerikansk pat\adddot}},
-  patreq           = {{ans\o gning om patent}{pat\adddot\ ans\o gn\adddot}},
-  patreqde         = {{ans\o gning om tysk patent}{tys\adddot\ pat\adddot\ ans\o gn\adddot}},
-  patreqeu         = {{ans\o gning om europ\ae isk patent}{eur\adddot\ pat\adddot\ ans\o gn\adddot}},
-  patreqfr         = {{ans\o gning om fransk patent}{fra\adddot\ pat\adddot\ ans\o gn\adddot}},
-  patrequk         = {{ans\o gning om britisk patent}{britisk pat\adddot\ ans\o gn\adddot}},
-  patrequs         = {{ans\o gning om amerikansk patent}{am\adddot pat\adddot\ ans\o gn\adddot}},
+  patentfr         = {{fransk patent}{fransk pat\adddot}},
+  patentuk         = {{britisk patent}{brit\adddot\ pat\adddot}},
+  patentus         = {{amerikansk patent}{am\adddot\ pat\adddot}},
+  patreq           = {{patentans\o gning}{pat\adddot\ ans\o gn\adddot}},
+  patreqde         = {{tysk patentans\o gning}{tysk pat\adddot\ ans\o gn\adddot}},
+  patreqeu         = {{europ\ae isk patentans\o gning}{eur\adddot\ pat\adddot\ ans\o gn\adddot}},
+  patreqfr         = {{fransk patentans\o gning}{fransk pat\adddot\ ans\o gn\adddot}},
+  patrequk         = {{britisk patentans\o gning}{brit\adddot\ pat\adddot\ ans\o gn\adddot}},
+  patrequs         = {{amerikansk patentans\o gning}{am\adddot\ pat\adddot\ ans\o gn\adddot}},
   file             = {{fil}{fil}},
   library          = {{bibliotek}{bibliotek}},
   abstract         = {{resum\'{e}}{resum\'{e}}},
-% alternative translation:
-%  abstract         = {{abstract}{abstract}},
-  annotation       = {{forklaring}{forklaring}},
-  commonera        = {{vesterlandsk tidsregning}{v\adddot t\adddot}},
-  beforecommonera  = {{f\o r vesterlandsk tidsregning}{f\adddot v\adddot t\adddot}},
-  annodomini       = {{e\adddot Kr\adddot}{e\adddot Kr\adddot}},
-  beforechrist     = {{f\adddot Kr\adddot}{f\adddot Kr\adddot}},
-% circa            = {{}{}},% FIXME: missing
-% spring           = {{}{}},% FIXME: missing
-% summer           = {{}{}},% FIXME: missing
-% autumn           = {{}{}},% FIXME: missing
-% winter           = {{}{}},% FIXME: missing
-  am               = {{AM}{AM}},
-  pm               = {{PM}{PM}},
+  annotation       = {{kommentarer}{komm\adddot}},
+  commonera        = {{efter vor tidsregning}{e\adddot v\adddot t\adddot}},
+  beforecommonera  = {{f\o r vor tidsregning}{f\adddot v\adddot t\adddot}},
+  annodomini       = {{efter Kristi f\o dsel}{e\adddot Kr\adddot}},
+  beforechrist     = {{f\o r Kristi f\o dsel}{f\adddot Kr\adddot}},
+  circa            = {{cirka}{ca\adddot}},
+  spring           = {{for\aa r}{for\aa r}},
+  summer           = {{sommer}{sommer}},
+  autumn           = {{efter\aa r}{efter\aa r}},
+  winter           = {{vinter}{vinter}},
+  am               = {{formiddag}{form\adddot}},
+  pm               = {{eftermiddag}{efterm\adddot}},
 }
 
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/dutch.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -72,7 +72,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -469,6 +469,7 @@
   langgalician     = {{Galicisch}{Galicisch}},
   langgerman       = {{Duits}{Duits}},
   langgreek        = {{Grieks}{Grieks}},
+  langhungarian    = {{Hongaars}{Hongaars}},
   langitalian      = {{Italiaans}{Italiaans}},
   langjapanese     = {{Japaans}{Japaans}},
   langlatin        = {{Latijn}{Latijn}},
@@ -497,6 +498,7 @@
   fromgalician     = {{uit het Galicisch}{uit het Galicisch}},
   fromgerman       = {{uit het Duits}{uit het Duits}},
   fromgreek        = {{uit het Grieks}{uit het Grieks}},
+  fromhungarian    = {{uit het Hongaars}{uit het Hongaars}},
   fromitalian      = {{uit het Italiaans}{uit het Italiaans}},
   fromjapanese     = {{uit het Japaans}{uit het Japaans}},
   fromlatin        = {{uit het Latijn}{uit het Latijn}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/english.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -66,7 +66,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -480,6 +480,7 @@
   langgalician     = {{Galician}{Galician}},
   langgerman       = {{German}{German}},
   langgreek        = {{Greek}{Greek}},
+  langhungarian    = {{Hungarian}{Hungarian}},
   langitalian      = {{Italian}{Italian}},
   langjapanese     = {{Japanese}{Japanese}},
   langlatin        = {{Latin}{Latin}},
@@ -508,6 +509,7 @@
   fromgalician     = {{from the Galician}{from the Galician}},
   fromgerman       = {{from the German}{from the German}},
   fromgreek        = {{from the Greek}{from the Greek}},
+  fromhungarian    = {{from the Hungarian}{from the Hungarian}},
   fromitalian      = {{from the Italian}{from the Italian}},
   fromjapanese     = {{from the Japanese}{from the Japanese}},
   fromlatin        = {{from the Latin}{from the Latin}},
@@ -560,17 +562,18 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibdate#1}{}{#2month}{#2day}}
-             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}%
-           {\iffieldsequal{#2year}{#2endyear}
+             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+              \dateeraprint{#2year}}}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibseasondate#1}{}{#2season}}
-             {\csuse{mkbibseasondate#1}{#2year}{#2season}}}%
-         \dateeraprint{#2year}%
+             {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+              \dateeraprint{#2year}}}%
          \dateuncertainprint
          \iffieldundef{#2endyear}
            {}
@@ -579,7 +582,7 @@
              {\bibdaterangesep
               \enddatecircaprint
               \iffieldundef{#2season}
-                {\iffieldsequal{#2year}{#2endyear}
+                {\ifdateyearsequal{#2}{#2end}
                   {\iffieldsequal{#2month}{#2endmonth}
                     {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
                     {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
@@ -593,17 +596,18 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibdate#1}{}{#2month}{#2day}}
-             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
-           {\iffieldsequal{#2year}{#2endyear}
+             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+              \dateeraprint{#2year}}}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibseasondate#1}{}{#2season}}
-             {\csuse{mkbibseasondate#1}{#2year}{#2season}}}%
-         \dateeraprint{#2year}%
+             {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+              \dateeraprint{#2year}}}%
          \dateuncertainprint
          \iffieldundef{#2endyear}
            {}
@@ -622,17 +626,18 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibdate#1}{}{#2month}{#2day}}
-             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
-           {\iffieldsequal{#2year}{#2endyear}
+             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+              \dateeraprint{#2year}}}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibseasondate#1}{}{#2season}}
-             {\csuse{mkbibseasondate#1}{#2year}{#2season}}}%
-         \dateeraprint{#2year}%
+             {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+              \dateeraprint{#2year}}}%
          \dateuncertainprint
          \iffieldundef{#2endyear}
            {\printfield{extradate}}
@@ -642,7 +647,7 @@
               {\bibdaterangesep
                \enddatecircaprint
                \iffieldundef{#2season}
-                 {\iffieldsequal{#2year}{#2endyear}
+                 {\ifdateyearsequal{#2}{#2end}
                    {\iffieldsequal{#2month}{#2endmonth}
                       {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
                       {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
@@ -657,17 +662,18 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibdate#1}{}{#2month}{#2day}}
-             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
-           {\iffieldsequal{#2year}{#2endyear}
+             {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+              \dateeraprint{#2year}}}
+           {\ifdateyearsequal{#2}{#2end}
              {\csuse{mkbibseasondate#1}{}{#2season}}
-             {\csuse{mkbibseasondate#1}{#2year}{#2season}}}%
-         \dateeraprint{#2year}%
+             {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+              \dateeraprint{#2year}}}%
          \dateuncertainprint
          \iffieldundef{#2endyear}
            {\printfield{extradate}}

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/estonian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -10,20 +10,6 @@
 
 \DeclareRedundantLanguages{estonian}{estonian}
 
-\NewBibliographyString{%
-  basicjanuary,
-  basicfebruary,
-  basicmarch,
-  basicapril,
-  basicmay,
-  basicjune,
-  basicjuly,
-  basicaugust,
-  basicseptember,
-  basicoctober,
-  basicnovember,
-  basicdecember%
-}
 
 \DeclareBibliographyExtras{%
   % dashes: may be either \textendash or \textemdash
@@ -42,11 +28,9 @@
        \iffieldundef{#2}{}{\nobreakspace}}%
     \iffieldundef{#2}
       {}
-      {\iffieldundef{#3}
-        {\lbx at fi@mkbibmonthbasic{\thefield{#2}}%
-         \iffieldundef{#1}{}{\space}}%
-        {\mkbibmonth{\thefield{#2}}%
-         \iffieldundef{#1}{}{\space}}}%
+      {\protected\def\bibdaterangesep{\addnbspace\textendash\space}%
+       \mkbibmonth{\thefield{#2}}%
+       \iffieldundef{#1}{}{\space}}%
     \iffieldbibstring{#1}
       {\bibstring{\thefield{#1}}}
       {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
@@ -53,14 +37,10 @@
   \protected\def\mkbibdateshort#1#2#3{%
     \iffieldundef{#3}
       {}
-      {\mkdayzeros{\thefield{#3}}\adddot
-       \iffieldundef{#2}{}{\thinspace}}%
+      {\mkdayzeros{\thefield{#3}}\adddot}%
     \iffieldundef{#2}
       {}
-      {\mkmonthzeros{\thefield{#2}}%
-       \iffieldundef{#1}
-         {}
-         {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+      {\mkmonthzeros{\thefield{#2}}\adddot}%
     \iffieldbibstring{#1}
       {\bibstring{\thefield{#1}}}
       {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
@@ -95,7 +75,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -122,44 +102,44 @@
 \DeclareBibliographyStrings{%
   bibliography     = {{bibliograafia}{bibliograafia}},
   references       = {{viited}{viited}},
-  shorthands       = {{nimekirja ning l\"{u}hendid}{l\"{u}hendid}},
+  shorthands       = {{l\"{u}hendid}{l\"{u}hendid}},
   editor           = {{toimetaja}{toim\adddot}},
   editors          = {{toimetajad}{toim\adddot}},
-  compiler         = {{kompilaator}{koompilaator}},
-  compilers        = {{kompilaatorid}{kompilaatorid}},
-  redactor         = {{toimittanut}{toim\adddot}},
-  redactors        = {{toimittaneet}{toim\adddot}},
-  reviser          = {{L\"{a}bi vaadataja}{L\"{a}bi vaadataja}},
-  revisers         = {{L\"{a}bi vaadatajad}{L\"{a}bi vaadatajad}},
+  compiler         = {{koostaja}{koost\adddot}},
+  compilers        = {{koostajad}{koost\adddot}},
+  redactor         = {{toimetaja}{toim\adddot}},
+  redactors        = {{toimetajad}{toim\adddot}},
+  reviser          = {{toimetaja}{toim\adddot}},
+  revisers         = {{toimetajad}{toim\adddot}},
   founder          = {{asutaja}{asutaja}},
   founders         = {{asutajad}{asutajad}},
-  continuator      = {{jatkaja}{jatkaja}},
-  continuators     = {{jatkajad}{jatkajad}},
-  collaborator     = {{kaast\"{o}\"{o}line}{kaast\"{o}\"{o}line}},
-  collaborators    = {{kaast\"{o}\"{o}tajate}{kaast\"{o}\"{o}tajate}},
-  translator       = {{t\~{o}lkija}{t\~{o}lkija}},
-  translators      = {{t\~{o}lkijad}{t\~{o}lkijad}},
-  commentator      = {{kommentaator}{kommentaator}},
-  commentators     = {{kommentaatorid}{kommentaatorid}},
-  annotator        = {{selityksin varustanut}{selityksin varustanut}},
-  annotators       = {{selityksin varustaneet}{selityksin varustaneet}},
-  commentary       = {{kommentaaris}{kommentaaris}},
-  annotations      = {{annotatsioonide}{annotatsioonide}},
+  continuator      = {{j\"{a}tkaja}{j\"{a}tkaja}},
+  continuators     = {{j\"{a}tkajad}{j\"{a}tkajad}},
+  collaborator     = {{kaast\"{o}\"{o}line}{kaast\adddot}},
+  collaborators    = {{kaast\"{o}\"{o}lised}{kaast\adddot}},
+  translator       = {{t\~{o}lkija}{t\~{o}lk\adddot}},
+  translators      = {{t\~{o}lkijad}{t\~{o}lk\adddot}},
+  commentator      = {{kommenteerija}{kommenteerija}},
+  commentators     = {{kommenteerijad}{kommenteerijad}},
+  annotator        = {{kommenteerija}{kommenteerija}},
+  annotators       = {{kommenteerijad}{kommenteerijad}},
+  commentary       = {{kommentaarid}{kommentaarid}},
+  annotations      = {{kommentaarid}{kommentaarid}},
   introduction     = {{sissejuhatus}{sissejuhatus}},
-  foreword         = {{eess\~{o}na}{eess\~{o}na}},
-  afterword        = {{j\"{a}rels\~{o}na}{j\"{a}rels\~{o}na}},
+  foreword         = {{eess\~{o}na autor}{eess\~{o}na}},
+  afterword        = {{j\"{a}rels\~{o}na autor}{j\"{a}rels\~{o}na}},
   editortr         = {{toimetaja ja t\~{o}lkija}%
                       {toim\adddotspace ja t\~{o}lk\adddot}},
-  editorstr        = {{toimetajad ja t\~{o}lkijate}%
+  editorstr        = {{toimetajad ja t\~{o}lkijad}%
                       {toim\adddotspace ja t\~{o}lk\adddot}},
-  editorco         = {{toimetaja ja kommentaator}%
-                      {toimetaja ja kommentaator}},
-  editorsco        = {{toimetajad ja kommentaatorid}%
-                      {toimetajad ja kommentaatorid}},
-  editoran         = {{toimetaja ja annotator}%
-                      {toimetaja ja annotator}},
-  editorsan        = {{toimetajad ja annotators}%
-                      {toimetajad ja annotators}},
+  editorco         = {{toimetaja ja kommenteerija}%
+                      {toimetaja ja kommenteerija}},
+  editorsco        = {{toimetajad ja kommenteerijad}%
+                      {toimetajad ja kommenteerijad}},
+  editoran         = {{toimetaja ja kommenteerija}%
+                      {toimetaja ja kommenteerija}},
+  editorsan        = {{toimetajad ja kommenteerijad}%
+                      {toimetajad ja kommenteerijad}},
   editorin         = {{toimetaja ja sissejuhatus}%
                       {toimetaja ja sissejuhatus}},
   editorsin        = {{toimetajad ja sissejuhatus}%
@@ -172,301 +152,303 @@
                       {toimetaja ja j\"{a}rels\~{o}na}},
   editorsaf        = {{toimetajad ja j\"{a}rels\~{o}na}%
                       {toimetajad ja j\"{a}rels\~{o}na}},
-  editortrco       = {{toimetaja, translator\finalandcomma\ ja kommentaator} %
-                      {toim, \addabbrvspace trans\adddot\finalandcomma\ ja comm\adddot}},
-  editorstrco      = {{toimetajad, translators\finalandcomma\ ja kommentaatorid} %
-                      {eds., \addabbrvspace trans\adddot\finalandcomma\ ja comm\adddot}},
-  editortran       = {{toimetaja, translator\finalandcomma\ ja annotator} %
-                      {toim, \addabbrvspace trans\adddot\finalandcomma\ ja annot\adddot}},
-  editorstran      = {{toimetajad, translators\finalandcomma\ ja annotators} %
-                      {eds., \addabbrvspace trans\adddot\finalandcomma\ ja annot\adddot}},
-  editortrin       = {{toimetaja, translator\finalandcomma\ ja Sissejuhatus} %
-                      {toim, \addabbrvspace trans\adddot\finalandcomma\ ja introd\adddot}},
-  editorstrin      = {{toimetajad, translators\finalandcomma\ ja Sissejuhatus} %
-                      {eds., \addabbrvspace trans\adddot\finalandcomma\ ja introd\adddot}},
-  editortrfo       = {{toimetaja, translator\finalandcomma\ ja eess\~{o}na} %
-                      {toim, \addabbrvspace trans\adddot\finalandcomma\ ja forew\adddot}},
-  editorstrfo      = {{toimetajad, translators\finalandcomma\ ja eess\~{o}na} %
-                      {eds., \addabbrvspace trans\adddot\finalandcomma\ ja forew\adddot}},
-  editortraf       = {{toimetaja, translator\finalandcomma\ ja J\"{a}rels\~{o}na}  %
-                      {toim, \addabbrvspace trans\adddot\finalandcomma\ ja afterw\adddot}},
-  editorstraf      = {{toimetajad, translators\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {eds., \addabbrvspace trans\adddot\finalandcomma\ ja afterw\adddot}},
-  editorcoin       = {{toimetaja, commentator\finalandcomma\ ja Sissejuhatus} %
-                      {toim, \addabbrvspace comm\adddot\finalandcomma\ ja introd\adddot}},
-  editorscoin      = {{toimetajad, commentators\finalandcomma\ ja Sissejuhatus} %
-                      {eds., \addabbrvspace comm\adddot\finalandcomma\ ja introd\adddot}},
-  editorcofo       = {{toimetaja, commentator\finalandcomma\ ja eess\~{o}na} %
-                      {toim, \addabbrvspace comm\adddot\finalandcomma\ ja forew\adddot}},
-  editorscofo      = {{toimetajad, commentators\finalandcomma\ ja eess\~{o}na} %
-                      {eds., \addabbrvspace comm\adddot\finalandcomma\ ja forew\adddot}},
-  editorcoaf       = {{toimetaja, commentator\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {toim, \addabbrvspace comm\adddot\finalandcomma\ ja afterw\adddot}},
-  editorscoaf      = {{toimetajad, commentators\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {eds., \addabbrvspace comm\adddot\finalandcomma\ ja afterw\adddot}},
-  editoranin       = {{toimetaja, annotator\finalandcomma\ ja Sissejuhatus} %
-                      {toim, \addabbrvspace annot\adddot\finalandcomma\ ja introd\adddot}},
-  editorsanin      = {{toimetajad, annotators\finalandcomma\ ja Sissejuhatus} %
-                      {eds., \addabbrvspace annot\adddot\finalandcomma\ ja introd\adddot}},
-  editoranfo       = {{toimetaja, annotator\finalandcomma\ ja eess\~{o}na} %
-                      {toim, \addabbrvspace annot\adddot\finalandcomma\ ja forew\adddot}},
-  editorsanfo      = {{toimetajad, annotators\finalandcomma\ ja eess\~{o}na} %
-                      {eds., \addabbrvspace annot\adddot\finalandcomma\ ja forew\adddot}},
-  editoranaf       = {{toimetaja, annotator\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {toim, \addabbrvspace annot\adddot\finalandcomma\ ja afterw\adddot}},
-  editorsanaf      = {{toimetajad, annotators\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {eds., \addabbrvspace annot\adddot\finalandcomma\ ja afterw\adddot}},
-  editortrcoin     = {{toimetaja, t\~{o}lkija, commentator\finalandcomma\ ja Sissejuhatus} %
-                      {toim, \addabbrvspace trans., comm\adddot\finalandcomma\ ja introd\adddot}},
-  editorstrcoin    = {{toimetajad, t\~{o}lkijad, commentators\finalandcomma\ ja Sissejuhatus} %
-                      {eds., \addabbrvspace trans., comm\adddot\finalandcomma\ ja introd\adddot}},
-  editortrcofo     = {{toimetaja, t\~{o}lkija, commentator\finalandcomma\ ja eess\~{o}na} %
-                      {toim, \addabbrvspace trans., comm\adddot\finalandcomma\ ja forew\adddot}},
-  editorstrcofo    = {{toimetajad, t\~{o}lkijad, commentators\finalandcomma\ ja eess\~{o}na} %
-                      {eds., \addabbrvspace trans., comm\adddot\finalandcomma\ ja forew\adddot}},
-  editortrcoaf     = {{toimetaja, t\~{o}lkija, commentator\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {toim, \addabbrvspace trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
-  editorstrcoaf    = {{toimetajad, t\~{o}lkijad, commentators\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {eds., \addabbrvspace trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
-  editortranin     = {{toimetaja, t\~{o}lkija, annotator\finalandcomma\ ja Sissejuhatus} %
-                      {toim, \addabbrvspace trans., annot\adddot\finalandcomma\ ja introd\adddot}},
-  editorstranin    = {{toimetajad, t\~{o}lkijad, annotators\finalandcomma\ ja Sissejuhatus} %
-                      {eds., \addabbrvspace trans., annot\adddot\finalandcomma\ ja introd\adddot}},
-  editortranfo     = {{toimetaja, t\~{o}lkija, annotator\finalandcomma\ ja eess\~{o}na} %
-                      {toim, \addabbrvspace trans., annot\adddot\finalandcomma\ ja forew\adddot}},
-  editorstranfo    = {{toimetajad, t\~{o}lkijad, annotators\finalandcomma\ ja eess\~{o}na} %
-                      {eds., \addabbrvspace trans., annot\adddot\finalandcomma\ ja forew\adddot}},
-  editortranaf     = {{toimetaja, t\~{o}lkija, annotator\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {toim, \addabbrvspace trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
-  editorstranaf    = {{toimetajad, t\~{o}lkijad, annotators\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {eds., \addabbrvspace trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
-  translatorco     = {{t\~{o}lkija ja kommentaator} %
-                      {trans\adddot\ ja comm\adddot}},
-  translatorsco    = {{t\~{o}lkijate ja kommentaatorid} %
-                      {trans\adddot\ ja comm\adddot}},
-  translatoran     = {{t\~{o}lkija ja annotator}  %
-                      {trans\adddot\ ja annot\adddot}},
-  translatorsan    = {{t\~{o}lkijate ja annotators} %
-                      {trans\adddot\ ja annot\adddot}},
-  translatorin     = {{t\~{o}lkimine ja Sissejuhatus} %
-                      {trans\adddot\ ja introd\adddot}},
-  translatorsin    = {{t\~{o}lkimine ja Sissejuhatus} %
-                      {trans\adddot\ ja introd\adddot}},
-  translatorfo     = {{t\~{o}lkimine ja eess\~{o}na} %
-                      {trans\adddot\ ja forew\adddot}},
-  translatorsfo    = {{t\~{o}lkimine ja eess\~{o}na} %
-                      {trans\adddot\ ja forew\adddot}},
-  translatoraf     = {{t\~{o}lkimine ja J\"{a}rels\~{o}na} %
-                      {trans\adddot\ ja afterw\adddot}},
-  translatorsaf    = {{t\~{o}lkimine ja J\"{a}rels\~{o}na} %
-                      {trans\adddot\ ja afterw\adddot}},
-  translatorcoin   = {{t\~{o}lkimine, commentary\finalandcomma\ ja Sissejuhatus} %
-                      {trans., comm\adddot\finalandcomma\ ja introd\adddot}},
-  translatorscoin  = {{t\~{o}lkimine, commentary\finalandcomma\ ja Sissejuhatus} %
-                      {trans., comm\adddot\finalandcomma\ ja introd\adddot}},
-  translatorcofo   = {{t\~{o}lkimine, commentary\finalandcomma\ ja eess\~{o}na} %
-                      {trans., comm\adddot\finalandcomma\ ja forew\adddot}},
-  translatorscofo  = {{t\~{o}lkimine, commentary\finalandcomma\ ja eess\~{o}na} %
-                      {trans., comm\adddot\finalandcomma\ ja forew\adddot}},
-  translatorcoaf   = {{t\~{o}lkimine, commentary\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
-  translatorscoaf  = {{t\~{o}lkimine, commentary\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {trans., comm\adddot\finalandcomma\ ja afterw\adddot}},
-  translatoranin   = {{t\~{o}lkimine, annotations\finalandcomma\ ja Sissejuhatus} %
-                      {trans., annot\adddot\finalandcomma\ ja introd\adddot}},
-  translatorsanin  = {{t\~{o}lkimine, annotations\finalandcomma\ ja Sissejuhatus} %
-                      {trans., annot\adddot\finalandcomma\ ja introd\adddot}},
-  translatoranfo   = {{t\~{o}lkimine, annotations\finalandcomma\ ja eess\~{o}na} %
-                      {trans., annot\adddot\finalandcomma\ ja forew\adddot}},
-  translatorsanfo  = {{t\~{o}lkimine, annotations\finalandcomma\ ja eess\~{o}na} %
-                      {trans., annot\adddot\finalandcomma\ ja forew\adddot}},
-  translatoranaf   = {{t\~{o}lkimine, annotations\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
-  translatorsanaf  = {{t\~{o}lkimine, annotations\finalandcomma\ ja J\"{a}rels\~{o}na} %
-                      {trans., annot\adddot\finalandcomma\ ja afterw\adddot}},
-% organizer        = {{}{}},% FIXME: missing
-% organizers       = {{}{}},% FIXME: missing
-% byorganizer      = {{}{}},% FIXME: missing
-  byauthor         = {{kirjuttanud}{kirj\adddot}},
-  byeditor         = {{toimittanud}{toim\adddot}},
-  bycompiler       = {{koontanud}{koontanud}},
-  byredactor       = {{redigeeritud poolt}{red\adddotspace poolt}},
-  byreviser        = {{l\"{a}bivaadatud poolt}{rev\adddotspace poolt}},
-  byreviewer       = {{vaadanud}{rev\adddotspace poolt}},
-  byfounder        = {{asutasid}{found\adddotspace poolt}},
-  bycontinuator    = {{j\"{a}tkas}{cont\adddotspace poolt}},
-  bycollaborator   = {{koost\"{o}\"{o}s}{in collab\adddotspace koos}},
-  bytranslator     = {{t\~{o}lgitud \lbx at lfromlang\ poolt}{trans\adddot\ \lbx at sfromlang\ poolt}},
-  bycommentator    = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}},% FIXME: unsure
-  byannotator      = {{selgitustega poolt}{annot\adddot\ poolt}},
-  withcommentator  = {{koos kommentaariga}{koos comment\adddot\ poolt}},
-  withannotator    = {{koos annotations poolt}{koos annots\adddot\ poolt}},
-  withintroduction = {{koos tutvustus poolt}{koos poolt intro\adddot }},
-  withforeword     = {{mis eess\~{o}na Autor}{koos forew\adddot\ poolt}},
-  withafterword    = {{koos J\"{a}rels\~{o}na poolt}{koos poolt afterw\adddot }},
-  byeditortr       = {{redigeeritud ja t\~{o}lgitud \lbx at lfromlang\ poolt}
-                      {toim\adddotspace ja \lbx at sfromlang k\"a\"ant\adddot}},
-  byeditorco       = {{toimetatud ja kommenteeritud} %
-                      {ed\adddotspace ja comm\adddot\ poolt}},
-  byeditoran       = {{redigeerida ja kanda} %
-                      {ed\adddotspace ja annot\adddot\ poolt}},
-  byeditorin       = {{redigeerida, tutvustus, Autor} %
-                      {toim, \addabbrvspace koos m\~{o}ne introd. esitab}},
-  byeditorfo       = {{redigeerinud, eess\~{o}na, kus autor} %
-                      {toim, \addabbrvspace koos forew., poolt}},
-  byeditoraf       = {{redigeerida, j\"{a}rels\~{o}na, Autor} %
-                      {toim, koos m\~{o}ne afterw., \addabbrvspace poolt}},
-  byeditortrco     = {{toimetatud, \lbx at lfromlang\finalandcomma\ t\~{o}lgitud ja kommenteeritud} %
-                      {toim, \addabbrvspace trans\adddot\ \lbx at sfromlang\finalandcomma\ ja comm\adddot\ poolt}},
-  byeditortran     = {{redigeerida t\~{o}lgitud \lbx at lfromlang\finalandcomma\ ja kanda} %
-                      {toim, \addabbrvspace trans\adddot\ \lbx at sfromlang\finalandcomma\ ja annot\adddot\ poolt}},
-  byeditortrin     = {{edited and translated \lbx at lfromlang, with an introduction, by} %
-                      {ed\adddotspace ja trans\adddot\ \lbx at sfromlang, koos m\~{o}ne introd. esitab}},
-  byeditortrfo     = {{edited and translated \lbx at lfromlang, with a foreword, by} %
-                      {ed\adddotspace ja trans\adddot\ \lbx at sfromlang, koos forew., poolt}},
-  byeditortraf     = {{edited and translated \lbx at lfromlang, with an afterword, by} %
-                      {ed\adddotspace ja trans\adddot\ \lbx at sfromlang, koos m\~{o}ne afterw., poolt}},
-  byeditorcoin     = {{toimetanud ja kommenteerinud koos tutvustus,} %
-                      {ed\adddotspace ja comm., koos m\~{o}ne introd. esitab}},
-  byeditorcofo     = {{toimetanud ja kommenteerinud mis eess\~{o}na,} %
-                      {ed\adddotspace ja comm., koos forew., poolt}},
-  byeditorcoaf     = {{toimetanud ja kommenteerinud koos J\"{a}rels\~{o}na,} %
-                      {ed\adddotspace ja comm., koos m\~{o}ne afterw., poolt}},
-  byeditoranin     = {{redigeerida ja selgitustega koos tutvustus,}  %
-                      {ed\adddotspace ja annot., koos m\~{o}ne introd. esitab}},
-  byeditoranfo     = {{redigeerida ja selgitustega mis eess\~{o}na,} %
-                      {ed\adddotspace ja annot., koos forew., poolt}},
-  byeditoranaf     = {{redigeerida ja selgitustega koos J\"{a}rels\~{o}na,} %
-                      {ed\adddotspace ja annot., koos m\~{o}ne afterw., poolt}},
-  byeditortrcoin   = {{redigeerida, \lbx at lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud koos tutvustus,} %
-                      {redigeerida, \lbx at lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud koos tutvustus,}},
-  byeditortrcofo   = {{redigeerida, \lbx at lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,} %
-                      {redigeerida, \lbx at lfromlang\finalandcomma\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,}},
-  byeditortrcoaf   = {{toimetatud, \lbx at lfromlang\finalandcomma\ t\~{o}lgitud ja kommenteeritud koos J\"{a}rels\~{o}na,} %
-                      {toimetatud, \lbx at lfromlang\finalandcomma\ t\~{o}lgitud ja kommenteeritud koos J\"{a}rels\~{o}na,}},
-  byeditortranin   = {{redigeerida t\~{o}lgitud \lbx at lfromlang\finalandcomma\ ja selgitustega koos tutvustus,} %
-                      {redigeerida t\~{o}lgitud \lbx at lfromlang\finalandcomma\ ja selgitustega koos tutvustus,}},
-  byeditortranfo   = {{redigeerida t\~{o}lgitud \lbx at lfromlang\finalandcomma\ ja selgitustega mis eess\~{o}na,} %
-                      {redigeerida t\~{o}lgitud \lbx at lfromlang\finalandcomma\ ja selgitustega mis eess\~{o}na,}},
-  byeditortranaf   = {{redigeerida t\~{o}lgitud \lbx at lfromlang\finalandcomma\ ja selgitustega koos J\"{a}rels\~{o}na,} %
-                      {redigeerida t\~{o}lgitud \lbx at lfromlang\finalandcomma\ ja selgitustega koos J\"{a}rels\~{o}na,}},
-  bytranslatorco   = {{\lbx at lfromlang\ t\~{o}lgitud ja kommenteeritud} %
-                      {\lbx at lfromlang\ t\~{o}lgitud ja kommenteeritud}},
-  bytranslatoran   = {{t\~{o}lgitud \lbx at lfromlang\ ja kanda} %
-                      {t\~{o}lgitud \lbx at lfromlang\ ja kanda}},
-  bytranslatorin   = {{translated \lbx at lfromlang, with an introduction, by} %
-                      {trans\adddot\ \lbx at sfromlang, with an introd., by}},
-  bytranslatorfo   = {{translated \lbx at lfromlang, with a foreword, by} %
-                      {trans\adddot\ \lbx at sfromlang, with a forew., by}},
-  bytranslatoraf   = {{translated \lbx at lfromlang, with an afterword, by} %
-                      {trans\adddot\ \lbx at sfromlang, with an afterw., by}},
-  bytranslatorcoin = {{\lbx at lfromlang\ t\~{o}lkinud ja kommenteerinud koos tutvustus,} %
-                      {\lbx at lfromlang\ t\~{o}lkinud ja kommenteerinud koos tutvustus,}},
-  bytranslatorcofo = {{\lbx at lfromlang\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,} %
-                      {\lbx at lfromlang\ t\~{o}lkinud ja kommenteerinud mis eess\~{o}na,}},
-  bytranslatorcoaf = {{\lbx at lfromlang\ t\~{o}lkinud ja kommenteerinud koos J\"{a}rels\~{o}na,} %
-                      {\lbx at lfromlang\ t\~{o}lkinud ja kommenteerinud koos J\"{a}rels\~{o}na,}},
-  bytranslatoranin = {{t\~{o}lgitud \lbx at lfromlang\ ja selgitustega koos tutvustus,} %
-                      {t\~{o}lgitud \lbx at lfromlang\ ja selgitustega koos tutvustus,}},
-  bytranslatoranfo = {{t\~{o}lgitud \lbx at lfromlang\ ja selgitustega mis eess\~{o}na,} %
-                      {t\~{o}lgitud \lbx at lfromlang\ ja selgitustega mis eess\~{o}na,}},
-  bytranslatoranaf = {{t\~{o}lgitud \lbx at lfromlang\ ja selgitustega koos J\"{a}rels\~{o}na,} %
-                      {t\~{o}lgitud \lbx at lfromlang\ ja selgitustega koos J\"{a}rels\~{o}na,}},
+  editortrco       = {{toimetaja, t\~{o}lkija ja kommenteerija} %
+                      {toim., t\~{o}lk\adddotspace ja komm\adddot}},
+  editorstrco      = {{toimetajad, t\~{o}lkijad ja kommenteerijad} %
+                      {toim., t\~{o}lk\adddotspace ja komm\adddot}},
+  editortran       = {{toimetaja, t\~{o}lkija ja kommenteerija} %
+                      {toim., t\~{o}lk\adddotspace ja annot\adddot}},
+  editorstran      = {{toimetajad, t\~{o}lkijad ja kommenteerijad} %
+                      {toim., t\~{o}lk\adddotspace ja annot\adddot}},
+  editortrin       = {{toimetaja, t\~{o}lkija ja sissejuhatus} %
+                      {toim., t\~{o}lk\adddotspace ja sissej\adddot}},
+  editorstrin      = {{toimetajad, t\~{o}lkijad ja sissejuhatus} %
+                      {toim., t\~{o}lk\adddotspace ja sissej\adddot}},
+  editortrfo       = {{toimetaja, t\~{o}lkija ja eess\~{o}na} %
+                      {toim., t\~{o}lk\adddotspace ja eess\adddot}},
+  editorstrfo      = {{toimetajad, t\~{o}lkijad ja eess\~{o}na} %
+                      {toim., t\~{o}lk\adddotspace ja forew\adddot}},
+  editortraf       = {{toimetaja, t\~{o}lkija ja j\"{a}rels\~{o}na}  %
+                      {toim., t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+  editorstraf      = {{toimetajad, t\~{o}lkijad ja j\"{a}rels} %
+                      {toim., t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+  editorcoin       = {{toimetaja, kommenteerija ja sissejuhatus} %
+                      {toim., komm\adddotspace ja sissej\adddot}},
+  editorscoin      = {{toimetajad, kommenteerijad ja sissejuhatus} %
+                      {toim., komm\adddotspace ja sissej\adddot}},
+  editorcofo       = {{toimetaja, kommenteerija ja eess\~{o}na} %
+                      {toim., komm\adddotspace ja forew\adddot}},
+  editorscofo      = {{toimetajad, kommenteerija ja eess\~{o}na} %
+                      {toim., komm\adddotspace ja eess\adddot}},
+  editorcoaf       = {{toimetaja, kommenteerija ja j\"{a}rels\~{o}na} %
+                      {toim., komm\adddotspace ja j\"{a}rels\adddot}},
+  editorscoaf      = {{toimetajad, kommenteerijad ja j\"{a}rels\~{o}na} %
+                      {toim., komm\adddotspace ja j\"{a}rels\adddot}},
+  editoranin       = {{toimetaja, kommenteerija ja sissejuhatus} %
+                      {toim., annot\adddotspace ja sissej\adddot}},
+  editorsanin      = {{toimetajad, kommenteerijad ja sissejuhatus} %
+                      {toim., annot\adddotspace ja sissej\adddot}},
+  editoranfo       = {{toimetaja, annoteerja ja eess\~{o}na} %
+                      {toim., annot\adddotspace ja eess\adddot}},
+  editorsanfo      = {{toimetajad, kommenteerijad ja eess\~{o}na} %
+                      {toim., annot\adddotspace ja eess\adddot}},
+  editoranaf       = {{toimetaja, kommenteerija ja j\"{a}rels\~{o}na} %
+                      {toim., annot\adddotspace ja j\"{a}rels\adddot}},
+  editorsanaf      = {{toimetajad, kommenteerijad ja j\"{a}rels\~{o}na} %
+                      {toim., annot\adddotspace ja j\"{a}rels\adddot}},
+  editortrcoin     = {{toimetaja, t\~{o}lkija, kommenteerija ja sissejuhatus} %
+                      {toim., t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+  editorstrcoin    = {{toimetajad, t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+                      {toim., t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+  editortrcofo     = {{toimetaja, t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+                      {toim., t\~{o}lk., komm\adddotspace ja eess\adddot}},
+  editorstrcofo    = {{toimetajad, t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+                      {toim., t\~{o}lk., komm\adddotspace ja eess\adddot}},
+  editortrcoaf     = {{toimetaja, t\~{o}lkija, kommentator ja j\"{a}rels\~{o}na} %
+                      {toim., t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+  editorstrcoaf    = {{toimetajad, t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+                      {toim., t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+  editortranin     = {{toimetaja, t\~{o}lkija, kommenteerija ja sissejuhatus} %
+                      {toim., t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+  editorstranin    = {{toimetajad, t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+                      {toim., t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+  editortranfo     = {{toimetaja, t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+                      {toim., t\~{o}lk., annot\adddotspace ja eess\adddot}},
+  editorstranfo    = {{toimetajad, t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+                      {toim., t\~{o}lk., annot\adddotspace ja eess\adddot}},
+  editortranaf     = {{toimetaja, t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} %
+                      {toim., t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+  editorstranaf    = {{toimetajad, t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+                      {toim., t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+  translatorco     = {{t\~{o}lkija ja kommenteerija} %
+                      {t\~{o}lk\adddotspace ja komm\adddot}},
+  translatorsco    = {{t\~{o}lkijad ja kommenteerijad} %
+                      {t\~{o}lk\adddotspace ja komm\adddot}},
+  translatoran     = {{t\~{o}lkija ja kommenteerija}  %
+                      {t\~{o}lk\adddotspace ja annot\adddot}},
+  translatorsan    = {{t\~{o}lkijad ja kommenteerijad} %
+                      {t\~{o}lk\adddotspace ja annot\adddot}},
+  translatorin     = {{t\~{o}lkija ja sissejuhatus} %
+                      {t\~{o}lk\adddotspace ja sissej\adddot}},
+  translatorsin    = {{t\~{o}lkijad ja sissejuhatus} %
+                      {t\~{o}lk\adddotspace ja sissej\adddot}},
+  translatorfo     = {{t\~{o}lkija ja eess\~{o}na} %
+                      {t\~{o}lk\adddotspace ja eess\adddot}},
+  translatorsfo    = {{t\~{o}lkijad ja eess\~{o}na} %
+                      {t\~{o}lk\adddotspace ja eess\adddot}},
+  translatoraf     = {{t\~{o}lkija ja j\"{a}rels\~{o}na} %
+                      {t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+  translatorsaf    = {{t\~{o}lkijad ja j\"{a}rels\~{o}na} %
+                      {t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+  translatorcoin   = {{t\~{o}lkija, kommenteerija ja sissejuhatus} %
+                      {t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+  translatorscoin  = {{t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+                      {t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+  translatorcofo   = {{t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+                      {t\~{o}lk., komm\adddotspace ja eess\adddot}},
+  translatorscofo  = {{t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+                      {t\~{o}lk., komm\adddotspace ja eess\adddot}},
+  translatorcoaf   = {{t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} %
+                      {t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+  translatorscoaf  = {{t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+                      {t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+  translatoranin   = {{t\~{o}lkija, kommenteerija ja sissejuhatus} %
+                      {t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+  translatorsanin  = {{t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+                      {t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+  translatoranfo   = {{t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+                      {t\~{o}lk., annot\adddotspace ja eess\adddot}},
+  translatorsanfo  = {{t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+                      {t\~{o}lk., annot\adddotspace ja eess\adddot}},
+  translatoranaf   = {{t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} %
+                      {t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+  translatorsanaf  = {{t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+                      {t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+  organizer        = {{korraldaja}{korraldaja}},
+  organizers       = {{korraldajad}{korraldajad}},
+  byorganizer      = {{korraldanud}{korraldanud}},
+  byauthor         = {{kirjutanud}{kirj\adddot}},
+  byeditor         = {{toimetanud}{toim\adddot}},
+  bycompiler       = {{koostanud}{koost\adddot}},
+  byredactor       = {{toimetanud}{toim\adddot}},
+  byreviser        = {{l\"{a}bivaadanud}{l\"{a}bivaadanud}},
+  byreviewer       = {{vaadanud}{vaadanud}},
+  byfounder        = {{asutanud}{asutanud}},
+  bycontinuator    = {{j\"{a}tkanud}{j\"{a}tkanud}},
+  bycollaborator   = {{koost\"{o}\"{o}s}{koost\"{o}\"{o}s}},
+  bytranslator     = {{\lbx at lfromlang t\~{o}lkinud}{\lbx at sfromlang t\~{o}lk\adddotspace}},
+  bycommentator    = {{kommenteerinud}{kommenteerinud}},
+  byannotator      = {{kommenteerinud}{kommenteerinud}},% FIXME: unsure
+  withcommentator  = {{koos kommentaaridega}{koos kommentaaridega}},% FIXME: commentator name should be in the middle
+  withannotator    = {{koos kommentaaridega}{koos kommentaaridega}},
+  withintroduction = {{koos tutvustusega}{koos tutvustusega}},% FIXME: unsure
+  withforeword     = {{koos eess\~{o}naga}{koos eess\adddot}},
+  withafterword    = {{koos j\"{a}rels\~{o}naga}{koos j\"{a}rels\adddot}},
+  byeditortr       = {{toimetanud ja \lbx at lfromlang t\~{o}lkinud} %
+                      {toim\adddotspace ja \lbx at sfromlang t\~{o}lk\adddot}},
+  byeditorco       = {{toimetanud ja kommenteerinud} %
+                      {toim\adddotspace ja komment\adddot}},
+  byeditoran       = {{toimetanud ja kommenteerinud} %
+                      {toim\adddotspace ja komment\adddot}},
+  byeditorin       = {{toimetanud ja sissejuhatuse kirjutanud} %
+                      {toim\adddotspace ja sissej\adddot}},
+  byeditorfo       = {{toimetanud ja  eess\~{o}na kirjutanud} %
+                      {toim\adddotspace ja eess\adddot}},
+  byeditoraf       = {{toimetanud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {toim\adddotspace ja j\"{a}rels\adddot}},
+  byeditortrco     = {{toimetanud, \lbx at lfromlang t\~{o}lkinud ja kommenteerinud} %
+                      {toim., \lbx at sfromlang t\~{o}lk\adddotspace ja komm\adddot}},
+  byeditortran     = {{toimetanud, \lbx at lfromlang t\~{o}lkinud ja kommenteerinud} %
+                      {toim., \lbx at sfromlang t\~{o}lk\adddotspace ja komment\adddot}},
+  byeditortrin     = {{toimetanud, \lbx at lfromlang t\~{o}lkinud ja sissejuhatuse kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk\adddotspace ja sissej\adddot}},
+  byeditortrfo     = {{toimetanud, \lbx at lfromlang t\~{o}lkinud ja eess\~{o}na kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk\adddotspace ja eess\adddot}},
+  byeditortraf     = {{toimetanud, \lbx at lfromlang t\~{o}lkinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+  byeditorcoin     = {{toimetanud, kommenteerinud ja sissejuhatuse kirjutanud} %
+                      {toim., komm\adddotspace ja sissej\adddot}},
+  byeditorcofo     = {{toimetanud, kommenteerinud ja eess\~{o}na kirjutanud} %
+                      {toim., komm\adddotspace ja eess\adddot}},
+  byeditorcoaf     = {{toimetanud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {toim., komm\adddotspace ja j\"{a}rels\adddot}},
+  byeditoranin     = {{toimetanud, kommenteerinud ja sissejuhatuse kirjutanud}  %
+                      {toim., komment\adddotspace ja sissej\adddot}},
+  byeditoranfo     = {{toimetanud, kommenteerinud ja eess\~{o}na kirjutanud} %
+                      {toim., komment\adddotspace ja eess\adddot}},
+  byeditoranaf     = {{toimetanud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {toim., komment\adddotspace ja j\"{a}rels\adddot}},
+  byeditortrcoin   = {{toimetanud, \lbx at lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+  byeditortrcofo   = {{toimetanud, \lbx at lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk., komm\adddotspace ja eess\adddot}},
+  byeditortrcoaf   = {{toimetatud, \lbx at lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+  byeditortranin   = {{toimetanud, \lbx at lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk., komment\adddotspace ja sissej\adddot}},
+  byeditortranfo   = {{toimetanud, \lbx at lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk., komment\adddotspace ja eess\adddot}},
+  byeditortranaf   = {{toimetanud, \lbx at lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {toim., \lbx at sfromlang t\~{o}lk., komment\adddotspace ja j\"{a}rels\adddot}},
+  bytranslatorco   = {{\lbx at lfromlang t\~{o}lkinud ja kommenteerinud} %
+                      {\lbx at sfromlang t\~{o}lk\adddotspace ja komm\adddot}},
+  bytranslatoran   = {{\lbx at lfromlang t\~{o}lkinud ja kommenteerinud} %
+                      {\lbx at sfromlang t\~{o}lk\adddotspace ja komment\adddot}},
+  bytranslatorin   = {{\lbx at lfromlang t\~{o}lkinud ja sissejuhatuse kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk\adddotspace ja sissej\adddot}},
+  bytranslatorfo   = {{\lbx at lfromlang t\~{o}lkinud ja eess\~{o}na kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk\adddotspace ja eess\adddot}},
+  bytranslatoraf   = {{\lbx at lfromlang t\~{o}lkinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+  bytranslatorcoin = {{\lbx at lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+  bytranslatorcofo = {{\lbx at lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk., komm\adddotspace ja eess\adddot}},
+  bytranslatorcoaf = {{\lbx at lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+  bytranslatoranin = {{\lbx at lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk., komment\adddotspace ja sissej\adddot}},
+  bytranslatoranfo = {{\lbx at lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk., komment\adddotspace ja eess\adddot}},
+  bytranslatoranaf = {{\lbx at lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+                      {\lbx at sfromlang t\~{o}lk., komment\adddotspace ja j\"{a}rels\adddot}},
   and              = {{ja}{ja}},
-  andothers        = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
-  andmore          = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+  andothers        = {{\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}} %
+                      {\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}}},
+  andmore          = {{\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}} %
+                      {\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}}},
   volume           = {{k\"{o}ide}{k\"{o}ide}},
-  volumes          = {{k\"{o}ided}{k\"{o}idef}},
-% involumes        = {{}{}},% FIXME: missing. Finnish translation of "in 5 volumes" is "5 osassa".
+  volumes          = {{k\"{o}ited}{k\"{o}ited}},
+  involumes        = {{osas}{osas}},
   jourvol          = {{k\"{o}ide}{k\"{o}ide}},
   jourser          = {{seeria}{seeria}},
   book             = {{raamat}{raamat}},
   part             = {{osa}{osa}},
-  issue            = {{numero}{numero}},
-  newseries        = {{uues series}{uue ser\adddot}},
-  oldseries        = {{vana seeria}{vana ser\adddot}},
+  issue            = {{number}{nr\adddot}},
+  newseries        = {{uus seerias}{uus seer\adddot}},
+  oldseries        = {{vana seeria}{vana seer\adddot}},
   edition          = {{v\"{a}ljaanne}{v\"{a}ljaanne}},
   reprint          = {{kordustr\"{u}kk}{kordustr\"{u}kk}},
-  reprintof        = {{kordustr\"{u}kk ning}{kordustr\"{u}kk ning}},
-  reprintas        = {{kordustr\"{u}kk nagu}{kordustr\"{u}kk nagu}},
-  reprintfrom      = {{kordustr\"{u}kk alates}{kordustr\"{u}kk alates}},
-  reviewof         = {{vahekokkuv\~{o}tte}{vahekokkuv\~{o}tte}},
-  translationof    = {{t\~{o}lkimine}{t\~{o}lkimine}},
-  translationas    = {{t\~{o}lkida kui}{t\~{o}lkida kui}},
+  reprintof        = {{kordustr\"{u}kk teosest}{kordustr\"{u}kk teosest}},
+  reprintas        = {{kordustr\"{u}kitud kui}{kordustr\"{u}kitud kui}},
+  reprintfrom      = {{kordustr\"{u}kitud teosest}{kordustr\"{u}kitud teosest}},
+  reviewof         = {{arvustus teosest}{arvustus teosest}},
+  translationof    = {{t\~{o}lge}{t\~{o}lge}},
+  translationas    = {{t\~{o}lgitud kui}{t\~{o}lgitud kui}},
   translationfrom  = {{t\~{o}lgitud}{t\~{o}lgitud}},
-  origpubas        = {{algselt avaldatud nagu}{algselt avaldatud nagu}},
-  origpubin        = {{algselt avaldatud}{algselt avaldatud}},
-  astitle          = {{j\"{a}rgnevatest}{j\"{a}rgnevatest}},
-  bypublisher      = {{julkaissut}{julkaissut}},
-  page             = {{lehek\"{u}lja}{l\adddot}},
-  pages            = {{lehek\"{u}ljed}{l\adddot}},
+  origpubas        = {{algselt avaldatud kui}{algselt avaldatud kui}}, % FIXME: unsure, could also be 'esmatrükitud kui'
+  origpubin        = {{algselt avaldatud aastal}{algselt avaldatud aastal}}, % FIXME: unsure, could also be 'esmatrükitud aastal'
+  astitle          = {{pealkirjaga}{pealkirjaga}},
+  bypublisher      = {{v\"{a}lja andnud}{v\"{a}lja andnud}},
+  page             = {{lehek\"{u}lg}{lk\adddot}},
+  pages            = {{lehek\"{u}ljed}{lk\adddot}},
   column           = {{veerg}{veerg}},
   columns          = {{veerud}{veerud}},
   line             = {{rida}{rida}},
-  lines            = {{ridad}{ridad}},
-  nodate           = {{kuup\"{a}ev puudub}},
+  lines            = {{read}{read}},
+  nodate           = {{kuup\"{a}ev puudub}{kuup\"{a}ev puudub}},
   verse            = {{salm}{salm}},
   verses           = {{salmid}{salmid}},
   section          = {{jagu}{jagu}},
-  sections         = {{kohdat}{kohdat}},
-  paragraph        = {{kappale}{kappale}},
-  paragraphs       = {{kappaleet}{kappaleet}},
-% pagetotal        = {{}{}},% FIXME: missing
-% pagetotals       = {{}{}},% FIXME: missing
-% columntotal      = {{}{}},% FIXME: missing
-% columntotals     = {{}{}},% FIXME: missing
-% linetotal        = {{}{}},% FIXME: missing
-% linetotals       = {{}{}},% FIXME: missing
-% versetotal       = {{}{}},% FIXME: missing
-% versetotals      = {{}{}},% FIXME: missing
-% sectiontotal     = {{}{}},% FIXME: missing
-% sectiontotals    = {{}{}},% FIXME: missing
-% paragraphtotal   = {{}{}},% FIXME: missing
-% paragraphtotals  = {{}{}},% FIXME: missing
-  in               = {{teoksessa}{teoksessa}},
-  inseries         = {{sarjassa}{sarjassa}},
-  ofseries         = {{sarjassa}{sarjassa}},
-  number           = {{arv}{arv}},
-  chapter          = {{peat\"{u}kk}{peat\"{u}kk}},
-% bathesis         = {{}{}},% FIXME: missing
+  sections         = {{jaod}{jaod}},
+  paragraph        = {{l\~{o}ik}{l\~{o}ik}},
+  paragraphs       = {{l\~{o}igud}{l\~{o}igud}},
+  pagetotal        = {{lehek\"{u}lgi kokku}{lk\adddotspace kokku}},% FIXME: unsure
+  pagetotals       = {{lehek\"{u}lgesid kokku}{lk\adddotspace kokku}},% FIXME: unsure
+  columntotal      = {{veerge kokku}{veerge kokku}},% FIXME: unsure
+  columntotals     = {{veergusid kokku}{veergusid kokku}},% FIXME: unsure
+  linetotal        = {{ridu kokku}{ridu kokku}},% FIXME: unsure
+  linetotals       = {{ridasid kokku}{ridasid kokku}},% FIXME: unsure
+  versetotal       = {{salmi kokku}{salmi kokku}},% FIXME: unsure
+  versetotals      = {{salmesid kokku}{salmesid kokku}},% FIXME: unsure
+  sectiontotal     = {{jagusid kokku}{jagusid kokku}},% FIXME: unsure
+  sectiontotals    = {{jagusid kokku}{jagusid kokku}},% FIXME: unsure
+  paragraphtotal   = {{l\~{o}ike kokku}{l\~{o}ike kokku}},% FIXME: unsure
+  paragraphtotals  = {{l\~{o}ikusid kokku}{l\~{o}ikusid kokku}},% FIXME: unsure
+  in               = {{teoses}{teoses}},
+  inseries         = {{sarjas}{sarjas}},
+  ofseries         = {{sarjast}{sarjast}},
+  number           = {{number}{nr}},
+  chapter          = {{peat\"{u}kk}{ptk}},
+  bathesis         = {{bakalaureuse t\"{o}\"{o}}{bakalaureuse t\"{o}\"{o}}},
   mathesis         = {{magistrit\"{o}\"{o}}{magistrit\"{o}\"{o}}},
   phdthesis        = {{doktorit\"{o}\"{o}}{doktorit\"{o}\"{o}}},
-  candthesis       = {{kandidaadi v\"{a}itekirja}{kandidaadi v\"{a}itekirja}},% Literal translation of "Candidate thesis".
-  resreport        = {{tutkimusraportti}{tutkimusraportti}},
-  techreport       = {{uuringute raport}{uuringute raport}},
+  candthesis       = {{kandidaadi v\"{a}itekiri}{kandidaadi v\"{a}itekiri}},% Literal translation of "Candidate thesis".
+  resreport        = {{uuringuraport}{uuringuraport}},
+  techreport       = {{tehniline raport}{tehniline raport}},
   software         = {{tarkvara}{tarkvara}},
   datacd           = {{CD-ROM}{CD-ROM}},
-  audiocd          = {{audio CD}{audio CD}},
+  audiocd          = {{audioplaat}{audioplaat}},
   version          = {{versioon}{versioon}},
   url              = {{aadress}{aadress}},
   urlfrom          = {{saadaval}{saadaval}},
-  urlseen          = {{k\"{u}lastas}{k\"{u}lastas}},
-  inpreparation    = {{ettevalmistamisel}{ettevalmistamisel}},
+  urlseen          = {{vaadatud}{vaadatud}},
+  inpreparation    = {{koostamisel}{koostamisel}},
   submitted        = {{esitatud}{esitatud}},
   forthcoming      = {{tulevases}{tulevases}},
-  inpress          = {{ajakirjanduses}{ajakirjanduses}},
+  inpress          = {{tr\"{u}kis}{tr\"{u}kis}},
   prepublished     = {{eelnevalt avaldatud} {eelnevalt avaldatud}},
   citedas          = {{edaspidi viidatud kui}{edaspidi viidatud kui}},
   thiscite         = {{eriti}{eriti}},
-  seenote          = {{vaata m\"{a}rkus}{vaata m\"{a}rkus}},
-  quotedin         = {{noteeritud}{noteeritud}},
-  idem             = {{idem}{idem}}, % It its not necessary to translate Latin phrases.
-  idemsm           = {{idem}{idem}},
-  idemsf           = {{eadem}{eadem}},
-  idemsn           = {{idem}{idem}},
-  idempm           = {{eidem}{eidem}},
-  idempf           = {{eaedem}{eaedem}},
-  idempn           = {{eadem}{eadem}},
-  idempp           = {{eidem}{eidem}},
-  ibidem           = {{ibidem}{ibid\adddot}},
-  opcit            = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
-  loccit           = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
-  confer           = {{cf\adddot}{cf\adddot}},
-  sequens          = {{sq\adddot}{sq\adddot}},
-  sequentes        = {{sqq\adddot}{sqq\adddot}},
-  passim           = {{passim}{pass\adddot}},
-  see              = {{vaata}{vaata}},
-  seealso          = {{allikad}{allikad}},
+  seenote          = {{vaata m\"{a}rkus}{vt m\"{a}rkus}},
+  quotedin         = {{noteeritud}{noteeritud}}, % FIXME: unsure
+  idem             = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}}, % It its not necessary to translate Latin phrases.
+  idemsm           = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}},
+  idemsf           = {{\mkbibemph{\autocap{e}adem}}{\mkbibemph{\autocap{e}adem}}},
+  idemsn           = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}},
+  idempm           = {{\mkbibemph{\autocap{e}idem}}{\mkbibemph{\autocap{e}idem}}},
+  idempf           = {{\mkbibemph{\autocap{e}aedem}}{\mkbibemph{\autocap{e}aedem}}},
+  idempn           = {{\mkbibemph{\autocap{e}adem}}{\mkbibemph{\autocap{e}adem}}},
+  idempp           = {{\mkbibemph{\autocap{e}idem}}{\mkbibemph{\autocap{e}idem}}},
+  ibidem           = {{\mkbibemph{\autocap{i}bidem}}{\mkbibemph{\autocap{i}bid\adddot}}},
+  opcit            = {{\mkbibemph{\autocap{o}p\adddotspace cit\adddot}}{\mkbibemph{\autocap{o}p\adddotspace cit\adddot}}},
+  loccit           = {{\mkbibemph{\autocap{l}oc\adddotspace cit\adddot}}{\mkbibemph{\autocap{l}oc\adddotspace cit\adddot}}},
+  confer           = {{\mkbibemph{\autocap{c}f\adddot}}{\mkbibemph{\autocap{c}f\adddot}}},
+  sequens          = {{\mkbibemph{\autocap{s}q\adddot}}{\mkbibemph{\autocap{s}q\adddot}}},
+  sequentes        = {{\mkbibemph{\autocap{s}qq\adddot}}{\mkbibemph{\autocap{s}qq\adddot}}},
+  passim           = {{\mkbibemph{\autocap{p}assim}}{\mkbibemph{\autocap{p}ass\adddot}}},
+  see              = {{vaata}{vt}},
+  seealso          = {{vaata ka}{vt ka}},
   backrefpage      = {{viidatud lehel}{viidatud lehel}},
   backrefpages     = {{viidatud lehek\"{u}ljed}{viidatud lehek\"{u}ljed}},
   january          = {{jaanuar}{jaanuar}},
@@ -481,122 +463,98 @@
   october          = {{oktoober}{oktoober}},
   november         = {{november}{november}},
   december         = {{detsember}{detsember}},
-  basicjanuary     = {{jaanuar}{jaanuar}},
-  basicfebruary    = {{veebruar}{veebruar}},
-  basicmarch       = {{m\"{a}rts}{m\"{a}rts}},
-  basicapril       = {{aprill}{aprill}},
-  basicmay         = {{mai}{mai}},
-  basicjune        = {{juuni}{juuni}},
-  basicjuly        = {{juuli}{juuli}},
-  basicaugust      = {{august}{august}},
-  basicseptember   = {{september}{september}},
-  basicoctober     = {{oktoober}{oktoober}},
-  basicnovember    = {{november}{november}},
-  basicdecember    = {{detsember}{detsember}},
-  langamerican     = {{Ameerika}{Ameerika}},
-  langbrazilian    = {{Brasiilia}{Brasiilia}},
-% langbulgarian    = {{}{}},% FIXME: missing
-  langcatalan      = {{katalaani}{katalaani}},
-  langcroatian     = {{horvaadi}{horvaadi}},
-  langczech        = {{t\v{s}ehhii}{t\v{s}ehhii}},
-  langdanish       = {{taani}{taani}},
-  langdutch        = {{hollandi}{hollandi}},
-  langenglish      = {{inglise}{inglise}},
-  langestonian     = {{eesti}{eesti}},
-  langfinnish      = {{soome}{soome}},
-  langfrench       = {{prantsuse}{prantsuse}},
-  langgalician     = {{galeegi}{galeegi}},
-  langgerman       = {{saksa}{saksa}},
-  langgreek        = {{kreeka}{kreeka}},
-  langitalian      = {{itaalia}{itaalia}},
-  langlatin        = {{ladina}{ladina}},
-% langlatvian      = {{}{}},% FIXME: missing
-  langnorwegian    = {{norra}{norra}},
-  langpolish       = {{poola}{poola}},
-  langportuguese   = {{portugali}{portugali}},
-  langrussian      = {{vene}{vene}},
-% langslovak       = {{}{}},% FIXME: missing
-  langslovene      = {{sloveeni}{sloveeni}},
-  langspanish      = {{hispaania}{hispaania}},
-  langswedish      = {{rootsi}{rootsi}},
-  fromamerican     = {{alates USA}{alates USA}},
-  frombrazilian    = {{alates Brasiilia}{: Brasiilia}},
-% frombulgarian    = {{}{}},% FIXME: missing
-  fromcatalan      = {{alates katalaani}{: Catalan}},
-  fromcroatian     = {{alates horvaadi}{: Horvaatia}},
-  fromczech        = {{alates T\v{s}ehhi}{: T\v{s}ehhi}},
-  fromdanish       = {{Taani}{alates Taani}},
-  fromdutch        = {{alates Hollandi}{: Hollandi}},
-  fromenglish      = {{ingliskeelsest}{ingliskeelsest}},
-  fromestonian     = {{eesti kielest\"a}{eesti kielest\"a}},
-  fromfinnish      = {{Soome}{alates Soome}},
-  fromfrench       = {{alates Prantsuse}{alates prantsuse}},
-  fromgalician     = {{alates Galeegi}{alates Galeegi}},
-  fromgerman       = {{, saksa keeles}{: Saksa}},
-  fromgreek        = {{alates Kreeka}{alates Kreeka}},
-  fromitalian      = {{alates Itaalia}{: Itaalia}},
-  fromlatin        = {{alates Ladina}{: Ladina}},
-% fromlatvian      = {{}{}},% FIXME: missing
-  fromnorwegian    = {{alates Norra}{: Norra}},
-  frompolish       = {{alates Poola} {alates Poola}},
-  fromportuguese   = {{alates Portugali}{: Portugali}},
-  fromrussian      = {{alates Vene}{: vene}},
-% fromslovak       = {{}{}},% FIXME: missing
-  fromslovene      = {{alates sloveeni}{: sloveeni}},
-  fromspanish      = {{alates Hispaania}{alates Hispaania}},
-  fromswedish      = {{alates Rootsi}{: Rootsi}},
+  langamerican     = {{Ameerika inglise keel}{Ameerika inglise keel}},
+  langbrazilian    = {{brasiilia keel}{brasiilia keel}},
+  langbulgarian    = {{bulgaaria keel}{bulgaaria keel}},
+  langcatalan      = {{katalaani keel}{katalaani keel}},
+  langcroatian     = {{horvaadi keel}{horvaadi keel}},
+  langczech        = {{t\v{s}ehhi keel}{t\v{s}ehhi keel}},
+  langdanish       = {{taani keel}{taani keel}},
+  langdutch        = {{hollandi keel}{hollandi keel}},
+  langenglish      = {{inglise keel}{inglise keel}},
+  langestonian     = {{eesti keel}{eesti keel}},
+  langfinnish      = {{soome keel}{soome keel}},
+  langfrench       = {{prantsuse keel}{prantsuse keel}},
+  langgalician     = {{galeegi keel}{galeegi keel}},
+  langgerman       = {{saksa keel}{saksa keel}},
+  langgreek        = {{kreeka keel}{kreeka keel}},
+  langhungarian    = {{ungari keel}{ungari keel}},
+  langitalian      = {{itaalia keel}{itaalia keel}},
+  langjapanese     = {{jaapani keel}{jaapani keel}},
+  langlatin        = {{ladina keel}{ladina keel}},
+  langlatvian      = {{l\"{a}ti keel}{l\"{a}ti keel}},
+  langnorwegian    = {{norra keel}{norra keel}},
+  langpolish       = {{poola keel}{poola keel}},
+  langportuguese   = {{portugali keel}{portugali keel}},
+  langrussian      = {{vene keel}{vene keel}},
+  langslovak       = {{slovakia keel}{slovakia keel}},
+  langslovene      = {{sloveeni keel}{sloveeni keel}},
+  langspanish      = {{hispaania keel}{hispaania keel}},
+  langswedish      = {{rootsi keel}{rootsi keel}},
+  langukrainian    = {{ukraina keel}{ukraina keel}},
+  fromamerican     = {{Ameerika inglise keelest}{Ameerika inglise keelest}},
+  frombrazilian    = {{brasiilia keelest}{brasiilia keelest}},
+  frombulgarian    = {{bulgaaria keelest}{bulgaaria keelest}},
+  fromcatalan      = {{katalani keelest}{kalatalani keelest}},
+  fromcroatian     = {{horvaadi keelest}{horvaadi keelest}},
+  fromczech        = {{t\v{s}ehhi keelest}{t\v{s}ehhi keelest}},
+  fromdanish       = {{taani keelest}{taani keelest}},
+  fromdutch        = {{hollandi keelest}{hollandi keelest}},
+  fromenglish      = {{inglise keelest}{inglise keelest}},
+  fromestonian     = {{eesti keelest}{eesti keelest}},
+  fromfinnish      = {{soome keelest}{soome keelest}},
+  fromfrench       = {{prantsuse keelest}{prantsuse keelest}},
+  fromgalician     = {{galeegi keelest}{galeegi keelest}},
+  fromgerman       = {{saksa keelest}{saksa keelest}},
+  fromgreek        = {{kreeka keelest}{kreeka keelest}},
+  fromhungarian    = {{ungari keelest}{ungari keelest}},
+  fromitalian      = {{itaalia keelest}{itaalia keelest}},
+  fromjapanese     = {{jaapani keelest}{jaapani keelest}},
+  fromlatin        = {{ladina keelest}{ladina keelest}},
+  fromlatvian      = {{l\"{a}ti keelest}{l\"{a}ti keelest}},
+  fromnorwegian    = {{norra keelest}{norra keelest}},
+  frompolish       = {{poola keelest} {poola keelest}},
+  fromportuguese   = {{portugali keelest}{portugali keelest}},
+  fromrussian      = {{vene keelest}{vene keelest}},
+  fromslovak       = {{slovakia keelest}{slovakia keelest}},
+  fromslovene      = {{sloveenia keelest}{sloveenia keelest}},
+  fromspanish      = {{hispaania keelest}{hispaania keelest}},
+  fromswedish      = {{rootsi keelest}{rootsi keelest}},
+  fromukrainian    = {{ukraina keelest}{ukraina keelest}},
   countryde        = {{Saksamaa}{DE}},
   countryeu        = {{Euroopa Liit}{EL}},
-  countryep        = {{Euroopa Liidu}{EP}},
+  countryep        = {{Euroopa Parlament}{EP}},
   countryfr        = {{Prantsusmaa}{FR}},
   countryuk        = {{Suurbritannia}{GB}},
   countryus        = {{Ameerika}{US}},
-  patent           = {{patendi}{pat\adddot}},
-  patentde         = {{Saksa patendi}{Saksa pat\adddot}},
-  patenteu         = {{Euroopa patendi}{Euroopa pat\adddot}},
+  patent           = {{patent}{pat\adddot}},
+  patentde         = {{Saksa patent}{Saksa pat\adddot}},
+  patenteu         = {{Euroopa patent}{Euroopa pat\adddot}},
   patentfr         = {{Prantsuse patent}{Prantsuse pat\adddot}},
-  patentuk         = {{Briti patendi}{Briti pat\adddot}},
+  patentuk         = {{Briti patent}{Briti pat\adddot}},
   patentus         = {{U.S\adddotspace patent}{U.S\adddotspace pat\adddot}},
-  patreq           = {{patendi taotluse}{pat\adddot\ req\adddot}},
-  patreqde         = {{Saksa patendi taotluse}{Saksa pat\adddot\ req\adddot}},
-  patreqeu         = {{Euroopa patendi taotluse}{Euroopa pat\adddot\ req\adddot}},
-  patreqfr         = {{Prantsuse patent taotluse}{Prantsuse pat\adddot\ req\adddot}},
-  patrequk         = {{Briti patendi taotluse}{Briti pat\adddot\ req\adddot}},
-  patrequs         = {{U.S\adddotspace patent request}{U.S\adddotspace pat\adddot\ req\adddot}},
-  file             = {{faili}{faili}},
+  patreq           = {{patendi taotlus}{pat\adddotspace taotl\adddot}},
+  patreqde         = {{Saksa patendi taotlus}{Saksa pat\adddotspace taotl\adddot}},
+  patreqeu         = {{Euroopa patendi taotlus}{Euroopa pat\adddotspace taotl\adddot}},
+  patreqfr         = {{Prantsuse patendi taotlus}{Prantsuse pat\adddotspace taotl\adddot}},
+  patrequk         = {{Briti patendi taotlus}{Briti pat\adddotspace taotl\adddot}},
+  patrequs         = {{U.S\adddotspace patendi taotlus.}{U.S\adddotspace pat\adddotspace taotl\adddot}},
+  file             = {{fail}{fail}},
   library          = {{raamatukogu}{raamatukogu}},
-  abstract         = {{abstraktne}{abstraktne}},
-  annotation       = {{annotatsioon}{annotatsioon}},
+  abstract         = {{teesid}{teesid}},
+  annotation       = {{kommentaarid}{kommentaarid}},
   commonera        = {{meie ajaarvamise j\"argi}{m\adddot a\adddot j}},
   beforecommonera  = {{enne meie ajaarvamist}{e\adddot m\adddot a}},
   annodomini       = {{p\"arast Kristust}{pKr}},
   beforechrist     = {{enne Kristust}{eKr}},
-% circa            = {{}{}},% FIXME: missing
-% spring           = {{}{}},% FIXME: missing
-% summer           = {{}{}},% FIXME: missing
-% autumn           = {{}{}},% FIXME: missing
-% winter           = {{}{}},% FIXME: missing
+  circa            = {{\mkbibemph{\autocap{c}a}}{\mkbibemph{\autocap{c}a}}},
+  spring           = {{kevadel}{kevadel}},
+  summer           = {{suvel}{suvel}},
+  autumn           = {{s\"{u}gisel}{s\"{u}gisel}},
+  winter           = {{talvel}{talvel}},
   am               = {{AM}{AM}},
   pm               = {{PM}{PM}},
 }
 
-\protected\gdef\lbx at fi@mkbibmonthbasic#1{%
-  \ifcase0#1\relax
-    #1\BibliographyWarning{Month out of range}%
-  \or\abx at bibmonth{basicjanuary}%
-  \or\abx at bibmonth{basicfebruary}%
-  \or\abx at bibmonth{basicmarch}%
-  \or\abx at bibmonth{basicapril}%
-  \or\abx at bibmonth{basicmay}%
-  \or\abx at bibmonth{basicjune}%
-  \or\abx at bibmonth{basicjuly}%
-  \or\abx at bibmonth{basicaugust}%
-  \or\abx at bibmonth{basicseptember}%
-  \or\abx at bibmonth{basicoctober}%
-  \or\abx at bibmonth{basicnovember}%
-  \or\abx at bibmonth{basicdecember}%
-  \else
-    #1\BibliographyWarning{Month out of range}%
-  \fi}%
 
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/finnish.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -94,7 +94,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -283,9 +283,9 @@
                       {k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}},
   translatorsanaf  = {{k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}%
                       {k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}},
-% organizer        = {{}{}},% FIXME: missing
-% organizers       = {{}{}},% FIXME: missing
-% byorganizer      = {{}{}},% FIXME: missing
+  organizer        = {{toimittanut}{toim\adddot}},% FIXME: unsure
+  organizers       = {{toimittaneet}{toim\adddot}},% FIXME: unsure
+  byorganizer      = {{toimittanut}{toim\adddot}},% FIXME: unsure
   byauthor         = {{kirjoittanut}{kirj\adddot}},
   byeditor         = {{toimittanut}{toim\adddot}},
   bycompiler       = {{koontanut}{koontanut}},
@@ -373,15 +373,15 @@
                       {\lbx at sfromlang k\"a\"ant\"anyt, selityksin varustanut ja j\"alkisanat kirjoittanut}},
   and              = {{ja}{ja}},
   andothers        = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
-  andmore          = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+  andmore          = {{jne\adddot}{jne\adddot}},
   volume           = {{volyymi}{vol\adddot}},% FIXME: Is {{osa}{osa}} a better translation?
   volumes          = {{volyymit}{vol\adddot}},% Incorrect. Correct translation of "volumes" depends on context.
-% involumes        = {{}{}},% FIXME: missing. Finnish translation of "in 5 volumes" is "5 osassa".
+  involumes        = {{}{}},% Finnish translation of "in 5 volumes" is "5 osassa", so translation of "in" is an empty string.
   jourvol          = {{volyymi}{vol\adddot}},
   jourser          = {{sarja}{sarja}},
   book             = {{kirja}{kirja}},% FIXME: Literal translation of "book". Correct translation depends on context.
-  part             = {{osa}{osa}},% FIXME: unsure
-  issue            = {{numero}{numero}},% FIXME: unsure
+  part             = {{osa}{osa}},
+  issue            = {{numero}{numero}},
   newseries        = {{uusi sarja}{uusi sarja}},
   oldseries        = {{vanha sarja}{vanha sarja}},
   edition          = {{painos}{painos}},
@@ -410,31 +410,31 @@
   sections         = {{kohdat}{kohdat}},% Bad translation, but "pyk\"al\"at" is no better.
   paragraph        = {{kappale}{kappale}},
   paragraphs       = {{kappaleet}{kappaleet}},
-% pagetotal        = {{}{}},% FIXME: missing
-% pagetotals       = {{}{}},% FIXME: missing
-% columntotal      = {{}{}},% FIXME: missing
-% columntotals     = {{}{}},% FIXME: missing
-% linetotal        = {{}{}},% FIXME: missing
-% linetotals       = {{}{}},% FIXME: missing
-% versetotal       = {{}{}},% FIXME: missing
-% versetotals      = {{}{}},% FIXME: missing
-% sectiontotal     = {{}{}},% FIXME: missing
-% sectiontotals    = {{}{}},% FIXME: missing
-% paragraphtotal   = {{}{}},% FIXME: missing
-% paragraphtotals  = {{}{}},% FIXME: missing
+  pagetotal        = {{sivu}{s\adddot}},
+  pagetotals       = {{sivut}{s\adddot}},
+  columntotal      = {{palsta}{palsta}},% Here "sarake" is wrong!
+  columntotals     = {{palstat}{palstat}},% Here "sarakkeet" is wrong!
+  linetotal        = {{rivi}{rivi}},
+  linetotals       = {{rivit}{rivit}},
+  versetotal       = {{s\"ae}{s\"ae}},
+  versetotals      = {{s\"akeet}{s\"akeet}},
+  sectiontotal     = {{kohta}{kohta}},% Bad translation, but "pyk\"al\"a" is no better.
+  sectiontotals    = {{kohdat}{kohdat}},% Bad translation, but "pyk\"al\"at" is no better.
+  paragraphtotal   = {{kappale}{kappale}},
+  paragraphtotals  = {{kappaleet}{kappaleet}},
   in               = {{teoksessa}{teoksessa}},
   inseries         = {{sarjassa}{sarjassa}},
   ofseries         = {{sarjassa}{sarjassa}},
   number           = {{numero}{nro}},
   chapter          = {{luku}{luku}},
-% bathesis         = {{}{}},% FIXME: missing
+  bathesis         = {{tutkielma}{tutkielma}},% FIXME: unsure
   mathesis         = {{tutkielma}{tutkielma}},% FIXME: unsure
   phdthesis        = {{tohtorinv\"ait\"oskirja}{tohtorinv\"ait\"oskirja}},
   candthesis       = {{kanditaatintutkielma}{kanditaatintutkielma}},% Literal translation of "Candidate thesis".
   resreport        = {{tutkimusraportti}{tutkimusraportti}},
-  techreport       = {{tekninen raportti}{tekninen raportti}},
+  techreport       = {{tekninen raportti}{tekninen raportti}},% Literal translation of "technical report".
   software         = {{ohjelmisto}{ohjelmisto}},
-  datacd           = {{data-CD}{data-CD}},% Is {CD-ROM}{CD-ROM}} better?
+  datacd           = {{data-CD}{data-CD}},% Is {{CD-ROM}{CD-ROM}} better?
   audiocd          = {{\"a\"ani-CD}{\"a\"ani-CD}},
   version          = {{versio}{versio}},
   url              = {{url}{url}},
@@ -446,7 +446,7 @@
   inpress          = {{painossa}{painossa}},% FIXME: unsure
   prepublished     = {{esijulkaistu}{esijulkaistu}},% FIXME: unsure
   citedas          = {{jatkossa}{jatkossa}},
-  thiscite         = {{t\"am\"a lainaus}{t\"am\"a lainaus}},% FIXME: unsure
+  thiscite         = {{sama}{sama}},% FIXME: unsure
   seenote          = {{katso viite}{katso viite}},
   quotedin         = {{lainattu teoksessa}{lainattu teoksessa}},
   idem             = {{idem}{id\adddot}},% It its not necessary to translate Latin phrases.
@@ -494,33 +494,34 @@
   basicdecember    = {{joulukuu}{joulukuu}},
   langamerican     = {{amerikanenglanti}{amerikanenglanti}},
   langbrazilian    = {{brasilianportugali}{brasilianportugali}},
-% langbulgarian    = {{}{}},% FIXME: missing
+  langbulgarian    = {{bulgaria}{bulgaria}},
   langcatalan      = {{katalonia}{katalonia}},
-  langcroatian     = {{kroataia}{kroatia}},
+  langcroatian     = {{kroatia}{kroatia}},
   langczech        = {{t\v{s}ekki}{t\v{s}ekki}},
   langdanish       = {{tanska}{tanska}},
   langdutch        = {{hollanti}{hollanti}},
   langenglish      = {{englanti}{englanti}},
-% langestonian     = {{}{}},% FIXME: missing
+  langestonian     = {{viro}{viro}},
   langfinnish      = {{suomi}{suomi}},
   langfrench       = {{ranska}{ranska}},
-  langgalician     = {{galician}{galician}},
+  langgalician     = {{galicia}{galicia}},
   langgerman       = {{saksa}{saksa}},
   langgreek        = {{kreikka}{kreikka}},
+  langhungarian    = {{unkari}{unkari}},
   langitalian      = {{italia}{italia}},
   langlatin        = {{latina}{latina}},
-% langlatvian      = {{}{}},% FIXME: missing
+  langlatvian      = {{latvia}{latvia}},
   langnorwegian    = {{norja}{norja}},
   langpolish       = {{puola}{puola}},
   langportuguese   = {{portugali}{portugali}},
   langrussian      = {{ven\"aj\"a}{ven\"aj\"a}},
-% langslovak       = {{}{}},% FIXME: missing
-% langslovene      = {{}{}},% FIXME: missing
+  langslovak       = {{slovakia}{slovakia}},
+  langslovene      = {{slovenia}{slovenia}},
   langspanish      = {{espanja}{espanja}},
   langswedish      = {{ruotsi}{ruotsi}},
   fromamerican     = {{englannin kielest\"a}{englannin kielest\"a}},
   frombrazilian    = {{portugalin kielest\"a}{portugalin kielest\"a}},
-% frombulgarian    = {{}{}},% FIXME: missing
+  frombulgarian    = {{bulgarian kielest\"a}{bulgarian kielest\"a}},
   fromcatalan      = {{katalonian kielest\"a}{katalonian kielest\"a}},
   fromcroatian     = {{kroatian kielest\"a}{kroatian kielest\"a}},
   fromczech        = {{t\v{s}ekin kielest\"a}{t\v{s}ekin kielest\"a}},
@@ -527,21 +528,22 @@
   fromdanish       = {{tanskan kielest\"a}{tanskan kielest\"a}},
   fromdutch        = {{hollannin kielest\"a}{hollannin kielest\"a}},
   fromenglish      = {{englannin kielest\"a}{englannin kielest\"a}},
-% fromestonian     = {{}{}},% FIXME: missing
+  fromestonian     = {{viron kielest\"a}{viron kielest\"a}},
   fromfinnish      = {{suomen kielest\"a}{suomen kielest\"a}},
   fromfrench       = {{ranskan kielest\"a}{ranskan kielest\"a}},
   fromgalician     = {{galician kielest\"a}{galician kielest\"a}},
   fromgerman       = {{saksan kielest\"a}{saksan kielest\"a}},
   fromgreek        = {{kreikan kielest\"a}{kreikan kielest\"a}},
+  fromhungarian    = {{unkarin kielest\"a}{unkarin kielest\"a}},
   fromitalian      = {{italian kielest\"a}{italian kielest\"a}},
   fromlatin        = {{latinan kielest\"a}{latinan kielest\"a}},
-% fromlatvian      = {{}{}},% FIXME: missing
+  fromlatvian      = {{latvian kielest\"a}{latvian kielest\"a}},
   fromnorwegian    = {{norjan kielest\"a}{norjan kielest\"a}},
   frompolish       = {{puolan kielest\"a}{puolan kielest\"a}},
   fromportuguese   = {{portugalin kielest\"a}{portugalin kielest\"a}},
   fromrussian      = {{ven\"aj\"an kielest\"a}{ven\"aj\"an kielest\"a}},
-% fromslovak       = {{}{}},% FIXME: missing
-% fromslovene      = {{}{}},% FIXME: missing
+  fromslovak       = {{slovakian kielest\"a}{slovakian kielest\"a}},
+  fromslovene      = {{slovenian kielest\"a}{slovenian kielest\"a}},
   fromspanish      = {{espanjan kielest\"a}{espanjan kielest\"a}},
   fromswedish      = {{ruotsin kielest\"a}{ruotsin kielest\"a}},
   countryde        = {{Saksa}{DE}},
@@ -554,13 +556,13 @@
   patentde         = {{saksalainen patentti}{saksalainen pat\adddot}},
   patenteu         = {{Euroopan Unionin patentti}{Euroopan Unionin pat\adddot}},
   patentfr         = {{ranskalainen patentti}{ranskalainen pat\adddot}},
-  patentuk         = {{englantilainen patentti}{englantilainen pat\adddot}},
+  patentuk         = {{isobritannialainen patentti}{isobritannialainen pat\adddot}},
   patentus         = {{yhdysvaltalainen patentti}{yhdysvaltalainen pat\adddot}},
   patreq           = {{patenttihakemus}{pat\adddot\ hak\adddot}},
   patreqde         = {{saksalainen patenttihakemus}{saksalainen pat\adddot\ hak\adddot}},
   patreqeu         = {{Euroopan Unionin patenttihakemus}{Euroopan Unionin pat\adddot\ hak\adddot}},
   patreqfr         = {{ranskalainen patenttihakemus}{ranskalainen pat\adddot\ hak\adddot}},
-  patrequk         = {{englantilainen patenttihakemus}{englantilainen pat\adddot\ hak\adddot}},
+  patrequk         = {{isobritannialainen patenttihakemus}{isobritannialainen pat\adddot\ hak\adddot}},
   patrequs         = {{yhdysvaltalainen patenttihakemus}{yhdysvaltalainen pat\adddot\ hak\adddot}},
   file             = {{tiedosto}{tiedosto}},
   library          = {{kirjasto}{kirjasto}},
@@ -570,13 +572,13 @@
   beforecommonera  = {{ennen ajanlaskun alkua}{eaa\adddot}},
   annodomini       = {{j\"alkeen Kristuksen syntym\"an}{jKr\adddot}},
   beforechrist     = {{ennen Kristuksen syntym\"a\"a}{eKr\adddot}},
-% circa            = {{}{}},% FIXME: missing
-% spring           = {{}{}},% FIXME: missing
-% summer           = {{}{}},% FIXME: missing
-% autumn           = {{}{}},% FIXME: missing
-% winter           = {{}{}},% FIXME: missing
+  circa            = {{noin}{n\adddot}},
+  spring           = {{kev\"at}{kev\"at}},% Or kev\"a\"all\"a ?
+  summer           = {{kes\"a}{kes\"a}},% Or kes\"all\"a ?
+  autumn           = {{syksy}{syksy}},% Or syksyll\"a ?
+  winter           = {{talvi}{talvi}},% Or talvella ?
   am               = {{ap\adddot}{ip\adddot}},
-  pm               = {{ap\adddot}{ip\adddot}},
+  pm               = {{ip\adddot}{ip\adddot}},
 }
 
 \protected\gdef\lbx at fi@mkbibmonthbasic#1{%

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -81,7 +81,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -483,10 +483,11 @@
   langgalician     = {{galicien}{galicien}},
   langgerman       = {{allemand}{allemand}},
   langgreek        = {{grec}{grec}},
+  langhungarian    = {{hongrois}{hongrois}},
   langitalian      = {{italien}{italien}},
   langjapanese     = {{japonais}{japonais}},
   langlatin        = {{latin}{latin}},
-% langlatvian      = {{}{}},% FIXME: missing
+  langlatvian      = {{letton}{letton}},
   langnorwegian    = {{norv\'egien}{norv\'egien}},
   langpolish       = {{polonais}{polonais}},
   langportuguese   = {{portugais}{portugais}},
@@ -511,10 +512,11 @@
   fromgalician     = {{du galicien}{du galicien}},
   fromgerman       = {{de l'allemand}{de l'allemand}},
   fromgreek        = {{du grec}{du grec}},
+  fromhungarian    = {{du hongrois}{du hongrois}},
   fromitalian      = {{de l'italien}{de l'italien}},
   fromjapanese     = {{du japonais}{du japonais}},
   fromlatin        = {{du latin}{du latin}},
-% fromlatvian      = {{}{}},% FIXME: missing
+  fromlatvian      = {{du letton}{du letton}},
   fromnorwegian    = {{du norv\'egien}{du norv\'egien}},
   frompolish       = {{du polonais}{du polonais}},
   fromportuguese   = {{du portugais}{du portugais}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/galician.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/galician.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/galician.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -58,7 +58,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -443,7 +443,7 @@
   november         = {{novembro}{nov\adddot}},
   december         = {{decembro}{dec\adddot}},
   langamerican     = {{ingl\'es americano}{ing\adddotspace am\adddot}},
-  langbulgarian    = {{b\'ulgaro}{b\'ulg\adddot}}
+  langbulgarian    = {{b\'ulgaro}{b\'ulg\adddot}},
   langbrazilian    = {{portugu\'es brasileiro}{port\adddotspace br\adddot}},
   langcatalan      = {{catal\'an}{cat\adddot}},
   langcroatian     = {{croata}{croata}},
@@ -457,6 +457,7 @@
   langgalician     = {{galego}{gal\adddot}},
   langgerman       = {{alem\'an}{al\adddot}},
   langgreek        = {{grego}{grego}},
+  langhungarian    = {{h\'ungaro}{h\'ungaro}},
   langitalian      = {{italiano}{ital\adddot}},
   langlatin        = {{lat\'in}{lat\adddot}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -476,7 +477,7 @@
   fromczech        = {{do checo}{do checo}},
   fromdanish       = {{do dinamarqu\'es}{do dan\'es}},
   fromdutch        = {{do neerland\'es}{do neerl\adddot}},
-  fromenglish      = {{do ingl\'es}{do ing\adddo}},
+  fromenglish      = {{do ingl\'es}{do ing\adddot}},
   fromestonian     = {{do estoniano}{do eston\adddot}},
   fromfinnish      = {{do fin\'es}{do fin\'es}},
   fromfrench       = {{do franc\'es}{do fr\adddot}},
@@ -483,6 +484,7 @@
   fromgalician     = {{do galego}{do gal\adddot}},
   fromgerman       = {{do alem\'an}{do al\adddot}},
   fromgreek        = {{do grego}{do grego}},
+  fromhungarian    = {{do h\'ungaro}{do h\'ungaro}},
   fromitalian      = {{do italiano}{do ital\adddot}},
   fromlatin        = {{do lat\'in'}{do lat\adddot}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/german.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -65,7 +65,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -465,6 +465,7 @@
   langgalician     = {{Galicisch}{Galicisch}},
   langgerman       = {{Deutsch}{Deutsch}},
   langgreek        = {{Griechisch}{Griechisch}},
+  langhungarian    = {{Ungarisch}{Ungarisch}},
   langitalian      = {{Italienisch}{Italienisch}},
   langjapanese     = {{Japanisch}{Japanisch}},
   langlatin        = {{Lateinisch}{Lateinisch}},
@@ -493,6 +494,7 @@
   fromgalician     = {{aus dem Galicischen}{aus dem Galicischen}},
   fromgerman       = {{aus dem Deutschen}{aus dem Deutschen}},
   fromgreek        = {{aus dem Griechischen}{aus dem Griechischen}},
+  fromhungarian    = {{aus dem Ungarischen}{aus dem Ungarischen}},
   fromitalian      = {{aus dem Italienischen}{aus dem Italienischen}},
   fromjapanese     = {{aus dem Japanischen}{aus dem Japanischen}},
   fromlatin        = {{aus dem Lateinischen}{aus dem Lateinischen}},
@@ -532,7 +534,7 @@
   beforecommonera  = {{vor unserer Zeitrechnung}{v\adddotspace u\adddotspace Z\adddot}},
   annodomini       = {{n\adddotspace Chr\adddot}{n\adddotspace Chr\adddot}},
   beforechrist     = {{v\adddotspace Chr\adddot}{v\adddotspace Chr\adddot}},
-  circa            = {{circa}{ca.}},
+  circa            = {{circa}{ca\adddot}},
   spring           = {{Fr\"uhling}{Fr\adddot}},
   summer           = {{Sommer}{So\adddot}},
   autumn           = {{Herbst}{He\adddot}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/greek.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -93,7 +93,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -484,6 +484,7 @@
   langgalician     = {{Γαλικιανή}{Γαλικιανή}},
   langgerman       = {{Γερμανικά}{Γερμανικά}},
   langgreek        = {{Ελληνικά}{Ελληνικά}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{Ιταλικά}{Ιταλικά}},
   langlatin        = {{Λατινικά}{Λατινικά}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -510,6 +511,7 @@
   fromgalician     = {{από τα Γαλικιανή}{από τα Γαλικιανή}},
   fromgerman       = {{από τα Γερμανικά}{από τα Γερμανικά}},
   fromgreek        = {{από τα Ελληνικά}{από τα Ελληνικά}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{από τα Ιταλικά}{από τα Ιταλικά}},
   fromlatin        = {{από τα Λατινικά}{από τα Λατινικά}},
 % fromlatvian      = {{}{}},% FIXME: missing

Added: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/hungarian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/hungarian.lbx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/hungarian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -0,0 +1,7 @@
+\ProvidesFile{hungarian.lbx}
+[\abx at lbxid]
+
+\InheritBibliographyExtras{magyar}
+\InheritBibliographyStrings{magyar}
+
+\endinput

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/icelandic.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -71,7 +71,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -407,6 +407,7 @@
   langgalician     = {{galis\'iska}{galis\'iska}},
   langgerman       = {{\th\'yska}{\th\'yska}},
   langgreek        = {{gr\'{\i}ska}{gr\'{\i}ska}},
+  langhungarian    = {{ungverska}{ungverska}},
   langitalian      = {{\'{\i}talska}{\'{\i}talska}},
   langlatin        = {{lat\'{\i}na}{lat\'{\i}na}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -433,6 +434,7 @@
   fromgalician     = {{\'ur galis\'isku}{\'ur galis\'isku}},
   fromgerman       = {{\'ur \th\'ysku}{\'ur \th\'ysku}},
   fromgreek        = {{\'ur gr\'{\i}sku}{\'ur gr\'{\i}sku}},
+  fromhungarian    = {{\'ur ungversku}{\'ur ungversku}},
   fromitalian      = {{\'ur \'{\i}t\"olsku}{\'ur \'{\i}t\"olsku}},
   fromlatin        = {{\'ur lat\'{\i}nu}{\'ur lat\'{\i}nu}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/italian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -58,7 +58,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -390,6 +390,7 @@
   langgalician     = {{galiziano}{galiziano}},
   langgerman       = {{tedesco}{tedesco}},
   langgreek        = {{greco}{greco}},
+  langhungarian    = {{ungherese}{ungherese}},
   langitalian      = {{italiano}{italiano}},
   langlatin        = {{latino}{latino}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -416,6 +417,7 @@
   fromgalician     = {{dal galiziano}{dal galiziano}},
   fromgerman       = {{dal tedesco}{dal tedesco}},
   fromgreek        = {{dal greco}{dal greco}},
+  fromhungarian    = {{dall'ungherese}{dall'ungherese}},
   fromitalian      = {{dall'italiano}{dall'italiano}},
   fromlatin        = {{dal latino}{dal latino}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/latvian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/latvian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/latvian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -53,7 +53,7 @@
     \iffieldundef{#2}
       {}
       {\iftoggle{lbx at lv@datewhen}
-         {\lbx at ru@mkbibdatemonthwhen{\thefield{#2}}}
+         {\lbx at lv@mkbibdatemonthwhen{\thefield{#2}}}
          {\mkbibmonth{\thefield{#2}}}}}%
   \protected\def\mkbibdateshort#1#2#3{%
     \iffieldundef{#3}
@@ -84,7 +84,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -518,6 +518,7 @@
   langgalician     = {{galsie\v{s}u}{galsie\v{s}u}},
   langgerman       = {{v\={a}cu}{v\={a}cu}},
   langgreek        = {{grie\c{k}u}{grie\c{k}u}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{it\={a}\c{l}u}{it\={a}\c{l}u}},
   langjapanese     = {{jap\={a}\c{n}u}{jap\={a}\c{n}u}},
   langlatin        = {{lat\={\i}\c{n}u}{lat\={\i}\c{n}u}},
@@ -546,6 +547,7 @@
   fromgalician     = {{no galsie\v{s}u}{no galsie\v{s}u}},
   fromgerman       = {{no v\={a}cu}{no v\={a}cu}},
   fromgreek        = {{no grie\c{k}u}{no grie\c{k}u}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{no it\={a}\c{l}u}{no it\={a}\c{l}u}},
   fromjapanese     = {{no jap\={a}\c{n}u}{no jap\={a}\c{n}u}},
   fromlatin        = {{no lat\={\i}\c{n}u}{no lat\={\i}\c{n}u}},
@@ -600,7 +602,7 @@
   locdateyear      = {{gad\={a}}{g\adddot}},
 }
 
-\protected\gdef\lbx at ru@mkbibdatemonthwhen#1{%
+\protected\gdef\lbx at lv@mkbibdatemonthwhen#1{%
   \ifcase0#1\relax
     #1\BibliographyWarning{Month out of range}%
   \or\abx at bibmonth{locjanuary}%
@@ -623,11 +625,11 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
              {\iffieldsequal{#2month}{#2endmonth}
                 {\csuse{mkbibdate#1}{#2year}{}{#2day}}
                 {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
@@ -642,10 +644,10 @@
              {\bibdaterangesep
               \enddatecircaprint
               \iffieldundef{#2season}
-                {\iffieldsequal{#2year}{#2endyear}
+                {\ifdateyearsequal{#2}{#2end}
                   {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}
                   {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
-                {\iffieldsequal{#2year}{#2endyear}
+                {\ifdateyearsequal{#2}{#2end}
                    {\csuse{mkbibseasondate#1}{}{#2endseason}}
                    {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \enddateuncertainprint
@@ -656,11 +658,11 @@
   \begingroup
     \blx at metadateinfo{#2}%
     \iffieldundef{#2year}
-      {}
+      {\blx at nounit}
       {\printtext[#2date]{%
          \datecircaprint
          \iffieldundef{#2season}
-           {\iffieldsequal{#2year}{#2endyear}
+           {\ifdateyearsequal{#2}{#2end}
              {\iffieldsequal{#2month}{#2endmonth}
                 {\csuse{mkbibdate#1}{#2year}{}{#2day}}
                 {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
@@ -676,10 +678,10 @@
               {\bibdaterangesep
                \enddatecircaprint
                \iffieldundef{#2season}
-                 {\iffieldsequal{#2year}{#2endyear}
+                 {\ifdateyearsequal{#2}{#2end}
                    {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}
                    {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
-                 {\iffieldsequal{#2year}{#2endyear}
+                 {\ifdateyearsequal{#2}{#2end}
                    {\csuse{mkbibseasondate#1}{}{#2endseason}}
                    {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
                \printfield{extradate}%

Added: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/magyar.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/magyar.lbx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/magyar.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -0,0 +1,721 @@
+\ProvidesFile{magyar.lbx}
+[\abx at lbxid]
+
+\ifundef{\lbx at hu@loadinfo}
+  {\blx at warning@noline{%
+     Hungarian localisation module for biblatex loaded.\MessageBreak
+     This module changes more definitions than usual.\MessageBreak
+     Please refer to the documentation for hints and\MessageBreak
+     check the output, especially with non-standard\MessageBreak
+     styles or customisations to field formats.\MessageBreak
+     This warning can be disabled with\MessageBreak
+     '\string\BiblatexHungarianWarningOff'}%
+   \global\let\lbx at hu@loadinfo\@empty}
+  {}
+
+\DeclareRedundantLanguages{magyar}{magyar,hungarian}
+
+\DeclareBibliographyExtras{%
+  \DeclareCapitalPunctuation{.!?}%
+  \protected\def\bibrangedash{%
+    \textendash\penalty\hyphenpenalty}% breakable dash
+  \savecommand\bibdaterangesep
+  \protected\def\bibdaterangesep{\space\textendash\space}%
+  \let\finalandcomma=\empty
+  \let\finalandsemicolon=\empty
+  \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+  \protected\def\mkbibmascord{\mkbibordinal}%
+  \protected\def\mkbibfemord{\mkbibordinal}%
+  \protected\def\mkbibneutord{\mkbibordinal}%
+  \let\lbx at hu@dayrange\@secondoftwo
+  \protected\def\mkbibdatelong#1#2#3{%
+    \iffieldundef{#1}
+      {}
+      {\iffieldbibstring{#1}
+         {\bibstring{\thefield{#1}}}
+         {\dateeraprintpre{#1}%
+          \iffieldundef{#2}{\thefield{#1}}
+          {\mkbibordinal{\thefield{#1}}}}%
+       \iffieldundef{#2}{}{\nobreakspace}}%
+    \iffieldundef{#2}
+      {}
+      {\mkbibmonth{\thefield{#2}}%
+       \iffieldundef{#3}{}{\nobreakspace}}%
+    \iffieldundef{#3}
+      {}
+      {\lbx at hu@dayrange{\thefield{#3}}{\mkbibordinal{\thefield{#3}}}}%
+  }%
+  \protected\def\mkbibdateshort#1#2#3{%
+    \iffieldundef{#1}
+      {}
+      {\iffieldbibstring{#1}
+         {\bibstring{\thefield{#1}}}
+         {\dateeraprintpre{#1}%
+          \iffieldundef{#2}{\thefield{#1}}
+          {\mkbibordinal{\thefield{#1}}}}%
+       \iffieldundef{#2}{}{\nobreakspace}}%
+    \iffieldundef{#2}
+      {}
+      {\mkmonthzeros{\thefield{#2}}\adddot
+       \iffieldundef{#3}{}{\nobreakspace}}%
+    \iffieldundef{#3}
+      {}
+      {\mkdayzeros{\thefield{#3}}\lbx at hu@dayrange{}{\adddot}}%
+  }%
+  \let\mkbibseasondatelong\mkbibseasondateshort
+  \savecommand\mkdaterangecomp
+  \savecommand\mkdaterangecompextra
+  \savecommand\mkdaterangeterse
+  \savecommand\mkdaterangeterseextra
+  \protected\def\mkdaterangecomp{%
+    \lbx at hu@mkdaterangetrunc{long}}%
+  \protected\def\mkdaterangeterse{%
+    \lbx at hu@mkdaterangetrunc{short}}%
+  \protected\def\mkdaterangecompextra{%
+    \lbx at hu@mkdaterangetruncextra{long}}%
+  \protected\def\mkdaterangeterseextra{%
+    \lbx at hu@mkdaterangetruncextra{short}}%
+\expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+      \iffieldundef{#1}{}
+        {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+      \iffieldundef{#2}{}
+        {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+      \iffieldundef{#3}{}
+        {\printtext{\mktimezeros{\thefield{#3}}}}%
+      \setunit{}%
+      \iffieldundef{#4}{}
+        {\bibtimezonesep
+         \mkbibtimezone{\thefield{#4}}}}%
+  \csletcs{mkbibtime12h}{mkbibtime24h}%
+  \protected\def\mkbibseasondateshort#1#2{%
+    \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}%
+    \iffieldundef{#1}{}{\adddot\space}
+    \mkbibseason{\thefield{#2}}%
+  }%
+  \let\mkbibseasondatelong\mkbibseasondateshort
+  \savecommand\lbx at lfromlang
+  \savecommand\lbx at sfromlang
+  \def\lbx at lfromlang{%
+    \iflistundef{origlanguage}
+      {}
+      {\printlist[lfromoriglanguage]{origlanguage}\space}}%
+  \def\lbx at sfromlang{%
+    \iflistundef{origlanguage}
+      {}
+      {\printlist[sfromoriglanguage]{origlanguage}\space}}%
+  % Page numbers and ranges
+  % convenient shorthand for page range normalisation
+  \protected\def\lbx at hu@mkdottednormrange{\mknormrange*[\mkbibordinal]}%
+  % this redefines \mkpageprefix to put the page number as suffix
+  \savecommand\blx at mkpageprefix
+  \protected\long\def\blx at mkpageprefix#1[#2]#3{%
+  \blx at mkpageprefix@i[#2]{#3}%
+  \ifnumeral{#3}
+    {\ppspace\bibstring{#1}}
+    {\ifnumerals{#3}
+       {\ppspace\bibstring{#1s}}
+       {\def\pno{\bibstring{#1}}%
+        \def\ppno{\bibstring{#1s}}}}}%
+  % NOTE: a few field formats are redefined here, this overrides corresponding
+  % style and preamble definitions.
+  % If you want to overwrite the changes made here, use
+  % \DefineBibliographyExtras{magyar}{...}
+  % Do not forget to make these changes undone with
+  % \UndefineBibliographyExtras{magyar}{...}
+  % to avoid them spilling out later.
+  \savefieldformat{pages}%
+  \DeclareFieldFormat{pages}{%
+    \mkpageprefix[bookpagination][\lbx at hu@mkdottednormrange]{#1}}%
+  \savefieldformat{postnote}%
+  \DeclareFieldFormat{postnote}{%
+    \mkpageprefix[pagination][\lbx at hu@mkdottednormrange]{#1}}%
+  \savefieldformat{volcitepages}%
+  \DeclareFieldFormat{volcitepages}{%
+    \mkpageprefix[pagination][\lbx at hu@mkdottednormrange]{#1}}%
+  \savefieldformat{multipostnote}%
+  \DeclareFieldFormat{multipostnote}{%
+    \mkpageprefix[pagination][\lbx at hu@mkdottednormrange]{#1}}%
+  \savefieldformat{chapter}%
+  \DeclareFieldFormat{chapter}{%
+    \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+    \addnbspace
+    \bibstring{chapter}}%
+  \savefieldformat{volume}%
+  \DeclareFieldFormat{volume}{%
+    \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+    \addnbspace
+    \bibstring{volume}}%
+  \savefieldformat{part}%
+  \DeclareFieldFormat{part}{%
+    \addcomma\space% <- this is *really* bad, don't try this at home
+    % In general leading or trailing punctuation in field formats should be
+    % avoided and should instead be dealt with in the appropriate bibmacros.
+    % The part field is special because its standard definition is '.#1'.
+    % Additionally, \printfield{part} is called all over the place, so we
+    % can't simply redefine a macro here.
+    \ifnumerals{#1}{\mkbibordinal{#1}}{#1}%
+    \addnbspace
+    \bibstring{part}}%
+  \savefieldformat{version}%
+  \DeclareFieldFormat{version}{%
+    \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+    \addnbspace
+    \bibstring{version}}%
+}
+
+
+\UndeclareBibliographyExtras{%
+  \restorecommand\bibdaterangesep
+  \restorecommand\mkdaterangecomp
+  \restorecommand\mkdaterangecompextra
+  \restorecommand\mkdaterangeterse
+  \restorecommand\mkdaterangeterseextra
+  \restorecommand\lbx at lfromlang
+  \restorecommand\lbx at sfromlang
+  \restorecommand\mknormrange
+  \restorecommand\blx at mkpageprefix
+  \restorefieldformat{pages}%
+  \restorefieldformat{postnote}%
+  \restorefieldformat{volcitepages}%
+  \restorefieldformat{multipostnote}%
+  \restorefieldformat{chapter}%
+  \restorefieldformat{volume}%
+  \restorefieldformat{part}%
+  \restorefieldformat{version}%
+}
+
+\DeclareBibliographyStrings{%
+  bibliography     = {{Irodalomjegyz\'ek}{Irodalom}},
+  references       = {{Hivatkoz\'asok}{Hivatkoz\'asok}},
+  shorthands       = {{R\"ovid\'it\'esek jegyz\'eke}{R\"ovid\'it\'esek}},
+  editor           = {{szerkeszt\H{o}}{szerk\adddot}},
+  editors          = {{szerkeszt\H{o}k}{szerk\adddot}},
+  compiler         = {{\"ossze\'all\'it\'o}{\"ossze\'all\adddot}},
+  compilers        = {{\"ossze\'all\'it\'ok}{\"ossze\'all\adddot}},
+  redactor         = {{sajt\'o al\'a rendez\H{o}}{kiad\adddot}},
+  redactors        = {{sajt\'o al\'a rendez\H{o}k}{kiad\adddot}},
+  reviser          = {{korrektor}{korr\adddot}},
+  revisers         = {{korrektorok}{korr\adddot}},
+  founder          = {{alap\'it\'o}{alap\adddot}},
+  founders         = {{alap\'it\'ok}{alap\adddot}},
+  %continuator      = {{}{}},% FIXME missing
+  %continuators     = {{}{}},% FIXME missing
+  collaborator     = {{k\"ozrem\H{u}k\"od\H{o}}{km\adddot}},
+  collaborators    = {{k\"ozrem\H{u}k\"od\H{o}k}{km\adddot}},
+  translator       = {{ford\'it\'o}{ford\adddot}},
+  translators      = {{ford\'it\'ok}{ford\adddot}},
+  commentator      = {{komment\'ator}{komm\adddot}},
+  commentators     = {{komment\'atorok}{komm\adddot}},
+  annotator        = {{jegyzetek \'ir\'oja}{jegyz\adddot}},
+  annotators       = {{jegyzetek \'ir\'oi}{jegyz\adddot}},
+  commentary       = {{komment\'ar}{komm\adddot}},
+  annotations      = {{jegyzetek}{jegyz\adddot}},
+  introduction     = {{bevezet\'es}{bev\adddot}},
+  foreword         = {{el\H{o}sz\'o}{el\H{o}sz\'o}},
+  afterword        = {{ut\'osz\'o}{ut\'osz\'o}},
+  editortr         = {{szerkeszt\H{o} \'es ford\'it\'o}%
+                      {szerk\adddotspace \'es ford\adddot}},
+  editorstr        = {{szerkeszt\H{o}k \'es ford\'it\'ok}%
+                      {szerk\adddotspace \'es ford\adddot}},,
+  editorco         = {{szerkeszt\H{o} \'es komment\'ar}%
+                      {szerk\adddotspace \'es komm\adddot}},
+  editorsco        = {{szerkeszt\H{o} \'es komment\'ar}%
+                      {szerk\adddotspace \'es komm\adddot}},
+  editoran         = {{szerkeszt\H{o} \'es jegyzet}%
+                      {szerk\adddotspace \'es jegyz\adddot}},
+  editorsan        = {{szerkeszt\H{o} \'es jegyzet}%
+                      {szerk\adddotspace \'es jegyz\adddot}},
+  editorin         = {{szerkeszt\H{o} \'es bevezet\H{o}}%
+                      {szerk\adddotspace \'es bev\adddot}},
+  editorsin        = {{szerkeszt\H{o}k \'es bevezet\H{o}}%
+                      {szerk\adddotspace \'es bev\adddot}},
+  editorfo         = {{szerkeszt\H{o} \'es el\H{o}sz\'o}%
+                      {szerk\adddotspace \'es el\H{o}sz\'o}},
+  editorsfo        = {{szerkeszt\H{o}k \'es el\H{o}sz\'o}%
+                      {szerk\adddotspace \'es el\H{o}sz\'o}},
+  editoraf         = {{szerkeszt\H{o} \'es ut\'osz\'o}
+                      {szerk\adddotspace \'es ut\'osz\'o}},
+  editorsaf        = {{szerkeszt\H{o}k \'es ut\'osz\'o}%
+                      {szerk\adddotspace \'es ut\'osz\'o}},
+  editortrco       = {{szerkeszt\H{o}, ford\'it\'o \'es komment\'ar}%
+                      {szerk\adddot, ford\adddotspace \'es komm\adddot}},
+  editorstrco      = {{szerkeszt\H{o}, ford\'it\'o \'es komment\'ar}%
+                      {szerk\adddot, ford\adddotspace \'es komm\adddot}},
+  editortran       = {{szerkeszt\H{o}, ford\'it\'o \'es jegyzet}%
+                      {szerk\adddot, ford\adddotspace \'es jegyz\adddot}},
+  editorstran      = {{szerkeszt\H{o}, ford\'it\'o \'es jegyzet}%
+                      {szerk\adddot, ford\adddotspace \'es jegyz\adddot}},
+  editortrin       = {{szerkeszt\H{o}, ford\'it\'o \'es bevezet\H{o}}%
+                      {szerk\adddot, ford\adddotspace \'es bev\adddot}},
+  editorstrin      = {{szerkeszt\H{o}, ford\'it\'o \'es bevezet\H{o}}%
+                      {szerk\adddot, ford\adddotspace \'es bev\adddot}},
+  editortrfo       = {{szerkeszt\H{o}, ford\'it\'o \'es el\H{o}sz\'o}%
+                      {szerk\adddot, ford\adddotspace \'es el\H{o}sz\'o}},
+  editorstrfo      = {{szerkeszt\H{o}, ford\'it\'o \'es el\H{o}sz\'o}%
+                      {szerk\adddot, ford\adddotspace \'es el\H{o}sz\'o}},
+  editortraf       = {{szerkeszt\H{o}, ford\'it\'o \'es ut\'osz\'o}%
+                      {szerk\adddot, ford\adddotspace \'es ut\'osz\'o}},
+  editorstraf      = {{szerkeszt\H{o}, ford\'it\'o \'es ut\'osz\'o}%
+                      {szerk\adddot, ford\adddotspace \'es ut\'osz\'o}},
+  editorcoin       = {{szerkeszt\H{o}, komment\'ar \'es bevezet\H{o}}%
+                      {szerk\adddot, komm\adddotspace \'es bev\adddot}},
+  editorscoin      = {{szerkeszt\H{o}, komment\'ar \'es bevezet\H{o}}%
+                      {szerk\adddot, komm\adddotspace \'es bev\adddot}},
+  editorcofo       = {{szerkeszt\H{o}, komment\'ar \'es el\H{o}sz\'o}%
+                      {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  editorscofo      = {{szerkeszt\H{o}, komment\'ar \'es el\H{o}sz\'o}%
+                      {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  editorcoaf       = {{szerkeszt\H{o}, komment\'ar \'es ut\'osz\'o}%
+                      {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  editorscoaf      = {{szerkeszt\H{o}, komment\'ar \'es ut\'osz\'o}%
+                      {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  editoranin       = {{szerkeszt\H{o}, jegyzetek \'es bevezet\H{o}}%
+                      {szerk\adddot, jegyz\adddotspace \'es bev\adddot}},
+  editorsanin      = {{szerkeszt\H{o}, jegyzetek \'es bevezet\H{o}}%
+                      {szerk\adddot, jegyz\adddotspace \'es bev\adddot}},
+  editoranfo       = {{szerkeszt\H{o}, jegyzetek \'es el\H{o}sz\'o}%
+                      {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  editorsanfo      = {{szerkeszt\H{o}, jegyzetek \'es el\H{o}sz\'o}%
+                      {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  editoranaf       = {{szerkeszt\H{o}, jegyzetek \'es ut\'osz\'o}%
+                      {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  editorsanaf      = {{szerkeszt\H{o}, jegyzetek \'es ut\'osz\'o}%
+                      {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  editortrcoin     = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+                      {szerk\adddot, ford\adddot, komm\adddotspace \'es bev\adddot}},
+  editorstrcoin    = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+                      {szerk\adddot, ford\adddot, komm\adddotspace \'es bev\adddot}},
+  editortrcofo     = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+                      {szerk\adddot, ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  editorstrcofo    = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+                      {szerk\adddot, ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  editortrcoaf     = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+                      {szerk\adddot, ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  editorstrcoaf    = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+                      {szerk\adddot, ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  editortranin     = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+                      {szerk\adddot, ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+  editorstranin    = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+                      {szerk\adddot, ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+  editortranfo     = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+                      {szerk\adddot, ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  editorstranfo    = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+                      {szerk\adddot, ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  editortranaf     = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+                      {szerk\adddot, ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  editorstranaf    = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+                      {szerk\adddot, ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  translatorco     = {{ford\'it\'o \'es komment\'ar}%
+                      {ford\adddotspace \'es komm\adddot}},
+  translatorsco    = {{ford\'it\'o \'es komment\'ar}%
+                      {ford\adddotspace \'es komm\adddot}},
+  translatoran     = {{ford\'it\'o \'es jegyzetek}%
+                      {ford\adddotspace \'es jegyz\adddot}},
+  translatorsan    = {{ford\'it\'o \'es jegyzetek}%
+                      {ford\adddotspace \'es jegyz\adddot}},
+  translatorin     = {{ford\'it\'o \'es bevezet\H{o}}%
+                      {ford\adddotspace \'es bev\adddot}},
+  translatorsin    = {{ford\'it\'o \'es bevezet\H{o}}%
+                      {ford\adddotspace \'es bev\adddot}},
+  translatorfo     = {{ford\'it\'o \'es el\H{o}sz\'o}%
+                      {ford\adddotspace \'es el\H{o}sz\'o}},
+  translatorsfo    = {{ford\'it\'o \'es el\H{o}sz\'o}%
+                      {ford\adddotspace \'es el\H{o}sz\'o}},
+  translatoraf     = {{ford\'it\'o \'es ut\'osz\'o}%
+                      {ford\adddotspace \'es ut\'osz\'o}},
+  translatorsaf    = {{ford\'it\'o \'es ut\'osz\'o}%
+                      {ford\adddotspace \'es ut\'osz\'o}},
+  translatorcoin   = {{ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+                      {ford\adddot, komm\adddotspace \'es bev\adddot}},
+  translatorscoin  = {{ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+                      {ford\adddot, komm\adddotspace \'es bev\adddot}},
+  translatorcofo   = {{ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+                      {ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  translatorscofo  = {{ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+                      {ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  translatorcoaf   = {{ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+                      {ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  translatorscoaf  = {{ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+                      {ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  translatoranin   = {{ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+                      {ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+  translatorsanin  = {{ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+                      {ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+  translatoranfo   = {{ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+                      {ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  translatorsanfo  = {{ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+                      {ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  translatoranaf   = {{ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+                      {ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  translatorsanaf  = {{ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+                      {ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  organizer        = {{szervez\H{o}}{szerv\adddot}},
+  organizers       = {{szervez\H{o}k}{szerv\adddot}},
+  byorganizer      = {{szervezte}{szerv\adddot}},
+  byauthor         = {{\'irta}{\'irta}},
+  byeditor         = {{szerkesztette}{szerk\adddot}},
+  bycompiler       = {{\"ossze\'all\'itotta}{\"ossze\'all\adddot}},
+  byredactor       = {{sajt\'o al\'a rendezte}{kiad\adddot}},
+  byreviser        = {{jav\'itotta}{jav\adddot}},
+  byreviewer       = {{b\'ir\'alta}{b\'ir\adddot}},
+  byfounder        = {{alap\'itotta}{alap\adddot}},
+% bycontinuator    = {{}{}},% FIXME missing
+  bycollaborator   = {{k\"ozrem\H{u}k\"od\"ott}{km\adddot}},
+  bytranslator     = {{\lbx at lfromlang ford\'itotta}{\lbx at sfromlang ford\adddot}},
+  bycommentator    = {{komment\'alta}{komm\adddot}},
+  byannotator      = {{jegyzetekkel ell\'atta}{jegyz\adddot}},
+  withcommentator  = {{komment\'arral ell\'atta}{komm\adddot}},
+  withannotator    = {{jegyzetekkel ell\'atta}{jegyz\adddot}},
+  withintroduction = {{bevezet\H{o}vel ell\'atta}{bev\adddot}},
+  withforeword     = {{el\H{o}sz\'oval ell\'atta}{el\H{o}sz\'o:}},
+  withafterword    = {{ut\'osz\'oval ell\'atta}{ut\'osz\'o:}},
+  byeditortr       = {{szerkesztette \'es \lbx at lfromlang ford\'itotta}%
+                      {szerk\adddotspace \'es \lbx at sfromlang ford\adddot}},
+  byeditorco       = {{szerkesztette \'es komment\'alta}%
+                      {szerk\adddotspace \'es komm\adddot}},
+  byeditoran       = {{szerkesztette \'es jegyzetekkel ell\'atta}%
+                      {szerk\adddotspace \'es jegyz\adddot}},
+  byeditorin       = {{szerkesztette \'es bevezet\H{o}vel ell\'atta}%
+                      {szerk\adddotspace \'es jegyz\adddot}},
+  byeditorfo       = {{szerkesztette \'es el\H{o}sz\'oval ell\'atta}%
+                      {szerk\adddotspace \'es el\H{o}sz\'o}},
+  byeditoraf       = {{szerkesztette \'es ut\'osz\'oval ell\'atta}%
+                      {szerk\adddotspace \'es ut\'osz\'o}},
+  byeditortrco     = {{szerkesztette, \lbx at lfromlang ford\'itotta \'es komment\'alta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddotspace \'es komm\adddot}},
+  byeditortran     = {{szerkesztette, \lbx at lfromlang ford\'itotta \'es jegyzetekkel ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddotspace \'es jegyz\adddot}},
+  byeditortrin     = {{szerkesztette, \lbx at lfromlang ford\'itotta \'es bevezet\H{o}vel ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddotspace \'es bev\adddot}},
+  byeditortrfo     = {{szerkesztette, \lbx at lfromlang ford\'itotta \'es el\H{o}sz\'oval ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddotspace \'es el\H{o}sz\'o}},
+  byeditortraf     = {{szerkesztette, \lbx at lfromlang ford\'itotta \'es ut\'osz\'oval ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddotspace \'es ut\'osz\'o}},
+  byeditorcoin     = {{szerkesztette, komment\'alta \'es bevezet\H{o}vel ell\'atta}%
+                      {szerk\adddot, komm\adddotspace \'es bev\adddot}},
+  byeditorcofo     = {{szerkesztette, komment\'alta \'es el\H{o}sz\'oval ell\'atta}%
+                      {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  byeditorcoaf     = {{szerkesztette, komment\'alta \'es ut\'osz\'oval ell\'atta}%
+                      {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  byeditoranin     = {{szerkesztette, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}%
+                      {szerk\adddot, jegyz\adddotspace \'es bev\adddot}},
+  byeditoranfo     = {{szerkesztette, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}%
+                      {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  byeditoranaf     = {{szerkesztette, jegyzetekkel \'es ut\'osz\'oval ell\'atta}%
+                      {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  byeditortrcoin   = {{szerkesztette, \lbx at lfromlang ford\'itotta, komment\'alta \'es bevezet\H{o}vel ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddot, komm\adddotspace \'es bev\adddot}},
+  byeditortrcofo   = {{szerkesztette, \lbx at lfromlang ford\'itotta, komment\'alta \'es el\H{o}sz\'oval ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  byeditortrcoaf   = {{szerkesztette, \lbx at lfromlang ford\'itotta, komment\'alta \'es ut\'osz\'oval ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  byeditortranin   = {{szerkesztette, \lbx at lfromlang ford\'itotta, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+  byeditortranfo   = {{szerkesztette, \lbx at lfromlang ford\'itotta, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  byeditortranaf   = {{szerkesztette, \lbx at lfromlang ford\'itotta, jegyzetekkel \'es ut\'osz\'oval ell\'atta}%
+                      {szerk\adddot, \lbx at sfromlang ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  bytranslatorco   = {{\lbx at lfromlang ford\'itotta \'es komment\'alta}%
+                      {\lbx at sfromlang ford\adddotspace \'es komm\adddot}},
+  bytranslatoran   = {{\lbx at lfromlang ford\'itotta \'es jegyzetekkel ell\'atta}%
+                      {\lbx at sfromlang ford\adddotspace \'es jegyz\adddot}},
+  bytranslatorin   = {{\lbx at lfromlang ford\'itotta \'es bevezet\H{o}vel ell\'atta}%
+                      {\lbx at sfromlang ford\adddotspace \'es bev\adddot}},
+  bytranslatorfo   = {{\lbx at lfromlang ford\'itotta \'es el\H{o}sz\'oval ell\'atta}%
+                      {\lbx at sfromlang ford\adddotspace \'es el\H{o}sz\'o}},
+  bytranslatoraf   = {{\lbx at lfromlang ford\'itotta \'es ut\'osz\'oval ell\'atta}%
+                      {\lbx at sfromlang ford\adddotspace \'es ut\'osz\'o}},
+  bytranslatorcoin = {{\lbx at lfromlang ford\'itotta, komment\'alta \'es bevezet\H{o}vel ell\'atta}%
+                      {\lbx at sfromlang ford\adddot, komm\adddotspace \'es bev\adddot}},
+  bytranslatorcofo = {{\lbx at lfromlang ford\'itotta, komment\'alta \'es el\H{o}sz\'oval ell\'atta}%
+                      {\lbx at sfromlang ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+  bytranslatorcoaf = {{\lbx at lfromlang ford\'itotta, komment\'alta \'es ut\'osz\'oval ell\'atta}%
+                      {\lbx at sfromlang ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+  bytranslatoranin = {{\lbx at lfromlang ford\'itotta, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}%
+                      {\lbx at sfromlang ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+  bytranslatoranfo = {{\lbx at lfromlang ford\'itotta, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}%
+                      {\lbx at sfromlang ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+  bytranslatoranaf = {{\lbx at lfromlang ford\'itotta, jegyzetekkel \'es ut\'osz\'oval ell\'atta}%
+                      {\lbx at sfromlang ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+  and              = {{\'es}{\'es}},
+  andothers        = {{\'es m\'asok}{\'es tsai\adddot}},
+  andmore          = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+  volume           = {{k\"otet}{k\"ot\adddot}},
+  volumes          = {{k\"otetek}{k\"ot\adddot}},
+  involumes        = {{}{}},
+  jourvol          = {{\'evfolyam}{\'evf\adddot}},
+  jourser          = {{sorozat}{sor\adddot}},
+  book             = {{k\"onyv}{k\"onyv}},
+  part             = {{r\'esz}{r\'esz}},
+  issue            = {{sz\'am}{sz\adddot}},
+  newseries        = {{\'uj sorozat}{\'uj sor\adddot}},
+  oldseries        = {{r\'egi sorozat}{r\'egi sor\adddot}},
+  edition          = {{kiad\'as}{kiad\adddot}},
+  reprint          = {{ut\'annyom\'as}{ut\'anny\adddot}},
+  reprintof        = {{ut\'annyom\'asa}{ut\'anny\adddot}},% FIXME swap word order
+  reprintas        = {{ut\'annyom\'as c\'ime}{ut\'anny\adddotspace c\'ime}},
+% reprintfrom      = {{}{}},% FIXME need example
+  translationof    = {{ford\'it\'asa}{ford\adddot}},% FIXME swap word order
+  translationas    = {{ford\'it\'as c\'ime}{ford\adddotspace c\'ime}},
+% translationfrom  = {{}{}},% FIXME need example
+  reviewof         = {{recenzi\'oja}{rec\adddot}},% FIXME swap word order
+  origpubas        = {{eredeti c\'ime}{ered\adddotspace c\'im}},
+  origpubin        = {{eredeti kiad\'as}{ered\adddotspace kiad\adddotspace}},
+% astitle          = {{}{}},% FIXME need example
+% bypublisher      = {{\addcomma}{\addcomma}},% FIXME: this is a cludge that can not be guaranteed to work in most situations, so it stays commented out
+  nodate           = {{\'ev n\'elk\"ul}{\'e\adddotspace n\adddot}},
+  page             = {{oldal}{old\adddot}},
+  pages            = {{oldal}{old\adddot}},
+  column           = {{has\'ab}{has\adddot}},
+  columns          = {{has\'ab}{has\adddot}},
+  line             = {{sor}{sor}},
+  lines            = {{sor}{sor}},
+  verse            = {{versszak}{vsz\adddot}},
+  verses           = {{versszak}{vsz\adddot}},
+  section          = {{paragrafus}{\S}},
+  sections         = {{paragrafus}{\S\S}},
+  paragraph        = {{bekezd\'es}{bek\adddot}},
+  paragraphs       = {{bekezd\'es}{bek\adddot}},
+  pagetotal        = {{oldal}{old\adddot}},
+  pagetotals       = {{oldal}{old\adddot}},
+  columntotal      = {{has\'ab}{has\adddot}},
+  columntotals     = {{has\'ab}{has\adddot}},
+  linetotal        = {{sor}{sor}},
+  linetotals       = {{sor}{sor}},
+  versetotal       = {{versszak}{vsz\adddot}},
+  versetotals      = {{versszak}{vsz\adddot}},
+  sectiontotal     = {{paragrafus}{\S}},
+  sectiontotals    = {{paragrafus}{\S}},
+  paragraphtotal   = {{bekezd\'es}{bek\adddot}},
+  paragraphtotals  = {{bekezd\'es}{bek\adddot}},
+  in               = {{}{}},
+% inseries         = {{}{}},% FIXME need example
+% ofseries         = {{}{}},% FIXME need example
+  number           = {{sz\'am}{sz\adddot}},
+  chapter          = {{fejezet}{fej\adddot}},
+  bathesis         = {{szakdolgozat}{szakd\adddot}},
+  mathesis         = {{diplomaterv}{dipl\adddot}},
+  phdthesis        = {{disszert\'aci\'o}{dissz\adddot}},
+  candthesis       = {{disszert\'aci\'o}{dissz\adddot}},
+  resreport        = {{kutat\'asi jelent\'es}{kut\adddotspace jel\adddot}},
+  techreport       = {{technikai jelent\'es}{techn\adddotspace jel\adddot}},
+  software         = {{szoftver}{szoftver}},
+  datacd           = {{CD-ROM}{CD-ROM}},
+  audiocd          = {{audio CD}{CD}},
+  version          = {{verzi\'o}{verzi\'o}},
+  url              = {{c\'im}{c\'im}},
+  urlfrom          = {{el\'erhet\H{o}}{el\'erh\adddot}},
+  urlseen          = {{el\'er\'es d\'atuma}{el\'er\'es d\'atuma}},
+  inpreparation    = {{el\H{o}k\'esz\'it\'es alatt}{el\H{o}k\adddotspace alatt}},
+  submitted        = {{bek\"uld\"ott}{bek\"uld\"ott}},
+  forthcoming      = {{elfogadott}{elfogadott}},
+  inpress          = {{nyomd\'aban}{nyomd\adddot}},
+  prepublished     = {{preprint}{preprint}},
+  citedas          = {{tov\'abbiakban}{tov\'abbiakban}},
+  thiscite         = {{itt}{itt}},
+  seenote          = {{l\'asd}{ld\adddot}},
+  quotedin         = {{id\'ezte}{id\'ezte}},
+  idem             = {{ugyan\H{o}}{u\H{o}}},
+  idemsf           = {{ugyan\H{o}}{u\H{o}}},
+  idemsm           = {{ugyan\H{o}}{u\H{o}}},
+  idemsn           = {{ugyan\H{o}}{u\H{o}}},
+  idempf           = {{ugyan\H{o}k}{u\H{o}k}},
+  idempm           = {{ugyan\H{o}k}{u\H{o}k}},
+  idempn           = {{ugyan\H{o}k}{u\H{o}k}},
+  idempp           = {{ugyan\H{o}k}{u\H{o}k}},
+  ibidem           = {{ugyanitt}{uitt}},
+  opcit            = {{id\'ezett m\H{u}}{i\adddotspace m\adddot}},
+  loccit           = {{id\'ezett hely}{i\adddotspace h\adddot}},
+  confer           = {{v\"o\adddot}{v\"o\adddot}},
+  sequens          = {{sk\adddot}{sk\adddot}},
+  sequentes        = {{skk\adddot}{skk\adddot}},
+  passim           = {{passim}{pass\adddot}},
+  see              = {{l\'asd}{ld\adddot}},
+  seealso          = {{l\'asd m\'eg}{ld\adddotspace m\'eg}},
+  backrefpage      = {{hivatkoz\'asi oldal}{hiv\adddotspace old\adddot}},
+  backrefpages     = {{hivatkoz\'asi oldalak}{hiv\adddotspace old\adddot}},
+  january          = {{janu\'ar}{jan\adddot}},
+  february         = {{febru\'ar}{febr\adddot}},
+  march            = {{m\'arcius}{m\'arc\adddot}},
+  april            = {{\'aprilis}{\'apr\adddot}},
+  may              = {{m\'ajus}{m\'aj\adddot}},
+  june             = {{j\'unius}{j\'un\adddot}},
+  july             = {{j\'ulius}{j\'ul\adddot}},
+  august           = {{augusztus}{aug\adddot}},
+  september        = {{szeptember}{szept\adddot}},
+  october          = {{okt\'ober}{okt\adddot}},
+  november         = {{november}{nov\adddot}},
+  december         = {{december}{dec\adddot}},
+  langamerican     = {{angol}{angol}},
+  langbrazilian    = {{brazil}{brazil}},
+  langbulgarian    = {{bolg\'ar}{bolg\'ar}},
+  langcatalan      = {{katal\'an}{katal\'an}},
+  langcroatian     = {{horv\'at}{horv\'at}},
+  langczech        = {{cseh}{cseh}},
+  langdanish       = {{d\'an}{d\'an}},
+  langdutch        = {{holland}{holland}},
+  langenglish      = {{angol}{angol}},
+  langestonian     = {{\'eszt}{\'eszt}},
+  langfinnish      = {{finn}{finn}},
+  langfrench       = {{francia}{francia}},
+  langgalician     = {{gal\'iciai}{gal\'iciai}},
+  langgerman       = {{n\'emet}{n\'emet}},
+  langgreek        = {{g\"or\"og}{g\"or\"og}},
+  langhungarian    = {{magyar}{magyar}},
+  langitalian      = {{olasz}{olasz}},
+  langjapanese     = {{jap\'an}{jap\'an}},
+  langlatin        = {{latin}{latin}},
+  langlatvian      = {{lett}{lett}},
+  langnorwegian    = {{norv\'eg}{norv\'eg}},
+  langpolish       = {{lengyel}{lengyel}},
+  langportuguese   = {{portug\'al}{portug\'al}},
+  langrussian      = {{orosz}{orosz}},
+  langslovak       = {{szlov\'ak}{szlov\'ak}},
+  langslovene      = {{szlov\'en}{szlov\'en}},
+  langspanish      = {{spanyol}{spanyol}},
+  langswedish      = {{sv\'ed}{sv\'ed}},
+  langukrainian    = {{ukr\'an}{ukr\'an}},
+  fromamerican     = {{angolb\'ol}{angolb\'ol}},
+  frombrazilian    = {{brazilb\'ol}{brazilb\'ol}},
+  frombulgarian    = {{brazilb\'ol}{brazilb\'ol}},
+  fromcatalan      = {{katal\'anb\'ol}{katal\'anb\'ol}},
+  fromcroatian     = {{horv\'atb\'ol}{horv\'atb\'ol}},
+  fromczech        = {{csehb\H{o}l}{csehb\H{o}l}},
+  fromdanish       = {{d\'anb\'ol}{d\'anb\'ol}},
+  fromdutch        = {{hollandb\'ol}{hollandb\'ol}},
+  fromenglish      = {{angolb\'ol}{angolb\'ol}},
+  fromestonian     = {{\'esztb\H{o}l}{\'esztb\H{o}l}},
+  fromfinnish      = {{finnb\H{o}l}{finnb\H{o}l}},
+  fromfrench       = {{franci\'ab\'ol}{franci\'ab\'ol}},
+  fromgalician     = {{gal\'iciaib\'ol}{gal\'iciaib\'ol}},
+  fromgerman       = {{n\'emetb\H{o}l}{n\'emetb\H{o}l}},
+  fromgreek        = {{g\"or\"ogb\H{o}l}{g\"or\"ogb\H{o}l}},
+  fromhungarian    = {{magyarb\'ol}{magyarb\'ol}},
+  fromitalian      = {{olaszb\'ol}{olaszb\'ol}},
+  fromjapanese     = {{jap\'anb\'ol}{jap\'anb\'ol}},
+  fromlatin        = {{latinb\'ol}{latinb\'ol}},
+  fromlatvian      = {{lettb\H{o}l}{lettb\H{o}l}},
+  fromnorwegian    = {{norv\'egb\'ol}{norv\'egb\'ol}},
+  frompolish       = {{lengyelb\H{o}l}{lengyelb\H{o}l}},
+  fromportuguese   = {{portug\'alb\'ol}{portug\'alb\'ol}},
+  fromrussian      = {{oroszb\'ol}{oroszb\'ol}},
+  fromslovak       = {{szlov\'akb\'ol}{szlov\'akb\'ol}},
+  fromslovene      = {{szlov\'enb\'ol}{szlov\'enb\'ol}},
+  fromspanish      = {{spanyolb\'ol}{spanyolb\'ol}},
+  fromswedish      = {{sv\'edb\H{o}l}{sv\'edb\H{o}l}},
+  fromukrainian    = {{ukr\'anb\'ol}{ukr\'anb\'ol}},
+  countryde        = {{N\'emetorsz\'ag}{DE}},
+  countryep        = {{Eur\'opai Uni\'o}{EP}},
+  countryeu        = {{Eur\'opai Uni\'o}{EU}},
+  countryfr        = {{Franciaorsz\'ag}{FR}},
+  countryuk        = {{Egyes\"ult Kir\'alys\'ag}{GB}},
+  countryus        = {{Amerikai Egyes\"ult \'Allamok}{US}},
+  patent           = {{szabadalom}{szabadalom}},
+  patentde         = {{n\'emet szabadalom}{n\'em\adddotspace szabadalom}},
+  patenteu         = {{eur\'opai szabadalom}{eur\adddotspace szabadalom}},
+  patentfr         = {{francia szabadalom}{fr\adddotspace szabadalom}},
+  patentuk         = {{brit szabadalom}{brit szabadalom}},
+  patentus         = {{amerikai szabadalom}{USA szabadalom}},
+  patreq           = {{szabadalmi k\'erelem}{szabad\adddotspace k\'erelem}},
+  patreqde         = {{n\'emet szabadalmi k\'erelem}{n\'em\adddotspace szabad\adddotspace k\'erelem}},
+  patreqeu         = {{eur\'opai szabadalmi k\'erelem}{eur\adddotspace szabad\adddotspace k\'erelem}},
+  patreqfr         = {{francia szabadalmi k\'erelem}{fr\adddotspace szabad\adddotspace k\'erelem}},
+  patrequk         = {{brit szabadalmi k\'erelem}{brit szabad\adddotspace k\'erelem}},
+  patrequs         = {{amerikai szabadalmi k\'erelem}{amerikai szabad\adddotspace k\'erelem}},
+  file             = {{f\'ajl}{f\'ajl}},
+  library          = {{k\"onyvt\'ar}{k\"onyvt\'ar}},
+  abstract         = {{kivonat}{kivonat}},
+  annotation       = {{jegyzet}{jegyzet}},
+  commonera        = {{id\H{o}sz\'am\'it\'asunk szerint}{i\adddotspace sz\adddot}},
+  beforecommonera  = {{id\H{o}sz\'am\'it\'asunk el\H{o}tt}{i\adddotspace e\adddot}},
+  annodomini       = {{Krisztus ut\'an}{Kr\adddotspace u\adddot}},
+  beforechrist     = {{Krisztus el\H{o}tt}{Kr\adddotspace e\adddot}},
+  circa            = {{k\"or\"ulbel\"ul}{kb\adddot}},
+  spring           = {{tavasz}{tavasz}},
+  summer           = {{ny\'ar}{ny\'ar}},
+  autumn           = {{\H{o}sz}{\H{o}sz}},
+  winter           = {{t\'el}{t\'el}},
+  am               = {{d\'elel\H{o}tt}{de\adddot}},
+  pm               = {{d\'elut\'an}{du\adddot}},
+}
+
+\protected\gdef\lbx at hu@dayrange at i#1{%
+  \ifboolexpr{not test {\iffieldundef{#1endyear}}
+              and test {\iffieldsequal{#1year}{#1endyear}}
+              and test {\iffieldsequal{#1month}{#1endmonth}}
+              and (test {\iffieldundef{#1hour}}
+                   or not togl {blx@#1dateusetime})}}
+
+\protected\gdef\lbx at hu@mkdaterangetrunc#1#2{%
+  \begingroup
+    \blx at metadateinfo{#2}%
+    \edef\lbx at hu@dayrange{\lbx at hu@dayrange at i{#2}}%
+    \iffieldundef{#2year}
+      {}
+      {\printtext[#2date]{%
+         \datecircaprint
+         \iffieldundef{#2season}
+           {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+            \blx at printtime{#2}{}}%
+           {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+         \dateeraprint{#2year}%
+         \dateuncertainprint
+         \iffieldundef{#2endyear}
+           {}
+           {\iffieldequalstr{#2endyear}{}
+              {\mbox{\bibdaterangesep}}
+              {\lbx at hu@dayrange{\bibrangedash}{\bibdaterangesep}%
+               \let\lbx at hu@dayrange\@secondoftwo
+               \enddatecircaprint
+               \iffieldundef{#2season}
+                 {\iffieldsequal{#2year}{#2endyear}
+                   {\iffieldsequal{#2month}{#2endmonth}
+                      {\csuse{mkbibdate#1}{}{}{#2endday}}
+                      {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}}
+                   {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}%
+                  \blx at printtime{#2}{end}}
+                 {\iffieldsequal{#2year}{#2endyear}
+                    {\csuse{mkbibseasondate#1}{}{#2endseason}}
+                    {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+               \enddateuncertainprint
+               \dateeraprint{#2endyear}}}}}%
+  \endgroup}
+
+\protected\gdef\lbx at hu@mkdaterangetruncextra#1#2{%
+  \begingroup
+    \blx at metadateinfo{#2}%
+    \edef\lbx at hu@dayrange{\lbx at hu@dayrange at i{#2}}%
+    \iffieldundef{#2year}
+      {}
+      {\printtext[#2date]{%
+         \datecircaprint
+         \iffieldundef{#2season}
+           {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+            \blx at printtime{#2}{}}%
+           {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+         \dateeraprint{#2year}%
+         \dateuncertainprint
+         \iffieldundef{#2endyear}
+           {\printfield{extradate}}
+           {\iffieldequalstr{#2endyear}{}
+              {\printfield{extradate}%
+               \mbox{\bibdaterangesep}}
+              {\lbx at hu@dayrange{\bibrangedash}{\bibdaterangesep}%
+               \let\lbx at hu@dayrange\@secondoftwo
+               \enddatecircaprint
+               \iffieldundef{#2season}
+                 {\iffieldsequal{#2year}{#2endyear}
+                   {\iffieldsequal{#2month}{#2endmonth}
+                      {\csuse{mkbibdate#1}{}{}{#2endday}}
+                      {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}}
+                   {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}%
+                  \blx at printtime{#2}{end}}
+                 {\iffieldsequal{#2year}{#2endyear}
+                    {\csuse{mkbibseasondate#1}{}{#2endseason}}
+                    {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+               \printfield{extradate}%
+               \enddateuncertainprint
+               \dateeraprint{#2endyear}}}}}%
+  \endgroup}
+
+\endinput

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/norsk.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/norsk.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/norsk.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -51,7 +51,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -446,6 +446,7 @@
   langgalician     = {{galisisk}{galisisk}},
   langgerman       = {{tysk}{tysk}},
   langgreek        = {{gresk}{gresk}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{italiensk}{italiensk}},
   langjapanese     = {{japansk}{japansk}},
   langlatin        = {{latin}{latin}},
@@ -474,6 +475,7 @@
   fromgalician     = {{fra galisisk}{fra galisisk}},
   fromgerman       = {{fra tysk}{fra tysk}},
   fromgreek        = {{fra gresk}{fra gresk}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{fra italiensk}{fra italiensk}},
   fromjapanese     = {{fra japansk}{fra japansk}},
   fromlatin        = {{fra latin}{fra latin}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/nynorsk.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -284,6 +284,7 @@
   fromgalician     = {{fr{\aa} galisisk}{fr{\aa} galisisk}},
   fromgerman       = {{fr{\aa} tysk}{fr{\aa} tysk}},
   fromgreek        = {{fr{\aa} gresk}{fr{\aa} gresk}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{fr{\aa} italiensk}{fr{\aa} italiensk}},
   fromjapanese     = {{fr{\aa} japansk}{fr{\aa} japansk}},
   fromlatin        = {{fr{\aa} latin}{fr{\aa} latin}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/polish.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -59,7 +59,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -473,6 +473,7 @@
   langgalician     = {{galicyjski}{galicyjski}},
   langgerman       = {{niemiecki}{niemiecki}},
   langgreek        = {{grecki}{grecki}},
+  langhungarian    = {{w\c{e}gierski}{w\c{e}gierski}},
   langitalian      = {{w\l oski}{w\l oski}},
   langlatin        = {{\l acina}{\l acina}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -499,6 +500,7 @@
   fromgalician     = {{z galicyjzkiego}{z gal\adddot}},
   fromgerman       = {{z niemieckiego}{z niem\adddot}},
   fromgreek        = {{z greckiego}{z grec\adddot}},
+  fromhungarian    = {{z w\c{e}gierskiego}{z w\c{e}gierskiego}},
   fromitalian      = {{z w\l oskiego}{z w\l os\adddot}},
   fromlatin        = {{z \l aciny}{z \l at\adddot}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/portuguese.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -58,7 +58,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -458,6 +458,7 @@
   langgalician     = {{galego}{galego}},
   langgerman       = {{alem\~ao}{alem\~ao}},
   langgreek        = {{grego}{grego}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{italiano}{italiano}},
   langjapanese     = {{japon\^es}{japon\^es}},
   langlatin        = {{latim}{latim}},
@@ -485,6 +486,7 @@
   fromgalician     = {{do galego}{do galego}},
   fromgerman       = {{do alem\~ao}{do alem\~ao}},
   fromgreek        = {{do grego}{do grego}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{do italiano}{do italiano}},
   fromjapanese     = {{do japon\^es}{do japon\^es}},
   fromlatin        = {{do latim}{do latim}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/russian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -85,7 +85,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -502,6 +502,7 @@
   langgalician     = {{галисийский}{гал\adddot}},
   langgerman       = {{немецкий}{нем\adddot}},
   langgreek        = {{греческий}{греч\adddot}},
+  langhungarian    = {{венгерский}{венг\adddot}},
   langitalian      = {{итальянский}{итал\adddot}},
   langjapanese     = {{японский}{яп\adddot}},
   langlatin        = {{латинский}{лат\adddot}},
@@ -530,6 +531,7 @@
   fromgalician     = {{c галисийского}{c\addabbrvspace гал\adddot}},
   fromgerman       = {{с немецкого}{с\addabbrvspace нем\adddot}},
   fromgreek        = {{с греческого}{с\addabbrvspace греч\adddot}},
+  fromhungarian    = {{с венгерского}{с\addabbrvspace венг\adddot}},
   fromitalian      = {{с итальянского}{с\addabbrvspace итал\adddot}},
   fromjapanese     = {{с японского}{с\addabbrvspace яп\adddot}},
   fromlatin        = {{с латинского}{с\addabbrvspace лат\adddot}},

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovak.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -55,7 +55,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -588,6 +588,7 @@
                       {nem\adddot}},
   langgreek        = {{gr\'{e}\v{c}tina}%
                       {gr\'{e}\v{c}tina}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{talian\v{c}ina}%
                       {tal\adddot}},
   langjapanese     = {{japon\v{c}ina}%
@@ -639,6 +640,7 @@
                       {z\addnbspace nem\adddot}},
   fromgreek        = {{z\addnbspace gr\'{e}\v{c}tiny}%
                       {z\addnbspace gr\'{e}\v{c}tiny}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{z\addnbspace talian\v{c}iny}%
                       {z\addnbspace tal\adddot}},
   fromjapanese     = {{z\addnbspace japon\v{c}iny}%

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/slovene.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -55,7 +55,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -455,6 +455,7 @@
   langgalician     = {{galicij\v{s}\v{c}ina}{gal\adddot}},
   langgerman       = {{nem\v{s}\v{c}ina}{nem\adddot}},
   langgreek        = {{gr\v{s}\v{c}ina}{gr\adddot}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{italijan\v{s}\v{c}ina}{it\adddot}},
   langlatin        = {{latin\v{s}\v{c}ina}{lat\adddot}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -478,9 +479,10 @@
 % fromestonian     = {{}{}},% FIXME: missing
   fromfinnish      = {{iz fin\v{s}\v{c}ine}{iz fin\adddot}},
   fromfrench       = {{iz franco\v{s}\v{c}ine}{iz fr\adddot}},
-  fromgalician     = {{iz galicij\v{s}\v{c}ine}{iz gal\adddot}}
+  fromgalician     = {{iz galicij\v{s}\v{c}ine}{iz gal\adddot}},
   fromgerman       = {{iz nem\v{s}\v{c}ine}{iz nem\adddot}},
   fromgreek        = {{iz gr\v{s}\v{c}ine}{iz gr\adddot}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{iz italijan\v{s}\v{c}ine}{iz it\adddot}},
   fromlatin        = {{iz latin\v{s}\v{c}ine}{iz lat\adddot}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -68,7 +68,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -98,8 +98,8 @@
   bibliography     = {{Bibliograf\'{\i}a}{Bibliograf\'{\i}a}},
   references       = {{Referencias}{Referencias}},
   shorthands       = {{Lista de abreviaturas}{Abreviaturas}},
-  editor           = {{edic\'{\i}on}{ed\adddot}}, %% {edic'{\i}on} instead of {editor} or {editora}
-  editors          = {{edic\'{\i}on}{eds\adddot}}, %% {edic'{\i}on} instead of {editores} or {editoras}
+  editor           = {{edici\'on}{ed\adddot}}, %% {edic'{\i}on} instead of {editor} or {editora}
+  editors          = {{edici\'on}{eds\adddot}}, %% {edic'{\i}on} instead of {editores} or {editoras}
   compiler         = {{compilaci\'{o}n}{comp\adddot}}, %% {compilac\'{\i}on} instead of {compilador} or {compiladora}
   compilers        = {{compilaci\'{o}n}{comps\adddot}}, %% {compilac\'{\i}on} instead of {compiladores} or {compiladoras}
   redactor         = {{redacci\'{o}n}{red\adddot}}, %% {redacc\'{\i}on} instead of {redactor} or {redactora} 
@@ -120,11 +120,11 @@
   annotators       = {{anotaciones}{anots\adddot}}, %% {anotaciones} instead of {anotadores} or {anotadoras}
   commentary       = {{comentario}{com\adddot}},
   annotations      = {{notas}{notas}},
-  introduction     = {{introduci\'on}{intr\adddot}},
+  introduction     = {{introducci\'on}{intr\adddot}},
   foreword         = {{pr\'ologo}{pr\'ol\adddot}},
-  afterword        = {{ep\'{\i}logo}{ep\'{\i}l\adddot}},
-  editortr         = {{edici\'{o}n y traducc'{\i}on \lbx at sfromlang}{ed\adddotspace y trad\adddotspace \lbx at sfromlang}}, %% {{edici\'{o}n y traducc'{\i}on} instead of {editor y traductor} or {editora y traductora}
-  editorstr        = {{edici\'{o}n y traducc'{\i}on \lbx at sfromlang}{eds\adddotspace y trads\adddotspace \lbx at sfromlang}}, %% {{edici\'{o}n y traducc'{\i}on} instead of {editores y traductores} or {editoras y traductoras}
+  afterword        = {{ep\'{i}logo}{ep\'{\i}l\adddot}},
+  editortr         = {{edici\'{o}n y traducci\'{o}n \lbx at sfromlang}{ed\adddotspace y trad\adddotspace \lbx at sfromlang}}, %% {{edici\'{o}n y traducci\'{o}n} instead of {editor y traductor} or {editora y traductora}
+  editorstr        = {{edici\'{o}n y traducci\'{o}n \lbx at sfromlang}{eds\adddotspace y trads\adddotspace \lbx at sfromlang}}, %% {{edici\'{o}n y traducci\'{o}n} instead of {editores y traductores} or {editoras y traductoras}
   editorco         = {{edici\'{o}n y comentario}{ed\adddotspace y com\adddot}}, %% {edici\'{o}n y comentario} instead of {editor y comentador} or {editora y comentadora}
   editorsco        = {{edici\'{o}n y comentarios}{eds\adddotspace y coms\adddot}}, %% {edici\'{o}n y comentarios} instead of {editores y comentadores} or {editoras y comentadoras}
   editoran         = {{edici\'{o}n y notas}{ed\adddotspace y anot\adddot}}, %% {edici\'{o}n y notas} instead of {editor y notas} or {editora y notas}
@@ -133,152 +133,152 @@
   editorsin        = {{edici\'{o}n e introducci\'{o}n}{eds\adddotspace e intr\adddot}}, %% {edici\'{o}n e introducci\'{o}n} instead of {editores e introducci\'{o}n} or {editoras e introducci\'{o}n}
   editorfo         = {{edici\'{o}n y pr\'{o}logo}{ed\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n y pr\'{o}logo} instead of {editor y pr\'{o}logo} or {editora y pr\'{o}logo}
   editorsfo        = {{edici\'{o}n y pr\'{o}logo}{eds\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n y pr\'{o}logo} instead of {editores y pr\'{o}logo} or {editoras y pr\'{o}logo}
-  editoraf         = {{edici\'{o}n y ep\'{\i}logo}{ed\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editor y ep\'{\i}l\ogo} or {editora y ep\'{\i}l\ogo}
-  editorsaf        = {{edici\'{o}n y ep\'{\i}logo}{eds\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editores y ep\'{\i}l\ogo} or {editoras y ep\'{\i}l\ogo}
-  editortrco       = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y comentario}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang y com\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y comentarios} instead of {editor, traductor y comentarios} or {editora, traductora y comentarios}
-  editorstrco      = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y comentarios}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang y coms\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y comentarios} instead of {editores, traductores y comentarios} or {editoras, traductoras y comentarios}
-  editortran       = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang y anot\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y notas} instead of {editor, traductor y notas} or {editora, traductora y notas}
-  editorstran      = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang y anot\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y notas} instead of {editores, traductores y notas} or {editoras, traductoras y notas}
-  editortrin       = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang e intr\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang e introducci\'{o}n} instead of {editor, traductor e introducci\'{o}n} or {editora, traductora e introducci\'{o}n}
-  editorstrin      = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang e intr\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang e introducci\'{o}n} instead of {editores, traductores e introducci\'{o}n} or {editoras, traductoras e introducci\'{o}n}
-  editortrfo       = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y pr\'{o}logo} instead of {editor, traductor y prologuista} or {editora, traductora y prologuista}
-  editorstrfo      = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y pr\'{o}logo} instead of {editores, traductores y prologuista} or {editoras, traductoras y prologuistas}
-  editortraf       = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y ep\'{\i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y ep\'{\i}logo} instead of {editor, traductor y ep\'{\i}logo} or {editora, traductora y ep\'{\i}logo}
-  editorstraf      = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang y ep\'{\i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducc'{\i}on \lbx at sfromlang y ep\'{\i}logo} instead of {editores, traductores y ep\'{\i}logo} or {editoras, traductoras y ep\'{\i}logo}
-  editorcoin       = {{edici\'{o}n, comentarios e introducci\'{o}n}{ed.,\addabbrvspace com\adddot e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editor, comentador e introducci\'{o}n} or {editora, comentadora e introducci\'{o}n}
-  editorscoin      = {{edici\'{o}n, comentarios e introducci\'{o}n}{eds.,\addabbrvspace coms\adddot e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editores, comentadores e introducci\'{o}n} or {editoras, comentadoras e introducci\'{o}n}
-  editorcofo       = {{edici\'{o}n, comentarios y pr\'{o}logo}{ed.,\addabbrvspace com\adddot y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editor, comentador y pr\'{o}logo} or {editora, comentadora y pr\'{o}logo}
-  editorscofo      = {{edici\'{o}n, comentarios y pr\'{o}logo}{eds.,\addabbrvspace coms\adddot y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editores, comentadores y pr\'{o}logo} or {editoras, comentadoras y pr\'{o}logo}
-  editorcoaf       = {{edici\'{o}n, comentarios y ep\'{\i}logo}{eds.,\addabbrvspace com\adddot y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{\i}logo} instead of {editor, comentador y ep\'{\i}logo} or {editora, comentadora y ep\'{\i}logo}
-  editorscoaf      = {{edici\'{o}n, comentarios y ep\'{\i}logo}{eds.,\addabbrvspace coms\adddot y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{\i}logo} instead of {editores, comentadores y ep\'{\i}logo} or {editoras, comentadoras y ep\'{\i}logo}
-  editoranin       = {{edici\'{o}n, notas e introducci\'{o}n}{ed.,\addabbrvspace anot\adddot e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n}
-  editorsanin      = {{edici\'{o}n, notas e introducci\'{o}n}{eds.,\addabbrvspace anot\adddot e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n}
-  editoranfo       = {{edici\'{o}n, notas y pr\'{o}logo}{ed.,\addabbrvspace anot\adddot y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editor, notas y pr\'{o}logo} or {editora, notas y pr\'{o}logo}
-  editorsanfo      = {{edici\'{o}n, notas y pr\'{o}logo}{eds.,\addabbrvspace anot\adddot y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editores, notas y pr\'{o}logo} or {editoras, notas y pr\'{o}logo}
-  editoranaf       = {{edici\'{o}n, notas y ep\'{\i}logo}{ed.,\addabbrvspace anot\adddot y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{\i}logo} instead of {editor, notas y ep\'{\i}logo} or {editora, notas y ep\'{\i}logo}
-  editorsanaf      = {{edici\'{o}n, notas y ep\'{\i}logo}{eds.,\addabbrvspace anot\adddot y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{\i}logo} instead of {editores, notas y ep\'{\i}logo} or {editoras, notas y ep\'{\i}logo}
-  editortrcoin     = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, com\adddot e intr\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n} instead of {editor, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n} or {editora, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n}
-  editorstrcoin    = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang, coms\adddot e intr\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n} instead of {editores, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n} or {editoras, traducc\'{\i}on \lbx at sfromlang, comentarios e introducci\'{o}n}
-  editortrcofo     = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, com\adddot y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo} instead of {editor, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo} or {editora, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo}
-  editorstrcofo    = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang, coms\adddot y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo} instead of {editores, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo} or {editoras, traducc\'{\i}on \lbx at sfromlang, comentarios y pr\'{o}logo}
-  editortrcoaf     = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, com\adddot y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo} instead of {editor, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo} or {editora, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo}
-  editorstrcoaf    = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang, coms\adddot y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo} instead of {editor, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo} or {editora, traducc\'{\i}on \lbx at sfromlang, comentarios y ep\'{\i}logo}
-  editortranin     = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, intr\adddot y anot\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas} instead of {{editor, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas} or {{editora, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas}
-  editorstranin    = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang, intr\adddot y anot\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas} instead of {{editores, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas} or {{editoras, traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas}
-  editortranfo     = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, pr\'{o}l\adddot y anot\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas} instead of {editor, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas} or {editora, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas}
-  editorstranfo    = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang, pr\'{o}l\adddot y anot\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas} instead of {editores, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas} or {editoras, traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas}
-  editortranaf     = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, ep\'{\i}l\adddot y anot\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas} instead of {editor, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas} or {editora, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas}
-  editorstranaf    = {{edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang, ep\'{\i}l\adddot y anot\adddot}}, %% {edici\'{o}n, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas} instead of {editores, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas} or {editoras, traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas}
-  translatorco     = {{traducc\'{\i}on \lbx at sfromlang y comentario}{trad\adddotspace \lbx at sfromlang\ y com\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y comentario} instead of {traductor y comentador} or {traductora y comentadora}
-  translatorsco    = {{traducc\'{\i}on \lbx at sfromlang y comentario}{trads\adddotspace \lbx at sfromlang\ y coms\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y comentario} instead of {traductores y comentadores} or {traductoras y comentadoras}
-  translatoran     = {{traducc\'{\i}on \lbx at sfromlang y notas}{trad\adddotspace \lbx at sfromlang\ y anot\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y notas} instead of {traductor y anotador} or {traductora y anotadora}
-  translatorsan    = {{traducc\'{\i}on \lbx at sfromlang y notas}{trads\adddotspace \lbx at sfromlang\ y anots\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y notas} instead of {traductores y anotadores} or {traductoras y anotadoras}
-  translatorin     = {{traducc\'{\i}on \lbx at sfromlang e introducci\'{o}n}{trad\adddotspace \lbx at sfromlang\ e intr\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang e introducci\'{o}n} instead of {traductor \lbx at sfromlang e introducci\'{o}n} {traductora \lbx at sfromlang e introducci\'{o}n}
-  translatorsin    = {{traducc\'{\i}on \lbx at sfromlang e introducci\'{o}n}{trads\adddotspace \lbx at sfromlang\ e intr\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang e introducci\'{o}n} instead of {traductores \lbx at sfromlang e introducci\'{o}n} {traductoras \lbx at sfromlang e introducci\'{o}n}
-  translatorfo     = {{traducc\'{\i}on \lbx at sfromlang y pr\'{o}logo}{trad\adddotspace \lbx at sfromlang\ y pr\'{o}l\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y pr\'{o}logo} instead of {traductor \lbx at sfromlang y prologuista} or {traductora \lbx at sfromlang y prologuista}
-  translatorsfo    = {{traducc\'{\i}on \lbx at sfromlang y pr\'{o}logo}{trads\adddotspace \lbx at sfromlang\ y pr\'{o}l\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y pr\'{o}logo} instead of {traductores \lbx at sfromlang y prologuistas} or {traductoras \lbx at sfromlang y prologuistas}
-  translatoraf     = {{traducc\'{\i}on \lbx at sfromlang y ep\'{\i}logo}{trad\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y ep\'{\i}logo} instead of {traductor \lbx at sfromlang y epiloguista} or {traductora \lbx at sfromlang y epiloguista}
-  translatorsaf    = {{traducc\'{\i}on \lbx at sfromlang y ep\'{\i}logo}{trads\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang y ep\'{\i}logo} instead of {traductores \lbx at sfromlang y epiloguistas} or {traductoras \lbx at sfromlang y epiloguistas}
-  translatorcoin   = {{traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentario}{trad\adddotspace \lbx at sfromlang, intr\adddotspace y com\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx at sfromlang, introducci\'{o}n y comentario} or {traductora \lbx at sfromlang, introducci\'{o}n y comentario}
-  translatorscoin  = {{traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentarios}{trads\adddotspace \lbx at sfromlang, intr\adddotspace y coms\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx at sfromlang, introducci\'{o}n y comentarios} or {traductoras \lbx at sfromlang, introducci\'{o}n y comentarios}
-  translatorcofo   = {{traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y comentario}{trad\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y com\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx at sfromlang, pr\'{o}logo y comentario} or {traductora \lbx at sfromlang, pr\'{o}logo y comentario}
-  translatorscofo  = {{traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y comentarios}{trads\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y coms\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx at sfromlang, pr\'{o}logo y comentarios} or {traductoras \lbx at sfromlang, pr\'{o}logo y comentarios}
-  translatorcoaf   = {{traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y comentario}{trad\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y com\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductor \lbx at sfromlang, ep\'{\i}logo y comentario} or {traductora \lbx at sfromlang, ep\'{\i}logo y comentario}
-  translatorscoaf  = {{traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y comentarios}{trads\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y coms\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx at sfromlang, ep\'{\i}logo y comentarios} or {traductoras \lbx at sfromlang, ep\'{\i}logo y comentarios}
-  translatoranin   = {{traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas}{trad\adddotspace \lbx at sfromlang, intr\adddotspace y anot\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas} instead of {traductor \lbx at sfromlang, introducci\'{o}n y notas} or {traductora \lbx at sfromlang, introducci\'{o}n y notas}
-  translatorsanin  = {{traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas}{trads\adddotspace \lbx at sfromlang, intr\adddotspace y anot\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, introducci\'{o}n y notas} instead of {traductores \lbx at sfromlang, introducci\'{o}n y notas} or {traductoras \lbx at sfromlang, introducci\'{o}n y notas}
-  translatoranfo   = {{traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas}{trad\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas} instead of {traductor \lbx at sfromlang, pr\'{o}logo y notas} or {traductora \lbx at sfromlang, pr\'{o}logo y notas}
-  translatorsanfo  = {{traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas}{trads\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, pr\'{o}logo y notas} instead of {traductores \lbx at sfromlang, pr\'{o}logo y notas} or {traductoras \lbx at sfromlang, pr\'{o}logo y notas}
-  translatoranaf   = {{traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas}{trad\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas} instead of {traductor \lbx at sfromlang, ep\'{\i}logo y notas} or {traductora \lbx at sfromlang, ep\'{\i}logo y notas}
-  translatorsanaf  = {{traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas}{trads\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducc\'{\i}on \lbx at sfromlang, ep\'{\i}logo y notas} instead of {traductores \lbx at sfromlang, ep\'{\i}logo y notas} or {traductora \lbx at sfromlang, ep\'{\i}logo y notas}
-% organizer        = {{}{}},% FIXME: missing
-% organizers       = {{}{}},% FIXME: missing
-% byorganizer      = {{}{}},% FIXME: missing
+  editoraf         = {{edici\'{o}n y ep\'{i}logo}{ed\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editor y ep\'{\i}l\ogo} or {editora y ep\'{\i}l\ogo}
+  editorsaf        = {{edici\'{o}n y ep\'{i}logo}{eds\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editores y ep\'{\i}l\ogo} or {editoras y ep\'{\i}l\ogo}
+  editortrco       = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y comentario}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y com\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y comentarios} instead of {editor, traductor y comentarios} or {editora, traductora y comentarios}
+  editorstrco      = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y comentarios}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang\ y coms\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y comentarios} instead of {editores, traductores y comentarios} or {editoras, traductoras y comentarios}
+  editortran       = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y notas} instead of {editor, traductor y notas} or {editora, traductora y notas}
+  editorstran      = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang\ y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y notas} instead of {editores, traductores y notas} or {editoras, traductoras y notas}
+  editortrin       = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang e introducci\'{o}n} instead of {editor, traductor e introducci\'{o}n} or {editora, traductora e introducci\'{o}n}
+  editorstrin      = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang\ e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang e introducci\'{o}n} instead of {editores, traductores e introducci\'{o}n} or {editoras, traductoras e introducci\'{o}n}
+  editortrfo       = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y pr\'{o}logo} instead of {editor, traductor y prologuista} or {editora, traductora y prologuista}
+  editorstrfo      = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang\ y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y pr\'{o}logo} instead of {editores, traductores y prologuista} or {editoras, traductoras y prologuistas}
+  editortraf       = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y ep\'{i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y ep\'{i}logo} instead of {editor, traductor y ep\'{i}logo} or {editora, traductora y ep\'{i}logo}
+  editorstraf      = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang\ y ep\'{i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang y ep\'{i}logo} instead of {editores, traductores y ep\'{i}logo} or {editoras, traductoras y ep\'{i}logo}
+  editorcoin       = {{edici\'{o}n, comentarios e introducci\'{o}n}{ed.,\addabbrvspace com\adddotspace e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editor, comentador e introducci\'{o}n} or {editora, comentadora e introducci\'{o}n}
+  editorscoin      = {{edici\'{o}n, comentarios e introducci\'{o}n}{eds.,\addabbrvspace coms\adddotspace e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editores, comentadores e introducci\'{o}n} or {editoras, comentadoras e introducci\'{o}n}
+  editorcofo       = {{edici\'{o}n, comentarios y pr\'{o}logo}{ed.,\addabbrvspace com\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editor, comentador y pr\'{o}logo} or {editora, comentadora y pr\'{o}logo}
+  editorscofo      = {{edici\'{o}n, comentarios y pr\'{o}logo}{eds.,\addabbrvspace coms\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editores, comentadores y pr\'{o}logo} or {editoras, comentadoras y pr\'{o}logo}
+  editorcoaf       = {{edici\'{o}n, comentarios y ep\'{i}logo}{eds.,\addabbrvspace com\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{i}logo} instead of {editor, comentador y ep\'{i}logo} or {editora, comentadora y ep\'{i}logo}
+  editorscoaf      = {{edici\'{o}n, comentarios y ep\'{i}logo}{eds.,\addabbrvspace coms\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{i}logo} instead of {editores, comentadores y ep\'{i}logo} or {editoras, comentadoras y ep\'{i}logo}
+  editoranin       = {{edici\'{o}n, notas e introducci\'{o}n}{ed.,\addabbrvspace anot\adddotspace e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n}
+  editorsanin      = {{edici\'{o}n, notas e introducci\'{o}n}{eds.,\addabbrvspace anot\adddotspace e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n}
+  editoranfo       = {{edici\'{o}n, notas y pr\'{o}logo}{ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editor, notas y pr\'{o}logo} or {editora, notas y pr\'{o}logo}
+  editorsanfo      = {{edici\'{o}n, notas y pr\'{o}logo}{eds.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editores, notas y pr\'{o}logo} or {editoras, notas y pr\'{o}logo}
+  editoranaf       = {{edici\'{o}n, notas y ep\'{i}logo}{ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{i}logo} instead of {editor, notas y ep\'{i}logo} or {editora, notas y ep\'{i}logo}
+  editorsanaf      = {{edici\'{o}n, notas y ep\'{i}logo}{eds.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{i}logo} instead of {editores, notas y ep\'{i}logo} or {editoras, notas y ep\'{i}logo}
+  editortrcoin     = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang,\addabbrvspace com\adddotspace e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n} instead of {editor, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n} or {editora, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n}
+  editorstrcoin    = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang,\addabbrvspace coms\adddotspace e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n} instead of {editores, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n} or {editoras, traducci\'{o}n \lbx at sfromlang, comentarios e introducci\'{o}n}
+  editortrcofo     = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang,\addabbrvspace com\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo} instead of {editor, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo} or {editora, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo}
+  editorstrcofo    = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang,\addabbrvspace coms\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo} instead of {editores, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo} or {editoras, traducci\'{o}n \lbx at sfromlang, comentarios y pr\'{o}logo}
+  editortrcoaf     = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang,\addabbrvspace com\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo} instead of {editor, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo} or {editora, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo}
+  editorstrcoaf    = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang,\addabbrvspace coms\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo} instead of {editor, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo} or {editora, traducci\'{o}n \lbx at sfromlang, comentarios y ep\'{i}logo}
+  editortranin     = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang,\addabbrvspace intr\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas} instead of {{editor, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas} or {{editora, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas}
+  editorstranin    = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang,\addabbrvspace intr\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas} instead of {{editores, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas} or {{editoras, traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas}
+  editortranfo     = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang,\addabbrvspace pr\'{o}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas} instead of {editor, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas} or {editora, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas}
+  editorstranfo    = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang,\addabbrvspace pr\'{o}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas} instead of {editores, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas} or {editoras, traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas}
+  editortranaf     = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang,\addabbrvspace ep\'{\i}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas} instead of {editor, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas} or {editora, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas}
+  editorstranaf    = {{edici\'{o}n, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx at sfromlang,\addabbrvspace ep\'{\i}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas} instead of {editores, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas} or {editoras, traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas}
+  translatorco     = {{traducci\'{o}n \lbx at sfromlang\ y comentario}{trad\adddotspace \lbx at sfromlang\ y com\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y comentario} instead of {traductor y comentador} or {traductora y comentadora}
+  translatorsco    = {{traducci\'{o}n \lbx at sfromlang\ y comentario}{trads\adddotspace \lbx at sfromlang\ y coms\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y comentario} instead of {traductores y comentadores} or {traductoras y comentadoras}
+  translatoran     = {{traducci\'{o}n \lbx at sfromlang\ y notas}{trad\adddotspace \lbx at sfromlang\ y anot\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y notas} instead of {traductor y anotador} or {traductora y anotadora}
+  translatorsan    = {{traducci\'{o}n \lbx at sfromlang\ y notas}{trads\adddotspace \lbx at sfromlang\ y anots\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y notas} instead of {traductores y anotadores} or {traductoras y anotadoras}
+  translatorin     = {{traducci\'{o}n \lbx at sfromlang\ e introducci\'{o}n}{trad\adddotspace \lbx at sfromlang\ e intr\adddot}}, %% {traducci\'{o}n \lbx at sfromlang e introducci\'{o}n} instead of {traductor \lbx at sfromlang e introducci\'{o}n} {traductora \lbx at sfromlang e introducci\'{o}n}
+  translatorsin    = {{traducci\'{o}n \lbx at sfromlang\ e introducci\'{o}n}{trads\adddotspace \lbx at sfromlang\ e intr\adddot}}, %% {traducci\'{o}n \lbx at sfromlang e introducci\'{o}n} instead of {traductores \lbx at sfromlang e introducci\'{o}n} {traductoras \lbx at sfromlang e introducci\'{o}n}
+  translatorfo     = {{traducci\'{o}n \lbx at sfromlang\ y pr\'{o}logo}{trad\adddotspace \lbx at sfromlang\ y pr\'{o}l\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y pr\'{o}logo} instead of {traductor \lbx at sfromlang y prologuista} or {traductora \lbx at sfromlang y prologuista}
+  translatorsfo    = {{traducci\'{o}n \lbx at sfromlang\ y pr\'{o}logo}{trads\adddotspace \lbx at sfromlang\ y pr\'{o}l\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y pr\'{o}logo} instead of {traductores \lbx at sfromlang y prologuistas} or {traductoras \lbx at sfromlang y prologuistas}
+  translatoraf     = {{traducci\'{o}n \lbx at sfromlang\ y ep\'{i}logo}{trad\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y ep\'{i}logo} instead of {traductor \lbx at sfromlang y epiloguista} or {traductora \lbx at sfromlang y epiloguista}
+  translatorsaf    = {{traducci\'{o}n \lbx at sfromlang\ y ep\'{i}logo}{trads\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddot}}, %% {traducci\'{o}n \lbx at sfromlang y ep\'{i}logo} instead of {traductores \lbx at sfromlang y epiloguistas} or {traductoras \lbx at sfromlang y epiloguistas}
+  translatorcoin   = {{traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentario}{trad\adddotspace \lbx at sfromlang, intr\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx at sfromlang, introducci\'{o}n y comentario} or {traductora \lbx at sfromlang, introducci\'{o}n y comentario}
+  translatorscoin  = {{traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentarios}{trads\adddotspace \lbx at sfromlang, intr\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx at sfromlang, introducci\'{o}n y comentarios} or {traductoras \lbx at sfromlang, introducci\'{o}n y comentarios}
+  translatorcofo   = {{traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y comentario}{trad\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx at sfromlang, pr\'{o}logo y comentario} or {traductora \lbx at sfromlang, pr\'{o}logo y comentario}
+  translatorscofo  = {{traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y comentarios}{trads\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx at sfromlang, pr\'{o}logo y comentarios} or {traductoras \lbx at sfromlang, pr\'{o}logo y comentarios}
+  translatorcoaf   = {{traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y comentario}{trad\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductor \lbx at sfromlang, ep\'{i}logo y comentario} or {traductora \lbx at sfromlang, ep\'{i}logo y comentario}
+  translatorscoaf  = {{traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y comentarios}{trads\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx at sfromlang, ep\'{i}logo y comentarios} or {traductoras \lbx at sfromlang, ep\'{i}logo y comentarios}
+  translatoranin   = {{traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas}{trad\adddotspace \lbx at sfromlang, intr\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas} instead of {traductor \lbx at sfromlang, introducci\'{o}n y notas} or {traductora \lbx at sfromlang, introducci\'{o}n y notas}
+  translatorsanin  = {{traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas}{trads\adddotspace \lbx at sfromlang, intr\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, introducci\'{o}n y notas} instead of {traductores \lbx at sfromlang, introducci\'{o}n y notas} or {traductoras \lbx at sfromlang, introducci\'{o}n y notas}
+  translatoranfo   = {{traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas}{trad\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas} instead of {traductor \lbx at sfromlang, pr\'{o}logo y notas} or {traductora \lbx at sfromlang, pr\'{o}logo y notas}
+  translatorsanfo  = {{traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas}{trads\adddotspace \lbx at sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, pr\'{o}logo y notas} instead of {traductores \lbx at sfromlang, pr\'{o}logo y notas} or {traductoras \lbx at sfromlang, pr\'{o}logo y notas}
+  translatoranaf   = {{traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas}{trad\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas} instead of {traductor \lbx at sfromlang, ep\'{i}logo y notas} or {traductora \lbx at sfromlang, ep\'{i}logo y notas}
+  translatorsanaf  = {{traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas}{trads\adddotspace \lbx at sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx at sfromlang, ep\'{i}logo y notas} instead of {traductores \lbx at sfromlang, ep\'{i}logo y notas} or {traductora \lbx at sfromlang, ep\'{i}logo y notas}
+  organizer        = {{organizaci\'on}{org\adddot}}, %% {organizaci\'on} instead of {organizador} or {organizadora}
+  organizers       = {{organizaci\'on}{orgs\adddot}}, %% {organizaci\'on} instead of {organizadores} or {organizadoras}
+  byorganizer      = {{organizado por}{org\adddotspace por}},
   byauthor         = {{de}{de}},
   byeditor         = {{editado por}{ed\adddotspace por}},
   bycompiler       = {{compilado por}{comp\adddotspace por}},
   byredactor       = {{redacci\'on de}{red\adddotspace de}},
   byreviser        = {{revisado por}{rev\adddotspace por}},% FIXME: unsure
-  byreviewer       = {{rese\~{nado por}}{res\adddotspace por}},% FIXME: unsure
+  byreviewer       = {{rese\~{n}ado por}{res\adddotspace por}},% FIXME: unsure
   byfounder        = {{fundado por}{fund\adddotspace por}},
   bycontinuator    = {{continuado por}{cont\adddotspace por}},
   bycollaborator   = {{colaboraci\'{o}n de}{col\adddotspace de}},% FIXME: unsure
   bytranslator     = {{traducido \lbx at lfromlang\ por}{trad\adddot \lbx at sfromlang\ por}},
-  bycommentator    = {{comentado por}{com\adddot por}},
-  byannotator      = {{anotado por}{anot\adddot por}},
-  withcommentator  = {{con comentario de}{con com\adddot de}},
+  bycommentator    = {{comentado por}{com\adddotspace por}},
+  byannotator      = {{anotado por}{anot\adddotspace por}},
+  withcommentator  = {{con comentario de}{con com\adddotspace de}},
   withannotator    = {{con notas de}{con notas de}},
-  withintroduction = {{con introduci\'on de}{con intr\adddot de}},
-  withforeword     = {{con pr\'ologo de}{con pr\'ol\adddot de}},
-  withafterword    = {{con ep\'{\i}logo de}{con ep\'{\i}l\adddot de}},
+  withintroduction = {{con introduci\'on de}{con intr\adddotspace de}},
+  withforeword     = {{con pr\'ologo de}{con pr\'ol\adddotspace de}},
+  withafterword    = {{con ep\'{i}logo de}{con ep\'{\i}l\adddotspace de}},
   byeditortr       = {{editado y traducido \lbx at lfromlang\ por}%
                       {ed\adddotspace y trad\adddot \lbx at sfromlang\ por}},
   byeditorco       = {{editado y comentado por}%
-                      {ed\adddotspace y com\adddot por}},
+                      {ed\adddotspace y com\adddotspace por}},
   byeditoran       = {{editado y anotado por}%
-                      {ed\adddotspace y anot\adddot por}},
+                      {ed\adddotspace y anot\adddotspace por}},
   byeditorin       = {{editado e introducido por}%
-                      {ed\adddotspace e intr\adddot por}},
+                      {ed\adddotspace e intr\adddotspace por}},
   byeditorfo       = {{editado y prologado por}%
-                      {ed\adddotspace y pr\'ol\adddot por}},
+                      {ed\adddotspace y pr\'ol\adddotspace por}},
   byeditoraf       = {{editado y epilogado por}%
-                      {ed\adddotspace y ep\'{\i}l\adddot por}},
+                      {ed\adddotspace y ep\'{\i}l\adddotspace por}},
   byeditortrco     = {{editado, traducido \lbx at lfromlang\ y comentado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang\ y com\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y com\adddotspace por}},
   byeditortran     = {{editado, traducido \lbx at lfromlang\ y anotado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang\ y anot\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y anot\adddotspace por}},
   byeditortrin     = {{editado, traducido \lbx at lfromlang\ e introducido por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang\ e intr\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ e intr\adddotspace por}},
   byeditortrfo     = {{editado, traducido \lbx at lfromlang\ y prologado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang\ y pr\'ol\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y pr\'ol\adddotspace por}},
   byeditortraf     = {{editado, traducido \lbx at lfromlang\ y epilogado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang\ y ep\'{\i}l\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddotspace por}},
   byeditorcoin     = {{editado, comentado e introducido por}%
-                      {ed.,\addabbrvspace com\adddot e intr\adddot por}},
+                      {ed.,\addabbrvspace com\adddotspace e intr\adddotspace por}},
   byeditorcofo     = {{editado, comentado y prologado por}%
-                      {ed.,\addabbrvspace com\adddot y pr\'ol\adddot por}},
+                      {ed.,\addabbrvspace com\adddotspace y pr\'ol\adddotspace por}},
   byeditorcoaf     = {{editado, comentado y epilogado por}%
-                      {ed.,\addabbrvspace com\adddot y ep\'{\i}l\adddot por}},
+                      {ed.,\addabbrvspace com\adddotspace y ep\'{\i}l\adddotspace por}},
   byeditoranin     = {{editado, anotado e introducido por}%
-                      {ed.,\addabbrvspace anot\adddot e intr\adddot por}},
+                      {ed.,\addabbrvspace anot\adddotspace e intr\adddotspace por}},
   byeditoranfo     = {{editado, anotado y prologado por}%
-                      {ed.,\addabbrvspace anot\adddot y pr\'ol\adddot por}},
+                      {ed.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace por}},
   byeditoranaf     = {{editado, anotado y epilogado por}%
-                      {ed.,\addabbrvspace anot\adddot y ep\'{\i}l\adddot por}},
+                      {ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddotspace por}},
   byeditortrcoin   = {{editado, traducido \lbx at lfromlang, comentado e introducido por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang, com\adddot e intr\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, com\adddotspace e intr\adddotspace por}},
   byeditortrcofo   = {{editado, traducido \lbx at lfromlang, comentado y prologado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang, com\adddot y pr\'ol\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, com\adddotspace y pr\'ol\adddotspace por}},
   byeditortrcoaf   = {{editado, traducido \lbx at lfromlang, comentado y epilogado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang, com\adddot y ep\'{\i}l\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, com\adddotspace y ep\'{\i}l\adddotspace por}},
   byeditortranin   = {{editado, traducido \lbx at lfromlang, anotado e introducido por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang, anot\adddot e intr\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, anot\adddotspace e intr\adddotspace por}},
   byeditortranfo   = {{editado, traducido \lbx at lfromlang, anotado y prologado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang, anot\adddot y pr\'ol\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, anot\adddotspace y pr\'ol\adddotspace por}},
   byeditortranaf   = {{editado, traducido \lbx at lfromlang, anotado y epilogado por}%
-                      {ed.,\addabbrvspace trad\adddot \lbx at sfromlang, anot\adddot y ep\'{\i}l\adddot por}},
+                      {ed.,\addabbrvspace trad\adddotspace \lbx at sfromlang, anot\adddotspace y ep\'{\i}l\adddotspace por}},
   bytranslatorco   = {{traducido \lbx at lfromlang\ y comentado por}%
-                      {trad\adddot \lbx at sfromlang\ y com\adddot por}},
+                      {trad\adddotspace \lbx at sfromlang\ y com\adddotspace por}},
   bytranslatoran   = {{traducido \lbx at lfromlang\ y anotado por}%
-                      {trad\adddot \lbx at sfromlang\ y anot\adddot por}},
+                      {trad\adddotspace \lbx at sfromlang\ y anot\adddotspace por}},
   bytranslatorin   = {{traducido \lbx at lfromlang\ e introducido por}%
-                      {trad\adddot \lbx at sfromlang\ e introd\adddot por}},
+                      {trad\adddotspace \lbx at sfromlang\ e introd\adddotspace por}},
   bytranslatorfo   = {{traducido \lbx at lfromlang\ y prologado por}%
-                      {trad\adddot \lbx at sfromlang\ y pr\'ol\adddot por}},
+                      {trad\adddotspace \lbx at sfromlang\ y pr\'ol\adddotspace por}},
   bytranslatoraf   = {{traducido \lbx at lfromlang\ y epilogado por}%
-                      {trad\adddot \lbx at sfromlang\ y ep\'{\i}l\adddot por}},
+                      {trad\adddotspace \lbx at sfromlang\ y ep\'{\i}l\adddotspace por}},
   bytranslatorcoin = {{traducido \lbx at lfromlang, comentado e introducido por}%
-                      {trad\adddot \lbx at sfromlang, com\adddot e intr\adddot por}},
+                      {trad\adddot \lbx at sfromlang, com\adddotspace e intr\adddotspace por}},
   bytranslatorcofo = {{traducido \lbx at lfromlang, comentado y prologado por}%
-                      {trad\adddot \lbx at sfromlang, com\adddot y pr\'ol\adddot por}},
+                      {trad\adddot \lbx at sfromlang, com\adddotspace y pr\'ol\adddotspace por}},
   bytranslatorcoaf = {{traducido \lbx at lfromlang, comentado y epilogado por}%
-                      {trad\adddot \lbx at sfromlang, com\adddot y ep\'{\i}l\adddot por}},
+                      {trad\adddot \lbx at sfromlang, com\adddotspace y ep\'{\i}l\adddotspace por}},
   bytranslatoranin = {{traducido \lbx at lfromlang, anotado e introducido por}%
-                      {trad\adddot \lbx at sfromlang, anot\adddot e intr\adddot por}},
+                      {trad\adddot \lbx at sfromlang, anot\adddotspace e intr\adddotspace por}},
   bytranslatoranfo = {{traducido \lbx at lfromlang, anotado y prologado por}%
-                      {trad\adddot \lbx at sfromlang, anot\adddot y pr\'ol\adddot por}},
+                      {trad\adddot \lbx at sfromlang, anot\adddotspace y pr\'ol\adddotspace por}},
   bytranslatoranaf = {{traducido \lbx at lfromlang, anotado y epilogado por}%
-                      {trad\adddot \lbx at sfromlang, anot\adddot y ep\'{\i}l\adddot por}},
+                      {trad\adddot \lbx at sfromlang, anot\adddotspace y ep\'{\i}l\adddotspace por}},
   and              = {{y}{y}},
   andothers        = {{y~col\adddot}{y~col\adddot}},
   andmore          = {{et\adddotspace al\adddot}{et\adddotspace al\adddot}},
@@ -290,12 +290,12 @@
   book             = {{libro}{libro}},
   part             = {{parte}{parte}},
   issue            = {{n\'umero}{n\'um\adddot}},% FIXME: unsure
-  newseries        = {{nueva \'epoca}{n\adddotspace 'ep\adddot}},
-  oldseries        = {{antigua \'epoca}{ant\adddotspace 'ep\adddot}},
+  newseries        = {{nueva \'epoca}{n\adddotspace \'ep\adddot}},
+  oldseries        = {{antigua \'epoca}{ant\adddotspace \'ep\adddot}},
   edition          = {{edici\'on}{ed\adddot}},
-  reprint          = {{reimpresi\'{o}}{reimp\adddot}},
-  reprintof        = {{reimpresi\'{o} de}{reimp\adddot de}},
-  reprintas        = {{reimpreso como}{reimp\adddot como}},
+  reprint          = {{reimpresi\'{o}n}{reimp\adddot}},
+  reprintof        = {{reimpresi\'{o}n de}{reimp\adddotspace de}},
+  reprintas        = {{reimpreso como}{reimp\adddotspace como}},
   reprintfrom      = {{reimpresi\'{o} de}{reimp\adddotspace de}},% FIXME: unsure. What's the difference between reprintof and reprintfrom?
   reviewof         = {{rese\~{n}a de}{rese\~{n}a de}},
   translationof    = {{traducci\'{o}n de}{trad\adddotspace de}},
@@ -314,28 +314,28 @@
   lines            = {{l\'{\i}neas}{ll\adddot}},% FIXME: abbrev. unsure. There is no standard
   verse            = {{verso}{v\adddot}},
   verses           = {{versos}{vv\adddot}},
-  section          = {{secci\'{o}}{sec\adddot}},
+  section          = {{secci\'{o}n}{sec\adddot}},
   sections         = {{secciones}{secs\adddot}},
   paragraph        = {{p\'{a}rrafo}{p\'{a}rr\adddot}},
   paragraphs       = {{p\'{a}rrafos}{p\'{a}rrs\adddot}},
-% pagetotal        = {{}{}},% FIXME: missing
-% pagetotals       = {{}{}},% FIXME: missing
-% columntotal      = {{}{}},% FIXME: missing
-% columntotals     = {{}{}},% FIXME: missing
-% linetotal        = {{}{}},% FIXME: missing
-% linetotals       = {{}{}},% FIXME: missing
-% versetotal       = {{}{}},% FIXME: missing
-% versetotals      = {{}{}},% FIXME: missing
-% sectiontotal     = {{}{}},% FIXME: missing
-% sectiontotals    = {{}{}},% FIXME: missing
-% paragraphtotal   = {{}{}},% FIXME: missing
-% paragraphtotals  = {{}{}},% FIXME: missing
+  pagetotal        = {{p\'agina}{p\'ag\adddot}},
+  pagetotals       = {{p\'aginas}{p\'ags\adddot}},
+  columntotal      = {{columna}{col\adddot}},
+  columntotals     = {{columnas}{cols\adddot}},
+  linetotal        = {{l\'{\i}nea}{l\adddot}},% FIXME: abbrev. unsure. There is no standard
+  linetotals       = {{l\'{\i}neas}{ll\adddot}},% FIXME: abbrev. unsure. There is no standard
+  versetotal       = {{verso}{v\adddot}},
+  versetotals      = {{versos}{vv\adddot}},
+  sectiontotal     = {{secci\'{o}n}{sec\adddot}},
+  sectiontotals    = {{secciones}{secs\adddot}},
+  paragraphtotal   = {{p\'{a}rrafo}{p\'{a}rr\adddot}},
+  paragraphtotals  = {{p\'{a}rrafos}{p\'{a}rrs\adddot}},
   in               = {{en}{en}},
   inseries         = {{en}{en}},
   ofseries         = {{de}{de}},
   number           = {{n\'umero}{n\sptext{o}}},
   chapter          = {{cap\'itulo}{cap\adddot}},
-% bathesis         = {{}{}},% FIXME: missing
+  bathesis         = {{Tesis de licenciatura}{Tesis de lic\adddot}},% FIXME: unsure.
   mathesis         = {{Tesis de maestr\'{\i}a}{Tesis de mtr\'{\i}a\adddot}},
   phdthesis        = {{Tesis doctoral}{Tesis doct\adddot}},
   candthesis       = {{Tesis de candidatura doctoral}{Tesis de cand\adddotspace doct\adddot}},% FIXME: unsure
@@ -346,9 +346,9 @@
   audiocd          = {{disco de audio}{CD de audio}},% FIXME: abbrev. unsure
   version          = {{versi\'on}{ver\adddot}},
   url              = {{direcci\'on}{direcci\'on}},
-  urlfrom          = {{disponible desde}{disp\adddot desde}},% FIXME: unsure
+  urlfrom          = {{disponible desde}{disp\adddotspace desde}},% FIXME: unsure
   urlseen          = {{visitado}{visitado}},
-  inpreparation    = {{en preparaci\'{o}}{en prep\adddot}},
+  inpreparation    = {{en preparaci\'{o}n}{en prep\adddot}},
   submitted        = {{enviado}{enviado}},
   forthcoming      = {{pr\'oximamente}{prox\adddot}},
   inpress          = {{en prensa}{en prensa}},
@@ -390,7 +390,7 @@
   december         = {{diciembre}{dic\adddot}},
   langamerican     = {{ingl\'{e}s americano}{ingl\'{e}s americano}},
   langbrazilian    = {{brasile\~no}{brasile\~no}},
-% langbulgarian    = {{}{}},% FIXME: missing
+  langbulgarian    = {{b\'ulgaro}{b\'ulgaro}},
   langcatalan      = {{catal\'{a}n}{catal\'{a}n}},
   langcroatian     = {{croata}{croata}},
   langczech        = {{checo}{checo}},
@@ -397,26 +397,29 @@
   langdanish       = {{dan\'es}{dan\'es}},
   langdutch        = {{neerland\'es}{neerland\'es}},
   langenglish      = {{ingl\'es}{ingl\'es}},
-% langestonian     = {{}{}},% FIXME: missing
+  langestonian     = {{estonio}{estonio}},
   langfinnish      = {{fin\'{e}s}{fin\'{e}s}},
   langfrench       = {{franc\'es}{franc\'es}},
   langgalician     = {{gallego}{gallego}},
   langgerman       = {{alem\'an}{alem\'an}},
   langgreek        = {{griego}{griego}},
+  langhungarian    = {{h\'ungaro}{h\'ungaro}},
   langitalian      = {{italiano}{italiano}},
+  langjapanese     = {{japon\'es}{japon\'es}},
   langlatin        = {{lat\'{\i}n}{lat\'{\i}n}},
-% langlatvian      = {{}{}},% FIXME: missing
+  langlatvian      = {{lituano}{lituano}},
   langnorwegian    = {{noruego}{noruego}},
   langpolish       = {{polaco}{polaco}},
   langportuguese   = {{portugu\'es}{portugu\'es}},
   langrussian      = {{ruso}{ruso}},
-% langslovak       = {{}{}},% FIXME: missing
-% langslovene      = {{esloveno}{esloveno}}, %%FIXME: not defined?
+  langslovak       = {{eslovaco}{eslovaco}},
+  langslovene      = {{esloveno}{esloveno}},
   langspanish      = {{espa\~nol}{espa\~nol}},
   langswedish      = {{sueco}{sueco}},
+  langukrainian    = {{ucraniano}{ucraniano}},
   fromamerican     = {{del ingl\'{e}s americano}{del ingl\'{e}s americano}},
   frombrazilian    = {{del brasile\~no}{del brasile\~no}},
-% frombulgarian    = {{}{}},% FIXME: missing
+  frombulgarian    = {{del b\'ulgaro}{del b\'ulgaro}},
   fromcatalan      = {{del catal\'{a}n}{del catal\'{a}n}},
   fromcroatian     = {{del croata}{del croata}},
   fromczech        = {{del checo}{del checo}},
@@ -423,23 +426,26 @@
   fromdanish       = {{del dan\'es}{del dan\'es}},
   fromdutch        = {{del neerland\'es}{del neerland\'es}},
   fromenglish      = {{del ingl\'es}{del ingl\'es}},
-% fromestonian     = {{}{}},% FIXME: missing
+  fromestonian     = {{del estonio}{del estonio}},
   fromfinnish      = {{del fin\'{e}s}{del fin\'{e}s}},
   fromfrench       = {{del franc\'es}{del franc\'es}},
   fromgalician     = {{del gallego}{del gallego}},
   fromgerman       = {{del alem\'an}{del alem\'an}},
   fromgreek        = {{del griego}{del griego}},
+  fromhungarian    = {{del h\'ungaro}{del h\'ungaro}},
   fromitalian      = {{del italiano}{del italiano}},
+  fromjapanese     = {{del japon\'es}{del japon\'es}},
   fromlatin        = {{del lat\'{\i}n}{del lat\'{\i}n}},
-% fromlatvian      = {{}{}},% FIXME: missing
+  fromlatvian      = {{del lituano}{del lituano}},
   fromnorwegian    = {{del noruego}{del noruego}},
   frompolish       = {{del polaco}{del polaco}},
   fromportuguese   = {{del portugu\'es}{del portugu\'es}},
   fromrussian      = {{del ruso}{del ruso}},
-% fromslovak       = {{}{}},% FIXME: missing
-% fromslovene      = {{del esloveno}{del esloveno}}, %%FIXME: not defined?
+  fromslovak       = {{del eslovaco}{del eslovaco}},
+  fromslovene      = {{del esloveno}{del esloveno}},
   fromspanish      = {{del espa\~nol}{del espa\~nol}},
   fromswedish      = {{del sueco}{del sueco}},
+  fromukrainian    = {{del ucraniano}{del ucraniano}},
   countryde        = {{Alemania}{DE}},
   countryeu        = {{Uni\'on Europea}{EU}},
   countryep        = {{Uni\'on Europea}{EP}},
@@ -447,17 +453,17 @@
   countryuk        = {{Reino Unido}{GB}},% FIXME: "Reino Unido" or "Gran Breta\~na"?
   countryus        = {{Estados Unidos}{US}},% FIXME: "Estados Unidos de Am\'erica"?
   patent           = {{patente}{pat\adddot}},
-  patentde         = {{patente alemana}{pat\adddot alemana}},
-  patenteu         = {{patente europea}{pat\adddot europea}},
-  patentfr         = {{patente francesa}{pat\adddot francesa}},
-  patentuk         = {{patente brit\'anica}{pat\adddot brit\'anica}},
-  patentus         = {{patente estadounidense}{pat\adddot estadounidense}},
-  patreq           = {{solicitud de patente}{sol\adddot de pat\adddot}},
-  patreqde         = {{solicitud de patente alemana}{sol\adddot de pat\adddot alemana}},
-  patreqeu         = {{solicitud de patente europea}{sol\adddot de pat\adddot europea}},
-  patreqfr         = {{solicitud de patente francesa}{sol\adddot de pat\adddot francesa}},
-  patrequk         = {{solicitud de patente brit\'anica}{sol\adddot de pat\adddot brit\'anica}},
-  patrequs         = {{solicitud de patente estadounidense}{sol\adddot de pat\adddot estadounidense}},
+  patentde         = {{patente alemana}{pat\adddotspace alemana}},
+  patenteu         = {{patente europea}{pat\adddotspace europea}},
+  patentfr         = {{patente francesa}{pat\adddotspace francesa}},
+  patentuk         = {{patente brit\'anica}{pat\adddotspace brit\'anica}},
+  patentus         = {{patente estadounidense}{pat\adddotspace estadounidense}},
+  patreq           = {{solicitud de patente}{sol\adddotspace de pat\adddot}},
+  patreqde         = {{solicitud de patente alemana}{sol\adddotspace de pat\adddot alemana}},
+  patreqeu         = {{solicitud de patente europea}{sol\adddotspace de pat\adddot europea}},
+  patreqfr         = {{solicitud de patente francesa}{sol\adddotspace de pat\adddot francesa}},
+  patrequk         = {{solicitud de patente brit\'anica}{sol\adddotspace de pat\adddot brit\'anica}},
+  patrequs         = {{solicitud de patente estadounidense}{sol\adddotspace de pat\adddot estadounidense}},
   file             = {{archivo}{archivo}},
   library          = {{biblioteca}{bibl\adddot}},
   abstract         = {{resumen}{resumen}},
@@ -466,11 +472,11 @@
   beforecommonera  = {{antes de la era com\'un}{a\adddotspace e\adddotspace c\adddot}},
   annodomini       = {{despu\'es de Cristo}{d\adddotspace C\adddot}},
   beforechrist     = {{antes de Cristo}{a\adddotspace C\adddot}},
-% circa            = {{}{}},% FIXME: missing
-% spring           = {{}{}},% FIXME: missing
-% summer           = {{}{}},% FIXME: missing
-% autumn           = {{}{}},% FIXME: missing
-% winter           = {{}{}},% FIXME: missing
+  circa            = {{circa}{ca\adddot}},
+  spring           = {{primavera}{prim\adddot}},
+  summer           = {{verano}{ver\adddot}},
+  autumn           = {{oto\~no}{ot\adddot}},
+  winter           = {{invierno}{inv\adddot}},
   am               = {{a\adddotspace m\adddot}{a\adddot m\adddot}},
   pm               = {{p\adddotspace m\adddot}{p\adddot m\adddot}},
 }

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -92,7 +92,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -434,6 +434,7 @@
   langgalician     = {{galiciska}{galiciska}},
   langgerman       = {{tyska}{tyska}},
   langgreek        = {{grekiska}{grekiska}},
+% langhungarian    = {{}{}}, % FIXME: missing
   langitalian      = {{italienska}{italienska}},
   langlatin        = {{latin}{latin}},
 % langlatvian      = {{}{}},% FIXME: missing
@@ -459,6 +460,7 @@
   fromgalician     = {{fr\aa n galiciska}{fr\aa n galiciska}},
   fromgerman       = {{fr\aa n tyska}{fr\aa n tyska}},
   fromgreek        = {{fr\aa n grekiska}{fr\aa n grekiska}},
+% fromhungarian    = {{}{}}, % FIXME: missing
   fromitalian      = {{fr\aa n italienska}{fr\aa n italienska}},
   fromlatin        = {{fr\aa n latin}{fr\aa n latin}},
 % fromlatvian      = {{}{}},% FIXME: missing

Modified: trunk/Master/texmf-dist/tex/latex/biblatex/lbx/ukrainian.lbx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/biblatex/lbx/ukrainian.lbx	2018-11-03 21:10:07 UTC (rev 49068)
+++ trunk/Master/texmf-dist/tex/latex/biblatex/lbx/ukrainian.lbx	2018-11-03 21:11:01 UTC (rev 49069)
@@ -85,7 +85,7 @@
       \forcezerosmdt{\thefield{#2}}%
       \iffieldundef{#3}{}
         {\bibtimesep
-         \forcezeros{\thefield{#3}}}%
+         \forcezerosmdt{\thefield{#3}}}%
        \space
        \ifnumless{\thefield{#1}}{12}
          {\bibstring{am}}
@@ -502,6 +502,7 @@
   langgalician     = {{галісійський}{гал\adddot}},
   langgerman       = {{німецька}{нім\adddot}},
   langgreek        = {{грецька}{грець\adddot}},
+  langhungarian    = {{угорська}{угор\adddot}},
   langitalian      = {{італійська}{італ\adddot}},
   langjapanese     = {{японська}{яп\adddot}},
   langlatin        = {{латинська}{лат\adddot}},
@@ -530,6 +531,7 @@
   fromgalician     = {{з галісійської}{з\addabbrvspace гал\adddot}},
   fromgerman       = {{з німецької}{з\addabbrvspace нім\adddot}},
   fromgreek        = {{з грецької}{з\addabbrvspace грец\adddot}},
+  fromhungarian    = {{з угорської}{з\addabbrvspace угор\adddot}},
   fromitalian      = {{з італійської}{з\addabbrvspace італ\adddot}},
   fromjapanese     = {{з японської}{з\addabbrvspace яп\adddot}},
   fromlatin        = {{з латинської}{з\addabbrvspace лат\adddot}},



More information about the tex-live-commits mailing list