diff options
author | Jan Holesovsky <kendy@collabora.com> | 2018-01-03 17:49:25 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2018-03-20 15:50:31 +0100 |
commit | 7ff6b33f740ff28d6821863978df1ff82fa7616a (patch) | |
tree | ee01ad8e37a0e14920cd8d9769e1b9b35c42adc5 | |
parent | 23b811466e53a30efde898a6fd9b3a55aff33a38 (diff) |
lokdialog: Use only one of the installed langpacks when setting locale.
Change-Id: I446775b121b7806a549f4dbbaa1f2dcf019d9bc2
Reviewed-on: https://gerrit.libreoffice.org/47334
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r-- | include/sfx2/viewsh.hxx | 2 | ||||
-rw-r--r-- | include/svl/languageoptions.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/view/viewsh.cxx | 7 | ||||
-rw-r--r-- | svl/source/config/languageoptions.cxx | 8 |
4 files changed, 15 insertions, 4 deletions
diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx index 0c83f5faee15..e7a0f6d7fec1 100644 --- a/include/sfx2/viewsh.hxx +++ b/include/sfx2/viewsh.hxx @@ -344,7 +344,7 @@ public: virtual vcl::Window* GetEditWindowForActiveOLEObj() const override; /// Set the LibreOfficeKit language of this view. - void SetLOKLanguageTag(const OUString& rBcp47LanguageTag) { maLOKLanguageTag = LanguageTag(rBcp47LanguageTag, true); } + void SetLOKLanguageTag(const OUString& rBcp47LanguageTag); /// Get the LibreOfficeKit language of this view. const LanguageTag& GetLOKLanguageTag() const { return maLOKLanguageTag; } }; diff --git a/include/svl/languageoptions.hxx b/include/svl/languageoptions.hxx index f386cb6b0e00..389eae8aa346 100644 --- a/include/svl/languageoptions.hxx +++ b/include/svl/languageoptions.hxx @@ -132,7 +132,7 @@ public: }; OUString SVL_DLLPUBLIC getInstalledLocaleForLanguage(css::uno::Sequence<OUString> const & installed, OUString const & locale); -OUString SVL_DLLPUBLIC getInstalledLocaleForSystemUILanguage(css::uno::Sequence<OUString> const & installed); +OUString SVL_DLLPUBLIC getInstalledLocaleForSystemUILanguage(css::uno::Sequence<OUString> const & installed, const OUString& rPreferredLocale = OUString()); #endif // INCLUDED_SVL_LANGUAGEOPTIONS_HXX diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index ad0fce0a6466..3eb162ffe642 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -57,6 +57,7 @@ #include <vcl/commandinfoprovider.hxx> #include <LibreOfficeKit/LibreOfficeKitEnums.h> +#include <officecfg/Setup.hxx> #include <sfx2/app.hxx> #include <sfx2/viewsh.hxx> #include "viewimp.hxx" @@ -1488,6 +1489,12 @@ vcl::Window* SfxViewShell::GetEditWindowForActiveOLEObj() const return pEditWin; } +void SfxViewShell::SetLOKLanguageTag(const OUString& rBcp47LanguageTag) +{ + css::uno::Sequence<OUString> inst(officecfg::Setup::Office::InstalledLocales::get()->getElementNames()); + maLOKLanguageTag = LanguageTag(getInstalledLocaleForSystemUILanguage(inst, rBcp47LanguageTag), true).makeFallback(); +} + void SfxViewShell::NotifyCursor(SfxViewShell* /*pViewShell*/) const { } diff --git a/svl/source/config/languageoptions.cxx b/svl/source/config/languageoptions.cxx index 9f9fe4513819..faa573069e5c 100644 --- a/svl/source/config/languageoptions.cxx +++ b/svl/source/config/languageoptions.cxx @@ -283,9 +283,13 @@ OUString getInstalledLocaleForLanguage(css::uno::Sequence<OUString> const & inst return OUString(); } -OUString getInstalledLocaleForSystemUILanguage(const css::uno::Sequence<OUString>& rLocaleElementNames) +OUString getInstalledLocaleForSystemUILanguage(const css::uno::Sequence<OUString>& rLocaleElementNames, const OUString& rPreferredLocale) { - OUString locale = getInstalledLocaleForLanguage(rLocaleElementNames, officecfg::System::L10N::UILocale::get()); + OUString aPreferredLocale(rPreferredLocale); + if (aPreferredLocale.isEmpty()) + aPreferredLocale = officecfg::System::L10N::UILocale::get(); + + OUString locale = getInstalledLocaleForLanguage(rLocaleElementNames, aPreferredLocale); if (locale.isEmpty()) locale = getInstalledLocaleForLanguage(rLocaleElementNames, "en-US"); if (locale.isEmpty() && rLocaleElementNames.hasElements()) |