diff options
author | Dennis Francis <dennis.francis@collabora.com> | 2020-04-01 20:20:19 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-05-18 17:17:14 +0200 |
commit | be84f24a42ee0b5b94a0daa75cc01c053bb76881 (patch) | |
tree | 494f0409d544bf6122bf96ce97c464ab3a9c6275 /desktop | |
parent | 3c4e4cc92d0850d53b2a875bc4ffd09883521c7f (diff) |
tdf#127158 :lokit: preload liblocaledata_others.so
...even if LOK_WHITELIST_LANGUAGES does not contain an Asian language.
Not preloading this module causes locale-fallbacks for example
when a calc-cell with Asian locale has some date with number-formatting,
LOOL displays the date with the fallback locale(en_US).
(more details in comments)
Change-Id: Id8a31565f7f0f0262c044028f55fdf4fe33ecec8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91510
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/source/lib/init.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index c86b2eb72dd4..ddb42e0f3860 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -93,6 +93,8 @@ #include <com/sun/star/linguistic2/LinguServiceManager.hpp> #include <com/sun/star/linguistic2/XSpellChecker.hpp> +#include <com/sun/star/i18n/Calendar2.hpp> +#include <com/sun/star/i18n/LocaleCalendar2.hpp> #include <com/sun/star/i18n/ScriptType.hpp> #include <com/sun/star/lang/DisposedException.hpp> @@ -5722,6 +5724,14 @@ static void preloadData() } std::cerr << "\n"; + // Hack to load and cache the module liblocaledata_others.so which is not loaded normally + // (when loading dictionaries of just non-Asian locales). Creating a XCalendar4 of one Asian locale + // will cheaply load this missing "others" locale library. Appending an Asian locale in + // LOK_WHITELIST_LANGUAGES env-var also works but at the cost of loading that dictionary. + css::uno::Reference< css::i18n::XCalendar4 > xCal = css::i18n::LocaleCalendar2::create(comphelper::getProcessComponentContext()); + css::lang::Locale aAsianLocale = {"hi", "IN", ""}; + xCal->loadDefaultCalendar(aAsianLocale); + // preload all available thesauri css::uno::Reference<linguistic2::XThesaurus> xThesaurus(xLngSvcMgr->getThesaurus()); css::uno::Reference<linguistic2::XSupportedLocales> xThesLocales(xSpellChecker, css::uno::UNO_QUERY_THROW); |