summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
Diffstat (limited to 'i18npool')
-rw-r--r--i18npool/inc/defaultnumberingprovider.hxx1
-rw-r--r--i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx11
2 files changed, 10 insertions, 2 deletions
diff --git a/i18npool/inc/defaultnumberingprovider.hxx b/i18npool/inc/defaultnumberingprovider.hxx
index f3f8082eef55..2bfc9e707d69 100644
--- a/i18npool/inc/defaultnumberingprovider.hxx
+++ b/i18npool/inc/defaultnumberingprovider.hxx
@@ -53,6 +53,7 @@ class DefaultNumberingProvider : public cppu::WeakImplHelper4
void GetCharStrN( sal_Int32 nValue, sal_Int16 nType, rtl::OUString& rStr ) const;
void GetCharStr( sal_Int32 nValue, sal_Int16 nType, rtl::OUString& rStr ) const;
void GetRomanString( sal_Int32 nValue, sal_Int16 nType, rtl::OUString& rStr ) const;
+ void impl_loadTranslit();
public:
DefaultNumberingProvider(
const com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory >& xMSF );
diff --git a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
index 8979a5ffc203..9126162d6f36 100644
--- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
+++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx
@@ -195,9 +195,9 @@ static sal_Unicode lowerLetter[] = {
0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A
};
-DefaultNumberingProvider::DefaultNumberingProvider( const Reference < XMultiServiceFactory >& xMSF ) : xSMgr(xMSF)
+DefaultNumberingProvider::DefaultNumberingProvider( const Reference < XMultiServiceFactory >& xMSF ) : xSMgr(xMSF),translit(NULL)
{
- translit = new TransliterationImpl(xMSF);
+
}
DefaultNumberingProvider::~DefaultNumberingProvider()
@@ -205,6 +205,12 @@ DefaultNumberingProvider::~DefaultNumberingProvider()
delete translit;
}
+void DefaultNumberingProvider::impl_loadTranslit()
+{
+ if ( !translit )
+ translit = new TransliterationImpl(xSMgr);
+}
+
Sequence< Reference<container::XIndexAccess> >
DefaultNumberingProvider::getDefaultOutlineNumberings(const Locale& rLocale ) throw(RuntimeException)
{
@@ -468,6 +474,7 @@ DefaultNumberingProvider::makeNumberingString( const Sequence<beans::PropertyVal
const OUString &tmp = OUString::valueOf( number );
OUString transliteration;
getPropertyByName(aProperties, "Transliteration", sal_True) >>= transliteration;
+ impl_loadTranslit();
translit->loadModuleByImplName(transliteration, aLocale);
result += translit->transliterateString2String(tmp, 0, tmp.getLength());
} catch (Exception& ) {