Kaydet (Commit) 41f02355 authored tarafından Eike Rathke's avatar Eike Rathke

use get*LocaleServiceName

Change-Id: I976d6d565c7970858a5a259199fe14075e4f5d2e
üst 5ef76b39
...@@ -129,39 +129,40 @@ IndexEntrySupplier::getLocaleSpecificIndexEntrySupplier(const Locale& rLocale, c ...@@ -129,39 +129,40 @@ IndexEntrySupplier::getLocaleSpecificIndexEntrySupplier(const Locale& rLocale, c
if (!module.isEmpty() && createLocaleSpecificIndexEntrySupplier(module)) if (!module.isEmpty() && createLocaleSpecificIndexEntrySupplier(module))
return xIES; return xIES;
sal_Int32 l = rLocale.Language.getLength(); bool bLoaded = false;
sal_Int32 c = rLocale.Country.getLength(); if (!aSortAlgorithm.isEmpty())
sal_Int32 v = rLocale.Variant.getLength(); {
sal_Int32 a = aSortAlgorithm.getLength(); // Load service with name <base>_<lang>_<country>_<algorithm>
OUStringBuffer aBuf(l+c+v+a+4); // or <base>_<bcp47>_<algorithm> and fallbacks.
bLoaded = createLocaleSpecificIndexEntrySupplier(
if ((l > 0 && c > 0 && v > 0 && a > 0 && LocaleDataImpl::getFirstLocaleServiceName( rLocale) + "_" + aSortAlgorithm);
// load service with name <base>_<lang>_<country>_<varian>_<algorithm> if (!bLoaded)
createLocaleSpecificIndexEntrySupplier(aBuf.append(rLocale.Language).append(under).append( {
rLocale.Country).append(under).append(rLocale.Variant).append(under).append( ::std::vector< OUString > aFallbacks( LocaleDataImpl::getFallbackLocaleServiceNames( rLocale));
aSortAlgorithm).makeStringAndClear())) || for (::std::vector< OUString >::const_iterator it( aFallbacks.begin()); it != aFallbacks.end(); ++it)
(l > 0 && c > 0 && a > 0 && {
// load service with name <base>_<lang>_<country>_<algorithm> bLoaded = createLocaleSpecificIndexEntrySupplier( *it + "_" + aSortAlgorithm);
createLocaleSpecificIndexEntrySupplier(aBuf.append(rLocale.Language).append(under).append( if (bLoaded)
rLocale.Country).append(under).append(aSortAlgorithm).makeStringAndClear())) || break;
(l > 0 && c > 0 && a > 0 && rLocale.Language.compareToAscii("zh") == 0 && }
(rLocale.Country.compareToAscii("HK") == 0 || if (!bLoaded)
rLocale.Country.compareToAscii("MO") == 0) && {
// if the country code is HK or MO, one more step to try TW.
createLocaleSpecificIndexEntrySupplier(aBuf.append(rLocale.Language).append(under).appendAscii(
"TW").append(under).append(aSortAlgorithm).makeStringAndClear())) ||
(l > 0 && a > 0 &&
// load service with name <base>_<lang>_<algorithm>
createLocaleSpecificIndexEntrySupplier(aBuf.append(rLocale.Language).append(under).append(
aSortAlgorithm).makeStringAndClear())) ||
// load service with name <base>_<algorithm> // load service with name <base>_<algorithm>
(a > 0 && createLocaleSpecificIndexEntrySupplier(aSortAlgorithm)) || bLoaded = createLocaleSpecificIndexEntrySupplier( aSortAlgorithm);
}
}
}
if (!bLoaded)
{
// load default service with name <base>_Unicode // load default service with name <base>_Unicode
createLocaleSpecificIndexEntrySupplier(OUString("Unicode"))) { bLoaded = createLocaleSpecificIndexEntrySupplier( "Unicode");
return xIES; if (!bLoaded)
{
throw RuntimeException(); // could not load any service
} }
} }
throw RuntimeException(); return xIES;
}
} }
OUString SAL_CALL IndexEntrySupplier::getIndexFollowPageWord( sal_Bool bMorePages, OUString SAL_CALL IndexEntrySupplier::getIndexFollowPageWord( sal_Bool bMorePages,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment