i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx |   45 
++++++++++
 include/editeng/svxenum.hxx                                           |    6 +
 offapi/com/sun/star/style/NumberingType.idl                           |   29 
++++++
 svx/inc/numberingtype.hrc                                             |    4 
 sw/source/filter/ww8/docxattributeoutput.cxx                          |    4 
 writerfilter/source/dmapper/DomainMapper_Impl.cxx                     |    6 +
 6 files changed, 92 insertions(+), 2 deletions(-)

New commits:
commit 62b5dd31ffdad49f36aef2b7f6f1c54bcbf320ec
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Thu Mar 30 15:15:01 2023 +0200
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Wed Apr 5 13:57:03 2023 +0200

    tdf#148906: Ukrainian letters miss in bullets and numbering dialog
    
    Change-Id: Ieef2b2a7052da342709baf298b618d2c29fa3e43
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149768
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>

diff --git 
a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx 
b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
index 29be9856a02d..1caca1b3d054 100644
--- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
+++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
@@ -200,6 +200,24 @@ const sal_Unicode table_CyrillicLowerLetter_sr[] = {
     0x0444, 0x0445, 0x0446, 0x0447, 0x045F, 0x0448
 };
 
+// Ukrainian Cyrillic upper letters
+const sal_Unicode table_CyrillicUpperLetter_uk[] = {
+    0x0410, 0x0411, 0x0412, 0x0413, 0x0490, 0x0414, 0x0415, 0x0404,
+    0x0416, 0x0417, 0x0418, 0x0406, 0x0407, 0x0419, 0x041A, 0x041B,
+    0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423,
+    0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042C, 0x042E,
+    0x042F
+};
+
+// Ukrainian cyrillic lower letters
+const sal_Unicode table_CyrillicLowerLetter_uk[] = {
+    0x0430, 0x0431, 0x0432, 0x0433, 0x0491, 0x0434, 0x0435, 0x0454,
+    0x0436, 0x0437, 0x0438, 0x0456, 0x0457, 0x0439, 0x043A, 0x043B,
+    0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443,
+    0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044C, 0x044E,
+    0x044F
+};
+
 const sal_Unicode table_GreekUpperLetter[] = {
     0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x03DB, 0x0396, 0x0397, 0x0398,
     0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, 0x03DF,
@@ -958,6 +976,29 @@ DefaultNumberingProvider::makeNumberingString( const 
Sequence<beans::PropertyVal
                       result); // 1=>a, 2=>b, ..., 27=>z, 28=>aa, 29=>bb, ...
               break;
 
+         case CHARS_CYRILLIC_UPPER_LETTER_UK:
+              lcl_formatChars2( table_CyrillicUpperLetter_uk,
+                      table_CyrillicLowerLetter_uk,
+                      SAL_N_ELEMENTS(table_CyrillicLowerLetter_uk), number-1,
+                      result);
+              break;
+         case CHARS_CYRILLIC_LOWER_LETTER_UK:
+              lcl_formatChars( table_CyrillicLowerLetter_uk,
+                      SAL_N_ELEMENTS(table_CyrillicLowerLetter_uk), number-1,
+                      result);
+              break;
+         case CHARS_CYRILLIC_UPPER_LETTER_N_UK:
+              lcl_formatChars3( table_CyrillicUpperLetter_uk,
+                      table_CyrillicLowerLetter_uk,
+                      SAL_N_ELEMENTS(table_CyrillicLowerLetter_uk), number-1,
+                      result);
+              break;
+         case CHARS_CYRILLIC_LOWER_LETTER_N_UK:
+              lcl_formatChars1( table_CyrillicLowerLetter_uk,
+                      SAL_N_ELEMENTS(table_CyrillicLowerLetter_uk), number-1,
+                      result);
+              break;
+
           case CHARS_GREEK_LOWER_LETTER:
               lcl_formatCharsGR( table_GreekLowerLetter, number, result);
               break;
@@ -1100,6 +1141,10 @@ const Supported_NumberingType aSupportedTypes[] =
         {style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_SR,   S_CYR_A ", " 
S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_A S_CYR_B ", ... (sr)", LANG_ALL},
         {style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_SR, C_CYR_A ", " 
C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_B S_CYR_B ", ... (sr)", LANG_ALL},
         {style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_SR, S_CYR_A ", " 
S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_B S_CYR_B ", ... (sr)", LANG_ALL},
+        {style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_UK,   C_CYR_A ", " 
C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_A S_CYR_B ", ... (uk)", LANG_ALL},
+        {style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_UK,   S_CYR_A ", " 
S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_A S_CYR_B ", ... (uk)", LANG_ALL},
+        {style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_UK, C_CYR_A ", " 
C_CYR_B ", .., " C_CYR_A S_CYR_A ", " C_CYR_B S_CYR_B ", ... (uk)", LANG_ALL},
+        {style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_UK, S_CYR_A ", " 
S_CYR_B ", .., " S_CYR_A S_CYR_A ", " S_CYR_B S_CYR_B ", ... (uk)", LANG_ALL},
         {style::NumberingType::CHARS_PERSIAN,        nullptr, LANG_CTL},
         {style::NumberingType::CHARS_PERSIAN_WORD,   nullptr, LANG_CTL},
         {style::NumberingType::SZEKELY_ROVAS,        nullptr, LANG_CTL},
diff --git a/include/editeng/svxenum.hxx b/include/editeng/svxenum.hxx
index 6c02165607d7..48c3ed48eac1 100644
--- a/include/editeng/svxenum.hxx
+++ b/include/editeng/svxenum.hxx
@@ -210,7 +210,11 @@ enum SvxNumType : sal_Int16
     SVX_NUM_ARABIC_ZERO3          = css::style::NumberingType::ARABIC_ZERO3,
     SVX_NUM_ARABIC_ZERO4          = css::style::NumberingType::ARABIC_ZERO4,
     SVX_NUM_ARABIC_ZERO5          = css::style::NumberingType::ARABIC_ZERO5,
-    SVX_NUM_SZEKELY_ROVAS         = css::style::NumberingType::SZEKELY_ROVAS
+    SVX_NUM_SZEKELY_ROVAS         = css::style::NumberingType::SZEKELY_ROVAS,
+    SVX_NUM_CHARS_CYRILLIC_UPPER_LETTER_UK = 
css::style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_UK,
+    SVX_NUM_CHARS_CYRILLIC_LOWER_LETTER_UK = 
css::style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_UK,
+    SVX_NUM_CHARS_CYRILLIC_UPPER_LETTER_N_UK = 
css::style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_UK,
+    SVX_NUM_CHARS_CYRILLIC_LOWER_LETTER_N_UK = 
css::style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_UK
 };
 
 #endif
diff --git a/offapi/com/sun/star/style/NumberingType.idl 
b/offapi/com/sun/star/style/NumberingType.idl
index de4c7638ed4a..a7414b336e93 100644
--- a/offapi/com/sun/star/style/NumberingType.idl
+++ b/offapi/com/sun/star/style/NumberingType.idl
@@ -546,6 +546,35 @@ published constants NumberingType
      */
     const short NUMBER_LEGAL_KO = 71;
 
+    /** Numbering in Cyrillic alphabet upper case letters
+
+        @since LibreOffice 7.6
+        See https://en.wikipedia.org/wiki/Ukrainian_alphabet
+      */
+    const short CHARS_CYRILLIC_UPPER_LETTER_UK = 72;
+
+    /** Numbering in Cyrillic alphabet lower case letters
+
+        @since LibreOffice 7.6
+        See https://en.wikipedia.org/wiki/Ukrainian_alphabet
+      */
+    const short CHARS_CYRILLIC_LOWER_LETTER_UK = 73;
+
+    /** Numbering in Cyrillic alphabet upper case letters
+
+        @since LibreOffice 7.6
+        See https://en.wikipedia.org/wiki/Ukrainian_alphabet
+      */
+    const short CHARS_CYRILLIC_UPPER_LETTER_N_UK = 74;
+
+    /** Numbering in Cyrillic alphabet upper case letters
+
+        @since LibreOffice 7.6
+        See https://en.wikipedia.org/wiki/Ukrainian_alphabet
+      */
+    const short CHARS_CYRILLIC_LOWER_LETTER_N_UK = 75;
+
+
 };
 
 
diff --git a/svx/inc/numberingtype.hrc b/svx/inc/numberingtype.hrc
index 4e2ab1f6d886..f137b7fb1795 100644
--- a/svx/inc/numberingtype.hrc
+++ b/svx/inc/numberingtype.hrc
@@ -56,6 +56,10 @@ const std::pair<TranslateId, int> 
RID_SVXSTRARY_NUMBERINGTYPE[] =
     { /* CHARS_CYRILLIC_LOWER_LETTER_SR   */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "а, б, .., аа, аб, ... (Serbian)") ,     49 
},
     { /* CHARS_CYRILLIC_UPPER_LETTER_N_SR */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "А, Б, .., Аа, Бб, ... (Serbian)") ,     50 
},
     { /* CHARS_CYRILLIC_LOWER_LETTER_N_SR */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "а, б, .., аа, бб, ... (Serbian)") ,     51 
},
+    { /* CHARS_CYRILLIC_UPPER_LETTER_UK   */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "А, Б, .., Аа, Аб, ... (Ukrainian)") ,     
72 },
+    { /* CHARS_CYRILLIC_LOWER_LETTER_UK   */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "а, б, .., аа, аб, ... (Ukrainian)") ,     
73 },
+    { /* CHARS_CYRILLIC_UPPER_LETTER_N_UK */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "А, Б, .., Аа, Бб, ... (Ukrainian)") ,     
74 },
+    { /* CHARS_CYRILLIC_LOWER_LETTER_N_UK */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "а, б, .., аа, бб, ... (Ukrainian)") ,     
75 },
     { /* CHARS_GREEK_UPPER_LETTER         */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "Α, Β, Γ, ... (Greek)"),    52 },
     { /* CHARS_GREEK_LOWER_LETTER         */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "α, β, γ, ... (Greek)"),    53 },
     { /* NUMBER_HEBREW                    */ 
NC_("RID_SVXSTRARY_NUMBERINGTYPE", "א...י, יא...כ, ...") ,                  56 
},
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index dadd4125c0fe..2283c398f94f 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -6966,6 +6966,10 @@ static OString lcl_ConvertNumberingType(sal_Int16 
nNumberingType, const SfxItemS
         case style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_SR:
         case style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_SR:
         case style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_SR:
+        case style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_UK:
+        case style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_UK:
+        case style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_UK:
+        case style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_UK:
 */
         default: break;
     }
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx 
b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 1ca1a0b24e52..ddc73611f94a 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4587,7 +4587,11 @@ style::NumberingType::
     CHARS_CYRILLIC_UPPER_LETTER_SR
     CHARS_CYRILLIC_LOWER_LETTER_SR
     CHARS_CYRILLIC_UPPER_LETTER_N_SR
-    CHARS_CYRILLIC_LOWER_LETTER_N_SR*/
+    CHARS_CYRILLIC_LOWER_LETTER_N_SR
+    CHARS_CYRILLIC_UPPER_LETTER_UK
+    CHARS_CYRILLIC_LOWER_LETTER_UK
+    CHARS_CYRILLIC_UPPER_LETTER_N_UK
+    CHARS_CYRILLIC_LOWER_LETTER_N_UK*/
 
         };
         for(const NumberingPairs& rNumberingPair : aNumberingPairs)

Reply via email to