[Libreoffice-commits] core.git: sw/source
Julian Mehne
github at nmehne.de
Mon Aug 8 13:33:54 UTC 2016
sw/source/filter/html/htmlatr.cxx | 598 +++++++++++++++-----------------
sw/source/filter/html/htmlflywriter.cxx | 205 +++++-----
2 files changed, 391 insertions(+), 412 deletions(-)
New commits:
commit 2175ea13ce37e46e83c3bd7da747eb2552a4030c
Author: Julian Mehne <github at nmehne.de>
Date: Thu Aug 4 20:13:48 2016 +0200
tdf#39468: Translate German comments
Change-Id: Ie1bfc2f976f0f53e320cba0a69eb9f258415d8e6
Reviewed-on: https://gerrit.libreoffice.org/27885
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Michael Stahl <mstahl at redhat.com>
diff --git a/sw/source/filter/html/htmlatr.cxx b/sw/source/filter/html/htmlatr.cxx
index e04bc35..b895f43 100644
--- a/sw/source/filter/html/htmlatr.cxx
+++ b/sw/source/filter/html/htmlatr.cxx
@@ -119,7 +119,7 @@ sal_uInt16 SwHTMLWriter::GetDefListLvl( const OUString& rNm, sal_uInt16 nPoolId
void SwHTMLWriter::OutAndSetDefList( sal_uInt16 nNewLvl )
{
- // eventuell muss erst mal eine Liste aufgemacht werden
+ // possibly, we first need to start a new list
if( m_nDefListLvl < nNewLvl )
{
// output </pre> for the previous(!) pararagraph, if required.
@@ -130,7 +130,7 @@ void SwHTMLWriter::OutAndSetDefList( sal_uInt16 nNewLvl )
ChangeParaToken( 0 );
- // entsprechend dem Level-Unterschied schreiben!
+ // write according to the level difference
for( sal_uInt16 i=m_nDefListLvl; i<nNewLvl; i++ )
{
if( m_bLFPossible )
@@ -185,29 +185,26 @@ sal_uInt16 SwHTMLWriter::GetCSS1ScriptForScriptType( sal_uInt16 nScriptType )
return nRet;
}
-// fuer die Formate muesste eine einzige Ausgabe-Funktion genuegen !
+// a single output function should be enough for all formats
/*
- * Formate wie folgt ausgeben:
- * - fuer Formate, fuer die es entsprechende HTML-Tags gibt wird das
- * Tag ausgegeben
- * - fuer alle anderen wird ein Absatz-Tag <P> ausgegeben und bUserFormat
- * gesetzt
- * - Wenn eine Absatz-Ausrichtung am uebergebenen Item-Set des Nodes
- * oder im Item-Set des Format gesetzt ist, wird ein ALIGN=xxx ausgegeben,
- * sofern HTML es zulaesst
- * - in jedem Fall wird harte Attributierung als STYLE-Option geschrieben.
- * Wenn bUserFormat nicht gesetzt ist, wird nur der uebergebene Item-Set
- * betrachtet. Sonst werden auch Attribute des Formats ausgegeben.
+ * Output the formats as follows
+ * - output the tag for formats for which a corresponding HTML tag exist
+ * - for all the other formats, output a paragraph tag <P> 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<SfxItemSet> pItemSet; // harte Attributierung
+ OString aToken; // End token to be output
+ std::unique_ptr<SfxItemSet> pItemSet; // hard attribute
- bool bInNumBulList; // in einer Aufzaehlungs-Liste;
- bool bParaPossible; // ein </P> darf zusaetzlich ausgegeben werden
- bool bOutPara; // ein </P> soll ausgegeben werden
+ bool bInNumBulList; // in an enumerated list;
+ bool bParaPossible; // a </P> may be output additionally
+ bool bOutPara; // a </P> is supposed to be output
bool bOutDiv; // write a </DIV>
SwHTMLTextCollOutputInfo() :
@@ -241,39 +238,40 @@ SwHTMLFormatInfo::SwHTMLFormatInfo( const SwFormat *pF, SwDoc *pDoc, SwDoc *pTem
, bScriptDependent( false )
{
sal_uInt16 nRefPoolId = 0;
- // Den Selektor des Formats holen
+ // Get the selector of the format
sal_uInt16 nDeep = SwHTMLWriter::GetCSS1Selector( pFormat, aToken, aClass,
nRefPoolId );
OSL_ENSURE( nDeep ? !aToken.isEmpty() : aToken.isEmpty(),
- "Hier stimmt doch was mit dem Token nicht!" );
+ "Something seems to be wrong with this token!" );
OSL_ENSURE( nDeep ? nRefPoolId != 0 : nRefPoolId == 0,
- "Hier stimmt doch was mit der Vergleichs-Vorlage nicht!" );
+ "Something seems to be wrong with the comparison style!" );
bool bTextColl = pFormat->Which() == RES_TXTFMTCOLL ||
pFormat->Which() == RES_CONDTXTFMTCOLL;
- const SwFormat *pReferenceFormat = nullptr; // Vergleichs-Format
+ const SwFormat *pReferenceFormat = nullptr; // Comparison format
if( nDeep != 0 )
{
- // Es ist eine HTML-Tag-Vorlage oder die Vorlage ist von einer
- // solchen abgeleitet
+ // It's an HTML-tag style or this style is derived from such
+ // a style.
if( !bOutStyles )
{
- // wenn keine Styles exportiert werden, muss evtl. zusaetlich
- // harte Attributierung geschrieben werden
+ // if no styles are exported, it may be necessary to additionally
+ // write hard attribute
switch( nDeep )
{
case CSS1_FMT_ISTAG:
case CSS1_FMT_CMPREF:
- // fuer HTML-Tag-Vorlagen die Unterscheide zum Original
- // (sofern verfuegbar)
+ // for HTML-tag styles the differences to the original
+ // (if available)
pReferenceFormat = SwHTMLWriter::GetTemplateFormat( nRefPoolId,
&pTemplate->getIDocumentStylePoolAccess() );
break;
default:
- // sonst die zur HTML-Tag-Vorlage des Originals oder des
- // aktuellen Doks, wenn die nicht verfuegbar ist
+ // otherwise, the differences to the HTML-tag style of the
+ // original or the ones to the the current document, if it the
+ // HTML-tag style is not available
if( pTemplate )
pReferenceFormat = SwHTMLWriter::GetTemplateFormat( nRefPoolId,
&pTemplate->getIDocumentStylePoolAccess() );
@@ -285,10 +283,10 @@ SwHTMLFormatInfo::SwHTMLFormatInfo( const SwFormat *pF, SwDoc *pDoc, SwDoc *pTem
}
else if( bTextColl )
{
- // Nicht von einer HTML-Tag-Vorlage abgeleitete Absatz-Vorlagen
- // muessen als harte Attributierung relativ zur Textkoerper-Volage
- // exportiert werden. Fuer Nicht-Styles-Export sollte die der
- // HTML-Vorlage als Referenz dienen
+ // HTML-tag styles that are not derived from a paragraph style
+ // must be exported as hard attribute relative to the text-body
+ // style. For a 'not-styles' export, the one of the HTML style
+ // should be used as a reference
if( !bOutStyles && pTemplate )
pReferenceFormat = pTemplate->getIDocumentStylePoolAccess().GetTextCollFromPool( RES_POOLCOLL_TEXT, false );
else
@@ -299,9 +297,9 @@ SwHTMLFormatInfo::SwHTMLFormatInfo( const SwFormat *pF, SwDoc *pDoc, SwDoc *pTem
{
pItemSet = new SfxItemSet( *pFormat->GetAttrSet().GetPool(),
pFormat->GetAttrSet().GetRanges() );
- // wenn Unterschiede zu einer anderen Vorlage geschrieben werden
- // sollen ist harte Attributierung noetig. Fuer Vorlagen, die
- // nicht von HTML-Tag-Vorlagen abgeleitet sind, gilt das immer
+ // if the differences to a different style are supposed to be
+ // written, hard attribute is necessary. This is always true
+ // for styles that are not derived from HTML-tag styles.
pItemSet->Set( pFormat->GetAttrSet() );
@@ -310,8 +308,8 @@ SwHTMLFormatInfo::SwHTMLFormatInfo( const SwFormat *pF, SwDoc *pDoc, SwDoc *pTem
SwHTMLWriter::SubtractItemSet( *pItemSet, pReferenceFormat->GetAttrSet(),
bSetDefaults, bClearSame );
- // einen leeren Item-Set gleich loeschen, das spart speater
- // Arbeit
+ // delete ItemSet that is empty straight away. This will save work
+ // later on
if( !pItemSet->Count() )
{
delete pItemSet;
@@ -372,8 +370,8 @@ SwHTMLFormatInfo::SwHTMLFormatInfo( const SwFormat *pF, SwDoc *pDoc, SwDoc *pTem
}
}
- // Die diversen default-Abstaende aus der Vorlage oder der
- // Vergleischs-Vorlage merken
+ // remember all the different default spacings from the style or
+ // the comparison style.
const SvxLRSpaceItem &rLRSpace =
(pReferenceFormat ? pReferenceFormat : pFormat)->GetLRSpace();
nLeftMargin = rLRSpace.GetTextLeft();
@@ -430,26 +428,26 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
SwHTMLTextCollOutputInfo& rInfo )
{
OSL_ENSURE( RES_CONDTXTFMTCOLL==rFormat.Which() || RES_TXTFMTCOLL==rFormat.Which(),
- "keine Absatz-Vorlage" );
+ "not a paragraph style" );
SwHTMLWriter & rHWrt = static_cast<SwHTMLWriter&>(rWrt);
- // Erstmal ein par Flags ...
+ // First, some flags
sal_uInt16 nNewDefListLvl = 0;
sal_uInt16 nNumStart = USHRT_MAX;
bool bForceDL = false;
bool bDT = false;
- rInfo.bInNumBulList = false; // Wir sind in einer Liste?
- bool bNumbered = false; // Der aktuelle Absatz ist numeriert
- bool bPara = false; // das aktuelle Token ist <P>
- rInfo.bParaPossible = false; // ein <P> 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 <P>
+ rInfo.bParaPossible = false; // a <P> 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,
- "<PRE> wurde nicht vor <LI> beendet." );
+ "<PRE> was not closed before <LI>." );
}
}
- // Jetzt holen wir das Token und ggf. die Klasse
+ // Now, we're getting the token and, if necessary, the class
std::unique_ptr<SwHTMLFormatInfo> pTmpInfo(new SwHTMLFormatInfo(&rFormat));
SwHTMLFormatInfo *pFormatInfo;
SwHTMLFormatInfos::iterator it = rHWrt.m_TextCollInfos.find( pTmpInfo );
@@ -512,13 +510,13 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
pFormatInfo->bScriptDependent = true;
}
- // Jetzt wird festgelegt, was aufgrund des Tokens so moeglich ist
- sal_uInt16 nToken = 0; // Token fuer Tag-Wechsel
- bool bOutNewLine = false; // nur ein LF ausgeben?
+ // Now, we define what is possible due to the token
+ sal_uInt16 nToken = 0; // token for tag change
+ bool bOutNewLine = false; // only output a single LF?
if( !pFormatInfo->aToken.isEmpty() )
{
- // Es ist eine HTML-Tag-Vorlage oder die Vorlage ist von einer
- // solchen abgeleitet
+ // It is an HTML-tag style or the style is derived from such a
+ // style.
rInfo.aToken = pFormatInfo->aToken;
if (rInfo.aToken == OOO_STRING_SVTOOLS_HTML_address)
@@ -558,21 +556,21 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
}
else
{
- // alle Vorlagen, die nicht einem HTML-Tag entsprechen oder von
- // diesem abgeleitet sind, werden als <P> exportiert
+ // all styles that do not correspond to an HTML tag, or that are
+ // not derived from it, are exported as <P>
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<const SvxULSpaceItem &>(pNodeItemSet->Get(RES_UL_SPACE))
: rFormat.GetULSpace();
@@ -611,15 +609,15 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
if( bOutNewLine )
{
- // nur einen Zeilen-Umbruch (ohne Einrueckung) am Absatz-Anfang
- // ausgeben
- rInfo.aToken.clear(); // kein End-Tag ausgeben
+ // output a line break (without indentation) at the beginning of the
+ // paragraph, only
+ rInfo.aToken.clear(); // don't output an end tag
rWrt.Strm().WriteCharPtr( SAL_NEWLINE_STRING );
return;
}
- // soll ein ALIGN=... geschrieben werden?
+ // should an ALIGN=... be written?
const SfxPoolItem* pAdjItem = nullptr;
const SfxPoolItem* pItem;
@@ -630,13 +628,12 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
pAdjItem = pItem;
}
- // Unteren Absatz-Abstand beachten ? (nie im letzen Absatz von
- // Tabellen)
+ // Consider the lower spacing of the paragraph? (never in the last
+ // paragraph of tables)
bool bUseParSpace = !rHWrt.m_bOutTable ||
(rWrt.pCurPam->GetPoint()->nNode.GetIndex() !=
rWrt.pCurPam->GetMark()->nNode.GetIndex());
- // Wenn Styles exportiert werden, wird aus eingerueckten Absaetzen
- // eine Definitions-Liste
+ // If styles are exported, indented paragraphs become definition lists
const SvxLRSpaceItem& rLRSpace =
pNodeItemSet ? static_cast<const SvxLRSpaceItem &>(pNodeItemSet->Get(RES_LR_SPACE))
: rFormat.GetLRSpace();
@@ -671,8 +668,7 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
if( bForceDL && bDT )
{
- // Statt eines DD muessen wir hier auch ein DT der Ebene
- // darueber nehmen
+ // Instead of a DD we must use a DT from the level above this one.
nNewDefListLvl++;
}
else if( !nNewDefListLvl && !rHWrt.m_bCfgOutStyles && bPara &&
@@ -681,7 +677,7 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
(!pAdjItem || SVX_ADJUST_LEFT==
static_cast<const SvxAdjustItem *>(pAdjItem)->GetAdjust()) )
{
- // Absaetze ohne unteren Abstand als DT exportieren
+ // Export paragraphs without a lower spacing as DT
nNewDefListLvl = 1;
bDT = true;
rInfo.bParaPossible = false;
@@ -692,10 +688,10 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
if( nNewDefListLvl != rHWrt.m_nDefListLvl )
rHWrt.OutAndSetDefList( nNewDefListLvl );
- // ggf. eine Aufzaehlung- oder Numerierungsliste beginnen
+ // if necessary, start a bulleted or numbered list
if( rInfo.bInNumBulList )
{
- OSL_ENSURE( !rHWrt.m_nDefListLvl, "DL in OL geht nicht!" );
+ OSL_ENSURE( !rHWrt.m_nDefListLvl, "DL cannot be inside OL!" );
OutHTML_NumBulListStart( rHWrt, aNumInfo );
if( bNumbered )
@@ -707,8 +703,8 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
}
}
- // Die Defaults aus der Vorlage merken, denn sie muessen nicht
- // exportiert werden
+ // Take the defaults of the style, because they don't need to be
+ // exported
rHWrt.m_nDfltLeftMargin = pFormatInfo->nLeftMargin;
rHWrt.m_nDfltRightMargin = pFormatInfo->nRightMargin;
rHWrt.m_nDfltFirstLineIndent = pFormatInfo->nFirstLineIndent;
@@ -718,30 +714,29 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
if( !rHWrt.IsHTMLMode( HTMLMODE_LSPACE_IN_NUMBUL ) )
rHWrt.m_nDfltLeftMargin = rLRSpace.GetTextLeft();
- // In Numerierungs-Listen keinen Ertzeilen-Einzug ausgeben.
+ // In numbered lists, don't output a first line indent.
rHWrt.m_nFirstLineIndent = rLRSpace.GetTextFirstLineOfst();
}
if( rInfo.bInNumBulList && bNumbered && bPara && !rHWrt.m_bCfgOutStyles )
{
- // ein einzelnes LI hat keinen Abstand
+ // a single LI doesn't have spacing
rHWrt.m_nDfltTopMargin = 0;
rHWrt.m_nDfltBottomMargin = 0;
}
else if( rHWrt.m_nDefListLvl && bPara )
{
- // ein einzelnes DD hat auch keinen Abstand
+ // a single DD doesn't have spacing, as well
rHWrt.m_nDfltTopMargin = 0;
rHWrt.m_nDfltBottomMargin = 0;
}
else
{
rHWrt.m_nDfltTopMargin = pFormatInfo->nTopMargin;
- // Wenn im letzten Absatz einer Tabelle der
- // untere Absatz-Abstand veraendert wird, vertut sich
- // Netscape total. Deshalb exportieren wir hier erstmal
- // nichts, indem wir den Abstand aus dem Absatz als Default
- // setzen.
+ // if in the last paragraph of a table the lower paragraph spacing
+ // is changed, Netscape doesn't get it. That's why we don't
+ // export anything here for now, by setting this spacing to the
+ // default value.
if( rHWrt.m_bCfgNetscape4 && !bUseParSpace )
rHWrt.m_nDfltBottomMargin = rULSpace.GetLower();
else
@@ -755,15 +750,15 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
}
if( rHWrt.m_bLFPossible )
- rHWrt.OutNewLine(); // Absatz-Tag in neue Zeile
+ rHWrt.OutNewLine(); // paragraph tag on a new line
rInfo.bOutPara = false;
- // das ist jetzt unser neues Token
+ // this is now our new token
rHWrt.ChangeParaToken( nToken );
bool bHasParSpace = bUseParSpace && rULSpace.GetLower() > 0;
- // ggf ein List-Item aufmachen
+ // if necessary, start a new list item
if( rInfo.bInNumBulList && bNumbered )
{
HtmlWriter html(rWrt.Strm());
@@ -800,10 +795,9 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
rHWrt.OutNewLine();
}
- // fuer BLOCKQUOTE, ADDRESS und DD wird noch ein Absatz-Token
- // ausgegeben, wenn,
- // - keine Styles geschrieben werden, und
- // - ein untere Abstand oder eine Absatz-Ausrichtung existiert
+ // for BLOCKQUOTE, ADDRESS and DD we output another paragrah token, if
+ // - no styles are written and
+ // - a lower spacing or a paragraph alignment exists
OString aToken = rInfo.aToken;
if( !rHWrt.m_bCfgOutStyles && rInfo.bParaPossible && !bPara &&
(bHasParSpace || pAdjItem) )
@@ -842,16 +836,16 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
pNodeItemSet->Get( RES_FRAMEDIR ) )
: rFormat.GetFrameDir() ).GetValue() );
- // Ein <P> 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 <P>, 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 </P> geschrieben wenrden
+ // is a </P> supposed to be written?
rInfo.bOutPara =
bPara &&
( rHWrt.m_bCfgOutStyles || bHasParSpace );
- // wenn kein End-Tag geschrieben werden soll, es loeschen
+ // if no end tag is supposed to be written, delete it
if( bNoEndTag )
rInfo.aToken.clear();
}
if( nBulletGrfLvl != 255 )
{
- OSL_ENSURE( aNumInfo.GetNumRule(), "Wo ist die Numerierung geblieben???" );
- OSL_ENSURE( nBulletGrfLvl < MAXLEVEL, "So viele Ebenen gibt's nicht" );
+ OSL_ENSURE( aNumInfo.GetNumRule(), "Where is the numbering gone???" );
+ OSL_ENSURE( nBulletGrfLvl < MAXLEVEL, "There are not this many layers." );
const SwNumFormat& rNumFormat = aNumInfo.GetNumRule()->Get(nBulletGrfLvl);
OutHTML_BulletImage( rWrt, OOO_STRING_SVTOOLS_HTML_image, rNumFormat.GetBrush(),
rHWrt.m_aBulletGrfs[nBulletGrfLvl]);
@@ -959,7 +953,7 @@ void OutHTML_SwFormat( Writer& rWrt, const SwFormat& rFormat,
rHWrt.GetNumInfo() = aNumInfo;
- // die Defaults zuruecksetzen
+ // reset the defaults
rHWrt.m_nDfltLeftMargin = 0;
rHWrt.m_nDfltRightMargin = 0;
rHWrt.m_nDfltFirstLineIndent = 0;
@@ -973,12 +967,12 @@ void OutHTML_SwFormatOff( Writer& rWrt, const SwHTMLTextCollOutputInfo& rInfo )
{
SwHTMLWriter & rHWrt = static_cast<SwHTMLWriter&>(rWrt);
- // wenn es kein Token gibt haben wir auch nichts auszugeben
+ // if there is no token, we don't need to output anything
if( rInfo.aToken.isEmpty() )
{
rHWrt.FillNextNumInfo();
const SwHTMLNumRuleInfo& rNextInfo = *rHWrt.GetNextNumInfo();
- // Auch in PRE muss eine Bullet-Liste beendet werden
+ // a bulleted list must be closed in PRE as well
if( rInfo.bInNumBulList )
{
@@ -1000,10 +994,10 @@ void OutHTML_SwFormatOff( Writer& rWrt, const SwHTMLTextCollOutputInfo& rInfo )
if( rHWrt.m_bLFPossible )
rHWrt.OutNewLine( true );
- // fuer BLOCKQUOTE, ADDRESS und DD wird ggf noch ein
- // Absatz-Token ausgegeben, wenn
- // - keine Styles geschrieben werden, und
- // - ein untere Abstand existiert
+ // if necessary, for BLOCKQUOTE, ADDRESS and DD another paragraph token
+ // is output, if
+ // - no styles are written and
+ // - a lower spacing exists
if( rInfo.bParaPossible && rInfo.bOutPara )
HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), OOO_STRING_SVTOOLS_HTML_parabreak, false );
@@ -1022,7 +1016,7 @@ void OutHTML_SwFormatOff( Writer& rWrt, const SwHTMLTextCollOutputInfo& rInfo )
rHWrt.m_bLFPossible = true;
}
- // ggf. eine Aufzaehlung- oder Numerierungsliste beenden
+ // if necessary, close a bulleted or numbered list
if( rInfo.bInNumBulList )
{
rHWrt.FillNextNumInfo();
@@ -1076,8 +1070,8 @@ enum HTMLOnOffState { HTML_NOT_SUPPORTED, // unsupported Attribute
class HTMLEndPosLst
{
- HTMLStartEndPositions aStartLst; // nach Anfangs-Psoitionen sortierte Liste
- HTMLStartEndPositions aEndLst; // nach End-Psotionen sortierte Liste
+ HTMLStartEndPositions aStartLst; // list, sorted for start positions
+ HTMLStartEndPositions aEndLst; // list, sorted for end positions
std::deque<sal_Int32> aScriptChgLst; // positions where script changes
// 0 is not contained in this list,
// but the text length
@@ -1085,39 +1079,39 @@ class HTMLEndPosLst
// contained in aScriptChgList at the same index
std::vector<sal_uInt16> aScriptLst;
- SwDoc *pDoc; // das aktuelle Dokument
- SwDoc* pTemplate; // die HTML-Vorlage (oder 0)
- const Color* pDfltColor;// die Default-Vordergrund-Farbe
+ SwDoc *pDoc; // the current document
+ SwDoc* pTemplate; // the HTML template (or 0)
+ const Color* pDfltColor;// the default foreground colors
std::set<OUString>& rScriptTextStyles;
sal_uLong nHTMLMode;
- bool bOutStyles : 1; // werden Styles exportiert
+ bool bOutStyles : 1; // are styles exported
- // Eine SttEndPos in die Start- und Ende-Listen eintragen bzw. aus
- // ihnen loeschen, wobei die Ende-Position bekannt ist
+ // Insert/remove a SttEndPos in/from the Start and End lists.
+ // The end position is known.
void InsertItem_( HTMLStartEndPos *pPos, HTMLStartEndPositions::size_type nEndPos );
void RemoveItem_( HTMLStartEndPositions::size_type nEndPos );
- // die "Art" es Attributs ermitteln
+ // determine the 'type' of the attribute
HTMLOnOffState GetHTMLItemState( const SfxPoolItem& rItem );
- // Existiert ein bestimmtes On-Tag-Item
+ // does a specific OnTag item exist
bool ExistsOnTagItem( sal_uInt16 nWhich, sal_Int32 nPos );
- // Existiert ein Item zum ausschalten eines Attributs, das genauso
- // exportiert wird wie das uebergebene Item im gleichen Bereich?
+ // does an item exist that can be used to disable an attribute that
+ // is exported the same way as the supplied item in the same range?
bool ExistsOffTagItem( sal_uInt16 nWhich, sal_Int32 nStartPos,
sal_Int32 nEndPos );
- // das Ende eines gesplitteten Items anpassen
+ // adapt the end of a splitted item
void FixSplittedItem( HTMLStartEndPos *pPos, sal_Int32 nNewEnd,
HTMLStartEndPositions::size_type nStartPos );
- // Ein Attribut in die Listen eintragen und ggf. aufteilen
+ // insert an attribute in the lists and, if necessary, split it
void InsertItem( const SfxPoolItem& rItem, sal_Int32 nStart,
sal_Int32 nEnd );
- // Ein bereits vorhandenes Attribut aufteilen
+ // split an already existing attribute
void SplitItem( const SfxPoolItem& rItem, sal_Int32 nStart,
sal_Int32 nEnd );
@@ -1136,7 +1130,7 @@ public:
const OUString& rText, std::set<OUString>& rStyles );
~HTMLEndPosLst();
- // Ein Attribut einfuegen
+ // insert an attribute
void Insert( const SfxPoolItem& rItem, sal_Int32 nStart, sal_Int32 nEnd,
SwHTMLFormatInfos& rFormatInfos, bool bParaAttrs=false );
void Insert( const SfxItemSet& rItemSet, sal_Int32 nStart, sal_Int32 nEnd,
@@ -1158,8 +1152,8 @@ public:
void HTMLEndPosLst::InsertItem_( HTMLStartEndPos *pPos, HTMLStartEndPositions::size_type nEndPos )
{
- // In der Start-Liste das Attribut hinter allen vorher und an
- // der gleichen Position gestarteten Attributen einfuegen
+ // Insert the attribute in the Start list behind all attributes that
+ // were started before, or at the same position.
sal_Int32 nStart = pPos->GetStart();
HTMLStartEndPositions::size_type i {0};
@@ -1167,7 +1161,7 @@ void HTMLEndPosLst::InsertItem_( HTMLStartEndPos *pPos, HTMLStartEndPositions::s
++i;
aStartLst.insert( aStartLst.begin() + i, pPos );
- // die Position in der Ende-Liste wurde uebergeben
+ // the position in the End list was supplied
aEndLst.insert( aEndLst.begin() + nEndPos, pPos );
}
@@ -1175,7 +1169,7 @@ void HTMLEndPosLst::RemoveItem_( HTMLStartEndPositions::size_type nEndPos )
{
HTMLStartEndPos *pPos = aEndLst[nEndPos];
- // jetzt Suchen wir es in der Start-Liste
+ // now, we are looking for it in the Start list
HTMLStartEndPositions::iterator it =
std::find(aStartLst.begin(), aStartLst.end(), pPos );
OSL_ENSURE(it != aStartLst.end(), "Item not found in Start List!");
@@ -1343,18 +1337,18 @@ bool HTMLEndPosLst::ExistsOnTagItem( sal_uInt16 nWhich, sal_Int32 nPos )
{
if( pTest->GetStart() > nPos )
{
- // dieses uns alle folgenden Attribute beginnen spaeter
+ // this attribute, and all attributes that follow, start later
break;
}
else if( pTest->GetEnd() > nPos )
{
- // das Attribut beginnt vor oder an der aktuellen Position
- // und endet hinter ihr
+ // the attribute starts before, or at, the current position and
+ // ends after it
const SfxPoolItem *pItem = pTest->GetItem();
if( pItem->Which() == nWhich &&
HTML_ON_VALUE == GetHTMLItemState(*pItem) )
{
- // ein On-Tag-Attibut wurde gefunden
+ // an OnTag attribute was found
return true;
}
}
@@ -1377,14 +1371,14 @@ bool HTMLEndPosLst::ExistsOffTagItem( sal_uInt16 nWhich, sal_Int32 nStartPos,
{
if( pTest->GetStart() > nStartPos )
{
- // dieses uns alle folgenden Attribute beginnen spaeter
+ // this attribute, and all attributes that follow, start later
break;
}
else if( pTest->GetStart()==nStartPos &&
pTest->GetEnd()==nEndPos )
{
- // das Attribut beginnt vor oder an der aktuellen Position
- // und endet hinter ihr
+ // the attribute starts before or at the current position and
+ // ends after it
const SfxPoolItem *pItem = pTest->GetItem();
sal_uInt16 nTstWhich = pItem->Which();
if( (nTstWhich == RES_CHRATR_CROSSEDOUT ||
@@ -1392,8 +1386,8 @@ bool HTMLEndPosLst::ExistsOffTagItem( sal_uInt16 nWhich, sal_Int32 nStartPos,
nTstWhich == RES_CHRATR_BLINK) &&
HTML_OFF_VALUE == GetHTMLItemState(*pItem) )
{
- // Ein Off-Tag-Attibut wurde gefunden, das genauso
- // exportiert wird, wie das aktuelle Item
+ // an OffTag attribute was found that is exported the same
+ // way as the current item
return true;
}
}
@@ -1405,53 +1399,52 @@ bool HTMLEndPosLst::ExistsOffTagItem( sal_uInt16 nWhich, sal_Int32 nStartPos,
void HTMLEndPosLst::FixSplittedItem( HTMLStartEndPos *pPos, sal_Int32 nNewEnd,
HTMLStartEndPositions::size_type nStartPos )
{
- // die End-Position entsprechend fixen
+ // fix the end position accordingly
pPos->SetEnd( nNewEnd );
- // das Item aus der End-Liste entfernen
+ // remove the item from the End list
HTMLStartEndPositions::iterator it =
std::find(aEndLst.begin(), aEndLst.end(), pPos );
OSL_ENSURE(it != aEndLst.end(), "Item not found in End List!" );
if( it != aEndLst.end() )
aEndLst.erase( it );
- // es wird von nun an als letztes an der entsprechenden Position
- // beendet
+ // from now on, it is closed as the last one at the corresponding position
HTMLStartEndPositions::size_type nEndPos {0};
while( nEndPos < aEndLst.size() && aEndLst[nEndPos]->GetEnd() <= nNewEnd )
++nEndPos;
aEndLst.insert( aEndLst.begin() + nEndPos, pPos );
- // jetzt noch die spaeter gestarteten Attribute anpassen
+ // now, adjust the attributes that got started afterwards
for( HTMLStartEndPositions::size_type i = nStartPos+1; i<aStartLst.size(); ++i )
{
HTMLStartEndPos *pTest = aStartLst[i];
sal_Int32 nTestEnd = pTest->GetEnd();
if( pTest->GetStart() >= nNewEnd )
{
- // das Test-Attribut und alle folgenden beginnen, nachdem das
- // gesplittete Attribut endet
+ // the Test attribute and all the following ones start, after the
+ // splitted attribute ends
break;
}
else if( nTestEnd > nNewEnd )
{
- // das Test-Attribut beginnt, bevor das gesplittete Attribut
- // endet und endet danach, muss also auch gesplittet werden
+ // the Test attribute starts before the splitted attribute
+ // ends, and ends afterwards, i.e., it must be splitted, as well
- // das neue Ende setzen
+ // set the new end
pTest->SetEnd( nNewEnd );
- // das Attribut aus der End-Liste entfernen
+ // remove the attribute from the End list
it = std::find(aEndLst.begin(), aEndLst.end(), pTest );
OSL_ENSURE(it != aEndLst.end(), "Item not found in End List!" );
if( it != aEndLst.end() )
aEndLst.erase( it );
- // es endet jetzt als erstes Attribut an der entsprechenden
- // Position. Diese Position in der Ende-Liste kennen wir schon.
+ // it now ends as the first attribute in the respective position.
+ // We already know this position in the End list.
aEndLst.insert( aEndLst.begin() + nEndPos, pTest );
- // den "Rest" des Attributs neu einfuegen
+ // insert the 'rest' of the attribute
InsertItem( *pTest->GetItem(), nNewEnd, nTestEnd );
}
}
@@ -1467,28 +1460,28 @@ void HTMLEndPosLst::InsertItem( const SfxPoolItem& rItem, sal_Int32 nStart,
sal_Int32 nTestEnd = pTest->GetEnd();
if( nTestEnd <= nStart )
{
- // das Test-Attribut endet, bevor das neue beginnt
+ // the Test attribute ends, before the new one starts
continue;
}
else if( nTestEnd < nEnd )
{
if( pTest->GetStart() < nStart )
{
- // das Test-Attribut endet, bevor das neue endet. Das
- // neue Attribut muss deshalb aufgesplittet werden
+ // the Test attribute ends, before the new one ends. Thus, the
+ // new attribute must be splitted.
InsertItem_( new HTMLStartEndPos( rItem, nStart, nTestEnd ), i );
nStart = nTestEnd;
}
}
else
{
- // das Test-Attribut (und alle folgenden) endet, bevor das neue
- // endet
+ // the Test attribute (and all that follow) ends, before the new
+ // one ends
break;
}
}
- // ein Attribut muss noch eingefuegt werden
+ // one attribute must still be inserted
InsertItem_( new HTMLStartEndPos( rItem, nStart, nEnd ), i );
}
@@ -1497,8 +1490,8 @@ void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, sal_Int32 nStart,
{
sal_uInt16 nWhich = rItem.Which();
- // erstmal muessen wir die alten Items anhand der Startliste suchen
- // und die neuen Item-Bereiche festlegen
+ // first, we must search for the old items by using the start list and
+ // determine the new item range
for( HTMLStartEndPositions::size_type i=0; i<aStartLst.size(); ++i )
{
@@ -1508,16 +1501,15 @@ void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, sal_Int32 nStart,
if( nTestStart >= nEnd )
{
- // dieses und alle nachfolgenden Attribute beginnen spaeter
+ // this attribute, and all that follow, start later
break;
}
else if( nTestEnd > nStart )
{
- // das Test Attribut endet im zu loeschenenden Bereich
+ // the Test attribute ends in the range that must be deleted
const SfxPoolItem *pItem = pTest->GetItem();
- // nur entsprechende On-Tag Attribute muessen beruecksichtigt
- // werden
+ // only the corresponding OnTag attributes have to be considered
if( pItem->Which() == nWhich &&
HTML_ON_VALUE == GetHTMLItemState( *pItem ) )
{
@@ -1525,16 +1517,15 @@ void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, sal_Int32 nStart,
if( nTestStart < nStart )
{
- // der Start des neuen Attribut entspricht
- // dem neuen Ende des Attribts
+ // the start of the new attribute corresponds to the new
+ // end of the attribute
FixSplittedItem( pTest, nStart, i );
bDelete = false;
}
else
{
- // das Test-Item beginnt erst hinter dem neuen
- // Ende des Attribts und kann deshalb komplett
- // geloescht werden
+ // the Test item only starts after the new end of the
+ // attribute. Therefore, it can be completely erased.
aStartLst.erase( aStartLst.begin() + i );
i--;
@@ -1545,7 +1536,8 @@ void HTMLEndPosLst::SplitItem( const SfxPoolItem& rItem, sal_Int32 nStart,
aEndLst.erase( it );
}
- // ggf den zweiten Teil des gesplitteten Attribts einfuegen
+ // if necessary, insert the second part of the splitted
+ // attribute
if( nTestEnd > nEnd )
{
InsertItem( *pTest->GetItem(), nEnd, nTestEnd );
@@ -1612,24 +1604,23 @@ void HTMLEndPosLst::InsertNoScript( const SfxPoolItem& rItem,
sal_Int32 nStart, sal_Int32 nEnd,
SwHTMLFormatInfos& rFormatInfos, bool bParaAttrs )
{
- // kein Bereich ?? dann nicht aufnehmen, wird nie wirksam !!
+ // no range ?? in that case, don't take it, it will never take effect !!
if( nStart != nEnd )
{
bool bSet = false, bSplit = false;
switch( GetHTMLItemState(rItem) )
{
case HTML_ON_VALUE:
- // das Attribut wird ausgegeben, wenn es nicht sowieso
- // schon an ist
+ // output the attribute, if it isn't 'on', already
if( !ExistsOnTagItem( rItem.Which(), nStart ) )
bSet = true;
break;
case HTML_OFF_VALUE:
- // wenn das entsprechne Attribut an ist, wird es gesplittet,
- // Zusaetlich wird es aber als Style ausgegeben, wenn es nicht
- // am ganzen Absatz gesetzt ist, weil es dann ja schon mit dem
- // ABsatz-Tag ausgegeben wurde.
+ // If the corresponding attribute is 'on', split it.
+ // Additionally, output it as Style, if it is not set for the
+ // whole paragraph, because in that case it was already output
+ // together with the paragraph tag.
if( ExistsOnTagItem( rItem.Which(), nStart ) )
bSplit = true;
bSet = bOutStyles && !bParaAttrs &&
@@ -1637,16 +1628,15 @@ void HTMLEndPosLst::InsertNoScript( const SfxPoolItem& rItem,
break;
case HTML_REAL_VALUE:
- // das Attribut kann immer ausgegeben werden
+ // we can always output the attribute
bSet = true;
break;
case HTML_STYLE_VALUE:
- // Das Attribut kann nur als CSS1 ausgegeben werden. Wenn
- // es am Absatz gesetzt ist, wurde es schon mit dem
- // Absatz-Tag ausgegeben. Einzige Ausnahme ist das
- // Zeichen-Hintergrund-Attribut. Es muss immer wie ein
- // Hint behandelt werden.
+ // We can only output the attribute as CSS1. If it is set for
+ // the paragraph, it was already output with the paragraph tag.
+ // The only exception is the character-background attribute. This
+ // attribute must always be handled like a Hint.
bSet = bOutStyles &&
(!bParaAttrs
|| rItem.Which()==RES_CHRATR_BACKGROUND
@@ -1657,15 +1647,15 @@ void HTMLEndPosLst::InsertNoScript( const SfxPoolItem& rItem,
case HTML_CHRFMT_VALUE:
{
OSL_ENSURE( RES_TXTATR_CHARFMT == rItem.Which(),
- "Doch keine Zeichen-Vorlage" );
+ "Not a character style after all" );
const SwFormatCharFormat& rChrFormat = static_cast<const SwFormatCharFormat&>(rItem);
const SwCharFormat* pFormat = rChrFormat.GetCharFormat();
const SwHTMLFormatInfo *pFormatInfo = GetFormatInfo( *pFormat, rFormatInfos );
if( !pFormatInfo->aToken.isEmpty() )
{
- // das Zeichenvorlagen-Tag muss vor den harten
- // Attributen ausgegeben werden
+ // output the character style tag before the hard
+ // attributes
InsertItem( rItem, nStart, nEnd );
}
if( pFormatInfo->pItemSet )
@@ -1686,11 +1676,11 @@ void HTMLEndPosLst::InsertNoScript( const SfxPoolItem& rItem,
break;
case HTML_COLOR_VALUE:
- // Eine Vordergrund-Farbe als Absatz-Attribut wird nur
- // exportiert, wenn sie nicht der Default-Farbe entspricht.
+ // A foreground color as a paragraph attribute is only exported if
+ // it is not the same as the default color.
{
OSL_ENSURE( RES_CHRATR_COLOR == rItem.Which(),
- "Doch keine Vordergrund-Farbe" );
+ "Not a foreground color, after all" );
Color aColor( static_cast<const SvxColorItem&>(rItem).GetValue() );
if( COL_AUTO == aColor.GetColor() )
aColor.SetColor( COL_BLACK );
@@ -1702,12 +1692,12 @@ void HTMLEndPosLst::InsertNoScript( const SfxPoolItem& rItem,
case HTML_DROPCAP_VALUE:
{
OSL_ENSURE( RES_PARATR_DROP == rItem.Which(),
- "Doch kein Drop-Cap" );
+ "Not a drop cap, after all" );
const SwFormatDrop& rDrop = static_cast<const SwFormatDrop&>(rItem);
nEnd = nStart + rDrop.GetChars();
if( !bOutStyles )
{
- // Zumindest die Attribute der Zeichenvorlage uebernehmen
+ // At least use the attributes of the character style
const SwCharFormat *pCharFormat = rDrop.GetCharFormat();
if( pCharFormat )
{
@@ -1856,9 +1846,9 @@ void HTMLEndPosLst::Insert( const SwDrawFrameFormat& rFormat, sal_Int32 nPos,
if( pTextObj )
{
- // die Edit-Engine-Attribute des Objekts als SW-Attribute holen
- // und als Hints einsortieren. Wegen der Menge der Hints werden
- // Styles hierbei nicht beruecksichtigt!
+ // get the edit engine attributes of the object as SW attributes and
+ // insert them as hints. Because of the amount of Hints the styles
+ // are not considered!
const SfxItemSet& rFormatItemSet = rFormat.GetAttrSet();
SfxItemSet aItemSet( *rFormatItemSet.GetPool(), RES_CHRATR_BEGIN,
RES_CHRATR_END );
@@ -1878,7 +1868,7 @@ sal_uInt16 HTMLEndPosLst::GetScriptAtPos( sal_Int32 nPos, sal_uInt16 nWeak )
size_t i=0;
while( i < nScriptChgs && nPos >= aScriptChgLst[i] )
i++;
- OSL_ENSURE( i < nScriptChgs, "script list is to short" );
+ OSL_ENSURE( i < nScriptChgs, "script list is too short" );
if( i < nScriptChgs )
{
if( i18n::ScriptType::WEAK == aScriptLst[i] )
@@ -1904,7 +1894,7 @@ void HTMLEndPosLst::OutStartAttrs( SwHTMLWriter& rHWrt, sal_Int32 nPos,
++nCharBoxIndex;
}
- // die Attribute in der Start-Liste sind aufsteigend sortiert
+ // the attributes of the start list are sorted in ascending order
for( HTMLStartEndPositions::size_type i=0; i< aStartLst.size(); ++i )
{
HTMLStartEndPos *pPos = nullptr;
@@ -1923,12 +1913,12 @@ void HTMLEndPosLst::OutStartAttrs( SwHTMLWriter& rHWrt, sal_Int32 nPos,
sal_Int32 nStart = pPos->GetStart();
if( nStart > nPos )
{
- // dieses und alle folgenden Attribute werden erst noch geoeffnet
+ // this attribute, and all that follow, will be opened later on
break;
}
else if( nStart == nPos )
{
- // das Attribut ausgeben
+ // output the attribute
sal_uInt16 nCSS1Script = rHWrt.m_nCSS1Script;
sal_uInt16 nWhich = pPos->GetItem()->Which();
if( RES_TXTATR_CHARFMT == nWhich ||
@@ -1953,7 +1943,7 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, sal_Int32 nPos,
{
rHWrt.m_bTagOn = false;
- // die Attribute in der End-Liste sind aufsteigend sortiert
+ // the attributes in the End list are sorted in ascending order
HTMLStartEndPositions::size_type i {0};
while( i < aEndLst.size() )
{
@@ -1965,7 +1955,7 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, sal_Int32 nPos,
if( pContext )
{
HTMLOutFuncs::FlushToAscii( rHWrt.Strm(), *pContext );
- pContext = nullptr; // one time ony
+ pContext = nullptr; // one time only
}
// Skip closing span if next character span has the same border (border merge)
bool bSkipOut = false;
@@ -1998,21 +1988,21 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, sal_Int32 nPos,
}
else if( nEnd > nPos )
{
- // dieses und alle folgenden Attribute werden erst spaeter beendet
+ // this attribute, and all that follow, are closed later on
break;
}
else
{
- // Das Attribut wird vor der aktuellen Position beendet. Das
- // darf nicht sein, aber wie koennen trotzdem damit umgehen
+ // The attribute is closed before the current position. This
+ // is not allowed, but we can handle it anyway.
OSL_ENSURE( nEnd >= nPos,
- "Das Attribut sollte schon laengst beendet sein" );
+ "The attribute should've been closed a long time ago" );
i++;
}
}
}
-/* Ausgabe der Nodes */
+/* Output of the nodes*/
Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode )
{
const SwTextNode * pNd = &static_cast<const SwTextNode&>(rNode);
@@ -2021,25 +2011,25 @@ Writer& OutHTML_SwTextNode( Writer& rWrt, const SwContentNode& rNode )
const OUString& rStr = pNd->GetText();
sal_Int32 nEnd = rStr.getLength();
- // Besonderheit: leere Node und HR-Vorlage (horizontaler Strich)
- // nur ein <HR> ausgeben
+ // special case: empty node and HR style (horizontal rule)
+ // output a <HR>, only
sal_uInt16 nPoolId = pNd->GetAnyFormatColl().GetPoolFormatId();
// Handle horizontal rule <hr>
if (!nEnd &&
(RES_POOLCOLL_HTML_HR==nPoolId || pNd->GetAnyFormatColl().GetName() == OOO_STRING_SVTOOLS_HTML_horzrule))
{
- // dann die absatz-gebundenen Grafiken/OLE-Objekte im Absatz
- // MIB 8.7.97: Ein <PRE> spannen wir um die Linie auf. Dann stimmen
- // zwar die Abstaende nicht, aber sonst bekommen wir einen leeren
- // Absatz hinter dem <HR> 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 <PRE>. This means that the
+ // spacings are wrong, but otherwise we get an empty paragraph
+ // after the <HR> 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<const SvxFontHeightItem *>(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
- // <BR> ein
+ // If the last paragraph of a table cell is empty and we export
+ // for the MS-IE, we write a instead of a <BR>
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<SwHTMLWriter&>(rWrt).m_bCfgOutStyles && static_cast<SwHTMLWriter&>(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<const SvxCrossedOutItem&>(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<SwHTMLWriter&>(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:
diff --git a/sw/source/filter/html/htmlflywriter.cxx b/sw/source/filter/html/htmlflywriter.cxx
index 642816a..b829492 100644
--- a/sw/source/filter/html/htmlflywriter.cxx
+++ b/sw/source/filter/html/htmlflywriter.cxx
@@ -165,14 +165,14 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
if( RES_DRAWFRMFMT == rFrameFormat.Which() )
{
- // Als Default irgendein Zeichen-Objekt
+ // use an arbitrary draw object as the default value
eType = HTML_FRMTYPE_DRAW;
const SdrObject *pObj =
SwHTMLWriter::GetMarqueeTextObj( static_cast<const SwDrawFrameFormat &>(rFrameFormat) );
if( pObj )
{
- // Laufschrift
+ // scrolling text
rpSdrObj = pObj;
eType = HTML_FRMTYPE_MARQUEE;
}
@@ -182,7 +182,7 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
if( pObj )
{
- // Form-Control
+ // Form control
rpSdrObj = pObj;
eType = HTML_FRMTYPE_CONTROL;
}
@@ -190,7 +190,7 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
}
else
{
- // Als Default ein Textrahmen
+ // use a text frame as the default value
eType = HTML_FRMTYPE_TEXT;
const SwFormatContent& rFlyContent = rFrameFormat.GetContent();
@@ -199,12 +199,12 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
if( pNd->IsGrfNode() )
{
- // Grafik - Node
+ // graphic node
eType = HTML_FRMTYPE_GRF;
}
else if( pNd->IsOLENode() )
{
- // Applet, Plugin, Floating-Frame
+ // applet, plugin, floating frame
eType = (SwHTMLFrameType)GuessOLENodeFrameType( *pNd );
}
else
@@ -217,7 +217,7 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
true, &pItem ) &&
static_cast<const SwFormatCol *>(pItem)->GetNumCols() > 1 )
{
- // spaltiger Rahmen
+ // frame with columns
eType = HTML_FRMTYPE_MULTICOL;
}
else if( pNd->IsTableNode() )
@@ -227,12 +227,12 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
if( nTableEnd+1 == nEnd )
{
- // Tabelle
+ // table
eType = HTML_FRMTYPE_TABLE;
}
else if( nTableEnd+2 == nEnd )
{
- // Tabelle mit Unterschrft
+ // table with caption
eType = HTML_FRMTYPE_TABLE_CAP;
}
}
@@ -243,8 +243,8 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
bool bEmpty = false;
if( nStt==nEnd-1 && !pTextNd->Len() )
{
- // leerer Rahmen? Nur wenn kein Rahmen am
- // Text- oder Start-Node verankert ist.
+ // empty frame? Only if no frame is
+ // anchored to the text or start node.
bEmpty = true;
if( m_pHTMLPosFlyFrames )
{
@@ -268,7 +268,7 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
}
if( bEmpty )
{
- // leerer Rahmen
+ // empty frame
eType = HTML_FRMTYPE_EMPTY;
}
else if( pDoc->GetNodes()[nStt+1]->IsTableNode() )
@@ -277,7 +277,7 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
pDoc->GetNodes()[nStt+1]->GetTableNode();
if( pTableNd->EndOfSectionIndex()+1 == nEnd )
{
- // Tabelle mit Ueberschrift
+ // table with heading
eType = HTML_FRMTYPE_TABLE_CAP;
}
}
@@ -314,9 +314,9 @@ void SwHTMLWriter::CollectFlyFrames()
break;
case FLY_AT_PARA:
- // Absatz-gebundene Rahmen werden nur dann vor den
- // Absatz geschrieben, wenn der Absatz einen Abstand
- // hat.
+ // frames that are anchored to a paragraph are only placed
+ // before the paragraph, if the paragraph has a
+ // spacing.
if( text::RelOrientation::FRAME == eHoriRel &&
(pAPos = rAnchor.GetContentAnchor()) != nullptr &&
(pACNd = pAPos->nNode.GetNode().GetContentNode()) != nullptr )
@@ -355,17 +355,16 @@ void SwHTMLWriter::CollectFlyFrames()
bool SwHTMLWriter::OutFlyFrame( sal_uLong nNdIdx, sal_Int32 nContentIdx, sal_uInt8 nPos,
HTMLOutContext *pContext )
{
- bool bFlysLeft = false; // Noch Flys an aktueller Node-Position da?
+ bool bFlysLeft = false; // Are there still Flys left at the current node position?
- // OutFlyFrame kan rekursiv aufgerufen werden. Deshalb muss man
- // manchmal wieder von vorne anfangen, nachdem ein Fly ausgegeben
- // wurde.
+ // OutFlyFrame can be called recursively. Thus, sometimes it is
+ // necessary to start over after a Fly was returned.
bool bRestart = true;
while( m_pHTMLPosFlyFrames && bRestart )
{
bFlysLeft = bRestart = false;
- // suche nach dem Anfang der FlyFrames
+ // search for the beginning of the FlyFrames
size_t i {0};
for( ; i < m_pHTMLPosFlyFrames->size() &&
@@ -379,9 +378,9 @@ bool SwHTMLWriter::OutFlyFrame( sal_uLong nNdIdx, sal_Int32 nContentIdx, sal_uIn
pPosFly->GetOutPos() == nPos ) &&
pPosFly->GetContentIndex() == nContentIdx )
{
- // Erst entfernen ist wichtig, weil in tieferen
- // Rekursionen evtl. weitere Eintraege oder das
- // ganze Array geloscht werden koennte.
+ // It is important to remove it first, because additional
+ // elements or the whole array could be deleted on
+ // deeper recursion levels.
m_pHTMLPosFlyFrames->erase(i);
i--;
if( m_pHTMLPosFlyFrames->empty() )
@@ -406,7 +405,7 @@ bool SwHTMLWriter::OutFlyFrame( sal_uLong nNdIdx, sal_Int32 nContentIdx, sal_uIn
case HTML_OUT_SPAN:
case HTML_OUT_MULTICOL:
case HTML_OUT_TBLNODE:
- bRestart = true; // Hier wird's evtl rekursiv
+ bRestart = true; // It could become recursive here
break;
}
delete pPosFly;
@@ -442,10 +441,10 @@ void SwHTMLWriter::OutFrameFormat( sal_uInt8 nMode, const SwFrameFormat& rFrameF
.append("sd-abs-pos").append('\"');
Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() );
- // Fuer Nicht-Zeichenobekte eine Breite ausgeben
+ // Output a width for non-draw objects
sal_uLong nFrameFlags = HTML_FRMOPTS_CNTNR;
- // Fuer spaltige Rahmen koennen wir auch noch den Hintergrund ausgeben.
+ // For frames with columns we can also output the background
if( HTML_OUT_MULTICOL == nOutMode )
nFrameFlags |= HTML_FRMOPT_S_BACKGROUND|HTML_FRMOPT_S_BORDER;
@@ -464,7 +463,7 @@ void SwHTMLWriter::OutFrameFormat( sal_uInt8 nMode, const SwFrameFormat& rFrameF
switch( nOutMode )
{
case HTML_OUT_TBLNODE: // OK
- OSL_ENSURE( !pCntnrStr, "Table: Container ist hier nicht vorgesehen" );
+ OSL_ENSURE( !pCntnrStr, "Table: Container is not supposed to be here" );
OutHTML_FrameFormatTableNode( *this, rFrameFormat );
break;
case HTML_OUT_GRFNODE: // OK
@@ -478,14 +477,14 @@ void SwHTMLWriter::OutFrameFormat( sal_uInt8 nMode, const SwFrameFormat& rFrameF
break;
case HTML_OUT_DIV:
case HTML_OUT_SPAN:
- OSL_ENSURE( !pCntnrStr, "Div: Container ist hier nicht vorgesehen" );
+ OSL_ENSURE( !pCntnrStr, "Div: Container is not supposed to be here" );
OutHTML_FrameFormatAsDivOrSpan( *this, rFrameFormat, HTML_OUT_SPAN==nOutMode );
break;
case HTML_OUT_MULTICOL: // OK
OutHTML_FrameFormatAsMulticol( *this, rFrameFormat, pCntnrStr != nullptr );
break;
case HTML_OUT_SPACER: // OK
- OSL_ENSURE( !pCntnrStr, "Spacer: Container ist hier nicht vorgesehen" );
+ OSL_ENSURE( !pCntnrStr, "Spacer: Container is not supposed to be here" );
OutHTML_FrameFormatAsSpacer( *this, rFrameFormat );
break;
case HTML_OUT_CONTROL: // OK
@@ -497,7 +496,7 @@ void SwHTMLWriter::OutFrameFormat( sal_uInt8 nMode, const SwFrameFormat& rFrameF
OutHTML_FrameFormatAsMarquee( *this, rFrameFormat, *pSdrObject );
break;
case HTML_OUT_MARQUEE:
- OSL_ENSURE( !pCntnrStr, "Marquee: Container ist hier nicht vorgesehen" );
+ OSL_ENSURE( !pCntnrStr, "Marquee: Container is not supposed to be here" );
OutHTML_DrawFrameFormatAsMarquee( *this,
static_cast<const SwDrawFrameFormat &>(rFrameFormat), *pSdrObject );
break;
@@ -564,9 +563,9 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat,
if( (nFrameOpts & HTML_FRMOPT_ALIGN) &&
((FLY_AT_PARA == eAnchorId) || (FLY_AT_CHAR == eAnchorId)) )
{
- // MIB 12.3.98: Ist es nicht schlauer, absatzgebundene
- // Rahmen notfalls links auszurichten als sie
- // zeichengebunden einzufuegen???
+ // MIB 12.3.98: Wouldn't it be more clever to left-align frames that
+ // are anchored to a paragraph if necessary, instead of inserting them
+ // as being anchored to characters?
const SwFormatHoriOrient& rHoriOri = rFrameFormat.GetHoriOrient();
if( !(nFrameOpts & HTML_FRMOPT_S_ALIGN) ||
text::RelOrientation::FRAME == rHoriOri.GetRelationOrient() ||
@@ -586,12 +585,12 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat,
{
case text::VertOrientation::LINE_TOP: pStr = OOO_STRING_SVTOOLS_HTML_VA_top; break;
case text::VertOrientation::CHAR_TOP:
- case text::VertOrientation::BOTTOM: pStr = OOO_STRING_SVTOOLS_HTML_VA_texttop; break; // geht nicht
+ case text::VertOrientation::BOTTOM: pStr = OOO_STRING_SVTOOLS_HTML_VA_texttop; break; // not possible
case text::VertOrientation::LINE_CENTER:
- case text::VertOrientation::CHAR_CENTER: pStr = OOO_STRING_SVTOOLS_HTML_VA_absmiddle; break; // geht nicht
+ case text::VertOrientation::CHAR_CENTER: pStr = OOO_STRING_SVTOOLS_HTML_VA_absmiddle; break; // not possible
case text::VertOrientation::CENTER: pStr = OOO_STRING_SVTOOLS_HTML_VA_middle; break;
case text::VertOrientation::LINE_BOTTOM:
- case text::VertOrientation::CHAR_BOTTOM: pStr = OOO_STRING_SVTOOLS_HTML_VA_absbottom; break; // geht nicht
+ case text::VertOrientation::CHAR_BOTTOM: pStr = OOO_STRING_SVTOOLS_HTML_VA_absbottom; break; // not possible
case text::VertOrientation::TOP: pStr = OOO_STRING_SVTOOLS_HTML_VA_bottom; break;
case text::VertOrientation::NONE: break;
}
@@ -646,8 +645,8 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat,
}
}
- // Der Abstand muss bei der Groesse beruecksichtigt, wenn das entsprechende
- // Flag gesetzt ist.
+ // The spacing must be considered for the size, if the corresponding flag
+ // is set.
if( (nFrameOpts & HTML_FRMOPT_MARGINSIZE) )
{
aTwipSpc.Width() *= -2;
@@ -670,8 +669,8 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat,
aTwipSpc.Height() += pBoxItem->CalcLineSpace( SvxBoxItemLine::BOTTOM );
}
- // WIDTH und/oder HEIGHT
- // ATT_VAR_SIZE/ATT_MIN_SIZE nur ausgeben, wenn ANYSIZE gesezut ist
+ // WIDTH and/or HEIGHT
+ // Output ATT_VAR_SIZE/ATT_MIN_SIZE only, if ANYSIZE is set
if( (nFrameOpts & HTML_FRMOPT_SIZE) &&
SfxItemState::SET == rItemSet.GetItemState( RES_FRM_SIZE, true, &pItem ) &&
( (nFrameOpts & HTML_FRMOPT_ANYSIZE) ||
@@ -681,14 +680,14 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat,
sal_uInt8 nPrcWidth = pFSItem->GetWidthPercent();
sal_uInt8 nPrcHeight = pFSItem->GetHeightPercent();
- // Groesse des Objekts Twips ohne Raender
+ // Size of the object in Twips without margins
Size aTwipSz( (nPrcWidth ? 0
: pFSItem->GetWidth()-aTwipSpc.Width()),
(nPrcHeight ? 0
: pFSItem->GetHeight()-aTwipSpc.Height()) );
OSL_ENSURE( aTwipSz.Width() >= 0 && aTwipSz.Height() >= 0,
- "Rahmengroesse minus Abstand < 0!!!???" );
+ "Frame size minus spacing < 0!!!???" );
if( aTwipSz.Width() < 0 )
aTwipSz.Width() = 0;
if( aTwipSz.Height() < 0 )
@@ -735,8 +734,8 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat,
if (!sOut.isEmpty())
Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() );
- // Umlauf fuer absatzgeb. Grafiken als <BR CLEAR=...> in den String
- // schreiben
+ // Insert wrap for graphics that are anchored to a paragraph as
+ // <BR CLEAR=...> in the string
if( (nFrameOpts & HTML_FRMOPT_BRCLEAR) &&
((FLY_AT_PARA == rFrameFormat.GetAnchor().GetAnchorId()) ||
(FLY_AT_CHAR == rFrameFormat.GetAnchor().GetAnchorId())) &&
@@ -869,7 +868,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma
aHtml.attribute(OOO_STRING_SVTOOLS_HTML_O_align, pAlignString);
}
- // hspace und vspace
+ // hspace and vspace
Size aTwipSpc( 0, 0 );
if( (nFrameOptions & (HTML_FRMOPT_SPACE | HTML_FRMOPT_MARGINSIZE)) &&
SfxItemState::SET == rItemSet.GetItemState( RES_LR_SPACE, true, &pItem ))
@@ -911,8 +910,8 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma
}
}
- // Der Abstand muss bei der Groesse beruecksichtigt, wenn das entsprechende
- // Flag gesetzt ist.
+ // The spacing must be considered for the size, if the corresponding flag
+ // is set.
if( (nFrameOptions & HTML_FRMOPT_MARGINSIZE) )
{
aTwipSpc.Width() *= -2;
@@ -936,7 +935,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma
}
// "width" and/or "height"
- // ATT_VAR_SIZE/ATT_MIN_SIZE nur ausgeben, wenn ANYSIZE gesezut ist
+ // Only output ATT_VAR_SIZE/ATT_MIN_SIZE if ANYSIZE is set
if( (nFrameOptions & HTML_FRMOPT_SIZE) &&
SfxItemState::SET == rItemSet.GetItemState( RES_FRM_SIZE, true, &pItem ) &&
( (nFrameOptions & HTML_FRMOPT_ANYSIZE) ||
@@ -946,14 +945,14 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma
sal_uInt8 nPrcWidth = pFSItem->GetWidthPercent();
sal_uInt8 nPrcHeight = pFSItem->GetHeightPercent();
- // Groesse des Objekts Twips ohne Raender
+ // Size of the object in Twips without margins
Size aTwipSz( (nPrcWidth ? 0
: pFSItem->GetWidth()-aTwipSpc.Width()),
(nPrcHeight ? 0
: pFSItem->GetHeight()-aTwipSpc.Height()) );
OSL_ENSURE( aTwipSz.Width() >= 0 && aTwipSz.Height() >= 0,
- "Rahmengroesse minus Abstand < 0!!!???" );
+ "Frame size minus spacing < 0!!!???" );
if( aTwipSz.Width() < 0 )
aTwipSz.Width() = 0;
if( aTwipSz.Height() < 0 )
@@ -995,8 +994,8 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma
}
}
- // Umlauf fuer absatzgeb. Grafiken als <BR CLEAR=...> in den String
- // schreiben
+ // Insert wrap for graphics that are anchored to a paragraph as
+ // <BR CLEAR=...> in the string
if( (nFrameOptions & HTML_FRMOPT_BRCLEAR) &&
((FLY_AT_PARA == rFrameFormat.GetAnchor().GetAnchorId()) ||
@@ -1071,14 +1070,13 @@ OUString lclWriteOutImap(SwHTMLWriter& rHTMLWrt, const SfxItemSet& rItemSet, con
const SfxPoolItem* pItem;
- // das URL-Attribut nur beruecksichtigen, wenn keine Image-Map
- // uebergeben wurde
+ // Only consider the URL attribute if no ImageMap was supplied
if (!pAltImgMap && SfxItemState::SET == rItemSet.GetItemState( RES_URL, true, &pItem))
{
pURLItem = static_cast<const SwFormatURL*>( pItem);
}
- // Image-Map rausschreiben
+ // write ImageMap
const ImageMap* pIMap = pAltImgMap;
if( !pIMap && pURLItem )
{
@@ -1087,7 +1085,7 @@ OUString lclWriteOutImap(SwHTMLWriter& rHTMLWrt, const SfxItemSet& rItemSet, con
if (pIMap)
{
- // den Namen eindeutig machen
+ // make the name unique
aIMapName = pIMap->GetName();
OUString aNameBase;
if (!aIMapName.isEmpty())
@@ -1131,8 +1129,8 @@ OUString lclWriteOutImap(SwHTMLWriter& rHTMLWrt, const SfxItemSet& rItemSet, con
SwTwips nWidth = rFrameSize.GetWidth();
nWidth -= rBox.CalcLineSpace(SvxBoxItemLine::LEFT) + rBox.CalcLineSpace(SvxBoxItemLine::RIGHT);
- OSL_ENSURE( nWidth > 0, "Gibt es 0 twip breite Grafiken!?" );
- if (nWidth <= 0) // sollte nicht passieren
+ OSL_ENSURE( nWidth > 0, "Are there any graphics that are 0 twip wide!?" );
+ if (nWidth <= 0) // should not happen
nWidth = 1;
if (rRealSize.Width() != nWidth)
@@ -1148,7 +1146,7 @@ OUString lclWriteOutImap(SwHTMLWriter& rHTMLWrt, const SfxItemSet& rItemSet, con
nHeight -= rBox.CalcLineSpace(SvxBoxItemLine::TOP) + rBox.CalcLineSpace(SvxBoxItemLine::BOTTOM);
- OSL_ENSURE( nHeight > 0, "Gibt es 0 twip hohe Grafiken!?" );
+ OSL_ENSURE( nHeight > 0, "Are there any graphics that are 0 twip high!?" );
if (nHeight <= 0)
nHeight = 1;
@@ -1211,7 +1209,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrameFormat &rFrameFormat,
if (rHTMLWrt.mbSkipImages)
return rHTMLWrt;
- // ggf. ein noch offenes Attribut voruebergehend beenden
+ // if necessary, temporarily close an open attribute
if( !rHTMLWrt.m_aINetFormats.empty() )
{
SwFormatINetFormat* pINetFormat = rHTMLWrt.m_aINetFormats.back();
@@ -1414,8 +1412,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrameFormat &rFrameFormat,
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 has to be reopened
SwFormatINetFormat *pINetFormat = rHTMLWrt.m_aINetFormats.back();
OutHTML_INetFormat( rWrt, *pINetFormat, true );
}
@@ -1505,23 +1502,23 @@ static Writer& OutHTML_FrameFormatTableNode( Writer& rWrt, const SwFrameFormat&
OUString aCaption;
bool bTopCaption = false;
- // Nicht const, weil GetTable spater mal nicht const ist
+ // Not const, because GetTable won't be const sometime later
SwNode *pNd = rHTMLWrt.pDoc->GetNodes()[ nStt ];
SwTableNode *pTableNd = pNd->GetTableNode();
const SwTextNode *pTextNd = pNd->GetTextNode();
if( !pTableNd && pTextNd )
{
- // Tabelle mit Ueberschrift
+ // Table with heading
bTopCaption = true;
pTableNd = rHTMLWrt.pDoc->GetNodes()[nStt+1]->GetTableNode();
}
- OSL_ENSURE( pTableNd, "Rahmen enthaelt keine Tabelle" );
+ OSL_ENSURE( pTableNd, "Frame does not contain a table" );
if( pTableNd )
{
sal_uLong nTableEnd = pTableNd->EndOfSectionIndex();
OSL_ENSURE( nTableEnd == nEnd - 1 ||
(nTableEnd == nEnd - 2 && !bTopCaption),
- "Ungeuelter Rahmen-Inhalt fuer Tabelle" );
+ "Invalid frame content for a table" );
if( nTableEnd == nEnd - 2 )
pTextNd = rHTMLWrt.pDoc->GetNodes()[nTableEnd+1]->GetTextNode();
@@ -1550,10 +1547,10 @@ static Writer & OutHTML_FrameFormatAsMulticol( Writer& rWrt,
rHTMLWrt.ChangeParaToken( 0 );
- // Die aktulle <DL> beenden!
+ // Close the current <DL>!
rHTMLWrt.OutAndSetDefList( 0 );
- // als Multicol ausgeben
+ // output as Multicol
if( rHTMLWrt.m_bLFPossible )
rHTMLWrt.OutNewLine();
@@ -1562,7 +1559,7 @@ static Writer & OutHTML_FrameFormatAsMulticol( Writer& rWrt,
const SwFormatCol& rFormatCol = rFrameFormat.GetCol();
- // die Anzahl der Spalten als COLS ausgeben
+ // output the number of columns as COLS
sal_uInt16 nCols = rFormatCol.GetNumCols();
if( nCols )
{
@@ -1570,7 +1567,7 @@ static Writer & OutHTML_FrameFormatAsMulticol( Writer& rWrt,
append("=\"").append(static_cast<sal_Int32>(nCols)).append("\"");
}
- // die Gutter-Breite (Minimalwert) als GUTTER
+ // the Gutter width (minimum value) as GUTTER
sal_uInt16 nGutter = rFormatCol.GetGutterWidth( true );
if( nGutter!=USHRT_MAX )
{
@@ -1598,16 +1595,16 @@ static Writer & OutHTML_FrameFormatAsMulticol( Writer& rWrt,
rWrt.Strm().WriteChar( '>' );
rHTMLWrt.m_bLFPossible = true;
- rHTMLWrt.IncIndentLevel(); // den Inhalt von Multicol einruecken;
+ rHTMLWrt.IncIndentLevel(); // indent the content of Multicol
const SwFormatContent& rFlyContent = rFrameFormat.GetContent();
sal_uLong nStt = rFlyContent.GetContentIdx()->GetIndex();
const SwStartNode* pSttNd = rWrt.pDoc->GetNodes()[nStt]->GetStartNode();
- OSL_ENSURE( pSttNd, "Wo ist der Start-Node" );
+ OSL_ENSURE( pSttNd, "Where is the start node" );
{
- // in einem Block damit rechtzeitig vor dem Ende der alte Zustand
- // wieder hergestellt wird.
+ // in a block, so that the old state can be restored in time
+ // before the end
HTMLSaveData aSaveData( rHTMLWrt, nStt+1,
pSttNd->EndOfSectionIndex(),
true, &rFrameFormat );
@@ -1615,7 +1612,7 @@ static Writer & OutHTML_FrameFormatAsMulticol( Writer& rWrt,
rHTMLWrt.Out_SwDoc( rWrt.pCurPam );
}
- rHTMLWrt.DecIndentLevel(); // den Inhalt von Multicol einruecken;
+ rHTMLWrt.DecIndentLevel(); // indent the content of Multicol;
if( rHTMLWrt.m_bLFPossible )
rHTMLWrt.OutNewLine();
HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), OOO_STRING_SVTOOLS_HTML_multicol, false );
@@ -1628,7 +1625,7 @@ static Writer& OutHTML_FrameFormatAsSpacer( Writer& rWrt, const SwFrameFormat& r
{
SwHTMLWriter & rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt);
- // wenn meoglich vor der Grafik einen Zeilen-Umbruch ausgeben
+ // if possible, output a line break before the graphic
if( rHTMLWrt.m_bLFPossible )
rHTMLWrt.OutNewLine( true );
@@ -1658,14 +1655,14 @@ static Writer& OutHTML_FrameFormatAsDivOrSpan( Writer& rWrt,
{
rHTMLWrt.ChangeParaToken( 0 );
- // Die aktulle <DL> beenden!
+ // Close the current <DL>!
rHTMLWrt.OutAndSetDefList( 0 );
pStr = OOO_STRING_SVTOOLS_HTML_division;
}
else
pStr = OOO_STRING_SVTOOLS_HTML_span;
- // als DIV ausgeben
+ // output as DIV
if( rHTMLWrt.m_bLFPossible )
rHTMLWrt.OutNewLine();
@@ -1680,21 +1677,21 @@ static Writer& OutHTML_FrameFormatAsDivOrSpan( Writer& rWrt,
rHTMLWrt.OutCSS1_FrameFormatOptions( rFrameFormat, nFrameFlags );
rWrt.Strm().WriteChar( '>' );
- rHTMLWrt.IncIndentLevel(); // den Inhalt einruecken
+ rHTMLWrt.IncIndentLevel(); // indent the content
rHTMLWrt.m_bLFPossible = true;
const SwFormatContent& rFlyContent = rFrameFormat.GetContent();
sal_uLong nStt = rFlyContent.GetContentIdx()->GetIndex();
- // Am Start-Node verankerte Rahmen-gebundene Rahmen ausgeben
+ // Output frame-anchored frames that are anchored to the start node
rHTMLWrt.OutFlyFrame( nStt, 0, HTML_POS_ANY );
const SwStartNode* pSttNd = rWrt.pDoc->GetNodes()[nStt]->GetStartNode();
- OSL_ENSURE( pSttNd, "Wo ist der Start-Node" );
+ OSL_ENSURE( pSttNd, "Where is the start node" );
{
- // in einem Block damit rechtzeitig vor dem Ende der alte Zustand
- // wieder hergestellt wird.
+ // in a block, so that the old state can be restored in time
+ // before the end
HTMLSaveData aSaveData( rHTMLWrt, nStt+1,
pSttNd->EndOfSectionIndex(),
true, &rFrameFormat );
@@ -1702,7 +1699,7 @@ static Writer& OutHTML_FrameFormatAsDivOrSpan( Writer& rWrt,
rHTMLWrt.Out_SwDoc( rWrt.pCurPam );
}
- rHTMLWrt.DecIndentLevel(); // den Inhalt von Multicol einruecken;
+ rHTMLWrt.DecIndentLevel(); // indent the content of Multicol;
if( rHTMLWrt.m_bLFPossible )
rHTMLWrt.OutNewLine();
HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), pStr, false );
@@ -1735,7 +1732,7 @@ static Writer & OutHTML_FrameFormatAsImage( Writer& rWrt, const SwFrameFormat& r
(XOutFlags::UseGifIfPossible|
XOutFlags::UseNativeIfPossible) ) != 0 )
{
- // leer oder fehlerhaft, da ist nichts auszugeben
+ // empty or incorrect, because there is nothing to output
rHTMLWrt.m_nWarn = WARN_SWG_POOR_LOAD | WARN_SW_WRITE_BASE;
return rWrt;
}
@@ -1763,7 +1760,7 @@ static Writer& OutHTML_FrameFormatGrfNode( Writer& rWrt, const SwFrameFormat& rF
const SwFormatContent& rFlyContent = rFrameFormat.GetContent();
sal_uLong nStt = rFlyContent.GetContentIdx()->GetIndex()+1;
SwGrfNode *pGrfNd = rHTMLWrt.pDoc->GetNodes()[ nStt ]->GetGrfNode();
- OSL_ENSURE( pGrfNd, "Grf-Node erwartet" );
+ OSL_ENSURE( pGrfNd, "Grf node expected" );
if( !pGrfNd )
return rWrt;
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list