-# 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 ""
+##########################################################################
+#
+# Languages supported by LyX.
+#
+# Syntax:
+#
+# Language <lyxname>
+# GuiName "<Gui Name>"
+# BabelName <babelname>
+# PolyglossiaName <polyglossianame>
+# PolyglossiaOpts "<language-specific options>"
+# Encoding <encoding>
+# 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
+# End
+#
+#
+# NOTE:
+#
+# * Omitted elements will be treated as empty (if string) or "false"
+# (if boolean).
+# * Encoding is not relevant for XeTeX (which is utf8 always), and if
+# Document > Settings > Language > Encoding is not set to "Language
+# Default"
+# * InternalEncoding is used to tell LyX that babel internally sets a font
+# encoding (such as hebrew to LHE). See bug #5091.
+# * 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 intoducing/
+# 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
+#
+
+Language afrikaans
+ GuiName "Afrikaans"
+ BabelName afrikaans
+ Encoding iso8859-15
+ LangCode af_ZA
+End
+
+Language albanian
+ GuiName "Albanian"
+ BabelName albanian
+ PolyglossiaName albanian
+ Encoding iso8859-2
+ LangCode sq_AL
+End
+
+Language american
+ GuiName "English (USA)"
+ BabelName american
+ PolyglossiaName english
+ PolyglossiaOpts "variant=american"
+ Encoding iso8859-15
+ LangCode en_US
+End
+
+# Currently not supported (file format change!)
+# Language ancientgreek
+# GuiName "Greek (ancient)"
+# PolyglossiaName greek
+# PolyglossiaOpts variant=ancient
+# LangCode grc
+# 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)"
+ BabelName arabtex
+ 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
+ Encoding cp1256
+ RTL true
+ LangCode ar_SA
+End
+
+Language armenian
+ GuiName "Armenian"
+ PolyglossiaName armenian
+ Encoding armscii8
+ LangCode hy_AM
+End
+
+Language austrian
+ GuiName "German (Austria, old spelling)"
+ BabelName austrian
+ Encoding iso8859-15
+ LangCode de_AT
+End
+
+Language naustrian
+ GuiName "German (Austria)"
+ BabelName naustrian
+ Encoding iso8859-15
+ LangCode de_AT
+End
+
+Language bahasa
+ GuiName "Indonesian"
+ BabelName bahasa
+ PolyglossiaName bahasai
+ Encoding iso8859-15
+ LangCode id_ID
+End
+
+Language bahasam
+ GuiName "Malay"
+ BabelName bahasam
+ PolyglossiaName bahasam
+ Encoding iso8859-15
+ LangCode ms_MY
+End
+
+Language basque
+ GuiName "Basque"
+ BabelName basque
+ PolyglossiaName basque
+ Encoding iso8859-15
+ LangCode eu_ES
+End
+
+Language belarusian
+ GuiName "Belarusian"
+ BabelName belarusian
+ Encoding cp1251
+ LangCode be_BY
+End
+
+Language brazilian
+ GuiName "Portuguese (Brazil)"
+ BabelName brazil
+ PolyglossiaName brazil
+ Encoding iso8859-15
+ LangCode pt_BR
+End
+
+Language breton
+ GuiName "Breton"
+ BabelName breton
+ PolyglossiaName breton
+ Encoding iso8859-15
+ LangCode br_FR
+End
+
+Language british
+ GuiName "English (UK)"
+ BabelName british
+ PolyglossiaName english
+ PolyglossiaOpts "variant=british"
+ Encoding iso8859-15
+ LangCode en_GB
+End
+
+Language bulgarian
+ GuiName "Bulgarian"
+ BabelName bulgarian
+ PolyglossiaName bulgarian
+ Encoding cp1251
+ LangCode bg_BG
+End
+
+# not yet supported by polyglossia
+Language canadian
+ GuiName "English (Canada)"
+ BabelName canadian
+# PolyglossiaName english
+# PolyglossiaOpts "variant=canadian"
+ Encoding iso8859-15
+ LangCode en_CA
+End
+
+# not yet supported by polyglossia
+Language canadien
+ GuiName "French (Canada)"
+ BabelName canadien
+# PolyglossiaName french
+# PolyglossiaOpts "variant=canadien"
+ Encoding iso8859-15
+ LangCode fr_CA
+End
+
+Language catalan
+ GuiName "Catalan"
+ BabelName catalan
+ PolyglossiaName catalan
+ PolyglossiaOpts "babelshorthands=true"
+ Encoding iso8859-15
+ LangCode ca_ES
+End
+
+# uses CJK package
+Language chinese-simplified
+ GuiName "Chinese (simplified)"
+ Encoding euc-cn
+ LangCode zh_CN
+End
+
+# uses CJK package
+Language chinese-traditional
+ GuiName "Chinese (traditional)"
+ Encoding utf8-cjk
+ LangCode zh_CN
+End
+
+# Currently not supported (file format change!)
+# Language coptic
+# GuiName "Coptic"
+# PolyglossiaName coptic
+# LangCode cop
+# End
+
+Language croatian
+ GuiName "Croatian"
+ BabelName croatian
+ PolyglossiaName croatian
+ Encoding iso8859-2
+ LangCode hr_HR
+End
+
+Language czech
+ GuiName "Czech"
+ BabelName czech
+ PolyglossiaName czech
+ Encoding iso8859-2
+ LangCode cs_CZ
+End
+
+Language danish
+ GuiName "Danish"
+ BabelName danish
+ PolyglossiaName danish
+ Encoding iso8859-15
+ LangCode da_DK
+End
+
+# Currently not supported (file format change!)
+# Language divehi
+# GuiName "Divehi (Maldivian)"
+# PolyglossiaName divehi
+# LangCode dv
+# End
+
+Language dutch
+ GuiName "Dutch"
+ BabelName dutch
+ PolyglossiaName dutch
+ PolyglossiaOpts "babelshorthands=true"
+ Encoding iso8859-15
+ LangCode nl_NL
+End
+
+Language english
+ GuiName "English"
+ BabelName english
+ PolyglossiaName english
+ Encoding iso8859-15
+ LangCode en_US
+End
+