]> git.lyx.org Git - lyx.git/blobdiff - lib/languages
Move DrawStrategy enum to update_flags.h.
[lyx.git] / lib / languages
index 88b5fea477ec8c3fde5175b83f63082c18cecc40..903bba994bc4e596bb481d933190fd9d53884e30 100644 (file)
 #      BabelName          <babelname>
 #      PolyglossiaName    <polyglossianame>
 #      PolyglossiaOpts    "<language-specific options>"
+#      XindyName          <xindyname>
+#      ActiveChars        <activated characters>
 #      QuoteStyle         <british|danish|english|french|frenchin|
-#                           german|polish|russian|swedish|swedishg|swiss|plain>
+#                           german|polish|russian|swedish|swedishg|swiss|hebrew|plain>
 #      DateFormats        "<long>|<medium>|<short>"
 #      Encoding           <encoding>
 #      FontEncoding       <font encoding|font encoding|...>
@@ -55,6 +57,8 @@
 #   - french:    <<text>>              ``text''        (outward guillemets -- 66_99)
 #   - frenchin:   <<text>>             <<text>>        (French Imprimerie Nationale style)
 #   - german:    ,,text``              ,text`          (99/66 -- 9/6)
+#   - hebrew:    ''text,,              'text,          (99/99 -- 9/9)
+#   - hungarian:  ,,text''             >>text<<        (99/99 -- double inward guillemets)
 #   - polish:    ,,text''              ,text'          (99/99 -- 9/9)
 #   - russian:    <<text>>             ,,text``        (outward guillemets -- 99/66)
 #   - swedish:   ''text''              'text'          (99_99 -- 9_9)
 # * Provides lists features that are provided by specific Babel languages,
 #   but are available globally if this language is used (not only for this
 #   language. Examples are \textgreek (Greek) and \textcyrillic (Russian).
+# * ActiveChars provides a string of the characters that are made active
+#   by the language. We record particularly those characters that have to
+#   be de-activated in some contexts (such as - or =).
+# * XindyName holds the value to the (te)xindy -L option. We only give it
+#   if a corresponding language module exists.
 #
 ##########################################################################
 
@@ -144,10 +153,10 @@ End
 # Real languages
 #
 
-# not yet supported by polyglossia
 Language afrikaans
        GuiName          "Afrikaans"
        BabelName        afrikaans
+       PolyglossiaName  afrikaans
        QuoteStyle       polish
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -168,6 +177,7 @@ Language albanian
          \@ifl@aded{def}{t1enc}{\DeclareTextSymbol{\th}{T1}{254}}{}
        EndPostBabelPreamble
        PolyglossiaName  albanian
+       XindyName        albanian
        QuoteStyle       swiss
        Encoding         iso8859-2
        FontEncoding     T1|OT1
@@ -180,6 +190,7 @@ Language american
        BabelName        american
        PolyglossiaName  english
        PolyglossiaOpts  "variant=american"
+       XindyName        english
        QuoteStyle       english
        Encoding         iso8859-15
        FontEncoding     ASCII
@@ -206,6 +217,7 @@ Language ancientgreek
        EndPostBabelPreamble
        PolyglossiaName  greek
        PolyglossiaOpts  "variant=ancient"
+       XindyName        greek
        QuoteStyle       french
        Encoding         iso8859-7
        InternalEncoding true
@@ -239,24 +251,26 @@ Language arabic_arabi
        DateFormats      "d MMMM، yyyy|dd/MM/yyyy|d/M/yyyy"
        RTL              true
        PostBabelPreamble
-         % arabic + hyperref redefines \noboundary as local textcommand
-         \let\orig@noboundary\noboundary
-         \DeclareTextCommandDefault{\noboundary}{\orig@noboundary}
-         % work around too simple test for article-like classes in arabicore.sty
-         \ifdefined\chapter\else
-           \def\thesection{\protect\if@rl\protect\I{\number\c@section}%
-             \protect\else\protect\textLR{\number\c@section}%
-             \protect\fi}
-           \def\thesubsection{\protect\if@rl\protect\I{\number\c@subsection.\number\c@section}%
-             \protect\else\protect\textLR{\number\c@section.\number\c@subsection}%
-             \protect\fi}%
-           \def\thetable{\protect\if@rl\protect\I{\number\c@table}%
-             \protect\else\protect\textLR{\number\c@table}%
-             \protect\fi}%
-           \def\thefigure{\protect\if@rl\protect\I{\number\c@figure}%
-             \protect\else\protect\textLR{\number\c@figure}%
-             \protect\fi}%
-         \fi
+         \@ifundefined{if@rl}{}{
+                 % arabic + hyperref redefines \noboundary as local textcommand
+                 \let\orig@noboundary\noboundary
+                 \DeclareTextCommandDefault{\noboundary}{\orig@noboundary}
+                 % work around too simple test for article-like classes in arabicore.sty
+                 \@ifundefined{chapter}{
+                   \def\thesection{\protect\if@rl\protect\I{\number\c@section}%
+                     \protect\else\protect\textLR{\number\c@section}%
+                     \protect\fi}
+                   \def\thesubsection{\protect\if@rl\protect\I{\number\c@subsection.\number\c@section}%
+                     \protect\else\protect\textLR{\number\c@section.\number\c@subsection}%
+                     \protect\fi}
+                   \def\thetable{\protect\if@rl\protect\I{\number\c@table}%
+                     \protect\else\protect\textLR{\number\c@table}%
+                     \protect\fi}
+                   \def\thefigure{\protect\if@rl\protect\I{\number\c@figure}%
+                     \protect\else\protect\textLR{\number\c@figure}%
+                     \protect\fi}
+                 }{}
+         }
        EndPostBabelPreamble
        LangCode         ar_SA
 End
@@ -287,6 +301,7 @@ Language australian
        BabelName        australian
        PolyglossiaName  english
        PolyglossiaOpts  "variant=australian"
+       XindyName        english
        Encoding         iso8859-15
        FontEncoding     ASCII
        DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
@@ -301,6 +316,7 @@ Language austrian
        BabelName        austrian
        PolyglossiaName  german
        PolyglossiaOpts  "variant=austrian,spelling=old,babelshorthands=true"
+       XindyName        german-duden
        QuoteStyle       german
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -315,6 +331,7 @@ Language naustrian
        BabelName        naustrian
        PolyglossiaName  german
        PolyglossiaOpts  "variant=austrian,spelling=new,babelshorthands=true"
+       XindyName        german-duden
        QuoteStyle       german
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -375,12 +392,13 @@ Language basque
        EndPostBabelPreamble
 End
 
-# not yet supported by polyglossia
 # Up to 2018-08-25 (babel-belarusian 1.4), the babel option is "belarusianb"
 # but the language name "belarusian" (without trailing "b").
 Language belarusian
        GuiName          "Belarusian"
        BabelName        belarusian
+       PolyglossiaName  belarusian
+       XindyName        belarusian
        QuoteStyle       french
        Encoding         cp1251
        FontEncoding     T2A
@@ -388,8 +406,9 @@ Language belarusian
        LangCode         be_BY
 End
 
-# supported by polyglossia but not LyX:
+# supported by polyglossia but not babel:
 Language bengali
+       GuiName          "Bengali"
        PolyglossiaName  bengali
        QuoteStyle       english
        Encoding         utf8
@@ -397,11 +416,11 @@ Language bengali
 End
 
 
-# not yet supported by polyglossia
 # The (rarely used) Cyrillic script is not supported (try serbian).
 Language bosnian
        GuiName          "Bosnian"
        BabelName        bosnian
+       PolyglossiaName  bosnian
        QuoteStyle       polish
        Encoding         iso8859-2
        FontEncoding     T1|OT1
@@ -414,6 +433,7 @@ Language brazilian
        HasGuiSupport    true
        BabelName        brazil
        PolyglossiaName  brazil
+       XindyName        portuguese
        QuoteStyle       english
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -438,6 +458,7 @@ Language british
        BabelName        british
        PolyglossiaName  english
        PolyglossiaOpts  "variant=british"
+       XindyName        english
        QuoteStyle       british
        Encoding         iso8859-15
        FontEncoding     ASCII
@@ -450,6 +471,7 @@ Language bulgarian
        HasGuiSupport    true
        BabelName        bulgarian
        PolyglossiaName  bulgarian
+       XindyName        bulgarian
        QuoteStyle       german
        Encoding         cp1251
        FontEncoding     T2A
@@ -458,27 +480,26 @@ Language bulgarian
        Provides         textcyrillic
 End
 
-# not yet supported by polyglossia
 Language canadian
        GuiName          "English (Canada)"
        BabelName        canadian
-#      PolyglossiaName  english
-#      PolyglossiaOpts  "variant=canadian"
+       PolyglossiaName  english
+       PolyglossiaOpts  "variant=canadian"
+       XindyName        english
        QuoteStyle       english
        Encoding         iso8859-15
-       FontEncoding     ASCII
+       FontEncoding     ASCII
        DateFormats      "MMMM d, yyyy|d MMM yyyy|yyyy-MM-dd"
        LangCode         en_CA
 End
 
-# not yet supported by polyglossia
-# Note: If polyglossia support gets implemented, french needs
-#       PolyglossiaOpts  "variant=french"
 Language canadien
        GuiName          "French (Canada)"
-       BabelName        canadien
-#      PolyglossiaName  french
-#      PolyglossiaOpts  "variant=canadien"
+       BabelName        acadian
+       PolyglossiaName  french
+       PolyglossiaOpts  "variant=canadian"
+       ActiveChars      ;!?:
+       XindyName        french
        QuoteStyle       french
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -548,6 +569,7 @@ Language croatian
        GuiName          "Croatian"
        BabelName        croatian
        PolyglossiaName  croatian
+       XindyName        croatian
        QuoteStyle       polish
        Encoding         iso8859-2
        FontEncoding     T1|OT1
@@ -560,7 +582,9 @@ Language czech
        HasGuiSupport    true
        BabelName        czech
        PolyglossiaName  czech
+       XindyName        czech
        QuoteStyle       german
+       ActiveChars      -
        Encoding         iso8859-2
        FontEncoding     T1|OT1
        DateFormats      "d. MMMM yyyy|d. MMM. yyyy|d.M.yyyy"
@@ -572,6 +596,7 @@ Language danish
        HasGuiSupport    true
        BabelName        danish
        PolyglossiaName  danish
+       XindyName        danish
        QuoteStyle       danish
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -594,6 +619,7 @@ Language dutch
        BabelName        dutch
        PolyglossiaName  dutch
        PolyglossiaOpts  "babelshorthands=true"
+       XindyName        dutch
        QuoteStyle       polish
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -607,6 +633,7 @@ Language english
        BabelName        english
        PolyglossiaName  english
        PolyglossiaOpts  "variant=american"
+       XindyName        english
        QuoteStyle       english
        DateFormats      "MMMM dd, yyyy|MMM dd, yyyy|M/d/yyyy"
        Encoding         iso8859-15
@@ -620,6 +647,7 @@ Language esperanto
        GuiName          "Esperanto"
        BabelName        esperanto
        PolyglossiaName  esperanto
+       XindyName        esperanto
        QuoteStyle       english
        Encoding         iso8859-3
        FontEncoding     IL3|T1|OT1
@@ -631,6 +659,7 @@ Language estonian
        GuiName          "Estonian"
        BabelName        estonian
        PolyglossiaName  estonian
+       XindyName        estonian
        QuoteStyle       german
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -647,6 +676,7 @@ Language farsi
        GuiName          "Farsi"
        BabelName        farsi
        PolyglossiaName  farsi
+       XindyName        persian
        Encoding         utf8
        FontEncoding     LAE,LFE
        DateFormats      "d MMMM yyyy|d MMM yyyy|yyyy/M/d"
@@ -664,6 +694,7 @@ Language finnish
        HasGuiSupport    true
        BabelName        finnish
        PolyglossiaName  finnish
+       XindyName        finnish
        QuoteStyle       swedish
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -675,7 +706,9 @@ Language french
        GuiName          "French"
        HasGuiSupport    true
        BabelName        french
+       ActiveChars      ;!?:
        PolyglossiaName  french
+       XindyName        french
        QuoteStyle       french
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -714,6 +747,8 @@ End
 Language georgian
        GuiName          "Georgian"
        BabelName        georgian
+       PolyglossiaName  georgian
+       XindyName        georgian
        QuoteStyle       german
        Encoding         utf8
        FontEncoding     T8M
@@ -726,6 +761,7 @@ Language german
        BabelName        german
        PolyglossiaName  german
        PolyglossiaOpts  "variant=german,spelling=old,babelshorthands=true"
+       XindyName        german-duden
        QuoteStyle       german
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -740,6 +776,7 @@ Language ngerman
        BabelName        ngerman
        PolyglossiaName  german
        PolyglossiaOpts  "variant=german,spelling=new,babelshorthands=true"
+       XindyName        german-duden
        QuoteStyle       german
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -756,6 +793,7 @@ Language german-ch
        BabelName        nswissgerman
        PolyglossiaName  german
        PolyglossiaOpts  "variant=swiss,spelling=new,babelshorthands=true"
+       XindyName        german-duden
        QuoteStyle       swiss
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -771,6 +809,7 @@ Language german-ch-old
        BabelName        swissgerman
        PolyglossiaName  german
        PolyglossiaOpts  "variant=swiss,spelling=old,babelshorthands=true"
+       XindyName        german-duden
        QuoteStyle       swiss
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -784,6 +823,7 @@ Language greek
        BabelName        greek
        PolyglossiaName  greek
        PolyglossiaOpts  "variant=monotonic"
+       XindyName        greek
        QuoteStyle       french
        Encoding         iso8859-7
        InternalEncoding true
@@ -798,6 +838,7 @@ Language polutonikogreek
        BabelName        polutonikogreek
        PolyglossiaName  greek
        PolyglossiaOpts  "variant=polytonic"
+       XindyName        greek
        QuoteStyle       french
        Encoding         iso8859-7
        InternalEncoding true
@@ -812,20 +853,12 @@ Language hebrew
        HasGuiSupport    true
        BabelName        hebrew
        PolyglossiaName  hebrew
+       XindyName        hebrew
        Encoding         cp1255
-       QuoteStyle       english
+       QuoteStyle       hebrew
        InternalEncoding true
        # babel-hebrew expects the encoding for *other* languages last:
        FontEncoding    HE8,T1|LHE,T1
-       ## Use font encoding HE8 if the Culmus fonts are installed and
-       # work around too simple test for article-like classes in rlbabel.def.
-       PreBabelPreamble
-         \IfFileExists{he8david.fd}{%
-           \providecommand{\HeblatexEncoding}{HE8}
-           \providecommand{\HeblatexEncodingFile}{he8enc}%
-         }{}
-         \providecommand{\l@chapter}{\relax}
-       EndPreBabelPreamble
        DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        RTL              true
        LangCode         he_IL
@@ -857,6 +890,7 @@ Language icelandic
        GuiName          "Icelandic"
        BabelName        icelandic
        PolyglossiaName  icelandic
+       XindyName        icelandic
        QuoteStyle       german
        Encoding         iso8859-15
        FontEncoding     T1
@@ -894,6 +928,7 @@ Language italian
        HasGuiSupport    true
        BabelName        italian
        PolyglossiaName  italian
+       XindyName        italian
        QuoteStyle       french
        Encoding         iso8859-15
        FontEncoding     ASCII
@@ -958,6 +993,7 @@ End
 Language korean
        GuiName         "Korean"
        PolyglossiaName korean
+       XindyName       korean
        Encoding        euc-kr
        QuoteStyle      cjkangle
        DateFormats     "yyyy년 M월 d일|yyyy. M. d.|yy. M. d."
@@ -975,10 +1011,12 @@ End
 #      Requires        kotex
 # End
 
-# not yet supported by polyglossia
 Language kurmanji
-       GuiName          "Kurmanji"
+       GuiName          "Kurdish (Kurmanji)"
        BabelName        kurmanji
+       PolyglossiaName  kurdish
+       XindyName        kurdish-bedirxan
+       PolyglossiaOpts  "variant=kurmanji"
        Encoding         utf8
        FontEncoding     T1|OT1
        DateFormats      "d. MMMM yyyy|d. M. yyyy|yyyy-MM-dd"
@@ -1001,6 +1039,8 @@ Language latin
        GuiName          "Latin"
        BabelName        latin
        PolyglossiaName  latin
+       XindyName        latin
+       ActiveChars      ^=
        Encoding         iso8859-15
        FontEncoding     T1|OT1
        LangCode         la_LA
@@ -1013,6 +1053,7 @@ Language latvian
        GuiName          "Latvian"
        BabelName        latvian
        PolyglossiaName  latvian
+       XindyName        latvian
        QuoteStyle       german
        Encoding         iso8859-4
        FontEncoding     L7x|T1|OT1
@@ -1020,23 +1061,35 @@ Language latvian
        LangCode         lv_LV
 End
 
-# lithuanian must be loaded locally with babel options,
-# not globally via class options
-# FontEncoding: L7x set by Babel
+# FontEncoding: L7x required for hyphenation but no longer set by Babel
+# (since 2017-12-06)
 Language lithuanian
        GuiName          "Lithuanian"
        BabelName        lithuanian
        PolyglossiaName  lithuanian
+       XindyName        lithuanian
        QuoteStyle       german
        Encoding         iso8859-13
        FontEncoding     L7x
        # L7x defines \copyright as TextSymbol which leads to an endless loop
-        # when it is used in other font encodings.
+       # when it is used in other font encodings.
        PostBabelPreamble
-         % restore \coyright definition corrupted by l7xenc.def
-          \DeclareRobustCommand{\copyright}{%
-            \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
-           \addto\noextraslithuanian{\latintext}
+         \@ifl@aded{def}{l7xenc}{
+           % restore corrupted \coyright definition
+           \DeclareRobustCommand{\copyright}{%
+             \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi
+           }
+           % Switch to L7x and back
+           \addto\extraslithuanian{
+             \let\bbl@lithuanian@cfencoding\cf@encoding
+             \fontencoding{L7x}\selectfont
+             \def\encodingdefault{L7x}
+           }
+           \addto\noextraslithuanian{
+             \def\encodingdefault{\bbl@lithuanian@cfencoding}
+             \fontencoding{\encodingdefault}\selectfont
+           }  
+         }{}
        EndPostBabelPreamble
        DateFormats      "yyyy 'm.' MMMM d 'd.'|yyyy 'm.' MMMM d 'd.'|yyyy-MM-dd"
        LangCode         lt_LT
@@ -1046,6 +1099,7 @@ Language lowersorbian
        GuiName          "Lower Sorbian"
        BabelName        lowersorbian
        PolyglossiaName  lsorbian
+       XindyName        lower-sorbian
        QuoteStyle       german
        Encoding         iso8859-2
        FontEncoding     T1|OT1
@@ -1058,17 +1112,19 @@ Language magyar
        HasGuiSupport    true
        BabelName        magyar
        PolyglossiaName  magyar
-       QuoteStyle       polish
+       XindyName        hungarian
+       QuoteStyle       hungarian
        Encoding         iso8859-2
        FontEncoding     T1|OT1
        DateFormats      "yyyy. MMMM d.|yyyy. MMM d.|yyyy.MM.dd."
        LangCode         hu_HU
 End
 
-# not yet supported by polyglossia
 Language macedonian
        GuiName          "Macedonian"
        BabelName        macedonian
+       PolyglossiaName  macedonian
+       XindyName        macedonian
        QuoteStyle       german
        Encoding         cp1251
        FontEncoding     T2A
@@ -1098,10 +1154,11 @@ End
 
 # mongolian must be loaded locally with babel options,
 # not globally via class options
-# not yet supported by polyglossia
 Language mongolian
        GuiName          "Mongolian"
        BabelName        mongolian
+       PolyglossiaName  mongolian
+       XindyName        mongolian
        Encoding         utf8
        FontEncoding     T2A
        DateFormats      "yyyy оны M сарын d|d-M-yyyy|dd-MM-yyyy"
@@ -1114,6 +1171,7 @@ Language newzealand
        BabelName        newzealand
        PolyglossiaName  english
        PolyglossiaOpts  "variant=newzealand"
+       XindyName        english
        QuoteStyle       english
        Encoding         iso8859-15
        FontEncoding     ASCII
@@ -1126,6 +1184,7 @@ Language norsk
        HasGuiSupport    true
        BabelName        norsk
        PolyglossiaName  norsk
+       XindyName        norwegian
        QuoteStyle       swiss
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -1154,6 +1213,7 @@ Language nynorsk
        HasGuiSupport    true
        BabelName        nynorsk
        PolyglossiaName  nynorsk
+       XindyName        norwegian
        QuoteStyle       swiss
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -1178,6 +1238,7 @@ Language oldrussian
        GuiName          "Russian (Petrine orthography)"
        PolyglossiaName  russian
        PolyglossiaOpts  "spelling=old"
+       XindyName        russian
        QuoteStyle       russian
        LangCode         ru_petr1708
 End
@@ -1200,6 +1261,7 @@ Language polish
        HasGuiSupport    true
        BabelName        polish
        PolyglossiaName  polish
+       XindyName        polish
        QuoteStyle       polish
        Encoding         iso8859-2
        FontEncoding     QX|T1|OT1
@@ -1212,6 +1274,7 @@ Language portuguese
        HasGuiSupport    true
        BabelName        portuges
        PolyglossiaName  portuges
+       XindyName        portuguese
        QuoteStyle       french
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -1224,6 +1287,7 @@ Language romanian
        HasGuiSupport    true
        BabelName        romanian
        PolyglossiaName  romanian
+       XindyName        romanian
        QuoteStyle       polish
        Encoding         iso8859-16
        FontEncoding     T1|OT1
@@ -1249,6 +1313,7 @@ Language russian
        BabelName        russian
        PolyglossiaName  russian
        PolyglossiaOpts  "spelling=modern"
+       XindyName        russian
        QuoteStyle       russian
        Encoding         koi8-r
        FontEncoding     T2A
@@ -1301,6 +1366,7 @@ Language serbian
        BabelName        serbianc
        PolyglossiaName  serbian
        PolyglossiaOpts  "script=Cyrillic"
+       XindyName        serbian
        # Note: script option is uppercase, even if the polyglossia
        #       manual states otherwise.
        QuoteStyle       polish
@@ -1310,13 +1376,13 @@ Language serbian
        LangCode         sr_RS
 End
 
-# Note: script option is uppercase, even if the polyglossia
-#       manual states otherwise.
+# We use croatian for Latin Serbian index ordering
 Language serbian-latin
        GuiName          "Serbian (Latin)"
        BabelName        serbian
        PolyglossiaName  serbian
        PolyglossiaOpts  "script=Latin"
+       XindyName        croatian
        QuoteStyle       polish
        Encoding         iso8859-2
        FontEncoding     T1|OT1
@@ -1329,7 +1395,9 @@ Language slovak
        HasGuiSupport    true
        BabelName        slovak
        PolyglossiaName  slovak
+       XindyName        slovak-large
        QuoteStyle       german
+       ActiveChars      -^
        Encoding         iso8859-2
        FontEncoding     T1|OT1
        DateFormats      "d. MMMM yyyy|d. MMM yyyy|d.M.yyyy"
@@ -1340,6 +1408,7 @@ Language slovene
        GuiName          "Slovene"
        BabelName        slovene
        PolyglossiaName  slovenian
+       XindyName        slovenian
        QuoteStyle       german
        Encoding         iso8859-2
        FontEncoding     T1|OT1
@@ -1352,6 +1421,7 @@ Language spanish
        HasGuiSupport    true
        BabelName        spanish
        PolyglossiaName  spanish
+       XindyName        spanish-modern
        QuoteStyle       french
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -1359,6 +1429,7 @@ Language spanish
        LangCode         es_ES
        PostBabelPreamble
        \addto\shorthandsspanish{\spanishdeactivate{~<>}}
+       \deactivatequoting
        EndPostBabelPreamble
 End
 
@@ -1367,6 +1438,7 @@ Language spanish-mexico
        GuiName          "Spanish (Mexico)"
        BabelName        spanish
        PolyglossiaName  spanish
+       XindyName        spanish-modern
        QuoteStyle       french
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -1374,6 +1446,7 @@ Language spanish-mexico
        LangCode         es_MX
        PostBabelPreamble
        \addto\shorthandsspanish{\spanishdeactivate{~<>.}}
+       \deactivatequoting
        EndPostBabelPreamble
 End
 
@@ -1382,6 +1455,7 @@ Language swedish
        HasGuiSupport    true
        BabelName        swedish
        PolyglossiaName  swedish
+       XindyName        swedish
        QuoteStyle       swedish
        Encoding         iso8859-15
        FontEncoding     T1|OT1
@@ -1441,11 +1515,23 @@ Language thai
          \DeclareRobustCommand{\copyright}{%
            \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
          \DeclareTextSymbol{\textcopyright}{LTH}{8}
+         %
           % set up Thai fonts as substitue for the default families
-          \usepackage{substitutefont}
-          \substitutefont{LTH}{\rmdefault}{norasi}
-          \substitutefont{LTH}{\sfdefault}{garuda}
-          \substitutefont{LTH}{\ttdefault}{ttypist}
+         % The 'substitutefont' package is obsolete now, since commands
+         % from the LaTeX kernel can be used instead. See here:
+         %   https://ctan.org/pkg/substitutefont
+         %   https://www.latex-project.org/news/latex2e-news/ltnews31.pdf
+         \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+         \IfFormatAtLeastTF{2020/02/01}{%
+           \DeclareFontFamilySubstitution{LTH}{\rmdefault}{norasi}
+           \DeclareFontFamilySubstitution{LTH}{\sfdefault}{garuda}
+           \DeclareFontFamilySubstitution{LTH}{\ttdefault}{ttypist}
+         }{%
+           \usepackage{substitutefont}
+           \substitutefont{LTH}{\rmdefault}{norasi}
+           \substitutefont{LTH}{\sfdefault}{garuda}
+           \substitutefont{LTH}{\ttdefault}{ttypist}
+         }
        EndPostBabelPreamble
 End
 
@@ -1463,14 +1549,13 @@ Language turkish
        HasGuiSupport    true
        BabelName        turkish
        PolyglossiaName  turkish
+       XindyName        turkish
        QuoteStyle       english
+       ActiveChars      =
        Encoding         iso8859-9
        FontEncoding     T1|OT1
        LangCode         tr_TR
        DateFormats      "d MMMM yyyy|dd.MMM.yyyy|dd.MM.yyyy"
-       PostBabelPreamble
-       \usepackage{xkeyval}
-       EndPostBabelPreamble
 End
 
 # turkmen must be loaded locally with babel options,
@@ -1491,6 +1576,7 @@ Language ukrainian
        HasGuiSupport    true
        BabelName        ukrainian
        PolyglossiaName  ukrainian
+       XindyName        ukrainian
        QuoteStyle       russian
        Encoding         koi8-u
        FontEncoding     T2A
@@ -1503,6 +1589,7 @@ Language uppersorbian
        GuiName          "Upper Sorbian"
        BabelName        uppersorbian
        PolyglossiaName  usorbian
+       XindyName        upper-sorbian
        QuoteStyle       german
        Encoding         iso8859-2
        FontEncoding     T1|OT1
@@ -1524,6 +1611,7 @@ Language vietnamese
        GuiName          "Vietnamese"
        BabelName        vietnamese
        PolyglossiaName  vietnamese
+       XindyName        vietnamese
        QuoteStyle       english
        Encoding         utf8
        DateFormats      "dd 'tháng' MMMM yyyy|dd-MM-yyyy|dd/MM/yyyy"