texlive[53660] Master/texmf-dist: babel (3feb20)

commits+karl at tug.org commits+karl at tug.org
Mon Feb 3 23:33:15 CET 2020


Revision: 53660
          http://tug.org/svn/texlive?view=revision&revision=53660
Author:   karl
Date:     2020-02-03 23:33:15 +0100 (Mon, 03 Feb 2020)
Log Message:
-----------
babel (3feb20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/babel/README.md
    trunk/Master/texmf-dist/doc/latex/babel/babel.pdf
    trunk/Master/texmf-dist/source/latex/babel/babel.dtx
    trunk/Master/texmf-dist/source/latex/babel/babel.ins
    trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
    trunk/Master/texmf-dist/source/latex/babel/locale.zip
    trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua
    trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
    trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua
    trunk/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua
    trunk/Master/texmf-dist/tex/generic/babel/babel.def
    trunk/Master/texmf-dist/tex/generic/babel/babel.sty
    trunk/Master/texmf-dist/tex/generic/babel/blplain.tex
    trunk/Master/texmf-dist/tex/generic/babel/bplain.tex
    trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ii/babel-ii.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/km/babel-km.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/lo/babel-lo.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Beng.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Gujr.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Knda.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Mlym.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Telu.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/th/babel-th.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-HK.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini
    trunk/Master/texmf-dist/tex/generic/babel/luababel.def
    trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
    trunk/Master/texmf-dist/tex/generic/babel/plain.def
    trunk/Master/texmf-dist/tex/generic/babel/switch.def
    trunk/Master/texmf-dist/tex/generic/babel/txtbabel.def
    trunk/Master/texmf-dist/tex/generic/babel/xebabel.def

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-austria-traditional.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-switzerland-traditional.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-traditional.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-naustrian.tex
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-ngerman.tex

Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md	2020-02-03 22:33:15 UTC (rev 53660)
@@ -1,4 +1,4 @@
-## Babel 3.38
+## Babel 3.39
 
 This package manages culturally-determined typographical (and other)
 rules, and hyphenation patterns for a wide range of languages.  Many
@@ -7,22 +7,15 @@
 
 The latest stable version is available on <https://ctan.org/pkg/babel>.
 
-Languages are not part of the Babel core any more; in particular, it
-shall be no longer necessary to synchronize Babel core releases with
-releases of Babel language files. See CONTRIB for further details
-about contributing a language. You may also create an ini file or
-improve the existing ones -- it's a trivial task (no programming
-skills required at all), but don't hesitate to ask for help.
+Changes in version 3.39 are described in:
 
+https://github.com/latex3/babel/wiki/What's-new-in-babel-3.39
+
 Included is a set of ini files for about 200 languages.
 
 The best way to install and/or update it is with the help of package
 managers.
 
-Changes are described in babel.pdf with the label "New <version>". The
-manual has been expanded to include some tips and tricks, but it will
-be improved in next releases.
-
 ### Reporting Bugs
 
 If you wish to report a problem or bug in any of these packages please
@@ -51,14 +44,27 @@
 ### Latest changes
 
 ```
+3.39   2020-02-03
+       - Languages can now be loaded on the fly (via \babelprovide).
+       - With \babelposthyphenation captured chars can now be mapped in
+         the replacement (lua).
+       - \babelcharproperty can be used to assign specific chars to a
+         locale (lua).
+       - Fixes:
+          - Sichuan Yi: line breaking was not activated (lua).
+          - Hyphenation was not always applied with onchar (lua).
+          - bidi=basic-l/basic-r where not activated correctly (xe).
+          - Thai and turkish raised and error without import in
+            \babelprovide.
+          - Cleaned up some ini/tex locale files (de, zh, sa).
+
 3.38   2020-01-15
        - Automatic switching of ids (\language and \localeid), and fonts
-         based on script blocks (lua).s
+         based on script blocks (lua).
        - New macro - \localeinfo, to access the basic data in the ini
          file loaded by languages.
 See https://github.com/latex3/babel/wiki/What's-new-in-babel-3.38
-       
-       
+
 3.37   2019-12-08
        - Preliminary code for non-standard hyphenation, like ff ->
          ff-f (lua).

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

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2020-02-03 22:33:15 UTC (rev 53660)
@@ -1,7 +1,7 @@
 % \iffalse
 % This document requires lualatex
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -31,7 +31,7 @@
 %
 % \iffalse
 %<*filedriver>
-\ProvidesFile{babel.dtx}[2020/01/15 v3.38 The Babel package]
+\ProvidesFile{babel.dtx}[2020/02/03 v3.39 The Babel package]
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
 \usepackage{fontspec}
@@ -235,21 +235,25 @@
 \part{User guide}
 
 \begin{itemize}
-\item This user guide focuses on \LaTeX. There are also some notes on
-  its use with Plain \TeX.
+\item This user guide focuses on internationalization and localization
+  with \LaTeX. There are also some notes on its use with Plain \TeX.
 
 \item  Changes and new features with relation to version 3.8 are
-  highlighted with \New{X.XX}\hspace{-.5em}. The most recent features
+  highlighted with \New{X.XX}\hspace{-.5em}, and there are some notes
+  for the latest versions in
+  \href{https://github.com/latex3/babel/wiki}{the \babel{} wiki}.
+  The most recent features
   could be still unstable. Please, report any issues you find in      
-  \texttt{https://github.com/latex3/babel/issues}, which is better 
+  \href{https://github.com/latex3/babel/issues}{GitHub}, which is better 
   than just complaining on an e-mail list or a web forum.
 
 \item If you are interested in the \TeX{} multilingual support, please
-  join the \textsf{kadingira} list on
-  \texttt{http://tug.org/mailman/listinfo/kadingira}. You can follow
+  join the  \href{http://tug.org/mailman/listinfo/kadingira}{kadingira
+  mail list}. You can follow
   the development of \babel{} in
-  \texttt{https://github.com/latex3/babel} (which provides some sample
-  files, too).
+  \href{https://github.com/latex3/babel}{GitHub} (which provides many
+  \href{https://github.com/latex3/babel/tree/master/samples}{sample
+  files}, too).
 
 \item  See section \ref{contribute} for contributing a language.
 
@@ -492,6 +496,40 @@
 \end{verbatim}
 \end{example}
 
+\subsection{Mostly monolingual documents}
+
+\New{3.39} Very often, multilingual documents consist of a main
+language with small pieces of text in another languages (words, idioms,
+short sentences). Typically, all you need is to set the line breaking
+rules and, perhaps, the font. In such a case, \babel{} now does not
+require declaring these secondary languages explicitly, because the
+basic settings are loaded on the fly when the language is selected (and
+also when provided in the optional argument of |\babelfont|, if used.)
+
+This is particularly useful, too, when there are short texts of this
+kind coming from an external source whose contents are not known on
+beforehand (for example, titles in a bibliography). At this regard, it
+is worth remembering that |\babelfont| does not load any font until
+required, so that it can be used just in case.
+
+\begin{example}
+  A trivial document is:
+\setengine{luatex/xetex}
+\begin{verbatim}
+\documentclass{article}
+\usepackage[english]{babel}
+
+\babelfont[russian]{rm}{FreeSerif}
+
+\begin{document}
+
+English. \foreignlanguage{russian}{Русский}.
+\foreignlanguage{spanish}{Español}
+
+\end{document}
+\end{verbatim}
+\end{example}
+
 \subsection{Modifiers}
 
 \New{3.9c} The basic behavior of some languages can be modified when
@@ -541,6 +579,7 @@
   cases, the error vanishes when the document is typeset again, but in
   more severe ones you will need to remove the |aux| file.
 \end{itemize}
+
 \subsection{Plain}
 
 In Plain, load languages styles with |\input| and then use
@@ -1188,10 +1227,18 @@
 
 \subsection{\texttt{ini} files}
 
-An alternative approach to define a language is by means of an
-\texttt{ini} file. Currently \babel{} provides about 200 of these
-files containing the basic data required for a language.
+An alternative approach to define a language (or, more precisely, a
+\textit{locale}) is by means of an \texttt{ini} file. Currently
+\babel{} provides about 200 of these files containing the basic data
+required for a locale. 
 
+|ini| files are not meant only for \babel, and they has been devised as
+a resource for other packages. To easy interoperability between \TeX{}
+and other systems, they are identified with the BCP 47 codes as
+preferred by the Unicode Common Language Data Repository, which was
+used as source for most of the data provided by these files, too (the
+main exception being the |\...name| strings).
+
 Most of them set the date, and many also the captions (Unicode and
 LICR). They will be evolving with the time to add more features
 (something to keep in mind if backward compatibility is important). The
@@ -1280,6 +1327,19 @@
 \end{description}
 \end{note}
 
+\begin{note}
+  Wikipedia defines a \textit{locale} as follows: “In computing, a
+  locale is a set of parameters that defines the user’s language,
+  region and any special variant preferences that the user wants to see
+  in their user interface. Usually a locale identifier consists of at
+  least a language code and a country/region code.” \Babel{} is moving
+  gradually from the old and fuzzy concept of \textit{language} to the
+  more modern of \textit{locale}. Note each locale is by itself a
+  separate “language”, which explains why there are so many files. This
+  is on purpose, so that possible variants can be created and/or
+  redefined easily.
+\end{note}
+
 Here is the list (u means Unicode captions, and l means LICR
 captions):
 
@@ -1891,6 +1951,26 @@
 \endgroup
 \hrule
 
+\bigskip
+
+\textbf{Modifying and adding values to |ini| files}
+
+\New{3.39} There is a way to modify the values of |ini| files when they
+get loaded with |\babelprovide| and |import|. To set, say,
+|digits.native| in the |numbers| section, use something like
+|numbers/digits.native=abcdefghij|. Keys may be added, too. Without
+|import| you may modify the identification keys.
+
+This can be used to create private variants easily. All you need is to
+import the same |ini| file with a different locale name and different
+parameters. 
+
+% \begin{example}
+%   Let's assume you need only the basic features of `spanish`, so that
+%   the |ini| file is enough, and also a variant with your own
+%   hyphenation with  
+% \end{example}
+
 \subsection{Selecting fonts}
 
 \New{3.15} Babel provides a high level interface on top of |fontspec|
@@ -1988,22 +2068,18 @@
 \babelfont[hindi]{rm}{Shobhika}
 \end{verbatim}
   This makes sure the OpenType script for Devanagari is |deva| and not
-  |dev2| (\luatex{} does not detect automatically the correct 
-  script\footnote{And even with the correct code some fonts could be 
-  rendered incorrectly by \textsf{fontspec}, so double-check the 
-  results. \xetex{} fares better, but some fonts are still
-  problematic.}). You may also pass some options to \textsf{fontspec}:
-  with |silent|, the warnings about unavailable scripts or languages
-  are not shown (they are only really useful when the document format
-  is being set up).
+  |dev2|, in case it is not detected correctly. You may also pass some
+  options to \textsf{fontspec}: with |silent|, the warnings about
+  unavailable scripts or languages are not shown (they are only really
+  useful when the document format is being set up).
 \end{note}
 
 \begin{note}
   Directionality is a property affecting margins, indentation, column
-  order, etc., not just text. Therefore, it is under the direct
-  control of the language, which applies both the script and the
-  direction to the text. As a consequence, there is no need to set
-  \texttt{Script} when declaring a font (nor \texttt{Language}). In
+  order, etc., not just text. Therefore, it is under the direct control
+  of the language, which applies both the script and the direction to
+  the text. As a consequence, there is no need to set \texttt{Script}
+  when declaring a font with |\babelfont| (nor \texttt{Language}). In
   fact, it is even discouraged.
 \end{note}
 
@@ -2012,10 +2088,10 @@
   (|rm|, |sf|, |tt|, and the like). If a language is switched when an
   \textit{ad hoc} font is active, or you select the font with this
   command, neither the script nor the language is passed. You must
-  add them by hand. This is by design, for several reasons (for
+  add them by hand. This is by design, for several reasons —for
   example, each font has its own set of features and a generic setting
   for several of them could be problematic, and also a “lower-level”
-  font selection is useful).
+  font selection is useful.
 \end{note}
 
 \begin{note}
@@ -2028,53 +2104,45 @@
 \end{note}
 
 \begin{warning}
-  Do not use |\set|\textit{xxxx}|font| and |\babelfont| at the same
-  time.  |\babelfont| follows the standard \LaTeX{} conventions to set
-  the basic families -- define |\|\textit{xx}|default|, and activate
-  it with |\|\textit{xx}|family|. On the other hand,
-  |\set|\textit{xxxx}|font| in \textsf{fontspec} takes a different
-  approach, because |\|\textit{xx}|family| is redefined with the
-  family name hardcoded (so that |\|\textit{xx}|default| becomes
-  no-op). Of course, both methods are incompatible, and if you use
-  |\set|\textit{xxxx}|font|, font switching with |\babelfont| just
-  does \textit{not} work (nor the standard |\|\textit{xx}|default|,
-  for that matter). As of \New{3.34} there is an attempt to make them
-  compatible, but the language system will not be set by \babel and
-  should be set with |fontspec| if necessary.
+  Using |\set|\textit{xxxx}|font| and |\babelfont| at the same time is
+  discouraged, but very often works as expected. However, be aware with
+  |\set|\textit{xxxx}|font| the language system will not be set by
+  \babel{} and should be set with |fontspec| if necessary.
 \end{warning}
 
 \begin{troubleshooting}
-\trouble{Package fontspec Warning: 'Language 'LANG' not available for
-font 'FONT' with script 'SCRIPT' 'Default' language used instead'}
-\textit{Package fontspec Warning: 'Language 'LANG' not available for
-font 'FONT' with script 'SCRIPT' 'Default' language used instead'}.
-\textbf{This is \textit{not} and error.}
-This warning is shown by \textsf{fontspec}, not by \babel. It could be
-irrelevant for English, but not for many other languages, including
-Urdu and Turkish. This is a useful and harmless warning, and if
-everything is fine with your document the best thing you can do is just
-to ignore it altogether.
+  \trouble{Package fontspec Warning: 'Language 'LANG' not available for
+  font 'FONT' with script 'SCRIPT' 'Default' language used instead'}
+  \textit{Package fontspec Warning: 'Language 'LANG' not available for
+  font 'FONT' with script 'SCRIPT' 'Default' language used instead'}.
+
+  \textbf{This is \textit{not} and error.} This warning is shown by
+  \textsf{fontspec}, not by \babel. It could be irrelevant for English,
+  but not for many other languages, including Urdu and Turkish. This is
+  a useful and harmless warning, and if everything is fine with your
+  document the best thing you can do is just to ignore it altogether.
 \end{troubleshooting}
 
 \begin{troubleshooting}
-\trouble{Package babel Info: The following fonts are not babel standard families}
-\textit{Package babel Info: The following fonts are not babel
-standard families}.
+  \trouble{Package babel Info: The following fonts are not babel
+  standard families} \textit{Package babel Info: The following fonts
+  are not babel standard families}.
 
-\textbf{This is \textit{not} and error.} \babel{} assumes that if you
-are using |\babelfont| for a family, very likely you want to define the
-rest of them. If you don't, you can find some inconsistencies between
-families. This checking is done at the beginning of the document, at a
-point where we cannot know which families will be used.
+  \textbf{This is \textit{not} and error.} \babel{} assumes that if you
+  are using |\babelfont| for a family, very likely you want to define
+  the rest of them. If you don't, you can find some inconsistencies
+  between families. This checking is done at the beginning of the
+  document, at a point where we cannot know which families will be
+  used.
 
-Actually, there is no real need to use |\babelfont| in a monolingual
-document, if you set the language system in |\setmainfont| (or not,
-depending on what you want).
+  Actually, there is no real need to use |\babelfont| in a monolingual
+  document, if you set the language system in |\setmainfont| (or not,
+  depending on what you want).
 
-As the message explains, \textit{there is nothing intrinsically wrong}
-with not defining all the families. In fact, there is nothing
-intrinsically wrong with not using |\babelfont| at all. But you must be
-aware that this may lead to some problems.
+  As the message explains, \textit{there is nothing intrinsically
+  wrong} with not defining all the families. In fact, there is nothing
+  intrinsically wrong with not using |\babelfont| at all. But you must
+  be aware that this may lead to some problems.
 \end{troubleshooting}
 
 \subsection{Modifying a language}
@@ -2090,7 +2158,7 @@
 }
 \end{verbatim}
 As of 3.15, there is no need to hide spaces with \texttt{\%%
-} (\babel{} removes them), but it is advisable to do it.
+} (\babel{} removes them), but it is advisable to do so.
 \item The new way, which is found in |bulgarian|, |azerbaijani|,
   |spanish|, |french|, |turkish|, |icelandic|, |vietnamese| and a few
   more, as well as in languages created with |\babelprovide| and its
@@ -2177,6 +2245,17 @@
 \end{verbatim}
 \end{example}
 
+\begin{example}
+  Locales with names based on BCP 47 codes can be created with
+  something like:
+\begin{verbatim}
+  \babelprovide[import=en-US]{enUS}
+\end{verbatim}
+  Note, however, mixing ways to identify locales can lead to problems.
+  For example, is \verb|yi| the name of the language spoken by the Yi
+  people or is it the code for Yiddish?
+\end{example}
+
 The main language is not changed (\texttt{danish} in this example).
 So, you must add |\selectlanguage{arhinish}| or other selectors where
 necessary.
@@ -2206,8 +2285,7 @@
 and the CLDR provided by Unicode. Not all languages in the latter are
 complete, and therefore neither are the |ini| files. A few languages
 will show a warning about the current lack of suitability of the date
-format (\textsf{hindi}, \textsf{french}, \textsf{breton}, and
-\textsf{occitan}).
+format (\textsf{french}, \textsf{breton}, and \textsf{occitan}).
 
 Besides |\today|, this option defines an additional command for dates:
 |\<language>date|, which takes three arguments, namely, year, month and
@@ -2267,24 +2345,26 @@
 inconsistent, this makes setting a language up easier in most typical
 cases.
 
+\Describe{onchar=}{\texttt{ids} $\string|$ \texttt{fonts}}
+\New{3.38} This option is much like an ‘event’ called with a character
+belonging to the script of this locale is found. There are currently
+two ‘actions’, which can be used at the same time (separated by a
+space): with |ids| the |\language| and the |\localeid| are set to the
+values of this locale; with |fonts|, the fonts are changed to those of
+the this locale (as set with |\babelfont|). This option is not
+compatible with |mapfont|. Characters can be added with
+|\babelcharproperty|.
+
 \Describe{mapfont=}{\texttt{direction}}
 Assigns the font for the writing direction of this language (only with
-|bidi=basic|). More precisely, what |mapfont=direction| means is, ‘when
-a character has the same direction as the script for the “provided”
-language, then change its font to that set for this language’. There
-are 3 directions, following the bidi Unicode algorithm, namely,
-Arabic-like, Hebrew-like and left to right. So, there should be at most
-3 directives of this kind.
+|bidi=basic|). Whenever possible, instead of this option use |onchar|,
+based on the script, which usually makes more sense. More precisely,
+what |mapfont=direction| means is, ‘when a character has the same
+direction as the script for the “provided” language, then change its
+font to that set for this language’. There are 3 directions, following
+the bidi Unicode algorithm, namely, Arabic-like, Hebrew-like and left
+to right. So, there should be at most 3 directives of this kind.
 
-\Describe{onchar=}{\texttt{ids} $\string|$ \texttt{fonts}}
-\New{3.38} This options is much like an ‘event’ called with a character
-belonging to the script of the current locale is found. There are two
-action, which can be used at the same time (separated by a space): with
-|ids| the |\language| and the |\localeid| are set to the values of this
-locale; with |fonts|, the fonts are changed to those of the current
-locale (as set with |\babelfont|). This option is not compatible with
-|mapfont|.
-
 \Describe{intraspace=}{\meta{base} \meta{shrink} \meta{stretch}}
 Sets the interword space for the writing system of the language, in em
 units (so, |0 .1 0| is |0em plus .1em|). Like |\spaceskip|, the em unit
@@ -2393,6 +2473,12 @@
 
 \subsection{Hyphenation and line breaking}
 
+\Babel{} deals with three kinds of line breaking rules: Western,
+typically the LGC group, South East Asian, like Thai, and CJK, but
+support depends on the engine: \textsf{pdftex} only deals with the
+former, \xetex{} also with the second one, while \luatex{} provides
+basic rules for the latter, too.
+
 \Describe{\babelhyphen}{%
   \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}\marg{type}}
 \DescribeOther\babelhyphen{%
@@ -2515,6 +2601,55 @@
 of the previous char in \luatex, and the font size set by the last
 |\selectfont| in \xetex).
 
+\Describe{\babelposthyphenation}{\marg{hyphenrules-name}%
+          \marg{lua-pattern}\marg{replacement}}
+
+\New{3.37-3.39} With \luatex{} it is now possible to define
+non-standard hyphenation rules, like |f-f| $\to$ |ff-f|, repeated
+hyphens, ranked ruled (or more precisely, ‘penalized’ hyphenation
+points), and so on. No rules are currently provided by default, but
+they can be defined as shown in the following example, where |{1}| is
+the first captured char (between |()| in the pattern):
+\begin{verbatim}
+\babelposthyphenation{german}{([fmtrp]) | {1}}
+{
+  { no = {1}, pre = {1}{1}- }, % Replace first char with disc
+  remove,                      % Remove automatic disc (2nd node)
+  {}                           % Keep last char, untouched
+}
+\end{verbatim}
+
+In the replacements, a captured char may be mapped to another, too. For
+example, if the first capture reads |([ΐΰ])|, the replacement could be
+\verb+{1|ΐΰ|ίύ}+, which maps \textit{ΐ} to \textit{ί}, and \textit{ΰ}
+to \textit{ύ}, so that the diaeresis is removed.
+
+This feature is activated with the first |\babelposthyphenation|.
+
+See the \href{https://github.com/latex3/babel/wiki}{\babel\ wiki} for a
+more detailed description and some examples. It also describes an
+additional replacement type with the key |string|.
+
+\begin{example}
+  Although the main purpose of this command is non-standard
+  hyphenation, it may actually be used for other transformations (after
+  hyphenation is applied, so you must take discretionaries into
+  account). For example, you can use the |string| replacement to
+  replace a character (or series of them) by another character (or
+  series of them). Thus, to enter \textit{ž} as |zh| and \textit{š} as
+  |sh| in a newly created locale for transliterated Russian:
+\begin{verbatim}
+\babelprovide[hyphenrules=+]{russian-latin}   % Create locale
+\babelposthyphenation{russian-latin}{([sz])h} % Create rule
+{
+  { string = {1|sz|šž} },
+  remove
+}
+\end{verbatim}
+  In other words, it is a quite general tool. (A counterpart
+  |\babelprehyphenation| is on the way.)
+\end{example}
+
 \subsection{Selecting scripts}
 
 Currently \babel{} provides no standard interface to select
@@ -2589,6 +2724,14 @@
   options described below).
 \end{warning}
 
+\begin{warning}
+  If characters to be mirrored are shown without changes with \luatex,
+  try with the following line:
+\begin{verbatim}
+\babeladjust{bidi.mirroring=off}
+\end{verbatim}
+\end{warning}
+
 There are some package options controlling bidi writing.
 
 \Describe{bidi=}{\texttt{default} $\string|$ \texttt{basic}
@@ -2612,13 +2755,6 @@
 tentative, but it mostly works. For RL documents use the former, and
 for LR ones use the latter.
 
-\New{3.37} There is some experimental support for \textsf{luahbtex}
-(with |lualatex-dev|) and the latest releases of \textsf{luaotfload}
-(3.11), with |Renderer = Harfbuzz| in \textsf{fontspec}. Since it is
-based on \luatex, the option |basic| mostly works (You may need
-deactivate the |rtlm| or the |rtla| font features, or alternatively
-deactive mirroring in \babel{} with |\babeladjust|.)
-
 There are samples on GitHub, under \texttt{/required/babel/samples}.
 See particularly |lua-bidibasic.tex| and |lua-secenum.tex|.
 
@@ -2625,7 +2761,7 @@
 \begin{example}
   The following text comes from the Arabic Wikipedia (article about
   Arabia). Copy-pasting some text from the Wikipedia is a good way to
-  test this feature. Remember |basic-r| is available in \luatex{}
+  test this feature. Remember |basic| is available in \luatex{}
   only.
   \begingroup
 % If you are looking at the code to see how it has been written, you
@@ -2638,7 +2774,7 @@
 \begin{verbatim}
 \documentclass{article}
 
-\usepackage[_bidi=basic-r_]{babel}
+\usepackage[_bidi=basic_]{babel}
 
 _\babelprovide[import, main]{arabic}_
 
@@ -2676,7 +2812,7 @@
 
 \usepackage[english, _bidi=basic_]{babel}
 
-\babelprovide[_mapfont=direction_]{arabic}
+\babelprovide[_onchar=ids fonts_]{arabic}
 
 \babelfont{rm}{Crimson}
 \babelfont[*arabic]{rm}{FreeSerif}
@@ -2691,7 +2827,7 @@
 \end{document}
 \end{verbatim}
   \endgroup
-  In this example, and thanks to |mapfont=direction|, any Arabic letter
+  In this example, and thanks to |onchar=ids fonts|, any Arabic letter
   (because the language is |arabic|) changes its font to that set for
   this language (here defined via |*arabic|, because Crimson does not
   provide Arabic letters).
@@ -2892,6 +3028,7 @@
 \subsection{Language attributes}
 
 \DescribeMacro{\languageattribute}
+
 This is a user-level command, to be used in the preamble of a
 document (after |\usepackage[...]{babel}|), that declares which
 attributes are to be used for a given language. It takes two
@@ -3088,12 +3225,14 @@
 to set them for glyphs in the PUA).
 
 \Describe{\babelcharproperty}{\marg{char-code}\oarg{to-char-code}%
-          \marg{propertry}\marg{value}}
+          \marg{property}\marg{value}}
 
 \New{3.32} Here, \marg{char-code} is a number (with \TeX{} syntax).
 With the optional argument, you can set a range of values. There are
 three properties (with a short name, taken from Unicode): |direction|
-(|bc|), |mirror| (|bmg|), |linebreak| (|lb|). The settings are global.
+(|bc|), |mirror| (|bmg|), |linebreak| (|lb|). The settings are global,
+and this command is allowed only in vertical mode (the preamble or
+between paragraphs).
 
 For example:
 \begin{verbatim}
@@ -3102,8 +3241,12 @@
 \babelcharproperty{`)}{linebreak}{cl} % or id, op, cl, ns, ex, in, hy
 \end{verbatim}
 
-This command is allowed only in vertical mode (the preamble or between
-paragraphs).
+\New{3.39} Another property is |locale|, which adds characters to the
+list used by |onchar| in |\babelprovide|, or, if the last argument is
+empty, removes them. The last argument is the locale name:
+\begin{verbatim}
+\babelcharproperty{`,}{locale}{english}
+\end{verbatim}
 
 \subsection{Tweaking some features}
 
@@ -3243,41 +3386,6 @@
 version of |\foreignlanguage|).
 
 \medskip
-\textbf{Modifying, and adding, values of |ini| files}
-
-\New{3.37} There is a way to modify the values of |ini| files when they
-get loaded with |\babelprovide|. To set, say, |digits.native| in the
-|numbers| section, use something like
-|numbers..digits.native=abcdefghij| (note the double dot between the
-section and the key name). New keys may be added, too.
-
-\medskip
-\textbf{Non-standard hyphenation}
-
-\New{3.37} With \luatex{} it is now possible to define non-standard
-hyohenation rules, like |f-f| $\to$ |ff-f|. No rules are currently
-provided by default, but they can be defined as shown in the following
-example:
-\begin{verbatim}
-\babelposthyphenation{ngerman}{([fmtrp]) | {1}}
-{
-  { no = {1}, pre = {1}{1}-}, % Replace first char with disc
-  remove,                     % Remove automatic disc
-  {}                          % Keep last char, untouched
-}
-\end{verbatim}
-
-This feature must be explicitly activated with:
-\begin{verbatim}
-\babeladjust{ hyphenation.extra = on }
-\end{verbatim}
-
-See the \babel{} wiki for a more detailed description and some examples:
-\begin{verbatim}
-https://github.com/latex3/babel/wiki
-\end{verbatim}
-
-\medskip
 \textbf{Old and deprecated stuff}
 
 A couple of tentative macros were provided by \babel{} ($\ge$3.9g) with
@@ -4222,8 +4330,8 @@
 % \section{Tools}
 %
 %    \begin{macrocode}
-%<<version=3.38>>
-%<<date=2020/01/15>>
+%<<version=3.39>>
+%<<date=2020/02/03>>
 %    \end{macrocode}
 %
 % \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -4715,7 +4823,6 @@
 %
 % \changes{babel~3.30}{2019/04/22}{Callbacks aren't specific to
 %   bidi any more, so they are moved.}
-% \changes{babel~3.32}{2019/05/30}{Consider Harf.}
 %
 %    \begin{macrocode}
 \ifx\bbl at languages\@undefined\else
@@ -4737,8 +4844,6 @@
   \bbl at languages
 \fi
 \ifodd\bbl at engine
-  % Harftex is evolving, so the callback is not harcoded, just in case
-  \def\bbl at harfpreline{Harf pre_linebreak_filter callback}%
   \def\bbl at activate@preotf{%
     \let\bbl at activate@preotf\relax  % only once
     \directlua{
@@ -4768,23 +4873,14 @@
         Babel.pre_otfload_v,
         'Babel.pre_otfload_v',
         luatexbase.priority_in_callback('pre_linebreak_filter',
-           '\bbl at harfpreline') 
-        or luatexbase.priority_in_callback('pre_linebreak_filter',
-           'luaotfload.node_processor')
-        or nil)
+          'luaotfload.node_processor') or nil)
       %
       luatexbase.add_to_callback('hpack_filter',
         Babel.pre_otfload_h,
         'Babel.pre_otfload_h',
         luatexbase.priority_in_callback('hpack_filter',
-           '\bbl at harfpreline') 
-        or luatexbase.priority_in_callback('hpack_filter',
-           'luaotfload.node_processor')
-        or nil)
-    }%
-    \@ifpackageloaded{harfload}%
-      {\directlua{ Babel.mirroring_enabled = false }}%
-      {}}
+          'luaotfload.node_processor') or nil)
+    }}
   \let\bbl at tempa\relax
   \@ifpackagewith{babel}{bidi=basic}%
     {\def\bbl at tempa{basic}}%
@@ -6771,20 +6867,8 @@
       \ifx\bbl at known@attribs\@undefined
         \in at false
       \else
-%    \end{macrocode}
-%
-%    Now we need to see if the attribute occurs in the list of
-%    already selected attributes.
-%
-%    \begin{macrocode}
         \bbl at xin@{,\bbl at tempc-##1,}{,\bbl at known@attribs,}%
       \fi
-%    \end{macrocode}
-%
-%    When the attribute was in the list we issue a warning; this might
-%    not be the users intention.
-%
-%    \begin{macrocode}
       \ifin@
         \bbl at warning{%
           You have more than once selected the attribute '##1'\\%
@@ -7349,6 +7433,7 @@
   \edef\bbl at L{\zap at space#1 \@empty}%
   \edef\bbl at G{\zap at space#2 \@empty}%
   \bbl at startcmds@ii}
+\let\bbl at startcommands\StartBabelCommands
 %    \end{macrocode}
 %
 %    Parse the encoding info to get the label, input, and font parts.
@@ -7474,6 +7559,7 @@
   \endgroup
   \endgroup
   \bbl at scafter}
+\let\bbl at endcommands\EndBabelCommands
 %    \end{macrocode}
 %
 %    Now we define commands to be used inside |\StartBabelCommands|.
@@ -7602,7 +7688,7 @@
   \newcommand\SetHyphenMap[1]{%
     \bbl at forlang\bbl at tempa{%
       \expandafter\bbl at stringdef
-        \csname\bbl at tempa @bbl at hyphenmap\endcsname{##1}}}
+        \csname\bbl at tempa @bbl at hyphenmap\endcsname{##1}}}%
 %<</Macros local to BabelCommands>>
 %    \end{macrocode}
 %
@@ -8213,7 +8299,7 @@
   \let\bbl at savelangname\languagename
   \edef\bbl at savelocaleid{\the\localeid}%
   % Set name and locale id
-  \def\languagename{#2}%
+  \edef\languagename{#2}%
   % \global\@namedef{bbl at lcname@#2}{#2}%
   \bbl at id@assign
   \let\bbl at KVP@captions\@nil
@@ -8230,7 +8316,7 @@
   \let\bbl at KVP@onchar\@nil
   \let\bbl at KVP@chargroups\@nil
   \bbl at forkv{#1}{%  TODO - error handling
-    \in@{..}{##1}%
+    \in@{/}{##1}%
     \ifin@
       \bbl at renewinikey##1\@@{##2}%
     \else
@@ -8279,8 +8365,10 @@
          \bbl at read@ini{##1}{basic data}%
          \bbl at exportkey{chrng}{characters.ranges}{}%
          \bbl at exportkey{dgnat}{numbers.digits.native}{}%
+         \bbl at exportkey{lnbrk}{typography.linebreaking}{h}%
          \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
          \bbl at exportkey{intsp}{typography.intraspace}{}%
+         \endinput
        \endgroup}%           boxed, to avoid extra spaces:
      {\setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}}}%
     {}%
@@ -8301,10 +8389,15 @@
         Babel.locale_mapped = true
         Babel.linebreaking.add_before(Babel.locale_map)
         Babel.loc_to_scr = {}
-        Babel.chr_to_loc = {}
+        Babel.chr_to_loc = Babel.chr_to_loc or {}
       end}%
     \bbl at xin@{ ids }{ \bbl at KVP@onchar\space}%
     \ifin@
+      \ifx\bbl at starthyphens\@undefined % Needed if no explicit selection
+        \AddBabelHook{babel-onchar}{beforestart}{{\bbl at starthyphens}}%
+      \fi
+      \bbl at exp{\\\bbl at add\\\bbl at starthyphens
+        {\\\bbl at patterns@lua{\languagename}}}%
       % TODO - error/warning if no script
       \directlua{
         if Babel.script_blocks['\bbl at cs{sbcp@\languagename}'] then
@@ -8323,7 +8416,7 @@
         if Babel.script_blocks['\bbl at cs{sbcp@\languagename}'] then
           Babel.loc_to_scr[\the\localeid] =
             Babel.script_blocks['\bbl at cs{sbcp@\languagename}']
-        end}
+        end}%
       \ifx\bbl at mapselect\@undefined
         \AtBeginDocument{%
           \expandafter\bbl at add\csname selectfont \endcsname{{\bbl at mapselect}}%
@@ -8343,9 +8436,6 @@
     \fi
     % TODO - catch non-valid values
   \fi
-%   \ifx\bbl at KVP@chargroups\@nil\else
-%      \bbl at chargroups
-%   \fi
   % == mapfont ==
   % For bidi texts, to switch the font based on direction
   \ifx\bbl at KVP@mapfont\@nil\else
@@ -8430,7 +8520,7 @@
                return head
              end
            end
-        }}
+        }}%
     \fi
   \fi
   % == require.babel in ini ==
@@ -8497,7 +8587,7 @@
   \@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands
   \@namedef{extras#1}{}%
   \@namedef{noextras#1}{}%
-  \StartBabelCommands*{#1}{captions}%
+  \bbl at startcommands*{#1}{captions}%
     \ifx\bbl at KVP@captions\@nil %      and also if import, implicit
       \def\bbl at tempb##1{%             elt for \bbl at captionslist
         \ifx##1\@empty\else
@@ -8520,7 +8610,7 @@
       \bbl at savetoday
       \bbl at savedate
     \fi
-  \EndBabelCommands
+  \bbl at endcommands
   \bbl at exp{%
     \def\<#1hyphenmins>{%
       {\bbl at ifunset{bbl at lfthm@#1}{2}{\@nameuse{bbl at lfthm@#1}}}%
@@ -8620,7 +8710,7 @@
     \def\bbl at inipreread##1=##2\@@{%
       \bbl at trim@def\bbl at tempa{##1}% Redundant below !!
       % Move trims here ??
-      \bbl at ifunset{bbl at KVP@\bbl at section..\bbl at tempa}%
+      \bbl at ifunset{bbl at KVP@\bbl at section/\bbl at tempa}%
         {\expandafter\bbl at inireader\bbl at tempa=##2\@@}%
         {}}%
     \let\bbl at inireader\bbl at iniskip
@@ -8643,6 +8733,7 @@
     \@nameuse{bbl at renew@\bbl at section}%
     \global\bbl at csarg\let{renew@\bbl at section}\relax
     \@nameuse{bbl at secpost@\bbl at section}%  
+%    \bbl at csarg\bbl at toglobal{inikeys@\languagename}%
   \fi}
 \def\bbl at iniline#1\bbl at iniline{%
   \@ifnextchar[\bbl at inisec{\@ifnextchar;\bbl at iniskip\bbl at inipreread}#1\@@}% ]
@@ -8665,7 +8756,7 @@
   \@nameuse{bbl at secpost@\bbl at section}%  ends previous section
   \def\bbl at section{#1}%                 starts current section
   \def\bbl at elt##1##2{%
-    \@namedef{bbl at KVP@#1..##1}{}}%
+    \@namedef{bbl at KVP@#1/##1}{}}%
   \@nameuse{bbl at renew@#1}%
   \@nameuse{bbl at secpre@#1}%  pre-section `hook'
   \bbl at ifunset{bbl at inikv@#1}%
@@ -8672,7 +8763,7 @@
     {\let\bbl at inireader\bbl at iniskip}%
     {\bbl at exp{\let\\\bbl at inireader\<bbl at inikv@#1>}}}
 \let\bbl at renewlist\@empty
-\def\bbl at renewinikey#1..#2\@@#3{%
+\def\bbl at renewinikey#1/#2\@@#3{%
   \bbl at ifunset{bbl at renew@#1}%
     {\bbl at add@list\bbl at renewlist{#1}}%
     {}%
@@ -8732,6 +8823,7 @@
   \bbl at exportkey{lfthm}{typography.lefthyphenmin}{2}%
   \bbl at exportkey{rgthm}{typography.righthyphenmin}{3}%
   \bbl at exportkey{prehc}{typography.prehyphenchar}{}%
+  \bbl at exportkey{lnbrk}{typography.linebreaking}{h}%
   \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
   \bbl at exportkey{intsp}{typography.intraspace}{}%
   \bbl at exportkey{jstfy}{typography.justify}{w}%
@@ -9016,9 +9108,7 @@
 \@namedef{bbl at ADJ@layout.lists at on}{%
   \bbl at adjust@layout{\let\list\bbl at OL@list}}
 \@namedef{bbl at ADJ@hyphenation.extra at on}{%
-  \directlua{
-    Babel.linebreaking.add_after(Babel.post_hyphenate_replace)
-  }}
+  \bbl at activateposthyphen}
 %    \end{macrocode}
 %
 % \section{The kernel of Babel (\texttt{babel.def} for \LaTeX only)}
@@ -9851,11 +9941,7 @@
 %      and so on, but bidi text does not work out of the box and some
 %      development is necessary. It also provides tools to properly
 %      set left-to-right and right-to-left page layouts. As Lua\TeX-ja
-%      shows, vertical typesetting is possible, too. Its main drawback
-%      is font handling is often considered to be less mature than
-%      \xetex{}, mainly in Indic scripts (but there are steps to make
-%      HarfBuzz, the \xetex{} font engine, available in \luatex{}; see
-%      <https://github.com/tatzetwerk/luatex-harfbuzz>).
+%      shows, vertical typesetting is possible, too.
 %    \end{itemize}
 %
 % \changes{babel~3.15}{2017/10/30}{Use an attribute instead of tex language
@@ -10014,18 +10100,20 @@
     \newtoks\everypar
     \everypar=\bbl at severypar
     \bbl at severypar{\bbl at xeeverypar\the\everypar}}
-  \@ifpackagewith{babel}{bidi=bidi}%
-    {\let\bbl at textdir@i\@gobbletwo
-     \let\bbl at xebidipar\@empty
-     \AddBabelHook{bidi}{foreign}{%
-       \def\bbl at tempa{\def\BabelText####1}%
-       \ifcase\bbl at thetextdir
-         \expandafter\bbl at tempa\expandafter{\BabelText{\LR{##1}}}%
-       \else
-         \expandafter\bbl at tempa\expandafter{\BabelText{\RL{##1}}}%
-       \fi}
-     \def\bbl at pardir#1{\ifcase#1\relax\setLR\else\setRL\fi}}
-    {}%
+  \def\bbl at tempb{%
+    \let\bbl at textdir@i\@gobbletwo
+    \let\bbl at xebidipar\@empty
+    \AddBabelHook{bidi}{foreign}{%
+      \def\bbl at tempa{\def\BabelText########1}%
+      \ifcase\bbl at thetextdir
+        \expandafter\bbl at tempa\expandafter{\BabelText{\LR{####1}}}%
+      \else
+        \expandafter\bbl at tempa\expandafter{\BabelText{\RL{####1}}}%
+      \fi}
+    \def\bbl at pardir##1{\ifcase##1\relax\setLR\else\setRL\fi}}
+  \@ifpackagewith{babel}{bidi=bidi}{\bbl at tempb}{}%
+  \@ifpackagewith{babel}{bidi=bidi-l}{\bbl at tempb}{}%
+  \@ifpackagewith{babel}{bidi=bidi-r}{\bbl at tempb}{}%
 \fi
 %    \end{macrocode}
 %
@@ -10406,7 +10494,6 @@
   \edef\languagename{%
     \ifnum\escapechar=\expandafter`\string#1\@empty
     \else\string#1\@empty\fi}%
-  % \@namedef{bbl at lcname@#1}{#1}%
   \select at language{\languagename}%
   % write to auxs
   \expandafter\ifx\csname date\languagename\endcsname\relax\else
@@ -10423,8 +10510,13 @@
   % set name
   \edef\languagename{#1}%
   \bbl at fixname\languagename
+  \expandafter\ifx\csname date\languagename\endcsname\relax
+    \IfFileExists{babel-\languagename.tex}%
+      {\babelprovide{\languagename}}%
+      {}%
+  \fi
   \bbl at iflanguage\languagename{%
-    \expandafter\ifx\csname date\languagename\endcsname\relax
+     \expandafter\ifx\csname date\languagename\endcsname\relax
       \bbl at error
         {Unknown language `#1'. Either you have\\%
          misspelled its name, it has not been installed,\\%
@@ -10725,8 +10817,12 @@
 \def\foreign at language#1{%
   % set name
   \edef\languagename{#1}%
-  % \@namedef{bbl at lcname@#1}{#1}%
   \bbl at fixname\languagename
+  \expandafter\ifx\csname date\languagename\endcsname\relax
+    \IfFileExists{babel-\languagename.tex}%
+      {\babelprovide{\languagename}}%
+      {}%
+  \fi
   \bbl at iflanguage\languagename{%
     \expandafter\ifx\csname date\languagename\endcsname\relax
       \bbl at warning   % TODO - why a warning, not an error?
@@ -10945,6 +11041,7 @@
 \let\uselocale\setlocale
 \let\locale\setlocale
 \let\selectlocale\setlocale
+\let\localename\setlocale
 \let\textlocale\setlocale
 \let\textlanguage\setlocale
 \let\languagetext\setlocale
@@ -11570,6 +11667,12 @@
 \bbl at trace{Font handling with fontspec}
 \@onlypreamble\babelfont
 \newcommand\babelfont[2][]{%  1=langs/scripts 2=fam
+  \bbl at foreach{#1}{%
+    \expandafter\ifx\csname date##1\endcsname\relax
+    \IfFileExists{babel-##1.tex}%
+      {\babelprovide{##1}}%
+      {}%
+    \fi}%
   \edef\bbl at tempa{#1}%
   \def\bbl at tempb{#2}%  Used by \bbl at bblfont
   \ifx\fontspec\@undefined
@@ -12457,6 +12560,9 @@
 % \changes{babel~3.37}{2019/12/07}{Added code for non-standard
 %   hyphenation.}
 %
+% First, some general code for line breaking, used by
+% |\babelposthyphenation|.
+%
 % \textit{In progress.} Replace regular (ie, implicit) discretionaries
 % by spaceskips, based on the previous glyph (which I think makes
 % sense, because the hyphen and the previous char go always together).
@@ -12641,7 +12747,7 @@
 \def\bbl at provide@intraspace{%
   \bbl at ifunset{bbl at intsp@\languagename}{}%
     {\expandafter\ifx\csname bbl at intsp@\languagename\endcsname\@empty\else
-       \bbl at xin@{\bbl at cs{sbcp@\languagename}}{Hant,Hans,Jpan,Kore,Kana}%
+       \bbl at xin@{\bbl at cs{lnbrk@\languagename}}{c}%
        \ifin@           % cjk
          \bbl at cjkintraspace
          \directlua{
@@ -12738,7 +12844,7 @@
               {0x2B740, 0x2B81F}, {0x2B820, 0x2CEAF},
               {0x2CEB0, 0x2EBEF}, {0x2F800, 0x2FA1F}},
   ['Hebr'] = {{0x0590, 0x05FF}},
-  ['Japa'] = {{0x3000, 0x303F}, {0x3040, 0x309F}, {0x30A0, 0x30FF},
+  ['Jpan'] = {{0x3000, 0x303F}, {0x3040, 0x309F}, {0x30A0, 0x30FF},
               {0x4E00, 0x9FAF}, {0xFF00, 0xFFEF}},
   ['Khmr'] = {{0x1780, 0x17FF}, {0x19E0, 0x19FF}},
   ['Knda'] = {{0x0C80, 0x0CFF}},
@@ -12760,10 +12866,11 @@
   ['Thai'] = {{0x0E00, 0x0E7F}},
   ['Tibt'] = {{0x0F00, 0x0FFF}},
   ['Vaii'] = {{0xA500, 0xA63F}},
-  ['Yiii']= {{0xA490, 0xA4CF}, {0xA000, 0xA48F}}
+  ['Yiii'] = {{0xA000, 0xA48F}, {0xA490, 0xA4CF}}
 }
 
 Babel.script_blocks.Hant = Babel.script_blocks.Hans
+Babel.script_blocks.Kana = Babel.script_blocks.Jpan
 
 function Babel.locale_map(head)
   if not Babel.locale_mapped then return head end
@@ -12789,7 +12896,7 @@
         end
       end
       % Now, take action
-      if toloc then
+      if toloc and toloc > -1 then
         if Babel.locale_props[toloc].lg then
           item.lang = Babel.locale_props[toloc].lg
           node.set_attribute(item, LOCALE, toloc)
@@ -12856,6 +12963,12 @@
     Babel.Babel.cjk_characters[\the\count@]['c'] = '#1'
   }}
 \let\bbl at chprop@lb\bbl at chprop@linebreak
+\def\bbl at chprop@locale#1{%
+  \directlua{
+    Babel.chr_to_loc = Babel.chr_to_loc or {}
+    Babel.chr_to_loc[\the\count@] =
+      \bbl at ifblank{#1}{-1000}{\the\@nameuse{bbl at id@@#1}}\space
+  }}
 %    \end{macrocode}
 %
 % Post-handling hyphenation patterns for non-standard rules, like |ff|
@@ -13050,13 +13163,40 @@
     return head
   end
 
-  &% Used below
+  &% The following functions belong to the next macro
+
+  &% This table stores capture maps, numbered consecutively
+  Babel.capture_maps = {}
+
   function Babel.capture_func(key, cap)
     local ret = "[[" .. cap:gsub('{([0-9])}', "]]..m[%1]..[[") .. "]]"
+    ret = ret:gsub('{([0-9])|([^|]+)|(.-)}', Babel.capture_func_map)
     ret = ret:gsub("%[%[%]%]%.%.", '')
     ret = ret:gsub("%.%.%[%[%]%]", '')
     return key .. [[=function(m) return ]] .. ret .. [[ end]]
   end
+
+  function Babel.capt_map(from, mapno)
+    return Babel.capture_maps[mapno][from] or from
+  end
+
+  &% Handle the {n|abc|ABC} syntax in captures
+  function Babel.capture_func_map(capno, from, to)
+    local froms = {}
+    for s in string.utfcharacters(from) do
+      table.insert(froms, s)
+    end
+    local cnt = 1
+    table.insert(Babel.capture_maps, {})
+    local mlen = table.getn(Babel.capture_maps)
+    for s in string.utfcharacters(to) do
+      Babel.capture_maps[mlen][froms[cnt]] = s
+      cnt = cnt + 1
+    end
+    return "]]..Babel.capt_map(m[" .. capno .. "]," ..
+           (mlen) .. ").." .. "[["
+  end
+
 }
 %    \end{macrocode}
 %
@@ -13064,7 +13204,10 @@
 % defined above for converting strings to functions returning a string.
 % These functions handle the |{|\textit{n}|}| syntax. For example,
 % |pre={1}{1}-| becomes |function(m) return m[1]..m[1]..'-' end|, where
-% |m| are the matches returned after applying the pattern. The way it
+% |m| are the matches returned after applying the pattern. With a
+% mapped capture the functions are similar to
+% |function(m) return Babel.capt_map(m[1],1) end|, where the last
+% argument identifies the mapping to be applied to |m[1]|. The way it
 % is carried out is somewhat tricky, but the effect in not dissimilar
 % to lua |load| – save the code as string in a TeX macro, and expand
 % this macro at the appropriate place. As |\directlua| does not take
@@ -13074,6 +13217,7 @@
 %    \begin{macrocode}
 \catcode`\#=6
 \gdef\babelposthyphenation#1#2#3{&%
+  \bbl at activateposthyphen
   \begingroup
     \def\babeltempa{\bbl at add@list\babeltempb}&%
     \let\babeltempb\@empty
@@ -13106,6 +13250,11 @@
     }&%
   \endgroup}
 \endgroup
+\def\bbl at activateposthyphen{%
+  \let\bbl at activateposthyphen\relax
+  \directlua{
+    Babel.linebreaking.add_after(Babel.post_hyphenate_replace)
+  }}
 %    \end{macrocode}
 %
 % \subsection{Layout}
@@ -19714,12 +19863,6 @@
 Babel.bidi_enabled = true
 Babel.mirroring_enabled = true
 
--- Temporary:
-
-if harf then 
-  Babel.mirroring_enabled = false
-end
-
 require('babel-data-bidi.lua')
 
 local characters = Babel.characters
@@ -20010,7 +20153,10 @@
         item = nodes[r][1]    -- MIRRORING
         if Babel.mirroring_enabled and item.id == GLYPH
              and temp == 'r' and characters[item.char] then
-          item.char = characters[item.char].m or item.char
+          local font_mode = font.fonts[item.font].properties.mode
+          if font_mode ~= 'harf' and font_mode ~= 'plug' then
+            item.char = characters[item.char].m or item.char
+          end
         end
       end
       first_on = nil
@@ -20321,6 +20467,8 @@
   __index = function(_, k)
     if (k >= 0xAC00  and k <= 0xD7A3)      -- H2/H3
         or (k >= 0x2E80  and k <= 0x9FFF)
+        or (k >= 0xA000  and k <= 0xA48F)  -- Yi
+        or (k >= 0xA490  and k <= 0xA4CF)  -- Yi
         or (k >= 0xF900  and k <= 0xFAFF)
         or (k >= 0xFE10  and k <= 0xFE1F) 
         or (k >= 0xFE30  and k <= 0xFE6F)

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins	2020-02-03 22:33:15 UTC (rev 53660)
@@ -26,7 +26,7 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%
-\def\filedate{2020/01/15}
+\def\filedate{2020/02/03}
 \def\batchfile{babel.ins}
 \input docstrip.tex
 

Modified: trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2020-02-03 22:33:15 UTC (rev 53660)
@@ -30,7 +30,7 @@
 %
 % \iffalse
 %<*dtx>
-\ProvidesFile{bbcompat.dtx}[2020/01/15 v3.38]
+\ProvidesFile{bbcompat.dtx}[2020/02/03 v3.39]
 %</dtx>
 %
 %% File 'bbcompat.dtx'

Modified: trunk/Master/texmf-dist/source/latex/babel/locale.zip
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic-r.lua	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 -- babel.dtx  (with options: `basic-r')
 -- 
 --
--- Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 -- Copyright (C) 1989-2012 Johannes L. Braams and
 --           any individual authors listed elsewhere in this file.
 -- All rights reserved.

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-bidi-basic.lua	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 -- babel.dtx  (with options: `basic')
 -- 
 --
--- Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 -- Copyright (C) 1989-2012 Johannes L. Braams and
 --           any individual authors listed elsewhere in this file.
 -- All rights reserved.
@@ -44,12 +44,6 @@
 Babel.bidi_enabled = true
 Babel.mirroring_enabled = true
 
--- Temporary:
-
-if harf then
-  Babel.mirroring_enabled = false
-end
-
 require('babel-data-bidi.lua')
 
 local characters = Babel.characters
@@ -340,7 +334,10 @@
         item = nodes[r][1]    -- MIRRORING
         if Babel.mirroring_enabled and item.id == GLYPH
              and temp == 'r' and characters[item.char] then
-          item.char = characters[item.char].m or item.char
+          local font_mode = font.fonts[item.font].properties.mode
+          if font_mode ~= 'harf' and font_mode ~= 'plug' then
+            item.char = characters[item.char].m or item.char
+          end
         end
       end
       first_on = nil

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-data-bidi.lua	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 -- babel.dtx  (with options: `bididata')
 -- 
 --
--- Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 -- Copyright (C) 1989-2012 Johannes L. Braams and
 --           any individual authors listed elsewhere in this file.
 -- All rights reserved.

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-data-cjk.lua	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 -- babel.dtx  (with options: `cjkdata')
 -- 
 --
--- Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+-- Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 -- Copyright (C) 1989-2012 Johannes L. Braams and
 --           any individual authors listed elsewhere in this file.
 -- All rights reserved.
@@ -251,6 +251,8 @@
   __index = function(_, k)
     if (k >= 0xAC00  and k <= 0xD7A3)      -- H2/H3
         or (k >= 0x2E80  and k <= 0x9FFF)
+        or (k >= 0xA000  and k <= 0xA48F)  -- Yi
+        or (k >= 0xA490  and k <= 0xA4CF)  -- Yi
         or (k >= 0xF900  and k <= 0xFAFF)
         or (k >= 0xFE10  and k <= 0xFE1F)
         or (k >= 0xFE30  and k <= 0xFE6F)

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.def	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `core')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -41,7 +41,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{babel.def}[2020/01/15 3.38 Babel common definitions]
+\ProvidesFile{babel.def}[2020/02/03 3.39 Babel common definitions]
 \ifx\AtBeginDocument\@undefined
   \input plain.def\relax
 \fi
@@ -992,7 +992,7 @@
   \newcommand\SetHyphenMap[1]{%
     \bbl at forlang\bbl at tempa{%
       \expandafter\bbl at stringdef
-        \csname\bbl at tempa @bbl at hyphenmap\endcsname{##1}}}
+        \csname\bbl at tempa @bbl at hyphenmap\endcsname{##1}}}%
   \def\bbl at provstring##1##2{%
     \providecommand##1{##2}%
     \bbl at toglobal##1}%
@@ -1020,6 +1020,7 @@
   \edef\bbl at L{\zap at space#1 \@empty}%
   \edef\bbl at G{\zap at space#2 \@empty}%
   \bbl at startcmds@ii}
+\let\bbl at startcommands\StartBabelCommands
 \newcommand\bbl at startcmds@ii[1][\@empty]{%
   \let\SetString\@gobbletwo
   \let\bbl at stringdef\@gobbletwo
@@ -1104,6 +1105,7 @@
   \endgroup
   \endgroup
   \bbl at scafter}
+\let\bbl at endcommands\EndBabelCommands
 \def\bbl at setstring#1#2{%
   \bbl at forlang\bbl at tempa{%
     \edef\bbl at LC{\bbl at tempa\bbl at stripslash#1}%
@@ -1373,7 +1375,7 @@
   \let\bbl at savelangname\languagename
   \edef\bbl at savelocaleid{\the\localeid}%
   % Set name and locale id
-  \def\languagename{#2}%
+  \edef\languagename{#2}%
   % \global\@namedef{bbl at lcname@#2}{#2}%
   \bbl at id@assign
   \let\bbl at KVP@captions\@nil
@@ -1390,7 +1392,7 @@
   \let\bbl at KVP@onchar\@nil
   \let\bbl at KVP@chargroups\@nil
   \bbl at forkv{#1}{%  TODO - error handling
-    \in@{..}{##1}%
+    \in@{/}{##1}%
     \ifin@
       \bbl at renewinikey##1\@@{##2}%
     \else
@@ -1439,8 +1441,10 @@
          \bbl at read@ini{##1}{basic data}%
          \bbl at exportkey{chrng}{characters.ranges}{}%
          \bbl at exportkey{dgnat}{numbers.digits.native}{}%
+         \bbl at exportkey{lnbrk}{typography.linebreaking}{h}%
          \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
          \bbl at exportkey{intsp}{typography.intraspace}{}%
+         \endinput
        \endgroup}%           boxed, to avoid extra spaces:
      {\setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}}}%
     {}%
@@ -1461,10 +1465,15 @@
         Babel.locale_mapped = true
         Babel.linebreaking.add_before(Babel.locale_map)
         Babel.loc_to_scr = {}
-        Babel.chr_to_loc = {}
+        Babel.chr_to_loc = Babel.chr_to_loc or {}
       end}%
     \bbl at xin@{ ids }{ \bbl at KVP@onchar\space}%
     \ifin@
+      \ifx\bbl at starthyphens\@undefined % Needed if no explicit selection
+        \AddBabelHook{babel-onchar}{beforestart}{{\bbl at starthyphens}}%
+      \fi
+      \bbl at exp{\\\bbl at add\\\bbl at starthyphens
+        {\\\bbl at patterns@lua{\languagename}}}%
       % TODO - error/warning if no script
       \directlua{
         if Babel.script_blocks['\bbl at cs{sbcp@\languagename}'] then
@@ -1483,7 +1492,7 @@
         if Babel.script_blocks['\bbl at cs{sbcp@\languagename}'] then
           Babel.loc_to_scr[\the\localeid] =
             Babel.script_blocks['\bbl at cs{sbcp@\languagename}']
-        end}
+        end}%
       \ifx\bbl at mapselect\@undefined
         \AtBeginDocument{%
           \expandafter\bbl at add\csname selectfont \endcsname{{\bbl at mapselect}}%
@@ -1587,7 +1596,7 @@
                return head
              end
            end
-        }}
+        }}%
     \fi
   \fi
   % == require.babel in ini ==
@@ -1640,7 +1649,7 @@
   \@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands
   \@namedef{extras#1}{}%
   \@namedef{noextras#1}{}%
-  \StartBabelCommands*{#1}{captions}%
+  \bbl at startcommands*{#1}{captions}%
     \ifx\bbl at KVP@captions\@nil %      and also if import, implicit
       \def\bbl at tempb##1{%             elt for \bbl at captionslist
         \ifx##1\@empty\else
@@ -1663,7 +1672,7 @@
       \bbl at savetoday
       \bbl at savedate
     \fi
-  \EndBabelCommands
+  \bbl at endcommands
   \bbl at exp{%
     \def\<#1hyphenmins>{%
       {\bbl at ifunset{bbl at lfthm@#1}{2}{\@nameuse{bbl at lfthm@#1}}}%
@@ -1743,7 +1752,7 @@
     \def\bbl at inipreread##1=##2\@@{%
       \bbl at trim@def\bbl at tempa{##1}% Redundant below !!
       % Move trims here ??
-      \bbl at ifunset{bbl at KVP@\bbl at section..\bbl at tempa}%
+      \bbl at ifunset{bbl at KVP@\bbl at section/\bbl at tempa}%
         {\expandafter\bbl at inireader\bbl at tempa=##2\@@}%
         {}}%
     \let\bbl at inireader\bbl at iniskip
@@ -1777,7 +1786,7 @@
   \@nameuse{bbl at secpost@\bbl at section}%  ends previous section
   \def\bbl at section{#1}%                 starts current section
   \def\bbl at elt##1##2{%
-    \@namedef{bbl at KVP@#1..##1}{}}%
+    \@namedef{bbl at KVP@#1/##1}{}}%
   \@nameuse{bbl at renew@#1}%
   \@nameuse{bbl at secpre@#1}%  pre-section `hook'
   \bbl at ifunset{bbl at inikv@#1}%
@@ -1784,7 +1793,7 @@
     {\let\bbl at inireader\bbl at iniskip}%
     {\bbl at exp{\let\\\bbl at inireader\<bbl at inikv@#1>}}}
 \let\bbl at renewlist\@empty
-\def\bbl at renewinikey#1..#2\@@#3{%
+\def\bbl at renewinikey#1/#2\@@#3{%
   \bbl at ifunset{bbl at renew@#1}%
     {\bbl at add@list\bbl at renewlist{#1}}%
     {}%
@@ -1820,6 +1829,7 @@
   \bbl at exportkey{lfthm}{typography.lefthyphenmin}{2}%
   \bbl at exportkey{rgthm}{typography.righthyphenmin}{3}%
   \bbl at exportkey{prehc}{typography.prehyphenchar}{}%
+  \bbl at exportkey{lnbrk}{typography.linebreaking}{h}%
   \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
   \bbl at exportkey{intsp}{typography.intraspace}{}%
   \bbl at exportkey{jstfy}{typography.justify}{w}%
@@ -2025,9 +2035,7 @@
 \@namedef{bbl at ADJ@layout.lists at on}{%
   \bbl at adjust@layout{\let\list\bbl at OL@list}}
 \@namedef{bbl at ADJ@hyphenation.extra at on}{%
-  \directlua{
-    Babel.linebreaking.add_after(Babel.post_hyphenate_replace)
-  }}
+  \bbl at activateposthyphen}
 {\def\format{lplain}
 \ifx\fmtname\format
 \else
@@ -2422,18 +2430,20 @@
     \newtoks\everypar
     \everypar=\bbl at severypar
     \bbl at severypar{\bbl at xeeverypar\the\everypar}}
-  \@ifpackagewith{babel}{bidi=bidi}%
-    {\let\bbl at textdir@i\@gobbletwo
-     \let\bbl at xebidipar\@empty
-     \AddBabelHook{bidi}{foreign}{%
-       \def\bbl at tempa{\def\BabelText####1}%
-       \ifcase\bbl at thetextdir
-         \expandafter\bbl at tempa\expandafter{\BabelText{\LR{##1}}}%
-       \else
-         \expandafter\bbl at tempa\expandafter{\BabelText{\RL{##1}}}%
-       \fi}
-     \def\bbl at pardir#1{\ifcase#1\relax\setLR\else\setRL\fi}}
-    {}%
+  \def\bbl at tempb{%
+    \let\bbl at textdir@i\@gobbletwo
+    \let\bbl at xebidipar\@empty
+    \AddBabelHook{bidi}{foreign}{%
+      \def\bbl at tempa{\def\BabelText########1}%
+      \ifcase\bbl at thetextdir
+        \expandafter\bbl at tempa\expandafter{\BabelText{\LR{####1}}}%
+      \else
+        \expandafter\bbl at tempa\expandafter{\BabelText{\RL{####1}}}%
+      \fi}
+    \def\bbl at pardir##1{\ifcase##1\relax\setLR\else\setRL\fi}}
+  \@ifpackagewith{babel}{bidi=bidi}{\bbl at tempb}{}%
+  \@ifpackagewith{babel}{bidi=bidi-l}{\bbl at tempb}{}%
+  \@ifpackagewith{babel}{bidi=bidi-r}{\bbl at tempb}{}%
 \fi
 \DeclareRobustCommand\babelsublr[1]{\leavevmode{\bbl at textdir\z@#1}}
 \AtBeginDocument{%

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `package')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -33,7 +33,7 @@
 %%
 
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2020/01/15 3.38 The Babel package]
+\ProvidesPackage{babel}[2020/02/03 3.39 The Babel package]
 \@ifpackagewith{babel}{debug}
   {\providecommand\bbl at trace[1]{\message{^^J[ #1 ]}}%
    \let\bbl at debug\@firstofone}
@@ -214,8 +214,6 @@
   \bbl at languages
 \fi
 \ifodd\bbl at engine
-  % Harftex is evolving, so the callback is not harcoded, just in case
-  \def\bbl at harfpreline{Harf pre_linebreak_filter callback}%
   \def\bbl at activate@preotf{%
     \let\bbl at activate@preotf\relax  % only once
     \directlua{
@@ -245,23 +243,14 @@
         Babel.pre_otfload_v,
         'Babel.pre_otfload_v',
         luatexbase.priority_in_callback('pre_linebreak_filter',
-           '\bbl at harfpreline')
-        or luatexbase.priority_in_callback('pre_linebreak_filter',
-           'luaotfload.node_processor')
-        or nil)
+          'luaotfload.node_processor') or nil)
       %
       luatexbase.add_to_callback('hpack_filter',
         Babel.pre_otfload_h,
         'Babel.pre_otfload_h',
         luatexbase.priority_in_callback('hpack_filter',
-           '\bbl at harfpreline')
-        or luatexbase.priority_in_callback('hpack_filter',
-           'luaotfload.node_processor')
-        or nil)
-    }%
-    \@ifpackageloaded{harfload}%
-      {\directlua{ Babel.mirroring_enabled = false }}%
-      {}}
+          'luaotfload.node_processor') or nil)
+    }}
   \let\bbl at tempa\relax
   \@ifpackagewith{babel}{bidi=basic}%
     {\def\bbl at tempa{basic}}%

Modified: trunk/Master/texmf-dist/tex/generic/babel/blplain.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/blplain.tex	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/blplain.tex	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `blplain')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.

Modified: trunk/Master/texmf-dist/tex/generic/babel/bplain.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/bplain.tex	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/bplain.tex	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `bplain')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.

Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `patterns')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -37,7 +37,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{hyphen.cfg}[2020/01/15 3.38 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2020/02/03 3.39 Babel hyphens]
 \xdef\bbl at format{\jobname}
 \ifx\AtBeginDocument\@undefined
   \def\@empty{}

Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,186 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * babel language styles (license LPPL):
+;   https://www.ctan.org/pkg/babel-contrib
+; * polyglossia language styles (license LPPL)
+;   https://www.ctan.org/pkg/polyglossia
+; * Common Locale Data Repository (license Unicode):
+;   http://cldr.unicode.org/
+;   http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.1
+date = 2020-01-27
+name.local = Deutsch
+name.english = German
+name.babel = german
+tag.bcp47 = de
+tag.opentype = DEU
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Anlage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe auch
+proof = Beweis
+glossary = Glossar
+
+[captions.licr]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Anlage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe\space auch
+proof = Beweis
+glossary = Glossar
+
+[date.gregorian]
+date.long = [d].[ ][MMMM] [y]
+date.short = [dd].[MM].[yy]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = März
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+months.narrow.1 = J
+months.narrow.2 = F
+months.narrow.3 = M
+months.narrow.4 = A
+months.narrow.5 = M
+months.narrow.6 = J
+months.narrow.7 = J
+months.narrow.8 = A
+months.narrow.9 = S
+months.narrow.10 = O
+months.narrow.11 = N
+months.narrow.12 = D
+days.wide.mon = Montag
+days.wide.tue = Dienstag
+days.wide.wed = Mittwoch
+days.wide.thu = Donnerstag
+days.wide.fri = Freitag
+days.wide.sat = Samstag
+days.wide.sun = Sonntag
+days.abbreviated.mon = Mo.
+days.abbreviated.tue = Di.
+days.abbreviated.wed = Mi.
+days.abbreviated.thu = Do.
+days.abbreviated.fri = Fr.
+days.abbreviated.sat = Sa.
+days.abbreviated.sun = So.
+days.narrow.mon = M
+days.narrow.tue = D
+days.narrow.wed = M
+days.narrow.thu = D
+days.narrow.fri = F
+days.narrow.sat = S
+days.narrow.sun = S
+dayPeriods.abbreviated.am = vorm.
+dayPeriods.abbreviated.pm = nachm.
+dayPeriods.narrow.am = vm.
+dayPeriods.narrow.pm = nm.
+dayPeriods.wide.am = vorm.
+dayPeriods.wide.pm = nachm.
+
+[date.gregorian.licr]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = M\"arz
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules = german
+lefthyphenmin = 2
+righthyphenmin = 2
+hyphenchar = 
+prehyphenchar = 
+posthyphenchar = 
+exhyphenchar = 
+preexhyphenchar = 
+postexhyphenchar = 
+hyphenationmin = 
+
+[characters]
+delimiters.quotes = „“‚‘
+auxiliary = [á à ă â å ã ā æ ç é è ĕ ê ë ē ğ í ì ĭ î ï İ ī ı ñ ó ò ŏ ô ø ō œ ş ú ù ŭ û ū ÿ]
+exemplarCharacters = [a ä b c d e f g h i j k l m n o ö p q r s ß t u ü v w x y z]
+index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
+punctuation = [\\- ‐ – — , ; \\: ! ? . … ' ‘ ‚ \" “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\& #]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits = 1
+decimal = ,
+exponential = E
+group = .
+infinity = ∞
+list = ;
+minusSign = -
+nan = NaN
+perMille = ‰
+percentSign = %
+plusSign = +
+superscriptingExponent = ·
+
+[counters]
+alph = 
+Alph = 
+ordinals = 
+


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,186 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * babel language styles (license LPPL):
+;   https://www.ctan.org/pkg/babel-contrib
+; * polyglossia language styles (license LPPL)
+;   https://www.ctan.org/pkg/polyglossia
+; * Common Locale Data Repository (license Unicode):
+;   http://cldr.unicode.org/
+;   http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.1
+date = 2020-01-27
+name.local = Deutsch
+name.english = German
+name.babel = german
+tag.bcp47 = de
+tag.opentype = DEU
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Anlage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe auch
+proof = Beweis
+glossary = Glossar
+
+[captions.licr]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Anlage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe\space auch
+proof = Beweis
+glossary = Glossar
+
+[date.gregorian]
+date.long = [d].[ ][MMMM] [y]
+date.short = [dd].[MM].[yy]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = März
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+months.narrow.1 = J
+months.narrow.2 = F
+months.narrow.3 = M
+months.narrow.4 = A
+months.narrow.5 = M
+months.narrow.6 = J
+months.narrow.7 = J
+months.narrow.8 = A
+months.narrow.9 = S
+months.narrow.10 = O
+months.narrow.11 = N
+months.narrow.12 = D
+days.wide.mon = Montag
+days.wide.tue = Dienstag
+days.wide.wed = Mittwoch
+days.wide.thu = Donnerstag
+days.wide.fri = Freitag
+days.wide.sat = Samstag
+days.wide.sun = Sonntag
+days.abbreviated.mon = Mo.
+days.abbreviated.tue = Di.
+days.abbreviated.wed = Mi.
+days.abbreviated.thu = Do.
+days.abbreviated.fri = Fr.
+days.abbreviated.sat = Sa.
+days.abbreviated.sun = So.
+days.narrow.mon = M
+days.narrow.tue = D
+days.narrow.wed = M
+days.narrow.thu = D
+days.narrow.fri = F
+days.narrow.sat = S
+days.narrow.sun = S
+dayPeriods.abbreviated.am = vorm.
+dayPeriods.abbreviated.pm = nachm.
+dayPeriods.narrow.am = vm.
+dayPeriods.narrow.pm = nm.
+dayPeriods.wide.am = vorm.
+dayPeriods.wide.pm = nachm.
+
+[date.gregorian.licr]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = M\"arz
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules = ngerman
+lefthyphenmin = 2
+righthyphenmin = 2
+hyphenchar = 
+prehyphenchar = 
+posthyphenchar = 
+exhyphenchar = 
+preexhyphenchar = 
+postexhyphenchar = 
+hyphenationmin = 
+
+[characters]
+delimiters.quotes = „“‚‘
+auxiliary = [á à ă â å ã ā æ ç é è ĕ ê ë ē ğ í ì ĭ î ï İ ī ı ñ ó ò ŏ ô ø ō œ ş ú ù ŭ û ū ÿ]
+exemplarCharacters = [a ä b c d e f g h i j k l m n o ö p q r s ß t u ü v w x y z]
+index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
+punctuation = [\\- ‐ – — , ; \\: ! ? . … ' ‘ ‚ \" “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\& #]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits = 1
+decimal = ,
+exponential = E
+group = .
+infinity = ∞
+list = ;
+minusSign = -
+nan = NaN
+perMille = ‰
+percentSign = %
+plusSign = +
+superscriptingExponent = ·
+
+[counters]
+alph = 
+Alph = 
+ordinals = 
+


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,191 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * babel language styles (license LPPL):
+;   https://www.ctan.org/pkg/babel-contrib
+; * polyglossia language styles (license LPPL)
+;   https://www.ctan.org/pkg/polyglossia
+; * Common Locale Data Repository (license Unicode):
+;   http://cldr.unicode.org/
+;   http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.1
+date = 2020-01-27
+name.local = Deutsch
+name.english = German
+name.babel = german-austria
+name.babel.A = german-at
+name.babel.B = austrian
+tag.bcp47 = de
+tag.opentype = DEU
+region.local = Österreich
+region.english = Austria
+region.tag.bcp47 = AT
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe auch
+proof = Beweis
+glossary = Glossar
+
+[captions.licr]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe\space auch
+proof = Beweis
+glossary = Glossar
+
+[date.gregorian]
+date.long = [d].[ ][MMMM] [y]
+date.short = [dd].[MM].[yy]
+months.wide.1 = Jänner
+months.wide.2 = Februar
+months.wide.3 = März
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+months.narrow.1 = J
+months.narrow.2 = F
+months.narrow.3 = M
+months.narrow.4 = A
+months.narrow.5 = M
+months.narrow.6 = J
+months.narrow.7 = J
+months.narrow.8 = A
+months.narrow.9 = S
+months.narrow.10 = O
+months.narrow.11 = N
+months.narrow.12 = D
+days.wide.mon = Montag
+days.wide.tue = Dienstag
+days.wide.wed = Mittwoch
+days.wide.thu = Donnerstag
+days.wide.fri = Freitag
+days.wide.sat = Samstag
+days.wide.sun = Sonntag
+days.abbreviated.mon = Mo.
+days.abbreviated.tue = Di.
+days.abbreviated.wed = Mi.
+days.abbreviated.thu = Do.
+days.abbreviated.fri = Fr.
+days.abbreviated.sat = Sa.
+days.abbreviated.sun = So.
+days.narrow.mon = M
+days.narrow.tue = D
+days.narrow.wed = M
+days.narrow.thu = D
+days.narrow.fri = F
+days.narrow.sat = S
+days.narrow.sun = S
+dayPeriods.abbreviated.am = vorm.
+dayPeriods.abbreviated.pm = nachm.
+dayPeriods.narrow.am = vm.
+dayPeriods.narrow.pm = nm.
+dayPeriods.wide.am = vorm.
+dayPeriods.wide.pm = nachm.
+
+[date.gregorian.licr]
+months.wide.1 = J\"anner
+months.wide.2 = Februar
+months.wide.3 = M\"arz
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules = german
+lefthyphenmin = 2
+righthyphenmin = 2
+hyphenchar = 
+prehyphenchar = 
+posthyphenchar = 
+exhyphenchar = 
+preexhyphenchar = 
+postexhyphenchar = 
+hyphenationmin = 
+
+[characters]
+delimiters.quotes = „“‚‘
+auxiliary = [á à ă â å ã ā æ ç é è ĕ ê ë ē ğ í ì ĭ î ï İ ī ı ñ ó ò ŏ ô ø ō œ ş ú ù ŭ û ū ÿ]
+exemplarCharacters = [a ä b c d e f g h i j k l m n o ö p q r s ß t u ü v w x y z]
+index = [A Ä B C D E F G H I J K L M N O Ö P Q R S T U Ü V W X Y Z]
+punctuation = [\\- ‐ – — , ; \\: ! ? . … ' ‘ ‚ \" “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\& #]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits = 1
+decimal = ,
+exponential = E
+group =  
+infinity = ∞
+list = ;
+minusSign = -
+nan = NaN
+perMille = ‰
+percentSign = %
+plusSign = +
+superscriptingExponent = ·
+
+[counters]
+alph = 
+Alph = 
+ordinals = 
+


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,191 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * babel language styles (license LPPL):
+;   https://www.ctan.org/pkg/babel-contrib
+; * polyglossia language styles (license LPPL)
+;   https://www.ctan.org/pkg/polyglossia
+; * Common Locale Data Repository (license Unicode):
+;   http://cldr.unicode.org/
+;   http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.1
+date = 2020-01-27
+name.local = Deutsch
+name.english = German
+name.babel = german-austria
+name.babel.A = german-at
+name.babel.B = austrian
+tag.bcp47 = de
+tag.opentype = DEU
+region.local = Österreich
+region.english = Austria
+region.tag.bcp47 = AT
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe auch
+proof = Beweis
+glossary = Glossar
+
+[captions.licr]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe\space auch
+proof = Beweis
+glossary = Glossar
+
+[date.gregorian]
+date.long = [d].[ ][MMMM] [y]
+date.short = [dd].[MM].[yy]
+months.wide.1 = Jänner
+months.wide.2 = Februar
+months.wide.3 = März
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+months.narrow.1 = J
+months.narrow.2 = F
+months.narrow.3 = M
+months.narrow.4 = A
+months.narrow.5 = M
+months.narrow.6 = J
+months.narrow.7 = J
+months.narrow.8 = A
+months.narrow.9 = S
+months.narrow.10 = O
+months.narrow.11 = N
+months.narrow.12 = D
+days.wide.mon = Montag
+days.wide.tue = Dienstag
+days.wide.wed = Mittwoch
+days.wide.thu = Donnerstag
+days.wide.fri = Freitag
+days.wide.sat = Samstag
+days.wide.sun = Sonntag
+days.abbreviated.mon = Mo.
+days.abbreviated.tue = Di.
+days.abbreviated.wed = Mi.
+days.abbreviated.thu = Do.
+days.abbreviated.fri = Fr.
+days.abbreviated.sat = Sa.
+days.abbreviated.sun = So.
+days.narrow.mon = M
+days.narrow.tue = D
+days.narrow.wed = M
+days.narrow.thu = D
+days.narrow.fri = F
+days.narrow.sat = S
+days.narrow.sun = S
+dayPeriods.abbreviated.am = vorm.
+dayPeriods.abbreviated.pm = nachm.
+dayPeriods.narrow.am = vm.
+dayPeriods.narrow.pm = nm.
+dayPeriods.wide.am = vorm.
+dayPeriods.wide.pm = nachm.
+
+[date.gregorian.licr]
+months.wide.1 = J\"anner
+months.wide.2 = Februar
+months.wide.3 = M\"arz
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules = ngerman
+lefthyphenmin = 2
+righthyphenmin = 2
+hyphenchar = 
+prehyphenchar = 
+posthyphenchar = 
+exhyphenchar = 
+preexhyphenchar = 
+postexhyphenchar = 
+hyphenationmin = 
+
+[characters]
+delimiters.quotes = „“‚‘
+auxiliary = [á à ă â å ã ā æ ç é è ĕ ê ë ē ğ í ì ĭ î ï İ ī ı ñ ó ò ŏ ô ø ō œ ş ú ù ŭ û ū ÿ]
+exemplarCharacters = [a ä b c d e f g h i j k l m n o ö p q r s ß t u ü v w x y z]
+index = [A Ä B C D E F G H I J K L M N O Ö P Q R S T U Ü V W X Y Z]
+punctuation = [\\- ‐ – — , ; \\: ! ? . … ' ‘ ‚ \" “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\& #]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits = 1
+decimal = ,
+exponential = E
+group =  
+infinity = ∞
+list = ;
+minusSign = -
+nan = NaN
+perMille = ‰
+percentSign = %
+plusSign = +
+superscriptingExponent = ·
+
+[counters]
+alph = 
+Alph = 
+ordinals = 
+


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.0
-date = 2017-09-01
+version = 1.1
+date = 2020-01-27
 name.local = Deutsch
 name.english = German
 name.babel = german-austria
@@ -151,7 +151,7 @@
 
 [typography]
 frenchspacing = yes
-hyphenrules = german
+hyphenrules = ngerman
 lefthyphenmin = 2
 righthyphenmin = 2
 hyphenchar = 

Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,193 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * babel language styles (license LPPL):
+;   https://www.ctan.org/pkg/babel-contrib
+; * polyglossia language styles (license LPPL)
+;   https://www.ctan.org/pkg/polyglossia
+; * Common Locale Data Repository (license Unicode):
+;   http://cldr.unicode.org/
+;   http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.1
+date = 2020-01-27
+name.local = Deutsch
+name.english = German
+name.babel = german-switzerland
+name.babel.A = german-ch
+name.babel.B = nswissgerman
+; The following conflicts with gsw:
+name.babel.C = swissgerman
+tag.bcp47 = de
+tag.opentype = DEU
+region.local = Schweiz
+region.english = Switzerland
+region.tag.bcp47 = CH
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe auch
+proof = Beweis
+glossary = Glossar
+
+[captions.licr]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe\space auch
+proof = Beweis
+glossary = Glossar
+
+[date.gregorian]
+date.long = [d].[ ][MMMM] [y]
+date.short = [dd].[MM].[yy]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = März
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+months.narrow.1 = J
+months.narrow.2 = F
+months.narrow.3 = M
+months.narrow.4 = A
+months.narrow.5 = M
+months.narrow.6 = J
+months.narrow.7 = J
+months.narrow.8 = A
+months.narrow.9 = S
+months.narrow.10 = O
+months.narrow.11 = N
+months.narrow.12 = D
+days.wide.mon = Montag
+days.wide.tue = Dienstag
+days.wide.wed = Mittwoch
+days.wide.thu = Donnerstag
+days.wide.fri = Freitag
+days.wide.sat = Samstag
+days.wide.sun = Sonntag
+days.abbreviated.mon = Mo.
+days.abbreviated.tue = Di.
+days.abbreviated.wed = Mi.
+days.abbreviated.thu = Do.
+days.abbreviated.fri = Fr.
+days.abbreviated.sat = Sa.
+days.abbreviated.sun = So.
+days.narrow.mon = M
+days.narrow.tue = D
+days.narrow.wed = M
+days.narrow.thu = D
+days.narrow.fri = F
+days.narrow.sat = S
+days.narrow.sun = S
+dayPeriods.abbreviated.am = vorm.
+dayPeriods.abbreviated.pm = nachm.
+dayPeriods.narrow.am = vm.
+dayPeriods.narrow.pm = nm.
+dayPeriods.wide.am = vorm.
+dayPeriods.wide.pm = nachm.
+
+[date.gregorian.licr]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = M\"arz
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules = swissgerman
+lefthyphenmin = 2
+righthyphenmin = 2
+hyphenchar = 
+prehyphenchar = 
+posthyphenchar = 
+exhyphenchar = 
+preexhyphenchar = 
+postexhyphenchar = 
+hyphenationmin = 
+
+[characters]
+delimiters.quotes = „“‚‘
+auxiliary = [á à ă â å ã ā æ ç é è ĕ ê ë ē ğ í ì ĭ î ï İ ī ı ñ ó ò ŏ ô ø ō œ ş ß ú ù ŭ û ū ÿ]
+exemplarCharacters = [a ä b c d e f g h i j k l m n o ö p q r s t u ü v w x y z]
+index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
+punctuation = [\\- ‐ – — , ; \\: ! ? . … ' ‘ ‚ \" “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\& #]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits = 1
+decimal = .
+exponential = E
+group = '
+infinity = ∞
+list = ;
+minusSign = -
+nan = NaN
+perMille = ‰
+percentSign = %
+plusSign = +
+superscriptingExponent = ·
+
+[counters]
+alph = 
+Alph = 
+ordinals = 
+


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,193 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * babel language styles (license LPPL):
+;   https://www.ctan.org/pkg/babel-contrib
+; * polyglossia language styles (license LPPL)
+;   https://www.ctan.org/pkg/polyglossia
+; * Common Locale Data Repository (license Unicode):
+;   http://cldr.unicode.org/
+;   http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.1
+date = 2020-01-27
+name.local = Deutsch
+name.english = German
+name.babel = german-switzerland
+name.babel.A = german-ch
+name.babel.B = nswissgerman
+; The following conflicts with gsw:
+name.babel.C = swissgerman
+tag.bcp47 = de
+tag.opentype = DEU
+region.local = Schweiz
+region.english = Switzerland
+region.tag.bcp47 = CH
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe auch
+proof = Beweis
+glossary = Glossar
+
+[captions.licr]
+preface = Vorwort
+ref = Literatur
+abstract = Zusammenfassung
+bib = Literaturverzeichnis
+chapter = Kapitel
+appendix = Anhang
+contents = Inhaltsverzeichnis
+listfigure = Abbildungsverzeichnis
+listtable = Tabellenverzeichnis
+index = Index
+figure = Abbildung
+table = Tabelle
+part = Teil
+encl = Beilage(n)
+cc = Verteiler
+headto = An
+page = Seite
+see = siehe
+also = siehe\space auch
+proof = Beweis
+glossary = Glossar
+
+[date.gregorian]
+date.long = [d].[ ][MMMM] [y]
+date.short = [dd].[MM].[yy]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = März
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+months.narrow.1 = J
+months.narrow.2 = F
+months.narrow.3 = M
+months.narrow.4 = A
+months.narrow.5 = M
+months.narrow.6 = J
+months.narrow.7 = J
+months.narrow.8 = A
+months.narrow.9 = S
+months.narrow.10 = O
+months.narrow.11 = N
+months.narrow.12 = D
+days.wide.mon = Montag
+days.wide.tue = Dienstag
+days.wide.wed = Mittwoch
+days.wide.thu = Donnerstag
+days.wide.fri = Freitag
+days.wide.sat = Samstag
+days.wide.sun = Sonntag
+days.abbreviated.mon = Mo.
+days.abbreviated.tue = Di.
+days.abbreviated.wed = Mi.
+days.abbreviated.thu = Do.
+days.abbreviated.fri = Fr.
+days.abbreviated.sat = Sa.
+days.abbreviated.sun = So.
+days.narrow.mon = M
+days.narrow.tue = D
+days.narrow.wed = M
+days.narrow.thu = D
+days.narrow.fri = F
+days.narrow.sat = S
+days.narrow.sun = S
+dayPeriods.abbreviated.am = vorm.
+dayPeriods.abbreviated.pm = nachm.
+dayPeriods.narrow.am = vm.
+dayPeriods.narrow.pm = nm.
+dayPeriods.wide.am = vorm.
+dayPeriods.wide.pm = nachm.
+
+[date.gregorian.licr]
+months.wide.1 = Januar
+months.wide.2 = Februar
+months.wide.3 = M\"arz
+months.wide.4 = April
+months.wide.5 = Mai
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = August
+months.wide.9 = September
+months.wide.10 = Oktober
+months.wide.11 = November
+months.wide.12 = Dezember
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules = ngerman
+lefthyphenmin = 2
+righthyphenmin = 2
+hyphenchar = 
+prehyphenchar = 
+posthyphenchar = 
+exhyphenchar = 
+preexhyphenchar = 
+postexhyphenchar = 
+hyphenationmin = 
+
+[characters]
+delimiters.quotes = „“‚‘
+auxiliary = [á à ă â å ã ā æ ç é è ĕ ê ë ē ğ í ì ĭ î ï İ ī ı ñ ó ò ŏ ô ø ō œ ş ß ú ù ŭ û ū ÿ]
+exemplarCharacters = [a ä b c d e f g h i j k l m n o ö p q r s t u ü v w x y z]
+index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
+punctuation = [\\- ‐ – — , ; \\: ! ? . … ' ‘ ‚ \" “ „ « » ( ) \\[ \\] \\{ \\} § @ * / \\& #]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits = 1
+decimal = .
+exponential = E
+group = '
+infinity = ∞
+list = ;
+minusSign = -
+nan = NaN
+perMille = ‰
+percentSign = %
+plusSign = +
+superscriptingExponent = ·
+
+[counters]
+alph = 
+Alph = 
+ordinals = 
+


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.0
-date = 2017-09-01
+version = 1.1
+date = 2020-01-27
 name.local = Deutsch
 name.english = German
 name.babel = german-switzerland
@@ -153,7 +153,7 @@
 
 [typography]
 frenchspacing = yes
-hyphenrules = swissgerman
+hyphenrules = ngerman
 lefthyphenmin = 2
 righthyphenmin = 2
 hyphenchar = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.0
-date = 2017-09-01
+version = 1.1
+date = 2020-01-27
 name.local = Deutsch
 name.english = German
 name.babel = german
@@ -146,7 +146,7 @@
 
 [typography]
 frenchspacing = yes
-hyphenrules = german
+hyphenrules = ngerman
 lefthyphenmin = 2
 righthyphenmin = 2
 hyphenchar = 

Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-austria-traditional.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-austria-traditional.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-austria-traditional.tex	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+  \PackageError{babel}%
+    {This file is a component of babel and cannot\MessageBreak
+     be loaded directly. I'll stop immediately}%
+    {Just use babel as documented.}%
+  \stop
+\fi
+\BabelBeforeIni{de-AT-1901}{%
+}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-austria-traditional.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-switzerland-traditional.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-switzerland-traditional.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-switzerland-traditional.tex	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+  \PackageError{babel}%
+    {This file is a component of babel and cannot\MessageBreak
+     be loaded directly. I'll stop immediately}%
+    {Just use babel as documented.}%
+  \stop
+\fi
+\BabelBeforeIni{de-CH-1901}{%
+}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-switzerland-traditional.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-traditional.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-traditional.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-traditional.tex	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+  \PackageError{babel}%
+    {This file is a component of babel and cannot\MessageBreak
+     be loaded directly. I'll stop immediately}%
+    {Just use babel as documented.}%
+  \stop
+\fi
+\BabelBeforeIni{de-1901}{%
+}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-german-traditional.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-naustrian.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-naustrian.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-naustrian.tex	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,4 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\input{babel-german-austria}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-naustrian.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-ngerman.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-ngerman.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-ngerman.tex	2020-02-03 22:33:15 UTC (rev 53660)
@@ -0,0 +1,4 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\input{babel-german}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-ngerman.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ii/babel-ii.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ii/babel-ii.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ii/babel-ii.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.0
-date = 2017-09-01
+version = 1.1
+date = 2020-01-20
 name.local = ꆈꌠꉙ
 name.english = Sichuan Yi
 name.babel = sichuanyi
@@ -142,6 +142,8 @@
 preexhyphenchar = 
 postexhyphenchar = 
 hyphenationmin = 
+intraspace = 0 .1 0
+linebreaking = c
 
 [characters]
 delimiters.quotes = “”‘’

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.1
-date = 2019-05-05
+version = 1.2
+date = 2020-01-20
 name.local = 日本語
 name.english = Japanese
 name.babel = japanese
@@ -143,6 +143,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 
 [characters]
 delimiters.quotes = 「」『』

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/km/babel-km.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/km/babel-km.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/km/babel-km.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2018-10-02
+version = 1.4
+date = 2020-01-20
 name.local = ខ្មែរ
 name.english = Khmer
 name.babel = khmer
@@ -145,6 +145,7 @@
 hyphenationmin = 
 justify = s
 intraspace = 0 .1 0
+linebreaking = s
 
 [characters]
 ranges = 1780..17FF

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ko/babel-ko.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-10-30
+version = 1.3
+date = 2020-01-20
 name.local = 한국어
 name.english = Korean
 name.babel = korean
@@ -144,6 +144,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 
 [characters]
 delimiters.quotes = “”‘’

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/lo/babel-lo.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/lo/babel-lo.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/lo/babel-lo.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2018-10-02
+version = 1.4
+date = 2020-01-20
 name.local = ລາວ
 name.english = Lao
 name.babel = lao
@@ -122,6 +122,7 @@
 hyphenationmin = 
 justify = s
 intraspace = 0 .1 0
+linebreaking = s
 
 [characters]
 ranges = 0E80..0EFF

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Beng.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Beng.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Beng.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.5
-date = 2018-05-21
+version = 0.6
+date = 2020-01-29
 name.english = Sanskrit
-name.babel.0 = sanskrit
+name.babel = sanskrit
 tag.bcp47 = sa
 tag.opentype = SAN
 script.name = Bengali

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.5
-date = 2018-05-21
+version = 0.6
+date = 2020-01-29
 name.english = Sanskrit
-name.babel.0 = sanskrit
+name.babel = sanskrit
 tag.bcp47 = sa
 tag.opentype = SAN
 script.name = Devanagari

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Gujr.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Gujr.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Gujr.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.5
-date = 2018-05-21
+version = 0.6
+date = 2020-01-29
 name.english = Sanskrit
-name.babel.0 = sanskrit
+name.babel = sanskrit
 tag.bcp47 = sa
 tag.opentype = SAN
 script.name = Gujarati

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Knda.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Knda.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Knda.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.5
-date = 2018-05-21
+version = 0.6
+date = 2020-01-29
 name.english = Sanskrit
-name.babel.0 = sanskrit
+name.babel = sanskrit
 tag.bcp47 = sa
 tag.opentype = SAN
 script.name = Kannada

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Mlym.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Mlym.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Mlym.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.5
-date = 2018-05-21
+version = 0.6
+date = 2020-01-29
 name.english = Sanskrit
-name.babel.0 = sanskrit
+name.babel = sanskrit
 tag.bcp47 = sa
 tag.opentype = SAN
 script.name = Malayalam

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Telu.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Telu.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Telu.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.5
-date = 2018-05-21
+version = 0.6
+date = 2020-01-29
 name.english = Sanskrit
-name.babel.0 = sanskrit
+name.babel = sanskrit
 tag.bcp47 = sa
 tag.opentype = SAN
 script.name = Telugu

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.5
-date = 2018-05-21
+version = 0.6
+date = 2020-01-29
 name.english = Sanskrit
-name.babel.0 = sanskrit
+name.babel = sanskrit
 tag.bcp47 = sa
 tag.opentype = SAN
 script.name = Devanagari

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/th/babel-th.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/th/babel-th.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/th/babel-th.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2018-09-07
+version = 1.3
+date = 2020-01-20
 name.local = ไทย
 name.english = Thai
 name.babel = thai
@@ -160,6 +160,7 @@
 hyphenationmin = 
 justify = s
 intraspace = 0 .1 0
+linebreaking = s
 
 [characters]
 ranges = 0E00..0E7F

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/yue/babel-yue.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2020-01-20
 name.local = 粵語
 name.english = Cantonese
 name.babel = cantonese
@@ -144,6 +144,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 
 [characters]
 delimiters.quotes = 「」『』

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -149,6 +149,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 opentype.features = +smpl
 
 [characters]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -149,6 +149,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 opentype.features = +smpl
 
 [characters]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -149,6 +149,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 opentype.features = +smpl
 
 [characters]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -146,6 +146,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 opentype.features = +smpl
 
 [characters]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-HK.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-HK.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-HK.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Traditional
@@ -149,6 +149,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 opentype.features = +trad
 
 [characters]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Traditional
@@ -149,6 +149,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 opentype.features = +trad
 
 [characters]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Traditional
@@ -146,6 +146,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 opentype.features = +trad
 
 [characters]

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini	2020-02-03 22:33:15 UTC (rev 53660)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2019-10-30
+version = 1.4
+date = 2020-01-20
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -145,6 +145,7 @@
 postexhyphenchar = 
 hyphenationmin = 
 intraspace = 0 .1 0
+linebreaking = c
 
 [characters]
 delimiters.quotes = “”‘’

Modified: trunk/Master/texmf-dist/tex/generic/babel/luababel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `luatex')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -489,7 +489,7 @@
 \def\bbl at provide@intraspace{%
   \bbl at ifunset{bbl at intsp@\languagename}{}%
     {\expandafter\ifx\csname bbl at intsp@\languagename\endcsname\@empty\else
-       \bbl at xin@{\bbl at cs{sbcp@\languagename}}{Hant,Hans,Jpan,Kore,Kana}%
+       \bbl at xin@{\bbl at cs{lnbrk@\languagename}}{c}%
        \ifin@           % cjk
          \bbl at cjkintraspace
          \directlua{
@@ -554,6 +554,12 @@
 \bbl at trace{Font handling with fontspec}
 \@onlypreamble\babelfont
 \newcommand\babelfont[2][]{%  1=langs/scripts 2=fam
+  \bbl at foreach{#1}{%
+    \expandafter\ifx\csname date##1\endcsname\relax
+    \IfFileExists{babel-##1.tex}%
+      {\babelprovide{##1}}%
+      {}%
+    \fi}%
   \edef\bbl at tempa{#1}%
   \def\bbl at tempb{#2}%  Used by \bbl at bblfont
   \ifx\fontspec\@undefined
@@ -750,7 +756,7 @@
               {0x2B740, 0x2B81F}, {0x2B820, 0x2CEAF},
               {0x2CEB0, 0x2EBEF}, {0x2F800, 0x2FA1F}},
   ['Hebr'] = {{0x0590, 0x05FF}},
-  ['Japa'] = {{0x3000, 0x303F}, {0x3040, 0x309F}, {0x30A0, 0x30FF},
+  ['Jpan'] = {{0x3000, 0x303F}, {0x3040, 0x309F}, {0x30A0, 0x30FF},
               {0x4E00, 0x9FAF}, {0xFF00, 0xFFEF}},
   ['Khmr'] = {{0x1780, 0x17FF}, {0x19E0, 0x19FF}},
   ['Knda'] = {{0x0C80, 0x0CFF}},
@@ -772,10 +778,11 @@
   ['Thai'] = {{0x0E00, 0x0E7F}},
   ['Tibt'] = {{0x0F00, 0x0FFF}},
   ['Vaii'] = {{0xA500, 0xA63F}},
-  ['Yiii']= {{0xA490, 0xA4CF}, {0xA000, 0xA48F}}
+  ['Yiii'] = {{0xA000, 0xA48F}, {0xA490, 0xA4CF}}
 }
 
 Babel.script_blocks.Hant = Babel.script_blocks.Hans
+Babel.script_blocks.Kana = Babel.script_blocks.Jpan
 
 function Babel.locale_map(head)
   if not Babel.locale_mapped then return head end
@@ -801,7 +808,7 @@
         end
       end
       % Now, take action
-      if toloc then
+      if toloc and toloc > -1 then
         if Babel.locale_props[toloc].lg then
           item.lang = Babel.locale_props[toloc].lg
           node.set_attribute(item, LOCALE, toloc)
@@ -860,6 +867,12 @@
     Babel.Babel.cjk_characters[\the\count@]['c'] = '#1'
   }}
 \let\bbl at chprop@lb\bbl at chprop@linebreak
+\def\bbl at chprop@locale#1{%
+  \directlua{
+    Babel.chr_to_loc = Babel.chr_to_loc or {}
+    Babel.chr_to_loc[\the\count@] =
+      \bbl at ifblank{#1}{-1000}{\the\@nameuse{bbl at id@@#1}}\space
+  }}
 \begingroup
 \catcode`\#=12
 \catcode`\%=12
@@ -1029,16 +1042,44 @@
     return head
   end
 
-  &% Used below
+  &% The following functions belong to the next macro
+
+  &% This table stores capture maps, numbered consecutively
+  Babel.capture_maps = {}
+
   function Babel.capture_func(key, cap)
     local ret = "[[" .. cap:gsub('{([0-9])}', "]]..m[%1]..[[") .. "]]"
+    ret = ret:gsub('{([0-9])|([^|]+)|(.-)}', Babel.capture_func_map)
     ret = ret:gsub("%[%[%]%]%.%.", '')
     ret = ret:gsub("%.%.%[%[%]%]", '')
     return key .. [[=function(m) return ]] .. ret .. [[ end]]
   end
+
+  function Babel.capt_map(from, mapno)
+    return Babel.capture_maps[mapno][from] or from
+  end
+
+  &% Handle the {n|abc|ABC} syntax in captures
+  function Babel.capture_func_map(capno, from, to)
+    local froms = {}
+    for s in string.utfcharacters(from) do
+      table.insert(froms, s)
+    end
+    local cnt = 1
+    table.insert(Babel.capture_maps, {})
+    local mlen = table.getn(Babel.capture_maps)
+    for s in string.utfcharacters(to) do
+      Babel.capture_maps[mlen][froms[cnt]] = s
+      cnt = cnt + 1
+    end
+    return "]]..Babel.capt_map(m[" .. capno .. "]," ..
+           (mlen) .. ").." .. "[["
+  end
+
 }
 \catcode`\#=6
 \gdef\babelposthyphenation#1#2#3{&%
+  \bbl at activateposthyphen
   \begingroup
     \def\babeltempa{\bbl at add@list\babeltempb}&%
     \let\babeltempb\@empty
@@ -1071,6 +1112,11 @@
     }&%
   \endgroup}
 \endgroup
+\def\bbl at activateposthyphen{%
+  \let\bbl at activateposthyphen\relax
+  \directlua{
+    Babel.linebreaking.add_after(Babel.post_hyphenate_replace)
+  }}
 \bbl at trace{Redefinitions for bidi layout}
 \ifx\@eqnnum\@undefined\else
   \ifx\bbl at attr@dir\@undefined\else

Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `nil')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -32,7 +32,7 @@
 %% extension |.ins|) which are part of the distribution.
 %%
 
-\ProvidesLanguage{nil}[2020/01/15 3.38 Nil language]
+\ProvidesLanguage{nil}[2020/02/03 3.39 Nil language]
 \LdfInit{nil}{datenil}
 \ifx\l at nil\@undefined
   \newlanguage\l at nil

Modified: trunk/Master/texmf-dist/tex/generic/babel/plain.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/plain.def	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/plain.def	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `plain')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.

Modified: trunk/Master/texmf-dist/tex/generic/babel/switch.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/switch.def	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/switch.def	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `kernel')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -37,7 +37,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{switch.def}[2020/01/15 3.38 Babel switching mechanism]
+\ProvidesFile{switch.def}[2020/02/03 3.39 Babel switching mechanism]
 \ifx\AtBeginDocument\@undefined
   \input plain.def\relax
 \fi
@@ -58,8 +58,8 @@
   \countdef\last at language=19
   \def\addlanguage{\alloc at 9\language\chardef\@cclvi}
 \fi
-\def\bbl at version{3.38}
-\def\bbl at date{2020/01/15}
+\def\bbl at version{3.39}
+\def\bbl at date{2020/02/03}
 \def\adddialect#1#2{%
   \global\chardef#1#2\relax
   \bbl at usehooks{adddialect}{{#1}{#2}}%
@@ -146,7 +146,6 @@
   \edef\languagename{%
     \ifnum\escapechar=\expandafter`\string#1\@empty
     \else\string#1\@empty\fi}%
-  % \@namedef{bbl at lcname@#1}{#1}%
   \select at language{\languagename}%
   % write to auxs
   \expandafter\ifx\csname date\languagename\endcsname\relax\else
@@ -163,8 +162,13 @@
   % set name
   \edef\languagename{#1}%
   \bbl at fixname\languagename
+  \expandafter\ifx\csname date\languagename\endcsname\relax
+    \IfFileExists{babel-\languagename.tex}%
+      {\babelprovide{\languagename}}%
+      {}%
+  \fi
   \bbl at iflanguage\languagename{%
-    \expandafter\ifx\csname date\languagename\endcsname\relax
+     \expandafter\ifx\csname date\languagename\endcsname\relax
       \bbl at error
         {Unknown language `#1'. Either you have\\%
          misspelled its name, it has not been installed,\\%
@@ -301,8 +305,12 @@
 \def\foreign at language#1{%
   % set name
   \edef\languagename{#1}%
-  % \@namedef{bbl at lcname@#1}{#1}%
   \bbl at fixname\languagename
+  \expandafter\ifx\csname date\languagename\endcsname\relax
+    \IfFileExists{babel-\languagename.tex}%
+      {\babelprovide{\languagename}}%
+      {}%
+  \fi
   \bbl at iflanguage\languagename{%
     \expandafter\ifx\csname date\languagename\endcsname\relax
       \bbl at warning   % TODO - why a warning, not an error?
@@ -396,6 +404,7 @@
 \let\uselocale\setlocale
 \let\locale\setlocale
 \let\selectlocale\setlocale
+\let\localename\setlocale
 \let\textlocale\setlocale
 \let\textlanguage\setlocale
 \let\languagetext\setlocale

Modified: trunk/Master/texmf-dist/tex/generic/babel/txtbabel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/txtbabel.def	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/txtbabel.def	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `texxet')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.

Modified: trunk/Master/texmf-dist/tex/generic/babel/xebabel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/xebabel.def	2020-02-03 22:32:24 UTC (rev 53659)
+++ trunk/Master/texmf-dist/tex/generic/babel/xebabel.def	2020-02-03 22:33:15 UTC (rev 53660)
@@ -7,7 +7,7 @@
 %% babel.dtx  (with options: `xetex')
 %% 
 %%
-%% Copyright (C) 2012-2019 Javier Bezos and Johannes L. Braams.
+%% Copyright (C) 2012-2020 Javier Bezos and Johannes L. Braams.
 %% Copyright (C) 1989-2012 Johannes L. Braams and
 %%           any individual authors listed elsewhere in this file.
 %% All rights reserved.
@@ -113,6 +113,12 @@
 \bbl at trace{Font handling with fontspec}
 \@onlypreamble\babelfont
 \newcommand\babelfont[2][]{%  1=langs/scripts 2=fam
+  \bbl at foreach{#1}{%
+    \expandafter\ifx\csname date##1\endcsname\relax
+    \IfFileExists{babel-##1.tex}%
+      {\babelprovide{##1}}%
+      {}%
+    \fi}%
   \edef\bbl at tempa{#1}%
   \def\bbl at tempb{#2}%  Used by \bbl at bblfont
   \ifx\fontspec\@undefined



More information about the tex-live-commits mailing list.