]> git.lyx.org Git - lyx.git/blobdiff - lib/languages
Correctly set language after intitle paragraphs
[lyx.git] / lib / languages
index a1d9558a8332b33a143d0936c042e531f6d015ea..ca08344f80d5635fddac19321b56aa30f4c8c628 100644 (file)
 #      BabelName          <babelname>
 #      PolyglossiaName    <polyglossianame>
 #      PolyglossiaOpts    "<language-specific options>"
+#      ActiveChars        <activated characters>
+#      QuoteStyle         <british|danish|english|french|frenchin|
+#                           german|polish|russian|swedish|swedishg|swiss|plain>
+#      DateFormats        "<long>|<medium>|<short>"
 #      Encoding           <encoding>
-#      FontEncoding       <font encoding>
-#      QuoteStyle         <danish|english|french|german|polish|swedish>
+#      FontEncoding       <font encoding|font encoding|...>
 #      InternalEncoding   <true|false>
 #      RTL                <true|false>
-#      AsBabelOptions     <true|false>
+#      WordWrap           <true|false>
 #      LangCode           <language_code>
 #      LangVariety        <language_variety>
 #      PreBabelPreamble
 #        <extra latex code inserted after babel>
 #      EndPostBabelPreamble
 #      Requires           <requirement>
+#      Provides           <babel language feature>
 # End
 #
 #
 # NOTES:
 #
+# * If we provide Polyglossia languages with different options, the default
+#   options (such as "variant=american", "spelling=modern") should be
+#   explicitely spelled out (in order to provide mixing of such variants).
 # * Omitted elements will be treated as empty (if string) or "false"
 #   (if boolean).
 # * When HasGuiSupport is true, the language is candidate to appear in
 #   (UK) -- try to select the entry that is most generic -- here
 #   English.
 # * The QuoteStyle arguments correspond to the following styles:
-#   - danish:  >>text<<  >text<   (inward guillemets)
-#   - english: ``text''  `text'   (66_99)
-#   - french:  <<text>>  <text>   (outward guillemets)
-#   - german:  ,,text``  ,text`   (99/66)
-#   - polish:  ,,text''  ,text'   (99/99)
-#   - swedish: ''text''  'text'   (99_99)
+#                 PRIMARY              SECONDARY
+#   - british:   `text'                ``text''        (6_9 -- 66_99)
+#   - cjk:        corner brackets      white corner br.
+#   - cjk-angle:  double angle br.     angle br.
+#   - danish:    >>text<<              >text<          (inward guillemets)
+#   - english:   ``text''              `text'          (66_99 -- 6_9)
+#   - french:    <<text>>              ``text''        (outward guillemets -- 66_99)
+#   - frenchin:   <<text>>             <<text>>        (French Imprimerie Nationale style)
+#   - german:    ,,text``              ,text`          (99/66 -- 9/6)
+#   - polish:    ,,text''              ,text'          (99/99 -- 9/9)
+#   - russian:    <<text>>             ,,text``        (outward guillemets -- 99/66)
+#   - swedish:   ''text''              'text'          (99_99 -- 9_9)
+#   - swedishg:   >>text>>             'text'          (Swedish Guillemets)
+#   - swiss:     <<text>>              <text>          (outward guillemets)
+#   - plain:     "text"                'text'          (non-typographical quotes)
 #   Note that the option names have been selected (rather arbitrarily)
 #   because the respective styles are common in the respective countries.
 #   Of course this does not imply any fixed relation to those countries.
+# * DateFormats lists the localized conventions for three date forms:
+#   - Long: December 1, 2018
+#   - Medium: Dec 1, 2018
+#   - Short: 1/12/2018
+#   These are separated by | and use the QDate syntax:
+#   * d        the day as number without a leading zero (1 to 31)
+#   * dd       the day as number with a leading zero (01 to 31)
+#   * ddd      the abbreviated localized day name (e.g. 'Mon' to 'Sun')
+#   * dddd     the long localized day name (e.g. 'Monday' to 'Sunday')
+#   * M        the month as number without a leading zero (1 to 12)
+#   * MM       the month as number with a leading zero (01 to 12)
+#   * MMM      the abbreviated localized month name (e.g. 'Jan' to 'Dec')
+#   * MMMM     the long localized month name (e.g. 'January' to 'December')
+#   * yy       the year as two digit number (00 to 99)
+#   * yyyy     the year as four digit number
 # * Encoding is the default encoding used with TeX fonts.
 #   It is only used if Document > Settings > Language > Encoding
-#   is set to "Language Default" and "use non-TeX fonts" is FALSE.
+#   is set to "Language Default" or "Language Default (no inputenc)"
+#   and "use non-TeX fonts" is FALSE.
+#   Encoding "inherit" means: keep encoding of the context (used by
+#   latex_language).
+# * FontEncoding is a bar-separated list of font encodings.
+#   The first value is the required font encoding for correct hyphenation with
+#   8-bit TeX (http://www.hyphenation.org). Eventually following values may be
+#   used if the selected font is unavailable in FontEncoding. They provide all
+#   letters used in the language, but some only as "surrogate pairs" with
+#   possible problems for hyphenation and drag-and-drop from the generated
+#   documents. Default: "ASCII".
+#   * "FontEncoding ASCII" means: "works with any standard text encoding
+#     (T<n>) as well as OT1".
+#   * "FontEncoding none" tells LyX that fontenc should not be loaded with
+#     this language.
 # * InternalEncoding is used to tell LyX that babel internally sets a
 #   non-standard font encoding (such as hebrew to LHE or greek to LGR).
-#   If True, LyX cares for characters/macros that do not exist in
+#   If True, LyX takes care for characters/macros that do not exist in
 #   some font encodings ("<", ">", "|" and straight quote).
 #   It is not required for standard encodings like T2A. See bug #5091.
-# * "FontEncoding none" tells LyX that fontenc should not be loaded with this
-#   language.
-# * AsBabelOptions advices LyX to pass the languages locally to babel, not
-#   globally to the class. Some languages (basically those not directly
-#   supported by babel) need this.
-#   FIXME: in this case, we might still need to pass the other languages
-#          globally, for the use of other packages (such as varioref).
+# * WordWrap is only used for on-screen display: when is is true (the default), rows are broken
+#   at word boundary; otherwise, they can be ended at arbitrary position. This
+#   setting is useful for CJK languages.
 # * LangCode is also used for spellchecking and thesaurus, where the
 #   dictionaries are named accordingly. Thus, check this when introducing/
 #   changing language codes (especially aspell, thesaurus).
 #   pre-1998 and post-1998 spelling). The aspell dictionaries are named
 #   language[_REGION][-variety].multi, e.g. de-alt.multi for "German (old
 #   spelling)" (see http://aspell.net/man-html/Dictionary-Naming.html)
+# * 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 =).
 #
 ##########################################################################
 
@@ -87,13 +134,13 @@ Language ignore
        GuiName          "Ignore"
        BabelName        ignore
        PolyglossiaName  ignore
-       Encoding         iso8859-1
+       Encoding         inherit
        LangCode         ignore
 End
 
 Language latex
        GuiName          "LaTeX"
-       Encoding         iso8859-1
+       Encoding         inherit
        LangCode         latex
 End
 
@@ -107,15 +154,28 @@ Language afrikaans
        BabelName        afrikaans
        QuoteStyle       polish
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "dd MMMM yyyy|dd MMM yyyy|yyyy/MM/dd"
        LangCode         af_ZA
 End
 
+# FontEncoding: no hyphenation, but uses Ç/ç und Ë/ë
 Language albanian
        GuiName          "Albanian"
        BabelName        albanian
+       # babel-albanian (albanian.ldf) (re-)defines the functions
+       # \sh \ch \th \cth \arsh \arch \arth \arcth \tg \ctg \arctg
+       # as math operators. This clashes with \th == letter thorn
+       # in font encoding T1
+       PostBabelPreamble
+         % fix albanian: restore \th as LATIN LETTER THORN
+         \@ifl@aded{def}{t1enc}{\DeclareTextSymbol{\th}{T1}{254}}{}
+       EndPostBabelPreamble
        PolyglossiaName  albanian
-       QuoteStyle       french
+       QuoteStyle       swiss
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "dd MMMM yyyy|dd MMM yyyy|dd/MM/yyyy"
        LangCode         sq_AL
 End
 
@@ -126,6 +186,8 @@ Language american
        PolyglossiaOpts  "variant=american"
        QuoteStyle       english
        Encoding         iso8859-15
+       FontEncoding     ASCII
+       DateFormats      "MMMM dd, yyyy|MMM dd, yyyy|M/d/yyyy"
        LangCode         en_US
 End
 
@@ -134,24 +196,27 @@ Language amharic
        GuiName          "Amharic"
        PolyglossiaName  amharic
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|dd MMM yyyy|dd/MM/yyyy"
        LangCode         am_ET
 End
 
 # In Babel, this is supported since v. 1.8a of babel-greek (2013-12-03)
 # We introduce it with LyX 2.2 to give the support time to settle.
 Language ancientgreek
-       GuiName           "Greek (ancient)"
-       BabelName         greek
+       GuiName          "Greek (ancient)"
+       BabelName        greek
        PostBabelPreamble
        \languageattribute{greek}{ancient}
        EndPostBabelPreamble
-       PolyglossiaName   greek
-       PolyglossiaOpts   variant=ancient
-       QuoteStyle        french
-       Encoding          iso8859-7
-       InternalEncoding  true
-       FontEncoding      LGR
-       LangCode          grc_GR
+       PolyglossiaName  greek
+       PolyglossiaOpts  "variant=ancient"
+       QuoteStyle       french
+       Encoding         iso8859-7
+       InternalEncoding true
+       FontEncoding     LGR
+       DateFormats      "dd MMMM yyyy|dd MMM yyyy|dd/MM/yyyy"
+       LangCode         grc_GR
+       Provides         textgreek
 End
 
 # FIXME: dummy babel language for arabic_arabtex to be able
@@ -162,6 +227,7 @@ Language arabic_arabtex
        BabelName        arabtex
        QuoteStyle       french
        Encoding         cp1256
+       DateFormats      "d MMMM، yyyy|dd/MM/yyyy|d/M/yyyy"
        RTL              true
        LangCode         ar_SA
 End
@@ -173,9 +239,29 @@ Language arabic_arabi
        PolyglossiaName  arabic
        QuoteStyle       french
        Encoding         cp1256
-       FontEncoding     "LFE,LAE"
+       FontEncoding     LAE
+       DateFormats      "d MMMM، yyyy|dd/MM/yyyy|d/M/yyyy"
        RTL              true
-       AsBabelOptions   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
+       EndPostBabelPreamble
        LangCode         ar_SA
 End
 
@@ -183,8 +269,9 @@ End
 Language armenian
        GuiName          "Armenian"
        PolyglossiaName  armenian
-       QuoteStyle       french
+       QuoteStyle       swiss
        Encoding         utf8
+       DateFormats      "d MMMM، yyyy|d MMM، yyyy|d/M/yyyy"
        LangCode         hy_AM
 End
 
@@ -194,21 +281,25 @@ Language asturian
        PolyglossiaName  asturian
        QuoteStyle       french
        Encoding         iso8859-15
+       DateFormats      "d 'de' MMMM 'de' yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         ast_ES
 End
 
+
 Language australian
        GuiName          "English (Australia)"
        BabelName        australian
        PolyglossiaName  english
        PolyglossiaOpts  "variant=australian"
        Encoding         iso8859-15
+       FontEncoding     ASCII
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        QuoteStyle       english
        LangCode         en_AU
 End
 
 # In polyglossia, this is supported since release 1.33.4 (May 2014)
-# We introduce it with LyX 2.2 to give the support time to settle.
+# Due to the variety, we use no country code.
 Language austrian
        GuiName          "German (Austria, old spelling)"
        BabelName        austrian
@@ -216,21 +307,41 @@ Language austrian
        PolyglossiaOpts  "variant=austrian,spelling=old,babelshorthands=true"
        QuoteStyle       german
        Encoding         iso8859-15
-       LangCode         de_AT
+       FontEncoding     T1|OT1
+       DateFormats      "dd. MMMM yyyy|dd. MMM yyyy|dd.MM.yyyy"
+       LangCode         de
+       LangVariety      alt
 End
 
 # In polyglossia, this is supported since release 1.33.4 (May 2014)
-# We introduce it with LyX 2.2 to give the support time to settle.
 Language naustrian
        GuiName          "German (Austria)"
        BabelName        naustrian
        PolyglossiaName  german
-       PolyglossiaOpts  "variant=austrian,babelshorthands=true"
+       PolyglossiaOpts  "variant=austrian,spelling=new,babelshorthands=true"
        QuoteStyle       german
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "dd. MMMM yyyy|dd. MMM yyyy|dd.MM.yyyy"
        LangCode         de_AT
 End
 
+Language azerbaijani
+       GuiName          "Azerbaijani"
+       BabelName        azerbaijani
+       QuoteStyle       russian
+       Encoding         iso8859-9
+       FontEncoding     T2A,T1
+       DateFormats      "d MMMM yyyy|dd.MMM.yyyy|dd.MM.yyyy"
+       LangCode         az_AZ
+       Requires         textschwa
+        # use \cyrschwa in T1, allow hyphenation in remainder of word
+       PostBabelPreamble
+          \DeclareTextCommand{\textschwa}{T1}{\cyrschwa\bbl@allowhyphens}
+          \DeclareTextCommand{\textSchwa}{T1}{\CYRSCHWA\bbl@allowhyphens}
+       EndPostBabelPreamble
+End
+
 Language bahasa
        GuiName          "Indonesian"
        HasGuiSupport    true
@@ -238,6 +349,8 @@ Language bahasa
        PolyglossiaName  bahasai
        QuoteStyle       english
        Encoding         iso8859-15
+       FontEncoding     ASCII
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         id_ID
 End
 
@@ -247,6 +360,7 @@ Language bahasam
        PolyglossiaName  bahasam
        QuoteStyle       english
        Encoding         iso8859-15
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         ms_MY
 End
 
@@ -255,8 +369,10 @@ Language basque
        HasGuiSupport    true
        BabelName        basque
        PolyglossiaName  basque
-       QuoteStyle       french
+       QuoteStyle       swiss
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "yyyy MMMM dd|yyyy MMM dd|yyyy/MM/dd"
        LangCode         eu_ES
        PostBabelPreamble
        \addto\extrasbasque{\bbl@deactivate{~}}
@@ -264,21 +380,37 @@ Language basque
 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
        QuoteStyle       french
        Encoding         cp1251
+       FontEncoding     T2A
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|d.M.yyyy"
        LangCode         be_BY
-       AsBabelOptions   true
 End
 
+# supported by polyglossia but not babel:
+Language bengali
+       GuiName          "Bengali"
+       PolyglossiaName  bengali
+       QuoteStyle       english
+       Encoding         utf8
+       LangCode         be_IN
+End
+
+
 # not yet supported by polyglossia
+# The (rarely used) Cyrillic script is not supported (try serbian).
 Language bosnian
        GuiName          "Bosnian"
        BabelName        bosnian
        QuoteStyle       polish
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|yyyy-MM-dd"
        LangCode         bs_BA
 End
 
@@ -289,15 +421,20 @@ Language brazilian
        PolyglossiaName  brazil
        QuoteStyle       english
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d 'de' MMMM 'de' yyyy|d 'de' MMM 'de' yyyy|dd/MM/yyyy"
        LangCode         pt_BR
 End
 
+# FontEncoding: # ? no hyphenation, but uses ñ
 Language breton
        GuiName          "Breton"
        BabelName        breton
        PolyglossiaName  breton
        QuoteStyle       french
        Encoding         iso8859-15
+       #FontEncoding    T1
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|yyyy-MM-dd"
        LangCode         br_FR
 End
 
@@ -306,19 +443,24 @@ Language british
        BabelName        british
        PolyglossiaName  english
        PolyglossiaOpts  "variant=british"
-       QuoteStyle       english
+       QuoteStyle       british
        Encoding         iso8859-15
+       FontEncoding     ASCII
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         en_GB
 End
 
 Language bulgarian
        GuiName          "Bulgarian"
+       HasGuiSupport    true
        BabelName        bulgarian
        PolyglossiaName  bulgarian
        QuoteStyle       german
        Encoding         cp1251
        FontEncoding     T2A
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|yyyy-M-d"
        LangCode         bg_BG
+       Provides         textcyrillic
 End
 
 # not yet supported by polyglossia
@@ -329,10 +471,14 @@ Language canadian
 #      PolyglossiaOpts  "variant=canadian"
        QuoteStyle       english
        Encoding         iso8859-15
+       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
@@ -340,6 +486,8 @@ Language canadien
 #      PolyglossiaOpts  "variant=canadien"
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|yyyy-MM-dd"
        LangCode         fr_CA
 End
 
@@ -351,6 +499,8 @@ Language catalan
        PolyglossiaOpts  "babelshorthands=true"
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d / MMMM / yyyy|d / MMM / yyyy|dd/MM/yyyy"
        LangCode         ca_ES
 End
 
@@ -360,7 +510,9 @@ Language chinese-simplified
        HasGuiSupport    true
        Encoding         euc-cn
        QuoteStyle       english
+       WordWrap         false
        LangCode         zh_CN
+       DateFormats      "yyyy年M月d日|yyyy-M-d|yy-M-d"
        Requires         CJK
 End
 
@@ -368,13 +520,28 @@ End
 Language chinese-traditional
        GuiName         "Chinese (traditional)"
        HasGuiSupport    true
-       QuoteStyle       english
-       Encoding        utf8-cjk
-       LangCode        zh_TW
+       QuoteStyle       cjk
+       Encoding         utf8-cjk
+       WordWrap         false
+       LangCode         zh_TW
+       DateFormats      "yyyy年M月d日|yyyy年M月d日|yy年M月d日"
        Requires         CJK
 End
 
+# supported by polyglossia but not LyX:
+Language churchslavonic
+       GuiName         "Church Slavonic"
+       PolyglossiaName  churchslavonic
+       QuoteStyle       swiss
+       Encoding         utf8
+       FontEncoding     T2A
+       DateFormats      "d MMMM yyyy 'л'.|d MMM yyyy 'л'.|dd.MM.yyyy"
+       LangCode         cu
+       Provides         textcyrillic
+End
+
 # not supported by babel
+# FIXME DateFormats
 Language coptic
        GuiName          "Coptic"
        PolyglossiaName  coptic
@@ -388,6 +555,8 @@ Language croatian
        PolyglossiaName  croatian
        QuoteStyle       polish
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy.|d. MMM. yyyy.|dd.MM.yyyy."
        LangCode         hr_HR
 End
 
@@ -397,7 +566,10 @@ Language czech
        BabelName        czech
        PolyglossiaName  czech
        QuoteStyle       german
+       ActiveChars      -
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM. yyyy|d.M.yyyy"
        LangCode         cs_CZ
 End
 
@@ -408,6 +580,8 @@ Language danish
        PolyglossiaName  danish
        QuoteStyle       danish
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|dd/MM/yyyy"
        LangCode         da_DK
 End
 
@@ -416,6 +590,7 @@ Language divehi
        GuiName          "Divehi (Maldivian)"
        PolyglossiaName  divehi
        Encoding         utf8
+       DateFormats      "yyyy MMMM dd|yyyy MMM dd|dd/MM/yyyy"
        LangCode         dv_MV
 End
 
@@ -427,6 +602,8 @@ Language dutch
        PolyglossiaOpts  "babelshorthands=true"
        QuoteStyle       polish
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|d-M-yyyy"
        LangCode         nl_NL
 End
 
@@ -435,19 +612,24 @@ Language english
        HasGuiSupport    true
        BabelName        english
        PolyglossiaName  english
+       PolyglossiaOpts  "variant=american"
        QuoteStyle       english
+       DateFormats      "MMMM dd, yyyy|MMM dd, yyyy|M/d/yyyy"
        Encoding         iso8859-15
+       FontEncoding     ASCII
        LangCode         en_US
 End
 
 # Esperanto has no country code because it is an auxiliary language.
-# We therefore the name of its hunspell dictionary.
+# We therefore use the name of its hunspell dictionary.
 Language esperanto
        GuiName          "Esperanto"
        BabelName        esperanto
        PolyglossiaName  esperanto
        QuoteStyle       english
        Encoding         iso8859-3
+       FontEncoding     IL3|T1|OT1
+       DateFormats      "'la' d 'de' MMMM yyyy|'la' d 'de' MMM yyyy|MM/dd/yyyy"
        LangCode         eo_EO
 End
 
@@ -455,8 +637,10 @@ Language estonian
        GuiName          "Estonian"
        BabelName        estonian
        PolyglossiaName  estonian
-       QuoteStyle       polish
+       QuoteStyle       german
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd.MM.yyyy"
        LangCode         et_EE
        PostBabelPreamble
        \addto\extrasestonian{\bbl@deactivate{~}}
@@ -470,9 +654,11 @@ Language farsi
        BabelName        farsi
        PolyglossiaName  farsi
        Encoding         utf8
-       FontEncoding     "LFE,LAE"
+       FontEncoding     LAE,LFE
+       DateFormats      "d MMMM yyyy|d MMM yyyy|yyyy/M/d"
        RTL              true
        LangCode         fa_IR
+       QuoteStyle       english
        PostBabelPreamble
        \DeclareTextSymbol{\guillemotright}{LFE}{62}
        \DeclareTextSymbol{\guillemotleft}{LFE}{60}
@@ -486,10 +672,11 @@ Language finnish
        PolyglossiaName  finnish
        QuoteStyle       swedish
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|d.M.yyyy"
        LangCode         fi_FI
 End
 
-# We redefine \og and \fg (guillemets) for older french language definitions
 Language french
        GuiName          "French"
        HasGuiSupport    true
@@ -497,13 +684,9 @@ Language french
        PolyglossiaName  french
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         fr_FR
-       PostBabelPreamble
-       \addto\extrasfrench{%
-          \providecommand{\og}{\leavevmode\flqq~}%
-          \providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
-       }
-       EndPostBabelPreamble
 End
 
 Language friulan
@@ -513,6 +696,8 @@ Language friulan
        PolyglossiaName  friulan
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d 'di' MMMM 'dal' yyyy|d 'di' MMM 'dal' yyyy|dd/MM/yyyy"
        LangCode         fur_IT
 End
 
@@ -523,12 +708,15 @@ Language galician
        PolyglossiaName  galician
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d 'de' MMMM 'de' yyyy|d 'de' MMM 'de' yyyy|dd/MM/yyyy"
        LangCode         gl_ES
        PostBabelPreamble
        \addto\shorthandsgalician{\galiciandeactivate{~}}
        EndPostBabelPreamble
 End
 
+# FIXME DateFormats
 Language georgian
        GuiName          "Georgian"
        BabelName        georgian
@@ -543,9 +731,11 @@ Language german
        GuiName          "German (old spelling)"
        BabelName        german
        PolyglossiaName  german
-       PolyglossiaOpts  "spelling=old,babelshorthands=true"
+       PolyglossiaOpts  "variant=german,spelling=old,babelshorthands=true"
        QuoteStyle       german
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "dd. MMMM yyyy|dd. MMM yyyy|dd.MM.yyyy"
        LangCode         de
        LangVariety      alt
 End
@@ -555,78 +745,96 @@ Language ngerman
        HasGuiSupport    true
        BabelName        ngerman
        PolyglossiaName  german
-       PolyglossiaOpts  "babelshorthands=true"
+       PolyglossiaOpts  "variant=german,spelling=new,babelshorthands=true"
        QuoteStyle       german
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "dd. MMMM yyyy|dd. MMM yyyy|dd.MM.yyyy"
        LangCode         de_DE
 End
 
 # In Babel, this is supported since release 2.7 of babel-german (Dec 2013)
 # We introduce it with LyX 2.2 to give the support time to settle.
 # In polyglossia, this is supported since release 1.33.6 (May 2015)
-# We use german until TL 2015 is out, though.
+# We introduce it with LyX 2.3 to give the support time to settle.
 Language german-ch
        GuiName          "German (Switzerland)"
        BabelName        nswissgerman
        PolyglossiaName  german
-       PolyglossiaOpts  "babelshorthands=true"
-#      PolyglossiaOpts  "variant=swiss,babelshorthands=true"
-       QuoteStyle       danish
+       PolyglossiaOpts  "variant=swiss,spelling=new,babelshorthands=true"
+       QuoteStyle       swiss
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "dd. MMMM yyyy|dd. MMM yyyy|dd.MM.yyyy"
        LangCode         de_CH
 End
 
 # In Babel, this is supported since release 2.7 of babel-german (Dec 2013)
 # In polyglossia, this is supported since release 1.33.6 (May 2015)
-# We use ngerman until TL 2015 is out, though.
+# We introduce it with LyX 2.3 to give the support time to settle.
 Language german-ch-old
        GuiName          "German (Switzerland, old spelling)"
        BabelName        swissgerman
        PolyglossiaName  german
-       PolyglossiaOpts  "spelling=old,babelshorthands=true"
-#      PolyglossiaOpts  "variant=swiss,spelling=old,babelshorthands=true"
-       QuoteStyle       danish
+       PolyglossiaOpts  "variant=swiss,spelling=old,babelshorthands=true"
+       QuoteStyle       swiss
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "dd. MMMM yyyy|dd. MMM yyyy|dd.MM.yyyy"
        LangCode         de_CH
 End
 
 Language greek
-       GuiName           "Greek"
-       HasGuiSupport     true
-       BabelName         greek
-       PolyglossiaName   greek
-       QuoteStyle        french
-       Encoding          iso8859-7
-       InternalEncoding  true
-       FontEncoding      LGR
-       LangCode          el_GR
+       GuiName          "Greek"
+       HasGuiSupport    true
+       BabelName        greek
+       PolyglossiaName  greek
+       PolyglossiaOpts  "variant=monotonic"
+       QuoteStyle       french
+       Encoding         iso8859-7
+       InternalEncoding true
+       FontEncoding     LGR
+       DateFormats      "dd MMMM yyyy|dd MMM yyyy|dd/MM/yyyy"
+       LangCode         el_GR
+       Provides         textgreek
 End
 
 Language polutonikogreek
-       GuiName           "Greek (polytonic)"
-       BabelName         polutonikogreek
-       PolyglossiaName   greek
-       PolyglossiaOpts   "variant=polytonic"
-       QuoteStyle        french
-       Encoding          iso8859-7
-       InternalEncoding  true
-       FontEncoding      LGR
-       LangCode          el_GR
+       GuiName          "Greek (polytonic)"
+       BabelName        polutonikogreek
+       PolyglossiaName  greek
+       PolyglossiaOpts  "variant=polytonic"
+       QuoteStyle       french
+       Encoding         iso8859-7
+       InternalEncoding true
+       FontEncoding     LGR
+       DateFormats      "dd MMMM yyyy|dd MMM yyyy|dd/MM/yyyy"
+       LangCode         el_GR
+       Provides         textgreek
 End
 
 Language hebrew
-       GuiName           "Hebrew"
-       HasGuiSupport     true
-       BabelName         hebrew
-       PolyglossiaName   hebrew
-       Encoding          cp1255
-       QuoteStyle        english
-       InternalEncoding  true
-# Hebrew babel loads the font encodings
-# itself in the appropriate order
-#      FontEncoding      LHE
-       RTL               true
-       LangCode          he_IL
+       GuiName          "Hebrew"
+       HasGuiSupport    true
+       BabelName        hebrew
+       PolyglossiaName  hebrew
+       Encoding         cp1255
+       QuoteStyle       english
+       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
 End
 
 # not supported by babel
@@ -634,6 +842,7 @@ Language hindi
        GuiName          "Hindi"
        PolyglossiaName  hindi
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|dd MMM yyyy|dd-MM-yyyy"
        LangCode         hi_IN
 End
 
@@ -646,26 +855,33 @@ End
 #      BabelName       hungarian
 #      Encoding        iso8859-2
 #      LangCode        hu_HU
+#       QuoteStyle      polish
 #End
 
+# FontEncoding: OT1 misses ð and Þ
 Language icelandic
        GuiName          "Icelandic"
        BabelName        icelandic
        PolyglossiaName  icelandic
        QuoteStyle       german
        Encoding         iso8859-15
+       FontEncoding     T1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|dd.MM.yyyy"
        LangCode         is_IS
 End
 
 # Interlingua has no official country code because it is an auxiliary
-# language. We therefore the name of its hunspell dictionary.
+# language. We use the name of its hunspell dictionary.
 Language interlingua
        GuiName          "Interlingua"
        HasGuiSupport    true
        BabelName        interlingua
        PolyglossiaName  interlingua
        Encoding         iso8859-15
+       FontEncoding     ASCII
        LangCode         ia_IA
+       DateFormats      "'le' d 'de' MMMM yyyy|'le' d 'de' MMM yyyy|yyyy-mm-dd"
+       QuoteStyle       english
 End
 
 Language irish
@@ -674,6 +890,8 @@ Language irish
        PolyglossiaName  irish
        QuoteStyle       english
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|dd/MM/yyyy"
        LangCode         ga_IE
 End
 
@@ -684,32 +902,35 @@ Language italian
        PolyglossiaName  italian
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     ASCII
+       DateFormats      "dd MMMM yyyy|dd/MMM/yyyy|dd/MM/yyyy"
        LangCode         it_IT
 End
 
-# japanese must be loaded locally with babel options,
-# not globally via class options
-# http://www.lyx.org/trac/ticket/4597#c4
-# Since japanese does not load fontenc, we set
-# InternalEncoding to true.
+# Since 2016-12-18, babel-japanese works with non-TeX fonts (Xe/LuaTeX), too
+# (use with "Japanese (bxjs)" or standard document classes)
 Language japanese
        GuiName          "Japanese"
        HasGuiSupport    true
        BabelName        japanese
        Encoding         jis-platex
+       WordWrap         false
        LangCode         ja_JP
-       AsBabelOptions   true
        Requires         japanese
-       InternalEncoding true
-       FontEncoding     None
+       FontEncoding     ASCII
+       DateFormats      "yyyy年M月d日|yyyy/MM/dd|yy/MM/dd"
+       QuoteStyle       cjk
 End
 
 # uses CJK package
 Language japanese-cjk
        GuiName         "Japanese (CJK)"
        Encoding        euc-jp
+       DateFormats     "yyyy年M月d日|yyyy/MM/dd|yy/MM/dd"
+       WordWrap        false
        LangCode        ja_JP
        Requires        CJK
+       QuoteStyle      cjk
 End
 
 # not supported by babel
@@ -717,19 +938,18 @@ Language kannada
        GuiName          "Kannada"
        PolyglossiaName  kannada
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|dd MMMM yyyy|dd-MM-yyyy"
        LangCode         kn_IN
 End
 
 # not yet supported by polyglossia
 # not supported by babel
 Language kazakh
-       GuiName         "Kazakh"
-       Encoding        ascii
-       LangCode        kk_KZ
-       PostBabelPreamble
-       \input{t2aenc.def}
-       \AtBeginDocument{\fontencoding{T2A}\selectfont}
-       EndPostBabelPreamble
+       GuiName          "Kazakh"
+       Encoding         ascii
+       # FontEncoding   T2A # not set (no Babel support)
+       DateFormats      "dd MMMM yyyy|dd MMMM yyyy|yyyy-dd-MM"
+       LangCode         kk_KZ
 End
 
 # not supported by babel
@@ -737,24 +957,38 @@ Language khmer
        GuiName          "Khmer"
        PolyglossiaName  khmer
        Encoding         utf8
+       DateFormats      "d MMMM yyyy|d MMMM yyyy|dd/MM/yyyy"
        LangCode         km_KH
 End
 
 Language korean
        GuiName         "Korean"
+       PolyglossiaName korean
        Encoding        euc-kr
-       QuoteStyle      english
+       QuoteStyle      cjkangle
+       DateFormats     "yyyy년 M월 d일|yyyy. M. d.|yy. M. d."
+       WordWrap        false
        LangCode        ko_KR
        Requires        CJK
 End
 
+# Language korean-kotex
+#      GuiName         "Korean (koTeX)"
+#      Encoding        utf8
+#      QuoteStyle      cjkangle
+#      DateFormats     "yyyy년 M월 d일|yyyy. M. d.|yy. M. d."
+#      LangCode        ko_KR
+#      Requires        kotex
+# End
+
 # not yet supported by polyglossia
 Language kurmanji
        GuiName          "Kurmanji"
        BabelName        kurmanji
        Encoding         utf8
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. M. yyyy|yyyy-MM-dd"
        LangCode         kmr
-       AsBabelOptions   true
 End
 
 # not supported by babel
@@ -762,43 +996,57 @@ Language lao
        GuiName          "Lao"
        PolyglossiaName  lao
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|dd MMMM yyyy|dd/MM/yyyy"
        LangCode         lo_LA
 End
 
 # There is no country code for Latin because it is a dead language.
 # We therefore the name of its hunspell dictionary.
+# FIXME DateFormats
 Language latin
        GuiName          "Latin"
        BabelName        latin
        PolyglossiaName  latin
+       ActiveChars      ^=
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
        LangCode         la_LA
 End
 
 # latvian must be loaded locally with babel options,
 # not globally via class options
+# FontEncoding: L7x required for hyphenation but not set by Babel
 Language latvian
        GuiName          "Latvian"
        BabelName        latvian
        PolyglossiaName  latvian
-       QuoteStyle       danish
+       QuoteStyle       german
        Encoding         iso8859-4
-#      FontEncoding     L7x # (required for hyphenation but not set by babel)
+       FontEncoding     L7x|T1|OT1
+       DateFormats      "yyyy. 'gada' d. MMMM|yyyy. 'gada' d. MMM|dd.MM.yyyy"
        LangCode         lv_LV
-       AsBabelOptions   true
 End
 
 # lithuanian must be loaded locally with babel options,
 # not globally via class options
+# FontEncoding: L7x set by Babel
 Language lithuanian
        GuiName          "Lithuanian"
        BabelName        lithuanian
        PolyglossiaName  lithuanian
        QuoteStyle       german
-       Encoding         iso8859-4
+       Encoding         iso8859-13
        FontEncoding     L7x
+       # L7x defines \copyright as TextSymbol which leads to an endless loop
+        # 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}
+       EndPostBabelPreamble
+       DateFormats      "yyyy 'm.' MMMM d 'd.'|yyyy 'm.' MMMM d 'd.'|yyyy-MM-dd"
        LangCode         lt_LT
-       AsBabelOptions   true
 End
 
 Language lowersorbian
@@ -807,6 +1055,8 @@ Language lowersorbian
        PolyglossiaName  lsorbian
        QuoteStyle       german
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd.MM.yyyy"
        LangCode         dsb_DE
 End
 
@@ -817,6 +1067,8 @@ Language magyar
        PolyglossiaName  magyar
        QuoteStyle       polish
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "yyyy. MMMM d.|yyyy. MMM d.|yyyy.MM.dd."
        LangCode         hu_HU
 End
 
@@ -827,7 +1079,19 @@ Language macedonian
        QuoteStyle       german
        Encoding         cp1251
        FontEncoding     T2A
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|d.M.yyyy"
        LangCode         mk_MK
+       Provides         textcyrillic
+End
+
+# not supported by babel
+Language malayalam
+       GuiName          "Malayalam"
+       PolyglossiaName  malayalam
+       Encoding         utf8
+       QuoteStyle       english
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
+       LangCode         ml_IN
 End
 
 # not supported by babel
@@ -835,6 +1099,7 @@ Language marathi
        GuiName          "Marathi"
        PolyglossiaName  marathi
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
        LangCode         mr_IN
 End
 
@@ -846,8 +1111,9 @@ Language mongolian
        BabelName        mongolian
        Encoding         utf8
        FontEncoding     T2A
+       DateFormats      "yyyy оны M сарын d|d-M-yyyy|dd-MM-yyyy"
        LangCode         mn_MN
-       AsBabelOptions   true
+       Provides         textcyrillic
 End
 
 Language newzealand
@@ -857,6 +1123,8 @@ Language newzealand
        PolyglossiaOpts  "variant=newzealand"
        QuoteStyle       english
        Encoding         iso8859-15
+       FontEncoding     ASCII
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         en_NZ
 End
 
@@ -865,18 +1133,38 @@ Language norsk
        HasGuiSupport    true
        BabelName        norsk
        PolyglossiaName  norsk
-       QuoteStyle       french
+       QuoteStyle       swiss
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|dd./MM./yyyy"
        LangCode         nb_NO
 End
 
+# supported by polyglossia but not LyX:
+# Language nko
+#      GuiName          "N’Ko"
+#      PolyglossiaName  nko
+#      QuoteStyle       swiss
+#      Encoding         utf8
+#       FIXME: DateFormats      "d MMMM، yyyy|dd/MM/yyyy|d/M/yyyy"
+#       gloss-nko.ldf says:
+#      In n'ko, this is an example of date :
+#        ߂߀߁߃ ߞߏ߲ߞߏߜߍ ߕߟߋ߬ ߁߈ (RTL)
+#        ( 18 February 2013 )
+#       The word "ߕߟߋ߬" is mandatory between month name and day number.
+#      RTL              true
+#      LangCode         nqo
+# End
+
 Language nynorsk
        GuiName          "Norwegian (Nynorsk)"
        HasGuiSupport    true
        BabelName        nynorsk
        PolyglossiaName  nynorsk
-       QuoteStyle       french
+       QuoteStyle       swiss
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|dd.MM.yyyy"
        LangCode         nn_NO
 End
 
@@ -886,19 +1174,22 @@ Language occitan
        PolyglossiaName  occitan
        QuoteStyle       french
        Encoding         utf8
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         oc_FR
 End
 
 # Currently not supported (file format change!)
 # Russian orthography from the Petrine orthographic reforms of
 # 1708 to the 1917 orthographic reform
-# Language oldrussian
-#      GuiName          "Russian (Petrine orthography)"
-#      PolyglossiaName  russian
-#      PolyglossiaOpts  spelling=old
-#      LangCode         ru_petr1708
-# End
+Language oldrussian
+       GuiName          "Russian (Petrine orthography)"
+       PolyglossiaName  russian
+       PolyglossiaOpts  "spelling=old"
+       QuoteStyle       russian
+       LangCode         ru_petr1708
+End
 
+# FIXME DateFormats
 Language piedmontese
        GuiName          "Piedmontese"
        HasGuiSupport    true
@@ -906,9 +1197,11 @@ Language piedmontese
        PolyglossiaName  piedmontese
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     ASCII
        LangCode         pms_IT
 End
 
+# FontEncoding: QX required for hyphenation but not set by babel
 Language polish
        GuiName          "Polish"
        HasGuiSupport    true
@@ -916,7 +1209,8 @@ Language polish
        PolyglossiaName  polish
        QuoteStyle       polish
        Encoding         iso8859-2
-#      FontEncoding     QX # (required for hyphenation but not set by babel)
+       FontEncoding     QX|T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|yyyy-MM-dd"
        LangCode         pl_PL
 End
 
@@ -925,8 +1219,10 @@ Language portuguese
        HasGuiSupport    true
        BabelName        portuges
        PolyglossiaName  portuges
-       QuoteStyle       english
+       QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d 'de' MMMM 'de' yyyy|d 'de' MMM 'de' yyyy|yyyy/MM/dd"
        LangCode         pt_PT
 End
 
@@ -937,6 +1233,8 @@ Language romanian
        PolyglossiaName  romanian
        QuoteStyle       polish
        Encoding         iso8859-16
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd.MM.yyyy"
        LangCode         ro_RO
 End
 
@@ -947,6 +1245,8 @@ Language romansh
        PolyglossiaName  romansh
        QuoteStyle       german
        Encoding         iso8859-15
+       FontEncoding     ASCII
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd.MM.yyyy"
        LangCode         rm_CH
 End
 
@@ -955,17 +1255,23 @@ Language russian
        HasGuiSupport    true
        BabelName        russian
        PolyglossiaName  russian
-       QuoteStyle       french
+       PolyglossiaOpts  "spelling=modern"
+       QuoteStyle       russian
        Encoding         koi8-r
        FontEncoding     T2A
+       DateFormats      "d MMMM yyyy 'г'.|d MMM yyyy 'г'.|dd.MM.yyyy"
        LangCode         ru_RU
+       Provides         textcyrillic
 End
 
+# FontEncoding: no hyphenation, but diacritics
 Language samin
        GuiName          "North Sami"
        BabelName        samin
        PolyglossiaName  samin
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "MMMM d. 'b'. yyyy|MMM d. 'b'. yyyy|d.M.yyyy"
        LangCode         se_NO
 End
 
@@ -974,37 +1280,54 @@ Language sanskrit
        GuiName          "Sanskrit"
        PolyglossiaName  sanskrit
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
        LangCode         sa_IN
 End
 
+# Gaidhlig (Scottish Gaelic)
+# FontEncoding: no hyphenation, grave accent (à, è, ì, ò, ù)
 Language scottish
        GuiName          "Scottish"
        BabelName        scottish
        PolyglossiaName  scottish
        QuoteStyle       english
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         gd_GB
 End
 
+# Serbian with Cyrillic script.
+# Up to Version 3.0 (2019-01-12), input encoding and
+# font encoding were set document-wide to "utf8x" and "T2A" respectively
+# by "babel-serbianc", overriding LyX settings and leading to errors
+# in mulit-lingual documents.
 Language serbian
        GuiName          "Serbian"
        HasGuiSupport    true
        BabelName        serbianc
        PolyglossiaName  serbian
-       QuoteStyle       german
+       PolyglossiaOpts  "script=Cyrillic"
+       # Note: script option is uppercase, even if the polyglossia
+       #       manual states otherwise.
+       QuoteStyle       polish
        Encoding         utf8
        FontEncoding     T2A
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|dd.MM.yyyy"
        LangCode         sr_RS
-       AsBabelOptions   true
 End
 
+# Note: script option is uppercase, even if the polyglossia
+#       manual states otherwise.
 Language serbian-latin
        GuiName          "Serbian (Latin)"
        BabelName        serbian
        PolyglossiaName  serbian
        PolyglossiaOpts  "script=Latin"
-       QuoteStyle       german
+       QuoteStyle       polish
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|dd.MM.yyyy"
        LangCode         sr_RS-Latin
 End
 
@@ -1014,7 +1337,10 @@ Language slovak
        BabelName        slovak
        PolyglossiaName  slovak
        QuoteStyle       german
+       ActiveChars      -^
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "d. MMMM yyyy|d. MMM yyyy|d.M.yyyy"
        LangCode         sk_SK
 End
 
@@ -1024,6 +1350,8 @@ Language slovene
        PolyglossiaName  slovenian
        QuoteStyle       german
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "dd. MMMM yyyy|d. MMM yyyy|d.M.yyyy"
        LangCode         sl_SI
 End
 
@@ -1034,6 +1362,8 @@ Language spanish
        PolyglossiaName  spanish
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d 'de' MMMM 'de' yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         es_ES
        PostBabelPreamble
        \addto\shorthandsspanish{\spanishdeactivate{~<>}}
@@ -1047,6 +1377,8 @@ Language spanish-mexico
        PolyglossiaName  spanish
        QuoteStyle       french
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d 'de' MMMM 'de' yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         es_MX
        PostBabelPreamble
        \addto\shorthandsspanish{\spanishdeactivate{~<>.}}
@@ -1060,6 +1392,8 @@ Language swedish
        PolyglossiaName  swedish
        QuoteStyle       swedish
        Encoding         iso8859-15
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|yyyy-MM-dd"
        LangCode         sv_SE
 End
 
@@ -1069,6 +1403,7 @@ Language syriac
        PolyglossiaName  syriac
        Encoding         utf8
        RTL              true
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         syr_SY
 End
 
@@ -1077,6 +1412,7 @@ Language tamil
        GuiName          "Tamil"
        PolyglossiaName  tamil
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
        LangCode         ta_IN
 End
 
@@ -1085,23 +1421,44 @@ Language telugu
        GuiName          "Telugu"
        PolyglossiaName  telugu
        Encoding         utf8
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
        LangCode         te_IN
 End
 
+# There is an alternative support with CJK package and Babel name "thaicjk".
+
 Language thai
        GuiName          "Thai"
        BabelName        thai
        PolyglossiaName  thai
        QuoteStyle       english
        Encoding         tis620-0
-#      FontEncoding     LTH
+       FontEncoding     LTH
+       DateFormats      "dd MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
        LangCode         th_TH
+       # The first workaround requires loading inputenc after babel
+       # (cf. BufferParams.cpp):
        PostBabelPreamble
-       \usepackage{thswitch}
+         % Restore catcodes changed by thai.ldf (active characters required for inputenc)
+         \@tempcnta=161%
+         \@whilenum\@tempcnta<252\do{%
+           \catcode\@tempcnta=13
+           \advance\@tempcnta\@ne
+         }%
+         % Restore \coyright definition corrupted by lthenc.def
+         \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}
        EndPostBabelPreamble
 End
 
 # not supported by babel
+#FIXME DateFormats
 Language tibetan
        GuiName          "Tibetan"
        PolyglossiaName  tibetan
@@ -1114,12 +1471,12 @@ Language turkish
        HasGuiSupport    true
        BabelName        turkish
        PolyglossiaName  turkish
-       QuoteStyle       french
+       QuoteStyle       english
+       ActiveChars      =
        Encoding         iso8859-9
+       FontEncoding     T1|OT1
        LangCode         tr_TR
-       PostBabelPreamble
-       \usepackage{xkeyval}
-       EndPostBabelPreamble
+       DateFormats      "d MMMM yyyy|dd.MMM.yyyy|dd.MM.yyyy"
 End
 
 # turkmen must be loaded locally with babel options,
@@ -1128,10 +1485,11 @@ Language turkmen
        GuiName          "Turkmen"
        BabelName        turkmen
        PolyglossiaName  turkmen
-       QuoteStyle       french
+       QuoteStyle       swiss
        Encoding         utf8
+       FontEncoding     T1|OT1
+       DateFormats      "yyyy ý. MMMM d|dd.MM.yyyy ý.|dd.MM.yy ý."
        LangCode         tk_TM
-       AsBabelOptions   true
 End
 
 Language ukrainian
@@ -1139,10 +1497,12 @@ Language ukrainian
        HasGuiSupport    true
        BabelName        ukrainian
        PolyglossiaName  ukrainian
-       QuoteStyle       french
+       QuoteStyle       russian
        Encoding         koi8-u
        FontEncoding     T2A
+       DateFormats      "dd MMMM yyyy|d MM yyyy|dd.MM.yyyy"
        LangCode         uk_UA
+       Provides         textcyrillic
 End
 
 Language uppersorbian
@@ -1151,6 +1511,8 @@ Language uppersorbian
        PolyglossiaName  usorbian
        QuoteStyle       german
        Encoding         iso8859-2
+       FontEncoding     T1|OT1
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd.MM.yyyy"
        LangCode         hsb_DE
 End
 
@@ -1159,29 +1521,29 @@ Language urdu
        GuiName          "Urdu"
        PolyglossiaName  urdu
        Encoding         utf8
+       DateFormats      "d MMMM, yyyy|d MMM yyyy|dd/MM/yyyy"
        RTL              true
        LangCode         ur_PK
 End
 
-# vietnam must be loaded locally with babel options,
-# not globally via class options, see
-# http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg129417.html
 Language vietnamese
        GuiName          "Vietnamese"
-       BabelName        vietnam
+       BabelName        vietnamese
        PolyglossiaName  vietnamese
-       QuoteStyle       french
+       QuoteStyle       english
        Encoding         utf8
+       DateFormats      "dd 'tháng' MMMM yyyy|dd-MM-yyyy|dd/MM/yyyy"
+       FontEncoding     T5
        LangCode         vi_VN
-       AsBabelOptions   true
-       Requires         vietnamese
 End
 
 Language welsh
        GuiName          "Welsh"
        BabelName        welsh
        PolyglossiaName  welsh
-       QuoteStyle       english
+       QuoteStyle       british
        Encoding         iso8859-15
+       DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
+       FontEncoding     T1|OT1
        LangCode         cy_GB
 End