summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2018-01-03 17:49:25 +0100
committerAndras Timar <andras.timar@collabora.com>2018-03-20 15:50:31 +0100
commit7ff6b33f740ff28d6821863978df1ff82fa7616a (patch)
treeee01ad8e37a0e14920cd8d9769e1b9b35c42adc5
parent23b811466e53a30efde898a6fd9b3a55aff33a38 (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.hxx2
-rw-r--r--include/svl/languageoptions.hxx2
-rw-r--r--sfx2/source/view/viewsh.cxx7
-rw-r--r--svl/source/config/languageoptions.cxx8
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())