LOK: fix UI language fallback, e.g. zh-HK -> zh-TW

The original author wanted to handle de-CH as special case, but
he wrote a general condition.
- comphelper::LibreOfficeKit::isActive() is redundant, because we
  call SfxViewShell::SetLOKLanguageTag() from LOK.
- AFAIK there are no other, similar cases. We know about only de-CH,
  so let's make it explicit in the condition.
- This fixes UI language setting when the integration asks for zh-HK.
  Previously it falsely fell back to en-US here, instead of zh-TW.

Change-Id: Ie42e09b8e202b654b109ab8d777ab36a5ef56dca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169363
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172332
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
This commit is contained in:
Andras Timar
2024-06-24 01:23:22 +02:00
parent 8843081f91
commit 3968d46e20

View File

@@ -3352,8 +3352,8 @@ void SfxViewShell::SetLOKLanguageTag(const OUString& rBcp47LanguageTag)
LanguageTag aFallbackTag = LanguageTag(getInstalledLocaleForSystemUILanguage(inst, /* bRequestInstallIfMissing */ false, rBcp47LanguageTag), true).makeFallback();
// If we want de-CH, and the de localisation is available, we don't want to use de-DE as then
// the magic in Translate::get() won't turn ess-zet into double s. Possibly other similar cases?
if (comphelper::LibreOfficeKit::isActive() && aTag.getLanguage() == aFallbackTag.getLanguage())
// the magic in Translate::get() won't turn ess-zet into double s.
if (rBcp47LanguageTag == "de-CH")
maLOKLanguageTag = std::move(aTag);
else
maLOKLanguageTag = std::move(aFallbackTag);