[Libreoffice] [PATCH 3/5] Translate german comments

Martin Kepplinger martinkepplinger at eml.cc
Tue Mar 8 18:08:39 PST 2011


This translates more german code comments in writer/sw/source/ui/fldui to
english.

This is contributed under the terms of the MPL 1.1 / GPLv3+ / LGPLv3+ triple
license.
---
 sw/source/ui/fldui/fldpage.cxx |   28 +++++++-------
 sw/source/ui/fldui/fldpage.hxx |    2 +-
 sw/source/ui/fldui/fldref.cxx  |   74 ++++++++++++++++++++--------------------
 sw/source/ui/fldui/fldtdlg.cxx |   24 ++++++------
 4 files changed, 64 insertions(+), 64 deletions(-)

diff --git a/sw/source/ui/fldui/fldpage.cxx b/sw/source/ui/fldui/fldpage.cxx
index ac77c61..ab084a4 100644
--- a/sw/source/ui/fldui/fldpage.cxx
+++ b/sw/source/ui/fldui/fldpage.cxx
@@ -79,7 +79,7 @@ SwFldPage::~SwFldPage()
 }
 
 /*--------------------------------------------------------------------
-    Beschreibung: TabPage initialisieren
+    Description: initialise TabPage 
  --------------------------------------------------------------------*/
 
 void SwFldPage::Init()
@@ -89,15 +89,15 @@ void SwFldPage::Init()
 
     m_bFldEdit = 0 == GetTabDialog();
 
-    // FieldManager neu initialisieren wichtig fuer
-    // Dok-Wechsel (fldtdlg:ReInitTabPage)
+    // newly initialise FieldManager. important for
+    // Dok-Switch (fldtdlg:ReInitTabPage)
     m_pCurFld = m_aMgr.GetCurFld();
 
     if( bNewMode != m_bFldDlgHtmlMode )
     {
         m_bFldDlgHtmlMode = bNewMode;
 
-        // Bereichslistbox initialisieren
+        // initialise Rangelistbox
         if( m_bFldDlgHtmlMode && m_bFirstHTMLInit )
         {
             m_bFirstHTMLInit = FALSE;
@@ -117,7 +117,7 @@ void SwFldPage::Init()
 }
 
 /*--------------------------------------------------------------------
-     Beschreibung: Seite neu initialisieren
+     Description: newly initialise page
  --------------------------------------------------------------------*/
 
 void SwFldPage::ActivatePage()
@@ -126,7 +126,7 @@ void SwFldPage::ActivatePage()
 }
 
 /*--------------------------------------------------------------------
-     Beschreibung: Kompletter Reset; neues Feld editieren
+     Description: complete reset; edit new field
  --------------------------------------------------------------------*/
 
 void SwFldPage::EditNewField( BOOL bOnlyActivate )
@@ -142,7 +142,7 @@ void SwFldPage::EditNewField( BOOL bOnlyActivate )
 }
 
 /*--------------------------------------------------------------------
-     Beschreibung: Feld einfuegen
+     Description: insert field
  --------------------------------------------------------------------*/
 
 BOOL SwFldPage::InsertFld(USHORT nTypeId, USHORT nSubType, const String& rPar1,
@@ -153,7 +153,7 @@ BOOL SwFldPage::InsertFld(USHORT nTypeId, USHORT nSubType, const String& rPar1,
     SwView* pView = GetActiveView();
     SwWrtShell *pSh = m_pWrtShell ? m_pWrtShell : pView->GetWrtShellPtr();
 
-    if (!IsFldEdit())	// Neues Feld einfuegen
+    if (!IsFldEdit())	// insert new field
     {
         SwInsertFld_Data aData(nTypeId, nSubType, rPar1, rPar2, nFormatId, 0, cSeparator, bIsAutomaticLanguage );
         //#i26566# provide parent for SwWrtShell::StartInputFldDlg
@@ -197,7 +197,7 @@ BOOL SwFldPage::InsertFld(USHORT nTypeId, USHORT nSubType, const String& rPar1,
         }
 
     }
-    else	// Feld aendern
+    else	// change field
     {
         SwField *const pTmpFld = m_pCurFld->CopyField();
 
@@ -247,7 +247,7 @@ BOOL SwFldPage::InsertFld(USHORT nTypeId, USHORT nSubType, const String& rPar1,
                 {
                     if( pFmtFld->GetFld() == m_pCurFld)
                     {
-                        pTyp->Add(pFmtFld);	// Feld auf neuen Typ umhaengen
+                        pTyp->Add(pFmtFld);	// put field on new type
                         pTmpFld->ChgTyp(pTyp);
                         break;
                     }
@@ -267,7 +267,7 @@ BOOL SwFldPage::InsertFld(USHORT nTypeId, USHORT nSubType, const String& rPar1,
 
         case TYP_INPUTFLD:
             {
-                // User- oder SetField ?
+                // User- or SetField ?
                 if (m_aMgr.GetFldType(RES_USERFLD, sPar1) == 0 &&
                 !(pTmpFld->GetSubType() & INP_TXT))	// SETEXPFLD
                 {
@@ -338,7 +338,7 @@ void SwFldPage::RestorePos(ListBox* pLst1, ListBox* pLst2, ListBox* pLst3)
 }
 
 /*--------------------------------------------------------------------
-     Beschreibung: Einfuegen von neuen Feldern
+     Description: Insert new fields
  --------------------------------------------------------------------*/
 
 IMPL_LINK( SwFldPage, InsertHdl, Button *, pBtn )
@@ -350,7 +350,7 @@ IMPL_LINK( SwFldPage, InsertHdl, Button *, pBtn )
         pDlg->InsertHdl();
 
         if (pBtn)
-            pBtn->GrabFocus();	// Wegen InputField-Dlg
+            pBtn->GrabFocus();	// because of InputField-Dlg
     }
     else
     {
@@ -362,7 +362,7 @@ IMPL_LINK( SwFldPage, InsertHdl, Button *, pBtn )
 }
 
 /*--------------------------------------------------------------------
-     Beschreibung: "Einfuegen"-Button Enablen/Disablen
+     Description: enable/disable "Insert"-Button 
  --------------------------------------------------------------------*/
 
 void SwFldPage::EnableInsert(BOOL bEnable)
diff --git a/sw/source/ui/fldui/fldpage.hxx b/sw/source/ui/fldui/fldpage.hxx
index afcf9ce..7b62330 100644
--- a/sw/source/ui/fldui/fldpage.hxx
+++ b/sw/source/ui/fldui/fldpage.hxx
@@ -73,7 +73,7 @@ protected:
     void				EnableInsert(BOOL bEnable = TRUE);
     inline BOOL         IsFldEdit() const   { return m_bFldEdit; }
 
-    // Feld einfuegen
+    // insert field
     BOOL 				InsertFld( 	USHORT nTypeId,
                                     USHORT nSubType,
                                     const String& rPar1,
diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx
index 0c93a67..cf59590 100644
--- a/sw/source/ui/fldui/fldref.cxx
+++ b/sw/source/ui/fldui/fldref.cxx
@@ -181,16 +181,16 @@ void SwFldRefPage::Reset(const SfxItemSet& )
     }
     SetSelectionSel(LISTBOX_ENTRY_NOTFOUND);
     SetTypeSel(LISTBOX_ENTRY_NOTFOUND);
-    Init();	// Allgemeine initialisierung
+    Init();	// general initialisation
 
-    // TypeListBox initialisieren
+    // initialise TypeListBox 
     aTypeLB.SetUpdateMode(FALSE);
     aTypeLB.Clear();
 
-    // Typ-Listbox fuellen
+    // fill Type-Listbox 
 
     USHORT nPos;
-    // Referenz setzen / einfuegen
+    // set/insert reference
     const SwFldGroupRgn& rRg = GetFldMgr().GetGroupRange(IsFldDlgHtmlMode(), GetGroup());
 
     for (short i = rRg.nStart; i < rRg.nEnd; ++i)
@@ -212,7 +212,7 @@ void SwFldRefPage::Reset(const SfxItemSet& )
     aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_NUMITEM);
     // <--
 
-    // mit den Sequence-Typen auffuellen
+    // fill up with the sequence types
     SwWrtShell *pSh = GetWrtShell();
     if(!pSh)
         pSh = ::GetActiveWrtShell();
@@ -230,25 +230,25 @@ void SwFldRefPage::Reset(const SfxItemSet& )
         }
     }
 
-    // Textmarken - jetzt immer (wegen Globaldokumenten)
+    // text marks - now always (because of globaldocuments)
     nPos = aTypeLB.InsertEntry(sBookmarkTxt);
     aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_BOOKMARK);
 
-    // Fussnoten:
+    // footnotes:
     if( pSh->HasFtns() )
     {
         nPos = aTypeLB.InsertEntry(sFootnoteTxt);
         aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_FOOTNOTE);
     }
 
-    // Endnoten:
+    // endnotes:
     if ( pSh->HasFtns(true) )
     {
         nPos = aTypeLB.InsertEntry(sEndnoteTxt);
         aTypeLB.SetEntryData(nPos, (void*)REFFLDFLAG_ENDNOTE);
     }
 
-    // alte Pos selektieren
+    // select old Pos
     if (!IsFldEdit())
         RestorePos(&aTypeLB);
 
@@ -289,17 +289,17 @@ void SwFldRefPage::Reset(const SfxItemSet& )
 
 IMPL_LINK( SwFldRefPage, TypeHdl, ListBox *, EMPTYARG )
 {
-    // Alte ListBoxPos sichern
+    // save old ListBoxPos 
     const USHORT nOld = GetTypeSel();
 
-    // Aktuelle ListBoxPos
+    // current ListBoxPos
     SetTypeSel(aTypeLB.GetSelectEntryPos());
 
     if(GetTypeSel() == LISTBOX_ENTRY_NOTFOUND)
     {
         if (IsFldEdit())
         {
-            // Positionen selektieren
+            // select positions
             String sName;
             USHORT nFlag = 0;
 
@@ -351,7 +351,7 @@ IMPL_LINK( SwFldRefPage, TypeHdl, ListBox *, EMPTYARG )
                     break;
             }
 
-            if (aTypeLB.GetEntryPos(sName) == LISTBOX_ENTRY_NOTFOUND)	// Referenz zu gel?schter Marke
+            if (aTypeLB.GetEntryPos(sName) == LISTBOX_ENTRY_NOTFOUND)	// reference to deleted mark
             {
                 USHORT nPos = aTypeLB.InsertEntry(sName);
                 aTypeLB.SetEntryData(nPos, reinterpret_cast<void*>(nFlag));
@@ -371,7 +371,7 @@ IMPL_LINK( SwFldRefPage, TypeHdl, ListBox *, EMPTYARG )
     {
         USHORT nTypeId = (USHORT)(ULONG)aTypeLB.GetEntryData(GetTypeSel());
 
-        // Auswahl-Listbox fuellen
+        // fill selection-ListBox 
         UpdateSubType();
 
         BOOL bName = FALSE;     nFldDlgFmtSel = 0;
@@ -387,7 +387,7 @@ IMPL_LINK( SwFldRefPage, TypeHdl, ListBox *, EMPTYARG )
         {
             case TYP_GETREFFLD:
                 if (REFFLDFLAG & (USHORT)(ULONG)aTypeLB.GetEntryData(nOld))
-                    // dann bleibt die alte bestehen
+                    // the the old one stays
                     nFldDlgFmtSel = aFormatLB.GetSelectEntryPos();
                 bName = TRUE;
                 break;
@@ -398,13 +398,13 @@ IMPL_LINK( SwFldRefPage, TypeHdl, ListBox *, EMPTYARG )
 
             case REFFLDFLAG_BOOKMARK:
                 bName = TRUE;
-                // kein break!!!
+                // no break!!!
             default:
                 if( REFFLDFLAG & nTypeId )
                 {
                     USHORT nOldId = (USHORT)(ULONG)aTypeLB.GetEntryData(nOld);
                     if( nOldId & REFFLDFLAG || nOldId == TYP_GETREFFLD )
-                        // dann bleibt die alte bestehen
+                        // then the old one stays
                         nFldDlgFmtSel = aFormatLB.GetSelectEntryPos();
                 }
                 break;
@@ -413,7 +413,7 @@ IMPL_LINK( SwFldRefPage, TypeHdl, ListBox *, EMPTYARG )
         aNameED.Enable(bName);
         aNameFT.Enable(bName);
 
-        // Format-Listbox fuellen
+        // fill Format-Listbox 
         USHORT nSize = FillFormatLB(nTypeId);
         BOOL bFormat = nSize != 0;
         aFormatLB.Enable(bFormat);
@@ -475,7 +475,7 @@ IMPL_LINK( SwFldRefPage, SubTypeHdl, ListBox *, EMPTYARG )
 }
 
 /*--------------------------------------------------------------------
-     Beschreibung: Typen in SelectionLB erneuern
+     Description: renew types in SelectionLB 
  --------------------------------------------------------------------*/
 
 void SwFldRefPage::UpdateSubType()
@@ -510,10 +510,10 @@ void SwFldRefPage::UpdateSubType()
 
     if( REFFLDFLAG & nTypeId )
     {
-        if (nTypeId == REFFLDFLAG_BOOKMARK)     // TextMarken!
+        if (nTypeId == REFFLDFLAG_BOOKMARK)     // text marks!
         {
             aSelectionLB.SetStyle(aSelectionLB.GetStyle()|WB_SORT);
-            // alle Textmarken besorgen
+            // get all text marks
             IDocumentMarkAccess* const pMarkAccess = pSh->getIDocumentMarkAccess();
             for(IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getBookmarksBegin();
                 ppMark != pMarkAccess->getBookmarksEnd();
@@ -617,7 +617,7 @@ void SwFldRefPage::UpdateSubType()
         else
         {
             aSelectionLB.SetStyle(aSelectionLB.GetStyle()|WB_SORT);
-            // zum Seq-FeldTyp die Felder besorgen:
+            // get the fields to Seq-FieldType:
 
             SwSetExpFieldType* pType = (SwSetExpFieldType*)pSh->GetFldType(
                                 nTypeId & ~REFFLDFLAG, RES_SETEXPFLD );
@@ -678,7 +678,7 @@ void SwFldRefPage::UpdateSubType()
     {
         aSelectionLB.SetUpdateMode(TRUE);
 
-        // Enable oder Disable
+        // enable or disable
         BOOL bEnable = aSelectionLB.GetEntryCount() != 0;
         aSelectionLB.Enable( bEnable );
         aSelectionFT.Enable( bEnable );
@@ -690,7 +690,7 @@ void SwFldRefPage::UpdateSubType()
                 aSelectionLB.SelectEntryPos(0);
         }
 
-        if (IsFldEdit() && !aSelectionLB.GetSelectEntryCount()) // Falls die Referenz schon geloescht wurde...
+        if (IsFldEdit() && !aSelectionLB.GetSelectEntryCount()) // in case the reference was already deleted...
             aNameED.SetText(sOldSel);
     }
     // <--
@@ -704,10 +704,10 @@ USHORT SwFldRefPage::FillFormatLB(USHORT nTypeId)
     if (nFormatSel != LISTBOX_ENTRY_NOTFOUND)
         sOldSel = aFormatLB.GetEntry(nFormatSel);
 
-    // Format-Listbox fuellen
+    // fill Format-Listbox 
     aFormatLB.Clear();
 
-    // Referenz hat weniger als die Beschriftung
+    // refernce has less that the annotation
     USHORT nSize( 0 );
     bool bAddCrossRefFormats( false );
     switch (nTypeId)
@@ -784,7 +784,7 @@ USHORT SwFldRefPage::FillFormatLB(USHORT nTypeId)
 }
 
 /*--------------------------------------------------------------------
-    Beschreibung: Modify
+    Description: Modify
  --------------------------------------------------------------------*/
 
 IMPL_LINK( SwFldRefPage, ModifyHdl, Edit *, EMPTYARG )
@@ -835,7 +835,7 @@ BOOL SwFldRefPage::FillItemSet(SfxItemSet& )
         {
             SwFieldType* pType = GetFldMgr().GetFldType(RES_SETEXPFLD, aName);
 
-            if(!pType)	// Nur einfuegen, wenn es den Namen noch nicht gibt
+            if(!pType)	// Only insert when the name doesn't exist yet
             {
                 aSelectionLB.InsertEntry(aName);
                 aSelectionLB.Enable();
@@ -854,13 +854,13 @@ BOOL SwFldRefPage::FillItemSet(SfxItemSet& )
         {
             pSh = ::GetActiveWrtShell();
         }
-        if (nTypeId == REFFLDFLAG_BOOKMARK)		// TextMarken!
+        if (nTypeId == REFFLDFLAG_BOOKMARK)		// text marks!
         {
             aName = aNameED.GetText();
             nTypeId = TYP_GETREFFLD;
             nSubType = REF_BOOKMARK;
         }
-        else if (REFFLDFLAG_FOOTNOTE == nTypeId) 		// Fussnoten
+        else if (REFFLDFLAG_FOOTNOTE == nTypeId) 		// footnotes
         {
             SwSeqFldList aArr;
             _SeqFldLstElem aElem( aSelectionLB.GetSelectEntry(), 0 );
@@ -876,12 +876,12 @@ BOOL SwFldRefPage::FillItemSet(SfxItemSet& )
                 aVal = String::CreateFromInt32( aArr[nPos]->nSeqNo );
 
                 if (IsFldEdit() && aArr[nPos]->nSeqNo == pRefFld->GetSeqNo())
-                    bModified = TRUE; // Kann bei Feldern passieren, deren Referenz geloescht wurde
+                    bModified = TRUE; // can happen with fields of which the references were deleted
             }
             else if (IsFldEdit())
                 aVal = String::CreateFromInt32( pRefFld->GetSeqNo() );
         }
-        else if (REFFLDFLAG_ENDNOTE == nTypeId) 		// Endnoten
+        else if (REFFLDFLAG_ENDNOTE == nTypeId) 		// endnotes
         {
             SwSeqFldList aArr;
             _SeqFldLstElem aElem( aSelectionLB.GetSelectEntry(), 0 );
@@ -897,7 +897,7 @@ BOOL SwFldRefPage::FillItemSet(SfxItemSet& )
                 aVal = String::CreateFromInt32( aArr[nPos]->nSeqNo );
 
                 if (IsFldEdit() && aArr[nPos]->nSeqNo == pRefFld->GetSeqNo())
-                    bModified = TRUE; // Kann bei Feldern passieren, deren Referenz geloescht wurde
+                    bModified = TRUE; // can happen with fields of which the reference was deleted
             }
             else if (IsFldEdit())
                 aVal = String::CreateFromInt32( pRefFld->GetSeqNo() );
@@ -944,9 +944,9 @@ BOOL SwFldRefPage::FillItemSet(SfxItemSet& )
             }
         }
         // <--
-        else                                // SeqenceFelder
+        else                                // SeqenceFields
         {
-            // zum Seq-FeldTyp die Felder besorgen:
+            // get fields for Seq-FeldType:
             SwSetExpFieldType* pType = (SwSetExpFieldType*)pSh->GetFldType(
                                     nTypeId & ~REFFLDFLAG, RES_SETEXPFLD );
             if( pType )
@@ -965,7 +965,7 @@ BOOL SwFldRefPage::FillItemSet(SfxItemSet& )
                     aVal = String::CreateFromInt32( aArr[nPos]->nSeqNo );
 
                     if (IsFldEdit() && aArr[nPos]->nSeqNo == pRefFld->GetSeqNo())
-                        bModified = TRUE; // Kann bei Feldern passieren, deren Referenz geloescht wurde
+                        bModified = TRUE; // can happen with fields of which the reference was deleted
                 }
                 else if (IsFldEdit())
                     aVal = String::CreateFromInt32( pRefFld->GetSeqNo() );
@@ -989,7 +989,7 @@ BOOL SwFldRefPage::FillItemSet(SfxItemSet& )
         InsertFld( nTypeId, nSubType, aName, aVal, nFormat );
     }
 
-    ModifyHdl();	// Insert ggf enablen/disablen
+    ModifyHdl();	// enable/disable insert if applicable
 
     return FALSE;
 }
diff --git a/sw/source/ui/fldui/fldtdlg.cxx b/sw/source/ui/fldui/fldtdlg.cxx
index db2e9b6..3265847 100644
--- a/sw/source/ui/fldui/fldtdlg.cxx
+++ b/sw/source/ui/fldui/fldtdlg.cxx
@@ -67,7 +67,7 @@
 
 
 /*--------------------------------------------------------------------
-    Beschreibung:	Der Traeger des Dialoges
+    Description:	carrier of the dialog
  --------------------------------------------------------------------*/
 
 
@@ -84,11 +84,11 @@ SwFldDlg::SwFldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, Window *pParent)
 
     GetOKButton().SetText(String(SW_RES(STR_FLD_INSERT)));
     GetOKButton().SetHelpId(HID_FIELD_INSERT);
-    GetOKButton().SetHelpText(aEmptyStr);	// Damit generierter Hilfetext verwendet wird
+    GetOKButton().SetHelpText(aEmptyStr);	// so that generated help text is used
 
     GetCancelButton().SetText(String(SW_RES(STR_FLD_CLOSE)));
     GetCancelButton().SetHelpId(HID_FIELD_CLOSE);
-    GetCancelButton().SetHelpText(aEmptyStr);	// Damit generierter Hilfetext verwendet wird
+    GetCancelButton().SetHelpText(aEmptyStr);	// so that generated help text is used
 
     FreeResource();
 
@@ -152,16 +152,16 @@ void SwFldDlg::Initialize(SfxChildWinInfo *pInfo)
         if ( GetStyle() & WB_SIZEABLE )
             SetSizePixel( pInfo->aSize );
 
-        // Initiale Gr"o\se aus pInfo merken
+        // remember initial size from pInfo 
         aSize = GetSizePixel();
 
-        // Soll das FloatingWindow eingezoomt werden ?
+        // should the FloatingWindow get zoomed?
         if ( pInfo->nFlags & SFX_CHILDWIN_ZOOMIN )
             RollUp();
     }
     else
     {
-        // Initiale Gr"o\se aus Resource oder ctor merken
+        // remember initial size from resource or ctor
         aSize = GetSizePixel();
 
         Size aParentSize = GetParent()->GetOutputSizePixel();
@@ -209,7 +209,7 @@ SfxItemSet* SwFldDlg::CreateInputItemSet( USHORT nID  )
 }
 
 /*--------------------------------------------------------------------
-     Beschreibung: Einfuegen von neuen Feldern anstossen
+     Description: kick off inserting of new fields
  --------------------------------------------------------------------*/
 
 IMPL_LINK( SwFldDlg, OKHdl, Button *, EMPTYARG )
@@ -219,14 +219,14 @@ IMPL_LINK( SwFldDlg, OKHdl, Button *, EMPTYARG )
         SfxTabPage*	pPage = GetTabPage(GetCurPageId());
         pPage->FillItemSet(*(SfxItemSet*)0);
 
-        GetOKButton().GrabFocus();	// Wegen InputField-Dlg
+        GetOKButton().GrabFocus();	// because of InputField-Dlg
     }
 
     return 0;
 }
 
 /*--------------------------------------------------------------------
-    Beschreibung: Nach Dok-Wechsel Dialog neu initialisieren
+    Description: newly initialise dialog after Doc-Switch
  --------------------------------------------------------------------*/
 
 void SwFldDlg::ReInitDlg()
@@ -263,7 +263,7 @@ void SwFldDlg::ReInitDlg()
 }
 
 /*--------------------------------------------------------------------
-    Beschreibung: Nach Dok-Wechsel TabPage neu initialisieren
+    Description: newly initialise TabPage after Doc-Switch
  --------------------------------------------------------------------*/
 
 void SwFldDlg::ReInitTabPage( USHORT nPageId, BOOL bOnlyActivate )
@@ -271,11 +271,11 @@ void SwFldDlg::ReInitTabPage( USHORT nPageId, BOOL bOnlyActivate )
     SwFldPage* pPage = (SwFldPage* )GetTabPage(nPageId);
 
     if ( pPage )
-        pPage->EditNewField( bOnlyActivate );	// TabPage neu initialisieren
+        pPage->EditNewField( bOnlyActivate );	// newly initialise TabPage
 }
 
 /*--------------------------------------------------------------------
-    Beschreibung: Nach Aktivierung einige TabPages neu initialisieren
+    Description: newly initialise after activation of a few TabPages
  --------------------------------------------------------------------*/
 
 void SwFldDlg::Activate()
-- 
1.7.1



More information about the LibreOffice mailing list