From 2175ea13ce37e46e83c3bd7da747eb2552a4030c Mon Sep 17 00:00:00 2001
From: Julian Mehne and set bUserFormat
+ * - if a paragraph alignment is set for the supplied ItemSet of the node or
+ * for the ItemSet of the format, output an ALIGN=xxx if HTML allows it
+ * - In all cases, hard attribute is written as STYLE option.
+ * If bUserFormat is not set, only the supplied ItemSet is considered.
+ * Otherwise, attributes of the format are output as well.
*/
struct SwHTMLTextCollOutputInfo
{
- OString aToken; // auszugendens End-Token
- std::unique_ptr
- rInfo.bParaPossible = false; // ein
darf zusaetzlich ausgegeben werden - bool bNoEndTag = false; // kein End-Tag ausgeben + rInfo.bInNumBulList = false; // Are we in a list? + bool bNumbered = false; // The current paragraph is numbered + bool bPara = false; // the current token is
+ rInfo.bParaPossible = false; // a
may be additionally output + bool bNoEndTag = false; // don't output an end tag - rHWrt.m_bNoAlign = false; // kein ALIGN=... moeglich - bool bNoStyle = false; // kein STYLE=... moeglich - sal_uInt8 nBulletGrfLvl = 255; // Die auszugebende Bullet-Grafik + rHWrt.m_bNoAlign = false; // no ALIGN=... possible + bool bNoStyle = false; // no STYLE=... possible + sal_uInt8 nBulletGrfLvl = 255; // The bullet graphic we want to output - // Sind wir in einer Aufzaehlungs- oder Numerierungliste? + // Are we in a bulleted or numbered list? const SwTextNode* pTextNd = rWrt.pCurPam->GetNode().GetTextNode(); SwHTMLNumRuleInfo aNumInfo; @@ -468,14 +466,14 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat, rInfo.bInNumBulList = true; nNewDefListLvl = 0; - // ist der aktuelle Absatz numeriert? + // is the current paragraph numbered? bNumbered = aNumInfo.IsNumbered(); sal_uInt8 nLvl = aNumInfo.GetLevel(); OSL_ENSURE( pTextNd->GetActualListLevel() == nLvl, - "Gemerkter Num-Level ist falsch" ); + "Remembered Num level is wrong" ); OSL_ENSURE( bNumbered == pTextNd->IsCountedInList(), - "Gemerkter Numerierungs-Zustand ist falsch" ); + "Remembered numbering state is wrong" ); if( bNumbered ) { @@ -490,11 +488,11 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat, nNumStart = static_cast< sal_uInt16 >(pTextNd->GetActualListStartValue()); } OSL_ENSURE( rHWrt.m_nLastParaToken == 0, - "
wurde nicht vor
was not closed before
exportiert + // all styles that do not correspond to an HTML tag, or that are + // not derived from it, are exported as
rInfo.aToken = OOO_STRING_SVTOOLS_HTML_parabreak;
bPara = true;
}
- // Falls noetig, die harte Attributierung der Vorlage uebernehmen
+ // If necessary, take the hard attribute from the style
if( pFormatInfo->pItemSet )
{
- OSL_ENSURE( !rInfo.pItemSet.get(), "Wo kommt der Item-Set her?" );
+ OSL_ENSURE( !rInfo.pItemSet.get(), "Where does this ItemSet come from?" );
rInfo.pItemSet.reset(new SfxItemSet( *pFormatInfo->pItemSet ));
}
- // und noch die harte Attributierung des Absatzes dazunehmen
+ // additionally, add the hard attribute from the paragraph
if( pNodeItemSet )
{
if( rInfo.pItemSet.get() )
@@ -581,7 +579,7 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
rInfo.pItemSet.reset(new SfxItemSet( *pNodeItemSet ));
}
- // den unteren Absatz-Abstand brauchen wir noch
+ // we will need the lower spacing of the paragraph later on
const SvxULSpaceItem& rULSpace =
pNodeItemSet ? static_cast wird nur geschrieben, wenn
- // - wir in keiner OL/UL/DL sind, oder
- // - der Absatz einer OL/UL nicht numeriert ist, oder
- // - keine Styles exportiert werden und
- // - ein unterer Abstand oder
- // - eine Absatz-Ausrichtung existiert, ode
- // - Styles exportiert werden und,
- // - die Textkoerper-Vorlage geaendert wurde, oder
- // - ein Benutzer-Format exportiert wird, oder
- // - Absatz-Attribute existieren
+ // We only write a , if
+ // - we are not inside OL/UL/DL, or
+ // - the paragraph of an OL/UL is not numbered or
+ // - styles are not exported and
+ // - a lower spacing, or
+ // - a paragraph alignment exists, or
+ // - styles are exported and
+ // - the text body style was changed, or
+ // - a user format is exported, or
+ // - a paragraph attribute exists
if( !bPara ||
(!rInfo.bInNumBulList && !rHWrt.m_nDefListLvl) ||
(rInfo.bInNumBulList && !bNumbered) ||
@@ -861,7 +855,7 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
nDir != rHWrt.m_nDirection ||
rHWrt.m_bCfgOutStyles )
{
- // jetzt werden Optionen ausgegeben
+ // now, options are output
rHWrt.m_bTextAttr = false;
rHWrt.m_bOutOpts = true;
@@ -915,14 +909,14 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
rWrt.Strm().WriteOString( sOut );
sOut = "";
- // ggf. Ausrichtung ausgeben.
+ // if necessary, output alignment
if( !rHWrt.m_bNoAlign && pAdjItem )
OutHTML_SvxAdjust( rWrt, *pAdjItem );
rHWrt.m_bParaDotLeaders = bPara && rHWrt.m_bCfgPrintLayout && rHWrt.indexOfDotLeaders(
pTextNd->GetAnyFormatColl().GetPoolFormatId(), pTextNd->GetText()) > -1;
- // und nun ggf. noch die STYLE-Option
+ // and now, if necessary, the STYLE options
if( rHWrt.m_bCfgOutStyles && rInfo.pItemSet && !bNoStyle)
{
OutCSS1_ParaTagStyleOpt( rWrt, *rInfo.pItemSet );
@@ -938,20 +932,20 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
rWrt.Strm().WriteChar( '>' );
- // Soll ein
spannen wir um die Linie auf. Dann stimmen - // zwar die Abstaende nicht, aber sonst bekommen wir einen leeren - // Absatz hinter dem
und das ist noch unschoener. + // then, the paragraph-anchored graphics/OLE objects in the paragraph + // MIB 8.7.97: We enclose the line in a. This means that the + // spacings are wrong, but otherwise we get an empty paragraph + // after the
which is even uglier. rHTMLWrt.ChangeParaToken( 0 ); - // Alle an dem Node verankerten Rahmen ausgeben + // Output all the nodes that are anchored to a frame rHTMLWrt.OutFlyFrame( rNode.GetIndex(), 0, HTML_POS_ANY ); if( rHTMLWrt.m_bLFPossible ) - rHTMLWrt.OutNewLine(); // Absatz-Tag in eine neue Zeile + rHTMLWrt.OutNewLine(); // paragraph tag on a new line rHTMLWrt.m_bLFPossible = true; @@ -2118,22 +2108,21 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) return rHTMLWrt; } - // Die leeren Nodes mit 2pt Font-Hoehe und der Stand-Vorlage, die - // vor Tabellen und Bereichen eingefuegt werden, nicht exportieren, - // Bookmarks oder absatzgebundene Grafiken aber schon. - // MIB 21.7.97: Ausserdem auch keine leeren Tabellen-Zellen exportieren. + // Do not export the empty nodes with 2pt fonts and standard style that + // are inserted before tables and sections, but do export bookmarks + // and paragraph anchored frames. if( !nEnd && (nPoolId == RES_POOLCOLL_STANDARD || nPoolId == RES_POOLCOLL_TABLE || nPoolId == RES_POOLCOLL_TABLE_HDLN) ) { - // Der aktuelle Node ist leer und enthaelt Standard-Vorlage ... + // The current node is empty and contains the standard style ... const SfxPoolItem* pItem; const SfxItemSet* pItemSet = pNd->GetpSwAttrSet(); if( pItemSet && pItemSet->Count() && SfxItemState::SET == pItemSet->GetItemState( RES_CHRATR_FONTSIZE, false, &pItem ) && 40 == static_cast(pItem)->GetHeight() ) { - // ... ausserdem ist die 2pt Schrift eingestellt ... + // ... moreover, the 2pt font is set ... sal_uLong nNdPos = rWrt.pCurPam->GetPoint()->nNode.GetIndex(); const SwNode *pNextNd = rWrt.pDoc->GetNodes()[nNdPos+1]; const SwNode *pPrevNd = rWrt.pDoc->GetNodes()[nNdPos-1]; @@ -2144,11 +2133,11 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) pPrevNd->IsStartNode() && SwTableBoxStartNode == pPrevNd->GetStartNode()->GetStartNodeType() ) ) { - // ... und er steht vor einer Tabelle ohne einem Bereich + // ... and it is located before a table or a section rHTMLWrt.OutBookmarks(); rHTMLWrt.m_bLFPossible = !rHTMLWrt.m_nLastParaToken; - // Alle an dem Node verankerten Rahmen ausgeben + // Output all frames that are anchored to this node rHTMLWrt.OutFlyFrame( rNode.GetIndex(), 0, HTML_POS_ANY ); rHTMLWrt.m_bLFPossible = false; @@ -2157,7 +2146,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) } } - // PagePreaks uns PagDescs abfangen + // catch PageBreaks and PageDescs bool bPageBreakBehind = false; if( rHTMLWrt.m_bCfgFormFeed && !(rHTMLWrt.m_bOutTable || rHTMLWrt.m_bOutFlyFrame) && @@ -2198,14 +2187,14 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) rWrt.Strm().WriteChar( '\f' ); } - // eventuell eine Form oeffnen + // if necessary, open a form rHTMLWrt.OutForm(); - // An dem Node "verankerte" Seitenegebunde Rahmen ausgeben + // Output the page-anchored frames that are 'anchored' to this node bool bFlysLeft = rHTMLWrt.OutFlyFrame( rNode.GetIndex(), 0, HTML_POS_PREFIX ); - // An dem Node verankerte Rahmen ausgeben, die vor dem - // Absatz-Tag geschrieben werden sollen. + // Output all frames that are anchored to this node that are supposed to + // be written before the paragraph tag. if( bFlysLeft ) { bFlysLeft = rHTMLWrt.OutFlyFrame( rNode.GetIndex(), 0, HTML_POS_BEFORE ); @@ -2216,27 +2205,25 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) nEnd = rHTMLWrt.pCurPam->GetMark()->nContent.GetIndex(); } - // gibt es harte Attribute, die als Optionen geschrieben werden muessen? + // are there any hard attributes that must be written as options? rHTMLWrt.m_bTagOn = true; - // jetzt das Tag des Absatzes ausgeben + // now, output the tag of the paragraph const SwFormat& rFormat = pNd->GetAnyFormatColl(); SwHTMLTextCollOutputInfo aFormatInfo; bool bOldLFPossible = rHTMLWrt.m_bLFPossible; OutHTML_SwFormat( rWrt, rFormat, pNd->GetpSwAttrSet(), aFormatInfo ); - // Wenn vor dem Absatz-Tag keine neue Zeile aufgemacht wurde, dann - // tun wir das jetzt + // If we didn't open a new line before the paragraph tag, we do that now rHTMLWrt.m_bLFPossible = !rHTMLWrt.m_nLastParaToken; if( !bOldLFPossible && rHTMLWrt.m_bLFPossible ) rHTMLWrt.OutNewLine(); - // dann die Bookmarks (inkl. End-Tag) + // then, the bookmarks (including end tag) rHTMLWrt.m_bOutOpts = false; rHTMLWrt.OutBookmarks(); - // jetzt ist noch mal eine gute Gelegenheit fuer ein LF, sofern es noch - // erlaubt ist + // now it's a good opportunity again for an LF - if it is still allowed if( rHTMLWrt.m_bLFPossible && rHTMLWrt.GetLineLen() >= rHTMLWrt.m_nWhishLineLen ) { @@ -2244,7 +2231,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) } rHTMLWrt.m_bLFPossible = false; - // Text, der aus einer Outline-Numerierung kommt ermitteln + // find text that originates from an outline numbering sal_Int32 nOffset = 0; OUString aOutlineText; OUString aFullText; @@ -2272,7 +2259,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) // skip part after the tabulator (page number) nEnd = nIndexTab; - // gibt es harte Attribute, die als Tags geschrieben werden muessen? + // are there any hard attributes that must be written as tags? aFullText += rStr; HTMLEndPosLst aEndPosLst( rWrt.pDoc, rHTMLWrt.m_pTemplate, rHTMLWrt.m_pDfltColor, rHTMLWrt.m_bCfgOutStyles, @@ -2286,13 +2273,13 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) if( !aOutlineText.isEmpty() || rHTMLWrt.m_pFormatFootnote ) { - // Absatz-Attribute ausgeben, damit der Text die Attribute des - // Absatzes bekommt. + // output paragraph attributes, so that the text gets the attributes of + // the paragraph. aEndPosLst.OutStartAttrs( rHTMLWrt, 0 ); - // Theoretisch muesste man hier die Zeichen-Vorlage der Numerierung - // beachten. Da man die ueber die UI nicht setzen kann, ignorieren - // wir sie erstmal. + // Theoretically, we would have to consider the character style of + // the numbering. Because it cannot be set via the UI, let's ignore + // it for now. if( !aOutlineText.isEmpty() ) HTMLOutFuncs::Out_String( rWrt.Strm(), aOutlineText, @@ -2306,8 +2293,8 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) } } - // erstmal den Start berichtigen. D.h. wird nur ein Teil vom Satz - // ausgegeben, so muessen auch da die Attribute stimmen!! + // for now, correct the start. I.e., if we only output part of the sentence, + // the attributes must be correct there, as well!! rHTMLWrt.m_bTextAttr = true; size_t nAttrPos = 0; @@ -2316,7 +2303,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) const size_t nCntAttr = pNd->HasHints() ? pNd->GetSwpHints().Count() : 0; if( nCntAttr && nStrPos > ( pHt = pNd->GetSwpHints().Get(0) )->GetStart() ) { - // Ok, es gibt vorher Attribute, die ausgegeben werden muessen + // Ok, there are earlier attributes that we must output do { aEndPosLst.OutEndAttrs( rHTMLWrt, nStrPos + nOffset ); @@ -2332,11 +2319,11 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) if( !rHTMLWrt.bWriteAll && nHtEnd <= nStrPos ) continue; - // leere Hints am Anfang nicht beachten, oder ?? + // don't consider empty hints at the beginning - or should we ?? if( nHtEnd == nHtStt ) continue; - // Attribut in die Liste aufnehemen + // add attribute to the list if( rHTMLWrt.bWriteAll ) aEndPosLst.Insert( pHt->GetAttr(), nHtStt + nOffset, nHtEnd + nOffset, @@ -2350,13 +2337,13 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) rHTMLWrt.m_CharFormatInfos ); } continue; - // aber nicht ausgeben, das erfolgt spaeter !! + // but don't output it, that will be done later !! } } while( nAttrPos < nCntAttr && nStrPos > ( pHt = pNd->GetSwpHints().Get( nAttrPos ) )->GetStart() ); - // dann gebe mal alle gesammelten Attribute von der String-Pos aus + // so, let's output all collected attributes from the string pos on aEndPosLst.OutEndAttrs( rHTMLWrt, nStrPos + nOffset ); aEndPosLst.OutStartAttrs( rHTMLWrt, nStrPos + nOffset ); } @@ -2371,7 +2358,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) sal_Int32 nPreSplitPos = 0; for( ; nStrPos < nEnd; nStrPos++ ) { - // Die an der aktuellen Position verankerten Rahmen ausgeben + // output the frames that are anchored to the current position if( bFlysLeft ) { aEndPosLst.OutEndAttrs( rHTMLWrt, nStrPos + nOffset, &aContext ); @@ -2390,9 +2377,9 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) { if( *pHt->End() != nStrPos ) { - // Hints mit Ende einsortieren, wenn sie keinen - // leeren Bereich aufspannen (Hints, die keinen - // Bereich aufspannen werden ignoriert + // insert hints with end, if they don't start + // an empty range (hints that don't start a range + // are ignored) aEndPosLst.Insert( pHt->GetAttr(), nStrPos + nOffset, *pHt->End() + nOffset, rHTMLWrt.m_CharFormatInfos ); @@ -2400,8 +2387,8 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) } else { - // Hints ohne-Ende werden als letztes ausgebeben - OSL_ENSURE( !pTextHt, "Wieso gibt es da schon ein Attribut ohne Ende?" ); + // hints without an end are output last + OSL_ENSURE( !pTextHt, "Why is there already an attribute without an end?" ); if( rHTMLWrt.m_nTextAttrsToIgnore>0 ) { rHTMLWrt.m_nTextAttrsToIgnore--; @@ -2417,13 +2404,13 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) bWriteBreak = false; } } - bOutChar = false; // keine 255 ausgeben + bOutChar = false; // don't output 255 } } while( ++nAttrPos < nCntAttr && nStrPos == ( pHt = pNd->GetSwpHints().Get( nAttrPos ) )->GetStart() ); } - // Manche Draw-Formate koennen auch noch Attribute mitbringen + // Additionally, some draw formats can bring attributes if( pTextHt && RES_TXTATR_FLYCNT == pTextHt->Which() ) { const SwFrameFormat* pFrameFormat = @@ -2533,11 +2520,11 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) aEndPosLst.OutEndAttrs( rHTMLWrt, SAL_MAX_INT32 ); - // Die an der letzten Position verankerten Rahmen ausgeben + // Output the frames that are anchored to the last position if( bFlysLeft ) bFlysLeft = rHTMLWrt.OutFlyFrame( rNode.GetIndex(), nEnd, HTML_POS_INSIDE ); - OSL_ENSURE( !bFlysLeft, "Es wurden nicht alle Rahmen gespeichert!" ); + OSL_ENSURE( !bFlysLeft, "Not all frames were saved!" ); rHTMLWrt.m_bTextAttr = false; @@ -2550,9 +2537,8 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) if( bEndOfCell && !nEnd && rHTMLWrt.IsHTMLMode(HTMLMODE_NBSP_IN_TABLES) ) { - // Wenn der letzte Absatz einer Tabellezelle leer ist und - // wir fuer den MS-IE exportieren, schreiben wir statt eines - //
ein + // If the last paragraph of a table cell is empty and we export + // for the MS-IE, we write a instead of a
rWrt.Strm().WriteChar( '&' ).WriteCharPtr( OOO_STRING_SVTOOLS_HTML_S_nbsp ).WriteChar( ';' ); } else @@ -2596,8 +2582,8 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) rHTMLWrt.m_bLFPossible = true; } - // wenn ein LF nicht schon erlaubt ist wird es erlaubt, wenn der - // Absatz mit einem ' ' endet + // if an LF is not allowed already, it is allowed once the paragraphs + // ends with a ' ' if( !rHTMLWrt.m_bLFPossible && !rHTMLWrt.m_nLastParaToken && nEnd > 0 && ' ' == rStr[nEnd-1] ) rHTMLWrt.m_bLFPossible = true; @@ -2611,7 +2597,7 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode ) rHTMLWrt.m_bTagOn = false; OutHTML_SwFormatOff( rWrt, aFormatInfo ); - // eventuell eine Form schliessen + // if necessary, close a form rHTMLWrt.OutForm( false ); if( bPageBreakBehind ) @@ -2627,7 +2613,7 @@ sal_uInt32 SwHTMLWriter::ToPixel( sal_uInt32 nVal, const bool bVert ) Size aSz( bVert ? 0 : nVal, bVert ? nVal : 0 ); aSz = Application::GetDefaultDevice()->LogicToPixel(aSz, MapMode( MAP_TWIP )); nVal = bVert ? aSz.Height() : aSz.Width(); - if( !nVal ) // wo ein Twip ist sollte auch ein Pixel sein + if( !nVal ) // if there is a Twip, there should be a pixel as well nVal = 1; } return nVal; @@ -2635,8 +2621,8 @@ sal_uInt32 SwHTMLWriter::ToPixel( sal_uInt32 nVal, const bool bVert ) static Writer& OutHTML_CSS1Attr( Writer& rWrt, const SfxPoolItem& rHt ) { - // wenn gerade Hints geschrieben werden versuchen wir den Hint als - // CSS1-Attribut zu schreiben + // if hints are currently written, we try to write the hint as an + // CSS1 attribute if( static_cast(rWrt).m_bCfgOutStyles && static_cast (rWrt).m_bTextAttr ) OutCSS1_HintSpanTag( rWrt, rHt ); @@ -2654,8 +2640,8 @@ static Writer& OutHTML_SvxColor( Writer& rWrt, const SfxPoolItem& rHt ) if( !rHTMLWrt.m_bTextAttr && rHTMLWrt.m_bCfgOutStyles && rHTMLWrt.m_bCfgPreferStyles ) { - // Font-Farbe nicht als Tag schreiben, wenn Styles normalen Tags - // vorgezogen werden + // don't write the font color as a tag, if styles are preferred to + // normal tags return rWrt; } @@ -2689,7 +2675,7 @@ static Writer& OutHTML_SwPosture( Writer& rWrt, const SfxPoolItem& rHt ) } else if( rHTMLWrt.m_bCfgOutStyles && rHTMLWrt.m_bTextAttr ) { - // vielleicht als CSS1-Attribut ? + // maybe as CSS1 attribute? OutCSS1_HintSpanTag( rWrt, rHt ); } @@ -2787,7 +2773,7 @@ static Writer& OutHTML_SwWeight( Writer& rWrt, const SfxPoolItem& rHt ) } else if( rHTMLWrt.m_bCfgOutStyles && rHTMLWrt.m_bTextAttr ) { - // vielleicht als CSS1-Attribut ? + // maybe as CSS1 attribute ? OutCSS1_HintSpanTag( rWrt, rHt ); } @@ -2800,7 +2786,7 @@ static Writer& OutHTML_SwCrossedOut( Writer& rWrt, const SfxPoolItem& rHt ) if( rHTMLWrt.m_bOutOpts ) return rWrt; - // Wegen Netscape schrieben wir hier STRIKE und nicht S raus! + // Because of Netscape, we output STRIKE and not S! const FontStrikeout nStrike = static_cast (rHt).GetStrikeout(); if( STRIKEOUT_NONE != nStrike ) { @@ -2808,7 +2794,7 @@ static Writer& OutHTML_SwCrossedOut( Writer& rWrt, const SfxPoolItem& rHt ) } else if( rHTMLWrt.m_bCfgOutStyles && rHTMLWrt.m_bTextAttr ) { - // vielleicht als CSS1-Attribut ? + // maybe as CSS1 attribute? OutCSS1_HintSpanTag( rWrt, rHt ); } @@ -2838,7 +2824,7 @@ static Writer& OutHTML_SvxEscapement( Writer& rWrt, const SfxPoolItem& rHt ) } else if( rHTMLWrt.m_bCfgOutStyles && rHTMLWrt.m_bTextAttr ) { - // vielleicht als CSS1-Attribut ? + // maybe as CSS1 attribute? OutCSS1_HintSpanTag( rWrt, rHt ); } @@ -2880,8 +2866,8 @@ static Writer& OutHTML_SwFlyCnt( Writer& rWrt, const SfxPoolItem& rHt ) return rWrt; } -// Das ist jetzt unser Blink-Item. Blinkend wird eingeschaltet, indem man -// das Item auf true setzt! +// This is now our Blink item. Blinking is activated by setting the item to +// true! static Writer& OutHTML_SwBlink( Writer& rWrt, const SfxPoolItem& rHt ) { SwHTMLWriter& rHTMLWrt = static_cast (rWrt); @@ -2894,7 +2880,7 @@ static Writer& OutHTML_SwBlink( Writer& rWrt, const SfxPoolItem& rHt ) } else if( rHTMLWrt.m_bCfgOutStyles && rHTMLWrt.m_bTextAttr ) { - // vielleicht als CSS1-Attribut ? + // maybe as CSS1 attribute? OutCSS1_HintSpanTag( rWrt, rHt ); } @@ -3030,7 +3016,7 @@ static Writer& OutHTML_SwFormatINetFormat( Writer& rWrt, const SfxPoolItem& rHt if( rHTMLWrt.m_bTagOn ) { - // ggf. ein noch offenes Attribut voruebergehend beenden + // if necessary, temporarily close an attribute that is still open if( rHTMLWrt.m_aINetFormats.size() ) { SwFormatINetFormat *pINetFormat = @@ -3038,22 +3024,21 @@ static Writer& OutHTML_SwFormatINetFormat( Writer& rWrt, const SfxPoolItem& rHt OutHTML_INetFormat( rWrt, *pINetFormat, false ); } - // jetzt das neue aufmachen + // now, open the new one OutHTML_INetFormat( rWrt, rINetFormat, true ); - // und merken + // and remember it SwFormatINetFormat *pINetFormat = new SwFormatINetFormat( rINetFormat ); rHTMLWrt.m_aINetFormats.push_back( pINetFormat ); } else { - // das OutHTML_INetFormat( rWrt, rINetFormat, false ); - OSL_ENSURE( rHTMLWrt.m_aINetFormats.size(), "da fehlt doch ein URL-Attribut" ); + OSL_ENSURE( rHTMLWrt.m_aINetFormats.size(), "there must be a URL attribute missing" ); if( rHTMLWrt.m_aINetFormats.size() ) { - // das eigene Attribut vom Stack holen + // get its own attribute from the stack SwFormatINetFormat *pINetFormat = rHTMLWrt.m_aINetFormats.back(); rHTMLWrt.m_aINetFormats.pop_back(); delete pINetFormat; @@ -3061,8 +3046,7 @@ static Writer& OutHTML_SwFormatINetFormat( Writer& rWrt, const SfxPoolItem& rHt if( !rHTMLWrt.m_aINetFormats.empty() ) { - // es ist noch ein Attribut auf dem Stack, das wieder geoeffnet - // werden muss + // there is still an attribute on the stack that must be reopened SwFormatINetFormat *pINetFormat = rHTMLWrt.m_aINetFormats.back(); OutHTML_INetFormat( rWrt, *pINetFormat, true ); } @@ -3091,7 +3075,7 @@ static Writer& OutHTML_SwTextCharFormat( Writer& rWrt, const SfxPoolItem& rHt ) return rWrt; const SwHTMLFormatInfo *pFormatInfo = it->get(); - OSL_ENSURE( pFormatInfo, "Wieso gint es keine Infos ueber die Zeichenvorlage?" ); + OSL_ENSURE( pFormatInfo, "Why is there no information about the character style?" ); if( rHTMLWrt.m_bTagOn ) { @@ -3170,10 +3154,8 @@ static Writer& OutHTML_SvxAdjust( Writer& rWrt, const SfxPoolItem& rHt ) } /* - * lege hier die Tabellen fuer die HTML-Funktions-Pointer auf - * die Ausgabe-Funktionen an. - * Es sind lokale Strukturen, die nur innerhalb der HTML-DLL - * bekannt sein muessen. + * here, define the table for the HTML function pointers to the output + * functions. */ SwAttrFnTab aHTMLAttrFnTab = { @@ -3195,9 +3177,9 @@ SwAttrFnTab aHTMLAttrFnTab = { /* RES_CHRATR_WORDLINEMODE */ nullptr, /* RES_CHRATR_AUTOKERN */ nullptr, /* RES_CHRATR_BLINK */ OutHTML_SwBlink, -/* RES_CHRATR_NOHYPHEN */ nullptr, // Neu: nicht trennen -/* RES_CHRATR_NOLINEBREAK */ nullptr, // Neu: nicht umbrechen -/* RES_CHRATR_BACKGROUND */ OutHTML_CSS1Attr, // Neu: Zeichenhintergrund +/* RES_CHRATR_NOHYPHEN */ nullptr, // New: don't hyphenate +/* RES_CHRATR_NOLINEBREAK */ nullptr, // New: don't line-break +/* RES_CHRATR_BACKGROUND */ OutHTML_CSS1Attr, // New: character background /* RES_CHRATR_CJK_FONT */ OutHTML_SvxFont, /* RES_CHRATR_CJK_FONTSIZE */ OutHTML_SvxFontHeight, /* RES_CHRATR_CJK_LANGUAGE */ OutHTML_SvxLanguage, @@ -3250,7 +3232,7 @@ SwAttrFnTab aHTMLAttrFnTab = { /* RES_PARATR_TABSTOP */ nullptr, /* RES_PARATR_HYPHENZONE*/ nullptr, /* RES_PARATR_DROP */ OutHTML_CSS1Attr, -/* RES_PARATR_REGISTER */ nullptr, // neu: Registerhaltigkeit +/* RES_PARATR_REGISTER */ nullptr, // new: register-true /* RES_PARATR_NUMRULE */ nullptr, // Dummy: /* RES_PARATR_SCRIPTSPACE */ nullptr, // Dummy: /* RES_PARATR_HANGINGPUNCTUATION */ nullptr, // Dummy: -- cgit