summaryrefslogtreecommitdiffstats
path: root/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xmlscript/source/xmldlg_imexp/xmldlg_export.cxx')
-rw-r--r--xmlscript/source/xmldlg_imexp/xmldlg_export.cxx26
1 files changed, 15 insertions, 11 deletions
diff --git a/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx b/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx
index 05c724aa2448..8f7c284754d5 100644
--- a/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx
+++ b/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx
@@ -58,6 +58,7 @@
#include <com/sun/star/document/GraphicObjectResolver.hpp>
#include <comphelper/processfactory.hxx>
+#include <i18nlangtag/languagetag.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -485,19 +486,22 @@ void ElementDescriptor::addNumberFormatAttr(
addAttribute(XMLNS_DIALOGS_PREFIX ":format-code", sFormat );
// format-locale
- OUStringBuffer buf( 48 );
- buf.append( locale.Language );
- if (!locale.Country.isEmpty())
+ LanguageTag aLanguageTag( locale);
+ OUString aStr;
+ if (aLanguageTag.isIsoLocale())
{
- buf.append( (sal_Unicode)';' );
- buf.append( locale.Country );
- if (!locale.Variant.isEmpty())
- {
- buf.append( (sal_Unicode)';' );
- buf.append( locale.Variant );
- }
+ // Old style "lll;CC" for compatibility, I really don't know what may
+ // consume this.
+ if (aLanguageTag.getCountry().isEmpty())
+ aStr = aLanguageTag.getLanguage();
+ else
+ aStr = aLanguageTag.getLanguage() + ";" + aLanguageTag.getCountry();
+ }
+ else
+ {
+ aStr = aLanguageTag.getBcp47( false);
}
- addAttribute( XMLNS_DIALOGS_PREFIX ":format-locale", buf.makeStringAndClear() );
+ addAttribute( XMLNS_DIALOGS_PREFIX ":format-locale", aStr );
}
//__________________________________________________________________________________________________
Any ElementDescriptor::readProp( OUString const & rPropName )