-# name babel name GUI name RTL? encoding code latex options
-# LyX internal languages
-ignore ignore "Ignore" false iso8859-1 ignore ""
-latex "" "Latex" false iso8859-1 latex ""
-# Real languages now
-afrikaans afrikaans "Afrikaans" false iso8859-15 af_ZA ""
-albanian albanian "Albanian" false iso8859-2 sq_AL ""
-american american "American" false iso8859-15 en_US ""
-# FIXME: dummy babel language for arabic_arabtex to be able to switch the language the way of the ArabTeX-package
-arabic_arabtex arabtex "Arabic (ArabTeX)" true cp1256 ar_SA ""
-arabic_arabi arabic "Arabic (Arabi)" true cp1256 ar_SA ""
-armenian "" "Armenian" false armscii8 hy_AM ""
-austrian austrian "Austrian (old spelling)" false iso8859-15 de_AT ""
-naustrian naustrian "Austrian" false iso8859-15 de_AT ""
-bahasa bahasa "Bahasa Indonesia" false iso8859-15 id_ID ""
-bahasam bahasam "Bahasa Malaysia" false iso8859-15 ms_MY ""
-basque basque "Basque" false iso8859-15 eu_ES ""
-belarusian belarusian "Belarusian" false cp1251 be_BY ""
-brazilian brazil "Portuguese (Brazil)" false iso8859-15 pt_BR ""
-breton breton "Breton" false iso8859-15 br_FR ""
-british british "British" false iso8859-15 en_GB ""
-bulgarian bulgarian "Bulgarian" false cp1251 bg_BG ""
-canadian canadian "Canadian" false iso8859-15 en_CA ""
-canadien canadien "French Canadian" false iso8859-15 fr_CA ""
-catalan catalan "Catalan" false iso8859-15 ca_ES ""
-chinese-simplified "" "Chinese (simplified)" false euc-cn zh_CN ""
-chinese-traditional "" "Chinese (traditional)" false utf8-cjk zh_CN ""
-croatian croatian "Croatian" false iso8859-2 hr_HR ""
-czech czech "Czech" false iso8859-2 cs_CZ ""
-danish danish "Danish" false iso8859-15 da_DK ""
-dutch dutch "Dutch" false iso8859-15 nl_NL ""
-english english "English" false iso8859-15 en_US ""
-# Esperanto has no country code because it is an auxiliary language
-esperanto esperanto "Esperanto" false iso8859-3 eo ""
-estonian estonian "Estonian" false iso8859-15 et_EE ""
-# the definitions are only used due to bugs in the arabi-package - remove them if they become unnecessary!
-farsi farsi "Farsi" true utf8 fa_IR "\DeclareTextSymbol{\guillemotright}{LFE}{62}\DeclareTextSymbol{\guillemotleft}{LFE}{60}"
-finnish finnish "Finnish" false iso8859-15 fi_FI ""
+##########################################################################
+#
+# Languages supported by LyX.
+#
+# Syntax:
+#
+# Language <lyxname>
+# GuiName "<Gui Name>"
+# HasGuiSupport <true|false>
+# BabelName <babelname>
+# PolyglossiaName <polyglossianame>
+# PolyglossiaOpts "<language-specific options>"
+# Encoding <encoding>
+# FontEncoding <font encoding>
+# QuoteStyle <danish|english|french|german|polish|swedish>
+# InternalEncoding <true|false>
+# RTL <true|false>
+# AsBabelOptions <true|false>
+# LangCode <language_code>
+# LangVariety <language_variety>
+# PreBabelPreamble
+# <extra latex code inserted before babel>
+# EndPreBabelPreamble
+# PostBabelPreamble
+# <extra latex code inserted after babel>
+# EndPostBabelPreamble
+# Requires <requirement>
+# End
+#
+#
+# NOTES:
+#
+# * Omitted elements will be treated as empty (if string) or "false"
+# (if boolean).
+# * When HasGuiSupport is true, the language is candidate to appear in
+# the list of possible GUI languages in the Preferences dialog. It
+# will actually appear there only if a corresponding .mo file can be
+# found among the translations. When several languages correspond to
+# the same translation -- like English, English (US) and English
+# (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)
+# 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.
+# * 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.
+# * 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
+# 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).
+# * 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).
+# TODO: maybe use Best Current Practice (BCP 47) codes for LangCode
+# http://www.rfc-editor.org/rfc/bcp/bcp47.txt
+# http://www.w3.org/International/articles/language-tags/
+# http://www.iana.org/assignments/language-subtag-registry
+# * LangVariety is used by the aspell spellchecker to differentiate
+# dictionaries for different varieties of a given language (e.g. German
+# 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)
+#
+##########################################################################
+
+#
+# LyX-internal languages
+#
+
+Language ignore
+ GuiName "Ignore"
+ BabelName ignore
+ PolyglossiaName ignore
+ Encoding iso8859-1
+ LangCode ignore
+End
+
+Language latex
+ GuiName "LaTeX"
+ Encoding iso8859-1
+ LangCode latex
+End
+
+#
+# Real languages
+#
+
+# not yet supported by polyglossia
+Language afrikaans
+ GuiName "Afrikaans"
+ BabelName afrikaans
+ QuoteStyle polish
+ Encoding iso8859-15
+ LangCode af_ZA
+End
+
+Language albanian
+ GuiName "Albanian"
+ BabelName albanian
+ PolyglossiaName albanian
+ QuoteStyle french
+ Encoding iso8859-2
+ LangCode sq_AL
+End
+
+Language american
+ GuiName "English (USA)"
+ BabelName american
+ PolyglossiaName english
+ PolyglossiaOpts "variant=american"
+ QuoteStyle english
+ Encoding iso8859-15
+ LangCode en_US
+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
+ PostBabelPreamble
+ \languageattribute{greek}{ancient}
+ EndPostBabelPreamble
+ PolyglossiaName greek
+ PolyglossiaOpts variant=ancient
+ QuoteStyle french
+ Encoding iso8859-7
+ InternalEncoding true
+ FontEncoding LGR
+ LangCode grc_GR
+End
+
+# FIXME: dummy babel language for arabic_arabtex to be able
+# to switch the language the way of the ArabTeX-package
+Language arabic_arabtex
+ GuiName "Arabic (ArabTeX)"
+ HasGuiSupport true
+ BabelName arabtex
+ QuoteStyle french
+ Encoding cp1256
+ RTL true
+ LangCode ar_SA
+End
+
+# polyglossia uses "Arabic" for the lang environment
+Language arabic_arabi
+ GuiName "Arabic (Arabi)"
+ BabelName arabic
+ PolyglossiaName arabic
+ QuoteStyle french
+ Encoding cp1256
+ FontEncoding "LFE,LAE"
+ RTL true
+ AsBabelOptions true
+ LangCode ar_SA
+End
+
+# not supported by babel
+Language armenian
+ GuiName "Armenian"
+ PolyglossiaName armenian
+ QuoteStyle french
+ Encoding utf8
+ LangCode hy_AM
+End
+
+Language australian
+ GuiName "English (Australia)"
+ BabelName australian
+ PolyglossiaName english
+ PolyglossiaOpts "variant=australian"
+ Encoding iso8859-15
+ 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.
+Language austrian
+ GuiName "German (Austria, old spelling)"
+ BabelName austrian
+ PolyglossiaName german
+ PolyglossiaOpts "variant=austrian,spelling=old,babelshorthands=true"
+ QuoteStyle german
+ Encoding iso8859-15
+ LangCode de_AT
+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"
+ QuoteStyle german
+ Encoding iso8859-15
+ LangCode de_AT
+End
+
+Language bahasa
+ GuiName "Indonesian"
+ HasGuiSupport true
+ BabelName bahasa
+ PolyglossiaName bahasai
+ QuoteStyle english
+ Encoding iso8859-15
+ LangCode id_ID
+End
+
+Language bahasam
+ GuiName "Malay"
+ BabelName bahasam
+ PolyglossiaName bahasam
+ QuoteStyle english
+ Encoding iso8859-15
+ LangCode ms_MY
+End
+
+Language basque
+ GuiName "Basque"
+ HasGuiSupport true
+ BabelName basque
+ PolyglossiaName basque
+ QuoteStyle french
+ Encoding iso8859-15
+ LangCode eu_ES
+ PostBabelPreamble
+ \addto\extrasbasque{\bbl@deactivate{~}}
+ EndPostBabelPreamble
+End
+
+# not yet supported by polyglossia
+Language belarusian
+ GuiName "Belarusian"
+ BabelName belarusian
+ QuoteStyle french
+ Encoding cp1251
+ LangCode be_BY
+ AsBabelOptions true
+End
+
+Language brazilian
+ GuiName "Portuguese (Brazil)"
+ HasGuiSupport true
+ BabelName brazil
+ PolyglossiaName brazil
+ QuoteStyle english
+ Encoding iso8859-15
+ LangCode pt_BR
+End
+
+Language breton
+ GuiName "Breton"
+ BabelName breton
+ PolyglossiaName breton
+ QuoteStyle french
+ Encoding iso8859-15
+ LangCode br_FR
+End
+
+Language british
+ GuiName "English (UK)"
+ BabelName british
+ PolyglossiaName english
+ PolyglossiaOpts "variant=british"
+ QuoteStyle english
+ Encoding iso8859-15
+ LangCode en_GB
+End
+
+Language bulgarian
+ GuiName "Bulgarian"
+ BabelName bulgarian
+ PolyglossiaName bulgarian
+ QuoteStyle german
+ Encoding cp1251
+ FontEncoding T2A
+ LangCode bg_BG
+End
+
+# not yet supported by polyglossia
+Language canadian
+ GuiName "English (Canada)"
+ BabelName canadian
+# PolyglossiaName english
+# PolyglossiaOpts "variant=canadian"
+ QuoteStyle english
+ Encoding iso8859-15
+ LangCode en_CA
+End
+
+# not yet supported by polyglossia
+Language canadien
+ GuiName "French (Canada)"
+ BabelName canadien
+# PolyglossiaName french
+# PolyglossiaOpts "variant=canadien"
+ QuoteStyle french
+ Encoding iso8859-15
+ LangCode fr_CA
+End
+
+Language catalan
+ GuiName "Catalan"
+ HasGuiSupport true
+ BabelName catalan
+ PolyglossiaName catalan
+ PolyglossiaOpts "babelshorthands=true"
+ QuoteStyle french
+ Encoding iso8859-15
+ LangCode ca_ES
+End
+
+# uses CJK package
+Language chinese-simplified
+ GuiName "Chinese (simplified)"
+ HasGuiSupport true
+ Encoding euc-cn
+ QuoteStyle english
+ LangCode zh_CN
+ Requires CJK
+End
+
+# uses CJK package
+Language chinese-traditional
+ GuiName "Chinese (traditional)"
+ HasGuiSupport true
+ QuoteStyle english
+ Encoding utf8-cjk
+ LangCode zh_TW
+ Requires CJK
+End
+
+# not supported by babel
+Language coptic
+ GuiName "Coptic"
+ PolyglossiaName coptic
+ Encoding utf8
+ LangCode cop_EG
+End
+
+Language croatian
+ GuiName "Croatian"
+ BabelName croatian
+ PolyglossiaName croatian
+ QuoteStyle polish
+ Encoding iso8859-2
+ LangCode hr_HR
+End
+
+Language czech
+ GuiName "Czech"
+ HasGuiSupport true
+ BabelName czech
+ PolyglossiaName czech
+ QuoteStyle german
+ Encoding iso8859-2
+ LangCode cs_CZ
+End
+
+Language danish
+ GuiName "Danish"
+ HasGuiSupport true
+ BabelName danish
+ PolyglossiaName danish
+ QuoteStyle danish
+ Encoding iso8859-15
+ LangCode da_DK
+End
+
+# not supported by babel
+Language divehi
+ GuiName "Divehi (Maldivian)"
+ PolyglossiaName divehi
+ Encoding utf8
+ LangCode dv_MV
+End
+
+Language dutch
+ GuiName "Dutch"
+ HasGuiSupport true
+ BabelName dutch
+ PolyglossiaName dutch
+ PolyglossiaOpts "babelshorthands=true"
+ QuoteStyle polish
+ Encoding iso8859-15
+ LangCode nl_NL
+End
+
+Language english
+ GuiName "English"
+ HasGuiSupport true
+ BabelName english
+ PolyglossiaName english
+ QuoteStyle english
+ Encoding iso8859-15
+ LangCode en_US
+End
+
+# Esperanto has no country code because it is an auxiliary language.
+# We therefore the name of its hunspell dictionary.
+Language esperanto
+ GuiName "Esperanto"
+ BabelName esperanto
+ PolyglossiaName esperanto
+ QuoteStyle english
+ Encoding iso8859-3
+ LangCode eo_EO
+End
+
+Language estonian
+ GuiName "Estonian"
+ BabelName estonian
+ PolyglossiaName estonian
+ QuoteStyle polish
+ Encoding iso8859-15
+ LangCode et_EE
+ PostBabelPreamble
+ \addto\extrasestonian{\bbl@deactivate{~}}
+ EndPostBabelPreamble
+End
+
+# the preamble definitions are only used due to bugs in the
+# arabi-package -- remove them if they become unnecessary!
+Language farsi
+ GuiName "Farsi"
+ BabelName farsi
+ PolyglossiaName farsi
+ Encoding utf8
+ FontEncoding "LFE,LAE"
+ RTL true
+ LangCode fa_IR
+ PostBabelPreamble
+ \DeclareTextSymbol{\guillemotright}{LFE}{62}
+ \DeclareTextSymbol{\guillemotleft}{LFE}{60}
+ EndPostBabelPreamble
+End
+
+Language finnish
+ GuiName "Finnish"
+ HasGuiSupport true
+ BabelName finnish
+ PolyglossiaName finnish
+ QuoteStyle swedish
+ Encoding iso8859-15
+ LangCode fi_FI
+End
+