summaryrefslogtreecommitdiff
path: root/i18nlangtag/source/languagetag/languagetag.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'i18nlangtag/source/languagetag/languagetag.cxx')
-rw-r--r--i18nlangtag/source/languagetag/languagetag.cxx27
1 files changed, 11 insertions, 16 deletions
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx
index 37e1893c52cd..74a31b84e399 100644
--- a/i18nlangtag/source/languagetag/languagetag.cxx
+++ b/i18nlangtag/source/languagetag/languagetag.cxx
@@ -1148,24 +1148,19 @@ bool LanguageTagImpl::canonicalize()
}
if (mbInitializedLocale)
{
- if (maLocale.Variant.isEmpty())
- meIsLiblangtagNeeded = DECISION_NO; // per definition ll[l][-CC]
+ if (!mbInitializedLangID)
+ {
+ convertLocaleToLang( false);
+ if (bTemporaryLocale || mnLangID == LANGUAGE_DONTKNOW)
+ bTemporaryLangID = true;
+ }
+ if (mnLangID != LANGUAGE_DONTKNOW && mnLangID != LANGUAGE_SYSTEM)
+ meIsLiblangtagNeeded = DECISION_NO; // known locale
else
{
- if (!mbInitializedLangID)
- {
- convertLocaleToLang( false);
- if (bTemporaryLocale || mnLangID == LANGUAGE_DONTKNOW)
- bTemporaryLangID = true;
- }
- if (mnLangID != LANGUAGE_DONTKNOW && mnLangID != LANGUAGE_SYSTEM)
- meIsLiblangtagNeeded = DECISION_NO; // known locale
- else
- {
- const KnownTagSet& rKnowns = getKnowns();
- if (rKnowns.find( maBcp47) != rKnowns.end())
- meIsLiblangtagNeeded = DECISION_NO; // known fallback
- }
+ const KnownTagSet& rKnowns = getKnowns();
+ if (rKnowns.find( maBcp47) != rKnowns.end())
+ meIsLiblangtagNeeded = DECISION_NO; // known fallback
}
// We may have an internal override "canonicalization".
lang::Locale aNew( MsLangId::Conversion::getOverride( maLocale));