View Issue Details

IDProjectCategoryView StatusLast Update
0017354ScribusStylespublic2024-12-27 22:44
Reporterjirib Assigned Tocbradney  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version1.6.2 
Fixed in Version1.6.3.svn 
Summary0017354: [odt2im] ' fo:language' attribute of imported styles is not kept
DescriptionWhen importing an ODT file with styles having a language set, the styles imported in Scribus do not have the language kept.
Thus, the import is not fully "complete" and might impact spell check, hyphenation etc...
Steps To Reproduce1. have an ODT file with paragraph/character style language set to different language from default Scribus document one
2. import ODT file
3. review imported styles if the language is kept

Result:

3. FALSE
Additional Information# ODT style definitions

$ bsdtar -xOf test.odt styles.xml | xmllint --xpath '//*[local-name()="style" and @*[local-name()="name" and starts-with(., "Test_5f_")]]' - | fmt -w80
<style:style style:name="Test_5f_Para"
style:display-name="Test_Para" style:family="paragraph"
style:parent-style-name="Standard"><style:text-properties
fo:language="cs" fo:country="CZ"/></style:style> <style:style
style:name="Test_5f_Char" style:display-name="Test_Char" style:family="text"
style:parent-style-name="Emphasis"><style:text-properties fo:language="it"
fo:country="IT"/></style:style>

# test.sla

$ xmllint --xpath '//*[local-name()="CHARSTYLE" or local-name()="STYLE"][@CNAME[starts-with(., "Text1_Test_")] or @NAME[starts-with(., "Text1_Test_")]]' test.sla
<CHARSTYLE CNAME="Text1_Test_Char" CPARENT="Default Character Style" FONT="Liberation Serif Italic" FONTSIZE="10" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
<STYLE NAME="Text1_Test_Para" PARENT="Text1_Standard" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" BCOLOR="None" FONT="Liberation Serif Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>

^^ see no language
Tagsstyles
PatchNo

Activities

jirib

2024-12-27 16:08

reporter  

test.sla (17,510 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<SCRIBUSUTF8NEW Version="1.6.2">
    <DOCUMENT ANZPAGES="1" PAGEWIDTH="612" PAGEHEIGHT="792" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" PRESET="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" ORIENTATION="0" PAGESIZE="Letter" FIRSTNUM="1" BOOK="0" AUTOSPALTEN="1" ABSTSPALTEN="11" UNITS="4" DFONT="Arial Regular" DSIZE="12" DCOL="1" DGAP="0" TabFill="" TabWidth="36" TextDistLeft="0" TextDistRight="0" TextDistBottom="0" TextDistTop="0" FirstLineOffset="1" AUTHOR="" COMMENTS="" KEYWORDS="" PUBLISHER="" DOCDATE="" DOCTYPE="" DOCFORMAT="" DOCIDENT="" DOCSOURCE="" DOCLANGINFO="" DOCRELATION="" DOCCOVER="" DOCRIGHTS="" DOCCONTRIB="" TITLE="" SUBJECT="" VHOCH="33" VHOCHSC="66" VTIEF="33" VTIEFSC="66" VKAPIT="75" BASEGRID="14.4" BASEO="0" AUTOL="100" UnderlinePos="-1" UnderlineWidth="-1" StrikeThruPos="-1" StrikeThruWidth="-1" GROUPC="1" HCMS="0" DPSo="0" DPSFo="0" DPuse="0" DPgam="0" DPbla="1" DPPr="ISO Coated v2 300% (basICColor)" DPIn="sRGB display profile (ICC v2.2)" DPInCMYK="ISO Coated v2 300% (basICColor)" DPIn2="sRGB display profile (ICC v2.2)" DPIn3="ISO Coated v2 300% (basICColor)" DISc="1" DIIm="0" ALAYER="0" LANGUAGE="fr" AUTOMATIC="1" AUTOCHECK="0" GUIDELOCK="0" SnapToGuides="0" SnapToGrid="0" SnapToElement="0" MINGRID="20.001" MAJGRID="100.001" SHOWGRID="0" SHOWGUIDES="1" showcolborders="1" SHOWFRAME="1" SHOWControl="1" SHOWLAYERM="0" SHOWMARGIN="1" SHOWBASE="0" SHOWPICT="1" SHOWLINK="1" rulerMode="1" showrulers="1" showBleed="1" rulerXoffset="0" rulerYoffset="0" GuideRad="10" GRAB="4" POLYC="4" POLYF="0.502" POLYR="0" POLYIR="0" POLYCUR="0" POLYOCUR="0" POLYS="0" arcStartAngle="30" arcSweepAngle="300" spiralStartAngle="0" spiralEndAngle="1080" spiralFactor="1.2" AutoSave="1" AutoSaveTime="600000" AutoSaveCount="1" AutoSaveKeep="0" AUtoSaveInDocDir="1" AutoSaveDir="" ScratchBottom="20.001" ScratchLeft="100.001" ScratchRight="100.001" ScratchTop="20.001" GapHorizontal="0" GapVertical="40.003" StartArrow="0" EndArrow="0" PEN="Black" BRUSH="None" PENLINE="Black" PENTEXT="Black" StrokeText="Black" TextBackGround="None" TextLineColor="None" TextBackGroundShade="100" TextLineShade="100" TextPenShade="100" TextStrokeShade="100" STIL="1" STILLINE="1" WIDTH="1" WIDTHLINE="1" PENSHADE="100" LINESHADE="100" BRUSHSHADE="100" CPICT="None" PICTSHADE="100" CSPICT="None" PICTSSHADE="100" PICTSCX="1" PICTSCY="1" PSCALE="1" PASPECT="1" EmbeddedPath="0" HalfRes="1" dispX="10.001" dispY="10.001" constrain="15" MINORC="#00ff00" MAJORC="#00ff00" GuideC="#000080" BaseC="#c0c0c0" renderStack="2 0 4 1 3" GridType="0" PAGEC="#ffffff" MARGC="#0000ff" RANDF="0" currentProfile="PDF 1.4" calligraphicPenFillColor="Black" calligraphicPenLineColor="Black" calligraphicPenFillColorShade="100" calligraphicPenLineColorShade="100" calligraphicPenLineWidth="1" calligraphicPenAngle="0" calligraphicPenWidth="10" calligraphicPenStyle="1">
        <CheckProfile Name="PDF 1.3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.5" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.6" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-1a" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="1" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="1" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="1" checkFontNotEmbedded="1" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PostScript" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <COLOR NAME="Black" SPACE="CMYK" C="0" M="0" Y="0" K="100"/>
        <COLOR NAME="Blue" SPACE="RGB" R="0" G="0" B="255"/>
        <COLOR NAME="Cool Black" SPACE="CMYK" C="60" M="0" Y="0" K="100"/>
        <COLOR NAME="Cyan" SPACE="CMYK" C="100" M="0" Y="0" K="0"/>
        <COLOR NAME="Green" SPACE="RGB" R="0" G="255" B="0"/>
        <COLOR NAME="Magenta" SPACE="CMYK" C="0" M="100" Y="0" K="0"/>
        <COLOR NAME="Red" SPACE="RGB" R="255" G="0" B="0"/>
        <COLOR NAME="Registration" SPACE="CMYK" C="100" M="100" Y="100" K="100" Register="1"/>
        <COLOR NAME="Rich Black" SPACE="CMYK" C="60" M="40" Y="40" K="100"/>
        <COLOR NAME="Warm Black" SPACE="CMYK" C="0" M="60" Y="29.8039215686275" K="100"/>
        <COLOR NAME="White" SPACE="CMYK" C="0" M="0" Y="0" K="0"/>
        <COLOR NAME="Yellow" SPACE="CMYK" C="0" M="0" Y="100" K="0"/>
        <HYPHEN/>
        <CHARSTYLE CNAME="Default Character Style" DefaultStyle="1" FONT="Arial Regular" FONTSIZE="12" FONTFEATURES="" FEATURES="inherit" FCOLOR="Black" FSHADE="100" HyphenWordMin="3" SCOLOR="Black" BGCOLOR="None" BGSHADE="100" SSHADE="100" TXTSHX="5" TXTSHY="-5" TXTOUT="1" TXTULP="-0.1" TXTULW="-0.1" TXTSTP="-0.1" TXTSTW="-0.1" SCALEH="100" SCALEV="100" BASEO="0" KERN="0" LANGUAGE="fr"/>
        <CHARSTYLE CNAME="Text1_Emphasis" CPARENT="Default Character Style" FONT="Liberation Serif Italic" FONTSIZE="10" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <CHARSTYLE CNAME="Text1_Test_Char" CPARENT="Default Character Style" FONT="Liberation Serif Italic" FONTSIZE="10" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <STYLE NAME="Default Paragraph Style" DefaultStyle="1" ALIGN="0" DIRECTION="0" LINESPMode="0" LINESP="15" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" ParagraphEffectOffset="0" DROP="0" DROPLIN="2" Bullet="0" Numeration="0" HyphenConsecutiveLines="2" BCOLOR="None" BSHADE="100"/>
        <STYLE NAME="Text1_Standard" PARENT="Text1_Default Paragraph Style" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" BCOLOR="None" FONT="Liberation Serif Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <STYLE NAME="Text1_Heading" PARENT="Text1_Standard" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="11.988" NACH="6.012" BCOLOR="None" FONT="Liberation Sans Regular" FONTSIZE="14" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <STYLE NAME="Text1_Text body" PARENT="Text1_Standard" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="6.9984" BCOLOR="None" FONT="Liberation Serif Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <STYLE NAME="Text1_List" PARENT="Text1_Text body" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="6.9984" BCOLOR="None" FONT="Liberation Serif Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <STYLE NAME="Text1_Caption" PARENT="Text1_Standard" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="6.012" NACH="6.012" BCOLOR="None" FONT="Liberation Serif Italic" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <STYLE NAME="Text1_Index" PARENT="Text1_Standard" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" BCOLOR="None" FONT="Liberation Serif Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <STYLE NAME="Text1_Test_Para" PARENT="Text1_Standard" ALIGN="0" LINESPMode="1" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" BCOLOR="None" FONT="Liberation Serif Regular" FONTSIZE="12" FEATURES="inherit" FCOLOR="Black" BGCOLOR="None"/>
        <TableStyle NAME="Default Table Style" DefaultStyle="1" FillColor="None" FillShade="100">
            <TableBorderLeft>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderLeft>
            <TableBorderRight>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderRight>
            <TableBorderTop>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderTop>
            <TableBorderBottom>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderBottom>
        </TableStyle>
        <CellStyle NAME="Default Cell Style" DefaultStyle="1" FillColor="None" FillShade="100" LeftPadding="1" RightPadding="1" TopPadding="1" BottomPadding="1">
            <TableBorderLeft>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderLeft>
            <TableBorderRight>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderRight>
            <TableBorderTop>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderTop>
            <TableBorderBottom>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderBottom>
        </CellStyle>
        <LAYERS NUMMER="0" LEVEL="0" NAME="Background" SICHTBAR="1" DRUCKEN="1" EDIT="1" SELECT="0" FLOW="1" TRANS="1" BLEND="0" OUTL="0" LAYERC="#000000"/>
        <Printer firstUse="1" toFile="0" useAltPrintCommand="0" outputSeparations="0" useSpotColors="1" useColor="1" mirrorH="0" mirrorV="0" useICC="0" doGCR="0" doClip="0" setDevParam="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" includePDFMarks="1" PSLevel="3" PrintEngine="4" markLength="20.0013" markOffset="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="Microsoft Print to PDF" filename="" separationName="All" printerCommand=""/>
        <PDF firstUse="1" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" EmbedPDF="0" MirrorH="0" MirrorV="0" Clip="0" rangeSel="0" rangeTxt="" RotateDeg="0" PresentMode="0" RecalcPic="0" FontEmbedding="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="sRGB display profile (ICC v2.2)" ImageP="sRGB display profile (ICC v2.2)" PrintP="ISO Coated v2 300% (basICColor)" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markLength="20.0012598425197" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" openAfterExport="0" PageLayout="0" openAction="">
            <LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/>
            <LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/>
            <LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/>
            <LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/>
        </PDF>
        <DocItemAttributes/>
        <TablesOfContents/>
        <NotesStyles>
            <notesStyle Name="Default" Start="1" Endnotes="0" Type="Type_1_2_3" Range="0" Prefix="" Suffix=")" AutoHeight="1" AutoWidth="1" AutoRemove="1" AutoWeld="1" SuperNote="1" SuperMaster="1" MarksStyle="" NotesStyle=""/>
        </NotesStyles>
        <PageSets>
            <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
            <Set Name="Facing Pages" FirstPage="1" Rows="1" Columns="2">
                <PageNames Name="Left Page"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle Left"/>
                <PageNames Name="Middle Right"/>
                <PageNames Name="Right Page"/>
            </Set>
        </PageSets>
        <Sections>
            <Section Number="0" Name="Section 1" From="0" To="0" Type="Type_1_2_3" Start="1" Reversed="0" Active="1" FillChar="0" FieldWidth="0"/>
        </Sections>
        <MASTERPAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="612" PAGEHEIGHT="792" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="Normal" MNAM="" Size="Letter" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="612" PAGEHEIGHT="792" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="" MNAM="Normal" Size="Letter" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGEOBJECT XPOS="155.25" YPOS="76.6939133858268" OwnPage="0" ItemID="188483360" PTYPE="4" WIDTH="499.5" HEIGHT="478.306086614173" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L499.5 0 L499.5 478.306 L0 478.306 L0 0 Z" copath="M0 0 L499.5 0 L499.5 478.306 L0 478.306 L0 0 Z" gXpos="155.25" gYpos="76.6939133858268" gWidth="0" gHeight="0" PSTYLE="Default Paragraph Style" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Default Paragraph Style" LINESPMode="1" LINESP="12"/>
                <ITEXT CH="Hello world is “Ciao mondo” in Italian."/>
                <para PARENT="Text1_Test_Para" ALIGN="0" LINESPMode="1" LINESP="12" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" BCOLOR="None"/>
            </StoryText>
        </PAGEOBJECT>
    </DOCUMENT>
</SCRIBUSUTF8NEW>
test.sla (17,510 bytes)   
test.odt (10,685 bytes)

jirib

2024-12-27 16:10

reporter   ~0051823

Please, note this is test-try diff, I don't know C++ :)

---%>---
diff --git a/scribus/plugins/gettext/odt2im/importodt.cpp b/scribus/plugins/gettext/odt2im/importodt.cpp
index 9f5dedf6cd..a6d0b4e91d 100644
--- a/scribus/plugins/gettext/odt2im/importodt.cpp
+++ b/scribus/plugins/gettext/odt2im/importodt.cpp
@@ -493,6 +493,7 @@ void ODTIm::parseStyles(const QDomElement &sp, const QString& type)
                     currStyle.textStrikeThrough = AttributeValue(spe.attribute("style:text-line-through-style", ""));
                     currStyle.textShadow = AttributeValue(spe.attribute("fo:text-shadow", ""));
                     currStyle.fontVariant = AttributeValue(spe.attribute("fo:font-variant", ""));
+ currStyle.language = AttributeValue(spe.attribute("fo:language", ""));
                 }
             }
             if (spd.attribute("style:family") == "paragraph")
@@ -573,6 +574,7 @@ void ODTIm::parseStyles(const QDomElement &sp, const QString& type)
                     currStyle.textStrikeThrough = AttributeValue(spe.attribute("style:text-line-through-style", ""));
                     currStyle.textShadow = AttributeValue(spe.attribute("fo:text-shadow", ""));
                     currStyle.fontVariant = AttributeValue(spe.attribute("fo:font-variant", ""));
+ currStyle.language = AttributeValue(spe.attribute("fo:language", ""));
                 }
             }
             currStyle.displayName = AttributeValue(spd.attribute("style:display-name", ""));
@@ -1014,6 +1016,7 @@ void ODTIm::applyCharacterStyle(CharStyle &tmpCStyle, const ObjStyleODT &oStyle)
     tmpCStyle.setFillColor(oStyle.CurrColorText);
     tmpCStyle.setBackColor(oStyle.CurrColorBText);
     StyleFlag styleEffects = tmpCStyle.effects();
+ tmpCStyle.setLanguage(oStyle.language);
     if ((oStyle.textPos.startsWith("super")) || (oStyle.textPos.startsWith("sub")))
     {
         if (oStyle.textPos.startsWith("super"))
@@ -1170,6 +1173,8 @@ void ODTIm::resolveStyle(ObjStyleODT &tmpOStyle, const QString& styleName)
             actStyle.breakAfter = AttributeValue(currStyle.breakAfter.value);
         if (currStyle.breakBefore.valid)
             actStyle.breakBefore = AttributeValue(currStyle.breakBefore.value);
+ if (currStyle.language.valid)
+ actStyle.language = AttributeValue(currStyle.language.value);
     }
 
     if (actStyle.textBackgroundColor.valid)
@@ -1356,6 +1361,8 @@ void ODTIm::resolveStyle(ObjStyleODT &tmpOStyle, const QString& styleName)
         tmpOStyle.breakAfter = actStyle.breakAfter.value;
     if (actStyle.breakBefore.valid)
         tmpOStyle.breakBefore = actStyle.breakBefore.value;
+ if (actStyle.language.valid)
+ tmpOStyle.language = actStyle.language.value;
 }
 
 double ODTIm::parseUnit(const QString &unit)
diff --git a/scribus/plugins/gettext/odt2im/importodt.h b/scribus/plugins/gettext/odt2im/importodt.h
index 235b4ca501..eda523b34f 100644
--- a/scribus/plugins/gettext/odt2im/importodt.h
+++ b/scribus/plugins/gettext/odt2im/importodt.h
@@ -63,6 +63,7 @@ class ObjStyleODT
     QList<ParagraphStyle::TabRecord> tabStops;
     QString breakBefore {"auto"};
     QString breakAfter {"auto"};
+ QString language;
 };
 
 class ODTIm
@@ -110,6 +111,7 @@ class ODTIm
         AttributeValue tabTypes;
         AttributeValue breakBefore;
         AttributeValue breakAfter;
+ AttributeValue language;
     };
 
     bool parseContent(const QString& fileName, bool textOnly);
---%<---
styles-language.diff (3,142 bytes)   
diff --git a/scribus/plugins/gettext/odt2im/importodt.cpp b/scribus/plugins/gettext/odt2im/importodt.cpp
index 9f5dedf6cd..a6d0b4e91d 100644
--- a/scribus/plugins/gettext/odt2im/importodt.cpp
+++ b/scribus/plugins/gettext/odt2im/importodt.cpp
@@ -493,6 +493,7 @@ void ODTIm::parseStyles(const QDomElement &sp, const QString& type)
 					currStyle.textStrikeThrough = AttributeValue(spe.attribute("style:text-line-through-style", ""));
 					currStyle.textShadow = AttributeValue(spe.attribute("fo:text-shadow", ""));
 					currStyle.fontVariant = AttributeValue(spe.attribute("fo:font-variant", ""));
+					currStyle.language = AttributeValue(spe.attribute("fo:language", ""));
 				}
 			}
 			if (spd.attribute("style:family") == "paragraph")
@@ -573,6 +574,7 @@ void ODTIm::parseStyles(const QDomElement &sp, const QString& type)
 					currStyle.textStrikeThrough = AttributeValue(spe.attribute("style:text-line-through-style", ""));
 					currStyle.textShadow = AttributeValue(spe.attribute("fo:text-shadow", ""));
 					currStyle.fontVariant = AttributeValue(spe.attribute("fo:font-variant", ""));
+					currStyle.language = AttributeValue(spe.attribute("fo:language", ""));
 				}
 			}
 			currStyle.displayName = AttributeValue(spd.attribute("style:display-name", ""));
@@ -1014,6 +1016,7 @@ void ODTIm::applyCharacterStyle(CharStyle &tmpCStyle, const ObjStyleODT &oStyle)
 	tmpCStyle.setFillColor(oStyle.CurrColorText);
 	tmpCStyle.setBackColor(oStyle.CurrColorBText);
 	StyleFlag styleEffects = tmpCStyle.effects();
+	tmpCStyle.setLanguage(oStyle.language);
 	if ((oStyle.textPos.startsWith("super")) || (oStyle.textPos.startsWith("sub")))
 	{
 		if (oStyle.textPos.startsWith("super"))
@@ -1170,6 +1173,8 @@ void ODTIm::resolveStyle(ObjStyleODT &tmpOStyle, const QString& styleName)
 			actStyle.breakAfter = AttributeValue(currStyle.breakAfter.value);
 		if (currStyle.breakBefore.valid)
 			actStyle.breakBefore = AttributeValue(currStyle.breakBefore.value);
+		if (currStyle.language.valid)
+            		actStyle.language = AttributeValue(currStyle.language.value);
 	}
 
 	if (actStyle.textBackgroundColor.valid)
@@ -1356,6 +1361,8 @@ void ODTIm::resolveStyle(ObjStyleODT &tmpOStyle, const QString& styleName)
 		tmpOStyle.breakAfter = actStyle.breakAfter.value;
 	if (actStyle.breakBefore.valid)
 		tmpOStyle.breakBefore = actStyle.breakBefore.value;
+	if (actStyle.language.valid)
+        	tmpOStyle.language = actStyle.language.value;
 }
 
 double ODTIm::parseUnit(const QString &unit)
diff --git a/scribus/plugins/gettext/odt2im/importodt.h b/scribus/plugins/gettext/odt2im/importodt.h
index 235b4ca501..eda523b34f 100644
--- a/scribus/plugins/gettext/odt2im/importodt.h
+++ b/scribus/plugins/gettext/odt2im/importodt.h
@@ -63,6 +63,7 @@ class ObjStyleODT
 	QList<ParagraphStyle::TabRecord> tabStops;
 	QString breakBefore {"auto"};
 	QString breakAfter {"auto"};
+	QString language;
 };
 
 class ODTIm
@@ -110,6 +111,7 @@ class ODTIm
 		AttributeValue tabTypes;
 		AttributeValue breakBefore;
 		AttributeValue breakAfter;
+		AttributeValue language;
 	};
 
 	bool parseContent(const QString& fileName, bool textOnly);
styles-language.diff (3,142 bytes)   

Issue History

Date Modified Username Field Change
2024-12-27 16:08 jirib New Issue
2024-12-27 16:08 jirib Tag Attached: styles
2024-12-27 16:08 jirib File Added: test.sla
2024-12-27 16:08 jirib File Added: test.odt
2024-12-27 16:10 jirib Note Added: 0051823
2024-12-27 16:10 jirib File Added: styles-language.diff
2024-12-27 22:43 cbradney Assigned To => cbradney
2024-12-27 22:43 cbradney Status new => resolved
2024-12-27 22:43 cbradney Resolution open => fixed
2024-12-27 22:43 cbradney Fixed in Version => 1.6.3.svn
2024-12-27 22:44 cbradney Status resolved => closed