Some time ago I could encourage the person offering support for Piedmontese via a separate LaTeX package to merge his package to a one of the new babel system. Now there is the babel-piedmontese package at CTAN and it is in TeXLive 2016.

So it is time to support the language also in LyX. The attached patch does this.

regards Uwe
 development/FORMAT       |  4 ++++
 lib/languages            | 10 ++++++++++
 lib/lyx2lyx/lyx_2_3.py   | 23 ++++++++++++++++++++++-
 src/tex2lyx/Preamble.cpp | 10 +++++-----
 src/version.h            |  4 ++--
 5 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/development/FORMAT b/development/FORMAT
index 902c145..3c9d4d1 100644
--- a/development/FORMAT
+++ b/development/FORMAT
@@ -11,6 +11,10 @@ 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:
+         \lang piedmontese
+
 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..8f1f402 100644
--- a/lib/languages
+++ b/lib/languages
@@ -837,6 +837,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
diff --git a/lib/lyx2lyx/lyx_2_3.py b/lib/lyx2lyx/lyx_2_3.py
index 001c1cb..0b4c293 100644
--- a/lib/lyx2lyx/lyx_2_3.py
+++ b/lib/lyx2lyx/lyx_2_3.py
@@ -261,6 +261,25 @@ def convert_beamer_article_styles(document):
         return
 
 
+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")
+
+
 ##
 # Conversion hub
 #
@@ -270,10 +289,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_piedmontese]],
            [511, [revert_beamer_article_styles]],
            [510, [revert_ibranches]],
            [509, []],
diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp
index a52927f..b0f84bc 100644
--- a/src/tex2lyx/Preamble.cpp
+++ b/src/tex2lyx/Preamble.cpp
@@ -60,8 +60,8 @@ const char * const known_languages[] = {"acadian", 
"afrikaans", "albanian",
 "interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin",
 "latvian", "lithuanian", "lowersorbian", "lsorbian", "magyar", "malay", 
"meyalu",
 "mongolian", "naustrian", "newzealand", "ngerman", "ngermanb", "norsk", 
"nswissgerman",
-"nynorsk", "polutonikogreek", "polish", "portuges", "portuguese", "romanian", 
"russian",
-"russianb", "samin", "scottish", "serbian", "serbian-latin", "slovak",
+"nynorsk", "piedmontese", "polutonikogreek", "polish", "portuges", 
"portuguese",
+"romanian", "russian", "russianb", "samin", "scottish", "serbian", 
"serbian-latin", "slovak",
 "slovene", "spanish", "swedish", "swissgerman", "thai", "turkish", "turkmen",
 "ukraineb", "ukrainian", "uppersorbian", "UKenglish", "USenglish", "usorbian",
 "vietnam", "welsh",
@@ -81,8 +81,8 @@ const char * const known_coded_languages[] = {"french", 
"afrikaans", "albanian",
 "interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin",
 "latvian", "lithuanian", "lowersorbian", "lowersorbian", "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",
+"nynorsk", "piedmontese", "polutonikogreek", "polish", "portuguese", 
"portuguese",
+"romanian", "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",
@@ -100,7 +100,7 @@ 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};
 
diff --git a/src/version.h b/src/version.h
index 561f3ec..0b18df3 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 Piedmontese
+#define LYX_FORMAT_TEX2LYX 513
 
 #if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
 #ifndef _MSC_VER

Reply via email to