diff options
author | László Németh <nemeth@numbertext.org> | 2018-06-12 11:50:05 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2018-06-20 20:24:37 +0200 |
commit | 261ff0cdf0e89a80f5d2af7ba5a331bc237a0ceb (patch) | |
tree | 00aea88431dc91e8fcf9b5a966ef7ca140bd589a /i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx | |
parent | ec36da3788ffc7007dadc568d00f019c0ea831b4 (diff) |
NatNum12: fix and add capitalization prefixes, tdf#115007 follow-up
Limit NatNum12 conversion only for the selected parts of the
date format (this bug – double calls of getNumberText – was hidden
by the space prefix " " and empty return values at the first calls,
resulting unchanged dates yet).
New prefixes: "capitalize", "upper" and "title" to handle optional
capitalization. (In Calc, it was not possible to format the result of
NatNum formatting, but some languages often need capitalization
or title case to format numbers and currencies.)
Thanks code clean up using enum WhichCasing to Eike Rathke.
Change-Id: I5fceb784930e6bc6d376116f5a42ad49cd248a54
Reviewed-on: https://gerrit.libreoffice.org/55681
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx')
-rw-r--r-- | i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx index d363407c19fe..99cf26fe60cb 100644 --- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx +++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx @@ -584,7 +584,6 @@ DefaultNumberingProvider::makeNumberingString( const Sequence<beans::PropertyVal sal_Int16 tableSize = 0; const sal_Unicode *table = nullptr; // initialize to avoid compiler warning bool bRecycleSymbol = false; - bool bCapitalize = false; OUString sNatNumParams; Locale locale; @@ -638,21 +637,18 @@ DefaultNumberingProvider::makeNumberingString( const Sequence<beans::PropertyVal break; case TEXT_NUMBER: // ordinal indicators (1st, 2nd, 3rd, ...) natNum = NativeNumberMode::NATNUM12; - sNatNumParams = "ordinal-number"; + sNatNumParams = "capitalize ordinal-number"; locale = aLocale; - bCapitalize = true; break; case TEXT_CARDINAL: // cardinal number names (One, Two, Three, ...) natNum = NativeNumberMode::NATNUM12; - sNatNumParams = "cardinal"; + sNatNumParams = "capitalize"; locale = aLocale; - bCapitalize = true; break; case TEXT_ORDINAL: // ordinal number names (First, Second, Third, ...) natNum = NativeNumberMode::NATNUM12; - sNatNumParams = "ordinal"; + sNatNumParams = "capitalize ordinal"; locale = aLocale; - bCapitalize = true; break; case ROMAN_UPPER: result += toRoman( number ); @@ -913,17 +909,8 @@ DefaultNumberingProvider::makeNumberingString( const Sequence<beans::PropertyVal if (natNum) { rtl::Reference<NativeNumberSupplierService> xNatNum(new NativeNumberSupplierService); - OUString aNum = xNatNum->getNativeNumberStringParams(OUString::number(number), locale, + result += xNatNum->getNativeNumberStringParams(OUString::number(number), locale, natNum, sNatNumParams); - if (bCapitalize) - { - if (!xCharClass.is()) - xCharClass = CharacterClassification::create(m_xContext); - // capitalize first letter - result += xCharClass->toTitle(aNum, 0, 1, aLocale) + aNum.copy(1); - } - else - result += aNum; } else if (tableSize) { if ( number > tableSize && !bRecycleSymbol) result += OUString::number( number); |