summaryrefslogtreecommitdiff
path: root/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2018-06-12 11:50:05 +0200
committerEike Rathke <erack@redhat.com>2018-06-20 20:24:37 +0200
commit261ff0cdf0e89a80f5d2af7ba5a331bc237a0ceb (patch)
tree00aea88431dc91e8fcf9b5a966ef7ca140bd589a /i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
parentec36da3788ffc7007dadc568d00f019c0ea831b4 (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.cxx21
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);