diff options
author | Eike Rathke <erack@redhat.com> | 2013-08-28 16:21:37 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-08-28 17:58:13 +0200 |
commit | adb56fbc7326b99f556683ea1bc73b70ca9ebefd (patch) | |
tree | 42eb8d2948f86461f8d89e0a46d7f715e4be20f4 | |
parent | 4875278bfb0e4463e35063afc20282fc837731df (diff) |
include variants in fallback strings
Change-Id: I73024a91740dbfde6df78c5388ae4861a6e44294
-rw-r--r-- | i18nlangtag/source/languagetag/languagetag.cxx | 25 |
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); |