diff options
author | Eike Rathke <erack@redhat.com> | 2013-09-10 20:15:44 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-09-10 23:04:37 +0200 |
commit | e4c204bdbf5d67be2242301ae380789097cfc7f6 (patch) | |
tree | 8183df259665ab61f9f2a8c642eb46e7f63136b3 | |
parent | c9489f68e8d805376cfbfb67b84ccbc250788773 (diff) |
added ca-ES-valencia fallback to ca-XV fallback strings
Change-Id: Iedc5924cf5100a2e7d014be68dc4897d3c0e76a0
-rw-r--r-- | i18nlangtag/qa/cppunit/test_languagetag.cxx | 7 | ||||
-rw-r--r-- | i18nlangtag/source/languagetag/languagetag.cxx | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/i18nlangtag/qa/cppunit/test_languagetag.cxx b/i18nlangtag/qa/cppunit/test_languagetag.cxx index f3cea3a4ccfd..aace20a3d8ff 100644 --- a/i18nlangtag/qa/cppunit/test_languagetag.cxx +++ b/i18nlangtag/qa/cppunit/test_languagetag.cxx @@ -210,9 +210,12 @@ void TestLanguageTag::testAllTags() CPPUNIT_ASSERT( ca_XV.getScript() == "" ); CPPUNIT_ASSERT( ca_XV.getLanguageAndScript() == "ca" ); ::std::vector< OUString > ca_XV_Fallbacks( ca_XV.getFallbackStrings( true)); - CPPUNIT_ASSERT( ca_XV_Fallbacks.size() == 2); + CPPUNIT_ASSERT( ca_XV_Fallbacks.size() == 5); CPPUNIT_ASSERT( ca_XV_Fallbacks[0] == "ca-XV"); - CPPUNIT_ASSERT( ca_XV_Fallbacks[1] == "ca"); + CPPUNIT_ASSERT( ca_XV_Fallbacks[1] == "ca-ES-valencia"); + CPPUNIT_ASSERT( ca_XV_Fallbacks[2] == "ca-valencia"); + CPPUNIT_ASSERT( ca_XV_Fallbacks[3] == "ca-ES"); + CPPUNIT_ASSERT( ca_XV_Fallbacks[4] == "ca"); CPPUNIT_ASSERT( ca_XV.makeFallback().getBcp47() == "ca-ES-valencia"); } diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx index b35683315640..3e1b33191086 100644 --- a/i18nlangtag/source/languagetag/languagetag.cxx +++ b/i18nlangtag/source/languagetag/languagetag.cxx @@ -1237,8 +1237,16 @@ LanguageTag & LanguageTag::makeFallback() aVec.push_back( aLanguage + "-TW"); else if (aCountry != "CN") aVec.push_back( aLanguage + "-CN"); + aVec.push_back( aLanguage); } - aVec.push_back( aLanguage); + else if (aLanguage == "ca" && aCountry == "XV") + { + ::std::vector< OUString > aCav( LanguageTag( "ca-ES-valencia").getFallbackStrings( true)); + aVec.insert( aVec.end(), aCav.begin(), aCav.end()); + // Already includes 'ca' language fallback. + } + else + aVec.push_back( aLanguage); } else if (bIncludeFullBcp47) aVec.push_back( aLanguage); |