diff options
Diffstat (limited to 'i18npool')
-rw-r--r-- | i18npool/inc/defaultnumberingprovider.hxx | 1 | ||||
-rw-r--r-- | i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx | 11 |
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& ) { |