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)