diff options
Diffstat (limited to 'i18npool')
-rw-r--r-- | i18npool/prj/d.lst | 2 | ||||
-rw-r--r-- | i18npool/source/breakiterator/breakiteratorImpl.cxx | 4 | ||||
-rw-r--r-- | i18npool/source/localedata/data/makefile.mk | 211 | ||||
-rw-r--r-- | i18npool/source/localedata/saxparser.cxx | 35 | ||||
-rw-r--r-- | i18npool/source/registerservices/registerservices.cxx | 23 | ||||
-rw-r--r-- | i18npool/source/search/i18nsearch.component | 34 | ||||
-rw-r--r-- | i18npool/source/search/makefile.mk | 8 | ||||
-rw-r--r-- | i18npool/source/search/textsearch.cxx | 19 | ||||
-rw-r--r-- | i18npool/source/transliteration/transliterationImpl.cxx | 1 | ||||
-rwxr-xr-x | i18npool/source/transliteration/transliteration_body.cxx | 273 | ||||
-rw-r--r-- | i18npool/util/i18npool.component | 484 | ||||
-rw-r--r-- | i18npool/util/makefile.mk | 8 |
12 files changed, 682 insertions, 420 deletions
diff --git a/i18npool/prj/d.lst b/i18npool/prj/d.lst index 54aefa732b89..8d27137424a9 100644 --- a/i18npool/prj/d.lst +++ b/i18npool/prj/d.lst @@ -46,3 +46,5 @@ mkdir: %_DEST%\inc%_EXT%\i18npool ..\%__SRC%\lib\libi18npaper*.so %_DEST%\lib%_EXT%\libi18npaper*.so ..\%__SRC%\lib\libi18npaper*.dylib %_DEST%\lib%_EXT%\libi18npaper*.dylib +..\%__SRC%\misc\i18npool.component %_DEST%\xml%_EXT%\i18npool.component +..\%__SRC%\misc\i18nsearch.component %_DEST%\xml%_EXT%\i18nsearch.component diff --git a/i18npool/source/breakiterator/breakiteratorImpl.cxx b/i18npool/source/breakiterator/breakiteratorImpl.cxx index e4e08d42df43..d22203d100c7 100644 --- a/i18npool/source/breakiterator/breakiteratorImpl.cxx +++ b/i18npool/source/breakiterator/breakiteratorImpl.cxx @@ -488,6 +488,10 @@ sal_Int16 BreakIteratorImpl::getScriptClass(sal_uInt32 currentChar) // workaround for Coptic else if ( 0x2C80 <= currentChar && 0x2CE3 >= currentChar) nRet = ScriptType::LATIN; + // work-around for ligatures (see http://www.unicode.org/charts/PDF/UFB00.pdf) + else if ((0xFB00 <= currentChar && currentChar <= 0xFB06) || + (0xFB13 <= currentChar && currentChar <= 0xFB17)) + nRet = ScriptType::LATIN; else { UBlockCode block=ublock_getCode(currentChar); sal_uInt16 i; diff --git a/i18npool/source/localedata/data/makefile.mk b/i18npool/source/localedata/data/makefile.mk index 1ac16a31fe37..1034de7f11bf 100644 --- a/i18npool/source/localedata/data/makefile.mk +++ b/i18npool/source/localedata/data/makefile.mk @@ -39,6 +39,14 @@ LIBTARGET=NO debug!= .ENDIF +.IF "$(OS)" == "WNT" +my_file = file:/// +.ELSE +my_file = file:// +.END + +my_components = sax.inbuild + # --- Settings ----------------------------------------------------- .INCLUDE : settings.mk @@ -62,190 +70,6 @@ LINK_LOCALEDATA_ES_LIB=-l$(SHL2TARGET) # --- Files -------------------------------------------------------- -# Interim files generated by the saxparser executable, for dependencies -MY_MISC_CXXFILES = \ - $(MISC)$/localedata_af_NA.cxx \ - $(MISC)$/localedata_af_ZA.cxx \ - $(MISC)$/localedata_ak_GH.cxx \ - $(MISC)$/localedata_am_ET.cxx \ - $(MISC)$/localedata_ar_DZ.cxx \ - $(MISC)$/localedata_ar_EG.cxx \ - $(MISC)$/localedata_ar_LB.cxx \ - $(MISC)$/localedata_ar_SA.cxx \ - $(MISC)$/localedata_ar_TN.cxx \ - $(MISC)$/localedata_ast_ES.cxx \ - $(MISC)$/localedata_az_AZ.cxx \ - $(MISC)$/localedata_be_BY.cxx \ - $(MISC)$/localedata_bg_BG.cxx \ - $(MISC)$/localedata_bn_IN.cxx \ - $(MISC)$/localedata_bn_BD.cxx \ - $(MISC)$/localedata_br_FR.cxx \ - $(MISC)$/localedata_bs_BA.cxx \ - $(MISC)$/localedata_ca_ES.cxx \ - $(MISC)$/localedata_cs_CZ.cxx \ - $(MISC)$/localedata_cv_RU.cxx \ - $(MISC)$/localedata_cy_GB.cxx \ - $(MISC)$/localedata_da_DK.cxx \ - $(MISC)$/localedata_de_AT.cxx \ - $(MISC)$/localedata_de_CH.cxx \ - $(MISC)$/localedata_de_DE.cxx \ - $(MISC)$/localedata_de_LI.cxx \ - $(MISC)$/localedata_de_LU.cxx \ - $(MISC)$/localedata_dz_BT.cxx \ - $(MISC)$/localedata_ee_GH.cxx \ - $(MISC)$/localedata_el_GR.cxx \ - $(MISC)$/localedata_en_AU.cxx \ - $(MISC)$/localedata_en_BZ.cxx \ - $(MISC)$/localedata_en_CA.cxx \ - $(MISC)$/localedata_en_GB.cxx \ - $(MISC)$/localedata_en_GH.cxx \ - $(MISC)$/localedata_en_IE.cxx \ - $(MISC)$/localedata_en_IN.cxx \ - $(MISC)$/localedata_en_JM.cxx \ - $(MISC)$/localedata_en_NA.cxx \ - $(MISC)$/localedata_en_NZ.cxx \ - $(MISC)$/localedata_en_PH.cxx \ - $(MISC)$/localedata_en_TT.cxx \ - $(MISC)$/localedata_en_US.cxx \ - $(MISC)$/localedata_en_ZA.cxx \ - $(MISC)$/localedata_en_ZW.cxx \ - $(MISC)$/localedata_eo.cxx \ - $(MISC)$/localedata_es_AR.cxx \ - $(MISC)$/localedata_es_BO.cxx \ - $(MISC)$/localedata_es_CL.cxx \ - $(MISC)$/localedata_es_CO.cxx \ - $(MISC)$/localedata_es_CR.cxx \ - $(MISC)$/localedata_es_DO.cxx \ - $(MISC)$/localedata_es_EC.cxx \ - $(MISC)$/localedata_es_ES.cxx \ - $(MISC)$/localedata_es_GT.cxx \ - $(MISC)$/localedata_es_HN.cxx \ - $(MISC)$/localedata_es_MX.cxx \ - $(MISC)$/localedata_es_NI.cxx \ - $(MISC)$/localedata_es_PA.cxx \ - $(MISC)$/localedata_es_PE.cxx \ - $(MISC)$/localedata_es_PR.cxx \ - $(MISC)$/localedata_es_PY.cxx \ - $(MISC)$/localedata_es_SV.cxx \ - $(MISC)$/localedata_es_UY.cxx \ - $(MISC)$/localedata_es_VE.cxx \ - $(MISC)$/localedata_et_EE.cxx \ - $(MISC)$/localedata_eu.cxx \ - $(MISC)$/localedata_fa_IR.cxx \ - $(MISC)$/localedata_fi_FI.cxx \ - $(MISC)$/localedata_fo_FO.cxx \ - $(MISC)$/localedata_fr_BE.cxx \ - $(MISC)$/localedata_fr_CA.cxx \ - $(MISC)$/localedata_fr_CH.cxx \ - $(MISC)$/localedata_fr_FR.cxx \ - $(MISC)$/localedata_fr_LU.cxx \ - $(MISC)$/localedata_fr_MC.cxx \ - $(MISC)$/localedata_fur_IT.cxx \ - $(MISC)$/localedata_fy_NL.cxx \ - $(MISC)$/localedata_ga_IE.cxx \ - $(MISC)$/localedata_gl_ES.cxx \ - $(MISC)$/localedata_gsc_FR.cxx \ - $(MISC)$/localedata_gu_IN.cxx \ - $(MISC)$/localedata_gug_PY.cxx \ - $(MISC)$/localedata_ha_GH.cxx \ - $(MISC)$/localedata_he_IL.cxx \ - $(MISC)$/localedata_hi_IN.cxx \ - $(MISC)$/localedata_hil_PH.cxx \ - $(MISC)$/localedata_hr_HR.cxx \ - $(MISC)$/localedata_hsb_DE.cxx \ - $(MISC)$/localedata_hu_HU.cxx \ - $(MISC)$/localedata_hy_AM.cxx \ - $(MISC)$/localedata_ia.cxx \ - $(MISC)$/localedata_id_ID.cxx \ - $(MISC)$/localedata_is_IS.cxx \ - $(MISC)$/localedata_it_CH.cxx \ - $(MISC)$/localedata_it_IT.cxx \ - $(MISC)$/localedata_ja_JP.cxx \ - $(MISC)$/localedata_ka_GE.cxx \ - $(MISC)$/localedata_kk_KZ.cxx \ - $(MISC)$/localedata_kl_GL.cxx \ - $(MISC)$/localedata_km_KH.cxx \ - $(MISC)$/localedata_kn_IN.cxx \ - $(MISC)$/localedata_ko_KR.cxx \ - $(MISC)$/localedata_ku_TR.cxx \ - $(MISC)$/localedata_ky_KG.cxx \ - $(MISC)$/localedata_la_VA.cxx \ - $(MISC)$/localedata_lb_LU.cxx \ - $(MISC)$/localedata_lg_UG.cxx \ - $(MISC)$/localedata_ln_CD.cxx \ - $(MISC)$/localedata_lo_LA.cxx \ - $(MISC)$/localedata_lt_LT.cxx \ - $(MISC)$/localedata_ltg_LV.cxx \ - $(MISC)$/localedata_lv_LV.cxx \ - $(MISC)$/localedata_mai_IN.cxx \ - $(MISC)$/localedata_mk_MK.cxx \ - $(MISC)$/localedata_ml_IN.cxx \ - $(MISC)$/localedata_mn_MN.cxx \ - $(MISC)$/localedata_mr_IN.cxx \ - $(MISC)$/localedata_ms_MY.cxx \ - $(MISC)$/localedata_mt_MT.cxx \ - $(MISC)$/localedata_my_MM.cxx \ - $(MISC)$/localedata_nb_NO.cxx \ - $(MISC)$/localedata_ne_NP.cxx \ - $(MISC)$/localedata_nl_BE.cxx \ - $(MISC)$/localedata_nl_NL.cxx \ - $(MISC)$/localedata_nn_NO.cxx \ - $(MISC)$/localedata_no_NO.cxx \ - $(MISC)$/localedata_nr_ZA.cxx \ - $(MISC)$/localedata_nso_ZA.cxx \ - $(MISC)$/localedata_oc_FR.cxx \ - $(MISC)$/localedata_om_ET.cxx \ - $(MISC)$/localedata_or_IN.cxx \ - $(MISC)$/localedata_pa_IN.cxx \ - $(MISC)$/localedata_pl_PL.cxx \ - $(MISC)$/localedata_plt_MG.cxx \ - $(MISC)$/localedata_pt_BR.cxx \ - $(MISC)$/localedata_pt_PT.cxx \ - $(MISC)$/localedata_ro_RO.cxx \ - $(MISC)$/localedata_rue_SK.cxx \ - $(MISC)$/localedata_ru_RU.cxx \ - $(MISC)$/localedata_rw_RW.cxx \ - $(MISC)$/localedata_sg_CF.cxx \ - $(MISC)$/localedata_sh_ME.cxx \ - $(MISC)$/localedata_sh_RS.cxx \ - $(MISC)$/localedata_sh_YU.cxx \ - $(MISC)$/localedata_shs_CA.cxx \ - $(MISC)$/localedata_sk_SK.cxx \ - $(MISC)$/localedata_sl_SI.cxx \ - $(MISC)$/localedata_so_SO.cxx \ - $(MISC)$/localedata_sr_ME.cxx \ - $(MISC)$/localedata_sr_RS.cxx \ - $(MISC)$/localedata_sr_YU.cxx \ - $(MISC)$/localedata_ss_ZA.cxx \ - $(MISC)$/localedata_st_ZA.cxx \ - $(MISC)$/localedata_sv_FI.cxx \ - $(MISC)$/localedata_sv_SE.cxx \ - $(MISC)$/localedata_sw_TZ.cxx \ - $(MISC)$/localedata_ta_IN.cxx \ - $(MISC)$/localedata_te_IN.cxx \ - $(MISC)$/localedata_tg_TJ.cxx \ - $(MISC)$/localedata_th_TH.cxx \ - $(MISC)$/localedata_ti_ER.cxx \ - $(MISC)$/localedata_tk_TM.cxx \ - $(MISC)$/localedata_tn_ZA.cxx \ - $(MISC)$/localedata_tpi_PG.cxx \ - $(MISC)$/localedata_tr_TR.cxx \ - $(MISC)$/localedata_ts_ZA.cxx \ - $(MISC)$/localedata_ug_CN.cxx \ - $(MISC)$/localedata_uk_UA.cxx \ - $(MISC)$/localedata_uz_UZ.cxx \ - $(MISC)$/localedata_ve_ZA.cxx \ - $(MISC)$/localedata_vi_VN.cxx \ - $(MISC)$/localedata_wa_BE.cxx \ - $(MISC)$/localedata_xh_ZA.cxx \ - $(MISC)$/localedata_zh_CN.cxx \ - $(MISC)$/localedata_zh_HK.cxx \ - $(MISC)$/localedata_zh_MO.cxx \ - $(MISC)$/localedata_zh_SG.cxx \ - $(MISC)$/localedata_zh_TW.cxx \ - $(MISC)$/localedata_zu_ZA.cxx - - # English Locales SHL1TARGET=localedata_en .IF "$(GUI)" == "OS2" @@ -504,13 +328,28 @@ DEPOBJFILES= \ $(SHL3OBJS) \ $(SHL4OBJS) +# Interim files generated by the saxparser executable, for dependencies +MY_MISC_CXXFILES := $(foreach,i,$(DEPOBJFILES) $(MISC)/$(i:b).cxx) + # --- Targets ------------------------------------------------------ .INCLUDE : target.mk -$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST) +$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST) $(MISC)/saxparser.rdb $(MISC)$/localedata_%.cxx : %.xml - $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ $(BIN)$/$(@:b).rdb $(SOLARBINDIR)$/types.rdb + $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ \ + $(my_file)$(PWD)/$(MISC)/saxparser.rdb $(SOLARBINDIR)$/types.rdb \ + -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(SOLARSHAREDBIN) $(RM) $(BIN)$/$(@:b).rdb +$(MISC)/saxparser.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \ + $(MISC)/saxparser.input \ + $(my_components:^"$(SOLARXMLDIR)/":+".component") + $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \ + $(SOLARENV)/bin/packcomponents.xslt $(MISC)/saxparser.input + +$(MISC)/saxparser.input : + echo \ + '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \ + > $@ diff --git a/i18npool/source/localedata/saxparser.cxx b/i18npool/source/localedata/saxparser.cxx index 9787b9c810a6..5118a827b260 100644 --- a/i18npool/source/localedata/saxparser.cxx +++ b/i18npool/source/localedata/saxparser.cxx @@ -34,7 +34,6 @@ #include "sal/main.h" -#include <com/sun/star/registry/XImplementationRegistration.hpp> #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/xml/sax/SAXParseException.hpp> @@ -339,7 +338,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) { xSMgr = createRegistryServiceFactory( ::rtl::OUString::createFromAscii(argv[4]), - ::rtl::OUString::createFromAscii(argv[5]) ); + ::rtl::OUString::createFromAscii(argv[5]), true ); } catch ( Exception& ) { @@ -347,38 +346,6 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) exit(1); } - Reference < XImplementationRegistration > xReg; - try - { - // Create registration service - Reference < XInterface > x = xSMgr->createInstance( - OUString::createFromAscii( "com.sun.star.registry.ImplementationRegistration" ) ); - xReg = Reference< XImplementationRegistration > ( x , UNO_QUERY ); - } - catch( Exception & ) { - printf( "Couldn't create ImplementationRegistration service\n" ); - exit(1); - } - - OString sTestName; - try - { - // Load dll for the tested component - OUString aDllName = - OUString::createFromAscii( "sax.uno" SAL_DLLEXTENSION ); - xReg->registerImplementation( - OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ), - aDllName, - Reference< XSimpleRegistry > () ); - } - catch( Exception &e ) { - printf( "Couldn't raise sax.uno library!\n" ); - printf( "%s\n" , OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US ).getStr() ); - - exit(1); - } - - //-------------------------------- // parser demo // read xml from a file and count elements diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx index 280e12dfe4f7..0671e5669956 100644 --- a/i18npool/source/registerservices/registerservices.cxx +++ b/i18npool/source/registerservices/registerservices.cxx @@ -580,29 +580,6 @@ void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvType *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } -sal_Bool SAL_CALL component_writeInfo( void* /*_pServiceManager*/, void* _pRegistryKey ) -{ - if (_pRegistryKey) - { - ::com::sun::star::registry::XRegistryKey * pRegistryKey = - reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >( - _pRegistryKey ); - ::com::sun::star::uno::Reference< - ::com::sun::star::registry::XRegistryKey > xNewKey; - - for( const InstancesArray* pArr = aInstances; pArr->pServiceNm; ++pArr ) - { - xNewKey = pRegistryKey->createKey( - ::rtl::OUString::createFromAscii( pArr->pImplementationNm ) ); - xNewKey = xNewKey->createKey( - ::rtl::OUString::createFromAscii( "/UNO/SERVICES" ) ); - xNewKey->createKey( - ::rtl::OUString::createFromAscii( pArr->pServiceNm ) ); - } - } - return sal_True; -} - void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ ) { void* pRet = NULL; diff --git a/i18npool/source/search/i18nsearch.component b/i18npool/source/search/i18nsearch.component new file mode 100644 index 000000000000..6288bcd7c840 --- /dev/null +++ b/i18npool/source/search/i18nsearch.component @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.util.TextSearch_i18n"> + <service name="com.sun.star.util.TextSearch"/> + </implementation> +</component> diff --git a/i18npool/source/search/makefile.mk b/i18npool/source/search/makefile.mk index aed976edd896..372b32a216d1 100644 --- a/i18npool/source/search/makefile.mk +++ b/i18npool/source/search/makefile.mk @@ -76,3 +76,11 @@ DEF1NAME= $(SHL1TARGET) .INCLUDE : target.mk + +ALLTAR : $(MISC)/i18nsearch.component + +$(MISC)/i18nsearch.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + i18nsearch.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt i18nsearch.component diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx index dea4eca2a618..e71e0fc0cd71 100644 --- a/i18npool/source/search/textsearch.cxx +++ b/i18npool/source/search/textsearch.cxx @@ -987,25 +987,6 @@ void SAL_CALL component_getImplementationEnvironment( *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; } -sal_Bool SAL_CALL component_writeInfo( - void* /*_pServiceManager*/, void* _pRegistryKey ) -{ - if (_pRegistryKey) - { - ::com::sun::star::registry::XRegistryKey * pRegistryKey = - reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >( - _pRegistryKey ); - ::com::sun::star::uno::Reference< - ::com::sun::star::registry::XRegistryKey > xNewKey; - - xNewKey = pRegistryKey->createKey( getImplementationName_Static() ); - xNewKey = xNewKey->createKey( - ::rtl::OUString::createFromAscii( "/UNO/SERVICES" ) ); - xNewKey->createKey( getServiceName_Static() ); - } - return sal_True; -} - void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ ) { diff --git a/i18npool/source/transliteration/transliterationImpl.cxx b/i18npool/source/transliteration/transliterationImpl.cxx index dfadecfd5eb7..2109c310b233 100644 --- a/i18npool/source/transliteration/transliterationImpl.cxx +++ b/i18npool/source/transliteration/transliterationImpl.cxx @@ -295,7 +295,6 @@ OUString SAL_CALL TransliterationImpl::transliterate( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, Sequence< sal_Int32 >& offset ) throw(RuntimeException) { - if (numCascade == 0) return inStr; diff --git a/i18npool/source/transliteration/transliteration_body.cxx b/i18npool/source/transliteration/transliteration_body.cxx index b58347826470..43222b7a41eb 100755 --- a/i18npool/source/transliteration/transliteration_body.cxx +++ b/i18npool/source/transliteration/transliteration_body.cxx @@ -35,6 +35,7 @@ #include <comphelper/processfactory.hxx> #include <osl/diagnose.h> +#include <string.h> #include "characterclassificationImpl.hxx" #include "breakiteratorImpl.hxx" @@ -96,7 +97,7 @@ static sal_uInt8 lcl_getMappingTypeForToggleCase( sal_uInt8 nMappingType, sal_Un nRes = MappingTypeLowerToUpper; else { - OSL_ENSURE( nType & 0x01 /* upper case */, "uppercase character expected! 'Toggle case' failed?" ); + // should also work properly for non-upper characters like white spacs, numbers, ... nRes = MappingTypeUpperToLower; } } @@ -330,185 +331,143 @@ Transliteration_titlecase::Transliteration_titlecase() implementationName = "com.sun.star.i18n.Transliteration.Transliteration_titlecase"; } -rtl::OUString SAL_CALL Transliteration_titlecase::transliterate( - const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, - Sequence< sal_Int32 >& /*offset*/ ) - throw(RuntimeException) +#if 0 +struct LigatureData { - Reference< XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory(); - CharacterClassificationImpl aCharClassImpl( xMSF ); - - // possible problem: the locale is not exactly specific for each word in the text... - OUString aRes( aCharClassImpl.toTitle( inStr, startPos, nCount, aLocale ) ); - return aRes; + sal_uInt32 cChar; + sal_Char * pUtf8Text; +}; + +// available Unicode ligatures: +// http://www.unicode.org/charts +// http://www.unicode.org/charts/PDF/UFB00.pdf +static LigatureData aLigatures[] = +{ + { 0x0FB00, "ff" }, + { 0x0FB01, "fi" }, + { 0x0FB02, "fl" }, + { 0x0FB03, "ffi" }, + { 0x0FB04, "ffl" }, + { 0x0FB05, "ft" }, + { 0x0FB06, "st" }, + + { 0x0FB13, "\xD5\xB4\xD5\xB6" }, // Armenian small men now + { 0x0FB14, "\xD5\xB4\xD5\xA5" }, // Armenian small men ech + { 0x0FB15, "\xD5\xB4\xD5\xAB" }, // Armenian small men ini + { 0x0FB16, "\xD5\xBE\xD5\xB6" }, // Armenian small vew now + { 0x0FB17, "\xD5\xB4\xD5\xAD" }, // Armenian small men xeh + { 0x00000, "" } +}; + +static inline bool lcl_IsLigature( sal_uInt32 cChar ) +{ + return (0x0FB00 <= cChar && cChar <= 0x0FB06) || (0x0FB13 <= cChar && cChar <= 0x0FB17); } -Transliteration_sentencecase::Transliteration_sentencecase() +static rtl::OUString lcl_ResolveLigature( sal_uInt32 cChar ) { - nMappingType = MappingTypeToTitle; // though only to be applied to the first word... - transliterationName = "sentence(generic)"; - implementationName = "com.sun.star.i18n.Transliteration.Transliteration_sentencecase"; + rtl::OUString aRes; + if (lcl_IsLigature( cChar )) + { + LigatureData *pFound = NULL; + LigatureData *pData = aLigatures; + while (!pFound && pData->cChar != 0) + { + if (pData->cChar == cChar) + pFound = pData; + ++pData; + } + if (pFound) + aRes = rtl::OUString( pFound->pUtf8Text, strlen( pFound->pUtf8Text ), RTL_TEXTENCODING_UTF8 ); + } + else + aRes = rtl::OUString( &cChar, 1 ); + return aRes; } +#endif // if 0 -rtl::OUString SAL_CALL Transliteration_sentencecase::transliterate( +static rtl::OUString transliterate_titlecase_Impl( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, + const Locale &rLocale, Sequence< sal_Int32 >& offset ) throw(RuntimeException) { - // inspired from Transliteration_body::transliterate - sal_Int32 nOffCount = 0, i; - bool bPoint = true; - if (useOffset) - { - for( i = 0; i < nCount; ++i ) { - sal_Unicode c = inStr.getStr()[ i + startPos ]; - if( sal_Unicode('.') == c || sal_Unicode('!') == c || sal_Unicode('?') == c ) { - bPoint = true; - nOffCount++; - } - else if( unicode::isAlpha( c ) || unicode::isDigit( c ) ) - { - const Mapping* map = 0; - if( bPoint && unicode::isLower( c )) - { - map = &casefolding::getValue(&c, 0, 1, aLocale, MappingTypeLowerToUpper); - bPoint = false; - } - else if (!bPoint && unicode::isUpper( c )) - { - map = &casefolding::getValue(&c, 0, 1, aLocale, MappingTypeUpperToLower); - } - - if(map == 0) - { - nOffCount++; - } - else - { - nOffCount += map->nmap; - } - } - else - { - nOffCount++; - } - } - } - - bPoint = true; - rtl::OUStringBuffer result; + const OUString aText( inStr.copy( startPos, nCount ) ); - if (useOffset) + OUString aRes; + if (aText.getLength() > 0) { - result.ensureCapacity(nOffCount); - if ( nOffCount != offset.getLength() ) - offset.realloc( nOffCount ); - } - - - sal_Int32 j = 0; - sal_Int32 * pArr = offset.getArray(); - for( i = 0; i < nCount; ++i ) { - sal_Unicode c = inStr.getStr()[ i + startPos ]; - if( sal_Unicode('.') == c || sal_Unicode('!') == c || sal_Unicode('?') == c ) { - bPoint = true; - result.append(c); - pArr[j++] = i + startPos; - } - else if( unicode::isAlpha( c ) || unicode::isDigit( c ) ) - { - const Mapping* map = 0; - if( bPoint && unicode::isLower( c )) - { - map = &casefolding::getValue(&c, 0, 1, aLocale, MappingTypeLowerToUpper); - } - else if (!bPoint && unicode::isUpper( c )) - { - map = &casefolding::getValue(&c, 0, 1, aLocale, MappingTypeUpperToLower); - } - - if(map == 0) - { - result.append( c ); - pArr[j++] = i + startPos; - } - else - { - for (sal_Int32 k = 0; k < map->nmap; k++) - { - result.append( map->map[k] ); - pArr[j++] = i + startPos; - } - } - bPoint = false; - } - else + Reference< XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory(); + CharacterClassificationImpl aCharClassImpl( xMSF ); + + // because aCharClassImpl.toTitle does not handle ligatures or but will raise + // an exception we need to handle the first chara manually... + + // we don't want to change surrogates by accident, thuse we use proper code point iteration + sal_Int32 nPos = 0; + sal_uInt32 cFirstChar = aText.iterateCodePoints( &nPos ); + OUString aResolvedLigature( &cFirstChar, 1 ); //lcl_ResolveLigature( cFirstChar ) ); + // toUpper can be used to properly resolve ligatures and characters like + aResolvedLigature = aCharClassImpl.toUpper( aResolvedLigature, 0, aResolvedLigature.getLength(), rLocale ); + // since toTitle will leave all-uppercase text unchanged we first need to + // use toLower to bring possible 2nd and following charas in lowercase + aResolvedLigature = aCharClassImpl.toLower( aResolvedLigature, 0, aResolvedLigature.getLength(), rLocale ); + sal_Int32 nResolvedLen = aResolvedLigature.getLength(); + + // now we can properly use toTitle to get the expected result for the resolved string. + // The rest of the text should just become lowercase. + aRes = aCharClassImpl.toTitle( aResolvedLigature, 0, nResolvedLen, rLocale ); + aRes += aCharClassImpl.toLower( aText, 1, aText.getLength() - 1, rLocale ); + offset.realloc( aRes.getLength() ); + + sal_Int32 *pOffset = offset.getArray(); + sal_Int32 nLen = offset.getLength(); + for (sal_Int32 i = 0; i < nLen; ++i) { - result.append( c ); - pArr[j++] = i + startPos; + sal_Int32 nIdx = 0; + if (i >= nResolvedLen) + nIdx = i - nResolvedLen + 1; + pOffset[i] = nIdx; } } - return result.makeStringAndClear(); +#if OSL_DEBUG_LEVEL > 1 + const sal_Int32 *pCOffset = offset.getConstArray(); + (void) pCOffset; +#endif + + return aRes; } -#if 0 -// TL: alternative implemntation try. But breakiterator has its problem too since -// beginOfSentence does not work as expected with '.'. See comment below. -// For the time being I will leave this code here as a from-scratch sample if the -// breakiterator works better at some point... -rtl::OUString SAL_CALL Transliteration_sentencecase::transliterate( - const OUString& inStr, sal_Int32 nStartPos, sal_Int32 nCount, - Sequence< sal_Int32 >& /*offset*/ ) + +// this function expects to be called on a word-by-word basis, +// namely that startPos points to the first char of the word +rtl::OUString SAL_CALL Transliteration_titlecase::transliterate( + const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, + Sequence< sal_Int32 >& offset ) throw(RuntimeException) { - OUString aRes( inStr.copy( nStartPos, nCount ) ); + return transliterate_titlecase_Impl( inStr, startPos, nCount, aLocale, offset ); +} - if (nStartPos >= 0 && nStartPos < inStr.getLength() && nCount > 0) - { - Reference< XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory(); - BreakIteratorImpl brk( xMSF ); - sal_Int32 nSentenceStart = -1, nOldSentenceStart = -1; - sal_Int32 nPos = nStartPos + nCount - 1; - while (nPos >= nStartPos && nPos != -1) - { - // possible problem: the locale is not exactly specific for each sentence in the text, - // but it is the only one we have... - nOldSentenceStart = nSentenceStart; - nSentenceStart = brk.beginOfSentence( inStr, nPos, aLocale ); - - // since the breakiterator completely ignores '.' characvters as end-of-sentence when - // the next word is lower case we need to take care of that ourself. The drawback: - // la mid-sentence abbreviation like e.g. will now be identified as end-of-sentence. :-( - // Well, at least the other product does it in the same way... - sal_Int32 nFullStopPos = inStr.lastIndexOf( (sal_Unicode)'.', nPos ); - nPos = nSentenceStart; - if (nFullStopPos > 0 && nFullStopPos > nSentenceStart) - { - Boundary aBd2 = brk.nextWord( inStr, nFullStopPos, aLocale, WordType::DICTIONARY_WORD ); - nSentenceStart = aBd2.startPos; - nPos = nFullStopPos; - } +Transliteration_sentencecase::Transliteration_sentencecase() +{ + nMappingType = MappingTypeToTitle; // though only to be applied to the first word... + transliterationName = "sentence(generic)"; + implementationName = "com.sun.star.i18n.Transliteration.Transliteration_sentencecase"; +} - if (nSentenceStart < nOldSentenceStart || nOldSentenceStart == -1) - { - // the sentence start might be a quotation mark or some kind of bracket, thus - // we need the first dictionary word starting or following this position - // Boundary aBd1 = brk.nextWord( inStr, nSentenceStart, aLocale, WordType::DICTIONARY_WORD ); - Boundary aBd2 = brk.getWordBoundary( inStr, nSentenceStart, aLocale, WordType::DICTIONARY_WORD, true ); - // OUString aWord1( inStr.copy( aBd1.startPos, aBd1.endPos - aBd1.startPos + 1 ) ); - OUString aWord2( inStr.copy( aBd2.startPos, aBd2.endPos - aBd2.startPos + 1 ) ); - } - else - break; // prevent endless loop - // continue with previous sentence - if (nPos != -1) - --nPos; - } - } - return aRes; +// this function expects to be called on a sentence-by-sentence basis, +// namely that startPos points to the first word (NOT first char!) in the sentence +rtl::OUString SAL_CALL Transliteration_sentencecase::transliterate( + const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount, + Sequence< sal_Int32 >& offset ) + throw(RuntimeException) +{ + return transliterate_titlecase_Impl( inStr, startPos, nCount, aLocale, offset ); } -#endif + } } } } + diff --git a/i18npool/util/i18npool.component b/i18npool/util/i18npool.component new file mode 100644 index 000000000000..d11606efb6d4 --- /dev/null +++ b/i18npool/util/i18npool.component @@ -0,0 +1,484 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.i18n.BreakIterator"> + <service name="com.sun.star.i18n.BreakIterator"/> + </implementation> + <implementation name="com.sun.star.i18n.BreakIterator_Unicode"> + <service name="com.sun.star.i18n.BreakIterator_Unicode"/> + </implementation> + <implementation name="com.sun.star.i18n.BreakIterator_ja"> + <service name="com.sun.star.i18n.BreakIterator_ja"/> + </implementation> + <implementation name="com.sun.star.i18n.BreakIterator_ko"> + <service name="com.sun.star.i18n.BreakIterator_ko"/> + </implementation> + <implementation name="com.sun.star.i18n.BreakIterator_th"> + <service name="com.sun.star.i18n.BreakIterator_th"/> + </implementation> + <implementation name="com.sun.star.i18n.BreakIterator_zh"> + <service name="com.sun.star.i18n.BreakIterator_zh"/> + </implementation> + <implementation name="com.sun.star.i18n.BreakIterator_zh_TW"> + <service name="com.sun.star.i18n.BreakIterator_zh_TW"/> + </implementation> + <implementation name="com.sun.star.i18n.CalendarImpl"> + <service name="com.sun.star.i18n.LocaleCalendar"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_ROC"> + <service name="com.sun.star.i18n.Calendar_ROC"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_buddhist"> + <service name="com.sun.star.i18n.Calendar_buddhist"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_gengou"> + <service name="com.sun.star.i18n.Calendar_gengou"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_gregorian"> + <service name="com.sun.star.i18n.Calendar_gregorian"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_hanja"> + <service name="com.sun.star.i18n.Calendar_hanja"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_hanja_yoil"> + <service name="com.sun.star.i18n.Calendar_hanja_yoil"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_hijri"> + <service name="com.sun.star.i18n.Calendar_hijri"/> + </implementation> + <implementation name="com.sun.star.i18n.Calendar_jewish"> + <service name="com.sun.star.i18n.Calendar_jewish"/> + </implementation> + <implementation name="com.sun.star.i18n.ChapterCollator"> + <service name="com.sun.star.i18n.ChapterCollator"/> + </implementation> + <implementation name="com.sun.star.i18n.CharacterClassification"> + <service name="com.sun.star.i18n.CharacterClassification"/> + </implementation> + <implementation name="com.sun.star.i18n.CharacterClassification_Unicode"> + <service name="com.sun.star.i18n.CharacterClassification_Unicode"/> + </implementation> + <implementation name="com.sun.star.i18n.Collator"> + <service name="com.sun.star.i18n.Collator"/> + </implementation> + <implementation name="com.sun.star.i18n.Collator_Unicode"> + <service name="com.sun.star.i18n.Collator_Unicode"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier"> + <service name="com.sun.star.i18n.IndexEntrySupplier"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_Unicode"> + <service name="com.sun.star.i18n.IndexEntrySupplier_Unicode"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_asian"> + <service name="com.sun.star.i18n.IndexEntrySupplier_asian"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)"> + <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)"> + <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)"> + <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)"> + <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)"> + <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)"/> + </implementation> + <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)"> + <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)"/> + </implementation> + <implementation name="com.sun.star.i18n.InputSequenceChecker"> + <service name="com.sun.star.i18n.InputSequenceChecker"/> + </implementation> + <implementation name="com.sun.star.i18n.InputSequenceChecker_hi"> + <service name="com.sun.star.i18n.InputSequenceChecker_hi"/> + </implementation> + <implementation name="com.sun.star.i18n.InputSequenceChecker_th"> + <service name="com.sun.star.i18n.InputSequenceChecker_th"/> + </implementation> + <implementation name="com.sun.star.i18n.LocaleData"> + <service name="com.sun.star.i18n.LocaleData"/> + </implementation> + <implementation name="com.sun.star.i18n.NativeNumberSupplier"> + <service name="com.sun.star.i18n.NativeNumberSupplier"/> + </implementation> + <implementation name="com.sun.star.i18n.NumberFormatCodeMapper"> + <service name="com.sun.star.i18n.NumberFormatMapper"/> + </implementation> + <implementation name="com.sun.star.i18n.OrdinalSuffix"> + <service name="com.sun.star.i18n.OrdinalSuffix"/> + </implementation> + <implementation name="com.sun.star.i18n.ScriptTypeDetector"> + <service name="com.sun.star.i18n.ScriptTypeDetector"/> + </implementation> + <implementation name="com.sun.star.i18n.TextConversion"> + <service name="com.sun.star.i18n.TextConversion"/> + </implementation> + <implementation name="com.sun.star.i18n.TextConversion_ko"> + <service name="com.sun.star.i18n.TextConversion_ko"/> + </implementation> + <implementation name="com.sun.star.i18n.TextConversion_zh"> + <service name="com.sun.star.i18n.TextConversion_zh"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration"> + <service name="com.sun.star.i18n.Transliteration"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumEastIndic_ar"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumFullwidth"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumHangul_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumIndic_ar"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumIndic_hi"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumKanjiShort_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumKanjiTraditional_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumLower_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumLower_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumLower_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumUpper_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumUpper_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNumUpper_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.CharToNum_th"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.FULLWIDTHKATAKANA_HALFWIDTHKATAKANA"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.FULLWIDTH_HALFWIDTH"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.FULLWIDTH_HALFWIDTH_LIKE_ASC"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.HALFWIDTHKATAKANA_FULLWIDTHKATAKANA"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.HALFWIDTH_FULLWIDTH"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.HALFWIDTH_FULLWIDTH_LIKE_JIS"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.HIRAGANA_KATAKANA"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.IGNORE_CASE"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.IGNORE_KANA"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.IGNORE_WIDTH"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.KATAKANA_HIRAGANA"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.LOWERCASE_UPPERCASE"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharEastIndic_ar"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharFullwidth"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharHalfwidth"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharHangul_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharIndic_ar"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharIndic_hi"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharKanjiShort_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharKanjiTraditional_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharLower_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharLower_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharLower_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharUpper_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharUpper_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToCharUpper_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToChar_th"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextAIUFullWidth_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextAIUHalfWidth_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextCircledNumber"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextDate_zh"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextDiZi_zh"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextFormalHangul_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextFormalLower_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextFormalUpper_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulCircledJamo_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulCircledSyllable_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulJamo_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulSyllable_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextIROHAFullWidth_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextIROHAHalfWidth_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextInformalHangul_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextInformalLower_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextInformalUpper_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiLongModern_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiLongTraditional_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiShortModern_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiShortTraditional_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextLower_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextLower_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextTianGan_zh"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextUpper_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.NumToTextUpper_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.SENTENCE_CASE"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TITLE_CASE"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TOGGLE_CASE"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToChuyin_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumFormalHangul_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumFormalLower_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumFormalUpper_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumInformalHangul_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumInformalLower_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumInformalUpper_ko"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumKanjiLongModern_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumKanjiLongTraditional_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumLower_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumLower_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumUpper_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToNumUpper_zh_TW"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.TextToPinyin_zh_CN"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.UPPERCASE_LOWERCASE"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreBaFa_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreHyuByu_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreIandEfollowedByYa_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreIterationMark_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreKana"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreKiKuFollowedBySa_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreMiddleDot_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreMinusSign_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreProlongedSoundMark_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreSeZe_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreSeparator_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreSize_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreSpace_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreTiJi_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreTraditionalKana_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreTraditionalKanji_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.ignoreZiZu_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.largeToSmall_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.i18n.Transliteration.smallToLarge_ja_JP"> + <service name="com.sun.star.i18n.Transliteration.l10n"/> + </implementation> + <implementation name="com.sun.star.text.DefaultNumberingProvider"> + <service name="com.sun.star.text.DefaultNumberingProvider"/> + </implementation> +</component> diff --git a/i18npool/util/makefile.mk b/i18npool/util/makefile.mk index 57f802be62fe..8c9f1a83b2c0 100644 --- a/i18npool/util/makefile.mk +++ b/i18npool/util/makefile.mk @@ -79,3 +79,11 @@ SHL1STDLIBS= \ # --- Targets ------------------------------------------------------------ .INCLUDE : target.mk + +ALLTAR : $(MISC)/i18npool.component + +$(MISC)/i18npool.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + i18npool.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt i18npool.component |