diff --git a/development/FORMAT b/development/FORMAT index 79beb356c7..71caf03107 100644 --- a/development/FORMAT +++ b/development/FORMAT @@ -7,6 +7,17 @@ changes happened in particular if possible. A good example would be ----------------------- +2024-08-25 Jürgen Spitzmüller + * Format incremented to 630: Add support for a number of languages in + babel and polyglossia: + Polyglossia: Chinese (Simplified), Chinese (Traditional), Japanese, Kurdish (Sorani), + Latin (Classic), Latin (Ecclesiastic), Latin (Medieval), N'ko, Odia, Punjabi, and Uyghur + Babel: 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 + 2024-08-23 Jürgen Spitzmüller * Format incremented to 629: Add support for language options New buffer params \language_options_babel and diff --git a/lib/languages b/lib/languages index e4feee3a6b..37bbf58645 100644 --- a/lib/languages +++ b/lib/languages @@ -211,12 +211,10 @@ Language american 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" @@ -289,12 +287,10 @@ Language arabic_arabi 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 @@ -302,12 +298,10 @@ Language armenian 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 @@ -434,9 +428,8 @@ End # 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 @@ -554,9 +547,8 @@ End 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 @@ -569,9 +561,8 @@ End 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 @@ -580,12 +571,10 @@ Language chinese-traditional 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 @@ -595,13 +584,11 @@ Language churchslavonic 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 @@ -650,9 +637,8 @@ End # 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" @@ -917,30 +903,16 @@ Language hebrew 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" @@ -1001,8 +973,7 @@ Language japanese HasGuiSupport true BabelName japanese BabelOptFormat \languageattribute{$lang$}{$opts$} -# TODO -# PolyglossiaName japanese + PolyglossiaName japanese Encoding jis-platex WordWrap false LangCode ja_JP @@ -1023,12 +994,10 @@ Language japanese-cjk 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" @@ -1036,21 +1005,20 @@ Language kannada 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" @@ -1091,14 +1059,25 @@ Language kurmanji 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" @@ -1109,7 +1088,7 @@ End # We therefore use the name of its hunspell dictionary. # FIXME DateFormats Language latin - GuiName "Latin" + GuiName "Latin (Modern)" BabelName latin BabelOptFormat modifier PolyglossiaName latin @@ -1118,10 +1097,48 @@ Language 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 @@ -1213,12 +1230,10 @@ Language macedonian 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 @@ -1226,12 +1241,10 @@ Language malayalam 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" @@ -1265,23 +1278,18 @@ Language newzealand 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)" @@ -1311,11 +1319,9 @@ Language nynorsk LangCode nn_NO End -# not supported by babel Language occitan GuiName "Occitan" -# TODO -# BabelName occitan + BabelName occitan PolyglossiaName occitan QuoteStyle french Encoding utf8 @@ -1323,20 +1329,29 @@ Language occitan 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 @@ -1380,7 +1395,15 @@ Language portuguese 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" @@ -1434,13 +1457,11 @@ Language samin 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 @@ -1568,12 +1589,10 @@ Language swedish 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 @@ -1581,24 +1600,20 @@ Language syriac 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" @@ -1649,13 +1664,11 @@ Language thai 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 @@ -1715,12 +1728,10 @@ Language uppersorbian 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" @@ -1728,7 +1739,18 @@ Language urdu 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" diff --git a/lib/lyx2lyx/lyx2lyx_tools.py b/lib/lyx2lyx/lyx2lyx_tools.py index 9b29b76747..2496ea7f99 100644 --- a/lib/lyx2lyx/lyx2lyx_tools.py +++ b/lib/lyx2lyx/lyx2lyx_tools.py @@ -666,7 +666,7 @@ singlepar_insets = [ # print(singlepar_insets) -def revert_language(document, lyxname, babelname="", polyglossianame=""): +def revert_language(document, lyxname, babelname="", polyglossianame="", polyglossiaopts="", babelprovide=False): "Revert native language support" # Does the document use polyglossia? @@ -791,15 +791,18 @@ def revert_language(document, lyxname, babelname="", polyglossianame=""): i -= 1 continue + + if polyglossiaopts != "": + polyglossiaopts = "[" + polyglossiaopts + "]" if singlepar: if with_polyglossia: - begin_cmd = "\\text%s{" % texname + begin_cmd = "\\text%s%s{" % (texname, polyglossiaopts) elif with_babel: begin_cmd = "\\foreignlanguage{%s}{" % texname end_cmd = "}" else: if with_polyglossia: - begin_cmd = "\\begin{%s}" % texname + begin_cmd = "\\begin%s{%s}" % (polyglossiaopts, texname) end_cmd = "\\end{%s}" % texname elif with_babel: begin_cmd = "\\begin{otherlanguage}{%s}" % texname @@ -822,6 +825,16 @@ def revert_language(document, lyxname, babelname="", polyglossianame=""): if with_babel: # add as global option insert_document_option(document, babelname) + # babelprovide + if babelprovide: + babelprovide = "\\babelprovide[import" + if primary: + babelprovide += ", main" + babelprovide += "]{%s}" % babelname + add_to_preamble( + document, + ["\\AddToHook{package/babel/after}{%s}" % babelprovide], + ) # Since user options are appended to the document options, # Babel will treat `babelname` as primary language. if not primary: diff --git a/lib/lyx2lyx/lyx_2_5.py b/lib/lyx2lyx/lyx_2_5.py index 67d6519697..fa9641c5c9 100644 --- a/lib/lyx2lyx/lyx_2_5.py +++ b/lib/lyx2lyx/lyx_2_5.py @@ -23,19 +23,20 @@ import re # 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 ( @@ -46,6 +47,7 @@ from parser_tools import ( find_substring, find_token, get_containing_inset, + get_bool_value, get_quoted_value, get_value ) @@ -872,6 +874,142 @@ def revert_langopts(document): # 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 # @@ -886,11 +1024,13 @@ convert = [ [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]], diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp index 05a80ef025..5f0043e042 100644 --- a/src/tex2lyx/Preamble.cpp +++ b/src/tex2lyx/Preamble.cpp @@ -50,19 +50,21 @@ namespace { * 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}; @@ -71,19 +73,21 @@ const char * const known_languages[] = {"acadian", "afrikaans", "albanian", * 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}; @@ -326,17 +330,16 @@ string process_keyval_opt(vector & options, string const & name) 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 @@ -345,17 +348,17 @@ const char * const Preamble::polyglossia_languages[] = { 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 diff --git a/src/version.h b/src/version.h index 67ff1b79c6..1e18ff3816 100644 --- a/src/version.h +++ b/src/version.h @@ -32,8 +32,8 @@ extern char const * const lyx_version_info; // Do not remove the comment below, so we get merge conflict in // independent branches. Instead add your own. -#define LYX_FORMAT_LYX 629 // spitz: language options -#define LYX_FORMAT_TEX2LYX 629 +#define LYX_FORMAT_LYX 630 // spitz: language updates +#define LYX_FORMAT_TEX2LYX 630 #if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX #ifndef _MSC_VER