summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i18nlangtag/source/isolang/mslangid.cxx46
-rw-r--r--include/i18nlangtag/mslangid.hxx37
2 files changed, 54 insertions, 29 deletions
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? */
@@ -107,6 +97,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 )
{
if (nLang == LANGUAGE_NONE)
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: */