summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2012-11-23 23:06:10 +0100
committerEike Rathke <erack@redhat.com>2012-11-23 23:09:16 +0100
commitaf60316514f3ae3d4c475819bf86f2af837171e3 (patch)
treeccfbd673bd4a53047a04dad6457d09c7eea1566c /svl
parent37f5b864014e9ad17a561b77ea9f6141650e92ad (diff)
some i18n wrappers with LanguageTag
Change-Id: I2ceaa3159e8669c2c569fa8559c1e061dcad399d
Diffstat (limited to 'svl')
-rw-r--r--svl/inc/svl/ondemand.hxx27
-rw-r--r--svl/inc/svl/zforlist.hxx4
-rw-r--r--svl/source/items/ctypeitm.cxx3
-rw-r--r--svl/source/items/dateitem.cxx2
-rw-r--r--svl/source/items/style.cxx2
-rw-r--r--svl/source/numbers/supservs.cxx2
-rw-r--r--svl/source/numbers/zforfind.cxx4
-rw-r--r--svl/source/numbers/zforlist.cxx46
-rw-r--r--svl/source/numbers/zformat.cxx17
-rw-r--r--svl/source/numbers/zforscan.cxx7
10 files changed, 58 insertions, 56 deletions
diff --git a/svl/inc/svl/ondemand.hxx b/svl/inc/svl/ondemand.hxx
index f724cca95746..70c028f2ef52 100644
--- a/svl/inc/svl/ondemand.hxx
+++ b/svl/inc/svl/ondemand.hxx
@@ -76,8 +76,7 @@ public:
}
OnDemandLocaleDataWrapper(
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext,
- ::com::sun::star::lang::Locale& rLocale,
- LanguageType eLang
+ const LanguageTag& rLanguageTag
)
: pEnglish(0)
, pAny(0)
@@ -85,7 +84,7 @@ public:
, bInitialized(false)
{
pSystem = aSysLocale.GetLocaleDataPtr();
- init( rxContext, rLocale, eLang );
+ init( rxContext, rLanguageTag );
}
~OnDemandLocaleDataWrapper()
{
@@ -99,17 +98,17 @@ public:
void init(
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext,
- ::com::sun::star::lang::Locale& rLocale,
- LanguageType eLang
+ const LanguageTag& rLanguageTag
)
{
m_xContext = rxContext;
- changeLocale( rLocale, eLang );
+ changeLocale( rLanguageTag );
bInitialized = true;
}
- void changeLocale( ::com::sun::star::lang::Locale& rLocale, LanguageType eLang )
+ void changeLocale( const LanguageTag& rLanguageTag )
{
+ LanguageType eLang = rLanguageTag.getLanguageType( false);
switch ( eLang )
{
case LANGUAGE_SYSTEM :
@@ -117,18 +116,18 @@ public:
break;
case LANGUAGE_ENGLISH_US :
if ( !pEnglish )
- pEnglish = new LocaleDataWrapper( m_xContext, rLocale );
+ pEnglish = new LocaleDataWrapper( m_xContext, rLanguageTag );
pCurrent = pEnglish;
break;
default:
if ( !pAny )
{
- pAny = new LocaleDataWrapper( m_xContext, rLocale );
+ pAny = new LocaleDataWrapper( m_xContext, rLanguageTag );
eLastAnyLanguage = eLang;
}
else if ( eLastAnyLanguage != eLang )
{
- pAny->setLocale( rLocale );
+ pAny->setLanguageTag( rLanguageTag );
eLastAnyLanguage = eLang;
}
pCurrent = pAny;
@@ -143,12 +142,12 @@ public:
{
if ( !pAny )
{
- pAny = new LocaleDataWrapper( m_xContext, pCurrent->getLocale() );
+ pAny = new LocaleDataWrapper( m_xContext, pCurrent->getLanguageTag() );
eLastAnyLanguage = eCurrentLanguage;
}
else if ( pCurrent != pAny )
{
- pAny->setLocale( pCurrent->getLocale() );
+ pAny->setLanguageTag( pCurrent->getLanguageTag() );
eLastAnyLanguage = eCurrentLanguage;
}
return pAny;
@@ -198,7 +197,7 @@ public:
void init(
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext,
- ::com::sun::star::lang::Locale& rLocale
+ const ::com::sun::star::lang::Locale& rLocale
)
{
m_xContext = rxContext;
@@ -211,7 +210,7 @@ public:
bInitialized = true;
}
- void changeLocale( ::com::sun::star::lang::Locale& rLocale )
+ void changeLocale( const ::com::sun::star::lang::Locale& rLocale )
{
bValid = false;
aLocale = rLocale;
diff --git a/svl/inc/svl/zforlist.hxx b/svl/inc/svl/zforlist.hxx
index 71e6bbabf6ab..175e4040109f 100644
--- a/svl/inc/svl/zforlist.hxx
+++ b/svl/inc/svl/zforlist.hxx
@@ -795,7 +795,7 @@ public:
private:
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager;
- ::com::sun::star::lang::Locale aLocale;
+ LanguageTag maLanguageTag;
SvNumberFormatTable aFTable; // Table of format keys to format entries
typedef std::map<sal_uInt32, sal_uInt32> DefaultFormatKeysMap;
DefaultFormatKeysMap aDefaultFormatKeys; // Table of default standard to format keys
@@ -965,7 +965,7 @@ public:
//! public for the InputScanner and FormatScanner.
// return current (!) Locale
- inline const ::com::sun::star::lang::Locale& GetLocale() const { return aLocale; }
+ inline const LanguageTag& GetLanguageTag() const { return maLanguageTag; }
// return corresponding Transliteration wrapper
inline const ::utl::TransliterationWrapper* GetTransliteration() const
diff --git a/svl/source/items/ctypeitm.cxx b/svl/source/items/ctypeitm.cxx
index dc15162418df..32944b50e0d4 100644
--- a/svl/source/items/ctypeitm.cxx
+++ b/svl/source/items/ctypeitm.cxx
@@ -157,8 +157,7 @@ SfxItemPresentation CntContentTypeItem::GetPresentation(
if (pIntlWrapper)
(const_cast< CntContentTypeItem * >(this))->_aPresentation
= INetContentTypes::GetPresentation(GetEnumValue(),
- pIntlWrapper->
- getLocale());
+ pIntlWrapper->getLanguageTag().getLocale());
}
if (!_aPresentation.isEmpty())
{
diff --git a/svl/source/items/dateitem.cxx b/svl/source/items/dateitem.cxx
index a4fd0d8ea8c2..bbe8e38b249d 100644
--- a/svl/source/items/dateitem.cxx
+++ b/svl/source/items/dateitem.cxx
@@ -139,7 +139,7 @@ SfxItemPresentation SfxDateTimeItem::GetPresentation
DBG_WARNING("SfxDateTimeItem::GetPresentation():"
" Using default en_US IntlWrapper");
const IntlWrapper aIntlWrapper(
- ::comphelper::getProcessServiceFactory(), LANGUAGE_ENGLISH_US );
+ ::comphelper::getProcessServiceFactory(), LanguageTag( LANGUAGE_ENGLISH_US) );
rText = aIntlWrapper.getLocaleData()->getDate(aDateTime);
rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
rText += aIntlWrapper.getLocaleData()->getTime(aDateTime);
diff --git a/svl/source/items/style.cxx b/svl/source/items/style.cxx
index 1bc6d17e050c..2eb0b8325cce 100644
--- a/svl/source/items/style.cxx
+++ b/svl/source/items/style.cxx
@@ -334,7 +334,7 @@ XubString SfxStyleSheetBase::GetDescription( SfxMapUnit eMetric )
const SfxPoolItem* pItem = aIter.FirstItem();
IntlWrapper aIntlWrapper(comphelper::getProcessServiceFactory(),
- SvtSysLocale().GetLanguageTag().getLocale());
+ SvtSysLocale().GetLanguageTag());
while ( pItem )
{
XubString aItemPresentation;
diff --git a/svl/source/numbers/supservs.cxx b/svl/source/numbers/supservs.cxx
index 1edfbdfb6919..905f2a09b15b 100644
--- a/svl/source/numbers/supservs.cxx
+++ b/svl/source/numbers/supservs.cxx
@@ -206,7 +206,7 @@ void SvNumberFormatsSupplierServiceObject::implEnsureFormatter()
{
// get the office's UI locale
SvtSysLocale aSysLocale;
- Locale aOfficeLocale = aSysLocale.GetLocaleData().getLocale();
+ Locale aOfficeLocale = aSysLocale.GetLocaleData().getLanguageTag().getLocale();
// initi with this locale
Sequence< Any > aFakedInitProps( 1 );
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx
index 9c2239873582..250b89b30bf4 100644
--- a/svl/source/numbers/zforfind.cxx
+++ b/svl/source/numbers/zforfind.cxx
@@ -166,7 +166,7 @@ void ImpSvNumberInputScan::TransformInput( String& rStr )
}
if ( nPos < nLen )
rStr = pFormatter->GetNatNum()->getNativeNumberString( rStr,
- pFormatter->GetLocale(), 0 );
+ pFormatter->GetLanguageTag().getLocale(), 0 );
}
@@ -1751,7 +1751,7 @@ input for the following reasons:
res = false;
if ( aOrgCalendar.Len() )
- pCal->loadCalendar( aOrgCalendar, pLoc->getLocale() ); // restore calendar
+ pCal->loadCalendar( aOrgCalendar, pLoc->getLanguageTag().getLocale() ); // restore calendar
#if NF_TEST_CALENDAR
{
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 608206795f36..a8bc1ca2bf30 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -193,7 +193,8 @@ SvNumberFormatter::SvNumberFormatter(
const Reference< XMultiServiceFactory >& xSMgr,
LanguageType eLang )
:
- xServiceManager( xSMgr )
+ xServiceManager( xSMgr ),
+ maLanguageTag( eLang)
{
ImpConstruct( eLang );
}
@@ -233,10 +234,10 @@ void SvNumberFormatter::ImpConstruct( LanguageType eLang )
eEvalDateFormat = NF_EVALDATEFORMAT_INTL;
nDefaultSystemCurrencyFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
- aLocale = LanguageTag( eLang ).getLocale();
- pCharClass = new CharClass( comphelper::getComponentContext(xServiceManager), aLocale );
- xLocaleData.init( comphelper::getComponentContext(xServiceManager), aLocale, eLang );
- xCalendar.init( comphelper::getComponentContext(xServiceManager), aLocale );
+ maLanguageTag.reset( eLang );
+ pCharClass = new CharClass( comphelper::getComponentContext(xServiceManager), maLanguageTag );
+ xLocaleData.init( comphelper::getComponentContext(xServiceManager), maLanguageTag );
+ xCalendar.init( comphelper::getComponentContext(xServiceManager), maLanguageTag.getLocale() );
xTransliteration.init( comphelper::getComponentContext(xServiceManager), eLang,
::com::sun::star::i18n::TransliterationModules_IGNORE_CASE );
xNatNum.init( xServiceManager );
@@ -266,10 +267,10 @@ void SvNumberFormatter::ChangeIntl(LanguageType eLnge)
{
ActLnge = eLnge;
- aLocale = LanguageTag( eLnge ).getLocale();
- pCharClass->setLocale( aLocale );
- xLocaleData.changeLocale( aLocale, eLnge );
- xCalendar.changeLocale( aLocale );
+ maLanguageTag.reset( eLnge );
+ pCharClass->setLanguageTag( maLanguageTag );
+ xLocaleData.changeLocale( maLanguageTag );
+ xCalendar.changeLocale( maLanguageTag.getLocale() );
xTransliteration.changeLocale( eLnge );
// cached locale data items, initialize BEFORE calling ChangeIntl below
@@ -459,7 +460,8 @@ void SvNumberFormatter::ReplaceSystemCL( LanguageType eOldLanguage )
pStdFormat->SetLastInsertKey( sal_uInt16(nLastKey - nCLOffset) );
// append new system additional formats
- NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(xServiceManager), GetLocale() );
+ NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(xServiceManager),
+ GetLanguageTag().getLocale() );
ImpGenerateAdditionalFormats( nCLOffset, aNumberFormatCode, true );
}
@@ -781,7 +783,8 @@ bool SvNumberFormatter::Load( SvStream& rStream )
// generate additional i18n standard formats for all used locales
LanguageType eOldLanguage = ActLnge;
- NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(xServiceManager), GetLocale() );
+ NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(xServiceManager),
+ GetLanguageTag().getLocale() );
std::vector<sal_uInt16> aList;
GetUsedLanguages( aList );
for ( std::vector<sal_uInt16>::const_iterator it(aList.begin()); it != aList.end(); ++it )
@@ -962,9 +965,8 @@ sal_uInt32 SvNumberFormatter::ImpGenerateCL( LanguageType eLnge, bool bNoAdditio
{ // new CL combination
if (LocaleDataWrapper::areChecksEnabled())
{
- Locale aLoadedLocale = xLocaleData->getLoadedLocale();
- if ( aLoadedLocale.Language != aLocale.Language ||
- aLoadedLocale.Country != aLocale.Country )
+ const LanguageTag& rLoadedLocale = xLocaleData->getLoadedLanguageTag();
+ if ( rLoadedLocale != maLanguageTag )
{
OUString aMsg("SvNumerFormatter::ImpGenerateCL: locales don't match:");
LocaleDataWrapper::outputCheckMessage( xLocaleData->appendLocaleInfo( aMsg ));
@@ -1963,11 +1965,10 @@ String SvNumberFormatter::GetFormatDecimalSep( sal_uInt32 nFormat ) const
aRet = xLocaleData->getNumDecimalSep();
else
{
- ::com::sun::star::lang::Locale aSaveLocale( xLocaleData->getLocale() );
- ::com::sun::star::lang::Locale aTmpLocale( LanguageTag( pFormat->GetLanguage()).getLocale());
- ((SvNumberFormatter*)this)->xLocaleData.changeLocale(aTmpLocale, pFormat->GetLanguage() );
+ LanguageTag aSaveLocale( xLocaleData->getLanguageTag() );
+ ((SvNumberFormatter*)this)->xLocaleData.changeLocale( LanguageTag( pFormat->GetLanguage()) );
aRet = xLocaleData->getNumDecimalSep();
- ((SvNumberFormatter*)this)->xLocaleData.changeLocale( aSaveLocale, eSaveLang );
+ ((SvNumberFormatter*)this)->xLocaleData.changeLocale( aSaveLocale );
}
return aRet;
}
@@ -2214,7 +2215,8 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditio
pFormatScanner->SetConvertMode(false); // switch off for this function
}
- NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(xServiceManager), GetLocale() );
+ NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(xServiceManager),
+ GetLanguageTag().getLocale() );
SvNumberformat* pNewFormat = NULL;
sal_Int32 nIdx;
bool bDefault;
@@ -2665,7 +2667,7 @@ void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset,
return ;
}
sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey();
- rNumberFormatCode.setLocale( GetLocale() );
+ rNumberFormatCode.setLocale( GetLanguageTag().getLocale() );
sal_Int32 j;
// All currencies, this time with [$...] which was stripped in
@@ -3604,7 +3606,7 @@ void SvNumberFormatter::ImpInitCurrencyTable()
LanguageType eSysLang = SvtSysLocale().GetLanguageTag().getLanguageType();
LocaleDataWrapper* pLocaleData = new LocaleDataWrapper(
::comphelper::getProcessComponentContext(),
- SvtSysLocale().GetLanguageTag().getLocale() );
+ SvtSysLocale().GetLanguageTag() );
// get user configured currency
String aConfiguredCurrencyAbbrev;
LanguageType eConfiguredCurrencyLanguage = LANGUAGE_SYSTEM;
@@ -3632,7 +3634,7 @@ void SvNumberFormatter::ImpInitCurrencyTable()
{
LanguageType eLang = LanguageTag( pLocales[nLocale]).getLanguageType( false);
rInstalledLocales.insert( eLang);
- pLocaleData->setLocale( pLocales[nLocale] );
+ pLocaleData->setLanguageTag( LanguageTag( pLocales[nLocale]) );
Sequence< Currency2 > aCurrSeq = pLocaleData->getAllCurrencies();
sal_Int32 nCurrencyCount = aCurrSeq.getLength();
Currency2 const * const pCurrencies = aCurrSeq.getConstArray();
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index b7facc031d44..3ca66ef17e9b 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -3341,7 +3341,8 @@ void SvNumberformat::SwitchToOtherCalendar( OUString& rOrgCalendar,
if ( rCal.getUniqueID() == rGregorian )
{
using namespace ::com::sun::star::i18n;
- ::com::sun::star::uno::Sequence< ::rtl::OUString > xCals = rCal.getAllCalendars( rLoc().getLocale() );
+ ::com::sun::star::uno::Sequence< ::rtl::OUString > xCals = rCal.getAllCalendars(
+ rLoc().getLanguageTag().getLocale() );
sal_Int32 nCnt = xCals.getLength();
if ( nCnt > 1 )
{
@@ -3354,7 +3355,7 @@ void SvNumberformat::SwitchToOtherCalendar( OUString& rOrgCalendar,
rOrgCalendar = rCal.getUniqueID();
fOrgDateTime = rCal.getDateTime();
}
- rCal.loadCalendar( xCals[j], rLoc().getLocale() );
+ rCal.loadCalendar( xCals[j], rLoc().getLanguageTag().getLocale() );
rCal.setDateTime( fOrgDateTime );
break; // for
}
@@ -3370,7 +3371,7 @@ void SvNumberformat::SwitchToGregorianCalendar( const OUString& rOrgCalendar,
const rtl::OUString &rGregorian = Gregorian::get();
if ( rOrgCalendar.getLength() && rCal.getUniqueID() != rGregorian )
{
- rCal.loadCalendar( rGregorian, rLoc().getLocale() );
+ rCal.loadCalendar( rGregorian, rLoc().getLanguageTag().getLocale() );
rCal.setDateTime( fOrgDateTime );
}
}
@@ -3394,7 +3395,7 @@ bool SvNumberformat::ImpFallBackToGregorianCalendar( OUString& rOrgCalendar, dou
{
rOrgCalendar = "";
}
- rCal.loadCalendar( rGregorian, rLoc().getLocale() );
+ rCal.loadCalendar( rGregorian, rLoc().getLanguageTag().getLocale() );
rCal.setDateTime( fOrgDateTime );
return true;
}
@@ -3596,7 +3597,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
aOrgCalendar = rCal.getUniqueID();
fOrgDateTime = rCal.getDateTime();
}
- rCal.loadCalendar( rInfo.sStrArray[i], rLoc().getLocale() );
+ rCal.loadCalendar( rInfo.sStrArray[i], rLoc().getLanguageTag().getLocale() );
rCal.setDateTime( fOrgDateTime );
ImpFallBackToGregorianCalendar( aOrgCalendar, fOrgDateTime );
break;
@@ -3746,7 +3747,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber,
}
if ( aOrgCalendar.getLength() )
{
- rCal.loadCalendar( aOrgCalendar, rLoc().getLocale() ); // restore calendar
+ rCal.loadCalendar( aOrgCalendar, rLoc().getLanguageTag().getLocale() ); // restore calendar
}
return bRes;
}
@@ -3889,7 +3890,7 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
aOrgCalendar = rCal.getUniqueID();
fOrgDateTime = rCal.getDateTime();
}
- rCal.loadCalendar( rInfo.sStrArray[i], rLoc().getLocale() );
+ rCal.loadCalendar( rInfo.sStrArray[i], rLoc().getLanguageTag().getLocale() );
rCal.setDateTime( fOrgDateTime );
ImpFallBackToGregorianCalendar( aOrgCalendar, fOrgDateTime );
break;
@@ -4092,7 +4093,7 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber,
}
if ( aOrgCalendar.getLength() )
{
- rCal.loadCalendar( aOrgCalendar, rLoc().getLocale() ); // restore calendar
+ rCal.loadCalendar( aOrgCalendar, rLoc().getLanguageTag().getLocale() ); // restore calendar
}
return bRes;
}
diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx
index e82eaa01547e..0b8812946c58 100644
--- a/svl/source/numbers/zforscan.cxx
+++ b/svl/source/numbers/zforscan.cxx
@@ -223,9 +223,10 @@ void ImpSvNumberformatScan::SetDependentKeywords()
const LocaleDataWrapper* pLocaleData = pFormatter->GetLocaleData();
// #80023# be sure to generate keywords for the loaded Locale, not for the
// requested Locale, otherwise number format codes might not match
- lang::Locale aLoadedLocale = pLocaleData->getLoadedLocale();
- LanguageType eLang = LanguageTag( aLoadedLocale ).getLanguageType( false);
- NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(pFormatter->GetServiceManager()), aLoadedLocale );
+ const LanguageTag& rLoadedLocale = pLocaleData->getLoadedLanguageTag();
+ LanguageType eLang = rLoadedLocale.getLanguageType( false);
+ NumberFormatCodeWrapper aNumberFormatCode( comphelper::getComponentContext(pFormatter->GetServiceManager()),
+ rLoadedLocale.getLocale() );
i18n::NumberFormatCode aFormat = aNumberFormatCode.getFormatCode( NF_NUMBER_STANDARD );
sNameStandardFormat = lcl_extractStandardGeneralName( aFormat.Code);