summaryrefslogtreecommitdiff
path: root/i18nlangtag
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-08-28 16:21:37 +0200
committerEike Rathke <erack@redhat.com>2013-08-28 17:58:13 +0200
commitadb56fbc7326b99f556683ea1bc73b70ca9ebefd (patch)
tree42eb8d2948f86461f8d89e0a46d7f715e4be20f4 /i18nlangtag
parent4875278bfb0e4463e35063afc20282fc837731df (diff)
include variants in fallback strings
Change-Id: I73024a91740dbfde6df78c5388ae4861a6e44294
Diffstat (limited to 'i18nlangtag')
-rw-r--r--i18nlangtag/source/languagetag/languagetag.cxx25
1 files changed, 25 insertions, 0 deletions
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx
index 8ea944bf8f85..57a87ecfc089 100644
--- a/i18nlangtag/source/languagetag/languagetag.cxx
+++ b/i18nlangtag/source/languagetag/languagetag.cxx
@@ -1175,26 +1175,51 @@ LanguageTag & LanguageTag::makeFallback()
return aVec;
}
aVec.push_back( getBcp47());
+ OUString aVariants( getVariants());
OUString aTmp;
if (hasScript())
{
OUString aScript( getScript());
if (!aCountry.isEmpty())
{
+ if (!aVariants.isEmpty())
+ {
+ aTmp = aLanguage + "-" + aScript + "-" + aCountry + "-" + aVariants;
+ if (aTmp != aVec[0])
+ aVec.push_back( aTmp);
+ }
aTmp = aLanguage + "-" + aScript + "-" + aCountry;
if (aTmp != aVec[0])
aVec.push_back( aTmp);
}
+ if (!aVariants.isEmpty())
+ {
+ aTmp = aLanguage + "-" + aScript + "-" + aVariants;
+ if (aTmp != aVec[0])
+ aVec.push_back( aTmp);
+ }
aTmp = aLanguage + "-" + aScript;
if (aTmp != aVec[0])
aVec.push_back( aTmp);
}
if (!aCountry.isEmpty())
{
+ if (!aVariants.isEmpty())
+ {
+ aTmp = aLanguage + "-" + aCountry + "-" + aVariants;
+ if (aTmp != aVec[0])
+ aVec.push_back( aTmp);
+ }
aTmp = aLanguage + "-" + aCountry;
if (aTmp != aVec[0])
aVec.push_back( aTmp);
}
+ if (!aVariants.isEmpty())
+ {
+ aTmp = aLanguage + "-" + aVariants;
+ if (aTmp != aVec[0])
+ aVec.push_back( aTmp);
+ }
aTmp = aLanguage;
if (aTmp != aVec[0])
aVec.push_back( aTmp);