LangCode en_US
End
-# not supported by babel
Language amharic
GuiName "Amharic"
-# TODO:
-# BabelName amharic
-# BabelProvide 1
+ BabelName amharic
+ BabelProvide 1
PolyglossiaName amharic
Encoding utf8
DateFormats "dd MMMM yyyy|dd MMM yyyy|dd/MM/yyyy"
LangCode ar_SA
End
-# not supported by babel
Language armenian
GuiName "Armenian"
-# TODO:
-# BabelName armenian
-# BabelProvide 1
+ BabelName armenian
+ BabelProvide 1
PolyglossiaName armenian
QuoteStyle swiss
Encoding utf8
LangCode hy_AM
End
-# not supported by babel
Language asturian
GuiName "Asturian"
-# TODO:
-# BabelName asturian
-# BabelProvide 1
+ BabelName asturian
+ BabelProvide 1
PolyglossiaName asturian
QuoteStyle french
Encoding iso8859-15
# supported by polyglossia but not babel:
Language bengali
GuiName "Bengali"
-# TODO:
-# BabelName bengali
-# BabelProvide 1
+ BabelName bengali
+ BabelProvide 1
PolyglossiaName bengali
QuoteStyle english
Encoding utf8
Language chinese-simplified
GuiName "Chinese (simplified)"
HasGuiSupport true
-# TODO
-# PolyglossiaName chinese
-# PolyglossiaOpts "variant=simplified"
+ PolyglossiaName chinese
+ PolyglossiaOpts "variant=simplified"
Encoding euc-cn
QuoteStyle english
WordWrap false
Language chinese-traditional
GuiName "Chinese (traditional)"
HasGuiSupport true
-# TODO
-# PolyglossiaName chinese
-# PolyglossiaOpts "variant=traditional"
+ PolyglossiaName chinese
+ PolyglossiaOpts "variant=traditional"
QuoteStyle cjk
Encoding utf8-cjk
WordWrap false
Requires CJK
End
-# not supported by babel
Language churchslavonic
GuiName "Church Slavonic"
-# TODO:
-# BabelName churchslavic
-# BabelProvide 1
+ BabelName churchslavic
+ BabelProvide 1
PolyglossiaName churchslavonic
QuoteStyle swiss
Encoding utf8
Provides textcyrillic
End
-# not supported by babel
# FIXME DateFormats
Language coptic
GuiName "Coptic"
-# TODO:
-# BabelName coptic
-# BabelProvide 1
+ BabelName coptic
+ BabelProvide 1
PolyglossiaName coptic
Encoding utf8
LangCode cop_EG
# babel only provides a "bare minimum locale"
Language divehi
GuiName "Divehi (Maldivian)"
-# TODO:
-# BabelName divehi
-# BabelProvide 1
+ BabelName divehi
+ BabelProvide 1
PolyglossiaName divehi
Encoding utf8
DateFormats "yyyy MMMM dd|yyyy MMM dd|dd/MM/yyyy"
LangCode he_IL
End
-# not supported by babel
Language hindi
GuiName "Hindi"
-# TODO:
-# BabelName hindi
-# BabelProvide 1
+ BabelName hindi
+ BabelProvide 1
PolyglossiaName hindi
Encoding utf8
DateFormats "dd MMMM yyyy|dd MMM yyyy|dd-MM-yyyy"
LangCode hi_IN
End
-# Currently not supported (file format change!)
-# "hungarian" is a synonym for the "magyar" babel language option
-# "hungarian" might be used for special purposes,
-# see http://www.math.bme.hu/latex/magyar_pre_tug2004.pdf
-#Language hungarian
-# GuiName "Hungarian"
-# BabelName hungarian
-# Encoding iso8859-2
-# LangCode hu_HU
-# QuoteStyle polish
-#End
-
# FontEncoding: OT1 misses ð and Þ
Language icelandic
GuiName "Icelandic"
HasGuiSupport true
BabelName japanese
BabelOptFormat \languageattribute{$lang$}{$opts$}
-# TODO
-# PolyglossiaName japanese
+ PolyglossiaName japanese
Encoding jis-platex
WordWrap false
LangCode ja_JP
QuoteStyle cjk
End
-# not supported by babel
Language kannada
GuiName "Kannada"
-# TODO:
-# BabelName kannada
-# BabelProvide 1
+ BabelName kannada
+ BabelProvide 1
PolyglossiaName kannada
Encoding utf8
DateFormats "dd MMMM yyyy|dd MMMM yyyy|dd-MM-yyyy"
End
# not yet supported by polyglossia
-# not supported by babel
Language kazakh
GuiName "Kazakh"
+ BabelName kazakh
+ BabelProvide 1
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
Language khmer
GuiName "Khmer"
-# TODO:
-# BabelName khmer
-# BabelProvide 1
+ BabelName khmer
+ BabelProvide 1
PolyglossiaName khmer
Encoding utf8
DateFormats "d MMMM yyyy|d MMMM yyyy|dd/MM/yyyy"
LangCode kmr
End
-# TODO: kurdish, variant=sorani
-# not supported by babel
+Language sorani
+ GuiName "Kurdish (Sorani)"
+ BabelName sorani
+ BabelProvide 1
+ PolyglossiaName kurdish
+ PolyglossiaOpts "variant=sorani"
+ XindyName kurdish-bedirxan
+ Encoding utf8
+ FontEncoding T1|OT1
+ DateFormats "d. MMMM yyyy|d. M. yyyy|yyyy-MM-dd"
+ LangCode ckb
+End
+
+
Language lao
GuiName "Lao"
-# TODO:
-# BabelName lao
-# BabelProvide 1
+ BabelName lao
+ BabelProvide 1
PolyglossiaName lao
Encoding utf8
DateFormats "dd MMMM yyyy|dd MMMM yyyy|dd/MM/yyyy"
# We therefore use the name of its hunspell dictionary.
# FIXME DateFormats
Language latin
- GuiName "Latin"
+ GuiName "Latin (Modern)"
BabelName latin
BabelOptFormat modifier
PolyglossiaName latin
ActiveChars ^=
Encoding iso8859-15
FontEncoding T1|OT1
- LangCode la_LA
+ LangCode la
+End
+
+Language latin-classic
+ GuiName "Latin (Classic)"
+ BabelName classiclatin
+ BabelOptFormat modifier
+ PolyglossiaName latin
+ PolyglossiaOpts "variant=classic"
+ XindyName latin
+ ActiveChars ^=
+ Encoding iso8859-15
+ FontEncoding T1|OT1
+ LangCode la-x-classic
+End
+
+Language latin-ecclesiastic
+ GuiName "Latin (Eccesiastic)"
+ BabelName ecclesiasticlatin
+ BabelOptFormat modifier
+ PolyglossiaName latin
+ PolyglossiaOpts "variant=ecclesiastic"
+ XindyName latin
+ ActiveChars ^=
+ Encoding iso8859-15
+ FontEncoding T1|OT1
+ LangCode la-x-ecclesia
+End
+
+Language latin-medieval
+ GuiName "Latin (Medieval)"
+ BabelName medievallatin
+ BabelOptFormat modifier
+ PolyglossiaName latin
+ PolyglossiaOpts "variant=medieval"
+ XindyName latin
+ ActiveChars ^=
+ Encoding iso8859-15
+ FontEncoding T1|OT1
+ LangCode la-x-medieval
End
-# TODO: support Latin varieties (classic, medieval, eccelesiastic)
# latvian must be loaded locally with babel options,
# not globally via class options
Provides textcyrillic
End
-# not supported by babel
Language malayalam
GuiName "Malayalam"
-# TODO:
-# BabelName malayalam
-# BabelProvide 1
+ BabelName malayalam
+ BabelProvide 1
PolyglossiaName malayalam
Encoding utf8
QuoteStyle english
LangCode ml_IN
End
-# not supported by babel
Language marathi
GuiName "Marathi"
-# TODO:
-# BabelName marathi
-# BabelProvide 1
+ BabelName marathi
+ BabelProvide 1
PolyglossiaName marathi
Encoding utf8
DateFormats "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
LangCode en_NZ
End
-# TODO:
-# Language nko
-# GuiName "N’Ko"
-# BabelName nko
-# BabelProvide 1
-# PolyglossiaName nko
-# QuoteStyle swiss
-# Encoding utf8
+Language nko
+ GuiName "N’Ko"
+ BabelName nko
+ BabelProvide 1
+ 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
+# see gloss-nko.ldf
+ RTL true
+ LangCode nqo
+End
Language norsk
GuiName "Norwegian (Bokmaal)"
LangCode nn_NO
End
-# not supported by babel
Language occitan
GuiName "Occitan"
-# TODO
-# BabelName occitan
+ BabelName occitan
PolyglossiaName occitan
QuoteStyle french
Encoding utf8
LangCode oc_FR
End
-# TODO: odia (polyglossia)
+Language odia
+ GuiName "Odia"
+ BabelName odia
+ BabelProvide 1
+ PolyglossiaName odia
+ Encoding utf8
+ DateFormats "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
+ LangCode or
+End
# Russian orthography from the Petrine orthographic reforms of
# 1708 to the 1917 orthographic reform
Language oldrussian
GuiName "Russian (Petrine orthography)"
-# TODO
-# BabelName russian
-# BabelOpts ancient
-# BabelOptFormat modifier
+ BabelName russian
+ BabelOpts ancient
+ BabelOptFormat modifier
PolyglossiaName russian
PolyglossiaOpts "spelling=old"
XindyName russian
QuoteStyle russian
+ Encoding koi8-r
+ FontEncoding T2A
LangCode ru_petr1708
End
LangCode pt_PT
End
-# TODO: punjabi (polyglossia)
+Language punjabi
+ GuiName "Punjabi"
+ BabelName punjabi
+ BabelProvide 1
+ PolyglossiaName punjabi
+ Encoding utf8
+ DateFormats "dd MMMM yyyy|dd MMMM yyyy|dd-MM-yyyy"
+ LangCode pa
+End
Language romanian
GuiName "Romanian"
LangCode se_NO
End
-# not supported by babel
Language sanskrit
GuiName "Sanskrit"
PolyglossiaName sanskrit
-# TODO:
-# BabelName sanskrit
-# BabelProvide 1
+ BabelName sanskrit
+ BabelProvide 1
Encoding utf8
DateFormats "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
LangCode sa_IN
LangCode sv_SE
End
-# not supported by babel
Language syriac
GuiName "Syriac"
-# TODO:
-# BabelName syriac
-# BabelProvide 1
+ BabelName syriac
+ BabelProvide 1
PolyglossiaName syriac
Encoding utf8
RTL true
LangCode syr_SY
End
-# not supported by babel
Language tamil
GuiName "Tamil"
-# TODO:
-# BabelName tamil
-# BabelProvide 1
+ BabelName tamil
+ BabelProvide 1
PolyglossiaName tamil
Encoding utf8
DateFormats "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
LangCode ta_IN
End
-# not supported by babel
Language telugu
GuiName "Telugu"
-# TODO:
-# BabelName telugu
-# BabelProvide 1
+ BabelName telugu
+ BabelProvide 1
PolyglossiaName telugu
Encoding utf8
DateFormats "dd MMMM yyyy|d MMM yyyy|dd-MM-yyyy"
EndPostBabelPreamble
End
-# not supported by babel
#FIXME DateFormats
Language tibetan
GuiName "Tibetan"
-# TODO:
-# BabelName tibetan
-# BabelProvide 1
+ BabelName tibetan
+ BabelProvide 1
PolyglossiaName tibetan
Encoding utf8
LangCode bo_CN
LangCode hsb_DE
End
-# not supported by babel
Language urdu
GuiName "Urdu"
-# TODO:
-# BabelName urdu
-# BabelProvide 1
+ BabelName urdu
+ BabelProvide 1
PolyglossiaName urdu
Encoding utf8
DateFormats "d MMMM, yyyy|d MMM yyyy|dd/MM/yyyy"
LangCode ur_PK
End
-# TODO: uyghur (polyglossia)
+Language uyghur
+ GuiName "Uyghur"
+ BabelName uyghur
+ BabelProvide 1
+ PolyglossiaName uyghur
+ Encoding utf8
+ FontEncoding LAE,LFE
+ DateFormats "d MMMM yyyy-يىلى|d MMM yyyy-يىلى|yyyy/M/d"
+ RTL true
+ LangCode ug
+ QuoteStyle english
+End
Language vietnamese
GuiName "Vietnamese"
# convert_info_insets, get_ert, hex2ratio, insert_to_preamble,
# length_in_bp, lyx2verbatim,
# revert_flex_inset, revert_flex_inset, revert_font_attrs,
-# revert_language, str2bool
+# str2bool
from lyx2lyx_tools import (
add_to_preamble,
latex_length,
lyx2latex,
- put_cmd_in_ert
+ put_cmd_in_ert,
+ revert_language
)
# Uncomment only what you need to import, please (parser_tools):
# check_token, count_pars_in_inset, del_complete_lines,
# del_value, find_complete_lines, find_end_of,
# find_re, find_token_backwards, find_token_exact,
-# find_tokens, get_bool_value,
+# find_tokens,
# get_containing_layout, get_option_value,
# is_in_inset, set_bool_value
from parser_tools import (
find_substring,
find_token,
get_containing_inset,
+ get_bool_value,
get_quoted_value,
get_value
)
# remove header
del document.header[i]
+
+def revert_new_polyglossia_languages(document):
+ """Emulate support for Simplified Chinese, Traditional Chinese, Japanese, Sorani Kurdish,
+ Classic, Ecclesiastic and Medieval Latin, N'ko, Odia, Punjabi, and Uyghur with polyglossia."""
+
+ # Does the document use polyglossia?
+ use_polyglossia = False
+ if get_bool_value(document.header, "\\use_non_tex_fonts"):
+ i = find_token(document.header, "\\language_package")
+ if i == -1:
+ document.warning("Malformed document! Missing \\language_package")
+ else:
+ pack = get_value(document.header, "\\language_package", i)
+ if pack in ("default", "auto"):
+ use_polyglossia = True
+
+ if not use_polyglossia:
+ return
+
+ # lyxname: (babelname, polyglossianame, polyglossiaopts)
+ new_languages = {
+ "chinese-simplified": ("", "chinese", "variant=simplified"),
+ "chinese-traditional": ("", "chinese", "variant=traditional"),
+ "japanese": ("", "japanese", ""),
+ "sorani": ("", "kurdish", "variant=sorani"),
+ "latin-classic": ("", "latin", "variant=classic"),
+ "latin-ecclesiastic": ("", "latin", "variant=ecclesiastic"),
+ "latin-medieval": ("", "latin", "variant=medieval"),
+ "nko": ("", "nko", ""),
+ "odia": ("", "odia", ""),
+ "punjabi": ("", "punjabi", ""),
+ "uyghur": ("", "uyghur", ""),
+ }
+ if document.language in new_languages:
+ used_languages = {document.language}
+ else:
+ used_languages = set()
+ i = 0
+ while True:
+ i = find_token(document.body, "\\lang", i + 1)
+ if i == -1:
+ break
+ val = get_value(document.body, "\\lang", i)
+ if val in new_languages:
+ used_languages.add(val)
+
+ for lang in used_languages:
+ revert_language(document, lang, *new_languages[lang])
+
+
+def revert_new_babel_languages(document):
+ """Emulate support for Amharic, Armenian, Asturian, Bengali, Church Slavonic,
+ Coptic, Divehi, Kannada, Kazakh, Khmer, Kurdish (Sorani), Lao, Latin (Classic),
+ Latin (Ecclesiastic), Latin (Medieval), Malayalam, Marathi, N'ko, Occitan, Odia,
+ Punjabi, Russian (Petrine orthography), Sanskrit, Syriac, Tamil, Telugu, Tibetan,
+ Urdu, and Uyghur with babel."""
+
+ # Does the document use polyglossia?
+ use_polyglossia = False
+ if get_bool_value(document.header, "\\use_non_tex_fonts"):
+ i = find_token(document.header, "\\language_package")
+ if i == -1:
+ document.warning("Malformed document! Missing \\language_package")
+ else:
+ pack = get_value(document.header, "\\language_package", i)
+ if pack in ("default", "auto"):
+ use_polyglossia = True
+
+ if use_polyglossia:
+ return
+
+ # lyxname: (babelname, polyglossianame, polyglossiaopts, babelprovide)
+ new_languages = {
+ "amharic": ("amharic", "", "", True),
+ "armenian": ("armenian", "", "", True),
+ "asturian": ("asturian", "", "", True),
+ "bengali": ("bengali", "", "", True),
+ "churchslavonic": ("churchslavic", "", "", True),
+ "coptic": ("coptic", "", "", True),
+ "divehi": ("divehi", "", "", True),
+ "hindi": ("hindi", "", "", True),
+ "kannada": ("kannada", "", "", True),
+ "kazakh": ("kazakh", "", "", True),
+ "khmer": ("khmer", "", "", True),
+ "lao": ("lao", "", "", True),
+ "latin-classic": ("classiclatin", "", "", False),
+ "latin-ecclesiastic": ("ecclesiasticlatin", "", "", False),
+ "latin-medieval": ("medievallatin", "", "", False),
+ "malayalam": ("malayalam", "", "", True),
+ "marathi": ("marathi", "", "", True),
+ "nko": ("nko", "", "", True),
+ "occitan": ("occitan", "", "", False),
+ "odia": ("odia", "", "", True),
+ "punjabi": ("punjabi", "", "", True),
+ "sanskrit": ("sanskrit", "", "", True),
+ "sorani": ("sorani", "", "", True),
+ "syriac": ("syriac", "", "", True),
+ "tamil": ("tamil", "", "", True),
+ "telugu": ("telugu", "", "", True),
+ "tibetan": ("tibetan", "", "", True),
+ "urdu": ("urdu", "", "", True),
+ "uyghur": ("uyghur", "", "", True),
+ }
+ if document.language in new_languages:
+ used_languages = {document.language}
+ else:
+ used_languages = set()
+ i = 0
+ while True:
+ i = find_token(document.body, "\\lang", i + 1)
+ if i == -1:
+ break
+ val = get_value(document.body, "\\lang", i)
+ if val in new_languages:
+ used_languages.add(val)
+
+ for lang in used_languages:
+ revert_language(document, lang, *new_languages[lang])
+
+ # revert oldrussian to russian
+ have_oldrussian = False
+ if document.language == "oldrussian":
+ document.language = "russian"
+ have_oldrussian = True
+
+ i = 0
+ while True:
+ i = find_token(document.body, "\\lang oldrussian", i + 1)
+ if i == -1:
+ break
+ have_oldrussian = True
+ document.body[i] = "\\lang russian"
+
+ if have_oldrussian:
+ add_to_preamble(document, ["\\AddToHook{package/babel/after}{\\languageattribute{russian}{ancient}}"])
+
##
# Conversion hub
#
[626, []],
[627, [convert_nomencl, convert_index_sc]],
[628, []],
- [629, []]
+ [629, []],
+ [630, []]
]
revert = [
+ [629, [revert_new_polyglossia_languages, revert_new_babel_languages]],
[628, [revert_langopts]],
[627, [revert_nomentbl]],
[626, [revert_nomencl, revert_index_sc]],
* please keep this in sync with known_coded_languages line by line!
*/
const char * const known_languages[] = {"acadian", "afrikaans", "albanian",
-"american", "ancientgreek", "arabic", "arabtex", "australian", "austrian", "azerbaijani", "bahasa", "bahasai",
-"bahasam", "basque", "belarusian", "bosnian", "brazil", "brazilian", "breton", "british",
-"bulgarian", "canadian", "canadien", "catalan", "croatian", "czech", "danish",
-"dutch", "english", "esperanto", "estonian", "farsi", "finnish", "francais",
-"french", "frenchb", "frenchle", "frenchpro", "friulan", "galician", "german", "germanb",
-"georgian", "greek", "hebrew", "hungarian", "icelandic", "indon", "indonesian",
-"interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin",
-"latvian", "lithuanian", "lowersorbian", "lsorbian", "macedonian", "magyar", "malay", "meyalu",
-"mexican", "mongolian", "naustrian", "newzealand", "ngerman", "ngermanb", "norsk", "nswissgerman",
-"nynorsk", "piedmontese", "polutonikogreek", "polish", "portuges", "portuguese",
-"romanian", "romansh", "russian", "russianb", "samin", "scottish", "serbian", "serbian-latin",
-"slovak", "slovene", "spanish", "swedish", "swissgerman", "thai", "turkish", "turkmen",
-"ukraineb", "ukrainian", "uppersorbian", "UKenglish", "USenglish", "usorbian",
+"american", "amharic", "ancientgreek", "arabic", "arabtex", "armenian", "asturian",
+"australian", "austrian", "azerbaijani", "bahasa", "bahasai", "bahasam", "basque",
+"belarusian", "bengali", "bosnian", "brazil", "brazilian", "breton", "british",
+"bulgarian", "canadian", "canadien", "catalan", "churchslavic", "classiclatin", "coptic",
+"croatian", "czech", "danish", "divehi", "dutch", "ecclesiasticlatin", "english", "esperanto",
+"estonian", "farsi", "finnish", "francais", "french", "frenchb", "frenchle", "frenchpro", "friulan",
+"galician", "german", "germanb", "georgian", "greek", "hebrew", "hindi", "hungarian", "icelandic",
+"indon", "indonesian", "interlingua", "irish", "italian", "japanese", "kannada", "kazakh", "khmer",
+"kurmanji", "lao", "latin", "latvian", "lithuanian", "lowersorbian", "lsorbian", "macedonian", "magyar",
+"malay", "malayalam", "marathi", "medievallatin", "meyalu", "mexican", "mongolian", "naustrian", "newzealand",
+"ngerman", "ngermanb", "nko", "norsk", "nswissgerman", "nynorsk", "occitan", "odia", "piedmontese",
+"polutonikogreek", "polish", "portuges", "portuguese", "romanian", "romansh", "russian", "russianb",
+"samin", "scottish", "serbian", "serbian-latin", "punjabi", "sanskrit", "slovak", "slovene", "sorani",
+"spanish", "swedish", "swissgerman", "syriac", "tamil", "telugu", "thai", "tibetan", "turkish", "turkmen",
+"ukraineb", "ukrainian", "uppersorbian", "UKenglish", "urdu", "USenglish", "usorbian", "uyghur",
"vietnam", "welsh",
0};
* please keep this in sync with known_languages line by line!
*/
const char * const known_coded_languages[] = {"french", "afrikaans", "albanian",
-"american", "ancientgreek", "arabic_arabi", "arabic_arabtex", "australian", "austrian", "azerbaijani", "bahasa", "bahasa",
-"bahasam", "basque", "belarusian", "bosnian", "brazilian", "brazilian", "breton", "british",
-"bulgarian", "canadian", "canadien", "catalan", "croatian", "czech", "danish",
-"dutch", "english", "esperanto", "estonian", "farsi", "finnish", "french",
-"french", "french", "french", "french", "friulan", "galician", "german", "german",
-"georgian", "greek", "hebrew", "magyar", "icelandic", "bahasa", "bahasa",
-"interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin",
-"latvian", "lithuanian", "lowersorbian", "lowersorbian", "macedonian", "magyar", "bahasam", "bahasam",
-"spanish-mexico", "mongolian", "naustrian", "newzealand", "ngerman", "ngerman", "norsk", "german-ch",
-"nynorsk", "piedmontese", "polutonikogreek", "polish", "portuguese", "portuguese",
-"romanian", "romansh", "russian", "russian", "samin", "scottish", "serbian", "serbian-latin",
-"slovak", "slovene", "spanish", "swedish", "german-ch-old", "thai", "turkish", "turkmen",
-"ukrainian", "ukrainian", "uppersorbian", "english", "english", "uppersorbian",
+"american", "amharic", "ancientgreek", "arabic_arabi", "arabic_arabtex", "armenian", "asturian",
+"australian", "austrian", "azerbaijani", "bahasa", "bahasa", "bahasam", "basque",
+"belarusian", "bengali", "bosnian", "brazilian", "brazilian", "breton", "british",
+"bulgarian", "canadian", "canadien", "catalan", "churchslavonic", "latin-classic", "coptic",
+"croatian", "czech", "danish", "divehi", "dutch", "latin-ecclesiastic", "english", "esperanto",
+"estonian", "farsi", "finnish", "french", "french", "french", "french", "french", "friulan",
+"galician", "german", "german", "georgian", "greek", "hebrew", "hindi", "magyar", "icelandic",
+"bahasa", "bahasa", "interlingua", "irish", "italian", "japanese", "kannada", "kazakh", "khmer",
+"kurmanji", "lao", "latin", "latvian", "lithuanian", "lowersorbian", "lowersorbian", "macedonian", "magyar",
+"bahasam", "malayalam", "marathi", "latin-medieval", "bahasam", "spanish-mexico", "mongolian", "naustrian", "newzealand",
+"ngerman", "ngerman", "nko", "norsk", "german-ch", "nynorsk", "occitan", "odia", "piedmontese",
+"polutonikogreek", "polish", "portuguese", "portuguese", "romanian", "romansh", "russian", "russian",
+"samin", "scottish", "serbian", "serbian-latin", "punjabi", "sanskrit", "slovak", "slovene", "sorani",
+"spanish", "swedish", "german-ch-old", "syriac", "tamil", "telugu", "thai", "tibetan", "turkish", "turkmen",
+"ukrainian", "ukrainian", "uppersorbian", "english", "urdu", "english", "uppersorbian", "uyghur",
"vietnamese", "welsh",
0};
const char * const Preamble::polyglossia_languages[] = {
"albanian", "american", "amharic", "ancient", "arabic", "armenian", "asturian", "australian",
"bahasai", "bahasam", "basque", "bengali", "brazil", "brazilian", "breton", "british", "bulgarian",
-"catalan", "churchslavonic", "coptic", "croatian", "czech", "danish", "divehi", "dutch",
+"catalan", "chinese", "chinese", "churchslavonic", "coptic", "croatian", "czech", "danish", "divehi", "dutch",
"english", "esperanto", "estonian", "farsi", "finnish", "french", "friulan",
"galician", "greek", "monotonic", "hebrew", "hindi",
-"icelandic", "interlingua", "irish", "italian", "kannada", "khmer", "korean",
-"lao", "latin", "latvian", "lithuanian", "lsorbian", "magyar", "malayalam", "marathi",
-"austrian", "newzealand", "german", "norsk", "nynorsk", "occitan", "oldrussian",
-"piedmontese", "polish", "polytonic", "portuges", "romanian", "romansh", "russian",
+"icelandic", "interlingua", "irish", "italian", "japanese", "kannada", "khmer", "korean",
+"kurdish", "kurmanji", "lao", "latin", "latvian", "lithuanian", "lsorbian", "magyar", "malayalam", "marathi",
+"austrian", "newzealand", "german", "nko", "norsk", "nynorsk", "occitan", "odia", "oldrussian",
+"piedmontese", "polish", "polytonic", "portuguese", "punjabi", "romanian", "romansh", "russian",
"samin", "sanskrit", "scottish", "serbian", "slovak", "slovenian", "spanish", "swedish", "syriac",
"tamil", "telugu", "thai", "tibetan", "turkish", "turkmen",
-"ukrainian", "urdu", "usorbian", "vietnamese", "welsh", 0};
-// not yet supported by LyX: "korean", "nko"
+"ukrainian", "urdu", "usorbian", "uyghur", "vietnamese", "welsh", 0};
/**
* the same as polyglossia_languages with .lyx names
const char * const Preamble::coded_polyglossia_languages[] = {
"albanian", "american", "amharic", "ancientgreek", "arabic_arabi", "armenian", "asturian", "australian",
"bahasa", "bahasam", "basque", "bengali", "brazilian", "brazilian", "breton", "british", "bulgarian",
-"catalan", "churchslavonic", "coptic", "croatian", "czech", "danish", "divehi", "dutch",
+"catalan", "chinese-simplified", "chinese-traditional", "churchslavonic", "coptic", "croatian", "czech",
+"danish", "divehi", "dutch",
"english", "esperanto", "estonian", "farsi", "finnish", "french", "friulan",
"galician", "greek", "greek", "hebrew", "hindi",
-"icelandic", "interlingua", "irish", "italian", "kannada", "khmer", "korean",
-"lao", "latin", "latvian", "lithuanian", "lowersorbian", "magyar", "malayalam", "marathi",
-"naustrian","newzealand", "ngerman", "norsk", "nynorsk", "occitan", "oldrussian",
-"piedmontese", "polish", "polutonikogreek", "portuges", "romanian", "romansh", "russian",
+"icelandic", "interlingua", "irish", "italian", "japanese", "kannada", "khmer", "korean",
+"sorani", "kurmanji", "lao", "latin", "latvian", "lithuanian", "lowersorbian", "magyar", "malayalam", "marathi",
+"naustrian","newzealand", "ngerman", "nko", "norsk", "nynorsk", "occitan", "odia", "oldrussian",
+"piedmontese", "polish", "polutonikogreek", "portuges", "punjabi", "romanian", "romansh", "russian",
"samin", "sanskrit", "scottish", "serbian", "slovak", "slovene", "spanish", "swedish", "syriac",
"tamil", "telugu", "thai", "tibetan", "turkish", "turkmen",
-"ukrainian", "urdu", "uppersorbian", "vietnamese", "welsh", 0};
-// not yet supported by LyX: "korean-polyglossia", "nko"
+"ukrainian", "urdu", "uppersorbian", "uyghur", "vietnamese", "welsh", 0};
bool Preamble::usePolyglossia() const