Am 16.10.2016 um 02:32 schrieb Uwe Stöhr:
So it is time to support the language also in LyX. The attached patch does this.
I now remembered that I already sent a patch earlier this year with support also for Macedonian, Bosnian and Romansh. It was not put in because it was too late for 2.2.0. Now for 2.3.0 it could go.
Attached is the complete patch. regards Uwe
development/FORMAT | 7 +++++ lib/languages | 51 ++++++++++++++++++++++++++++++ lib/lyx2lyx/lyx_2_3.py | 80 +++++++++++++++++++++++++++++++++++++++++++++++- src/tex2lyx/Preamble.cpp | 29 +++++++++--------- src/version.h | 4 +-- 5 files changed, 154 insertions(+), 17 deletions(-) diff --git a/development/FORMAT b/development/FORMAT index 902c145..58a58e1 100644 --- a/development/FORMAT +++ b/development/FORMAT @@ -11,6 +11,13 @@ adjustments are made to tex2lyx and bugs are fixed in lyx2lyx. ----------------------- +2016-10-16 Uwe Stöhr <uwesto...@web.de> + * Format incremented to 513: support for Piedmontese etc.: + \lang bosnian + \lang macedonian + \lang piedmontese + \lang romansh + 2016-08-04 Jürgen Spitzmüller <sp...@lyx.org> * Format incremented to 512 Added inclusion of styles from [scr]article to the [scr]article-beamer diff --git a/lib/languages b/lib/languages index d56d030..22e016e 100644 --- a/lib/languages +++ b/lib/languages @@ -256,6 +256,15 @@ Language belarusian AsBabelOptions true End +# not yet supported by polyglossia +Language bosnian + GuiName "Bosnian" + BabelName bosnian + QuoteStyle polish + Encoding iso8859-2 + LangCode bs_BA +End + Language brazilian GuiName "Portuguese (Brazil)" HasGuiSupport true @@ -480,6 +489,18 @@ Language french EndPostBabelPreamble End +# A bug prevents curently the output. If this is fixed, this can be enabled. +# Would be a fileformat change! +#Language friulan +# GuiName "Friulian" +# HasGuiSupport true +# BabelName friulan +# PolyglossiaName friulan +# QuoteStyle french +# Encoding iso8859-15 +# LangCode fur_IT +#End + Language galician GuiName "Galician" HasGuiSupport true @@ -768,6 +789,16 @@ Language magyar LangCode hu_HU End +# not yet supported by polyglossia +Language macedonian + GuiName "Macedonian" + BabelName macedonian + QuoteStyle german + Encoding cp1251 + FontEncoding T2A + LangCode mk_MK +End + # not supported by babel Language marathi GuiName "Marathi" @@ -837,6 +868,16 @@ End # LangCode ru_petr1708 # End +Language piedmontese + GuiName "Piedmontese" + HasGuiSupport true + BabelName piedmontese + PolyglossiaName piedmontese + QuoteStyle french + Encoding iso8859-15 + LangCode pms_IT +End + Language polish GuiName "Polish" HasGuiSupport true @@ -868,6 +909,16 @@ Language romanian LangCode ro_RO End +Language romansh + GuiName "Romansh" + HasGuiSupport true + BabelName romansh + PolyglossiaName romansh + QuoteStyle german + Encoding iso8859-15 + LangCode rm_CH +End + Language russian GuiName "Russian" HasGuiSupport true diff --git a/lib/lyx2lyx/lyx_2_3.py b/lib/lyx2lyx/lyx_2_3.py index 001c1cb..59ca13a 100644 --- a/lib/lyx2lyx/lyx_2_3.py +++ b/lib/lyx2lyx/lyx_2_3.py @@ -261,6 +261,82 @@ def convert_beamer_article_styles(document): return +def revert_bosnian(document): + "Set the document language to English but assure Bosnian output" + + if document.language == "bosnian": + document.language = "english" + i = find_token(document.header, "\\language bosnian", 0) + if i != -1: + document.header[i] = "\\language english" + j = find_token(document.header, "\\language_package default", 0) + if j != -1: + document.header[j] = "\\language_package babel" + k = find_token(document.header, "\\options", 0) + if k != -1: + document.header[k] = document.header[k].replace("\\options", "\\options bosnian,") + else: + l = find_token(document.header, "\\use_default_options", 0) + document.header.insert(l + 1, "\\options bosnian") + + +def revert_macedonian(document): + "Set the document language to English but assure Macedonian output" + + if document.language == "macedonian": + document.language = "english" + i = find_token(document.header, "\\language macedonian", 0) + if i != -1: + document.header[i] = "\\language english" + j = find_token(document.header, "\\language_package default", 0) + if j != -1: + document.header[j] = "\\language_package babel" + k = find_token(document.header, "\\options", 0) + if k != -1: + document.header[k] = document.header[k].replace("\\options", "\\options macedonian,") + else: + l = find_token(document.header, "\\use_default_options", 0) + document.header.insert(l + 1, "\\options macedonian") + + +def revert_piedmontese(document): + "Set the document language to English but assure Piedmontese output" + + if document.language == "piedmontese": + document.language = "english" + i = find_token(document.header, "\\language piedmontese", 0) + if i != -1: + document.header[i] = "\\language english" + j = find_token(document.header, "\\language_package default", 0) + if j != -1: + document.header[j] = "\\language_package babel" + k = find_token(document.header, "\\options", 0) + if k != -1: + document.header[k] = document.header[k].replace("\\options", "\\options piedmontese,") + else: + l = find_token(document.header, "\\use_default_options", 0) + document.header.insert(l + 1, "\\options piedmontese") + + +def revert_romansh(document): + "Set the document language to English but assure Romansh output" + + if document.language == "romansh": + document.language = "english" + i = find_token(document.header, "\\language romansh", 0) + if i != -1: + document.header[i] = "\\language english" + j = find_token(document.header, "\\language_package default", 0) + if j != -1: + document.header[j] = "\\language_package babel" + k = find_token(document.header, "\\options", 0) + if k != -1: + document.header[k] = document.header[k].replace("\\options", "\\options romansh,") + else: + l = find_token(document.header, "\\use_default_options", 0) + document.header.insert(l + 1, "\\options romansh") + + ## # Conversion hub # @@ -270,10 +346,12 @@ convert = [ [509, [convert_microtype]], [510, [convert_dateinset]], [511, [convert_ibranches]], - [512, [convert_beamer_article_styles]] + [512, [convert_beamer_article_styles]], + [513, []] ] revert = [ + [512, [revert_bosnian, revert_macedonian, revert_piedmontese, revert_romansh]], [511, [revert_beamer_article_styles]], [510, [revert_ibranches]], [509, []], diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp index a52927f..37c1015 100644 --- a/src/tex2lyx/Preamble.cpp +++ b/src/tex2lyx/Preamble.cpp @@ -52,17 +52,17 @@ namespace { */ const char * const known_languages[] = {"acadian", "afrikaans", "albanian", "american", "arabic", "arabtex", "australian", "austrian", "bahasa", "bahasai", -"bahasam", "basque", "belarusian", "brazil", "brazilian", "breton", "british", +"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", "galician", "german", "germanb", "georgian", "greek", "hebrew", "hungarian", "icelandic", "indon", "indonesian", "interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin", -"latvian", "lithuanian", "lowersorbian", "lsorbian", "magyar", "malay", "meyalu", +"latvian", "lithuanian", "lowersorbian", "lsorbian", "macedonian", "magyar", "malay", "meyalu", "mongolian", "naustrian", "newzealand", "ngerman", "ngermanb", "norsk", "nswissgerman", -"nynorsk", "polutonikogreek", "polish", "portuges", "portuguese", "romanian", "russian", -"russianb", "samin", "scottish", "serbian", "serbian-latin", "slovak", -"slovene", "spanish", "swedish", "swissgerman", "thai", "turkish", "turkmen", +"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", "vietnam", "welsh", 0}; @@ -73,17 +73,17 @@ const char * const known_languages[] = {"acadian", "afrikaans", "albanian", */ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian", "american", "arabic_arabi", "arabic_arabtex", "australian", "austrian", "bahasa", "bahasa", -"bahasam", "basque", "belarusian", "brazilian", "brazilian", "breton", "british", +"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", "galician", "german", "german", "georgian", "greek", "hebrew", "magyar", "icelandic", "bahasa", "bahasa", "interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin", -"latvian", "lithuanian", "lowersorbian", "lowersorbian", "magyar", "bahasam", "bahasam", +"latvian", "lithuanian", "lowersorbian", "lowersorbian", "macedonian", "magyar", "bahasam", "bahasam", "mongolian", "naustrian", "newzealand", "ngerman", "ngerman", "norsk", "german-ch", -"nynorsk", "polutonikogreek", "polish", "portuguese", "portuguese", "romanian", "russian", -"russian", "samin", "scottish", "serbian", "serbian-latin", "slovak", -"slovene", "spanish", "swedish", "german-ch-old", "thai", "turkish", "turkmen", +"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", "vietnamese", "welsh", 0}; @@ -100,17 +100,18 @@ const char * const known_english_quotes_languages[] = {"american", "australian", /// languages with french quotes (.lyx names) const char * const known_french_quotes_languages[] = {"albanian", "arabic_arabi", "arabic_arabtex", "basque", "canadien", "catalan", "french", -"galician", "greek", "italian", "norsk", "nynorsk", "polutonikogreek", +"galician", "greek", "italian", "norsk", "nynorsk", "piedmontese", "polutonikogreek", "russian", "spanish", "spanish-mexico", "turkish", "turkmen", "ukrainian", "vietnamese", 0}; /// languages with german quotes (.lyx names) const char * const known_german_quotes_languages[] = {"austrian", "bulgarian", -"czech", "german", "georgian", "icelandic", "lithuanian", "lowersorbian", "naustrian", -"ngerman", "serbian", "serbian-latin", "slovak", "slovene", "uppersorbian", 0}; +"czech", "german", "georgian", "icelandic", "lithuanian", "lowersorbian", "macedonian", +"naustrian", "ngerman", "romansh", "serbian", "serbian-latin", "slovak", "slovene", +"uppersorbian", 0}; /// languages with polish quotes (.lyx names) -const char * const known_polish_quotes_languages[] = {"afrikaans", "croatian", +const char * const known_polish_quotes_languages[] = {"afrikaans", "bosnian", "croatian", "dutch", "estonian", "magyar", "polish", "romanian", 0}; /// languages with swedish quotes (.lyx names) diff --git a/src/version.h b/src/version.h index 561f3ec..0bd47f5 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 512 // spitz: beamer article extension -#define LYX_FORMAT_TEX2LYX 512 +#define LYX_FORMAT_LYX 513 // uwestoehr: support for Bosnian, Piedmontese, Romansh and Macedonian +#define LYX_FORMAT_TEX2LYX 513 #if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX #ifndef _MSC_VER