i18nlangtag/source/isolang/mslangid.cxx |   46 +++++++++++++++++++++++---------
 include/i18nlangtag/mslangid.hxx        |   37 +++++++++++++------------
 2 files changed, 54 insertions(+), 29 deletions(-)

New commits:
commit 20081a8ea052b2f31915bd127c3b282cf5025d59
Author:     Eike Rathke <er...@redhat.com>
AuthorDate: Mon Oct 18 22:02:52 2021 +0200
Commit:     Eike Rathke <er...@redhat.com>
CommitDate: Mon Oct 18 23:23:56 2021 +0200

    Introduce MsLangId::getConfiguredSystemLanguage()
    
    To be used instead of getSystemLanguage() in a subsequent change.
    For details see commit summary of
    
        commit aec5312ffab24236876693d7a8b55843847f2a48
        CommitDate: Mon Oct 18 21:14:24 2021 +0200
    
            Related: tdf#145173 Ensure known supported system and default 
document locale
    
    Change-Id: I5bed125e47c2a03fe2e7a4f84988b2e8841143c1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123766
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins

diff --git a/i18nlangtag/source/isolang/mslangid.cxx 
b/i18nlangtag/source/isolang/mslangid.cxx
index d3bcee020a00..4cc448768f3a 100644
--- a/i18nlangtag/source/isolang/mslangid.cxx
+++ b/i18nlangtag/source/isolang/mslangid.cxx
@@ -81,19 +81,9 @@ LanguageType MsLangId::getRealLanguage( LanguageType nLang )
 {
     LanguageType simplifyLang = simplifySystemLanguages( nLang);
     if (simplifyLang == LANGUAGE_SYSTEM )
-    {
-        if (nConfiguredSystemLanguage == LANGUAGE_SYSTEM)
-            nLang = getSystemLanguage();
-        else
-            nLang = nConfiguredSystemLanguage;
-    }
+        nLang = getConfiguredSystemLanguage();
     else if (simplifyLang == LANGUAGE_HID_HUMAN_INTERFACE_DEVICE)
-    {
-        if (nConfiguredSystemUILanguage == LANGUAGE_SYSTEM)
-            nLang = getSystemUILanguage();
-        else
-            nLang = nConfiguredSystemUILanguage;
-    }
+        nLang = getConfiguredSystemUILanguage();
     else
     {
         /* TODO: would this be useful here? */
@@ -106,6 +96,38 @@ LanguageType MsLangId::getRealLanguage( LanguageType nLang )
 }
 
 
+// static
+LanguageType MsLangId::getConfiguredSystemLanguage()
+{
+    if (nConfiguredSystemLanguage != LANGUAGE_SYSTEM)
+        return nConfiguredSystemLanguage;
+    return getSystemLanguage();
+}
+
+
+// static
+LanguageType MsLangId::getConfiguredSystemUILanguage()
+{
+    if (nConfiguredSystemUILanguage != LANGUAGE_SYSTEM)
+        return nConfiguredSystemUILanguage;
+    return getSystemUILanguage();
+}
+
+
+// static
+LanguageType MsLangId::getSystemLanguage()
+{
+    return getPlatformSystemLanguage();
+}
+
+
+// static
+LanguageType MsLangId::getSystemUILanguage()
+{
+    return getPlatformSystemUILanguage();
+}
+
+
 // static
 LanguageType MsLangId::resolveSystemLanguageByScriptType( LanguageType nLang, 
sal_Int16 nType )
 {
diff --git a/include/i18nlangtag/mslangid.hxx b/include/i18nlangtag/mslangid.hxx
index 9376458bdf6f..4966fde852f3 100644
--- a/include/i18nlangtag/mslangid.hxx
+++ b/include/i18nlangtag/mslangid.hxx
@@ -57,14 +57,31 @@ public:
         return LanguageType((sal_uInt16(nLangID) & ~LANGUAGE_MASK_PRIMARY) >> 
10);
     }
 
+    /** Get the configured system language/locale.
+        If not set yet then getSystemLanguage().
+
+        Prefer this over getSystemLanguage() unless you exactly know why you
+        would not. */
+    static LanguageType getConfiguredSystemLanguage();
+
+    /** Get the configured system UI language/locale.
+        If not set yet then getSystemUILanguage().
+
+        Prefer this over getSystemUILanguage() unless you exactly know why you
+        would not. */
+    static LanguageType getConfiguredSystemUILanguage();
+
+
     /** Language/locale of category LC_CTYPE (on Unix, else the system
         language).
-        Evaluation order: LC_ALL, LC_CTYPE, LANG */
+        Evaluation order: LC_ALL, LC_CTYPE, LANG
+        Note this may return an unknown unsupported locale. */
     static LanguageType getSystemLanguage();
 
     /** Language/locale of category LC_MESSAGES (on Unix, else same as
-        GetSystemLanguage()).
-        Evaluation order: LANGUAGE, LC_ALL, LC_MESSAGES, LANG */
+        getSystemLanguage()).
+        Evaluation order: LANGUAGE, LC_ALL, LC_MESSAGES, LANG
+        Note this may return an unknown unsupported locale. */
     static LanguageType getSystemUILanguage();
 
 
@@ -312,20 +329,6 @@ private:
     I18NLANGTAG_DLLPRIVATE static inline LanguageType simplifySystemLanguages( 
LanguageType nLang );
 };
 
-
-// static
-inline LanguageType MsLangId::getSystemLanguage()
-{
-    return getPlatformSystemLanguage();
-}
-
-
-// static
-inline LanguageType MsLangId::getSystemUILanguage()
-{
-    return getPlatformSystemUILanguage();
-}
-
 #endif // INCLUDED_I18NLANGTAG_MSLANGID_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to