summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-09-05 15:19:12 +0200
committerEike Rathke <erack@redhat.com>2017-09-05 15:41:01 +0200
commit93f490887c837c8a81b035d4c404da186a9bc9a2 (patch)
treebebe18b66aaac9e59b489ce4b8386f5f1346138b
parent8cca31aaba11f03d746cafeec381968ce1418346 (diff)
Introduce LanguageTag::getBcp47MS() for writing MS malformed tags, tdf#83190
Change-Id: I1e2815b9ae60681c7cddc416cc05bf4c70dcc48a
-rw-r--r--i18nlangtag/source/languagetag/languagetag.cxx8
-rw-r--r--include/i18nlangtag/languagetag.hxx8
2 files changed, 16 insertions, 0 deletions
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx
index 2da3b95174ed..09b443983d45 100644
--- a/i18nlangtag/source/languagetag/languagetag.cxx
+++ b/i18nlangtag/source/languagetag/languagetag.cxx
@@ -2359,6 +2359,14 @@ LanguageTag & LanguageTag::makeFallback()
}
+OUString LanguageTag::getBcp47MS() const
+{
+ if (getLanguageType() == LANGUAGE_SPANISH_DATED)
+ return "es-ES_tradnl";
+ return getBcp47();
+}
+
+
bool LanguageTag::equals( const LanguageTag & rLanguageTag ) const
{
// If SYSTEM is not to be resolved or either both are SYSTEM or none, we
diff --git a/include/i18nlangtag/languagetag.hxx b/include/i18nlangtag/languagetag.hxx
index 20f159f4d171..5088756e4691 100644
--- a/include/i18nlangtag/languagetag.hxx
+++ b/include/i18nlangtag/languagetag.hxx
@@ -120,6 +120,14 @@ public:
*/
const OUString & getBcp47( bool bResolveSystem = true ) const;
+ /** Obtain BCP 47 language tag, but with MS malformed exceptions.
+
+ To be used *only* in OOXML filter context.
+ For example, es-ES-u-co-trad is stored as es-ES_tradnl which is not a
+ valid BCP 47 language tag.
+ */
+ OUString getBcp47MS() const;
+
/** Obtain language tag as Locale.
As a convention, language tags that can not be expressed as "pure"