tdf#98603 fix the missing char property (1/2).

- moLang is missed from assignUsed, so the attribute was never processed.
- Set CharLocale, CharLocaleAsian, or CharLocaleComplex based on lang
attribute of rPr (run property).

Change-Id: I6a9a636d790d244d19e7b661a1a63b1249c2bd37
Reviewed-on: https://gerrit.libreoffice.org/79972
Tested-by: Jenkins
Reviewed-by: Mark Hung <marklh9@gmail.com>
diff --git a/oox/source/drawingml/textcharacterproperties.cxx b/oox/source/drawingml/textcharacterproperties.cxx
index 6a0f375..703e23d 100644
--- a/oox/source/drawingml/textcharacterproperties.cxx
+++ b/oox/source/drawingml/textcharacterproperties.cxx
@@ -21,8 +21,10 @@
#include <com/sun/star/lang/Locale.hpp>
#include <com/sun/star/awt/FontSlant.hpp>
#include <com/sun/star/awt/FontWeight.hpp>
#include <com/sun/star/i18n/ScriptType.hpp>
#include <comphelper/sequence.hxx>
#include <i18nlangtag/languagetag.hxx>
#include <i18nlangtag/mslangid.hxx>
#include <editeng/escapementitem.hxx>
#include <oox/helper/helper.hxx>
#include <oox/helper/propertyset.hxx>
@@ -52,6 +54,7 @@ void TextCharacterProperties::assignUsed( const TextCharacterProperties& rSource
    maSymbolFont.assignIfUsed( rSourceProps.maSymbolFont );
    maHighlightColor.assignIfUsed( rSourceProps.maHighlightColor );
    maUnderlineColor.assignIfUsed( rSourceProps.maUnderlineColor );
    moLang.assignIfUsed( rSourceProps.moLang );
    moHeight.assignIfUsed( rSourceProps.moHeight );
    moFontScale.assignIfUsed(rSourceProps.moFontScale);
    moSpacing.assignIfUsed( rSourceProps.moSpacing );
@@ -110,10 +113,17 @@ void TextCharacterProperties::pushToPropMap( PropertyMap& rPropMap, const XmlFil

    if( moLang.has() && !moLang.get().isEmpty() )
    {
        lang::Locale aLocale( LanguageTag( moLang.get()).getLocale());
        rPropMap.setProperty( PROP_CharLocale, aLocale);
        rPropMap.setProperty( PROP_CharLocaleAsian, aLocale);
        rPropMap.setProperty( PROP_CharLocaleComplex, aLocale);
        LanguageTag aTag(moLang.get());
        lang::Locale aLocale(aTag.getLocale());
        switch(MsLangId::getScriptType(aTag.getLanguageType()))
        {
            case css::i18n::ScriptType::LATIN:
                rPropMap.setProperty( PROP_CharLocale, aLocale);break;
            case css::i18n::ScriptType::ASIAN:
                rPropMap.setProperty( PROP_CharLocaleAsian, aLocale);break;
            case css::i18n::ScriptType::COMPLEX:
                rPropMap.setProperty( PROP_CharLocaleComplex, aLocale);break;
        }
    }

    if( moHeight.has() )