[jabref] 06/459: Load /tmp/tmp.cssmc10846/jabref-2.0.1+2.1b into debian/jabref/branches/upstream/current.

gregor herrmann gregoa at debian.org
Thu Sep 15 20:39:29 UTC 2016


This is an automated email from the git hooks/post-receive script.

gregoa pushed a commit to branch master
in repository jabref.

commit 1fa484822a60fcb0bcb5a996ec04c08315b912dc
Author: gregor herrmann <gregoa at debian.org>
Date:   Sat May 20 15:03:40 2006 +0000

    Load /tmp/tmp.cssmc10846/jabref-2.0.1+2.1b into
    debian/jabref/branches/upstream/current.
---
 build.number                                       |    4 +-
 build.xml                                          |  122 +-
 lib/.cvsignore                                     |   33 +
 lib/looks-1.2.2.jar                                |  Bin 324952 -> 0 bytes
 lib/looks-2.0.1.jar                                |  Bin 0 -> 367532 bytes
 lib/microba.jar                                    |  Bin 0 -> 116505 bytes
 lib/spin-1.4.jar                                   |  Bin 0 -> 23118 bytes
 lib/spin.jar                                       |  Bin 49065 -> 0 bytes
 src/extensions/API/overview.html                   |   18 +
 src/extensions/SimpleCsvImporter.csv               |    3 +
 src/extensions/SimpleCsvImporter.java              |   36 +
 src/extensions/compileAll.bat                      |   50 +
 src/extensions/compileAll.sh                       |    9 +
 src/extensions/readme.html                         |   52 +
 src/help/About.html                                |    6 +-
 src/help/BibtexHelp.html                           |  347 +++++-
 src/help/CustomImports.html                        |    7 +-
 src/help/IEEEXplorerHelp.html                      |   26 +
 src/help/ShortAuxImport.html                       |    7 +
 src/help/credits.txt                               |    1 +
 src/help/de/About.html                             |  120 +-
 src/help/de/JabRef-UserManual_de.tex               |  279 +++--
 src/help/de/OpenOfficeHelp.html                    |   35 +-
 src/help/de/ShortAuxImport.html                    |    8 +
 src/help/fr/About.html                             |    2 +-
 src/help/fr/CustomImports.html                     |    3 +-
 src/help/fr/LabelPatterns.html                     |   16 +-
 src/images/font/ACTIVA.TTF                         |  Bin 0 -> 82984 bytes
 src/images/font/ASTROLYT.TTF                       |  Bin 0 -> 42020 bytes
 src/images/font/AUGIE.TTF                          |  Bin 0 -> 54108 bytes
 src/images/groupIncluding.png                      |  Bin 169 -> 105 bytes
 src/images/jabref-2.0-splash.png                   |  Bin 177980 -> 0 bytes
 src/images/splash-2.1beta.png                      |  Bin 0 -> 179073 bytes
 src/images/splash.svg                              |  229 ++++
 .../uif_lite/panel/SimpleInternalFrame.java        |    5 +-
 src/java/net/sf/jabref/AppearancePrefsTab.java     |   10 +-
 src/java/net/sf/jabref/AuthorList.java             |    4 +-
 src/java/net/sf/jabref/BasePanel.java              |  163 ++-
 src/java/net/sf/jabref/BibtexDatabase.java         |  190 +--
 src/java/net/sf/jabref/BibtexEntry.java            |   89 +-
 src/java/net/sf/jabref/BibtexFields.java           |  629 ++++++++++
 src/java/net/sf/jabref/BrowseAction.java           |   39 +
 .../net/sf/jabref/DuplicateResolverDialog.java     |   54 +-
 src/java/net/sf/jabref/DuplicateSearch.java        |    4 +-
 src/java/net/sf/jabref/EntryEditor.java            |   61 +-
 src/java/net/sf/jabref/EntryEditorTab.java         |  305 ++---
 src/java/net/sf/jabref/EntryEditorTabList.java     |   48 +-
 src/java/net/sf/jabref/EntryTable.java             |   23 +-
 src/java/net/sf/jabref/EntryTableModel.java        |   31 +-
 src/java/net/sf/jabref/ExternalTab.java            |   46 +-
 src/java/net/sf/jabref/FieldComparator.java        |    1 -
 src/java/net/sf/jabref/FieldContentSelector.java   |   13 +-
 src/java/net/sf/jabref/FontSelectorDialog.java     |  643 +++++-----
 src/java/net/sf/jabref/GUIGlobals.java             |  254 +---
 src/java/net/sf/jabref/GeneralTab.java             |  134 +--
 src/java/net/sf/jabref/Globals.java                |  178 +--
 src/java/net/sf/jabref/IdComparator.java           |   17 +
 src/java/net/sf/jabref/IncrementalSearcher.java    |   27 +-
 src/java/net/sf/jabref/JabRef.java                 |  306 +++--
 src/java/net/sf/jabref/JabRefFrame.java            |  547 +++++----
 src/java/net/sf/jabref/JabRefPreferences.java      |  105 +-
 src/java/net/sf/jabref/MetaData.java               |   35 +-
 src/java/net/sf/jabref/PreviewPanel.java           |   18 +-
 src/java/net/sf/jabref/PreviewPrefsTab.java        |  132 +-
 src/java/net/sf/jabref/ReplaceStringDialog.java    |  326 ++---
 src/java/net/sf/jabref/RightClickMenu.java         |   72 +-
 src/java/net/sf/jabref/SearchManager2.java         |   21 +-
 src/java/net/sf/jabref/SplashScreen.java           |    2 +-
 .../{SplashScreen.java => SplashScreen.java~}      |    0
 src/java/net/sf/jabref/TabLabelPattern.java        |   21 +-
 src/java/net/sf/jabref/TableColumnsTab.java        |   12 +-
 src/java/net/sf/jabref/TablePrefsTab.java          |  156 +--
 src/java/net/sf/jabref/UrlDragDrop.java            |   14 +-
 src/java/net/sf/jabref/Util.java                   |  386 ++++--
 src/java/net/sf/jabref/collab/ChangeScanner.java   |   64 +-
 src/java/net/sf/jabref/collab/EntryAddChange.java  |   10 +-
 .../net/sf/jabref/collab/EntryDeleteChange.java    |   10 +-
 .../jabref/export/ExportCustomizationDialog.java   |    4 +-
 src/java/net/sf/jabref/export/FileActions.java     |  131 +-
 .../net/sf/jabref/export/LatexFieldFormatter.java  |  140 ++-
 src/java/net/sf/jabref/export/OOCalcDatabase.java  |   12 +-
 .../jabref/export/OpenDocumentRepresentation.java  |   10 +-
 src/java/net/sf/jabref/export/SaveSession.java     |    4 +-
 src/java/net/sf/jabref/export/layout/Layout.java   |    3 +-
 .../net/sf/jabref/export/layout/LayoutEntry.java   |   11 +-
 .../net/sf/jabref/export/layout/LayoutHelper.java  |   12 +-
 .../sf/jabref/export/layout/format/XMLChars.java   |   53 +-
 .../external/AutoSetExternalFileForEntries.java    |   11 +-
 .../sf/jabref/external/ExternalFileMenuItem.java   |   37 +
 .../net/sf/jabref/external/ExternalFilePanel.java  |   37 +-
 .../net/sf/jabref/external/ExternalFileType.java   |   52 +
 .../net/sf/jabref/external/PushToApplication.java  |   42 +
 .../jabref/external/PushToApplicationAction.java   |   95 ++
 src/java/net/sf/jabref/external/PushToEmacs.java   |  143 ++-
 .../net/sf/jabref/external/PushToLatexEditor.java  |   70 ++
 src/java/net/sf/jabref/external/PushToLyx.java     |  169 +--
 src/java/net/sf/jabref/external/PushToWinEdt.java  |   75 ++
 src/java/net/sf/jabref/groups/GroupDialog.java     |  994 +++++++--------
 src/java/net/sf/jabref/groups/GroupSelector.java   |  169 +--
 src/java/net/sf/jabref/gui/AttachFileDialog.java   |    9 +-
 .../sf/jabref/gui/DatabasePropertiesDialog.java    |   68 +-
 .../sf/jabref/gui/EntryCustomizationDialog2.java   |   84 +-
 src/java/net/sf/jabref/gui/FieldWeightDialog.java  |   33 +-
 .../net/sf/jabref/gui/FirstColumnComparator.java   |    8 +-
 .../net/sf/jabref/gui/GenFieldsCustomizer.java     |   88 +-
 src/java/net/sf/jabref/gui/GlazedEntrySorter.java  |    6 +
 .../net/sf/jabref/gui/ImportInspectionDialog.java  |  503 +++++---
 ...lumnComparator.java => IsMarkedComparator.java} |   17 +-
 src/java/net/sf/jabref/gui/MainTable.java          |   17 +-
 src/java/net/sf/jabref/gui/MainTableFormat.java    |   14 +-
 .../net/sf/jabref/gui/MainTableSelectionListener.  |  268 -----
 .../sf/jabref/gui/MainTableSelectionListener.java  |   80 +-
 src/java/net/sf/jabref/gui/SortTabsAction.java     |   47 +
 .../net/sf/jabref/gui/date/DatePickerButton.java   |   77 ++
 .../net/sf/jabref/imports/BibTeXMLHandler.java     |    2 +-
 .../net/sf/jabref/imports/BiblioscapeImporter.java |   31 +-
 src/java/net/sf/jabref/imports/BibtexParser.java   |  642 +++++-----
 .../net/sf/jabref/imports/BiomailImporter.java     |    5 +-
 .../sf/jabref/imports/CiteSeerFetcherPanel.java    |    4 +-
 src/java/net/sf/jabref/imports/CsaImporter.java    |  725 +++++------
 .../net/sf/jabref/imports/EndnoteImporter.java     |   12 +-
 src/java/net/sf/jabref/imports/EntryFetcher.java   |   59 +
 src/java/net/sf/jabref/imports/GeneralFetcher.java |  111 ++
 src/java/net/sf/jabref/imports/HTMLConverter.java  |   58 +
 .../net/sf/jabref/imports/IEEEXploreFetcher.java   |  481 ++++++++
 .../jabref/imports/ImportCustomizationDialog.java  |   10 +-
 .../net/sf/jabref/imports/ImportFormatReader.java  |   35 +-
 src/java/net/sf/jabref/imports/InspecImporter.java |  139 +--
 src/java/net/sf/jabref/imports/IsiImporter.java    |   57 +-
 src/java/net/sf/jabref/imports/MedlineFetcher.java |  396 +++---
 src/java/net/sf/jabref/imports/MedlineHandler.java |   42 +-
 src/java/net/sf/jabref/imports/RisImporter.java    |    5 +-
 .../net/sf/jabref/imports/ScifinderImporter.java   |    5 +-
 .../sf/jabref/imports/SilverPlatterImporter.java   |  253 ++--
 src/java/net/sf/jabref/label/ArticleLabelRule.java |    2 +-
 src/java/net/sf/jabref/label/BookLabelRule.java    |   51 +-
 src/java/net/sf/jabref/label/DefaultLabelRule.java |    3 +-
 .../sf/jabref/label/InproceedingsLabelRule.java    |   46 +-
 .../sf/jabref/labelPattern/LabelPatternUtil.java   |  125 +-
 src/java/net/sf/jabref/util/CaseChanger.java       |    4 +-
 src/java/net/sf/jabref/util/ErrorConsole.java      |  113 ++
 src/java/net/sf/jabref/util/TXMLReader.java        |  210 ++++
 .../jabref/wizard/auximport/gui/FromAuxDialog.java |  265 ++--
 .../integrity/gui/IntegrityMessagePanel.java       |   26 +-
 .../wizard/integrity/gui/IntegrityWizard.java      |   22 +-
 src/resource/.cvsignore                            |   29 +
 src/resource/IntegrityMessage_it.properties        |   11 +
 src/resource/JabRef_de.properties                  | 1126 ++++++++++++++++-
 src/resource/JabRef_de.properties.orig             | 1029 ----------------
 src/resource/JabRef_en.properties                  | 1260 ++++++++++++++++++--
 src/resource/JabRef_en.properties.orig             | 1030 ----------------
 src/resource/JabRef_fr.properties                  |  255 ++--
 src/resource/JabRef_fr.properties.orig             | 1019 ----------------
 src/resource/JabRef_it.properties                  | 1075 +++++++++++++++++
 src/resource/JabRef_no.properties                  |  227 ++--
 src/resource/Menu_de.properties                    |  245 ++--
 src/resource/Menu_en.properties                    |  164 +--
 src/resource/Menu_fr.properties                    |  166 +--
 src/resource/Menu_it.properties                    |  103 ++
 src/resource/Menu_no.properties                    |  161 +--
 src/resource/build.properties                      |    6 +-
 src/resource/layout/bibtexml.begin.layout          |    3 +-
 src/resource/layout/bibtexml.layout                |    4 +-
 .../layout/harvard/harvard.proceedings.layout      |    2 +-
 src/resource/layout/html.begin.layout              |   30 +-
 src/resource/layout/html.inbook.layout             |    6 +
 src/resource/layout/html.inproceedings.layout      |    6 +
 src/resource/layout/html.layout                    |    6 +
 src/txt/README                                     |   36 +-
 src/windows/jabref.wxs                             |    9 +-
 170 files changed, 13017 insertions(+), 9141 deletions(-)

diff --git a/build.number b/build.number
index 765b15f..30ca81d 100644
--- a/build.number
+++ b/build.number
@@ -1,3 +1,3 @@
 #Build Number for ANT. Do not edit!
-#Thu Feb 02 19:19:17 CET 2006
-build.number=186
+#Tue May 09 22:53:43 CEST 2006
+build.number=108
diff --git a/build.xml b/build.xml
index d4d9625..a8ccea2 100644
--- a/build.xml
+++ b/build.xml
@@ -22,9 +22,9 @@
    Compiler: Ant
    Authors:  Joerg K. Wegner, wegnerj at informatik.uni-tuebingen.de
              Morten O. Alver
-   Version:  $Revision: 1.54.2.3 $
-             $Date: 2006/02/02 09:31:59 $
-             $Author: mortenalver $
+   Version:  $Revision: 1.59 $
+             $Date: 2006/04/26 08:38:44 $
+             $Author: kiar $
 
    modified:
              28.07.2005 r.nagel
@@ -46,7 +46,7 @@
 
         <!-- some version information -->
         <property name="jabref.bin" value="jabref" />
-        <property name="jabref.version" value="2.0.1" />
+        <property name="jabref.version" value="2.1 beta" />
         <property name="jabref.placeholder.version" value="@version@" /> <!-- used by replace task -->
 
 
@@ -63,6 +63,9 @@
         <property name="build.resource" value="${build.dir}/resource" />
         <property name="build.help" value="${build.dir}/help" />
         <property name="build.javadocs" value="${build.dir}/docs/API" />
+        <property name="build.extensions" value="${build.dir}/extensions" />
+        <property name="build.extension-javadocs" value="${build.extensions}/API" />
+        <property name="build.extension-layout" value="${build.extensions}/layout" />
         <property name="build.openoffice.meta" value="${build.resource}/openoffice"/>
 
         <!-- Set the properties for source directories -->
@@ -77,6 +80,8 @@
         <property name="images.dir" value="${src.dir}/images" />
         <property name="fonts.dir" value="${src.dir}/images/font" />
         <property name="help.dir" value="${src.dir}/help" />
+        <property name="extensions.dir" value="${src.dir}/extensions" />
+        <property name="layout.dir" value="${src.dir}/resource/layout" />
 
 
         <!-- Set the properties for library directories -->
@@ -106,9 +111,9 @@
             <!--<pathelement location="${library.directory}/commons-httpclient-2.0.jar" />
             <pathelement location="${library.directory}/commons-logging.jar" />-->
             <pathelement location="${library.directory}/antlr.jar" />
-            <pathelement location="${library.directory}/looks-1.2.2.jar" />
+            <pathelement location="${library.directory}/looks-2.0.1.jar" />
             <pathelement location="${library.directory}/forms-1.0.4.jar" />
-            <pathelement location="${library.directory}/spin.jar" />
+            <pathelement location="${library.directory}/spin-1.4.jar" />
             <pathelement location="${library.directory}/glazedlists-1.5.0_java14.jar" />
         </classpath>
          </java>
@@ -120,7 +125,7 @@
         <classpath>
             <pathelement location="${build.lib}/jabref.jar"/>
             <pathelement location="${library.directory}/antlr.jar" />
-            <pathelement location="${library.directory}/looks-1.2.2.jar" />
+            <pathelement location="${library.directory}/looks-2.0.1.jar" />
             <pathelement location="${library.directory}/forms-1.0.4.jar" />
             <pathelement location="${library.directory}/spin.jar" />
             <pathelement location="${library.directory}/glazedlists-1.5.0_java14.jar" />
@@ -134,9 +139,9 @@
           <classpath>
             <pathelement location="${build.lib}/jabref.jar"/>
             <pathelement location="${library.directory}/antlr.jar" />
-            <pathelement location="${library.directory}/looks-1.2.2.jar" />
+            <pathelement location="${library.directory}/looks-2.0.1.jar" />
             <pathelement location="${library.directory}/forms-1.0.4.jar" />
-            <pathelement location="${library.directory}/spin.jar" />
+            <pathelement location="${library.directory}/spin-1.4.jar" />
             <pathelement location="${library.directory}/glazedlists-1.5.0_java14.jar" />
         </classpath>
       </nbprofiledirect>
@@ -150,10 +155,11 @@
           <classpath>
             <pathelement location="${build.lib}/jabref.jar"/>
             <pathelement location="${library.directory}/antlr.jar" />
-            <pathelement location="${library.directory}/looks-1.2.2.jar" />
+            <pathelement location="${library.directory}/looks-2.0.1.jar" />
             <pathelement location="${library.directory}/forms-1.0.4.jar" />
-            <pathelement location="${library.directory}/spin.jar" />
+            <pathelement location="${library.directory}/spin-1.4.jar" />
             <pathelement location="${library.directory}/glazedlists-1.5.0_java14.jar" />
+
         </classpath>
       </java>
     </target>
@@ -161,7 +167,7 @@
         <target name="compile">
                 <mkdir dir="${build.classes}" />
                 <!--deprecation="on"-->
-                <javac debug="off" deprecation="on" destdir="${build.classes}" source="1.4" target="1.4">
+                <javac debug="on" deprecation="on" destdir="${build.classes}" source="1.4" target="1.4">
                         <src path="${java.dir}"/>
                         <exclude name="tests/**"/>
                         <classpath>
@@ -169,10 +175,11 @@
                                 <!--<pathelement location="${library.directory}/commons-httpclient-2.0.jar" />
                                 <pathelement location="${library.directory}/commons-logging.jar" />-->
                                 <pathelement location="${library.directory}/antlr.jar" />
-                                <pathelement location="${library.directory}/looks-1.2.2.jar" />
+                                <pathelement location="${library.directory}/looks-2.0.1.jar" />
                                 <pathelement location="${library.directory}/forms-1.0.4.jar" />
-                                <pathelement location="${library.directory}/spin.jar" />
-                            <pathelement location="${library.directory}/glazedlists-1.5.0_java14.jar" />
+                                <pathelement location="${library.directory}/spin-1.4.jar" />
+                                <pathelement location="${library.directory}/glazedlists-1.5.0_java14.jar" />
+                                <pathelement location="${library.directory}/microba.jar" />
                         </classpath>
                 </javac>
         </target>
@@ -187,8 +194,8 @@
                                 <!--<pathelement location="${library.directory}/commons-httpclient-2.0.jar" />
                                 <pathelement location="${library.directory}/commons-logging.jar" />-->
                                 <pathelement location="${library.directory}/antlr.jar" />
-                                <pathelement location="${library.directory}/looks-1.2.2.jar" />
-                                <pathelement location="${library.directory}/spin.jar" />
+                                <pathelement location="${library.directory}/looks-2.0.1.jar" />
+                                <pathelement location="${library.directory}/spin-1.4.jar" />
                         </classpath>
                 </javac>
 
@@ -234,7 +241,8 @@
                                 <include name="README" />
                         </fileset>
                         <manifest>
-                            <attribute name="Main-Class" value="net.sf.jabref.JabRef" />
+                            <attribute name="Main-Class" value="net.sf.jabref.JabRef" /> 
+<!--                            <attribute name="Main-Class" value="net.sf.jabref.gui.FieldWeightDialog" /> -->
                         </manifest>
                 </jar>
 
@@ -327,6 +335,70 @@ version=${jabref.version}</echo>
                 </javadoc>
         </target>
 
+        <!-- Creates javadocs for the extensions -->
+        <target name="extension-javadocs" depends="build" description="Generates the javadocs for the extensions archive">
+                <mkdir dir="${build.extension-javadocs}" />
+                <copy todir="${build.extension-javadocs}">
+                    <fileset dir="${help.dir}" defaultexcludes="yes">
+                        <include name="CustomExports.html" />
+                        <include name="CustomImports.html" />
+                    </fileset>
+                </copy>
+                
+                <javadoc sourcepath="${java.dir}" 
+                         destdir="${build.extension-javadocs}" 
+                         author="true" 
+                         version="true" 
+                         windowtitle="JabRef-Extensions API" 
+                         link="http://java.sun.com/j2se/1.4.1/docs/api/"
+                         Overview="${extensions.dir}/API/overview.html"
+                         access="protected"
+                >
+                        <!-- 
+                          create javadoc only selectively for classes that 
+                          users extending JabRef are likely to use
+                        -->
+                        <fileset dir="${java.dir}" defaultexcludes="yes">
+                            <include name="net/sf/jabref/imports/ImportFormat.java" />
+                            <include name="net/sf/jabref/imports/ImportFormatReader.java" />
+                            <include name="net/sf/jabref/BibtexEntry.java" />
+                            <include name="net/sf/jabref/BibtexEntryType.java" />
+                            <include name="net/sf/jabref/AuthorList.java" />
+                            <include name="net/sf/jabref/AuthorList.java" />                        
+                            <include name="net/sf/jabref/export/layout/LayoutFormatter.java" />
+                        </fileset>
+
+                        <classpath refid="classpath" />
+                </javadoc>
+        </target>
+        
+        <!-- Creates javadocs for the extensions -->
+        <target name="extensions" depends="extension-javadocs" description="Generates the extensions archive">
+            <!-- copy examples -->
+            <copy todir="${build.extensions}">
+			   <fileset dir="${java.dir}">
+			      <include name="net/sf/jabref/export/layout/format/CurrentDate.java"/>
+			      <include name="net/sf/jabref/export/layout/format/ToLowerCase.java"/>
+			      <include name="net/sf/jabref/export/layout/format/HTMLChars.java"/>
+			      <include name="net/sf/jabref/imports/*Importer.java"/>
+			    </fileset>
+            </copy>
+            <mkdir dir="${build.extension-layout}" />
+            <copy todir="${build.extension-layout}">
+			   <fileset dir="${layout.dir}" />
+            </copy>
+            <copy todir="${build.extensions}">
+			   <fileset dir="${extensions.dir}" />
+			   <filterset>
+			      <filter token="version" value="${jabref.version}"/>
+			   </filterset>
+            </copy>
+            <!-- create extensions-zip file -->
+		    <zip destfile="${build.dir}/jabref-extensions.zip">
+		        <zipfileset dir="${build.extensions}" prefix="jabref-extensions"/>
+		    </zip>        
+		</target>
+        
         <target name="clean" description="Clean project">
                 <delete dir="${build.dir}" />
         </target>
@@ -338,12 +410,14 @@ version=${jabref.version}</echo>
                 <unjar src="${library.directory}/commons-logging.jar" dest="${build.tmp}" />-->
                 <unjar src="${library.directory}/antlr.jar" dest="${build.tmp}" />
                 <!--                <unjar src="${library.directory}/plastic-1.2.1.jar" dest="${build.classes}" />-->
-                <unjar src="${library.directory}/looks-1.2.2.jar" dest="${build.tmp}" />
+                <unjar src="${library.directory}/looks-2.0.1.jar" dest="${build.tmp}" />
                 <unjar src="${library.directory}/forms-1.0.4.jar" dest="${build.tmp}" />
-                <unjar src="${library.directory}/spin.jar" dest="${build.tmp}" />
+                <unjar src="${library.directory}/spin-1.4.jar" dest="${build.tmp}" />
                 <unjar src="${library.directory}/glazedlists-1.5.0_java14.jar" dest="${build.tmp}" />
-
+                <unjar src="${library.directory}/microba.jar" dest="${build.tmp}" />
             <delete dir="${build.tmp}/META-INF"/>
+	    <!-- rename the microba license file -->
+	    <move file="${build.tmp}/license.txt" tofile="${build.tmp}/microba-license.txt"/>
         </target>
 
 
@@ -471,9 +545,9 @@ Number (CCN)           maintenance
                                 <!--<pathelement location="${library.directory}/commons-httpclient-2.0.jar" />
                                 <pathelement location="${library.directory}/commons-logging.jar" />-->
                                 <pathelement location="${library.directory}/antlr.jar" />
-                                <pathelement location="${library.directory}/looks-1.2.2.jar" />
-                                <pathelement location="${library.directory}/looks-1.2.2.jar" />
-                                <pathelement location="${library.directory}/spin.jar" />
+                                <pathelement location="${library.directory}/looks-2.0.1.jar" />
+                                <pathelement location="${library.directory}/looks-2.0.1.jar" />
+                                <pathelement location="${library.directory}/spin-1.4.jar" />
                         </classpath>
 
                         <!--<test name="tests.net.sf.jabref.export.layout.format.AuthorLastFirstAbbreviatorTester"/>-->
diff --git a/lib/.cvsignore b/lib/.cvsignore
new file mode 100644
index 0000000..670be53
--- /dev/null
+++ b/lib/.cvsignore
@@ -0,0 +1,33 @@
+EndNote.zip
+JavaApplicationStub
+OSXAdapter.class
+PrepRelease.java
+aelfred-1.2.jar
+antlr.jar
+ccl.jar
+forms-1.0.4.jar
+forms-1.0.5.jar
+glazedlists-1.0.0.jar
+glazedlists-1.5.0_java14.jar
+jalopy-1.0b10.jar
+jalopy-ant-0.6.1.jar
+jarbundler-1.4.jar
+javancss.jar
+jaxen-core-1.0-fcs.jar
+jaxp-1.2.jar
+jdom-1.0b8.jar
+junit.jar
+log4j-1.2.6.jar
+log4j-1.2.9.jar
+looks-1.2.2.jar
+looks-2.0.1.jar
+oro-2.0.6.jar
+plastic-1.2.1.jar
+pmd-2.0.jar
+sax-2.0.1.jar
+saxpath-1.0-fcs.jar
+spin-1.4.jar
+spin.jar
+syncLang.py
+vizant.jar
+langproper.jar
diff --git a/lib/looks-1.2.2.jar b/lib/looks-1.2.2.jar
deleted file mode 100644
index a68ba26..0000000
Binary files a/lib/looks-1.2.2.jar and /dev/null differ
diff --git a/lib/looks-2.0.1.jar b/lib/looks-2.0.1.jar
new file mode 100644
index 0000000..e969b64
Binary files /dev/null and b/lib/looks-2.0.1.jar differ
diff --git a/lib/microba.jar b/lib/microba.jar
new file mode 100644
index 0000000..f8ea63a
Binary files /dev/null and b/lib/microba.jar differ
diff --git a/lib/spin-1.4.jar b/lib/spin-1.4.jar
new file mode 100644
index 0000000..a683361
Binary files /dev/null and b/lib/spin-1.4.jar differ
diff --git a/lib/spin.jar b/lib/spin.jar
deleted file mode 100644
index d5103e4..0000000
Binary files a/lib/spin.jar and /dev/null differ
diff --git a/src/extensions/API/overview.html b/src/extensions/API/overview.html
new file mode 100644
index 0000000..d6ac343
--- /dev/null
+++ b/src/extensions/API/overview.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+  <title>JabRef-Extensions help</title>
+</head>
+
+<body>
+  <p>
+    JabRef can be extended in several ways.
+    To find out how to extend JabRef, please choose one of
+    <ul>
+    <li><a href="CustomExports.html">custom export layouts</a><br/>
+    </li>
+    <li><a href="CustomImports.html">custom importers</a><br/>
+    </li> 
+  </ul>
+  </p>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/extensions/SimpleCsvImporter.csv b/src/extensions/SimpleCsvImporter.csv
new file mode 100644
index 0000000..0585107
--- /dev/null
+++ b/src/extensions/SimpleCsvImporter.csv
@@ -0,0 +1,3 @@
+1936;John Maynard Keynes;The General Theory of Employment, Interest and Money
+2003;Boldrin & Levine;Case Against Intellectual Monopoly
+2004;ROBERT HUNT AND JAMES BESSEN;The Software Patent Experiment
\ No newline at end of file
diff --git a/src/extensions/SimpleCsvImporter.java b/src/extensions/SimpleCsvImporter.java
new file mode 100644
index 0000000..3b4ee40
--- /dev/null
+++ b/src/extensions/SimpleCsvImporter.java
@@ -0,0 +1,36 @@
+import java.io.*;
+import java.util.*;
+import net.sf.jabref.*;
+import net.sf.jabref.imports.ImportFormat;
+import net.sf.jabref.imports.ImportFormatReader;
+
+public class SimpleCsvImporter extends ImportFormat {
+
+  public String getFormatName() {
+    return "Simple CSV Importer";
+  }
+
+  public boolean isRecognizedFormat(InputStream stream) throws IOException {
+    return true; // this is discouraged except for demonstration purposes
+  }
+  
+  public List importEntries(InputStream stream) throws IOException {    
+    ArrayList bibitems = new ArrayList();
+    BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
+      
+    String line = in.readLine();
+    while (line != null) {
+      if (!"".equals(line.trim())) {
+        String[] fields = line.split(";");
+        BibtexEntry be = new BibtexEntry(Util.createNeutralId());
+        be.setType(BibtexEntryType.getType("techreport"));
+        be.setField("year", fields[0]);
+        be.setField("author", fields[1]);
+        be.setField("title", fields[2]);
+        bibitems.add(be);
+        line = in.readLine();
+      }     
+    }
+    return bibitems;      
+  }
+}
diff --git a/src/extensions/compileAll.bat b/src/extensions/compileAll.bat
new file mode 100644
index 0000000..b7604fc
--- /dev/null
+++ b/src/extensions/compileAll.bat
@@ -0,0 +1,50 @@
+ at echo off
+:: Simple Windows batch script to compile Java-classes that are part 
+:: of the jabref-extensions.
+:: We don't use ant here, 'cause anyone just with a out-of-the-box
+:: Java-installation should be able to compile
+:: extension files.
+:: For UNIX there is a corresponding sh-script
+
+:: Make sure, jabref and java can be found
+if exist ..\lib\jabref.jar set JABREF_JAR=..\lib\jabref.jar
+if exist ..\lib\JabRef.jar set JABREF_JAR=..\lib\JabRef.jar
+if exist ..\lib\jabref- at version@.jar set JABREF_JAR=..\lib\jabref- at version@.jar
+if exist ..\lib\JabRef- at version@.jar set JABREF_JAR=..\lib\JabRef- at version@.jar
+if exist ..\jabref.jar set JABREF_JAR=..\jabref.jar
+if exist ..\JabRef.jar set JABREF_JAR=..\JabRef.jar
+if exist ..\jabref- at version@.jar set JABREF_JAR=..\jabref- at version@.jar
+if exist ..\JabRef- at version@.jar set JABREF_JAR=..\JabRef- at version@.jar
+if exist lib\jabref.jar set JABREF_JAR=lib\jabref.jar
+if exist lib\JabRef.jar set JABREF_JAR=lib\JabRef.jar
+if exist lib\jabref- at version@.jar set JABREF_JAR=lib\jabref- at version@.jar
+if exist lib\JabRef- at version@.jar set JABREF_JAR=lib\JabRef- at version@.jar
+if exist jabref.jar set JABREF_JAR=jabref.jar
+if exist JabRef.jar set JABREF_JAR=JabRef.jar
+if exist jabref- at version@.jar set JABREF_JAR=jabref- at version@.jar
+if exist JabRef- at version@.jar set JABREF_JAR=JabRef- at version@.jar
+if exist %JABREF_HOME%\jabref.jar set JABREF_JAR=%JABREF_HOME%\jabref.jar
+if exist %JABREF_HOME%\JabRef.jar set JABREF_JAR=%JABREF_HOME%\JabRef.jar
+if exist %JABREF_HOME%\jabref- at version@.jar set JABREF_JAR=%JABREF_HOME%\jabref- at version@.jar
+if exist %JABREF_HOME%\JabRef- at version@.jar set JABREF_JAR=%JABREF_HOME%\jabref- at version@.jar
+
+if NOT exist "%JABREF_JAR%"=="" goto nojabref
+
+if "%JAVA_HOME%"=="" goto nojava
+
+:: Compile Java-extensions
+%JAVA_HOME%\bin\javac -classpath %JABREF_JAR% net\sf\jabref\imports\*.java
+%JAVA_HOME%\bin\javac -classpath %JABREF_JAR% *.java
+%JAVA_HOME%\bin\javac -classpath %JABREF_JAR% net\sf\jabref\export\layout\format\*.java
+goto done
+
+:nojava
+echo Please set the environment variable JAVA_HOME to the base path of your Java-installation (e.g. set JAVA_HOME=C:\j2sdk1.4.2_07).
+goto done
+
+:nojabref
+echo Please set the environment variable JABREF_JAR to the path where your jabref.jar resides (e.g. set JABREF_HOME=C:\Programme\JabRef-2.0.1).
+goto done
+
+:done
+
diff --git a/src/extensions/compileAll.sh b/src/extensions/compileAll.sh
new file mode 100644
index 0000000..10e7b90
--- /dev/null
+++ b/src/extensions/compileAll.sh
@@ -0,0 +1,9 @@
+
+# Simple shell script to compile Java-classes that are part 
+# of the jabref-extensions.
+# We don't use ant here, 'cause anyone just with a out-of-the-box
+# Java-installation should be able to compile
+# extension files.
+# For Windows there is a corresponding batch-script
+
+echo todo
\ No newline at end of file
diff --git a/src/extensions/readme.html b/src/extensions/readme.html
new file mode 100644
index 0000000..8de028c
--- /dev/null
+++ b/src/extensions/readme.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+  <title>JabRef-Extensions for JabRef @version@ help</title>
+</head>
+
+<body>
+  <h1>Extending JabRef's export and import capabilities</h1>
+  
+  <h2>Custom exports</h2>
+  
+  <p>JabRef's export and import capabilities can be extended quite
+  easily. Please unzip the JabRef-extensions file, preferably to the
+  same folder where you installed JabRef (where the <code>jabref.jar</code> file can be found).
+  </p>
+  
+  <p>To create your own export format, you can define <i>custom layouts</i>,
+  simple templates where at certain places the contents of a JabRef database are written
+  into. For an example see the files in the <a href="layout">layout directory</a>.
+  For more details about creating your own export format, please read 
+  <a href="API/CustomExports.html"><code>API/CustomExports.html</code></a>.</p>
+  
+  <p>The extensions contain also a few simple examples on how to create new <i>field formatters</i> -
+  small commands that determine how database entries are written to your
+  custom layout, please check <a href="net/sf/jabref/export/layout/format"><code>net/sf/export/layout/format</code></a>.  
+  </p>
+  
+  <h2>Custom imports</h2>
+  
+  <p>You can also quite easily  create an importer that allows you
+  to read references from sources important to you. This requires only
+  modest programming skills. Please check the 
+  <a href="SimpleCsvImporter.java">example</a>, compile it
+  using the <code>compileAll.bat</code> script, register it
+  as a custom importer with your JabRef-installation and
+  import the <a href="SimpleCsvImporter.csv">SimpleCsvImporter.csv</a>
+  file to see how it is done. More details can be found
+  in <a href="API/CustomImports.html"><code>API/CustomImports.html</code></a>.</p>
+  
+  <p>All importers that are part of the standard JabRef-distribution are also
+  included in this extensions-package under <a href="net/sf/jabref/imports"><code>net/sf/jabref/imports</code></a>. 
+  In addition to serving as further examples, you can also fix them and register them as custom importers
+  if you encounter any problems.
+  </p>
+  
+  <h2>API documentation</h2>
+  
+  <p>The API-documentation for extensions that require some programming
+  is available under <a href="API/index.html"><code>API/index.html</code></a>.
+  </p>
+  
+</body>
+</html>
\ No newline at end of file
diff --git a/src/help/About.html b/src/help/About.html
index 175538d..a99654b 100755
--- a/src/help/About.html
+++ b/src/help/About.html
@@ -34,7 +34,7 @@ Kolja Brix<BR>
 Frédéric Darboux<BR>
 Fabrice Dessaint<BR>
 Nathan Dunn<BR>
-Brian van Essen<br>
+Brian Van Essen<br>
 Alexis Gallagher<BR>
 Sascha Hunold<BR>
 Bernd Kalbfuss<BR>
@@ -78,6 +78,10 @@ For table presentation and filtering, JabRef uses the Glazed Lists library
 <P>
 JabRef also uses the threading library Spin 1.3.1, which is distributed under the terms of
 the Lesser GNU Public License.
+
+<P>
+Some GUI components from the Microba library are used, it is licensed under a BSD style license.
+See <code>http://sourceforge.net/projects/microba/</code> for more informations.
 <P>
 This product includes software developed by the Apache Software
 Foundation (http://www.apache.org/). The libraries Commons Logging and
diff --git a/src/help/BibtexHelp.html b/src/help/BibtexHelp.html
index a5e2ed7..5aaf241 100755
--- a/src/help/BibtexHelp.html
+++ b/src/help/BibtexHelp.html
@@ -1,20 +1,29 @@
-<HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head></head>
 
-<BODY text="#275856">
+<body style="color: rgb(39, 88, 86);">
 <basefont size="4" color="#2F4958" face="arial">
 
-<H1>About <em>bibtex</em></H1>
+<h1>About <em>bibtex</em></h1>
+
+
+
+
 
 JabRef helps you work with your <em>bibtex</em> databases, but
 there are still rules to keep in mind when editing your entries, to
 ensure that your database is treated properly by the <em>bibtex</em>
 program.
 
-<H2><em>Bibtex</em> fields</H2>
+<h2><em>Bibtex</em> fields</h2>
+
+
+
+
 
 There is a lot of different fields in <em>bibtex</em>, and some
 additional fields that you can set in JabRef. 
-<P>
+<p>
 Generally, you can use LaTeX commands inside of fields containing
 text. <em>Bibtex</em> will automatically format your reference lists,
 and those fields that are included in the lists will be
@@ -22,29 +31,337 @@ and those fields that are included in the lists will be
 certain characters remain capitalized, enclose them in braces, like in
 the word {B}elgium.
 
-<P>
+</p>
+
+
+
+<p>
 Notes about some of the field types:
+</p>
+
+
+
 <ul>
-<li><em>Author:</em> This field should contain the complete author
+
+
+
+<li><strong style="font-style: italic;">Bibtexkey</strong> A unique string used to refer to the entry in
+LaTeX documents. Note that when referencing an entry from LaTeX, the
+key must match case-sensitively with the reference string.<br>
+    <br>
+</li>
+
+  <li><strong>address<br>
+    </strong>Usually the address of the <tt>publisher</tt> or other type
+of institution.
+For major publishing houses,
+van Leunen recommends omitting the information entirely.
+For small publishers, on the other hand, you can help the
+reader by giving the complete address.
+    <p>
+    </p>
+  </li>
+  <li><strong>annote<br>
+    </strong>An annotation.
+It is not used by the standard bibliography styles,
+but may be used by others that produce an annotated bibliography.
+    <p>
+    </p>
+  </li>
+  <li><strong>author<br>
+    </strong>This field should contain the complete author
 list for your entry. The names are separated by the word <em>and</em>,
 even if there are more than two authors. Each name can be written
 in two equivalent forms:<br>
+
  Donald E. Knuth <em>or</em> Knuth, Donald E.<br>
+
  Eddie van Halen <em>or</em> van Halen, Eddie<br>
 
+
 The second form should be used for authors with more than two names,
-to differentiate between middle names and last names.
+to differentiate between middle names and last names.<br>
+    <br>
+    <span style="font-weight: bold;"></span></li>
+  <li><span style="font-weight: bold;"></span><strong>booktitle<br>
+    </strong>Title of a book, part of which is being cited.
+See the LaTeX book for how to type titles.
+For book entries, use the <tt>title</tt> field instead.
+    <p>
+    </p>
+  </li>
+  <li><strong>chapter<br>
+    </strong>A chapter (or section or whatever) number.
+    <p>
+    </p>
+  </li>
+  <li><strong>crossref<br>
+    </strong>The database key of the entry being cross referenced.
+    <p>
+    </p>
+  </li>
+  <li><strong>edition<br>
+    </strong>The edition of a book--for example, ``Second''.
+This should be an ordinal, and
+should have the first letter capitalized, as shown here;
+the standard styles convert to lower case when necessary.
+    <p>
+    </p>
+  </li>
+  <li><strong>editor<br>
+    </strong>This field is analogue to the <em>author</em> field.
+If there is also an <tt>author</tt> field, then
+the <tt>editor</tt> field gives the editor of the book or collection
+in which the reference appears.
+    <p>
+    </p>
+  </li>
+  <li><strong>howpublished<br>
+    </strong>How something strange has been published.
+The first word should be capitalized.
+    <p>
+    </p>
+  </li>
+  <li><strong>institution<br>
+    </strong>The sponsoring institution of a technical report.
+    <p>
+    </p>
+  </li>
+  <li><strong>journal<br>
+    </strong>A journal name.
+Abbreviations are provided for many journals; see the <i>Local Guide</i>.
+    <p>
+    </p>
+  </li>
+  <li><strong>key<br>
+    </strong>Used for alphabetizing, cross referencing, and creating a label when
+the ``author'' information is missing.
+This field should not be confused with the key that appears in the
+    <code>\cite</code> command and at the beginning of the database entry.
+    <p>
+    </p>
+  </li>
+  <li><strong>month<br>
+    </strong>The month in which the work was
+published or, for an unpublished work, in which it was written.
+You should use the standard three-letter abbreviation,
+as described in Appendix B.1.3 of the LaTeX book.
+    <p>
+    </p>
+  </li>
+  <li><strong>note<br>
+    </strong>Any additional information that can help the reader.
+The first word should be capitalized.
+    <p>
+    </p>
+  </li>
+  <li><strong>number</strong><br>
+The number of a journal, magazine, technical report,
+or of a work in a series.
+An issue of a journal or magazine is usually
+identified by its volume and number;
+the organization that issues a
+technical report usually gives it a number;
+and sometimes books are given numbers in a named series.
+    <p>
+    </p>
+  </li>
+  <li><strong>organization<br>
+    </strong>The organization that sponsors a conference or that publishes a manual.
+    <p>
+    </p>
+  </li>
+  <li><strong>pages<br>
+    </strong>One or more page numbers or range of numbers,
+such as <tt>42-111</tt> or <tt>7,41,73-97</tt> or <tt>43+</tt>
+(the `<tt>+</tt>' in this last example indicates pages following
+that don't form a simple range).
+To make it easier to maintain <em>Scribe</em>-compatible databases,
+the standard styles convert a single dash (as in <tt>7-33</tt>)
+to the double dash used in TeX to denote number ranges
+(as in <tt>7-33</tt>).
+    <p>
+    </p>
+  </li>
+  <li><strong>publisher<br>
+    </strong>The publisher's name.
+    <p>
+    </p>
+  </li>
+  <li><strong>school<br>
+    </strong>The name of the school where a thesis was written.
+    <p>
+    </p>
+  </li>
+  <li><strong>series<br>
+    </strong>The name of a series or set of books.
+When citing an entire book, the the <tt>title</tt> field
+gives its title and an optional <tt>series</tt> field gives the
+name of a series or multi-volume set
+in which the book is published.
+    <p>
+    </p>
+  </li>
+  <li><strong>title<br>
+    </strong>The work's title, typed as explained in the LaTeX book.
+    <p>
+    </p>
+  </li>
+  <li><strong>type<br>
+    </strong>The type of a technical report--for example,
+``Research Note''.
+    <p>
+    </p>
+  </li>
+  <li><strong>volume<br>
+    </strong>The volume of a journal or multivolume book.
+    <p>
+    </p>
+  </li>
+  <li><strong>year<br>
+    </strong>The year of publication or, for
+an unpublished work, the year it was written.
+Generally it should consist of four numerals, such as <tt>1984</tt>,
+although the standard styles can handle any <tt>year</tt> whose
+last four nonpunctuation characters are numerals,
+such as `(about 1984)'. This field is required
+for most entry types.</li>
+</ul>
 
-<li><em>Editor:</em> This field is analogue to the <em>author</em> field.
 
-<li><em>Year:</em> The year of the publication. This field is required
-for most entry types.
 
-<li><em>Bibtexkey:</em> A unique string used to refer to the entry in
-LaTeX documents. Note that when referencing an entry from LaTeX, the
-key must match case-sensitively with the reference string.
+
+
+
+<br>
+
+
+<h2>Other fields</h2>
+
+
+
+BibTeX is extremely popular, and many people have used it to store
+information.  Here is a list of some of the more common fields:
+
+<dl>
+
+
+</dl>
+
+<ul>
+
+  <li><strong><span style="font-weight: normal; font-style: italic;">affiliation*</span><br>
+    </strong>The authors affiliation.<br>
+    <br>
+
+  </li>
+  <li><strong>abstract<br>
+    </strong>An abstract of the work.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">contents*</span><br>
+    </strong>A Table of Contents<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">copyright*</span><br>
+    </strong>Copyright information.<br>
+    <br>
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">ISBN*</span><br>
+    </strong>The International Standard Book Number.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">ISSN*</span><br>
+    </strong>The International Standard Serial Number.  Used to identify a journal.<br>
+    <br>
+
+  </li>
+  <li><strong>keywords<br>
+    </strong>Key words used for searching or possibly for annotation.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">language*</span><br>
+    </strong>The language the document is in.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">location*</span><br>
+    </strong>A location associated with the entry, such as the city in which a conference took place.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">LCCN*</span><br>
+    </strong>The Library of Congress Call Number.  I've also seen this as <tt>lib-congress</tt>.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">mrnumber*</span><br>
+    </strong>The <i>Mathematical Reviews</i> number.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">price*</span><br>
+    </strong>The price of the document.<br>
+    <br>
+
+  </li>
+  <li><strong><span style="font-weight: normal; font-style: italic;">size*</span><br>
+    </strong>The physical dimensions of a work.<br>
+    <br>
+
+  </li>
+  <li><strong>URL<br>
+    </strong>The WWW Universal Resource Locator that points to the item being
+    referenced.  This often is used for technical reports to point to
+    the ftp site where the postscript source of the report is located.
+
+  </li>
+</ul>
+
+<dl>
+
+
+</dl>
+
+
+
+
+
+
+<h3><br>
+</h3>
+
+
+
+<h3>JuraBib</h3>
+
+
+
+
+<ul>
+
+  <li><strong>urldate<br>
+    </strong>The date of the last page visit.</li>
 
 </ul>
 
 
-</HTML>
+<br>
+
+*) not direct supported by JabRef<br>
+
+
+
+
+
+
+
+<br>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/src/help/CustomImports.html b/src/help/CustomImports.html
index 2cc1b37..cebf2f7 100644
--- a/src/help/CustomImports.html
+++ b/src/help/CustomImports.html
@@ -110,16 +110,17 @@ Now there should be a file <code>/mypath/SimpleCsvImporter.class</code>.</p>
 Navigate to <code>/mypath</code> and click the <b>Select ...</b> button. Select the
 <code>SimpleCsvImporter.class</code> and click the <b>Select ...</b> button.
 Your importer should now appear in the list of custom importers under the name 
-"Simple CSV Importer" and, after you click <b>Close</bd> also in the <b>File -> Import -> 
+"Simple CSV Importer" and, after you click <b>Close</b> also in the <b>File -> Import -> 
 Custom Importers</b> and <b>File -> Import and Append -> Custom Importers</b> submenus 
 of the JabRef window.</p>
 
 <H2>Sharing your work</H2>
 
-With custom importer files, it's fairly simple to share custom import formats between users.
+<p>With custom importer files, it's fairly simple to share custom import formats between users.
 If you write an import filter for a format not supported by JabRef, or an improvement over an
 existing one, we encourage you to post your work on our SourceForge.net page. We'd be happy to 
 distribute a collection of submitted import files, or to add to the selection of standard 
-importers.
+importers.</p>
 
+</BODY>
 </HTML>
diff --git a/src/help/IEEEXplorerHelp.html b/src/help/IEEEXplorerHelp.html
new file mode 100644
index 0000000..5661a54
--- /dev/null
+++ b/src/help/IEEEXplorerHelp.html
@@ -0,0 +1,26 @@
+<HTML>
+
+<BODY text="#275856">
+<basefont size="4" color="#2F4958" face="arial">
+
+<H1>Search IEEEXplore</H1>
+
+JabRef can download citations from the IEEEXplore database.
+To use this feature, choose <b>Tools -> Search IEEEXplore</b>,
+and the search interface will appear in the side pane.
+<P>
+To start a search, enter the words of your query, and press
+<b>Enter</b> or the <b>Fetch</b> button.
+
+<p>
+The search is done in guest mode, which means that a maximum of 100 results
+will be returned.
+
+<p>
+You may opt to download the abstracts along with the cite information for each
+entry, by checking the <b>Include abstracts</b> checkbox. This causes a
+significantly larger amount of network queries, so to avoid excessive pressure
+on the IEEEXplore web site, JabRef will refuse to download abstracts
+for searches returning more than a given number of hits.
+
+</HTML>
diff --git a/src/help/ShortAuxImport.html b/src/help/ShortAuxImport.html
new file mode 100644
index 0000000..7a9d14b
--- /dev/null
+++ b/src/help/ShortAuxImport.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head></head>
+
+<body>
+<basefont size="-1" color="#2F4958" face="arial">
+This feature generates a new database, which contains only the used references of an existing TeX project.
+</body></html>
\ No newline at end of file
diff --git a/src/help/credits.txt b/src/help/credits.txt
index 6a4035f..62fd992 100644
--- a/src/help/credits.txt
+++ b/src/help/credits.txt
@@ -19,6 +19,7 @@ Kolja Brix
 Fr�d�ric Darboux
 Fabrice Dessaint
 Nathan Dunn
+Brian Van Essen
 Alexis Gallagher
 Sascha Hunold
 Bernd Kalbfuss
diff --git a/src/help/de/About.html b/src/help/de/About.html
index 3482716..f12ff20 100644
--- a/src/help/de/About.html
+++ b/src/help/de/About.html
@@ -1,77 +1,87 @@
-<HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head></head>
 
-<BODY text="#275856">
+<body text="#275856">
 <basefont size="4" color="#2F4958" face="arial">
-<CENTER>
-<H1>JabRef Version @version@</H1>
+<center>
+<h1>JabRef Version @version@</h1>
 
 (c) 2006
 
 
-<P>
+<p>
 JabRef ist frei verfügbar unter den Bedingungen der
 <a href="License.html">Gnu Public License</a>.
 
-<H2>Entwickler:</H2>
-Morten O. Alver<BR>
-Nizar N. Batada<BR>
-Michel Baylac<BR>
-Guillaume Gardey<BR>
-Cyrille d'Haese<BR>
-Raik Nagel<BR>
-Ellen Reitmayr<BR>
-Andreas Rudert<BR>
-Michael Spiegel<BR>
-Ulrik Stervbo<BR>
-Dominik Waßenhoven<BR>
-Joerg K. Wegner<BR>
-Michael Wrighton<BR>
-Egon Willighagen <BR>
-Jörg Zieren<BR>
+</p><h2>Entwickler:</h2>
+Morten O. Alver<br>
+Nizar N. Batada<br>
+Michel Baylac<br>
+Guillaume Gardey<br>
+Cyrille d'Haese<br>
+Raik Nagel<br>
+Ellen Reitmayr<br>
+Andreas Rudert<br>
+Michael Spiegel<br>
+Ulrik Stervbo<br>
+Dominik Waßenhoven<br>
+Joerg K. Wegner<br>
+Michael Wrighton<br>
+Egon Willighagen <br>
+Jörg Zieren<br>
 
-<H2>Beiträge von:</H2>
-Kolja Brix<BR>
-Frédéric Darboux<BR>
-Fabrice Dessaint<BR>
-Nathan Dunn<BR>
+<h2>Beiträge von:</h2>
+Kolja Brix<br>
+Frédéric Darboux<br>
+Fabrice Dessaint<br>
+Nathan Dunn<br>
 Brian van Essen<br>
-Alexis Gallagher<BR>
-Sascha Hunold<BR>
-Bernd Kalbfuss<BR>
-Martin Kähmer<BR>
-Jeffrey Kuhn<BR>
-Alex Montgomery<BR>
-John Relph<BR>
-Moritz Ringler<BR>
-Rudolf Seemann<BR>
+Alexis Gallagher<br>
+Sascha Hunold<br>
+Bernd Kalbfuss<br>
+Martin Kähmer<br>
+Jeffrey Kuhn<br>
+Alex Montgomery<br>
+John Relph<br>
+Moritz Ringler<br>
+Rudolf Seemann<br>
 Toralf Senger<br>    
-Mike Smoot<BR>
-Martin Stolle<BR>
-David Weitzman<BR>
-Seb Wills<BR>
+Mike Smoot<br>
+Martin Stolle<br>
+David Weitzman<br>
+Seb Wills<br>
 
-<H2>Dank an:</H2>
-Samin Muhammad Ridwanul Karim<BR>
-Stefan Robert<BR>
+<h2>Dank an:</h2>
+Samin Muhammad Ridwanul Karim<br>
+Stefan Robert<br>
 
-<H2>Benutzte Fremdsoftware:</H2>
+<h2>Benutzte Fremdsoftware:</h2>
 JabRef benutzt JGoodies Looks 1.2.2 und JGoodiesForms 1.0.4, das von JGoodies (<code>http://www.jgoodies.com</code>) unter den Bedingungen der BSD License vertrieben wird (siehe <code>http://www.opensource.org/licenses/bsd-license.html</code> für nähere Einzelheiten dieser Lizenz).
-<P>
-Außerdem werden zwei zustätzliche Klassen (SimpleInternalFrame and UIFSplitPane) von Karsten Lentzsch benutzt, die unter <A HREF="jgoodies.html">diesen Bedingungen</A> vertrieben werden.
-<P>
+<p>
+Außerdem werden zwei zustätzliche Klassen
+(SimpleInternalFrame and UIFSplitPane) von Karsten Lentzsch benutzt,
+die unter <a href="jgoodies.html">diesen Bedingungen</a> vertrieben werden.
+</p><p>
 Kommandozeilenbefehle werden geparst mit RitOpt (<code>http://ritopt.sourceforge.net</code>), das unter den Bedingungen der <a href="License.html">GNU Public License</a> (Version 2) verfügbar ist.
-<P>
+</p><p>
 JabRef verwendet für die Suche den ANTLR Parser Generator. ANTLR ist public domain software - siehe <code>http://www.antlr.org/license.html</code> für die Lizenzbedingungen.
-<p>
+</p><p>
 Für die Darstellung und Filterung der Tabelle benutzt JabRef die Glazed Lists library
     (<code>http://publicobject.com/glazedlists</code>), die unter den Bedingungen der Lesser GNU Public License vertrieben wird.
-<P>
-JabRef benutzt darüber hinaus die "threading library" Spin 1.3.1, die unter den Bedingungen der LGPL (Lesser GNU Public License) vertrieben wird.
-<P>
+</p><p>
+JabRef benutzt darüber hinaus die "threading library" Spin 1.3.1,
+die unter den Bedingungen der LGPL (Lesser GNU Public License)
+vertrieben wird.<br>
+</p>
+<p>Für die einfache Auswahl und den Umgang mit Datumsangaben
+werden Komponenten der Microba Bibliothek verwenden. Diese wird unter
+einer BSD Lizenz vertrieben, siehe auch <code>http://sourceforge.net/projects/microba/</code>
+für eine genauere Beschreibung.
+
+</p><p>
 Dieses Produkt beinhaltet Software, die von der Apache Software Foundation (<code>http://www.apache.org</code>) entwickelt wurde. Die Bibliotheken "Commons Logging" und "Commons HTTP Client" werden von The Jakarta Project (<code>http://jakarta.apache.org</code>) unter der Apache Software Lizenz (Version 1.1) vertrieben (siehe die beigelegte Datei <code>apache-license.txt</code> oder <code>http://opensource.org/licenses/apachepl.php</code> für nähere Einzelheiten dieser Lizenz).
-<P>
+</p><p>
 Einige Icons sind von uns, aber die meisten stammen vom Eclipse Projekt (<code>http://www.eclipse.org</code>), das unter den Bedingungen der <a href="cpl-v10.html">Common Public License</a> vertrieben wird, sowie vom QIcons Paket (<code>http://qt.osdn.org.ua</code>), das unter den Bedingungen der <a href="License.html">GNU Public License</a> vertrieben wird.
 
-</CENTER>
-</BODY>
-</HTML>
\ No newline at end of file
+</p></center>
+</body></html>
\ No newline at end of file
diff --git a/src/help/de/JabRef-UserManual_de.tex b/src/help/de/JabRef-UserManual_de.tex
index 06a50e8..4fdef14 100644
--- a/src/help/de/JabRef-UserManual_de.tex
+++ b/src/help/de/JabRef-UserManual_de.tex
@@ -1,6 +1,3 @@
-%%%%% To do: %%%%%
-% OpenOffice-Export aktualisieren (an aktuelle HTML-Doku anpassen)
-%
 % unter >>Erscheinungsbild<< noch die Punkte Tabellendarstellung,
 % Toolbar, Panels und Schriften erstellen (DW)
 %
@@ -10,8 +7,8 @@
 \documentclass[10pt,normalheadings]{scrartcl}
 \usepackage[T1]{fontenc}
 \usepackage[latin1]{inputenc}
-\setcounter{secnumdepth}{4}
-\setcounter{tocdepth}{2}
+\setcounter{secnumdepth}{1}
+\setcounter{tocdepth}{4}
 
 %%%%% Page Dimensions %%%%%
 \usepackage{geometry}
@@ -70,7 +67,7 @@
   }%
 }
 %%% version number
-\newcommand{\versionnr}{2.0 beta} %
+\newcommand{\versionnr}{2.0} %
 %%% JabRef logo with version nr
 \newcommand{\jabrefversion}{\jabref{}~\versionnr}
 %%% for Menu references
@@ -109,7 +106,15 @@
 
 %%%%% Other stuff %%%%%
 \deffootnote{1.5em}{1em}{\makebox[1.5em][l]{\thefootnotemark}}
-\usepackage{microtype} % micro typography
+%\usepackage{microtype} % micro typography
+
+%%%%% Mini TOCs %%%%%
+\usepackage[ngerman]{minitoc}
+\mtcsetrules{secttoc}{off}
+%\mtcsetdepth{secttoc}{3}
+\mtcsetfont{secttoc}{subsection}{}
+%\mtcsettitle{secttoc}{In diesem Abschnitt}
+%\mtcsettitlefont{secttoc}{\itshape}
 
 %%%%% Language %%%%%
 \usepackage[ngerman]{babel}
@@ -123,7 +128,7 @@ Me-n
 %%%%% Bibliography %%%%%
 \usepackage{jurabib}
 \jurabibsetup{annote=true}
-\renewcommand{\bib at heading}{\section*{Kommentiertes Literaturverzeichnis}}
+\renewcommand{\bib at heading}{\addsec{Kommentiertes Literaturverzeichnis}}
 
 %%%%% Hyperref %%%%%
 \usepackage{hyperref}
@@ -178,7 +183,7 @@ zu starten.
 \end{abstract}
 \begin{quote}
 \begin{spacing}{0.7}
-\begin{center}{\scriptsize Copyright \textcopyright{} 2005, Dominik
+\begin{center}{\scriptsize Copyright \textcopyright{} 2005--2006, Dominik
 Wa�enhoven}
 \end{center}
 {\scriptsize Dieser Inhalt ist unter einem Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Germany Lizenzvertrag lizenziert. Um die Lizenz anzusehen, gehen Sie bitte zu \href{http://creativecommons.org/licenses/by-nc-sa/2.0/de/}{http://creativecommons.org\slash{}licenses\slash{}by-nc-sa\slash{}2.0\slash{}de\slash{}} oder schicken Sie einen Brief an Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. \par}\end{spacing}
@@ -187,13 +192,14 @@ Wa
 \thispagestyle{empty}
 
 \newpage
-\tableofcontents{}
+\dosecttoc[e]
+\faketableofcontents{}
 
 \newpage
 
 
 \section{Einleitung}
-
+\secttoc
 
 \subsection{�ber dieses Handbuch}
 
@@ -232,7 +238,7 @@ wenn Sie Ihre Eintr
 dass Bib\TeX{} Ihre Datei richtig verarbeiten kann.}
 
 
-\subsubsection*{Bib\TeX{} Felder}
+\subsubsection{Bib\TeX{} Felder}
 
 Es gibt viele unterschiedliche Felder in Bib\TeX{} und einige zus�tzliche
 Felder, die Sie in \jabref{} einsetzen k�nnen. Grunds�tzlich k�nnen
@@ -274,8 +280,9 @@ die Gro
 F�r weitere Erl�uterungen zu Bib\TeX{} wird verwiesen auf \cite{Markey2005,btxdoc,btxhak,Raichle2002}.
 
 
+\clearpage
 \section{Installation}
-
+\secttoc
 
 \subsection{System-Voraussetzungen}
 
@@ -292,7 +299,7 @@ Development Kit}.
 \subsection{Windows}
 
 
-\subsubsection*{Installer (msi)}
+\subsubsection{Installer (msi)}
 
 \jabref{} gibt es im Windows Installer-Format (\texttt{.msi}). Ein
 Doppelklick auf die MSI-Datei installiert \jabref{} und f�gt dem
@@ -306,7 +313,7 @@ ein Tool zum Kompilieren von MSI-Dateien aus einer XML-Spezifikation
 }
 
 
-\subsubsection*{Batch-Datei (jar)}
+\subsubsection{Batch-Datei (jar)}
 
 Wenn Sie die ausf�hrbare jar-Datei (\texttt{.jar}) heruntergeladen
 haben, probieren Sie zun�chst, ob ein Doppelklick darauf das Programm
@@ -358,9 +365,12 @@ unter \url{http://jabref.sourceforge.net} und in der Datei INSTALL
 (zum Kompilieren aus den \emph{sourcen}).
 
 
+\clearpage
 \section{Funktionen}
+\secttoc
+\bigskip
 
-\label{JabRefHelp}\jabref{} ist ein Programm zur Verwaltung von
+\noindent \label{JabRefHelp}\jabref{} ist ein Programm zur Verwaltung von
 Bib\TeX{}-Dateien. Es benutzt kein eigenes Dateiformat, d.\,h. dass
 Sie Ihre Dateien direkt im Bib\TeX{}-Format (Dateiendung \texttt{.bib})
 laden und speichern. Sie k�nnen aber auch bibliographische Datenbanken
@@ -375,7 +385,6 @@ oder CiteMaker benutzen, kann aber auch f
 die andere Bibliographie-Systeme benutzen oder schlicht und einfach
 ihre Literaturquellen organisieren wollen.
 
-
 \subsection{Das Hauptfenster}
 
 \begin{quote}
@@ -431,7 +440,7 @@ f
 in \jabref{} bearbeitet werden.
 \end{itemize}
 
-\subsubsection*{Einen neuen Eintrag hinzuf�gen}
+\subsubsection{Einen neuen Eintrag hinzuf�gen}
 
 Es gibt verschiedene M�glichkeiten, einen neuen Eintrag hinzuzuf�gen.
 Im Men� \menu{BibTeX} f�hrt ein Klick auf \menu{Neuer Eintrag} zu
@@ -448,7 +457,7 @@ einzupr
 f�r einen Zeitschriftenaufsatz \emph{(article)}.}
 
 
-\subsubsection*{Einen Eintrag bearbeiten}
+\subsubsection{Einen Eintrag bearbeiten}
 
 Um den Eintrags-Editor (siehe \ref{EntryEditorHelp}) zur Bearbeitung
 eines existierenden Eintrags zu �ffnen, klicken Sie einfach doppelt
@@ -459,7 +468,7 @@ nicht ausgew
 zugeh�rigen Zeile den Eintrags-Editor.
 
 
-\subsubsection*{Einen Bib\TeX{}-String in einem Feld verwenden}
+\subsubsection{Einen Bib\TeX{}-String in einem Feld verwenden}
 
 In \jabref{} schreiben Sie den Inhalt aller Felder so, wie Sie es
 in einem Texteditor machen w�rden, mit einer Ausnahme: um einen String
@@ -499,7 +508,7 @@ Schlagen Sie unter Abschnitt~\ref{CustomEntriesHelp} nach, wenn
 Sie mehr Informationen dar�ber erhalten m�chten.
 
 
-\subsubsection*{Die Panels des Eintrags-Editors}
+\subsubsection{Die Panels des Eintrags-Editors}
 
 Der Eintrags-Editor besteht in der Standardeinstellung aus f�nf Panels:
 \emph{Ben�tigte Felder}, \emph{Optionale Felder}, \emph{General},
@@ -541,7 +550,7 @@ erscheinen diese im Quelltext-Panel.}
 Drag \& Drop. Sie k�nnen z.\,B. ein URL aus Ihrem Browser dort einf�gen.}
 
 
-\subsubsection*{�berpr�fung der Feldkonsistenz}
+\subsubsection{�berpr�fung der Feldkonsistenz}
 
 Wenn der Inhalt eines Feldes ge�ndert wird, �berpr�ft \jabref{},
 ob der neue Inhalt akzeptiert werden kann. Bei Feldern, die von Bib\TeX{}
@@ -615,7 +624,7 @@ Es gibt drei verschiedene Suchmethoden in \jabref{}: die direkte
 Suche, die Markier-Suche und die Sortier-Suche.
 
 
-\subsubsection*{Direkte Suche}
+\subsubsection{Direkte Suche}
 
 Bei der direkten Suche sucht \jabref{} unmittelbar, wenn Sie einen
 Buchstaben eingeben. Die Statuszeile informiert Sie �ber den Sucherfolg.
@@ -627,7 +636,7 @@ Sortierung Ihrer Datei. Um die direkte Suche zu verlassen, dr
 Sie ESC oder klicken Sie auf \menu{Zur�cksetzen}.
 
 
-\subsubsection*{Markier-Suche}
+\subsubsection{Markier-Suche}
 
 Wenn Sie die Suchmethode \emph{Markieren} w�hlen, sucht das Programm
 in Ihrer Datei nach allen Vorkommen ihres Suchbegriffs, sobald Sie
@@ -637,7 +646,7 @@ Nicht-Treffer werden grau hinterlegt. Haben Sie zus
 des Suchdialogs), dann werden die Treffer ausgew�hlt.
 
 
-\subsubsection*{Sortier-Suche}
+\subsubsection{Sortier-Suche}
 
 Die Suche mit der Methode \emph{Oben einsortieren} ist �hnlich wie
 die Suche mit Markierung, nur dass die Treffer automatisch an den
@@ -652,7 +661,7 @@ Markieren von Eintr
 ohne die bisherigen Ergebnisse zu >>verlieren<<.}
 
 
-\subsubsection*{Feldbezeichner und logische Operatoren}
+\subsubsection{Feldbezeichner und logische Operatoren}
 
 \label{SearchHelp_advanced}Um nur einige bestimmte Felder zu durchsuchen
 und\slash{}oder logische Operatoren im Suchbegriff zu benutzen, wird
@@ -704,7 +713,7 @@ die Suche nach Bib\TeX{}-Keys, z.\,B.:
 bibtexkey~=~miller2005
 \end{lyxcode}
 
-\subsubsection*{Suchoptionen}
+\subsubsection{Suchoptionen}
 
 Der \menu{Einstellungen}-Button im Suchdialog �ffnet ein Men�, in
 dem man mehrere Optionen (de)aktivieren kann: das Beachten von Gro�-
@@ -741,7 +750,7 @@ benutzt. (K
 benutzerabh�ngige Gruppen unterst�tzen.)
 
 
-\subsubsection*{Die Gruppenansicht}
+\subsubsection{Die Gruppenansicht}
 
 Die Gruppenansicht wird im linken Bereich des Bildschirms angezeigt.
 Sie kann mit der Tastenkombination STRG-SHIFT-G oder dem Gruppen-Button
@@ -751,7 +760,7 @@ das Kontextmen
 wird ebenfalls unterst�tzt.
 
 
-\subsection*{Einige kurze Beispiele}
+\subsection{Einige kurze Beispiele}
 
 Sie m�chten vielleicht~\ldots{}
 
@@ -822,7 +831,7 @@ anderen Gruppen sollten nun markiert sein.
 
 \end{itemize}
 
-\subsubsection*{Arten von Gruppen}
+\subsubsection{Arten von Gruppen}
 
 In \jabref{}~1.8 gibt es vier verschiedene Arten von Gruppen:
 
@@ -854,7 +863,7 @@ auf eine Gruppe aufgerufen wird, zeigt eine kurze Beschreibung der
 ausgew�hlten Gruppe.
 
 
-\subsubsection*{Gruppenstrukturen, Erstellen und L�schen von Gruppen}
+\subsubsection{Gruppenstrukturen, Erstellen und L�schen von Gruppen}
 
 Die Gruppen sind~-- vergleichbar mit Datei-Ordnern~-- in einer Baumansicht
 strukturiert, in der die Gruppe \emph{Alle Eintr�ge} das Stammelement
@@ -873,7 +882,7 @@ Die Funktionen \menu{R
 alle Bearbeitungsschritte unterst�tzt.
 
 
-\paragraph*{Statische Gruppen}
+\paragraph{Statische Gruppen}
 
 Statische Gruppen werden nur durch manuelles Zuweisen von Eintr�gen
 >>gef�ttert<<. Nachdem Sie eine statische Gruppe erstellt haben,
@@ -889,7 +898,7 @@ Bib\TeX{}-Keys kann das Zuweisen der betreffenden Eintr
 Sitzungen nicht korrekt wiederhergestellt werden.
 
 
-\paragraph*{Dynamische Gruppen}
+\paragraph{Dynamische Gruppen}
 
 Der Inhalt einer dynamischen Gruppe wird von einer logischen Bedingung
 bestimmt. Nur Eintr�ge, die dieser Bedingung entsprechen, geh�ren
@@ -932,7 +941,7 @@ dargestellt. Dies kann unter \menu{Optionen} \msep{} \menu{Einstellungen}
 \msep{} \menu{Gruppen} abgestellt werden.
 
 
-\paragraph*{Hierarchischer Kontext}
+\paragraph{Hierarchischer Kontext}
 
 Standardm��ig ist eine Gruppe \emph{unabh�ngig} von ihrer Position
 im Gruppenbaum. Ist eine Gruppe ausgew�hlt, wird nur der Inhalt dieser
@@ -962,7 +971,7 @@ hat auch diese Art von Gruppen ein spezielles Icon. (Dieses Verhalten
 kann in den Einstellungen abgestellt werden.)
 
 
-\subsubsection*{Eintr�ge einer Gruppe anzeigen, mehrere Gruppen kombinieren}
+\subsubsection{Eintr�ge einer Gruppe anzeigen, mehrere Gruppen kombinieren}
 
 Wenn Sie eine Gruppe ausw�hlen, werden die Eintr�ge, die dieser Gruppe
 zugeordnet sind, hervorgehoben und~-- je nach Einstellung (die mit
@@ -981,14 +990,14 @@ Sie beide Gruppen ausw
 Einstellungen aktiviert sein).
 
 
-\subsubsection*{Gruppen und Suche}
+\subsubsection{Gruppen und Suche}
 
 Wenn der Inhalt einer oder mehrerer Gruppen angezeigt wird, k�nnen
 Sie eine Suche innerhalb dieser Eintr�ge durchf�hren. Benutzen Sie
 dazu die normalen Suchfunktionen (siehe Abschnitt~\ref{SearchHelp}).
 
 
-\subsubsection*{Sich �berschneidende Gruppen markieren}
+\subsubsection{Sich �berschneidende Gruppen markieren}
 
 Der \menu{Einstellungen}-Button bietet eine Option zum Markieren
 von sich �berschneidenden Gruppen. Wenn diese Option aktiviert ist
@@ -1002,13 +1011,13 @@ wird die Gruppe \emph{lesen} markiert, sofern die ausgew
 Eintr�ge enth�lt, die Sie noch lesen wollten.
 
 
-\subsubsection*{Erweiterte Funktionen}
+\subsubsection{Erweiterte Funktionen}
 
 Wenn Sie sich mit dem oben beschriebenen Gruppenkonzept vertraut gemacht
 haben, k�nnten die folgenden erweiterten Funktionen n�tzlich sein.
 
 
-\paragraph*{Dynamische Gruppen automatisch erstellen}
+\paragraph{Dynamische Gruppen automatisch erstellen}
 
 Mit einem Klick auf den Button \menu{Automatisch Gruppen f�r die Datei anlegen}
 k�nnen Sie ganz schnell passende Gruppen f�r Ihre Datei erzeugen.
@@ -1028,7 +1037,7 @@ ignorieren. Sie m
 nach dem automatischen Erstellen von Hand l�schen.)
 
 
-\paragraph*{Ansicht aktualisieren}
+\paragraph{Ansicht aktualisieren}
 
 Der \menu{Aktualisieren}-Button in der Gruppenansicht aktualisiert
 die Tabelle in Bezug auf die aktuell ausgew�hlten Gruppen. Normalerweise
@@ -1037,11 +1046,12 @@ R
 ist ein h�ndisches Aktualisieren n�tig.
 
 
-\paragraph*{Verfeinernde Untergruppen und einbeziehende Obergruppen mischen\protect%
-\footnote{In \jabref{}~1.8.1 sind die entsprechenden Optionen noch nicht ins
-Deutsche �bersetzt. Gemeint sind hier \emph{refining (sub-)groups}
-und \emph{including (super-)groups}.%
-}}
+\paragraph{Verfeinernde Untergruppen und einbeziehende Obergruppen mischen%\protect%
+%\footnote{In \jabref{}~1.8.1 sind die entsprechenden Optionen noch nicht ins
+%Deutsche �bersetzt. Gemeint sind hier \emph{refining (sub-)groups}
+%und \emph{including (super-)groups}.%
+%}
+}
 
 Wenn eine verfeinernde Gruppe die Untergruppe von einer Gruppe ist,
 die ihre Untergruppen ber�cksichtigt~-- also sozusagen die Geschwister
@@ -1139,7 +1149,7 @@ Um ein neues Wort hinzuzuf
 \subsection{Import und Export}
 
 
-\subsubsection*{Import-Kontrollfenster}
+\subsubsection{Import-Kontrollfenster}
 
 \label{ImportInspectionDialog}Beim Importieren neuer Eintr�ge aus
 einem unterst�tzten Format oder beim Herunterladen von Eintr�gen aus
@@ -1155,7 +1165,7 @@ ist es oftmals leichter, diese Arbeiten durchzuf
 Eintr�ge zwischen die bereits bestehenden sortiert wurden.
 
 
-\subsubsection*{\jabref{} $\to$~EndNote}
+\subsubsection[JabRef -> EndNote]{\jabref{} $\to$~EndNote}
 
 \begin{quote}
 \label{EndnoteFilters}\emph{\jabref{} kann Dateien so exportieren,
@@ -1239,7 +1249,7 @@ mit Klammern enthalten, als Eintrag mit mehreren Autoren gewertet
 und demzufolge unpassend formatiert.
 
 
-\subsubsection*{Erweiterte Benutzung: EndNote Extras}
+\subsubsection{Erweiterte Benutzung: EndNote Extras}
 
 \label{EndNote_erweitert}Einige Felder, die von Bib\TeX{} genutzt
 werden, geh�ren nicht zu EndNotes vorgegebenen Referenztypen. W�hrend
@@ -1258,7 +1268,7 @@ und entpacken die Zip-Datei, die dabei erstellt wird. Dann folgen
 Sie den Angaben in der Datei \texttt{readme.txt}.
 
 
-\subsubsection*{EndNote $\to$~\jabref{}}
+\subsubsection[EndNote -> JabRef]{EndNote $\to$~\jabref{}}
 
 EndNote hat einen Export-Stil Bib\TeX{}, der allerdings nicht alle
 Eintragstypen und Felder von Bib\TeX{} und auch nicht die zus�tzlich
@@ -1269,21 +1279,45 @@ extrahieren Sie die EndNote Extras (\menu{Datei} \msep{} \menu{Exportieren}
 die dabei erstellt wird und folgen den Anweisungenx in der Datei \texttt{readme.txt}.
 
 
-\subsubsection*{\jabref{} $\to$~ OpenOffice.org}
+\subsubsection[JabRef-Bibliographien in OpenOffice.org benutzen]{\jabref{}-Bibliographien in OpenOffice.org benutzen}
 
-\begin{quote}
-\label{OpenOfficeHelp}\menu{Datei} \msep{} \menu{Exportieren}
-\msep{} \menu{OpenOffice Calc}
-\end{quote}
-\jabref{} kann Ihre Datei in das OpenOffice.org-Tabellenkalkulationsformat
-exportieren. Die exportierte Tabelle besteht aus einem Arbeitsblatt,
-das die Eintr�ge in Reihen und die unterschiedlichen Felder in Spalten
-enth�lt. Die Tabelle ist kompatibel zu den Literaturverzeichnis-Funktionen
-von OpenOffice.org; Sie k�nnen die exportierte Tabelle unter \menu{Datenquellen}
-als Literaturdatenbank angeben.
+\jabref{} kann Ihre Datei sowohl in das OpenOffice.org 1.1 \texttt{.sxc}"=Tabellenkalkulationsformat als auch in das OpenDocument \texttt{.ods}"=Tabellenkalkulationsformat, das von OpenOffice.org 2.0 benutzt wird, exportieren.
 
+In beiden F�llen besteht die exportierte Tabelle aus einem Arbeitsblatt, das die Eintr�ge in Reihen
+und die unterschiedlichen Felder in Spalten enth�lt. Die Reihenfolge und Benennung der Spalten ist kompatibel
+zu den Literaturverzeichnis-Funktionen von OpenOffice.org (OOo 1.1: \texttt{.sxc}, OOo 2.0: \texttt{.ods}).
 
-\subsubsection*{Klartext-Import}
+\paragraph{Die exportierte Datei als Bibliographiedatenbank in OpenOffice 2.0 (oder neuer) benutzen}
+Gehen Sie folgenderma�en vor, um eine Tabelle, die von \jabref{} exportiert wurde, als Bibliographiedatenbank in OpenOffice.org zu benutzen:
+
+\begin{itemize}
+\item Exportieren Sie Ihre Datenbank in das \texttt{.ods} -Format.
+\item Starten Sie OpenOffice.org.
+\item W�hlen Sie \menu{Extras} \msep{} \menu{Optionen} \msep{} \menu{OpenOffice.org Base} \msep{} \menu{Datenbanken}.
+\item Bearbeiten Sie die \emph{Bibliography}-Datenbank und �ndern ihren Namen z.\,B. in \emph{Bibliographie-alt}.
+\item Schlie�en Sie das Fenster \menu{Optionen} und gehen Sie zu \menu{Datei} \msep{} \menu{Neu} \msep{} \menu{Datenbank}.
+\item Dann w�hlen Sie \menu{Verbindung zu einer bestehenden Datenbank herstellen}, nehmen \menu{Tabellendokument} als
+    Datenbanktyp und w�hlen die \texttt{.ods}-Datei, die Sie exportiert haben.
+\item Klicken Sie auf \menu{Fertig stellen} und w�hlen den Namen \emph{Bibliography} im Speicherdialog.
+\end{itemize}
+Anschlie�end w�hlen Sie \menu{Extras} \msep{} \menu{Literaturdatenbank}. Ihre Datenbank sollte nun angezeigt werden.
+
+\paragraph{Eine exportierte Datei als Datenbank in OpenOffice 1.1.x benutzen}
+
+\begin{itemize}
+\item Exportieren Sie Ihre Datei in das \texttt{.sxc}-Format.
+\item Starten Sie OpenOffice.org.
+\item W�hlen Sie \menu{Extras} \msep{} \menu{Datenquellen}.
+\item W�hlen Sie die \emph{Bibliography}-Datei und �ndern ihren Namen z.B. in \emph{Bibliographie-alt}.
+\item Dr�cken Sie \menu{Anwenden}.
+\item Klicken Sie \menu{Neue Datenquelle}. Ein neuer Eintrag erscheint. �ndern Sie den Namen zu \emph{Bibliography}.
+\item �ndern Sie den \menu{Dateityp} zu \menu{Tabelle}. Klicken Sie den \menu{\ldots}-Button in der Zeile \menu{Datenquellen URL}. W�hlen Sie die \texttt{.sxc}-Datei, die Sie exportiert haben.
+\item Klicken Sie auf \menu{OK}, um das Fenster \menu{Datenquellen} zu schlie�en.
+\end{itemize}
+Anschlie�end w�hlen Sie \menu{Extras} \msep{} \menu{Literaturdatenbank}.
+Ihre Datenbank sollte nun angezeigt werden.
+
+\subsubsection{Klartext-Import}
 
 \begin{quote}
 \emph{Sie k�nnen aus einfachen Text-Dateien oder der Zwischenablage
@@ -1331,7 +1365,7 @@ befinden, verlinken. Ebenso ist es m
 ein URL oder DOI zu verlinken.
 
 
-\subsubsection*{Externe Betrachter einrichten}
+\subsubsection{Externe Betrachter einrichten}
 
 \jabref{} ben�tigt Informationen dar�ber, welche Programme es f�r
 PDF- und PS-Dateien und Internetseiten benutzen soll. In der Standardeinstellung
@@ -1345,7 +1379,7 @@ Sie den Unterpunkt \menu{Externe Programme} im Dialog \menu{Optionen}}
 \msep{} \emph{\menu{Einstellungen}.}
 \end{quote}
 
-\subsubsection*{Externe Dateien oder Links �ffnen}
+\subsubsection{Externe Dateien oder Links �ffnen}
 
 Es gibt verschiedene M�glichkeiten, wie man externe Dateien oder Internetseiten
 aus \jabref{} �ffnen kann. Im Eintrags-Editor k�nnen Sie einfach
@@ -1366,7 +1400,7 @@ PDF, wenn beide vorhanden sind), die dritte Spalte zeigt Icons f
 URL oder DOI (nur URL, wenn beide vorhanden sind).
 
 
-\subsubsection*{Der Standard-Ordner f�r PDF-Dateien}
+\subsubsection{Der Standard-Ordner f�r PDF-Dateien}
 
 PDF-Dateien erhalten von \jabref{} eine >>Spezialbehandlung<<,
 um das Verlinken mit den entsprechenden Eintr�gen so einfach wie m�glich
@@ -1396,7 +1430,7 @@ nicht angezeigt wird, solange das PDF-Feld leer bleibt.
 \subsection[JabRef und Online-Datenbanken]{\jabref{} und Online-Datenbanken}
 
 
-\subsubsection*{CiteSeer}
+\subsubsection{CiteSeer}
 
 \label{CiteSeerHelp}\jabref{} kann Informationen �ber eine bestimmte
 Literaturangabe aus der CiteSeer-Datenbank herunterladen. Um diesen
@@ -1435,7 +1469,7 @@ ich deshalb dankbar.%
 }
 
 
-\subsubsection*{Medline}
+\subsubsection{Medline}
 
 \begin{quote}
 \label{MedlineHelp}\jabref{} kann Literaturangaben von der Medline-Datenbank
@@ -1462,7 +1496,7 @@ Die abgerufenen Eintr
 Datei zugeordnet.
 
 
-\subsubsection*{Benutzung eines Proxy-Servers}
+\subsubsection{Benutzung eines Proxy-Servers}
 
 Wenn Sie einen HTTP-Proxy-Server benutzen m�ssen, �bergeben Sie den
 Servernamen und die Portnummer an Java. Diese Umgebungseinstellungen
@@ -1482,7 +1516,7 @@ ein Netzwerk~-- bearbeitet wird. Das sind vor allem die Felder \emph{owner}
 und \emph{timestamp}.
 
 
-\subsubsection*{Zeitstempel \emph{(timestamp)}}
+\subsubsection{Zeitstempel \emph{(timestamp)}}
 
 \begin{quote}
 \label{TimeStampHelp}\emph{Die Benutzung des Zeitstempels kann unter
@@ -1515,7 +1549,7 @@ werden. Hier einige Beispiele:
 \texttt{yyyy.MM.dd~HH:mm} $\to$ 2005.09.14 17:45
 \end{quote}
 
-\subsubsection*{Besitzer \emph{(owner)}}
+\subsubsection{Besitzer \emph{(owner)}}
 
 \label{OwnerHelp}\jabref{} kann allen neuen Eintr�gen, die zu einer
 Datei hinzugef�gt oder in sie importiert werden, Ihren Benutzernamen
@@ -1554,7 +1588,7 @@ dass der Dateiname als Argument der Option \texttt{-n} interpretiert
 wird.
 
 
-\subsubsection*{Kommandozeilen-Optionen}
+\subsubsection{Kommandozeilen-Optionen}
 
 Im folgenden werden die wichtigsten Optionen und Befehle f�r die Kommandozeile
 vorgestellt.
@@ -1659,8 +1693,9 @@ ist, auch nicht in die neue Datei geschrieben werden kann.
 
 \end{itemize}
 
+\clearpage
 \section{Anpassung}
-
+\secttoc
 
 \subsection{Eintragstypen}
 
@@ -1681,7 +1716,7 @@ Wenn Sie \menu{Abbrechen} anklicken oder einfach den Dialog schlie
 gehen die bislang nicht �bernommenen �nderungen verloren.
 
 
-\subsubsection*{Der Dialog \menu{Eintragstypen anpassen}}
+\subsubsection{Der Dialog \menu{Eintragstypen anpassen}}
 
 Der Dialog \menu{Eintragstypen anpassen} ist in drei Hauptbereiche
 unterteilt. Im linken Bereich k�nnen Sie den Eintragstyp ausw�hlen,
@@ -1691,7 +1726,7 @@ Eintragstyps vorgenommen und im rechten Bereich diejenigen der optionalen
 Felder.
 
 
-\subsubsection*{Eintragstypen hinzuf�gen und l�schen}
+\subsubsection{Eintragstypen hinzuf�gen und l�schen}
 
 Die derzeit verf�gbaren Eintragstypen werden im linken Bereich des
 Dialogfensters aufgelistet. Wenn Sie einen Eintragstyp ausw�hlen,
@@ -1713,7 +1748,7 @@ ihn aus und dr
 Standard-Typen verf�gbar, die bearbeitet wurden.
 
 
-\subsubsection*{Eintragstypen bearbeiten}
+\subsubsection{Eintragstypen bearbeiten}
 
 Wenn ein Eintragstyp ausgew�hlt ist, werden die derzeitigen ben�tigten
 und optionalen Felder im mittleren und rechten Bereich des Dialogfensters
@@ -1800,7 +1835,7 @@ Teil aus einem Feld extrahieren. Sie werden unten aufgelistet. Nat
 k�nnen Sie auch neue spezielle Feldmarken vorschlagen.
 
 
-\subsubsection*{Spezielle Feldmarken}
+\subsubsection{Spezielle Feldmarken}
 
 \begin{labeling}{veryveryveryshorttitle}
 \item [\texttt{{[}auth{]}}]Der Nachname des ersten Autors.
@@ -1930,7 +1965,7 @@ Dateien festlegen. Ihre Layout-Datei m
 Texteditor erstellen.
 
 
-\subsubsection*{Hinzuf�gen eines Exportfilters}
+\subsubsection{Hinzuf�gen eines Exportfilters}
 
 Die einzige Voraussetzung f�r einen Exportfilter ist, da� eine Datei
 mit der Endung \texttt{.layout} vorhanden ist. Um einen neuen, eigenen
@@ -1944,7 +1979,7 @@ den Exportfilter benutzen, wird diese Endung im Datei-Dialog automatisch
 vorgeschlagen.
 
 
-\subsubsection*{Das Erstellen des Exportfilters}
+\subsubsection{Das Erstellen des Exportfilters}
 
 Um einen Eindruck zu bekommen, wie Exportfilter auszusehen haben,
 suchen Sie am besten auf unserer Homepage nach dem Paket, das die
@@ -2000,7 +2035,7 @@ Typs genutzt werden. Achten Sie darauf, dass die Standard-Layout-Datei
 so allgemein gehalten wird, dass sie die meisten Eintragstypen abdeckt.
 
 
-\paragraph*{Das Format der Layout-Datei}
+\paragraph{Das Format der Layout-Datei}
 
 Layout-Dateien werden mit einem einfachen markup-Format erstellt,
 bei dem die Kommandos mit einem >>backslash<< (\texttt{\textbackslash{}})
@@ -2008,7 +2043,7 @@ eingeleitet werden. Alle Textbestandteile, die nicht als Kommando
 identifiziert werden, gelangen direkt in die Ausgabedatei.
 
 
-\paragraph*{Feldkommandos}
+\paragraph{Feldkommandos}
 
 Ein beliebiges Wort, vor dem ein backslash steht, z.\,B. \texttt{\textbackslash{}author},
 \texttt{\textbackslash{}editor,} \texttt{\textbackslash{}title} oder
@@ -2016,7 +2051,7 @@ Ein beliebiges Wort, vor dem ein backslash steht, z.\,B. \texttt{\textbackslash{
 Feld ausgewertet, das dann direkt in die Ausgabe kopiert wird.
 
 
-\paragraph*{Feldformatierer}
+\paragraph{Feldformatierer}
 
 Oft muss der Feldinhalt vor der Ausgabe verarbeitet werden. Dies wird
 mit Hilfe eines \emph{Feldformatierers} gemacht~-- einer java class,
@@ -2085,7 +2120,7 @@ muss der Formatierer in ihrem classpath sein, wenn Sie \jabref{}
 starten.
 
 
-\paragraph*{Bedingte Ausgabe}
+\paragraph{Bedingte Ausgabe}
 
 Manche statische Ausgabe macht nur Sinn, wenn ein bestimmtes Feld
 nicht leer ist. Wenn wir z.\,B. hinter den Namen der Editoren den
@@ -2118,7 +2153,7 @@ leer ist.
 die mit einer Vielzahl von Eintragstypen umgehen k�nnen.}
 
 
-\paragraph*{Gruppierte Ausgabe}
+\paragraph{Gruppierte Ausgabe}
 
 Wenn Sie Ihre Eintr�ge auf der Basis eines bestimmten Feldes gruppieren
 wollen, benutzen Sie die Kommandos f�r die gruppierte Ausgabe. Die
@@ -2140,7 +2175,7 @@ New~Category:~\textbackslash{}format{[}HTMLChars{]}\{\textbackslash{}keywords\}
 \textbackslash{}endgroup\{keywords\}
 \end{lyxcode}
 
-\subsubsection*{Teilen Sie Ihre Arbeit mit anderen}
+\subsubsection{Teilen Sie Ihre Arbeit mit anderen}
 
 Mit externen Layout-Dateien ist es einfach, Ihre eigenen Export-Formate
 mit anderen Anwendern gemeinsam zu benutzen. Falls Sie einen Exportfilter
@@ -2153,19 +2188,22 @@ zu k
 zu erweitern.
 
 
+\clearpage
 \section{Externe Importfilter}
+\secttoc
+\bigskip
 
-\jabref{} bietet Ihnen die M�glichkeit, ganz �hnlich den Standard-Importern, eigene Importer 
+\noindent \jabref{} bietet Ihnen die M�glichkeit, ganz �hnlich den Standard-Importern, eigene Importer
 zu definieren und zu benutzen. Man definiert einen Importer durch eine oder mehrere Java
 \emph{Klassen}, die Dateiinhalte aus einem sogenannten \emph{Input stream} lesen
-und daraus Bib\TeX{}-Eintr�ge erzeugen. Sie k�nnen vorkompilierte Importer einbinden, die Sie vielleicht 
-von SourceForge erhalten haben (siehe Abschnitt >>Ihre Arbeit anderen zur Verf�gung stellen<<, 
+und daraus Bib\TeX{}-Eintr�ge erzeugen. Sie k�nnen vorkompilierte Importer einbinden, die Sie vielleicht
+von SourceForge erhalten haben (siehe Abschnitt >>Ihre Arbeit anderen zur Verf�gung stellen<<,
 S.\,\pageref{subsec:Ihre-Arbeit}). Sie k�nnen auch
-mit Grundkenntnissen der Java-Programmierung eigene Importer f�r f�r Sie wichtige Referenzquellen 
+mit Grundkenntnissen der Java-Programmierung eigene Importer f�r f�r Sie wichtige Referenzquellen
 erstellen oder neue, verbesserte Versionen existierender Importer einbinden, ohne \jabref{} neu zu
 kompilieren.
 
-\paragraph*{Vorrangsregeln}
+\paragraph{Vorrangsregeln}
 
 Externe Importfilter haben Vorrang vor Standard-Importern. So k�nnen Sie mit Ihren Importern
 die existierenden in der automatischen Formaterkennung und an der Kommandozeile in \jabref{} �berschreiben.
@@ -2175,16 +2213,16 @@ Externe Importfilter selbst sind dann nach Namen sortiert.
 
 Stellen Sie sicher, dass Sie den Importer in kompilierter Form haben (eine oder mehrere
 \texttt{.class} Dateien) und dass die Klassendateien
-in einer Verzeichnisstruktur entsprechend ihrer Package-Struktur liegen. 
-Um einen neuen externen Importfilter hinzuzuf�gen, �ffnen Sie den Dialog 
+in einer Verzeichnisstruktur entsprechend ihrer Package-Struktur liegen.
+Um einen neuen externen Importfilter hinzuzuf�gen, �ffnen Sie den Dialog
 \menu{Optionen} \msep{} \menu{Verwalte externe Importfilter}, und klicken Sie auf
-\menu{Aus Klassenpfad hinzuf�gen}. Ein Dateiauswahl-Fenster erscheint, 
+\menu{Aus Klassenpfad hinzuf�gen}. Ein Dateiauswahl-Fenster erscheint,
 mit dem Sie den Klassenpfad des Importers w�hlen, dass hei�t den obersten Ordner,
 in dem die Package-Struktur Ihres Importers beginnt. In einem zweiten Dateiauswahl-Fenster
 w�hlen Sie die \emph{.class}-Datei Ihres Importers, die von \texttt{\textbackslash{}ImportFormat} abgeleitet
 ist. Wenn Sie \menu{Klasse ausw�hlen} klicken, erscheint Ihr neuer Importer
 in der Liste der externen Importfilter. Alle externen Importfilter erscheinen in den
-\jabref{}-Untermen�s \menu{Datei} \msep{} \menu{Importieren} \msep{} \menu{Externe Importfilter} und 
+\jabref{}-Untermen�s \menu{Datei} \msep{} \menu{Importieren} \msep{} \menu{Externe Importfilter} und
 \menu{Datei} \msep{} \menu{Importieren und Anh�ngen} \msep{} \menu{Externe Importfilter}.
 
 \tip[Bitte beachten Sie: ]{Wenn Sie die Klassen in ein anderes Verzeichnis verschieben,
@@ -2200,7 +2238,7 @@ Sie k
 
 \subsection{Einen Importfilter entwickeln}
 
-Bitte schauen Sie auf unseren Download-Seiten nach Beispielen und n�tzlichen Dateien zur 
+Bitte schauen Sie auf unseren Download-Seiten nach Beispielen und n�tzlichen Dateien zur
 Entwicklung Ihres Importfilters.
 
 \subsubsection{Ein einfaches Beispiel}
@@ -2214,10 +2252,10 @@ Angenommen, wir wollen Dateien der folgenden Form importieren:
 2004;ROBERT HUNT AND JAMES BESSEN;The Software Patent Experiment
 \end{lyxcode}
 
-\paragraph*{SimpleCsvImporter Erstellen}
+\paragraph{SimpleCsvImporter Erstellen}
 
 Erzeugen Sie in einem Text-Editor eine von \texttt{ImportFormat} abgeleitete Klasse,
-die die Methoden \texttt{getFormatName()}, 
+die die Methoden \texttt{getFormatName()},
 \texttt{isRecognizedFormat()}
 und \texttt{importEntries()} implementiert. Hier ein Beispiel:
 \begin{lyxcode}
@@ -2250,15 +2288,15 @@ public class SimpleCsvImporter extends ImportFormat {
     return true; // this is discouraged except for demonstration purposes
 
   }
-  
+
 ~
 
-  public List importEntries(InputStream stream) throws IOException {    
+  public List importEntries(InputStream stream) throws IOException {
 
   	ArrayList bibitems = new ArrayList();
 
     BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
-      
+
 ~
 
     String line = in.readLine();
@@ -2283,49 +2321,50 @@ public class SimpleCsvImporter extends ImportFormat {
 
         line = in.readLine();
 
-      }     
+      }
 
     }
 
-  	return bibitems;	  	
+  	return bibitems;
 
   }
 
 }
 \end{lyxcode}
 
-\paragraph*{SimpleCsvImporter �bersetzen}
+\paragraph{SimpleCsvImporter �bersetzen}
 
 Beachten Sie, dass die Beispielklasse im Default"=Package liegt. Angenommen, Sie haben
 sie unter \texttt{/meinpfad/SimpleCsvImporter.java} gespeichert. Nehmen wir weiter an,
 die Datei \texttt{JabRef-2.0.jar} ist im gleichen Verzeichnis wie
-\texttt{SimpleCsvImporter.java} und Java ist in Ihrem Kommandopfad. 
-Kompilieren Sie die Klasse mit JSDK 1.4 zum Beispiel mit folgendem Kommandozeilen"=Aufruf: 
+\texttt{SimpleCsvImporter.java} und Java ist in Ihrem Kommandopfad.
+Kompilieren Sie die Klasse mit JSDK 1.4 zum Beispiel mit folgendem Kommandozeilen"=Aufruf:
 \begin{lyxcode}
 javac -classpath JabRef-2.0.jar SimpleCsvImporter.java
 \end{lyxcode}
 Nun sollte dort auch eine Datei \texttt{/mypath/SimpleCsvImporter.class} liegen.
 
-\paragraph*{SimpleCsvImporter registrieren}
+\paragraph{SimpleCsvImporter registrieren}
 
 �ffnen Sie in \jabref{} \menu{Optionen} \msep{} \menu{Verwaltung externer Importfilter} und klicken Sie
-auf \menu{Aus Klassenpfad hinzuf�gen}. Navigieren Sie nach \texttt{/meinpfad} und 
+auf \menu{Aus Klassenpfad hinzuf�gen}. Navigieren Sie nach \texttt{/meinpfad} und
 klicken Sie \menu{Klassenpfad ausw�hlen}. W�hlen Sie dann die Datei \texttt{SimpleCsvImporter.class}
 und klicken Sie \menu{Klasse ausw�hlen}. Ihr Importfilter sollte nun in der Liste der
 externen Importfilter unter dem Namen >>Simple CSV Importer<< erscheinen und,
-sobald Sie \menu{Schlie�en} gew�hlt haben, auch in den Untermen�s \menu{Datei} \msep{} \menu{Importieren} \msep{} 
-\menu{Externe Importfilter} und \menu{Datei} \msep{} \menu{Importieren und Anh�ngen} \msep{} \menu{Externe Importfilter} 
+sobald Sie \menu{Schlie�en} gew�hlt haben, auch in den Untermen�s \menu{Datei} \msep{} \menu{Importieren} \msep{}
+\menu{Externe Importfilter} und \menu{Datei} \msep{} \menu{Importieren und Anh�ngen} \msep{} \menu{Externe Importfilter}
 des \jabref{}-Hauptfensters auftauchen.
 
 \subsection{Ihre Arbeit anderen zur Verf�gung stellen}
 \label{subsec:Ihre-Arbeit}
 Mit externen Importfiltern ist es recht einfach, Importfilter zwischen Nutzern auszutauschen und
-gemeinsam zu nutzen. Wenn Sie einen Importer f�r ein  Format schreiben, das \jabref{} noch nicht unterst�tzt, 
-oder einen Importer verbessern, bitten wir Sie, Ihre Ergebnisse auf unserer SourceForge.net 
-Seite zu ver�ffentlichen. Wir bieten gerne eine Sammlung eingereichter Importfilter an oder 
+gemeinsam zu nutzen. Wenn Sie einen Importer f�r ein  Format schreiben, das \jabref{} noch nicht unterst�tzt,
+oder einen Importer verbessern, bitten wir Sie, Ihre Ergebnisse auf unserer SourceForge.net
+Seite zu ver�ffentlichen. Wir bieten gerne eine Sammlung eingereichter Importfilter an oder
 f�gen sie unserer Auswahl an Standard-Importfiltern hinzu.
 
 
+\clearpage
 \section{Tastenk�rzel}
 
 Die Men�s k�nnen alle �ber Tastenk�rzel angesteuert werden, die meisten
@@ -2477,9 +2516,12 @@ F1\tabularnewline
 \end{longtable}
 
 
+\clearpage
 \section{Entwicklung}
+\secttoc
+\bigskip
 
-\jabref{} ist ein \emph{Open Source} Projekt, das hei�t, dass jede(r)
+\noindent \jabref{} ist ein \emph{Open Source} Projekt, das hei�t, dass jede(r)
 dazu beitragen kann, das Programm zu verbessern und weiterzuentwickeln.
 Wenn Sie Anregungen, W�nsche oder Fragen haben, ist die erste Anlaufstelle
 die \href{http://sourceforge.net/projects/jabref/}{Projektseite bei \emph{Sourceforge}}.
@@ -2533,7 +2575,7 @@ geht an Samin Muhammad Ridwanul Karim und Stefan Robert.
 \jabref{} ist frei verf�gbar unter den Bedingungen der \href{http://www.gnu.org/copyleft/gpl.html}{GNU Public License}.
 
 
-\subsubsection*{Benutzte Fremdsoftware}
+\subsubsection{Benutzte Fremdsoftware}
 
 \jabref{} benutzt JGoodies Looks 1.2.2 und JGoodiesForms 1.0.4, das
 von \href{http://www.jgoodies.com}{JGoodies} unter den Bedingungen
@@ -2571,18 +2613,23 @@ M
 
 
 \newpage
-\section*{Versionsgeschichte}
+\addsec{Versionsgeschichte}
 
 \label{RevisionHistory}
 
-\subsection*{Version 0.3 (zu \jabref{} 2.0, Stand: 16.\,1.\,2006)}
+\subsection*{(in Arbeit))}
+\begin{revhist}
+\end{revhist}
+
+\subsection*{30.\,1.\,2006)}
 \begin{revhist}
+\item Abschnitt >>\jabref{}-Bibliographien in OpenOffice.org benutzen<< aktualisiert
 \item Abschnitt zur Erzeugung der Bib\TeX{}-Keys aktualisiert
 \item Neues Kapitel (>>Externe Importfilter<<), geschrieben von Andreas Rudert
 \item Einige kleinere �nderungen
 \end{revhist}
 
-\subsection*{Version 0.2 (6.\,12.\,2005)}
+\subsection*{6.\,12.\,2005}
 %\renewcommand{\labelitemi}{}
 
 \begin{revhist}
@@ -2591,7 +2638,7 @@ M
 \item mehrere kleinere �nderungen
 \end{revhist}
 
-\subsubsection*{Version 0.1 (16.\,11.\,2005)}
+\subsection*{16.\,11.\,2005}
 \begin{revhist}
 \item Erstentwurf von Dominik Wa�enhoven, basierend
 auf dem unver�ffentlichten englischen \emph{Initial Draft} von Nizar Batada (20.\,2.\,2004)
diff --git a/src/help/de/OpenOfficeHelp.html b/src/help/de/OpenOfficeHelp.html
index 24544a0..efbca98 100644
--- a/src/help/de/OpenOfficeHelp.html
+++ b/src/help/de/OpenOfficeHelp.html
@@ -33,6 +33,39 @@ Anschließend wählen Sie <b>Extras -> Literaturdatenbank</b>. Ihre Dat
     <li>Exportieren Sie Ihre Datei in das <b>.sxc</b>-Format</li>
     <li>Starten Sie OpenOffice.org</li>
     <li>Wählen Sie <b>Extras -> Datenquellen</b></li>
+    <li>Wählen Sie die <i>Bibliography</i>-Datei und ändern ihren Namen z.B. in <i>Bibliographie-alt</i>.</li>
+    <li>Drücken Sie <b>Anwenden</b>.
+    <li>Klicken Sie <b>Neue Datenquelle</b>. Ein neuer Eintrag erscheint. Ändern Sie den Namen zu
+        <i>Bibliography</i>.</li>
+     <li>Ändern Sie den <b>Dateityp</b> zu <b>Tabelle</b>. Klicken Sie den <b>...</b>-Button
+     in der Zeile <b>Datenquellen URL</b>. Wählen Sie die <b>.sxc</b>-Datei, die Sie exportiert haben.</li>
+     <li>Klicken Sie auf <b>OK</b>, um das Fenster <b>Datenquellen</b> zu schließen.</li>
+</ul>
+Anschließend wählen Sie <b>Extras -> Literaturdatenbank</b>.
+Ihre Datenbank sollte nun angezeigt werden.
+
+<h2>Die exportierte Datei als Bibliographiedatenbank in OpenOffice 2.0 (oder neuer) benutzen</h2>
+Gehen Sie folgendermaßen vor, um eine Tabelle, die von JabRef exportiert wurde, als Bibliographiedatenbank in OpenOffice.org zu benutzen:
+
+<ul>
+    <li>Exportieren Sie Ihre Datenbank in das <b>.ods</b> -Format</li>
+    <li>Starten Sie OpenOffice.org</li>
+    <li>Wählen Sie <b>Extras -> Optionen -> OpenOffice.org Base -> Datenbanken</b></li>
+    <li>Bearbeiten Sie die <i>Bibliography</i>-Datenbank und ändern ihren Namen z.B. in <i>Bibliographie-alt</i></li>
+    <li>Schließen Sie das Fenster <b>Optionen</b> und gehen Sie zu <b>Datei -> Neu -> Datenbank</b></li>
+    <li>Wählen Sie <b>Verbindung zu einer bestehenden Datenbank herstellen</b>, wählen <b>Tabellendokument</b> als
+    Datenbanktyp und wählen die <b>.ods</b>-Datei, die Sie exportiert haben</li>
+    <li>Klicken Sie auf <b>Fertig stellen</b> und wählen den Namen <i>Bibliography</i> im Speicherdialog</li>
+</ul>
+Anschließend wählen Sie <b>Extras -> Literaturdatenbank</b>. Ihre Datenbank sollte nun angezeigt werden.
+<p>
+
+<h2>Eine exportierte Datei als Datenbank in OpenOffice 1.1.x benutzen</h2>
+
+ <ul>
+    <li>Exportieren Sie Ihre Datei in das <b>.sxc</b>-Format</li>
+    <li>Starten Sie OpenOffice.org</li>
+    <li>Wählen Sie <b>Extras -> Datenquellen</b></li>
     <li>Wählen Sie die <i>Bibliography</i>-Datei und ändern ihren Namen z.B. in <i>Bibliographie-alt</i></li>. Drücken Sie <b>Anwenden</b>.
     <li>Klicken Sie <b>Neue Datenquelle</b>. Ein neuer Eintrag erscheint. Ändern Sie den Namen zu
         <i>Bibliography</i>.</li>
@@ -43,4 +76,4 @@ Anschließend wählen Sie <b>Extras -> Literaturdatenbank</b>. Ihre Dat
 Anschließend wählen Sie <b>Extras -> Literaturdatenbank</b>.
 Ihre Datenbank sollte nun angezeigt werden.
 
-</HTML>
\ No newline at end of file
+</HTML>
diff --git a/src/help/de/ShortAuxImport.html b/src/help/de/ShortAuxImport.html
new file mode 100644
index 0000000..ac0690c
--- /dev/null
+++ b/src/help/de/ShortAuxImport.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head></head>
+
+<body>
+<basefont size="-1" color="#2F4958" face="arial">
+Dieses Modul erstellt eine neue Datenbank, welche nur die im TeX Projekt 
+vorkommenden Verweise/Einträge enthält.
+</body></html>
\ No newline at end of file
diff --git a/src/help/fr/About.html b/src/help/fr/About.html
index 7281b27..48ac59f 100644
--- a/src/help/fr/About.html
+++ b/src/help/fr/About.html
@@ -34,7 +34,7 @@ Kolja Brix<BR>
 Frédéric Darboux<BR>
 Fabrice Dessaint<BR>
 Nathan Dunn<BR>
-Brian van Essen<br>    
+Brian Van Essen<br>
 Alexis Gallagher<BR>
 Sascha Hunold<BR>
 Bernd Kalbfuss<BR>
diff --git a/src/help/fr/CustomImports.html b/src/help/fr/CustomImports.html
index 278ed75..ca1cb1a 100644
--- a/src/help/fr/CustomImports.html
+++ b/src/help/fr/CustomImports.html
@@ -90,6 +90,7 @@ Votre filtre d'importation devrait maintenant apparaître dans la liste des
 
 <H2>Partager votre travail</H2>
 
-Avec des fichiers de filtres d'importation personnalisés, il est vraiment simple de partager des formats d'importation personnalisés entre utilisateurs. Si vous écrivez un filtre d'importation pour un format non supporté par JabRef, ou l'amélioration d'un filtre existant, nous vous encourageons à soumettre votre travail sur notre page SourceForge.net. Nous serons heureux de distribuer la collection des fichiers d'importation soumis, ou d'en ajout [...]
+<p>Avec des fichiers de filtres d'importation personnalisés, il est vraiment simple de partager des formats d'importation personnalisés entre utilisateurs. Si vous écrivez un filtre d'importation pour un format non supporté par JabRef, ou l'amélioration d'un filtre existant, nous vous encourageons à soumettre votre travail sur notre page SourceForge.net. Nous serons heureux de distribuer la collection des fichiers d'importation soumis, ou d'en aj [...]
 
+</BODY>
 </HTML>
diff --git a/src/help/fr/LabelPatterns.html b/src/help/fr/LabelPatterns.html
index 1524dde..cef308b 100644
--- a/src/help/fr/LabelPatterns.html
+++ b/src/help/fr/LabelPatterns.html
@@ -10,6 +10,7 @@
 Dans le menu 'Paramétrage des clefs' de la fenêtre Préférences, on peut indiquer les champs à utiliser pour la génération automatique des clefs BibTeX. La définition peut être faite pour chacune des entrées standards.
 </p>
 
+<H2>Les définitions de clefs</H2>
 <p>
 La définition peut contenir n'importe quel texte au choix ainsi que des marqueurs de champs qui indiquent les champs particuliers de l'entrée utilisés et leur position dans la clef. Un marqueur de champ est constitué généralement du nom du champ entre crochets, par ex. <b>[volume]</b>. Si le champ n'est pas défini dans l'entrée lorsque la clef est générée, aucun texte n'est inséré dans la clef.
 </p>
@@ -33,8 +34,8 @@ Les marqueurs de champs spéciaux :
 <li><b>[<code>auth.auth.ea</code>]</b> : Le nom des deux premiers auteurs suivi de ".ea" lorsqu'ils sont plus de deux.<BR>
 <li><b>[<code>authshort</code>]</b> : Le nom s'il n'y a qu'un seul auteur. Jusqu'à trois auteurs, le premier caractère du nom de chacun d'eux. Au delà de trois auteurs, le caractère plus (+) est ajouté.<BR>
 </ul>
-<b>Note :</b> S'il n'y a pas d'auteur (dans le cas d'un livre �dit�), alors tous les marqueurs <b><code>[auth...]</code></b> ci-dessus utiliseront l'�diteur(s) (s'il y en a) comme alternative. Ainsi l'�diteur(s) d'un livre sans auteur sera trait� comme l'auteur(s) pour la g�n�ration des clefs.
-Si vous ne d�sirez pas ce comportement, c'est � dire si vous voulez un marqueur qui soit vide s'il n'y a pas d'auteur, utilisez le code <b><code>pureauth</code></b> au lieu du code <b><code>auth</code></b> dans les marqueurs ci-dessus. Par exemple, <b><code>[pureauth]</code></b> ou <b><code>[pureauthors3]</code></b>.
+<b>Note :</b> S'il n'y a pas d'auteur (dans le cas d'un livre édité), alors tous les marqueurs <b><code>[auth...]</code></b> ci-dessus utiliseront l'éditeur(s) (s'il y en a) comme alternative. Ainsi l'éditeur(s) d'un livre sans auteur sera traité comme l'auteur(s) pour la génération des clefs.
+Si vous ne désirez pas ce comportement, c'est à dire si vous voulez un marqueur qui soit vide s'il n'y a pas d'auteur, utilisez le code <b><code>pureauth</code></b> au lieu du code <b><code>auth</code></b> dans les marqueurs ci-dessus. Par exemple, <b><code>[pureauth]</code></b> ou <b><code>[pureauthors3]</code></b>.
 <ul>
 <li><b>[<code>edtr</code>]</b> : Le nom du premier éditeur<BR>
 <li><b>[<code>edtrIniN</code>]</b> : Les N premières lettres du nom de chaque éditeur<BR>
@@ -76,5 +77,16 @@ La clef utilisée par défaut est [auth][year]; elle produit des cle
 <code>Yared1998b</code> 
 </blockquote>
 
+<h2>Remplacement d'expressions régulières</h2>
+
+<P>
+Après que la définition de clef ait été appliquée pour produire une clef, vous pouvez demander au générateur de clef de rechercher les occurrences d'une expression régulière donnée et de la remplacer avec une chaîne. L'expression régulière et la chaîne de remplacement sont entrées dans les champs textes situés sous la liste des définition de clefs.
+</P>
+
+<P>
+Si la chaîne de remplacement est vide, les correspondances de l'expression régulière seront simplement supprimées de la clef générée.
+</P>
+
+
 </body>
 </html>
diff --git a/src/images/font/ACTIVA.TTF b/src/images/font/ACTIVA.TTF
new file mode 100644
index 0000000..c973b2c
Binary files /dev/null and b/src/images/font/ACTIVA.TTF differ
diff --git a/src/images/font/ASTROLYT.TTF b/src/images/font/ASTROLYT.TTF
new file mode 100644
index 0000000..9a92497
Binary files /dev/null and b/src/images/font/ASTROLYT.TTF differ
diff --git a/src/images/font/AUGIE.TTF b/src/images/font/AUGIE.TTF
new file mode 100644
index 0000000..175d7ce
Binary files /dev/null and b/src/images/font/AUGIE.TTF differ
diff --git a/src/images/groupIncluding.png b/src/images/groupIncluding.png
index 6e72101..6f2bd08 100644
Binary files a/src/images/groupIncluding.png and b/src/images/groupIncluding.png differ
diff --git a/src/images/jabref-2.0-splash.png b/src/images/jabref-2.0-splash.png
deleted file mode 100644
index e295337..0000000
Binary files a/src/images/jabref-2.0-splash.png and /dev/null differ
diff --git a/src/images/splash-2.1beta.png b/src/images/splash-2.1beta.png
new file mode 100644
index 0000000..4304131
Binary files /dev/null and b/src/images/splash-2.1beta.png differ
diff --git a/src/images/splash.svg b/src/images/splash.svg
new file mode 100644
index 0000000..628543b
--- /dev/null
+++ b/src/images/splash.svg
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="90.000000"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-filename="/home/alver/Desktop/bilder/jabref/splash6.png"
+   sodipodi:docname="splash.svg"
+   sodipodi:docbase="/home/alver/jabref_beta/jabref/src/images"
+   inkscape:version="0.42+0.43pre1"
+   sodipodi:version="0.32"
+   id="svg2138"
+   height="1052.3622047"
+   width="744.09448819">
+  <defs
+     id="defs2140">
+    <pattern
+       patternTransform="translate(316.0000,1046.362)"
+       id="pattern9054"
+       xlink:href="#pattern9048"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient5361"
+       inkscape:collect="always">
+      <stop
+         id="stop5363"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop5365"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <marker
+       style="overflow:visible;"
+       id="Arrow2Send"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Send">
+      <path
+         transform="scale(0.3) rotate(180) translate(-5,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         id="path3046"
+         sodipodi:nodetypes="cccc" />
+    </marker>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="300.91277"
+       x2="491.20592"
+       y1="300.91277"
+       x1="445.01770"
+       id="linearGradient5367"
+       xlink:href="#linearGradient5361"
+       inkscape:collect="always" />
+    <pattern
+       id="pattern9048"
+       patternTransform="translate(231.0000,284.3622)"
+       height="428.00000"
+       width="572.00000"
+       patternUnits="userSpaceOnUse">
+      <image
+         transform="translate(-231.0000,-284.3622)"
+         style="opacity:1.0000000;stroke:#000000;stroke-width:5.0000000;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
+         inkscape:export-ydpi="90.000000"
+         inkscape:export-xdpi="90.000000"
+         inkscape:export-filename="/home/alver/Desktop/bilder/jabref/splash4.png"
+         y="284.36218"
+         x="231.00000"
+         xlink:href="behandlet.png"
+         sodipodi:absref="/home/alver/Desktop/bilder/jabref/behandlet.png"
+         width="572.00000"
+         height="428.00000"
+         id="image9050" />
+    </pattern>
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="80"
+     inkscape:window-x="8"
+     inkscape:window-height="856"
+     inkscape:window-width="750"
+     inkscape:current-layer="layer1"
+     inkscape:document-units="px"
+     inkscape:cy="698.1925"
+     inkscape:cx="364.52617"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base" />
+  <metadata
+     id="metadata2143">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1">
+    <rect
+       inkscape:export-ydpi="75.000000"
+       inkscape:export-xdpi="75.000000"
+       inkscape:export-filename="/home/alver/jabref_beta/jabref/jabref-2.0-splash.png"
+       y="170.36218"
+       x="77.500000"
+       height="432.00000"
+       width="576.00000"
+       id="rect6833"
+       style="opacity:1.0000000;fill:#6b6b75;fill-opacity:1.0000000;stroke:none;stroke-width:5.0000000;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000" />
+    <image
+       inkscape:export-ydpi="75.000000"
+       inkscape:export-xdpi="75.000000"
+       inkscape:export-filename="/home/alver/jabref_beta/jabref/jabref-2.0-splash.png"
+       y="172.36218"
+       x="79.000000"
+       id="image1390"
+       height="428.00000"
+       width="572.00000"
+       sodipodi:absref="/home/alver/oldhome/bilder/bilder/jabref/behandlet.png"
+       xlink:href="/home/alver/oldhome/bilder/bilder/jabref/behandlet.png" />
+    <flowRoot
+       inkscape:export-ydpi="75.000000"
+       inkscape:export-xdpi="75.000000"
+       inkscape:export-filename="/home/alver/jabref_beta/jabref/jabref-2.0-splash.png"
+       style="opacity:1.0000000;fill:#635578;fill-opacity:1.0000000;stroke:#b5b5c7;stroke-width:0.48137558;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
+       transform="matrix(1.875133,0.000000,0.000000,2.542210,-129.6969,-372.8897)"
+       id="flowRoot2189"
+       xml:space="preserve">
+      <flowRegion
+   id="flowRegion2191">
+        <rect
+   style="fill:#635578;fill-opacity:1.0000000;stroke:#b5b5c7;stroke-opacity:1.0000000;stroke-width:0.48137557;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-linejoin:bevel"
+   y="199.10532"
+   x="128.49385"
+   height="127.49445"
+   width="283.51782"
+   id="rect2193" />
+      </flowRegion>
+      <flowPara
+   style="font-size:90.000000px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#635578;fill-opacity:1.0000000;stroke:#b5b5c7;stroke-width:0.48137558;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;font-family:AR PL KaitiM GB"
+   id="flowPara2201">JabRef</flowPara>
+    </flowRoot>    <flowRoot
+       inkscape:export-ydpi="75.000000"
+       inkscape:export-xdpi="75.000000"
+       inkscape:export-filename="/home/alver/jabref_beta/jabref/jabref-2.0-splash.png"
+       style="font-size:34.96500015px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:104.16220427%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#5cc757;stroke-width:0.64448702;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:0.64448701 0.64448701 ;stroke-dashoffset:0.45114091;stroke-opacity:1;font-family:FreeSans"
+       transform="matrix(2.869197,-1.415830e-2,2.234317e-2,3.356271,-832.1435,-652.0185)"
+       id="flowRoot2203"
+       xml:space="preserve">
+      <flowRegion
+   style="stroke:url(#linearGradient5367);stroke-width:0.64448702;stroke-miterlimit:4;stroke-dasharray:0.64448701 0.64448701 ;stroke-dashoffset:0.45114091"
+   id="flowRegion2205">
+        <rect
+   style="font-size:34.96500015px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:104.16220427%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#322b5b;stroke-width:0.64448702;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:0.64448701 0.64448701 ;stroke-dashoffset:0.45114091;stroke-opacity:1;font-family:FreeSans"
+   y="286.45224"
+   x="443.95346"
+   height="119.83134"
+   width="173.972"
+   id="rect2207" />
+      </flowRegion>
+      <flowPara
+   style="font-size:34.96500015px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:104.16220427%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#322b5b;stroke-width:0.64448702;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:0.64448701 0.64448701 ;stroke-dashoffset:0.45114091;stroke-opacity:1;font-family:FreeSans"
+   id="flowPara2211">2.0</flowPara>
+    </flowRoot>    <flowRoot
+       inkscape:export-ydpi="75.000000"
+       inkscape:export-xdpi="75.000000"
+       inkscape:export-filename="/home/alver/jabref_beta/jabref/jabref-2.0-splash.png"
+       transform="matrix(0.972246,0.000000,0.000000,1.325301,6.054966,-126.1181)"
+       style="font-size:11.9999996;font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#797580;fill-opacity:1.0000000;font-family:Bitstream Vera Sans;text-anchor:middle;writing-mode:lr;text-align:center;line-height:100%"
+       id="flowRoot3076"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3078">
+        <rect
+   style="fill:#797580;fill-opacity:1.0000000;font-family:Bitstream Vera Sans;font-weight:bold;font-style:oblique;font-stretch:normal;font-variant:normal;font-size:11.9999996;text-anchor:middle;text-align:center;writing-mode:lr;line-height:100%"
+   y="514.56494"
+   x="115.50008"
+   height="78.684433"
+   width="506.03476"
+   id="rect3080" />
+      </flowRegion><flowPara
+         id="flowPara1339">This program is distributed under the terms of the General Public License.</flowPara><flowPara
+         id="flowPara1341">Copyright (2003-2006) Morten O. Alver, Nizar Batada and all contributors.</flowPara></flowRoot>    <text
+       inkscape:export-ydpi="75.000000"
+       inkscape:export-xdpi="75.000000"
+       inkscape:export-filename="/home/alver/jabref_beta/jabref/jabref-2.0-splash.png"
+       transform="scale(0.853277,1.171952)"
+       sodipodi:linespacing="100%"
+       id="text1393"
+       y="315.20035"
+       x="163.38908"
+       style="font-size:183.29680;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#413b62;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Nimbus Roman No9 L;text-anchor:start;writing-mode:lr-tb"
+       xml:space="preserve"><tspan
+         y="315.20035"
+         x="163.38908"
+         id="tspan1395"
+         sodipodi:role="line">JabRef</tspan></text>
+    <text
+       inkscape:export-ydpi="75.000000"
+       inkscape:export-xdpi="75.000000"
+       inkscape:export-filename="/home/alver/jabref_beta/jabref/jabref-2.0-splash.png"
+       transform="scale(0.853347,1.171856)"
+       sodipodi:linespacing="100%"
+       id="text2179"
+       y="397.84811"
+       x="149.99753"
+       style="font-size:45.702374;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#805b41;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Times New Roman;text-anchor:start;writing-mode:lr-tb"
+       xml:space="preserve"><tspan
+         y="397.84811"
+         x="149.99753"
+         id="tspan2181"
+         sodipodi:role="line">reference manager</tspan></text>
+  </g>
+</svg>
diff --git a/src/java/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java b/src/java/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
index 7abbe72..6cd57cc 100644
--- a/src/java/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
+++ b/src/java/com/jgoodies/uif_lite/panel/SimpleInternalFrame.java
@@ -30,12 +30,13 @@
 
 package com.jgoodies.uif_lite.panel;
 
+import com.jgoodies.looks.LookUtils;
+
 import java.awt.*;
 
 import javax.swing.*;
 import javax.swing.border.AbstractBorder;
 
-import com.jgoodies.plaf.LookUtils;
 
 /** 
  * A <code>JPanel</code> subclass that has a drop shadow border and 
@@ -57,7 +58,7 @@ import com.jgoodies.plaf.LookUtils;
  * be displayed as selected.
  * 
  * @author Karsten Lentzsch
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
  * 
  * @see    javax.swing.JInternalFrame
  * @see    javax.swing.JDesktopPane
diff --git a/src/java/net/sf/jabref/AppearancePrefsTab.java b/src/java/net/sf/jabref/AppearancePrefsTab.java
index 2b4d4eb..926e01a 100644
--- a/src/java/net/sf/jabref/AppearancePrefsTab.java
+++ b/src/java/net/sf/jabref/AppearancePrefsTab.java
@@ -47,11 +47,11 @@ class AppearancePrefsTab extends JPanel implements PrefsTab {
         JLabel lab;
         builder.appendSeparator(Globals.lang("General"));
         JPanel p1 = new JPanel();
-        lab = new JLabel(Globals.lang("Menu and label font size") + ":");
-        p1.add(lab);
-        p1.add(fontSize);
-        builder.append(p1);
-        builder.nextLine();
+        //lab = new JLabel(Globals.lang("Menu and label font size") + ":");
+        //p1.add(lab);
+        //p1.add(fontSize);
+        //builder.append(p1);
+        //builder.nextLine();
         builder.append(antialias);
         builder.nextLine();
         builder.appendSeparator(Globals.lang("Table appearance"));
diff --git a/src/java/net/sf/jabref/AuthorList.java b/src/java/net/sf/jabref/AuthorList.java
index 4f5bb54..571de46 100644
--- a/src/java/net/sf/jabref/AuthorList.java
+++ b/src/java/net/sf/jabref/AuthorList.java
@@ -439,7 +439,9 @@ public class AuthorList {
             }
             if (c=='\\') current_backslash = token_end;
             if (braces_level==0)
-                if (c==',' || c=='~' || c=='-' || Character.isWhitespace(c)) break;
+                if (c==',' || c=='~' || /*c=='-' ||*/ Character.isWhitespace(c)) break;
+            // Morten Alver 18 Apr 2006: Removed check for hyphen '-' above to prevent
+            // problems with names like Bailey-Jones getting broken up and sorted wrong.
             token_end++;
         }
         if (token_abbr<0) token_abbr = token_end;
diff --git a/src/java/net/sf/jabref/BasePanel.java b/src/java/net/sf/jabref/BasePanel.java
index 36cab5b..8ce08fe 100644
--- a/src/java/net/sf/jabref/BasePanel.java
+++ b/src/java/net/sf/jabref/BasePanel.java
@@ -23,7 +23,7 @@ USA
 Further information about the GNU GPL is available at:
 http://www.gnu.org/copyleft/gpl.ja.html
 
- 
+
 */
 
 package net.sf.jabref;
@@ -34,14 +34,13 @@ import java.awt.event.*;
 import java.io.*;
 import java.util.*;
 import java.util.List;
+import java.nio.charset.UnsupportedCharsetException;
 import javax.swing.*;
 import javax.swing.tree.TreePath;
 import javax.swing.undo.*;
 import net.sf.jabref.collab.*;
 import net.sf.jabref.export.*;
-import net.sf.jabref.external.PushToLyx;
 import net.sf.jabref.external.AutoSetExternalFileForEntries;
-import net.sf.jabref.external.PushToEmacs;
 import net.sf.jabref.groups.*;
 import net.sf.jabref.imports.*;
 import net.sf.jabref.labelPattern.LabelPatternUtil;
@@ -53,6 +52,8 @@ import net.sf.jabref.gui.*;
 import net.sf.jabref.search.NoSearchMatcher;
 import net.sf.jabref.search.SearchMatcher;
 import com.jgoodies.uif_lite.component.UIFSplitPane;
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.layout.FormLayout;
 import ca.odell.glazedlists.FilterList;
 import ca.odell.glazedlists.matchers.Matcher;
 import ca.odell.glazedlists.event.ListEventListener;
@@ -161,6 +162,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
       this.sidePaneManager = Globals.sidePaneManager;
       database = new BibtexDatabase();
       metaData = new MetaData();
+        metaData.initializeNewDatabase();
       this.frame = frame;
       setupActions();
       setupMainPanel();
@@ -179,8 +181,10 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
       database = db;
       if (meta != null)
         parseMetaData(meta);
-      else
+      else {
         metaData = new MetaData();
+        metaData.initializeNewDatabase();   
+      }
       setupActions();
       setupMainPanel();
       /*if (Globals.prefs.getBoolean("autoComplete")) {
@@ -258,6 +262,17 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                 */
             });
 
+
+        actions.put("test", new BaseAction () {
+                public void action() throws Throwable {
+
+
+
+
+                }
+            });
+
+
         // The action for saving a database.
         actions.put("save", new AbstractWorker() {
             private boolean success = false;
@@ -316,6 +331,30 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
 
             public void run() {
                 try {
+                    // If the option is set, autogenerate keys for all entries that are
+                    // lacking keys, before saving:
+                    if (Globals.prefs.getBoolean("generateKeysBeforeSaving")) {
+                        BibtexEntry bes;
+                        NamedCompound ce = new NamedCompound(Globals.lang("autogenerate keys"));
+                        boolean any = false;
+                        for (Iterator i=database.getKeySet().iterator(); i.hasNext();) {
+                            bes = database.getEntryById((String)i.next());
+                            String oldKey = bes.getCiteKey();
+                            if ((oldKey == null) || (oldKey.equals(""))) {
+                                LabelPatternUtil.makeLabel(Globals.prefs.getKeyPattern(), database, bes);
+                                ce.addEdit(new UndoableKeyChange(database, bes.getId(), null,
+                                    (String)bes.getField(BibtexFields.KEY_FIELD)));
+                                any = true;
+                            }
+                        }
+                        // Store undo information, if any:
+                        if (any) {
+                            ce.end();
+                            undoManager.addEdit(ce);
+                        }
+                    }
+                    // Done with autosetting keys. Now save the database:
+
                     success = saveDatabase(file, false, encoding);
 
                     //Util.pr("Testing resolve string... BasePanel line 237");
@@ -600,11 +639,14 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                         // finally we paste in the entries (if any), which either came from TransferableBibtexEntries
                         // or were parsed from a string
                         if ((bes != null) && (bes.length > 0)) {
+
                           NamedCompound ce = new NamedCompound
                               (Globals.lang(bes.length > 1 ? "paste entries" : "paste entry"));
                           for (int i=0; i<bes.length; i++) {
                             try {
                               BibtexEntry be = (BibtexEntry)(bes[i].clone());
+                                Util.setAutomaticFields(be);
+
                               // We have to clone the
                               // entries, since the pasted
                               // entries must exist
@@ -680,69 +722,6 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
             }
         });
 
-    // The action for pushing citations to an open Lyx/Kile instance:
-        actions.put("pushToLyX", new PushToLyx(BasePanel.this));
-
-            actions.put("pushToWinEdt",new BaseAction(){
-              public void action(){
-                    final List entries = mainTable.getSelected();
-                    final int numSelected = entries.size();
-                    // Globals.logger("Pushing " +numSelected+(numSelected>1? " entries" : "entry") + " to WinEdt");
-
-                    if( numSelected > 0){
-                      Thread pushThread = new Thread() {
-                        public void run() {
-                          String winEdt = Globals.prefs.get("winEdtPath");
-                          //winEdt = "osascript";
-                          try {
-                            StringBuffer toSend = new StringBuffer("\"[InsText('\\")
-                              .append(Globals.prefs.get("citeCommand")).append("{");
-                            String citeKey = "";//, message = "";
-                            boolean first = true;
-                            for (Iterator i=entries.iterator(); i.hasNext();) {
-                                BibtexEntry bes = (BibtexEntry)i.next();
-                              citeKey = (String) bes.getField(GUIGlobals.KEY_FIELD);
-                              // if the key is empty we give a warning and ignore this entry
-                              if (citeKey == null || citeKey.equals(""))
-                                continue;
-                              if (first) {
-                                toSend.append(citeKey);
-                                first = false;
-                              }
-                              else {
-                                  toSend.append(",").append(citeKey);
-                                //message += ", ";
-                              }
-                              //message += (1 + rows[i]);
-
-                            }
-                            if (first)
-                              output(Globals.lang("Please define BibTeX key first"));
-                            else {
-                              toSend.append("}');]\"");
-                              //System.out.println(toSend.toString());
-                              Runtime.getRuntime().exec(winEdt + " " + toSend.toString());
-                              Globals.lang("Pushed citations to WinEdt");
-                                /*output(
-                                  Globals.lang("Pushed the citations for the following rows to")+"WinEdt: " +
-                                  message);*/
-                            }
-                          }
-
-                          catch (IOException excep) {
-                            output(Globals.lang("Error")+": "+Globals.lang("Could not call executable")+" '"
-                                   +winEdt+"'.");
-                            excep.printStackTrace();
-                          }
-                        }
-                      };
-
-                      pushThread.start();
-                    }
-                  }
-            });
-
-        actions.put("pushToEmacs", new PushToEmacs(BasePanel.this));
 
         // The action for auto-generating keys.
         actions.put("makeKey", new AbstractWorker() {
@@ -780,7 +759,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                     // them from consideration, or warn about overwriting keys.
                     loop: for (Iterator i=entries.iterator(); i.hasNext();) {
                         bes = (BibtexEntry)i.next();
-                        if (bes.getField(GUIGlobals.KEY_FIELD) != null) {
+                        if (bes.getField(BibtexFields.KEY_FIELD) != null) {
                             if (Globals.prefs.getBoolean("avoidOverwritingKey"))
                                 // Rmove the entry, because its key is already set:
                                 i.remove();
@@ -810,7 +789,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                     if (!Globals.prefs.getBoolean("avoidOverwritingKey")) for (Iterator i=entries.iterator(); i.hasNext();) {
                         bes = (BibtexEntry)i.next();
                         // Store the old value:
-                        oldvals.put(bes, bes.getField(GUIGlobals.KEY_FIELD));
+                        oldvals.put(bes, bes.getField(BibtexFields.KEY_FIELD));
                         database.setCiteKeyForEntry(bes.getId(), null);
                     }
 
@@ -820,7 +799,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                         bes = LabelPatternUtil.makeLabel(Globals.prefs.getKeyPattern(), database, bes);
                         ce.addEdit(new UndoableKeyChange
                                    (database, bes.getId(), (String)oldvals.get(bes),
-                                    (String)bes.getField(GUIGlobals.KEY_FIELD)));
+                                    (String)bes.getField(BibtexFields.KEY_FIELD)));
                     }
                     ce.end();
                     undoManager.addEdit(ce);
@@ -881,8 +860,8 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                         Vector keys = new Vector();
                         // Collect all non-null keys.
                         for (int i=0; i<bes.length; i++)
-                            if (bes[i].getField(Globals.KEY_FIELD) != null)
-                                keys.add(bes[i].getField(Globals.KEY_FIELD));
+                            if (bes[i].getField(BibtexFields.KEY_FIELD) != null)
+                                keys.add(bes[i].getField(BibtexFields.KEY_FIELD));
                         if (keys.size() == 0) {
                             output("None of the selected entries have BibTeX keys.");
                             return;
@@ -919,8 +898,8 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                         Vector keys = new Vector();
                         // Collect all non-null keys.
                         for (int i=0; i<bes.length; i++)
-                            if (bes[i].getField(Globals.KEY_FIELD) != null)
-                                keys.add(bes[i].getField(Globals.KEY_FIELD));
+                            if (bes[i].getField(BibtexFields.KEY_FIELD) != null)
+                                keys.add(bes[i].getField(BibtexFields.KEY_FIELD));
                         if (keys.size() == 0) {
                             output("None of the selected entries have BibTeX keys.");
                             return;
@@ -1020,7 +999,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
 
                      // see if we can fall back to a filename based on the bibtex key
                      String basefile;
-                     Object key = bes[0].getField(Globals.KEY_FIELD);
+                     Object key = bes[0].getField(BibtexFields.KEY_FIELD);
                      if (key != null) {
                        basefile = key.toString();
                         final String[] types = new String[] {"pdf", "ps"};
@@ -1043,7 +1022,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                    if (filepath != null) {
                      //output(Globals.lang("Calling external viewer..."));
                      try {
-                       Util.openExternalViewer(filepath, field, Globals.prefs);
+                       Util.openExternalViewer(metaData(), filepath, field);
                        output(Globals.lang("External viewer called") + ".");
                      }
                      catch (IOException ex) {
@@ -1076,7 +1055,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                               if (link != null) {
                                 //output(Globals.lang("Calling external viewer..."));
                                 try {
-                                  Util.openExternalViewer(link.toString(), field, Globals.prefs);
+                                  Util.openExternalViewer(metaData(), link.toString(), field);
                                   output(Globals.lang("External viewer called")+".");
                                 } catch (IOException ex) {
                                     output(Globals.lang("Error") + ": " + ex.getMessage());
@@ -1173,7 +1152,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                           // Create an UndoableInsertEntry object.
                           undoManager.addEdit(new UndoableInsertEntry(database, bibEntry, BasePanel.this));
 
-                          TextInputDialog tidialog = new TextInputDialog(frame, BasePanel.this, 
+                          TextInputDialog tidialog = new TextInputDialog(frame, BasePanel.this,
                                                                          "import", true,
                                                                          bibEntry) ;
                           Util.placeDialog(tidialog, BasePanel.this);
@@ -1453,6 +1432,11 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                 session = FileActions.savePartOfDatabase(database, metaData, file,
                                                Globals.prefs, mainTable.getSelectedEntries(), encoding);
 
+        } catch (UnsupportedCharsetException ex2) {
+            JOptionPane.showMessageDialog(frame, Globals.lang("Could not save file. "
+                +"Character encoding '%0' is not supported.", encoding),
+                    Globals.lang("Save database"), JOptionPane.ERROR_MESSAGE);
+            throw new SaveException("rt");
         } catch (SaveException ex) {
             if (ex.specificEntry()) {
                 // Error occured during processing of
@@ -1478,16 +1462,15 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
 
         boolean commit = true;
         if (!session.getWriter().couldEncodeAll()) {
-              String warning = Globals.lang("The chosen encoding '%0' could not encode the following characters: ",
-                      session.getEncoding())+session.getWriter().getProblemCharacters()
-                      +"\nDo you want to continue?";
-            //int answer = JOptionPane.showConfirmDialog(frame, warning, Globals.lang("Save database"),
-            //        JOptionPane.YES_NO_OPTION);
-            String message = Globals.lang("The chosen encoding '%0' could not encode the following characters: ",
-                      session.getEncoding())+session.getWriter().getProblemCharacters()
-                      +"\nWhat do you want to do?";
+            DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:pref", ""));
+            JTextArea ta = new JTextArea(session.getWriter().getProblemCharacters());
+            ta.setEditable(false);
+            builder.append(Globals.lang("The chosen encoding '%0' could not encode the following characters: ",
+                      session.getEncoding()));
+            builder.append(ta);
+            builder.append(Globals.lang("What do you want to do?"));
             String tryDiff = Globals.lang("Try different encoding");
-            int answer = JOptionPane.showOptionDialog(frame, message, Globals.lang("Save database"),
+            int answer = JOptionPane.showOptionDialog(frame, builder.getPanel(), Globals.lang("Save database"),
                     JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null,
                     new String[] {Globals.lang("Save"), tryDiff, Globals.lang("Cancel")}, tryDiff);
 
@@ -1563,7 +1546,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                 }
 
                 highlightEntry(be);  // Selects the entry. The selection listener will open the editor.
-                
+
                 markBaseChanged(); // The database just changed.
                 new FocusRequester(getEntryEditor(be));
             } catch (KeyCollisionException ex) {
@@ -1682,7 +1665,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
           database.insertEntry(bibEntry) ;
           if (Globals.prefs.getBoolean("useOwner"))
             // Set owner field to default value
-            bibEntry.setField(Globals.OWNER, Globals.prefs.get("defaultOwner") );
+            bibEntry.setField(BibtexFields.OWNER, Globals.prefs.get("defaultOwner") );
             // Create an UndoableInsertEntry object.
             undoManager.addEdit(new UndoableInsertEntry(database, bibEntry, BasePanel.this));
             output(Globals.lang("Added new")+" '"
@@ -2542,7 +2525,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
         boolean first = true;
         for (Iterator i = entries.iterator(); i.hasNext();) {
             BibtexEntry bes = (BibtexEntry) i.next();
-            citeKey = (String) bes.getField(GUIGlobals.KEY_FIELD);
+            citeKey = (String) bes.getField(BibtexFields.KEY_FIELD);
             // if the key is empty we give a warning and ignore this entry
             if (citeKey == null || citeKey.equals(""))
                 continue;
diff --git a/src/java/net/sf/jabref/BibtexDatabase.java b/src/java/net/sf/jabref/BibtexDatabase.java
index 6208906..61a621b 100644
--- a/src/java/net/sf/jabref/BibtexDatabase.java
+++ b/src/java/net/sf/jabref/BibtexDatabase.java
@@ -68,8 +68,8 @@ public class BibtexDatabase
             public void vetoableChange(PropertyChangeEvent pce)
                 throws PropertyVetoException
             {
-		if (pce.getPropertyName() == null)
-		    fireDatabaseChanged (new DatabaseChangeEvent(ths, DatabaseChangeEvent.CHANGING_ENTRY, (BibtexEntry)pce.getSource()));
+                if (pce.getPropertyName() == null)
+                    fireDatabaseChanged (new DatabaseChangeEvent(ths, DatabaseChangeEvent.CHANGING_ENTRY, (BibtexEntry)pce.getSource()));
                 else if ("id".equals(pce.getPropertyName()))
                 {
                     // locate the entry under its old key
@@ -98,10 +98,10 @@ public class BibtexDatabase
                     _entries.put((String) pce.getNewValue(),
                         (BibtexEntry) pce.getSource());
                 } else {
-		    fireDatabaseChanged (new DatabaseChangeEvent(ths, DatabaseChangeEvent.CHANGED_ENTRY, (BibtexEntry)pce.getSource()));
-		    //Util.pr(pce.getSource().toString()+"\n"+pce.getPropertyName()
-		    //    +"\n"+pce.getNewValue());
-		}
+                    fireDatabaseChanged (new DatabaseChangeEvent(ths, DatabaseChangeEvent.CHANGED_ENTRY, (BibtexEntry)pce.getSource()));
+                    //Util.pr(pce.getSource().toString()+"\n"+pce.getPropertyName()
+                    //    +"\n"+pce.getNewValue());
+                }
             }
         };
 
@@ -127,8 +127,8 @@ public class BibtexDatabase
      * sorted by the given Comparator.
      */
     public synchronized EntrySorter getSorter(java.util.Comparator comp) {
-	EntrySorter sorter = new EntrySorter(_entries, comp);
-	addDatabaseChangeListener(sorter);
+        EntrySorter sorter = new EntrySorter(_entries, comp);
+        addDatabaseChangeListener(sorter);
         return sorter;
     }
 
@@ -145,9 +145,9 @@ public class BibtexDatabase
     {
         return (BibtexEntry) _entries.get(id);
     }
-    
+
     public synchronized Collection getEntries() {
-    	return _entries.values();
+            return _entries.values();
     }
 
     /**
@@ -185,7 +185,7 @@ public class BibtexDatabase
       }
       return back ;
     }
-    
+
     public synchronized BibtexEntry[] getEntriesByKey(String key) {
         Vector entries = new Vector();
         BibtexEntry entry;
@@ -196,7 +196,7 @@ public class BibtexDatabase
         }
         BibtexEntry[] entryArray = new BibtexEntry[entries.size()];
         return (BibtexEntry[]) entries.toArray(entryArray);
-    }    
+    }
 
     /**
      * Inserts the entry, given that its ID is not already in use.
@@ -226,7 +226,7 @@ public class BibtexDatabase
         */
         _entries.put(id, entry);
 
-	fireDatabaseChanged(new DatabaseChangeEvent(this, DatabaseChangeEvent.ADDED_ENTRY, entry));
+        fireDatabaseChanged(new DatabaseChangeEvent(this, DatabaseChangeEvent.ADDED_ENTRY, entry));
 
         return checkForDuplicateKeyAndAdd(null, entry.getCiteKey(), false);
     }
@@ -244,7 +244,7 @@ public class BibtexDatabase
             oldValue.removePropertyChangeListener(listener);
         }
 
-	fireDatabaseChanged(new DatabaseChangeEvent(this, DatabaseChangeEvent.REMOVED_ENTRY, oldValue));
+        fireDatabaseChanged(new DatabaseChangeEvent(this, DatabaseChangeEvent.REMOVED_ENTRY, oldValue));
 
         return oldValue;
     }
@@ -254,9 +254,9 @@ public class BibtexDatabase
         BibtexEntry entry = getEntryById(id);
         String oldKey = entry.getCiteKey();
         if (key != null)
-          entry.setField(Globals.KEY_FIELD, key);
+          entry.setField(BibtexFields.KEY_FIELD, key);
         else
-          entry.clearField(Globals.KEY_FIELD);
+          entry.clearField(BibtexFields.KEY_FIELD);
         return checkForDuplicateKeyAndAdd(oldKey, entry.getCiteKey(), false);
     }
 
@@ -286,10 +286,10 @@ public class BibtexDatabase
             if (((BibtexString)_strings.get(i.next())).getName().equals(string.getName()))
                 throw new KeyCollisionException("A string with this label already exists,");
         }
-	
-	if (_strings.containsKey(string.getId()))
-	    throw new KeyCollisionException("Duplicate BibtexString id.");
-	
+
+        if (_strings.containsKey(string.getId()))
+            throw new KeyCollisionException("Duplicate BibtexString id.");
+
         _strings.put(string.getId(), string);
     }
 
@@ -305,7 +305,7 @@ public class BibtexDatabase
      * These are in no sorted order.
      */
     public Set getStringKeySet() {
-	return _strings.keySet();
+        return _strings.keySet();
     }
 
     /**
@@ -333,90 +333,104 @@ public class BibtexDatabase
         return false;
     }
 
-   /**
-    * If the label represents a string contained in this database, returns
-    * that string's content. Resolves references to other strings, taking
-    * care not to follow a circular reference pattern.
-    * If the string is undefined, returns the label itself.
-    */
-    public String resolveString(String label) {
-	return resolveString(label, new HashSet());
-    }
-   
     /**
      * Resolves any references to strings contained in this database,
      * if possible.
      */
     public String resolveForStrings(String content) {
-	return resolveContent(content, new HashSet());
+        return resolveContent(content, new HashSet());
     }
 
+    /**
+    * If the label represents a string contained in this database, returns
+    * that string's content. Resolves references to other strings, taking
+    * care not to follow a circular reference pattern.
+    * If the string is undefined, returns the label itself.
+    */
     private String resolveString(String label, HashSet usedIds) {
-
         for (java.util.Iterator i=_strings.keySet().iterator(); i.hasNext();) {
             BibtexString string = (BibtexString)_strings.get(i.next());
 
-	        //Util.pr(label+" : "+string.getName());
+                //Util.pr(label+" : "+string.getName());
             if (string.getName().toLowerCase().equals(label.toLowerCase())) {
 
-		// First check if this string label has been resolved
-		// earlier in this recursion. If so, we have a
-		// circular reference, and have to stop to avoid
-		// infinite recursion.
-		if (usedIds.contains(string.getId())) {
-		    Util.pr("Stopped due to circular reference in strings: "+label);
-		    return label;
-		}
-		// If not, log this string's ID now.
-		usedIds.add(string.getId());
-
-		// Ok, we found the string. Now we must make sure we
-		// resolve any references to other strings in this one.
-		String res = string.getContent();
-		res = resolveContent(res, usedIds);
-
-		// Finished with recursing this branch, so we remove our
-		// ID again:
-		usedIds.remove(string.getId());
-
-		return res;
-	    }
+                // First check if this string label has been resolved
+                // earlier in this recursion. If so, we have a
+                // circular reference, and have to stop to avoid
+                // infinite recursion.
+                if (usedIds.contains(string.getId())) {
+                    Util.pr("Stopped due to circular reference in strings: "+label);
+                    return label;
+                }
+                // If not, log this string's ID now.
+                usedIds.add(string.getId());
+
+                // Ok, we found the string. Now we must make sure we
+                // resolve any references to other strings in this one.
+                String res = string.getContent();
+                res = resolveContent(res, usedIds);
+
+                // Finished with recursing this branch, so we remove our
+                // ID again:
+                usedIds.remove(string.getId());
+
+                return res;
+            }
         }
-        
+
         // If we get to this point, the string has obviously not been defined locally.
         // Check if one of the standard BibTeX month strings has been used:
         Object o;
         if ((o = Globals.MONTH_STRINGS.get(label.toLowerCase())) != null) {
             return (String)o;
         }
-        
+
         return label;
     }
 
     private String resolveContent(String res, HashSet usedIds) {
-	//if (res.matches(".*#[-\\^\\:\\w]+#.*")) {
+        //if (res.matches(".*#[-\\^\\:\\w]+#.*")) {
     if (res.matches(".*#[^#]+#.*")) {
-	    StringBuffer newRes = new StringBuffer();
-	    int piv = 0, next = 0;
-	    while ((next=res.indexOf("#", piv)) >= 0) {
-		// We found the next string ref. Append the text
-		// up to it.
-		if (next > 0)
-		    newRes.append(res.substring(piv, next));
-		int stringEnd = res.indexOf("#", next+1);
-		if (stringEnd >= 0) {
-		    // We found the boundaries of the string ref,
-		    // now resolve that one.
-		    String refLabel = res.substring(next+1, stringEnd);
-		    newRes.append(resolveString(refLabel, usedIds));
-		}
-		piv = stringEnd+1;
-	    }
-	    if (piv < res.length()-1)
-		newRes.append(res.substring(piv));
-	    res = newRes.toString();
-	}
-	return res;
+            StringBuffer newRes = new StringBuffer();
+            int piv = 0, next = 0;
+            while ((next=res.indexOf("#", piv)) >= 0) {
+
+                // We found the next string ref. Append the text
+                // up to it.
+                if (next > 0)
+                    newRes.append(res.substring(piv, next));
+                int stringEnd = res.indexOf("#", next+1);
+                if (stringEnd >= 0) {
+                    // We found the boundaries of the string ref,
+                    // now resolve that one.
+                    String refLabel = res.substring(next+1, stringEnd);
+                    String resolved = resolveString(refLabel, usedIds);
+                    if (refLabel.equals(resolved)) {
+                        // We got just the label in return, so this may not have
+                        // been intended as a string label, or it may be a label for
+                        // an undefined string. Therefore we prefer to display the #
+                        // characters rather than removing them:
+                        newRes.append(res.substring(next, stringEnd+1));
+                    } else
+                        // The string was resolved, so we display its meaning only,
+                        // stripping the # characters signifying the string label:
+                        newRes.append(resolved);
+                    piv = stringEnd+1;
+                } else {
+                    // We didn't find the boundaries of the string ref. This
+                    // makes it impossible to interpret it as a string label.
+                    // So we should just append the rest of the text and finish.
+                    newRes.append(res.substring(next));
+                    piv = res.length();
+                    break;
+                }
+
+            }
+            if (piv < res.length()-1)
+                newRes.append(res.substring(piv));
+            res = newRes.toString();
+        }
+        return res;
     }
 
     //##########################################
@@ -466,9 +480,9 @@ public class BibtexDatabase
             return 0;
         else
             return ((Integer)o).intValue();
-            
+
     }
-    
+
     //========================================================
     // keep track of all the keys to warn if there are duplicates
     //========================================================
@@ -500,19 +514,19 @@ public class BibtexDatabase
     }
 
 
-    
+
     public void fireDatabaseChanged(DatabaseChangeEvent e) {
-	for (Iterator i=changeListeners.iterator(); i.hasNext();) {
-	    ((DatabaseChangeListener)i.next()).databaseChanged(e);
-	}
+        for (Iterator i=changeListeners.iterator(); i.hasNext();) {
+            ((DatabaseChangeListener)i.next()).databaseChanged(e);
+        }
     }
 
     public void addDatabaseChangeListener(DatabaseChangeListener l) {
-	changeListeners.add(l);
+        changeListeners.add(l);
     }
 
     public void removeDatabaseChangeListener(DatabaseChangeListener l) {
-	changeListeners.remove(l);
+        changeListeners.remove(l);
     }
 
     /*
diff --git a/src/java/net/sf/jabref/BibtexEntry.java b/src/java/net/sf/jabref/BibtexEntry.java
index ff8b194..b5f1409 100644
--- a/src/java/net/sf/jabref/BibtexEntry.java
+++ b/src/java/net/sf/jabref/BibtexEntry.java
@@ -42,6 +42,7 @@ import java.io.*;
 
 public class BibtexEntry
 {
+    public final static String ID_FIELD = "id";
     private String _id;
     private BibtexEntryType _type;
     private Map _fields = new HashMap();
@@ -169,7 +170,7 @@ public class BibtexEntry
 
         try
         {
-            firePropertyChangedEvent("id", _id, id);
+            firePropertyChangedEvent(ID_FIELD, _id, id);
         }
         catch (PropertyVetoException pv)
         {
@@ -195,20 +196,20 @@ public class BibtexEntry
     }
 
     public String getCiteKey() {
-        return (_fields.containsKey(Globals.KEY_FIELD) ?
-                (String)_fields.get(Globals.KEY_FIELD) : null);
+        return (_fields.containsKey(BibtexFields.KEY_FIELD) ?
+                (String)_fields.get(BibtexFields.KEY_FIELD) : null);
     }
 
     /**
      * Sets the given field to the given value.
      */
     public void setField(HashMap fields){
-        _fields.putAll(fields); 
+        _fields.putAll(fields);
     }
 
     public void setField(String name, Object value) {
 
-        if ("id".equals(name)) {
+        if (ID_FIELD.equals(name)) {
             throw new IllegalArgumentException("The field name '" + name +
                                                "' is reserved");
         }
@@ -217,30 +218,30 @@ public class BibtexEntry
         //Object normalValue = FieldTypes.normalize(name, value);
 
 
-	Object oldValue = _fields.get(name);
+        Object oldValue = _fields.get(name);
 
         try {
-	        /* The first event is no longer needed, so the following comment doesn't apply
-	           as of 2005.08.11.
+                /* The first event is no longer needed, so the following comment doesn't apply
+                   as of 2005.08.11.
 
             // First throw an empty event that just signals that this entry
-	        // is about to change. This is needed, so the EntrySorter can
-	        // remove the entry from its TreeSet. After a sort-sensitive
-	        // field changes, the entry will not be found by the TreeMap,
-	        // so without this event it would be impossible to reinsert this
-	        // entry to keep everything sorted properly.
+                // is about to change. This is needed, so the EntrySorter can
+                // remove the entry from its TreeSet. After a sort-sensitive
+                // field changes, the entry will not be found by the TreeMap,
+                // so without this event it would be impossible to reinsert this
+                // entry to keep everything sorted properly.
             firePropertyChangedEvent(null, null, null);
             */
 
             // We set the field before throwing the changeEvent, to enable
-    	    // the change listener to access the new value if the change
-    	    // sets off a change in database sorting etc.
-    	    _fields.put(name, value);
+                // the change listener to access the new value if the change
+                // sets off a change in database sorting etc.
+                _fields.put(name, value);
             firePropertyChangedEvent(name, oldValue, value);
         } catch (PropertyVetoException pve) {
-    	    // Since we have already made the change, we must undo it since
-	        // the change was rejected:
-    	    _fields.put(name, oldValue);
+                // Since we have already made the change, we must undo it since
+                // the change was rejected:
+                _fields.put(name, oldValue);
             throw new IllegalArgumentException("Change rejected: " + pve);
         }
 
@@ -251,7 +252,7 @@ public class BibtexEntry
      */
     public void clearField(String name) {
 
-      if ("id".equals(name)) {
+      if (ID_FIELD.equals(name)) {
            throw new IllegalArgumentException("The field name '" + name +
                                               "' is reserved");
        }
@@ -312,21 +313,23 @@ public class BibtexEntry
         // Write header with type and bibtex-key.
         out.write("@"+_type.getName().toUpperCase()+"{");
 
-        String str = Util.shaveString((String)getField(GUIGlobals.KEY_FIELD));
+        String str = Util.shaveString((String)getField(BibtexFields.KEY_FIELD));
         out.write(((str == null) ? "" : str)+","+Globals.NEWLINE);
         HashMap written = new HashMap();
-        written.put(GUIGlobals.KEY_FIELD, null);
+        written.put(BibtexFields.KEY_FIELD, null);
+        boolean hasWritten = false;
         // Write required fields first.
         String[] s = getRequiredFields();
         if (s != null) for (int i=0; i<s.length; i++) {
-            writeField(s[i], out, ff);
+            hasWritten = hasWritten | writeField(s[i], out, ff, hasWritten);
             written.put(s[i], null);
         }
         // Then optional fields.
         s = getOptionalFields();
         if (s != null) for (int i=0; i<s.length; i++) {
             if (!written.containsKey(s[i])) { // If field appears both in req. and opt. don't repeat.
-                writeField(s[i], out, ff);
+                //writeField(s[i], out, ff);
+                hasWritten = hasWritten | writeField(s[i], out, ff, hasWritten);
                 written.put(s[i], null);
             }
         }
@@ -334,22 +337,36 @@ public class BibtexEntry
         TreeSet remainingFields = new TreeSet();
         for (Iterator i = _fields.keySet().iterator(); i.hasNext(); ) {
             String key = (String)i.next();
-            boolean writeIt = (write ? GUIGlobals.isWriteableField(key) :
-                               GUIGlobals.isDisplayableField(key));
+            boolean writeIt = (write ? BibtexFields.isWriteableField(key) :
+                               BibtexFields.isDisplayableField(key));
             if (!written.containsKey(key) && writeIt)
-               	remainingFields.add(key);
+                       remainingFields.add(key);
         }
         for (Iterator i = remainingFields.iterator(); i.hasNext(); )
-            writeField((String)i.next(),out,ff);
+            hasWritten = hasWritten | writeField((String)i.next(), out, ff, hasWritten);
+            //writeField((String)i.next(),out,ff);
 
         // Finally, end the entry.
-        out.write("}"+Globals.NEWLINE);
+        out.write((hasWritten ? Globals.NEWLINE : "")+"}"+Globals.NEWLINE);
     }
 
-    private void writeField(String name, Writer out,
-                            FieldFormatter ff) throws IOException {
+    /**
+     * Write a single field, if it has any content.
+     * @param name The field name
+     * @param out The Writer to send it to
+     * @param ff A formatter to filter field contents before writing
+     * @param isFirst Indicates whether this is the first field written for
+     *    this entry - if not, start by writing a comma and newline
+     * @return true if this field was written, false if it was skipped because
+     *    it was not set
+     * @throws IOException In case of an IO error
+     */
+    private boolean writeField(String name, Writer out,
+                            FieldFormatter ff, boolean isFirst) throws IOException {
         Object o = getField(name);
         if (o != null) {
+            if (isFirst)
+                out.write(","+Globals.NEWLINE);
             out.write("  "+name+" = ");
 
             try {
@@ -358,9 +375,11 @@ public class BibtexEntry
                 throw new IOException
                     (Globals.lang("Error in field")+" '"+name+"': "+ex.getMessage());
             }
+            return true;
             //Util.writeField(name, o, out);
-            out.write(","+Globals.NEWLINE);
-        }
+            //out.write(","+Globals.NEWLINE);
+        } else
+            return false;
     }
 
     /**
@@ -372,9 +391,9 @@ public class BibtexEntry
         return clone;
     }
 
-   
+
     public String toString() {
-	return getType().getName()+":"+getField(Globals.KEY_FIELD);
+        return getType().getName()+":"+getField(BibtexFields.KEY_FIELD);
     }
 
     public boolean isSearchHit() {
diff --git a/src/java/net/sf/jabref/BibtexFields.java b/src/java/net/sf/jabref/BibtexFields.java
new file mode 100644
index 0000000..280f132
--- /dev/null
+++ b/src/java/net/sf/jabref/BibtexFields.java
@@ -0,0 +1,629 @@
+/*
+ Copyright (C) 2006 Raik Nagel <kiar at users.sourceforge.net>
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+ * Neither the name of the author nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// created by : r.nagel 19.04.2006
+//
+// function : Handling of bibtex fields.
+//            All bibtex-field related stuff should be placed here!
+//            Because we can export these informations into additional
+//            config files -> simple extension and definition of new fields....
+//
+// todo     : - handling of identically fields with different names
+//              e.g. LCCN = lib-congress
+//            - group id for each fields, e.g. standard, jurabib, bio....
+//            - add a additional properties functionality into the
+//              BibtexSingleField class
+//
+// modified : r.nagel 25.04.2006
+//            export/import of some definition from/to a xml file
+
+package net.sf.jabref ;
+
+import java.util.* ;
+import net.sf.jabref.util.*;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+public class BibtexFields
+{
+  public static final String KEY_FIELD = "bibtexkey" ;
+
+  // some internal fields
+  public static final String
+      SEARCH = "__search",
+      GROUPSEARCH = "__groupsearch",
+      MARKED = "__markedentry",
+      OWNER = "owner",
+      TIMESTAMP = "timestamp", // it's also definied at the JabRefPreferences class
+      ENTRYTYPE = "entrytype",
+
+      // Using this when I have no database open or when I read
+      // non bibtex file formats (used by the ImportFormatReader.java)
+      DEFAULT_BIBTEXENTRY_ID = "__ID" ;
+
+  public static final String[] DEFAULT_INSPECTION_FIELDS = new String[]
+          {"author", "title", "year", KEY_FIELD};
+
+
+  // singleton instance
+  private static final BibtexFields runtime = new BibtexFields() ;
+
+  // contains all bibtex-field objects (BibtexSingleField)
+  private HashMap fieldSet = null ;
+
+  // contains all known (and public) bibtex fieldnames
+  private Object[] PUBLIC_FIELDS = null ;
+
+  private BibtexFields()
+  {
+    fieldSet = new HashMap() ;
+    BibtexSingleField dummy = null ;
+
+    // FIRST: all standard fields
+    // These are the fields that BibTex might want to treat, so these
+    // must conform to BibTex rules.
+    add( new BibtexSingleField( "address", true, GUIGlobals.SMALL_W  ) ) ;
+    // An annotation. It is not used by the standard bibliography styles,
+    // but may be used by others that produce an annotated bibliography.
+    // http://www.ecst.csuchico.edu/~jacobsd/bib/formats/bibtex.html
+    add( new BibtexSingleField( "annote", true, GUIGlobals.LARGE_W  ) ) ;
+    add( new BibtexSingleField( "author", true, GUIGlobals.MEDIUM_W, 280 ) ) ;
+    add( new BibtexSingleField( "booktitle", true, 175 ) ) ;
+    add( new BibtexSingleField( "chapter", true, GUIGlobals.SMALL_W  ) ) ;
+    add( new BibtexSingleField( "crossref", true, GUIGlobals.SMALL_W ) ) ;
+    add( new BibtexSingleField( "edition", true, GUIGlobals.SMALL_W  ) ) ;
+    add( new BibtexSingleField( "editor", true, GUIGlobals.MEDIUM_W, 280  ) ) ;
+    add( new BibtexSingleField( "howpublished", true, GUIGlobals.MEDIUM_W  ) ) ;
+    add( new BibtexSingleField( "institution", true, GUIGlobals.MEDIUM_W  ) ) ;
+
+    dummy = new BibtexSingleField( "journal", true, GUIGlobals.SMALL_W ) ;
+    dummy.setExtras("journalNames");
+    add(dummy) ;
+    add( new BibtexSingleField( "key", true ) ) ;
+    add( new BibtexSingleField( "month", true, GUIGlobals.SMALL_W ) ) ;
+    add( new BibtexSingleField( "note", true, GUIGlobals.MEDIUM_W  ) ) ;
+    add( new BibtexSingleField( "number", true, GUIGlobals.SMALL_W, 60  ) ) ;
+    add( new BibtexSingleField( "organization", true, GUIGlobals.MEDIUM_W  ) ) ;
+    add( new BibtexSingleField( "pages", true, GUIGlobals.SMALL_W ) ) ;
+    add( new BibtexSingleField( "publisher", true, GUIGlobals.MEDIUM_W  ) ) ;
+    add( new BibtexSingleField( "school", true, GUIGlobals.MEDIUM_W  ) ) ;
+    add( new BibtexSingleField( "series", true, GUIGlobals.SMALL_W  ) ) ;
+    add( new BibtexSingleField( "title", true, 400 ) ) ;
+    add( new BibtexSingleField( "type", true, GUIGlobals.SMALL_W  ) ) ;
+    add( new BibtexSingleField( "volume", true, GUIGlobals.SMALL_W, 60  ) ) ;
+    add( new BibtexSingleField( "year", true, GUIGlobals.SMALL_W, 60 ) ) ;
+
+    // some semi-standard fields
+    dummy = new BibtexSingleField( KEY_FIELD, true ) ;
+    dummy.setPrivate();
+    add( dummy ) ;
+
+    dummy = new BibtexSingleField( "doi", true, GUIGlobals.SMALL_W ) ;
+    dummy.setExtras("external");
+    add(dummy) ;
+    add( new BibtexSingleField( "eid", true, GUIGlobals.SMALL_W  ) ) ;
+
+    dummy = new BibtexSingleField( "date", true ) ;
+    dummy.setPrivate();
+    add( dummy ) ;
+
+
+    // additional fields ------------------------------------------------------
+    dummy =  new BibtexSingleField( "citeseercitationcount", false,
+                                                 GUIGlobals.SMALL_W, 75) ;
+    dummy.setAlternativeDisplayName("Popularity") ;
+    add(dummy) ;
+    add( new BibtexSingleField( "location", false ) ) ;
+    add( new BibtexSingleField( "abstract", false, GUIGlobals.LARGE_W, 400  ) ) ;
+
+    dummy =  new BibtexSingleField( "url", false, GUIGlobals.SMALL_W) ;
+    dummy.setExtras("external");
+    add(dummy) ;
+
+    dummy = new BibtexSingleField( "citeseerurl", false, GUIGlobals.SMALL_W ) ;
+    dummy.setExtras("external");
+    add(dummy) ;
+
+    dummy = new BibtexSingleField( "pdf", false, GUIGlobals.SMALL_W ) ;
+    dummy.setExtras("browseDoc");
+    add(dummy) ;
+
+    dummy = new BibtexSingleField( "ps", false, GUIGlobals.SMALL_W ) ;
+    dummy.setExtras("browseDocZip");
+    add(dummy) ;
+    add( new BibtexSingleField( "comment", false, GUIGlobals.MEDIUM_W  ) ) ;
+    add( new BibtexSingleField( "keywords", false, GUIGlobals.SMALL_W  ) ) ;
+    //FIELD_EXTRAS.put("keywords", "selector");
+
+    add( new BibtexSingleField( "search", false, 75 ) ) ;
+
+
+    // some internal fields ----------------------------------------------
+    dummy = new BibtexSingleField( GUIGlobals.NUMBER_COL, false, 32  ) ;
+    dummy.setPrivate() ;
+    dummy.setWriteable(false);
+    dummy.setDisplayable(false);
+    add( dummy ) ;
+
+    dummy = new BibtexSingleField( OWNER, false, GUIGlobals.SMALL_W ) ;
+    dummy.setPrivate();
+    add(dummy) ;
+
+    dummy = new BibtexSingleField( TIMESTAMP, false, GUIGlobals.SMALL_W ) ;
+    dummy.setExtras("datepicker");
+    dummy.setPrivate();
+    add(dummy) ;
+
+    dummy =  new BibtexSingleField( ENTRYTYPE, false, 75 ) ;
+    dummy.setPrivate();
+    add(dummy) ;
+
+    dummy =  new BibtexSingleField( SEARCH, false) ;
+    dummy.setPrivate();
+    dummy.setWriteable(false);
+    dummy.setDisplayable(false);
+    add(dummy) ;
+
+    dummy =  new BibtexSingleField( GROUPSEARCH, false) ;
+    dummy.setPrivate();
+    dummy.setWriteable(false);
+    dummy.setDisplayable(false);
+    add(dummy) ;
+
+    dummy =  new BibtexSingleField( MARKED, false) ;
+    dummy.setPrivate();
+    dummy.setWriteable(false);
+    dummy.setDisplayable(false);
+    add(dummy) ;
+
+     // read external field definitions
+    readXML( Globals.additionalFields ) ;
+
+    // collect all public fields for the PUBLIC_FIELDS array
+    Vector pFields = new Vector( fieldSet.size()) ;
+    for(Iterator iter = fieldSet.values().iterator(); iter.hasNext() ; )
+    {
+      BibtexSingleField sField = (BibtexSingleField) iter.next() ;
+      if (sField.isPublic() )
+      {
+        pFields.add( sField.getFieldName() );
+        // or export the complet BibtexSingleField ?
+        // BibtexSingleField.toString() { return fieldname ; }
+      }
+    }
+
+    PUBLIC_FIELDS = pFields.toArray() ;
+    // sort the entries
+    java.util.Arrays.sort( PUBLIC_FIELDS );
+  }
+
+
+  /** insert a field into the internal list */
+  private void add( BibtexSingleField field )
+  {
+    // field == null check
+    String key = field.name ;
+    fieldSet.put( key, field ) ;
+  }
+
+  /** read a xml definiton file and put only NEW fields into the field list */
+  private void readXML( String resName )
+  {
+    TXMLReader reader = new TXMLReader(resName) ;
+    if (reader.isReady() )
+    {
+      // get a list of all fields
+      NodeList fieldNodes = reader.getNodes("field") ;
+
+      int tagsCount = fieldNodes.getLength() ;
+      for (int t = 0 ; t < tagsCount ; t++)
+      {
+        Element entry = (Element) fieldNodes.item(t) ;
+        String fName = reader.readStringAttribute(entry, "name", null) ;
+        if (fName != null)  // something found ?
+        {
+          fName = fName.toLowerCase() ;
+          BibtexSingleField dummy = (BibtexSingleField) fieldSet.get( fName ) ;
+          if (dummy == null)  // unknown field
+          {
+            dummy = new BibtexSingleField(reader, entry) ;
+            fieldSet.put(fName, dummy) ;
+          }
+        }
+      }
+    }
+  }
+
+  // --------------------------------------------------------------------------
+  //  the "static area"
+  // --------------------------------------------------------------------------
+  private static final BibtexSingleField getField( String name )
+  {
+    if (name != null)
+    {
+      return (BibtexSingleField) runtime.fieldSet.get(name.toLowerCase()) ;
+    }
+
+    return null ;
+  }
+
+  public static String getFieldExtras( String name )
+  {
+    BibtexSingleField sField = getField( name ) ;
+    if (sField != null)
+    {
+      return sField.getExtras() ;
+    }
+    return null ;
+  }
+
+  public static double getFieldWeight( String name )
+  {
+    BibtexSingleField sField = getField( name ) ;
+    if (sField != null)
+    {
+      return sField.getWeight() ;
+    }
+    return GUIGlobals.DEFAULT_FIELD_WEIGHT ;
+  }
+
+  public static void setFieldWeight( String fieldName, double weight )
+  {
+    BibtexSingleField sField = getField( fieldName ) ;
+    if (sField != null)
+    {
+      sField.setWeight( weight ) ;
+    }
+  }
+
+  public static int getFieldLength( String name )
+  {
+    BibtexSingleField sField = getField( name ) ;
+    if (sField != null)
+    {
+      return sField.getLength() ;
+    }
+    return GUIGlobals.DEFAULT_FIELD_LENGTH ;
+  }
+
+  // returns an alternative name for the given fieldname
+  public static String getFieldDisplayName( String fieldName )
+  {
+    BibtexSingleField sField = getField( fieldName ) ;
+    if (sField != null)
+    {
+      return sField.getAlternativeDisplayName() ;
+    }
+    return null ;
+  }
+
+  public static boolean isWriteableField( String field )
+  {
+    BibtexSingleField sField = getField( field ) ;
+    if (sField != null)
+    {
+      return sField.isWriteable() ;
+    }
+    return true ;
+  }
+
+  public static boolean isDisplayableField( String field )
+  {
+    BibtexSingleField sField = getField( field ) ;
+    if (sField != null)
+    {
+      return sField.isDisplayable() ;
+    }
+    return true ;
+  }
+
+  /**
+   * Returns true if the given field is a standard Bibtex field.
+   *
+   * @param field a <code>String</code> value
+   * @return a <code>boolean</code> value
+   */
+  public static boolean isStandardField( String field )
+  {
+    BibtexSingleField sField = getField( field ) ;
+    if (sField != null)
+    {
+      return sField.isStandard() ;
+    }
+    return false ;
+  }
+
+  /** returns an string-array with all fieldnames */
+  public static Object[] getAllFieldNames()
+  {
+    return runtime.PUBLIC_FIELDS ;
+  }
+
+  /** returns the fieldname of the entry at index t */
+  public static String getFieldName( int t )
+  {
+    return  (String) runtime.PUBLIC_FIELDS[t] ;
+  }
+
+  /** returns the number of available fields */
+  public static int numberOfPublicFields()
+  {
+    return runtime.PUBLIC_FIELDS.length ;
+  }
+
+  /*
+     public static int getPreferredFieldLength(String name) {
+     int l = DEFAULT_FIELD_LENGTH;
+     Object o = fieldLength.get(name.toLowerCase());
+     if (o != null)
+     l = ((Integer)o).intValue();
+     return l;
+     }*/
+
+
+  // --------------------------------------------------------------------------
+  // a container class for all properties of a bibtex-field
+  // --------------------------------------------------------------------------
+  private class BibtexSingleField
+  {
+    private static final int
+        STANDARD       = 0x01,  // it is a standard bibtex-field
+        PRIVATE        = 0x02,  // internal use, e.g. owner, timestamp
+        DISPLAYABLE    = 0x04,  // These fields cannot be shown inside the source editor panel
+        WRITEABLE      = 0x08 ; // These fields will not be saved to the .bib file.
+
+    // the fieldname
+    private String name ;
+
+    // contains the standard, privat, displayable, writable infos
+    // default is: not standard, public, displayable and writable
+    private int flag = DISPLAYABLE | WRITEABLE ;
+
+    private int length = GUIGlobals.DEFAULT_FIELD_LENGTH ;
+    private double weight = GUIGlobals.DEFAULT_FIELD_WEIGHT ;
+
+    // a alternative displayname, e.g. used for
+    // "citeseercitationcount"="Popularity"
+    private String alternativeDisplayName = null ;
+
+    // the extras data
+    // fieldExtras contains mappings to tell the EntryEditor to add a specific
+    // function to this field, for instance a "browse" button for the "pdf" field.
+    private String extras = null ;
+
+    // a comma separated list of alternative bibtex-fieldnames, e.g.
+    // "LCCN" is the same like "lib-congress"
+    // private String otherNames = null ;
+
+    // a Hashmap for a lot of additional "not standard" properties
+    // todo: add the handling in a key=value manner
+    // private HashMap props = new HashMap() ;
+
+    // some constructors ;-)
+    public BibtexSingleField( String fieldName )
+    {
+      name = fieldName ;
+    }
+
+    public BibtexSingleField( String fieldName, boolean pStandard )
+    {
+      name = fieldName ;
+      setFlag( pStandard, STANDARD) ;
+    }
+
+    public BibtexSingleField( String fieldName, boolean pStandard, double pWeight)
+    {
+      name = fieldName ;
+      setFlag( pStandard, STANDARD) ;
+      weight = pWeight ;
+    }
+
+    public BibtexSingleField( String fieldName, boolean pStandard, int pLength)
+    {
+      name = fieldName ;
+      setFlag( pStandard, STANDARD) ;
+      length = pLength ;
+    }
+
+    public BibtexSingleField( String fieldName, boolean pStandard,
+                              double pWeight, int pLength)
+    {
+      name = fieldName ;
+      setFlag( pStandard, STANDARD) ;
+      weight = pWeight ;
+      length = pLength ;
+    }
+
+    /** the constructor reads all neccessary data from the xml file */
+    public BibtexSingleField( TXMLReader reader, Element node)
+    {
+      // default is: not standard, public, displayable and writable
+      flag = DISPLAYABLE | WRITEABLE ;
+
+      name = reader.readStringAttribute(node, "name", "field") ;
+      name = name.toLowerCase() ;
+
+      // read the weight
+      String wStr = reader.readStringAttribute(node, "weight", null) ;
+      if (wStr != null)
+      {
+        int hCode = wStr.toLowerCase().hashCode() ;
+        if (hCode == "small".hashCode())
+        {
+          weight = GUIGlobals.SMALL_W ;
+        }
+        else if (hCode == "medium".hashCode())
+        {
+          weight = GUIGlobals.MEDIUM_W ;
+        }
+        else if (hCode == "large".hashCode())
+        {
+          weight = GUIGlobals.LARGE_W ;
+        }
+        else // try to convert to a double value
+        {
+          try
+          {
+            weight = Double.parseDouble(wStr) ;
+            if ((weight < 0.0) || (weight > GUIGlobals.MAX_FIELD_WEIGHT))
+            {
+              weight = GUIGlobals.DEFAULT_FIELD_WEIGHT ;
+            }
+          }
+          catch (Exception e)
+          {
+            weight = GUIGlobals.DEFAULT_FIELD_WEIGHT ;
+          }
+        }
+      }
+      length = reader.readIntegerAttribute( node, "length", GUIGlobals.DEFAULT_FIELD_LENGTH ) ;
+
+      extras = reader.readStringAttribute(node, "extras", null) ;
+    }
+
+    // -----------------------------------------------------------------------
+    // -----------------------------------------------------------------------
+
+    private void setFlag( boolean onOff, int flagID)
+    {
+      if (onOff)  // set the flag
+      {
+        flag = flag | flagID ;
+      }
+      else // unset the flag,
+      {
+        flag = flag & ( 0xff ^ flagID ) ;
+      }
+    }
+
+    private boolean isSet( int flagID )
+    {
+      if ( (flag & flagID) == flagID)
+        return true ;
+
+      return false ;
+    }
+
+    // -----------------------------------------------------------------------
+    public boolean isStandard()
+    {
+      return isSet( STANDARD ) ;
+    }
+
+    public void setPrivate()
+    {
+      flag = flag | PRIVATE ;
+    }
+
+    public boolean isPrivate()
+    {
+      return isSet( PRIVATE ) ;
+    }
+
+    public void setPublic()
+    {
+      setFlag( false, PRIVATE ) ;
+    }
+
+    public boolean isPublic()
+    {
+      return !isSet( PRIVATE ) ;
+    }
+
+    public void setDisplayable(boolean value)
+    {
+      setFlag( value, DISPLAYABLE ) ;
+    }
+
+    public boolean isDisplayable()
+    {
+      return isSet(DISPLAYABLE) ;
+    }
+
+
+    public void setWriteable(boolean value)
+    {
+      setFlag( value, WRITEABLE ) ;
+    }
+
+    public boolean isWriteable()
+    {
+      return isSet( WRITEABLE ) ;
+    }
+
+    // -----------------------------------------------------------------------
+    public void setAlternativeDisplayName( String aName)
+    {
+      alternativeDisplayName = aName ;
+    }
+
+    public String getAlternativeDisplayName()
+    {
+      return alternativeDisplayName ;
+    }
+    // -----------------------------------------------------------------------
+
+    public void setExtras( String pExtras)
+    {
+      extras = pExtras ;
+    }
+
+    // fieldExtras contains mappings to tell the EntryEditor to add a specific
+    // function to this field, for instance a "browse" button for the "pdf" field.
+    public String getExtras()
+    {
+      return extras ;
+    }
+    // -----------------------------------------------------------------------
+
+    public void setWeight( double value )
+    {
+      this.weight = value ;
+    }
+
+    public double getWeight()
+    {
+      return this.weight ;
+    }
+
+    // -----------------------------------------------------------------------
+    public int getLength()
+    {
+      return this.length ;
+    }
+
+    // -----------------------------------------------------------------------
+
+    public String getFieldName()
+    {
+      return name ;
+    }
+
+  }
+}
diff --git a/src/java/net/sf/jabref/BrowseAction.java b/src/java/net/sf/jabref/BrowseAction.java
new file mode 100644
index 0000000..24c36ad
--- /dev/null
+++ b/src/java/net/sf/jabref/BrowseAction.java
@@ -0,0 +1,39 @@
+package net.sf.jabref;
+
+import javax.swing.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+
+/**
+ * Action used to produce a "Browse" button for one of the text fields.
+ */
+public class BrowseAction extends AbstractAction implements ActionListener {
+
+    JFrame frame;
+    JTextField comp;
+    boolean dir;
+
+    public BrowseAction(JFrame frame, JTextField tc, boolean dir) {
+        super(Globals.lang("Browse"));
+        this.frame = frame;
+        this.dir = dir;
+        comp = tc;
+
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        String chosen = null;
+        if (dir)
+            chosen = Globals.getNewDir(frame, Globals.prefs, new File(comp.getText()), Globals.NONE,
+                    JFileChooser.OPEN_DIALOG, false);
+        else
+            chosen = Globals.getNewFile(frame, Globals.prefs, new File(comp.getText()), Globals.NONE,
+                    JFileChooser.OPEN_DIALOG, false);
+        if (chosen != null) {
+            File newFile = new File(chosen);
+            comp.setText(newFile.getPath());
+        }
+    }
+
+}
diff --git a/src/java/net/sf/jabref/DuplicateResolverDialog.java b/src/java/net/sf/jabref/DuplicateResolverDialog.java
index b57ba0f..6f0f55f 100644
--- a/src/java/net/sf/jabref/DuplicateResolverDialog.java
+++ b/src/java/net/sf/jabref/DuplicateResolverDialog.java
@@ -22,31 +22,31 @@ import java.awt.*;
 public class DuplicateResolverDialog extends JDialog {
 
     public static final int
-	NOT_CHOSEN = -1,
-	KEEP_BOTH = 0,
-	KEEP_UPPER = 1,
-	KEEP_LOWER = 2,
-	BREAK      = 5,  // close
-	DUPLICATE_SEARCH = 1,
-	IMPORT_CHECK = 2,
+        NOT_CHOSEN = -1,
+        KEEP_BOTH = 0,
+        KEEP_UPPER = 1,
+        KEEP_LOWER = 2,
+        BREAK      = 5,  // close
+        DUPLICATE_SEARCH = 1,
+        IMPORT_CHECK = 2,
     INSPECTION = 3;
 
     final Dimension DIM = new Dimension(650, 600);
-    
+
     PreviewPanel p1, p2;
     JTextArea ta1, ta2;
     JTabbedPane tabbed = new JTabbedPane();
     GridBagLayout gbl = new GridBagLayout();
     GridBagConstraints con = new GridBagConstraints();
     JButton first, second, both,
-	cancel = new JButton(Globals.lang("Cancel"));
+        cancel = new JButton(Globals.lang("Cancel"));
     JPanel options = new JPanel(),
-	main = new JPanel(),
-	source = new JPanel();
+        main = new JPanel(),
+        source = new JPanel();
     int status = NOT_CHOSEN;
     boolean block = true;
     TitleLabel lab;
-    
+
   public DuplicateResolverDialog(JabRefFrame frame, BibtexEntry one, BibtexEntry two, int type) {
     super(frame, Globals.lang("Possible duplicate entries"), true);
 
@@ -63,21 +63,21 @@ public class DuplicateResolverDialog extends JDialog {
               break;
           default:
               first = new JButton(Globals.lang("Import and remove old entry"));
-	          second = new JButton(Globals.lang("Do not import entry"));
-	          both = new JButton(Globals.lang("Import and keep old entry"));
+                  second = new JButton(Globals.lang("Do not import entry"));
+                  both = new JButton(Globals.lang("Import and keep old entry"));
       }
 
     String layout = Globals.prefs.get("preview0");
-    p1 = new PreviewPanel(one, layout);
-    p2 = new PreviewPanel(two, layout);
+    p1 = new PreviewPanel(one, new MetaData(), layout);
+    p2 = new PreviewPanel(two, new MetaData(), layout);
     ta1 = new JTextArea();
     ta2 = new JTextArea();
     ta1.setEditable(false);
     ta2.setEditable(false);
-    
-    //ta1.setPreferredSize(dim); 
+
+    //ta1.setPreferredSize(dim);
     //ta2.setPreferredSize(dim);
-    
+
     setSourceView(one, two);
 
     //getContentPane().setLayout();
@@ -89,7 +89,7 @@ public class DuplicateResolverDialog extends JDialog {
     con.weightx = 1;
     con.weighty = 0;
     lab = new TitleLabel(Globals.lang((type==DUPLICATE_SEARCH)?"":
-				  "Entry in current database"));
+                                  "Entry in current database"));
     gbl.setConstraints(lab, con);
     main.add(lab);
     con.weighty = 1;
@@ -100,7 +100,7 @@ public class DuplicateResolverDialog extends JDialog {
     con.weighty = 0;
     con.insets = new Insets(10,10,0,10);
     lab = new TitleLabel(Globals.lang((type==DUPLICATE_SEARCH)?"":
-				  "Entry in import"));
+                                  "Entry in import"));
     gbl.setConstraints(lab, con);
     main.add(lab);
     con.weighty = 1;
@@ -159,16 +159,16 @@ public class DuplicateResolverDialog extends JDialog {
     getContentPane().add(tabbed, BorderLayout.CENTER);
     getContentPane().add(options, BorderLayout.SOUTH);
     pack();
-    
-    
+
+
     if (getHeight() > DIM.height) {
         setSize(new Dimension(getWidth(), DIM.height));
     }
     if (getWidth() > DIM.width) {
         setSize(new Dimension(DIM.width, getHeight()));
     }
-    
-    
+
+
     both.requestFocus();
     Util.placeDialog(this, frame);
   }
@@ -208,8 +208,8 @@ public boolean isBlocking() {
 
   public static int resolveDuplicate(JabRefFrame frame, BibtexEntry one, BibtexEntry two) {
     DuplicateResolverDialog drd = new DuplicateResolverDialog(frame, one, two,
-							      DUPLICATE_SEARCH);
-    drd.show();
+                                                              DUPLICATE_SEARCH);
+    drd.setVisible(true); // drd.show(); -> deprecated since 1.5
     return drd.getSelected();
   }
 
diff --git a/src/java/net/sf/jabref/DuplicateSearch.java b/src/java/net/sf/jabref/DuplicateSearch.java
index 01e2f27..4e6d918 100644
--- a/src/java/net/sf/jabref/DuplicateSearch.java
+++ b/src/java/net/sf/jabref/DuplicateSearch.java
@@ -102,8 +102,8 @@ public void run() {
       {
 
         drd = new DuplicateResolverDialog( panel.frame, be[0], be[1],
-					   DuplicateResolverDialog.DUPLICATE_SEARCH) ;
-        drd.show() ;
+                                           DuplicateResolverDialog.DUPLICATE_SEARCH) ;
+        drd.setVisible(true); // drd.show(); -> deprecated since 1.5
 
         duplicateCounter++ ;
         int answer = drd.getSelected() ;
diff --git a/src/java/net/sf/jabref/EntryEditor.java b/src/java/net/sf/jabref/EntryEditor.java
index ea5d954..fef7f07 100644
--- a/src/java/net/sf/jabref/EntryEditor.java
+++ b/src/java/net/sf/jabref/EntryEditor.java
@@ -45,9 +45,9 @@ import net.sf.jabref.labelPattern.LabelPatternUtil;
 import net.sf.jabref.undo.*;
 import net.sf.jabref.external.ExternalFilePanel;
 import net.sf.jabref.journals.JournalAbbreviations;
-import net.sf.jabref.gui.MainTableSelectionListener;
-
-import java.text.*;
+import com.michaelbaranov.microba.calendar.*;
+import com.michaelbaranov.microba.common.*;
+import net.sf.jabref.gui.date.*;
 
 public class EntryEditor extends JPanel implements VetoableChangeListener {
   /*
@@ -298,10 +298,10 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
 
 
   /**
-   * getExtra checks the field name against GUIGlobals.FIELD_EXTRAS. If the name
-   * has an entry, the proper component to be shown is created and returned.
-   * Otherwise, null is returned. In addition, e.g. listeners can be added to
-   * the field editor, even if no component is returned.
+   * getExtra checks the field name against BibtexFields.getFieldExtras(name).
+   * If the name has an entry, the proper component to be shown is created and
+   * returned. Otherwise, null is returned. In addition, e.g. listeners can be
+   * added to the field editor, even if no component is returned.
    *
    * @param string
    *          Field name
@@ -309,27 +309,35 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
    */
   public JComponent getExtra(String string, FieldEditor editor) {
     final FieldEditor ed = editor;
-    Object o = GUIGlobals.FIELD_EXTRAS.get(string);
+
+    // fieldName and parameter string identically ????
     final String fieldName = editor.getFieldName();
 
-    //if (o == null)
-    //  return null;
-    String s = (String) o;
-    //addedByMoritz
-      if (fieldName.equals(Globals.prefs.get("timeStampField"))){
-    //if (fieldName.equals("dateadded")){
+    String s = BibtexFields.getFieldExtras( string ) ;
+
+   // timestamp or a other field with datepicker command
+   if ( (fieldName.equals( Globals.prefs.get("timeStampField"))) ||
+           ((s != null) && s.equals("datepicker"))  )
+   {
+         // double click AND datefield => insert the current date (today)
         ((JTextArea) ed).addMouseListener(new MouseAdapter(){
             public void mouseClicked(MouseEvent e){
-                if(e.getClickCount()==2){
+                if(e.getClickCount()==2)  // double click
+                {
                     String date = Util.easyDateFormat();
                     ed.setText(date);
-                    //DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
-                    //ed.setText(df.format(new Date()));
                 }
             }
         });
+
+        // insert a datepicker, if the extras field contains this command
+        if ((s != null) && s.equals("datepicker"))
+        {
+          DatePickerButton datePicker = new DatePickerButton( ed ) ;
+          return datePicker.getDatePicker() ;
+        }
     }
-    //END_OF addedByMoritz
+
     if ((s != null) && s.equals("external")) {
 
       // Add external viewer listener for "pdf" and "url" fields.
@@ -354,7 +362,8 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
         return controls;
     }
     else if (panel.metaData.getData(Globals.SELECTOR_META_PREFIX
-          + editor.getFieldName()) != null) {
+          + editor.getFieldName()) != null)
+    {
       FieldContentSelector ws = new FieldContentSelector(frame, panel, frame, editor,
               panel.metaData, storeFieldAction, false);
       contentSelectors.add(ws);
@@ -396,7 +405,7 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
         else
             off = new OpenFileFilter(new String[] { ext });
 
-        ExternalFilePanel pan = new ExternalFilePanel(frame, this, fieldName, off, ed);
+        ExternalFilePanel pan = new ExternalFilePanel(frame, panel.metaData(), this, fieldName, off, ed);
         return pan;
     }
     /*else if ((s != null) && s.equals("browsePs")) {
@@ -690,7 +699,7 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
       Object[] fields = entry.getAllFields();
 
       for (int i = 0; i < fields.length; i++) {
-        if (GUIGlobals.isDisplayableField(fields[i].toString())) {
+        if (BibtexFields.isDisplayableField(fields[i].toString())) {
           if (nu.getField(fields[i].toString()) == null) {
             compound.addEdit(new UndoableFieldChange(entry, fields[i].toString(),
                 entry.getField(fields[i].toString()), (Object) null));
@@ -1217,20 +1226,20 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
       try {
         // this updates the table automatically, on close, but not
         // within the tab
-        Object oldValue = entry.getField(GUIGlobals.KEY_FIELD);
+        Object oldValue = entry.getField(BibtexFields.KEY_FIELD);
 
         //entry = frame.labelMaker.applyRule(entry, panel.database) ;
         LabelPatternUtil.makeLabel(prefs.getKeyPattern(), panel.database, entry);
 
         // Store undo information:
         panel.undoManager.addEdit(new UndoableKeyChange(panel.database, entry.getId(),
-            (String) oldValue, (String) entry.getField(GUIGlobals.KEY_FIELD)));
+            (String) oldValue, (String) entry.getField(BibtexFields.KEY_FIELD)));
 
         // here we update the field
-        String bibtexKeyData = (String) entry.getField(Globals.KEY_FIELD);
+        String bibtexKeyData = (String) entry.getField(BibtexFields.KEY_FIELD);
 
         // set the field named for "bibtexkey"
-        setField(Globals.KEY_FIELD, bibtexKeyData);
+        setField(BibtexFields.KEY_FIELD, bibtexKeyData);
         updateSource();
         panel.markBaseChanged();
       } catch (Throwable t) {
@@ -1303,7 +1312,7 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
 
         // getSelectedText()
         try {
-          Util.openExternalViewer(link, tf.getFieldName(), prefs);
+          Util.openExternalViewer(panel.metaData(), link, tf.getFieldName());
         } catch (IOException ex) {
           System.err.println("Error opening file.");
         }
diff --git a/src/java/net/sf/jabref/EntryEditorTab.java b/src/java/net/sf/jabref/EntryEditorTab.java
index b89805c..23d0500 100644
--- a/src/java/net/sf/jabref/EntryEditorTab.java
+++ b/src/java/net/sf/jabref/EntryEditorTab.java
@@ -44,7 +44,7 @@ public class EntryEditorTab {
 
     public EntryEditorTab(List fields, EntryEditor parent, boolean addKeyField, String name) {
         if (fields != null)
-	        this.fields = (String[])fields.toArray(ARRAY);
+                this.fields = (String[])fields.toArray(ARRAY);
         else
             this.fields = new String[] {};
         this.parent = parent;
@@ -58,115 +58,116 @@ public class EntryEditorTab {
 
 
     private final void setupPanel(boolean addKeyField, String title) {
-	GridBagLayout gbl = new GridBagLayout();
-	GridBagConstraints con = new GridBagConstraints();
-	panel.setLayout(gbl);
-	double totalWeight = 0;
-	
-	//panel.setOpaque(true);
-	//panel.setBackground(java.awt.Color.white);
-
-	for (int i=0; i<fields.length; i++) {
-
-	    // Create the text area:
-	    FieldTextArea ta = new FieldTextArea(fields[i], null);//stringContent);
+        GridBagLayout gbl = new GridBagLayout();
+        GridBagConstraints con = new GridBagConstraints();
+        panel.setLayout(gbl);
+        double totalWeight = 0;
+
+        //panel.setOpaque(true);
+        //panel.setBackground(java.awt.Color.white);
+
+        for (int i=0; i<fields.length; i++) {
+
+            // Create the text area:
+            FieldTextArea ta = new FieldTextArea(fields[i], null);//stringContent);
         JComponent ex = parent.getExtra(fields[i], ta);
-	    // Attach listeners and key bindings:
-	    setupJTextComponent(ta);
-	    ta.addFocusListener(new FieldListener(ta));
+            // Attach listeners and key bindings:
+            setupJTextComponent(ta);
+            ta.addFocusListener(new FieldListener(ta));
 
-	    // Store the editor for later reference:
-	    editors.put(fields[i], ta);
+            // Store the editor for later reference:
+            editors.put(fields[i], ta);
             if (i == 0)
                 activeField = ta;
-            
-	    // The label for this field:
-	    con.insets = new Insets(5, 5, 0, 0);
-	    con.anchor = GridBagConstraints.WEST;
-	    con.fill = GridBagConstraints.BOTH;
-	    con.gridwidth = 1;
-	    con.weightx = 0;
-	    con.weighty = 0;
-	    con.anchor = GridBagConstraints.NORTH;
-	    con.fill = GridBagConstraints.BOTH;
-	    gbl.setConstraints(ta.getLabel(), con);
-	    panel.add(ta.getLabel());
-
-	    // The field itself:
-	    con.fill = GridBagConstraints.BOTH;
-	    con.weightx = 1;
-	    con.weighty = GUIGlobals.getFieldWeight(fields[i]);
-	    totalWeight += con.weighty;
-	    // The gridwidth depends on whether we will add an extra component to the right:
-	    if (ex != null)
-		con.gridwidth = 1;
-	    else
-		con.gridwidth = GridBagConstraints.REMAINDER;
-	    gbl.setConstraints(ta.getPane(), con);
-	    panel.add(ta.getPane());
-	    
-	    // Possibly an extra component:
-	    if (ex != null) {
-		con.gridwidth = GridBagConstraints.REMAINDER;
-		con.anchor = GridBagConstraints.NORTH;
-		con.fill = GridBagConstraints.HORIZONTAL;
-		con.weightx = 0;
-		gbl.setConstraints(ex, con);
-		panel.add(ex);
-	    }
+
+            // The label for this field:
+            con.insets = new Insets(5, 5, 0, 0);
+            con.anchor = GridBagConstraints.WEST;
+            con.fill = GridBagConstraints.BOTH;
+            con.gridwidth = 1;
+            con.weightx = 0;
+            con.weighty = 0;
+            con.anchor = GridBagConstraints.NORTH;
+            con.fill = GridBagConstraints.BOTH;
+            gbl.setConstraints(ta.getLabel(), con);
+            panel.add(ta.getLabel());
+
+            // The field itself:
+            con.fill = GridBagConstraints.BOTH;
+            con.weightx = 1;
+            con.weighty = BibtexFields.getFieldWeight(fields[i]);
+            totalWeight += con.weighty;
+            // The gridwidth depends on whether we will add an extra component to the right:
+            if (ex != null)
+                con.gridwidth = 1;
+            else
+                con.gridwidth = GridBagConstraints.REMAINDER;
+            gbl.setConstraints(ta.getPane(), con);
+            panel.add(ta.getPane());
+
+            // Possibly an extra component:
+            if (ex != null) {
+                con.gridwidth = GridBagConstraints.REMAINDER;
+                con.anchor = GridBagConstraints.NORTH;
+                con.fill = GridBagConstraints.HORIZONTAL;
+                con.weightx = 0;
+                gbl.setConstraints(ex, con);
+                panel.add(ex);
+            }
         panel.setName(title);
-	}
-
-	// Add the edit field for Bibtex-key.
-	if (addKeyField) {
-	    con.insets.top += 25;
-	    con.insets.bottom = 10;
-	    con.gridwidth = 1;
-	    con.weighty = 0;
-	    con.weightx = 0;
-	    con.fill = GridBagConstraints.HORIZONTAL;
-	    con.anchor = GridBagConstraints.SOUTHWEST;
-	    FieldTextField tf = new FieldTextField(Globals.KEY_FIELD, (String) parent.getEntry().getField(Globals.KEY_FIELD), true);
+        }
+
+        // Add the edit field for Bibtex-key.
+        if (addKeyField) {
+            con.insets.top += 25;
+            con.insets.bottom = 10;
+            con.gridwidth = 1;
+            con.weighty = 0;
+            con.weightx = 0;
+            con.fill = GridBagConstraints.HORIZONTAL;
+            con.anchor = GridBagConstraints.SOUTHWEST;
+            FieldTextField tf = new FieldTextField(BibtexFields.KEY_FIELD,
+                  (String) parent.getEntry().getField(BibtexFields.KEY_FIELD), true);
         editors.put("bibtexkey", tf);
 
         // If the key field is the only field, we should have only one editor, and this one should be set
         // as active initially:
         if (editors.size() == 1)
             activeField = tf;
-        
-	    gbl.setConstraints(tf.getLabel(), con);
-	    panel.add(tf.getLabel());
-	    con.gridwidth = GridBagConstraints.REMAINDER;
-	    con.weightx = 1;	    
-	    setupJTextComponent(tf);
-	    tf.addFocusListener(new FieldListener(tf));
-	    gbl.setConstraints(tf, con);
-	    panel.add(tf);
-	}
+
+            gbl.setConstraints(tf.getLabel(), con);
+            panel.add(tf.getLabel());
+            con.gridwidth = GridBagConstraints.REMAINDER;
+            con.weightx = 1;
+            setupJTextComponent(tf);
+            tf.addFocusListener(new FieldListener(tf));
+            gbl.setConstraints(tf, con);
+            panel.add(tf);
+        }
 
 
     }
 
 
     public void setActive(FieldEditor c) {
-	activeField = c;
-	//System.out.println(c.toString());
+        activeField = c;
+        //System.out.println(c.toString());
     }
-    
+
     public FieldEditor getActive() {
-	return activeField;
+        return activeField;
     }
 
     public List getFields() {
-	return java.util.Arrays.asList(fields);
+        return java.util.Arrays.asList(fields);
     }
 
     public void activate() {
-	if (activeField != null)
-	    activeField.requestFocus();
+        if (activeField != null)
+            activeField.requestFocus();
 
 
-	//System.out.println("Activate, hurra");
+        //System.out.println("Activate, hurra");
     }
 
     public void updateAll() {
@@ -179,91 +180,91 @@ public class EntryEditorTab {
     }
 
     public void setEntry(BibtexEntry entry) {
-	for (Iterator i=editors.keySet().iterator(); i.hasNext();) {
-	    String field = (String)i.next();
-	    FieldEditor ed = (FieldEditor)editors.get(field);
-	    Object content = entry.getField(ed.getFieldName());
-	    ed.setText((content == null) ? "" : content.toString());
-	}
+        for (Iterator i=editors.keySet().iterator(); i.hasNext();) {
+            String field = (String)i.next();
+            FieldEditor ed = (FieldEditor)editors.get(field);
+            Object content = entry.getField(ed.getFieldName());
+            ed.setText((content == null) ? "" : content.toString());
+        }
     }
 
     public boolean updateField(String field, String content) {
-	if (!editors.containsKey(field))
-	    return false;
-	FieldEditor ed = (FieldEditor)editors.get(field);
-	ed.setText(content);
-	return true;
+        if (!editors.containsKey(field))
+            return false;
+        FieldEditor ed = (FieldEditor)editors.get(field);
+        ed.setText(content);
+        return true;
     }
 
     public void validateAllFields() {
-	for (Iterator i=editors.keySet().iterator(); i.hasNext();) {
-	    String field = (String)i.next();
-	    FieldEditor ed = (FieldEditor)editors.get(field);
+        for (Iterator i=editors.keySet().iterator(); i.hasNext();) {
+            String field = (String)i.next();
+            FieldEditor ed = (FieldEditor)editors.get(field);
         if (((Component)ed).hasFocus())
             ed.setBackground(GUIGlobals.activeEditor);
         else
-	        ed.setBackground(GUIGlobals.validFieldBackground);
-	}
+                ed.setBackground(GUIGlobals.validFieldBackground);
+        }
     }
 
     public void setEnabled(boolean enabled) {
-	for (Iterator i=editors.keySet().iterator(); i.hasNext();) {
-	    String field = (String)i.next();
-	    FieldEditor ed = (FieldEditor)editors.get(field);
-	    ed.setEnabled(enabled);
-	}
+        for (Iterator i=editors.keySet().iterator(); i.hasNext();) {
+            String field = (String)i.next();
+            FieldEditor ed = (FieldEditor)editors.get(field);
+            ed.setEnabled(enabled);
+        }
     }
 
     public Component getPane() {
 
-	return panel;
+        return panel;
     }
 
     public void setupJTextComponent(JTextComponent ta) {
-	// Activate autocompletion if it should be used for this field.
-	
-	// Set up key bindings and focus listener for the FieldEditor.
-	InputMap im = ta.getInputMap(JComponent.WHEN_FOCUSED);
-	ActionMap am = ta.getActionMap();
+        // Activate autocompletion if it should be used for this field.
+
+        // Set up key bindings and focus listener for the FieldEditor.
+        InputMap im = ta.getInputMap(JComponent.WHEN_FOCUSED);
+        ActionMap am = ta.getActionMap();
 
         im.put(Globals.prefs.getKey("Entry editor, previous entry"), "prev");
         am.put("prev", parent.prevEntryAction);
         im.put(Globals.prefs.getKey("Entry editor, next entry"), "next");
         am.put("next", parent.nextEntryAction);
-    
-	im.put(Globals.prefs.getKey("Entry editor, store field"), "store");
-	am.put("store", parent.storeFieldAction);
-	im.put(Globals.prefs.getKey("Entry editor, next panel"), "right");
+
+        im.put(Globals.prefs.getKey("Entry editor, store field"), "store");
+        am.put("store", parent.storeFieldAction);
+        im.put(Globals.prefs.getKey("Entry editor, next panel"), "right");
         im.put(Globals.prefs.getKey("Entry editor, next panel 2"), "right");
-	am.put("left", parent.switchLeftAction);
-	im.put(Globals.prefs.getKey("Entry editor, previous panel"), "left");
+        am.put("left", parent.switchLeftAction);
+        im.put(Globals.prefs.getKey("Entry editor, previous panel"), "left");
         im.put(Globals.prefs.getKey("Entry editor, previous panel 2"), "left");
-	am.put("right", parent.switchRightAction);
-	im.put(Globals.prefs.getKey("Help"), "help");
-	am.put("help", parent.helpAction);
-	im.put(Globals.prefs.getKey("Save database"), "save");
-	am.put("save", parent.saveDatabaseAction);
-	im.put(Globals.prefs.getKey("Next tab"), "nexttab");
+        am.put("right", parent.switchRightAction);
+        im.put(Globals.prefs.getKey("Help"), "help");
+        am.put("help", parent.helpAction);
+        im.put(Globals.prefs.getKey("Save database"), "save");
+        am.put("save", parent.saveDatabaseAction);
+        im.put(Globals.prefs.getKey("Next tab"), "nexttab");
     am.put("nexttab", parent.frame.nextTab);
     im.put(Globals.prefs.getKey("Previous tab"), "prevtab");
     am.put("prevtab", parent.frame.prevTab);
-        
-
-	try {
-	    HashSet keys =
-		new HashSet(ta.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
-	    keys.clear();
-	    keys.add(AWTKeyStroke.getAWTKeyStroke("pressed TAB"));
-	    ta.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, keys);
-	    keys =
-		new HashSet(ta.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
-	    keys.clear();
-	    keys.add(KeyStroke.getKeyStroke("shift pressed TAB"));
-	    ta.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, keys);
-	} catch (Throwable t) {
-	    System.err.println(t);
-	}
-	
+
+
+        try {
+            HashSet keys =
+                new HashSet(ta.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
+            keys.clear();
+            keys.add(AWTKeyStroke.getAWTKeyStroke("pressed TAB"));
+            ta.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, keys);
+            keys =
+                new HashSet(ta.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
+            keys.clear();
+            keys.add(KeyStroke.getKeyStroke("shift pressed TAB"));
+            ta.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, keys);
+        } catch (Throwable t) {
+            System.err.println(t);
+        }
+
     }
 
 
@@ -273,21 +274,21 @@ public class EntryEditorTab {
      */
     class FieldListener extends FocusAdapter {
 
-	FieldEditor fe;
+        FieldEditor fe;
+
+        public FieldListener(FieldEditor fe) {
+            this.fe = fe;
+        }
 
-	public FieldListener(FieldEditor fe) {
-	    this.fe = fe;
-	}
+        public void focusGained(FocusEvent e) {
+            setActive(fe);
+        }
 
-	public void focusGained(FocusEvent e) {
-	    setActive(fe);
-	}
-	
-	public void focusLost(FocusEvent e) {
-  	    if (!e.isTemporary())
-		parent.updateField(fe);
-	}
+        public void focusLost(FocusEvent e) {
+              if (!e.isTemporary())
+                parent.updateField(fe);
+        }
     }
-    
+
 }
 
diff --git a/src/java/net/sf/jabref/EntryEditorTabList.java b/src/java/net/sf/jabref/EntryEditorTabList.java
index a8e6116..92191ba 100644
--- a/src/java/net/sf/jabref/EntryEditorTabList.java
+++ b/src/java/net/sf/jabref/EntryEditorTabList.java
@@ -11,35 +11,47 @@ public final class EntryEditorTabList {
     private List names = null;
 
     public EntryEditorTabList() {
-	init();
+        init();
     }
 
     private void init() {
-	list = new ArrayList();
-	names = new ArrayList();
-	int i=0;
-	String name=null;
-	String[] fields=null;
-	while ((name=Globals.prefs.get(Globals.prefs.CUSTOM_TAB_NAME+i)) != null) {
-
-	    fields = Globals.prefs.get(Globals.prefs.CUSTOM_TAB_FIELDS+i).split(";");
-	    List entry = Arrays.asList(fields);
-	    names.add(name);
-	    list.add(entry);
-	    i++;
-	}
-	
+        list = new ArrayList();
+        names = new ArrayList();
+        int i = 0;
+        String name;
+        String[] fields;
+        if (Globals.prefs.hasKey(Globals.prefs.CUSTOM_TAB_NAME + 0)) {
+            // The user has modified from the default values:
+            while (Globals.prefs.hasKey(Globals.prefs.CUSTOM_TAB_NAME + i)) {
+                name = Globals.prefs.get(Globals.prefs.CUSTOM_TAB_NAME + i);
+                fields = Globals.prefs.get(Globals.prefs.CUSTOM_TAB_FIELDS + i).split(";");
+                List entry = Arrays.asList(fields);
+                names.add(name);
+                list.add(entry);
+                i++;
+            }
+        } else {
+            // Nothing set, so we use the default values:
+            while (Globals.prefs.get(Globals.prefs.CUSTOM_TAB_NAME + "_def"+i) != null) {
+                name = Globals.prefs.get(Globals.prefs.CUSTOM_TAB_NAME + "_def" + i);
+                fields = Globals.prefs.get(Globals.prefs.CUSTOM_TAB_FIELDS + "_def" + i).split(";");
+                List entry = Arrays.asList(fields);
+                names.add(name);
+                list.add(entry);
+                i++;
+            }
+        }
     }
 
     public int getTabCount() {
-	return list.size();
+        return list.size();
     }
 
     public String getTabName(int tab) {
-	return (String)names.get(tab);
+        return (String) names.get(tab);
     }
 
     public List getTabFields(int tab) {
-	return (List)list.get(tab);
+        return (List) list.get(tab);
     }
 }
diff --git a/src/java/net/sf/jabref/EntryTable.java b/src/java/net/sf/jabref/EntryTable.java
index b90389c..38c49a6 100644
--- a/src/java/net/sf/jabref/EntryTable.java
+++ b/src/java/net/sf/jabref/EntryTable.java
@@ -39,8 +39,6 @@ import javax.swing.event.*;
 import javax.swing.plaf.basic.BasicTableUI;
 import javax.swing.table.*;
 
-import net.sf.jabref.groups.EntryTableTransferHandler;
-
 public class EntryTable extends JTable {
 
     final int PREFERRED_WIDTH = 400, PREFERRED_HEIGHT = 30;
@@ -67,9 +65,9 @@ public class EntryTable extends JTable {
 
     private ListSelectionListener previewListener = null;
     private int activeRow = -1;
-    
+
     ListSelectionListener groupsHighlightListener;
-    
+
     public EntryTable(EntryTableModel tm_, BasePanel panel_, JabRefPreferences prefs_) {
         super(tm_);
         this.tableModel = tm_;
@@ -82,8 +80,8 @@ public class EntryTable extends JTable {
         // enable DnD
         setDragEnabled(true);
         // The following line is commented because EntryTableTransferHandler's
-	// constructor now only accepts MainTable which has replaced EntryTable.
-	// setTransferHandler(new EntryTableTransferHandler(this));
+    // constructor now only accepts MainTable which has replaced EntryTable.
+    // setTransferHandler(new EntryTableTransferHandler(this));
 
   //renderingHints = g2.getRenderingHints();
          //renderingHints.put(RenderingHints.KEY_ANTIALIASING,
@@ -157,7 +155,7 @@ public class EntryTable extends JTable {
               else prefs.putBoolean("priDescending",
                                     !prefs.getBoolean("priDescending"));
               tableModel.remap();
-              
+
             }
           }
         });
@@ -194,7 +192,7 @@ public class EntryTable extends JTable {
             }
         };
         getSelectionModel().addListSelectionListener(groupsHighlightListener);
-        
+
         // (to update entry editor or preview)
         setWidths();
         sp.getViewport().setBackground(Globals.prefs.getColor("tableBackground"));
@@ -226,12 +224,11 @@ public class EntryTable extends JTable {
     /**
      * Updates our Set containing the last row selection. Ckecks which rows were ADDED
      * to the selection, to see what new entry should be previewed.
-     * Returns the number of the row that should be considered active, or -1 if none.
      *
      * This method may have some potential for optimization.
      *
      * @param rows
-     * @return
+     * @return The number of the row that should be considered active, or -1 if none.
      */
     private int resolveNewSelection(int[] rows) {
         HashSet newSel = new HashSet();
@@ -546,7 +543,7 @@ public class EntryTable extends JTable {
               }
 
               try {
-                Util.openExternalViewer( (String) link, fieldName, prefs);
+                Util.openExternalViewer(panel.metaData, (String) link, fieldName);
               }
               catch (IOException ex) {
                 panel.output(Globals.lang("Error")+": "+ex.getMessage());
@@ -575,10 +572,10 @@ public class EntryTable extends JTable {
 
 
         if (!panel.coloringBySearchResults ||
-            tableModel.nonZeroField(row, Globals.SEARCH))
+            tableModel.nonZeroField(row, BibtexFields.SEARCH))
             score++;
         if (!panel.coloringByGroup ||
-            tableModel.nonZeroField(row, Globals.GROUPSEARCH))
+            tableModel.nonZeroField(row, BibtexFields.GROUPSEARCH))
             score+=2;
 
         // Now, a grayed out renderer is for entries with -1, and
diff --git a/src/java/net/sf/jabref/EntryTableModel.java b/src/java/net/sf/jabref/EntryTableModel.java
index ebf0026..bd7263a 100644
--- a/src/java/net/sf/jabref/EntryTableModel.java
+++ b/src/java/net/sf/jabref/EntryTableModel.java
@@ -105,17 +105,22 @@ public class EntryTableModel
     else if (getIconTypeForColumn(col) != null) {
       return "";
     }
-    else if(GUIGlobals.FIELD_DISPLAYS.get(columns[col - padleft]) != null) {
-        return((String) GUIGlobals.FIELD_DISPLAYS.get(columns[col - padleft]));
+    else // try to find an alternative fieldname (for display)
+    {
+       String disName = BibtexFields.getFieldDisplayName(columns[col - padleft]) ;
+       if ( disName != null)
+       {
+         return disName ;
+       }
     }
     return Util.nCase(columns[col - padleft]);
   }
 
-    public void showAllEntries() {
+  public void showAllEntries() {
     visibleRows = sorter.getEntryCount();
     }
 
-    public void setRowCount(int rows) {
+  public void setRowCount(int rows) {
     visibleRows = rows;
     }
 
@@ -164,10 +169,10 @@ public class EntryTableModel
         o = "" + (row + 1);
     }
 /*      if (!isComplete(row)) {
-      	//JLabel incomplete = new JLabel("" + (row + 1),GUIGlobals.incompleteLabel.getIcon(), JLabel.RIGHT);
+              //JLabel incomplete = new JLabel("" + (row + 1),GUIGlobals.incompleteLabel.getIcon(), JLabel.RIGHT);
         //JLabel incomplete = new JLabel("" + (row + 1));
         //incomplete.setToolTipText(Globals.lang("This entry is incomplete"));
-        //return incomplete;        
+        //return incomplete;
       } else
 */
 
@@ -231,8 +236,8 @@ public class EntryTableModel
             o = processed;
         } else
             o = processed;
-        
-            
+
+
     }*/
     return o;
   }
@@ -261,7 +266,7 @@ public class EntryTableModel
 
     BibtexEntryType type = (db.getEntryById(getIdForRow(row)))
         .getType();
-    if (columns[col - padleft].equals(GUIGlobals.KEY_FIELD)
+    if (columns[col - padleft].equals(BibtexFields.KEY_FIELD)
         || type.isRequired(columns[col - padleft])) {
       return REQUIRED;
     }
@@ -347,19 +352,19 @@ public class EntryTableModel
     // For testing MARKED feature. With this IF clause, the marked entries will only float to the top when
     // no sorting/grouping reordering is active.
     if  (!panel.sortingBySearchResults && !panel.sortingByCiteSeerResults && !panel.sortingByGroup) {
-        fields.add(Globals.MARKED);
+        fields.add(BibtexFields.MARKED);
         directions.add(Boolean.TRUE);
         binary.add(Boolean.FALSE);
     }
     if (panel.sortingByGroup) {
       // Group search has the highest priority if active.
-      fields.add(Globals.GROUPSEARCH);
+      fields.add(BibtexFields.GROUPSEARCH);
       directions.add(Boolean.TRUE);
         binary.add(Boolean.FALSE);
     }
     if (panel.sortingBySearchResults) {
       // Normal search has priority over regular sorting.
-      fields.add(Globals.SEARCH);
+      fields.add(BibtexFields.SEARCH);
       directions.add(Boolean.TRUE);
         binary.add(Boolean.FALSE);
     }
@@ -395,7 +400,7 @@ public class EntryTableModel
           // Loop down towards the highest ranking criterion, wrapping new sorters around the
           // ones we have:
           String field = (String)fields.get(piv);
-          if (field.equals(Globals.MARKED)) {
+          if (field.equals(BibtexFields.MARKED)) {
                 comp = new MarkedComparator(comp);
           }
           else
diff --git a/src/java/net/sf/jabref/ExternalTab.java b/src/java/net/sf/jabref/ExternalTab.java
index fc7b896..77bd0bc 100644
--- a/src/java/net/sf/jabref/ExternalTab.java
+++ b/src/java/net/sf/jabref/ExternalTab.java
@@ -2,12 +2,8 @@ package net.sf.jabref;
 
 import javax.swing.*;
 import java.awt.*;
-import java.awt.event.*;
-import java.util.Iterator;
-import java.io.File;
 
 import com.jgoodies.forms.layout.*;
-import com.jgoodies.forms.factories.*;
 import com.jgoodies.forms.builder.*;
 
 public class ExternalTab extends JPanel implements PrefsTab {
@@ -50,7 +46,7 @@ public class ExternalTab extends JPanel implements PrefsTab {
         JLabel lab = new JLabel(Globals.lang("Main PDF directory") + ":");
         builder.append(lab);
         builder.append(pdfDir);
-        browse = new BrowseAction(pdfDir, true);
+        browse = new BrowseAction(_frame, pdfDir, true);
         builder.append(new JButton(browse));
         builder.nextLine();
         builder.appendSeparator(Globals.lang("PS links"));
@@ -59,7 +55,7 @@ public class ExternalTab extends JPanel implements PrefsTab {
         lab = new JLabel(Globals.lang("Main PS directory") + ":");
         builder.append(lab);
         builder.append(psDir);
-        browse = new BrowseAction(psDir, true);
+        browse = new BrowseAction(_frame, psDir, true);
         builder.append(new JButton(browse));
         builder.nextLine();
         builder.appendSeparator(Globals.lang("External programs"));
@@ -70,7 +66,7 @@ public class ExternalTab extends JPanel implements PrefsTab {
         builder.append(pan);
         builder.append(lab);
         builder.append(pdf);
-        browse = new BrowseAction(pdf, false);
+        browse = new BrowseAction(_frame, pdf, false);
         if (Globals.ON_WIN)
             browse.setEnabled(false);
         builder.append(new JButton(browse));
@@ -79,7 +75,7 @@ public class ExternalTab extends JPanel implements PrefsTab {
         builder.append(pan);
         builder.append(lab);
         builder.append(ps);
-        browse = new BrowseAction(ps, false);
+        browse = new BrowseAction(_frame, ps, false);
         if (Globals.ON_WIN)
             browse.setEnabled(false);
         builder.append(new JButton(browse));
@@ -88,7 +84,7 @@ public class ExternalTab extends JPanel implements PrefsTab {
         builder.append(pan);
         builder.append(lab);
         builder.append(html);
-        browse = new BrowseAction(html, false);
+        browse = new BrowseAction(_frame, html, false);
         if (Globals.ON_WIN)
             browse.setEnabled(false);
         builder.append(new JButton(browse));
@@ -97,14 +93,14 @@ public class ExternalTab extends JPanel implements PrefsTab {
         builder.append(pan);
         builder.append(lab);
         builder.append(lyx);
-        browse = new BrowseAction(lyx, false);
+        browse = new BrowseAction(_frame, lyx, false);
         builder.append(new JButton(browse));
         builder.nextLine();
         lab = new JLabel(Globals.lang("Path to WinEdt.exe") + ":");
         builder.append(pan);
         builder.append(lab);
         builder.append(winEdt);
-        browse = new BrowseAction(winEdt, false);
+        browse = new BrowseAction(_frame, winEdt, false);
         builder.append(new JButton(browse));
         builder.nextLine();
         builder.append(pan);
@@ -117,34 +113,6 @@ public class ExternalTab extends JPanel implements PrefsTab {
         add(pan, BorderLayout.CENTER);
     }
 
-    /**
-     * Action used to produce a "Browse" button for one of the text fields.
-     */
-    class BrowseAction extends AbstractAction {
-        JTextField comp;
-        boolean dir;
-
-        public BrowseAction(JTextField tc, boolean dir) {
-            super(Globals.lang("Browse"));
-            this.dir = dir;
-            comp = tc;
-        }
-
-        public void actionPerformed(ActionEvent e) {
-            String chosen = null;
-            if (dir)
-                chosen = Globals.getNewDir(_frame, _prefs, new File(comp.getText()), Globals.NONE,
-                        JFileChooser.OPEN_DIALOG, false);
-            else
-                chosen = Globals.getNewFile(_frame, _prefs, new File(comp.getText()), Globals.NONE,
-                        JFileChooser.OPEN_DIALOG, false);
-            if (chosen != null) {
-                File newFile = new File(chosen);
-                comp.setText(newFile.getPath());
-            }
-        }
-    }
-
     public void setValues() {
         pdfDir.setText(_prefs.get("pdfDirectory"));
         psDir.setText(_prefs.get("psDirectory"));
diff --git a/src/java/net/sf/jabref/FieldComparator.java b/src/java/net/sf/jabref/FieldComparator.java
index 61fc2ad..3b93347 100644
--- a/src/java/net/sf/jabref/FieldComparator.java
+++ b/src/java/net/sf/jabref/FieldComparator.java
@@ -71,7 +71,6 @@ public class FieldComparator implements Comparator {
     		String ours = ((String) f1).toLowerCase(),
     	    	theirs = ((String) f2).toLowerCase();
     		result = ours.compareTo(theirs);
-    		
     	}
 
         return result*multiplier;
diff --git a/src/java/net/sf/jabref/FieldContentSelector.java b/src/java/net/sf/jabref/FieldContentSelector.java
index 8150ca8..79359e5 100644
--- a/src/java/net/sf/jabref/FieldContentSelector.java
+++ b/src/java/net/sf/jabref/FieldContentSelector.java
@@ -51,7 +51,7 @@ public class FieldContentSelector extends JComponent implements ActionListener {
     GridBagConstraints con = new GridBagConstraints();
     protected final MetaData m_metaData;
     protected final JabRefFrame m_frame;
-    protected final Window m_owner; 
+    protected final Window m_owner;
     protected final BasePanel m_panel;
     protected final AbstractAction m_action;
     protected final boolean m_horizontalLayout;
@@ -94,7 +94,8 @@ public class FieldContentSelector extends JComponent implements ActionListener {
 
     private void doInit() {
         setLayout(gbl);
-        list.setEditable(true);
+        //list.setEditable(true);
+
         list.setMaximumRowCount(35);
 
         /*
@@ -114,7 +115,7 @@ public class FieldContentSelector extends JComponent implements ActionListener {
         list.addActionListener(this);
 
         add(list);
-        
+
         if (m_horizontalLayout)
             add(Box.createHorizontalStrut(Sizes.dialogUnitXAsPixel(2,this)));
 
@@ -125,7 +126,7 @@ public class FieldContentSelector extends JComponent implements ActionListener {
         manage.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                 // m_owner is either a Frame or a Dialog
-                ContentSelectorDialog2 csd = m_owner instanceof Frame ? 
+                ContentSelectorDialog2 csd = m_owner instanceof Frame ?
                         new ContentSelectorDialog2(
                         (Frame) m_owner, m_frame, m_panel, true, m_metaData,
                         m_editor.getFieldName())
@@ -133,7 +134,7 @@ public class FieldContentSelector extends JComponent implements ActionListener {
                                 m_panel, true, m_metaData, m_editor
                                         .getFieldName());
                 Util.placeDialog(csd, m_frame);
-                csd.show();
+                csd.setVisible(true); // csd.show(); -> deprecated since 1.5
                 updateList();
             }
         });
@@ -196,7 +197,7 @@ public class FieldContentSelector extends JComponent implements ActionListener {
     /**
      * Adds a word to the selector (to the JList and to the MetaData), unless it
      * is already there
-     * 
+     *
      * @param newWord
      *            String Word to add
      */
diff --git a/src/java/net/sf/jabref/FontSelectorDialog.java b/src/java/net/sf/jabref/FontSelectorDialog.java
index 41bc0cb..64d97a5 100644
--- a/src/java/net/sf/jabref/FontSelectorDialog.java
+++ b/src/java/net/sf/jabref/FontSelectorDialog.java
@@ -44,9 +44,12 @@ import javax.swing.*;
  * A font chooser widget.
  * @author Slava Pestov (jEdit), Sylvain Reynal
  * @since jpicedt 1.3.2.beta-9
- * @version $Id: FontSelectorDialog.java,v 1.6 2004/02/27 23:28:41 mortenalver Exp $
+ * @version $Id: FontSelectorDialog.java,v 1.7 2006/04/26 08:46:57 kiar Exp $
  * <p>
  * $Log: FontSelectorDialog.java,v $
+ * Revision 1.7  2006/04/26 08:46:57  kiar
+ * fix dialog.show() deprecation messages, change build.xml
+ *
  * Revision 1.6  2004/02/27 23:28:41  mortenalver
  * Some code tidying, no effect on behaviour (hopefully)
  *
@@ -80,66 +83,66 @@ import javax.swing.*;
 
 class FontSelector extends JButton {
 
-	static final String PLAIN="plain";
-	static final String BOLD="bold";
-	static final String BOLD_ITALIC="bold-italic";
-	static final String ITALIC="italic";
-
-	/** init with a default font */
-	public FontSelector(){
-		this(new Font("SansSerif", Font.PLAIN, 10));
-	}
-
-	/** init with the given font */
-	public FontSelector(Font font){
-		setFont(font);
-		setRequestFocusEnabled(false);
-		addActionListener(new ActionHandler());
-	}
-
-	public void setFont(Font font){
-		super.setFont(font);
-		updateText();
-	}
-
-	/**
-	 * update button's text content from the current button's font.
-	 */
-	private void updateText(){
-		Font font = getFont();
-		String styleString;
-		switch(font.getStyle()){
-		case Font.PLAIN:
-			styleString = PLAIN;
-			break;
-		case Font.BOLD:
-			styleString = BOLD;
-			break;
-		case Font.ITALIC:
-			styleString = ITALIC;
-			break;
-		case Font.BOLD | Font.ITALIC:
-			styleString = BOLD_ITALIC;
-			break;
-		default:
-			styleString = "UNKNOWN!!!???";
-			break;
-		}
-
-		setText(font.getFamily() + " " + font.getSize() + " " + styleString);
-	}
-
-	/**
-	 * button's action-listener ; open a FontSelectorDialog
-	 */
-	class ActionHandler implements ActionListener {
-		public void actionPerformed(ActionEvent evt) {
-			Font font = new FontSelectorDialog(FontSelector.this,getFont()).getSelectedFont();
-			if(font != null){
-				setFont(font);
-			}
-		}
-	}
+        static final String PLAIN="plain";
+        static final String BOLD="bold";
+        static final String BOLD_ITALIC="bold-italic";
+        static final String ITALIC="italic";
+
+        /** init with a default font */
+        public FontSelector(){
+                this(new Font("SansSerif", Font.PLAIN, 10));
+        }
+
+        /** init with the given font */
+        public FontSelector(Font font){
+                setFont(font);
+                setRequestFocusEnabled(false);
+                addActionListener(new ActionHandler());
+        }
+
+        public void setFont(Font font){
+                super.setFont(font);
+                updateText();
+        }
+
+        /**
+         * update button's text content from the current button's font.
+         */
+        private void updateText(){
+                Font font = getFont();
+                String styleString;
+                switch(font.getStyle()){
+                case Font.PLAIN:
+                        styleString = PLAIN;
+                        break;
+                case Font.BOLD:
+                        styleString = BOLD;
+                        break;
+                case Font.ITALIC:
+                        styleString = ITALIC;
+                        break;
+                case Font.BOLD | Font.ITALIC:
+                        styleString = BOLD_ITALIC;
+                        break;
+                default:
+                        styleString = "UNKNOWN!!!???";
+                        break;
+                }
+
+                setText(font.getFamily() + " " + font.getSize() + " " + styleString);
+        }
+
+        /**
+         * button's action-listener ; open a FontSelectorDialog
+         */
+        class ActionHandler implements ActionListener {
+                public void actionPerformed(ActionEvent evt) {
+                        Font font = new FontSelectorDialog(FontSelector.this,getFont()).getSelectedFont();
+                        if(font != null){
+                                setFont(font);
+                        }
+                }
+        }
 
 }
 
@@ -152,268 +155,268 @@ class FontSelector extends JButton {
  */
 public class FontSelectorDialog extends JDialog {
 
-	/**
-	 *
-	 */
-    	static final String PLAIN="plain";
-	static final String BOLD="bold";
-	static final String BOLD_ITALIC="bold-italic";
-	static final String ITALIC="italic";
-
-	public FontSelectorDialog(Component comp, Font font) {
+        /**
+         *
+         */
+            static final String PLAIN="plain";
+        static final String BOLD="bold";
+        static final String BOLD_ITALIC="bold-italic";
+        static final String ITALIC="italic";
+
+        public FontSelectorDialog(Component comp, Font font) {
+
+            //super(JOptionPane.getFrameForComponent(comp),jpicedt.Localizer.currentLocalizer().get("widget.FontSelector"),true); //
+            super(JOptionPane.getFrameForComponent(comp),Globals.lang("FontSelector"),true); //
+                JPanel content = new JPanel(new BorderLayout());
+                content.setBorder(new EmptyBorder(12,12,12,12));
+                setContentPane(content);
+
+                JPanel listPanel = new JPanel(new GridLayout(1,3,6,6));
+
+                JPanel familyPanel = createTextFieldAndListPanel(
+                                                                 Globals.lang("Font Family"),
+                                                                 familyField = new JTextField(),
+                                                                 familyList = new JList(getFontList()));
+                listPanel.add(familyPanel);
 
-	    //super(JOptionPane.getFrameForComponent(comp),jpicedt.Localizer.currentLocalizer().get("widget.FontSelector"),true); //
-	    super(JOptionPane.getFrameForComponent(comp),Globals.lang("FontSelector"),true); //
-		JPanel content = new JPanel(new BorderLayout());
-		content.setBorder(new EmptyBorder(12,12,12,12));
-		setContentPane(content);
-
-		JPanel listPanel = new JPanel(new GridLayout(1,3,6,6));
+                String[] sizes = { "9", "10", "12", "14", "16", "18", "24" };
+                JPanel sizePanel = createTextFieldAndListPanel(
+                                                               Globals.lang("Font Size"),
+                                       sizeField = new JTextField(),
+                                       sizeList = new JList(sizes));
+                listPanel.add(sizePanel);
+
+                String[] styles = {PLAIN,BOLD,ITALIC,BOLD_ITALIC};
 
-		JPanel familyPanel = createTextFieldAndListPanel(
-								 Globals.lang("Font Family"),
-								 familyField = new JTextField(),
-								 familyList = new JList(getFontList()));
-		listPanel.add(familyPanel);
-
-		String[] sizes = { "9", "10", "12", "14", "16", "18", "24" };
-		JPanel sizePanel = createTextFieldAndListPanel(
-							       Globals.lang("Font Size"),
-		                       sizeField = new JTextField(),
-		                       sizeList = new JList(sizes));
-		listPanel.add(sizePanel);
-
-		String[] styles = {PLAIN,BOLD,ITALIC,BOLD_ITALIC};
-
-		JPanel stylePanel = createTextFieldAndListPanel(
-								Globals.lang("Font Style"),
-		                        styleField = new JTextField(),
-		                        styleList = new JList(styles));
-		styleField.setEditable(false);
-		listPanel.add(stylePanel);
-
-		familyList.setSelectedValue(font.getFamily(),true);
-		familyField.setText(font.getFamily());
-		sizeList.setSelectedValue(String.valueOf(font.getSize()),true);
-		sizeField.setText(String.valueOf(font.getSize()));
-		styleList.setSelectedIndex(font.getStyle());
-		styleField.setText((String)styleList.getSelectedValue());
-
-		ListHandler listHandler = new ListHandler();
-		familyList.addListSelectionListener(listHandler);
-		sizeList.addListSelectionListener(listHandler);
-		styleList.addListSelectionListener(listHandler);
-
-		content.add(BorderLayout.NORTH,listPanel);
-
-		//preview = new JLabel("Font Preview");
-		
-		/* --------------------------------------------------------
-		   |  Experimental addition by Morten Alver. I want to    |
-		   |  enable antialiasing in the preview field, since I'm |
-		   |  working on introducing this in the table view.      |
-		   -------------------------------------------------------- */
-		preview = new JLabel(Globals.lang("Font Preview")) {
-			public void paint(Graphics g) {
-			    Graphics2D g2 = (Graphics2D)g;
-			    g2.setRenderingHint
-				(RenderingHints.KEY_ANTIALIASING,
-				 RenderingHints.VALUE_ANTIALIAS_ON);
-			    super.paint(g2);
-			}
-
-		    };
-
-
-
-		preview.setBorder(new TitledBorder(Globals.lang("Font Preview")));
-
-		updatePreview();
-
-		Dimension prefSize = preview.getPreferredSize();
-		prefSize.height = 50;
-		preview.setPreferredSize(prefSize);
-
-		content.add(BorderLayout.CENTER,preview);
-
-		JPanel buttons = new JPanel();
-		buttons.setLayout(new BoxLayout(buttons,BoxLayout.X_AXIS));
-		buttons.setBorder(new EmptyBorder(12,0,0,0));
-		buttons.add(Box.createGlue());
-
-		ok = new JButton(Globals.lang("OK"));
-		ok.addActionListener(new ActionHandler());
-		getRootPane().setDefaultButton(ok);
-		buttons.add(ok);
-
-		buttons.add(Box.createHorizontalStrut(6));
-
-		cancel = new JButton(Globals.lang("Cancel"));
-		cancel.addActionListener(new ActionHandler());
-		buttons.add(cancel);
-
-		buttons.add(Box.createGlue());
-
-		content.add(BorderLayout.SOUTH,buttons);
-
-		pack();
-		setLocationRelativeTo(JOptionPane.getFrameForComponent(comp));
-		show();
-	}
-
-	public void ok(){
-		isOK = true;
-		dispose();
-	}
-
-	public void cancel(){
-		dispose();
-	}
-
-	public Font getSelectedFont(){
-		if(!isOK)
-			return null;
-
-		int size;
-		try{
-			size = Integer.parseInt(sizeField.getText());
-		}
-		catch(Exception e){
-			size = 14;
-		}
-
-		return new Font(familyField.getText(),styleList.getSelectedIndex(),size);
-	}
-
-	// private members
-	private boolean isOK;
-	private JTextField familyField;
-	private JList familyList;
-	private JTextField sizeField;
-	private JList sizeList;
-	private JTextField styleField;
-	private JList styleList;
-	private JLabel preview;
-	private JButton ok;
-	private JButton cancel;
-
-	/**
-	 * For some reason the default Java fonts show up in the
-	 * list with .bold, .bolditalic, and .italic extensions.
-	 */
-	private static final String[] HIDEFONTS = {".bold",".italic"};
-
-	// [pending] from GeneralCustomizer :
-	// GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
-	private String[] getFontList(){
-		try{
-			Class GEClass = Class.forName("java.awt.GraphicsEnvironment");
-			Object GEInstance = GEClass.getMethod("getLocalGraphicsEnvironment", null).invoke(null, null);
-
-			String[] nameArray = (String[])GEClass.getMethod("getAvailableFontFamilyNames", null).invoke(GEInstance, null);
-			Vector nameVector = new Vector(nameArray.length);
-
-			for(int i = 0, j; i < nameArray.length; i++){
-				for(j = 0; j < HIDEFONTS.length; j++){
-					if(nameArray[i].indexOf(HIDEFONTS[j]) >= 0) break;
-				}
-
-				if(j == HIDEFONTS.length) nameVector.addElement(nameArray[i]);
-			}
-
-			String[] _array = new String[nameVector.size()];
-			nameVector.copyInto(_array);
-			return _array;
-		}
-		catch(Exception ex){
-		    return null;//return Toolkit.getDefaultToolkit().getFontList();
-		}
-	}
-
-	private JPanel createTextFieldAndListPanel(String label,JTextField textField, JList list){
-		GridBagLayout layout = new GridBagLayout();
-		JPanel panel = new JPanel(layout);
-
-		GridBagConstraints cons = new GridBagConstraints();
-		cons.gridx = cons.gridy = 0;
-		cons.gridwidth = cons.gridheight = 1;
-		cons.fill = GridBagConstraints.BOTH;
-		cons.weightx = 1.0f;
-
-		JLabel _label = new JLabel(label);
-		layout.setConstraints(_label,cons);
-		panel.add(_label);
-
-		cons.gridy = 1;
-		Component vs = Box.createVerticalStrut(6);
-		layout.setConstraints(vs,cons);
-		panel.add(vs);
-
-		cons.gridy = 2;
-		layout.setConstraints(textField,cons);
-		panel.add(textField);
-
-		cons.gridy = 3;
-		vs = Box.createVerticalStrut(6);
-		layout.setConstraints(vs,cons);
-		panel.add(vs);
-
-		cons.gridy = 4;
-		cons.gridheight = GridBagConstraints.REMAINDER;
-		cons.weighty = 1.0f;
-		JScrollPane scroller = new JScrollPane(list);
-		layout.setConstraints(scroller,cons);
-		panel.add(scroller);
-
-		return panel;
-	}
-
-	private void updatePreview(){
-		String family = familyField.getText();
-		int size;
-		try{
-			size = Integer.parseInt(sizeField.getText());
-		}
-		catch(Exception e){
-			size = 14;
-		}
-		int style = styleList.getSelectedIndex();
-		preview.setFont(new Font(family,style,size));
-	}
-
-	class ActionHandler implements ActionListener {
-		public void actionPerformed(ActionEvent evt){
-			if(evt.getSource() == ok)ok();
-			else if(evt.getSource() == cancel)cancel();
-		}
-	}
-
-	class ListHandler implements ListSelectionListener {
-		public void valueChanged(ListSelectionEvent evt)
-		{
-			Object source = evt.getSource();
-			if(source == familyList) {
-				String family = (String)familyList.getSelectedValue();
-				if(family != null)
-					familyField.setText(family);
-			}
-			else if(source == sizeList) {
-				String size = (String)sizeList.getSelectedValue();
-				if(size != null)
-					sizeField.setText(size);
-			}
-			else if(source == styleList) {
-				String style = (String)styleList.getSelectedValue();
-				if(style != null)
-					styleField.setText(style);
-			}
-			updatePreview();
-		}
-	}
+                JPanel stylePanel = createTextFieldAndListPanel(
+                                                                Globals.lang("Font Style"),
+                                        styleField = new JTextField(),
+                                        styleList = new JList(styles));
+                styleField.setEditable(false);
+                listPanel.add(stylePanel);
+
+                familyList.setSelectedValue(font.getFamily(),true);
+                familyField.setText(font.getFamily());
+                sizeList.setSelectedValue(String.valueOf(font.getSize()),true);
+                sizeField.setText(String.valueOf(font.getSize()));
+                styleList.setSelectedIndex(font.getStyle());
+                styleField.setText((String)styleList.getSelectedValue());
+
+                ListHandler listHandler = new ListHandler();
+                familyList.addListSelectionListener(listHandler);
+                sizeList.addListSelectionListener(listHandler);
+                styleList.addListSelectionListener(listHandler);
+
+                content.add(BorderLayout.NORTH,listPanel);
+
+                //preview = new JLabel("Font Preview");
+
+                /* --------------------------------------------------------
+                   |  Experimental addition by Morten Alver. I want to    |
+                   |  enable antialiasing in the preview field, since I'm |
+                   |  working on introducing this in the table view.      |
+                   -------------------------------------------------------- */
+                preview = new JLabel(Globals.lang("Font Preview")) {
+                        public void paint(Graphics g) {
+                            Graphics2D g2 = (Graphics2D)g;
+                            g2.setRenderingHint
+                                (RenderingHints.KEY_ANTIALIASING,
+                                 RenderingHints.VALUE_ANTIALIAS_ON);
+                            super.paint(g2);
+                        }
+
+                    };
+
+
+
+                preview.setBorder(new TitledBorder(Globals.lang("Font Preview")));
+
+                updatePreview();
+
+                Dimension prefSize = preview.getPreferredSize();
+                prefSize.height = 50;
+                preview.setPreferredSize(prefSize);
+
+                content.add(BorderLayout.CENTER,preview);
+
+                JPanel buttons = new JPanel();
+                buttons.setLayout(new BoxLayout(buttons,BoxLayout.X_AXIS));
+                buttons.setBorder(new EmptyBorder(12,0,0,0));
+                buttons.add(Box.createGlue());
+
+                ok = new JButton(Globals.lang("OK"));
+                ok.addActionListener(new ActionHandler());
+                getRootPane().setDefaultButton(ok);
+                buttons.add(ok);
+
+                buttons.add(Box.createHorizontalStrut(6));
+
+                cancel = new JButton(Globals.lang("Cancel"));
+                cancel.addActionListener(new ActionHandler());
+                buttons.add(cancel);
+
+                buttons.add(Box.createGlue());
+
+                content.add(BorderLayout.SOUTH,buttons);
+
+                pack();
+                setLocationRelativeTo(JOptionPane.getFrameForComponent(comp));
+                setVisible(true); // show(); -> deprecated since 1.5
+        }
+
+        public void ok(){
+                isOK = true;
+                dispose();
+        }
+
+        public void cancel(){
+                dispose();
+        }
+
+        public Font getSelectedFont(){
+                if(!isOK)
+                        return null;
+
+                int size;
+                try{
+                        size = Integer.parseInt(sizeField.getText());
+                }
+                catch(Exception e){
+                        size = 14;
+                }
+
+                return new Font(familyField.getText(),styleList.getSelectedIndex(),size);
+        }
+
+        // private members
+        private boolean isOK;
+        private JTextField familyField;
+        private JList familyList;
+        private JTextField sizeField;
+        private JList sizeList;
+        private JTextField styleField;
+        private JList styleList;
+        private JLabel preview;
+        private JButton ok;
+        private JButton cancel;
+
+        /**
+         * For some reason the default Java fonts show up in the
+         * list with .bold, .bolditalic, and .italic extensions.
+         */
+        private static final String[] HIDEFONTS = {".bold",".italic"};
+
+        // [pending] from GeneralCustomizer :
+        // GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
+        private String[] getFontList(){
+                try{
+                        Class GEClass = Class.forName("java.awt.GraphicsEnvironment");
+                        Object GEInstance = GEClass.getMethod("getLocalGraphicsEnvironment", null).invoke(null, null);
+
+                        String[] nameArray = (String[])GEClass.getMethod("getAvailableFontFamilyNames", null).invoke(GEInstance, null);
+                        Vector nameVector = new Vector(nameArray.length);
+
+                        for(int i = 0, j; i < nameArray.length; i++){
+                                for(j = 0; j < HIDEFONTS.length; j++){
+                                        if(nameArray[i].indexOf(HIDEFONTS[j]) >= 0) break;
+                                }
+
+                                if(j == HIDEFONTS.length) nameVector.addElement(nameArray[i]);
+                        }
+
+                        String[] _array = new String[nameVector.size()];
+                        nameVector.copyInto(_array);
+                        return _array;
+                }
+                catch(Exception ex){
+                    return null;//return Toolkit.getDefaultToolkit().getFontList();
+                }
+        }
+
+        private JPanel createTextFieldAndListPanel(String label,JTextField textField, JList list){
+                GridBagLayout layout = new GridBagLayout();
+                JPanel panel = new JPanel(layout);
+
+                GridBagConstraints cons = new GridBagConstraints();
+                cons.gridx = cons.gridy = 0;
+                cons.gridwidth = cons.gridheight = 1;
+                cons.fill = GridBagConstraints.BOTH;
+                cons.weightx = 1.0f;
+
+                JLabel _label = new JLabel(label);
+                layout.setConstraints(_label,cons);
+                panel.add(_label);
+
+                cons.gridy = 1;
+                Component vs = Box.createVerticalStrut(6);
+                layout.setConstraints(vs,cons);
+                panel.add(vs);
+
+                cons.gridy = 2;
+                layout.setConstraints(textField,cons);
+                panel.add(textField);
+
+                cons.gridy = 3;
+                vs = Box.createVerticalStrut(6);
+                layout.setConstraints(vs,cons);
+                panel.add(vs);
+
+                cons.gridy = 4;
+                cons.gridheight = GridBagConstraints.REMAINDER;
+                cons.weighty = 1.0f;
+                JScrollPane scroller = new JScrollPane(list);
+                layout.setConstraints(scroller,cons);
+                panel.add(scroller);
+
+                return panel;
+        }
+
+        private void updatePreview(){
+                String family = familyField.getText();
+                int size;
+                try{
+                        size = Integer.parseInt(sizeField.getText());
+                }
+                catch(Exception e){
+                        size = 14;
+                }
+                int style = styleList.getSelectedIndex();
+                preview.setFont(new Font(family,style,size));
+        }
+
+        class ActionHandler implements ActionListener {
+                public void actionPerformed(ActionEvent evt){
+                        if(evt.getSource() == ok)ok();
+                        else if(evt.getSource() == cancel)cancel();
+                }
+        }
+
+        class ListHandler implements ListSelectionListener {
+                public void valueChanged(ListSelectionEvent evt)
+                {
+                        Object source = evt.getSource();
+                        if(source == familyList) {
+                                String family = (String)familyList.getSelectedValue();
+                                if(family != null)
+                                        familyField.setText(family);
+                        }
+                        else if(source == sizeList) {
+                                String size = (String)sizeList.getSelectedValue();
+                                if(size != null)
+                                        sizeField.setText(size);
+                        }
+                        else if(source == styleList) {
+                                String style = (String)styleList.getSelectedValue();
+                                if(style != null)
+                                        styleField.setText(style);
+                        }
+                        updatePreview();
+                }
+        }
     /*public static void main(String args[])
-	{
-	    Font font = new FontSelectorDialog(null,new Font("Times",Font.PLAIN,12)).getSelectedFont();
+        {
+            Font font = new FontSelectorDialog(null,new Font("Times",Font.PLAIN,12)).getSelectedFont();
 
-	}
+        }
     */
 }
diff --git a/src/java/net/sf/jabref/GUIGlobals.java b/src/java/net/sf/jabref/GUIGlobals.java
index e311f28..5a6ce25 100644
--- a/src/java/net/sf/jabref/GUIGlobals.java
+++ b/src/java/net/sf/jabref/GUIGlobals.java
@@ -32,9 +32,11 @@ package net.sf.jabref;
 
 import java.awt.*;
 import java.util.*;
-import java.util.List;
+//import java.util.List;
 import java.net.URL;
 import javax.swing.*;
+import java.io.FileInputStream;
+import java.io.InputStream;
 
 public class GUIGlobals {
 
@@ -60,11 +62,11 @@ public class GUIGlobals {
       TYPE_HEADER = "entrytype",
       NUMBER_COL = "#",
       encPrefix = "Encoding: ", // Part of the signature in written bib files.
-      linuxDefaultLookAndFeel = "com.jgoodies.plaf.plastic.Plastic3DLookAndFeel",
+      linuxDefaultLookAndFeel = "com.jgoodies.looks.plastic.Plastic3DLookAndFeel",
       //"com.shfarr.ui.plaf.fh.FhLookAndFeel",
 //"net.sourceforge.mlf.metouia.MetouiaLookAndFeel",
 //"org.compiere.plaf.CompiereLookAndFeel",
-      windowsDefaultLookAndFeel = "com.jgoodies.plaf.windows.ExtWindowsLookAndFeel";
+      windowsDefaultLookAndFeel = "com.jgoodies.looks.windows.WindowsLookAndFeel";
 
   public static Font CURRENTFONT,
       typeNameFont,
@@ -117,8 +119,6 @@ public class GUIGlobals {
     // further below.
     public static JLabel incompleteLabel; // JLabel with icon signaling an incomplete entry.
     public static Color activeEditor = new Color(230, 230, 255);
-    public static final String[] DEFAULT_INSPECTION_FIELDS = new String[]
-        {"author", "title", "year"};
 
     public static JLabel getTableIcon(String fieldType) {
         Object o = tableIcons.get(fieldType);
@@ -200,11 +200,11 @@ public class GUIGlobals {
           integrityFail = GUIGlobals.class.getResource(pre + "messageFail.png"),
           duplicateIcon = GUIGlobals.class.getResource(pre + "duplicate.png"),
           emacsIcon = GUIGlobals.class.getResource(pre + "emacs.png");
-  
+
   public static ImageIcon
-  	groupRefiningIcon = new ImageIcon(GUIGlobals.class.getResource(pre +"groupRefining.png")),
-  	groupIncludingIcon = new ImageIcon(GUIGlobals.class.getResource(pre +"groupIncluding.png")),
-  	groupRegularIcon = null;
+          groupRefiningIcon = new ImageIcon(GUIGlobals.class.getResource(pre +"groupRefining.png")),
+          groupIncludingIcon = new ImageIcon(GUIGlobals.class.getResource(pre +"groupIncluding.png")),
+          groupRegularIcon = null;
 
     /*public static incompleteEntryIcon = new ImageIcon(incompleteIcon);
     static {
@@ -235,6 +235,7 @@ public class GUIGlobals {
       shortPlainImport="ShortPlainImport.html",
       importInspectionHelp = "ImportInspectionDialog.html",
       shortIntegrityCheck="ShortIntegrityCheck.html",
+      shortAuxImport="ShortAuxImport.html",
         remoteHelp = "RemoteHelp.html",
         journalAbbrHelp = "JournalAbbreviations.html";
 
@@ -262,147 +263,22 @@ public class GUIGlobals {
   public static String META_FLAG = "jabref-meta: ";
   public static String META_FLAG_OLD = "bibkeeper-meta: ";
   public static String ENTRYTYPE_FLAG = "jabref-entrytype: ";
-  public static String KEY_FIELD = "bibtexkey";
-  public static String[] ALL_FIELDS = new String[] {
-      "author",
-      "editor",
-      "title",
-      "year",
-      "pages",
-      "publisher",
-      "journal",
-      "volume",
-      "month",
-      "note",
-      "edition",
-      "number",
-      "chapter",
-      "series",
-      "type",
-      "address",
-      "location",
-      "annote",
-      "booktitle",
-      "crossref",
-      "howpublished",
-      "institution",
-      "key",
-      "organization",
-      "school",
-      "abstract",
-      "url",
-          "citeseerurl",
-      "pdf",
-      "comment",
-      "bibtexkey",
-      "keywords",
-      "doi",
-      "eid",
-      "search",
-          "citeseercitationcount"
-  };
-
-  public static final Map FIELD_DISPLAYS;
-  static {
-      Arrays.sort(ALL_FIELDS);
-          FIELD_DISPLAYS = new HashMap();
-          FIELD_DISPLAYS.put("citeseercitationcount","Popularity");
-  }
 
-
-// These are the fields that BibTex might want to treat, so these
-// must conform to BibTex rules.
-  public static String[] BIBTEX_STANDARD_FIELDS = new String[] {
-      "author",
-      "editor",
-      "title",
-      "year",
-      "pages",
-      "month",
-      "note",
-      "publisher",
-      "journal",
-      "volume",
-      "edition",
-      "number",
-      "chapter",
-      "series",
-      "type",
-      "address",
-      //? "annote",
-      "booktitle",
-      "crossref",
-      "howpublished",
-      "institution",
-      "key",
-      "organization",
-      "school",
-      "bibtexkey",
-      "doi",
-      "eid",
-      "date"
-  };
-
-  // These fields will not be saved to the .bib file.
-  public static String[] NON_WRITABLE_FIELDS = new String[] {
-      Globals.SEARCH,
-      Globals.GROUPSEARCH
-  };
-
-  // These fields will not be shown inside the source editor panel.
-  public static String[] NON_DISPLAYABLE_FIELDS = new String[] {
-      Globals.MARKED,
-      Globals.SEARCH,
-      Globals.GROUPSEARCH
-  };
-
-     public static boolean isWriteableField(String field) {
-       for (int i = 0; i < NON_WRITABLE_FIELDS.length; i++) {
-         if (NON_WRITABLE_FIELDS[i].equals(field)) {
-           return false;
-         }
-       }
-       return true;
-     }
-
-     public static boolean isDisplayableField(String field) {
-       for (int i = 0; i < NON_DISPLAYABLE_FIELDS.length; i++) {
-         if (NON_DISPLAYABLE_FIELDS[i].equals(field)) {
-           return false;
-         }
-       }
-       return true;
-     }
-
-  /**
-   * Returns true if the given field is a standard Bibtex field.
-   *
-   * @param field a <code>String</code> value
-   * @return a <code>boolean</code> value
-   */
-  public static boolean isStandardField(String field) {
-    for (int i = 0; i < BIBTEX_STANDARD_FIELDS.length; i++) {
-      if (BIBTEX_STANDARD_FIELDS[i].equals(field)) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  public static double DEFAULT_FIELD_WEIGHT = 1,
+  // some fieldname constants
+  public static final double
+        DEFAULT_FIELD_WEIGHT = 1,
         MAX_FIELD_WEIGHT = 2;
 
-  public static Double
-      SMALL_W = new Double(0.30),
-      MEDIUM_W = new Double(0.5),
-      LARGE_W = new Double(1.5);
+  public static final double
+      SMALL_W = 0.30,
+      MEDIUM_W = 0.5,
+      LARGE_W = 1.5 ;
+
   public static final double PE_HEIGHT = 2;
 
 // Size constants for EntryTypeForm; small, medium and large.
-  public static int[] FORM_WIDTH = new int[] {
-      500, 650, 820};
-  public static int[] FORM_HEIGHT = new int[] {
-      90, 110, 130};
+  public static int[] FORM_WIDTH = new int[] { 500, 650, 820};
+  public static int[] FORM_HEIGHT = new int[] { 90, 110, 130};
 
 // Constants controlling formatted bibtex output.
   public static final int
@@ -426,99 +302,17 @@ public class GUIGlobals {
       IMPORT_DIALOG_COL_2_WIDTH = 200,
       IMPORT_DIALOG_COL_3_WIDTH = 200;
 
-  public static final Map FIELD_WEIGHT;
-  public static final Map FIELD_EXTRAS, LANGUAGES;
-  public static Map fieldLength = new HashMap();
-  static {
+  public static final Map LANGUAGES;
 
+  static {
     LANGUAGES = new HashMap();
     // LANGUAGES contains mappings for supported languages.
     LANGUAGES.put("English", "en");
     LANGUAGES.put("Deutsch", "de");
     LANGUAGES.put("Fran\u00E7ais", "fr");
-    LANGUAGES.put("Norsk", "no");
-
-    FIELD_EXTRAS = new HashMap();
-    // fieldExtras contains mappings to tell the EntryEditor to add a specific
-    // function to this field, for instance a "browse" button for the "pdf" field.
-    FIELD_EXTRAS.put("pdf", "browseDoc");
-    FIELD_EXTRAS.put("ps", "browseDocZip");
-    FIELD_EXTRAS.put("url", "external");
-    FIELD_EXTRAS.put("citeseerurl", "external");
-    FIELD_EXTRAS.put("doi", "external");
-    FIELD_EXTRAS.put("journal", "journalNames");
-    //FIELD_EXTRAS.put("keywords", "selector");
-
-
-    fieldLength.put("author", new Integer(280));
-    fieldLength.put("editor", new Integer(280));
-    fieldLength.put("title", new Integer(400));
-    fieldLength.put("abstract", new Integer(400));
-    fieldLength.put("booktitle", new Integer(175));
-    fieldLength.put("year", new Integer(60));
-    fieldLength.put("volume", new Integer(60));
-    fieldLength.put("number", new Integer(60));
-    fieldLength.put("entrytype", new Integer(75));
-    fieldLength.put("search", new Integer(75));
-    fieldLength.put("citeseercitationcount", new Integer(75));
-    fieldLength.put(NUMBER_COL, new Integer(32));
-
-    FIELD_WEIGHT = new HashMap();
-    FIELD_WEIGHT.put("author", MEDIUM_W);
-    FIELD_WEIGHT.put("year", SMALL_W);
-    FIELD_WEIGHT.put("pages", SMALL_W);
-    FIELD_WEIGHT.put("month", SMALL_W);
-    FIELD_WEIGHT.put("url", SMALL_W);
-    FIELD_WEIGHT.put("citeseerurl", SMALL_W);
-    FIELD_WEIGHT.put("crossref", SMALL_W);
-    FIELD_WEIGHT.put("note", MEDIUM_W);
-    FIELD_WEIGHT.put("publisher", MEDIUM_W);
-    FIELD_WEIGHT.put("journal", SMALL_W);
-    FIELD_WEIGHT.put("volume", SMALL_W);
-    FIELD_WEIGHT.put("edition", SMALL_W);
-    FIELD_WEIGHT.put("keywords", SMALL_W);
-    FIELD_WEIGHT.put("doi", SMALL_W);
-    FIELD_WEIGHT.put("eid", SMALL_W);
-    FIELD_WEIGHT.put("pdf", SMALL_W);
-    FIELD_WEIGHT.put("number", SMALL_W);
-    FIELD_WEIGHT.put("chapter", SMALL_W);
-    FIELD_WEIGHT.put("editor", MEDIUM_W);
-    FIELD_WEIGHT.put("series", SMALL_W);
-    FIELD_WEIGHT.put("type", SMALL_W);
-    FIELD_WEIGHT.put("address", SMALL_W);
-    FIELD_WEIGHT.put("howpublished", MEDIUM_W);
-    FIELD_WEIGHT.put("institution", MEDIUM_W);
-    FIELD_WEIGHT.put("organization", MEDIUM_W);
-    FIELD_WEIGHT.put("school", MEDIUM_W);
-    FIELD_WEIGHT.put("comment", MEDIUM_W);
-    FIELD_WEIGHT.put("abstract", LARGE_W);
-    FIELD_WEIGHT.put("annote", LARGE_W);
-    FIELD_WEIGHT.put("citeseercitationcount", SMALL_W);
-    FIELD_WEIGHT.put("owner", SMALL_W);
-    FIELD_WEIGHT.put("timestamp", SMALL_W);
-    //FIELD_WEIGHT = Collections.unmodifiableMap(FIELD_WEIGHT);
-  }
-
-    /*
-    public static int getPreferredFieldLength(String name) {
-    int l = DEFAULT_FIELD_LENGTH;
-    Object o = fieldLength.get(name.toLowerCase());
-    if (o != null)
-    l = ((Integer)o).intValue();
-    return l;
-    }*/
-
-  public static double getFieldWeight(String name) {
-    double l = DEFAULT_FIELD_WEIGHT;
-    Object o = FIELD_WEIGHT.get(name.toLowerCase());
-    if (o != null) {
-      l = ( (Double) o).doubleValue();
-    }
-    return l;
-  }
+      LANGUAGES.put("Italiano", "it");
+      LANGUAGES.put("Norsk", "no");
 
-  public static void setFieldWeight(String fieldName, double weight) {
-      FIELD_WEIGHT.put(fieldName, new Double(weight));
   }
 
   /** returns the path to language independent help files */
diff --git a/src/java/net/sf/jabref/GeneralTab.java b/src/java/net/sf/jabref/GeneralTab.java
index 88c7b9b..1b6c9ad 100644
--- a/src/java/net/sf/jabref/GeneralTab.java
+++ b/src/java/net/sf/jabref/GeneralTab.java
@@ -15,8 +15,10 @@ public class GeneralTab extends JPanel implements PrefsTab {
     private JCheckBox autoOpenForm, backup, openLast, showSource,
     defSource, editSource, defSort, ctrlClick, disableOnMultiple,
     useOwner, keyDuplicateWarningDialog, keyEmptyWarningDialog, autoDoubleBraces,
-    confirmDelete, saveInStandardOrder, allowEditing, /*preserveFormatting, */useImportInspector,
+    confirmDelete, allowEditing, /*preserveFormatting, */useImportInspector,
     useImportInspectorForSingle, inspectionWarnDupli, useTimeStamp;
+    private JRadioButton
+        saveOriginalOrder, saveAuthorOrder, saveTableOrder;
     private JTextField defOwnerField, timeStampFormat, timeStampField,
             bracesAroundCapitalsFields, nonWrappableFields;
     JabRefPreferences _prefs;
@@ -46,7 +48,13 @@ public class GeneralTab extends JPanel implements PrefsTab {
         keyDuplicateWarningDialog = new JCheckBox(Globals.lang("Show warning dialog when a duplicate BibTeX key is entered"));
         keyEmptyWarningDialog = new JCheckBox(Globals.lang("Show warning dialog when an empty BibTeX key is entered")); // JZTODO lyrics
         confirmDelete = new JCheckBox(Globals.lang("Show confirmation dialog when deleting entries"));
-        saveInStandardOrder = new JCheckBox(Globals.lang("Always save database ordered by author name"));
+        saveAuthorOrder = new JRadioButton(Globals.lang("Save ordered by author/editor/year"));
+        saveOriginalOrder = new JRadioButton(Globals.lang("Save entries in their original order"));
+        saveTableOrder = new JRadioButton(Globals.lang("Save in default table sort order"));
+        ButtonGroup bg = new ButtonGroup();
+        bg.add(saveAuthorOrder);
+        bg.add(saveOriginalOrder);
+        bg.add(saveTableOrder);
         autoDoubleBraces = new JCheckBox(
                 //+ Globals.lang("Store fields with double braces, and remove extra braces when loading.<BR>"
                 //+ "Double braces signal that BibTeX should preserve character case.") + "</HTML>");
@@ -68,8 +76,8 @@ public class GeneralTab extends JPanel implements PrefsTab {
         editSource.setMargin(marg);
         defSource.setMargin(marg);
         inspectionWarnDupli.setMargin(marg);
-        bracesAroundCapitalsFields = new JTextField(30);
-        nonWrappableFields = new JTextField(30);
+        bracesAroundCapitalsFields = new JTextField(25);
+        nonWrappableFields = new JTextField(25);
         // We need a listener on showSource to enable and disable the source panel-related choices:
         showSource.addChangeListener(new ChangeListener() {
             public void stateChanged(ChangeEvent event) {
@@ -89,84 +97,43 @@ public class GeneralTab extends JPanel implements PrefsTab {
         );
 
         FormLayout layout = new FormLayout
-                ("1dlu, 8dlu, left:pref, 4dlu, fill:60dlu, 4dlu, fill:pref", // 4dlu, left:pref, 4dlu",
-                        "");
+                ("8dlu, left:pref, 8dlu, fill:pref, 4dlu, fill:pref", // 4dlu, left:pref, 4dlu",
+                        "pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, "
+                        +"pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, "
+                        +"pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, "
+                                    +"pref, 6dlu, pref, 6dlu, pref");
         DefaultFormBuilder builder = new DefaultFormBuilder(layout);
-        JPanel pan = new JPanel();
-        builder.appendSeparator(Globals.lang("File"));
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(openLast);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(backup);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(saveInStandardOrder);
-        builder.nextLine();
-        builder.append(pan);
-        //builder.append(preserveFormatting);
-        //builder.nextLine();
-        //builder.append(pan);
-        builder.append(autoDoubleBraces);
-        builder.nextLine();
+        CellConstraints cc = new CellConstraints();
+        builder.addSeparator(Globals.lang("File"), cc.xyw(1,1, 5));
+        builder.add(openLast, cc.xy(2,3));
+        builder.add(backup, cc.xy(2,5));
+        builder.add(autoDoubleBraces, cc.xy(2, 7));
+        builder.add(saveAuthorOrder, cc.xy(4, 3));
+        builder.add(saveTableOrder, cc.xy(4, 5));
+        builder.add(saveOriginalOrder, cc.xy(4, 7));
         JLabel label = new JLabel(Globals.lang("Store the following fields with braces around capital letters")+":");
-        DefaultFormBuilder builder3 = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:pref",""));
-        //panel.setLayout
+        DefaultFormBuilder builder3 = new DefaultFormBuilder
+                (new FormLayout("left:pref, 4dlu, fill:pref",""));
         builder3.append(label);
         builder3.append(bracesAroundCapitalsFields);
-        //
-        //builder.append(panel);
-        //builder.nextLine();
         label = new JLabel(Globals.lang("Do not wrap the following fields when saving")+":");
         builder3.append(label);
         builder3.append(nonWrappableFields);
-        builder.append(pan);
-        builder.append(builder3.getPanel());
-        //builder.append(panel);
-        builder.nextLine();
+        builder.add(builder3.getPanel(), cc.xyw(2, 9, 3));
 
-        //builder.appendSeparator(Globals.lang("Miscellaneous"));
-        //builder.nextLine();
-        builder.appendSeparator(Globals.lang("Entry editor"));
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(autoOpenForm);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(disableOnMultiple);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(showSource);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(defSource);
-        builder.nextLine();
-        builder.appendSeparator(Globals.lang("Miscellaneous"));
-        builder.append(pan);
-        builder.append(useImportInspector);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(useImportInspector);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(useImportInspectorForSingle);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(inspectionWarnDupli);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(ctrlClick);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(confirmDelete);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(keyDuplicateWarningDialog);
-        builder.nextLine();
-        builder.append(pan);
-        builder.append(keyEmptyWarningDialog);
-        builder.nextLine();
+        builder.addSeparator(Globals.lang("Entry editor"), cc.xyw(1, 11, 5));
+        builder.add(autoOpenForm, cc.xy(2, 13));
+        builder.add(disableOnMultiple, cc.xy(2, 15));
+        builder.add(showSource, cc.xy(2, 17));
+        builder.add(defSource, cc.xy(2, 19));
+        builder.addSeparator(Globals.lang("Miscellaneous"), cc.xyw(1, 21, 5));
+        builder.add(useImportInspector, cc.xy(2, 23));
+        builder.add(useImportInspectorForSingle, cc.xy(4, 23));
+        builder.add(inspectionWarnDupli, cc.xy(4, 25));
+        builder.add(ctrlClick, cc.xy(2, 27));
+        builder.add(confirmDelete, cc.xy(2, 29));
+        builder.add(keyDuplicateWarningDialog, cc.xy(2, 31));
+        builder.add(keyEmptyWarningDialog, cc.xy(2, 33));
         // Create a new panel with its own FormLayout for the last items:
         FormLayout layout2 = new FormLayout
                 ("left:pref, 8dlu, fill:60dlu, 4dlu, left:pref, 4dlu, fill:60dlu, 4dlu, fill:pref", "");
@@ -195,12 +162,11 @@ public class GeneralTab extends JPanel implements PrefsTab {
         lab = new JLabel(Globals.lang("Default encoding") + ":");
         builder2.append(lab);
         builder2.append(encodings);
-        builder.append(pan);
-        builder.append(builder2.getPanel());
-        builder.nextLine();
-        //builder.appendSeparator();
 
-        pan = builder.getPanel();
+        builder.add(builder2.getPanel(), cc.xyw(2, 35, 3));
+
+
+        JPanel pan = builder.getPanel();
         pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
         add(pan, BorderLayout.CENTER);
 
@@ -222,7 +188,12 @@ public class GeneralTab extends JPanel implements PrefsTab {
         keyDuplicateWarningDialog.setSelected(_prefs.getBoolean("dialogWarningForDuplicateKey"));
         keyEmptyWarningDialog.setSelected(_prefs.getBoolean("dialogWarningForEmptyKey"));
         confirmDelete.setSelected(_prefs.getBoolean("confirmDelete"));
-        saveInStandardOrder.setSelected(_prefs.getBoolean("saveInStandardOrder"));
+        if (_prefs.getBoolean("saveInStandardOrder"))
+            saveAuthorOrder.setSelected(true);
+        else if (_prefs.getBoolean("saveInOriginalOrder"))
+            saveOriginalOrder.setSelected(true);
+        else
+            saveTableOrder.setSelected(true);
         //preserveFormatting.setSelected(_prefs.getBoolean("preserveFieldFormatting"));
         autoDoubleBraces.setSelected(_prefs.getBoolean("autoDoubleBraces"));
         defOwnerField.setText(_prefs.get("defaultOwner"));
@@ -271,7 +242,8 @@ public class GeneralTab extends JPanel implements PrefsTab {
         _prefs.putBoolean("dialogWarningForDuplicateKey", keyDuplicateWarningDialog.isSelected());
         _prefs.putBoolean("dialogWarningForEmptyKey", keyEmptyWarningDialog.isSelected());
         _prefs.putBoolean("confirmDelete", confirmDelete.isSelected());
-        _prefs.putBoolean("saveInStandardOrder", saveInStandardOrder.isSelected());
+        _prefs.putBoolean("saveInStandardOrder", saveAuthorOrder.isSelected());
+        _prefs.putBoolean("saveInOriginalOrder", saveOriginalOrder.isSelected());
         _prefs.putBoolean("allowTableEditing", allowEditing.isSelected());
         _prefs.putBoolean("ctrlClick", ctrlClick.isSelected());
         //_prefs.putBoolean("preserveFieldFormatting", preserveFormatting.isSelected());
diff --git a/src/java/net/sf/jabref/Globals.java b/src/java/net/sf/jabref/Globals.java
index de7fa4e..f7e3fe6 100644
--- a/src/java/net/sf/jabref/Globals.java
+++ b/src/java/net/sf/jabref/Globals.java
@@ -26,11 +26,14 @@
 package net.sf.jabref;
 
 import java.io.* ;
+import java.nio.charset.Charset;
 import java.util.* ;
+import java.util.List;
 import java.util.logging.* ;
 import java.util.logging.Filter ;
 
 import java.awt.* ;
+import java.nio.charset.Charset;
 import javax.swing.* ;
 
 import net.sf.jabref.collab.* ;
@@ -51,12 +54,13 @@ public class Globals {
                         menuResourcePrefix = "resource/Menu",
                         integrityResourcePrefix = "resource/IntegrityMessage";
   private static final String buildInfos = "/resource/build.properties" ;
+  public static final String additionalFields = "/resource/fields/fields.xml" ;  // some extra field definitions
   private static String logfile = "jabref.log";
   public static ResourceBundle messages, menuTitles, intMessages ;
   public static FileUpdateMonitor fileUpdateMonitor = new FileUpdateMonitor();
     public static ImportFormatReader importFormatReader = new ImportFormatReader();
 
-
+  public static ErrorConsole errorConsole;
 
    public static String VERSION,
                        BUILD,
@@ -68,6 +72,9 @@ public class Globals {
     VERSION = bi.getBUILD_VERSION() ;
     BUILD = bi.getBUILD_NUMBER() ;
     BUILD_DATE = bi.getBUILD_DATE() ;
+
+      // TODO: Error console initialization here. When should it be used?
+      errorConsole = ErrorConsole.getInstance();
   }
 
 
@@ -83,12 +90,14 @@ public class Globals {
       FORMATTER_PACKAGE = "net.sf.jabref.export.layout.format.";
   public static float duplicateThreshold = 0.75f;
   private static Handler consoleHandler = new java.util.logging.ConsoleHandler();
-  public static String[] ENCODINGS = new String[] {"ISO8859_1", "UTF8", "UTF-16", "ASCII",
-      "Cp1250", "Cp1251", "Cp1252", "Cp1253", "Cp1254", "Cp1257",
-      "JIS", "SJIS", "EUC-JP",      // Added Japanese encodings.
-      "Big5", "Big5_HKSCS", "GBK",
-      "ISO8859_2", "ISO8859_3", "ISO8859_4", "ISO8859_5", "ISO8859_6",
-      "ISO8859_7", "ISO8859_8", "ISO8859_9", "ISO8859_13", "ISO8859_15"};
+  public static String[] ENCODINGS,
+      ALL_ENCODINGS = //(String[]) Charset.availableCharsets().keySet().toArray(new String[]{});
+          new String[] {"ISO8859_1", "UTF8", "UTF-16", "ASCII",
+              "Cp1250", "Cp1251", "Cp1252", "Cp1253", "Cp1254", "Cp1257",
+              "JIS", "SJIS", "EUC-JP",      // Added Japanese encodings.
+              "Big5", "Big5_HKSCS", "GBK",
+              "ISO8859_2", "ISO8859_3", "ISO8859_4", "ISO8859_5", "ISO8859_6",
+              "ISO8859_7", "ISO8859_8", "ISO8859_9", "ISO8859_13", "ISO8859_15"};
 
   // String array that maps from month number to month string label:
   public static String[] MONTHS = new String[] {"jan", "feb", "mar", "apr", "may", "jun",
@@ -109,6 +118,16 @@ public class Globals {
       MONTH_STRINGS.put("oct", "October");
       MONTH_STRINGS.put("nov", "November");
       MONTH_STRINGS.put("dec", "December");
+
+      // Build list of encodings, by filtering out all that are not supported
+      // on this system:
+      List encodings = new ArrayList();
+      for (int i=0; i<ALL_ENCODINGS.length; i++) {
+          if (Charset.isSupported(ALL_ENCODINGS[i]))
+            encodings.add(ALL_ENCODINGS[i]);
+      }
+      ENCODINGS = (String[])encodings.toArray(new String[0]);
+
   }
 
 
@@ -164,19 +183,6 @@ public class Globals {
     });
   }
 
-  /**
-   * String constants.
-   */
-  public static final String
-      KEY_FIELD = "bibtexkey",
-      SEARCH = "__search",
-      GROUPSEARCH = "__groupsearch",
-      MARKED = "__markedentry",
-      OWNER = "owner",
-        // Using this when I have no database open when I read
-      // non bibtex file formats (used byte ImportFormatReader.java
-      DEFAULT_BIBTEXENTRY_ID = "__ID";
-
   public static void setLanguage(String language, String country) {
     locale = new Locale(language, country);
     messages = ResourceBundle.getBundle(resourcePrefix, locale);
@@ -187,7 +193,7 @@ public class Globals {
   }
 
 
-    public static JournalAbbreviations journalAbbrev;
+  public static JournalAbbreviations journalAbbrev;
 
 
   public static String lang(String key, String[] params) {
@@ -371,7 +377,7 @@ public class Globals {
                       updateWorkingDirectory, false);
   }
 
-    
+
   public static String getNewFile(JFrame owner, JabRefPreferences prefs,
                                   File directory, String extension,
                                   String description,
@@ -381,7 +387,7 @@ public class Globals {
                       updateWorkingDirectory, false);
   }
 
-    
+
   public static String getNewFile(JFrame owner, JabRefPreferences prefs,
                                   File directory, String extension, OpenFileFilter off,
                                   int dialogType,
@@ -423,7 +429,7 @@ public class Globals {
   }
 
   private static String getNewFile(JFrame owner, JabRefPreferences prefs,
-                                   File directory, String extension, 
+                                   File directory, String extension,
                                    String description,
                                    OpenFileFilter off,
                                    int dialogType,
@@ -510,7 +516,7 @@ public class Globals {
       fc.setMode(FileDialog.SAVE);
     }
 
-    fc.show();
+    fc.setVisible(true); // fc.show(); -> deprecated since 1.5
 
     if (fc.getFile() != null) {
       Globals.prefs.put("workingDirectory", fc.getDirectory() + fc.getFile());
@@ -526,10 +532,12 @@ public class Globals {
   public static HashMap HTML_CHARS = new HashMap(),
           HTMLCHARS = new HashMap(),
       XML_CHARS = new HashMap(),
+      ASCII2XML_CHARS = new HashMap(),
       UNICODE_CHARS = new HashMap(),
-      RTFCHARS = new HashMap();
+      RTFCHARS = new HashMap(),
+        URL_CHARS = new HashMap();
   static {
-      
+
       //System.out.println(journalAbbrev.getAbbreviatedName("Journal of Fish Biology", true));
       //System.out.println(journalAbbrev.getAbbreviatedName("Journal of Fish Biology", false));
       //System.out.println(journalAbbrev.getFullName("Aquaculture Eng."));
@@ -547,52 +555,18 @@ public class Globals {
     } catch (Throwable t) {
 
     }
-    /*
-    HTML_CHARS.put("\\{\\\\\\\"\\{a\\}\\}", "ä");
-    HTML_CHARS.put("\\{\\\\\\\"\\{A\\}\\}", "Ä");
-    HTML_CHARS.put("\\{\\\\\\\"\\{e\\}\\}", "ë");
-    HTML_CHARS.put("\\{\\\\\\\"\\{E\\}\\}", "Ë");
-    HTML_CHARS.put("\\{\\\\\\\"\\{i\\}\\}", "ï");
-    HTML_CHARS.put("\\{\\\\\\\"\\{I\\}\\}", "Ï");
-    HTML_CHARS.put("\\{\\\\\\\"\\{o\\}\\}", "ö");
-    HTML_CHARS.put("\\{\\\\\\\"\\{O\\}\\}", "Ö");
-    HTML_CHARS.put("\\{\\\\\\\"\\{u\\}\\}", "ü");
-    HTML_CHARS.put("\\{\\\\\\\"\\{U\\}\\}", "Ü");
-
-    HTML_CHARS.put("\\{\\\\\\`\\{e\\}\\}", "è");
-    HTML_CHARS.put("\\{\\\\\\`\\{E\\}\\}", "È");
-    HTML_CHARS.put("\\{\\\\\\`\\{i\\}\\}", "ì");
-    HTML_CHARS.put("\\{\\\\\\`\\{I\\}\\}", "Ì");
-    HTML_CHARS.put("\\{\\\\\\`\\{o\\}\\}", "ò");
-    HTML_CHARS.put("\\{\\\\\\`\\{O\\}\\}", "Ò");
-    HTML_CHARS.put("\\{\\\\\\`\\{u\\}\\}", "ù");
-    HTML_CHARS.put("\\{\\\\\\`\\{U\\}\\}", "Ù");
-
-    HTML_CHARS.put("\\{\\\\\\'\\{e\\}\\}", "é");
-    HTML_CHARS.put("\\{\\\\\\'\\{E\\}\\}", "É");
-    HTML_CHARS.put("\\{\\\\\\'\\{i\\}\\}", "í");
-    HTML_CHARS.put("\\{\\\\\\'\\{I\\}\\}", "Í");
-    HTML_CHARS.put("\\{\\\\\\'\\{o\\}\\}", "ó");
-    HTML_CHARS.put("\\{\\\\\\'\\{O\\}\\}", "Ó");
-    HTML_CHARS.put("\\{\\\\\\'\\{u\\}\\}", "ú");
-    HTML_CHARS.put("\\{\\\\\\'\\{U\\}\\}", "Ú");
-    HTML_CHARS.put("\\{\\\\\\'\\{a\\}\\}", "á");
-    HTML_CHARS.put("\\{\\\\\\'\\{A\\}\\}", "Á");
-    HTML_CHARS.put("\\{\\\\\\^\\{o\\}\\}", "ô");
-    HTML_CHARS.put("\\{\\\\\\^\\{O\\}\\}", "Ô");
-    HTML_CHARS.put("\\{\\\\\\^\\{u\\}\\}", "û");
-    HTML_CHARS.put("\\{\\\\\\^\\{U\\}\\}", "Û");
-    HTML_CHARS.put("\\{\\\\\\^\\{e\\}\\}", "ê");
-    HTML_CHARS.put("\\{\\\\\\^\\{E\\}\\}", "Ê");
-    HTML_CHARS.put("\\{\\\\\\^\\{i\\}\\}", "î");
-    HTML_CHARS.put("\\{\\\\\\^\\{I\\}\\}", "Î");
-    HTML_CHARS.put("\\{\\\\\\~\\{o\\}\\}", "õ");
-    HTML_CHARS.put("\\{\\\\\\~\\{O\\}\\}", "Õ");
-    HTML_CHARS.put("\\{\\\\\\~\\{n\\}\\}", "ñ");
-    HTML_CHARS.put("\\{\\\\\\~\\{N\\}\\}", "Ñ");
-    HTML_CHARS.put("\\{\\\\\\~\\{a\\}\\}", "ã");
-    HTML_CHARS.put("\\{\\\\\\~\\{A\\}\\}", "Ã");
-    */
+
+      // Special characters in URLs need to be replaced to ensure that the URL
+      // opens properly on all platforms:
+      URL_CHARS.put("<", "%3c");
+      URL_CHARS.put(">", "%3e");
+      URL_CHARS.put("(", "%28");
+      URL_CHARS.put(")", "%29");
+      URL_CHARS.put(" ", "%20");
+      URL_CHARS.put("&", "%26");
+      URL_CHARS.put("$", "%24");
+
+
 
     HTMLCHARS.put("\"a", "ä");
     HTMLCHARS.put("\"A", "Ä");
@@ -624,6 +598,8 @@ public class Globals {
     HTMLCHARS.put("'U", "Ú");
     HTMLCHARS.put("'a", "á");
     HTMLCHARS.put("'A", "Á");
+    HTMLCHARS.put("^a", "ô");
+    HTMLCHARS.put("^A", "Ô");
     HTMLCHARS.put("^o", "ô");
     HTMLCHARS.put("^O", "Ô");
     HTMLCHARS.put("^u", "û");
@@ -640,55 +616,6 @@ public class Globals {
     HTMLCHARS.put("~A", "Ã");
     HTMLCHARS.put("cc", "ç");
     HTMLCHARS.put("cC", "Ç");
-    /*
-    HTML_CHARS.put("\\{\\\\\\\"a\\}", "ä");
-    HTML_CHARS.put("\\{\\\\\\\"A\\}", "Ä");
-    HTML_CHARS.put("\\{\\\\\\\"e\\}", "ë");
-    HTML_CHARS.put("\\{\\\\\\\"E\\}", "Ë");
-    HTML_CHARS.put("\\{\\\\\\\"i\\}", "ï");
-    HTML_CHARS.put("\\{\\\\\\\"I\\}", "Ï");
-    HTML_CHARS.put("\\{\\\\\\\"o\\}", "ö");
-    HTML_CHARS.put("\\{\\\\\\\"O\\}", "Ö");
-    HTML_CHARS.put("\\{\\\\\\\"u\\}", "ü");
-    HTML_CHARS.put("\\{\\\\\\\"U\\}", "Ü");
-
-    HTML_CHARS.put("\\{\\\\\\`e\\}", "è");
-    HTML_CHARS.put("\\{\\\\\\`E\\}", "È");
-    HTML_CHARS.put("\\{\\\\\\`i\\}", "ì");
-    HTML_CHARS.put("\\{\\\\\\`I\\}", "Ì");
-    HTML_CHARS.put("\\{\\\\\\`o\\}", "ò");
-    HTML_CHARS.put("\\{\\\\\\`O\\}", "Ò");
-    HTML_CHARS.put("\\{\\\\\\`u\\}", "ù");
-    HTML_CHARS.put("\\{\\\\\\`U\\}", "Ù");
-    HTML_CHARS.put("\\{\\\\\\'A\\}", "é");
-    HTML_CHARS.put("\\{\\\\\\'E\\}", "É");
-    HTML_CHARS.put("\\{\\\\\\'i\\}", "í");
-    HTML_CHARS.put("\\{\\\\\\'I\\}", "Í");
-    HTML_CHARS.put("\\{\\\\\\'o\\}", "ó");
-    HTML_CHARS.put("\\{\\\\\\'O\\}", "Ó");
-    HTML_CHARS.put("\\{\\\\\\'u\\}", "ú");
-    HTML_CHARS.put("\\{\\\\\\'U\\}", "Ú");
-    HTML_CHARS.put("\\{\\\\\\'a\\}", "á");
-    HTML_CHARS.put("\\{\\\\\\'A\\}", "Á");
-
-    HTML_CHARS.put("\\{\\\\\\^o\\}", "ô");
-    HTML_CHARS.put("\\{\\\\\\^O\\}", "Ô");
-    HTML_CHARS.put("\\{\\\\\\^u\\}", "û");
-    HTML_CHARS.put("\\{\\\\\\^U\\}", "Û");
-    HTML_CHARS.put("\\{\\\\\\^e\\}", "ê");
-    HTML_CHARS.put("\\{\\\\\\^E\\}", "Ê");
-    HTML_CHARS.put("\\{\\\\\\^i\\}", "î");
-    HTML_CHARS.put("\\{\\\\\\^I\\}", "Î");
-    HTML_CHARS.put("\\{\\\\\\~o\\}", "õ");
-    HTML_CHARS.put("\\{\\\\\\~O\\}", "Õ");
-    HTML_CHARS.put("\\{\\\\\\~n\\}", "ñ");
-    HTML_CHARS.put("\\{\\\\\\~N\\}", "Ñ");
-    HTML_CHARS.put("\\{\\\\\\~a\\}", "ã");
-    HTML_CHARS.put("\\{\\\\\\~A\\}", "Ã");
-
-    HTML_CHARS.put("\\{\\\\c c\\}", "ç");
-    HTML_CHARS.put("\\{\\\\c C\\}", "Ç");
-    */
 
     XML_CHARS.put("\\{\\\\\\\"\\{a\\}\\}", "&#x00E4;");
     XML_CHARS.put("\\{\\\\\\\"\\{A\\}\\}", "&#x00C4;");
@@ -766,6 +693,8 @@ public class Globals {
     XML_CHARS.put("\\{\\\\\\'a\\}", "&#x00E1;");
     XML_CHARS.put("\\{\\\\\\'A\\}", "&#x00C1;");
 
+    XML_CHARS.put("\\{\\\\\\^a\\}", "&#x00F4;");
+    XML_CHARS.put("\\{\\\\\\^A\\}", "&#x00D4;");
     XML_CHARS.put("\\{\\\\\\^o\\}", "&#x00F4;");
     XML_CHARS.put("\\{\\\\\\^O\\}", "&#x00D4;");
     XML_CHARS.put("\\{\\\\\\^u\\}", "&#x00F9;");
@@ -781,6 +710,11 @@ public class Globals {
     XML_CHARS.put("\\{\\\\\\~a\\}", "&#x00E3;");
     XML_CHARS.put("\\{\\\\\\~A\\}", "&#x00C3;");
 
+    ASCII2XML_CHARS.put("<", "<");
+    ASCII2XML_CHARS.put("\"", """);
+    ASCII2XML_CHARS.put(">", ">");
+
+
     UNICODE_CHARS.put("\u00C0", "A");
     UNICODE_CHARS.put("\u00C1", "A");
     UNICODE_CHARS.put("\u00C2", "A");
diff --git a/src/java/net/sf/jabref/IdComparator.java b/src/java/net/sf/jabref/IdComparator.java
new file mode 100644
index 0000000..5a238b2
--- /dev/null
+++ b/src/java/net/sf/jabref/IdComparator.java
@@ -0,0 +1,17 @@
+package net.sf.jabref;
+
+import java.util.Comparator;
+
+/**
+ * Comparator for sorting BibtexEntry objects based on their ID. This
+ * can be used to sort entries back into the order they were created,
+ * provided the IDs given to entries are lexically monotonically increasing.
+ */
+public class IdComparator implements Comparator {
+
+    public int compare(Object o1, Object o2) {
+        BibtexEntry one = (BibtexEntry)o1,
+                two = (BibtexEntry)o2;
+        return one.getId().compareTo(two.getId());
+    }
+}
diff --git a/src/java/net/sf/jabref/IncrementalSearcher.java b/src/java/net/sf/jabref/IncrementalSearcher.java
index f843d81..5d9872b 100644
--- a/src/java/net/sf/jabref/IncrementalSearcher.java
+++ b/src/java/net/sf/jabref/IncrementalSearcher.java
@@ -16,33 +16,14 @@ public class IncrementalSearcher {
     }
 
     public boolean search(String pattern, BibtexEntry bibtexEntry) {
-	hitInField = null;
-	//if (!prefs.getBoolean("caseSensitiveSearch"))
-	//    flags = Pattern.CASE_INSENSITIVE;
-	//Pattern pattern = Pattern.compile(searchString, flags);
+	    hitInField = null;
+	    //if (!prefs.getBoolean("caseSensitiveSearch"))
+	    //    flags = Pattern.CASE_INSENSITIVE;
+	    //Pattern pattern = Pattern.compile(searchString, flags);
 	
-	if (prefs.getBoolean("searchAll")) {
 	    Object[] fields = bibtexEntry.getAllFields();
 	    return searchFields(fields, bibtexEntry, pattern);
-	} else {
-	    if (prefs.getBoolean("searchReq")) {
-		String[] requiredField = bibtexEntry.getRequiredFields() ;
-		if (searchFields(requiredField, bibtexEntry, pattern))
-		    return true;
-	    }
-	    if (prefs.getBoolean("searchOpt")) {
-		String[] optionalField = bibtexEntry.getOptionalFields() ;
-		if (searchFields(optionalField, bibtexEntry, pattern))
-		    return true;
-	    }
-	    if (prefs.getBoolean("searchGen")) {
-		String[] generalField = bibtexEntry.getGeneralFields() ;
-		if (searchFields(generalField, bibtexEntry, pattern))
-		    return true;
-	    }
-	}
 
-        return false;
     }
 
 	protected boolean searchFields(Object[] fields, BibtexEntry bibtexEntry, 
diff --git a/src/java/net/sf/jabref/JabRef.java b/src/java/net/sf/jabref/JabRef.java
index 0c758c7..0e46812 100644
--- a/src/java/net/sf/jabref/JabRef.java
+++ b/src/java/net/sf/jabref/JabRef.java
@@ -24,7 +24,6 @@
  */
 package net.sf.jabref;
 
-import com.jgoodies.plaf.FontSizeHints;
 import net.sf.jabref.export.*;
 import net.sf.jabref.imports.*;
 import net.sf.jabref.wizard.auximport.*;
@@ -41,11 +40,9 @@ import java.util.*;
 
 import javax.swing.*;
 
-import com.jgoodies.plaf.plastic.Plastic3DLookAndFeel;
-import com.jgoodies.plaf.windows.ExtWindowsLookAndFeel;
-
-
-
+import com.jgoodies.looks.plastic.Plastic3DLookAndFeel;
+import com.jgoodies.looks.windows.WindowsLookAndFeel;
+import com.jgoodies.looks.FontPolicy;
 
 //import javax.swing.UIManager;
 //import javax.swing.UIDefaults;
@@ -74,15 +71,7 @@ public class JabRef {
 
     public JabRef(String[] args) {
 
-        /*
-        String aut = "{Bill and Bob Alver}, Jr., Morten Omholt and Alfredsen, Jo A. and Øie, G. and Yngvar von Olsen";
-        System.out.println("lastnameFirst: "+ImportFormatReader.fixAuthor_lastNameFirst(aut));
-        System.out.println("lastnameFirstCommas: "+ImportFormatReader.fixAuthor_lastNameFirstCommas(aut,false));
-        System.out.println("lastnameFirstCommas (abbr): "+ImportFormatReader.fixAuthor_lastNameFirstCommas(aut,true));
-        System.out.println("firstNameFirst: "+ImportFormatReader.fixAuthor_firstNameFirst(aut));
-        System.out.println("firstNameFirstCommas: "+ImportFormatReader.fixAuthor_firstNameFirstCommas(aut, false));
-        System.out.println("forAlphabetization: "+ImportFormatReader.fixAuthorForAlphabetization(aut));
-        */
+
         ths = this;
         JabRefPreferences prefs = JabRefPreferences.getInstance();
         Globals.prefs = prefs;
@@ -200,7 +189,7 @@ public class JabRef {
             // To specify export formats, we need to take the custom export formats
             // into account.
             // So we iterate through the custom formats and add them.
-            String outFormats = ": bibtexml, docbook, html, simplehtml";
+            String outFormats = ": bibtexml, docbook, endnote, harvard, html, mods, ods, oocalc, simplehtml";
             int length = outFormats.length();
 
             for (int i = 0; i < Globals.prefs.customExports.size(); i++) {
@@ -242,19 +231,32 @@ public class JabRef {
         Vector toImport = new Vector();
         if (!blank.isInvoked() && (leftOver.length > 0))  {
             for (int i = 0; i < leftOver.length; i++) {
-                // Leftover arguments are interpreted as bib files to open.
-
-                ParserResult pr = openBibFile(leftOver[i]);
-
-                if (pr != null) {
-                    if (pr == ParserResult.INVALID_FORMAT)
-                        // We will try to import this file instead:
+                // Leftover arguments that have a "bib" extension are interpreted as
+                // bib files to open. Other files, and files that could not be opened
+                // as bib, we try to import instead.
+                boolean bibExtension = leftOver[i].toLowerCase().endsWith("bib");
+                ParserResult pr = null;
+                if (bibExtension)
+                    pr = openBibFile(leftOver[i]);
+
+                if ((pr == null) || (pr == ParserResult.INVALID_FORMAT)) {
+                    // We will try to import this file. Normally we
+                    // will import it into a new tab, but if this import has
+                    // been initiated by another instance through the remote
+                    // listener, we will instead import it into the current database.
+                    // This will enable easy integration with web browers that can
+                    // open a reference file in JabRef.
+                    if (initialStartup) {
                         toImport.add(leftOver[i]);
-                    else
-                        loaded.add(pr);
-                } else {
-
+                    } else {
+                        ParserResult res = importToOpenBase(leftOver[i]);
+                        if (res != null)
+                            loaded.add(res);
+                    }
                 }
+                else
+                    loaded.add(pr);
+
             }
         }
 
@@ -264,141 +266,68 @@ public class JabRef {
             toImport.add(importFile.getStringValue());
         }
 
-        if (toImport.size() > 0) for (int i=0; i<toImport.size(); i++) {
-            String[] data = ((String)toImport.elementAt(i)).split(",");
+        if (toImport.size() > 0) for (int i = 0; i < toImport.size(); i++) {
+            String[] data = ((String) toImport.elementAt(i)).split(",");
 
-            /*if (data.length == 1) {
-                // Load a bibtex file:
-                ParserResult pr = openBibFile(data[0]);
+            try {
 
-                if (pr != null)
+                if ((data.length > 1) && !"*".equals(data[1])) {
+                    System.out.println(Globals.lang("Importing") + ": " + data[0]);
+                    List entries =
+                            Globals.importFormatReader.importFromFile(data[1],
+                                    data[0].replaceAll("~", System.getProperty("user.home")));
+                    BibtexDatabase base = ImportFormatReader.createDatabase(entries);
+                    ParserResult pr = new ParserResult(base, null, new HashMap());
                     loaded.add(pr);
-            } else if (data.length == 2) {*/
-                // Import a database in a certain format.
-                try {
 
-                    if ((data.length > 1) && !"*".equals(data[1])) {
-                        System.out.println(Globals.lang("Importing") + ": " + data[0]);
-                        List entries =
-                            Globals.importFormatReader.importFromFile(data[1],
-                                data[0].replaceAll("~", System.getProperty("user.home")));
-                        BibtexDatabase base = ImportFormatReader.createDatabase(entries);
-                        ParserResult pr = new ParserResult(base, null, new HashMap());
-                        loaded.add(pr);
-                        
-                    } else {
-                        // * means "guess the format":
-                        System.out.println(Globals.lang("Importing in unknown format")
+                } else {
+                    // * means "guess the format":
+                    System.out.println(Globals.lang("Importing in unknown format")
                             + ": " + data[0]);
 
-                        Object[] o =
+                    Object[] o =
                             Globals.importFormatReader.importUnknownFormat(data[0]
-                                .replaceAll("~", System.getProperty("user.home")));
-                        String formatName = (String) o[0];
-
-                        if (formatName == null) {
-                            System.err.println(Globals.lang("Error opening file")+" '"+data[0]+"'");    
-                        }
-                        else if (formatName.equals(ImportFormatReader.BIBTEX_FORMAT)) {
-                            ParserResult pr = (ParserResult)o[1];
-                            loaded.add(pr);  
-
-                        }
-                        else {
-                            List entries = (java.util.List) o[1];
-                            if (entries != null)
-                                System.out.println(Globals.lang("Format used") + ": "
-                                    + formatName);
-                            else
-                                System.out.println(Globals.lang(
-                                        "Could not find a suitable import format."));
-
-                            if (entries != null) {
-                                BibtexDatabase base = ImportFormatReader.createDatabase(entries);
-                                ParserResult pr = new ParserResult(base, null, new HashMap());
-                        
-                                //pr.setFile(new File(data[0]));
-                                loaded.add(pr);
-                            }
-                        }
-                    }
-                } catch (IOException ex) {
-                    System.err.println(Globals.lang("Error opening file") + " '"
-                        + data[0] + "': " + ex.getMessage());
-                }
-
-
-        }
-
-
-        if (/*!initialStartup && */!blank.isInvoked() && importToOpenBase.isInvoked()) {
-            String[] data = importToOpenBase.getStringValue().split(",");
-
-            /*if (data.length == 1) {
-                // Load a bibtex file:
-                ParserResult pr = openBibFile(data[0]);
-
-                if (pr != null) {
-                    pr.setToOpenTab(true);
-                    loaded.add(pr);
-                }
-            } else if (data.length == 2) {*/
-                // Import a database in a certain format.
-                try {
+                                    .replaceAll("~", System.getProperty("user.home")));
+                    String formatName = (String) o[0];
 
-                    if ((data.length > 1) && !"*".equals(data[1])) {
-                        System.out.println(Globals.lang("Importing") + ": " + data[0]);
-                        List entries =
-                            Globals.importFormatReader.importFromFile(data[1],
-                                data[0].replaceAll("~", System.getProperty("user.home")));
-                        BibtexDatabase base = ImportFormatReader.createDatabase(entries);
-                        ParserResult pr = new ParserResult(base, null, new HashMap());
-                        pr.setToOpenTab(true);
+                    if (formatName == null) {
+                        System.err.println(Globals.lang("Error opening file") + " '" + data[0] + "'");
+                    } else if (formatName.equals(ImportFormatReader.BIBTEX_FORMAT)) {
+                        ParserResult pr = (ParserResult) o[1];
                         loaded.add(pr);
 
                     } else {
-                        // * means "guess the format":
-                        System.out.println(Globals.lang("Importing in unknown format")
-                            + ": " + data[0]);
-
-                        Object[] o =
-                            Globals.importFormatReader.importUnknownFormat(data[0]
-                                .replaceAll("~", System.getProperty("user.home")));
-                        String formatName = (String) o[0];
-
-                        if (formatName.equals(ImportFormatReader.BIBTEX_FORMAT)) {
-                            ParserResult pr = (ParserResult)o[1];
-                            pr.setToOpenTab(true);
-                            loaded.add(pr);
-
-                        }
-                        else {
-                            List entries = (java.util.List) o[1];
-                            if (entries != null)
-                                System.out.println(Globals.lang("Format used") + ": "
+                        List entries = (java.util.List) o[1];
+                        if (entries != null)
+                            System.out.println(Globals.lang("Format used") + ": "
                                     + formatName);
-                            else
-                                System.out.println(Globals.lang(
-                                        "Could not find a suitable import format."));
+                        else
+                            System.out.println(Globals.lang(
+                                    "Could not find a suitable import format."));
 
-                            if (entries != null) {
-                                BibtexDatabase base = ImportFormatReader.createDatabase(entries);
-                                ParserResult pr = new ParserResult(base, null, new HashMap());
+                        if (entries != null) {
+                            BibtexDatabase base = ImportFormatReader.createDatabase(entries);
+                            ParserResult pr = new ParserResult(base, null, new HashMap());
 
-                                //pr.setFile(new File(data[0]));
-                                pr.setToOpenTab(true);
-                                loaded.add(pr);
-                            }
+                            //pr.setFile(new File(data[0]));
+                            loaded.add(pr);
                         }
                     }
-                } catch (IOException ex) {
-                    System.err.println(Globals.lang("Error opening file") + " '"
-                        + data[0] + "': " + ex.getMessage());
                 }
+            } catch (IOException ex) {
+                System.err.println(Globals.lang("Error opening file") + " '"
+                        + data[0] + "': " + ex.getMessage());
+            }
+
+
+        }
 
 
+        if (!blank.isInvoked() && importToOpenBase.isInvoked()) {
+            ParserResult res = importToOpenBase(importToOpenBase.getStringValue());
+            if (res != null)
+                loaded.add(res);
         }
-        //Util.pr(": Finished import");
 
         if (exportFile.isInvoked()) {
             if (loaded.size() > 0) {
@@ -442,7 +371,7 @@ public class JabRef {
 
                         if (format[0].equals(data[1])) {
                             // Found the correct export format here.
-                            //System.out.println(format[0]+" "+format[1]+" "+format[2]);
+                            
                             try {
                                 File lfFile = new File(format[1]);
 
@@ -468,8 +397,10 @@ public class JabRef {
                     if (!foundCustom) {
                         try {
                             System.out.println(Globals.lang("Exporting") + ": " + data[0]);
-                            FileActions.exportDatabase(pr.getDatabase(), data[1],
-                                new File(data[0]), pr.getEncoding());
+                            FileActions.performExport(pr.getDatabase(), data[1], data[0],
+                                    pr.getEncoding());
+                            //FileActions.exportDatabase(pr.getDatabase(), data[1],
+                            //    new File(data[0]), pr.getEncoding());
                         } catch (NullPointerException ex2) {
                             System.err.println(Globals.lang("Unknown export format")
                                 + ": " + data[1]);
@@ -597,17 +528,10 @@ public class JabRef {
                     lookAndFeel = defaultLookAndFeel;
 
                 LookAndFeel lnf = null;
-
-                //Class plastic =
-                // Class.forName("com.jgoodies.plaf.plastic.PlasticLookAndFeel");
-                //PlasticLookAndFeel lnf = new
-                // com.jgoodies.plaf.plastic.Plastic3DLookAndFeel();
                 Object objLnf = null;
 
 
                 try {
-                    //lnf2 =
-                    // Class.forName("com.jgoodies.plaf.plastic.Plastic3DLookAndFeel").newInstance();
                     if (lookAndFeel != null)
                         objLnf = Class.forName(lookAndFeel).newInstance();
                     else
@@ -625,18 +549,21 @@ public class JabRef {
                     lnf = (LookAndFeel) objLnf;
 
                 // Set font sizes if we are using a JGoodies look and feel.
-                if ((lnf != null) && (lnf instanceof Plastic3DLookAndFeel)) {
+                /*if ((lnf != null) && (lnf instanceof Plastic3DLookAndFeel)) {
+
                     //MetalLookAndFeel.setCurrentTheme(new
                     // com.jgoodies.plaf.plastic.theme.SkyBluer());
                     Plastic3DLookAndFeel plLnf = (Plastic3DLookAndFeel) lnf;
-                    plLnf.setFontSizeHints(new FontSizeHints(fontSizes, fontSizes,
-                            fontSizes, fontSizes));
-                } else if ((lnf != null) && (lnf instanceof ExtWindowsLookAndFeel)) {
+                    Plastic3DLookAndFeel.setFontPolicy();
+                    //Plastic3DLookAndFeel.setFontPolicy(FontPolicy.);
+                    //plLnf.setFontSizeHints(new FontSizeHints(fontSizes, fontSizes,
+                    //        fontSizes, fontSizes));
+                } else if ((lnf != null) && (lnf instanceof WindowsLookAndFeel)) {
                     //System.out.println("ttt");
-                    ExtWindowsLookAndFeel plLnf = (ExtWindowsLookAndFeel) lnf;
-                    plLnf.setFontSizeHints(new FontSizeHints(fontSizes, fontSizes,
-                            fontSizes, fontSizes));
-                }
+                    //ExtWindowsLookAndFeel plLnf = (ExtWindowsLookAndFeel) lnf;
+                    //plLnf.setFontSizeHints(new FontSizeHints(fontSizes, fontSizes,
+                    //        fontSizes, fontSizes));
+                } */
 
                 if (lnf != null) {
                     try {
@@ -665,6 +592,7 @@ public class JabRef {
                     //com.incors.plaf.kunststoff.KunststoffLookAndFeel.setCurrentTheme(new
                     // com.incors.plaf.kunststoff.themes.KunststoffDesktopTheme());
                 }
+
             }
 
 
@@ -781,4 +709,62 @@ lastEdLoop:
 
         return null;
     }
+
+    public static ParserResult importToOpenBase(String argument) {
+        String[] data = argument.split(",");
+        try {
+            if ((data.length > 1) && !"*".equals(data[1])) {
+                System.out.println(Globals.lang("Importing") + ": " + data[0]);
+                List entries =
+                    Globals.importFormatReader.importFromFile(data[1],
+                        data[0].replaceAll("~", System.getProperty("user.home")));
+                BibtexDatabase base = ImportFormatReader.createDatabase(entries);
+                ParserResult pr = new ParserResult(base, null, new HashMap());
+                pr.setToOpenTab(true);
+                //loaded.add(pr);
+                return pr;
+            } else {
+                // * means "guess the format":
+                System.out.println(Globals.lang("Importing in unknown format")
+                    + ": " + data[0]);
+
+                Object[] o =
+                    Globals.importFormatReader.importUnknownFormat(data[0]
+                        .replaceAll("~", System.getProperty("user.home")));
+                String formatName = (String) o[0];
+
+                if (formatName.equals(ImportFormatReader.BIBTEX_FORMAT)) {
+                    ParserResult pr = (ParserResult)o[1];
+                    pr.setToOpenTab(true);
+                    //loaded.add(pr);
+                    return pr;
+                }
+                else {
+                    List entries = (java.util.List) o[1];
+                    if (entries != null)
+                        System.out.println(Globals.lang("Format used") + ": "
+                            + formatName);
+                    else
+                        System.out.println(Globals.lang(
+                                "Could not find a suitable import format."));
+
+                    if (entries != null) {
+                        BibtexDatabase base = ImportFormatReader.createDatabase(entries);
+                        ParserResult pr = new ParserResult(base, null, new HashMap());
+
+                        //pr.setFile(new File(data[0]));
+                        pr.setToOpenTab(true);
+                        //loaded.add(pr);
+                        return pr;
+                    }
+                }
+
+            }
+        } catch (IOException ex) {
+            System.err.println(Globals.lang("Error opening file") + " '"
+                + data[0] + "': " + ex.getMessage());
+        }
+
+        return null;
+    }
 }
diff --git a/src/java/net/sf/jabref/JabRefFrame.java b/src/java/net/sf/jabref/JabRefFrame.java
index 7fd6b82..7b3689f 100644
--- a/src/java/net/sf/jabref/JabRefFrame.java
+++ b/src/java/net/sf/jabref/JabRefFrame.java
@@ -45,12 +45,8 @@ import javax.swing.*;
 
 import java.awt.*;
 import java.awt.event.*;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.SortedSet;
-import java.util.Vector;
+import java.util.*;
 import java.util.List;
-import java.util.Iterator;
 import java.io.*;
 import java.net.URL;
 import net.sf.jabref.undo.NamedCompound;
@@ -62,9 +58,11 @@ import javax.swing.event.*;
 import net.sf.jabref.wizard.integrity.gui.*;
 import net.sf.jabref.groups.GroupSelector;
 import net.sf.jabref.journals.ManageJournalsAction;
+import net.sf.jabref.external.*;
 import com.jgoodies.uif_lite.component.UIFSplitPane;
-import com.jgoodies.plaf.HeaderStyle;
-import com.jgoodies.plaf.Options;
+import com.jgoodies.looks.Options;
+import com.jgoodies.looks.HeaderStyle;
+
 
 /**
  * The main window of the application.
@@ -172,6 +170,7 @@ public class JabRefFrame
                                          GUIGlobals.saveAsIconFile),
       nextTab = new ChangeTabAction(true),
       prevTab = new ChangeTabAction(false),
+      sortTabs = new SortTabsAction(this),
       undo = new GeneralAction("undo", "Undo", "Undo",
                                GUIGlobals.undoIconFile,
                                prefs.getKey("Undo")),
@@ -267,16 +266,11 @@ public class JabRefFrame
                                         "Autogenerate BibTeX keys",
                                         GUIGlobals.genKeyIconFile,
                                         prefs.getKey("Autogenerate BibTeX keys")),
-      lyxPushAction = new GeneralAction("pushToLyX",
-                                        "Insert selected citations into LyX/Kile",
-                                        "Push selection to LyX/Kile",
-                                        GUIGlobals.lyxIconFile,
-                                        prefs.getKey("Push to LyX")),
-      winEdtPushAction = new GeneralAction("pushToWinEdt",
-                                        "Insert selected citations into WinEdt",
-                                        "Push selection to WinEdt",
-                                        GUIGlobals.winEdtIcon,
-                                        prefs.getKey("Push to WinEdt")),
+
+      lyxPushAction = new PushToApplicationAction(ths, new PushToLyx()),
+
+      winEdtPushAction = new PushToApplicationAction(ths, new PushToWinEdt()),
+      latexEditorPushAction = new PushToApplicationAction(ths, new PushToLatexEditor()),
       openFile = new GeneralAction("openFile", "Open PDF or PS",
                                    "Open PDF or PS",
                                    GUIGlobals.pdfIcon,
@@ -312,10 +306,10 @@ public class JabRefFrame
             Globals.prefs.getKey("Unabbreviate")),
     manageJournals = new ManageJournalsAction(this),
     databaseProperties = new DatabasePropertiesAction(),
-    emacsPushAction = new GeneralAction("pushToEmacs", "Insert selected citations into Emacs",
-            "Push selection to Emacs", GUIGlobals.emacsIcon,
-            Globals.prefs.getKey("Push to Emacs"));
-    //test = new GeneralAction("test", "Test");
+    emacsPushAction = new PushToApplicationAction(ths, new PushToEmacs()),
+
+      errorConsole = Globals.errorConsole.getAction(this),
+    test = new GeneralAction("test", "Test");
 
   /*setupSelector = new GeneralAction("setupSelector", "", "",
           GUIGlobals.pasteIconFile,
@@ -325,6 +319,7 @@ public class JabRefFrame
     MedlineFetcher medlineFetcher;
     CiteSeerFetcher citeSeerFetcher;
     CiteSeerFetcherPanel citeSeerFetcherPanel;
+    IEEEXploreFetcher ieeexplorerFetcher;
     SearchManager2 searchManager;
     public GroupSelector groupSelector;
 
@@ -335,6 +330,9 @@ public class JabRefFrame
       customExportMenu = subMenu("Custom export"),
       newDatabaseMenu = subMenu("New database" );
 
+  // Other submenus
+  JMenu checkAndFix = subMenu("Find And Fix") ;
+
 
   // The action for adding a new entry of unspecified type.
   NewEntryAction newEntryAction = new NewEntryAction(prefs.getKey("New entry"));
@@ -354,7 +352,8 @@ public class JabRefFrame
       new NewEntryAction("techreport"),
       new NewEntryAction("unpublished",
                          prefs.getKey("New unpublished")),
-      new NewEntryAction("misc")
+      new NewEntryAction("misc"),
+      new NewEntryAction("other")
   };
 
   public JabRefFrame() {
@@ -374,7 +373,7 @@ public class JabRefFrame
       MyGlassPane glassPane = new MyGlassPane();
     setGlassPane(glassPane);
     //  glassPane.setVisible(true);
-    
+
       setTitle(GUIGlobals.frameTitle);
     setIconImage(new ImageIcon(GUIGlobals.jabreflogo).getImage());
     setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
@@ -394,6 +393,7 @@ public class JabRefFrame
     medlineFetcher = new MedlineFetcher(sidePaneManager);
     citeSeerFetcher = new CiteSeerFetcher(sidePaneManager);
     citeSeerFetcherPanel = new CiteSeerFetcherPanel(sidePaneManager, (CiteSeerFetcher)citeSeerFetcher);
+    ieeexplorerFetcher = new IEEEXploreFetcher();
     searchManager = new SearchManager2(this, sidePaneManager);
       // Groups
       /*if (metaData.getGroups() != null) {
@@ -966,7 +966,7 @@ public JabRefPreferences prefs() {
     setUpImportMenu(importMenu, false);
     setUpImportMenu(importNewMenu, true);
   }
-  
+
   private void fillMenu() {
     //mb.putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.BOTH);
       mb.setBorder(null);
@@ -975,6 +975,7 @@ public JabRefPreferences prefs() {
         bibtex = subMenu("BibTeX"),
         view = subMenu("View"),
         tools = subMenu("Tools"),
+        web = subMenu("Web search"),
         options = subMenu("Options"),
         newSpec = subMenu("New entry..."),
         helpMenu = subMenu("Help");
@@ -1019,7 +1020,7 @@ public JabRefPreferences prefs() {
     //=====================================
     file.add(quit);
     mb.add(file);
-    //edit.add(test);
+    edit.add(test);
     edit.add(undo);
     edit.add(redo);
     edit.addSeparator();
@@ -1041,6 +1042,7 @@ public JabRefPreferences prefs() {
     mb.add(edit);
     view.add(nextTab);
     view.add(prevTab);
+      view.add(sortTabs);
     view.addSeparator();
     view.add(toggleGroups);
     view.add(togglePreview);
@@ -1062,27 +1064,30 @@ public JabRefPreferences prefs() {
     bibtex.add(editPreamble);
     bibtex.add(editStrings);
     mb.add(bibtex);
+
     tools.add(normalSearch);
     tools.add(incrementalSearch);
     tools.add(replaceAll);
-    tools.add(dupliCheck);
-    tools.add(strictDupliCheck);
+
+    // [kiar] I think we should group these festures
+    tools.add(checkAndFix) ;
+     checkAndFix.add( dupliCheck);
+     checkAndFix.add( strictDupliCheck);
+     checkAndFix.add( makeKeyAction);
+     checkAndFix.add( integrityCheckAction) ;
+
     tools.addSeparator();
     tools.add(manageSelectors);
-    tools.add(makeKeyAction);
     tools.add(emacsPushAction);
     tools.add(lyxPushAction);
     tools.add(winEdtPushAction);
-    tools.add(fetchMedline);
-    tools.add(citeSeerPanelAction);
-    tools.add(fetchCiteSeer);
+    tools.add(latexEditorPushAction);
     //tools.add(fetchAuthorMedline);
     tools.addSeparator();
     tools.add(openFile);
     tools.add(openUrl);
     tools.addSeparator();
     tools.add(newSubDatabaseAction);
-    tools.add(integrityCheckAction) ;
 
       tools.addSeparator();
       tools.add(autoSetPdf);
@@ -1093,6 +1098,14 @@ public JabRefPreferences prefs() {
 
     mb.add(tools);
 
+    web.add(fetchMedline);
+    web.add(citeSeerPanelAction);
+    web.add(fetchCiteSeer);
+    GeneralFetcher ieex = new GeneralFetcher(sidePaneManager, this, ieeexplorerFetcher);
+    web.add(ieex.getAction());
+
+      mb.add(web);
+
     options.add(showPrefs);
     AbstractAction customizeAction = new CustomizeEntryTypeAction();
     AbstractAction genFieldsCustomization = new GenFieldsCustomizationAction();
@@ -1133,6 +1146,8 @@ public JabRefPreferences prefs() {
 //old about    helpMenu.add(about);
     helpMenu.add(about);
     mb.add(helpMenu);
+      helpMenu.addSeparator();
+      helpMenu.add(errorConsole);
   }
 
     private JMenu subMenu(String name) {
@@ -1249,7 +1264,7 @@ public JabRefPreferences prefs() {
                           RenderingHints.VALUE_ANTIALIAS_ON);
       g2.drawString(label, getWidth() - width - 7, getHeight() - 10);
 
-     
+
     }
   }
 
@@ -1307,136 +1322,137 @@ public JabRefPreferences prefs() {
     /**
      * Disable actions that demand an open database.
      */
-  private void setEmptyState() {
-    manageSelectors.setEnabled(false);
-    mergeDatabaseAction.setEnabled(false);
-    newSubDatabaseAction.setEnabled(false);
-    close.setEnabled(false);
-    save.setEnabled(false);
-    saveAs.setEnabled(false);
-    saveSelectedAs.setEnabled(false);
-    nextTab.setEnabled(false);
-    prevTab.setEnabled(false);
-    undo.setEnabled(false);
-    redo.setEnabled(false);
-    cut.setEnabled(false);
-    delete.setEnabled(false);
-    copy.setEnabled(false);
-    paste.setEnabled(false);
-    mark.setEnabled(false);
-    unmark.setEnabled(false);
-    unmarkAll.setEnabled(false);
-    editEntry.setEnabled(false);
-    importCiteSeer.setEnabled(false);
-    selectAll.setEnabled(false);
-    copyKey.setEnabled(false);
-    copyCiteKey.setEnabled(false);
-    editPreamble.setEnabled(false);
-    editStrings.setEnabled(false);
-    toggleGroups.setEnabled(false);
-    toggleSearch.setEnabled(false);
-    makeKeyAction.setEnabled(false);
-    emacsPushAction.setEnabled(false);
-    lyxPushAction.setEnabled(false);
-    winEdtPushAction.setEnabled(false);
-    normalSearch.setEnabled(false);
-    incrementalSearch.setEnabled(false);
-    replaceAll.setEnabled(false);
-    importMenu.setEnabled(false);
-    exportMenu.setEnabled(false);
-    fetchMedline.setEnabled(false);
-    fetchCiteSeer.setEnabled(false);
-    openFile.setEnabled(false);
-    openUrl.setEnabled(false);
-    togglePreview.setEnabled(false);
-    dupliCheck.setEnabled(false);
-    strictDupliCheck.setEnabled(false);
-    highlightAll.setEnabled(false);
-    highlightAny.setEnabled(false);
-    citeSeerPanelAction.setEnabled(false);
-    for (int i = 0; i < newSpecificEntryAction.length; i++) {
-      newSpecificEntryAction[i].setEnabled(false);
-    }
-    newEntryAction.setEnabled(false);
-    plainTextImport.setEnabled(false);
-    closeDatabaseAction.setEnabled(false);
-    switchPreview.setEnabled(false);
-    integrityCheckAction.setEnabled(false);
-    autoSetPdf.setEnabled(false);
-    autoSetPs.setEnabled(false);
-    toggleHighlightAny.setEnabled(false);
-    toggleHighlightAll.setEnabled(false);
+    private void setEmptyState() {
+        manageSelectors.setEnabled(false);
+        mergeDatabaseAction.setEnabled(false);
+        newSubDatabaseAction.setEnabled(false);
+        close.setEnabled(false);
+        save.setEnabled(false);
+        saveAs.setEnabled(false);
+        saveSelectedAs.setEnabled(false);
+        nextTab.setEnabled(false);
+        prevTab.setEnabled(false);
+        sortTabs.setEnabled(false);
+        undo.setEnabled(false);
+        redo.setEnabled(false);
+        cut.setEnabled(false);
+        delete.setEnabled(false);
+        copy.setEnabled(false);
+        paste.setEnabled(false);
+        mark.setEnabled(false);
+        unmark.setEnabled(false);
+        unmarkAll.setEnabled(false);
+        editEntry.setEnabled(false);
+        importCiteSeer.setEnabled(false);
+        selectAll.setEnabled(false);
+        copyKey.setEnabled(false);
+        copyCiteKey.setEnabled(false);
+        editPreamble.setEnabled(false);
+        editStrings.setEnabled(false);
+        toggleGroups.setEnabled(false);
+        toggleSearch.setEnabled(false);
+        makeKeyAction.setEnabled(false);
+        emacsPushAction.setEnabled(false);
+        lyxPushAction.setEnabled(false);
+        winEdtPushAction.setEnabled(false);
+        normalSearch.setEnabled(false);
+        incrementalSearch.setEnabled(false);
+        replaceAll.setEnabled(false);
+        importMenu.setEnabled(false);
+        exportMenu.setEnabled(false);
+        fetchMedline.setEnabled(false);
+        fetchCiteSeer.setEnabled(false);
+        openFile.setEnabled(false);
+        openUrl.setEnabled(false);
+        togglePreview.setEnabled(false);
+        dupliCheck.setEnabled(false);
+        strictDupliCheck.setEnabled(false);
+        highlightAll.setEnabled(false);
+        highlightAny.setEnabled(false);
+        citeSeerPanelAction.setEnabled(false);
+        for (int i = 0; i < newSpecificEntryAction.length; i++) {
+            newSpecificEntryAction[i].setEnabled(false);
+        }
+        newEntryAction.setEnabled(false);
+        plainTextImport.setEnabled(false);
+        closeDatabaseAction.setEnabled(false);
+        switchPreview.setEnabled(false);
+        integrityCheckAction.setEnabled(false);
+        autoSetPdf.setEnabled(false);
+        autoSetPs.setEnabled(false);
+        toggleHighlightAny.setEnabled(false);
+        toggleHighlightAll.setEnabled(false);
         databaseProperties.setEnabled(false);
-    abbreviateIso.setEnabled(false);
-    abbreviateMedline.setEnabled(false);
-    unabbreviate.setEnabled(false);
-  }
+        abbreviateIso.setEnabled(false);
+        abbreviateMedline.setEnabled(false);
+        unabbreviate.setEnabled(false);
+    }
 
     /**
      * Enable actions that demand an open database.
      */
-  private void setNonEmptyState() {
-    manageSelectors.setEnabled(true);
-    mergeDatabaseAction.setEnabled(true);
-    newSubDatabaseAction.setEnabled(true);
-    close.setEnabled(true);
-    save.setEnabled(true);
-    saveAs.setEnabled(true);
-    saveSelectedAs.setEnabled(true);
-    undo.setEnabled(true);
-    redo.setEnabled(true);
-    cut.setEnabled(true);
-    delete.setEnabled(true);
-    copy.setEnabled(true);
-    paste.setEnabled(true);
-    mark.setEnabled(true);
-    unmark.setEnabled(true);
-    unmarkAll.setEnabled(true);
-    editEntry.setEnabled(true);
-    importCiteSeer.setEnabled(true);
-    selectAll.setEnabled(true);
-    copyKey.setEnabled(true);
-    copyCiteKey.setEnabled(true);
-    editPreamble.setEnabled(true);
-    editStrings.setEnabled(true);
-    toggleGroups.setEnabled(true);
-    toggleSearch.setEnabled(true);
-    makeKeyAction.setEnabled(true);
-    emacsPushAction.setEnabled(true);
-    lyxPushAction.setEnabled(true);
-    winEdtPushAction.setEnabled(true);
-    normalSearch.setEnabled(true);
-    incrementalSearch.setEnabled(true);
-    replaceAll.setEnabled(true);
-    importMenu.setEnabled(true);
-    exportMenu.setEnabled(true);
-    fetchMedline.setEnabled(true);
-    fetchCiteSeer.setEnabled(true);
-    openFile.setEnabled(true);
-    openUrl.setEnabled(true);
-    togglePreview.setEnabled(true);
-    dupliCheck.setEnabled(true);
-    strictDupliCheck.setEnabled(true);
-    highlightAll.setEnabled(true);
-    highlightAny.setEnabled(true);
-    citeSeerPanelAction.setEnabled(true);
-    for (int i = 0; i < newSpecificEntryAction.length; i++) {
-      newSpecificEntryAction[i].setEnabled(true);
-    }
-    newEntryAction.setEnabled(true);
-    plainTextImport.setEnabled(true);
-    closeDatabaseAction.setEnabled(true);
-    switchPreview.setEnabled(true);
-    integrityCheckAction.setEnabled(true);
-    autoSetPdf.setEnabled(true);
-    autoSetPs.setEnabled(true);
-    toggleHighlightAny.setEnabled(true);
-    toggleHighlightAll.setEnabled(true);
-    databaseProperties.setEnabled(true);
-    abbreviateIso.setEnabled(true);
-    abbreviateMedline.setEnabled(true);
-    unabbreviate.setEnabled(true);
-  }
+    private void setNonEmptyState() {
+        manageSelectors.setEnabled(true);
+        mergeDatabaseAction.setEnabled(true);
+        newSubDatabaseAction.setEnabled(true);
+        close.setEnabled(true);
+        save.setEnabled(true);
+        saveAs.setEnabled(true);
+        saveSelectedAs.setEnabled(true);
+        undo.setEnabled(true);
+        redo.setEnabled(true);
+        cut.setEnabled(true);
+        delete.setEnabled(true);
+        copy.setEnabled(true);
+        paste.setEnabled(true);
+        mark.setEnabled(true);
+        unmark.setEnabled(true);
+        unmarkAll.setEnabled(true);
+        editEntry.setEnabled(true);
+        importCiteSeer.setEnabled(true);
+        selectAll.setEnabled(true);
+        copyKey.setEnabled(true);
+        copyCiteKey.setEnabled(true);
+        editPreamble.setEnabled(true);
+        editStrings.setEnabled(true);
+        toggleGroups.setEnabled(true);
+        toggleSearch.setEnabled(true);
+        makeKeyAction.setEnabled(true);
+        emacsPushAction.setEnabled(true);
+        lyxPushAction.setEnabled(true);
+        winEdtPushAction.setEnabled(true);
+        normalSearch.setEnabled(true);
+        incrementalSearch.setEnabled(true);
+        replaceAll.setEnabled(true);
+        importMenu.setEnabled(true);
+        exportMenu.setEnabled(true);
+        fetchMedline.setEnabled(true);
+        fetchCiteSeer.setEnabled(true);
+        openFile.setEnabled(true);
+        openUrl.setEnabled(true);
+        togglePreview.setEnabled(true);
+        dupliCheck.setEnabled(true);
+        strictDupliCheck.setEnabled(true);
+        highlightAll.setEnabled(true);
+        highlightAny.setEnabled(true);
+        citeSeerPanelAction.setEnabled(true);
+        for (int i = 0; i < newSpecificEntryAction.length; i++) {
+            newSpecificEntryAction[i].setEnabled(true);
+        }
+        newEntryAction.setEnabled(true);
+        plainTextImport.setEnabled(true);
+        closeDatabaseAction.setEnabled(true);
+        switchPreview.setEnabled(true);
+        integrityCheckAction.setEnabled(true);
+        autoSetPdf.setEnabled(true);
+        autoSetPs.setEnabled(true);
+        toggleHighlightAny.setEnabled(true);
+        toggleHighlightAll.setEnabled(true);
+        databaseProperties.setEnabled(true);
+        abbreviateIso.setEnabled(true);
+        abbreviateMedline.setEnabled(true);
+        unabbreviate.setEnabled(true);
+    }
 
     /**
      * Disable actions that need more than one database open.
@@ -1444,6 +1460,7 @@ public JabRefPreferences prefs() {
     private void setOnlyOne() {
         nextTab.setEnabled(false);
         prevTab.setEnabled(false);
+        sortTabs.setEnabled(false);
     }
 
     /**
@@ -1452,6 +1469,7 @@ public JabRefPreferences prefs() {
     private void setMultiple() {
         nextTab.setEnabled(true);
         prevTab.setEnabled(true);
+        sortTabs.setEnabled(true);
     }
 
   /**
@@ -1618,7 +1636,7 @@ public JabRefPreferences prefs() {
     public void actionPerformed(ActionEvent e) {
         // Create a new, empty, database.
         BibtexDatabase database = new BibtexDatabase();
-        addTab(database, null, new HashMap(), Globals.prefs.get("defaultEncoding"), true);
+        addTab(database, null, null, Globals.prefs.get("defaultEncoding"), true);
         output(Globals.lang("New database created."));
     }
   }
@@ -1818,7 +1836,7 @@ class FetchCiteSeerAction
     {
       public IntegrityCheckAction()
       {
-        super(Globals.menuTitle("Integrity check"), //Globals.lang( "" ),
+        super(Globals.menuTitle("Integrity check"),
                new ImageIcon( GUIGlobals.integrityCheck ) ) ;
                //putValue( SHORT_DESCRIPTION, "integrity" ) ;  //Globals.lang( "integrity" ) ) ;
             //putValue(MNEMONIC_KEY, GUIGlobals.newKeyCode);
@@ -1833,7 +1851,6 @@ class FetchCiteSeerAction
          BibtexDatabase refBase = bp.getDatabase() ;
          if (refBase != null)
          {
-
              IntegrityWizard wizard = new IntegrityWizard(ths, basePanel()) ;
              Util.placeDialog(wizard, ths);
              wizard.setVisible(true) ;
@@ -1933,20 +1950,20 @@ class FetchCiteSeerAction
    * @param callBack The callback for the ImportInspectionDialog to use.
    */
   public void addImportedEntries(final BasePanel panel, final List entries, String filename, boolean openInNew,
-                                  ImportInspectionDialog.CallBack callBack) {
+                                 ImportInspectionDialog.CallBack callBack) {
       // Use the import inspection dialog if it is enabled in preferences, and (there are more than
       // one entry or the inspection dialog is also enabled for single entries):
       if (Globals.prefs.getBoolean("useImportInspectionDialog") &&
               (Globals.prefs.getBoolean("useImportInspectionDialogForSingle") || (entries.size() > 1))) {
-                String[] fields = new String[] {"author", "title", "year" };
-                ImportInspectionDialog diag = new ImportInspectionDialog(ths, panel, fields,
+                ImportInspectionDialog diag = new ImportInspectionDialog(ths, panel,
+                        BibtexFields.DEFAULT_INSPECTION_FIELDS,
                         Globals.lang("Import"), openInNew);
                 diag.addEntries(entries);
                 diag.addCallBack(callBack);
                 diag.entryListComplete();
                 Util.placeDialog(diag, ths);
                 diag.setVisible(true);
-		diag.toFront();
+        diag.toFront();
         } else {
             ths.addBibEntries(entries, filename, openInNew);
           if ((panel != null) && (entries.size() == 1)) {
@@ -1970,7 +1987,7 @@ class FetchCiteSeerAction
      * one.
      */
   public int addBibEntries(java.util.List bibentries, String filename,
-                             boolean intoNew) {
+                           boolean intoNew) {
           if (bibentries == null || bibentries.size() == 0) {
 
       // No entries found. We need a message for this.
@@ -2038,7 +2055,7 @@ class FetchCiteSeerAction
         // Check for duplicates among the current entries:
         if (checkForDuplicates) {
             loop: for (Iterator i2=database.getKeySet().iterator();
-                 i2.hasNext();) {
+                       i2.hasNext();) {
                 BibtexEntry existingEntry = database.getEntryById((String)i2.next());
                 if (Util.isDuplicate(entry, existingEntry,
                                      Globals.duplicateThreshold)) {
@@ -2100,7 +2117,7 @@ class FetchCiteSeerAction
 
       // Add custom importers
       importMenu.addSeparator();
-      
+
       SortedSet customImporters = Globals.importFormatReader.getCustomImportFormats();
       JMenu submenu = new JMenu(Globals.lang("Custom importers"));
       submenu.setMnemonic(KeyEvent.VK_S);
@@ -2112,12 +2129,12 @@ class FetchCiteSeerAction
         for (Iterator i=customImporters.iterator(); i.hasNext();) {
             ImportFormat imFo = (ImportFormat)i.next();
             submenu.add(new ImportMenuItem(ths, imFo, intoNew));
-        }        
+        }
       }
-      
+
       importMenu.add(submenu);
       importMenu.addSeparator();
-      
+
       // Put in all formatters registered in ImportFormatReader:
       for (Iterator i=Globals.importFormatReader.getBuiltInInputFormats().iterator(); i.hasNext();) {
           ImportFormat imFo = (ImportFormat)i.next();
@@ -2177,116 +2194,91 @@ class FetchCiteSeerAction
 
 
   private void setUpExportMenu(JMenu menu) {
-    ActionListener listener = new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        JMenuItem source = (JMenuItem) e.getSource();
-        String lfFileName = null, extension = null, directory = null;
-        if (source == htmlItem) {
-          lfFileName = "html";
-          extension = ".html";
-        }
-        if (source == simpleHtmlItem) {
-          lfFileName = "simplehtml";
-          extension = ".html";
-        }
-        //else if (source == plainTextItem)
-        //lfFileName = "text";
-        else if (source == docbookItem) {
-          lfFileName = "docbook";
-          extension = ".xml";
-        }
-        else if (source == bibtexmlItem) {
-          lfFileName = "bibtexml";
-          extension = ".xml";
-        }
-        else if (source == modsItem) {
-          lfFileName = "mods";
-          extension = ".xml";
-        }
-        else if (source == rtfItem) {
-          lfFileName = "harvard";
-          directory = "harvard";
-          extension = ".rtf";
-        }
-       else if (source == endnoteItem) {
-          lfFileName = "EndNote";
-          directory = "endnote";
-          extension = ".txt";
-        }
-        /*    else if (source == openofficeItem) {
-                  lfFileName = "openoffice-csv";
-                  directory = "openoffice";
-                  extension = ".csv";
-                }*/
-       else if (source == openofficeItem) {
-            lfFileName = "oocalc";
-            extension = ".sxc";
-       }
-       else if (source == odsItem) {
-            lfFileName = "ods";
-            extension = ".ods";
-       }
-        // We need to find out:
-        // 1. The layout definition string to use. Or, rather, we
-        //    must provide a Reader for the layout definition.
-        // 2. The preferred extension for the layout format.
-        // 3. The name of the file to use.
-        File outFile;
-        String chosenFile = Globals.getNewFile(ths, prefs, new File(prefs.get("workingDirectory")),
-                                               extension, JFileChooser.SAVE_DIALOG, false);
-        final String dir = (directory == null ? Globals.LAYOUT_PREFIX :
-                         Globals.LAYOUT_PREFIX+directory+"/");
-
-         if (chosenFile != null)
-           outFile = new File(chosenFile);
-
-         else {
-           return;
-         }
+      ActionListener listener = new ActionListener() {
+          public void actionPerformed(ActionEvent e) {
+              JMenuItem source = (JMenuItem) e.getSource();
+              String lfFileName = null, extension = null;
+              if (source == htmlItem) {
+                  lfFileName = "html";
+                  extension = ".html";
+              }
+              else if (source == simpleHtmlItem) {
+                  lfFileName = "simplehtml";
+                  extension = ".html";
+              } else if (source == docbookItem) {
+                  lfFileName = "docbook";
+                  extension = ".xml";
+              } else if (source == bibtexmlItem) {
+                  lfFileName = "bibtexml";
+                  extension = ".xml";
+              } else if (source == modsItem) {
+                  lfFileName = "mods";
+                  extension = ".xml";
+              } else if (source == rtfItem) {
+                  lfFileName = "harvard";
+                  extension = ".rtf";
+              } else if (source == endnoteItem) {
+                  lfFileName = "endnote";
+                  extension = ".txt";
+              } else if (source == openofficeItem) {
+                  lfFileName = "oocalc";
+                  extension = ".sxc";
+              } else if (source == odsItem) {
+                  lfFileName = "ods";
+                  extension = ".ods";
+              }
+              // We need to find out:
+              // 1. The layout definition string to use. Or, rather, we
+              //    must provide a Reader for the layout definition.
+              // 2. The preferred extension for the layout format.
+              // 3. The name of the file to use.
+              final String chosenFile = Globals.getNewFile(ths, prefs, new File(prefs.get("workingDirectory")),
+                      extension, JFileChooser.SAVE_DIALOG, false);
+              final String exportName = lfFileName;
+              if (chosenFile == null)
+                  return;
+
+              (new Thread() {
+                  public void run() {
+                      try {
+                          FileActions.performExport(basePanel().database(), exportName,
+                                  chosenFile, basePanel().getEncoding());
+                          output(Globals.lang("Exported database to file") + " '" +
+                                  chosenFile + "'.");
+                      }
+                      catch (Exception ex) {
+                          ex.printStackTrace();
+                      }
+                  }
+              }).start();
 
-        final String lfName = lfFileName;
-        final File oFile = outFile;
-        (new Thread() {
-          public void run() {
-            try {
-              FileActions.exportDatabase
-                  (basePanel().database, dir, lfName, oFile, basePanel().getEncoding());
-              output(Globals.lang("Exported database to file") + " '" +
-                     oFile.getPath() + "'.");
-            }
-            catch (Exception ex) {
-              ex.printStackTrace();
-            }
           }
-        }).start();
-
-      }
-    };
-
-    htmlItem.addActionListener(listener);
-    menu.add(htmlItem);
-    simpleHtmlItem.addActionListener(listener);
-    menu.add(simpleHtmlItem);
-    //plainTextItem.addActionListener(listener);
-    //menu.add(plainTextItem);
-    bibtexmlItem.addActionListener(listener);
-    menu.add(bibtexmlItem);
-    docbookItem.addActionListener(listener);
-    menu.add(docbookItem);
-    modsItem.addActionListener(listener);
-    menu.add(modsItem);
-    rtfItem.addActionListener(listener);
-    menu.add(rtfItem);
-    endnoteItem.addActionListener(listener);
-    menu.add(endnoteItem);
-        openofficeItem.addActionListener(listener);
+      };
+
+      htmlItem.addActionListener(listener);
+      menu.add(htmlItem);
+      simpleHtmlItem.addActionListener(listener);
+      menu.add(simpleHtmlItem);
+      //plainTextItem.addActionListener(listener);
+      //menu.add(plainTextItem);
+      bibtexmlItem.addActionListener(listener);
+      menu.add(bibtexmlItem);
+      docbookItem.addActionListener(listener);
+      menu.add(docbookItem);
+      modsItem.addActionListener(listener);
+      menu.add(modsItem);
+      rtfItem.addActionListener(listener);
+      menu.add(rtfItem);
+      endnoteItem.addActionListener(listener);
+      menu.add(endnoteItem);
+      openofficeItem.addActionListener(listener);
       odsItem.addActionListener(listener);
       menu.add(openofficeItem);
       menu.add(odsItem);
-    menu.add(exportCSV);
+      menu.add(exportCSV);
 
-    menu.addSeparator();
-    menu.add(expandEndnoteZip);
+      menu.addSeparator();
+      menu.add(expandEndnoteZip);
 
   }
 
@@ -2316,12 +2308,11 @@ class FetchCiteSeerAction
 
    public void removeCachedEntryEditors() {
        for (int j=0; j<tabbedPane.getTabCount(); j++) {
-	        BasePanel bp = (BasePanel)tabbedPane.getComponentAt(j);
-	        bp.entryEditors.clear();
+            BasePanel bp = (BasePanel)tabbedPane.getComponentAt(j);
+            bp.entryEditors.clear();
        }
    }
 
-
     /**
      * This method shows a wait cursor and blocks all input to the JFrame's contents.
      */
diff --git a/src/java/net/sf/jabref/JabRefPreferences.java b/src/java/net/sf/jabref/JabRefPreferences.java
index fd8b323..1a0f58a 100644
--- a/src/java/net/sf/jabref/JabRefPreferences.java
+++ b/src/java/net/sf/jabref/JabRefPreferences.java
@@ -39,6 +39,7 @@ import java.util.prefs.*;
 import java.util.*;
 import java.awt.event.*;
 import net.sf.jabref.export.ExportComparator;
+import net.sf.jabref.external.ExternalFileType;
 
 public class JabRefPreferences {
 
@@ -46,8 +47,8 @@ public class JabRefPreferences {
         CUSTOM_TYPE_NAME = "customTypeName_",
         CUSTOM_TYPE_REQ = "customTypeReq_",
         CUSTOM_TYPE_OPT = "customTypeOpt_",
-	CUSTOM_TAB_NAME = "customTabName_",
-	CUSTOM_TAB_FIELDS = "customTabFields_";
+    CUSTOM_TAB_NAME = "customTabName_",
+    CUSTOM_TAB_FIELDS = "customTabFields_";
 
     public String WRAPPED_USERNAME;
 
@@ -66,17 +67,20 @@ public class JabRefPreferences {
 
     /** Set with all custom {@link ImportFormat}s */
     public CustomImportList customImports;
-    
+
     // Object containing info about customized entry editor tabs.
     private EntryEditorTabList tabList = null;
 
+    // Map containing all registered external file types:
+    private Map externalFileTypes = new HashMap();
+
     // The only instance of this class:
     private static JabRefPreferences INSTANCE = null;
 
     public static JabRefPreferences getInstance() {
-	if (INSTANCE == null)
-	    INSTANCE = new JabRefPreferences();
-	return INSTANCE;
+    if (INSTANCE == null)
+        INSTANCE = new JabRefPreferences();
+    return INSTANCE;
     }
 
     // The constructor is made private to enforce this as a singleton class:
@@ -116,10 +120,10 @@ public class JabRefPreferences {
         defaults.put("tableColorCodesOn", Boolean.TRUE);
         defaults.put("namesAsIs", Boolean.FALSE);
         defaults.put("namesFf", Boolean.FALSE);
-	    defaults.put("namesLf", Boolean.FALSE);
+        defaults.put("namesLf", Boolean.FALSE);
         defaults.put("namesNatbib", Boolean.TRUE);
         defaults.put("abbrAuthorNames", Boolean.TRUE);
-	    defaults.put("namesLastOnly", Boolean.TRUE);
+        defaults.put("namesLastOnly", Boolean.TRUE);
         defaults.put("language", "en");
         defaults.put("showShort", Boolean.TRUE);
         defaults.put("priSort", "author");
@@ -139,7 +143,7 @@ public class JabRefPreferences {
         defaults.put("entryTypeFormWidth", new Integer(1));
         defaults.put("backup", Boolean.TRUE);
         defaults.put("openLastEdited", Boolean.TRUE);
-        defaults.put("lastEdited", (String)null);
+        defaults.put("lastEdited", null);
         defaults.put("stringsPosX", new Integer(0));
         defaults.put("stringsPosY", new Integer(0));
         defaults.put("stringsSizeX", new Integer(600));
@@ -155,6 +159,7 @@ public class JabRefPreferences {
         defaults.put("searchAll", Boolean.FALSE);
         defaults.put("incrementS", Boolean.FALSE);
         defaults.put("saveInStandardOrder", Boolean.TRUE);
+        defaults.put("saveInOriginalOrder", Boolean.FALSE);
         defaults.put("selectS", Boolean.FALSE);
         defaults.put("regExpSearch", Boolean.TRUE);
         defaults.put("searchPanePosX", new Integer(0));
@@ -180,25 +185,26 @@ public class JabRefPreferences {
 
         defaults.put("defaultEncoding", System.getProperty("file.encoding"));
         defaults.put("winEdtPath", "C:\\Program Files\\WinEdt Team\\WinEdt\\WinEdt.exe");
+        defaults.put("latexEditorPath", "C:\\TEMP\\Led.exe");
         defaults.put("groupsVisibleRows", new Integer(8));
         defaults.put("defaultOwner", System.getProperty("user.name"));
         defaults.put("preserveFieldFormatting", Boolean.FALSE);
-	// The general fields stuff is made obsolete by the CUSTOM_TAB_... entries.
-        defaults.put("generalFields", "crossref;keywords;doi;url;citeseerurl;"+
+    // The general fields stuff is made obsolete by the CUSTOM_TAB_... entries.
+        defaults.put("generalFields", "crossref;keywords;doi;url;urldate;citeseerurl;"+
                      "pdf;comment;owner");
 
-	// Entry editor tab 0:
-	defaults.put(CUSTOM_TAB_NAME+"0", Globals.lang("General"));
-        defaults.put(CUSTOM_TAB_FIELDS+"0", "crossref;keywords;doi;url;citeseerurl;"+
+    // Entry editor tab 0:
+    defaults.put(CUSTOM_TAB_NAME+"_def0", Globals.lang("General"));
+        defaults.put(CUSTOM_TAB_FIELDS+"_def0", "crossref;keywords;doi;url;citeseerurl;"+
                      "pdf;comment;owner;timestamp");
 
-	// Entry editor tab 1:
-        defaults.put(CUSTOM_TAB_FIELDS+"1", "abstract");
-	defaults.put(CUSTOM_TAB_NAME+"1", Globals.lang("Abstract"));
+    // Entry editor tab 1:
+        defaults.put(CUSTOM_TAB_FIELDS+"_def1", "abstract");
+    defaults.put(CUSTOM_TAB_NAME+"_def1", Globals.lang("Abstract"));
 
   // Entry editor tab 2: Review Field - used for research comments, etc.
-        defaults.put(CUSTOM_TAB_FIELDS+"2", "review");
-	defaults.put(CUSTOM_TAB_NAME+"2", Globals.lang("Review"));
+        defaults.put(CUSTOM_TAB_FIELDS+"_def2", "review");
+    defaults.put(CUSTOM_TAB_NAME+"_def2", Globals.lang("Review"));
 
         //defaults.put("recentFiles", "/home/alver/Documents/bibk_dok/hovedbase.bib");
         defaults.put("historySize", new Integer(8));
@@ -282,7 +288,9 @@ public class JabRefPreferences {
         defaults.put("warnAboutDuplicatesInInspection", Boolean.TRUE);
         defaults.put("useTimeStamp", Boolean.TRUE);
         defaults.put("timeStampFormat", "yyyy.MM.dd");
-        defaults.put("timeStampField", "timestamp");
+//        defaults.put("timeStampField", "timestamp");
+        defaults.put("timeStampField", BibtexFields.TIMESTAMP);
+        defaults.put("generateKeysBeforeSaving", Boolean.FALSE);
 
         defaults.put("useRemoteServer", Boolean.FALSE);
         defaults.put("remoteServerPort", new Integer(6050));
@@ -304,6 +312,13 @@ public class JabRefPreferences {
         //defaults.put("oooWarning", Boolean.TRUE);
         updateSpecialFieldHandling();
         WRAPPED_USERNAME = "["+get("defaultOwner")+"]";
+
+        // TODO: remove temporary registering of external file types?
+        externalFileTypes.put("pdf", new ExternalFileType("PDF", "pdf", "acroread", null));
+        externalFileTypes.put("ps", new ExternalFileType("PostScript", "ps", "gs", null));
+        externalFileTypes.put("doc", new ExternalFileType("Word file", "doc", "oowriter", null));
+        externalFileTypes.put("odt", new ExternalFileType("OpenDocument text", "odt", "oowriter", null));
+
     }
 
     public boolean putBracesAroundCapitals(String fieldName) {
@@ -328,6 +343,15 @@ public class JabRefPreferences {
 
     }
 
+    /**
+     * Check whether a key is set (differently from null).
+     * @param key The key to check.
+     * @return true if the key is set, false otherwise.
+     */
+    public boolean hasKey(String key) {
+        return prefs.get(key, null) != null;
+    }
+
     public String get(String key) {
         return prefs.get(key, (String)defaults.get(key));
     }
@@ -532,11 +556,11 @@ public class JabRefPreferences {
     }
 
     public void flush() {
-	try {
-	    prefs.flush();
-	} catch (BackingStoreException ex) {
-	    ex.printStackTrace();
-	}
+    try {
+        prefs.flush();
+    } catch (BackingStoreException ex) {
+        ex.printStackTrace();
+    }
     }
 
     /**
@@ -565,7 +589,7 @@ public class JabRefPreferences {
 
 
         public LabelPattern getKeyPattern(){
-            
+
             keyPattern = new LabelPattern(KEY_PATTERN);
             Preferences pre = Preferences.userNodeForPackage
                 (net.sf.jabref.labelPattern.LabelPattern.class);
@@ -704,7 +728,8 @@ public class JabRefPreferences {
         defKeyBinds.put("Synchronize PS", "ctrl F4");
         defKeyBinds.put("Abbreviate", "ctrl alt A");
         defKeyBinds.put("Unabbreviate", "ctrl alt shift A");
-
+        defKeyBinds.put("Search IEEXplore", "F8");
+        
         //defKeyBinds.put("Select value", "ctrl B");
     }
 
@@ -782,20 +807,30 @@ public class JabRefPreferences {
     }
 
     /**
+     * Look up the external file type registered for this extension, if any.
+     * @param extension The file extension.
+     * @return The ExternalFileType registered, or null if none.
+     */
+    public ExternalFileType getExternalFileType(String extension) {
+        return (ExternalFileType)externalFileTypes.get(extension);
+    }
+
+
+    /**
      * Removes all information about custom entry types with tags of
      * @param number or higher.
      */
     public void purgeCustomEntryTypes(int number) {
-	purgeSeries(CUSTOM_TYPE_NAME, number);
-	purgeSeries(CUSTOM_TYPE_REQ, number);
-	purgeSeries(CUSTOM_TYPE_OPT, number);
+    purgeSeries(CUSTOM_TYPE_NAME, number);
+    purgeSeries(CUSTOM_TYPE_REQ, number);
+    purgeSeries(CUSTOM_TYPE_OPT, number);
 
         /*while (get(CUSTOM_TYPE_NAME+number) != null) {
             remove(CUSTOM_TYPE_NAME+number);
             remove(CUSTOM_TYPE_REQ+number);
             remove(CUSTOM_TYPE_OPT+number);
             number++;
-	    }*/
+            }*/
     }
 
     /**
@@ -811,13 +846,13 @@ public class JabRefPreferences {
     }
 
     public EntryEditorTabList getEntryEditorTabList() {
-	if (tabList == null)
-	    updateEntryEditorTabList();
-	return tabList;
+    if (tabList == null)
+        updateEntryEditorTabList();
+    return tabList;
     }
 
     public void updateEntryEditorTabList() {
-	tabList = new EntryEditorTabList();
+    tabList = new EntryEditorTabList();
     }
 
     /**
diff --git a/src/java/net/sf/jabref/MetaData.java b/src/java/net/sf/jabref/MetaData.java
index 8b74a69..1c6ce60 100644
--- a/src/java/net/sf/jabref/MetaData.java
+++ b/src/java/net/sf/jabref/MetaData.java
@@ -43,7 +43,6 @@ public class MetaData {
      * it has been passed.
      */
     public MetaData(HashMap inData, BibtexDatabase db) {
-        this();
         boolean groupsTreePresent = false;
         Vector flatGroupsData = null;
         Vector treeGroupsData = null;
@@ -92,6 +91,13 @@ public class MetaData {
      * The MetaData object can be constructed with no data in it.
      */
     public MetaData() {
+
+    }
+
+    /**
+     * Add default metadata for new database:
+     */
+    public void initializeNewDatabase() {
         metaData.put(Globals.SELECTOR_META_PREFIX + "keywords", new Vector());
         metaData.put(Globals.SELECTOR_META_PREFIX + "author", new Vector());
         metaData.put(Globals.SELECTOR_META_PREFIX + "journal", new Vector());
@@ -119,7 +125,28 @@ public class MetaData {
     public void putData(String key, Vector orderedData) {
         metaData.put(key, orderedData);
     }
-    
+
+    /**
+     * Look up the directory set up for the given field type for this database.
+     * If no directory is set up, return that defined in global preferences.
+     * @param fieldName The field type
+     * @return The default directory for this field type.
+     */
+    public String getFileDirectory(String fieldName) {
+        // There can be up to two directory definitions for these files - the database's
+        // metadata can specify a directory, or the preferences can specify one. The
+        // metadata directory takes precedence if defined.
+        String key = fieldName + "Directory";
+        String dir;
+        Vector vec = getData(key);
+        if ((vec != null) && (vec.size() > 0))
+            dir = (String)vec.get(0);
+        else
+            dir = Globals.prefs.get(key);
+
+        return dir;
+    }
+
     private void putGroups(Vector orderedData, BibtexDatabase db, int version) {
         try {
             groupsRoot = VersionHandling.importGroups(orderedData, db, 
@@ -129,7 +156,7 @@ public class MetaData {
             System.err.println(e);
         }
     }
-    
+
     public GroupTreeNode getGroups() {
         return groupsRoot;
     }
@@ -152,7 +179,7 @@ public class MetaData {
             String key = (String) i.next();
             StringBuffer sb = new StringBuffer();
             Vector orderedData = (Vector) metaData.get(key);
-            if (orderedData.size() > 0) {
+            if (orderedData.size() >= 0) {
                 sb.append("@comment{").append(GUIGlobals.META_FLAG).append(key).append(":");
                 for (int j = 0; j < orderedData.size(); j++) {
                     sb.append(Util.quote((String) orderedData.elementAt(j), ";", '\\')).append(";");
diff --git a/src/java/net/sf/jabref/PreviewPanel.java b/src/java/net/sf/jabref/PreviewPanel.java
index ab5354c..abd3aa5 100644
--- a/src/java/net/sf/jabref/PreviewPanel.java
+++ b/src/java/net/sf/jabref/PreviewPanel.java
@@ -3,9 +3,7 @@ package net.sf.jabref;
 import javax.swing.*;
 import javax.swing.event.HyperlinkListener;
 import javax.swing.event.HyperlinkEvent;
-import javax.swing.border.Border;
 import java.io.*;
-import java.net.URL;
 import java.util.HashMap;
 import net.sf.jabref.export.layout.*;
 import java.awt.Dimension;
@@ -18,6 +16,7 @@ public class PreviewPanel extends JEditorPane {
   public String CONTENT_TYPE = "text/html";
       //LAYOUT_FILE = "simplehtml";
   BibtexEntry entry;
+  MetaData metaData;
   BibtexDatabase database = null;
     // If a database is set, the preview will attempt to resolve strings in the previewed
     // entry using that database.
@@ -29,17 +28,17 @@ public class PreviewPanel extends JEditorPane {
   String layoutFile;
   JScrollPane sp;
 
-    public PreviewPanel(BibtexDatabase db, String layoutFile) {
-        this(layoutFile);
+    public PreviewPanel(BibtexDatabase db, MetaData metaData, String layoutFile) {
+        this(layoutFile, metaData);
         this.database = db;
     }
 
-    public PreviewPanel(BibtexDatabase db, BibtexEntry be, String layoutFile) {
-        this(be, layoutFile);
+    public PreviewPanel(BibtexDatabase db, MetaData metaData, BibtexEntry be, String layoutFile) {
+        this(be, metaData, layoutFile);
         this.database = db;
     }
 
-  public PreviewPanel(BibtexEntry be, String layoutFile) {
+  public PreviewPanel(BibtexEntry be, MetaData metaData, String layoutFile) {
     entry = be;
     sp = new JScrollPane(this, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                          JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
@@ -58,11 +57,12 @@ public class PreviewPanel extends JEditorPane {
 
   }
 
-  public PreviewPanel(String layoutFile) {
+  public PreviewPanel(String layoutFile, MetaData metaData) {
     sp = new JScrollPane(this, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                          JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
     this.layoutFile = layoutFile;
     sp.setBorder(null);
+    this.metaData = metaData;
 
     init();
     //setText("<HTML></HTML>");
@@ -80,7 +80,7 @@ public class PreviewPanel extends JEditorPane {
               if (hyperlinkEvent.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                 try {
                     String address = hyperlinkEvent.getURL().toString(); 
-                      Util.openExternalViewer(address, "url", Globals.prefs);
+                      Util.openExternalViewer(metaData, address, "url");
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
diff --git a/src/java/net/sf/jabref/PreviewPrefsTab.java b/src/java/net/sf/jabref/PreviewPrefsTab.java
index 03ab8ca..27df1e0 100644
--- a/src/java/net/sf/jabref/PreviewPrefsTab.java
+++ b/src/java/net/sf/jabref/PreviewPrefsTab.java
@@ -17,68 +17,68 @@ public class PreviewPrefsTab extends JPanel implements PrefsTab {
     JTextArea layout1 = new JTextArea("", 1, 1),
     layout2 = new JTextArea("", 1, 1);
     JButton def1 = new JButton(Globals.lang("Default")),
-	    def2 = new JButton(Globals.lang("Default")),
+            def2 = new JButton(Globals.lang("Default")),
         test1 = new JButton(Globals.lang("Test")),
         test2 = new JButton(Globals.lang("Test")),
         help = new JButton(Globals.lang("Help"));
     JPanel p1 = new JPanel(),
-	p2 = new JPanel();
+        p2 = new JPanel();
     JScrollPane sp1 = new JScrollPane(layout1),
-	sp2 = new JScrollPane(layout2);
+        sp2 = new JScrollPane(layout2);
     private static BibtexEntry entry;
 
     public PreviewPrefsTab(JabRefPreferences prefs, HelpDialog diag) {
-	_prefs = prefs;
- 	p1.setLayout(gbl);
- 	p2.setLayout(gbl);
+        _prefs = prefs;
+         p1.setLayout(gbl);
+         p2.setLayout(gbl);
     help.addActionListener(helpAction);
     /*p1.setBorder(BorderFactory.createTitledBorder
               (BorderFactory.createEtchedBorder(),Globals.lang("Preview")+" 1"));
      p2.setBorder(BorderFactory.createTitledBorder
               (BorderFactory.createEtchedBorder(),Globals.lang("Preview")+" 2")); */
-	setLayout(gbl);//new GridLayout(2,1));
-	JLabel lab;
-	lab = new JLabel(Globals.lang("Preview")+" 1");
-	con.anchor = GridBagConstraints.WEST;
-	con.gridwidth = GridBagConstraints.REMAINDER;
-	con.fill = GridBagConstraints.BOTH;
-	con.weightx = 1;
-	con.weighty = 0;
-	con.insets = new Insets(2,2,2,2);
-	gbl.setConstraints(lab, con);
-	//p1.add(lab);
-	con.weighty = 1;
-	gbl.setConstraints(sp1, con);
-	p1.add(sp1);
-	con.weighty = 0;
+        setLayout(gbl);//new GridLayout(2,1));
+        JLabel lab;
+        lab = new JLabel(Globals.lang("Preview")+" 1");
+        con.anchor = GridBagConstraints.WEST;
+        con.gridwidth = GridBagConstraints.REMAINDER;
+        con.fill = GridBagConstraints.BOTH;
+        con.weightx = 1;
+        con.weighty = 0;
+        con.insets = new Insets(2,2,2,2);
+        gbl.setConstraints(lab, con);
+        //p1.add(lab);
+        con.weighty = 1;
+        gbl.setConstraints(sp1, con);
+        p1.add(sp1);
+        con.weighty = 0;
     con.gridwidth = 1;
     con.weightx = 0;
-	con.fill = GridBagConstraints.NONE;
+        con.fill = GridBagConstraints.NONE;
     con.anchor = GridBagConstraints.WEST;
     gbl.setConstraints(test1, con);
-	p1.add(test1);
+        p1.add(test1);
     gbl.setConstraints(def1, con);
-	p1.add(def1);
+        p1.add(def1);
     con.gridwidth = GridBagConstraints.REMAINDER;
     JPanel pan = new JPanel();
     con.weightx = 1;
     gbl.setConstraints(pan, con);
     p1.add(pan);
     lab = new JLabel(Globals.lang("Preview")+" 2");
-	gbl.setConstraints(lab, con);
-	//p2.add(lab);
-	con.weighty = 1;
-	con.fill = GridBagConstraints.BOTH;
-	gbl.setConstraints(sp2, con);
-	p2.add(sp2);
-	con.weighty = 0;
+        gbl.setConstraints(lab, con);
+        //p2.add(lab);
+        con.weighty = 1;
+        con.fill = GridBagConstraints.BOTH;
+        gbl.setConstraints(sp2, con);
+        p2.add(sp2);
+        con.weighty = 0;
     con.weightx = 0;
-	con.fill = GridBagConstraints.NONE;
+        con.fill = GridBagConstraints.NONE;
     con.gridwidth = 1;
     gbl.setConstraints(test2, con);
-	p2.add(test2);
-	gbl.setConstraints(def2, con);
-	p2.add(def2);
+        p2.add(test2);
+        gbl.setConstraints(def2, con);
+        p2.add(def2);
     con.gridwidth = 1;
     pan = new JPanel();
     con.weightx = 1;
@@ -111,48 +111,48 @@ public class PreviewPrefsTab extends JPanel implements PrefsTab {
     gbl.setConstraints(p2, con);
     add(p2);
 
-	def1.addActionListener(new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
-		    String tmp = layout1.getText().replaceAll("\n", "__NEWLINE__");
-		    _prefs.remove("preview0");
-		    layout1.setText(_prefs.get("preview0").replaceAll("__NEWLINE__", "\n"));
-		    _prefs.put("preview0", tmp);
-		}
-	    });
-	def2.addActionListener(new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
-		    String tmp = layout2.getText().replaceAll("\n", "__NEWLINE__");
-		    _prefs.remove("preview1");
-		    layout2.setText(_prefs.get("preview1").replaceAll("__NEWLINE__", "\n"));
-		    _prefs.put("preview1", tmp);
-		}
-	    });
+        def1.addActionListener(new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    String tmp = layout1.getText().replaceAll("\n", "__NEWLINE__");
+                    _prefs.remove("preview0");
+                    layout1.setText(_prefs.get("preview0").replaceAll("__NEWLINE__", "\n"));
+                    _prefs.put("preview0", tmp);
+                }
+            });
+        def2.addActionListener(new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    String tmp = layout2.getText().replaceAll("\n", "__NEWLINE__");
+                    _prefs.remove("preview1");
+                    layout2.setText(_prefs.get("preview1").replaceAll("__NEWLINE__", "\n"));
+                    _prefs.put("preview1", tmp);
+                }
+            });
 
 
     test1.addActionListener(new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
+                public void actionPerformed(ActionEvent e) {
             getTestEntry();
-            PreviewPanel testPanel = new PreviewPanel(entry, layout1.getText());
+            PreviewPanel testPanel = new PreviewPanel(entry, new MetaData(), layout1.getText());
             testPanel.setPreferredSize(new Dimension(800, 350));
             JOptionPane.showMessageDialog(null, testPanel, Globals.lang("Preview"), JOptionPane.PLAIN_MESSAGE);
-		}
-	    });
+                }
+            });
 
     test2.addActionListener(new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
+                public void actionPerformed(ActionEvent e) {
             getTestEntry();
-            PreviewPanel testPanel = new PreviewPanel(entry, layout2.getText());
+            PreviewPanel testPanel = new PreviewPanel(entry, new MetaData(), layout2.getText());
             testPanel.setPreferredSize(new Dimension(800, 350));
             JOptionPane.showMessageDialog(null, new JScrollPane(testPanel), Globals.lang("Preview"), JOptionPane.PLAIN_MESSAGE);
-		}
-	    });
+                }
+            });
     }
-   
+
     public static BibtexEntry getTestEntry() {
         if (entry != null)
             return entry;
         entry = new BibtexEntry(Util.createNeutralId(), BibtexEntryType.getType("article"));
-        entry.setField(Globals.KEY_FIELD, "conceicao1997");
+        entry.setField(BibtexFields.KEY_FIELD, "conceicao1997");
         entry.setField("author", "L. E. C. Conceic{\\~a}o and T. van der Meeren and J. A. J. Verreth and M. S. Evjen and D. F. Houlihan and H. J. Fyhn");
         entry.setField("title", "Amino acid metabolism and protein turnover in larval turbot (Scophthalmus maximus) fed natural zooplankton or Artemia");
         entry.setField("year", "1997");
@@ -188,17 +188,17 @@ public class PreviewPrefsTab extends JPanel implements PrefsTab {
     }
 
     public void setValues() {
-	layout1.setText(_prefs.get("preview0").replaceAll("__NEWLINE__", "\n"));
-	layout2.setText(_prefs.get("preview1").replaceAll("__NEWLINE__", "\n"));
+        layout1.setText(_prefs.get("preview0").replaceAll("__NEWLINE__", "\n"));
+        layout2.setText(_prefs.get("preview1").replaceAll("__NEWLINE__", "\n"));
     }
 
     public void storeSettings() {
-	_prefs.put("preview0", layout1.getText().replaceAll("\n", "__NEWLINE__"));
-	_prefs.put("preview1", layout2.getText().replaceAll("\n", "__NEWLINE__"));
+        _prefs.put("preview0", layout1.getText().replaceAll("\n", "__NEWLINE__"));
+        _prefs.put("preview1", layout2.getText().replaceAll("\n", "__NEWLINE__"));
     }
 
     public boolean readyToClose() {
-	return true;
+        return true;
     }
 
 }
diff --git a/src/java/net/sf/jabref/ReplaceStringDialog.java b/src/java/net/sf/jabref/ReplaceStringDialog.java
index 4ea138d..2ca3339 100644
--- a/src/java/net/sf/jabref/ReplaceStringDialog.java
+++ b/src/java/net/sf/jabref/ReplaceStringDialog.java
@@ -38,25 +38,25 @@ import net.sf.jabref.undo.*;
 class ReplaceStringDialog extends JDialog {
 
     JTextField
-	fields = new JTextField("", 30),
-	from = new JTextField("", 30),
-	to = new JTextField("", 30);
+        fields = new JTextField("", 30),
+        from = new JTextField("", 30),
+        to = new JTextField("", 30);
     JLabel
-	fl = new JLabel(Globals.lang("Search for")+":"),
-	tl = new JLabel(Globals.lang("Replace with")+":");
+        fl = new JLabel(Globals.lang("Search for")+":"),
+        tl = new JLabel(Globals.lang("Replace with")+":");
 
     JButton
-	ok = new JButton(Globals.lang("Ok")),
-	cancel = new JButton(Globals.lang("Cancel"));
+        ok = new JButton(Globals.lang("Ok")),
+        cancel = new JButton(Globals.lang("Cancel"));
     JPanel
-	settings = new JPanel(),
-	main = new JPanel(),
-	opt = new JPanel();
+        settings = new JPanel(),
+        main = new JPanel(),
+        opt = new JPanel();
     JCheckBox
-	selOnly = new JCheckBox(Globals.lang("Limit to selected entries"), false);
+        selOnly = new JCheckBox(Globals.lang("Limit to selected entries"), false);
     JRadioButton
-	allFi = new JRadioButton(Globals.lang("All fields"), true),
-	field = new JRadioButton(Globals.lang("Limit to fields")+":", false);
+        allFi = new JRadioButton(Globals.lang("All fields"), true),
+        field = new JRadioButton(Globals.lang("Limit to fields")+":", false);
     ButtonGroup bg = new ButtonGroup();
     private boolean ok_pressed = false;
     private JabRefFrame parent;
@@ -67,124 +67,124 @@ class ReplaceStringDialog extends JDialog {
     GridBagConstraints con = new GridBagConstraints();
 
     public ReplaceStringDialog(JabRefFrame parent_) {
-	super(parent_, Globals.lang("Replace string"), true);
-	parent = parent_;
-
-	bg.add(allFi);
-	bg.add(field);
-	ActionListener okListener = new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
-		    s1 = from.getText();
-		    s2 = to.getText();
-		    if (s1.equals(""))
-			return;
-		    ok_pressed = true;
-		    flds = Util.delimToStringArray(fields.getText().toLowerCase(), ";");
-		    dispose();
-		}
-	    };
-	ok.addActionListener(okListener);
-	to.addActionListener(okListener);
-	fields.addActionListener(okListener);
-	AbstractAction cancelAction = new AbstractAction() {
-		public void actionPerformed(ActionEvent e) {
-		    dispose();
-		}
-	    };
-	cancel.addActionListener(cancelAction);
-
-	// Key bindings:
-	ActionMap am = settings.getActionMap();
-	InputMap im = settings.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
-	im.put(parent.prefs.getKey("Close dialog"), "close");
-	am.put("close", cancelAction);
-
-	// Layout starts here.
-	settings.setLayout(gbl);
-	opt.setLayout(gbl);
-	main.setLayout(gbl);
-	settings.setBorder(BorderFactory.createTitledBorder
-		       (BorderFactory.createEtchedBorder(),
-			Globals.lang("Replace string")));
-	main.setBorder(BorderFactory.createTitledBorder
-		       (BorderFactory.createEtchedBorder(),
-			Globals.lang("Strings")));
-
-	// Settings panel:
-	/*
-	con.weightx = 0;
-	con.insets = new Insets(3, 5, 3, 5);
-	con.anchor = GridBagConstraints.EAST;
-	con.fill = GridBagConstraints.NONE;
-	con.gridx = 0;
-	con.gridy = 2;
-	gbl.setConstraints(nf, con);
-	settings.add(nf);*/
-
-	con.gridwidth = 2;
-	con.weightx = 0;
-	con.anchor = GridBagConstraints.WEST;
-	con.fill = GridBagConstraints.HORIZONTAL;
-	con.gridy = 0;
-	con.gridx = 0;
-	con.insets = new Insets(3, 5, 3, 5);
-	gbl.setConstraints(selOnly, con);
-	settings.add(selOnly);
-	con.gridy = 1;
-	con.insets = new Insets(13, 5, 3, 5);
-	gbl.setConstraints(allFi, con);
-	settings.add(allFi);
-	con.gridwidth = 1;
-	con.gridy = 2;
-	con.gridx = 0;
-	con.insets = new Insets(3, 5, 3, 5);
-	gbl.setConstraints(field, con);
-	settings.add(field);
-	con.gridx = 1;
-	con.weightx = 1;
-	//con.insets = new Insets(3, 5, 3, 5);
-	gbl.setConstraints(fields, con);
-	settings.add(fields);
-
-	con.weightx = 0;
-	con.gridx = 0;
-	con.gridy = 0;
-	gbl.setConstraints(fl, con);
-	main.add(fl);
-	con.gridy = 1;
-	gbl.setConstraints(tl, con);
-	main.add(tl);
-	con.weightx = 1;
-	con.gridx = 1;
-	con.gridy = 0;
-	gbl.setConstraints(from, con);
-	main.add(from);
-	con.gridy = 1;
-	gbl.setConstraints(to, con);
-	main.add(to);
-
-       	// Option buttons:
-	con.gridx = GridBagConstraints.RELATIVE;
-	con.gridy = GridBagConstraints.RELATIVE;
-	con.weightx = 1;
-	con.gridwidth = 1;
-	con.anchor = GridBagConstraints.EAST;
-	con.fill = GridBagConstraints.NONE;
-	gbl.setConstraints(ok, con);
-	opt.add(ok);
-	con.anchor = GridBagConstraints.WEST;
-	con.gridwidth = GridBagConstraints.REMAINDER;
-	gbl.setConstraints(cancel, con);
-	opt.add(cancel);
-
-	getContentPane().add(main, BorderLayout.NORTH);
-	getContentPane().add(settings, BorderLayout.CENTER);
-	getContentPane().add(opt, BorderLayout.SOUTH);
-
-	pack();
-	//setSize(400, 170);
-
-	Util.placeDialog(this, parent);
+        super(parent_, Globals.lang("Replace string"), true);
+        parent = parent_;
+
+        bg.add(allFi);
+        bg.add(field);
+        ActionListener okListener = new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    s1 = from.getText();
+                    s2 = to.getText();
+                    if (s1.equals(""))
+                        return;
+                    ok_pressed = true;
+                    flds = Util.delimToStringArray(fields.getText().toLowerCase(), ";");
+                    dispose();
+                }
+            };
+        ok.addActionListener(okListener);
+        to.addActionListener(okListener);
+        fields.addActionListener(okListener);
+        AbstractAction cancelAction = new AbstractAction() {
+                public void actionPerformed(ActionEvent e) {
+                    dispose();
+                }
+            };
+        cancel.addActionListener(cancelAction);
+
+        // Key bindings:
+        ActionMap am = settings.getActionMap();
+        InputMap im = settings.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
+        im.put(parent.prefs.getKey("Close dialog"), "close");
+        am.put("close", cancelAction);
+
+        // Layout starts here.
+        settings.setLayout(gbl);
+        opt.setLayout(gbl);
+        main.setLayout(gbl);
+        settings.setBorder(BorderFactory.createTitledBorder
+                       (BorderFactory.createEtchedBorder(),
+                        Globals.lang("Replace string")));
+        main.setBorder(BorderFactory.createTitledBorder
+                       (BorderFactory.createEtchedBorder(),
+                        Globals.lang("Strings")));
+
+        // Settings panel:
+        /*
+        con.weightx = 0;
+        con.insets = new Insets(3, 5, 3, 5);
+        con.anchor = GridBagConstraints.EAST;
+        con.fill = GridBagConstraints.NONE;
+        con.gridx = 0;
+        con.gridy = 2;
+        gbl.setConstraints(nf, con);
+        settings.add(nf);*/
+
+        con.gridwidth = 2;
+        con.weightx = 0;
+        con.anchor = GridBagConstraints.WEST;
+        con.fill = GridBagConstraints.HORIZONTAL;
+        con.gridy = 0;
+        con.gridx = 0;
+        con.insets = new Insets(3, 5, 3, 5);
+        gbl.setConstraints(selOnly, con);
+        settings.add(selOnly);
+        con.gridy = 1;
+        con.insets = new Insets(13, 5, 3, 5);
+        gbl.setConstraints(allFi, con);
+        settings.add(allFi);
+        con.gridwidth = 1;
+        con.gridy = 2;
+        con.gridx = 0;
+        con.insets = new Insets(3, 5, 3, 5);
+        gbl.setConstraints(field, con);
+        settings.add(field);
+        con.gridx = 1;
+        con.weightx = 1;
+        //con.insets = new Insets(3, 5, 3, 5);
+        gbl.setConstraints(fields, con);
+        settings.add(fields);
+
+        con.weightx = 0;
+        con.gridx = 0;
+        con.gridy = 0;
+        gbl.setConstraints(fl, con);
+        main.add(fl);
+        con.gridy = 1;
+        gbl.setConstraints(tl, con);
+        main.add(tl);
+        con.weightx = 1;
+        con.gridx = 1;
+        con.gridy = 0;
+        gbl.setConstraints(from, con);
+        main.add(from);
+        con.gridy = 1;
+        gbl.setConstraints(to, con);
+        main.add(to);
+
+               // Option buttons:
+        con.gridx = GridBagConstraints.RELATIVE;
+        con.gridy = GridBagConstraints.RELATIVE;
+        con.weightx = 1;
+        con.gridwidth = 1;
+        con.anchor = GridBagConstraints.EAST;
+        con.fill = GridBagConstraints.NONE;
+        gbl.setConstraints(ok, con);
+        opt.add(ok);
+        con.anchor = GridBagConstraints.WEST;
+        con.gridwidth = GridBagConstraints.REMAINDER;
+        gbl.setConstraints(cancel, con);
+        opt.add(cancel);
+
+        getContentPane().add(main, BorderLayout.NORTH);
+        getContentPane().add(settings, BorderLayout.CENTER);
+        getContentPane().add(opt, BorderLayout.SOUTH);
+
+        pack();
+        //setSize(400, 170);
+
+        Util.placeDialog(this, parent);
     }
 
     public boolean okPressed() { return ok_pressed; }
@@ -198,40 +198,40 @@ class ReplaceStringDialog extends JDialog {
      * occurences replaced.
      */
     public int replace(BibtexEntry be, NamedCompound ce) {
-	int counter = 0;
-	if (allFields()) {
-	    Object[] os = be.getAllFields();
-	    for (int i=0; i<os.length; i++) {
-		String s = (String)os[i];
-		if (!s.equals(Globals.KEY_FIELD))
-		    counter += replaceField(be, s, ce);
-	    }
-	} else {
-	    for (int i=0; i<flds.length; i++) {
-		if (!flds[i].equals(Globals.KEY_FIELD))
-		    counter += replaceField(be, flds[i], ce);
-	    }
-
-	}
-	return counter;
+        int counter = 0;
+        if (allFields()) {
+            Object[] os = be.getAllFields();
+            for (int i=0; i<os.length; i++) {
+                String s = (String)os[i];
+                if (!s.equals(BibtexFields.KEY_FIELD))
+                    counter += replaceField(be, s, ce);
+            }
+        } else {
+            for (int i=0; i<flds.length; i++) {
+                if (!flds[i].equals(BibtexFields.KEY_FIELD))
+                    counter += replaceField(be, flds[i], ce);
+            }
+
+        }
+        return counter;
     }
 
     public int replaceField(BibtexEntry be, String field, NamedCompound ce) {
-	Object o = be.getField(field);
-	if (o == null) return 0;
-	String txt = o.toString();
-	StringBuffer sb = new StringBuffer();
-	int ind = -1, piv = 0, counter = 0, len1 = s1.length();
-	while ((ind=txt.indexOf(s1, piv)) >= 0) {
-	    counter++;
-	    sb.append(txt.substring(piv, ind)); // Text leading up to s1
-	    sb.append(s2);  // Insert s2
-	    piv = ind+len1;
-	}
-	sb.append(txt.substring(piv));
-	String newStr = sb.toString();
-	be.setField(field, newStr);
-	ce.addEdit(new UndoableFieldChange(be, field, txt, newStr));
-	return counter;
+        Object o = be.getField(field);
+        if (o == null) return 0;
+        String txt = o.toString();
+        StringBuffer sb = new StringBuffer();
+        int ind = -1, piv = 0, counter = 0, len1 = s1.length();
+        while ((ind=txt.indexOf(s1, piv)) >= 0) {
+            counter++;
+            sb.append(txt.substring(piv, ind)); // Text leading up to s1
+            sb.append(s2);  // Insert s2
+            piv = ind+len1;
+        }
+        sb.append(txt.substring(piv));
+        String newStr = sb.toString();
+        be.setField(field, newStr);
+        ce.addEdit(new UndoableFieldChange(be, field, txt, newStr));
+        return counter;
     }
 }
diff --git a/src/java/net/sf/jabref/RightClickMenu.java b/src/java/net/sf/jabref/RightClickMenu.java
index 3a85ec0..7f2e8a8 100644
--- a/src/java/net/sf/jabref/RightClickMenu.java
+++ b/src/java/net/sf/jabref/RightClickMenu.java
@@ -50,7 +50,7 @@ public class RightClickMenu extends JPopupMenu
     public RightClickMenu(BasePanel panel_, MetaData metaData_) {
         panel = panel_;
         metaData = metaData_;
-        
+
         // Are multiple entries selected?
         boolean multiple = (panel.mainTable.getSelectedRowCount() > 1);
 
@@ -105,7 +105,7 @@ public class RightClickMenu extends JPopupMenu
                 }
             });
             addSeparator();
-         
+
         if (multiple) {
           add(new AbstractAction(Globals.lang("Mark entries"), new ImageIcon(GUIGlobals.markIcon)) {
             public void actionPerformed(ActionEvent e) {
@@ -123,7 +123,7 @@ public class RightClickMenu extends JPopupMenu
           });
           addSeparator();
         } else if (be != null) {
-          if (be.getField(Globals.MARKED) == null)
+          if (be.getField(BibtexFields.MARKED) == null)
             add(new AbstractAction(Globals.lang("Mark entry"), new ImageIcon(GUIGlobals.markIcon)) {
                public void actionPerformed(ActionEvent e) {
                  try {
@@ -215,14 +215,14 @@ public class RightClickMenu extends JPopupMenu
         groupRemoveMenu.setEnabled(false);
         return;
       }
-      
+
       groupAddMenu.setEnabled(true);
       groupMoveMenu.setEnabled(true);
       groupRemoveMenu.setEnabled(true);
       groupAddMenu.removeAll();
       groupMoveMenu.removeAll();
       groupRemoveMenu.removeAll();
-      
+
       if (bes == null)
         return;
       add(groupAddMenu);
@@ -236,23 +236,23 @@ public class RightClickMenu extends JPopupMenu
       insertNodes(groupMoveMenu,metaData.getGroups(),bes,true,true);
       insertNodes(groupRemoveMenu,metaData.getGroups(),bes,false,false);
     }
-    
+
     /**
      * @param move For add: if true, remove from previous groups
      */
-    public void insertNodes(JMenu menu, GroupTreeNode node, BibtexEntry[] selection, 
-    		boolean add, boolean move) {
+    public void insertNodes(JMenu menu, GroupTreeNode node, BibtexEntry[] selection,
+                    boolean add, boolean move) {
         final AbstractAction action = getAction(node,selection,add,move);
-        
+
         if (node.getChildCount() == 0) {
             JMenuItem menuItem = new JMenuItem(action);
             setGroupFontAndIcon(menuItem, node.getGroup());
-            menu.add(menuItem);            
+            menu.add(menuItem);
             if (action.isEnabled())
-            	menu.setEnabled(true);
+                    menu.setEnabled(true);
             return;
         }
-        
+
         JMenu submenu = null;
         if (node.getGroup() instanceof AllEntriesGroup) {
             for (int i = 0; i < node.getChildCount(); ++i) {
@@ -261,9 +261,9 @@ public class RightClickMenu extends JPopupMenu
         } else {
             submenu = new JMenu("["+node.getGroup().getName()+"]");
             setGroupFontAndIcon(submenu, node.getGroup());
-            // setEnabled(true) is done above/below if at least one menu 
+            // setEnabled(true) is done above/below if at least one menu
             // entry (item or submenu) is enabled
-            submenu.setEnabled(action.isEnabled()); 
+            submenu.setEnabled(action.isEnabled());
             JMenuItem menuItem = new JMenuItem(action);
             setGroupFontAndIcon(menuItem, node.getGroup());
             submenu.add(menuItem);
@@ -275,41 +275,41 @@ public class RightClickMenu extends JPopupMenu
                 menu.setEnabled(true);
         }
     }
-    
+
     /** Sets the font and icon to be used, depending on the group */
     private void setGroupFontAndIcon(JMenuItem menuItem, AbstractGroup group) {
         if (Globals.prefs.getBoolean("groupShowDynamic")) {
-        	menuItem.setFont(menuItem.getFont().deriveFont(group.isDynamic() ? 
-        			Font.ITALIC : Font.PLAIN));
+                menuItem.setFont(menuItem.getFont().deriveFont(group.isDynamic() ?
+                                Font.ITALIC : Font.PLAIN));
         }
-    	if (Globals.prefs.getBoolean("groupShowIcons")) {
-    		switch (group.getHierarchicalContext()) {
-    		case AbstractGroup.INCLUDING:
-    			menuItem.setIcon(GUIGlobals.groupIncludingIcon);
-    			break;
-    		case AbstractGroup.REFINING:
-    			menuItem.setIcon(GUIGlobals.groupRefiningIcon);
-    			break;
-    		default:
-    			menuItem.setIcon(GUIGlobals.groupRegularIcon);
-				break;
-    		}
-    	}
+            if (Globals.prefs.getBoolean("groupShowIcons")) {
+                    switch (group.getHierarchicalContext()) {
+                    case AbstractGroup.INCLUDING:
+                            menuItem.setIcon(GUIGlobals.groupIncludingIcon);
+                            break;
+                    case AbstractGroup.REFINING:
+                            menuItem.setIcon(GUIGlobals.groupRefiningIcon);
+                            break;
+                    default:
+                            menuItem.setIcon(GUIGlobals.groupRegularIcon);
+                                break;
+                    }
+            }
     }
-    
+
     /**
      * @param move For add: if true, remove from all previous groups
      */
-    private AbstractAction getAction(GroupTreeNode node, BibtexEntry[] selection, 
-    		boolean add, boolean move) {
+    private AbstractAction getAction(GroupTreeNode node, BibtexEntry[] selection,
+                    boolean add, boolean move) {
         AbstractAction action = add ? (AbstractAction) new AddToGroupAction(node, move,
                 panel) : (AbstractAction) new RemoveFromGroupAction(node, panel);
         AbstractGroup group = node.getGroup();
         if (!move) {
-	        action.setEnabled(add ? group.supportsAdd() && !group.containsAll(selection)
-	                : group.supportsRemove() && group.containsAny(selection));
+                action.setEnabled(add ? group.supportsAdd() && !group.containsAll(selection)
+                        : group.supportsRemove() && group.containsAny(selection));
         } else {
-        	action.setEnabled(group.supportsAdd());
+                action.setEnabled(group.supportsAdd());
         }
         return action;
     }
diff --git a/src/java/net/sf/jabref/SearchManager2.java b/src/java/net/sf/jabref/SearchManager2.java
index 28a642b..d2a23ef 100644
--- a/src/java/net/sf/jabref/SearchManager2.java
+++ b/src/java/net/sf/jabref/SearchManager2.java
@@ -179,6 +179,7 @@ settings.add(select);
         }
         });
     escape.addActionListener(this);
+    escape.setEnabled(false); // enabled after searching
 
     openset.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
@@ -333,12 +334,13 @@ settings.add(select);
     if (e.getSource() == escape) {
         incSearch = false;
         if (panel != null) {
-        (new Thread() {
-            public void run() {
-                clearSearch();
-            }
-            }).start();
-
+            Thread t = new Thread() {
+                public void run() {
+                    clearSearch();
+                }
+            };
+            // do this after the button action is over
+            SwingUtilities.invokeLater(t);
         }
     }
     else if (((e.getSource() == searchField) || (e.getSource() == search))
@@ -374,7 +376,7 @@ settings.add(select);
         SearchWorker worker = new SearchWorker(searchRules, searchOptions);
         worker.getWorker().run();
         worker.getCallBack().update();
-
+        escape.setEnabled(true);
     }
     }
 
@@ -436,8 +438,8 @@ settings.add(select);
             startedFilterSearch = false;
             panel.stopShowingSearchResults();
         }
-
-
+        // disable "Cancel" button to signal this to the user
+        escape.setEnabled(false);
     }
     public void itemStateChanged(ItemEvent e) {
     if (e.getSource() == increment) {
@@ -483,6 +485,7 @@ settings.add(select);
 
     private void goIncremental() {
     incSearch = true;
+    escape.setEnabled(true);
     SwingUtilities.invokeLater(new Thread() {
         public void run() {
             String text = searchField.getText();
diff --git a/src/java/net/sf/jabref/SplashScreen.java b/src/java/net/sf/jabref/SplashScreen.java
index af7fc4b..4f5b6da 100644
--- a/src/java/net/sf/jabref/SplashScreen.java
+++ b/src/java/net/sf/jabref/SplashScreen.java
@@ -20,7 +20,7 @@ public class SplashScreen extends Window {
     
     public SplashScreen(Frame owner) {
         super(owner);
-        URL imageURL = SplashScreen.class.getResource("/images/jabref-2.0-splash.png");
+        URL imageURL = SplashScreen.class.getResource("/images/splash-2.1beta.png");
         splashImage = Toolkit.getDefaultToolkit().createImage(imageURL);
 
         // Load the image
diff --git a/src/java/net/sf/jabref/SplashScreen.java b/src/java/net/sf/jabref/SplashScreen.java~
similarity index 100%
copy from src/java/net/sf/jabref/SplashScreen.java
copy to src/java/net/sf/jabref/SplashScreen.java~
diff --git a/src/java/net/sf/jabref/TabLabelPattern.java b/src/java/net/sf/jabref/TabLabelPattern.java
index be2a635..4c1d588 100644
--- a/src/java/net/sf/jabref/TabLabelPattern.java
+++ b/src/java/net/sf/jabref/TabLabelPattern.java
@@ -24,12 +24,7 @@ import com.jgoodies.forms.layout.FormLayout;
 import com.jgoodies.forms.builder.DefaultFormBuilder;
 
 /**
- * This is the panel for the key pattern definition tab in 'Preferences'. So far
- * it is only possible to edit default entry types.
- * 
- * Labels and buttons does not yet draw from a resource file.
- *   
- * @author Ulrik Stervbo (ulriks AT ruc.dk)
+ * The Preferences panel for key generation.
  */
 public class TabLabelPattern extends JPanel implements PrefsTab{
 	
@@ -42,10 +37,11 @@ public class TabLabelPattern extends JPanel implements PrefsTab{
 	private LabelPattern _keypatterns = null;
 	
     private JCheckBox dontOverwrite = new JCheckBox(Globals.lang("Do not overwrite existing keys")),
-        warnBeforeOverwriting = new JCheckBox(Globals.lang("Warn before overwriting existing keys"));
+        warnBeforeOverwriting = new JCheckBox(Globals.lang("Warn before overwriting existing keys")),
+        generateOnSave = new JCheckBox(Globals.lang("Generate keys before saving (for entries without a key)"));
 
-    
-	private JLabel lblEntryType, lblKeyPattern;
+
+    private JLabel lblEntryType, lblKeyPattern;
 
     private JTextField defaultPat = new JTextField();
 
@@ -88,7 +84,7 @@ public class TabLabelPattern extends JPanel implements PrefsTab{
          //Globals.prefs.put("basenamePatternReplacement", basenamePatternReplacement.getText());
          Globals.prefs.put("KeyPatternRegex", KeyPatternRegex.getText());
          Globals.prefs.put("KeyPatternReplacement", KeyPatternReplacement.getText());
-
+         Globals.prefs.putBoolean("generateKeysBeforeSaving", generateOnSave.isSelected());
          LabelPatternUtil.updateDefaultPattern();
 
 
@@ -273,10 +269,10 @@ public class TabLabelPattern extends JPanel implements PrefsTab{
         builder.nextLine();
         builder.append(pan);
         builder.append(warnBeforeOverwriting);
+        builder.append(dontOverwrite);
         builder.nextLine();
         builder.append(pan);
-        builder.append(dontOverwrite);
-
+        builder.append(generateOnSave);        
         builder.nextLine();
         builder.append(pan);
         builder.append(Globals.lang("Replace (regular expression)")+":");
@@ -391,6 +387,7 @@ public class TabLabelPattern extends JPanel implements PrefsTab{
         _keypatterns = _prefs.getKeyPattern();
         defaultPat.setText(Globals.prefs.get("defaultLabelPattern"));
         dontOverwrite.setSelected(Globals.prefs.getBoolean("avoidOverwritingKey"));
+        generateOnSave.setSelected(Globals.prefs.getBoolean("generateKeysBeforeSaving"));
         warnBeforeOverwriting.setSelected(Globals.prefs.getBoolean("warnBeforeOverwritingKey"));
         // Warning before overwriting is only relevant if overwriting can happen:
         warnBeforeOverwriting.setEnabled(!dontOverwrite.isSelected());
diff --git a/src/java/net/sf/jabref/TableColumnsTab.java b/src/java/net/sf/jabref/TableColumnsTab.java
index 12b8055..007737b 100644
--- a/src/java/net/sf/jabref/TableColumnsTab.java
+++ b/src/java/net/sf/jabref/TableColumnsTab.java
@@ -176,7 +176,6 @@ class TableColumnsTab extends JPanel implements PrefsTab {
 
     class DeleteRowAction extends AbstractAction {
         public DeleteRowAction() {
-          //super(Globals.lang("Delete rows"));
           super("Delete row", new ImageIcon(GUIGlobals.delRowIconFile));
           putValue(SHORT_DESCRIPTION, Globals.lang("Delete rows"));
         }
@@ -185,13 +184,13 @@ class TableColumnsTab extends JPanel implements PrefsTab {
           if (rows.length == 0)
             return;
           int offs = 0;
-          for (int i=0; i<rows.length; i++) {
-            if ((rows[i]-i < tableRows.size()) && (rows[i] != 0)) {
-              tableRows.remove(rows[i] -1 - offs);
-              offs++;
+          for (int i=rows.length-1; i>=0; i--) {
+            if ((rows[i] <= tableRows.size()) && (rows[i] != 0)) {
+                tableRows.remove(rows[i]-1);
+                offs++;
             }
           }
-          rowCount -= offs; //rows.length;
+          rowCount -= offs;
           if (rows.length > 1) colSetup.clearSelection();
           colSetup.revalidate();
           colSetup.repaint();
@@ -201,7 +200,6 @@ class TableColumnsTab extends JPanel implements PrefsTab {
 
     class AddRowAction extends AbstractAction {
         public AddRowAction() {
-          //super(Globals.lang("Insert rows"));
           super("Add row", new ImageIcon(GUIGlobals.addIconFile));
           putValue(SHORT_DESCRIPTION, Globals.lang("Insert rows"));
         }
diff --git a/src/java/net/sf/jabref/TablePrefsTab.java b/src/java/net/sf/jabref/TablePrefsTab.java
index 62a1780..a9e8db0 100644
--- a/src/java/net/sf/jabref/TablePrefsTab.java
+++ b/src/java/net/sf/jabref/TablePrefsTab.java
@@ -19,9 +19,9 @@ class TablePrefsTab extends JPanel implements PrefsTab {
     pdfColumn, urlColumn, citeseerColumn;
     private JRadioButton namesAsIs, namesFf, namesFl, namesNatbib, abbrNames, noAbbrNames, lastNamesOnly;
     private JComboBox
-    priSort = new JComboBox(GUIGlobals.ALL_FIELDS),
-    secSort = new JComboBox(GUIGlobals.ALL_FIELDS),
-    terSort = new JComboBox(GUIGlobals.ALL_FIELDS);
+    priSort = new JComboBox(BibtexFields.getAllFieldNames()),
+    secSort = new JComboBox(BibtexFields.getAllFieldNames()),
+    terSort = new JComboBox(BibtexFields.getAllFieldNames());
     private JTextField priField, secField, terField;
     private JabRefFrame frame;
 
@@ -63,7 +63,7 @@ class TablePrefsTab extends JPanel implements PrefsTab {
         priSort.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
             if (priSort.getSelectedIndex() > 0) {
-              priField.setText(GUIGlobals.ALL_FIELDS[priSort.getSelectedIndex() - 1]);
+              priField.setText(BibtexFields.getFieldName( priSort.getSelectedIndex() - 1));
               priSort.setSelectedIndex(0);
             }
           }
@@ -71,7 +71,7 @@ class TablePrefsTab extends JPanel implements PrefsTab {
         secSort.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
             if (secSort.getSelectedIndex() > 0) {
-              secField.setText(GUIGlobals.ALL_FIELDS[secSort.getSelectedIndex() - 1]);
+              secField.setText(BibtexFields.getFieldName( secSort.getSelectedIndex() - 1));
               secSort.setSelectedIndex(0);
             }
           }
@@ -79,7 +79,7 @@ class TablePrefsTab extends JPanel implements PrefsTab {
         terSort.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
             if (terSort.getSelectedIndex() > 0) {
-              terField.setText(GUIGlobals.ALL_FIELDS[terSort.getSelectedIndex() - 1]);
+              terField.setText(BibtexFields.getFieldName( terSort.getSelectedIndex() - 1));
               terSort.setSelectedIndex(0);
             }
           }
@@ -238,75 +238,75 @@ class TablePrefsTab extends JPanel implements PrefsTab {
 
 }
 
-	/*
-	Boolean[] sel = new Boolean[GUIGlobals.ALL_FIELDS.length];
-	boolean found;
-	_choices = GUIGlobals.ALL_FIELDS;
-	_sel = sel;
-	String[] columns = prefs.getStringArray("columnNames");
-	for (int i=0; i<_choices.length; i++) {
-	    found = false;
-	    for (int j=0; j<columns.length; j++)
-		if (columns[j].equals(_choices[i]))
-		    found = true;
-	    if (found)
-		sel[i] = new Boolean(true);
-	    else
-		sel[i] = new Boolean(false);
-	}
-
-	TableModel tm = new AbstractTableModel() {
-		public int getRowCount() { return (_choices.length-1)/2; }
-		public int getColumnCount() { return 4; }
-		public Object getValueAt(int row, int column) {
-		    switch (column) {
-		    case 0:
-			return _choices[row];
-		    case 1:
-			return _sel[row];
-		    case 2:
-			return _choices[getRowCount()+row];
-		    case 3:
-			return _sel[getRowCount()+row];
-		    }
-		    return null; // Unreachable.
-		}
-		public Class getColumnClass(int column) {
-		    if ((column == 0) || (column == 2)) return String.class;
-		    else return Boolean.class;
-		}
-		public boolean isCellEditable(int row, int col) {
-		    if ((col == 1) || (col == 3)) return true;
-		    else return false;
-		}
-		public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
-		    if (columnIndex == 1)
-			_sel[rowIndex] = (Boolean)aValue;
-		    if (columnIndex == 3)
-			_sel[getRowCount()+rowIndex] = (Boolean)aValue;
-		}
-
-	    };
-
-	JTable table = new JTable(tm);
-	table.setRowSelectionAllowed(false);
-	table.setColumnSelectionAllowed(false);
-	//table.getInputMap().put(GUIGlobals.exitDialog, "close");
-	//table.getActionMap().put("close", new CancelAction());
-	JPanel
-	    tablePanel = new JPanel(),
-	    innerTablePanel = new JPanel();
-
-	table.setShowVerticalLines(false);
-	innerTablePanel.setBorder(BorderFactory.createEtchedBorder());
-	//innerTablePanel.setBorder(BorderFactory.createLoweredBevelBorder());
-	innerTablePanel.add(table);
-	tablePanel.add(innerTablePanel);
-
-
-	TableColumnModel cm = table.getColumnModel();
-	cm.getColumn(0).setPreferredWidth(90);
-	cm.getColumn(1).setPreferredWidth(25);
-	cm.getColumn(2).setPreferredWidth(90);
-	cm.getColumn(3).setPreferredWidth(25);
-	*/
+        /*
+        Boolean[] sel = new Boolean[GUIGlobals.ALL_FIELDS.length];
+        boolean found;
+        _choices = GUIGlobals.ALL_FIELDS;
+        _sel = sel;
+        String[] columns = prefs.getStringArray("columnNames");
+        for (int i=0; i<_choices.length; i++) {
+            found = false;
+            for (int j=0; j<columns.length; j++)
+                if (columns[j].equals(_choices[i]))
+                    found = true;
+            if (found)
+                sel[i] = new Boolean(true);
+            else
+                sel[i] = new Boolean(false);
+        }
+
+        TableModel tm = new AbstractTableModel() {
+                public int getRowCount() { return (_choices.length-1)/2; }
+                public int getColumnCount() { return 4; }
+                public Object getValueAt(int row, int column) {
+                    switch (column) {
+                    case 0:
+                        return _choices[row];
+                    case 1:
+                        return _sel[row];
+                    case 2:
+                        return _choices[getRowCount()+row];
+                    case 3:
+                        return _sel[getRowCount()+row];
+                    }
+                    return null; // Unreachable.
+                }
+                public Class getColumnClass(int column) {
+                    if ((column == 0) || (column == 2)) return String.class;
+                    else return Boolean.class;
+                }
+                public boolean isCellEditable(int row, int col) {
+                    if ((col == 1) || (col == 3)) return true;
+                    else return false;
+                }
+                public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+                    if (columnIndex == 1)
+                        _sel[rowIndex] = (Boolean)aValue;
+                    if (columnIndex == 3)
+                        _sel[getRowCount()+rowIndex] = (Boolean)aValue;
+                }
+
+            };
+
+        JTable table = new JTable(tm);
+        table.setRowSelectionAllowed(false);
+        table.setColumnSelectionAllowed(false);
+        //table.getInputMap().put(GUIGlobals.exitDialog, "close");
+        //table.getActionMap().put("close", new CancelAction());
+        JPanel
+            tablePanel = new JPanel(),
+            innerTablePanel = new JPanel();
+
+        table.setShowVerticalLines(false);
+        innerTablePanel.setBorder(BorderFactory.createEtchedBorder());
+        //innerTablePanel.setBorder(BorderFactory.createLoweredBevelBorder());
+        innerTablePanel.add(table);
+        tablePanel.add(innerTablePanel);
+
+
+        TableColumnModel cm = table.getColumnModel();
+        cm.getColumn(0).setPreferredWidth(90);
+        cm.getColumn(1).setPreferredWidth(25);
+        cm.getColumn(2).setPreferredWidth(90);
+        cm.getColumn(3).setPreferredWidth(25);
+        */
diff --git a/src/java/net/sf/jabref/UrlDragDrop.java b/src/java/net/sf/jabref/UrlDragDrop.java
index 4cb05a3..7afe662 100644
--- a/src/java/net/sf/jabref/UrlDragDrop.java
+++ b/src/java/net/sf/jabref/UrlDragDrop.java
@@ -70,7 +70,7 @@ public class UrlDragDrop implements DropTargetListener {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.awt.dnd.DropTargetListener#dragEnter(java.awt.dnd.DropTargetDragEvent)
      */
     public void dragEnter(DropTargetDragEvent dtde) {
@@ -78,7 +78,7 @@ public class UrlDragDrop implements DropTargetListener {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.awt.dnd.DropTargetListener#dragOver(java.awt.dnd.DropTargetDragEvent)
      */
     public void dragOver(DropTargetDragEvent dtde) {
@@ -86,7 +86,7 @@ public class UrlDragDrop implements DropTargetListener {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.awt.dnd.DropTargetListener#dropActionChanged(java.awt.dnd.DropTargetDragEvent)
      */
     public void dropActionChanged(DropTargetDragEvent dtde) {
@@ -94,7 +94,7 @@ public class UrlDragDrop implements DropTargetListener {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.awt.dnd.DropTargetListener#dragExit(java.awt.dnd.DropTargetEvent)
      */
     public void dragExit(DropTargetEvent dte) {
@@ -123,7 +123,7 @@ public class UrlDragDrop implements DropTargetListener {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.awt.dnd.DropTargetListener#drop(java.awt.dnd.DropTargetDropEvent)
      */
     public void drop(DropTargetDropEvent dtde) {
@@ -161,7 +161,7 @@ public class UrlDragDrop implements DropTargetListener {
                     //auto file name:
                     File file = new File(new File(Globals.prefs
                             .get("pdfDirectory")), editor.getEntry()
-                            .getField(Globals.KEY_FIELD)
+                            .getField(BibtexFields.KEY_FIELD)
                             + ".pdf");
                     URLDownload udl = new URLDownload((Component) editor, url,
                             file);
@@ -216,4 +216,4 @@ public class UrlDragDrop implements DropTargetListener {
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/java/net/sf/jabref/Util.java b/src/java/net/sf/jabref/Util.java
index 11b9e5b..ea84e79 100644
--- a/src/java/net/sf/jabref/Util.java
+++ b/src/java/net/sf/jabref/Util.java
@@ -24,31 +24,37 @@
  http://www.gnu.org/copyleft/gpl.ja.html
 
  */
+// created by : Morten O. Alver 2003
+//
+// function : utility functions
+//
+// todo     :
+//
+// modified :  - r.nagel 20.04.2006
+//               make the DateFormatter abstract and splitt the easyDate methode
+//               (now we cannot change the dateformat dynamicly, sorry)
+
 
 package net.sf.jabref;
 
-import java.awt.*;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-import java.io.*;
-import java.util.*;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.text.SimpleDateFormat;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetEncoder;
-
-import javax.swing.*;
-
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-
-import net.sf.jabref.export.LatexFieldFormatter;
-import net.sf.jabref.groups.*;
-import net.sf.jabref.imports.*;
-import net.sf.jabref.undo.NamedCompound;
-import net.sf.jabref.undo.UndoableFieldChange;
+import java.io.* ;
+import java.net.* ;
+import java.nio.charset.* ;
+import java.text.* ;
+import java.util.* ;
+import java.util.List ;
+import java.util.regex.* ;
+
+import java.awt.* ;
+import java.awt.event.* ;
+import javax.swing.* ;
+
+import com.jgoodies.forms.builder.* ;
+import com.jgoodies.forms.layout.* ;
+import net.sf.jabref.external.* ;
+import net.sf.jabref.groups.* ;
+import net.sf.jabref.imports.* ;
+import net.sf.jabref.undo.* ;
 
 /**
  * Describe class <code>Util</code> here.
@@ -56,21 +62,31 @@ import net.sf.jabref.undo.UndoableFieldChange;
  * @author <a href="mailto:"> </a>
  * @version 1.0
  */
-public class Util {
+public class Util
+{
+  // A static Object for date formatting. Please do not create the object here,
+  // because there are some references from the Globals class.....
+  private static SimpleDateFormat dateFormatter = null ;
 
     // Colors are defined here.
     public static Color fieldsCol = new Color(180, 180, 200);
 
     // Integer values for indicating result of duplicate check (for entries):
-    final static int TYPE_MISMATCH = -1
-    ,
-    NOT_EQUAL = 0
-    ,
-    EQUAL = 1
-    ,
-    EMPTY_IN_ONE = 2
-    ,
-    EMPTY_IN_TWO = 3;
+    final static int
+        TYPE_MISMATCH = -1,
+        NOT_EQUAL     =  0,
+        EQUAL         =  1,
+        EMPTY_IN_ONE  =  2,
+        EMPTY_IN_TWO  =  3;
+
+
+    final static NumberFormat idFormat;
+
+    static {
+        idFormat = NumberFormat.getInstance();
+        idFormat.setMinimumIntegerDigits(8);
+        idFormat.setGroupingUsed(false);
+    }
 
     public static void bool(boolean b) {
         if (b) System.out.println("true");
@@ -103,8 +119,10 @@ public class Util {
 
     private static int idCounter = 0;
 
+
     public synchronized static String createNeutralId() {
-        return String.valueOf(idCounter++);
+        return idFormat.format(idCounter++);
+        //return String.valueOf(idCounter++);
     }
 
     /**
@@ -380,12 +398,15 @@ public class Util {
     /**
      * Open a http/pdf/ps viewer for the given link string.
      */
-    public static void openExternalViewer(String link, String fieldName,
-                                          JabRefPreferences prefs) throws IOException {
+    public static void openExternalViewer(MetaData metaData, String link, String fieldName
+    ) throws IOException {
 
         if (fieldName.equals("ps") || fieldName.equals("pdf")) {
-            //System.out.println(expandFilename(link, prefs.get(fieldName+"Directory")));
-            File file = expandFilename(link, prefs.get(fieldName + "Directory"));
+
+            // Find the default directory for this field type:
+            String dir = metaData.getFileDirectory(fieldName);
+
+            File file = expandFilename(link, dir);
 
             // Check that the file exists:
             if ((file == null) || !file.exists()) {
@@ -426,57 +447,59 @@ public class Util {
                 if (link.startsWith("\\url{") && link.endsWith("}")) link = link
                         .substring(5, link.length() - 1);
 
-                //System.err.println("Starting HTML browser: "
-                //                   + prefs.get("htmlviewer") + " " + link);
+                link = sanitizeUrl(link);
+
                 if (Globals.ON_MAC) {
                     String[] cmd = {"/usr/bin/open", "-a",
-                            prefs.get("htmlviewer"), link};
+                            Globals.prefs.get("htmlviewer"), link};
                     Process child = Runtime.getRuntime().exec(cmd);
                 } else if (Globals.ON_WIN) {
                     openFileOnWindows(link, false);
-                    /*cmdArray[0] = prefs.get("htmlviewer");
+                    /*cmdArray[0] = Globals.prefs.get("htmlviewer");
                     cmdArray[1] = link;
                     Process child = Runtime.getRuntime().exec(
                     cmdArray[0] + " " + cmdArray[1]);
                     */
                 } else {
-                    cmdArray[0] = prefs.get("htmlviewer");
+                    cmdArray[0] = Globals.prefs.get("htmlviewer");
                     cmdArray[1] = link;
                     Process child = Runtime.getRuntime().exec(cmdArray);
                 }
 
             } catch (IOException e) {
                 System.err.println("An error occured on the command: "
-                        + prefs.get("htmlviewer") + " " + link);
+                        + Globals.prefs.get("htmlviewer") + " " + link);
+            } catch (URISyntaxException e2) {
+                e2.printStackTrace();
             }
         } else if (fieldName.equals("ps")) {
             try {
                 if (Globals.ON_MAC) {
                     String[] cmd = {"/usr/bin/open", "-a",
-                            prefs.get("psviewer"), link};
+                            Globals.prefs.get("psviewer"), link};
                     Process child = Runtime.getRuntime().exec(cmd);
                 } else if (Globals.ON_WIN) {
                     openFileOnWindows(link, true);
                     /*
-                    cmdArray[0] = prefs.get("psviewer");
+                    cmdArray[0] = Globals.prefs.get("psviewer");
                     cmdArray[1] = link;
                     Process child = Runtime.getRuntime().exec(
                             cmdArray[0] + " " + cmdArray[1]);
                     */
                 } else {
-                    cmdArray[0] = prefs.get("psviewer");
+                    cmdArray[0] = Globals.prefs.get("psviewer");
                     cmdArray[1] = link;
                     Process child = Runtime.getRuntime().exec(cmdArray);
                 }
             } catch (IOException e) {
                 System.err.println("An error occured on the command: "
-                        + prefs.get("psviewer") + " " + link);
+                        + Globals.prefs.get("psviewer") + " " + link);
             }
         } else if (fieldName.equals("pdf")) {
             try {
                 if (Globals.ON_MAC) {
                     String[] cmd = {"/usr/bin/open", "-a",
-                            prefs.get("pdfviewer"), link};
+                            Globals.prefs.get("pdfviewer"), link};
                     Process child = Runtime.getRuntime().exec(cmd);
                 } else if (Globals.ON_WIN) {
                     openFileOnWindows(link, true);
@@ -498,7 +521,7 @@ public class Util {
                     Process child = Runtime.getRuntime().exec(cmd);
                     */
                 } else {
-                    cmdArray[0] = prefs.get("pdfviewer");
+                    cmdArray[0] = Globals.prefs.get("pdfviewer");
                     cmdArray[1] = link;
                     //Process child = Runtime.getRuntime().exec(cmdArray[0]+"
                     // "+cmdArray[1]);
@@ -507,7 +530,7 @@ public class Util {
             } catch (IOException e) {
                 e.printStackTrace();
                 System.err.println("An error occured on the command: "
-                        + prefs.get("pdfviewer") + " #" + link);
+                        + Globals.prefs.get("pdfviewer") + " #" + link);
                 System.err.println(e.getMessage());
             }
         } else {
@@ -517,6 +540,7 @@ public class Util {
         }
     }
 
+
     /**
      * Opens a file on a Windows system, using its default viewer.
      * @param link The file name.
@@ -534,13 +558,124 @@ public class Util {
                 sb.append(spl[i]);
             }
             link = sb.toString();
-	    }*/
-	link = link.replaceAll("&", "\"&\"").replaceAll(" ", "\" \"");
+            }*/
+    link = link.replaceAll("&", "\"&\"").replaceAll(" ", "\" \"");
         String cmd = "cmd.exe /c start " + link;
         Process child = Runtime.getRuntime().exec(cmd);
     }
 
     /**
+     * Open an external file, attempting to use the correct viewer for it.
+     * @param metaData The MetaData for the database this file belongs to.
+     * @param link The file name.
+     */
+    public static void openExternalFileAnyFormat(MetaData metaData, String link)
+        throws IOException {
+
+        // For other platforms we'll try to find the file type:
+        File file = new File(link);
+
+        // We try to check the extension for the file:
+        String name = file.getName();
+        int pos = name.indexOf('.');
+        String extension = ((pos >= 0) && (pos < name.length()-1)) ?
+                name.substring(pos+1).trim().toLowerCase() : null;
+
+        /*if ((extension == null) || (extension.length() == 0)) {
+            // No extension. What to do?
+            throw new IOException(Globals.lang("No file extension. Could not find viewer for file."));
+        } */
+
+        // Now we know the extension, check if it is one we know about:
+        ExternalFileType fileType = Globals.prefs.getExternalFileType(extension);
+
+
+        // Find the default directory for this field type, if any:
+        String dir = metaData.getFileDirectory(extension);
+        if (dir != null) {
+            File tmp = expandFilename(link, dir);
+            if (tmp != null)
+                file = tmp;
+        }
+
+        // Check if we have arrived at an existing file:
+        if (file.exists() && (fileType != null)) {
+            // Open the file:
+            try {
+                if (Globals.ON_MAC) {
+                    String[] cmd = {"/usr/bin/open", "-a",
+                            fileType.getOpenWith(), file.getPath()};
+                    Runtime.getRuntime().exec(cmd);
+                } else if (Globals.ON_WIN) {
+                    openFileOnWindows(file.getPath(), true);
+                } else {
+                    String[] cmdArray = new String[] {
+                            fileType.getOpenWith(),
+                            file.getPath()
+                    };
+                    Runtime.getRuntime().exec(cmdArray);
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+                System.err.println("An error occured on the command: "
+                        + fileType.getOpenWith() + " #" + link);
+                System.err.println(e.getMessage());
+            }
+
+        }
+        else {
+            // No file matched the name, or we didn't know the file type.
+            // Perhaps it is an URL thing.
+
+            // First check if it is enclosed in \\url{}. If so, remove
+            // the wrapper.
+            if (link.startsWith("\\url{") && link.endsWith("}")) link = link
+                    .substring(5, link.length() - 1);
+
+            if (link.startsWith("doi:"))
+                link = Globals.DOI_LOOKUP_PREFIX+link;
+
+            try {
+                link = sanitizeUrl(link);
+            } catch (URISyntaxException ex) {
+                ex.printStackTrace();
+            }
+
+            if (Globals.ON_MAC) {
+                String[] cmd = {"/usr/bin/open", "-a",
+                        Globals.prefs.get("htmlviewer"), link};
+                Runtime.getRuntime().exec(cmd);
+            } else if (Globals.ON_WIN) {
+                openFileOnWindows(link, false);
+            } else {
+                String[] cmdArray = new String[] {
+                    Globals.prefs.get("htmlviewer"),
+                    link
+                };
+                Runtime.getRuntime().exec(cmdArray);
+            }
+
+        }
+    }
+
+    /**
+     * Make sure an URL is "portable", in that it doesn't contain bad characters
+     * that break the open command in some OSes.
+     * @param link The URL to sanitize.
+     * @return Sanitized URL
+     */
+    private static String sanitizeUrl(String link) throws URISyntaxException {
+        String scheme = "http";
+        String ssp;
+        if (link.indexOf("//") > 0)
+            ssp = "//" + link.substring(2+link.indexOf("//"));
+        else
+            ssp = "//" + link;
+        URI uri = new URI(scheme, ssp, null);
+        return uri.toASCIIString();
+    }
+
+    /**
      * Searches the given directory and subdirectories for a pdf file with name
      * as given + ".pdf"
      */
@@ -569,8 +704,15 @@ public class Util {
      */
     public static File expandFilename(String name, String dir) {
         //System.out.println("expandFilename: name="+name+"\t dir="+dir);
-
-        File file = new File(name);
+                                File file = null;
+                                if(name==null || name.length()==0)
+                                        return null;
+                                else
+                                {
+                                        file = new File(name);
+                                }
+
+        if(file!=null){
         if (!file.exists() && (dir != null)) {
             if (dir.endsWith(System.getProperty("file.separator"))) name = dir
                     + name;
@@ -582,12 +724,22 @@ public class Util {
             file = new File(name);
             if (file.exists()) return file;
             // Ok, try to fix / and \ problems:
-            if (Globals.ON_WIN) name = name.replaceAll("/", "\\");
+            if (Globals.ON_WIN){
+                    // workaround for catching Java bug in regexp replacer
+                    // and, why, why, why ... I don't get it - wegner 2006/01/22
+                    try{
+                     name = name.replaceAll("/", "\\");
+                    }
+                    catch(java.lang.StringIndexOutOfBoundsException exc){
+                            System.err.println("An internal Java error was caused by the entry "+"\""+name+"\"");
+                    }
+            }
             else name = name.replaceAll("\\\\", "/");
             //System.out.println("expandFilename: "+name);
             file = new File(name);
-            return (file.exists() ? file : null);
-        } else return file;
+            if (!file.exists()) file = null;
+        }}
+        return file;
     }
 
     private static String findInDir(String key, String dir, OpenFileFilter off) {
@@ -736,42 +888,69 @@ public class Util {
     /*
      * public static void updateCompletersForEntry(Hashtable autoCompleters,
      * BibtexEntry be) {
-     * 
+     *
      * for (Iterator j=autoCompleters.keySet().iterator(); j.hasNext();) {
      * String field = (String)j.next(); Completer comp =
      * (Completer)autoCompleters.get(field); comp.addAll(be.getField(field)); } }
      */
 
     /**
-     * Sets empty or non-existing owner fields of bibtex entries inside an array
+     * Sets empty or non-existing owner fields of bibtex entries inside a List
      * to a specified default value. Timestamp field is also set. Preferences are
      * checked to see if these options are enabled.
      *
      * @param bibs List of bibtex entries
      */
     public static void setAutomaticFields(List bibs) {
-
         String defaultOwner = Globals.prefs.get("defaultOwner");
         String timestamp = easyDateFormat();
+        boolean setOwner = Globals.prefs.getBoolean("useOwner"),
+                setTimeStamp = Globals.prefs.getBoolean("useTimeStamp");
+        String timeStampField = Globals.prefs.get("timeStampField");
         // Iterate through all entries
         for (int i = 0; i < bibs.size(); i++) {
             // Get current entry
             BibtexEntry curEntry = (BibtexEntry) bibs.get(i);
+            setAutomaticFields(curEntry, setOwner, defaultOwner, setTimeStamp,
+                    timeStampField, timestamp);
 
-            // Set owner field if this option is enabled:
-            if (Globals.prefs.getBoolean("useOwner")) {
-                // No or empty owner field?
-                if (curEntry.getField(Globals.OWNER) == null
-                        || ((String) curEntry.getField(Globals.OWNER)).length() == 0) {
-                    // Set owner field to default value
-                    curEntry.setField(Globals.OWNER, defaultOwner);
-                }
-            }
+        }
 
-            if (Globals.prefs.getBoolean("useTimeStamp"))
-                curEntry.setField(Globals.prefs.get("timeStampField"), timestamp);
+    }
+
+    /**
+     * Sets empty or non-existing owner fields of a bibtex entry
+     * to a specified default value. Timestamp field is also set. Preferences are
+     * checked to see if these options are enabled.
+     *
+     * @param entry The entry to set fields for.
+     */
+    public static void setAutomaticFields(BibtexEntry entry) {
+        String defaultOwner = Globals.prefs.get("defaultOwner");
+        String timestamp = easyDateFormat();
+        boolean setOwner = Globals.prefs.getBoolean("useOwner"),
+                setTimeStamp = Globals.prefs.getBoolean("useTimeStamp");
+        String timeStampField = Globals.prefs.get("timeStampField");
+        setAutomaticFields(entry, setOwner, defaultOwner, setTimeStamp,
+                    timeStampField, timestamp);
+    }
+
+    private static void setAutomaticFields(BibtexEntry entry, boolean setOwner,
+                                           String owner, boolean setTimeStamp,
+                                           String timeStampField, String timeStamp) {
+
+        // Set owner field if this option is enabled:
+        if (setOwner) {
+            // No or empty owner field?
+            //if (entry.getField(Globals.OWNER) == null
+            //        || ((String) entry.getField(Globals.OWNER)).length() == 0) {
+                // Set owner field to default value
+                entry.setField(BibtexFields.OWNER, owner);
+            //}
         }
 
+        if (setTimeStamp)
+            entry.setField(timeStampField, timeStamp);
     }
 
     /**
@@ -852,7 +1031,7 @@ public class Util {
 
         return back;
     }
-    
+
     /** Quotes each and every character, e.g. '!' as !. Used for
      *  verbatim display of arbitrary strings that may contain HTML entities. */
     public static String quoteForHTML(String s) {
@@ -862,7 +1041,7 @@ public class Util {
         }
         return sb.toString();
     }
-    
+
     public static String quote(String s, String specials, char quoteChar) {
         return quote(s, specials, quoteChar, 0);
     }
@@ -991,8 +1170,10 @@ public class Util {
                 String field = kg.getSearchField().toLowerCase();
                 if (field.equals("keywords"))
                     continue; // this is not undesired
-                for (int i = 0; i < GUIGlobals.ALL_FIELDS.length; ++i) {
-                    if (field.equals(GUIGlobals.ALL_FIELDS[i])) {
+                for (int i = 0, len = BibtexFields.numberOfPublicFields(); i < len; ++i)
+                {
+                    if (field.equals( BibtexFields.getFieldName(i)))
+                    {
                         affectedFields.add(field);
                         break;
                     }
@@ -1020,7 +1201,7 @@ public class Util {
 //        if (groups instanceof KeywordGroup) {
 //            KeywordGroup kg = (KeywordGroup) groups;
 //            String field = kg.getSearchField().toLowerCase();
-//            if (field.equals("keywords")) 
+//            if (field.equals("keywords"))
 //                return true; // this is not undesired
 //            for (int i = 0; i < GUIGlobals.ALL_FIELDS.length; ++i) {
 //                if (field.equals(GUIGlobals.ALL_FIELDS[i])) {
@@ -1156,7 +1337,7 @@ public class Util {
      * @return The file filter.
      */
     public static OpenFileFilter getFileFilterForField(String fieldName) {
-        String s = (String) GUIGlobals.FIELD_EXTRAS.get(fieldName);
+        String s = BibtexFields.getFieldExtras( fieldName ) ;
         final String ext = "." + fieldName.toLowerCase();
         final OpenFileFilter off;
         if (s.equals("browseDocZip"))
@@ -1253,16 +1434,33 @@ public class Util {
      *
      * @return The date string.
      */
-    public static String easyDateFormat() {
-        String format = Globals.prefs.get("timeStampFormat");
-        Date today = new Date();
-        SimpleDateFormat formatter = new SimpleDateFormat(format);
-        return formatter.format(today);
+    public static String easyDateFormat()
+    {
+//        Date today = new Date();
+        return easyDateFormat( new Date() ) ;
+    }
+
+    /**
+     * Creates a readable Date string from the parameter date.
+     * The format is set in preferences under the key "timeStampFormat".
+     *
+     * @return The formatted date string.
+     */
+    public static String easyDateFormat(Date date)
+    {
+        // first use, create an instance
+        if (dateFormatter == null)
+        {
+          String format = Globals.prefs.get( "timeStampFormat" ) ;
+          dateFormatter = new SimpleDateFormat( format ) ;
+        }
+        return dateFormatter.format(date);
     }
 
 
+
     public static void markEntry(BibtexEntry be, NamedCompound ce) {
-        Object o = be.getField(Globals.MARKED);
+        Object o = be.getField(BibtexFields.MARKED);
         if ((o != null) && (o.toString().indexOf(Globals.prefs.WRAPPED_USERNAME) >= 0))
             return;
         String newValue;
@@ -1274,13 +1472,13 @@ public class Util {
             sb.append(Globals.prefs.WRAPPED_USERNAME);
             newValue = sb.toString();
         }
-        ce.addEdit(new UndoableFieldChange(be, Globals.MARKED,
-                                          be.getField(Globals.MARKED), newValue));
-        be.setField(Globals.MARKED, newValue);
+        ce.addEdit(new UndoableFieldChange(be, BibtexFields.MARKED,
+                                          be.getField(BibtexFields.MARKED), newValue));
+        be.setField(BibtexFields.MARKED, newValue);
     }
 
     public static void unmarkEntry(BibtexEntry be, BibtexDatabase database, NamedCompound ce) {
-        Object o = be.getField(Globals.MARKED);
+        Object o = be.getField(BibtexFields.MARKED);
         if (o != null) {
             String s = o.toString();
             if (s.equals("0")) {
@@ -1299,9 +1497,9 @@ public class Util {
                 sb.append(s.substring(piv));
             }
             String newVal = sb.length()>0 ? sb.toString() : null;
-            ce.addEdit(new UndoableFieldChange(be, Globals.MARKED,
-                be.getField(Globals.MARKED), newVal));
-            be.setField(Globals.MARKED, newVal);
+            ce.addEdit(new UndoableFieldChange(be, BibtexFields.MARKED,
+                be.getField(BibtexFields.MARKED), newVal));
+            be.setField(BibtexFields.MARKED, newVal);
         }
     }
 
@@ -1319,7 +1517,7 @@ public class Util {
         TreeSet owners = new TreeSet();
         for (Iterator i=database.getEntries().iterator(); i.hasNext();) {
             BibtexEntry entry = (BibtexEntry)i.next();
-            Object o = entry.getField(Globals.OWNER);
+            Object o = entry.getField(BibtexFields.OWNER);
             if (o != null)
                 owners.add(o);
             //System.out.println("Owner: "+entry.getField(Globals.OWNER));
@@ -1334,13 +1532,13 @@ public class Util {
         String newVal = sb.toString();
         if (newVal.length() == 0)
             newVal = null;
-        ce.addEdit(new UndoableFieldChange(be, Globals.MARKED, be.getField(Globals.MARKED), newVal));
-        be.setField(Globals.MARKED, newVal);
+        ce.addEdit(new UndoableFieldChange(be, BibtexFields.MARKED, be.getField(BibtexFields.MARKED), newVal));
+        be.setField(BibtexFields.MARKED, newVal);
 
     }
 
     public static boolean isMarked(BibtexEntry be) {
-        Object fieldVal = be.getField(Globals.MARKED);
+        Object fieldVal = be.getField(BibtexFields.MARKED);
         if (fieldVal == null)
             return false;
         String s = (String)fieldVal;
diff --git a/src/java/net/sf/jabref/collab/ChangeScanner.java b/src/java/net/sf/jabref/collab/ChangeScanner.java
index abdc7dc..0b70166 100644
--- a/src/java/net/sf/jabref/collab/ChangeScanner.java
+++ b/src/java/net/sf/jabref/collab/ChangeScanner.java
@@ -26,9 +26,9 @@ public class ChangeScanner extends Thread {
      */
     //ArrayList changes = new ArrayList();
     DefaultMutableTreeNode changes = new DefaultMutableTreeNode(Globals.lang("External changes"));
-    
+
     //  NamedCompound edit = new NamedCompound("Merged external changes")
-    
+
     public ChangeScanner(JabRefFrame frame, BasePanel bp) { //, BibtexDatabase inMem, MetaData mdInMem) {
         panel = bp;
         this.frame = frame;
@@ -47,7 +47,7 @@ public class ChangeScanner extends Thread {
     public void run() {
         try {
             //long startTime = System.currentTimeMillis();
-            
+
             // Parse the temporary file.
             File tempFile = Globals.fileUpdateMonitor.getTempFile(panel.fileMonitorHandle());
             ParserResult pr = OpenDatabaseAction.loadDatabase(tempFile,
@@ -55,14 +55,14 @@ public class ChangeScanner extends Thread {
             BibtexDatabase inTemp = pr.getDatabase();
             MetaData mdInTemp = new MetaData(pr.getMetaData(),inTemp);
             //Util.pr(tempFile.getPath()+": "+inMem.getEntryCount());
-            
+
             // Parse the modified file.
             pr = OpenDatabaseAction.loadDatabase(f, Globals.prefs.get("defaultEncoding"));
             BibtexDatabase onDisk = pr.getDatabase();
             MetaData mdOnDisk = new MetaData(pr.getMetaData(),onDisk);
-            
+
             //Util.pr(f.getPath()+": "+onDisk.getEntryCount());
-            
+
             // Sort both databases according to a common sort key.
             EntryComparator comp = new EntryComparator(false, true, sortBy[2]);
             comp = new EntryComparator(false, true, sortBy[1], comp);
@@ -76,7 +76,7 @@ public class ChangeScanner extends Thread {
             comp = new EntryComparator(false, true, sortBy[1], comp);
             comp = new EntryComparator(false, true, sortBy[0], comp);
             EntrySorter sInMem = inMem.getSorter(comp);
-            
+
             // Start looking at changes.
             scanPreamble(inMem, inTemp, onDisk);
             scanStrings(inMem, inTemp, onDisk);
@@ -99,7 +99,7 @@ public class ChangeScanner extends Thread {
                 public void run() {
                     ChangeDisplayDialog dial = new ChangeDisplayDialog(frame, panel, changes);
                     Util.placeDialog(dial, frame);
-                    dial.show();
+                    dial.setVisible(true); // dial.show(); -> deprecated since 1.5
                 }
             });
 
@@ -115,12 +115,12 @@ public class ChangeScanner extends Thread {
         // successive order from the beginning. Entries "further down" in the "disk" base
         // can also be matched.
         int piv1 = 0, piv2 = 0;
-        
+
         // Create a HashSet where we can put references to entry numbers in the "disk"
         // database that we have matched. This is to avoid matching them twice.
         HashSet used = new HashSet(disk.getEntryCount());
         HashSet notMatched = new HashSet(tmp.getEntryCount());
-        
+
         // Loop through the entries of the "mem" database, looking for exact matches in the "disk" one.
         // We must finish scanning for exact matches before looking for near matches, to avoid an exact
         // match being "stolen" from another entry.
@@ -139,7 +139,7 @@ public class ChangeScanner extends Thread {
                 piv2++;
                 continue mainLoop;
             }
-            
+
             // No? Then check if another entry matches exactly.
             if (piv2 < disk.getEntryCount()-1) {
                 for (int i = piv2+1; i < disk.getEntryCount(); i++) {
@@ -154,24 +154,24 @@ public class ChangeScanner extends Thread {
                     }
                 }
             }
-            
+
             // No? Add this entry to the list of nonmatched entries.
             notMatched.add(new Integer(piv1));
         }
-        
-        
+
+
         // Now we've found all exact matches, look through the remaining entries, looking
         // for close matches.
         if (notMatched.size() > 0) {
             //Util.pr("Could not find exact match for "+notMatched.size()+" entries.");
-            
+
             fuzzyLoop: for (Iterator it=notMatched.iterator(); it.hasNext();) {
 
                 Integer integ = (Integer)it.next();
                 piv1 = integ.intValue();
-                
+
                 //Util.printEntry(mem.getEntryAt(piv1));
-                
+
                 // These two variables will keep track of which entry most closely matches the
                 // one we're looking at, in case none matches completely.
                 int bestMatchI = -1;
@@ -203,14 +203,14 @@ public class ChangeScanner extends Thread {
                     EntryChange ec = new EntryChange(bestFit(tmp, mem, piv1), tmp.getEntryAt(piv1),
                     disk.getEntryAt(bestMatchI));
                     changes.add(ec);
-                    
+
                     // Create an undo edit to represent this change:
                     //NamedCompound ce = new NamedCompound("Modified entry");
                     //ce.addEdit(new UndoableRemoveEntry(inMem, disk.getEntryAt(bestMatchI), panel));
                     //ce.addEdit(new UndoableInsertEntry(inMem, tmp.getEntryAt(piv1), panel));
                     //ce.end();
                     //changes.add(ce);
-                    
+
                     //System.out.println("Possible match for entry:");
                     //Util.printEntry(mem.getEntryAt(piv1));
                     //System.out.println("----------------------------------------------");
@@ -305,13 +305,13 @@ public class ChangeScanner extends Thread {
         HashSet used = new HashSet();
         HashSet usedInMem = new HashSet();
         HashSet notMatched = new HashSet(onTmp.getStringCount());
-        
+
         // First try to match by string names.
         //int piv2 = -1;
         mainLoop: for (Iterator i=onTmp.getStringKeySet().iterator(); i.hasNext();) {
             Object tmpId = i.next();
             BibtexString tmp = onTmp.getString(tmpId);
-            
+
             //      for (int j=piv2+1; j<nDisk; j++)
             for (Iterator j=onDisk.getStringKeySet().iterator(); j.hasNext();) {
                 Object diskId = j.next();
@@ -340,13 +340,13 @@ public class ChangeScanner extends Thread {
             // If we get here, there was no match for this string.
             notMatched.add(tmp.getId());
         }
-        
+
         // See if we can detect a name change for those entries that we couldn't match.
         if (notMatched.size() > 0) {
             for (Iterator i = notMatched.iterator(); i.hasNext(); ) {
                 Object nmId = i.next();
                 BibtexString tmp = onTmp.getString(nmId);
-                
+
                 // If we get to this point, we found no string with matching name. See if we
                 // can find one with matching content.
                 String tmpContent = tmp.getContent();
@@ -360,7 +360,7 @@ public class ChangeScanner extends Thread {
                         if (disk.getContent().equals(tmp.getContent())) {
                             // We have found a string with the same content. It cannot have the same
                             // name, or we would have found it above.
-                            
+
                             // Try to find the matching one in memory:
                             BibtexString bsMem = null;
                             findInMem: for (Iterator k=inMem.getStringKeySet().iterator(); k.hasNext();) {
@@ -400,7 +400,7 @@ public class ChangeScanner extends Thread {
         }
 
         //System.out.println(used.size());
-        
+
         // Finally, see if there are remaining strings in the disk database. They
         // must have been added.
         for (Iterator i=onDisk.getStringKeySet().iterator(); i.hasNext();) {
@@ -448,13 +448,13 @@ public class ChangeScanner extends Thread {
             return;
         changes.add(new GroupChange(groupsDisk));
         return;
-        
-//        
+
+//
 //        if (((vOnTmp == null) || (vOnTmp.size()==0)) && ((vOnDisk == null) || (vOnDisk.size()==0))) {
 //            // No groups defined in either the tmp or disk version.
 //            return;
 //        }
-//        
+//
 //        // To avoid checking for null all the time, make empty vectors to replace null refs. We clone
 //        // non-null vectors so we can remove the elements as we finish with them.
 //        if (vOnDisk == null)
@@ -469,7 +469,7 @@ public class ChangeScanner extends Thread {
 //            vInMem = new Vector(0);
 //        else
 //            vInMem = (Vector)vInMem.clone();
-//        
+//
 //        // If the tmp version has groups, iterate through these and compare with disk version:
 //        while (vOnTmp.size() >= 1) {
 //            AbstractGroup group = (AbstractGroup)vOnTmp.firstElement();
@@ -480,17 +480,17 @@ public class ChangeScanner extends Thread {
 //                changes.add(new GroupAddOrRemove(group, false));
 //            } else {
 //                AbstractGroup diskGroup = (AbstractGroup)vOnDisk.elementAt(pos);
-//                
+//
 //                if (!diskGroup.equals(group)) {
 //                    // Group has changed.
 //                    changes.add(new GroupChange(inMem, group, diskGroup));
 //                }
-//                
+//
 //                // Remove this group, since it's been accounted for.
 //                vOnDisk.remove(pos);
 //            }
 //        }
-//        
+//
 //        // If there are entries left in the disk version, these must have been added.
 //        while (vOnDisk.size() >= 1) {
 //            AbstractGroup group = (AbstractGroup)vOnDisk.firstElement();
diff --git a/src/java/net/sf/jabref/collab/EntryAddChange.java b/src/java/net/sf/jabref/collab/EntryAddChange.java
index e62d608..ce637bf 100644
--- a/src/java/net/sf/jabref/collab/EntryAddChange.java
+++ b/src/java/net/sf/jabref/collab/EntryAddChange.java
@@ -1,15 +1,11 @@
 package net.sf.jabref.collab;
 
-import net.sf.jabref.Globals;
-import net.sf.jabref.BibtexEntry;
-import net.sf.jabref.BasePanel;
-import net.sf.jabref.Util;
 import net.sf.jabref.undo.NamedCompound;
 import net.sf.jabref.undo.UndoableInsertEntry;
-import net.sf.jabref.KeyCollisionException;
 import javax.swing.JComponent;
 import javax.swing.JLabel;
-import net.sf.jabref.PreviewPanel;
+import net.sf.jabref.*;
+
 import javax.swing.JScrollPane;
 
 public class EntryAddChange extends Change {
@@ -23,7 +19,7 @@ public class EntryAddChange extends Change {
     super("Added entry");
     this.diskEntry = diskEntry;
 
-    pp = new PreviewPanel(diskEntry, Globals.prefs.get("preview0"));
+    pp = new PreviewPanel(diskEntry, new MetaData(), Globals.prefs.get("preview0"));
     sp = new JScrollPane(pp);
   }
 
diff --git a/src/java/net/sf/jabref/collab/EntryDeleteChange.java b/src/java/net/sf/jabref/collab/EntryDeleteChange.java
index 1ae2841..6ef0354 100644
--- a/src/java/net/sf/jabref/collab/EntryDeleteChange.java
+++ b/src/java/net/sf/jabref/collab/EntryDeleteChange.java
@@ -1,13 +1,9 @@
 package net.sf.jabref.collab;
 
-import net.sf.jabref.Globals;
-import net.sf.jabref.BibtexEntry;
-import net.sf.jabref.BasePanel;
-import net.sf.jabref.Util;
-import net.sf.jabref.KeyCollisionException;
 import javax.swing.JComponent;
 import javax.swing.JLabel;
-import net.sf.jabref.PreviewPanel;
+import net.sf.jabref.*;
+
 import javax.swing.JScrollPane;
 import net.sf.jabref.undo.NamedCompound;
 import net.sf.jabref.undo.UndoableRemoveEntry;
@@ -35,7 +31,7 @@ public class EntryDeleteChange extends Change {
     //Util.pr("Modified entry: "+memEntry.getCiteKey()+"\n Modified locally: "+isModifiedLocally
     //        +" Modifications agree: "+modificationsAgree);
 
-    pp = new PreviewPanel(memEntry, Globals.prefs.get("preview0"));
+    pp = new PreviewPanel(memEntry, new MetaData(), Globals.prefs.get("preview0"));
     sp = new JScrollPane(pp);
   }
 
diff --git a/src/java/net/sf/jabref/export/ExportCustomizationDialog.java b/src/java/net/sf/jabref/export/ExportCustomizationDialog.java
index 3d68767..3cc2aea 100644
--- a/src/java/net/sf/jabref/export/ExportCustomizationDialog.java
+++ b/src/java/net/sf/jabref/export/ExportCustomizationDialog.java
@@ -39,7 +39,7 @@ public class ExportCustomizationDialog extends JDialog {
     addExport.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        CustomExportDialog ecd = new CustomExportDialog(frame);
-       ecd.show();
+       ecd.setVisible(true); // ecd.show(); -> deprecated since 1.5
        if (ecd.okPressed()) {
          String[] newFormat = new String[] {ecd.name(), ecd.layoutFile(), ecd.extension() };
          Globals.prefs.customExports.addFormat(newFormat);
@@ -56,7 +56,7 @@ public class ExportCustomizationDialog extends JDialog {
         if (row == -1) return;
        String[] old = Globals.prefs.customExports.getElementAt(row);
        CustomExportDialog ecd = new CustomExportDialog(frame, old[0], old[1], old[2]);
-       ecd.show();
+       ecd.setVisible(true); // ecd.show(); -> deprecated since 1.5
        if (ecd.okPressed()) {
          old[0] = ecd.name();
          old[1] = ecd.layoutFile();
diff --git a/src/java/net/sf/jabref/export/FileActions.java b/src/java/net/sf/jabref/export/FileActions.java
index daa5611..1737b15 100644
--- a/src/java/net/sf/jabref/export/FileActions.java
+++ b/src/java/net/sf/jabref/export/FileActions.java
@@ -29,11 +29,13 @@ package net.sf.jabref.export;
 import javax.xml.transform.*;
 import javax.xml.transform.dom.*;
 import javax.xml.transform.stream.*;
+import javax.swing.*;
 import java.io.*;
 import java.net.URL;
 import java.util.*;
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
+import java.nio.charset.UnsupportedCharsetException;
 
 import net.sf.jabref.export.layout.Layout;
 import net.sf.jabref.export.layout.LayoutHelper;
@@ -142,7 +144,12 @@ public class FileActions
         SaveSession session;
         try {
             session = new SaveSession(file, encoding, backup);
-        } catch (IOException e) {
+        } catch (Throwable e) {
+            // we must catch all exceptions to be able notify users that
+            // saving failed, no matter what the reason was
+            // (and they won't just quit JabRef thinking
+            // everyting worked and loosing data)
+            e.printStackTrace();
             throw new SaveException(e.getMessage());
         }
 
@@ -176,6 +183,7 @@ public class FileActions
         // entry, as well. Our criterion is that all non-standard
         // types (*not* customized standard types) must be written.
         BibtexEntryType tp = be.getType();
+
         if (BibtexEntryType.getStandardType(tp.getName()) == null) {
             types.put(tp.getName(), tp);
         }
@@ -183,12 +191,12 @@ public class FileActions
                 // Check if the entry should be written.
                 boolean write = true;
 
-                if (checkSearch && !nonZeroField(be, Globals.SEARCH))
+                if (checkSearch && !nonZeroField(be, BibtexFields.SEARCH))
                 {
                     write = false;
                 }
 
-                if (checkGroup && !nonZeroField(be, Globals.GROUPSEARCH))
+                if (checkGroup && !nonZeroField(be, BibtexFields.GROUPSEARCH))
                 {
                     write = false;
                 }
@@ -309,7 +317,7 @@ public class FileActions
         comparators.add(new FieldComparator(pri, priD));
         comparators.add(new FieldComparator(sec, secD));
         comparators.add(new FieldComparator(ter, terD));
-        comparators.add(new FieldComparator(Globals.KEY_FIELD));
+        comparators.add(new FieldComparator(BibtexFields.KEY_FIELD));
         // Use glazed lists to get a sorted view of the entries:
         BasicEventList entryList = new BasicEventList();
         SortedList sorter = new SortedList(entryList, new FieldComparatorStack(comparators));
@@ -405,6 +413,7 @@ public class FileActions
         }
 
         SaveSession ss = new SaveSession(outFile, encoding, false);
+
         VerifyingWriter ps = ss.getWriter();
         //ps = new OutputStreamWriter(new FileOutputStream(outFile), encoding);
         exportDatabase(database, null, prefix, lfName, ps);
@@ -453,10 +462,10 @@ public class FileActions
             beginLayout = layoutHelper.getLayoutFromText(Globals.FORMATTER_PACKAGE);
             reader.close();
 /*
-	    while ((c = reader.read()) != -1) {
+            while ((c = reader.read()) != -1) {
                 ps.write((char)c);
-	    }
-	    reader.close();
+            }
+            reader.close();
 */
         } catch (IOException ex) {
             //  // If an exception was cast, export filter doesn't have a begin file.
@@ -557,6 +566,38 @@ public class FileActions
 
     }
 
+    public static void performExport(final BibtexDatabase database,
+                                        final String exportName, final String fileName,
+                                        final String encoding) throws Exception {
+
+        String lfFileName = exportName, directory = null;
+        if (exportName.equals("harvard")) {
+            directory = "harvard";
+        } else if (exportName.equals("endnote")) {
+            lfFileName = "EndNote";
+            directory = "endnote";
+        }
+
+        // We need to find out:
+        // 1. The layout definition string to use. Or, rather, we
+        //    must provide a Reader for the layout definition.
+        // 2. The preferred extension for the layout format.
+        // 3. The name of the file to use.
+        File outFile = new File(fileName);
+        final String dir = (directory == null ? Globals.LAYOUT_PREFIX :
+                Globals.LAYOUT_PREFIX + directory + "/");
+
+        final String lfName = lfFileName;
+        final File oFile = outFile;
+
+        //System.out.println(oFile.getPath()+"\t "+dir+"\t "+lfName+"\t "+encoding);
+
+        FileActions.exportDatabase
+                (database, dir, lfName, oFile, encoding);
+
+    }
+
+
     public static void exportToCSV(BibtexDatabase database,
                                    File outFile, JabRefPreferences prefs)
         throws Exception {
@@ -570,8 +611,8 @@ public class FileActions
     String SEPARATOR = "\t";
     List sorted = getSortedEntries(database, null, true);
     Set fields = new TreeSet();
-    for (int i=0; i<GUIGlobals.ALL_FIELDS.length; i++)
-        fields.add(GUIGlobals.ALL_FIELDS[i]);
+    for (int i=0, len=BibtexFields.numberOfPublicFields(); i<len; i++)
+        fields.add(BibtexFields.getFieldName(i));
 
     //	try {
     Object[] o = fields.toArray();
@@ -634,7 +675,7 @@ public class FileActions
     private static Reader getReader(String name) throws IOException {
       Reader reader = null;
       // Try loading as a resource first. This works for files inside the jar:
-      URL reso = JabRefFrame.class.getResource(name);
+      URL reso = Globals.class.getResource(name);
 
       // If that didn't work, try loading as a normal file URL:
       if (reso != null) {
@@ -662,37 +703,53 @@ public class FileActions
     * global preference of saving in standard order.
     */
     protected static List getSortedEntries(BibtexDatabase database, Set keySet, boolean isSaveOperation) {
-        String pri, sec, ter;
-        boolean priD, secD, terD, priBinary = false;
-        if (!isSaveOperation || !Globals.prefs.getBoolean("saveInStandardOrder")) {
-            // The setting is to save according to the current table order.
-            priBinary = Globals.prefs.getBoolean("priBinary");
-            pri = Globals.prefs.get("priSort");
-            sec = Globals.prefs.get("secSort");
-            // sorted as they appear on the screen.
-            ter = Globals.prefs.get("terSort");
-            priD = Globals.prefs.getBoolean("priDescending");
-            secD = Globals.prefs.getBoolean("secDescending");
-            terD = Globals.prefs.getBoolean("terDescending");
+        FieldComparatorStack comparatorStack = null;
+
+        if (Globals.prefs.getBoolean("saveInOriginalOrder")) {
+            // Sort entries based on their creation order, utilizing the fact
+            // that IDs used for entries are increasing, sortable numbers.
+            List comparators = new ArrayList();
+            comparators.add(new CrossRefEntryComparator());
+            comparators.add(new IdComparator());
+            comparatorStack = new FieldComparatorStack(comparators);
+
         } else {
-            // The setting is to save in standard order: author, editor, year
-            pri = "author";
-            sec = "editor";
-            ter = "year";
-            priD = false;
-            secD = false;
-            terD = true;
-        }
+            String pri, sec, ter;
+            boolean priD, secD, terD, priBinary = false;
+
+
+            if (!isSaveOperation || !Globals.prefs.getBoolean("saveInStandardOrder")) {
+                // The setting is to save according to the current table order.
+                priBinary = Globals.prefs.getBoolean("priBinary");
+                pri = Globals.prefs.get("priSort");
+                sec = Globals.prefs.get("secSort");
+                // sorted as they appear on the screen.
+                ter = Globals.prefs.get("terSort");
+                priD = Globals.prefs.getBoolean("priDescending");
+                secD = Globals.prefs.getBoolean("secDescending");
+                terD = Globals.prefs.getBoolean("terDescending");
+            } else {
+                // The setting is to save in standard order: author, editor, year
+                pri = "author";
+                sec = "editor";
+                ter = "year";
+                priD = false;
+                secD = false;
+                terD = true;
+            }
 
-        List comparators = new ArrayList();
-        comparators.add(new CrossRefEntryComparator());
-        comparators.add(new FieldComparator(pri, priD));
-        comparators.add(new FieldComparator(sec, secD));
-        comparators.add(new FieldComparator(ter, terD));
-        comparators.add(new FieldComparator(Globals.KEY_FIELD));
+            List comparators = new ArrayList();
+            comparators.add(new CrossRefEntryComparator());
+            comparators.add(new FieldComparator(pri, priD));
+            comparators.add(new FieldComparator(sec, secD));
+            comparators.add(new FieldComparator(ter, terD));
+            comparators.add(new FieldComparator(BibtexFields.KEY_FIELD));
+
+            comparatorStack = new FieldComparatorStack(comparators);
+        }
         // Use glazed lists to get a sorted view of the entries:
         BasicEventList entryList = new BasicEventList();
-        SortedList sorter = new SortedList(entryList, new FieldComparatorStack(comparators));
+        SortedList sorter = new SortedList(entryList, comparatorStack);
 
         if (keySet == null)
             keySet = database.getKeySet();
diff --git a/src/java/net/sf/jabref/export/LatexFieldFormatter.java b/src/java/net/sf/jabref/export/LatexFieldFormatter.java
index d278459..d30a26c 100644
--- a/src/java/net/sf/jabref/export/LatexFieldFormatter.java
+++ b/src/java/net/sf/jabref/export/LatexFieldFormatter.java
@@ -27,11 +27,9 @@ http://www.gnu.org/copyleft/gpl.ja.html
 
 package net.sf.jabref.export;
 
-import net.sf.jabref.Globals;
-import net.sf.jabref.GUIGlobals;
-import java.util.Vector;
-import net.sf.jabref.Util;
-import net.sf.jabref.JabRefPreferences;
+import java.util.* ;
+
+import net.sf.jabref.* ;
 
 public class LatexFieldFormatter implements FieldFormatter {
 
@@ -48,7 +46,7 @@ public class LatexFieldFormatter implements FieldFormatter {
 
     // If the field is non-standard, we will just append braces,
     // wrap and write.
-    if (!GUIGlobals.isStandardField(fieldName) && !Globals.BIBTEX_STRING.equals(fieldName)) {
+    if (!BibtexFields.isStandardField(fieldName) && !Globals.BIBTEX_STRING.equals(fieldName)) {
           int brc = 0;
           boolean ok = true;
           for (int i=0; i<text.length(); i++) {
@@ -90,46 +88,47 @@ public class LatexFieldFormatter implements FieldFormatter {
     // jan # { - } # feb
     checkBraces(text);
 
-    while (pivot < text.length()) {
-        int goFrom = pivot;
-        pos1 = pivot;
-        while (goFrom == pos1) {
-        pos1 = text.indexOf('#',goFrom);
-        if ((pos1 > 0) && (text.charAt(pos1-1) == '\\')) {
-            goFrom = pos1+1;
-            pos1++;
-        } else
-            goFrom = pos1-1; // Ends the loop.
-        }
 
-        if (pos1 == -1) {
-        pos1 = text.length(); // No more occurences found.
-        pos2 = -1;
-        } else {
-        pos2 = text.indexOf('#',pos1+1);
-        //System.out.println("pos2:"+pos2);
-        if (pos2 == -1) {
-            throw new IllegalArgumentException
-            (Globals.lang("The # character is not allowed in BibTeX fields")+".\n"+
-             Globals.lang("In JabRef, use pairs of # characters to indicate "
-                      +"a string.")+"\n"+
-             Globals.lang("Note that the entry causing the problem has been selected."));
-        }
-        }
+        while (pivot < text.length()) {
+            int goFrom = pivot;
+            pos1 = pivot;
+            while (goFrom == pos1) {
+                pos1 = text.indexOf('#', goFrom);
+                if ((pos1 > 0) && (text.charAt(pos1 - 1) == '\\')) {
+                    goFrom = pos1 + 1;
+                    pos1++;
+                } else
+                    goFrom = pos1 - 1; // Ends the loop.
+            }
 
-        if (pos1 > pivot)
-        writeText(text, pivot, pos1);
-        if ((pos1 < text.length()) && (pos2-1 > pos1))
-        // We check that the string label is not empty. That means
-        // an occurence of ## will simply be ignored. Should it instead
-        // cause an error message?
-        writeStringLabel(text, pos1+1, pos2, (pos1 == pivot),
-                 (pos2+1 == text.length()));
-
-        if (pos2 > -1) pivot = pos2+1;
-        else pivot = pos1+1;
-        //if (tell++ > 10) System.exit(0);
-    }
+            if (pos1 == -1) {
+                pos1 = text.length(); // No more occurences found.
+                pos2 = -1;
+            } else {
+                pos2 = text.indexOf('#', pos1 + 1);
+                //System.out.println("pos2:"+pos2);
+                if (pos2 == -1) {
+                    throw new IllegalArgumentException
+                            (Globals.lang("The # character is not allowed in BibTeX fields") + ".\n" +
+                                    Globals.lang("In JabRef, use pairs of # characters to indicate "
+                                            + "a string.") + "\n" +
+                                    Globals.lang("Note that the entry causing the problem has been selected."));
+                }
+            }
+
+            if (pos1 > pivot)
+                writeText(text, pivot, pos1);
+            if ((pos1 < text.length()) && (pos2 - 1 > pos1))
+                // We check that the string label is not empty. That means
+                // an occurence of ## will simply be ignored. Should it instead
+                // cause an error message?
+                writeStringLabel(text, pos1 + 1, pos2, (pos1 == pivot),
+                        (pos2 + 1 == text.length()));
+
+            if (pos2 > -1) pivot = pos2 + 1;
+            else pivot = pos1 + 1;
+            //if (tell++ > 10) System.exit(0);
+        }
 
         if (!Globals.prefs.isNonWrappableField(fieldName))
             return Util.wrap2(sb.toString(), GUIGlobals.LINE_LENGTH);
@@ -145,14 +144,59 @@ public class LatexFieldFormatter implements FieldFormatter {
      sb.append(text.substring(start_pos, end_pos));
      sb.append("}");*/
     sb.append(Globals.getOpeningBrace());
-    boolean escape = false;
+    boolean escape = false, inCommandName = false, inCommand = false,
+        inCommandOption = false;
+    StringBuffer commandName = new StringBuffer();
     char c;
     for (int i=start_pos; i<end_pos; i++) {
         c = text.charAt(i);
-        if ((c == '&') && !escape)
-        sb.append("\\&");
+
+        // Track whether we are in a LaTeX command of some sort.
+        if (Character.isLetter(c) && (escape || inCommandName)) {
+            inCommandName = true;
+            if (!inCommandOption)
+                commandName.append((char)c);
+        }
+        else if (Character.isWhitespace(c) && (inCommand || inCommandOption)) {
+            //System.out.println("whitespace here");
+        }
+        else if (inCommandName) {
+            // This means the command name is ended.
+            // Perhaps the beginning of an argument:
+            if (c == '[') {
+                inCommandOption = true;
+            }
+            // Or the end of an argument:
+            else if (inCommandOption && (c == ']'))
+                inCommandOption = false;
+            // Or the beginning of the command body:
+            else if (!inCommandOption && (c == '{')) {
+                //System.out.println("Read command: '"+commandName.toString()+"'");
+                inCommandName = false;
+                inCommand = true;
+            }
+            // Or simply the end of this command altogether:
+            else {
+                //System.out.println("I think I read command: '"+commandName.toString()+"'");
+
+                commandName.delete(0, commandName.length());
+                inCommandName = false;
+            }
+        }
+        // If we are in a command body, see if it has ended:
+        if (inCommand && (c == '}')) {
+            //System.out.println("Done with command: '"+commandName.toString()+"'");
+            commandName.delete(0, commandName.length());
+            inCommand = false;
+        }
+
+        // We add a backslash before any ampersand characters, with one exception: if
+        // we are inside an \\url{...} command, we should write it as it is. Maybe.
+        if ((c == '&') && !escape && !(inCommand && commandName.toString().equals("url"))) {
+            sb.append("\\&");
+        }
         else
-        sb.append(c);
+            sb.append(c);
         escape = (c == '\\');
     }
     sb.append(Globals.getClosingBrace());
diff --git a/src/java/net/sf/jabref/export/OOCalcDatabase.java b/src/java/net/sf/jabref/export/OOCalcDatabase.java
index 3812a21..64938cf 100644
--- a/src/java/net/sf/jabref/export/OOCalcDatabase.java
+++ b/src/java/net/sf/jabref/export/OOCalcDatabase.java
@@ -25,16 +25,16 @@ public class OOCalcDatabase {
     protected Collection entries;
 
         /*protected final static String TYPE_COL = "BibliographyType";
-         
+
         protected final static Map columns = new LinkedHashMap();
         static {
-         
+
             columns.put(TYPE_COL, "dummy");
             columns.put("ISBN", "isbn");
             coulmns.put("Identifier", "\bibtexkey");
             coulmns.put("", "");
             coulmns.put("", "");
-         
+
         }*/
 
     public OOCalcDatabase() {
@@ -47,12 +47,12 @@ public class OOCalcDatabase {
         List comparators = new ArrayList();
         comparators.add(new FieldComparator("author"));
         comparators.add(new FieldComparator("year"));
-        comparators.add(new FieldComparator(Globals.KEY_FIELD));
+        comparators.add(new FieldComparator(BibtexFields.KEY_FIELD));
         // Use glazed lists to get a sorted view of the entries:
         BasicEventList entryList = new BasicEventList();
         entryList.addAll(bibtex.getEntries());
         entries = new SortedList(entryList, new FieldComparatorStack(comparators));
-        
+
     }
     public Document getDOMrepresentation() {
         Document result = null;
@@ -136,7 +136,7 @@ public class OOCalcDatabase {
                 row = result.createElement("table:table-row");
                 addTableCell(result, row, new GetOpenOfficeType().format(e.getType().getName()));
                 addTableCell(result, row, getField(e, "isbn"));
-                addTableCell(result, row, getField(e, Globals.KEY_FIELD));
+                addTableCell(result, row, getField(e, BibtexFields.KEY_FIELD));
                 addTableCell(result, row, getField(e, "author"));//new AuthorLastFirst().format(getField(e, "author")));
                 addTableCell(result, row, new RemoveWhitespace().format(new RemoveBrackets().format(getField(e, "title"))));
                 addTableCell(result, row, getField(e, "journal"));
diff --git a/src/java/net/sf/jabref/export/OpenDocumentRepresentation.java b/src/java/net/sf/jabref/export/OpenDocumentRepresentation.java
index afdaaa7..60c6784 100644
--- a/src/java/net/sf/jabref/export/OpenDocumentRepresentation.java
+++ b/src/java/net/sf/jabref/export/OpenDocumentRepresentation.java
@@ -26,16 +26,16 @@ public class OpenDocumentRepresentation {
     protected Collection entries;
 
         /*protected final static String TYPE_COL = "BibliographyType";
-         
+
         protected final static Map columns = new LinkedHashMap();
         static {
-         
+
             columns.put(TYPE_COL, "dummy");
             columns.put("ISBN", "isbn");
             coulmns.put("Identifier", "\bibtexkey");
             coulmns.put("", "");
             coulmns.put("", "");
-         
+
         }*/
 
     public OpenDocumentRepresentation() {
@@ -48,7 +48,7 @@ public class OpenDocumentRepresentation {
         List comparators = new ArrayList();
         comparators.add(new FieldComparator("author"));
         comparators.add(new FieldComparator("year"));
-        comparators.add(new FieldComparator(Globals.KEY_FIELD));
+        comparators.add(new FieldComparator(BibtexFields.KEY_FIELD));
         // Use glazed lists to get a sorted view of the entries:
         BasicEventList entryList = new BasicEventList();
         entryList.addAll(bibtex.getEntries());
@@ -136,7 +136,7 @@ public class OpenDocumentRepresentation {
             for(Iterator iter = entries.iterator(); iter.hasNext(); ) {
                 BibtexEntry e = (BibtexEntry)iter.next();
                 row = result.createElement("table:table-row");
-                addTableCell(result, row, getField(e, Globals.KEY_FIELD));
+                addTableCell(result, row, getField(e, BibtexFields.KEY_FIELD));
                 addTableCell(result, row, new GetOpenOfficeType().format(e.getType().getName()));
                 addTableCell(result, row, getField(e, "address"));
                 addTableCell(result, row, getField(e, "annote"));
diff --git a/src/java/net/sf/jabref/export/SaveSession.java b/src/java/net/sf/jabref/export/SaveSession.java
index 3823ab3..d91a10c 100644
--- a/src/java/net/sf/jabref/export/SaveSession.java
+++ b/src/java/net/sf/jabref/export/SaveSession.java
@@ -7,6 +7,7 @@ import net.sf.jabref.GUIGlobals;
 import java.io.File;
 import java.io.IOException;
 import java.io.FileOutputStream;
+import java.nio.charset.UnsupportedCharsetException;
 
 /**
  * Class used to handle safe storage to disk. Usage: create a SaveSession giving the file to save to, the
@@ -28,7 +29,8 @@ public class SaveSession {
     boolean backup;
     VerifyingWriter writer;
 
-    public SaveSession(File file, String encoding, boolean backup) throws IOException {
+    public SaveSession(File file, String encoding, boolean backup) throws IOException,
+        UnsupportedCharsetException {
         this.file = file;
         tmp = File.createTempFile(TEMP_PREFIX, TEMP_SUFFIX);
         this.backup = backup;
diff --git a/src/java/net/sf/jabref/export/layout/Layout.java b/src/java/net/sf/jabref/export/layout/Layout.java
index c01c3f6..2345c82 100755
--- a/src/java/net/sf/jabref/export/layout/Layout.java
+++ b/src/java/net/sf/jabref/export/layout/Layout.java
@@ -38,7 +38,7 @@ import java.io.IOException;
  * DOCUMENT ME!
  *
  * @author $author$
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
  */
 public class Layout
 {
@@ -85,6 +85,7 @@ public class Layout
                 }
                 else
                 {
+                    System.out.println(blockStart+"\n"+si.s);
                     System.out.println(
                         "Nested field entries are not implemented !!!");
                     //System.out.println("..."+blockStart+"..."+si.s+"...");
diff --git a/src/java/net/sf/jabref/export/layout/LayoutEntry.java b/src/java/net/sf/jabref/export/layout/LayoutEntry.java
index dbfb840..fb5ede4 100755
--- a/src/java/net/sf/jabref/export/layout/LayoutEntry.java
+++ b/src/java/net/sf/jabref/export/layout/LayoutEntry.java
@@ -40,7 +40,7 @@ import net.sf.jabref.Globals;
  * DOCUMENT ME!
  *
  * @author $author$
- * @version $Revision: 1.8 $
+ * @version $Revision: 1.9 $
  */
 public class LayoutEntry
 {
@@ -436,10 +436,13 @@ public class LayoutEntry
     // changed section end - arudert
     
     private String getField(BibtexEntry bibtex, String field, BibtexDatabase database) {
+
       String res = (String)bibtex.getField(field);
-	    if ((res != null) && (database != null))
-		res = database.resolveForStrings(res);
-	    return res;
+        
+        if ((res != null) && (database != null))
+        res = database.resolveForStrings(res);
+
+        return res;
     }
 }
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/src/java/net/sf/jabref/export/layout/LayoutHelper.java b/src/java/net/sf/jabref/export/layout/LayoutHelper.java
index 10b140e..e426ef0 100755
--- a/src/java/net/sf/jabref/export/layout/LayoutHelper.java
+++ b/src/java/net/sf/jabref/export/layout/LayoutHelper.java
@@ -42,7 +42,7 @@ import java.util.Vector;
  * DOCUMENT ME!
  *
  * @author $author$
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
  */
 public class LayoutHelper
 {
@@ -326,6 +326,7 @@ public class LayoutHelper
         StringBuffer buffer = null;
         int previous = -1;
         boolean justParsedTag = false;
+        boolean escaped = false;
 
         while (!_eof)
         {
@@ -342,7 +343,8 @@ public class LayoutHelper
                 return null;
             }
 
-            if ((c == '\\') && (peek() != '\\') && (justParsedTag || (previous != '\\')))
+            if ((c == '\\') && (peek() != '\\') && !escaped)
+            //&& (justParsedTag || (previous != '\\')))
             {
                 if (buffer != null)
                 {
@@ -357,7 +359,7 @@ public class LayoutHelper
                 // To make sure the next character, if it is a backslash, doesn't get ignored,
                 // since "previous" now holds a backslash:
                 justParsedTag = true;
-
+                escaped = false;
             }
             else
             {
@@ -368,10 +370,12 @@ public class LayoutHelper
                     buffer = new StringBuffer(100);
                 }
 
-                if (!((c == '\\') && (previous == '\\')))
+                if ((c != '\\') || escaped)//(previous == '\\')))
                 {
                     buffer.append((char) c);
                 }
+
+                escaped = (c == '\\') && !escaped;
             }
 
             previous = c;
diff --git a/src/java/net/sf/jabref/export/layout/format/XMLChars.java b/src/java/net/sf/jabref/export/layout/format/XMLChars.java
index adc3f1e..10f0da6 100644
--- a/src/java/net/sf/jabref/export/layout/format/XMLChars.java
+++ b/src/java/net/sf/jabref/export/layout/format/XMLChars.java
@@ -4,9 +4,9 @@
 //  Language: Java
 //  Compiler: JDK 1.4
 //  Authors:  Joerg K. Wegner, Morten O. Alver
-//  Version:  $Revision: 1.2 $
-//            $Date: 2004/11/28 23:25:27 $
-//            $Author: mortenalver $
+//  Version:  $Revision: 1.4 $
+//            $Date: 2006/01/22 13:42:18 $
+//            $Author: wegner $
 //
 //  Copyright (c) Dept. Computer Architecture, University of Tuebingen, Germany
 //
@@ -32,14 +32,14 @@ import net.sf.jabref.Globals;
  * Changes {\^o} or {\^{o}} to ?
  *
  * @author $author$
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.4 $
  */
 public class XMLChars implements LayoutFormatter
 {
     //~ Methods ////////////////////////////////////////////////////////////////
     //Pattern pattern = Pattern.compile(".*\\{..[a-zA-Z].\\}.*");
     Pattern pattern = Pattern.compile(".*\\{\\\\.*[a-zA-Z]\\}.*");
-
+  
     public String format(String fieldText)
     {
  
@@ -63,7 +63,48 @@ public class XMLChars implements LayoutFormatter
     }
 
     private String restFormat(String s) {
-	return s.replaceAll("\\}","").replaceAll("\\{","").replaceAll("<", "&#x3c;");
+		String fieldText=s.replaceAll("\\}","").replaceAll("\\{","");
+		
+		// now some copy-paste problems most often occuring in abstracts when copied from PDF
+		// AND: this is accepted in the abstract of bibtex files, so are forced to catch those cases
+		int code;
+		char character;
+		StringBuffer buffer=new StringBuffer(fieldText.length()<<1);
+    for ( int i = 0; i < fieldText.length(); i++)
+    {
+    	character = fieldText.charAt(i);
+      code = ((int) character);
+      //System.out.println(""+character+" "+code);
+      if((code<40 && code!=32)||code>125){
+      	buffer.append("&#" + code+";");
+      }
+      else 
+      {
+      	// TODO: highly inefficient, create look-up array with all 255 codes only once and use code as key!!!
+      	int[] forceReplace=new int[]{44,45,63,64,94,95,96,124};
+      	boolean alphabet=true;
+      	for(int ii=0;ii<forceReplace.length;ii++){
+      		if(code==forceReplace[ii]){
+      			buffer.append("&#" + code+";");
+      			alphabet=false;
+      			break;
+      		}
+      	}
+    		// force roundtripping
+      	if(alphabet)buffer.append((char)code);
+      }
+    }
+    fieldText=buffer.toString();
+
+		// use common abbreviations for <, > instead of code
+		for (Iterator i=Globals.ASCII2XML_CHARS.keySet().iterator(); i.hasNext();) {
+	    String ss = (String)i.next();         
+            String repl = (String)Globals.ASCII2XML_CHARS.get(ss);
+            if (repl != null)
+                fieldText = fieldText.replaceAll(ss, repl);
+	  }
+		
+		return fieldText;
     }
 }
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/src/java/net/sf/jabref/external/AutoSetExternalFileForEntries.java b/src/java/net/sf/jabref/external/AutoSetExternalFileForEntries.java
index 9284e98..72c2c2a 100644
--- a/src/java/net/sf/jabref/external/AutoSetExternalFileForEntries.java
+++ b/src/java/net/sf/jabref/external/AutoSetExternalFileForEntries.java
@@ -10,6 +10,7 @@ import java.io.File;
 import java.awt.*;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
+import java.util.Vector;
 
 import com.jgoodies.forms.layout.FormLayout;
 import com.jgoodies.forms.builder.DefaultFormBuilder;
@@ -78,9 +79,12 @@ public class AutoSetExternalFileForEntries extends AbstractWorker {
 
         final OpenFileFilter off = Util.getFileFilterForField(fieldName);
 
-        ExternalFilePanel extPan = new ExternalFilePanel(fieldName, null, off);
+        ExternalFilePanel extPan = new ExternalFilePanel(fieldName, panel.metaData(), null, off);
         FieldTextField editor = new FieldTextField(fieldName, "", false);
-        String dir = Globals.prefs.get(fieldName+"Directory");
+
+        // Find the default directory for this field type:
+        String dir = panel.metaData().getFileDirectory(fieldName);
+
         // First we try to autoset fields
         if (autoSet) {
             for (int i=0; i<sel.length; i++) {
@@ -130,7 +134,8 @@ public class AutoSetExternalFileForEntries extends AbstractWorker {
                         switch (answer) {
                             case 1:
                                 // Assign new file.
-                                AttachFileDialog afd = new AttachFileDialog(panel.frame(), sel[i], fieldName);
+                                AttachFileDialog afd = new AttachFileDialog(panel.frame(),
+                                        panel.metaData(), sel[i], fieldName);
                                 Util.placeDialog(afd, panel.frame());
                                 afd.setVisible(true);
                                 if (!afd.cancelled()) {
diff --git a/src/java/net/sf/jabref/external/ExternalFileMenuItem.java b/src/java/net/sf/jabref/external/ExternalFileMenuItem.java
new file mode 100644
index 0000000..6f14e04
--- /dev/null
+++ b/src/java/net/sf/jabref/external/ExternalFileMenuItem.java
@@ -0,0 +1,37 @@
+package net.sf.jabref.external;
+
+import net.sf.jabref.Util;
+import net.sf.jabref.MetaData;
+
+import javax.swing.*;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+
+/**
+ * The menu item used in the popup menu for opening external resources associated
+ * with an entry. Shows the resource name and icon given, and adds an action listener
+ * to process the request if the user clicks this menu item.
+ */
+public class ExternalFileMenuItem extends JMenuItem implements ActionListener {
+
+    final String link;
+    final MetaData metaData;
+
+    public ExternalFileMenuItem(String name, String link, Icon icon, MetaData metaData) {
+        super(name, icon);
+        this.link = link;
+        this.metaData = metaData;
+        addActionListener(this);
+    }
+
+    public void actionPerformed(ActionEvent e) {
+
+        try {
+            Util.openExternalFileAnyFormat(metaData, link);
+        } catch (IOException e1) {
+            e1.printStackTrace();
+        }
+
+    }
+}
diff --git a/src/java/net/sf/jabref/external/ExternalFilePanel.java b/src/java/net/sf/jabref/external/ExternalFilePanel.java
index 8dfaf52..735529c 100644
--- a/src/java/net/sf/jabref/external/ExternalFilePanel.java
+++ b/src/java/net/sf/jabref/external/ExternalFilePanel.java
@@ -13,6 +13,7 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 import java.net.MalformedURLException;
+import java.util.Vector;
 
 /**
  * Created by IntelliJ IDEA.
@@ -28,16 +29,20 @@ public class ExternalFilePanel extends JPanel {
     private JabRefFrame frame;
     private OpenFileFilter off;
     private BibtexEntry entry = null;
+    private MetaData metaData;
 
-    public ExternalFilePanel(final String fieldName, final BibtexEntry entry, final OpenFileFilter off) {
-        this(null, null, fieldName, off, null);
+    public ExternalFilePanel(final String fieldName, final MetaData metaData,
+                             final BibtexEntry entry, final OpenFileFilter off) {
+        this(null, metaData, null, fieldName, off, null);
         this.entry = entry;
     }
 
-    public ExternalFilePanel(final JabRefFrame frame, final EntryEditor entryEditor,
+    public ExternalFilePanel(final JabRefFrame frame, final MetaData metaData,
+                             final EntryEditor entryEditor,
                              final String fieldName, final OpenFileFilter off, final FieldEditor editor) {
 
         this.frame = frame;
+        this.metaData = metaData;
         this.off = off;
         this.entryEditor = entryEditor;
 
@@ -89,8 +94,8 @@ public class ExternalFilePanel extends JPanel {
     }
 
     protected Object getKey() {
-        return (entry != null ? entry.getField(Globals.KEY_FIELD) :
-            entryEditor.getEntry().getField(Globals.KEY_FIELD));
+        return (entry != null ? entry.getField(BibtexFields.KEY_FIELD) :
+            entryEditor.getEntry().getField(BibtexFields.KEY_FIELD));
     }
 
     protected void output(String s) {
@@ -99,7 +104,8 @@ public class ExternalFilePanel extends JPanel {
     }
 
     public void browseFile(final String fieldName, final FieldEditor editor) {
-        String directory = Globals.prefs.get(fieldName+"Directory");
+
+        String directory = metaData.getFileDirectory(fieldName);
         if ((directory != null) && directory.equals(""))
             directory = null;
 
@@ -166,8 +172,8 @@ public class ExternalFilePanel extends JPanel {
                         url = new URL(res);
 
                         String suffix = off.getSuffix(res);
-			            if (suffix == null)
-			            suffix = "."+fieldName.toLowerCase();
+                        if (suffix == null)
+                        suffix = "."+fieldName.toLowerCase();
 
                         String plannedName = null;
                         if (getKey() != null)
@@ -181,7 +187,11 @@ public class ExternalFilePanel extends JPanel {
                             if (!off.accept(plannedName))
                                 plannedName += suffix;
                         }
-                        File file = new File(new File(Globals.prefs.get(fieldName+"Directory")), plannedName);
+
+                        // Find the default directory for this field type:
+                        String directory = metaData.getFileDirectory(fieldName);
+                        System.out.println(directory);
+                        File file = new File(new File(directory), plannedName);
 
                         URLDownload udl = new URLDownload(parent, url, file);
                         output(Globals.lang("Downloading..."));
@@ -196,8 +206,7 @@ public class ExternalFilePanel extends JPanel {
 
                         output(Globals.lang("Download completed"));
                         String filename = file.getPath();
-                        //System.out.println(filename);
-                        String directory = Globals.prefs.get(fieldName+"Directory");
+
                         if (filename.startsWith(directory)) {
                             // Construct path relative to pdf base dir
                             String relPath = filename.substring(directory.length(), filename.length());
@@ -252,7 +261,11 @@ public class ExternalFilePanel extends JPanel {
         Thread t = (new Thread() {
             public void run() {
                 Object o = getKey();
-                String found = Util.findPdf((String) o, fieldName, Globals.prefs.get(fieldName+"Directory"), off);
+
+                // Find the default directory for this field type:
+                String dir = metaData.getFileDirectory(fieldName);
+
+                String found = Util.findPdf((String) o, fieldName, dir, off);
                 if (found != null) {
                     editor.setText(found);
                     if (entryEditor != null)
diff --git a/src/java/net/sf/jabref/external/ExternalFileType.java b/src/java/net/sf/jabref/external/ExternalFileType.java
new file mode 100644
index 0000000..a525bab
--- /dev/null
+++ b/src/java/net/sf/jabref/external/ExternalFileType.java
@@ -0,0 +1,52 @@
+package net.sf.jabref.external;
+
+import java.net.URL;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: alver
+ * Date: Mar 4, 2006
+ * Time: 4:27:05 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class ExternalFileType {
+
+    protected String name, extension, openWith;
+    protected URL icon;
+
+    public ExternalFileType(String name, String extension, String openWith,
+                            URL icon) {
+        this.name = name;
+        this.extension = extension;
+        this.openWith = openWith;
+        this.icon = icon;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getExtension() {
+        return extension;
+    }
+
+    public String getOpenWith() {
+        return openWith;
+    }
+
+    public void setOpenWith(String openWith) {
+        this.openWith = openWith;
+    }
+
+    public URL getIcon() {
+        return icon;
+    }
+
+    public void setIcon(URL icon) {
+        this.icon = icon;
+    }
+}
diff --git a/src/java/net/sf/jabref/external/PushToApplication.java b/src/java/net/sf/jabref/external/PushToApplication.java
new file mode 100644
index 0000000..0873eea
--- /dev/null
+++ b/src/java/net/sf/jabref/external/PushToApplication.java
@@ -0,0 +1,42 @@
+package net.sf.jabref.external;
+
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.BasePanel;
+
+import javax.swing.*;
+
+/**
+ * Class that defines interaction with an external application in the form of
+ * "pushing" selected entries to it.
+ */
+public interface PushToApplication {
+
+    public String getName();
+
+    public String getTooltip();
+
+    public Icon getIcon();
+
+    public String getKeyStrokeName();
+    /**
+     * The actual operation. This method will not be called on the event dispatch
+     * thread, so it should not do GUI operations without utilizing invokeLater().
+     * @param entries
+     */
+    public void pushEntries(BibtexEntry[] entries, String keyString);
+
+    /**
+     * Reporting etc., this method is called on the event dispatch thread after
+     * pushEntries() returns.
+     */
+    public void operationCompleted(BasePanel panel);
+
+    /**
+     * Check whether this operation requires BibTeX keys to be set for the entries.
+     * If true is returned an error message will be displayed if keys are missing.
+     * @return true if BibTeX keys are required for this operation.
+     */
+    public boolean requiresBibtexKeys();
+
+
+}
diff --git a/src/java/net/sf/jabref/external/PushToApplicationAction.java b/src/java/net/sf/jabref/external/PushToApplicationAction.java
new file mode 100644
index 0000000..d2a8fb6
--- /dev/null
+++ b/src/java/net/sf/jabref/external/PushToApplicationAction.java
@@ -0,0 +1,95 @@
+package net.sf.jabref.external;
+
+import net.sf.jabref.*;
+
+import javax.swing.*;
+import java.awt.event.ActionEvent;
+import java.util.List;
+import java.util.Iterator;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: alver
+ * Date: Apr 4, 2006
+ * Time: 7:31:00 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class PushToApplicationAction extends AbstractAction implements Runnable {
+    private PushToApplication operation;
+    private JabRefFrame frame;
+    private BasePanel panel;
+    private BibtexEntry[] entries;
+
+    public PushToApplicationAction(JabRefFrame frame, PushToApplication operation) {
+        this.frame = frame;
+        putValue(SMALL_ICON, operation.getIcon());
+        putValue(NAME, operation.getName());
+        putValue(SHORT_DESCRIPTION, operation.getTooltip());
+        if (operation.getKeyStrokeName() != null)
+            putValue(ACCELERATOR_KEY, Globals.prefs.getKey(operation.getKeyStrokeName()));
+        this.operation = operation;
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        panel = frame.basePanel();
+
+        // Check if a BasePanel exists:
+        if (panel == null)
+            return;
+
+        // Check if any entries are selected:
+        entries = panel.getSelectedEntries();
+        if (entries.length == 0) {
+            JOptionPane.showMessageDialog(frame, Globals.lang("This operation requires one or more entries to be selected."),
+                    (String)getValue(NAME), JOptionPane.ERROR_MESSAGE);
+            return;
+        }
+
+        // If required, check that all entries have BibTeX keys defined:
+        if (operation.requiresBibtexKeys())
+            for (int i=0; i<entries.length; i++) {
+                if ((entries[i].getCiteKey() == null) || (entries[i].getCiteKey().trim().length() == 0)) {
+                    JOptionPane.showMessageDialog(frame, Globals.lang("This operation requires all selected entries to have BibTex keys defined."),
+                        (String)getValue(NAME), JOptionPane.ERROR_MESSAGE);
+                    return;
+                }
+        }
+
+        // All set, call the operation in a new thread:
+        Thread t = new Thread(this);
+        t.start();
+
+    }
+
+    public void run() {
+        // Do the operation:
+        operation.pushEntries(entries, getKeyString(entries));
+
+        // Call the operationCompleted() method on the event dispatch thread:
+        SwingUtilities.invokeLater(new Runnable() {
+            public void run() {
+                operation.operationCompleted(panel);
+            }
+        });
+    }
+
+    protected String getKeyString(BibtexEntry[] entries) {
+        StringBuffer result = new StringBuffer();
+        String citeKey = "";//, message = "";
+        boolean first = true;
+        for (int i=0; i<entries.length; i++) {
+            BibtexEntry bes = entries[i];
+            citeKey = (String) bes.getField(BibtexFields.KEY_FIELD);
+            // if the key is empty we give a warning and ignore this entry
+            if (citeKey == null || citeKey.equals(""))
+                continue;
+            if (first) {
+                result.append(citeKey);
+                first = false;
+            } else {
+                result.append(",").append(citeKey);
+            }
+        }
+        return result.toString();
+    }
+}
diff --git a/src/java/net/sf/jabref/external/PushToEmacs.java b/src/java/net/sf/jabref/external/PushToEmacs.java
index cbdcd56..861983a 100644
--- a/src/java/net/sf/jabref/external/PushToEmacs.java
+++ b/src/java/net/sf/jabref/external/PushToEmacs.java
@@ -1,8 +1,6 @@
 package net.sf.jabref.external;
 
-import net.sf.jabref.BaseAction;
-import net.sf.jabref.Globals;
-import net.sf.jabref.BasePanel;
+import net.sf.jabref.*;
 
 import javax.swing.*;
 import java.util.List;
@@ -17,71 +15,94 @@ import java.io.InputStream;
  * Time: 4:55:23 PM
  * To change this template use File | Settings | File Templates.
  */
-public class PushToEmacs extends BaseAction {
+public class PushToEmacs implements PushToApplication {
 
-    private BasePanel panel;
+    private boolean couldNotConnect=false, couldNotRunClient=false;
 
-    public PushToEmacs(BasePanel panel) {
-        this.panel = panel;
+    public String getName() {
+        return Globals.menuTitle("Insert selected citations into Emacs") ;
     }
 
-    public void action() {
-
-        int numSelected = panel.mainTable.getSelectedRowCount();
-
-        if (numSelected > 0) {
-            String keys = panel.getKeysForSelection();
-            StringBuffer command = new StringBuffer("(insert\"\\\\")
-                    .append(Globals.prefs.get("citeCommand")).append("{");
-            if (keys.length() == 0)
-                panel.output(Globals.lang("Please define BibTeX key first"));
-            else {
-                try {
-                    command.append(keys);
-                    command.append("}\")");
-                    String[] com = new String[]{"gnuclient", "-batch", "-eval",
-                        command.toString()};
-                    final Process p = Runtime.getRuntime().exec(com);
-
-                    Runnable errorListener = new Runnable() {
-                        public void run() {
-                            InputStream out = p.getErrorStream();
-                            int c;
-                            StringBuffer sb = new StringBuffer();
-                            try {
-                                while ((c = out.read()) != -1)
-                                    sb.append((char) c);
-                            } catch (IOException e) {
-                                e.printStackTrace();
-                            }
-                            // Error stream has been closed. See if there were any errors:
-                            if (sb.toString().trim().length() > 0) {
-                                JOptionPane.showMessageDialog(
-                                        panel.frame(),
-                                        "<HTML>"+
-                                        Globals.lang("Could not connect to a running gnuserv process. Make sure that "
-                                        +"Emacs or XEmacs is running,<BR>and that the server has been started "
-                                        +"(by running the command 'gnuserv-start').")
-                                        +"</HTML>",
-                                        Globals.lang("Error"), JOptionPane.ERROR_MESSAGE);
-                            }
-                            else {
-                                panel.output(Globals.lang("Pushed citations to Emacs"));
-                            }
-                        }
-                    };
-                    (new Thread(errorListener)).start();
+    public String getTooltip() {
+        return Globals.lang("Push selection to Emacs");
+    }
 
+    public Icon getIcon() {
+        return new ImageIcon(GUIGlobals.emacsIcon);
+    }
+
+    public String getKeyStrokeName() {
+        return "Push to Emacs";
+    }
+
+    public void pushEntries(BibtexEntry[] entries, String keys) {
+
+        couldNotConnect=false;
+        couldNotRunClient=false;
+        StringBuffer command = new StringBuffer("(insert\"\\\\")
+                .append(Globals.prefs.get("citeCommand")).append("{");
+
+        try {
+            command.append(keys);
+            command.append("}\")");
+            String[] com = new String[]{"gnuclient", "-batch", "-eval",
+                command.toString()};
+            final Process p = Runtime.getRuntime().exec(com);
+
+            Runnable errorListener = new Runnable() {
+                public void run() {
+                    InputStream out = p.getErrorStream();
+                    int c;
+                    StringBuffer sb = new StringBuffer();
+                    try {
+                        while ((c = out.read()) != -1)
+                            sb.append((char) c);
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                    // Error stream has been closed. See if there were any errors:
+                    if (sb.toString().trim().length() > 0) {
+                        couldNotConnect = true;
+                        return;
+                    }
                 }
-                catch (IOException excep) {
-                    JOptionPane.showMessageDialog(
-                        panel.frame(),
-                        Globals.lang("Could not run the 'gnuclient' program. Make sure you have "
-                        +"the gnuserv/gnuclient programs installed."),
-                        Globals.lang("Error"), JOptionPane.ERROR_MESSAGE);
-                }
-            }
+            };
+            Thread t = new Thread(errorListener);
+            t.start();
+            t.join();
+        }
+        catch (IOException excep) {
+            couldNotRunClient = true;
+            return;
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    public void operationCompleted(BasePanel panel) {
+        if (couldNotConnect)
+            JOptionPane.showMessageDialog(
+                panel.frame(),
+                "<HTML>"+
+                Globals.lang("Could not connect to a running gnuserv process. Make sure that "
+                +"Emacs or XEmacs is running,<BR>and that the server has been started "
+                +"(by running the command 'gnuserv-start').")
+                +"</HTML>",
+                Globals.lang("Error"), JOptionPane.ERROR_MESSAGE);
+        else if (couldNotRunClient)
+            JOptionPane.showMessageDialog(
+                panel.frame(),
+                Globals.lang("Could not run the 'gnuclient' program. Make sure you have "
+                +"the gnuserv/gnuclient programs installed."),
+                Globals.lang("Error"), JOptionPane.ERROR_MESSAGE);
+        else {
+            panel.output(Globals.lang("Pushed citations to Emacs"));
         }
     }
+
+    public boolean requiresBibtexKeys() {
+        return true;
+    }
 }
 
diff --git a/src/java/net/sf/jabref/external/PushToLatexEditor.java b/src/java/net/sf/jabref/external/PushToLatexEditor.java
new file mode 100644
index 0000000..ae778ae
--- /dev/null
+++ b/src/java/net/sf/jabref/external/PushToLatexEditor.java
@@ -0,0 +1,70 @@
+package net.sf.jabref.external;
+
+import net.sf.jabref.BasePanel;
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.Globals;
+
+import javax.swing.*;
+import java.io.IOException;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: alver
+ * Date: Apr 4, 2006
+ * Time: 10:14:04 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class PushToLatexEditor implements PushToApplication {
+
+    private boolean couldNotCall=false;
+
+    public String getName() {
+        return Globals.menuTitle("Insert selected citations into LatexEditor");
+    }
+
+    public String getTooltip() {
+        return Globals.lang("Push to LatexEditor");
+    }
+
+    public Icon getIcon() {
+        return null;
+    }
+
+    public String getKeyStrokeName() {
+        return null;
+    }
+
+    public void pushEntries(BibtexEntry[] entries, String keyString) {
+
+        couldNotCall = false;
+
+        String led = Globals.prefs.get("latexEditorPath");
+
+        try {
+            StringBuffer toSend = new StringBuffer("-i \\")
+                    .append(Globals.prefs.get("citeCommand")).append("{")
+                    .append(keyString)
+                    .append("}");
+            Runtime.getRuntime().exec(led + " " + toSend.toString());
+
+        }
+
+        catch (IOException excep) {
+            couldNotCall = true;
+            excep.printStackTrace();
+        }
+    }
+
+    public void operationCompleted(BasePanel panel) {
+        if (couldNotCall) {
+            panel.output(Globals.lang("Error") + ": " + Globals.lang("Could not call executable") + " '"
+                    +Globals.prefs.get("latexEditorPath") + "'.");
+        }
+        else
+            Globals.lang("Pushed citations to WinEdt");
+    }
+
+    public boolean requiresBibtexKeys() {
+        return false;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+}
diff --git a/src/java/net/sf/jabref/external/PushToLyx.java b/src/java/net/sf/jabref/external/PushToLyx.java
index 7c790be..4cf9ff4 100644
--- a/src/java/net/sf/jabref/external/PushToLyx.java
+++ b/src/java/net/sf/jabref/external/PushToLyx.java
@@ -1,94 +1,107 @@
 package net.sf.jabref.external;
 
 import net.sf.jabref.*;
+
+import javax.swing.*;
 import java.io.*;
 import java.awt.event.*;
 
-public class PushToLyx extends BaseAction {
+public class PushToLyx implements PushToApplication {
 
-    private BasePanel panel;
+    private boolean couldNotFindPipe=false;
+    private boolean couldNotWrite=false;
+    private String message = "";
+
+    public void pushEntries(final BibtexEntry[] entries, final String keyString) {
+
+        couldNotFindPipe = false;
+        couldNotWrite = false;
+
+
+        final File lyxpipe = new File( Globals.prefs.get("lyxpipe") +".in"); // this needs to fixed because it gives "asdf" when going prefs.get("lyxpipe")
+        if( !lyxpipe.exists() || !lyxpipe.canWrite()){
+            couldNotFindPipe = true;
+            return;
+        }
+
+        Thread t = new Thread(new Runnable() {
+            public void run() {
+                try {
+                    FileWriter fw = new FileWriter(lyxpipe);
+                    BufferedWriter lyx_out = new BufferedWriter(fw);
+                    String citeStr = "";
+
+                    citeStr = "LYXCMD:sampleclient:citation-insert:" + keyString;
+                    lyx_out.write(citeStr + "\n");
+
+                    lyx_out.close();
+
+                } catch (IOException excep) {
+                    couldNotWrite = true;
+                    return;
+                }
+            }
+        });
 
-    public PushToLyx(BasePanel panel) {
-	this.panel = panel;
-    }
 
-    public void action() {
-	final BibtexEntry[] entries = panel.getSelectedEntries();
-	if (entries == null)
-	    return;
-	final int numSelected = entries.length;
-	// Globals.logger("Pushing " +numSelected+(numSelected>1? " entries" : "entry") + " to LyX");
-	// check if lyxpipe is defined
-	final File lyxpipe = new File( Globals.prefs.get("lyxpipe") +".in"); // this needs to fixed because it gives "asdf" when going prefs.get("lyxpipe")
-	if( !lyxpipe.exists() || !lyxpipe.canWrite()){
-	    panel.output(Globals.lang("Error")+": "+Globals.lang("verify that LyX is running and that the lyxpipe is valid")
-		   +". [" + Globals.prefs.get("lyxpipe") +"]");
-	    return;
-	}
-	//Util.pr("tre");
-	if( numSelected > 0){
-	    Thread pushThread = new Thread()
-		{
-		    public void run()
-		    {
-			try {
-                            FileWriter fw = new FileWriter(lyxpipe);
-                            BufferedWriter lyx_out = new BufferedWriter(fw);
-                            String citeStr = "", citeKey = "", message = "";
-                            for (int i = 0; i < numSelected; i++)
-				{
-				    BibtexEntry bes = entries[i];//database.getEntryById(tableModel.getNameFromNumber(rows[
-				    //													      i]));
-				    citeKey = (String) bes.getField(GUIGlobals.KEY_FIELD);
-				    // if the key is empty we give a warning and ignore this entry
-				    if (citeKey == null || citeKey.equals(""))
-					continue;
-				    if (citeStr.equals(""))
-					citeStr = citeKey;
-				    else
-					citeStr += "," + citeKey;
-				    if (i > 0)
-					message += ", ";
-				    //message += (1 + rows[i]);
-				}
-                            if (citeStr.equals(""))
-				panel.output(Globals.lang("Please define BibTeX key first"));
-                            else
-				{
-				    citeStr = "LYXCMD:sampleclient:citation-insert:" + citeStr;
-				    lyx_out.write(citeStr + "\n");
-				    panel.output(Globals.lang("Pushed the citations for the following rows to")+" Lyx: " +
-					   message);
-				}
-                            lyx_out.close();
-			    
-			}
-			catch (IOException excep) {
-                            panel.output(Globals.lang("Error")+": "+Globals.lang("unable to write to")+" " + Globals.prefs.get("lyxpipe") +
-                                   ".in");
-			}
-			// catch (InterruptedException e2) {}
-		    }
-		};
-	    pushThread.start();
-	    Timeout t = new Timeout(2000, pushThread, Globals.lang("Error")+": "+
-				    Globals.lang("unable to access LyX-pipe"));
 	    t.start();
-	}
+	    /*new Timeout(2000, t, Globals.lang("Error")+": "+
+            Globals.lang("unable to access LyX-pipe"));*/
+        try {
+            t.join();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public String getName() {
+        return Globals.lang("Insert selected citations into LyX/Kile");
+    }
+
+    public String getTooltip() {
+        return Globals.lang("Push selection to LyX/Kile");
+    }
+
+    public Icon getIcon() {
+        return new ImageIcon(GUIGlobals.lyxIconFile);
+    }
+
+    public String getKeyStrokeName() {
+        return "Push to LyX";
     }
 
-  class Timeout extends javax.swing.Timer
-  {
-    public Timeout(int timeout, final Thread toStop, final String message) {
-      super(timeout, new ActionListener() {
-        public void actionPerformed(ActionEvent e) {
-          toStop.stop();         // !!! <- deprecated
-          // toStop.interrupt(); // better ?, interrupts wait and IO
-          //stop();
-          //output(message);
+
+    public void operationCompleted(BasePanel panel) {
+        if (couldNotFindPipe) {
+            panel.output(Globals.lang("Error") + ": " + Globals.lang("verify that LyX is running and that the lyxpipe is valid")
+                    + ". [" + Globals.prefs.get("lyxpipe") + "]");
+        } else if (couldNotWrite) {
+            panel.output(Globals.lang("Error") + ": " + Globals.lang("unable to write to") + " " + Globals.prefs.get("lyxpipe") +
+                    ".in");
+        } else {
+
+            panel.output(Globals.lang("Pushed the citations for the following rows to") + " Lyx: " +
+                    message);
         }
-      });
+
     }
-  }
+
+    public boolean requiresBibtexKeys() {
+        return true;
+    }
+
+    /*class Timeout extends javax.swing.Timer
+    {
+      public Timeout(int timeout, final Thread toStop, final String message) {
+        super(timeout, new ActionListener() {
+          public void actionPerformed(ActionEvent e) {
+            toStop.stop();         // !!! <- deprecated
+            // toStop.interrupt(); // better ?, interrupts wait and IO
+            //stop();
+            //output(message);
+          }
+        });
+      }
+    } */
 
 }
diff --git a/src/java/net/sf/jabref/external/PushToWinEdt.java b/src/java/net/sf/jabref/external/PushToWinEdt.java
new file mode 100644
index 0000000..160f030
--- /dev/null
+++ b/src/java/net/sf/jabref/external/PushToWinEdt.java
@@ -0,0 +1,75 @@
+package net.sf.jabref.external;
+
+import net.sf.jabref.BasePanel;
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.GUIGlobals;
+import net.sf.jabref.Globals;
+
+import javax.swing.*;
+import java.util.List;
+import java.util.Iterator;
+import java.io.IOException;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: alver
+ * Date: Apr 4, 2006
+ * Time: 10:01:44 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class PushToWinEdt implements PushToApplication {
+
+    private boolean couldNotCall=false;
+
+    public String getName() {
+        return Globals.lang("Insert selected citations into WinEdt");
+    }
+
+    public String getTooltip() {
+        return Globals.lang("Push selection to WinEdt");
+    }
+
+    public Icon getIcon() {
+        return new ImageIcon(GUIGlobals.winEdtIcon);
+    }
+
+    public String getKeyStrokeName() {
+        return "Push to WinEdt";
+    }
+
+    public void pushEntries(BibtexEntry[] entries, String keyString) {
+
+        couldNotCall = false;
+
+        String winEdt = Globals.prefs.get("winEdtPath");
+        //winEdt = "osascript";
+        try {
+            StringBuffer toSend = new StringBuffer("\"[InsText('\\")
+                    .append(Globals.prefs.get("citeCommand")).append("{")
+                    .append(keyString)
+                    .append("}');]\"");
+            Runtime.getRuntime().exec(winEdt + " " + toSend.toString());
+
+        }
+
+        catch (IOException excep) {
+            couldNotCall = true;
+            excep.printStackTrace();
+        }
+
+
+    }
+
+    public void operationCompleted(BasePanel panel) {
+        if (couldNotCall) {
+            panel.output(Globals.lang("Error") + ": " + Globals.lang("Could not call executable") + " '"
+                    +Globals.prefs.get("winEdtPath") + "'.");
+        }
+        else
+            Globals.lang("Pushed citations to WinEdt");
+    }
+
+    public boolean requiresBibtexKeys() {
+        return true;
+    }
+}
diff --git a/src/java/net/sf/jabref/groups/GroupDialog.java b/src/java/net/sf/jabref/groups/GroupDialog.java
index 0781e3a..d3f56c0 100644
--- a/src/java/net/sf/jabref/groups/GroupDialog.java
+++ b/src/java/net/sf/jabref/groups/GroupDialog.java
@@ -47,444 +47,444 @@ import com.jgoodies.forms.layout.*;
  * containing group information.
  */
 class GroupDialog extends JDialog {
-	private static final int INDEX_EXPLICITGROUP = 0;
-	private static final int INDEX_KEYWORDGROUP = 1;
-	private static final int INDEX_SEARCHGROUP = 2;
-	private static final int TEXTFIELD_LENGTH = 30;
-	// for all types
-	private JTextField m_name = new JTextField(TEXTFIELD_LENGTH);
-	private JRadioButton m_explicitRadioButton = new JRadioButton(Globals
-			.lang("Statically group entries by manual assignment"));
-	private JRadioButton m_keywordsRadioButton = new JRadioButton(
-			Globals.lang("Dynamically group entries by searching a field for a keyword"));
-	private JRadioButton m_searchRadioButton = new JRadioButton(Globals
-			.lang("Dynamically group entries by a free-form search expression"));
-	private JRadioButton m_independentButton = new JRadioButton( // JZTODO lyrics
-			Globals.lang("Independent group: When selected, view only this group's entries"));
-	private JRadioButton m_intersectionButton = new JRadioButton( // JZTODO lyrics
-			Globals.lang("Refine supergroup: When selected, view entries contained in both this group and its supergroup"));
-	private JRadioButton m_unionButton = new JRadioButton( // JZTODO lyrics
-			Globals.lang("Include subgroups: When selected, view entries contained in this group or its subgroups"));
-	// for KeywordGroup
-	private JTextField m_kgSearchField = new JTextField(TEXTFIELD_LENGTH);
-	private FieldTextField m_kgSearchTerm = new FieldTextField("keywords", "",
-			false);
-	private JCheckBox m_kgCaseSensitive = new JCheckBox(Globals
-			.lang("Case sensitive"));
-	private JCheckBox m_kgRegExp = new JCheckBox(Globals
-			.lang("Regular Expression"));
-	// for SearchGroup
-	private JTextField m_sgSearchExpression = new JTextField(TEXTFIELD_LENGTH);
-	private JCheckBox m_sgCaseSensitive = new JCheckBox(Globals
-			.lang("Case sensitive"));
-	private JCheckBox m_sgRegExp = new JCheckBox(Globals
-			.lang("Regular Expression"));
-	// for all types
-	private JButton m_ok = new JButton(Globals.lang("Ok"));
-	private JButton m_cancel = new JButton(Globals.lang("Cancel"));
-	private JPanel m_optionsPanel = new JPanel();
-	private JLabel m_description = new JLabel() {
-		public Dimension getPreferredSize() {
-			Dimension d = super.getPreferredSize();
-			// width must be smaller than width of enclosing JScrollPane
-			// to prevent a horizontal scroll bar
-			d.width = 1;
-			return d;
-		}
-	};
-
-	private boolean m_okPressed = false;
-
-	private final JabRefFrame m_parent;
-
-	private final BasePanel m_basePanel;
-
-	private AbstractGroup m_resultingGroup;
-
-	private AbstractUndoableEdit m_undoAddPreviousEntires = null;
-
-	private final AbstractGroup m_editedGroup;
-
-	private CardLayout m_optionsLayout = new CardLayout();
-
-	/**
-	 * Shows a group add/edit dialog.
-	 * 
-	 * @param jabrefFrame
-	 *            The parent frame.
-	 * @param defaultField
-	 *            The default grouping field.
-	 * @param editedGroup
-	 *            The group being edited, or null if a new group is to be
-	 *            created.
-	 */
-	public GroupDialog(JabRefFrame jabrefFrame, BasePanel basePanel,
-			AbstractGroup editedGroup) {
-		super(jabrefFrame, Globals.lang("Edit group"), true);
-		m_basePanel = basePanel;
-		m_parent = jabrefFrame;
-		m_editedGroup = editedGroup;
-
-		// set default values (overwritten if editedGroup != null)
-		m_kgSearchField.setText(jabrefFrame.prefs().get("groupsDefaultField"));
-
-		// configure elements
-		ButtonGroup groupType = new ButtonGroup();
-		groupType.add(m_explicitRadioButton);
-		groupType.add(m_keywordsRadioButton);
-		groupType.add(m_searchRadioButton);
-		ButtonGroup groupHierarchy = new ButtonGroup();
-		groupHierarchy.add(m_independentButton);
-		groupHierarchy.add(m_intersectionButton);
-		groupHierarchy.add(m_unionButton);
-		m_description.setVerticalAlignment(JLabel.TOP);
-		getRootPane().setDefaultButton(m_ok);
-
-		// build individual layout cards for each group
-		m_optionsPanel.setLayout(m_optionsLayout);
-		// ... for explicit group
-		m_optionsPanel.add(new JPanel(), "" + INDEX_EXPLICITGROUP);
-		// ... for keyword group
-		FormLayout layoutKG = new FormLayout(
-				"right:pref, 4dlu, fill:1dlu:grow, 2dlu, left:pref");
-		DefaultFormBuilder builderKG = new DefaultFormBuilder(layoutKG);
-		builderKG.append(Globals.lang("Field"));
-		builderKG.append(m_kgSearchField, 3);
-		builderKG.nextLine();
-		builderKG.append(Globals.lang("Keyword"));
-		builderKG.append(m_kgSearchTerm);
-		builderKG.append(new FieldContentSelector(m_parent, m_basePanel, this,
-				m_kgSearchTerm, m_basePanel.metaData(), null, true));
-		builderKG.nextLine();
-		builderKG.append(m_kgCaseSensitive, 3);
-		builderKG.nextLine();
-		builderKG.append(m_kgRegExp, 3);
-		m_optionsPanel.add(builderKG.getPanel(), "" + INDEX_KEYWORDGROUP);
-		// ... for search group
-		FormLayout layoutSG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow");
-		DefaultFormBuilder builderSG = new DefaultFormBuilder(layoutSG);
-		builderSG.append(Globals.lang("Search expression"));
-		builderSG.append(m_sgSearchExpression);
-		builderSG.nextLine();
-		builderSG.append(m_sgCaseSensitive, 3);
-		builderSG.nextLine();
-		builderSG.append(m_sgRegExp, 3);
-		m_optionsPanel.add(builderSG.getPanel(), "" + INDEX_SEARCHGROUP);
-		// ... for buttons panel
-		FormLayout layoutBP = new FormLayout("pref, 4dlu, pref", "p");
-		layoutBP.setColumnGroups(new int[][] { { 1, 3 } });
-		DefaultFormBuilder builderBP = new DefaultFormBuilder(layoutBP);
-		builderBP.append(m_ok);
-		builderBP.add(m_cancel);
-
-		// create layout
-		FormLayout layoutAll = new FormLayout(
-				"right:pref, 4dlu, fill:600px, 4dlu, fill:pref",
-				"p, 3dlu, p, 3dlu, p, 0dlu, p, 0dlu, p, 3dlu, p, 3dlu, p, "
-						+ "0dlu, p, 0dlu, p, 3dlu, p, 3dlu, "
-						+ "p, 3dlu, p, 3dlu, top:80dlu, 9dlu, p, , 9dlu, p");
-
-		DefaultFormBuilder builderAll = new DefaultFormBuilder(layoutAll);
-		builderAll.setDefaultDialogBorder();
-		builderAll.appendSeparator(Globals.lang("General"));
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(Globals.lang("Name"));
-		builderAll.append(m_name);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(m_explicitRadioButton, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(m_keywordsRadioButton, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(m_searchRadioButton, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.appendSeparator(Globals.lang("Hierarchical context")); // JZTODO lyrics
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(m_independentButton, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(m_intersectionButton, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(m_unionButton, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.appendSeparator(Globals.lang("Options"));
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.append(m_optionsPanel, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.appendSeparator(Globals.lang("Description"));
-		builderAll.nextLine();
-		builderAll.nextLine();
-		JScrollPane sp = new JScrollPane(m_description,
-				JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
-				JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED) {
-			public Dimension getPreferredSize() {
-				return getMaximumSize();
-			}
-		};
-		builderAll.append(sp, 5);
-		builderAll.nextLine();
-		builderAll.nextLine();
-		builderAll.appendSeparator();
-		builderAll.nextLine();
-		builderAll.nextLine();
-		CellConstraints cc = new CellConstraints();
-		builderAll.add(builderBP.getPanel(), cc.xyw(builderAll.getColumn(),
-				builderAll.getRow(), 5, "center, fill"));
-
-		Container cp = getContentPane();
-		cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS));
-		cp.add(builderAll.getPanel());
-		pack();
-		setResizable(false);
-		updateComponents();
-		setLayoutForSelectedGroup();
-		Util.placeDialog(this, m_parent);
-
-		// add listeners
-		ItemListener radioButtonItemListener = new ItemListener() {
-			public void itemStateChanged(ItemEvent e) {
-				setLayoutForSelectedGroup();
-				updateComponents();
-			}
-		};
-		m_explicitRadioButton.addItemListener(radioButtonItemListener);
-		m_keywordsRadioButton.addItemListener(radioButtonItemListener);
-		m_searchRadioButton.addItemListener(radioButtonItemListener);
-
-		m_cancel.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				dispose();
-			}
-		});
-
-		m_ok.addActionListener(new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				m_okPressed = true;
-				if (m_explicitRadioButton.isSelected()) {
-					if (m_editedGroup instanceof ExplicitGroup) {
-						// keep assignments from possible previous ExplicitGroup
-						m_resultingGroup = m_editedGroup.deepCopy();
-						m_resultingGroup.setName(m_name.getText().trim());
-						m_resultingGroup.setHierarchicalContext(getContext());
-					} else {
-						m_resultingGroup = new ExplicitGroup(m_name.getText()
-								.trim(), getContext());
-						if (m_editedGroup != null)
-							addPreviousEntries();
-					}
-				} else if (m_keywordsRadioButton.isSelected()) {
-					// regex is correct, otherwise OK would have been disabled
-					// therefore I don't catch anything here
-					m_resultingGroup = new KeywordGroup(
-							m_name.getText().trim(), m_kgSearchField.getText()
-									.trim(), m_kgSearchTerm.getText().trim(),
-							m_kgCaseSensitive.isSelected(), m_kgRegExp
-									.isSelected(), getContext());
-					if ((m_editedGroup instanceof ExplicitGroup || m_editedGroup instanceof SearchGroup)
-							&& m_resultingGroup.supportsAdd()) {
-						addPreviousEntries();
-					}
-				} else if (m_searchRadioButton.isSelected()) {
-					try {
-						// regex is correct, otherwise OK would have been
-						// disabled
-						// therefore I don't catch anything here
-						m_resultingGroup = new SearchGroup(m_name.getText()
-								.trim(), m_sgSearchExpression.getText().trim(),
-								m_sgCaseSensitive.isSelected(), m_sgRegExp
-										.isSelected(), getContext());
-					} catch (Exception e1) {
-						// should never happen
-					}
-				}
-				dispose();
-			}
-		});
-
-		CaretListener caretListener = new CaretListener() {
-			public void caretUpdate(CaretEvent e) {
-				updateComponents();
-			}
-		};
-
-		ItemListener itemListener = new ItemListener() {
-			public void itemStateChanged(ItemEvent e) {
-				updateComponents();
-			}
-		};
-
-		m_name.addCaretListener(caretListener);
-		m_kgSearchField.addCaretListener(caretListener);
-		m_kgSearchTerm.addCaretListener(caretListener);
-		m_kgCaseSensitive.addItemListener(itemListener);
-		m_kgRegExp.addItemListener(itemListener);
-		m_sgSearchExpression.addCaretListener(caretListener);
-		m_sgRegExp.addItemListener(itemListener);
-		m_sgCaseSensitive.addItemListener(itemListener);
-
-		// configure for current type
-		if (editedGroup instanceof KeywordGroup) {
-			KeywordGroup group = (KeywordGroup) editedGroup;
-			m_name.setText(group.getName());
-			m_kgSearchField.setText(group.getSearchField());
-			m_kgSearchTerm.setText(group.getSearchExpression());
-			m_kgCaseSensitive.setSelected(group.isCaseSensitive());
-			m_kgRegExp.setSelected(group.isRegExp());
-			m_keywordsRadioButton.setSelected(true);
-			setContext(editedGroup.getHierarchicalContext());
-		} else if (editedGroup instanceof SearchGroup) {
-			SearchGroup group = (SearchGroup) editedGroup;
-			m_name.setText(group.getName());
-			m_sgSearchExpression.setText(group.getSearchExpression());
-			m_sgCaseSensitive.setSelected(group.isCaseSensitive());
-			m_sgRegExp.setSelected(group.isRegExp());
-			m_searchRadioButton.setSelected(true);
-			setContext(editedGroup.getHierarchicalContext());
-		} else if (editedGroup instanceof ExplicitGroup) {
-			m_name.setText(editedGroup.getName());
-			m_explicitRadioButton.setSelected(true);
-			setContext(editedGroup.getHierarchicalContext());
-		} else { // creating new group -> defaults!
-			m_explicitRadioButton.setSelected(true);
-			setContext(AbstractGroup.INDEPENDENT);
-		}
-	}
-
-	public boolean okPressed() {
-		return m_okPressed;
-	}
-
-	public AbstractGroup getResultingGroup() {
-		return m_resultingGroup;
-	}
-
-	private void setLayoutForSelectedGroup() {
-		if (m_explicitRadioButton.isSelected())
-			m_optionsLayout.show(m_optionsPanel, String
-					.valueOf(INDEX_EXPLICITGROUP));
-		else if (m_keywordsRadioButton.isSelected())
-			m_optionsLayout.show(m_optionsPanel, String
-					.valueOf(INDEX_KEYWORDGROUP));
-		else if (m_searchRadioButton.isSelected())
-			m_optionsLayout.show(m_optionsPanel, String
-					.valueOf(INDEX_SEARCHGROUP));
-	}
-
-	private void updateComponents() {
-		// all groups need a name
-		boolean okEnabled = m_name.getText().trim().length() > 0;
-		if (!okEnabled) {
-			setDescription(Globals.lang("Please enter a name for the group."));
-			m_ok.setEnabled(false);
-			return;
-		}
-		String s1, s2;
-		if (m_keywordsRadioButton.isSelected()) {
-			s1 = m_kgSearchField.getText().trim();
-			okEnabled = okEnabled && s1.matches("\\w+");
-			s2 = m_kgSearchTerm.getText().trim();
-			okEnabled = okEnabled && s2.length() > 0;
-			if (!okEnabled) {
-				setDescription(Globals
-						.lang("Please enter the field to search (e.g. <b>keywords</b>) and the keyword to search it for (e.g. <b>electrical</b>)."));
-			} else {
-				if (m_kgRegExp.isSelected()) {
-					try {
-						Pattern.compile(s2);
-						setDescription(KeywordGroup.getDescriptionForPreview(s1, s2,
-								m_kgCaseSensitive.isSelected(), m_kgRegExp
-										.isSelected()));
-					} catch (Exception e) {
-						okEnabled = false;
-						setDescription(formatRegExException(s2, e));
-					}
-				} else {
-					setDescription(KeywordGroup.getDescriptionForPreview(s1, s2,
-							m_kgCaseSensitive.isSelected(), m_kgRegExp
-									.isSelected()));
-				}
-			}
-			setNameFontItalic(true);
-		} else if (m_searchRadioButton.isSelected()) {
-			s1 = m_sgSearchExpression.getText().trim();
-			okEnabled = okEnabled & s1.length() > 0;
-			if (!okEnabled) {
-				setDescription(Globals
-						.lang("Please enter a search term. For example, to search all fields for <b>Smith</b>, enter%c<p>"
-								+ "<tt>smith</tt><p>"
-								+ "To search the field <b>Author</b> for <b>Smith</b> and the field <b>Title</b> for <b>electrical</b>, enter%c<p>"
-								+ "<tt>author%esmith and title%eelectrical</tt>"));
-			} else {
-				AST ast = SearchExpressionParser
-						.checkSyntax(s1, m_sgCaseSensitive.isSelected(),
-								m_sgRegExp.isSelected());
-				setDescription(SearchGroup.getDescriptionForPreview(s1, ast,
-						m_sgCaseSensitive.isSelected(), m_sgRegExp.isSelected()));
-				if (m_sgRegExp.isSelected()) {
-					try {
-						Pattern.compile(s1);
-					} catch (Exception e) {
-						okEnabled = false;
-						setDescription(formatRegExException(s1, e));
-					}
-				}
-			}
-			setNameFontItalic(true);
-		} else if (m_explicitRadioButton.isSelected()) {
-			setDescription(ExplicitGroup.getDescriptionForPreview());
-			setNameFontItalic(false);
-		}
-		m_ok.setEnabled(okEnabled);
-	}
-
-	/**
-	 * This is used when a group is converted and the new group supports
-	 * explicit adding of entries: All entries that match the previous group are
-	 * added to the new group.
-	 */
-	private void addPreviousEntries() {
-		// JZTODO lyrics...
-		int i = JOptionPane.showConfirmDialog(m_basePanel.frame(), Globals
-				.lang("Assign the original group's entries to this group?"),
-				Globals.lang("Change of Grouping Method"),
-				JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
-		if (i == JOptionPane.NO_OPTION)
-			return;
-		BibtexEntry entry;
-		Vector vec = new Vector();
-		for (Iterator it = m_basePanel.database().getEntries().iterator(); it
-				.hasNext();) {
-			entry = (BibtexEntry) it.next();
-			if (m_editedGroup.contains(entry))
-				vec.add(entry);
-		}
-		if (vec.size() > 0) {
-			BibtexEntry[] entries = new BibtexEntry[vec.size()];
-			vec.toArray(entries);
-			if (!Util.warnAssignmentSideEffects(new AbstractGroup[]{m_resultingGroup}, 
-					entries, m_basePanel.getDatabase(), this))
-				return;
-			// the undo information for a conversion to an ExplicitGroup is
-			// contained completely in the UndoableModifyGroup object.
-			if (!(m_resultingGroup instanceof ExplicitGroup))
-				m_undoAddPreviousEntires = m_resultingGroup.add(entries);
-		}
-	}
-
-	protected void setDescription(String description) {
-		m_description.setText("<html>" + description + "</html>");
-	}
-
-	protected String formatRegExException(String regExp, Exception e) {
+        private static final int INDEX_EXPLICITGROUP = 0;
+        private static final int INDEX_KEYWORDGROUP = 1;
+        private static final int INDEX_SEARCHGROUP = 2;
+        private static final int TEXTFIELD_LENGTH = 30;
+        // for all types
+        private JTextField m_name = new JTextField(TEXTFIELD_LENGTH);
+        private JRadioButton m_explicitRadioButton = new JRadioButton(Globals
+                        .lang("Statically group entries by manual assignment"));
+        private JRadioButton m_keywordsRadioButton = new JRadioButton(
+                        Globals.lang("Dynamically group entries by searching a field for a keyword"));
+        private JRadioButton m_searchRadioButton = new JRadioButton(Globals
+                        .lang("Dynamically group entries by a free-form search expression"));
+        private JRadioButton m_independentButton = new JRadioButton( // JZTODO lyrics
+                        Globals.lang("Independent group: When selected, view only this group's entries"));
+        private JRadioButton m_intersectionButton = new JRadioButton( // JZTODO lyrics
+                        Globals.lang("Refine supergroup: When selected, view entries contained in both this group and its supergroup"));
+        private JRadioButton m_unionButton = new JRadioButton( // JZTODO lyrics
+                        Globals.lang("Include subgroups: When selected, view entries contained in this group or its subgroups"));
+        // for KeywordGroup
+        private JTextField m_kgSearchField = new JTextField(TEXTFIELD_LENGTH);
+        private FieldTextField m_kgSearchTerm = new FieldTextField("keywords", "",
+                        false);
+        private JCheckBox m_kgCaseSensitive = new JCheckBox(Globals
+                        .lang("Case sensitive"));
+        private JCheckBox m_kgRegExp = new JCheckBox(Globals
+                        .lang("Regular Expression"));
+        // for SearchGroup
+        private JTextField m_sgSearchExpression = new JTextField(TEXTFIELD_LENGTH);
+        private JCheckBox m_sgCaseSensitive = new JCheckBox(Globals
+                        .lang("Case sensitive"));
+        private JCheckBox m_sgRegExp = new JCheckBox(Globals
+                        .lang("Regular Expression"));
+        // for all types
+        private JButton m_ok = new JButton(Globals.lang("Ok"));
+        private JButton m_cancel = new JButton(Globals.lang("Cancel"));
+        private JPanel m_optionsPanel = new JPanel();
+        private JLabel m_description = new JLabel() {
+                public Dimension getPreferredSize() {
+                        Dimension d = super.getPreferredSize();
+                        // width must be smaller than width of enclosing JScrollPane
+                        // to prevent a horizontal scroll bar
+                        d.width = 1;
+                        return d;
+                }
+        };
+
+        private boolean m_okPressed = false;
+
+        private final JabRefFrame m_parent;
+
+        private final BasePanel m_basePanel;
+
+        private AbstractGroup m_resultingGroup;
+
+        private AbstractUndoableEdit m_undoAddPreviousEntires = null;
+
+        private final AbstractGroup m_editedGroup;
+
+        private CardLayout m_optionsLayout = new CardLayout();
+
+        /**
+         * Shows a group add/edit dialog.
+         *
+         * @param jabrefFrame
+         *            The parent frame.
+         * @param defaultField
+         *            The default grouping field.
+         * @param editedGroup
+         *            The group being edited, or null if a new group is to be
+         *            created.
+         */
+        public GroupDialog(JabRefFrame jabrefFrame, BasePanel basePanel,
+                        AbstractGroup editedGroup) {
+                super(jabrefFrame, Globals.lang("Edit group"), true);
+                m_basePanel = basePanel;
+                m_parent = jabrefFrame;
+                m_editedGroup = editedGroup;
+
+                // set default values (overwritten if editedGroup != null)
+                m_kgSearchField.setText(jabrefFrame.prefs().get("groupsDefaultField"));
+
+                // configure elements
+                ButtonGroup groupType = new ButtonGroup();
+                groupType.add(m_explicitRadioButton);
+                groupType.add(m_keywordsRadioButton);
+                groupType.add(m_searchRadioButton);
+                ButtonGroup groupHierarchy = new ButtonGroup();
+                groupHierarchy.add(m_independentButton);
+                groupHierarchy.add(m_intersectionButton);
+                groupHierarchy.add(m_unionButton);
+                m_description.setVerticalAlignment(JLabel.TOP);
+                getRootPane().setDefaultButton(m_ok);
+
+                // build individual layout cards for each group
+                m_optionsPanel.setLayout(m_optionsLayout);
+                // ... for explicit group
+                m_optionsPanel.add(new JPanel(), "" + INDEX_EXPLICITGROUP);
+                // ... for keyword group
+                FormLayout layoutKG = new FormLayout(
+                                "right:pref, 4dlu, fill:1dlu:grow, 2dlu, left:pref");
+                DefaultFormBuilder builderKG = new DefaultFormBuilder(layoutKG);
+                builderKG.append(Globals.lang("Field"));
+                builderKG.append(m_kgSearchField, 3);
+                builderKG.nextLine();
+                builderKG.append(Globals.lang("Keyword"));
+                builderKG.append(m_kgSearchTerm);
+                builderKG.append(new FieldContentSelector(m_parent, m_basePanel, this,
+                                m_kgSearchTerm, m_basePanel.metaData(), null, true));
+                builderKG.nextLine();
+                builderKG.append(m_kgCaseSensitive, 3);
+                builderKG.nextLine();
+                builderKG.append(m_kgRegExp, 3);
+                m_optionsPanel.add(builderKG.getPanel(), "" + INDEX_KEYWORDGROUP);
+                // ... for search group
+                FormLayout layoutSG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow");
+                DefaultFormBuilder builderSG = new DefaultFormBuilder(layoutSG);
+                builderSG.append(Globals.lang("Search expression"));
+                builderSG.append(m_sgSearchExpression);
+                builderSG.nextLine();
+                builderSG.append(m_sgCaseSensitive, 3);
+                builderSG.nextLine();
+                builderSG.append(m_sgRegExp, 3);
+                m_optionsPanel.add(builderSG.getPanel(), "" + INDEX_SEARCHGROUP);
+                // ... for buttons panel
+                FormLayout layoutBP = new FormLayout("pref, 4dlu, pref", "p");
+                layoutBP.setColumnGroups(new int[][] { { 1, 3 } });
+                DefaultFormBuilder builderBP = new DefaultFormBuilder(layoutBP);
+                builderBP.append(m_ok);
+                builderBP.add(m_cancel);
+
+                // create layout
+                FormLayout layoutAll = new FormLayout(
+                                "right:pref, 4dlu, fill:600px, 4dlu, fill:pref",
+                                "p, 3dlu, p, 3dlu, p, 0dlu, p, 0dlu, p, 3dlu, p, 3dlu, p, "
+                                                + "0dlu, p, 0dlu, p, 3dlu, p, 3dlu, "
+                                                + "p, 3dlu, p, 3dlu, top:80dlu, 9dlu, p, , 9dlu, p");
+
+                DefaultFormBuilder builderAll = new DefaultFormBuilder(layoutAll);
+                builderAll.setDefaultDialogBorder();
+                builderAll.appendSeparator(Globals.lang("General"));
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(Globals.lang("Name"));
+                builderAll.append(m_name);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(m_explicitRadioButton, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(m_keywordsRadioButton, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(m_searchRadioButton, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.appendSeparator(Globals.lang("Hierarchical context")); // JZTODO lyrics
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(m_independentButton, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(m_intersectionButton, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(m_unionButton, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.appendSeparator(Globals.lang("Options"));
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.append(m_optionsPanel, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.appendSeparator(Globals.lang("Description"));
+                builderAll.nextLine();
+                builderAll.nextLine();
+                JScrollPane sp = new JScrollPane(m_description,
+                                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+                                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED) {
+                        public Dimension getPreferredSize() {
+                                return getMaximumSize();
+                        }
+                };
+                builderAll.append(sp, 5);
+                builderAll.nextLine();
+                builderAll.nextLine();
+                builderAll.appendSeparator();
+                builderAll.nextLine();
+                builderAll.nextLine();
+                CellConstraints cc = new CellConstraints();
+                builderAll.add(builderBP.getPanel(), cc.xyw(builderAll.getColumn(),
+                                builderAll.getRow(), 5, "center, fill"));
+
+                Container cp = getContentPane();
+                cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS));
+                cp.add(builderAll.getPanel());
+                pack();
+                setResizable(false);
+                updateComponents();
+                setLayoutForSelectedGroup();
+                Util.placeDialog(this, m_parent);
+
+                // add listeners
+                ItemListener radioButtonItemListener = new ItemListener() {
+                        public void itemStateChanged(ItemEvent e) {
+                                setLayoutForSelectedGroup();
+                                updateComponents();
+                        }
+                };
+                m_explicitRadioButton.addItemListener(radioButtonItemListener);
+                m_keywordsRadioButton.addItemListener(radioButtonItemListener);
+                m_searchRadioButton.addItemListener(radioButtonItemListener);
+
+                m_cancel.addActionListener(new ActionListener() {
+                        public void actionPerformed(ActionEvent e) {
+                                dispose();
+                        }
+                });
+
+                m_ok.addActionListener(new ActionListener() {
+                        public void actionPerformed(ActionEvent e) {
+                                m_okPressed = true;
+                                if (m_explicitRadioButton.isSelected()) {
+                                        if (m_editedGroup instanceof ExplicitGroup) {
+                                                // keep assignments from possible previous ExplicitGroup
+                                                m_resultingGroup = m_editedGroup.deepCopy();
+                                                m_resultingGroup.setName(m_name.getText().trim());
+                                                m_resultingGroup.setHierarchicalContext(getContext());
+                                        } else {
+                                                m_resultingGroup = new ExplicitGroup(m_name.getText()
+                                                                .trim(), getContext());
+                                                if (m_editedGroup != null)
+                                                        addPreviousEntries();
+                                        }
+                                } else if (m_keywordsRadioButton.isSelected()) {
+                                        // regex is correct, otherwise OK would have been disabled
+                                        // therefore I don't catch anything here
+                                        m_resultingGroup = new KeywordGroup(
+                                                        m_name.getText().trim(), m_kgSearchField.getText()
+                                                                        .trim(), m_kgSearchTerm.getText().trim(),
+                                                        m_kgCaseSensitive.isSelected(), m_kgRegExp
+                                                                        .isSelected(), getContext());
+                                        if ((m_editedGroup instanceof ExplicitGroup || m_editedGroup instanceof SearchGroup)
+                                                        && m_resultingGroup.supportsAdd()) {
+                                                addPreviousEntries();
+                                        }
+                                } else if (m_searchRadioButton.isSelected()) {
+                                        try {
+                                                // regex is correct, otherwise OK would have been
+                                                // disabled
+                                                // therefore I don't catch anything here
+                                                m_resultingGroup = new SearchGroup(m_name.getText()
+                                                                .trim(), m_sgSearchExpression.getText().trim(),
+                                                                m_sgCaseSensitive.isSelected(), m_sgRegExp
+                                                                                .isSelected(), getContext());
+                                        } catch (Exception e1) {
+                                                // should never happen
+                                        }
+                                }
+                                dispose();
+                        }
+                });
+
+                CaretListener caretListener = new CaretListener() {
+                        public void caretUpdate(CaretEvent e) {
+                                updateComponents();
+                        }
+                };
+
+                ItemListener itemListener = new ItemListener() {
+                        public void itemStateChanged(ItemEvent e) {
+                                updateComponents();
+                        }
+                };
+
+                m_name.addCaretListener(caretListener);
+                m_kgSearchField.addCaretListener(caretListener);
+                m_kgSearchTerm.addCaretListener(caretListener);
+                m_kgCaseSensitive.addItemListener(itemListener);
+                m_kgRegExp.addItemListener(itemListener);
+                m_sgSearchExpression.addCaretListener(caretListener);
+                m_sgRegExp.addItemListener(itemListener);
+                m_sgCaseSensitive.addItemListener(itemListener);
+
+                // configure for current type
+                if (editedGroup instanceof KeywordGroup) {
+                        KeywordGroup group = (KeywordGroup) editedGroup;
+                        m_name.setText(group.getName());
+                        m_kgSearchField.setText(group.getSearchField());
+                        m_kgSearchTerm.setText(group.getSearchExpression());
+                        m_kgCaseSensitive.setSelected(group.isCaseSensitive());
+                        m_kgRegExp.setSelected(group.isRegExp());
+                        m_keywordsRadioButton.setSelected(true);
+                        setContext(editedGroup.getHierarchicalContext());
+                } else if (editedGroup instanceof SearchGroup) {
+                        SearchGroup group = (SearchGroup) editedGroup;
+                        m_name.setText(group.getName());
+                        m_sgSearchExpression.setText(group.getSearchExpression());
+                        m_sgCaseSensitive.setSelected(group.isCaseSensitive());
+                        m_sgRegExp.setSelected(group.isRegExp());
+                        m_searchRadioButton.setSelected(true);
+                        setContext(editedGroup.getHierarchicalContext());
+                } else if (editedGroup instanceof ExplicitGroup) {
+                        m_name.setText(editedGroup.getName());
+                        m_explicitRadioButton.setSelected(true);
+                        setContext(editedGroup.getHierarchicalContext());
+                } else { // creating new group -> defaults!
+                        m_explicitRadioButton.setSelected(true);
+                        setContext(AbstractGroup.INDEPENDENT);
+                }
+        }
+
+        public boolean okPressed() {
+                return m_okPressed;
+        }
+
+        public AbstractGroup getResultingGroup() {
+                return m_resultingGroup;
+        }
+
+        private void setLayoutForSelectedGroup() {
+                if (m_explicitRadioButton.isSelected())
+                        m_optionsLayout.show(m_optionsPanel, String
+                                        .valueOf(INDEX_EXPLICITGROUP));
+                else if (m_keywordsRadioButton.isSelected())
+                        m_optionsLayout.show(m_optionsPanel, String
+                                        .valueOf(INDEX_KEYWORDGROUP));
+                else if (m_searchRadioButton.isSelected())
+                        m_optionsLayout.show(m_optionsPanel, String
+                                        .valueOf(INDEX_SEARCHGROUP));
+        }
+
+        private void updateComponents() {
+                // all groups need a name
+                boolean okEnabled = m_name.getText().trim().length() > 0;
+                if (!okEnabled) {
+                        setDescription(Globals.lang("Please enter a name for the group."));
+                        m_ok.setEnabled(false);
+                        return;
+                }
+                String s1, s2;
+                if (m_keywordsRadioButton.isSelected()) {
+                        s1 = m_kgSearchField.getText().trim();
+                        okEnabled = okEnabled && s1.matches("\\w+");
+                        s2 = m_kgSearchTerm.getText().trim();
+                        okEnabled = okEnabled && s2.length() > 0;
+                        if (!okEnabled) {
+                                setDescription(Globals
+                                                .lang("Please enter the field to search (e.g. <b>keywords</b>) and the keyword to search it for (e.g. <b>electrical</b>)."));
+                        } else {
+                                if (m_kgRegExp.isSelected()) {
+                                        try {
+                                                Pattern.compile(s2);
+                                                setDescription(KeywordGroup.getDescriptionForPreview(s1, s2,
+                                                                m_kgCaseSensitive.isSelected(), m_kgRegExp
+                                                                                .isSelected()));
+                                        } catch (Exception e) {
+                                                okEnabled = false;
+                                                setDescription(formatRegExException(s2, e));
+                                        }
+                                } else {
+                                        setDescription(KeywordGroup.getDescriptionForPreview(s1, s2,
+                                                        m_kgCaseSensitive.isSelected(), m_kgRegExp
+                                                                        .isSelected()));
+                                }
+                        }
+                        setNameFontItalic(true);
+                } else if (m_searchRadioButton.isSelected()) {
+                        s1 = m_sgSearchExpression.getText().trim();
+                        okEnabled = okEnabled & s1.length() > 0;
+                        if (!okEnabled) {
+                                setDescription(Globals
+                                                .lang("Please enter a search term. For example, to search all fields for <b>Smith</b>, enter%c<p>"
+                                                                + "<tt>smith</tt><p>"
+                                                                + "To search the field <b>Author</b> for <b>Smith</b> and the field <b>Title</b> for <b>electrical</b>, enter%c<p>"
+                                                                + "<tt>author%esmith and title%eelectrical</tt>"));
+                        } else {
+                                AST ast = SearchExpressionParser
+                                                .checkSyntax(s1, m_sgCaseSensitive.isSelected(),
+                                                                m_sgRegExp.isSelected());
+                                setDescription(SearchGroup.getDescriptionForPreview(s1, ast,
+                                                m_sgCaseSensitive.isSelected(), m_sgRegExp.isSelected()));
+                                if (m_sgRegExp.isSelected()) {
+                                        try {
+                                                Pattern.compile(s1);
+                                        } catch (Exception e) {
+                                                okEnabled = false;
+                                                setDescription(formatRegExException(s1, e));
+                                        }
+                                }
+                        }
+                        setNameFontItalic(true);
+                } else if (m_explicitRadioButton.isSelected()) {
+                        setDescription(ExplicitGroup.getDescriptionForPreview());
+                        setNameFontItalic(false);
+                }
+                m_ok.setEnabled(okEnabled);
+        }
+
+        /**
+         * This is used when a group is converted and the new group supports
+         * explicit adding of entries: All entries that match the previous group are
+         * added to the new group.
+         */
+        private void addPreviousEntries() {
+                // JZTODO lyrics...
+                int i = JOptionPane.showConfirmDialog(m_basePanel.frame(), Globals
+                                .lang("Assign the original group's entries to this group?"),
+                                Globals.lang("Change of Grouping Method"),
+                                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
+                if (i == JOptionPane.NO_OPTION)
+                        return;
+                BibtexEntry entry;
+                Vector vec = new Vector();
+                for (Iterator it = m_basePanel.database().getEntries().iterator(); it
+                                .hasNext();) {
+                        entry = (BibtexEntry) it.next();
+                        if (m_editedGroup.contains(entry))
+                                vec.add(entry);
+                }
+                if (vec.size() > 0) {
+                        BibtexEntry[] entries = new BibtexEntry[vec.size()];
+                        vec.toArray(entries);
+                        if (!Util.warnAssignmentSideEffects(new AbstractGroup[]{m_resultingGroup},
+                                        entries, m_basePanel.getDatabase(), this))
+                                return;
+                        // the undo information for a conversion to an ExplicitGroup is
+                        // contained completely in the UndoableModifyGroup object.
+                        if (!(m_resultingGroup instanceof ExplicitGroup))
+                                m_undoAddPreviousEntires = m_resultingGroup.add(entries);
+                }
+        }
+
+        protected void setDescription(String description) {
+                m_description.setText("<html>" + description + "</html>");
+        }
+
+        protected String formatRegExException(String regExp, Exception e) {
         String[] sa = e.getMessage().split("\\n");
         StringBuffer sb = new StringBuffer();
         for (int i = 0; i < sa.length; ++i) {
@@ -492,65 +492,65 @@ class GroupDialog extends JDialog {
                 sb.append("<br>");
             sb.append(Util.quoteForHTML(sa[i]));
         }
-		String s = Globals.lang(
-				"The regular expression <b>%0</b> is invalid%c", 
+                String s = Globals.lang(
+                                "The regular expression <b>%0</b> is invalid%c",
                 Util.quoteForHTML(regExp))
-				+ "<p><tt>"
-				+ sb.toString()
-				+ "</tt>";
-		if (!(e instanceof PatternSyntaxException))
-			return s;
-		int lastNewline = s.lastIndexOf("<br>");
-		int hat = s.lastIndexOf("^");
-		if (lastNewline >= 0 && hat >= 0 && hat > lastNewline)
-			return s.substring(0, lastNewline + 4)
-					+ s.substring(lastNewline + 4).replaceAll(" ", " ");
-		return s;
-	}
-
-	/**
-	 * Returns an undo object for adding the edited group's entries to the new
-	 * group, or null if this did not occur.
-	 */
-	public AbstractUndoableEdit getUndoForAddPreviousEntries() {
-		return m_undoAddPreviousEntires;
-	}
-
-	/** Sets the font of the name entry field. */
-	protected void setNameFontItalic(boolean italic) {
-		Font f = m_name.getFont();
-		if (f.isItalic() != italic) {
-			f = f.deriveFont(italic ? Font.ITALIC : Font.PLAIN);
-			m_name.setFont(f);
-		}
-	}
-
-	/**
-	 * Returns the int representing the selected hierarchical group context.
-	 */
-	protected int getContext() {
-		if (m_independentButton.isSelected())
-			return AbstractGroup.INDEPENDENT;
-		if (m_intersectionButton.isSelected())
-			return AbstractGroup.REFINING;
-		if (m_unionButton.isSelected())
-			return AbstractGroup.INCLUDING;
-		return AbstractGroup.INDEPENDENT; // default
-	}
-	
-	protected void setContext(int context) {
-		switch (context) {
-		case AbstractGroup.REFINING:
-			m_intersectionButton.setSelected(true);
-			return;
-		case AbstractGroup.INCLUDING:
-			m_unionButton.setSelected(true);
-			return;
-		case AbstractGroup.INDEPENDENT:
-		default:
-			m_independentButton.setSelected(true);
-			return;
-		}
-	}
+                                + "<p><tt>"
+                                + sb.toString()
+                                + "</tt>";
+                if (!(e instanceof PatternSyntaxException))
+                        return s;
+                int lastNewline = s.lastIndexOf("<br>");
+                int hat = s.lastIndexOf("^");
+                if (lastNewline >= 0 && hat >= 0 && hat > lastNewline)
+                        return s.substring(0, lastNewline + 4)
+                                        + s.substring(lastNewline + 4).replaceAll(" ", " ");
+                return s;
+        }
+
+        /**
+         * Returns an undo object for adding the edited group's entries to the new
+         * group, or null if this did not occur.
+         */
+        public AbstractUndoableEdit getUndoForAddPreviousEntries() {
+                return m_undoAddPreviousEntires;
+        }
+
+        /** Sets the font of the name entry field. */
+        protected void setNameFontItalic(boolean italic) {
+                Font f = m_name.getFont();
+                if (f.isItalic() != italic) {
+                        f = f.deriveFont(italic ? Font.ITALIC : Font.PLAIN);
+                        m_name.setFont(f);
+                }
+        }
+
+        /**
+         * Returns the int representing the selected hierarchical group context.
+         */
+        protected int getContext() {
+                if (m_independentButton.isSelected())
+                        return AbstractGroup.INDEPENDENT;
+                if (m_intersectionButton.isSelected())
+                        return AbstractGroup.REFINING;
+                if (m_unionButton.isSelected())
+                        return AbstractGroup.INCLUDING;
+                return AbstractGroup.INDEPENDENT; // default
+        }
+
+        protected void setContext(int context) {
+                switch (context) {
+                case AbstractGroup.REFINING:
+                        m_intersectionButton.setSelected(true);
+                        return;
+                case AbstractGroup.INCLUDING:
+                        m_unionButton.setSelected(true);
+                        return;
+                case AbstractGroup.INDEPENDENT:
+                default:
+                        m_independentButton.setSelected(true);
+                        return;
+                }
+        }
 
 }
diff --git a/src/java/net/sf/jabref/groups/GroupSelector.java b/src/java/net/sf/jabref/groups/GroupSelector.java
index 8875fd4..1c3ab2c 100644
--- a/src/java/net/sf/jabref/groups/GroupSelector.java
+++ b/src/java/net/sf/jabref/groups/GroupSelector.java
@@ -74,7 +74,7 @@ public class GroupSelector extends SidePaneComponent implements
             false), select = new JCheckBoxMenuItem(Globals
             .lang("Select matches"), false);
     JCheckBoxMenuItem showOverlappingGroups = new JCheckBoxMenuItem(
-    		Globals.lang("Highlight overlapping groups")); // JZTODO lyrics
+                    Globals.lang("Highlight overlapping groups")); // JZTODO lyrics
     ButtonGroup bgr = new ButtonGroup();
     ButtonGroup visMode = new ButtonGroup();
     ButtonGroup nonHits = new ButtonGroup();
@@ -86,7 +86,7 @@ public class GroupSelector extends SidePaneComponent implements
     /**
      * The first element for each group defines which field to use for the
      * quicksearch. The next two define the name and regexp for the group.
-     * 
+     *
      * @param groupData
      *            The group meta data in raw format.
      */
@@ -120,8 +120,8 @@ public class GroupSelector extends SidePaneComponent implements
         });
         showOverlappingGroups.addChangeListener(new ChangeListener() {
             public void stateChanged(ChangeEvent event) {
-                Globals.prefs.putBoolean("groupShowOverlapping", 
-                		showOverlappingGroups.isSelected());
+                Globals.prefs.putBoolean("groupShowOverlapping",
+                                showOverlappingGroups.isSelected());
                 if (!showOverlappingGroups.isSelected())
                     groupsTree.setHighlight2Cells(null);
             }
@@ -137,7 +137,7 @@ public class GroupSelector extends SidePaneComponent implements
                 Globals.prefs.putBoolean("grayOutNonHits", grayOut.isSelected());
             }
         });
-        
+
         if (Globals.prefs.getBoolean("groupFloatSelections")) {
 
             floatCb.setSelected(true);
@@ -153,7 +153,7 @@ public class GroupSelector extends SidePaneComponent implements
             orCb.setSelected(true);
             andCb.setSelected(false);
         }
-        
+
         invCb.setSelected(Globals.prefs.getBoolean("groupInvertSelections"));
         showOverlappingGroups.setSelected(Globals.prefs.getBoolean("groupShowOverlapping"));
         select.setSelected(Globals.prefs.getBoolean("groupSelectMatches"));
@@ -258,7 +258,7 @@ public class GroupSelector extends SidePaneComponent implements
         invCb.setToolTipText(Globals
                 .lang("Show entries *not* in group selection"));
         showOverlappingGroups.setToolTipText( // JZTODO lyrics
-        		"Highlight groups that contain entries contained in any currently selected group");
+                        "Highlight groups that contain entries contained in any currently selected group");
         floatCb.setToolTipText(Globals
                 .lang("Move entries in group selection to the top"));
         highlCb.setToolTipText(Globals
@@ -329,19 +329,19 @@ public class GroupSelector extends SidePaneComponent implements
         main.setBorder(BorderFactory.createEmptyBorder(1,1,1,1));
         add(main, BorderLayout.CENTER);
         definePopup();
-        moveNodeUpAction.putValue(Action.ACCELERATOR_KEY, 
+        moveNodeUpAction.putValue(Action.ACCELERATOR_KEY,
                 KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.CTRL_MASK));
-        moveNodeDownAction.putValue(Action.ACCELERATOR_KEY, 
+        moveNodeDownAction.putValue(Action.ACCELERATOR_KEY,
                 KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.CTRL_MASK));
-        moveNodeLeftAction.putValue(Action.ACCELERATOR_KEY, 
+        moveNodeLeftAction.putValue(Action.ACCELERATOR_KEY,
                 KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_MASK));
-        moveNodeRightAction.putValue(Action.ACCELERATOR_KEY, 
+        moveNodeRightAction.putValue(Action.ACCELERATOR_KEY,
                 KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_MASK));
     }
 
     private void definePopup() {
         // These key bindings are just to have the shortcuts displayed
-        // in the popup menu. The actual keystroke processing is in 
+        // in the popup menu. The actual keystroke processing is in
         // BasePanel (entryTable.addKeyListener(...)).
         groupsContextMenu.add(editGroupPopupAction);
         groupsContextMenu.add(addGroupPopupAction);
@@ -404,7 +404,7 @@ public class GroupSelector extends SidePaneComponent implements
             }
             public void popupMenuCanceled(PopupMenuEvent e) {
                 groupsTree.setHighlightBorderCell(null);
-            }            
+            }
         });
     }
 
@@ -449,10 +449,10 @@ public class GroupSelector extends SidePaneComponent implements
                 removeGroupAndSubgroupsPopupAction.setEnabled(true);
                 removeGroupKeepSubgroupsPopupAction.setEnabled(true);
             }
-			expandSubtreePopupAction.setEnabled(groupsTree.isCollapsed(path) ||
-					groupsTree.hasCollapsedDescendant(path));
-			collapseSubtreePopupAction.setEnabled(groupsTree.isExpanded(path) ||
-					groupsTree.hasExpandedDescendant(path));
+                        expandSubtreePopupAction.setEnabled(groupsTree.isCollapsed(path) ||
+                                        groupsTree.hasCollapsedDescendant(path));
+                        collapseSubtreePopupAction.setEnabled(groupsTree.isExpanded(path) ||
+                                        groupsTree.hasExpandedDescendant(path));
             sortSubmenu.setEnabled(!node.isLeaf());
             removeSubgroupsPopupAction.setEnabled(!node.isLeaf());
             moveNodeUpPopupAction.setEnabled(node.canMoveUp());
@@ -460,7 +460,7 @@ public class GroupSelector extends SidePaneComponent implements
             moveNodeLeftPopupAction.setEnabled(node.canMoveLeft());
             moveNodeRightPopupAction.setEnabled(node.canMoveRight());
             moveSubmenu.setEnabled(moveNodeUpPopupAction.isEnabled()
-                    || moveNodeDownPopupAction.isEnabled() 
+                    || moveNodeDownPopupAction.isEnabled()
                     || moveNodeLeftPopupAction.isEnabled()
                     || moveNodeRightPopupAction.isEnabled());
             moveNodeUpPopupAction.setNode(node);
@@ -524,9 +524,9 @@ public class GroupSelector extends SidePaneComponent implements
                 .isSelected(), invCb.isSelected());
 
         for (int i = 0; i < selection.length; ++i) {
-			searchRules.addRule(((GroupTreeNode) selection[i]
-					.getLastPathComponent()).getSearchRule());
-		}
+                        searchRules.addRule(((GroupTreeNode) selection[i]
+                                        .getLastPathComponent()).getSearchRule());
+                }
         Hashtable searchOptions = new Hashtable();
         searchOptions.put("option", "dummy");
         GroupingWorker worker = new GroupingWorker(searchRules, searchOptions);
@@ -583,17 +583,28 @@ public class GroupSelector extends SidePaneComponent implements
             }
 
             if (showOverlappingGroupsP) {
-				showOverlappingGroups(matches);
+                                showOverlappingGroups(matches);
         }
             frame.output(Globals.lang("Updated group selection") + ".");
         }
     }
-
-    /** 
+    /**
      * Revalidate the groups tree (e.g. after the data stored in the model has
-     * been changed) and set the specified selection and expansion state. */
-    public void revalidateGroups(TreePath[] selectionPaths, 
+     * been changed) and set the specified selection and expansion state.
+     * @param node If this is non-null, the view is scrolled to make it visible.
+     */
+    public void revalidateGroups(TreePath[] selectionPaths,
             Enumeration expandedNodes) {
+            revalidateGroups(selectionPaths, expandedNodes, null);
+    }
+
+    /**
+     * Revalidate the groups tree (e.g. after the data stored in the model has
+     * been changed) and set the specified selection and expansion state.
+     * @param node If this is non-null, the view is scrolled to make it visible.
+     */
+    public void revalidateGroups(TreePath[] selectionPaths,
+            Enumeration expandedNodes, GroupTreeNode node) {
         groupsTreeModel.reload();
         groupsTree.clearSelection();
         if (selectionPaths != null) {
@@ -605,13 +616,25 @@ public class GroupSelector extends SidePaneComponent implements
                 groupsTree.expandPath((TreePath)expandedNodes.nextElement());
         }
         groupsTree.revalidate();
+        if (node != null) {
+                groupsTree.scrollPathToVisible(new TreePath(node.getPath()));
+        }
     }
-    
-    /** 
+
+    /**
      * Revalidate the groups tree (e.g. after the data stored in the model has
      * been changed) and maintain the current selection and expansion state. */
     public void revalidateGroups() {
-        revalidateGroups(groupsTree.getSelectionPaths(),getExpandedPaths());
+        revalidateGroups(null);
+    }
+
+    /**
+     * Revalidate the groups tree (e.g. after the data stored in the model has
+     * been changed) and maintain the current selection and expansion state.
+     * @param node If this is non-null, the view is scrolled to make it visible.
+     */
+    public void revalidateGroups(GroupTreeNode node) {
+        revalidateGroups(groupsTree.getSelectionPaths(),getExpandedPaths(),node);
     }
 
     public void actionPerformed(ActionEvent e) {
@@ -619,7 +642,7 @@ public class GroupSelector extends SidePaneComponent implements
             valueChanged(null);
         } else if (e.getSource() == newButton) {
             GroupDialog gd = new GroupDialog(frame, panel, null);
-            gd.show();
+            gd.setVisible(true); // gd.show(); -> deprecated since 1.5
             if (gd.okPressed()) {
                 AbstractGroup newGroup = gd.getResultingGroup();
                 GroupTreeNode newNode = new GroupTreeNode(newGroup);
@@ -637,7 +660,7 @@ public class GroupSelector extends SidePaneComponent implements
             AutoGroupDialog gd = new AutoGroupDialog(frame, panel,
                     GroupSelector.this, groupsRoot, Globals.prefs
                             .get("groupsDefaultField"), " .,", ",");
-            gd.show();
+            gd.setVisible(true); // gd.show(); -> deprecated since 1.5
             // gd does the operation itself
         } else if (e.getSource() instanceof JCheckBox) {
             valueChanged(null);
@@ -664,7 +687,7 @@ public class GroupSelector extends SidePaneComponent implements
         groupsTree.setModel(groupsTreeModel = new DefaultTreeModel(groupsRoot));
         this.groupsRoot = groupsRoot;
         if (Globals.prefs.getBoolean("groupExpandTree"))
-        	groupsTree.expandSubtree(groupsRoot);
+                groupsTree.expandSubtree(groupsRoot);
     }
 
     /**
@@ -682,7 +705,7 @@ public class GroupSelector extends SidePaneComponent implements
                 groupsRoot, newGroups, UndoableAddOrRemoveGroup.ADD_NODE);
         ce.addEdit(undo);
     }
-    
+
     private abstract class NodeAction extends AbstractAction {
         protected GroupTreeNode m_node = null;
         public NodeAction(String s) {
@@ -707,7 +730,7 @@ public class GroupSelector extends SidePaneComponent implements
             return null;
         }
     }
-    
+
     final AbstractAction editGroupAction = new EditGroupAction();
     final NodeAction editGroupPopupAction = new EditGroupAction();
     final NodeAction addGroupPopupAction = new AddGroupAction();
@@ -730,7 +753,7 @@ public class GroupSelector extends SidePaneComponent implements
     final AddToGroupAction addToGroup = new AddToGroupAction(false);
     final AddToGroupAction moveToGroup = new AddToGroupAction(true);
     final RemoveFromGroupAction removeFromGroup = new RemoveFromGroupAction();
-    
+
     private class EditGroupAction extends NodeAction {
         public EditGroupAction() {
             super(Globals.lang("Edit group"));
@@ -743,11 +766,11 @@ public class GroupSelector extends SidePaneComponent implements
             if (gd.okPressed()) {
                 AbstractGroup newGroup = gd.getResultingGroup();
                 AbstractUndoableEdit undoAddPreviousEntries
-                    = gd.getUndoForAddPreviousEntries(); 
+                    = gd.getUndoForAddPreviousEntries();
                 UndoableModifyGroup undo = new UndoableModifyGroup(
                         GroupSelector.this, groupsRoot, node, newGroup);
                 node.setGroup(newGroup);
-                revalidateGroups();
+                revalidateGroups(node);
                 // Store undo information.
                 if (undoAddPreviousEntries == null) {
                     panel.undoManager.addEdit(undo);
@@ -764,7 +787,7 @@ public class GroupSelector extends SidePaneComponent implements
             }
         }
     }
-    
+
     private class AddGroupAction extends NodeAction {
         public AddGroupAction() {
             super(Globals.lang("Add Group"));
@@ -795,7 +818,7 @@ public class GroupSelector extends SidePaneComponent implements
                     newGroup.getName()));
         }
     }
-    
+
     private class AddSubgroupAction extends NodeAction {
         public AddSubgroupAction() {
             super(Globals.lang("Add Subgroup"));
@@ -830,7 +853,7 @@ public class GroupSelector extends SidePaneComponent implements
             final GroupTreeNode node = getNodeToUse();
             final AbstractGroup group = node.getGroup();
             int conf = JOptionPane.showConfirmDialog(frame, Globals
-                    .lang("Remove group \"%0\" and its subgroups?",group.getName()), 
+                    .lang("Remove group \"%0\" and its subgroups?",group.getName()),
                     Globals.lang("Remove group and subgroups"),
                     JOptionPane.YES_NO_OPTION);
             if (conf == JOptionPane.YES_OPTION) {
@@ -856,7 +879,7 @@ public class GroupSelector extends SidePaneComponent implements
             final GroupTreeNode node = getNodeToUse();
             final AbstractGroup group = node.getGroup();
             int conf = JOptionPane.showConfirmDialog(frame, Globals
-                    .lang("Remove all subgroups of \"%0\"?",group.getName()), 
+                    .lang("Remove all subgroups of \"%0\"?",group.getName()),
                     Globals.lang("Remove all subgroups"),
                     JOptionPane.YES_NO_OPTION);
             if (conf == JOptionPane.YES_OPTION) {
@@ -903,11 +926,11 @@ public class GroupSelector extends SidePaneComponent implements
             }
         }
     };
-    
+
     public TreePath getSelectionPath() {
         return groupsTree.getSelectionPath();
     }
-    
+
     private class SortDirectSubgroupsAction extends NodeAction {
         public SortDirectSubgroupsAction() {
             super(Globals.lang("Immediate subgroups"));
@@ -922,7 +945,7 @@ public class GroupSelector extends SidePaneComponent implements
             frame.output(Globals.lang("Sorted immediate subgroups."));
         }
     }
-    
+
     private class SortAllSubgroupsAction extends NodeAction {
         public SortAllSubgroupsAction() {
             super(Globals.lang("All subgroups (recursively)"));
@@ -937,13 +960,13 @@ public class GroupSelector extends SidePaneComponent implements
             frame.output(Globals.lang("Sorted all subgroups recursively."));
         }
     };
-    
+
     public final AbstractAction clearHighlightAction = new AbstractAction(Globals.lang("Clear highlight")) {
         public void actionPerformed(ActionEvent ae) {
             groupsTree.setHighlight3Cells(null);
         }
     };
-    
+
     private class ExpandSubtreeAction extends NodeAction {
         public ExpandSubtreeAction() {
             super(Globals.lang("Expand subtree"));
@@ -955,7 +978,7 @@ public class GroupSelector extends SidePaneComponent implements
             revalidateGroups();
         }
     }
-    
+
     private class CollapseSubtreeAction extends NodeAction {
         public CollapseSubtreeAction() {
             super(Globals.lang("Collapse subtree"));
@@ -967,7 +990,7 @@ public class GroupSelector extends SidePaneComponent implements
             revalidateGroups();
         }
     }
-    
+
     private class MoveNodeUpAction extends NodeAction {
         public MoveNodeUpAction() {
             super(Globals.lang("Up"));
@@ -977,7 +1000,7 @@ public class GroupSelector extends SidePaneComponent implements
             moveNodeUp(node, false);
         }
     }
-    
+
     private class MoveNodeDownAction extends NodeAction {
         public MoveNodeDownAction() {
             super(Globals.lang("Down"));
@@ -987,7 +1010,7 @@ public class GroupSelector extends SidePaneComponent implements
             moveNodeDown(node, false);
         }
     }
-    
+
     private class MoveNodeLeftAction extends NodeAction {
         public MoveNodeLeftAction() {
             super(Globals.lang("Left"));
@@ -997,7 +1020,7 @@ public class GroupSelector extends SidePaneComponent implements
             moveNodeLeft(node, false);
         }
     }
-    
+
     private class MoveNodeRightAction extends NodeAction {
         public MoveNodeRightAction() {
             super(Globals.lang("Right"));
@@ -1032,7 +1055,7 @@ public class GroupSelector extends SidePaneComponent implements
         concludeMoveGroup(undo, node);
         return true;
     }
-    
+
     /**
      * @param node The node to move
      * @return true if move was successful, false if not.
@@ -1057,7 +1080,7 @@ public class GroupSelector extends SidePaneComponent implements
         concludeMoveGroup(undo, node);
         return true;
     }
-    
+
     /**
      * @param node The node to move
      * @return true if move was successful, false if not.
@@ -1081,7 +1104,7 @@ public class GroupSelector extends SidePaneComponent implements
         concludeMoveGroup(undo, node);
         return true;
     }
-    
+
     /**
      * @param node The node to move
      * @return true if move was successful, false if not.
@@ -1105,20 +1128,20 @@ public class GroupSelector extends SidePaneComponent implements
         concludeMoveGroup(undo, node);
         return true;
     }
-    
+
     /**
      * Concludes the moving of a group tree node by storing the specified
      * undo information, marking the change, and setting the status line.
-     * @param undo Undo information for the move operation. 
+     * @param undo Undo information for the move operation.
      * @param node The node that has been moved.
      */
     public void concludeMoveGroup(AbstractUndoableEdit undo, GroupTreeNode node) {
         panel.undoManager.addEdit(undo);
         panel.markBaseChanged();
-        frame.output(Globals.lang("Moved group \"%0\".", 
+        frame.output(Globals.lang("Moved group \"%0\".",
                 node.getGroup().getName()));
     }
-    
+
     public void concludeAssignment(AbstractUndoableEdit undo, GroupTreeNode node, int assignedEntries) {
         if (undo == null) {
             frame.output(Globals.lang("The group \"%0\" already contains the selection.",
@@ -1127,22 +1150,22 @@ public class GroupSelector extends SidePaneComponent implements
         }
         panel.undoManager.addEdit(undo);
         panel.markBaseChanged();
-        panel.updateEntryEditorIfShowing(); 
+        panel.updateEntryEditorIfShowing();
         final String groupName = node.getGroup().getName();
         if (assignedEntries == 1)
             frame.output(Globals.lang("Assigned 1 entry to group \"%0\".", groupName));
         else
-            frame.output(Globals.lang("Assigned %0 entries to group \"%1\".", 
+            frame.output(Globals.lang("Assigned %0 entries to group \"%1\".",
                     String.valueOf(assignedEntries), groupName));
     }
-    
+
     JMenu moveSubmenu = new JMenu(Globals.lang("Move"));
     JMenu sortSubmenu = new JMenu(Globals.lang("Sort alphabetically")); // JZTODO lyrics
 
     public GroupTreeNode getGroupTreeRoot() {
         return groupsRoot;
     }
-    
+
     public Enumeration getExpandedPaths() {
         return groupsTree.getExpandedDescendants(
                 new TreePath(groupsRoot.getPath()));
@@ -1163,18 +1186,18 @@ public class GroupSelector extends SidePaneComponent implements
             metaData.setGroups(newGroupsRoot);
             setGroups(newGroupsRoot);
         }
-        
+
         // auto show/hide groups interface
         if (Globals.prefs.getBoolean("groupAutoShow") &&
-        		!groupsRoot.isLeaf()) { // groups were defined
+                        !groupsRoot.isLeaf()) { // groups were defined
             frame.sidePaneManager.ensureVisible("groups");
             frame.groupToggle.setSelected(true);
         } else if (Globals.prefs.getBoolean("groupAutoHide") &&
-        		groupsRoot.isLeaf()) { // groups were not defined
+                        groupsRoot.isLeaf()) { // groups were not defined
             frame.sidePaneManager.ensureNotVisible("groups");
             frame.groupToggle.setSelected(false);
         }
-        
+
         validateTree();
     }
 
@@ -1200,13 +1223,13 @@ public class GroupSelector extends SidePaneComponent implements
     public void reportError(String errorMessage, Exception exception) {
         reportError(errorMessage);
     }
-    
+
     /**
      * Highlight all groups that contain any/all of the specified entries.
-     * If entries is null, highlight is cleared. 
+     * If entries is null or has zero length, highlight is cleared.
      */
     public void showMatchingGroups(BibtexEntry[] entries, boolean requireAll) {
-        if (entries == null) { // nothing selected
+        if (entries == null || entries.length == 0) { // nothing selected
             groupsTree.setHighlight3Cells(null);
             groupsTree.revalidate();
             return;
@@ -1225,7 +1248,7 @@ public class GroupSelector extends SidePaneComponent implements
                 } else {
                     if (group.contains(entries[i]))
                         vec.add(node);
-                } 
+                }
             }
             if (requireAll && i >= entries.length) // did not break from loop
                 vec.add(node);
@@ -1239,7 +1262,7 @@ public class GroupSelector extends SidePaneComponent implements
         }
         groupsTree.revalidate();
     }
-    
+
     /** Show groups that, if selected, would show at least one
      * of the entries found in the specified search. */
     protected void showOverlappingGroups(List matches) { //DatabaseSearch search) {
@@ -1250,11 +1273,11 @@ public class GroupSelector extends SidePaneComponent implements
       Map dummyMap = new HashMap(); // just because I don't want to use null...
       for (Enumeration e = groupsRoot.depthFirstEnumeration(); e.hasMoreElements(); ) {
           node = (GroupTreeNode) e.nextElement();
-          rule = node.getSearchRule(); 
+          rule = node.getSearchRule();
           for (Iterator it = matches.iterator(); it.hasNext(); ) {
               entry = (BibtexEntry) it.next();
               if (rule.applyRule(dummyMap, entry) == 0)
-            	  continue;
+                      continue;
               vec.add(node);
               break;
           }
diff --git a/src/java/net/sf/jabref/gui/AttachFileDialog.java b/src/java/net/sf/jabref/gui/AttachFileDialog.java
index ff46ffa..21f105e 100644
--- a/src/java/net/sf/jabref/gui/AttachFileDialog.java
+++ b/src/java/net/sf/jabref/gui/AttachFileDialog.java
@@ -31,10 +31,12 @@ public class AttachFileDialog extends JDialog {
         ok = new JButton(Globals.lang("Ok")),
         cancel = new JButton(Globals.lang("Cancel"));
     BibtexEntry entry;
+    MetaData metaData;
     private boolean cancelled = true; // Default to true, so a pure close operation implies Cancel.
 
-    public AttachFileDialog(Frame parent, BibtexEntry entry, String fieldName) {
+    public AttachFileDialog(Frame parent, MetaData metaData, BibtexEntry entry, String fieldName) {
         super(parent, true);
+        this.metaData = metaData;
         this.entry = entry;
         this.fieldName = fieldName;
         this.editor = new FieldTextField(fieldName, (String)entry.getField(fieldName), false);
@@ -42,8 +44,9 @@ public class AttachFileDialog extends JDialog {
         initGui();
     }
 
-    public AttachFileDialog(Dialog parent, BibtexEntry entry, String fieldName) {
+    public AttachFileDialog(Dialog parent, MetaData metaData, BibtexEntry entry, String fieldName) {
         super(parent, true);
+        this.metaData = metaData;
         this.entry = entry;
         this.fieldName = fieldName;
         this.editor = new FieldTextField(fieldName, (String)entry.getField(fieldName), false);
@@ -61,7 +64,7 @@ public class AttachFileDialog extends JDialog {
 
     private void initGui() {
 
-        final ExternalFilePanel extPan = new ExternalFilePanel(fieldName, entry,
+        final ExternalFilePanel extPan = new ExternalFilePanel(fieldName, metaData, entry,
                       Util.getFileFilterForField(fieldName));
 
         browse.addActionListener(new ActionListener () {
diff --git a/src/java/net/sf/jabref/gui/DatabasePropertiesDialog.java b/src/java/net/sf/jabref/gui/DatabasePropertiesDialog.java
index 3b8aa1e..8fd7a7d 100644
--- a/src/java/net/sf/jabref/gui/DatabasePropertiesDialog.java
+++ b/src/java/net/sf/jabref/gui/DatabasePropertiesDialog.java
@@ -3,6 +3,8 @@ package net.sf.jabref.gui;
 import net.sf.jabref.BasePanel;
 
 import net.sf.jabref.Globals;
+import net.sf.jabref.MetaData;
+import net.sf.jabref.BrowseAction;
 
 import javax.swing.*;
 
@@ -13,6 +15,8 @@ import com.jgoodies.forms.layout.FormLayout;
 import java.awt.*;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
+import java.util.HashMap;
+import java.util.Vector;
 
 /**
  * Created by IntelliJ IDEA.
@@ -23,29 +27,47 @@ import java.awt.event.ActionEvent;
  */
 public class DatabasePropertiesDialog extends JDialog {
 
+    MetaData metaData;
     BasePanel panel = null;
-
     JComboBox encoding;
     JButton ok, cancel;
+    JTextField pdfDir = new JTextField(40), psDir = new JTextField(40);
 
     public DatabasePropertiesDialog(JFrame parent) {
         super(parent, Globals.lang("Database properties"), false);
         encoding = new JComboBox(Globals.ENCODINGS);
         ok = new JButton(Globals.lang("Ok"));
         cancel = new JButton(Globals.lang("Cancel"));
-        init();
+        init(parent);
     }
 
     public void setPanel(BasePanel panel) {
         this.panel = panel;
+        this.metaData = panel.metaData();
     }
 
-    public final void init() {
-        DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:pref", ""));
+    public final void init(JFrame parent) {
+
+        JButton browsePdf = new JButton(Globals.lang("Browse"));
+        JButton browsePs = new JButton(Globals.lang("Browse"));
+        browsePdf.addActionListener(new BrowseAction(parent, pdfDir, true));
+        browsePs.addActionListener(new BrowseAction(parent, psDir, true));
+
+        DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, left:pref, 4dlu, fill:pref", ""));
         builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+
         builder.append(Globals.lang("Database encoding"));
         builder.append(encoding);
-
+        builder.nextLine();
+        builder.appendSeparator(Globals.lang("Override default file directories"));
+        builder.nextLine();
+        builder.append(Globals.lang("PDF directory"));
+        builder.append(pdfDir);
+        builder.append(browsePdf);
+        builder.nextLine();
+        builder.append(Globals.lang("PS directory"));
+        builder.append(psDir);
+        builder.append(browsePs);
         ButtonBarBuilder bb = new ButtonBarBuilder();
         bb.addGlue();
         bb.addGridded(ok);
@@ -79,9 +101,45 @@ public class DatabasePropertiesDialog extends JDialog {
 
     public void setValues() {
         encoding.setSelectedItem(panel.getEncoding());
+
+        Vector pdfD = metaData.getData("pdfDirectory");
+        if (pdfD == null)
+            pdfDir.setText("");
+        else {
+            // Better be a little careful about how many entries the Vector has:
+            if (pdfD.size() >= 1)
+                pdfDir.setText(((String)pdfD.get(0)).trim());
+        }
+
+        Vector psD = metaData.getData("psDirectory");
+        if (psD == null)
+            psDir.setText("");
+        else {
+            // Better be a little careful about how many entries the Vector has:
+            if (psD.size() >= 1)
+                psDir.setText(((String)psD.get(0)).trim());
+        }
     }
 
     public void storeSettings() {
         panel.setEncoding((String)encoding.getSelectedItem());
+
+        Vector dir = new Vector(1);
+        String text = pdfDir.getText().trim();
+        if (text.length() > 0) {
+            dir.add(text);
+            metaData.putData("pdfDirectory", dir);
+        }
+        else
+            metaData.remove("pdfDirectory");
+
+        dir = new Vector(1);
+        text = psDir.getText().trim();
+        if (text.length() > 0) {
+            dir.add(text);
+            metaData.putData("psDirectory", dir);
+        }
+        else
+            metaData.remove("psDirectory");
     }
 }
diff --git a/src/java/net/sf/jabref/gui/EntryCustomizationDialog2.java b/src/java/net/sf/jabref/gui/EntryCustomizationDialog2.java
index 496c280..454813a 100644
--- a/src/java/net/sf/jabref/gui/EntryCustomizationDialog2.java
+++ b/src/java/net/sf/jabref/gui/EntryCustomizationDialog2.java
@@ -23,55 +23,55 @@ import java.util.Set;
 import javax.swing.event.ListDataListener;
 
 /**
- * NOTAT: 
+ * NOTAT:
  *    * S?rg for at ting oppdateres riktig ved tillegg av ny type. (velge, unng? at det blir feil innhold i listene).
- *    * 
+ *    *
  *
  *
  * @author alver
  */
 public class EntryCustomizationDialog2 extends JDialog implements ListSelectionListener, ActionListener {
-    
+
     protected JabRefFrame frame;
     protected GridBagLayout gbl = new GridBagLayout();
     protected GridBagConstraints con = new GridBagConstraints();
     protected FieldSetComponent reqComp, optComp;
     protected EntryTypeList typeComp;
     protected JButton ok, cancel, apply, helpButton, delete, importTypes, exportTypes;
-    protected final List preset = java.util.Arrays.asList(GUIGlobals.ALL_FIELDS);
+    protected final List preset = java.util.Arrays.asList(BibtexFields.getAllFieldNames());
     protected String lastSelected = null;
     protected Map reqLists = new HashMap(),
             optLists = new HashMap();
     protected Set defaulted = new HashSet(), changed = new HashSet();
-    
+
     /** Creates a new instance of EntryCustomizationDialog2 */
     public EntryCustomizationDialog2(JabRefFrame frame) {
         super(frame, Globals.lang("Customize entry types"), false);
-        
+
         this.frame = frame;
         initGui();
     }
-    
+
     protected final void initGui() {
         Container pane = getContentPane();
         pane.setLayout(new BorderLayout());
-        
+
         JPanel main = new JPanel(), buttons = new JPanel(),
                 right = new JPanel();
         main.setLayout(new BorderLayout());
         right.setLayout(new GridLayout(1, 2));
-        
+
         java.util.List entryTypes = new ArrayList();
         for (Iterator i=BibtexEntryType.ALL_TYPES.keySet().iterator(); i.hasNext();) {
             entryTypes.add(i.next());
         }
-        
+
         typeComp = new EntryTypeList(entryTypes);
         typeComp.addListSelectionListener(this);
         typeComp.addAdditionActionListener(this);
         typeComp.addDefaultActionListener(new DefaultListener());
         typeComp.setListSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-        
+
         //typeComp.setEnabled(false);
         reqComp = new FieldSetComponent(Globals.lang("Required fields"), new ArrayList(), preset, true, true);
         reqComp.setEnabled(false);
@@ -95,8 +95,8 @@ public class EntryCustomizationDialog2 extends JDialog implements ListSelectionL
         buttons.add(ok);
         buttons.add(apply);
         buttons.add(cancel);
-        
-        
+
+
         //con.fill = GridBagConstraints.BOTH;
         //con.weightx = 0.3;
         //con.weighty = 1;
@@ -108,20 +108,20 @@ public class EntryCustomizationDialog2 extends JDialog implements ListSelectionL
         pane.add(buttons, BorderLayout.SOUTH);
         pack();
     }
-    
+
     public void valueChanged(ListSelectionEvent e) {
         if (e.getValueIsAdjusting()) {
             return;
         }
-        
-        
+
+
         if (lastSelected != null) {
             // The entry type lastSelected is now unselected, so we store the current settings
             // for that type in our two maps.
             reqLists.put(lastSelected, reqComp.getFields());
             optLists.put(lastSelected, optComp.getFields());
         }
-        
+
         String s = typeComp.getFirstSelected();
         if (s == null)
             return;
@@ -140,7 +140,7 @@ public class EntryCustomizationDialog2 extends JDialog implements ListSelectionL
                     opt = java.util.Arrays.asList(of);
                 else
                     opt = new ArrayList();
-                
+
                 reqComp.setFields(req);
                 reqComp.setEnabled(true);
                 optComp.setFields(opt);
@@ -157,44 +157,44 @@ public class EntryCustomizationDialog2 extends JDialog implements ListSelectionL
             reqComp.setFields((List)rl);
             optComp.setFields((List)optLists.get(s));
         }
-        
+
         lastSelected = s;
         typeComp.enable(s, changed.contains(lastSelected) && !defaulted.contains(lastSelected));
     }
-    
+
     protected void applyChanges() {
         valueChanged(new ListSelectionEvent(new JList(), 0, 0, false));
         // Iterate over our map of required fields, and list those types if necessary:
-        
+
         List types = typeComp.getFields();
         boolean globalChangesMade = false;
         for (Iterator i=reqLists.keySet().iterator(); i.hasNext();) {
             String typeName = (String)i.next();
             if (!types.contains(typeName))
                 continue;
-           
+
             List reqFields = (List)reqLists.get(typeName);
             List optFields = (List)optLists.get(typeName);
             String[] reqStr = new String[reqFields.size()];
             reqFields.toArray(reqStr);
             String[] optStr = new String[optFields.size()];
             optFields.toArray(optStr);
-            
+
             // If this type is already existing, check if any changes have
             // been made
             boolean changesMade = true;
-            
+
             if (defaulted.contains(typeName)) {
                 // This type should be reverted to its default setup.
                 //System.out.println("Defaulting: "+typeName);
                 String nm = Util.nCase(typeName);
                 BibtexEntryType.removeType(nm);
-                
+
                 updateTypesForEntries(nm);
                 globalChangesMade = true;
                 continue;
             }
-            
+
             BibtexEntryType oldType = BibtexEntryType.getType(typeName);
             if (oldType != null) {
                 String[] oldReq = oldType.getRequiredFields(),
@@ -202,7 +202,7 @@ public class EntryCustomizationDialog2 extends JDialog implements ListSelectionL
                 if (equalArrays(oldReq, reqStr) && equalArrays(oldOpt, optStr))
                     changesMade = false;
             }
-            
+
             if (changesMade) {
                 //System.out.println("Updating: "+typeName);
                 CustomEntryType typ = new CustomEntryType(Util.nCase(typeName), reqStr, optStr);
@@ -211,8 +211,8 @@ public class EntryCustomizationDialog2 extends JDialog implements ListSelectionL
                 globalChangesMade = true;
             }
         }
-        
-        
+
+
         Set toRemove = new HashSet();
         for (Iterator i=BibtexEntryType.ALL_TYPES.keySet().iterator(); i.hasNext();) {
             Object o = i.next();
@@ -227,10 +227,10 @@ public class EntryCustomizationDialog2 extends JDialog implements ListSelectionL
             for (Iterator i=toRemove.iterator(); i.hasNext();)
                 typeDeletion((String)i.next());
         }
-        
+
         updateTables();
     }
-    
+
     protected void typeDeletion(String name) {
         BibtexEntryType type = BibtexEntryType.getType(name);
 
@@ -303,9 +303,9 @@ private void updateTypesForEntries(String typeName) {
     for (int i=0; i<frame.getTabbedPane().getTabCount(); i++) {
         BasePanel bp = (BasePanel)frame.getTabbedPane().getComponentAt(i);
         boolean anyChanges = false;
-        
+
         bp.entryEditors.remove(typeName);
-        
+
         //bp.rcm.populateTypeMenu(); // Update type menu for change type.
         base = bp.database();
         iter = base.getKeySet().iterator();
@@ -318,7 +318,7 @@ private void updateTypesForEntries(String typeName) {
                 bp.markBaseChanged();
             }*/
     }
-    
+
 }
 
 private void updateTables() {
@@ -331,7 +331,7 @@ private void updateTables() {
         BasePanel bp = (BasePanel)frame.getTabbedPane().getComponentAt(i);
         //bp.markBaseChanged();
     }
-    
+
 }
 
 // DEFAULT button pressed. Remember that this entry should be reset to default,
@@ -341,7 +341,7 @@ class DefaultListener implements ActionListener {
         if (lastSelected == null)
             return;
         defaulted.add(lastSelected);
-        
+
         BibtexEntryType type = BibtexEntryType.getStandardType(lastSelected);
         if (type != null) {
             String[] rf = type.getRequiredFields(),
@@ -355,17 +355,17 @@ class DefaultListener implements ActionListener {
                 opt = java.util.Arrays.asList(of);
             else
                 opt = new ArrayList();
-            
+
             reqComp.setFields(req);
             reqComp.setEnabled(true);
             optComp.setFields(opt);
         }
     }
-} 
+}
 
 class DataListener implements ListDataListener {
-    
- 
+
+
     public void intervalAdded(javax.swing.event.ListDataEvent e) {
         record();
     }
@@ -377,7 +377,7 @@ class DataListener implements ListDataListener {
     public void contentsChanged(javax.swing.event.ListDataEvent e) {
         record();
     }
-    
+
     private void record() {
         if (lastSelected == null)
             return;
@@ -385,6 +385,6 @@ class DataListener implements ListDataListener {
         changed.add(lastSelected);
         typeComp.enable(lastSelected, true);
     }
-    
+
 }
 }
diff --git a/src/java/net/sf/jabref/gui/FieldWeightDialog.java b/src/java/net/sf/jabref/gui/FieldWeightDialog.java
index bdd78e2..0e0d633 100644
--- a/src/java/net/sf/jabref/gui/FieldWeightDialog.java
+++ b/src/java/net/sf/jabref/gui/FieldWeightDialog.java
@@ -1,20 +1,14 @@
 package net.sf.jabref.gui;
 
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-import com.jgoodies.forms.builder.ButtonBarBuilder;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-import java.util.TreeSet;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import net.sf.jabref.GUIGlobals;
-import net.sf.jabref.Globals;
-import net.sf.jabref.JabRefFrame;
+import java.util.* ;
+
+import java.awt.* ;
+import java.awt.event.* ;
+import javax.swing.* ;
+
+import com.jgoodies.forms.builder.* ;
+import com.jgoodies.forms.layout.* ;
+import net.sf.jabref.* ;
 
 /**
  * Created by IntelliJ IDEA.
@@ -55,8 +49,9 @@ public class FieldWeightDialog extends JDialog {
         TreeSet fields = new TreeSet();
         // We use this map to remember which slider represents which field name:
         sliders.clear();
-        for (int i=0; i<GUIGlobals.ALL_FIELDS.length; i++) {
-            fields.add(GUIGlobals.ALL_FIELDS[i]);
+        for (int i=0, len=BibtexFields.numberOfPublicFields(); i<len; i++)
+        {
+            fields.add(BibtexFields.getFieldName(i));
         }
         fields.remove("bibtexkey"); // bibtex key doesn't need weight.
         // Here is the place to add other fields:
@@ -66,7 +61,7 @@ public class FieldWeightDialog extends JDialog {
         for (Iterator i=fields.iterator(); i.hasNext();) {
             String field = (String)i.next();
             builder.append(field);
-            int weight = (int)(100*GUIGlobals.getFieldWeight(field)/GUIGlobals.MAX_FIELD_WEIGHT) ;
+            int weight = (int)(100*BibtexFields.getFieldWeight(field)/GUIGlobals.MAX_FIELD_WEIGHT) ;
             //System.out.println(weight);
             JSlider slider = new JSlider(0, 100, weight);//,);
             sliders.put(slider, new SliderInfo(field, weight));
@@ -107,7 +102,7 @@ public class FieldWeightDialog extends JDialog {
             // Only list the value if it has changed:
             if (sInfo.originalValue != slider.getValue()) {
                 double weight = GUIGlobals.MAX_FIELD_WEIGHT*((double)slider.getValue())/100d;
-                GUIGlobals.setFieldWeight(sInfo.fieldName, weight);
+                BibtexFields.setFieldWeight(sInfo.fieldName, weight);
             }
         }
         frame.removeCachedEntryEditors();
diff --git a/src/java/net/sf/jabref/gui/FirstColumnComparator.java b/src/java/net/sf/jabref/gui/FirstColumnComparator.java
index 817e30f..9cb0a8d 100644
--- a/src/java/net/sf/jabref/gui/FirstColumnComparator.java
+++ b/src/java/net/sf/jabref/gui/FirstColumnComparator.java
@@ -21,11 +21,11 @@ public class FirstColumnComparator implements Comparator {
 
         int score1=0, score2=0;
 
-        if (Util.isMarked(e1))
-            score1 -= 2;
+        //if (Util.isMarked(e1))
+        //    score1 -= 2;
 
-        if (Util.isMarked(e2))
-            score2 -= 2;
+        //if (Util.isMarked(e2))
+        //    score2 -= 2;
 
         if (e1.hasAllRequiredFields())
             score1++;
diff --git a/src/java/net/sf/jabref/gui/GenFieldsCustomizer.java b/src/java/net/sf/jabref/gui/GenFieldsCustomizer.java
index 4af4e47..6126346 100644
--- a/src/java/net/sf/jabref/gui/GenFieldsCustomizer.java
+++ b/src/java/net/sf/jabref/gui/GenFieldsCustomizer.java
@@ -5,6 +5,7 @@ import java.awt.*;
 import javax.swing.*;
 import javax.swing.border.*;
 import java.awt.event.*;
+import java.util.Iterator;
 
 /**
  * <p>Title: </p>
@@ -34,18 +35,18 @@ public class GenFieldsCustomizer extends JDialog {
   JButton revert = new JButton();
   //EntryCustomizationDialog diag;
   HelpAction help;
-  
+
   public GenFieldsCustomizer(JabRefFrame frame/*, EntryCustomizationDialog diag*/) {
     super(frame, Globals.lang("Set general fields"), false);
     parent = frame;
     //this.diag = diag;
     help = new HelpAction(parent.helpDiag, GUIGlobals.generalFieldsHelp,
-	      "Help", GUIGlobals.helpSmallIconFile);
+          "Help", GUIGlobals.helpSmallIconFile);
     helpBut = new JButton(Globals.lang("Help"));
     helpBut.addActionListener(help);
     try {
       jbInit();
-      setSize(new Dimension(400, 200));
+      setSize(new Dimension(650, 300));
     }
     catch(Exception ex) {
       ex.printStackTrace();
@@ -102,14 +103,14 @@ public class GenFieldsCustomizer extends JDialog {
 
   void ok_actionPerformed(ActionEvent e) {
       String[] lines = fieldsArea.getText().split("\n");
-      int i=0;
-      for (; i<lines.length; i++) {
-	  String[] parts = lines[i].split(":");
+      int i = 0;
+      for (; i < lines.length; i++) {
+          String[] parts = lines[i].split(":");
           if (parts.length != 2) {
               // Report error and exit.
               String field = Globals.lang("field");
-              JOptionPane.showMessageDialog(this, Globals.lang("Each line must be on the following form")+" '"+
-                      Globals.lang("Tabname")+":"+field+"1;"+field+"2;...;"+field+"N'",
+              JOptionPane.showMessageDialog(this, Globals.lang("Each line must be on the following form") + " '" +
+                      Globals.lang("Tabname") + ":" + field + "1;" + field + "2;...;" + field + "N'",
                       Globals.lang("Error"), JOptionPane.ERROR_MESSAGE);
               return;
           }
@@ -117,14 +118,15 @@ public class GenFieldsCustomizer extends JDialog {
           if (!testString.equals(parts[1]) || (parts[1].indexOf('&') >= 0)) {
               // Report error and exit.
               JOptionPane.showMessageDialog(this, Globals.lang("Field names are not allowed to contain white space or the following "
-                      +"characters")+": # { } ~ , ^ &",
+                      + "characters") + ": # { } ~ , ^ &",
                       Globals.lang("Error"), JOptionPane.ERROR_MESSAGE);
-              
+
               return;
           }
-          
-	  Globals.prefs.put((Globals.prefs.CUSTOM_TAB_NAME+i), parts[0]);
-	  Globals.prefs.put((Globals.prefs.CUSTOM_TAB_FIELDS+i), parts[1].toLowerCase());
+
+          System.out.println(Globals.prefs.CUSTOM_TAB_NAME + i);
+          Globals.prefs.put((Globals.prefs.CUSTOM_TAB_NAME + i), parts[0]);
+          Globals.prefs.put((Globals.prefs.CUSTOM_TAB_FIELDS + i), parts[1].toLowerCase());
       }
       Globals.prefs.purgeSeries(Globals.prefs.CUSTOM_TAB_NAME, i);
       Globals.prefs.purgeSeries(Globals.prefs.CUSTOM_TAB_FIELDS, i);
@@ -146,35 +148,41 @@ public class GenFieldsCustomizer extends JDialog {
   }
 
     void setFieldsText() {
-	StringBuffer sb = new StringBuffer();
-	String name = null, fields = null;
-	int i=0;
-	while ((name = Globals.prefs.get(Globals.prefs.CUSTOM_TAB_NAME+i)) != null) {
-	    sb.append(name);
-	    fields = Globals.prefs.get(Globals.prefs.CUSTOM_TAB_FIELDS+i);
-	    sb.append(":");
-	    sb.append(fields);
-	    sb.append("\n");
-	    i++;
-	}
-	fieldsArea.setText(sb.toString());
+        StringBuffer sb = new StringBuffer();
+        String name = null, fields = null;
+        EntryEditorTabList tabList = Globals.prefs.getEntryEditorTabList();
+        for (int i=0; i<tabList.getTabCount(); i++) {
+            sb.append(tabList.getTabName(i));
+            sb.append(":");
+            for (Iterator j=tabList.getTabFields(i).iterator(); j.hasNext();) {
+                String field = (String)j.next();
+                sb.append(field);
+                if (j.hasNext())
+                    sb.append(";");
+            }
+            sb.append("\n");
+        }
+
+        fieldsArea.setText(sb.toString());
     }
 
-  void revert_actionPerformed(ActionEvent e) {
-      StringBuffer sb = new StringBuffer();
-      String name = null, fields = null;
-      int i=0;
-      while ((name = (String)Globals.prefs.defaults.get(Globals.prefs.CUSTOM_TAB_NAME+i)) != null) {
-	  sb.append(name);
-	  fields = (String)Globals.prefs.defaults.get(Globals.prefs.CUSTOM_TAB_FIELDS+i);
-	  sb.append(":");
-	  sb.append(fields);
-	  sb.append("\n");
-	  i++;
-      }
-      fieldsArea.setText(sb.toString());
-      //    fieldsArea.setText((String)parent.prefs.defaults.get("generalFields"));
-  }
+    void revert_actionPerformed(ActionEvent e) {
+        StringBuffer sb = new StringBuffer();
+        String name = null, fields = null;
+        int i = 0;
+        while ((name = (String) Globals.prefs.defaults.get
+                (Globals.prefs.CUSTOM_TAB_NAME + "_def" + i)) != null) {
+            sb.append(name);
+            fields = (String) Globals.prefs.defaults.get
+                    (Globals.prefs.CUSTOM_TAB_FIELDS + "_def" + i);
+            sb.append(":");
+            sb.append(fields);
+            sb.append("\n");
+            i++;
+        }
+        fieldsArea.setText(sb.toString());
+
+    }
 }
 
 class GenFieldsCustomizer_ok_actionAdapter implements java.awt.event.ActionListener {
diff --git a/src/java/net/sf/jabref/gui/GlazedEntrySorter.java b/src/java/net/sf/jabref/gui/GlazedEntrySorter.java
index f8cc5d3..a637f73 100644
--- a/src/java/net/sf/jabref/gui/GlazedEntrySorter.java
+++ b/src/java/net/sf/jabref/gui/GlazedEntrySorter.java
@@ -68,7 +68,13 @@ http://www.gnu.org/copyleft/gpl.ja.html
                 list.add(entries.get(i.next()));
             }
         }
+
+        // Sort the list so it is ordered according to creation (or read) order
+        // when the table is unsorted.
+        Collections.sort(list, new IdComparator());
+        
         list.getReadWriteLock().writeLock().unlock();
+
     }
 
     public EventList getTheList() {
diff --git a/src/java/net/sf/jabref/gui/ImportInspectionDialog.java b/src/java/net/sf/jabref/gui/ImportInspectionDialog.java
index 0e0315c..69e84f8 100644
--- a/src/java/net/sf/jabref/gui/ImportInspectionDialog.java
+++ b/src/java/net/sf/jabref/gui/ImportInspectionDialog.java
@@ -14,20 +14,22 @@ import javax.swing.*;
 import javax.swing.undo.AbstractUndoableEdit;
 import javax.swing.event.ListSelectionListener;
 import javax.swing.event.ListSelectionEvent;
-import javax.swing.table.DefaultTableModel;
-import javax.swing.table.TableModel;
-import javax.swing.table.TableColumnModel;
+import javax.swing.table.*;
 import java.util.*;
 import java.util.List;
 import java.awt.*;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
+import java.awt.event.*;
 
 import com.jgoodies.forms.builder.ButtonBarBuilder;
 import com.jgoodies.forms.builder.ButtonStackBuilder;
 import com.jgoodies.uif_lite.component.UIFSplitPane;
+import ca.odell.glazedlists.*;
+import ca.odell.glazedlists.event.ListEventListener;
+import ca.odell.glazedlists.event.ListEvent;
+import ca.odell.glazedlists.gui.TableFormat;
+import ca.odell.glazedlists.swing.TableComparatorChooser;
+import ca.odell.glazedlists.swing.EventTableModel;
+import ca.odell.glazedlists.swing.EventSelectionModel;
 
 /**
  * Created by IntelliJ IDEA.
@@ -40,16 +42,21 @@ public class ImportInspectionDialog extends JDialog {
     private ImportInspectionDialog ths = this;
     private BasePanel panel;
     private JabRefFrame frame;
+    private MetaData metaData;
     private UIFSplitPane contentPane = new UIFSplitPane(UIFSplitPane.VERTICAL_SPLIT);
-    private MyTableModel tableModel = new MyTableModel();
-    private JTable table = new MyTable(tableModel);
+    //private MyTableModel tableModel = new MyTableModel();
+    //private JTable table = new MyTable(tableModel);
+    private JTable glTable;
+    private TableComparatorChooser comparatorChooser;
+    private EventSelectionModel selectionModel;
     private String[] fields;
     private JProgressBar progressBar = new JProgressBar(JProgressBar.HORIZONTAL);
     private JButton ok = new JButton(Globals.lang("Ok")),
         cancel = new JButton(Globals.lang("Cancel")),
         generate = new JButton(Globals.lang("Generate now"));
-    private List entries = new ArrayList(),
-            entriesToDelete = new ArrayList(); // Duplicate resolving may require deletion of old entries.
+    private EventList entries = new BasicEventList();
+    private SortedList sortedList;
+    private List entriesToDelete = new ArrayList(); // Duplicate resolving may require deletion of old entries.
     private String undoName;
     private ArrayList callBacks = new ArrayList();
     private boolean newDatabase;
@@ -60,17 +67,21 @@ public class ImportInspectionDialog extends JDialog {
     private JButton stop = new JButton(Globals.lang("Stop"));
     private JButton delete = new JButton(Globals.lang("Delete"));
     private JButton help = new JButton(Globals.lang("Help"));
-    private PreviewPanel preview = new PreviewPanel(Globals.prefs.get("preview1"));
+    private PreviewPanel preview;
     private ListSelectionListener previewListener = null;
     private boolean generatedKeys = false; // Set to true after keys have been generated.
     private boolean defaultSelected = true;
     private Rectangle toRect = new Rectangle(0, 0, 1, 1);
     private Map groupAdditions = new HashMap();
-    private Icon pdfIcon = new ImageIcon(GUIGlobals.pdfIcon);
-    private Icon psIcon = new ImageIcon(GUIGlobals.psIcon);
     private JCheckBox autoGenerate = new JCheckBox(Globals.lang("Generate keys"), Globals.prefs.getBoolean("generateKeysAfterInspection"));
+    private JLabel
+        duplLabel = new JLabel(new ImageIcon(GUIGlobals.duplicateIcon)),
+        pdfLabel = new JLabel(new ImageIcon(GUIGlobals.pdfIcon)),
+        psLabel = new JLabel(new ImageIcon(GUIGlobals.psIcon)),
+        urlLabel = new JLabel(new ImageIcon(GUIGlobals.wwwIcon));
+
     private final int
-        DUPL_COL = 1,    
+        DUPL_COL = 1,
         PDF_COL = 2,
         PS_COL = 3,
         URL_COL = 4,
@@ -99,37 +110,43 @@ public class ImportInspectionDialog extends JDialog {
                                   String undoName, boolean newDatabase) {
         this.frame = frame;
         this.panel = panel;
+        this.metaData = (panel != null) ? panel.metaData() : new MetaData();
         this.fields = fields;
         this.undoName = undoName;
         this.newDatabase = newDatabase;
+        preview = new PreviewPanel(Globals.prefs.get("preview1"), metaData);
+
+        duplLabel.setToolTipText(Globals.lang("Possible duplicate of existing entry. Click to resolve."));
 
-        tableModel.addColumn(Globals.lang("Keep"));
-        tableModel.addColumn("");
-        tableModel.addColumn("");
-        tableModel.addColumn("");
-        tableModel.addColumn("");
+        sortedList = new SortedList(entries);
+        EventTableModel tableModelGl = new EventTableModel(sortedList,
+                new EntryTableFormat());
+        glTable = new EntryTable(tableModelGl);
+        GeneralRenderer renderer = new GeneralRenderer(Color.white, true);
+        glTable.setDefaultRenderer(JLabel.class, renderer);
+        glTable.setDefaultRenderer(String.class, renderer);
+        glTable.getInputMap().put(Globals.prefs.getKey("Delete"), "delete");
         DeleteListener deleteListener = new DeleteListener();
+        glTable.getActionMap().put("delete", deleteListener);
 
+        selectionModel = new EventSelectionModel(sortedList);
+        glTable.setSelectionModel(selectionModel);
+        selectionModel.getSelected().addListEventListener(new EntrySelectionListener());
+        comparatorChooser = new TableComparatorChooser(glTable, sortedList,
+                TableComparatorChooser.MULTIPLE_COLUMN_KEYBOARD);
+        setupComparatorChooser();
+        glTable.addMouseListener(new TableClickListener());
 
-        for (int i = 0; i < fields.length; i++) {
-            tableModel.addColumn(Util.nCase(fields[i]));
-        }
 
         setWidths();
-        table.setRowSelectionAllowed(true);
-        table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
-        GeneralRenderer renderer = new GeneralRenderer(Color.white, true);
-        table.setDefaultRenderer(JLabel.class, renderer);
-        table.setDefaultRenderer(String.class, renderer);
-        //table.setCellSelectionEnabled(false);
-        previewListener = new TableSelectionListener();
-        table.getSelectionModel().addListSelectionListener(previewListener);
-        table.addMouseListener(new TableClickListener());
+
         getContentPane().setLayout(new BorderLayout());
         progressBar.setIndeterminate(true);
         JPanel centerPan = new JPanel();
         centerPan.setLayout(new BorderLayout());
-        contentPane.setTopComponent(new JScrollPane(table));
+
+        //contentPane.setTopComponent(new JScrollPane(table));
+        contentPane.setTopComponent(new JScrollPane(glTable));
         contentPane.setBottomComponent(new JScrollPane(preview));
 
         centerPan.add(contentPane, BorderLayout.CENTER);
@@ -138,7 +155,7 @@ public class ImportInspectionDialog extends JDialog {
         popup.add(deleteListener);
         popup.addSeparator();
         if (!newDatabase) {
-            GroupTreeNode node = panel.metaData().getGroups();
+            GroupTreeNode node = metaData.getGroups();
             groupsAdd.setEnabled(false); // Will get enabled if there are groups that can be added to.
             insertNodes(groupsAdd, node, true);
             popup.add(groupsAdd);
@@ -213,44 +230,18 @@ public class ImportInspectionDialog extends JDialog {
      * @param entries
      */
     public void addEntries(List entries) {
-        synchronized (this.entries) {
-            for (Iterator i = entries.iterator(); i.hasNext();) {
-                BibtexEntry entry = (BibtexEntry) i.next();
-                this.entries.add(entry);
-                Object[] values = new Object[tableModel.getColumnCount()];
-                values[0] = Boolean.valueOf(defaultSelected);
-                // Add an icon for it if this entry is a duplicate of an existing entry:
-                if ((panel != null) && (Util.containsDuplicate(panel.database(), entry) != null)) {
-                    JLabel lab = new JLabel(new ImageIcon(GUIGlobals.duplicateIcon));
-                    lab.setToolTipText(Globals.lang("Possible duplicate of existing entry. Click to resolve."));
-                    values[DUPL_COL] = lab;
-                }
-                // pdf:
-                if (entry.getField("pdf") != null) {
-                    JLabel lab = new JLabel(new ImageIcon(GUIGlobals.pdfIcon));
-                    lab.setToolTipText((String) entry.getField("pdf"));
-                    values[PDF_COL] = lab;
-                } else
-                    values[PDF_COL] = null;
-                // ps:
-                if (entry.getField("ps") != null) {
-                    JLabel lab = new JLabel(new ImageIcon(GUIGlobals.psIcon));
-                    lab.setToolTipText((String) entry.getField("ps"));
-                    values[PS_COL] = lab;
-                } else
-                    values[PS_COL] = null;
-                // url:
-                if (entry.getField("url") != null) {
-                    JLabel lab = new JLabel(new ImageIcon(GUIGlobals.wwwIcon));
-                    lab.setToolTipText((String) entry.getField("url"));
-                    values[URL_COL] = lab;
-                } else
-                    values[URL_COL] = null;
-
-                for (int j = 0; j < fields.length; j++)
-                    values[PAD + j] = entry.getField(fields[j]);
-                tableModel.addRow(values);
+
+        for (Iterator i = entries.iterator(); i.hasNext();) {
+            BibtexEntry entry = (BibtexEntry) i.next();
+            // We exploit the entry's search status for indicating "Keep" status:
+            entry.setSearchHit(defaultSelected);
+            // We exploit the entry's group status for indicating duplicate status:
+            if ((panel != null) && (Util.containsDuplicate(panel.database(), entry) != null)) {
+                entry.setGroupHit(true);
             }
+            this.entries.getReadWriteLock().writeLock().lock();
+            this.entries.add(entry);
+            this.entries.getReadWriteLock().writeLock().unlock();
         }
     }
 
@@ -259,15 +250,18 @@ public class ImportInspectionDialog extends JDialog {
      * conflict with addition of new entries.
      */
     public void removeSelectedEntries() {
-        synchronized (this.entries) {
-            int[] rows = table.getSelectedRows();
-            if (rows.length > 0) {
-                for (int i = rows.length - 1; i >= 0; i--) {
-                    tableModel.removeRow(rows[i]);
-                    this.entries.remove(rows[i]);
-
-                }
-            }
+        int row = glTable.getSelectedRow();
+        List toRemove = new ArrayList();
+        toRemove.addAll(selectionModel.getSelected());
+        entries.getReadWriteLock().writeLock().lock();
+        for (Iterator i=toRemove.iterator(); i.hasNext();) {
+            entries.remove(i.next());
+        }
+        entries.getReadWriteLock().writeLock().unlock();
+        glTable.clearSelection();
+        if ((row >= 0) && (entries.size() > 0)) {
+            row = Math.min(entries.size()-1, row);
+            glTable.addRowSelectionInterval(row, row);
         }
     }
 
@@ -293,12 +287,17 @@ public class ImportInspectionDialog extends JDialog {
      */
     public List getSelectedEntries() {
         List selected = new ArrayList();
-        for (int i = 0; i < table.getRowCount(); i++) {
+        for (Iterator i=entries.iterator(); i.hasNext();) {
+            BibtexEntry entry = (BibtexEntry)i.next();
+            if (entry.isSearchHit())
+                selected.add(entry);
+        }
+        /*for (int i = 0; i < table.getRowCount(); i++) {
             Boolean sel = (Boolean) table.getValueAt(i, 0);
             if (sel.booleanValue()) {
                 selected.add(entries.get(i));
             }
-        }
+        }*/
         return selected;
     }
 
@@ -308,6 +307,7 @@ public class ImportInspectionDialog extends JDialog {
      * the database.
      */
     public void generateKeys(boolean addColumn) {
+        entries.getReadWriteLock().writeLock().lock();
         BibtexDatabase database = null;
         // Relate to the existing database, if any:
         if (panel != null)
@@ -339,21 +339,10 @@ public class ImportInspectionDialog extends JDialog {
             BibtexEntry entry = (BibtexEntry) i.next();
             database.removeEntry(entry.getId());
         }
-
-        if (addColumn) {
-            // Add a column to the table for displaying the generated keys:
-            tableModel.addColumn("Bibtexkey", keys.toArray());
-            setWidths();
-        }
+        entries.getReadWriteLock().writeLock().lock();
+        glTable.repaint();
     }
 
-    /*public void removeKeys() {
-        for (Iterator i = entries.iterator(); i.hasNext();) {
-            BibtexEntry entry = (BibtexEntry) i.next();
-            entry.setField(Globals.KEY_FIELD, null);
-        }
-        tableModel. // AAAAAAAAAAHHH no removeColumn()?????????
-    } */
 
     public void insertNodes(JMenu menu, GroupTreeNode node, boolean add) {
         final AbstractAction action = getAction(node, add);
@@ -410,24 +399,21 @@ public class ImportInspectionDialog extends JDialog {
         }
 
         public void actionPerformed(ActionEvent event) {
-            synchronized (entries) {
-                int[] rows = table.getSelectedRows();
-                if (rows.length == 0)
-                    return;
-
-                for (int i = 0; i < rows.length; i++) {
-                    BibtexEntry entry = (BibtexEntry) entries.get(rows[i]);
-                    // We store the groups this entry should be added to in a Set in the Map:
-                    Set groups = (Set) groupAdditions.get(entry);
-                    if (groups == null) {
-                        // No previous definitions, so we create the Set now:
-                        groups = new HashSet();
-                        groupAdditions.put(entry, groups);
-                    }
-                    // Add the group:
-                    groups.add(node);
+
+            selectionModel.getSelected().getReadWriteLock().writeLock().lock();
+            for (Iterator i=selectionModel.getSelected().iterator(); i.hasNext();) {
+                BibtexEntry entry = (BibtexEntry)i.next();
+                // We store the groups this entry should be added to in a Set in the Map:
+                Set groups = (Set) groupAdditions.get(entry);
+                if (groups == null) {
+                    // No previous definitions, so we create the Set now:
+                    groups = new HashSet();
+                    groupAdditions.put(entry, groups);
                 }
+                // Add the group:
+                groups.add(node);
             }
+            selectionModel.getSelected().getReadWriteLock().writeLock().unlock();
         }
     }
 
@@ -452,13 +438,17 @@ public class ImportInspectionDialog extends JDialog {
             // First check if we are supposed to warn about duplicates. If so, see if there
             // are unresolved duplicates, and warn if yes.
             if (Globals.prefs.getBoolean("warnAboutDuplicatesInInspection")) {
-                for (int i=0; i<tableModel.getRowCount(); i++) {
-                    // Only check entries that are to be imported:
-                    Boolean sel = (Boolean) table.getValueAt(i, 0);
-                    if (!sel.booleanValue())
+                for (Iterator i=entries.iterator(); i.hasNext();) {
+
+                    BibtexEntry entry = (BibtexEntry)i.next();
+                    // Only check entries that are to be imported. Keep status is indicated
+                    // through the search hit status of the entry:
+                    if (!entry.isSearchHit())
                         continue;
 
-                    if (tableModel.getValueAt(i, DUPL_COL) != null) {
+                    // Check if the entry is a suspected, unresolved, duplicate. This status
+                    // is indicated by the entry's group hit status:
+                    if (entry.isGroupHit()) {
                         CheckBoxMessage cbm = new CheckBoxMessage(
                                 Globals.lang("There are possible duplicates (marked with a 'D' icon) that haven't been resolved. Continue?"),
                                 Globals.lang("Disable this confirmation dialog"), false);
@@ -516,10 +506,14 @@ public class ImportInspectionDialog extends JDialog {
                     BibtexEntry entry = (BibtexEntry) i.next();
                     //entry.clone();
 
+                    // Remove settings to group/search hit status:
+                    entry.setSearchHit(false);
+                    entry.setGroupHit(false);
+
                     // If this entry should be added to any groups, do it now:
                     Set groups = (Set) groupAdditions.get(entry);
                     if (!groupingCanceled && (groups != null)) {
-                        if (entry.getField(Globals.KEY_FIELD) == null) {
+                        if (entry.getField(BibtexFields.KEY_FIELD) == null) {
                             // The entry has no key, so it can't be added to the group.
                             // The best course of ation is probably to ask the user if a key should be generated
                             // immediately.
@@ -533,7 +527,7 @@ public class ImportInspectionDialog extends JDialog {
                         }
 
                         // If the key was list, or has been list now, go ahead:
-                        if (entry.getField(Globals.KEY_FIELD) != null) {
+                        if (entry.getField(BibtexFields.KEY_FIELD) != null) {
                             for (Iterator i2 = groups.iterator(); i2.hasNext();) {
                                 GroupTreeNode node = (GroupTreeNode) i2.next();
                                 if (node.getGroup().supportsAdd()) {
@@ -562,7 +556,7 @@ public class ImportInspectionDialog extends JDialog {
                 ce.end();
                 panel.undoManager.addEdit(ce);
             }
-            
+
             dispose();
             SwingUtilities.invokeLater(new Thread() {
                 public void run() {
@@ -588,7 +582,7 @@ public class ImportInspectionDialog extends JDialog {
 
     private void setWidths() {
         DeleteListener deleteListener = new DeleteListener();
-        TableColumnModel cm = table.getColumnModel();
+        TableColumnModel cm = glTable.getColumnModel();
         cm.getColumn(0).setPreferredWidth(55);
         cm.getColumn(0).setMinWidth(55);
         cm.getColumn(0).setMaxWidth(55);
@@ -600,10 +594,8 @@ public class ImportInspectionDialog extends JDialog {
         }
 
         for (int i = 0; i < fields.length; i++) {
-            Object o = GUIGlobals.fieldLength.get(fields[i]);
-            int width = o == null ? GUIGlobals.DEFAULT_FIELD_LENGTH :
-                    ((Integer) o).intValue();
-            table.getColumnModel().getColumn(i + PAD).setPreferredWidth(width);
+            int width = BibtexFields.getFieldLength( fields[i]) ;
+            glTable.getColumnModel().getColumn(i + PAD).setPreferredWidth(width);
         }
     }
 
@@ -634,10 +626,9 @@ public class ImportInspectionDialog extends JDialog {
         }
     }
 
-    class DeleteListener extends JMenuItem implements ActionListener {
+    class DeleteListener extends AbstractAction implements ActionListener {
         public DeleteListener() {
-            super(Globals.lang("Delete"));
-            addActionListener(this);
+            super(Globals.lang("Delete"), new ImageIcon(GUIGlobals.removeIconFile));
         }
 
         public void actionPerformed(ActionEvent event) {
@@ -676,55 +667,70 @@ public class ImportInspectionDialog extends JDialog {
         }
 
         public void actionPerformed(ActionEvent event) {
-            for (int i = 0; i < table.getRowCount(); i++) {
-                table.setValueAt(enable, i, 0);
+            for (int i = 0; i < glTable.getRowCount(); i++) {
+                glTable.setValueAt(enable, i, 0);
             }
+            glTable.repaint();
         }
     }
 
-    class TableSelectionListener implements ListSelectionListener {
-        public void valueChanged(ListSelectionEvent event) {
-            if (event.getValueIsAdjusting())
-                return;
-            if (table.getSelectedRowCount() > 1)
-                return; // No soup for you!
-            int row = table.getSelectedRow();
-            if (row < 0)
-                return;
-            preview.setEntry((BibtexEntry) entries.get(row));
-            contentPane.setDividerLocation(0.5f);
-            SwingUtilities.invokeLater(new Runnable() {
-                public void run() {
-                    preview.scrollRectToVisible(toRect);
-                }
-            });
+    class EntrySelectionListener implements ListEventListener {
 
+        public void listChanged(ListEvent listEvent) {
+            if (listEvent.getSourceList().size() == 1) {
+                preview.setEntry((BibtexEntry) listEvent.getSourceList().get(0));
+                contentPane.setDividerLocation(0.5f);
+                SwingUtilities.invokeLater(new Runnable() {
+                    public void run() {
+                        preview.scrollRectToVisible(toRect);
+                    }
+                });
+            }
         }
-
     }
 
+
     /**
      * This class handles clicks on the table that should trigger specific
      * events, like opening the popup menu.
      */
-    class TableClickListener extends MouseAdapter {
-        public void mousePressed(MouseEvent e) {
+    class TableClickListener implements MouseListener {
+
+        public void mouseClicked(MouseEvent e) {
+
+        }
+
+        public void mouseEntered(MouseEvent e) {
+
+        }
+
+        public void mouseExited(MouseEvent e) {
+
+        }
+
+        public void mouseReleased(MouseEvent e) {
+            // Check if the user has right-clicked. If so, open the right-click menu.
+            if (e.isPopupTrigger()) {
+                int[] rows = glTable.getSelectedRows();
+                popup.show(glTable, e.getX(), e.getY());
+                return;
+            }
+        }
 
+        public void mousePressed(MouseEvent e) {
             // Check if the user has right-clicked. If so, open the right-click menu.
             if (e.isPopupTrigger()) {
-                //if ( (e.getButton() == MouseEvent.BUTTON3) ||
-                //     (ctrlClick && (e.getButton() == MouseEvent.BUTTON1) && e.isControlDown())) {
-                int[] rows = table.getSelectedRows();
-                popup.show(table, e.getX(), e.getY());
+                int[] rows = glTable.getSelectedRows();
+                popup.show(glTable, e.getX(), e.getY());
                 return;
             }
 
             // Check if any other action should be taken:
-            final int col = table.columnAtPoint(e.getPoint()),
-              row = table.rowAtPoint(e.getPoint());
+            final int col = glTable.columnAtPoint(e.getPoint()),
+              row = glTable.rowAtPoint(e.getPoint());
             // Is this the duplicate icon column, and is there an icon?
-            if ((col == DUPL_COL) && (tableModel.getValueAt(row, col) != null)) {
-                BibtexEntry first = (BibtexEntry)entries.get(row);
+            if ((col == DUPL_COL) && (glTable.getValueAt(row, col) != null)) {
+                BibtexEntry first = (BibtexEntry)sortedList.get(row);
                 BibtexEntry other = Util.containsDuplicate(panel.database(), first);
                 if (other != null) { // This should be true since the icon is displayed...
                     DuplicateResolverDialog diag = new DuplicateResolverDialog(frame, other, first, DuplicateResolverDialog.INSPECTION);
@@ -735,16 +741,22 @@ public class ImportInspectionDialog extends JDialog {
                         // Remove old entry. Or... add it to a list of entries to be deleted. We only delete
                         // it after Ok is clicked.
                         entriesToDelete.add(other);
-                        tableModel.setValueAt(null, row, col); // Clear duplicate icon.
+                        // Clear duplicate icon, which is controlled by the group hit
+                        // field of the entry:
+                        entries.getReadWriteLock().writeLock().lock();
+                        first.setGroupHit(false);
+                        entries.getReadWriteLock().writeLock().unlock();
+
                     } else if (diag.getSelected() == DuplicateResolverDialog.KEEP_LOWER) {
                         // Remove the entry from the import inspection dialog.
-                        synchronized (entries) {
-                            tableModel.removeRow(row);
-                            entries.remove(row);
-                        }
+                        entries.getReadWriteLock().writeLock().lock();
+                        entries.remove(first);
+                        entries.getReadWriteLock().writeLock().unlock();
                     } else if (diag.getSelected() == DuplicateResolverDialog.KEEP_BOTH) {
                         // Do nothing.
-                        tableModel.setValueAt(null, row, col); // Clear duplicate icon.
+                        entries.getReadWriteLock().writeLock().lock();
+                        first.setGroupHit(false);
+                        entries.getReadWriteLock().writeLock().unlock();
                     }
                 }
             }
@@ -758,23 +770,20 @@ public class ImportInspectionDialog extends JDialog {
         }
 
         public void actionPerformed(ActionEvent event) {
-            int[] rows = table.getSelectedRows();
-            if (rows.length != 1)
+            if (selectionModel.getSelected().size() != 1)
                 return;
-            BibtexEntry entry = (BibtexEntry) entries.get(rows[0]);
+            BibtexEntry entry = (BibtexEntry) selectionModel.getSelected().get(0);
             String result = JOptionPane.showInputDialog(ths, Globals.lang("Enter URL"), entry.getField("url"));
+            entries.getReadWriteLock().writeLock().lock();
             if (result != null) {
                 if (result.equals("")) {
                     entry.clearField("url");
-                    tableModel.setValueAt(null, rows[0], 3);
                 } else {
                     entry.setField("url", result);
-                    JLabel lab = new JLabel(new ImageIcon(GUIGlobals.wwwIcon));
-                    lab.setToolTipText(result);
-                    tableModel.setValueAt(lab, rows[0], 3);
                 }
             }
-
+            entries.getReadWriteLock().writeLock().unlock();
+            glTable.repaint();
         }
     }
 
@@ -789,26 +798,20 @@ public class ImportInspectionDialog extends JDialog {
         }
 
         public void actionPerformed(ActionEvent event) {
-            int[] rows = table.getSelectedRows();
-            if (rows.length != 1)
+
+            if (selectionModel.getSelected().size() != 1)
                 return;
-            BibtexEntry entry = (BibtexEntry) entries.get(rows[0]);
+            BibtexEntry entry = (BibtexEntry) selectionModel.getSelected().get(0);
             // Call up a dialog box that provides Browse, Download and auto buttons:
-            AttachFileDialog diag = new AttachFileDialog(ths, entry, fileType);
+            AttachFileDialog diag = new AttachFileDialog(ths, metaData, entry, fileType);
             Util.placeDialog(diag, ths);
             diag.setVisible(true);
             // After the dialog has closed, if it wasn't cancelled, list the field:
             if (!diag.cancelled()) {
+                entries.getReadWriteLock().writeLock().lock();
                 entry.setField(fileType, diag.getValue());
-                // Add a marker to the table:
-                int column = (fileType.equals("pdf") ? PDF_COL : PS_COL);
-                JLabel lab = new JLabel(new ImageIcon((column == PDF_COL ? GUIGlobals.pdfIcon
-                        : GUIGlobals.psIcon)));
-                lab.setToolTipText((String) entry.getField(fileType));
-                tableModel.setValueAt(lab, rows[0], column);
-                //tableModel.setValueAt((fileType.equals("pdf") ? pdfIcon : psIcon), rows[0], 1);
-
-                //tableModel.setValueAt(entry.getField(fileType), rows[0], column);
+                entries.getReadWriteLock().writeLock().unlock();
+                glTable.repaint();
             }
 
         }
@@ -828,4 +831,138 @@ public class ImportInspectionDialog extends JDialog {
         // will stop after this method is called.
         public void stopFetching();
     }
+
+
+    private void setupComparatorChooser() {
+        // First column:
+        java.util.List comparators = comparatorChooser.getComparatorsForColumn(0);
+        comparators.clear();
+
+        comparators = comparatorChooser.getComparatorsForColumn(1);
+        comparators.clear();
+
+        // Icon columns:
+        for (int i = 2; i < PAD; i++) {
+            comparators = comparatorChooser.getComparatorsForColumn(i);
+            comparators.clear();
+            if (i == PDF_COL)
+                comparators.add(new IconComparator(new String[] {"pdf"}));
+            else if (i == PS_COL)
+                comparators.add(new IconComparator(new String[] {"ps"}));
+            else if (i == URL_COL)
+                comparators.add(new IconComparator(new String[] {"url"}));
+
+        }
+        // Remaining columns:
+        for (int i = PAD; i < PAD+fields.length; i++) {
+            comparators = comparatorChooser.getComparatorsForColumn(i);
+            comparators.clear();
+            comparators.add(new FieldComparator(fields[i-PAD]));
+        }
+
+        // Set initial sort columns:
+
+        /*// Default sort order:
+        String[] sortFields = new String[] {Globals.prefs.get("priSort"), Globals.prefs.get("secSort"),
+            Globals.prefs.get("terSort")};
+        boolean[] sortDirections = new boolean[] {Globals.prefs.getBoolean("priDescending"),
+            Globals.prefs.getBoolean("secDescending"), Globals.prefs.getBoolean("terDescending")}; // descending
+        */
+        sortedList.getReadWriteLock().writeLock().lock();
+        comparatorChooser.appendComparator(PAD, 0, false);
+        sortedList.getReadWriteLock().writeLock().unlock();
+
+    }
+
+    class EntryTable extends JTable {
+        GeneralRenderer renderer = new GeneralRenderer(Color.white, true);
+        public EntryTable(TableModel model) {
+            super(model);
+        }
+        public TableCellRenderer getCellRenderer(int row, int column) {
+            return column == 0 ? getDefaultRenderer(Boolean.class) : renderer;
+        }
+
+        /*public TableCellEditor getCellEditor() {
+            return getDefaultEditor(Boolean.class);
+        } */
+
+        public Class getColumnClass(int col) {
+            if (col == 0)
+                return Boolean.class;
+            else if (col < PAD)
+                return JLabel.class;
+            else return String.class;
+        }
+
+        public boolean isCellEditable(int row, int column) {
+            return column == 0;
+        }
+
+        public void setValueAt(Object value, int row, int column) {
+            // Only column 0, which is controlled by BibtexEntry.searchHit, is editable:
+            entries.getReadWriteLock().writeLock().lock();
+            BibtexEntry entry = (BibtexEntry)sortedList.get(row);
+            entry.setSearchHit(((Boolean)value).booleanValue());
+            entries.getReadWriteLock().writeLock().unlock();
+        }
+    }
+
+    class EntryTableFormat implements TableFormat {
+        public int getColumnCount() {
+            return PAD+fields.length;
+        }
+
+        public String getColumnName(int i) {
+            if (i == 0)
+                return Globals.lang("Keep");
+            if (i >= PAD) {
+                return Util.nCase(fields[i-PAD]);
+            }
+            return "";
+        }
+
+        public Object getColumnValue(Object object, int i) {
+            BibtexEntry entry = (BibtexEntry)object;
+            if (i == 0)
+                return entry.isSearchHit() ? Boolean.TRUE : Boolean.FALSE;
+            else if (i < PAD) {
+                Object o;
+                switch (i) {
+                    case DUPL_COL: return entry.isGroupHit() ?  duplLabel : null;
+                    case PDF_COL:
+                        o = entry.getField("pdf");
+                        if (o != null) {
+                            pdfLabel.setToolTipText((String)o);
+                            return pdfLabel;
+                        } else return null;
+
+                    case PS_COL:
+                        o = entry.getField("ps");
+                        if (o != null) {
+                            psLabel.setToolTipText((String)o);
+                            return psLabel;
+                        } else return null;
+                    case URL_COL:
+                        o = entry.getField("url");
+                        if (o != null) {
+                            urlLabel.setToolTipText((String)o);
+                            return urlLabel;
+                        } else return null;
+                    default: return null;
+                }
+            }
+            else {
+                String field = fields[i-PAD];
+                if (field.equals("author") || field.equals("editor")) {
+                    String contents = (String)entry.getField(field);
+                    return (contents != null) ?
+                        AuthorList.fixAuthor_Natbib(contents) : "";
+                }
+                else
+                    return entry.getField(field);
+            }
+        }
+
+    }
 }
diff --git a/src/java/net/sf/jabref/gui/FirstColumnComparator.java b/src/java/net/sf/jabref/gui/IsMarkedComparator.java
similarity index 57%
copy from src/java/net/sf/jabref/gui/FirstColumnComparator.java
copy to src/java/net/sf/jabref/gui/IsMarkedComparator.java
index 817e30f..4c5e170 100644
--- a/src/java/net/sf/jabref/gui/FirstColumnComparator.java
+++ b/src/java/net/sf/jabref/gui/IsMarkedComparator.java
@@ -12,28 +12,17 @@ import java.util.Comparator;
  * Time: 8:25:15 PM
  * To change this template use File | Settings | File Templates.
  */
-public class FirstColumnComparator implements Comparator {
+public class IsMarkedComparator implements Comparator {
 
     public int compare(Object o1, Object o2) {
 
         BibtexEntry e1 = (BibtexEntry)o1,
                  e2 = (BibtexEntry)o2;
 
-        int score1=0, score2=0;
-
         if (Util.isMarked(e1))
-            score1 -= 2;
-
-        if (Util.isMarked(e2))
-            score2 -= 2;
-
-        if (e1.hasAllRequiredFields())
-            score1++;
-
-        if (e2.hasAllRequiredFields())
-            score2++;
+            return Util.isMarked(e2) ? 0 : -1;
 
-        return score1-score2;
+        else return Util.isMarked(e2) ? 1 : 0;
     }
 
 }
diff --git a/src/java/net/sf/jabref/gui/MainTable.java b/src/java/net/sf/jabref/gui/MainTable.java
index 2b7561b..137cb50 100644
--- a/src/java/net/sf/jabref/gui/MainTable.java
+++ b/src/java/net/sf/jabref/gui/MainTable.java
@@ -33,12 +33,13 @@ import java.util.Comparator;
  */
 public class MainTable extends JTable {
     private MainTableFormat tableFormat;
-    private SortedList sortedForTable, sortedForSearch, sortedForGrouping;
+    private SortedList sortedForMarking, sortedForTable, sortedForSearch, sortedForGrouping;
     private boolean tableColorCodes, showingFloatSearch=false, showingFloatGrouping=false;
     private EventSelectionModel selectionModel;
     private TableComparatorChooser comparatorChooser;
     private JScrollPane pane;
-    private Comparator searchComparator, groupComparator;
+    private Comparator searchComparator, groupComparator,
+            markingComparator = new IsMarkedComparator();
     private Matcher searchMatcher, groupMatcher;
     public static final int REQUIRED = 1
     ,
@@ -56,8 +57,10 @@ public class MainTable extends JTable {
         // This SortedList has a Comparator controlled by the TableComparatorChooser
         // we are going to install, which responds to user sorting selctions:
         sortedForTable = new SortedList(list, null);
+        // This SortedList applies afterwards, and floats marked entries:
+        sortedForMarking = new SortedList(sortedForTable, null);
         // This SortedList applies afterwards, and can float search hits:
-        sortedForSearch = new SortedList(sortedForTable, null);
+        sortedForSearch = new SortedList(sortedForMarking, null);
         // This SortedList applies afterwards, and can float grouping hits:
         sortedForGrouping = new SortedList(sortedForSearch, null);
 
@@ -92,6 +95,9 @@ public class MainTable extends JTable {
     }
 
     public void refreshSorting() {
+        sortedForMarking.getReadWriteLock().writeLock().lock();
+        sortedForMarking.setComparator(markingComparator);
+        sortedForMarking.getReadWriteLock().writeLock().unlock();
         sortedForSearch.getReadWriteLock().writeLock().lock();
         sortedForSearch.setComparator(searchComparator);
         sortedForSearch.getReadWriteLock().writeLock().unlock();
@@ -109,6 +115,7 @@ public class MainTable extends JTable {
         searchMatcher = m;
         searchComparator = new HitOrMissComparator(m);
         refreshSorting();
+        scrollTo(0);
     }
 
     /**
@@ -179,7 +186,7 @@ public class MainTable extends JTable {
                 renderer = grayedOutNumberRenderer;
             } else renderer = grayedOutRenderer;
         }
-        
+
         else if (column == 0) {
             // Return a renderer with red background if the entry is incomplete.
             if (!isComplete(row)) {
@@ -288,7 +295,7 @@ public class MainTable extends JTable {
             BibtexEntry be = (BibtexEntry)sortedForGrouping.get(row);
             BibtexEntryType type = be.getType();
             String columnName = tableFormat.getColumnName(col).toLowerCase();
-            if (columnName.equals(GUIGlobals.KEY_FIELD) || type.isRequired(columnName)) {
+            if (columnName.equals(BibtexFields.KEY_FIELD) || type.isRequired(columnName)) {
                 return REQUIRED;
             }
             if (type.isOptional(columnName)) {
diff --git a/src/java/net/sf/jabref/gui/MainTableFormat.java b/src/java/net/sf/jabref/gui/MainTableFormat.java
index 66828f6..028c2b0 100644
--- a/src/java/net/sf/jabref/gui/MainTableFormat.java
+++ b/src/java/net/sf/jabref/gui/MainTableFormat.java
@@ -54,8 +54,14 @@ public class MainTableFormat implements TableFormat {
             return GUIGlobals.NUMBER_COL;
         } else if (getIconTypeForColumn(col) != null) {
             return "";
-        } else if (GUIGlobals.FIELD_DISPLAYS.get(columns[col - padleft]) != null) {
-            return ((String) GUIGlobals.FIELD_DISPLAYS.get(columns[col - padleft]));
+        }
+        else // try to find an alternative fieldname (for display)
+        {
+          String disName = BibtexFields.getFieldDisplayName(columns[col - padleft]) ;
+          if ( disName != null)
+          {
+            return disName ;
+          }
         }
         return Util.nCase(columns[col - padleft]);
     }
@@ -76,7 +82,7 @@ public class MainTableFormat implements TableFormat {
     /**
      * Finds the column index for the given column name.
      * @param colName The column name
-     * @return The column index if any, or -1 if no column has that name. 
+     * @return The column index if any, or -1 if no column has that name.
      */
     public int getColumnIndex(String colName) {
         for (int i=0; i<columns.length; i++) {
@@ -193,7 +199,7 @@ public class MainTableFormat implements TableFormat {
     }
 
     static class SearchMatcher implements Matcher {
-        private String field = Globals.SEARCH;
+        private String field = BibtexFields.SEARCH;
         private SearchRuleSet ruleSet;
         private Hashtable searchOptions;
 
diff --git a/src/java/net/sf/jabref/gui/MainTableSelectionListener. b/src/java/net/sf/jabref/gui/MainTableSelectionListener.
deleted file mode 100644
index 326c49f..0000000
--- a/src/java/net/sf/jabref/gui/MainTableSelectionListener.
+++ /dev/null
@@ -1,268 +0,0 @@
-package net.sf.jabref.gui;
-
-import ca.odell.glazedlists.event.ListEventListener;
-import ca.odell.glazedlists.event.ListEvent;
-import ca.odell.glazedlists.EventList;
-import net.sf.jabref.*;
-
-import javax.swing.*;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseEvent;
-import java.io.IOException;
-
-/**
- * Created by IntelliJ IDEA.
- * User: alver
- * Date: Oct 15, 2005
- * Time: 3:02:52 AM
- * To change this template use File | Settings | File Templates.
- */
-public class MainTableSelectionListener implements ListEventListener, MouseListener {
-
-    PreviewPanel[] previewPanel = null;
-    int activePreview = 1;
-    PreviewPanel preview;
-    MainTable table;
-    BasePanel panel;
-    EventList tableRows;
-    private boolean previewActive = Globals.prefs.getBoolean("previewEnabled");
-    private boolean workingOnPreview = false;
-
-    public MainTableSelectionListener(BasePanel panel, MainTable table) {
-        this.table = table;
-        this.panel = panel;
-        this.tableRows = table.getTableRows();
-        instantiatePreviews();
-        this.preview = previewPanel[activePreview];
-    }
-
-    private void instantiatePreviews() {
-        previewPanel = new PreviewPanel[]
-                {new PreviewPanel(panel.database(), Globals.prefs.get("preview0")),
-                        new PreviewPanel(panel.database(), Globals.prefs.get("preview1"))};
-        BibtexEntry testEntry = PreviewPrefsTab.getTestEntry();
-        previewPanel[0].setEntry(testEntry);
-        previewPanel[1].setEntry(testEntry);
-    }
-
-    public void updatePreviews() {
-        try {
-            previewPanel[0].readLayout(Globals.prefs.get("preview0"));
-            previewPanel[1].readLayout(Globals.prefs.get("preview1"));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void listChanged(ListEvent e) {
-        //System.out.println(e);
-        EventList selected = e.getSourceList();
-        Object newSelected = null;
-        while (e.next()) {
-            if (e.getType() == ListEvent.INSERT) {
-                if (newSelected != null)
-                    return; // More than one new selected. Do nothing.
-                else {
-                    if (e.getIndex() < selected.size())
-                        newSelected = selected.get(e.getIndex());
-                }
-
-            }
-        }
-
-
-        if (newSelected != null) {
-
-            // Ok, we have a single new entry that has been selected. Now decide what to do with it:
-            final BibtexEntry toShow = (BibtexEntry) newSelected;
-            final int mode = panel.getMode(); // What is the panel already showing?
-            if ((mode == BasePanel.WILL_SHOW_EDITOR) || (mode == BasePanel.SHOWING_EDITOR)) {
-                // An entry is currently being edited.
-                EntryEditor oldEditor = panel.getCurrentEditor();
-                // Get an old or new editor for the entry to edit:
-                EntryEditor newEditor = panel.getEntryEditor(toShow);
-                // Show the new editor unless it was already visible:
-                if ((newEditor != oldEditor) || (mode != BasePanel.SHOWING_EDITOR)) {
-                    panel.showEntryEditor(newEditor);
-                }
-            } else {
-                // Either nothing or a preview was shown. Update the preview.
-                if (previewActive) {
-                    updatePreview(toShow, false);
-                }
-
-            }
-        }
-
-    }
-
-    private void updatePreview(final BibtexEntry toShow, final boolean changedPreview) {
-        if (workingOnPreview)
-            return;
-        final int mode = panel.getMode();
-        workingOnPreview = true;
-        final Runnable update = new Runnable() {
-            public void run() {
-                // If nothing was already shown, set the preview and move the separator:
-                if (changedPreview || (mode == BasePanel.SHOWING_NOTHING)) {
-                    panel.showPreview(preview);
-                    panel.adjustSplitter();
-                }
-                workingOnPreview = false;
-            }
-        };
-        final Runnable worker = new Runnable() {
-            public void run() {
-                preview.setEntry(toShow);
-                SwingUtilities.invokeLater(update);
-            }
-        };
-        (new Thread(worker)).start();
-    }
-
-    public void editSignalled() {
-        if (table.getSelected().size() == 1) {
-            editSignalled((BibtexEntry) table.getSelected().get(0));
-        }
-    }
-
-    public void editSignalled(BibtexEntry entry) {
-        final int mode = panel.getMode();
-        EntryEditor editor = panel.getEntryEditor(entry);
-        if (mode != BasePanel.SHOWING_EDITOR) {
-            panel.showEntryEditor(editor);
-            panel.adjustSplitter();
-        }
-        new FocusRequester(editor);
-    }
-
-    public void mouseReleased(MouseEvent e) {
-        // First find the column on which the user has clicked.
-        final int col = table.columnAtPoint(e.getPoint()),
-                row = table.rowAtPoint(e.getPoint());
-        // Check if the user has right-clicked. If so, open the right-click menu.
-        if (e.isPopupTrigger()) {
-            processPopupTrigger(e, row, col);
-            return;
-        }
-    }
-
-    protected void processPopupTrigger(MouseEvent e, int row, int col) {
-        int selRow = table.getSelectedRow();
-        if (selRow == -1 ||// (getSelectedRowCount() == 0))
-                !table.isRowSelected(table.rowAtPoint(e.getPoint()))) {
-            table.setRowSelectionInterval(row, row);
-            //panel.updateViewToSelected();
-        }
-        RightClickMenu rightClickMenu = new RightClickMenu(panel, panel.metaData());
-        rightClickMenu.show(table, e.getX(), e.getY());
-    }
-
-    public void mousePressed(MouseEvent e) {
-
-        // First find the column on which the user has clicked.
-        final int col = table.columnAtPoint(e.getPoint()),
-                row = table.rowAtPoint(e.getPoint());
-
-        // A double click on an entry should open the entry's editor.
-        if (e.getClickCount() == 2) {
-
-            BibtexEntry toShow = (BibtexEntry) tableRows.get(row);
-            editSignalled(toShow);
-        }
-
-        // Check if the user has right-clicked. If so, open the right-click menu.
-        if (e.isPopupTrigger()) {
-            processPopupTrigger(e, row, col);
-            return;
-        }
-
-        // Check if the user has clicked on an icon cell to open url or pdf.
-        final String[] iconType = table.getIconTypeForColumn(col);
-        if (iconType != null) {
-
-            Object value = table.getValueAt(row, col);
-            if (value == null) return; // No icon here, so we do nothing.
-
-            final BibtexEntry entry = (BibtexEntry) tableRows.get(row);
-
-            // Get the icon type. Corresponds to the field name.
-            int hasField = -1;
-            for (int i = iconType.length - 1; i >= 0; i--)
-                if (entry.getField(iconType[i]) != null)
-                    hasField = i;
-            if (hasField == -1)
-                return;
-            final String fieldName = iconType[hasField];
-
-            // Open it now. We do this in a thread, so the program won't freeze during the wait.
-            (new Thread() {
-                public void run() {
-                    panel.output(Globals.lang("External viewer called") + ".");
-
-                    Object link = entry.getField(fieldName);
-                    if (iconType == null) {
-                        Globals.logger("Error: no link to " + fieldName + ".");
-                        return; // There is an icon, but the field is not set.
-                    }
-
-                    try {
-                        Util.openExternalViewer((String) link, fieldName, Globals.prefs);
-                    }
-                    catch (IOException ex) {
-                        panel.output(Globals.lang("Error") + ": " + ex.getMessage());
-                    }
-                }
-
-            }).start();
-        }
-    }
-
-    public void entryEditorClosing(EntryEditor editor) {
-        preview.setEntry(editor.getEntry());
-        if (previewActive)
-            panel.showPreview(preview);
-        else
-            panel.hideBottomComponent();
-        panel.adjustSplitter();
-        new FocusRequester(table);
-    }
-
-
-    public void mouseClicked(MouseEvent e) {
-
-    }
-
-    public void mouseEntered(MouseEvent e) {
-
-    }
-
-    public void mouseExited(MouseEvent e) {
-
-    }
-
-    public void setPreviewActive(boolean enabled) {
-        previewActive = enabled;
-        if (!previewActive) {
-            panel.hideBottomComponent();
-        } else {
-            if (table.getSelected().size() > 0 ) {
-                updatePreview((BibtexEntry) table.getSelected().get(0), false);
-            }
-        }
-    }
-
-    public void switchPreview() {
-        if (activePreview < previewPanel.length - 1)
-            activePreview++;
-        else
-            activePreview = 0;
-        if (previewActive) {
-            this.preview = previewPanel[activePreview];
-
-            if (table.getSelected().size() > 0) {
-                updatePreview((BibtexEntry) table.getSelected().get(0), true);
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/jabref/gui/MainTableSelectionListener.java b/src/java/net/sf/jabref/gui/MainTableSelectionListener.java
index 326c49f..53227ce 100644
--- a/src/java/net/sf/jabref/gui/MainTableSelectionListener.java
+++ b/src/java/net/sf/jabref/gui/MainTableSelectionListener.java
@@ -4,6 +4,7 @@ import ca.odell.glazedlists.event.ListEventListener;
 import ca.odell.glazedlists.event.ListEvent;
 import ca.odell.glazedlists.EventList;
 import net.sf.jabref.*;
+import net.sf.jabref.external.ExternalFileMenuItem;
 
 import javax.swing.*;
 import java.awt.event.MouseListener;
@@ -38,8 +39,8 @@ public class MainTableSelectionListener implements ListEventListener, MouseListe
 
     private void instantiatePreviews() {
         previewPanel = new PreviewPanel[]
-                {new PreviewPanel(panel.database(), Globals.prefs.get("preview0")),
-                        new PreviewPanel(panel.database(), Globals.prefs.get("preview1"))};
+                {new PreviewPanel(panel.database(), panel.metaData(), Globals.prefs.get("preview0")),
+                        new PreviewPanel(panel.database(), panel.metaData(), Globals.prefs.get("preview1"))};
         BibtexEntry testEntry = PreviewPrefsTab.getTestEntry();
         previewPanel[0].setEntry(testEntry);
         previewPanel[1].setEntry(testEntry);
@@ -142,23 +143,13 @@ public class MainTableSelectionListener implements ListEventListener, MouseListe
                 row = table.rowAtPoint(e.getPoint());
         // Check if the user has right-clicked. If so, open the right-click menu.
         if (e.isPopupTrigger()) {
-            processPopupTrigger(e, row, col);
+            processPopupTrigger(e, row);
             return;
         }
     }
 
-    protected void processPopupTrigger(MouseEvent e, int row, int col) {
-        int selRow = table.getSelectedRow();
-        if (selRow == -1 ||// (getSelectedRowCount() == 0))
-                !table.isRowSelected(table.rowAtPoint(e.getPoint()))) {
-            table.setRowSelectionInterval(row, row);
-            //panel.updateViewToSelected();
-        }
-        RightClickMenu rightClickMenu = new RightClickMenu(panel, panel.metaData());
-        rightClickMenu.show(table, e.getX(), e.getY());
-    }
+     public void mousePressed(MouseEvent e) {
 
-    public void mousePressed(MouseEvent e) {
 
         // First find the column on which the user has clicked.
         final int col = table.columnAtPoint(e.getPoint()),
@@ -171,14 +162,20 @@ public class MainTableSelectionListener implements ListEventListener, MouseListe
             editSignalled(toShow);
         }
 
+        // Check if the user has clicked on an icon cell to open url or pdf.
+        final String[] iconType = table.getIconTypeForColumn(col);
+
         // Check if the user has right-clicked. If so, open the right-click menu.
         if (e.isPopupTrigger()) {
-            processPopupTrigger(e, row, col);
+            if (iconType == null)
+                processPopupTrigger(e, row);
+            else
+                showIconRightClickMenu(e, row, iconType);
+
             return;
         }
 
-        // Check if the user has clicked on an icon cell to open url or pdf.
-        final String[] iconType = table.getIconTypeForColumn(col);
+
         if (iconType != null) {
 
             Object value = table.getValueAt(row, col);
@@ -207,7 +204,7 @@ public class MainTableSelectionListener implements ListEventListener, MouseListe
                     }
 
                     try {
-                        Util.openExternalViewer((String) link, fieldName, Globals.prefs);
+                        Util.openExternalViewer(panel.metaData(), (String)link, fieldName);
                     }
                     catch (IOException ex) {
                         panel.output(Globals.lang("Error") + ": " + ex.getMessage());
@@ -218,6 +215,53 @@ public class MainTableSelectionListener implements ListEventListener, MouseListe
         }
     }
 
+    /**
+     * Process general right-click events on the table. Show the table context menu at
+     * the position where the user right-clicked.
+     * @param e The mouse event defining the popup trigger.
+     * @param row The row where the event occured.
+     */
+    protected void processPopupTrigger(MouseEvent e, int row) {
+         int selRow = table.getSelectedRow();
+         if (selRow == -1 ||// (getSelectedRowCount() == 0))
+                 !table.isRowSelected(table.rowAtPoint(e.getPoint()))) {
+             table.setRowSelectionInterval(row, row);
+             //panel.updateViewToSelected();
+         }
+         RightClickMenu rightClickMenu = new RightClickMenu(panel, panel.metaData());
+         rightClickMenu.show(table, e.getX(), e.getY());
+     }
+
+    /**
+     * Process popup trigger events occuring on an icon cell in the table. Show
+     * a menu where the user can choose which external resource to open for the
+     * entry. If no relevant external resources exist, let the normal popup trigger
+     * handler do its thing instead.
+     * @param e The mouse event defining this popup trigger.
+     * @param row The row where the event occured.
+     * @param iconType A string array containing the resource fields associated with
+     *  this table cell.
+     */
+    private void showIconRightClickMenu(MouseEvent e, int row, String[] iconType) {
+        BibtexEntry entry = (BibtexEntry) tableRows.get(row);
+        JPopupMenu menu = new JPopupMenu();
+        int count = 0;
+        for (int i=0; i<iconType.length; i++) {
+            Object o = entry.getField(iconType[i]);
+            if (o != null) {
+                menu.add(new ExternalFileMenuItem((String)o, (String)o,
+                        GUIGlobals.getTableIcon(iconType[i]).getIcon(),
+                        panel.metaData()));
+                count++;
+            }
+        }
+        if (count == 0) {
+            processPopupTrigger(e, row);
+            return;
+        }
+        menu.show(table, e.getX(), e.getY());
+    }
+
     public void entryEditorClosing(EntryEditor editor) {
         preview.setEntry(editor.getEntry());
         if (previewActive)
diff --git a/src/java/net/sf/jabref/gui/SortTabsAction.java b/src/java/net/sf/jabref/gui/SortTabsAction.java
new file mode 100644
index 0000000..ff2a1e7
--- /dev/null
+++ b/src/java/net/sf/jabref/gui/SortTabsAction.java
@@ -0,0 +1,47 @@
+package net.sf.jabref.gui;
+
+import net.sf.jabref.JabRefFrame;
+import net.sf.jabref.BasePanel;
+import net.sf.jabref.Globals;
+import net.sf.jabref.MnemonicAwareAction;
+
+import javax.swing.*;
+import java.awt.event.ActionEvent;
+import java.util.TreeMap;
+import java.util.Comparator;
+import java.util.Iterator;
+
+/**
+ * This action rearranges all tabs in the main tabbed pane of the given JabRefFrame
+ * in alphabetical order.
+ */
+public class SortTabsAction extends MnemonicAwareAction implements Comparator {
+    private JabRefFrame frame;
+
+    public SortTabsAction(JabRefFrame frame) {
+        putValue(NAME, "Sort tabs");
+        putValue(SHORT_DESCRIPTION, Globals.lang("Rearrange tabs alphabetically by title"));
+        this.frame = frame;
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        JTabbedPane tabbedPane = frame.getTabbedPane();
+       // Make a sorted Map that compares case-insensitively:
+        TreeMap map = new TreeMap(this);
+
+        for (int i=0; i<tabbedPane.getTabCount(); i++) {
+            BasePanel panel = (BasePanel)tabbedPane.getComponent(i);
+            map.put(tabbedPane.getTitleAt(i), panel);
+        }
+        tabbedPane.removeAll();
+        for (Iterator i=map.keySet().iterator(); i.hasNext();) {
+            String title = (String)i.next();
+            BasePanel panel = (BasePanel)map.get(title);
+            tabbedPane.addTab(title, panel);
+        }
+    }
+
+    public int compare(Object o1, Object o2) {
+        return ((String)o1).toLowerCase().compareTo(((String)o2).toLowerCase());
+    }
+}
diff --git a/src/java/net/sf/jabref/gui/date/DatePickerButton.java b/src/java/net/sf/jabref/gui/date/DatePickerButton.java
new file mode 100644
index 0000000..51ca0c8
--- /dev/null
+++ b/src/java/net/sf/jabref/gui/date/DatePickerButton.java
@@ -0,0 +1,77 @@
+/*
+ Copyright (C) 2006 Raik Nagel <kiar at users.sourceforge.net>
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+ * Neither the name of the author nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// created by : r.nagel 19.04.2006
+//
+// function : wrapper and service class for the DatePicker handling at the
+//            EntryEditor
+//
+// todo     :
+//
+// modified :  r.nagel 25.04.2006
+//             check NullPointer at the actionPerformed methode
+
+package net.sf.jabref.gui.date ;
+
+import java.awt.event.* ;
+import javax.swing.* ;
+
+import com.michaelbaranov.microba.calendar.* ;
+import net.sf.jabref.* ;
+import java.util.*;
+
+public class DatePickerButton implements ActionListener
+{
+  private DatePicker datePicker = new DatePicker() ;
+  private FieldEditor editor ;
+
+  public DatePickerButton(FieldEditor pEditor)
+  {
+    datePicker.showButtonOnly( true ) ;
+    datePicker.addActionListener( this ) ;
+
+    editor = pEditor ;
+  }
+
+  public void actionPerformed( ActionEvent e )
+  {
+    Date date = datePicker.getDate() ;
+    if (date != null)
+    {
+      editor.setText( Util.easyDateFormat( date ) ) ;
+        // Set focus to editor component after changing its text:
+        new FocusRequester(editor.getTextComponent());
+    }
+  }
+
+  public JComponent getDatePicker()
+  {
+    return datePicker ;
+  }
+}
diff --git a/src/java/net/sf/jabref/imports/BibTeXMLHandler.java b/src/java/net/sf/jabref/imports/BibTeXMLHandler.java
index 0250892..167ceae 100644
--- a/src/java/net/sf/jabref/imports/BibTeXMLHandler.java
+++ b/src/java/net/sf/jabref/imports/BibTeXMLHandler.java
@@ -75,7 +75,7 @@ public class BibTeXMLHandler extends DefaultHandler {
                 }
             }
             b = new BibtexEntry(Util.createNeutralId());
-	    b.setField(Globals.KEY_FIELD, articleID);
+            b.setField(BibtexFields.KEY_FIELD, articleID);
         } else if (
             name.equals("bibtex:article") ||
             name.equals("bibtex:inbook") ||
diff --git a/src/java/net/sf/jabref/imports/BiblioscapeImporter.java b/src/java/net/sf/jabref/imports/BiblioscapeImporter.java
index 2729fb2..a7c3aec 100644
--- a/src/java/net/sf/jabref/imports/BiblioscapeImporter.java
+++ b/src/java/net/sf/jabref/imports/BiblioscapeImporter.java
@@ -10,6 +10,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import net.sf.jabref.BibtexEntry;
 import net.sf.jabref.Globals;
+import net.sf.jabref.BibtexFields;
 
 /**
  * Imports a Biblioscape Tag File. The format is described on
@@ -23,7 +24,7 @@ public class BiblioscapeImporter extends ImportFormat {
      * Return the name of this import format.
      */
     public String getFormatName() {
-	return "Biblioscape";
+        return "Biblioscape";
     }
 
     /*
@@ -33,12 +34,12 @@ public class BiblioscapeImporter extends ImportFormat {
     public String getCLIId() {
       return "biblioscape";
     }
-    
+
     /**
      * Check whether the source is in the correct format for this importer.
      */
     public boolean isRecognizedFormat(InputStream in) throws IOException {
-	return true;
+        return true;
     }
 
     /**
@@ -47,14 +48,14 @@ public class BiblioscapeImporter extends ImportFormat {
      */
     public List importEntries(InputStream stream) throws IOException {
 
-	ArrayList bibItems = new ArrayList();
-	BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
-	String line;
-	HashMap hm = new HashMap();
-	HashMap lines = new HashMap();
-	StringBuffer previousLine = null;
-	while ((line = in.readLine()) != null){
-	    if (line.length() == 0) continue; // ignore empty lines, e.g. at file
+        ArrayList bibItems = new ArrayList();
+        BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
+        String line;
+        HashMap hm = new HashMap();
+        HashMap lines = new HashMap();
+        StringBuffer previousLine = null;
+        while ((line = in.readLine()) != null){
+            if (line.length() == 0) continue; // ignore empty lines, e.g. at file
                                           // end
         // entry delimiter -> item complete
         if (line.equals("------")){
@@ -236,7 +237,7 @@ public class BiblioscapeImporter extends ImportFormat {
                 s.append(i > 0 ? "; " : "").append(comments.elementAt(i).toString());
             hm.put("comment", s.toString());
           }
-          BibtexEntry b = new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID,
+          BibtexEntry b = new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID,
               Globals.getEntryType(bibtexType));
           b.setField(hm);
           bibItems.add(b);
@@ -259,8 +260,8 @@ public class BiblioscapeImporter extends ImportFormat {
         return null;
         previousLine.append(line.trim());
       }
-	
-	return bibItems;
+
+        return bibItems;
     }
-    
+
 }
diff --git a/src/java/net/sf/jabref/imports/BibtexParser.java b/src/java/net/sf/jabref/imports/BibtexParser.java
index 3d60af6..ad37e2e 100644
--- a/src/java/net/sf/jabref/imports/BibtexParser.java
+++ b/src/java/net/sf/jabref/imports/BibtexParser.java
@@ -93,17 +93,17 @@ public class BibtexParser
                 return;
             }
 
-	    if (Character.isWhitespace((char) c))
+            if (Character.isWhitespace((char) c))
             {
                 continue;
             }
-	    else
+            else
             // found non-whitespace char
-	    //Util.pr("SkipWhitespace, stops: "+c);
+            //Util.pr("SkipWhitespace, stops: "+c);
             unread(c);
-	    /*	    try {
-		Thread.currentThread().sleep(500);
-		} catch (InterruptedException ex) {}*/
+            /*	    try {
+                Thread.currentThread().sleep(500);
+                } catch (InterruptedException ex) {}*/
             break;
         }
     }
@@ -123,19 +123,19 @@ public class BibtexParser
                 return sb.toString();
             }
 
-	    if (Character.isWhitespace((char) c))
+            if (Character.isWhitespace((char) c))
             {
                 if (c != ' ')
                     sb.append((char)c);
                 continue;
             }
-	    else
+            else
             // found non-whitespace char
-	    //Util.pr("SkipWhitespace, stops: "+c);
+            //Util.pr("SkipWhitespace, stops: "+c);
         unread(c);
-	    /*	    try {
-		Thread.currentThread().sleep(500);
-		} catch (InterruptedException ex) {}*/
+            /*	    try {
+                Thread.currentThread().sleep(500);
+                } catch (InterruptedException ex) {}*/
             break;
         }
         return sb.toString();
@@ -145,8 +145,8 @@ public class BibtexParser
     public ParserResult parse() throws IOException {
 
         _db = new BibtexDatabase(); // Bibtex related contents.
-	_meta = new HashMap();      // Metadata in comments for Bibkeeper.
-	entryTypes = new HashMap(); // To store custem entry types parsed.
+        _meta = new HashMap();      // Metadata in comments for Bibkeeper.
+        entryTypes = new HashMap(); // To store custem entry types parsed.
         ParserResult _pr = new ParserResult(_db, _meta, entryTypes);
         skipWhitespace();
 
@@ -157,95 +157,95 @@ public class BibtexParser
                 boolean found = consumeUncritically('@');
                 if (!found)
                     break;
-		skipWhitespace();
-		String entryType = parseTextToken();
-		BibtexEntryType tp = BibtexEntryType.getType(entryType);
-		boolean isEntry = (tp != null);
-	    //Util.pr(tp.getName());
-		if (!isEntry) {
-		    // The entry type name was not recognized. This can mean
-		    // that it is a string, preamble, or comment. If so,
-		    // parse and set accordingly. If not, assume it is an entry
-		    // with an unknown type.
-		    if (entryType.toLowerCase().equals("preamble")) {
-			_db.setPreamble(parsePreamble());
-		    }
-		    else if (entryType.toLowerCase().equals("string")) {
-			BibtexString bs = parseString();
-			try {
-			    _db.addString(bs);
-			} catch (KeyCollisionException ex) {
-			    _pr.addWarning(Globals.lang("Duplicate string name")+": "+bs.getName());
-			    //ex.printStackTrace();
-			}
-		    }
-		    else if (entryType.toLowerCase().equals("comment")) {
-			StringBuffer commentBuf = parseBracketedTextExactly();
-			/**
-			 *
-			 * Metadata are used to store Bibkeeper-specific
-			 * information in .bib files.
-			 *
-			 * Metadata are stored in bibtex files in the format
-			 * @comment{jabref-meta: type:data0;data1;data2;...}
-			 *
-			 * Each comment that starts with the META_FLAG is stored
-			 * in the meta HashMap, with type as key.
-			 * Unluckily, the old META_FLAG bibkeeper-meta: was used
-			 * in JabRef 1.0 and 1.1, so we need to support it as
-			 * well. At least for a while. We'll always save with the
-			 * new one.
-			 */
-			String comment = commentBuf.toString().replaceAll("[\\x0d\\x0a]","");
+                skipWhitespace();
+                String entryType = parseTextToken();
+                BibtexEntryType tp = BibtexEntryType.getType(entryType);
+                boolean isEntry = (tp != null);
+            //Util.pr(tp.getName());
+                if (!isEntry) {
+                    // The entry type name was not recognized. This can mean
+                    // that it is a string, preamble, or comment. If so,
+                    // parse and set accordingly. If not, assume it is an entry
+                    // with an unknown type.
+                    if (entryType.toLowerCase().equals("preamble")) {
+                        _db.setPreamble(parsePreamble());
+                    }
+                    else if (entryType.toLowerCase().equals("string")) {
+                        BibtexString bs = parseString();
+                        try {
+                            _db.addString(bs);
+                        } catch (KeyCollisionException ex) {
+                            _pr.addWarning(Globals.lang("Duplicate string name")+": "+bs.getName());
+                            //ex.printStackTrace();
+                        }
+                    }
+                    else if (entryType.toLowerCase().equals("comment")) {
+                        StringBuffer commentBuf = parseBracketedTextExactly();
+                        /**
+                         *
+                         * Metadata are used to store Bibkeeper-specific
+                         * information in .bib files.
+                         *
+                         * Metadata are stored in bibtex files in the format
+                         * @comment{jabref-meta: type:data0;data1;data2;...}
+                         *
+                         * Each comment that starts with the META_FLAG is stored
+                         * in the meta HashMap, with type as key.
+                         * Unluckily, the old META_FLAG bibkeeper-meta: was used
+                         * in JabRef 1.0 and 1.1, so we need to support it as
+                         * well. At least for a while. We'll always save with the
+                         * new one.
+                         */
+                        String comment = commentBuf.toString().replaceAll("[\\x0d\\x0a]","");
             if (comment.substring(0, Math.min(comment.length(), GUIGlobals.META_FLAG.length()))
-			    .equals(GUIGlobals.META_FLAG) ||
-			    comment.substring(0, Math.min(comment.length(), GUIGlobals.META_FLAG_OLD.length()))
-			    .equals(GUIGlobals.META_FLAG_OLD)) {
-			    
-			    String rest;
-			    if (comment.substring(0, GUIGlobals.META_FLAG.length())
-				.equals(GUIGlobals.META_FLAG))
-				rest = comment.substring
-				    (GUIGlobals.META_FLAG.length());
-			    else
-				rest = comment.substring
-				    (GUIGlobals.META_FLAG_OLD.length());
-			    
-			    int pos = rest.indexOf(':');
-			    
-			    if (pos > 0)
-				_meta.put
-				    (rest.substring(0, pos), rest.substring(pos+1));
+                            .equals(GUIGlobals.META_FLAG) ||
+                            comment.substring(0, Math.min(comment.length(), GUIGlobals.META_FLAG_OLD.length()))
+                            .equals(GUIGlobals.META_FLAG_OLD)) {
+
+                            String rest;
+                            if (comment.substring(0, GUIGlobals.META_FLAG.length())
+                                .equals(GUIGlobals.META_FLAG))
+                                rest = comment.substring
+                                    (GUIGlobals.META_FLAG.length());
+                            else
+                                rest = comment.substring
+                                    (GUIGlobals.META_FLAG_OLD.length());
+
+                            int pos = rest.indexOf(':');
+
+                            if (pos > 0)
+                                _meta.put
+                                    (rest.substring(0, pos), rest.substring(pos+1));
                     // We remove all line breaks in the metadata - these will have been inserted
                     // to prevent too long lines when the file was saved, and are not part of the data.
-			}
-			
-			/**
-			 * A custom entry type can also be stored in a @comment:
-			 */
-			if (comment.substring(0, Math.min(comment.length(), GUIGlobals.ENTRYTYPE_FLAG.length()))
-			    .equals(GUIGlobals.ENTRYTYPE_FLAG)) {
-			    
-			    CustomEntryType typ = CustomEntryType.parseEntryType(comment);
-			    entryTypes.put(typ.getName().toLowerCase(), typ);
-
-			}
-		    }
-		    else {
-			// The entry type was not recognized. This may mean that
-			// it is a custom entry type whose definition will appear
-			// at the bottom of the file. So we use an UnknownEntryType
-			// to remember the type name by.
-			tp = new UnknownEntryType(entryType.toLowerCase());
-			//System.out.println("unknown type: "+entryType); 
-			isEntry = true;
-		    }
-		}
-
-		if (isEntry) // True if not comment, preamble or string.
+                        }
+
+                        /**
+                         * A custom entry type can also be stored in a @comment:
+                         */
+                        if (comment.substring(0, Math.min(comment.length(), GUIGlobals.ENTRYTYPE_FLAG.length()))
+                            .equals(GUIGlobals.ENTRYTYPE_FLAG)) {
+
+                            CustomEntryType typ = CustomEntryType.parseEntryType(comment);
+                            entryTypes.put(typ.getName().toLowerCase(), typ);
+
+                        }
+                    }
+                    else {
+                        // The entry type was not recognized. This may mean that
+                        // it is a custom entry type whose definition will appear
+                        // at the bottom of the file. So we use an UnknownEntryType
+                        // to remember the type name by.
+                        tp = new UnknownEntryType(entryType.toLowerCase());
+                        //System.out.println("unknown type: "+entryType);
+                        isEntry = true;
+                    }
+                }
+
+                if (isEntry) // True if not comment, preamble or string.
                 {
                     BibtexEntry be = parseEntry(tp);
-                    
+
                     boolean duplicateKey = _db.insertEntry(be);
                     if (duplicateKey) // JZTODO lyrics
                       _pr.addWarning(Globals.lang("duplicate BibTeX key")+": "+be.getCiteKey()
@@ -254,14 +254,14 @@ public class BibtexParser
                         _pr.addWarning(Globals.lang("empty BibTeX key")+": "+be.getAuthorTitleYear(40)
                                 + " (" + "Grouping may not work for this entry." + ")");
                     }
-		}
+                }
 
                 skipWhitespace();
-	}
+        }
 
-	    // Before returning the database, update entries with unknown type
-	    // based on parsed type definitions, if possible.
-	    checkEntryTypes(_pr);
+            // Before returning the database, update entries with unknown type
+            // based on parsed type definitions, if possible.
+            checkEntryTypes(_pr);
 
             return _pr;
         }
@@ -283,43 +283,43 @@ public class BibtexParser
 
     private int read() throws IOException
     {
-	int c = _in.read();
-	if (c == '\n')
-	    line++;
+        int c = _in.read();
+        if (c == '\n')
+            line++;
     return c;
     }
 
     private void unread(int c) throws IOException
     {
-	if (c == '\n')
-	    line--;
-	_in.unread(c);
+        if (c == '\n')
+            line--;
+        _in.unread(c);
     }
 
     public BibtexString parseString() throws IOException
     {
-	//Util.pr("Parsing string");
-	skipWhitespace();
-	consume('{','(');
-	//while (read() != '}');
-	skipWhitespace();
-	//Util.pr("Parsing string name");
-	String name = parseTextToken();
-	//Util.pr("Parsed string name");
-	skipWhitespace();
-	//Util.pr("Now the contents");
+        //Util.pr("Parsing string");
+        skipWhitespace();
+        consume('{','(');
+        //while (read() != '}');
+        skipWhitespace();
+        //Util.pr("Parsing string name");
+        String name = parseTextToken();
+        //Util.pr("Parsed string name");
+        skipWhitespace();
+        //Util.pr("Now the contents");
         consume('=');
-	String content = parseFieldContent();
-	//Util.pr("Now I'm going to consume a }");
-	consume('}',')');
-	//Util.pr("Finished string parsing.");
-	String id = Util.createNeutralId();
-	return new BibtexString(id, name, content);
+        String content = parseFieldContent();
+        //Util.pr("Now I'm going to consume a }");
+        consume('}',')');
+        //Util.pr("Finished string parsing.");
+        String id = Util.createNeutralId();
+        return new BibtexString(id, name, content);
     }
 
     public String parsePreamble() throws IOException
     {
-	return parseBracketedText().toString();
+        return parseBracketedText().toString();
     }
 
     public BibtexEntry parseEntry(BibtexEntryType tp) throws IOException
@@ -327,70 +327,70 @@ public class BibtexParser
     String id = Util.createNeutralId();//createId(tp, _db);
     BibtexEntry result = new BibtexEntry(id, tp);
     skipWhitespace();
-	consume('{','(');
-	skipWhitespace();
-	String key = null;
-	boolean doAgain = true;
-	while (doAgain) {
-	    doAgain = false;
-	    try {
-		if (key != null)
-		    key = key+parseKey();//parseTextToken(),
-		else key = parseKey();                
-	    } catch (NoLabelException ex) {
-		// This exception will be thrown if the entry lacks a key
-		// altogether, like in "@article{ author = { ...".
-		// It will also be thrown if a key contains =.
-	        char c = (char)peek();
-		if (Character.isWhitespace(c) || (c == '{')
-		    || (c == '\"')) {
+        consume('{','(');
+        skipWhitespace();
+        String key = null;
+        boolean doAgain = true;
+        while (doAgain) {
+            doAgain = false;
+            try {
+                if (key != null)
+                    key = key+parseKey();//parseTextToken(),
+                else key = parseKey();
+            } catch (NoLabelException ex) {
+                // This exception will be thrown if the entry lacks a key
+                // altogether, like in "@article{ author = { ...".
+                // It will also be thrown if a key contains =.
+                char c = (char)peek();
+                if (Character.isWhitespace(c) || (c == '{')
+                    || (c == '\"')) {
                     String fieldName = ex.getMessage().trim().toLowerCase();
-		    String cont = parseFieldContent();
+                    String cont = parseFieldContent();
             result.setField(fieldName, cont);
-		} else {
-		    if (key != null)
-			key = key+ex.getMessage()+"=";
-		    else key = ex.getMessage()+"=";
-		    doAgain = true;
-		}
-	    }
-	}
- 
-	if ((key != null) && key.equals(""))
-	    key = null;
+                } else {
+                    if (key != null)
+                        key = key+ex.getMessage()+"=";
+                    else key = ex.getMessage()+"=";
+                    doAgain = true;
+                }
+            }
+        }
+
+        if ((key != null) && key.equals(""))
+            key = null;
         //System.out.println("Key: "+key);
-	if(result!=null)result.setField(GUIGlobals.KEY_FIELD, key);
+        if(result!=null)result.setField(BibtexFields.KEY_FIELD, key);
     skipWhitespace();
 
-	while (true)
-	{
-	    int c = peek();
-	    if ((c == '}') || (c == ')'))
-	    {
-		break;
-	    }
+        while (true)
+        {
+            int c = peek();
+            if ((c == '}') || (c == ')'))
+            {
+                break;
+            }
 
-	    if (c == ',')
+            if (c == ',')
                 consume(',');
 
-	    skipWhitespace();
+            skipWhitespace();
 
-	    c = peek();
-	    if ((c == '}') || (c == ')'))
-	    {
-		break;
-	    }
-	    parseField(result);
-	}
+            c = peek();
+            if ((c == '}') || (c == ')'))
+            {
+                break;
+            }
+            parseField(result);
+        }
 
-	consume('}',')');
+        consume('}',')');
     return result;
     }
 
     private void parseField(BibtexEntry entry) throws IOException
     {
         String key = parseTextToken().toLowerCase();
-	    //Util.pr("Field: _"+key+"_");
+            //Util.pr("Field: _"+key+"_");
         skipWhitespace();
         consume('=');
         String content = parseFieldContent();
@@ -417,41 +417,41 @@ public class BibtexParser
     private String parseFieldContent() throws IOException
     {
         skipWhitespace();
-	StringBuffer value = new StringBuffer();
+        StringBuffer value = new StringBuffer();
         int c,j='.';
 
-	while (((c = peek()) != ',') && (c != '}') && (c != ')'))
+        while (((c = peek()) != ',') && (c != '}') && (c != ')'))
         {
 
-	    if (_eof) {
-			throw new RuntimeException("Error in line "+line+
-						   ": EOF in mid-string");
-	    }
-	    if (c == '"')
-	    {
-		// value is a string
-		consume('"');
-
-		while (!((peek() == '"') && (j != '\\')))
-		{
-		    j = read();
-		    if (_eof || (j == -1) || (j == 65535))
+            if (_eof) {
+                        throw new RuntimeException("Error in line "+line+
+                                                   ": EOF in mid-string");
+            }
+            if (c == '"')
+            {
+                // value is a string
+                consume('"');
+
+                while (!((peek() == '"') && (j != '\\')))
+                {
+                    j = read();
+                    if (_eof || (j == -1) || (j == 65535))
                     {
-			throw new RuntimeException("Error in line "+line+
-						   ": EOF in mid-string");
+                        throw new RuntimeException("Error in line "+line+
+                                                   ": EOF in mid-string");
                     }
 
-		    value.append((char) j);
-		}
-
-		consume('"');
-                
-	    }
-	    else if (c == '{') {
-		// Value is a string enclosed in brackets. There can be pairs
-		// of brackets inside of a field, so we need to count the brackets
-		// to know when the string is finished.
-               
+                    value.append((char) j);
+                }
+
+                consume('"');
+
+            }
+            else if (c == '{') {
+                // Value is a string enclosed in brackets. There can be pairs
+                // of brackets inside of a field, so we need to count the brackets
+                // to know when the string is finished.
+
                 //if (isStandardBibtexField || !Globals.prefs.getBoolean("preserveFieldFormatting")) {
                     // value.append(parseBracketedText());
                     // TEST TEST TEST TEST TEST
@@ -460,34 +460,34 @@ public class BibtexParser
                 //}
                 //else
                 //    value.append(parseBracketedTextExactly());
-	    }
-	    else if (Character.isDigit((char) c))
-	    {
-		// value is a number
-		String numString = parseTextToken();
-		int numVal = Integer.parseInt(numString);
-		value.append((new Integer(numVal)).toString());
-		//entry.setField(key, new Integer(numVal));
-	    }
-	    else if (c == '#')
-	    {
-		//value.append(" # ");
-		consume('#');
-	    }
-	    else
-	    {
-		String textToken = parseTextToken();
-		if (textToken.length() == 0)
-		    throw new IOException("Error in line "+line+" or above: "+
-					  "Empty text token.\nThis could be caused "+
-					  "by a missing comma between two fields.");
+            }
+            else if (Character.isDigit((char) c))
+            {
+                // value is a number
+                String numString = parseTextToken();
+                int numVal = Integer.parseInt(numString);
+                value.append((new Integer(numVal)).toString());
+                //entry.setField(key, new Integer(numVal));
+            }
+            else if (c == '#')
+            {
+                //value.append(" # ");
+                consume('#');
+            }
+            else
+            {
+                String textToken = parseTextToken();
+                if (textToken.length() == 0)
+                    throw new IOException("Error in line "+line+" or above: "+
+                                          "Empty text token.\nThis could be caused "+
+                                          "by a missing comma between two fields.");
             value.append("#").append(textToken).append("#");
-		//Util.pr(parseTextToken());
-		//throw new RuntimeException("Unknown field type");
-	    }
-	    skipWhitespace();
-	}
-	//Util.pr("Returning field content: "+value.toString());
+                //Util.pr(parseTextToken());
+                //throw new RuntimeException("Unknown field type");
+            }
+            skipWhitespace();
+        }
+        //Util.pr("Returning field content: "+value.toString());
 
         // Check if we are to strip extra pairs of braces before returning:
         if (Globals.prefs.getBoolean("autoDoubleBraces")) {
@@ -504,7 +504,7 @@ public class BibtexParser
             }
 
         }
-	return value.toString();
+        return value.toString();
 
     }
 
@@ -540,7 +540,7 @@ public class BibtexParser
         while (true)
         {
             int c = read();
-	    //Util.pr(".. "+c);
+            //Util.pr(".. "+c);
             if (c == -1)
             {
                 _eof = true;
@@ -549,16 +549,16 @@ public class BibtexParser
             }
 
             if (Character.isLetterOrDigit((char) c) ||
-		(c == ':') || (c == '-')
-		|| (c == '_') || (c == '*') || (c == '+') || (c == '.')
-		|| (c == '/') || (c == '\''))
+                (c == ':') || (c == '-')
+                || (c == '_') || (c == '*') || (c == '+') || (c == '.')
+                || (c == '/') || (c == '\''))
             {
                 token.append((char) c);
             }
             else
             {
                 unread(c);
-		//Util.pr("Pasted text token: "+token.toString());
+                //Util.pr("Pasted text token: "+token.toString());
                 return token.toString();
             }
         }
@@ -574,7 +574,7 @@ public class BibtexParser
         while (true)
         {
             int c = read();
-	    //Util.pr(".. '"+(char)c+"'\t"+c);
+            //Util.pr(".. '"+(char)c+"'\t"+c);
             if (c == -1)
             {
                 _eof = true;
@@ -582,19 +582,19 @@ public class BibtexParser
                 return token.toString();
             }
 
-	    // Ikke: #{}\uFFFD~\uFFFD
-	    //
-	    // G\uFFFDr:  $_*+.-\/?"^
+            // Ikke: #{}\uFFFD~\uFFFD
+            //
+            // G\uFFFDr:  $_*+.-\/?"^
             if (!Character.isWhitespace((char)c) && (Character.isLetterOrDigit((char) c) ||
-		((c != '#') && (c != '{') && (c != '}') && (c != '\uFFFD')
-		 && (c != '~') && (c != '\uFFFD') && (c != ',') && (c != '=')
-		 )))
-	    {
+                ((c != '#') && (c != '{') && (c != '}') && (c != '\uFFFD')
+                 && (c != '~') && (c != '\uFFFD') && (c != ',') && (c != '=')
+                 )))
+            {
                 token.append((char) c);
             }
             else
             {
-                
+
                 if (Character.isWhitespace((char)c)) {
                     // We have encountered white space instead of the comma at the end of
                     // the key. Possibly the comma is missing, so we try to return what we
@@ -602,21 +602,21 @@ public class BibtexParser
                     return token.toString();
                 }
                 else if (c == ',') {
-		    unread(c);        
-		    return token.toString();
-		    //} else if (Character.isWhitespace((char)c)) {
-		    //throw new NoLabelException(token.toString());
-		} else if (c == '=') {
-		    // If we find a '=' sign, it is either an error, or
-		    // the entry lacked a comma signifying the end of the key.
+                    unread(c);
+                    return token.toString();
+                    //} else if (Character.isWhitespace((char)c)) {
+                    //throw new NoLabelException(token.toString());
+                } else if (c == '=') {
+                    // If we find a '=' sign, it is either an error, or
+                    // the entry lacked a comma signifying the end of the key.
 
                     return token.toString();
-		    //throw new NoLabelException(token.toString());
-                    
-		} else
-		    throw new IOException("Error in line "+line+":"+
-					  "Character '"+(char)c+"' is not "+
-					  "allowed in bibtex keys.");
+                    //throw new NoLabelException(token.toString());
+
+                } else
+                    throw new IOException("Error in line "+line+":"+
+                                          "Character '"+(char)c+"' is not "+
+                                          "allowed in bibtex keys.");
 
             }
         }
@@ -625,44 +625,44 @@ public class BibtexParser
     }
 
     private class NoLabelException extends Exception {
-	public NoLabelException(String hasRead) {
-	    super(hasRead);
-	}
+        public NoLabelException(String hasRead) {
+            super(hasRead);
+        }
     }
 
     private StringBuffer parseBracketedText() throws IOException
     {
-	//Util.pr("Parse bracketed text");
-	StringBuffer value = new StringBuffer();
+        //Util.pr("Parse bracketed text");
+        StringBuffer value = new StringBuffer();
 
-	consume('{');
+        consume('{');
 
-	int brackets = 0;
+        int brackets = 0;
 
-	while (!((peek() == '}') && (brackets == 0)))
+        while (!((peek() == '}') && (brackets == 0)))
         {
 
-	    int j = read();
+            int j = read();
             if ((j == -1) || (j == 65535))
-	    {
-		throw new RuntimeException("Error in line "+line
-					   +": EOF in mid-string");
-	    }
-	    else if (j == '{')
-		brackets++;
-	    else if (j == '}')
-		brackets--;
-
-	    // If we encounter whitespace of any kind, read it as a
-	    // simple space, and ignore any others that follow immediately.
+            {
+                throw new RuntimeException("Error in line "+line
+                                           +": EOF in mid-string");
+            }
+            else if (j == '{')
+                brackets++;
+            else if (j == '}')
+                brackets--;
+
+            // If we encounter whitespace of any kind, read it as a
+            // simple space, and ignore any others that follow immediately.
         /*if (j == '\n') {
             if (peek() == '\n')
                 value.append('\n');
         }
-	    else*/ if (Character.isWhitespace((char)j)) {
+            else*/ if (Character.isWhitespace((char)j)) {
             String whs = skipAndRecordWhitespace(j);
             //System.out.println(":"+whs+":");
-		    if (!whs.equals("") && !whs.equals("\n\t")) { // && !whs.equals("\n"))
+                    if (!whs.equals("") && !whs.equals("\n\t")) { // && !whs.equals("\n"))
                 whs = whs.replaceAll("\t", ""); // Remove tabulators.
                 //while (whs.endsWith("\t"))
                 //    whs = whs.substring(0, whs.length()-1);
@@ -672,48 +672,48 @@ public class BibtexParser
                 value.append(' ');
 
 
-	    } else
-		value.append((char) j);
+            } else
+                value.append((char) j);
 
-	}
+        }
 
-	consume('}');
+        consume('}');
 
-	return value;
+        return value;
     }
 
     private StringBuffer parseBracketedTextExactly() throws IOException
     {
 
-	StringBuffer value = new StringBuffer();
+        StringBuffer value = new StringBuffer();
 
-	consume('{');
+        consume('{');
 
-	int brackets = 0;
+        int brackets = 0;
 
-	while (!((peek() == '}') && (brackets == 0)))
+        while (!((peek() == '}') && (brackets == 0)))
         {
 
-	    int j = read();
+            int j = read();
             if ((j == -1) || (j == 65535))
-	    {
-		throw new RuntimeException("Error in line "+line
-					   +": EOF in mid-string");
-	    }
-	    else if (j == '{')
-		brackets++;
-	    else if (j == '}')
-		brackets--;
-            
+            {
+                throw new RuntimeException("Error in line "+line
+                                           +": EOF in mid-string");
+            }
+            else if (j == '{')
+                brackets++;
+            else if (j == '}')
+                brackets--;
+
             value.append((char) j);
 
-	}
+        }
 
-	consume('}');
+        consume('}');
 
-	return value;
+        return value;
     }
-    
+
     private void consume(char expected) throws IOException
     {
         int c = read();
@@ -721,18 +721,18 @@ public class BibtexParser
         if (c != expected)
         {
             throw new RuntimeException("Error in line "+line
-		    +": Expected "
-		    + expected + " but received " + (char) c);
+                    +": Expected "
+                    + expected + " but received " + (char) c);
         }
 
     }
 
     private boolean consumeUncritically(char expected) throws IOException
     {
-	int c;
-	while (((c = read()) != expected) && (c != -1) && (c != 65535));
-	if ((c == -1) || (c == 65535))
-	    _eof = true;
+        int c;
+        while (((c = read()) != expected) && (c != -1) && (c != 65535));
+        if ((c == -1) || (c == 65535))
+            _eof = true;
 
         // Return true if we actually found the character we were looking for:
         return c == expected;
@@ -740,7 +740,7 @@ public class BibtexParser
 
     private void consume(char expected1, char expected2) throws IOException
     {
-	// Consumes one of the two, doesn't care which appears.
+        // Consumes one of the two, doesn't care which appears.
 
         int c = read();
 
@@ -754,23 +754,23 @@ public class BibtexParser
     }
 
     public void checkEntryTypes(ParserResult _pr) {
-	for (Iterator i=_db.getKeySet().iterator(); i.hasNext();) {
+        for (Iterator i=_db.getKeySet().iterator(); i.hasNext();) {
         Object key = i.next();
-	    BibtexEntry be = (BibtexEntry)_db.getEntryById((String)key);
-	    if (be.getType() instanceof UnknownEntryType) {
-		// Look up the unknown type name in our map of parsed types:
-           
-		Object o = entryTypes.get(be.getType().getName().toLowerCase());
-		if (o != null) {
-		    BibtexEntryType type = (BibtexEntryType)o;
-		    be.setType(type);
-		} else {
+            BibtexEntry be = (BibtexEntry)_db.getEntryById((String)key);
+            if (be.getType() instanceof UnknownEntryType) {
+                // Look up the unknown type name in our map of parsed types:
+
+                Object o = entryTypes.get(be.getType().getName().toLowerCase());
+                if (o != null) {
+                    BibtexEntryType type = (BibtexEntryType)o;
+                    be.setType(type);
+                } else {
             //System.out.println("Unknown entry type: "+be.getType().getName());
             _pr.addWarning(Globals.lang("unknown entry type")+": "+be.getType().getName()+". "+
                  Globals.lang("Type set to 'other'")+".");
             be.setType(BibtexEntryType.OTHER);
         }
-	    }
-	}
+            }
+        }
     }
 }
diff --git a/src/java/net/sf/jabref/imports/BiomailImporter.java b/src/java/net/sf/jabref/imports/BiomailImporter.java
index 8cab79f..2cf440b 100644
--- a/src/java/net/sf/jabref/imports/BiomailImporter.java
+++ b/src/java/net/sf/jabref/imports/BiomailImporter.java
@@ -11,6 +11,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.regex.Pattern;
+import net.sf.jabref.BibtexFields;
 
 
 /**
@@ -31,7 +32,7 @@ public class BiomailImporter extends ImportFormat {
     public String getCLIId() {
       return "biomail";
     }
-    
+
     /**
      * Check whether the source is in the correct format for this importer.
      */
@@ -172,7 +173,7 @@ public class BiomailImporter extends ImportFormat {
                 hm.put("author", shortauthor);
 
             BibtexEntry b =
-                    new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID, Globals.getEntryType(Type)); // id assumes an existing database so don't
+                    new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID, Globals.getEntryType(Type)); // id assumes an existing database so don't
 
             // create one here
             b.setField(hm);
diff --git a/src/java/net/sf/jabref/imports/CiteSeerFetcherPanel.java b/src/java/net/sf/jabref/imports/CiteSeerFetcherPanel.java
index 364a2d9..c0d2e05 100644
--- a/src/java/net/sf/jabref/imports/CiteSeerFetcherPanel.java
+++ b/src/java/net/sf/jabref/imports/CiteSeerFetcherPanel.java
@@ -107,7 +107,7 @@ public class CiteSeerFetcherPanel extends SidePaneComponent implements ActionLis
                     public void cancelled() {
                         panel.output(Globals.lang("%0 import cancelled.", "CiteSeer"));
                     }
-                    
+
                     public void stopFetching() {
                     }
 
@@ -138,7 +138,7 @@ public class CiteSeerFetcherPanel extends SidePaneComponent implements ActionLis
                     ImportInspectionDialog diag = null;
                     if (Globals.prefs.getBoolean("useImportInspectionDialog")) {
                         diag = new ImportInspectionDialog(panel.frame(), panel,
-                            GUIGlobals.DEFAULT_INSPECTION_FIELDS, Globals.lang("Fetch CiteSeer"), false);
+                            BibtexFields.DEFAULT_INSPECTION_FIELDS, Globals.lang("Fetch CiteSeer"), false);
                         diag.addCallBack(new Update());
                         Util.placeDialog(diag, panel.frame());
                         diag.setVisible(true);
diff --git a/src/java/net/sf/jabref/imports/CsaImporter.java b/src/java/net/sf/jabref/imports/CsaImporter.java
index 8b9a8cd..d57bad0 100644
--- a/src/java/net/sf/jabref/imports/CsaImporter.java
+++ b/src/java/net/sf/jabref/imports/CsaImporter.java
@@ -12,6 +12,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
+import net.sf.jabref.BibtexFields;
 
 
 /**
@@ -29,32 +30,32 @@ public class CsaImporter extends ImportFormat {
 
     // pre-compiled patterns
     private final static Pattern FIELD_PATTERN =
-	Pattern.compile("^([A-Z][A-Z]): ([A-Z].*)$");
+        Pattern.compile("^([A-Z][A-Z]): ([A-Z].*)$");
     private final static Pattern VOLNOPP_PATTERN =
-	Pattern.compile("[;,\\.]\\s+(\\d+[A-Za-z]?)\\((\\d+(?:-\\d+)?)\\)(?:,\\s+|:)(\\d+-\\d+)");
+        Pattern.compile("[;,\\.]\\s+(\\d+[A-Za-z]?)\\((\\d+(?:-\\d+)?)\\)(?:,\\s+|:)(\\d+-\\d+)");
     private final static Pattern PAGES_PATTERN =
-	Pattern.compile("[;,\\.]\\s+(?:(\\[?[vn]\\.?p\\.?\\]?)|(?:pp?\\.?\\s+)(\\d+[A-Z]?(?:-\\d+[A-Z]?)?)|(\\d+[A-Z]?(?:-\\d+[A-Z]?)?)(?:\\s+pp?))");
+        Pattern.compile("[;,\\.]\\s+(?:(\\[?[vn]\\.?p\\.?\\]?)|(?:pp?\\.?\\s+)(\\d+[A-Z]?(?:-\\d+[A-Z]?)?)|(\\d+[A-Z]?(?:-\\d+[A-Z]?)?)(?:\\s+pp?))");
     private final static Pattern VOLUME_PATTERN =
-	Pattern.compile("[;,\\.]?\\s+[vV][oO][lL]\\.?\\s+(\\d+[A-Z]?(?:-\\d+[A-Z]?)?)");
+        Pattern.compile("[;,\\.]?\\s+[vV][oO][lL]\\.?\\s+(\\d+[A-Z]?(?:-\\d+[A-Z]?)?)");
     private final static Pattern NUMBER_PATTERN =
-	Pattern.compile("[;,\\.]\\s+(?:No|no|Part|part|NUMB)\\.?\\s+([A-Z]?\\d+(?:[/-]\\d+)?)");
+        Pattern.compile("[;,\\.]\\s+(?:No|no|Part|part|NUMB)\\.?\\s+([A-Z]?\\d+(?:[/-]\\d+)?)");
     private final static Pattern DATE_PATTERN =
-	Pattern.compile("[;,\\.]\\s+(?:(\\d+)\\s)?(?:([A-Z][a-z][a-z])[\\.,]*\\s)?\\(?(\\d\\d\\d\\d)\\)?(?:\\s([A-Z][a-z][a-z]))?(?:\\s+(\\d+))?");
+        Pattern.compile("[;,\\.]\\s+(?:(\\d+)\\s)?(?:([A-Z][a-z][a-z])[\\.,]*\\s)?\\(?(\\d\\d\\d\\d)\\)?(?:\\s([A-Z][a-z][a-z]))?(?:\\s+(\\d+))?");
     private final static Pattern LT_PATTERN =
-	Pattern.compile("\\[Lt\\]");
+        Pattern.compile("\\[Lt\\]");
 
     // other constants
     private static final String MONS =
-	"jan feb mar apr may jun jul aug sep oct nov dec";
+        "jan feb mar apr may jun jul aug sep oct nov dec";
     private static final String[] MONTHS =
-	{ "January", "February", "March", "April", "May", "June",
-	  "July", "August", "September", "October", "November", "December" };
+        { "January", "February", "March", "April", "May", "June",
+          "July", "August", "September", "October", "November", "December" };
 
     /**
      * Return the name of this import format.
      */
     public String getFormatName() {
-	return "CSA";
+        return "CSA";
     }
 
     /*
@@ -64,130 +65,130 @@ public class CsaImporter extends ImportFormat {
     public String getCLIId() {
       return "csa";
     }
-    
+
     // read a line
     private String readLine(BufferedReader file) throws IOException {
-	String str = file.readLine();
-	if (str != null)
-	    line++;
-	return str;
+        String str = file.readLine();
+        if (str != null)
+            line++;
+        return str;
     }
 
     // append to the "note" field
     private void addNote(HashMap hm, String note) {
-	
-	StringBuffer notebuf = new StringBuffer();
-	if (hm.get("note") != null) {
-	    notebuf.append((String)hm.get("note"));
-	    notebuf.append("\n");
-	}
-	notebuf.append(note);
-	hm.put("note", notebuf.toString());
+
+        StringBuffer notebuf = new StringBuffer();
+        if (hm.get("note") != null) {
+            notebuf.append((String)hm.get("note"));
+            notebuf.append("\n");
+        }
+        notebuf.append(note);
+        hm.put("note", notebuf.toString());
     }
 
     // parse the date from the Source field
     private String parseDate(HashMap hm, String fstr) {
 
-	// find LAST matching date in string
-	int match = -1;
-	Matcher pm = DATE_PATTERN.matcher(fstr);
-	while (pm.find()) {
-	    match = pm.start();
+        // find LAST matching date in string
+        int match = -1;
+        Matcher pm = DATE_PATTERN.matcher(fstr);
+        while (pm.find()) {
+            match = pm.start();
 //	    System.out.println("MATCH: " + match + ": " + pm.group(0));
-	}
+        }
 
-	if (match == -1) {
+        if (match == -1) {
 //	    System.out.println("NO MATCH: \"" + fstr + "\"");
-	    return fstr;
-	}
-	
-	if (!pm.find(match)) {
+            return fstr;
+        }
+
+        if (!pm.find(match)) {
 //	    System.out.println("MATCH FAILED: \"" + fstr + "\"");
-	    return fstr;
-	}
-	
-	StringBuffer date = new StringBuffer();
-
-	String day = pm.group(1);
-	if (day == null)
-	    day = pm.group(5);
-	else if (pm.group(5) != null)
-	    return fstr;	// possible day found in two places
-
-	if (day != null && !day.equals("0")) {
-	    date.append(day);
-	    date.append(" ");
-	} else
-	    day = null;
-
-	String mon = pm.group(2);
-	if (mon == null)
-	    mon = pm.group(4);
-	else if (pm.group(4) != null)
-	    return fstr;	// possible month found in two places
-
-	int idx = -1;
-	if (mon != null) {
-	    String lmon = mon.toLowerCase();
-	    idx = MONS.indexOf(lmon);
-	    if (idx == -1)  // not legal month, error
-		return fstr;
-	    date.append(mon);
-	    date.append(" ");
-	    idx = idx / 4;
-	    hm.put("month", MONTHS[idx]);
-
-	} else if (day != null) // day found but not month, error
-	    return fstr;
-
-	String year = pm.group(3);
-	date.append(year);
-
-	StringBuffer note = new StringBuffer();
-	if (day != null && !day.equals("0")) {
-	    note.append("Source Date: ");
-	    note.append(date);
-	    note.append(".");
-	    addNote(hm, note.toString());
-	}
-
-	// check if journal year matches PY field
-	if (hm.get("year") != null) {
-	    String oyear = (String)hm.get("year");
-	    if (!year.equals(oyear)) {
-		note.setLength(0);
-		note.append("Source Year: ");
-		note.append(year);
-		note.append(".");
-		addNote(hm, note.toString());
+            return fstr;
+        }
+
+        StringBuffer date = new StringBuffer();
+
+        String day = pm.group(1);
+        if (day == null)
+            day = pm.group(5);
+        else if (pm.group(5) != null)
+            return fstr;	// possible day found in two places
+
+        if (day != null && !day.equals("0")) {
+            date.append(day);
+            date.append(" ");
+        } else
+            day = null;
+
+        String mon = pm.group(2);
+        if (mon == null)
+            mon = pm.group(4);
+        else if (pm.group(4) != null)
+            return fstr;	// possible month found in two places
+
+        int idx = -1;
+        if (mon != null) {
+            String lmon = mon.toLowerCase();
+            idx = MONS.indexOf(lmon);
+            if (idx == -1)  // not legal month, error
+                return fstr;
+            date.append(mon);
+            date.append(" ");
+            idx = idx / 4;
+            hm.put("month", MONTHS[idx]);
+
+        } else if (day != null) // day found but not month, error
+            return fstr;
+
+        String year = pm.group(3);
+        date.append(year);
+
+        StringBuffer note = new StringBuffer();
+        if (day != null && !day.equals("0")) {
+            note.append("Source Date: ");
+            note.append(date);
+            note.append(".");
+            addNote(hm, note.toString());
+        }
+
+        // check if journal year matches PY field
+        if (hm.get("year") != null) {
+            String oyear = (String)hm.get("year");
+            if (!year.equals(oyear)) {
+                note.setLength(0);
+                note.append("Source Year: ");
+                note.append(year);
+                note.append(".");
+                addNote(hm, note.toString());
 //		System.out.println(year + " != " + oyear);
-	    }
-	} else
-	    hm.put("year", year);
-	    
-	int len = fstr.length();
-	StringBuffer newf = new StringBuffer();
-	if (pm.start() > 0)
-	    newf.append(fstr.substring(0, pm.start()));
-	if (pm.end() < len)
-	    newf.append(fstr.substring(pm.end(), len));
-	return newf.toString();
+            }
+        } else
+            hm.put("year", year);
+
+        int len = fstr.length();
+        StringBuffer newf = new StringBuffer();
+        if (pm.start() > 0)
+            newf.append(fstr.substring(0, pm.start()));
+        if (pm.end() < len)
+            newf.append(fstr.substring(pm.end(), len));
+        return newf.toString();
     }
 
     /**
      * Check whether the source is in the correct format for this importer.
      */
     public boolean isRecognizedFormat(InputStream stream) throws IOException {
-	// CSA records start with "DN: Database Name"
-	BufferedReader in =
-	    new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
-	String str;
-	while ((str = in.readLine()) != null) {
-	    if (str.equals("DN: Database Name"))
-		return true;
-	}
-
-	return false;
+        // CSA records start with "DN: Database Name"
+        BufferedReader in =
+            new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
+        String str;
+        while ((str = in.readLine()) != null) {
+            if (str.equals("DN: Database Name"))
+                return true;
+        }
+
+        return false;
     }
 
     /**
@@ -195,256 +196,256 @@ public class CsaImporter extends ImportFormat {
      * objects.
      */
     public List importEntries(InputStream stream) throws IOException {
-	ArrayList bibitems = new ArrayList();
-	StringBuffer sb = new StringBuffer();
-	HashMap hm = new HashMap();
-
-	BufferedReader in =
-	    new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
-
-	String Type = null;
-	String str;
-	boolean first = true;
-	int rline = 1;
-	line = 1;
-	str = readLine(in);
-	while (true) {
-	    if (str == null || str.length() == 0) {	// end of record
-		if (!hm.isEmpty()) { // have a record
-		    if (Type == null) {
-			addNote(hm, "Publication Type: [NOT SPECIFIED]");
-			addNote(hm, "[PERHAPS NOT FULL FORMAT]");
-			Type = "article";
-		    }
-
-		    // post-process Journal article
-		    if (Type.equals("article") &&
-			hm.get("booktitle") != null) {
-			String booktitle = (String)hm.get("booktitle");
-			hm.remove("booktitle");
-			hm.put("journal", booktitle);
-		    }
-
-		    BibtexEntry b =
-			new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID,
-					Globals.getEntryType(Type));
-
-		    // create one here
-		    b.setField(hm);
-
-		    bibitems.add(b);
-		}
-		hm.clear();	// ready for next record
-		first = true;
-		if (str == null)
-		    break;	// end of file
-		str = readLine(in);
-		rline = line;
-		continue;
-	    }
-
-	    int fline = line;	// save this before reading field contents
-	    Matcher fm = FIELD_PATTERN.matcher(str);
-	    if (fm.find()) {
-
-		// save the field name (long and short)
-		String fabbr = fm.group(1);
-		String fname = fm.group(2);
-
-		// read the contents of the field
-		sb.setLength(0); // clear the buffer
-		while ((str = readLine(in)) != null) {
-		    if (! str.startsWith("    ")) // field contents?
-			break;	// nope
-		    if (sb.length() > 0) {
-			sb.append(" ");
-		    }
-		    sb.append(str.substring(4)); // skip spaces
-		}
-		String fstr = sb.toString();
-		if (fstr == null || fstr.length() == 0) {
-		    int line1 = line - 1;
-		    throw new IOException("illegal empty field at line " +
-					  line1);
-		}
-		// replace [Lt] with <
-		fm = LT_PATTERN.matcher(fstr);
-		if (fm.find())
-		    fstr = fm.replaceAll("<");
-
-		// check for start of new record
-		if (fabbr.equals("DN") &&
-		    fname.equalsIgnoreCase("Database Name")) {
-		    if (first == false) {
-			throw new IOException("format error at line " + fline +
-					      ": DN out of order");
-		    }
-		    first = false;
-		    rline = fline; // save start of record
-		} else if (first == true) {
-		    throw new IOException("format error at line " + fline +
-					      ": missing DN");
-		}
-
-		if (fabbr.equals("PT")) {
-		    Type = null;
-		    String flow = fstr.toLowerCase();
-		    String[] types = flow.split("; ");
-		    if (types[0].equals("article") ||
-			types[0].equals("journal article")) {
-			Type = "article";
-		    } else if (types[0].equals("dissertation")) {
-			Type = "phdthesis";
-		    } else {
-			for (int ii = 0; ii < types.length; ++ii) {
-			    if (types[ii].equals("conference")) {
-				Type = "inproceedings";
-				break;
-			    } else if (types[ii].equals("book monograph") &&
-				       Type == null) {
-				Type = "book";
-			    } else if (types[ii].equals("report") &&
-				       Type == null) {
-				Type = "techreport";
-			    }
-			}
-			if (Type == null) {
-			    Type = "misc";
-			}
-		    }
-		}
-
-		String ftype = null;
-		if (fabbr.equals("AB"))
-		    ftype = "abstract";
-		else if (fabbr.equals("AF"))
-		    ftype = "affiliation";
-		else if (fabbr.equals("AU"))
-		    ftype = "author";
-		else if (fabbr.equals("CA"))
-		    ftype = "organization";
-		else if (fabbr.equals("DE"))
-		    ftype = "keywords";
-		else if (fabbr.equals("DO"))
-		    ftype = "doi";
-		else if (fabbr.equals("ED"))
-		    ftype = "editor";
-		else if (fabbr.equals("IB"))
-		    ftype = "ISBN";
-		else if (fabbr.equals("IS"))
-		    ftype = "ISSN";
-		else if (fabbr.equals("JN"))
-		    ftype = "journal";
-		else if (fabbr.equals("LA"))
-		    ftype = "language";
-		else if (fabbr.equals("PB"))
-		    ftype = "publisher";
-		else if (fabbr.equals("PY")) {
-		    ftype = "year";
-		    if (hm.get("year") != null) {
-			String oyear = (String)hm.get("year");
-			if (!fstr.equals(oyear)) {
-			    StringBuffer note = new StringBuffer();
-			    note.append("Source Year: ");
-			    note.append(oyear);
-			    note.append(".");
-			    addNote(hm, note.toString());
+        ArrayList bibitems = new ArrayList();
+        StringBuffer sb = new StringBuffer();
+        HashMap hm = new HashMap();
+
+        BufferedReader in =
+            new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
+
+        String Type = null;
+        String str;
+        boolean first = true;
+        int rline = 1;
+        line = 1;
+        str = readLine(in);
+        while (true) {
+            if (str == null || str.length() == 0) {	// end of record
+                if (!hm.isEmpty()) { // have a record
+                    if (Type == null) {
+                        addNote(hm, "Publication Type: [NOT SPECIFIED]");
+                        addNote(hm, "[PERHAPS NOT FULL FORMAT]");
+                        Type = "article";
+                    }
+
+                    // post-process Journal article
+                    if (Type.equals("article") &&
+                        hm.get("booktitle") != null) {
+                        String booktitle = (String)hm.get("booktitle");
+                        hm.remove("booktitle");
+                        hm.put("journal", booktitle);
+                    }
+
+                    BibtexEntry b =
+                        new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID,
+                                        Globals.getEntryType(Type));
+
+                    // create one here
+                    b.setField(hm);
+
+                    bibitems.add(b);
+                }
+                hm.clear();	// ready for next record
+                first = true;
+                if (str == null)
+                    break;	// end of file
+                str = readLine(in);
+                rline = line;
+                continue;
+            }
+
+            int fline = line;	// save this before reading field contents
+            Matcher fm = FIELD_PATTERN.matcher(str);
+            if (fm.find()) {
+
+                // save the field name (long and short)
+                String fabbr = fm.group(1);
+                String fname = fm.group(2);
+
+                // read the contents of the field
+                sb.setLength(0); // clear the buffer
+                while ((str = readLine(in)) != null) {
+                    if (! str.startsWith("    ")) // field contents?
+                        break;	// nope
+                    if (sb.length() > 0) {
+                        sb.append(" ");
+                    }
+                    sb.append(str.substring(4)); // skip spaces
+                }
+                String fstr = sb.toString();
+                if (fstr == null || fstr.length() == 0) {
+                    int line1 = line - 1;
+                    throw new IOException("illegal empty field at line " +
+                                          line1);
+                }
+                // replace [Lt] with <
+                fm = LT_PATTERN.matcher(fstr);
+                if (fm.find())
+                    fstr = fm.replaceAll("<");
+
+                // check for start of new record
+                if (fabbr.equals("DN") &&
+                    fname.equalsIgnoreCase("Database Name")) {
+                    if (first == false) {
+                        throw new IOException("format error at line " + fline +
+                                              ": DN out of order");
+                    }
+                    first = false;
+                    rline = fline; // save start of record
+                } else if (first == true) {
+                    throw new IOException("format error at line " + fline +
+                                              ": missing DN");
+                }
+
+                if (fabbr.equals("PT")) {
+                    Type = null;
+                    String flow = fstr.toLowerCase();
+                    String[] types = flow.split("; ");
+                    if (types[0].equals("article") ||
+                        types[0].equals("journal article")) {
+                        Type = "article";
+                    } else if (types[0].equals("dissertation")) {
+                        Type = "phdthesis";
+                    } else {
+                        for (int ii = 0; ii < types.length; ++ii) {
+                            if (types[ii].equals("conference")) {
+                                Type = "inproceedings";
+                                break;
+                            } else if (types[ii].equals("book monograph") &&
+                                       Type == null) {
+                                Type = "book";
+                            } else if (types[ii].equals("report") &&
+                                       Type == null) {
+                                Type = "techreport";
+                            }
+                        }
+                        if (Type == null) {
+                            Type = "misc";
+                        }
+                    }
+                }
+
+                String ftype = null;
+                if (fabbr.equals("AB"))
+                    ftype = "abstract";
+                else if (fabbr.equals("AF"))
+                    ftype = "affiliation";
+                else if (fabbr.equals("AU"))
+                    ftype = "author";
+                else if (fabbr.equals("CA"))
+                    ftype = "organization";
+                else if (fabbr.equals("DE"))
+                    ftype = "keywords";
+                else if (fabbr.equals("DO"))
+                    ftype = "doi";
+                else if (fabbr.equals("ED"))
+                    ftype = "editor";
+                else if (fabbr.equals("IB"))
+                    ftype = "ISBN";
+                else if (fabbr.equals("IS"))
+                    ftype = "ISSN";
+                else if (fabbr.equals("JN"))
+                    ftype = "journal";
+                else if (fabbr.equals("LA"))
+                    ftype = "language";
+                else if (fabbr.equals("PB"))
+                    ftype = "publisher";
+                else if (fabbr.equals("PY")) {
+                    ftype = "year";
+                    if (hm.get("year") != null) {
+                        String oyear = (String)hm.get("year");
+                        if (!fstr.equals(oyear)) {
+                            StringBuffer note = new StringBuffer();
+                            note.append("Source Year: ");
+                            note.append(oyear);
+                            note.append(".");
+                            addNote(hm, note.toString());
 //			    System.out.println(fstr + " != " + oyear);
-			}
-		    } 
-		} else if (fabbr.equals("RL")) {
-		    ftype = "url";
-		    String[] lines = fstr.split(" ");
-		    StringBuffer urls = new StringBuffer();
-		    for (int ii = 0; ii < lines.length; ++ii) {
-			if (lines[ii].startsWith("[URL:"))
-			    urls.append(lines[ii].substring(5));
-			else if (lines[ii].endsWith("]")) {
-			    int len = lines[ii].length();
-			    urls.append(lines[ii].substring(0, len - 1));
-			    if (ii < lines.length - 1)
-				urls.append("\n");
-			} else
-			    urls.append(lines[ii]);
-		    }
-		    fstr = urls.toString();
-		} else if (fabbr.equals("SO")) {
-		    ftype = "booktitle";
-
-		    // see if we can extract journal information
-
-		    // compact vol(no):page-page:
-		    Matcher pm = VOLNOPP_PATTERN.matcher(fstr);
-		    if (pm.find()) {
-			hm.put("volume", pm.group(1));
-			hm.put("number", pm.group(2));
-			hm.put("pages", pm.group(3));
-			fstr = pm.replaceFirst("");
-		    }
-
-		    // pages
-		    pm = PAGES_PATTERN.matcher(fstr);
-		    StringBuffer pages = new StringBuffer();
-		    while (pm.find()) {
-			if (pages.length() > 0)
-			    pages.append(",");
-			String pp = pm.group(1);
-			if (pp == null)
-			    pp = pm.group(2);
-			if (pp == null)
-			    pp = pm.group(3);
-			pages.append(pp);
-			fstr = pm.replaceFirst("");
-			pm = PAGES_PATTERN.matcher(fstr);
-		    }
-		    if (pages.length() > 0)
-			hm.put("pages", pages.toString());
-
-		    // volume:
-		    pm = VOLUME_PATTERN.matcher(fstr);
-		    if (pm.find()) {
-			hm.put("volume", pm.group(1));
-			fstr = pm.replaceFirst("");
-		    }
-
-		    // number:
-		    pm = NUMBER_PATTERN.matcher(fstr);
-		    if (pm.find()) {
-			hm.put("number", pm.group(1));
-			fstr = pm.replaceFirst("");
-		    }
-
-		    // journal date:
-		    fstr = parseDate(hm, fstr);
-
-		    // strip trailing whitespace
-		    Pattern pp = Pattern.compile(",?\\s*$");
-		    pm = pp.matcher(fstr);
-		    if (pm.find())
-			fstr = pm.replaceFirst("");
-
-		    if (fstr.equals(""))
-			continue;
+                        }
+                    }
+                } else if (fabbr.equals("RL")) {
+                    ftype = "url";
+                    String[] lines = fstr.split(" ");
+                    StringBuffer urls = new StringBuffer();
+                    for (int ii = 0; ii < lines.length; ++ii) {
+                        if (lines[ii].startsWith("[URL:"))
+                            urls.append(lines[ii].substring(5));
+                        else if (lines[ii].endsWith("]")) {
+                            int len = lines[ii].length();
+                            urls.append(lines[ii].substring(0, len - 1));
+                            if (ii < lines.length - 1)
+                                urls.append("\n");
+                        } else
+                            urls.append(lines[ii]);
+                    }
+                    fstr = urls.toString();
+                } else if (fabbr.equals("SO")) {
+                    ftype = "booktitle";
+
+                    // see if we can extract journal information
+
+                    // compact vol(no):page-page:
+                    Matcher pm = VOLNOPP_PATTERN.matcher(fstr);
+                    if (pm.find()) {
+                        hm.put("volume", pm.group(1));
+                        hm.put("number", pm.group(2));
+                        hm.put("pages", pm.group(3));
+                        fstr = pm.replaceFirst("");
+                    }
+
+                    // pages
+                    pm = PAGES_PATTERN.matcher(fstr);
+                    StringBuffer pages = new StringBuffer();
+                    while (pm.find()) {
+                        if (pages.length() > 0)
+                            pages.append(",");
+                        String pp = pm.group(1);
+                        if (pp == null)
+                            pp = pm.group(2);
+                        if (pp == null)
+                            pp = pm.group(3);
+                        pages.append(pp);
+                        fstr = pm.replaceFirst("");
+                        pm = PAGES_PATTERN.matcher(fstr);
+                    }
+                    if (pages.length() > 0)
+                        hm.put("pages", pages.toString());
+
+                    // volume:
+                    pm = VOLUME_PATTERN.matcher(fstr);
+                    if (pm.find()) {
+                        hm.put("volume", pm.group(1));
+                        fstr = pm.replaceFirst("");
+                    }
+
+                    // number:
+                    pm = NUMBER_PATTERN.matcher(fstr);
+                    if (pm.find()) {
+                        hm.put("number", pm.group(1));
+                        fstr = pm.replaceFirst("");
+                    }
+
+                    // journal date:
+                    fstr = parseDate(hm, fstr);
+
+                    // strip trailing whitespace
+                    Pattern pp = Pattern.compile(",?\\s*$");
+                    pm = pp.matcher(fstr);
+                    if (pm.find())
+                        fstr = pm.replaceFirst("");
+
+                    if (fstr.equals(""))
+                        continue;
 //		    System.out.println("SOURCE: \"" + fstr + "\"");
-		} else if (fabbr.equals("TI"))
-		    ftype = "title";
-		else if (fabbr.equals("RE"))
-		    continue;	// throw away References
-
-		if (ftype != null) {
-		    hm.put(ftype, fstr);
-		} else {
-		    StringBuffer val = new StringBuffer();
-		    val.append(fname);
-		    val.append(": ");
-		    val.append(fstr);
-		    val.append(".");
-		    addNote(hm, val.toString());
-		}
-	    } else
-		str = readLine(in);
-	}
-
-	return bibitems;
+                } else if (fabbr.equals("TI"))
+                    ftype = "title";
+                else if (fabbr.equals("RE"))
+                    continue;	// throw away References
+
+                if (ftype != null) {
+                    hm.put(ftype, fstr);
+                } else {
+                    StringBuffer val = new StringBuffer();
+                    val.append(fname);
+                    val.append(": ");
+                    val.append(fstr);
+                    val.append(".");
+                    addNote(hm, val.toString());
+                }
+            } else
+                str = readLine(in);
+        }
+
+        return bibitems;
     }
 }
diff --git a/src/java/net/sf/jabref/imports/EndnoteImporter.java b/src/java/net/sf/jabref/imports/EndnoteImporter.java
index aa6bf7e..6da95fc 100644
--- a/src/java/net/sf/jabref/imports/EndnoteImporter.java
+++ b/src/java/net/sf/jabref/imports/EndnoteImporter.java
@@ -11,6 +11,7 @@ import net.sf.jabref.BibtexEntry;
 import net.sf.jabref.Globals;
 import net.sf.jabref.Util;
 import net.sf.jabref.AuthorList;
+import net.sf.jabref.BibtexFields;
 
 /**
  * Importer for the Refer/Endnote format.
@@ -34,7 +35,7 @@ public class EndnoteImporter extends ImportFormat {
     public String getCLIId() {
       return "refer";
     }
-    
+
     /**
      * Check whether the source is in the correct format for this importer.
      */
@@ -86,7 +87,7 @@ public class EndnoteImporter extends ImportFormat {
         Author = "";
         Type = "";
         Editor = "";
-	boolean IsEditedBook = false;
+        boolean IsEditedBook = false;
         String[] fields = entries[i].substring(1).split("\n%");
         //String lastPrefix = "";
         for (int j = 0; j < fields.length; j++){
@@ -113,8 +114,7 @@ public class EndnoteImporter extends ImportFormat {
         }else if (prefix.equals("E")){
             if (Editor.equals("")) Editor = val;
             else Editor += " and " + val;
-        }else if (prefix.equals("T")) hm.put("title", Util
-                             .putBracesAroundCapitals(val));
+        }else if (prefix.equals("T")) hm.put("title", val);
         else if (prefix.equals("0")){
             if (val.indexOf("Journal") == 0) Type = "article";
             else if ((val.indexOf("Book Section") == 0)) Type = "incollection";
@@ -165,7 +165,7 @@ public class EndnoteImporter extends ImportFormat {
             //Util.pr(val);
             if (val.indexOf("Ph.D.") == 0) Type = "phdthesis";
             if (val.indexOf("Masters") == 0) Type = "mastersthesis";
-        }else if (prefix.equals("F")) hm.put(Globals.KEY_FIELD, Util
+        }else if (prefix.equals("F")) hm.put(BibtexFields.KEY_FIELD, Util
                              .checkLegalKey(val));
         }
 
@@ -179,7 +179,7 @@ public class EndnoteImporter extends ImportFormat {
         //fixauthorscomma
         if (!Author.equals("")) hm.put("author", AuthorList.fixAuthor_lastNameFirst(Author));
         if (!Editor.equals("")) hm.put("editor", AuthorList.fixAuthor_lastNameFirst(Editor));
-        BibtexEntry b = new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID, Globals
+        BibtexEntry b = new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID, Globals
                         .getEntryType(Type)); // id assumes an existing database so don't
         // create one here
         b.setField(hm);
diff --git a/src/java/net/sf/jabref/imports/EntryFetcher.java b/src/java/net/sf/jabref/imports/EntryFetcher.java
new file mode 100644
index 0000000..aca947d
--- /dev/null
+++ b/src/java/net/sf/jabref/imports/EntryFetcher.java
@@ -0,0 +1,59 @@
+package net.sf.jabref.imports;
+
+import net.sf.jabref.gui.ImportInspectionDialog;
+import net.sf.jabref.BasePanel;
+import net.sf.jabref.JabRefFrame;
+
+import javax.swing.*;
+import java.net.URL;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: alver
+ * Date: Mar 26, 2006
+ * Time: 1:50:58 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface EntryFetcher extends ImportInspectionDialog.CallBack {
+
+    /**
+     * Handle a query entered by the user.
+     * @param query The query text.
+     * @param dialog The dialog to add imported entries to.
+     * @param frame The application frame.
+     */
+    public void processQuery(String query, ImportInspectionDialog dialog,
+                             JabRefFrame frame);
+
+    /**
+     * The title for this fetcher
+     * @return The title
+     */
+    public String getTitle();
+
+    /**
+     * Get the name of the key binding for this fetcher, if any.
+     * @return The name of the key binding
+     */
+    public String getKeyName();
+
+    /**
+     * Get the appropriate icon URL for this fetcher.
+     * @return The icon URL
+     */
+    public URL getIcon();
+
+    /**
+     * Get the name of the help page for this fetcher.
+     * @return The name of the help file
+     */
+    public String getHelpPage();
+
+    /**
+     * If this fetcher requires additional options, a panel for setting up these
+     * should be returned in a JPanel by this method. This JPanel will be added
+     * to the side pane component automatically.
+     * @return Options panel for this fetcher
+     */
+    public JPanel getOptionsPanel();
+}
diff --git a/src/java/net/sf/jabref/imports/GeneralFetcher.java b/src/java/net/sf/jabref/imports/GeneralFetcher.java
new file mode 100644
index 0000000..d2f5fb3
--- /dev/null
+++ b/src/java/net/sf/jabref/imports/GeneralFetcher.java
@@ -0,0 +1,111 @@
+package net.sf.jabref.imports;
+
+import net.sf.jabref.*;
+import net.sf.jabref.undo.NamedCompound;
+import net.sf.jabref.gui.ImportInspectionDialog;
+
+import javax.swing.*;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import java.awt.*;
+import java.util.Hashtable;
+import java.util.Arrays;
+
+/**
+ * <p>Title: </p>
+ * <p>Description: </p>
+ * <p>Copyright: Copyright (c) 2003</p>
+ * <p>Company: </p>
+ *
+ * @author not attributable
+ * @version 1.0
+ */
+
+public class GeneralFetcher extends SidePaneComponent implements ActionListener {
+
+    JTextField tf = new JTextField();
+    JPanel pan = new JPanel();
+    GridBagLayout gbl = new GridBagLayout();
+    GridBagConstraints con = new GridBagConstraints();
+    JButton go = new JButton(Globals.lang("Fetch")),
+    helpBut = new JButton(new ImageIcon(GUIGlobals.helpIconFile));
+    HelpAction help;
+    EntryFetcher fetcher;
+    SidePaneManager sidePaneManager;
+    Action action;
+    JabRefFrame frame;
+
+    public GeneralFetcher(SidePaneManager p0, JabRefFrame frame, final EntryFetcher fetcher) {
+        super(p0, fetcher.getIcon(), fetcher.getTitle());
+        this.sidePaneManager = p0;
+        this.frame = frame;
+        this.fetcher = fetcher;
+
+        action = new FetcherAction();
+
+        help = new HelpAction(Globals.helpDiag, fetcher.getHelpPage(), "Help");
+
+        helpBut.addActionListener(help);
+        helpBut.setMargin(new Insets(0, 0, 0, 0));
+        JPanel main = new JPanel();
+        main.setLayout(gbl);
+        con.fill = GridBagConstraints.BOTH;
+        con.insets = new Insets(0, 0, 2, 0);
+        con.gridwidth = GridBagConstraints.REMAINDER;
+        con.weightx = 1;
+        con.weighty = 0;
+        con.weighty = 1;
+        con.insets = new Insets(0, 0, 0, 0);
+        con.fill = GridBagConstraints.BOTH;
+        gbl.setConstraints(tf, con);
+        main.add(tf);
+        con.weighty = 0;
+        con.gridwidth = 1;
+        gbl.setConstraints(go, con);
+        main.add(go);
+        con.gridwidth = GridBagConstraints.REMAINDER;
+        gbl.setConstraints(helpBut, con);
+        main.add(helpBut);
+
+        JPanel pan = fetcher.getOptionsPanel();
+        if (pan != null) {
+            gbl.setConstraints(pan, con);
+            main.add(pan);
+        }
+
+        main.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
+        add(main, BorderLayout.CENTER);
+        go.addActionListener(this);
+        tf.addActionListener(this);
+    }
+
+    public JTextField getTextField() {
+        return tf;
+    }
+
+    public Action getAction() {
+        return action;
+    }
+
+    public void actionPerformed(ActionEvent e) {
+        if (tf.getText().trim().length() == 0)
+            return;
+        ImportInspectionDialog dialog = new ImportInspectionDialog(frame, frame.basePanel(),
+                BibtexFields.DEFAULT_INSPECTION_FIELDS, fetcher.getTitle(), false);
+        dialog.addCallBack(fetcher);
+        Util.placeDialog(dialog, frame);
+        fetcher.processQuery(tf.getText().trim(), dialog, frame);
+
+    }
+
+    class FetcherAction extends AbstractAction {
+        public FetcherAction() {
+            super(fetcher.getTitle(), new ImageIcon(fetcher.getIcon()));
+            putValue(ACCELERATOR_KEY, Globals.prefs.getKey(fetcher.getKeyName()));
+        }
+        public void actionPerformed(ActionEvent e) {
+            sidePaneManager.add(fetcher.getTitle(), GeneralFetcher.this);
+        }
+    }
+
+}
diff --git a/src/java/net/sf/jabref/imports/HTMLConverter.java b/src/java/net/sf/jabref/imports/HTMLConverter.java
new file mode 100644
index 0000000..6bf30f5
--- /dev/null
+++ b/src/java/net/sf/jabref/imports/HTMLConverter.java
@@ -0,0 +1,58 @@
+package net.sf.jabref.imports;
+
+import net.sf.jabref.export.layout.LayoutFormatter;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: alver
+ * Date: Mar 26, 2006
+ * Time: 8:05:08 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class HTMLConverter implements LayoutFormatter {
+
+    public String format(String text) {
+
+        if (text == null)
+            return null;
+
+        StringBuffer sb = new StringBuffer();
+
+        for (int i=0; i<text.length(); i++) {
+
+            int c = text.charAt(i);
+
+            if (c == '&') {
+                i = readHtmlChar(text, sb, i);
+                sb.append((char)c);
+            } else if (c == '<') {
+                i = readTag(text, sb, i);
+            } else
+                sb.append((char)c);
+
+        }
+
+        return sb.toString();
+    }
+
+    private final int MAX_TAG_LENGTH = 20;
+    private final int MAX_CHAR_LENGTH = 10;
+
+    private int readHtmlChar(String text, StringBuffer sb, int position) {
+        // Have just read the < character that starts the tag.
+        int index = text.indexOf(';', position);
+        if ((index > position) && (index-position < MAX_CHAR_LENGTH)) {
+            //System.out.println("Removed code: "+text.substring(position, index));
+            return index+1; // Just skip the tag.
+        } else return position; // Don't do anything.
+    }
+
+    private int readTag(String text, StringBuffer sb, int position) {
+        // Have just read the < character that starts the tag.
+        int index = text.indexOf('>', position);
+        if ((index > position) && (index-position < MAX_TAG_LENGTH)) {
+            //System.out.println("Removed tag: "+text.substring(position, index));
+            return index+1; // Just skip the tag.
+        } else return position; // Don't do anything.
+    }
+}
diff --git a/src/java/net/sf/jabref/imports/IEEEXploreFetcher.java b/src/java/net/sf/jabref/imports/IEEEXploreFetcher.java
new file mode 100644
index 0000000..54c1f97
--- /dev/null
+++ b/src/java/net/sf/jabref/imports/IEEEXploreFetcher.java
@@ -0,0 +1,481 @@
+package net.sf.jabref.imports;
+
+import net.sf.jabref.net.URLDownload;
+import net.sf.jabref.*;
+import net.sf.jabref.gui.ImportInspectionDialog;
+
+import javax.swing.*;
+import java.net.URL;
+import java.net.MalformedURLException;
+import java.io.*;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
+import java.util.List;
+import java.util.ArrayList;
+import java.awt.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: alver
+ * Date: Mar 25, 2006
+ * Time: 1:09:32 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class IEEEXploreFetcher implements Runnable, EntryFetcher {
+
+    ImportInspectionDialog dialog = null;
+    JabRefFrame frame = null;
+    HTMLConverter htmlConverter = new HTMLConverter();
+    private String terms;
+    String startUrl = "http://ieeexplore.ieee.org";
+    String searchUrlPart = "/search/freesearchresult.jsp?queryText=";
+    String endUrl = "+%3Cin%3E+metadata&ResultCount=25&ResultStart=";
+    private int perPage = 25, hits = 0, unparseable = 0, parsed = 0;
+    private boolean shouldContinue = false;
+    private JCheckBox fetchAstracts = new JCheckBox(Globals.lang("Include abstracts"), false);
+    private boolean fetchingAbstracts = false;
+    private static final int MAX_ABSTRACT_FETCH = 5;
+
+    public IEEEXploreFetcher() {
+    }
+
+
+    //Pattern hitsPattern = Pattern.compile("Your search matched <strong>(\\d+)</strong>");
+    Pattern hitsPattern = Pattern.compile(".*Your search matched <strong>(\\d+)</strong>.*");
+    Pattern maxHitsPattern = Pattern.compile(".*A maximum of <strong>(\\d+)</strong>.*");
+    Pattern entryPattern1 = Pattern.compile(".*<strong>(.+)</strong><br>\\s+(.+)<br>"
+                +"\\s+<A href='(.+)'>(.+)</A><br>\\s+Volume (.+), \\s*"
+                +"(.+)? (\\d\\d\\d\\d)\\s+Page\\(s\\):.*");
+
+    Pattern entryPattern2 = Pattern.compile(".*<strong>(.+)</strong><br>\\s+(.+)<br>"
+                    +"\\s+<A href='(.+)'>(.+)</A><br>\\s+Volume (.+), \\s+Issue (\\d+), \\s*"
+                    +"(.+)? (\\d\\d\\d\\d)\\s+Page\\(s\\):.*");
+
+
+    Pattern entryPattern3 = Pattern.compile(".*<strong>(.+)</strong><br>\\s+(.+)<br>"
+                    +"\\s+<A href='(.+)'>(.+)</A><br>\\s+Volume (.+), \\s+Issue (\\d+), " +
+                    "\\s+Part (\\d+), \\s*" //"[\\s-\\d]+"
+                    +"(.+)? (\\d\\d\\d\\d)\\s+Page\\(s\\):.*");
+
+    Pattern entryPattern4 = Pattern.compile(".*<strong>(.+)</strong><br>\\s+(.+)<br>"
+                    +"\\s+<A href='(.+)'>(.+)</A><br>\\s*" //[\\s-\\da-z]+"
+                    +"(.+)? (\\d\\d\\d\\d)\\s+Page\\(s\\):.*");
+
+    Pattern abstractLinkPattern = Pattern.compile(
+            "<a href=\"(.+)\" class=\"bodyCopySpaced\">Abstract</a>");
+
+    public JPanel getOptionsPanel() {
+        JPanel pan = new JPanel();
+        pan.setLayout(new BorderLayout());
+        pan.add(fetchAstracts, BorderLayout.CENTER);
+        return pan;
+    }
+
+    public void processQuery(String query, ImportInspectionDialog dialog, JabRefFrame frame) {
+        this.dialog = dialog;
+        this.frame =frame;
+        this.terms = query;
+        piv = 0;
+        (new Thread(this)).start();
+    }
+
+
+
+    public String getTitle() {
+        return Globals.menuTitle("Search IEEEXplore");
+    }
+
+
+    public URL getIcon() {
+        return GUIGlobals.wwwIcon;
+    }
+
+    public String getHelpPage() {
+        return "IEEEXplorerHelp.html";
+    }
+
+    public String getKeyName() {
+        return "Search IEEXplore";
+    }
+
+    // This method is called by the dialog when the user has cancelled the import.
+    public void cancelled() {
+        shouldContinue = false;
+    }
+
+    // This method is called by the dialog when the user has selected the
+// wanted entries, and clicked Ok. The callback object can update status
+// line etc.
+    public void done(int entriesImported) {
+        //System.out.println("Number of entries parsed: "+parsed);
+        //System.out.println("Parsing failed for "+unparseable+" entries");
+    }
+
+    // This method is called by the dialog when the user has cancelled or
+// signalled a stop. It is expected that any long-running fetch operations
+// will stop after this method is called.
+    public void stopFetching() {
+        shouldContinue = false;
+    }
+
+    /**
+     * The code that runs the actual search and fetch operation.
+     */
+    public void run() {
+        frame.block();
+        shouldContinue = true;
+        parsed = 0;
+        unparseable = 0;
+        String address = makeUrl(0);
+        try {
+            URL url = new URL(address);
+            // Fetch the search page and put the contents in a String:
+            //String page = getResultsFromFile(new File("/home/alver/div/temp.txt"));
+            //URLDownload ud = new URLDownload(new JPanel(), url, new File("/home/alver/div/temp.txt"));
+            //ud.download();
+
+            //dialog.setVisible(true);
+            String page = getResults(url);
+            hits = getNumberOfHits(page, "Your search matched", hitsPattern);
+
+            frame.unblock();
+            if (hits == 0) {
+                dialog.dispose();
+                JOptionPane.showMessageDialog(frame, Globals.lang("No entries found for the search string '%0'",
+                        terms),
+                        Globals.lang("Search IEEEXplore"), JOptionPane.INFORMATION_MESSAGE);
+                return;
+            } else {
+                fetchingAbstracts = fetchAstracts.isSelected();
+                if (fetchingAbstracts && (hits > MAX_ABSTRACT_FETCH)) {
+                    fetchingAbstracts = false;
+                    JOptionPane.showMessageDialog(frame,
+                            Globals.lang("%0 entries found. To reduce server load, abstracts "
+                            +"will only be downloaded for searches returning %1 hits or less.",
+                                    new String[] {String.valueOf(hits), String.valueOf(MAX_ABSTRACT_FETCH)}),
+                            Globals.lang("Search IEEEXplore"), JOptionPane.INFORMATION_MESSAGE);
+                }
+                dialog.setVisible(true);
+            }
+
+            int maxHits = getNumberOfHits(page, "A maximum of", maxHitsPattern);
+            //String page = getResultsFromFile(new File("/home/alver/div/temp50.txt"));
+
+            //List entries = new ArrayList();
+            //System.out.println("Number of hits: "+hits);
+            //System.out.println("Maximum returned: "+maxHits);
+            if (hits > maxHits)
+                hits = maxHits;
+            //parse(dialog, page, 0, 51);
+            //dialog.setProgress(perPage/2, hits);
+            parse(dialog, page, 0, 1);
+            int firstEntry = perPage;
+            while (shouldContinue && (firstEntry < hits)) {
+                //System.out.println("Fetching from: "+firstEntry);
+                address = makeUrl(firstEntry);
+                //System.out.println(address);
+                page = getResults(new URL(address));
+                //dialog.setProgress(firstEntry+perPage/2, hits);
+                if (!shouldContinue)
+                    break;
+
+                parse(dialog, page, 0, 1+firstEntry);
+                firstEntry += perPage;
+
+            }
+            dialog.entryListComplete();
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+
+    }
+
+    private String makeUrl(int startIndex) {
+        StringBuffer sb = new StringBuffer(startUrl).append(searchUrlPart);
+        sb.append(terms.replaceAll(" ", "+"));
+        sb.append(endUrl);
+        sb.append(String.valueOf(startIndex));
+        return sb.toString();
+    }
+
+    int piv = 0;
+
+    private void parse(ImportInspectionDialog dialog, String text, int startIndex, int firstEntryNumber) {
+        piv = startIndex;
+        int entryNumber = firstEntryNumber;
+        List entries = new ArrayList();
+        BibtexEntry entry;
+        while (((entry = parseNextEntry(text, piv, entryNumber)) != null)
+            && (shouldContinue)) {
+            if (entry.getField("title") != null) {
+                entries.add(entry);
+                dialog.addEntries(entries);
+                dialog.setProgress(parsed+unparseable, hits);
+                entries.clear();
+                parsed++;
+            }
+            entryNumber++;
+            //break;
+        }
+
+
+    }
+
+    private BibtexEntry parseNextEntry(String allText, int startIndex, int entryNumber) {
+        String toFind = new StringBuffer().append("<div align=\"left\"><strong>")
+                .append(entryNumber).append(".</strong></div>").toString();
+        int index = allText.indexOf(toFind, startIndex);
+        int endIndex = allText.indexOf("</table>", index+1);
+        if (endIndex < 0)
+            endIndex = allText.length();
+
+        if (index >= 0) {
+            piv = index+1;
+            String text = allText.substring(index, endIndex);
+            BibtexEntryType type;
+            String sourceField;
+            if (text.indexOf("IEEE JNL") >= 0) {
+                type = BibtexEntryType.getType("article");
+                sourceField = "journal";
+            } else {
+                type = BibtexEntryType.getType("inproceedings");
+                sourceField = "booktitle";
+            }
+
+            index = 0;
+            BibtexEntry entry = new BibtexEntry(Util.createNeutralId(), type);
+            //System.out.println(text);
+            Matcher m1 = entryPattern1.matcher(text);
+            Matcher m2 = entryPattern2.matcher(text);
+            Matcher m3 = entryPattern3.matcher(text);
+            Matcher m4 = entryPattern4.matcher(text);
+            Matcher m;
+            String tmp;
+            String rest = "";
+            if (m1.find()) {
+                m = m1;
+                // Title:
+                entry.setField("title", convertHTMLChars(m.group(1)));
+                // Author:
+                tmp = convertHTMLChars(m.group(2));
+                if (tmp.charAt(tmp.length()-1) == ';')
+                    tmp= tmp.substring(0, tmp.length()-1);
+                entry.setField("author", tmp.replaceAll("; ", " and "));
+                // Publication:
+                tmp = m.group(4);
+                entry.setField(sourceField, convertHTMLChars(tmp));
+                // Volume:
+                entry.setField("volume", convertHTMLChars(m.group(5)));
+                // Month:
+                entry.setField("month", convertHTMLChars(m.group(6)));
+                // Year
+                entry.setField("year", m.group(7));
+
+            }
+            else if (m2.find()) {
+                m = m2;
+                // Title:
+                entry.setField("title", convertHTMLChars(m.group(1)));
+                // Author:
+                tmp = convertHTMLChars(m.group(2));
+                if (tmp.charAt(tmp.length()-1) == ';')
+                    tmp= tmp.substring(0, tmp.length()-1);
+                entry.setField("author", tmp.replaceAll("; ", " and "));
+                // Publication:
+                tmp = m.group(4);
+                entry.setField(sourceField, convertHTMLChars(tmp));
+                // Volume:
+                entry.setField("volume", convertHTMLChars(m.group(5)));
+                // Number:
+                entry.setField("number", convertHTMLChars(m.group(6)));
+                // Month:
+                entry.setField("month", convertHTMLChars(m.group(7)));
+                // Year:
+                entry.setField("year", m.group(8));
+
+            }
+            else if (m3.find()) {
+                m = m3;
+                // Title:
+                entry.setField("title", convertHTMLChars(m.group(1)));
+                // Author:
+                tmp = convertHTMLChars(m.group(2));
+                if (tmp.charAt(tmp.length()-1) == ';')
+                    tmp= tmp.substring(0, tmp.length()-1);
+                entry.setField("author", tmp.replaceAll("; ", " and "));
+                // Publication:
+                tmp = m.group(4);
+                entry.setField(sourceField, convertHTMLChars(tmp));
+                // Volume:
+                entry.setField("volume", convertHTMLChars(m.group(5)));
+                // Number:
+                entry.setField("number", convertHTMLChars(m.group(6)));
+                // Month:
+                entry.setField("month", convertHTMLChars(m.group(8)));
+                // Year
+                entry.setField("year", m.group(9));
+
+            }
+            else if (m4.find()) {
+                m = m4;
+                // Title:
+                entry.setField("title", convertHTMLChars(m.group(1)));
+                // Author:
+                tmp = convertHTMLChars(m.group(2));
+                if (tmp.charAt(tmp.length()-1) == ';')
+                    tmp= tmp.substring(0, tmp.length()-1);
+                entry.setField("author", tmp.replaceAll("; ", " and "));
+                // Publication:
+                tmp = m.group(4);
+                entry.setField(sourceField, convertHTMLChars(tmp));
+                // Month:
+                entry.setField("month", convertHTMLChars(m.group(5)));
+                // Year
+                entry.setField("year", m.group(6));
+
+            } else {
+                System.err.println("---no structure match---");
+                System.err.println(text);
+                unparseable++;
+            }
+            int pgInd = text.indexOf("Page(s):");
+            if (pgInd >= 0) {
+                // Try to set pages:
+                rest = text.substring(pgInd+8);
+                pgInd = rest.indexOf("<br>");
+                if (pgInd >= 0) {
+                    tmp = rest.substring(0, pgInd);
+                    entry.setField("pages", tmp.replaceAll("\\s+", "").replaceAll("-","--"));
+                }
+                // Try to set doi:
+                pgInd = rest.indexOf("Digital Object Identifier ", pgInd);
+                if (pgInd >= 0) {
+                    int fieldEnd = rest.indexOf("<br>", pgInd);
+                    if (fieldEnd >= 0) {
+                        entry.setField("doi", rest.substring(pgInd+26, fieldEnd).trim());
+                    }
+                }
+            }
+
+            // Fetching abstracts takes time, and causes a lot of requests, so this should
+            // be optional or disabled:
+            if (fetchingAbstracts) {
+                Matcher abstractLink = abstractLinkPattern.matcher(text);
+                if (abstractLink.find()) {
+                    StringBuffer sb = new StringBuffer(startUrl).append(abstractLink.group(1));
+                    //System.out.println(sb.toString());
+                    try {
+                        String abstractText = fetchAbstract(sb.toString());
+                        if ((abstractText != null) && (abstractText.length() > 0) &&
+                                !abstractText.equalsIgnoreCase("not available")) {
+                            entry.setField("abstract", convertHTMLChars(abstractText));
+                        }
+                    } catch (IOException e) {
+                        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+                    }
+                }
+            }
+
+            return entry;
+        }
+        return null;
+    }
+
+    /**
+     * This method must convert HTML style char sequences to normal characters.
+     * @param text The text to handle.
+     * @return The converted text.
+     */
+    private String convertHTMLChars(String text) {
+
+        return htmlConverter.format(text);
+    }
+
+
+    /**
+     * Find out how many hits were found.
+     * @param page
+     */
+    private int getNumberOfHits(String page, String marker, Pattern pattern) throws IOException {
+        int ind = page.indexOf(marker);
+        if (ind < 0)
+            throw new IOException(Globals.lang("Could not parse number of hits"));
+        String substring = page.substring(ind, Math.min(ind+42, page.length()));
+        Matcher m = pattern.matcher(substring);
+        m.find();
+        if (m.groupCount() >= 1) {
+            try {
+                return Integer.parseInt(m.group(1));
+            } catch (NumberFormatException ex) {
+                throw new IOException(Globals.lang("Could not parse number of hits"));
+            }
+        }
+        throw new IOException(Globals.lang("Could not parse number of hits"));
+    }
+
+    /**
+     * Download the URL and return contents as a String.
+     * @param source
+     * @return
+     * @throws IOException
+     */
+    public String getResults(URL source) throws IOException {
+        InputStream in = source.openStream();
+        StringBuffer sb = new StringBuffer();
+        byte[] buffer = new byte[256];
+        while(true) {
+            int bytesRead = in.read(buffer);
+            if(bytesRead == -1) break;
+            for (int i=0; i<bytesRead; i++)
+                sb.append((char)buffer[i]);
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Read results from a file instead of an URL. Just for faster debugging.
+     * @param f
+     * @return
+     * @throws IOException
+     */
+    public String getResultsFromFile(File f) throws IOException {
+        InputStream in = new BufferedInputStream(new FileInputStream(f));
+        StringBuffer sb = new StringBuffer();
+        byte[] buffer = new byte[256];
+        while(true) {
+            int bytesRead = in.read(buffer);
+            if(bytesRead == -1) break;
+            for (int i=0; i<bytesRead; i++)
+                sb.append((char)buffer[i]);
+        }
+        return sb.toString();
+    }
+
+
+    /**
+     * Download and parse the web page containing an entry's Abstract:
+     * @param link
+     * @return
+     * @throws IOException
+     */
+    public String fetchAbstract(String link) throws IOException {
+        URL url = new URL(link);
+        String page = getResults(url);
+        //System.out.println(link);
+
+        //System.out.println("Fetched abstract page.");
+
+        String marker = "Abstract</span><br>";
+        int index = page.indexOf(marker);
+        int endIndex = page.indexOf("</td>", index + 1);
+        if ((index >= 0) && (endIndex > index)) {
+            return new String(page.substring(index + marker.length(), endIndex).trim());
+        }
+
+        return null;
+    }
+
+}
diff --git a/src/java/net/sf/jabref/imports/ImportCustomizationDialog.java b/src/java/net/sf/jabref/imports/ImportCustomizationDialog.java
index b4f4f79..9080059 100644
--- a/src/java/net/sf/jabref/imports/ImportCustomizationDialog.java
+++ b/src/java/net/sf/jabref/imports/ImportCustomizationDialog.java
@@ -124,9 +124,6 @@ public class ImportCustomizationDialog extends JDialog {
          } catch (Exception exc) {           
            exc.printStackTrace();
            JOptionPane.showMessageDialog(frame, Globals.lang("Could not instantiate %0 %1", chosenFileStr + ":\n", exc.getMessage()));
-         } catch (NoClassDefFoundError exc) {
-           exc.printStackTrace();
-           JOptionPane.showMessageDialog(frame, Globals.lang("Could not instantiate %0 %1. Have you chosen the correct package path?", chosenFileStr + ":\n", exc.getMessage()));           
          }
 
          addOrReplaceImporter(importer);
@@ -148,13 +145,8 @@ public class ImportCustomizationDialog extends JDialog {
            zipFile = new ZipFile(new File(basePath), ZipFile.OPEN_READ);
          } catch (IOException exc) {
            exc.printStackTrace();
-           JOptionPane.showMessageDialog(frame, Globals.lang("Could not open %0 %1", basePath + ":\n", exc.getMessage()) 
-                                              + "\n" + Globals.lang("Have you chosen the correct package path?"));
+           JOptionPane.showMessageDialog(frame, Globals.lang("Could not open %0 %1", basePath + ":\n", exc.getMessage()));
            return;         
-         } catch (NoClassDefFoundError exc) {
-           exc.printStackTrace();
-           JOptionPane.showMessageDialog(frame, Globals.lang("Could not instantiate %0 %1", basePath + ":\n", exc.getMessage())
-                                              + "\n" + Globals.lang("Have you chosen the correct package path?"));           
          }
        }
          
diff --git a/src/java/net/sf/jabref/imports/ImportFormatReader.java b/src/java/net/sf/jabref/imports/ImportFormatReader.java
index fee48c8..03406f5 100644
--- a/src/java/net/sf/jabref/imports/ImportFormatReader.java
+++ b/src/java/net/sf/jabref/imports/ImportFormatReader.java
@@ -145,18 +145,31 @@ public class ImportFormatReader {
     return importFromFile(importer, filename);
   }
 
-  public List importFromFile(ImportFormat importer, String filename)
-    throws IOException {
-    File file = new File(filename);
-    InputStream stream = new FileInputStream(file);
-
-    if (!importer.isRecognizedFormat(stream))
-      throw new IOException(Globals.lang("Wrong file format"));
-
-    stream = new FileInputStream(file);
+    public List importFromFile(ImportFormat importer, String filename) throws IOException {
+        List result = null;
+        InputStream stream = null;
+
+        try {
+            File file = new File(filename);
+            stream = new FileInputStream(file);
+
+            if (!importer.isRecognizedFormat(stream))
+                throw new IOException(Globals.lang("Wrong file format"));
+
+            stream = new FileInputStream(file);
+
+            result = importer.importEntries(stream);
+        } finally {
+            try {
+                if (stream != null)
+                    stream.close();
+            } catch (IOException ex) {
+                throw ex;
+            }
+        }
 
-    return importer.importEntries(stream);
-  }
+        return result;
+    }
 
   public static BibtexDatabase createDatabase(List bibentries) {
     purgeEmptyEntries(bibentries);
diff --git a/src/java/net/sf/jabref/imports/InspecImporter.java b/src/java/net/sf/jabref/imports/InspecImporter.java
index 876dd59..a90b7b4 100644
--- a/src/java/net/sf/jabref/imports/InspecImporter.java
+++ b/src/java/net/sf/jabref/imports/InspecImporter.java
@@ -11,6 +11,7 @@ import net.sf.jabref.Globals;
 import net.sf.jabref.AuthorList;
 
 import java.util.regex.Pattern;
+import net.sf.jabref.BibtexFields;
 
 /**
  * INSPEC format importer.
@@ -21,7 +22,7 @@ public class InspecImporter extends ImportFormat {
      * Return the name of this import format.
      */
     public String getFormatName() {
-	return "INSPEC";
+        return "INSPEC";
     }
 
   /*
@@ -31,7 +32,7 @@ public class InspecImporter extends ImportFormat {
   public String getCLIId() {
     return "inspec";
   }
-    
+
   /**
    * Check whether the source is in the correct format for this importer.
    */
@@ -63,75 +64,75 @@ public class InspecImporter extends ImportFormat {
      * objects.
      */
     public List importEntries(InputStream stream) throws IOException {
-	ArrayList bibitems = new ArrayList();
-	StringBuffer sb = new StringBuffer();
-	BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
-	String str;
-	while ((str = in.readLine()) != null){
-	    if (str.length() < 2) continue;
-	    if (str.indexOf("Record") == 0) sb.append("__::__").append(str);
-	    else
+        ArrayList bibitems = new ArrayList();
+        StringBuffer sb = new StringBuffer();
+        BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
+        String str;
+        while ((str = in.readLine()) != null){
+            if (str.length() < 2) continue;
+            if (str.indexOf("Record") == 0) sb.append("__::__").append(str);
+            else
             sb.append("__NEWFIELD__").append(str);
-	}
-	in.close();
-	String[] entries = sb.toString().split("__::__");
-	String Type = "";
-	HashMap h = new HashMap();
-	for (int i = 0; i < entries.length; i++){
-	    if (entries[i].indexOf("Record") != 0) continue;
-	    h.clear();
-	    
-	    String[] fields = entries[i].split("__NEWFIELD__");
-	    for (int j = 0; j < fields.length; j++){
-		//System.out.println(fields[j]);
-		String s = fields[j];
-		String f3 = s.substring(0, 2);
-		String frest = s.substring(5);
-		if (f3.equals("TI")) h.put("title", frest);
-		else if (f3.equals("PY")) h.put("year", frest);
-		else if (f3.equals("AU")) h.put("author",
-						AuthorList.fixAuthor_lastNameFirst(frest.replaceAll(",-", ", ").replaceAll(
+        }
+        in.close();
+        String[] entries = sb.toString().split("__::__");
+        String Type = "";
+        HashMap h = new HashMap();
+        for (int i = 0; i < entries.length; i++){
+            if (entries[i].indexOf("Record") != 0) continue;
+            h.clear();
+
+            String[] fields = entries[i].split("__NEWFIELD__");
+            for (int j = 0; j < fields.length; j++){
+                //System.out.println(fields[j]);
+                String s = fields[j];
+                String f3 = s.substring(0, 2);
+                String frest = s.substring(5);
+                if (f3.equals("TI")) h.put("title", frest);
+                else if (f3.equals("PY")) h.put("year", frest);
+                else if (f3.equals("AU")) h.put("author",
+                                                AuthorList.fixAuthor_lastNameFirst(frest.replaceAll(",-", ", ").replaceAll(
                                                         ";", " and ")));
-		else if (f3.equals("AB")) h.put("abstract", frest);
-		else if (f3.equals("ID")) h.put("keywords", frest);
-		else if (f3.equals("SO")){
-		    int m = frest.indexOf(".");
-		    if (m >= 0){
-			String jr = frest.substring(0, m);
-			h.put("journal", jr.replaceAll("-", " "));
-			frest = frest.substring(m);
-			m = frest.indexOf(";");
-			if (m >= 5){
-			    String yr = frest.substring(m - 5, m);
-			    h.put("year", yr);
-			    frest = frest.substring(m);
-			    m = frest.indexOf(":");
-			    if (m >= 0){
-				String pg = frest.substring(m + 1).trim();
-				h.put("pages", pg);
-				h.put("volume", frest.substring(1, m));
-			    }
-			}
-		    }
-		    
-		}else if (f3.equals("RT")){
-		    frest = frest.trim();
-		    if (frest.equals("Journal-Paper")) Type = "article";
-		    else if (frest.equals("Conference-Paper")
-			     || frest.equals("Conference-Paper; Journal-Paper")) Type = "inproceedings";
-		    else Type = frest.replaceAll(" ", "");
-		}
-	    }
-	    BibtexEntry b = new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID, Globals
-					    .getEntryType(Type)); // id assumes an existing database so don't
-	    // create one here
-	    b.setField(h);
-	    
-	    bibitems.add(b);
-	    
-	}
-    
-	return bibitems;
+                else if (f3.equals("AB")) h.put("abstract", frest);
+                else if (f3.equals("ID")) h.put("keywords", frest);
+                else if (f3.equals("SO")){
+                    int m = frest.indexOf(".");
+                    if (m >= 0){
+                        String jr = frest.substring(0, m);
+                        h.put("journal", jr.replaceAll("-", " "));
+                        frest = frest.substring(m);
+                        m = frest.indexOf(";");
+                        if (m >= 5){
+                            String yr = frest.substring(m - 5, m);
+                            h.put("year", yr);
+                            frest = frest.substring(m);
+                            m = frest.indexOf(":");
+                            if (m >= 0){
+                                String pg = frest.substring(m + 1).trim();
+                                h.put("pages", pg);
+                                h.put("volume", frest.substring(1, m));
+                            }
+                        }
+                    }
+
+                }else if (f3.equals("RT")){
+                    frest = frest.trim();
+                    if (frest.equals("Journal-Paper")) Type = "article";
+                    else if (frest.equals("Conference-Paper")
+                             || frest.equals("Conference-Paper; Journal-Paper")) Type = "inproceedings";
+                    else Type = frest.replaceAll(" ", "");
+                }
+            }
+            BibtexEntry b = new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID, Globals
+                                            .getEntryType(Type)); // id assumes an existing database so don't
+            // create one here
+            b.setField(h);
+
+            bibitems.add(b);
+
+        }
+
+        return bibitems;
     }
 }
 
diff --git a/src/java/net/sf/jabref/imports/IsiImporter.java b/src/java/net/sf/jabref/imports/IsiImporter.java
index 3b502a6..5a6d8a5 100644
--- a/src/java/net/sf/jabref/imports/IsiImporter.java
+++ b/src/java/net/sf/jabref/imports/IsiImporter.java
@@ -12,6 +12,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.regex.Pattern;
+import net.sf.jabref.BibtexFields;
 
 
 /**
@@ -32,7 +33,7 @@ public class IsiImporter extends ImportFormat {
   public String getCLIId() {
     return "isi";
   }
-    
+
   /**
    * Check whether the source is in the correct format for this importer.
    */
@@ -119,7 +120,7 @@ public class IsiImporter extends ImportFormat {
         if (fields[j].length() <= 2)
           continue;
 
-        // this is Java 1.5.0 code: 
+        // this is Java 1.5.0 code:
         // fields[j] = fields[j].replace(" - ", "");
         // TODO: switch to 1.5.0 some day; until then, use 1.4.2 code:
         fields[j] = fields[j].replaceAll(" - ", "");
@@ -137,7 +138,7 @@ public class IsiImporter extends ImportFormat {
         } else if (beg.equals("JO"))
           hm.put("booktitle", value);
         else if (beg.equals("AU")) {
-	    String author = isiAuthorConvert(
+            String author = isiAuthorConvert(
             AuthorList.fixAuthor_lastNameFirst(value.replaceAll("EOLEOL", " and ")));
 
           // if there is already someone there then append with "and"
@@ -181,10 +182,10 @@ public class IsiImporter extends ImportFormat {
         }
         else if (beg.equals("DT")) {
           Type = value;
-	  if (Type.equals("Review")) {
-	      Type = "article";
-	      // set "Review" in Note/Comment?
-	  }
+          if (Type.equals("Review")) {
+              Type = "article";
+              // set "Review" in Note/Comment?
+          }
           else if (!Type.equals("Article") && !PT.equals("Journal"))
             Type = "misc";
           else
@@ -198,7 +199,7 @@ public class IsiImporter extends ImportFormat {
         hm.put("pages", pages);
 
       BibtexEntry b =
-        new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID, Globals.getEntryType(Type)); // id assumes an existing database so don't
+        new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID, Globals.getEntryType(Type)); // id assumes an existing database so don't
 
       // create one here
       b.setField(hm);
@@ -210,26 +211,26 @@ public class IsiImporter extends ImportFormat {
   }
 
     private String isiAuthorConvert(String authors) {
-	String[] author = authors.split(" and ");
-	StringBuffer sb = new StringBuffer();
-	for (int i=0; i<author.length; i++) {
-	    int pos = author[i].indexOf(", ");
-	    if (pos > 0) {
-		sb.append(author[i].substring(0, pos));
-		sb.append(", ");
-
-		for (int j=pos+2; j<author[i].length(); j++) {
-		    sb.append(author[i].charAt(j));
-		    sb.append(".");
-		    if (j<author[i].length()-1)
-			sb.append(" ");
-		}
-	    } else
-		sb.append(author[i]);
-	    if (i<author.length-1)
-		sb.append(" and ");
-	}
-	return sb.toString();
+        String[] author = authors.split(" and ");
+        StringBuffer sb = new StringBuffer();
+        for (int i=0; i<author.length; i++) {
+            int pos = author[i].indexOf(", ");
+            if (pos > 0) {
+                sb.append(author[i].substring(0, pos));
+                sb.append(", ");
+
+                for (int j=pos+2; j<author[i].length(); j++) {
+                    sb.append(author[i].charAt(j));
+                    sb.append(".");
+                    if (j<author[i].length()-1)
+                        sb.append(" ");
+                }
+            } else
+                sb.append(author[i]);
+            if (i<author.length-1)
+                sb.append(" and ");
+        }
+        return sb.toString();
     }
 
 }
diff --git a/src/java/net/sf/jabref/imports/MedlineFetcher.java b/src/java/net/sf/jabref/imports/MedlineFetcher.java
index a3c56e4..3f886df 100644
--- a/src/java/net/sf/jabref/imports/MedlineFetcher.java
+++ b/src/java/net/sf/jabref/imports/MedlineFetcher.java
@@ -36,27 +36,27 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
      *        nested class.
      */
     public class SearchResult {
-	public int count;
-	public int retmax;
-	public int retstart;
-	public String ids = "";
+        public int count;
+        public int retmax;
+        public int retstart;
+        public String ids = "";
     public ArrayList idList = new ArrayList();
-	public SearchResult()
-	    {
-		count = 0;
-		retmax = 0;
-		retstart = 0;
-	    }
-
-	public void addID(String id)
+        public SearchResult()
+            {
+                count = 0;
+                retmax = 0;
+                retstart = 0;
+            }
+
+        public void addID(String id)
         {
 
         idList.add(id);
-		if(!ids.equals(""))
-		    ids += ","+id;
-		else
-		    ids = id;
-	    }
+                if(!ids.equals(""))
+                    ids += ","+id;
+                else
+                    ids = id;
+            }
     }
     final int PACING = 20;
     final int MAX_TO_FETCH = 10;
@@ -70,44 +70,44 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
     AuthorDialog authorDialog;
     JFrame jFrame; // invisible dialog holder
     JButton go = new JButton(Globals.lang("Fetch")),
-	helpBut = new JButton(new ImageIcon(GUIGlobals.helpIconFile));
+        helpBut = new JButton(new ImageIcon(GUIGlobals.helpIconFile));
     HelpAction help;
-    
+
     public MedlineFetcher(SidePaneManager p0) {
-	super(p0, GUIGlobals.fetchMedlineIcon, Globals.lang("Fetch Medline"));
-
-	help = new HelpAction(Globals.helpDiag, GUIGlobals.medlineHelp, "Help");
-	helpBut.addActionListener(help);
-	helpBut.setMargin(new Insets(0,0,0,0));        
-	//tf.setMinimumSize(new Dimension(1,1));
-	//add(hd, BorderLayout.NORTH);
-	//ok.setToolTipText(Globals.lang("Fetch Medline"));
+        super(p0, GUIGlobals.fetchMedlineIcon, Globals.lang("Fetch Medline"));
+
+        help = new HelpAction(Globals.helpDiag, GUIGlobals.medlineHelp, "Help");
+        helpBut.addActionListener(help);
+        helpBut.setMargin(new Insets(0,0,0,0));
+        //tf.setMinimumSize(new Dimension(1,1));
+        //add(hd, BorderLayout.NORTH);
+        //ok.setToolTipText(Globals.lang("Fetch Medline"));
         JPanel main = new JPanel();
-    	main.setLayout(gbl);
-	con.fill = GridBagConstraints.BOTH;
-	//con.insets = new Insets(0, 0, 2,  0);
-	con.gridwidth = GridBagConstraints.REMAINDER;
-	con.weightx = 1;
-	con.weighty = 1;
-	con.fill = GridBagConstraints.BOTH;
-	gbl.setConstraints(tf, con);
-	main.add(tf);
-	con.weighty = 0;
-	con.gridwidth = 1;
-	gbl.setConstraints(go, con);
-	main.add(go);
-	con.gridwidth = GridBagConstraints.REMAINDER;
-	gbl.setConstraints(helpBut, con);
-	main.add(helpBut);
-	ActionListener listener = new ActionListener() {
-		public void actionPerformed(ActionEvent e) {
-		    (new Thread(ths)).start(); // Run fetch in thread.
-		}
-	    };
+            main.setLayout(gbl);
+        con.fill = GridBagConstraints.BOTH;
+        //con.insets = new Insets(0, 0, 2,  0);
+        con.gridwidth = GridBagConstraints.REMAINDER;
+        con.weightx = 1;
+        con.weighty = 1;
+        con.fill = GridBagConstraints.BOTH;
+        gbl.setConstraints(tf, con);
+        main.add(tf);
+        con.weighty = 0;
+        con.gridwidth = 1;
+        gbl.setConstraints(go, con);
+        main.add(go);
+        con.gridwidth = GridBagConstraints.REMAINDER;
+        gbl.setConstraints(helpBut, con);
+        main.add(helpBut);
+        ActionListener listener = new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    (new Thread(ths)).start(); // Run fetch in thread.
+                }
+            };
         main.setBorder(BorderFactory.createEmptyBorder(1,1,1,1));
-	add(main, BorderLayout.CENTER);
-	go.addActionListener(listener);
-	tf.addActionListener(listener);
+        add(main, BorderLayout.CENTER);
+        go.addActionListener(listener);
+        tf.addActionListener(listener);
         tf.addFocusListener(new FocusAdapter() {
             public void focusGained(FocusEvent event) {
                 if (!event.isTemporary() && (tf.getText().length()>0)) {
@@ -116,51 +116,51 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
             }
         });
     }
-    
+
     public JTextField getTextField() {
         return tf;
     }
-    
+
     public void fetchById() {
-	//if(idList==null || idList.trim().equals(""))//if user pressed cancel
-	//  return;
-	Pattern p = Pattern.compile("\\d+[,\\d+]*");
-	//System.out.println(""+p+"\t"+idList);
-	Matcher m = p.matcher( idList );
-	if ( m.matches() ) {
-	    panel.frame().output(Globals.lang("Fetching Medline by ID..."));
-	    
-	    ArrayList bibs = fetchMedline(idList);
-	    if ((bibs != null) && (bibs.size() > 0)) {
-		//if (panel.prefs().getBoolean("useOwner")) {
-		//    Util.setDefaultOwner(bibs, panel.prefs().get("defaultOwner"));
-		//}
-		tf.setText("");
-		/*NamedCompound ce = new NamedCompound("fetch Medline");
-		Iterator i = bibs.iterator();
-		while (i.hasNext()) {
-		    try {
-			BibtexEntry be = (BibtexEntry) i.next();
-			String id = Util.createId(be.getType(), panel.database());
-			be.setId(id);
-			entries.add(be);
-			//panel.database().insertEntry(be);
-			//ce.addEdit(new UndoableInsertEntry(panel.database(), be, panel));
-		    }
-		    catch (KeyCollisionException ex) {
-		    }
-		    }*/
-		//ce.end();
+        //if(idList==null || idList.trim().equals(""))//if user pressed cancel
+        //  return;
+        Pattern p = Pattern.compile("\\d+[,\\d+]*");
+        //System.out.println(""+p+"\t"+idList);
+        Matcher m = p.matcher( idList );
+        if ( m.matches() ) {
+            panel.frame().output(Globals.lang("Fetching Medline by ID..."));
+
+            ArrayList bibs = fetchMedline(idList);
+            if ((bibs != null) && (bibs.size() > 0)) {
+                //if (panel.prefs().getBoolean("useOwner")) {
+                //    Util.setDefaultOwner(bibs, panel.prefs().get("defaultOwner"));
+                //}
+                tf.setText("");
+                /*NamedCompound ce = new NamedCompound("fetch Medline");
+                Iterator i = bibs.iterator();
+                while (i.hasNext()) {
+                    try {
+                        BibtexEntry be = (BibtexEntry) i.next();
+                        String id = Util.createId(be.getType(), panel.database());
+                        be.setId(id);
+                        entries.add(be);
+                        //panel.database().insertEntry(be);
+                        //ce.addEdit(new UndoableInsertEntry(panel.database(), be, panel));
+                    }
+                    catch (KeyCollisionException ex) {
+                    }
+                    }*/
+                //ce.end();
 
         panel.frame().addImportedEntries(panel, bibs, null, false, this);
 
         /*
-		int importedEntries = panel.frame().addBibEntries(bibs, null, false);
+                int importedEntries = panel.frame().addBibEntries(bibs, null, false);
         if (importedEntries == 0) {
             return; // Nothing to refresh!
         }
         panel.markBaseChanged();
-		panel.refreshTable();
+                panel.refreshTable();
         if (bibs.size() > 0) {
             BibtexEntry[] entries = (BibtexEntry[])bibs.toArray(new BibtexEntry[0]);
             panel.selectEntries(entries, 0);
@@ -170,15 +170,15 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
             //    panel.updateViewToSelected();
         }*/
 
-		//panel.undoManager.addEdit(ce);
-	    } else
-		panel.output(Globals.lang("No Medline entries found."));
-	} else {
-	    JOptionPane.showMessageDialog(panel.frame(),Globals.lang("Please enter a semicolon or comma separated list of Medline IDs (numbers)."),Globals.lang("Input error"),JOptionPane.ERROR_MESSAGE);
-	}
+                //panel.undoManager.addEdit(ce);
+            } else
+                panel.output(Globals.lang("No Medline entries found."));
+        } else {
+            JOptionPane.showMessageDialog(panel.frame(),Globals.lang("Please enter a semicolon or comma separated list of Medline IDs (numbers)."),Globals.lang("Input error"),JOptionPane.ERROR_MESSAGE);
+        }
     }
-    
-    
+
+
 
 //==================================================
 //
@@ -199,8 +199,8 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
         while ((c=un.read()) != -1) {
           System.out.print((char)c);
         }*/
-        
-        
+
+
         // Obtain a factory object for creating SAX parsers
         SAXParserFactory parserFactory = SAXParserFactory.newInstance();
         // Configure the factory object to specify attributes of the parsers it creates
@@ -213,15 +213,15 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
         // Start the parser. It reads the file and calls methods of the handler.
 
         parser.parse( data.getInputStream(), handler);
-	/*FileOutputStream out = new FileOutputStream(new File("/home/alver/ut.txt"));
-	System.out.println("#####");
-	InputStream is = data.getInputStream();
-	int c;
-	while ((c = is.read()) != -1) {
-	    out.write((char)c);
-	}
-	System.out.println("#####");
-	out.close();*/
+        /*FileOutputStream out = new FileOutputStream(new File("/home/alver/ut.txt"));
+        System.out.println("#####");
+        InputStream is = data.getInputStream();
+        int c;
+        while ((c = is.read()) != -1) {
+            out.write((char)c);
+        }
+        System.out.println("#####");
+        out.close();*/
         // When you're done, report the results stored by your handler object
         bibItems = handler.getItems();
 
@@ -234,45 +234,45 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
 
    public void run() {
 
-	idList = tf.getText().replace(';', ',');
+        idList = tf.getText().replace(';', ',');
 
-	//if(idList==null || idList.trim().equals(""))//if user pressed cancel
-	//    return;
+        //if(idList==null || idList.trim().equals(""))//if user pressed cancel
+        //    return;
         Pattern p1 = Pattern.compile("\\d+[,\\d+]*"),
             p2 = Pattern.compile(".+[,.+]*");
 
          Matcher m1 = p1.matcher( idList ),
              m2 = p2.matcher( idList );
          if ( m1.matches() ) {
-	     panel.frame().output(Globals.lang("Fetching Medline by id ..."));
-	     idList = tf.getText().replace(';', ',');
-	     fetchById();
-	     //System.out.println("Fetch by id");
+             panel.frame().output(Globals.lang("Fetching Medline by id ..."));
+             idList = tf.getText().replace(';', ',');
+             fetchById();
+             //System.out.println("Fetch by id");
          }
          else if ( m2.matches() ) {
-	    panel.frame().output(Globals.lang("Fetching Medline by term ..."));
+            panel.frame().output(Globals.lang("Fetching Medline by term ..."));
 
-	    // my stuff
-	    //---------------------------
-	    String searchTerm = setupTerm(idList); // fix the syntax
-	    SearchResult result = getIds(searchTerm ,0,1); // get the ids from entrez
-	    // prompt the user to number articles to retrieve
+            // my stuff
+            //---------------------------
+            String searchTerm = setupTerm(idList); // fix the syntax
+            SearchResult result = getIds(searchTerm ,0,1); // get the ids from entrez
+            // prompt the user to number articles to retrieve
             if (result.count == 0) {
                 JOptionPane.showMessageDialog(panel.frame(), Globals.lang("No references found"));
                 return;
             }
-	    String question = 
-		Globals.lang("References found")+": "
-		+ Integer.toString(result.count)+"  "
-		+ Globals.lang("Number of references to fetch?");
-	    String strCount = 
-		JOptionPane.showInputDialog(question, 
-					    Integer.toString(result.count));
-	    
-	    // for strCount ...
-	    if(strCount.equals(""))
-		    return;
-	    int count;
+            String question =
+                Globals.lang("References found")+": "
+                + Integer.toString(result.count)+"  "
+                + Globals.lang("Number of references to fetch?");
+            String strCount =
+                JOptionPane.showInputDialog(question,
+                                            Integer.toString(result.count));
+
+            // for strCount ...
+            if(strCount.equals(""))
+                    return;
+            int count;
         try {
             count = Integer.parseInt(strCount);
         } catch (NumberFormatException ex) {
@@ -281,7 +281,7 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
         }
 
         ImportInspectionDialog diag = new ImportInspectionDialog(panel.frame(), panel,
-                GUIGlobals.DEFAULT_INSPECTION_FIELDS, Globals.lang("Fetch Medline"), false);
+                BibtexFields.DEFAULT_INSPECTION_FIELDS, Globals.lang("Fetch Medline"), false);
         Util.placeDialog(diag, panel.frame());
          diag.setDefaultSelected(false); // Make sure new entries are not selected by default.
 
@@ -307,11 +307,11 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
                 keepOn = false;
              }
          });
-	    for (int jj = 0; jj < count; jj+=PACING) {
+            for (int jj = 0; jj < count; jj+=PACING) {
             if (!keepOn)
                 break;
-		    // get the ids from entrez
-		    result = getIds(searchTerm,jj,PACING);
+                    // get the ids from entrez
+                    result = getIds(searchTerm,jj,PACING);
 
             /*String[] test = getTitles((String[])result.idList.toArray(new String[0]));
             for (int pelle=0; pelle<test.length; pelle++) {
@@ -323,9 +323,9 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
                 break;
             diag.addEntries(bibs);
             diag.setProgress(jj+PACING, count);
-	    }
+            }
          diag.entryListComplete();
-	 }
+         }
    }
     public String setupTerm(String in){
         Pattern part1=Pattern.compile(", ");
@@ -346,21 +346,21 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
     public SearchResult getIds(String term, int start,int pacing){
         String baseUrl="http://eutils.ncbi.nlm.nih.gov/entrez/eutils";
         String medlineUrl = baseUrl
-	    +"/esearch.fcgi?db=pubmed&retmax="
-	    +Integer.toString(pacing)
-	    +"&retstart="+Integer.toString(start)
-	    +"&term=";
+            +"/esearch.fcgi?db=pubmed&retmax="
+            +Integer.toString(pacing)
+            +"&retstart="+Integer.toString(start)
+            +"&term=";
         Pattern idPattern=Pattern.compile("<Id>(\\d+)</Id>");
         Pattern countPattern=Pattern.compile("<Count>(\\d+)<\\/Count>");
-	Pattern retMaxPattern=Pattern.compile("<RetMax>(\\d+)<\\/RetMax>");
-	Pattern retStartPattern=Pattern.compile("<RetStart>(\\d+)<\\/RetStart>");
+        Pattern retMaxPattern=Pattern.compile("<RetMax>(\\d+)<\\/RetMax>");
+        Pattern retStartPattern=Pattern.compile("<RetStart>(\\d+)<\\/RetStart>");
         Matcher idMatcher;
         Matcher countMatcher;
         Matcher retMaxMatcher;
         Matcher retStartMatcher;
-	boolean doCount = true;
-	SearchResult result = new SearchResult();
-	//System.out.println(medlineUrl+term);
+        boolean doCount = true;
+        SearchResult result = new SearchResult();
+        //System.out.println(medlineUrl+term);
         try{
             URL ncbi = new URL(medlineUrl+term);
             // get the ids
@@ -372,24 +372,24 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
             String inLine;
             while ((inLine=in.readLine())!=null){
 
-		// get the count
-		idMatcher=idPattern.matcher(inLine);
-		if (idMatcher.find()){
-		    result.addID(idMatcher.group(1));
-		}
-		retMaxMatcher=retMaxPattern.matcher(inLine);
-		if (idMatcher.find()){
-		    result.retmax=Integer.parseInt(retMaxMatcher.group(1));
-		}
-		retStartMatcher=retStartPattern.matcher(inLine);
-		if (retStartMatcher.find()){
-		    result.retstart=Integer.parseInt(retStartMatcher.group(1));
-		}
-		countMatcher=countPattern.matcher(inLine);
-		if (doCount && countMatcher.find()){
-		    result.count=Integer.parseInt(countMatcher.group(1));
-		    doCount = false;
-		}
+                // get the count
+                idMatcher=idPattern.matcher(inLine);
+                if (idMatcher.find()){
+                    result.addID(idMatcher.group(1));
+                }
+                retMaxMatcher=retMaxPattern.matcher(inLine);
+                if (idMatcher.find()){
+                    result.retmax=Integer.parseInt(retMaxMatcher.group(1));
+                }
+                retStartMatcher=retStartPattern.matcher(inLine);
+                if (retStartMatcher.find()){
+                    result.retstart=Integer.parseInt(retStartMatcher.group(1));
+                }
+                countMatcher=countPattern.matcher(inLine);
+                if (doCount && countMatcher.find()){
+                    result.count=Integer.parseInt(countMatcher.group(1));
+                    doCount = false;
+                }
             }
 
         }
@@ -417,49 +417,49 @@ public class MedlineFetcher extends SidePaneComponent implements Runnable,
 
         // get the xml for an entry
     public String getOneCitation(String id){
-	String baseUrl="http://eutils.ncbi.nlm.nih.gov/entrez/eutils";
-	String retrieveUrl = baseUrl+"/efetch.fcgi?db=pubmed&retmode=xml&rettype=citation&id=";
-	StringBuffer sb=new StringBuffer();
-	try{
-	    URL ncbi = new URL(retrieveUrl+id);
-	    HttpURLConnection ncbiCon=(HttpURLConnection)ncbi.openConnection();
-	    BufferedReader in =
-		new BufferedReader
-		(new InputStreamReader
-		 ( ncbi.openStream()));
-	    String inLine;
-	    while ((inLine=in.readLine())!=null){
-
-		sb.append(inLine);
-	    }
-
-	}
-	catch (MalformedURLException e) {     // new URL() failed
-	    System.out.println("bad url");
-	    e.printStackTrace();
-	}
-	catch (IOException e) {               // openConnection() failed
-	    System.out.println("connection failed");
-	    e.printStackTrace();
-
-	}
-	return sb.toString();
+        String baseUrl="http://eutils.ncbi.nlm.nih.gov/entrez/eutils";
+        String retrieveUrl = baseUrl+"/efetch.fcgi?db=pubmed&retmode=xml&rettype=citation&id=";
+        StringBuffer sb=new StringBuffer();
+        try{
+            URL ncbi = new URL(retrieveUrl+id);
+            HttpURLConnection ncbiCon=(HttpURLConnection)ncbi.openConnection();
+            BufferedReader in =
+                new BufferedReader
+                (new InputStreamReader
+                 ( ncbi.openStream()));
+            String inLine;
+            while ((inLine=in.readLine())!=null){
+
+                sb.append(inLine);
+            }
+
+        }
+        catch (MalformedURLException e) {     // new URL() failed
+            System.out.println("bad url");
+            e.printStackTrace();
+        }
+        catch (IOException e) {               // openConnection() failed
+            System.out.println("connection failed");
+            e.printStackTrace();
+
+        }
+        return sb.toString();
     }
 
         // parse out the titles from the xml
     public String getVitalData(String sb){
-	StringBuffer result=new StringBuffer();
-	Pattern articleTitle=Pattern.compile("<ArticleTitle>(.+)</ArticleTitle>");
-	Pattern authorName=Pattern.compile("<Author>(.+)</Author>");
-	Matcher matcher;
-	matcher=articleTitle.matcher(sb);
-	if (matcher.find())
+        StringBuffer result=new StringBuffer();
+        Pattern articleTitle=Pattern.compile("<ArticleTitle>(.+)</ArticleTitle>");
+        Pattern authorName=Pattern.compile("<Author>(.+)</Author>");
+        Matcher matcher;
+        matcher=articleTitle.matcher(sb);
+        if (matcher.find())
         result.append("Title: ").append(matcher.group(1));
 
-	//matcher=authorName.matcher(sb);
-	//while (matcher.find())
-	//   result.append("\tAuthor: "+matcher.group(1));
-	return result.toString();
+        //matcher=authorName.matcher(sb);
+        //while (matcher.find())
+        //   result.append("\tAuthor: "+matcher.group(1));
+        return result.toString();
     }
 
     // This method is called by the dialog when the user has selected the
diff --git a/src/java/net/sf/jabref/imports/MedlineHandler.java b/src/java/net/sf/jabref/imports/MedlineHandler.java
index f8d7759..15b19fc 100644
--- a/src/java/net/sf/jabref/imports/MedlineHandler.java
+++ b/src/java/net/sf/jabref/imports/MedlineHandler.java
@@ -1,6 +1,4 @@
 package net.sf.jabref.imports;
-import java.util.regex.*;
-import javax.xml.parsers.*;
 import java.util.ArrayList;
 import org.xml.sax.*;
 import org.xml.sax.helpers.*;
@@ -45,11 +43,11 @@ public class MedlineHandler extends DefaultHandler
 		inIssue = false,			inPubDate = false,
 		inUrl=false, inForename=false, inAbstractText=false, inMedlineDate=false,
 		inPubMedID=false, inDescriptorName=false,inDoi=false,inPii=false;
-    String title="", journal="", keyword="",author="",
+    String title="", journal="", keywords ="",author="",
 		lastName="",year="",forename="", abstractText="";
     String month="",volume="",lastname="",initials="",number="",page="",medlineID="",url="",MedlineDate="";
     String series="",editor="",booktitle="",type="article",key="",address="",
-		pubmedid="", descriptorName="",doi="",pii="";
+		pubmedid="",doi="",pii="";
     ArrayList authors=new ArrayList();
     int rowNum=0;
     public ArrayList getItems(){ return bibitems;}
@@ -80,7 +78,14 @@ public class MedlineHandler extends DefaultHandler
 		}
                 else if(localName.equals("Author")){inAuthor=true;author="";}
                 else if(localName.equals("CollectiveName")){inForename=true;forename="";} // Morten A. 20040513.
-		else if(localName.equals("PMID")){inPubMedID=true;pubmedid="";}
+		else if(localName.equals("PMID")){
+            // Set PMID only once, because there can be <CommentIn> tags later on that
+            // contain IDs of different articles.
+            if (pubmedid.length() == 0) {
+                inPubMedID=true;
+                pubmedid="";
+            }
+        }
 		else if(localName.equals("LastName")){inLastName=true; lastName="";}
 		else if(localName.equals("ForeName") || localName.equals("FirstName")) {
 			inForename=true; forename="";
@@ -140,16 +145,13 @@ public class MedlineHandler extends DefaultHandler
 					//year = m.group();
 				}
 			}
-			//################################## 09/23/03  put {} around capitals
-
-			title=Util.putBracesAroundCapitals(title);
-			//##############################
+			
 			// Sort keywords and remove duplicates. Add pubmedid as keyword (user request)
-            StringBuffer sb = new StringBuffer(Util.sortWordsAndRemoveDuplicates(descriptorName));
+            StringBuffer sb = new StringBuffer(Util.sortWordsAndRemoveDuplicates(keywords));
             if (sb.length()>0)
                 sb.append(", ");
             sb.append(pubmedid);
-            keyword = sb.toString();
+            keywords = sb.toString();
             
 			BibtexEntry b=new BibtexEntry(Util.createNeutralId(),//Globals.DEFAULT_BIBTEXENTRY_ID,
 										  Globals.getEntryType("article")); // id assumes an existing database so don't create one here
@@ -164,7 +166,7 @@ public class MedlineHandler extends DefaultHandler
 			if (!page.equals("")) b.setField("pages",fixPageRange(page));
 			if (!volume.equals("")) b.setField("volume",volume);
 			if (!abstractText.equals("")) b.setField("abstract",abstractText.replaceAll("%","\\\\%"));
-			if (!keyword.equals("")) b.setField("keywords",keyword);
+			if (!keywords.equals("")) b.setField("keywords",keywords);
 			if (!month.equals("")) b.setField("month",month);
 			//if (!url.equals("")) b.setField("url",url);
 			if (!number.equals("")) b.setField("number",number);
@@ -176,12 +178,12 @@ public class MedlineHandler extends DefaultHandler
 			if(!pii.equals(""))
 			    b.setField("pii",pii);
 
-                        // PENDING jeffrey.kuhn at yale.edu 2005-05-27 : added "pmid" bibtex field
-                        // Older references do not have doi entries, but every
-                        // medline entry has a unique pubmed ID (aka primary ID).
-                        // Add a bibtex field for the pubmed ID for future use.
-                        if (!pubmedid.equals(""))
-                            b.setField("pmid",pubmedid);
+            // PENDING jeffrey.kuhn at yale.edu 2005-05-27 : added "pmid" bibtex field
+            // Older references do not have doi entries, but every
+            // medline entry has a unique pubmed ID (aka primary ID).
+            // Add a bibtex field for the pubmed ID for future use.
+            if (!pubmedid.equals(""))
+                b.setField("pmid",pubmedid);
                         
 			bibitems.add( b  );
 
@@ -189,7 +191,7 @@ public class MedlineHandler extends DefaultHandler
 			author = "";
 			title="";
 			journal="";
-			keyword="";
+			keywords ="";
 			doi=""; pii="";
 			year="";
 			forename="";
@@ -259,7 +261,7 @@ public class MedlineHandler extends DefaultHandler
 		else if(inMedlineID){medlineID += new String(data,start,length);}
 		else if(inURL){url += new String(data,start,length);}
 		else if(inPubMedID){pubmedid = new String(data,start,length);}
-		else if(inDescriptorName) descriptorName += new String(data,start,length) + ", ";
+		else if(inDescriptorName) keywords += new String(data,start,length) + ", ";
 		else if(inForename){
 			forename += new String(data,start,length);
 			//System.out.println("IN FORENAME: " + forename);
diff --git a/src/java/net/sf/jabref/imports/RisImporter.java b/src/java/net/sf/jabref/imports/RisImporter.java
index 0654de5..b8ceb71 100644
--- a/src/java/net/sf/jabref/imports/RisImporter.java
+++ b/src/java/net/sf/jabref/imports/RisImporter.java
@@ -10,6 +10,7 @@ import java.util.HashMap;
 import net.sf.jabref.BibtexEntry;
 import net.sf.jabref.Globals;
 import net.sf.jabref.AuthorList;
+import net.sf.jabref.BibtexFields;
 
 /**
  * Imports a Biblioscape Tag File. The format is described on
@@ -33,7 +34,7 @@ public class RisImporter extends ImportFormat {
     public String getCLIId() {
       return "ris";
     }
-    
+
     /**
      * Check whether the source is in the correct format for this importer.
      */
@@ -188,7 +189,7 @@ public class RisImporter extends ImportFormat {
         }
 
         hm.put("pages", StartPage + "--" + EndPage);
-        BibtexEntry b = new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID, Globals
+        BibtexEntry b = new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID, Globals
                         .getEntryType(Type)); // id assumes an existing database so don't
         // create one here
         b.setField(hm);
diff --git a/src/java/net/sf/jabref/imports/ScifinderImporter.java b/src/java/net/sf/jabref/imports/ScifinderImporter.java
index cbee6a8..4a6bcf4 100644
--- a/src/java/net/sf/jabref/imports/ScifinderImporter.java
+++ b/src/java/net/sf/jabref/imports/ScifinderImporter.java
@@ -9,6 +9,7 @@ import java.util.HashMap;
 import net.sf.jabref.BibtexEntry;
 import net.sf.jabref.Globals;
 import net.sf.jabref.AuthorList;
+import net.sf.jabref.BibtexFields;
 
 /**
  * Imports a Biblioscape Tag File. The format is described on
@@ -32,7 +33,7 @@ public class ScifinderImporter extends ImportFormat {
     public String getCLIId() {
       return "scifinder";
     }
-    
+
     /**
      * Check whether the source is in the correct format for this importer.
      */
@@ -87,7 +88,7 @@ public class ScifinderImporter extends ImportFormat {
             }
         }
 
-        BibtexEntry b = new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID, Globals
+        BibtexEntry b = new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID, Globals
                         .getEntryType(Type)); // id assumes an existing database so don't
         // create one here
         b.setField(hm);
diff --git a/src/java/net/sf/jabref/imports/SilverPlatterImporter.java b/src/java/net/sf/jabref/imports/SilverPlatterImporter.java
index 2c5d19e..02cc51f 100644
--- a/src/java/net/sf/jabref/imports/SilverPlatterImporter.java
+++ b/src/java/net/sf/jabref/imports/SilverPlatterImporter.java
@@ -11,6 +11,7 @@ import net.sf.jabref.Globals;
 import net.sf.jabref.AuthorList;
 
 import java.util.regex.Pattern;
+import net.sf.jabref.BibtexFields;
 
 /**
  * Imports a SilverPlatter exported file. This is a poor format to parse,
@@ -22,7 +23,7 @@ public class SilverPlatterImporter extends ImportFormat {
      * Return the name of this import format.
      */
     public String getFormatName() {
-	return "SilverPlatter";
+        return "SilverPlatter";
     }
 
     /*
@@ -32,28 +33,28 @@ public class SilverPlatterImporter extends ImportFormat {
     public String getCLIId() {
       return "silverplatter";
     }
-    
+
     /**
      * Check whether the source is in the correct format for this importer.
      */
     public boolean isRecognizedFormat(InputStream stream) throws IOException {
-	BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
-
-	// This format is very similar to Inspec, so we have a two-fold strategy:
-	// If we see the flag signalling that it is an inspec file, return false.
-	// This flag should appear above the first entry and prevent us from 
-	// accepting the Inspec format. Then we look for the title entry.
-	Pattern pat1 = Pattern.compile("Record.*INSPEC.*");
-	String str;
-	while ((str = in.readLine()) != null){
-
-	    if (pat1.matcher(str).find())
-		return false; // This is an inspec file, so return false.
-
-	    if ((str.length()>=5) && (str.substring(0, 5).equals("TI:  ")))
-		return true;
-	}
-	return false;
+        BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
+
+        // This format is very similar to Inspec, so we have a two-fold strategy:
+        // If we see the flag signalling that it is an inspec file, return false.
+        // This flag should appear above the first entry and prevent us from
+        // accepting the Inspec format. Then we look for the title entry.
+        Pattern pat1 = Pattern.compile("Record.*INSPEC.*");
+        String str;
+        while ((str = in.readLine()) != null){
+
+            if (pat1.matcher(str).find())
+                return false; // This is an inspec file, so return false.
+
+            if ((str.length()>=5) && (str.substring(0, 5).equals("TI:  ")))
+                return true;
+        }
+        return false;
     }
 
     /**
@@ -61,116 +62,116 @@ public class SilverPlatterImporter extends ImportFormat {
      * objects.
      */
     public List importEntries(InputStream stream) throws IOException {
-	ArrayList bibitems = new ArrayList();
-	BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
-	boolean isChapter = false;
-	String str;
-	StringBuffer sb = new StringBuffer();
-	while ((str = in.readLine()) != null){
-	    if (str.length() < 2) sb.append("__::__").append(str);
-	    else
+        ArrayList bibitems = new ArrayList();
+        BufferedReader in = new BufferedReader(ImportFormatReader.getReaderDefaultEncoding(stream));
+        boolean isChapter = false;
+        String str;
+        StringBuffer sb = new StringBuffer();
+        while ((str = in.readLine()) != null){
+            if (str.length() < 2) sb.append("__::__").append(str);
+            else
             sb.append("__NEWFIELD__").append(str);
-	}
-	in.close();
-	String[] entries = sb.toString().split("__::__");
-	String Type = "";
-	HashMap h = new HashMap();
-	entryLoop: for (int i = 0; i < entries.length; i++){
-	    if (entries[i].trim().length() < 6) continue entryLoop;
-	    //System.out.println("'"+entries[i]+"'");
-	    h.clear();
-	    String[] fields = entries[i].split("__NEWFIELD__");
-	    fieldLoop: for (int j = 0; j < fields.length; j++){
-		if (fields[j].length() < 6) continue fieldLoop;
-		//System.out.println(">"+fields[j]+"<");
-		String s = fields[j];
-		String f3 = s.substring(0, 2);
-		String frest = s.substring(5);
-		if (f3.equals("TI")) h.put("title", frest);
-		//else if(f3.equals("PY")) h.put("year", frest);
-		else if (f3.equals("AU")){
-		    if (frest.trim().endsWith("(ed)")){
-			String ed = frest.trim();
-			ed = ed.substring(0, ed.length() - 4);
-			h.put("editor", AuthorList.fixAuthor_lastNameFirst(ed.replaceAll(",-", ", ")
+        }
+        in.close();
+        String[] entries = sb.toString().split("__::__");
+        String Type = "";
+        HashMap h = new HashMap();
+        entryLoop: for (int i = 0; i < entries.length; i++){
+            if (entries[i].trim().length() < 6) continue entryLoop;
+            //System.out.println("'"+entries[i]+"'");
+            h.clear();
+            String[] fields = entries[i].split("__NEWFIELD__");
+            fieldLoop: for (int j = 0; j < fields.length; j++){
+                if (fields[j].length() < 6) continue fieldLoop;
+                //System.out.println(">"+fields[j]+"<");
+                String s = fields[j];
+                String f3 = s.substring(0, 2);
+                String frest = s.substring(5);
+                if (f3.equals("TI")) h.put("title", frest);
+                //else if(f3.equals("PY")) h.put("year", frest);
+                else if (f3.equals("AU")){
+                    if (frest.trim().endsWith("(ed)")){
+                        String ed = frest.trim();
+                        ed = ed.substring(0, ed.length() - 4);
+                        h.put("editor", AuthorList.fixAuthor_lastNameFirst(ed.replaceAll(",-", ", ")
                                 .replaceAll(";", " and ")));
-		    }else h.put("author", AuthorList.fixAuthor_lastNameFirst(frest.replaceAll(
+                    }else h.put("author", AuthorList.fixAuthor_lastNameFirst(frest.replaceAll(
                                            ",-", ", ").replaceAll(";", " and ")));
-		}else if (f3.equals("AB")) h.put("abstract", frest);
-		else if (f3.equals("DE")){
-		    String kw = frest.replaceAll("-;", ",").toLowerCase();
-		    h.put("keywords", kw.substring(0, kw.length() - 1));
-		}else if (f3.equals("SO")){
-		    int m = frest.indexOf(".");
-		    if (m >= 0){
-			String jr = frest.substring(0, m);
-			h.put("journal", jr.replaceAll("-", " "));
-			frest = frest.substring(m);
-			m = frest.indexOf(";");
-			if (m >= 5){
-			    String yr = frest.substring(m - 5, m).trim();
-			    h.put("year", yr);
-			    frest = frest.substring(m);
-			    m = frest.indexOf(":");
-			    if (m >= 0){
-				String pg = frest.substring(m + 1).trim();
-				h.put("pages", pg);
-				h.put("volume", frest.substring(1, m));
-			    }
-			}
-		    }
-		}else if (f3.equals("PB")){
-		    int m = frest.indexOf(":");
-		    if (m >= 0){
-			String jr = frest.substring(0, m);
-			h.put("publisher", jr.replaceAll("-", " ").trim());
-			frest = frest.substring(m);
-			m = frest.indexOf(", ");
-			if (m + 2 < frest.length()){
-			    String yr = frest.substring(m + 2).trim();
-			    h.put("year", yr);
-			}
-		    }
-		}else if (f3.equals("DT")){
-		    frest = frest.trim();
-		    if (frest.equals("Monograph")) Type = "book";
-		    else if (frest.toLowerCase().indexOf("journal") >= 0) Type = "article";
-		    else if (frest.equals("Contribution") || frest.equals("Chapter")){
-			Type = "incollection";
-			// This entry type contains page numbers and booktitle in the
-			// title field.
-			isChapter = true;
-		    }
-		    
-		    else Type = frest.replaceAll(" ", "");
-		}
-	    }
-
-	    if (isChapter) {
-		Object titleO = h.get("title");
-		if (titleO != null) {
-		    String title = ((String)titleO).trim();
-		    int inPos = title.indexOf("\" in ");
-		    int pgPos = title.lastIndexOf(" ");
-		    if (inPos > 1) h.put("title", title.substring(1, inPos));
-		    if (pgPos > inPos) h.put("pages", title.substring(pgPos)
-					     .replaceAll("-", "--"));
-		    
-		}
-
-	    }
-
-	    BibtexEntry b = new BibtexEntry(Globals.DEFAULT_BIBTEXENTRY_ID, Globals
-					    .getEntryType(Type)); // id assumes an existing database so don't
-	    // create one here
-	    b.setField(h);
-	    
-	    bibitems.add(b);
-	    
-	}
-	
-	
-	return bibitems;
+                }else if (f3.equals("AB")) h.put("abstract", frest);
+                else if (f3.equals("DE")){
+                    String kw = frest.replaceAll("-;", ",").toLowerCase();
+                    h.put("keywords", kw.substring(0, kw.length() - 1));
+                }else if (f3.equals("SO")){
+                    int m = frest.indexOf(".");
+                    if (m >= 0){
+                        String jr = frest.substring(0, m);
+                        h.put("journal", jr.replaceAll("-", " "));
+                        frest = frest.substring(m);
+                        m = frest.indexOf(";");
+                        if (m >= 5){
+                            String yr = frest.substring(m - 5, m).trim();
+                            h.put("year", yr);
+                            frest = frest.substring(m);
+                            m = frest.indexOf(":");
+                            if (m >= 0){
+                                String pg = frest.substring(m + 1).trim();
+                                h.put("pages", pg);
+                                h.put("volume", frest.substring(1, m));
+                            }
+                        }
+                    }
+                }else if (f3.equals("PB")){
+                    int m = frest.indexOf(":");
+                    if (m >= 0){
+                        String jr = frest.substring(0, m);
+                        h.put("publisher", jr.replaceAll("-", " ").trim());
+                        frest = frest.substring(m);
+                        m = frest.indexOf(", ");
+                        if (m + 2 < frest.length()){
+                            String yr = frest.substring(m + 2).trim();
+                            h.put("year", yr);
+                        }
+                    }
+                }else if (f3.equals("DT")){
+                    frest = frest.trim();
+                    if (frest.equals("Monograph")) Type = "book";
+                    else if (frest.toLowerCase().indexOf("journal") >= 0) Type = "article";
+                    else if (frest.equals("Contribution") || frest.equals("Chapter")){
+                        Type = "incollection";
+                        // This entry type contains page numbers and booktitle in the
+                        // title field.
+                        isChapter = true;
+                    }
+
+                    else Type = frest.replaceAll(" ", "");
+                }
+            }
+
+            if (isChapter) {
+                Object titleO = h.get("title");
+                if (titleO != null) {
+                    String title = ((String)titleO).trim();
+                    int inPos = title.indexOf("\" in ");
+                    int pgPos = title.lastIndexOf(" ");
+                    if (inPos > 1) h.put("title", title.substring(1, inPos));
+                    if (pgPos > inPos) h.put("pages", title.substring(pgPos)
+                                             .replaceAll("-", "--"));
+
+                }
+
+            }
+
+            BibtexEntry b = new BibtexEntry(BibtexFields.DEFAULT_BIBTEXENTRY_ID, Globals
+                                            .getEntryType(Type)); // id assumes an existing database so don't
+            // create one here
+            b.setField(h);
+
+            bibitems.add(b);
+
+        }
+
+
+        return bibitems;
     }
 }
 
diff --git a/src/java/net/sf/jabref/label/ArticleLabelRule.java b/src/java/net/sf/jabref/label/ArticleLabelRule.java
index bf4da82..fa2fc7f 100644
--- a/src/java/net/sf/jabref/label/ArticleLabelRule.java
+++ b/src/java/net/sf/jabref/label/ArticleLabelRule.java
@@ -33,7 +33,7 @@ public class ArticleLabelRule extends DefaultLabelRule {
     // this is the rule used handle articles
     // we try (first author last name)/(year)/(first unique journal word)
     public String applyRule(BibtexEntry oldEntry){
-        String oldLabel = (String) (oldEntry.getField(Globals.KEY_FIELD)) ;
+        String oldLabel = (String) (oldEntry.getField(BibtexFields.KEY_FIELD)) ;
         String newLabel = "" ;
 
         String author="";
diff --git a/src/java/net/sf/jabref/label/BookLabelRule.java b/src/java/net/sf/jabref/label/BookLabelRule.java
index 288cab7..ea2cd5c 100644
--- a/src/java/net/sf/jabref/label/BookLabelRule.java
+++ b/src/java/net/sf/jabref/label/BookLabelRule.java
@@ -28,61 +28,62 @@ package net.sf.jabref.label;
 
 import net.sf.jabref.BibtexEntry;
 import net.sf.jabref.Globals;
-import java.util.StringTokenizer ; 
+import java.util.StringTokenizer ;
+import net.sf.jabref.BibtexFields;
 
 public class BookLabelRule extends DefaultLabelRule {
 
     // this is the rule used handle articles
     // we try (first author)/(year)
     public String applyRule(BibtexEntry oldEntry){
-        String oldLabel = (String) (oldEntry.getField(Globals.KEY_FIELD)) ; 
-        String newLabel = "" ; 
+        String oldLabel = (String) (oldEntry.getField(BibtexFields.KEY_FIELD)) ;
+        String newLabel = "" ;
 
 
-        StringTokenizer authorTokens = null ; 
+        StringTokenizer authorTokens = null ;
         // use the author token
-        try{ 
+        try{
             if((String) oldEntry.getField("author")!= null){
-                authorTokens= new StringTokenizer((String) oldEntry.getField("author"),",") ; 
+                authorTokens= new StringTokenizer((String) oldEntry.getField("author"),",") ;
             }else
             if((String) oldEntry.getField("editor")!= null){
-                authorTokens= new StringTokenizer((String) oldEntry.getField("editor"),",") ; 
+                authorTokens= new StringTokenizer((String) oldEntry.getField("editor"),",") ;
             }
-            newLabel += authorTokens.nextToken().toLowerCase() ; 
+            newLabel += authorTokens.nextToken().toLowerCase() ;
         }catch(Throwable t){
-			System.out.println("error getting author/editor: "+t) ; 
+                        System.out.println("error getting author/editor: "+t) ;
         }
 
         // use the year token
         try{
             if( oldEntry.getField("year")!= null){
-                newLabel += String.valueOf( oldEntry.getField("year")) ;  
+                newLabel += String.valueOf( oldEntry.getField("year")) ;
             }
         }catch(Throwable t){
-			System.out.println("error getting author: "+t) ; 
+                        System.out.println("error getting author: "+t) ;
         }
 
         newLabel += "book" ;
-        
-	//	oldEntry.setField(Globals.KEY_FIELD,newLabel) ; 
-	return newLabel; 
+
+        //	oldEntry.setField(Globals.KEY_FIELD,newLabel) ;
+        return newLabel;
     }
 
 
 //    public static void main(String args[]){
-//        
-//        System.out.println(args[0]) ; 
-//        BibtexEntry entry = new BibtexEntry("1",BibtexEntryType.ARTICLE) ; 
-//        entry.setField("journal",args[0]) ; 
-//        entry.setField("author","jones, b") ; 
-//        entry.setField("year","1984") ; 
-//        BookLabelRule rule = new BookLabelRule() ; 
-//        entry = rule.applyRule(entry) ; 
-////        System.out.println(entry.getField("journal") ); 
-//        System.out.println(entry.getField(BibtexBaseFrame.KEY_PROPERTY) ); 
+//
+//        System.out.println(args[0]) ;
+//        BibtexEntry entry = new BibtexEntry("1",BibtexEntryType.ARTICLE) ;
+//        entry.setField("journal",args[0]) ;
+//        entry.setField("author","jones, b") ;
+//        entry.setField("year","1984") ;
+//        BookLabelRule rule = new BookLabelRule() ;
+//        entry = rule.applyRule(entry) ;
+////        System.out.println(entry.getField("journal") );
+//        System.out.println(entry.getField(BibtexBaseFrame.KEY_PROPERTY) );
 //
 //    }
-    
+
 }
 
 
diff --git a/src/java/net/sf/jabref/label/DefaultLabelRule.java b/src/java/net/sf/jabref/label/DefaultLabelRule.java
index 03ed977..a8c2914 100644
--- a/src/java/net/sf/jabref/label/DefaultLabelRule.java
+++ b/src/java/net/sf/jabref/label/DefaultLabelRule.java
@@ -28,13 +28,14 @@ package net.sf.jabref.label;
 
 import net.sf.jabref.BibtexEntry;
 import net.sf.jabref.Globals;
+import net.sf.jabref.BibtexFields;
 
 public class DefaultLabelRule implements LabelRule {
 
 
     // the default rule is that oit simply returns what it was given
     public String applyRule(BibtexEntry oldEntry){
-	return (String)oldEntry.getField(Globals.KEY_FIELD); 
+        return (String)oldEntry.getField(BibtexFields.KEY_FIELD);
     }
 
 
diff --git a/src/java/net/sf/jabref/label/InproceedingsLabelRule.java b/src/java/net/sf/jabref/label/InproceedingsLabelRule.java
index bea83d4..7f7787a 100644
--- a/src/java/net/sf/jabref/label/InproceedingsLabelRule.java
+++ b/src/java/net/sf/jabref/label/InproceedingsLabelRule.java
@@ -27,72 +27,72 @@ http://www.gnu.org/copyleft/gpl.ja.html
 package net.sf.jabref.label;
 
 import net.sf.jabref.*;
-import java.util.StringTokenizer ; 
+import java.util.StringTokenizer ;
 
 public class InproceedingsLabelRule extends DefaultLabelRule {
 
     // this is the rule used handle articles
     // we try (first author)/(year)/(first unique booktitle word)
     public String applyRule(BibtexEntry oldEntry){
-        String oldLabel = (String) (oldEntry.getField(Globals.KEY_FIELD)) ; 
-        String newLabel = "" ; 
+        String oldLabel = (String) (oldEntry.getField(BibtexFields.KEY_FIELD)) ;
+        String newLabel = "" ;
 
 
-        StringTokenizer authorTokens = null ; 
+        StringTokenizer authorTokens = null ;
         // use the author token
-        try{ 
-            authorTokens= new StringTokenizer((String) oldEntry.getField("author"),",") ; 
-            newLabel += authorTokens.nextToken().toLowerCase().replaceAll(" ","").replaceAll("\\.","")   ; 
+        try{
+            authorTokens= new StringTokenizer((String) oldEntry.getField("author"),",") ;
+            newLabel += authorTokens.nextToken().toLowerCase().replaceAll(" ","").replaceAll("\\.","")   ;
         }catch(Throwable t){
-			System.out.println("error getting author: "+t) ; 
+                        System.out.println("error getting author: "+t) ;
         }
 
         // use the year token
         try{
             if( oldEntry.getField("year")!= null){
-                newLabel += String.valueOf( oldEntry.getField("year")) ;  
+                newLabel += String.valueOf( oldEntry.getField("year")) ;
             }
         }catch(Throwable t){
-			System.out.println("error getting year: "+t) ; 
+                        System.out.println("error getting year: "+t) ;
         }
 
         // use the booktitle name
         // return the first token 4 wrds or longer, that's not a keyword
         try{
-           
+
           if(oldEntry.getField("booktitle") != null) {
-            authorTokens = new StringTokenizer( ((String) oldEntry.getField("booktitle")).replaceAll(","," ").replaceAll("/"," ")) ; 
-            String tempString = authorTokens.nextToken() ; 
-            tempString = tempString.replaceAll(",","") ; 
-            boolean done = false ; 
+            authorTokens = new StringTokenizer( ((String) oldEntry.getField("booktitle")).replaceAll(","," ").replaceAll("/"," ")) ;
+            String tempString = authorTokens.nextToken() ;
+            tempString = tempString.replaceAll(",","") ;
+            boolean done = false ;
             while(tempString!=null && !done ){
-                tempString = tempString.replaceAll(",","").trim() ; 
+                tempString = tempString.replaceAll(",","").trim() ;
                 if(tempString.trim().length() > 3 && !KeyWord.isKeyWord(tempString))  {
-                    done = true ; 
+                    done = true ;
                 }
                 else{
 
                     if(authorTokens.hasMoreTokens()){
-                        tempString = authorTokens.nextToken() ; 
+                        tempString = authorTokens.nextToken() ;
                     }else{
-                        done = true ; 
+                        done = true ;
                     }
                 }
             }
 
             if(tempString!=null && (tempString.indexOf("null")<0) ){
-                newLabel += String.valueOf( tempString.toLowerCase()) ;  
+                newLabel += String.valueOf( tempString.toLowerCase()) ;
             }
           }
         }
         catch(Throwable t){  System.err.println(t) ; }
 
-	//	oldEntry.setField(Globals.KEY_FIELD,newLabel) ; 
-	return newLabel; 
+        //	oldEntry.setField(Globals.KEY_FIELD,newLabel) ;
+        return newLabel;
     }
 
 
-    
+
 }
 
 
diff --git a/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java b/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java
index cfcc5d0..958e7d7 100644
--- a/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java
+++ b/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java
@@ -33,7 +33,7 @@ public class LabelPatternUtil {
   public static void updateDefaultPattern() {
       DEFAULT_LABELPATTERN = split(Globals.prefs.get("defaultLabelPattern"));
   }
-  
+
   /**
    * This method takes a string of the form [field1]spacer[field2]spacer[field3]...,
    * where the fields are the (required) fields of a BibTex entry. The string is split
@@ -128,23 +128,23 @@ public class LabelPatternUtil {
           field = false;
         }
         else if (field) {
-	    /* Edited by Seb Wills <saw27 at mrao.cam.ac.uk> on 13-Apr-2004
-	       Added new pseudo-fields "shortyear" and "veryshorttitle", and
-	       and ":lower" modifier for all fields (in a way easily extended to other modifiers).
-	       Helpfile help/LabelPatterns.html updated accordingly.
-	    */
-	    // check whether there is a modifier on the end such as ":lower"
-	    //String modifier = null;
+            /* Edited by Seb Wills <saw27 at mrao.cam.ac.uk> on 13-Apr-2004
+               Added new pseudo-fields "shortyear" and "veryshorttitle", and
+               and ":lower" modifier for all fields (in a way easily extended to other modifiers).
+               Helpfile help/LabelPatterns.html updated accordingly.
+            */
+            // check whether there is a modifier on the end such as ":lower"
+            //String modifier = null;
         String[] parts = val.split(":");
         val = parts[0];
         //int _mi = val.indexOf(":");
-	    //if(_mi != -1 && _mi != val.length()-1 && _mi != 0) { // ":" is in val and isn't first or last character
-		//modifier=val.substring(_mi+1);
-		//val=val.substring(0,_mi);
-	    //}
-	    StringBuffer _sbvalue = new StringBuffer();
+            //if(_mi != -1 && _mi != val.length()-1 && _mi != 0) { // ":" is in val and isn't first or last character
+                //modifier=val.substring(_mi+1);
+                //val=val.substring(0,_mi);
+            //}
+            StringBuffer _sbvalue = new StringBuffer();
 
-	    try {
+            try {
 
                if (val.startsWith("auth") || val.startsWith("pureauth")) {
 
@@ -159,12 +159,11 @@ public class LabelPatternUtil {
                   if(val.startsWith("pure")) {
                     // remove the "pure" prefix so the remaining code in this section functions correctly
                     val = val.substring(4);
-		    System.out.println("val is now "+val);
+                    System.out.println("val is now "+val);
                     authString = _entry.getField("author").toString(); // use even if empty
-		    System.out.println("Got authString " + authString);
+                    System.out.println("Got authString " + authString);
                   } else {
                     if (_entry.getField("author") == null || _entry.getField("author").toString().equals("")) {
-                      System.out.println("author empty, so replacing with editor for label generation");
                       authString = _entry.getField("editor").toString();
                     } else {
                       authString = _entry.getField("author").toString();
@@ -183,9 +182,9 @@ public class LabelPatternUtil {
                   }
                   else if (val.matches("authIni[\\d]+")) {
                     int num = Integer.parseInt(val.substring(7));
-					_sbvalue.append(authIniN(authString,num));
+                                        _sbvalue.append(authIniN(authString,num));
                   }
-				  else if (val.equals("auth.auth.ea")) {
+                                  else if (val.equals("auth.auth.ea")) {
                     _sbvalue.append(authAuthEa(authString));
                   }
                   else if (val.equals("authshort")) {
@@ -227,7 +226,7 @@ public class LabelPatternUtil {
                   }
                   else if (val.matches("edtrIni[\\d]+")) {
                     int num = Integer.parseInt(val.substring(7));
-					_sbvalue.append(authIniN(_entry.getField("editor").toString(),num));
+                                        _sbvalue.append(authIniN(_entry.getField("editor").toString(),num));
                   }
                   else if (val.matches("edtr[\\d]+_[\\d]+")) {
                     String[] nums = val.substring(4).split("_");
@@ -274,27 +273,27 @@ public class LabelPatternUtil {
                     _sbvalue.append(ss);
                   }
                 }
-                
+
                 else if(val.equals("veryshorttitle")) {
                   _sbvalue.append(getTitleWords(1, _entry));
                 }
 
-		// we havent seen any special demands
-		else {
+                // we havent seen any special demands
+                else {
                   _sbvalue.append(_entry.getField(val).toString());
-		}
-	    }
-	    catch (NullPointerException ex) {
-		    //Globals.logger("Key generator warning: field '" + val + "' empty.");
-	    }
-	    // apply modifier if present
+                }
+            }
+            catch (NullPointerException ex) {
+                    //Globals.logger("Key generator warning: field '" + val + "' empty.");
+            }
+            // apply modifier if present
         if (parts.length > 1) for (int j=1; j<parts.length; j++) {
             String modifier = parts[j];
 
             if(modifier.equals("lower")) {
                 String tmp = _sbvalue.toString().toLowerCase();
                 _sbvalue = new StringBuffer(tmp);
-		    }
+                    }
             else if (modifier.equals("abbr")) {
                 // Abbreviate - that is,
                 //System.out.println(_sbvalue.toString());
@@ -306,9 +305,9 @@ public class LabelPatternUtil {
                 _sbvalue = abbr;
             }
             else {
-		        Globals.logger("Key generator warning: unknown modifier '"+modifier+"'.");
-		    }
-	    }
+                        Globals.logger("Key generator warning: unknown modifier '"+modifier+"'.");
+                    }
+            }
 
         _sb.append(_sbvalue);
 
@@ -354,16 +353,16 @@ public class LabelPatternUtil {
     if (forceLower) {
       _label = _label.toLowerCase();
     }
-      
-    
+
+
     String oldKey = _entry.getCiteKey();
     int occurences = _db.getNumberOfKeyOccurences(_label);
     if ((oldKey != null) && oldKey.equals(_label))
         occurences--; // No change, so we can accept one dupe.
-    
+
     // Try new keys until we get a unique one:
     //if (_db.setCiteKeyForEntry(_entry.getId(), _label)) {
-    
+
     if (occurences == 0) {
         // No dupes found, so we can just go ahead.
         if (!_label.equals(oldKey))
@@ -487,7 +486,7 @@ public class LabelPatternUtil {
 
       // oh my! there is a match! we better set the uniqueness to false
       // and leave this for-loop all together
-      if (_entry.getField(Globals.KEY_FIELD).equals(label)) {
+      if (_entry.getField(BibtexFields.KEY_FIELD).equals(label)) {
         _isUnique = false;
         break;
       }
@@ -542,19 +541,19 @@ public class LabelPatternUtil {
    * @return Gets the surnames of the first N authors and appends EtAl if there are more than N authors
    */
   private static String NAuthors(String authorField, int n) {
-	    String author = "";
-	    // This code was part of 'ApplyRule' in 'ArticleLabelRule'
-	    String[] tokens = AuthorList.fixAuthorForAlphabetization(authorField).split("\\band\\b");
-	    int i = 0;
-	    while (tokens.length > i && i < n) {
-	      // convert lastname, firstname to firstname lastname
-	      String[] firstAuthor = tokens[i].replaceAll("\\s+", " ").trim().split(" ");
-	      // lastname, firstname
-	      author += firstAuthor[0];
-	      i++;
-	    }
-	    if (tokens.length <= n) return author;
-	    return author += "EtAl";
+            String author = "";
+            // This code was part of 'ApplyRule' in 'ArticleLabelRule'
+            String[] tokens = AuthorList.fixAuthorForAlphabetization(authorField).split("\\band\\b");
+            int i = 0;
+            while (tokens.length > i && i < n) {
+              // convert lastname, firstname to firstname lastname
+              String[] firstAuthor = tokens[i].replaceAll("\\s+", " ").trim().split(" ");
+              // lastname, firstname
+              author += firstAuthor[0];
+              i++;
+            }
+            if (tokens.length <= n) return author;
+            return author += "EtAl";
   }
 
   /**
@@ -637,9 +636,9 @@ public class LabelPatternUtil {
    *
    * given author names
    *   Isaac Newton and James Maxwell and Albert Einstein and N. Bohr
-   *   Isaac Newton and James Maxwell and Albert Einstein 
-   *   Isaac Newton and James Maxwell 
-   *   Isaac Newton 
+   *   Isaac Newton and James Maxwell and Albert Einstein
+   *   Isaac Newton and James Maxwell
+   *   Isaac Newton
    * yield
    *   NME+
    *   NME
@@ -657,15 +656,15 @@ public class LabelPatternUtil {
       author.append(authN_M(authorField,authorField.length(),0));
 
     } else if (tokens.length >= 2) {
-    
+
       while (tokens.length > i && i<3) {
         author.append(authN_M(authorField,1,i));
         i++;
       }
-      
-      if (tokens.length > 3) 
+
+      if (tokens.length > 3)
         author.append("+");
-      
+
     }
 
     return author.toString();
@@ -678,9 +677,9 @@ public class LabelPatternUtil {
    * authors first in the row.
    * If (N < #authors), only the fist N authors get mentioned.
    * a) I. Newton and J. Maxwell and A. Einstein and N. Bohr (..)
-   * b) I. Newton and J. Maxwell and A. Einstein 
-   * c) I. Newton and J. Maxwell 
-   * d) I. Newton 
+   * b) I. Newton and J. Maxwell and A. Einstein
+   * c) I. Newton and J. Maxwell
+   * d) I. Newton
    * E.g. authIni4 gives: a) NMEB, b) NeME, c) NeMa, d) Newt
    */
   private static String authIniN(String authorField, int n) {
@@ -689,7 +688,7 @@ public class LabelPatternUtil {
     String[] tokens = authorField.split("\\band\\b");
     int i = 0;
     int charsAll = n / tokens.length;
-    
+
     if (tokens.length == 0) {
       return author.toString();
     }
@@ -708,7 +707,7 @@ public class LabelPatternUtil {
     else
       return author.toString().substring(0, n);
   }
-      
+
 
   /**
    * Split the pages field into two and return the first one
diff --git a/src/java/net/sf/jabref/util/CaseChanger.java b/src/java/net/sf/jabref/util/CaseChanger.java
index bfceb05..21b1c7b 100644
--- a/src/java/net/sf/jabref/util/CaseChanger.java
+++ b/src/java/net/sf/jabref/util/CaseChanger.java
@@ -2,7 +2,7 @@ package net.sf.jabref.util;
 
 /* Mp3dings - manage mp3 meta-information
  * Copyright (C) 2003 Moritz Ringler
- * $Id: CaseChanger.java,v 1.2.6.1 2006/01/17 21:33:26 mortenalver Exp $
+ * $Id: CaseChanger.java,v 1.4 2006/04/05 21:41:25 mortenalver Exp $
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -25,7 +25,7 @@ import java.util.regex.Matcher;
 
 /** Class used to manage case changing
  * @author Moritz Ringler
- * @version $Revision: 1.2.6.1 $ ($Date: 2006/01/17 21:33:26 $)
+ * @version $Revision: 1.4 $ ($Date: 2006/04/05 21:41:25 $)
  */
 public class CaseChanger{
     /** Lowercase */
diff --git a/src/java/net/sf/jabref/util/ErrorConsole.java b/src/java/net/sf/jabref/util/ErrorConsole.java
new file mode 100644
index 0000000..4ff169f
--- /dev/null
+++ b/src/java/net/sf/jabref/util/ErrorConsole.java
@@ -0,0 +1,113 @@
+package net.sf.jabref.util;
+
+import net.sf.jabref.Globals;
+
+import javax.swing.*;
+import java.io.PrintStream;
+import java.io.ByteArrayOutputStream;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+
+/**
+ * This class redirects the System.err stream so it goes both the way it normally
+ * goes, and into a ByteArrayOutputStream. We can use this stream to display any
+ * error messages and stack traces to the user. Such an error console can be
+ * useful in getting complete bug reports, especially from Windows users,
+ * without asking users to run JabRef in a command window to catch the error info.
+ *
+ * User: alver
+ * Date: Mar 1, 2006
+ * Time: 11:13:03 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class ErrorConsole {
+
+    ByteArrayOutputStream errByteStream = new ByteArrayOutputStream();
+    ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
+    private static ErrorConsole instance = null;
+
+
+    public static ErrorConsole getInstance() {
+        if (instance == null)
+            instance = new ErrorConsole();
+
+        return instance;
+    }
+
+    private ErrorConsole() {
+        PrintStream myErr = new PrintStream(errByteStream);
+        PrintStream tee = new TeeStream(System.err, myErr);
+        System.setErr(tee);
+        myErr = new PrintStream(outByteStream);
+        tee = new TeeStream(System.out, myErr);
+        System.setOut(tee);
+    }
+
+    public String getErrorMessages() {
+        return errByteStream.toString();
+    }
+
+    public String getOutput() {
+        return outByteStream.toString();
+    }
+
+    public void displayErrorConsole(JFrame parent) {
+        JTabbedPane tabbed = new JTabbedPane();
+        JTextArea ta = new JTextArea(getOutput());
+        ta.setEditable(false);
+        JScrollPane sp = new JScrollPane(ta);
+        tabbed.addTab(Globals.lang("Output"), sp);
+
+        ta = new JTextArea(getErrorMessages());
+        ta.setEditable(false);
+        if (ta.getText().length() == 0) {
+            ta.setText(Globals.lang("No exceptions have ocurred."));
+        }
+        sp = new JScrollPane(ta);
+
+        tabbed.addTab(Globals.lang("Exceptions"), sp);
+
+
+        tabbed.setPreferredSize(new Dimension(500,500));
+
+        JOptionPane.showMessageDialog(parent,  tabbed,
+                Globals.lang("Program output"), JOptionPane.ERROR_MESSAGE);
+    }
+
+    class ErrorConsoleAction extends AbstractAction {
+        JFrame frame;
+        public ErrorConsoleAction(JFrame frame) {
+            super(Globals.menuTitle("Show error console"));
+            putValue(SHORT_DESCRIPTION, Globals.lang("Display all error messages"));
+            this.frame = frame;
+        }
+
+        public void actionPerformed(ActionEvent e) {
+            displayErrorConsole(frame);
+        }
+    }
+
+    public AbstractAction getAction(JFrame parent) {
+        return new ErrorConsoleAction(parent);
+    }
+
+    // All writes to this print stream are copied to two print streams
+    public class TeeStream extends PrintStream {
+        PrintStream out;
+        public TeeStream(PrintStream out1, PrintStream out2) {
+            super(out1);
+            this.out = out2;
+        }
+        public void write(byte buf[], int off, int len) {
+            try {
+                super.write(buf, off, len);
+                out.write(buf, off, len);
+            } catch (Exception e) {
+            }
+        }
+        public void flush() {
+            super.flush();
+            out.flush();
+        }
+    }
+}
diff --git a/src/java/net/sf/jabref/util/TXMLReader.java b/src/java/net/sf/jabref/util/TXMLReader.java
new file mode 100644
index 0000000..8d23e36
--- /dev/null
+++ b/src/java/net/sf/jabref/util/TXMLReader.java
@@ -0,0 +1,210 @@
+/*
+ Copyright (C) 2006 Raik Nagel <kiar at users.sourceforge.net>
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+ * Neither the name of the author nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// created by : r.nagel 19.04.2006
+//
+// function : simple xml reader functions
+//
+// todo     :
+//
+// modified :
+
+package net.sf.jabref.util ;
+
+import java.io.* ;
+import javax.xml.parsers.* ;
+
+import org.w3c.dom.* ;
+import org.xml.sax.* ;
+import net.sf.jabref.*;
+
+public class TXMLReader
+{
+  private Document config ; // XML data
+  private DocumentBuilderFactory factory ;
+  private DocumentBuilder builder ;
+
+  private boolean ready = false ;
+
+  public TXMLReader(String resPath)
+  {
+    factory = DocumentBuilderFactory.newInstance() ;
+    try
+    {
+      builder = factory.newDocumentBuilder() ;
+
+      InputStream stream = null ;
+      if (resPath != null)
+      {
+        stream = TXMLReader.class.getResourceAsStream( resPath ) ;
+      }
+      // not found, check the src/ directory (IDE mode)
+      if (stream == null)
+      {
+        try
+        {
+          stream = new FileInputStream( "src" +resPath ) ;
+        }
+        catch (Exception e)
+        {
+
+        }
+      }
+
+      if (stream != null)
+      {
+        config = builder.parse( stream ) ;
+        ready = true ;
+      }
+    }
+
+    catch ( SAXException sxe )
+    {
+      sxe.printStackTrace() ;
+    }
+    catch ( ParserConfigurationException pce )
+    {
+      pce.printStackTrace() ;
+    }
+    catch ( IOException ioe )
+    {
+      ioe.printStackTrace() ;
+    }
+    catch (Exception oe)
+    {
+      oe.printStackTrace();
+    }
+  }
+
+  // ---------------------------------------------------------------------------
+
+  public boolean isReady()
+  {
+    return ready ;
+  }
+
+
+  public NodeList getNodes( String name )
+  {
+    return config.getElementsByTagName( name ) ;
+  }
+
+  // ---------------------------------------------------------------------------
+
+  private Element getFirstElement( Element element, String name )
+  {
+    NodeList nl = element.getElementsByTagName( name ) ;
+    if ( nl.getLength() < 1 )
+    {
+      throw new RuntimeException(
+          "Element: " + element + " does not contain: " + name ) ;
+    }
+    return ( Element ) nl.item( 0 ) ;
+  }
+
+  /** returns all "plain" data of a subnode with name <name> */
+  public String getSimpleElementText( Element node, String name )
+  {
+    Element namedElement = getFirstElement( node, name ) ;
+    return getSimpleElementText( namedElement ) ;
+  }
+
+  /** collect all "plain" data of a xml node */
+  public String getSimpleElementText( Element node )
+  {
+    StringBuffer sb = new StringBuffer() ;
+    NodeList children = node.getChildNodes() ;
+    for ( int i = 0 ; i < children.getLength() ; i++ )
+    {
+      Node child = children.item( i ) ;
+      if ( child instanceof Text )
+      {
+        sb.append( child.getNodeValue().trim() ) ;
+      }
+    }
+    return sb.toString() ;
+  }
+
+  // ---------------------------------------------------------------------------
+  // read some attributes
+  // --------------------------------------------------------------------------
+  public int readIntegerAttribute( Element node, String attrName, int defaultValue )
+  {
+    int back = defaultValue ;
+    if ( node != null )
+    {
+      String data = node.getAttribute( attrName ) ;
+      if ( data != null )
+      {
+        if ( data.length() > 0 )
+        {
+          try
+          {
+            back = Integer.parseInt( data ) ;
+          }
+          catch (Exception e) {}
+        }
+      }
+    }
+    return back ;
+  }
+
+  public String readStringAttribute( Element node, String attrName, String defaultValue )
+  {
+    if ( node != null )
+    {
+      String data = node.getAttribute( attrName ) ;
+      if ( data != null )
+      {
+        if ( data.length() > 0 )
+        {
+          return data ;
+        }
+      }
+    }
+    return defaultValue ;
+  }
+
+  public double readDoubleAttribute( Element node, String attrName, double defaultValue )
+  {
+    if ( node != null )
+    {
+      String data = node.getAttribute( attrName ) ;
+      if ( data != null )
+      {
+        if ( data.length() > 0 )
+        {
+          return Double.parseDouble( data ) ;
+        }
+      }
+    }
+    return defaultValue ;
+  }
+
+}
diff --git a/src/java/net/sf/jabref/wizard/auximport/gui/FromAuxDialog.java b/src/java/net/sf/jabref/wizard/auximport/gui/FromAuxDialog.java
index ada464a..b8663ba 100644
--- a/src/java/net/sf/jabref/wizard/auximport/gui/FromAuxDialog.java
+++ b/src/java/net/sf/jabref/wizard/auximport/gui/FromAuxDialog.java
@@ -1,33 +1,36 @@
 /*
-Copyright (C) 2004 R. Nagel
+ Copyright (C) 2004 R. Nagel
 
-All programs in this directory and
-subdirectories are published under the GNU General Public License as
-described below.
+ All programs in this directory and
+ subdirectories are published under the GNU General Public License as
+ described below.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at
+ your option) any later version.
 
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-USA
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA
 
-Further information about the GNU GPL is available at:
-http://www.gnu.org/copyleft/gpl.ja.html
+ Further information about the GNU GPL is available at:
+ http://www.gnu.org/copyleft/gpl.ja.html
 
-*/
+ */
 
+// A wizard dialog for generating a new sub database from existing TeX aux file
+//
 // created by : r.nagel 23.08.2004
 //
-// modified :
+// modified : 18.04.2006 r.nagel
+//            insert a "short info" section
 
 
 package net.sf.jabref.wizard.auximport.gui ;
@@ -36,25 +39,21 @@ import java.awt.* ;
 import javax.swing.* ;
 import javax.swing.border.* ;
 import java.awt.event.* ;
-import java.io.File;
-
+import java.io.File ;
 
 import net.sf.jabref.* ;
 import net.sf.jabref.wizard.auximport.* ;
+import java.net.URL ;
+import java.io.IOException ;
 
 public class FromAuxDialog
     extends JDialog
 {
-
-  private JPanel panel1 = new JPanel() ;
-  private BorderLayout borderLayout1 = new BorderLayout() ;
   private JPanel statusPanel = new JPanel() ;
-  private JPanel jPanel2 = new JPanel() ;
   private JPanel optionsPanel = new JPanel() ;
   private JButton okButton = new JButton() ;
   private JButton cancelButton = new JButton() ;
   private JButton generateButton = new JButton() ;
-  private TitledBorder titledBorder1 ;
 
   private JComboBox dbChooser = new JComboBox() ;
   private JTextField auxFileField ;
@@ -70,7 +69,6 @@ public class FromAuxDialog
 
   private AuxSubGenerator auxParser ;
 
-
   public FromAuxDialog( JabRefFrame frame, String title, boolean modal,
                         JTabbedPane viewedDBs )
   {
@@ -78,7 +76,7 @@ public class FromAuxDialog
 
     parentTabbedPane = viewedDBs ;
 
-    auxParser = new AuxSubGenerator(null) ;
+    auxParser = new AuxSubGenerator( null ) ;
 
     try
     {
@@ -91,32 +89,54 @@ public class FromAuxDialog
     }
   }
 
-  private void jbInit( JabRefFrame parent ) {
-    panel1.setLayout( borderLayout1 ) ;
+  private void jbInit( JabRefFrame parent )
+  {
+    JPanel panel1 = new JPanel() ;
+
+    panel1.setLayout( new BorderLayout() ) ;
     okButton.setText( Globals.lang( "Ok" ) ) ;
-    okButton.setEnabled(false);
+    okButton.setEnabled( false ) ;
     okButton.addActionListener( new FromAuxDialog_ok_actionAdapter( this ) ) ;
     cancelButton.setText( Globals.lang( "Cancel" ) ) ;
     cancelButton.addActionListener( new FromAuxDialog_Cancel_actionAdapter( this ) ) ;
-    generateButton.setText(Globals.lang("Generate"));
-    generateButton.addActionListener( new FromAuxDialog_generate_actionAdapter( this ) );
+    generateButton.setText( Globals.lang( "Generate" ) ) ;
+    generateButton.addActionListener( new FromAuxDialog_generate_actionAdapter( this ) ) ;
 
-    initOptionsPanel(parent) ;
+    initOptionsPanel( parent ) ;
 
     initStatusPanel() ;
 
+    // insert the buttons
+    JPanel buttonPanel = new JPanel() ;
+    buttonPanel.add( generateButton, null ) ;
+    buttonPanel.add( okButton, null ) ;
+    buttonPanel.add( cancelButton, null ) ;
+
     this.setModal( true ) ;
     this.setResizable( false ) ;
-    this.setTitle( Globals.lang("AUX file import" )) ;
+    this.setTitle( Globals.lang( "AUX file import" ) ) ;
     getContentPane().add( panel1 ) ;
 
-    panel1.add( optionsPanel, BorderLayout.NORTH ) ;
-    panel1.add( jPanel2, BorderLayout.SOUTH ) ;
-    jPanel2.add( generateButton, null) ;
-    jPanel2.add( okButton, null ) ;
-    jPanel2.add( cancelButton, null ) ;
-    panel1.add( statusPanel, BorderLayout.CENTER ) ;
+    JPanel desc = getDescriptionPanel() ;
+    // some help is available
+    if (desc != null)
+    {
+      panel1.add( desc, BorderLayout.NORTH ) ;
+      panel1.add( buttonPanel, BorderLayout.SOUTH ) ;
+
+      JPanel centerPane = new JPanel( new BorderLayout() ) ;
+      centerPane.add( optionsPanel, BorderLayout.NORTH ) ;
+      centerPane.add( statusPanel, BorderLayout.CENTER ) ;
+
 
+      panel1.add( centerPane, BorderLayout.CENTER ) ;
+    }
+    else  // generate a view without the "short info" area
+    {
+      panel1.add( optionsPanel, BorderLayout.NORTH ) ;
+      panel1.add( buttonPanel, BorderLayout.SOUTH ) ;
+      panel1.add( statusPanel, BorderLayout.CENTER ) ;
+    }
     // Key bindings:
     ActionMap am = statusPanel.getActionMap() ;
     InputMap im = statusPanel.getInputMap( JComponent.WHEN_IN_FOCUSED_WINDOW ) ;
@@ -131,7 +151,7 @@ public class FromAuxDialog
 
   }
 
-  private void initOptionsPanel(JabRefFrame parent)
+  private void initOptionsPanel( JabRefFrame parent )
   {
     // collect the names of all open databases
     int len = parentTabbedPane.getTabCount() ;
@@ -179,8 +199,8 @@ public class FromAuxDialog
     con.insets = new Insets( 5, 10, 15, 2 ) ;
     browseAuxFileButton = new JButton( Globals.lang( "Browse" ) ) ;
     browseAuxFileButton.addActionListener( new BrowseAction(
-                                             auxFileField,
-                                             parent));
+        auxFileField,
+        parent ) ) ;
     gbl.setConstraints( browseAuxFileButton, con ) ;
     optionsPanel.add( browseAuxFileButton ) ;
 
@@ -194,10 +214,12 @@ public class FromAuxDialog
     con.insets = new Insets( 5, 10, 0, 10 ) ;
     con.fill = GridBagConstraints.HORIZONTAL ;
 
-    titledBorder1 = new TitledBorder( BorderFactory.createLineBorder( new Color(
-        153, 153, 153 ), 2 ), Globals.lang( "Results" ) ) ;
+    TitledBorder titledBorder1 = new TitledBorder(
+        BorderFactory.createLineBorder(
+            new Color( 153, 153, 153 ), 2 ),
+        Globals.lang( "Results" ) ) ;
 
-    statusPanel.setLayout(gbl);
+    statusPanel.setLayout( gbl ) ;
     statusPanel.setBorder( titledBorder1 ) ;
 
     JLabel lab1 = new JLabel( Globals.lang( "Unknown bibtex entries" ) + ":" ) ;
@@ -212,25 +234,66 @@ public class FromAuxDialog
     gbl.setConstraints( lab1, con ) ;
     statusPanel.add( lab1 ) ;
 
-
     notFoundList = new JList() ;
-    JScrollPane listScrollPane = new JScrollPane(notFoundList);
-    listScrollPane.setPreferredSize(new Dimension(250, 120));
+    JScrollPane listScrollPane = new JScrollPane( notFoundList ) ;
+    listScrollPane.setPreferredSize( new Dimension( 250, 120 ) ) ;
     con.gridwidth = 1 ;
     con.weightx = 0 ;
     con.gridheight = 2 ;
     con.insets = new Insets( 5, 10, 15, 10 ) ;
     con.fill = GridBagConstraints.BOTH ;
-    gbl.setConstraints(listScrollPane, con);
-    statusPanel.add( listScrollPane) ;
+    gbl.setConstraints( listScrollPane, con ) ;
+    statusPanel.add( listScrollPane ) ;
 
-    statusInfos = new JTextArea("", 5, 20) ;
-    statusInfos.setBorder(BorderFactory.createEtchedBorder());
-    statusInfos.setEditable(false);
+    statusInfos = new JTextArea( "", 5, 20 ) ;
+    statusInfos.setBorder( BorderFactory.createEtchedBorder() ) ;
+    statusInfos.setEditable( false ) ;
     con.gridheight = 1 ;
-    gbl.setConstraints(statusInfos, con);
-    statusPanel.add(statusInfos) ;
+    gbl.setConstraints( statusInfos, con ) ;
+    statusPanel.add( statusInfos ) ;
+
+  }
+
+// ---------------------------------------------------------------------------
+
+  // returns a "short info" panel, if something is available
+  private JPanel getDescriptionPanel()
+  {
+    JPanel back = null ;
+
+    JEditorPane infoText = null ;
+
+    URL infoURL = JabRef.class.getResource( GUIGlobals.getLocaleHelpPath()
+                                            + GUIGlobals.shortAuxImport ) ;
+    if ( infoURL != null )
+    {
+      try
+      {
+        infoText = new JEditorPane() ;
+        infoText.setEditable( false ) ;
+        infoText.setPreferredSize( new Dimension( 240, 50 ) ) ;
+        infoText.setMinimumSize( new Dimension( 180, 50 ) ) ;
+        infoText.setPage( infoURL ) ;
+        infoText.setBackground( GUIGlobals.infoField ) ;
+        infoText.setBorder( new EtchedBorder( EtchedBorder.LOWERED ) ) ;
+
+        // content
+        back = new JPanel() ;
+        back.setLayout( new BorderLayout());
+
+        if (infoText != null) // only if some help available
+        {
+          back.add( infoText, BorderLayout.PAGE_START ) ;
+        }
+
+      }
+      catch ( IOException e )
+      {
+        back = null ;
+      }
+    }
 
+    return back ;
   }
 
 // ---------------------------------------------------------------------------
@@ -248,44 +311,51 @@ public class FromAuxDialog
 
   void generate_actionPerformed( ActionEvent e )
   {
-     generateButton.setEnabled(false);
-     BasePanel bp = (BasePanel) parentTabbedPane.getComponentAt(
-                                          dbChooser.getSelectedIndex())  ;
-     notFoundList.removeAll() ;
-     statusInfos.setText(null);
-     BibtexDatabase refBase = bp.getDatabase() ;
-     String auxName = auxFileField.getText() ;
-
-     if (auxName != null)
-       if ((refBase != null) && (auxName.length() > 0))
-       {
-         auxParser.clear();
-         notFoundList.setListData(auxParser.generate( auxName, refBase ) ) ;
-
-         statusInfos.append( Globals.lang("keys in database") +" " +refBase.getEntryCount() ) ;
-         statusInfos.append( "\n" +Globals.lang("found in aux file") +" "+auxParser.getFoundKeysInAux());
-         statusInfos.append( "\n" +Globals.lang("resolved") +" " +auxParser.getResolvedKeysCount());
-         statusInfos.append( "\n" +Globals.lang("not found") +" " +auxParser.getNotResolvedKeysCount());
-
-         int nested = auxParser.getNestedAuxCounter() ;
-         if (nested > 0)
-           statusInfos.append( "\n" +Globals.lang("nested_aux_files") +" " +nested);
-
-
-         okButton.setEnabled(true);
+    generateButton.setEnabled( false ) ;
+    BasePanel bp = ( BasePanel ) parentTabbedPane.getComponentAt(
+        dbChooser.getSelectedIndex() ) ;
+    notFoundList.removeAll() ;
+    statusInfos.setText( null ) ;
+    BibtexDatabase refBase = bp.getDatabase() ;
+    String auxName = auxFileField.getText() ;
+
+    if ( auxName != null )
+    {
+      if ( ( refBase != null ) && ( auxName.length() > 0 ) )
+      {
+        auxParser.clear() ;
+        notFoundList.setListData( auxParser.generate( auxName, refBase ) ) ;
+
+        statusInfos.append( Globals.lang( "keys in database" ) + " " +
+                            refBase.getEntryCount() ) ;
+        statusInfos.append( "\n" + Globals.lang( "found in aux file" ) + " " +
+                            auxParser.getFoundKeysInAux() ) ;
+        statusInfos.append( "\n" + Globals.lang( "resolved" ) + " " +
+                            auxParser.getResolvedKeysCount() ) ;
+        statusInfos.append( "\n" + Globals.lang( "not found" ) + " " +
+                            auxParser.getNotResolvedKeysCount() ) ;
+
+        int nested = auxParser.getNestedAuxCounter() ;
+        if ( nested > 0 )
+        {
+          statusInfos.append( "\n" + Globals.lang( "nested_aux_files" ) + " " +
+                              nested ) ;
+        }
+
+        okButton.setEnabled( true ) ;
       }
+    }
 
-     // the generated database contains no entries -> no active ok-button
-     if (auxParser.getGeneratedDatabase().getEntryCount() < 1)
-     {
-       statusInfos.append( "\n" +Globals.lang("empty database")) ;
-       okButton.setEnabled( false ) ;
-     }
+    // the generated database contains no entries -> no active ok-button
+    if ( auxParser.getGeneratedDatabase().getEntryCount() < 1 )
+    {
+      statusInfos.append( "\n" + Globals.lang( "empty database" ) ) ;
+      okButton.setEnabled( false ) ;
+    }
 
-     generateButton.setEnabled(true);
+    generateButton.setEnabled( true ) ;
   }
 
-
   public boolean okPressed()
   {
     return okPressed ;
@@ -301,12 +371,13 @@ public class FromAuxDialog
   /**
    * Action used to produce a "Browse" button for one of the text fields.
    */
-  class BrowseAction extends AbstractAction
+  class BrowseAction
+      extends AbstractAction
   {
     private JTextField comp ;
-    private JabRefFrame _frame;
+    private JabRefFrame _frame ;
 
-    public BrowseAction( JTextField tc, JabRefFrame frame)
+    public BrowseAction( JTextField tc, JabRefFrame frame )
     {
       super( Globals.lang( "Browse" ) ) ;
       _frame = frame ;
@@ -316,7 +387,8 @@ public class FromAuxDialog
     public void actionPerformed( ActionEvent e )
     {
       String chosen = null ;
-      chosen = Globals.getNewFile( _frame, Globals.prefs, new File( comp.getText() ),
+      chosen = Globals.getNewFile( _frame, Globals.prefs,
+                                   new File( comp.getText() ),
                                    ".aux",
                                    JFileChooser.OPEN_DIALOG, false ) ;
       if ( chosen != null )
@@ -327,7 +399,6 @@ public class FromAuxDialog
     }
   }
 
-
 }
 
 // ----------- helper class -------------------
@@ -378,5 +449,3 @@ class FromAuxDialog_generate_actionAdapter
     adaptee.generate_actionPerformed( e ) ;
   }
 }
-
-
diff --git a/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityMessagePanel.java b/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityMessagePanel.java
index 678d90d..a996752 100644
--- a/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityMessagePanel.java
+++ b/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityMessagePanel.java
@@ -35,16 +35,15 @@ http://www.gnu.org/copyleft/gpl.ja.html
 
 package net.sf.jabref.wizard.integrity.gui ;
 
+import java.awt.* ;
+import java.awt.event.* ;
 import javax.swing.* ;
-import javax.swing.undo.UndoManager;
-import net.sf.jabref.undo.UndoableFieldChange;
-import net.sf.jabref.wizard.text.gui.HintListModel ;
-import java.awt.Dimension ;
+import javax.swing.event.* ;
+
 import net.sf.jabref.* ;
-import java.awt.* ;
-import net.sf.jabref.wizard.integrity.*;
-import javax.swing.event.*;
-import java.awt.event.*;
+import net.sf.jabref.undo.* ;
+import net.sf.jabref.wizard.integrity.* ;
+import net.sf.jabref.wizard.text.gui.* ;
 
 public class IntegrityMessagePanel
     extends JPanel
@@ -80,7 +79,7 @@ public class IntegrityMessagePanel
 
   // Fix Panel ---------------------------------------------------------
     JPanel fixPanel = new JPanel() ;
-    BoxLayout box = new BoxLayout(fixPanel, BoxLayout.LINE_AXIS) ;
+//    BoxLayout box = new BoxLayout(fixPanel, BoxLayout.LINE_AXIS) ;
 
     JLabel label1 = new JLabel(Globals.lang("Field_content")) ;
 
@@ -135,7 +134,11 @@ public class IntegrityMessagePanel
 
         if (entry != null)
         {
-            str = (String) entry.getField(msg.getFieldName()) ;
+          str = (String) entry.getField(msg.getFieldName()) ;
+          basePanel.highlightEntry(entry);
+  // make the "invalid" field visible  ....
+  //          EntryEditor editor = basePanel.getCurrentEditor() ;
+  //          editor.
         }
       }
       content.setText(str);
@@ -177,7 +180,7 @@ public class IntegrityMessagePanel
         {
 //          System.out.println("update") ;
             Object oldContent = entry.getField(msg.getFieldName());
-            UndoableFieldChange edit = new UndoableFieldChange(entry, msg.getFieldName(), oldContent, 
+            UndoableFieldChange edit = new UndoableFieldChange(entry, msg.getFieldName(), oldContent,
                         content.getText());
             entry.setField(msg.getFieldName(), content.getText());
             basePanel.undoManager.addEdit(edit);
@@ -191,7 +194,6 @@ public class IntegrityMessagePanel
       applyButton.setEnabled(false);
     }
   }
-
   // ---------------------------------------------------------------------------
   // ---------------------------------------------------------------------------
   class IntegrityListRenderer extends DefaultListCellRenderer
diff --git a/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityWizard.java b/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityWizard.java
index 6a6b4dd..77d1076 100644
--- a/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityWizard.java
+++ b/src/java/net/sf/jabref/wizard/integrity/gui/IntegrityWizard.java
@@ -36,17 +36,15 @@
 
 package net.sf.jabref.wizard.integrity.gui ;
 
-import javax.swing.JDialog ;
-import net.sf.jabref.BibtexEntry ;
-import net.sf.jabref.JabRefFrame ;
-import javax.swing.JPanel;
-import java.awt.*;
-import javax.swing.*;
-import net.sf.jabref.*;
-import java.awt.event.*;
-import java.net.URL;
-import javax.swing.border.EtchedBorder;
-import java.io.IOException;
+import java.io.* ;
+import java.net.* ;
+
+import java.awt.* ;
+import java.awt.event.* ;
+import javax.swing.* ;
+import javax.swing.border.* ;
+
+import net.sf.jabref.* ;
 
 public class IntegrityWizard
     extends JDialog
@@ -62,7 +60,7 @@ public class IntegrityWizard
 
   public IntegrityWizard( JabRefFrame frame, BasePanel basePanel)
   {
-    super( frame, "dialog", true ) ;
+    super( frame, "dialog", false ) ;  // no modal
 
     _frame = frame ;
     this.basePanel = basePanel;
diff --git a/src/resource/.cvsignore b/src/resource/.cvsignore
new file mode 100644
index 0000000..4288c68
--- /dev/null
+++ b/src/resource/.cvsignore
@@ -0,0 +1,29 @@
+.#JabRef_de.properties.1.113
+.#JabRef_de.properties.1.133
+.#JabRef_de.properties.1.150.2.1
+.#JabRef_de.properties.1.150.2.7
+.#JabRef_de.properties.1.72
+.#JabRef_de.properties.1.80
+.#JabRef_de.properties.1.83
+.#JabRef_de.properties.1.95
+.#JabRef_en.properties.1.137.2.1
+.#JabRef_en.properties.1.137.2.8
+.#JabRef_en.properties.1.71
+.#JabRef_en.properties.1.77
+.#JabRef_en.properties.1.79
+.#JabRef_en.properties.1.88
+.#JabRef_fr.properties.1.94.2.17
+.#JabRef_fr.properties.1.94.2.5
+.#JabRef_no.properties.1.115
+.#JabRef_no.properties.1.115.2.8
+.#build.properties.1.1
+.#build.properties.1.1.2.2
+JabRef_de.properties.bak
+JabRef_de.properties~
+JabRef_en.properties.bak
+JabRef_en.properties~
+JabRef_fr.properties.bak
+JabRef_no.properties.bak
+JabRef_no.properties~
+build.properties
+fields
diff --git a/src/resource/IntegrityMessage_it.properties b/src/resource/IntegrityMessage_it.properties
new file mode 100644
index 0000000..670ff72
--- /dev/null
+++ b/src/resource/IntegrityMessage_it.properties
@@ -0,0 +1,11 @@
+#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
+
+ITEXT_1=suggerimenti
+ITEXT_1001=avvertenza
+ITEXT_2001=fallito
+ITEXT_1010=inizio del campo $FIELD
+ITEXT_1011=terminatore errato (campo $FIELD)
+ITEXT_1012=possibile errore nel campo $FIELD
+ITEXT_10=Il campo $FIELD contiene maiuscole non mascherate da {}
+ITEXT_11=Il campo $FIELD deve contenere un numero a 4 cifre
+ITEXT_2010=Il campo $FIELD contiene una parentesi graffa chiusa inattesa
diff --git a/src/resource/JabRef_de.properties b/src/resource/JabRef_de.properties
index d1057ba..788fa62 100644
--- a/src/resource/JabRef_de.properties
+++ b/src/resource/JabRef_de.properties
@@ -1,1034 +1,2098 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
+#! created/edited by Popeye version 0.5 sunshine (popeye.sourceforge.net)
 
 !This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=Dies_ist_ein_einfacher_Copy_&_Paste-Dialog._Nachdem_Text_in_das_Texteingabefeld_geladen_oder_kopiert_wurde,_k\u00f6nnen_Sie_Textteile_markieren_und_ihnen_ein_BibTeX-Feld_zuordnen.
+
 %0_contains_the_Regular_Expression_<b>%1</b>=%0_den_Regul\u00E4ren_Ausdruck_<b>%1</b>_enth\u00E4lt
+
 %0_contains_the_term_<b>%1</b>=%0_den_Ausdruck_<b>%1</b>_enth\u00E4lt
+
 %0_doesn't_contain_the_Regular_Expression_<b>%1</b>=%0_nicht_den_Regul\u00E4ren_Ausdruck_<b>%1</b>_enth\u00E4lt
+
 %0_doesn't_contain_the_term_<b>%1</b>=%0_nicht_den_Ausdruck_<b>%1</b>_enth\u00E4lt
+
 %0_doesn't_match_the_Regular_Expression_<b>%1</b>=%0_nicht_exakt_dem_Regul\u00E4ren_Ausdruck_<b>%1</b>_entspricht
+
 %0_doesn't_match_the_term_<b>%1</b>=%0_nicht_exakt_dem_Ausdruck_<b>%1</b>_entspricht
+
 %0_field_set=%0-Feld_erstellt
+
 %0_import_cancelled.=%0_Importierung_abgebrochen
+
 %0_matches_the_Regular_Expression_<b>%1</b>=%0_exakt_dem_Regul\u00E4ren_Ausdruck_<b>%1</b>_entspricht
+
 %0_matches_the_term_<b>%1</b>=%0_exakt_dem_Ausdruck_<b>%1</b>_entspricht
+
 <field_name>=<Feldname>
+
 <HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>=<HTML>Entpacke_die_zip-Datei_mit_den_Import/Export-Filtern_f\u00FCr_EndNote,<BR>um_die_bestm\u00F6gliche_Kompatibilit\u00E4t_mit_JabRef_zu_gew\u00E4hrleisten</HTML>
+
 <no_field>=<kein_Feld>
+
 <select>=<ausw\u00E4hlen>
+
 <select_word>=<Wort_ausw\u00E4hlen>
+
 _on_entry_number_=_bei_Eintrag_Nummer_
+
 A_CiteSeer_fetch_operation_is_currently_in_progress.=CiteSeer-Abruf_ist_in_Bearbeitung.
+
 A_CiteSeer_import_operation_is_currently_in_progress.=Ein_CiteSeer-Import_ist_gerade_in_Bearbeitung.
+
 A_string_with_that_label_already_exists=Ein_String_mit_diesem_Namen_exisitiert_bereits
+
 Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Zeitschriftennamen_der_ausgew\u00e4hlten_Eintr\u00e4ge_abk\u00fcrzen_(ISO-Abk\u00fcrzung)
+
 Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Zeitschriftennamen_der_ausgew\u00e4hlten_Eintr\u00e4ge_abk\u00fcrzen_(MEDLINE-Abk\u00fcrzung)
+
 Abbreviate_names=Namen_abk\u00fcrzen
+
 Abbreviation=Abk\u00fcrzung
+
 About_JabRef=\u00DCber_JabRef
+
 Abstract=Zusammenfassung
+
 Accept=\u00DCbernehmen
+
 Accept_change=\u00C4nderung_akzeptieren
+
 Action=Aktion
+
 Add=Hinzuf\u00FCgen
-Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=F\u00FCge_(kompilierten)_externe_ImportFormat_Klasse_aus_Verzeichnis_hinzu._\nDas_Verzeichnis_mu\u00DF_nicht_im_Klassenpfad_von_JabRef_enthalten_sein.
+
+Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=F\u00fcge_(kompilierte)_externe_ImportFormat_Klasse_aus_einem_Verzeichnis_hinzu._\nDas_Verzeichnis_mu\u00df_nicht_im_Klassenpfad_von_JabRef_enthalten_sein.
+
 Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=F\u00FCge_(kompilierten)_externe_ImportFormat_Klasse_aus_Verzeichnis_hinzu._\nDas_Verzeichnis_mu\u00DF_nicht_im_Klassenpfad_von_JabRef_enthalten_sein.
+
 add_entries_to_group=Eintr\u00E4ge_zu_Gruppe_hinzuf\u00FCgen
+
+Add_entry_selection_to_this_group=Ausgew\u00e4hlte_Eintr\u00e4ge_zu_dieser_Gruppe_hinzuf\u00fcgen
+
 Add_from_folder=Aus_Klassenpfad_hinzuf\u00FCgen
+
 Add_from_jar=Aus_Archiv-Datei_hinzuf\u00FCgen
+
 add_group=Gruppe_hinzuf\u00FCgen
+
 Add_Group=Gruppe_hinzuf\u00FCgen
+
 Add_new=Neu
+
 Add_Subgroup=Untergruppe_hinzuf\u00FCgen
+
 Add_to_group=Zu_Gruppe_hinzuf\u00FCgen
+
 Added_entry=Eintrag_hinzugef\u00FCgt
+
 Added_group=Gruppe_hinzugef\u00FCgt
+
 Added_group_"%0".=Gruppe_"%0"_hinzugef\u00FCgt.
+
 Added_new=Neu_hinzugef\u00FCgt
+
 Added_string=String_hinzugef\u00FCgt
+
 Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_can_be_assigned_manually_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._This_process_adds_the_term_<b>%1</b>_to_each_entry's_<b>%0</b>_field._Entries_can_be_removed_manually_from_this_group_by_selecting_them_then_using_the_context_menu._This_process_removes_the_term_<b>%1</b>_from_each_entry's_<b>%0</b>_field.=Zus\u00E4tzlich_k\u00F6nnen_Eintr\u00E4ge,_deren_Feld_<b>%0</b>_nicht_< [...]
+
 Advanced=Erweitert
+
 Advanced_options_for_setting...=Erweiterte_Optionen_f\u00fcr_Einstellung...
+
 All_Entries=Alle_Eintr\u00E4ge
+
 All_entries=Alle_Eintr\u00E4ge
+
 All_entries_of_this_type_will_be_declared_typeless._Continue?=Alle_Eintr\u00E4ge_dieses_Typs_werden_als_typlos_eingestuft._Fortfahren?
+
 All_fields=Alle_Felder
+
 All_subgroups_(recursively)=Alle_Untergruppen_(rekursiv)
+
 Allow_editing_in_table_cells=Bearbeiten_in_der_Tabelle_zulassen
+
 Always_save_database_ordered_by_author_name=Datei_immer_nach_Autorennamen_sortiert_abspeichern
+
 and=und
+
 and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.=Au\u00DFerdem_muss_die_Klasse_beim_n\u00E4chsten_Start_von_JabRef_durch_den_"Classpath"_erreichbar_sein.
+
 any_field_that_matches_the_regular_expression_<b>%0</b>=ein_beliebiges_Feld,_auf_das_der_Regul\u00E4re_Ausdruck_<b>%0</b>_passt,
+
 Appearance=Erscheinungsbild
+
 Append=anf\u00FCgen
+
 Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Inhalt_einer_BibTeX-Datei_an_die_aktuelle_Datei_anh\u00E4ngen
+
 Append_database=Datei_anh\u00E4ngen
+
 append_the_selected_text_to_bibtex_key=ausgew\u00e4hlten_Text_an_BibTeX-Key_anh\u00e4ngen
+
 Apply=\u00DCbernehmen
+
+Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Argumente_wurden_der_laufenden_JabRef-Instanz_\u00fcbergeben._Schlie\u00dfen_l\u00e4uft.
+
 Assign_entries_based_on:=Eintr\u00e4ge_zuweisen_basierend_auf:
+
+Assign_entry_selection_exclusively_to_this_group=Ausgew\u00e4hlte_Eintr\u00e4ge_ausschlie\u00dflich_dieser_Gruppe_zuordnen
+
 Assign_new_file=Neue_Datei_zuordnen
+
 Assign_the_original_group's_entries_to_this_group?=Eintr\u00E4ge_der_urspr\u00FCnglichen_Gruppe_zu_dieser_Gruppe_hinzuf\u00FCgen?
+
 Assigned_%0_entries_to_group_"%1".=%0_Eintr\u00E4ge_zu_Gruppe_"%1"_hinzugef\u00FCgt.
+
 Assigned_1_entry_to_group_"%0".=1_Eintrag_zu_Gruppe_"%0"_hinzugef\u00FCgt.
+
 Attach_%0_file=Datei_%0_anf\u00fcgen
+
 Attach_URL=URL_anf\u00fcgen
+
 Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.=Versucht,_%0-Links_f\u00fcr_die_Eintr\u00e4ge_automatisch_zuzuordnen._Dies_funktioniert,_wenn_der_Name_einer_%0-Datei_im_%0-Verzeichnis_oder_einem_Unterverzeichnis<BR>identisch_ist_mit_dem_BibTeX-Key_eines_Eintrags_(erweitert_um_die_jeweilige_Dateiendung).
+
 Auto=Auto
+
 Autodetect_format=Format_automatisch_erkennen
+
 Autogenerate_BibTeX_key=BibTeX-Key_automatisch_generieren
+
 Autogenerate_BibTeX_keys=BibTeX-Keys_automatisch_generieren
+
 Autogenerate_groups=Gruppen_automatisch_erstellen
+
 autogenerate_keys=BibTeX-Keys_automatisch_generieren
+
 Automatically_create_groups=Gruppen_automatisch_erstellen
+
 Automatically_create_groups_for_database.=Automatisch_Gruppen_f\u00FCr_die_Datei_anlegen.
+
 Automatically_created_groups=Automatisch_erzeugte_Gruppen
+
 Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups=Gruppenansicht_automatisch_ausblenden,_wenn_zu_einer_Datei_ohne_Gruppen_gewechselt_wird
+
 Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups=Gruppenansicht_automatisch_einblenden,_wenn_zu_einer_Datei_mit_Gruppen_gewechselt_wird
+
 Autoset=Automatisch_zuordnen
+
 Autoset_%0_field=Feld_%0_automatisch_setzen
+
 Autoset_%0_links._Allow_overwriting_existing_links.=%0_Links_automatisch_zuordnen._Vorhandene_Links_\u00fcberschreiben.
+
 Autoset_%0_links._Do_not_overwrite_existing_links.=%0_Links_automatisch_zuordnen._Vorhandene_Links_nicht_\u00fcberschreiben.
+
 Autosetting_%0_field...=Automatisches_Setzen_von_Feld_%0...
+
 AUX_File_import=Teildatenbank_aus_AUX_Datei_erstellen
+
 AUX_file_import=AUX_Datei_Import
+
 Available_export_formats=Verf\u00FCgbare_Exportformate
+
 Available_fields=verf\u00FCgbare_BibTeX_Felder
+
 Available_import_formats=Verf\u00FCgbare_Importformate
+
 Background_color_for_marked_entries=Hintergrundfarbe_f\u00fcr_markierte_Eintr\u00e4ge
+
 Background_color_for_optional_fields=Hintergrundfarbe_f\u00fcr_optionale_Felder
+
 Background_color_for_required_fields=Hintergrundfarbe_f\u00fcr_ben\u00f6tigte_Felder
+
 Backup_old_file_when_saving=Beim_Speichern_ein_Backup_der_alten_Datei_anlegen
+
 Bibkey_to_filename_conversion=Konvertierung_von_BibTeX-Key_zu_Dateiname
+
 Biblioscape_Tag_file=Biblioscape_Tag-Datei
+
 BibTeX=BibTeX
+
 BibTeX_key=BibTeX-Key
+
 BibTeX_key_is_unique.=Der_BibTeX-Key_ist_eindeutig.
+
 BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file=Kein_BibTeX-Key_vorhanden._Bitte_Dateinamen_zum_Download_angeben
+
 BibTeX_source=BibTeX_Quelltext
+
 BibTeXML=BibTeXML
+
 BibTeXML_File=BibTeXML_Datei
+
 Binding=Tastenk\u00FCrzel
+
 Broken_link=Fehlerhafter_Link
+
 Browse=Durchsuchen
-by=von
+
+by=durch
+
 Calling_external_viewer...=Externes_Anzeigeprogramm_wird_aufgerufen
+
 Cancel=Abbrechen
+
 Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?=Eintr\u00e4ge_k\u00f6nnen_einer_Gruppe_nicht_hinzugef\u00fcgt_werden,_ohne_Keys_zu_generieren._Sollen_die_Keys_jetzt_generiert_werden?
+
 Cannot_merge_this_change=Kann_diese_\u00C4nderung_nicht_einf\u00FCgen
+
 Cannot_move_group=Gruppe_kann_nicht_verschoben_werden
+
 Cannot_move_group_"%0"_down.=Gruppe_"%0"_kann_nicht_nach_unten_bewegt_werden.
+
 Cannot_move_group_"%0"_left.=Gruppe_"%0"_kann_nicht_nach_links_bewegt_werden.
+
 Cannot_move_group_"%0"_right.=Gruppe_"%0"_kann_nicht_nach_rechts_bewegt_werden.
+
 Cannot_move_group_"%0"_up.=Gruppe_"%0"_kann_nicht_nach_oben_bewegt_werden.
+
 case_insensitive=Gro\u00DF-/Kleinschreibung_wird_nicht_unterschieden
+
 case_sensitive=Gro\u00DF-/Kleinschreibung_wird_unterschieden
+
 Case_sensitive=Gro\u00DF-/Kleinschreibung_unterscheiden
+
 change_assignment_of_entries=\u00C4nderung_der_zugewiesenen_Eintr\u00E4ge
+
 # The following are for case change in right-click menu in entry editor. The last four
 # illustrate the four variations of capitalization
 Change_case=Gro\u00DF-_und_Kleinschreibung
+
 Change_entry_type=Eintragstyp_\u00E4ndern
+
 change_key=BibTeX-Key_\u00E4ndern
+
 Change_of_Grouping_Method=\u00C4ndern_der_Gruppierungsmethode
+
 change_preamble=Pr\u00E4ambel_\u00E4ndern
+
 change_string_content=Inhalt_des_Strings_\u00E4ndern
+
 change_string_name=Namen_des_Strings_\u00E4ndern
+
 change_type=Typ_\u00E4ndern
+
 changed_=ge\u00E4ndert_
+
 Changed_font_settings=Schrifteinstellungen_ge\u00E4ndert
+
 Changed_language_settings=Spracheinstellungen_ge\u00E4ndert.
+
 Changed_look_and_feel_settings="Look_and_Feel"-Einstellungen_ge\u00E4ndert
+
 Changed_preamble=Pr\u00E4ambel_ge\u00E4ndert
+
 Changed_type_to=Typ_ge\u00E4ndert_zu
+
 Characters_to_ignore=Folgende_Buchstaben_ignorieren
+
 Check_existing_%0_links=Existierende_%0-Links_\u00fcberpr\u00fcfen
+
 Check_links=Links_\u00fcberpr\u00fcfen
+
 Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=URL_zum_Herunterladen_ausw\u00e4hlen._Der_Standardwert_f\u00fchrt_zu_einer_Liste,_die_von_den_JabRef-Entwicklern_zur_Verf\u00fcgung_gestellt_wird.
+
 Citation_import_from_CiteSeer_failed.=Fehler_beim_Import_von_CiteSeer.
+
+Cite_command_(for_Emacs/WinEdt)=Cite-Kommando_(f\u00fcr_Emacs/WinEdt)
+
 CiteSeer_Error=CiteSeer-Fehler
+
 CiteSeer_Fetch_Error=Fehler_beim_Abrufen_von_CiteSeer
+
 CiteSeer_import_entries=CiteSeer_Eintr\u00E4ge_importieren
+
 CiteSeer_Import_Error=Fehler_beim_Import_von_CiteSeer
+
 CiteSeer_Import_Fields=CiteSeer_Import-Felder
+
 CiteSeer_Transfer=CiteSeer-Transfer
+
 CiteSeer_Warning=CiteSeer_Warnung
+
 Class_name=Klassenname
+
 Clear=Zur\u00FCcksetzen
+
 clear_all_groups=Alle_Gruppen_l\u00F6schen
+
 Clear_field=Feld_l\u00f6schen
+
 Clear_highlight=Markierten_l\u00f6schen
+
 Clear_highlighted=Markierte_l\u00f6schen
+
 Clear_highlighted_groups=Markierte_Gruppen_l\u00f6schen
+
 Clear_inputarea=gesamten_Text_entfernen
+
 Clear_search=Suche_l\u00f6schen
+
 Close=Schlie\u00DFen
+
 Close_database=Datei_schlie\u00DFen
+
 Close_dialog=Dialog_schlie\u00DFen
+
 # The following lines correspond to names of key bindings:
 Close_entry_editor=Eintragseditor_schlie\u00DFen
+
 Close_preamble_editor=Pr\u00E4ambel-Editor_schlie\u00DFen
+
 Close_the_current_database=Aktuelle_Datei_schlie\u00DFen
+
 Close_the_help_window=Hilfefenster_schlie\u00DFen
+
 Close_window=Fenster_schlie\u00DFen
+
 Closed_database=Datei_geschlossen
+
 Collapse_subtree=Unterbaum_zuklappen
+
 Color_codes_for_required_and_optional_fields=Farbanzeige_f\u00FCr_ben\u00F6tigte_und_optionale_Felder
+
 Color_for_marking_incomplete_entries=Farbe_zum_Markieren_unvollst\u00e4ndiger_Eintr\u00e4ge
+
 Column_width=Spaltenbreite
+
 Command_line_id=Kommandozeilen_ID
+
 Complete_record=Kompletter_Eintrag
+
 Completed_citation_import_from_CiteSeer.=Import_von_CiteSeer_abgeschlossen.
+
 Completed_Import_Fields_from_CiteSeer.=Die_Felder_wurden_aus_CiteSeer_importiert.
+
 Completed_import_from_CiteSeer.=Import_von_CiteSeer_abgeschlossen
+
 Contained_in=Enthalten_in
+
 Content=Inhalt
+
 Copied=Kopiert
+
 Copied_cell_contents=Zelleninhalt_kopiert
+
 Copied_key=BibTeX-Key_kopiert
+
 Copied_keys=BibTeX-Keys_kopiert
+
 Copy=Kopieren
+
+Copy_\cite{BibTeX_key}=Kopiere_\cite{BibTeX-Key}
+
 Copy_BibTeX_key=BibTeX-Key_kopieren
-Copy_\\cite{BibTeX_key}=Kopiere_\\cite{BibTeX-Key}
+
+Copy_cite{BibTeX_key}=Kopiere_cite{BibTeX-Key}
+
 Copy_to_clipboard=Text_in_Zwischenablage_kopieren
+
 Could_not_call_executable=Konnte_das_Programm_nicht_aufrufen
+
+Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Konnte_zu_keinem_aktiven_gnuserv-Prozess_verbinden._Vergewissern_Sie_sich,_dass_(X)Emacs_l\u00e4uft,<BR>und_dass_der_Server_gestartet_wurde_(mit_dem_Befehl_'gnuserv-start').
+
 Could_not_connect_to_host=Verbindung_zum_Host_fehlgeschlagen
+
 # I have reformulated the following lines, because the 1st person form is not suitable:
 Could_not_connect_to_host_=Verbindung_zum_Host_fehlgeschlagen
+
 Could_not_export_entry_types=Eintragstypen_konnten_nicht_exportiert_werden
+
 Could_not_export_file=Konnte_Datei_nicht_exportieren
+
 Could_not_export_preferences=Einstellungen_konnten_nicht_exportiert_werden
+
 Could_not_find_a_suitable_import_format.=Kein_passendes_Importformat_gefunden.
+
 Could_not_find_layout_file=Keine_Layoutdatei_gefunden
+
 Could_not_import_entry_types=Eintragstypen_konnten_nicht_importiert_werden
+
 Could_not_import_preferences=Einstellungen_konnten_nicht_importiert_werden
+
 Could_not_instantiate_%0_%1=Konnte_Importer_nicht_erzeugen_%0_%1
+
+Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Konnte_%0_%1_nicht_realisieren._Haben_Sie_den_richtigen_Paket-Pfad_angegeben?
+
+Could_not_parse_number_of_hits=Anzahl_der_Treffer_konnte_nicht_ermittelt_werden
+
 Could_not_resolve_import_format=Das_Importformat_konnte_nicht_bestimmt_werden.
+
+#####Switches_between_full_and_abbreviated_journal_name=Wechselt_zwischen_kompletten_und_abgek\u00fcrzten_Zeitschriftennamen
+#####if_the_journal_name_is_known._Go_to_(...............)=falls_der_Zeitschriftenname_bekannt_ist._Gehe_zu_(...............)
+Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Das_Programm_'gnuclient'_konnte_nicht_gestartet_werden._Vergewissern_Sie_sich,_dass_die_Programme_gnuserv/gnuclient_installiert_sind.
+
 Could_not_save_file=Datei_konnte_nicht_gespeichert_werden
+
 Couldn't_find_an_entry_associated_with_this_URL=Es_konnte_kein_Eintrag_gefunden_werden,_der_mit_dieser_URL_verkn\u00FCpft_ist
+
 Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Die_'citeseerurl'_der_folgenden_Eintr\u00E4ge_konnte_nicht_analysiert_werden
+
 Create_group=Gruppe_anlegen
+
 Created_group=Gruppe_erstellen
+
 Created_group_"%0".=Gruppe_"%0"_erstellt.
+
 Created_groups.=Gruppen_erstellt.
+
 Curly_braces_{_and_}_must_be_balanced.=Geschweifte_Klammern_{_und_}_m\u00FCssen_sich_ausgleichen.
+
 Current_content=Aktueller_Inhalt
+
 Current_value=Aktueller_Wert
+
 Custom_entry_types=Benutzerdefinierte_Eintragstypen
+
 Custom_entry_types_found_in_file=Benutzerdefinierte_Eintragstypen_gefunden
+
 Custom_export=Externe_Exportfilter
+
 Custom_importers=Externe_Importfilter
+
 Customize_entry_types=Eintragstypen_anpassen
+
 Customize_key_bindings=Tastenk\u00FCrzel_anpassen
+
 Cut=Ausschneiden
+
 cut_entries=Eintr\u00E4ge_ausschneiden
+
 cut_entry=Eintrag_ausschneiden
+
 Cut_pr=Ausschneiden
+
 Database_encoding=Zeichenkodierung_der_Datei
+
 Database_has_changed._Do_you_want_to_save_before_closing?=Die_Datei_wurde_ge\u00E4ndert._Wollen_Sie_vor_dem_Beenden_speichern?
+
 Database_properties=Eigenschaften_der_Datei
+
 Date_format=Datumsformat
+
 Default=Standard
+
 Default_encoding=Standard_Zeichenkodierung
+
 Default_grouping_field=Standard_Gruppierungs-Feld
+
 Default_look_and_feel=Standard_"look_and_feel"
+
 Default_owner=Standard-Besitzer
+
 Default_pattern=Standardmuster
+
 Default_sort_criteria=Standard-Sortierkriterium
+
 defined.=definiert.
+
 Delete=L\u00F6schen
+
 Delete_custom=Eintragstyp_l\u00F6schen
+
 Delete_custom_format=Format_des_Eintragstyps_l\u00F6schen
+
 # I have reformulated the following lines, because the 1st person form is not suitable:
 # (Folgende_URL_konnte_nicht_analysiert_werden)
 delete_entries=Eintr\u00E4ge_l\u00F6schen
+
 Delete_entry=Eintrag_l\u00F6schen
+
 delete_entry=Eintrag_l\u00F6schen
+
 Delete_multiple_entries=Mehrere_Eintr\u00E4ge_l\u00F6schen
+
 Delete_rows=Zeilen_l\u00F6schen
+
 Delete_strings=Strings_l\u00F6schen
+
 Deleted=Gel\u00F6scht
+
 Deleted_entry=Eintrag_gel\u00F6scht
+
 Delimit_fields_with_semicolon,_ex.=Felder_mit_Semikolon_abgrenzen,_z.B.
+
 Descending=Absteigend
+
 Description=Beschreibung
+
 Deselect_all=Auswahl_aufheben
+
 Details=Details
+
 Disable_entry_editor_when_multiple_entries_are_selected=Eintragseditor_sperren,_wenn_mehrere_Eintr\u00E4ge_ausgew\u00E4hlt_sind
+
 Disable_this_confirmation_dialog=Diesen_Best\u00E4tigungsdialog_deaktivieren
+
 Disable_this_warning_dialog=Diese_Warnmeldung_deaktivieren
+
 Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Alle_Eintr\u00E4ge_anzeigen,_die_zu_einer_oder_mehreren_der_ausgew\u00E4hlten_Gruppen_geh\u00F6ren.
+
+Display_all_error_messages=Zeige_alle_Fehlermeldugen
+
 Display_help_on_command_line_options=Zeige_Kommandozeilenhilfe
+
 Display_imported_entries_in_an_inspection_window_before_they_are_added.=Importierte_Eintr\u00e4ge_im_Kontrollfenster_anzeigen_bevor_sie_hinzugef\u00fcgt_werden.
+
 Display_only_entries_belonging_to_all_selected_groups.=Nur_Eintr\u00E4ge_anzeigen,_die_zu_allen_ausgew\u00E4hlten_Gruppen_geh\u00F6ren.
+
 Displaying_no_groups=Keine_Gruppen_anzeigen
+
 Do_not_abbreviate_names=Namen_nicht_abk\u00fcrzen
+
 Do_not_autoset=Nicht_automatisch_zuordnen
+
 Do_not_import_entry=Eintrag_nicht_importieren
+
 Do_not_open_any_files_at_startup=Keine_Dateien_beim_Start_\u00f6ffnen
+
 Do_not_overwrite_existing_keys=Existierende_Keys_nicht_\u00fcberschreiben
+
 Do_not_wrap_the_following_fields_when_saving=Beim_Speichern_keinen_Zeilenumbruch_in_den_folgenden_Feldern_einf\u00fcgen
+
 Docbook=Docbook
+
 Done=Fertig
+
 Down=Abw\u00e4rts
+
 Download=Herunterladen
+
 Download_completed=Download_beendet
+
 Download_file=Datei_herunterladen
+
 Downloading...=Download_l\u00E4uft
+
 Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.=Aufgrund_des_doppelten_BibTeX-Keys_kann_die_Gruppenzuordnung_dieses_Eintrags_beim_n\u00E4chstenn\u00D6ffnen_nicht_wiederhergestellt_werden._Es_wird_empfohlen,_von_JabRef_jetzt_einen_eindeutigennKey_automatisch_generieren_zu_lassen,_um_dieses_Problem_zu_verhindern.
+
 dummy=dummy
+
 Duplicate_BibTeX_key=Doppelter_BibTeX-Key
+
 duplicate_BibTeX_key=doppelter_BibTeX-Key
+
 Duplicate_BibTeX_key.=Doppelter_BibTeX-Key.
+
 duplicate_BibTeX_key.=doppelter_BibTeX-Key
+
 Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.=Doppelter_BibTeX-Key._Es_kann_sein,_dass_die_Gruppierung_f\u00fcr_diesen_Eintrag_nicht_funktioniert.
+
 Duplicate_Key_Warning=Warnung:_Key_bereits_vorhanden
+
 Duplicate_pairs_found=Doppelte_Eintr\u00E4ge_gefunden
+
 duplicate_removal=Duplikate_entfernen
+
 Duplicate_string_name=Doppelter_String-Name
+
 Duplicates_found=Doppelte_Eintr\u00E4ge_gefunden
+
 Duplicates_removed=Doppelte_Eintr\u00E4ge_gel\u00F6scht
+
 Dynamic_groups=Dynamische_Gruppen
+
 Dynamically_group_entries_by_a_free-form_search_expression=Dynamisches_Gruppieren_der_Eintr\u00E4ge_anhand_eines_beliebigen_Suchausdrucks
+
 Dynamically_group_entries_by_searching_a_field_for_a_keyword=Dynamisches_Gruppieren_der_Eintr\u00e4ge_anhand_eines_Stichworts_in_einem_Feld
+
 Each_line_must_be_on_the_following_form=Jede_Zeile_muss_das_folgende_Format_aufweisen
+
 Edit=Bearbeiten
+
 Edit_custom_export=Bearbeite_externen_Exportfilter
+
 Edit_entry=Eintrag_bearbeiten
+
 Edit_group=Gruppe_bearbeiten
+
 Edit_journal=Zeitschrift_bearbeiten
+
 Edit_preamble=Pr\u00E4ambel_bearbeiten
+
 Edit_strings=Strings_bearbeiten
+
 empty_BibTeX_key=leerer_BibTeX-Key
+
 Empty_BibTeX_key.=Leerer_BibTeX-Key.
+
 Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Leerer_BibTeX-Key._Es_kann_sein,_dass_die_Gruppierung_f\u00fcr_diesen_Eintrag_nicht_funktioniert.
+
 Empty_database=Leere_Datei
+
 empty_database=leere_Datenbank
-Enable source_editing=Bearbeiten_von_Sourcecode_zulassen
-Enable_source_editing=Quelltextbearbeitung_aktivieren
+
+Enable source_editing=Quellbearbeitung_aktivieren
+
+Enable_source_editing=Bearbeiten_von_Sourcecode_zulassen
+
 Endnote=Endnote
+
 Enter_URL=URL_eingeben
+
 Enter_URL_to_download=URL_f\u00FCr_den_Download_eingeben
+
 entries=Eintr\u00E4ge
+
 Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.=Ein_manuelles_Hinzuf\u00FCgen_oder_Entfernen_von_Eintr\u00E4gen_ist_f\u00FCr_diese_Gruppe_nicht_m\u00F6glich.
+
 Entries_exported_to_clipboard=Eintr\u00E4ge_in_die_Zwischenablage_kopiert
+
 entries_have_undefined_BibTeX_key=Eintr\u00E4ge_haben_einen_unbestimmten_BibTeX-Key
+
 entries_into_new_database=Eintr\u00E4ge_in_neue_Datei
+
 entry=Eintrag
+
 Entry_editor=Editor
+
 # The following lines correspond to names of key bindings:
 Entry_editor,_next_entry=Eintragseditor,_n\u00E4chster_Eintrag
+
 Entry_editor,_next_panel=Eintragseditor,_n\u00E4chstes_Panel
+
 Entry_editor,_previous_entry=Eintragseditor,_voriger_Eintrag
+
 Entry_editor,_previous_panel=Eintragseditor,_voriges_Panel
+
 Entry_editor,_store_field=Eintragseditor,_Feld_speichern
+
 Entry_in_current_database=Eintrag_in_aktueller_Datenbank
+
 Entry_in_import=Eintrag_in_Importierung
+
 Entry_is_incomplete=Eintrag_ist_nicht_vollst\u00E4ndig
+
 Entry_preview=Eintragsvorschau
+
 Entry_table=Tabellenansicht
+
 Entry_table_columns=Spaltenanordnung
+
 Entry_type=Eintragstyp
+
 Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Namen_von_Eintragstypen_d\u00FCrfen_weder_Leerzeichen_noch_die_folgenden_Zeichen_enthalten
+
 Entry_types=Eintragstypen
+
 EOF_in_mid-string=EOF_in_mid-string
+
 Error=Fehler
+
 ##Error:_check_your_External_viewer_settings_in_Preferences=Fehler:_\u00FCberpr\u00FCfen_Sie_Ihre_Einstellungen_zu_Externen_Programmen
 Error_in_field=Fehler_in_Feld
+
 Error_in_line=Fehler_in_Zeile
+
+Error_messages=Fehlermeldungen
+
 Error_opening_file=Fehler_beim_\u00D6ffnen_der_Datei
+
 Error_setting_field=Fehler_beim_Erstellen_des_Feldes
+
 Existing_file=Bestehende_Datei
+
 exists._Overwrite?=Existiert._\u00DCberschreiben?
+
 exists._Overwrite_file?=existiert._Ersetzen?
+
 Exit=Beenden
+
 Expand_subtree=Unterbaum_aufklappen
+
 Explicit=Explizit
+
 Export=Exportieren
+
 Export_entry_types=Eintragstypen_exportieren
+
 Export_name=Filtername
+
 Export_preferences=Einstellungen_exportieren
+
 Export_preferences_to_file=Exportiere_Einstellungen_in_Datei
+
 Export_properties=Eigenschaften_f\u00FCr_Exportfilter
+
 Export_selected_to_clipboard=Ausgew\u00E4hlte_in_die_Zwischenablage_kopieren
+
 Export_to_clipboard=In_die_Zwischenablage_kopieren
+
 Exported_database_to_file=Datei_exportiert_nach
+
 Exporting=Exportiere
+
 External_changes=Externe_\u00C4nderungen
+
 External_files=Externe_Dateien
+
 External_programs=Externe_Programme
+
 External_viewer_called=Externer_Betrachter_aufgerufen
+
 Failed_to_read_groups_data_(unsupported_version:_%0)=Gruppen_konnten_nicht_eingelesen_werden_(nicht_unterst\u00FCtzte_Version:_%0)
+
 Fetch=Abrufen
+
 Fetch_Articles_Citing_your_Database=Literaturangaben_abrufen,_die_mit_Datens\u00E4tzen_ihrer_Datei_\u00FCbereinstimmen
+
 Fetch_Citations_from_CiteSeer=Literaturangaben_von_CiteSeer_abrufen
+
 Fetch_citations_from_CiteSeer=Eintr\u00E4ge_von_CiteSeer_holen
+
 Fetch_CiteSeer=CiteSeer_abrufen
+
 Fetch_Medline=Medline_abrufen
+
 fetch_Medline=Medline_abrufen
+
 Fetch_Medline_by_author=Medline_mittels_Autor_abrufen
+
 Fetch_Medline_by_ID=Medline_mittels_ID_abrufen
+
 Fetched_all_citations_from_target_database.=Alle_Literaturangaben_von_der_Zieldatenbank_abgerufen.
+
 Fetching_Citations=Literaturangaben_werden_abgerufen
+
 Fetching_Identifiers=Bezeichner_werden_abgerufen
+
 Fetching_Medline...=Rufe_Medline_ab...
+
 Fetching_Medline_by_ID...=Rufe_Medline_mittels_ID_ab...
+
 Fetching_Medline_by_id_...=Rufe_Medline_mittels_ID_ab...
+
 Fetching_Medline_by_term_...=Rufe_Medline_mittels_Suchbegriff_ab...
+
 Field=Feld
+
 field=Feld
+
 # Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
 Field_content=Feldinhalt
+
 Field_name=Feldname
+
 Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Der_Feldname_darf_weder_Leerzeichen_noch_eines_der_folgenden_Zeichen_enthalten
+
 Field_sizes=Feldgr\u00f6\u00dfen
+
 Field_to_group_by=Sortierfeld
+
 Field_to_search=Zu_durchsuchendes_Feld
+
 Fields=Felder
+
 File=Datei
+
 file=Datei
+
 File_'%0'_not_found=Datei_'%0'_nicht_gefunden
+
 File_changed=Datei_ge\u00E4ndert
+
 File_extension=Dateiendung
+
 File_has_been_updated_externally._Are_you_sure_you_want_to_save?=Die_Datei_wurde_extern_ver\u00E4ndert._Sind_Sie_sicher,_dass_Sie_abspeichern_m\u00F6chten?
+
 File_not_found=Datei_nicht_gefunden
+
 File_updated_externally=Datei_extern_ge\u00E4ndert
+
 filename=Dateiname
+
 Files_opened=Dateien_ge\u00F6ffnet
+
+Filter=Filter
+
 Find_duplicates=Nach_doppelten_Eintr\u00E4gen_suchen
+
 Finished_autosetting_%0_field._Entries_changed:_%1.=Automatisches_Setzen_von_Feld_%0_abgeschlossen._Ge\u00e4nderte_Eintr\u00e4ge:_%1.
+
 Finished_synchronizing_%0_links._Entries_changed%c_%1.=Synchronisierung_von_%0_Links_abgeschlossen._Ge\u00e4nderte_Eintr\u00e4ge%c_%1.
+
 First_select_the_entries_you_want_keys_to_be_generated_for.=W\u00E4hlen_Sie_zuerst_die_Eintr\u00E4ge_aus,_f\u00FCr_die_Keys_erstellt_werden_sollen.
+
 Fit_table_horizontally_on_screen=Tabelle_horizontal_dem_Bildschirm_anpassen
+
 Float=Oben_einsortieren
+
 Font_Family=Schriftart
+
 Font_Preview=Vorschau
+
 Font_Size=Schriftgr\u00F6\u00DFe
+
 Font_Style=Schriftstil
+
 FontSelector=Schriften_w\u00E4hlen
+
 for=f\u00FCr
+
 Format_of_author_and_editor_names=Format_der_Autoren-_und_Hrsg.-Namen
+
 Format_used=benutztes_Format
+
 Formatter_not_found=Formatierer_nicht_gefunden
+
 found=gefunden
+
 found_in_aux_file=gefundene_Schl\u00FCssel_in_AUX_Datei
+
 Full_name=Kompletter_Name
+
 General=Allgemein
+
 General_fields=Allgemeine_Felder
+
 Generate=Erzeugen
+
 Generate_BibTeX_key=BibTeX-Key_generieren
+
 Generate_keys=Erstelle_Key
+
+Generate_keys_before_saving_(for_entries_without_a_key)=Keys_vor_dem_Speichern_erstellen_(f\u00fcr_Einr\u00e4ge_ohne_Key)
+
 Generate_now=Jetzt_generieren
+
 Generated_BibTeX_key_for=BibTeX-Key_erzeugt_f\u00FCr
+
 Generating_BibTeX_key_for=Erzeuge_BibTeX-Key_f\u00FCr
+
 Grab=Tastenk\u00FCrzel_holen
+
 Gray_out_entries_not_in_group_selection=Eintr\u00E4ge_ausblenden,_die_nicht_in_der_Gruppenauswahl_sind
+
 Gray_out_non-hits=Nicht-Treffer_grau_einf\u00E4rben
+
 Gray_out_non-matching_entries=Nicht_\u00FCbereinstimmende_Eintr\u00E4ge_ausblenden
+
 Group_definitions_have_been_converted_to_JabRef_1.7_format.=Die_Gruppendefinitionen_wurden_zum_JabRef_1.7-Format_konvertiert.
+
 Group_name=Name_der_Gruppe
+
 Group_properties=Gruppeneigenschaften
+
 Groups=Gruppen
+
 Harvard_RTF=Harvard_RTF
+
+Have_you_chosen_the_correct_package_path?=Habe_Sie_den_richtigen_Klassenpfad_gew\u00E4hlt?
+
 Help=Hilfe
+
 Help_contents=Hilfe_-_Inhalt
+
 Help_on_groups=Hilfe_zu_Gruppen
+
 Help_on_key_patterns=Hilfe_zu_BibTeX-Key-Mustern
+
 Hide_non-hits=Nicht-Treffer_ausblenden
+
+Hide_non-matching_entries=Nicht_passende_Eintr\u00e4ge_verbergen
+
+Hierarchical_context=Hierarchischer_Kontext
+
 Highlight=Markieren
+
 Highlight_groups_matching_all_selected_entries=Gruppen_markieren,_die_alle_selektierten_Eintr\u00e4ge_enthalten
+
 Highlight_groups_matching_any_selected_entry=Gruppen_markieren,_die_mindestens_einen_der_selektierten_Eintr\u00e4ge_enthalten
+
 Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group=Gruppen_markieren,_die_Eintr\u00e4ge_enthalten,_die_in_einer_der_gerade_markierten_Gruppen_enthalten_sind
+
 Highlight_overlapping_groups=Sich_\u00fcberschneidende_Gruppen_markieren
+
 Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>=Hinweis%c_Um_ausschlie\u00DFlich_bestimmte_Felder_zu_durchsuchen,_geben_Sie_z.B._ein%c<p><tt>author%esmith_and_title%eelectrical</tt>
+
 HTML=HTML
+
 Ignore=Ignorieren
+
 Illegal_type_name=Ung\u00FCltiger_Typ
+
 Immediate_subgroups=Direkte_Untergruppen
+
 Import=Importieren
+
 Import_and_append=Importieren_und_anh\u00E4ngen
+
 Import_and_keep_old_entry=Importieren_und_alten_Eintrag_behalten
+
 Import_and_remove_old_entry=Importieren_und_alten_Eintrag_l\u00F6schen
+
 Import_cancelled.=Importierung_abgebrochen.
+
 Import_Data_from_CiteSeer=Daten_von_CiteSeer_importieren
+
 Import_Data_from_CiteSeer_Database=Daten_aus_CiteSeer-Datenbank_importieren
+
 Import_database=Datei_importieren
+
 Import_entries=Eintr\u00E4ge_importieren
+
 Import_entry_types=Eintragstypen_importieren
+
 Import_failed=Import_fehlgeschlagen
+
 Import_Fields_from_CiteSeer=Felder_von_CiteSeer_importieren
+
 Import_fields_from_CiteSeer=Felder_von_CiteSeer_importieren
+
 Import_fields_from_CiteSeer_Database=Import_fields_from_CiteSeer_Database
+
 Import_Fields_from_CiteSeer_Database=Felder_aus_CiteSeer-Datenbank_importieren
+
 Import_file=Importiere_Datei
+
 Import_group_definitions=Gruppendefinitionen_importieren
+
 Import_name=Importer_Name
+
 Import_plain_text=Klartext_importieren
+
 Import_preferences=Einstellungen_importieren
+
 Import_preferences_from_file=Importiere_Einstellungen_aus_Datei
+
 Import_strings=Strings_importieren
+
 Import_to_open_tab=In_ge\u00f6ffnetes_Tab_importieren
+
 Import_word_selector_definitions=Wortauswahldefinitionen_importieren
+
 Imported_database=Datei_importiert
+
 Imported_entries=Eintr\u00E4ge_importiert
+
 Imported_entry_types=Eintragstypen_importiert
+
 Imported_file=Importierte_Datei
+
 Imported_from_database=Importiert_aus_Datei
+
 ImportFormat_class=ImportFormat_Klasse
+
 Importing=Importiere
+
 Importing_file=importiere_Datei
+
 Importing_in_unknown_format=Importiere_ein_unbekanntes_Format
+
 In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=Benutzen_Sie_in_JabRef_das_Zeichen_#_paarweise,_um_einen_String_(Abk\u00FCrzung)_anzugeben.
+
+Include_abstracts=Abstracts_ber\u00fccksichtigen
+
 Include_subgroups=Untergruppen_ber\u00fccksichtigen
-Include_subgroups\:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Untergruppen_ber\u00fccksichtigen:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_dieser_Gruppe_und_ihrer_Untergruppen_angezeigt
+
+Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Untergruppen_ber\u00fccksichtigen:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_dieser_Gruppe_und_ihrer_Untergruppen_angezeigt
+
+Include_subgroups\:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Untergruppen_ber\u00fccksichtigen\:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_dieser_Gruppe_und_ihrer_Untergruppen_angezeigt
+
 Incremental=Direkt
+
 Incremental_search=Weitersuchen
+
 Incremental_search_failed._Repeat_to_search_from_top.=Direkte_Suche_fehlgeschlagen._Wiederhole_die_Suche_vom_Anfang_der_Datenbank.
+
 Independent=Unabh\u00E4ngig
-Independent_group\:_When_selected,_view_only_this_group's_entries=Unabh\u00e4ngige_Gruppen:_Wenn_ausgew\u00e4hlt,_werden_nur_die_Eintr\u00e4ge_dieser_Gruppe_angezeigt
+
+Independent_group:_When_selected,_view_only_this_group's_entries=Unabh\u00e4ngige_Gruppen:_Wenn_ausgew\u00e4hlt,_werden_nur_die_Eintr\u00e4ge_dieser_Gruppe_angezeigt
+
+Independent_group\:_When_selected,_view_only_this_group's_entries=Unabh\u00e4ngige_Gruppen\:_Wenn_ausgew\u00e4hlt,_werden_nur_die_Eintr\u00e4ge_dieser_Gruppe_angezeigt
+
 Initially_show_groups_tree_expanded=Baumansicht_der_Gruppen_standardm\u00e4\u00dfig_aufklappen
+
 Input=Bearbeitungsoptionen
+
 Input_error=Eingabefehler
+
 Insert=einf\u00FCgen
+
 Insert_rows=Zeilen_einf\u00FCgen
+
+Insert_selected_citations_into_LyX=Ausgew\u00e4hlte_Literaturangaben_in_LyX_einf\u00fcgen
+
 Insert_selected_citations_into_LyX/Kile=Ausgew\u00E4hlte_Literaturangaben_in_LyX/Kile_einf\u00FCgen
+
 Insert_selected_citations_into_WinEdt=Ausgew\u00E4hlte_Literaturangaben_in_WinEdt_einf\u00FCgen
+
 insert_string_=String_einf\u00FCgen_
+
 Insert_URL=URL_einf\u00fcgen
+
 INSPEC=INSPEC
+
 integrity=Integrit\u00E4t
+
 # Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
 Integrity_check=Integrit\u00E4ts\u00FCberpr\u00FCfung
+
 Intersection=Schnittmenge
+
 Intersection_with_supergroups=Schnittmenge_mit_Obergruppen
+
 Invalid_BibTeX_key=Ung\u00fcltiger_BibTeX-Key
+
 Invalid_date_format=Ung\u00fcltiges_Datumsformat
+
 Invalid_URL=Ung\u00FCltige_URL
+
 Inverted=Invertiert
+
 is_a_standard_type.=ist_ein_Standardtyp
+
 ISI=ISI
+
 ISO_abbreviation=ISO-Abk\u00fcrzung
+
 Item_list_for_field=Wortliste_f\u00FCr_Feld
+
 JabRef_help=JabRef_Hilfe
+
 JabRef_preferences=JabRef_Einstellungen
+
 Journal_abbreviations=Abk\u00fcrzung_der_Zeitschriftennamen
+
 Journal_list_preview=Vorschau_der_Zeitschriftenliste
+
 Journal_name=Zeitschriftenname
+
 Journal_names=Zeitschriftennamen
+
 JStor_file=JStor_Datei
+
 Keep=Behalten
+
 Keep_both=Beide_behalten
+
 Keep_lower=Unteren_behalten
+
 Keep_upper=Oberen_behalten
+
 Key_bindings=Tastenk\u00FCrzel
+
 Key_bindings_changed=Tastenk\u00FCrzel_ge\u00E4ndert
+
 Key_generator_settings=Einstellungen_des_Key-Generators
+
 Key_pattern=BibTeX-Key-Muster
+
 keys_in_database=Keys_in_der_Datenbank
+
 Keyword=Stichwort
+
 Label=Name
+
 Language=Sprache
+
 Last_modified=zuletzt_ge\u00E4ndert
+
 Latex_AUX_file=LaTeX_AUX_Datei
+
 LaTeX_AUX_file=LaTeX_AUX-Datei
+
 Left=Links
+
 License=Lizenz
+
 Limit_to_fields=Auf_folgende_Felder_begrenzen
+
 Limit_to_selected_entries=Auf_ausgew\u00E4hlte_Eintr\u00E4ge_begrenzen
+
 Listen_for_remote_operation_on_port=Port_nach_externem_Zugriff_abh\u00f6ren
+
 Load_session=Sitzung_laden
+
 Loading_session...=Lade_Sitzung...
+
 Look_and_feel=Aussehen
+
 lower=klein
+
 Main_layout_file=Haupt-Layoutdatei
+
 Main_PDF_directory=Standard-Ordner_f\u00FCr_PDF-Dateien
+
 Main_PS_directory=Standard-Ordner_f\u00fcr_PS-Dateien
+
 Manage=Verwalten
+
 Manage_content_selectors=Wortauswahl_verwalten
+
 Manage_custom_exports=Verwalte_externe_Exportfilter
+
 Manage_custom_imports=Verwalte_externe_Importfilter
+
 Manage_journal_abbreviations=Abk\u00fcrzungen_der_Zeitschriften_verwalten
+
 Mark_entries=Eintr\u00E4ge_markieren
+
 Mark_entry=Eintrag_markieren
+
 Mark_new_entries_with_addition_date=Neue_Eintr\u00e4ge_mit_Datum_versehen
+
 Mark_new_entries_with_owner_name=Neue_Eintr\u00E4ge_mit_Namen_des_Besitzers_versehen
+
 # These are status line messages when marking/unmarking entries:
 Marked_selected=Ausgew\u00E4hlte_markiert
+
 Medline_entries_fetched=Medline-Eintr\u00E4ge_abgerufen
+
 Medline_XML=Medline_XML
+
 Medline_XML_File=Medline_XML_Datei
+
 Menu_and_label_font_size=Schriftgr\u00F6\u00DFe_in_Men\u00FCs
+
 Merged_external_changes=Externe_\u00C4nderungen_eingef\u00FCgt
+
 messages=Meldungen
+
 Messages=Mitteilungen
+
 Messages_and_Hints=Hinweise_und_Warnungen
+
 Miscellaneous=Verschiedenes
+
 Modification_of_field=\u00C4nderung_des_Felds
+
 Modified_group_"%0".=Gruppe_"%0"_ge\u00E4ndert.
+
 Modified_groups=Ge\u00e4nderte_Gruppen
+
 Modified_groups_tree=Baum_mit__modifizierten_Gruppen
+
 Modified_string=Ver\u00E4nderter_String
+
 Modify=Bearbeiten
+
 modify_group=Gruppe_bearbeiten
+
 MODS=MODS
+
 Move=Verschieben
+
 Move_down=Nach_unten
+
 Move_entries_in_group_selection_to_the_top=Sortiere_Eintr\u00E4ge_der_Gruppenauswahl_nach_oben
+
 move_group=Gruppe_verschieben
+
 Move_matching_entries_to_the_top=Treffer_nach_oben_sortieren
+
 Move_string_down=String_nach_unten
+
 Move_string_up=String_nach_oben
+
 Move_up=Nach_oben
+
 Moved_Group=Gruppe_verschoben
+
 Moved_group_"%0".=Gruppe_"%0"_verschoben.
+
 Name=Name
+
 Natbib_style=Natbib-Stil
+
 Ne_entries_imported.=Keine_Eintr\u00e4ge_importiert.
+
 nested_aux_files=referenzierte_AUX_Dateien
+
 New=Neu
+
 new=neu
+
 New_article=Neuer_Eintrag_'article'
+
 New_BibTeX_database=Neue_BibTeX_Datei
+
 New_BibTeX_entry=Neuer_BibTeX_Eintrag
+
 New_BibTeX_subdatabase=Neue_BibTeX_Teildatei
+
 New_book=Neuer_Eintrag_'book'
+
 New_content=Neuer_Inhalt
+
 New_database=Neue_Datei
+
 New_database_created.=Neue_Datei_angelegt.
+
 New_entry=Neuer_Eintrag
+
 New_entry...=Neuer_Eintrag...
+
 New_entry_from_plain_text=Neuer_Eintrag_aus_Klartext
+
 New_file=Neue_Datei
+
 New_group=Neue_Gruppe
+
 New_inbook=Neuer_Eintrag_'inbook'
+
 New_mastersthesis=Neuer_Eintrag_'masterthesis'
+
 New_phdthesis=Neuer_Eintrag_'phdthesis'
+
 New_proceedings=Neuer_Eintrag_'proceedings'
+
 New_string=Neuer_String
+
 New_subdatabase=Neue_Teildatei
+
 New_subdatabase_based_on_AUX_file=Neue_Teildatei_aus_AUX-Datei
+
 New_unpublished=Neuer_Eintrag_'unpublished'
+
 Next_entry=N\u00E4chster_Eintrag
+
 Next_tab=N\u00E4chster_Tab
+
 No_%0_found=Kein_%0_gefunden
+
 No_actual_changes_found.=Keine_aktuellen_\u00c4nderungen_gefunden.
+
 no_base-bibtex-file_specified=keine_Bibtex_Datenbank_angegeben!
+
 No_custom_imports_registered_yet.=Noch_keine_externen_Importfilter_registriert.
+
 no_database_generated=keine_Datenbank_erstellt_und_geschrieben
+
 No_duplicates_found=Keine_doppelten_Eintr\u00E4ge_gefunden
+
+No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Keine_Eintr\u00e4ge_gefunden._Bitte_vergewissern_Sie_sich,_dass_Sie_den_richtigen_Importfilter_benutzen.
+
 No_entries_imported.=Keine_Eintr\u00E4ge_importiert.
+
 No_entries_or_multiple_entries_selected.=Keine_oder_mehrere_Eintr\u00e4ge_ausgew\u00e4hlt.
+
 No_entries_selected=Keine_Eintr\u00E4ge_ausgew\u00E4hlt.
+
+No_exceptions_have_ocurred.=Es_sind_keine_Ausnahmen_aufgetreten.
+
+No_file_extension._Could_not_find_viewer_for_file.=Dateierweiterung_fehlt._Kein_Anzeigeprogramm_f\u00fcr_die_Datei_gefunden.
+
 No_GUI._Only_process_command_line_options.=Kein_GUI._Nur_Kommandozeilenbefehle_ausf\u00FChren.
+
 No_journal_names_could_be_abbreviated.=Es_konnten_keine_Zeitschriftennamen_abgek\u00fcrzt_werden.
+
 No_journal_names_could_be_unabbreviated.=Das_Aufheben_der_Abk\u00fcrzung_konnte_bei_keiner_Zeitschrift_durchgef\u00fchrt_werden.
+
 No_Medline_entries_found.=Keine_Medline-Eintr\u00E4ge_gefunden.
+
 No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=Sie_haben_keine_PDF-_oder_PS-Datei_angegeben_und_es_wurde_keine_Datei_gefunden,_die_mit_dem_BibTeX-Key_\u00FCbereinstimmt.
+
 No_references_found=Keine_Literaturangaben_gefunden
+
 No_saved_session_found.=Keine_gespeicherte_Sitzung_gefunden.
+
 No_url_defined=Keine_URL_angegeben
+
 non-Mac_only=nicht_f\u00FCr_Mac
+
 Normal=Normal
+
 not=nicht
+
 not_found=davon_nicht_gefunden
+
 Not_saved_(empty_session)=Nicht_gespeichert_(leere_Sitzung)
+
 Note_that_the_entry_causing_the_problem_has_been_selected.=Der_Eintrag,_der_das_Problem_verursacht,_wurde_ausgew\u00E4hlt.
+
 Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.=Beachten_Sie,_da\u00DF_die_neuen_Definitionen_nicht_mit_fr\u00DCheren_Versionen_von_JabRef_kompatibel_sind.
+
 Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,=Es_muss_der_volle_Klassenname_f\u00FCr_das_zu_verwendende_"look_and_feel"_angegeben_werden.
+
 Nothing_to_redo=Wiederholen_nicht_m\u00F6glich
+
 Nothing_to_undo=R\u00FCckg\u00E4ngig_nicht_m\u00F6glich
+
 # The next is used like in "References found: 1  Number of references to fetch?"
 Number_of_references_to_fetch?=Anzahl_der_abzurufenden_Literaturangaben?
+
 occurences=Ausdr\u00FCcke
+
 OK=OK
+
 Ok=OK
+
 One_or_more_keys_will_be_overwritten._Continue?=Einer_oder_mehrere_Keys_werden_\u00FCberschrieben._Fortsetzen?
+
 Open=\u00D6ffnen
+
 open=\u00F6ffnen
+
 Open_BibTeX_database=BibTeX_Datei_\u00F6ffnen
+
 Open_database=Datei_\u00F6ffnen
+
 Open_editor_when_a_new_entry_is_created=Editor_\u00F6ffnen,_wenn_ein_neuer_Eintrag_angelegt_wird
+
 Open_file=Datei_\u00F6ffnen
+
 Open_last_edited_databases_at_startup=Beim_Starten_von_JabRef_die_letzten_bearbeiteten_Dateien_\u00F6ffnen
+
 Open_PDF_or_PS=PDF_oder_PS_\u00F6ffnen
+
 Open_right-click_menu_with_Ctrl+left_button=Kontextmen\u00FC_mit_Strg_+_linker_Maustaste_\u00F6ffnen
+
 Open_URL_or_DOI=URL_oder_DOI_\u00F6ffnen
+
 Opened_database=Datei_ge\u00F6ffnet
+
 Opening=\u00D6ffne
+
 Opening_preferences...=\u00D6ffne_Voreinstellungen...
+
 Optional_fields=Optionale_Felder
+
 Options=Optionen
+
 or=oder
+
 out_of=von
+
 Output_or_export_file=Speichere_oder_exportiere_Datei
+
 Overlapping_groups=Sich_\u00fcberschneidende_Gruppen
+
 Override=\u00FCberschreiben
+
+Override_default_file_directories=Standard-Verzeichnisse_\u00fcberschreiben
+
 override_the_bibtex_key_by_the_selected_text=BibTeX-Key_mit_ausgew\u00e4hltem_Text_\u00fcberschreiben
+
 Overwrite_keys=Keys_\u00FCberschreiben
+
 Ovid=Ovid
+
 pairs_processed=Paare_\u00FCberarbeitet
+
 Paste=Einf\u00FCgen
+
 paste_entries=Eintr\u00E4ge_einf\u00FCgen
+
 paste_entry=Eintrag_einf\u00FCgen
+
 Paste_from_clipboard=Text_aus_Zwischenablage_einf\u00FCgen
+
 Pasted=Eingef\u00FCgt
+
 Path_to_HTML_viewer=Pfad_zum_HTML-Browser
+
 Path_to_LyX_pipe=Pfad_zur_LyX_pipe
+
 Path_to_PDF_viewer=Pfad_zum_PDF-Anzeigeprogramm
+
 Path_to_PS_viewer=Pfad_zum_PS-Anzeigeprogramm
+
 Path_to_WinEdt.exe=Pfad_zu_WinEdt.exe
+
 Paths_to_external_programs=Pfad_zu_externen_Programmen
+
+PDF_directory=PDF-Verzeichnis
+
 PDF_links=PDF-Link
+
 Personal_journal_list=Pers\u00f6nliche_Zeitschriftenliste
+
 Pick_titles=Titel_w\u00e4hlen
+
 Plain_right_menu=Men\u00FC
+
 Plain_text=Einfacher_Text
+
 Plain_text_import=Klartext_importieren
+
 Please_check_your_network_connection_to_this_machine.=Bitte_\u00FCberpr\u00FCfen_Sie_die_Netzwerkverbindung_ihres_Computers.
+
 Please_define_BibTeX_key_first=Bitte_geben_Sie_zuerst_einen_BibTeX-Key_an
+
 Please_enter_a_name_for_the_group.=Bitte_geben_Sie_einen_Namen_f\u00FCr_die_Gruppe_ein.
+
 Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author%esmith_and_title%eelectrical</tt>=Bitte_geben_Sie_einen_Suchausdruck_ein._Um_zum_Beispiel_alle_Felder_nach_<b>Smith</b>_zu_durchsuchen,_geben_Sie_ein%c<p><tt>smith</tt><p>Um_das_Feld_<b>Author</b>_nach_<b>Smith</b>_und_das_Feld_<b>Title</b>_nach_<b>electrical</b> [...]
+
 Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=Geben_Sie_bitte_eine_mit_Semikolon_oder_Komma_getrennte_Liste_der_Medline_IDs_(Nummern)_ein.
+
 Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=Bitte_geben_Sie_das_zu_durchsuchende_Feld_(z.B._<b>keywords</b>)_und_das_darin_zu_suchende_Stichwort_(z.B._<b>elektrisch</b>)_ein.
+
 Please_enter_the_string's_label=Geben_Sie_bitte_den_Namen_des_Strings_ein.
+
 Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=Bitte_lesen_Sie_die_JabRef-Hilfe_f\u00FCr_Informationen,_wie_man_die_CiteSeer-Werkzeuge_benutzt.
+
 Please_select_an_importer=Bitte_Importer_ausw\u00E4hlen
+
 Please_select_an_importer.=Bitte_Importer_ausw\u00E4hlen.
+
 Please_select_exactly_one_group_to_move.=Bitte_genau_eine_zu_bewegende_Gruppe_ausw\u00E4hlen.
+
 Please_wait_until_it_has_finished.=Bitte_warten_Sie,_bis_die_Aktion_beendet_ist.
+
 Possible_duplicate_entries=M\u00F6gliche_doppelte_Eintr\u00E4ge
+
 Possible_duplicate_of_existing_entry._Click_to_resolve.=M\u00f6glicherweise_doppelter_Eintrag._Klicken_um_Konflikt_zu_l\u00f6sen
+
 Preamble=Pr\u00E4ambel
+
 Preamble_editor,_store_changes=Pr\u00E4ambel-Editor,_\u00C4nderungen_\u00FCbernehmen
+
 Preferences=Einstellungen
+
 Preferences_recorded=Einstellungen_ge\u00E4ndert
+
 Preferences_recorded.=Einstellungen_gespeichert.
+
 Preserve_formatting_of_non-BibTeX_fields=Formatierung_von_nicht-BibTeX-Feldern_beibehalten
+
 Preview=Vorschau
+
 Previous_entry=Vorheriger_Eintrag
+
 Previous_tab=Vorheriger_Tab
+
 Primary_sort_criterion=Prim\u00e4res_Sortierkriterium
+
 Problem_with_parsing_entry=Problem_beim_Analysieren_des_Eintrags
+
+PS_directory=PS-Verzeichnis
+
 PS_links=PS_Links
+
+Push_selection_to_Emacs=Auswahl_in_Emacs_einf\u00fcgen
+
+push_selection_to_lyx=Ausgew\u00e4hlte_Eintr\u00e4ge_in_LyX_einf\u00fcgen
+
 Push_selection_to_LyX/Kile=Auswahl_in_LyX/Kile_einf\u00FCgen
+
 Push_selection_to_WinEdt=Auswahl_in_WinEdt_einf\u00FCgen
+
+Push_to_LatexEditor=In_LatexEditor_einf\u00fcgen
+
 Push_to_LyX=In_LyX_einf\u00FCgen
+
 Push_to_WinEdt=In_WinEdt_einf\u00FCgen
+
+Pushed_citations_to_Emacs=Literaturangaben_in_Emacs_eingef\u00fcgt
+
 Pushed_citations_to_WinEdt=Literaturangaben_in_WinEdt_eingef\u00fcgt
+
 Pushed_the_citations_for_the_following_rows_to=Literaturangaben_der_folgenden_Zeilen_eingef\u00FCgt_in
+
 Query_author(s)=Autor(en)_abfragen
+
 Quit=Beenden
+
 Quit_JabRef=JabRef_beenden
+
 Quit_synchronization=Synchronisation_beenden
+
 Raw_source=Importtext
+
 Really_delete_the_selected=Wirklich_l\u00F6schen:
+
+Rearrange_tabs_alphabetically_by_title=Tabs_alphabetisch_nach_Titel_sortieren
+
 Recent_files=Zuletzt_ge\u00F6ffnete_Dateien
+
 Redo=Wiederholen
+
 Refer/Endnote=Refer/Endnote
+
 Reference_database=Referenz-Datenbank
+
 # The next two lines are used like in "References found: 1  Number of references to fetch?"
 References_found=Literaturangaben_gefunden
-Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Obergruppe_verfeinern:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_aus_dieser_Gruppe_und_ihrer_\u00fcbergeordneten_Gruppe_angezeigt
+
+Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Obergruppe_verfeinern:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_aus_dieser_Gruppe_und_ihrer_\u00fcbergeordneten_Gruppe_angezeigt
+
+Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Obergruppe_verfeinern\:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_aus_dieser_Gruppe_und_ihrer_\u00fcbergeordneten_Gruppe_angezeigt
+
 Refresh_view=Ansicht_aktualisieren
+
 Regexp=Regexp
+
 Regular_Expression=Regul\u00E4rer_Ausdruck
+
 Remember_these_entry_types?=Diese_Eintragstypen_behalten?
+
 Remote_operation=Externer_Zugriff
+
 Remote_server_port=Externer_Server-Port
+
 Remove=L\u00F6schen
+
 Remove_all?=Alle_l\u00f6schen?
+
 Remove_all_subgroups=Untergruppen_entfernen
+
 Remove_all_subgroups_of_"%0"?=Alle_Untergruppen_von_"%0"_entfernen?
+
 Remove_double_braces_around_BibTeX_fields_when_loading.=Beim_Laden_doppelte_geschweifte_Klammern_um_BibTeX-Felder_entfernen
+
 Remove_duplicates=Doppelte_Eintr\u00E4ge_l\u00F6schen
+
 Remove_entry_from_import=Eintrag_von_Importierung_entfernen
+
+Remove_entry_selection_from_this_group=Ausgew\u00e4hlte_Eintr\u00e4ge_aus_dieser_Gruppe_entfernen
+
 Remove_entry_type=Eintragstyp_l\u00F6schen
+
 remove_from_group=aus_der_Gruppe_entfernen
+
 Remove_from_group=Aus_Gruppe_entfernen
+
 Remove_group=Gruppe_l\u00F6schen
+
 Remove_group,_keep_subgroups=Gruppe_l\u00F6schen,_Untergruppen_behalten
+
 Remove_group_"%0"?=Gruppe_"%0"_l\u00F6schen?
+
 Remove_group_"%0"_and_its_subgroups?=Gruppe_"%0"_inklusive_Untergruppen_l\u00F6schen?
+
 remove_group_(keep_subgroups)=Gruppe_l\u00F6schen_(Untergruppen_behalten)
+
 remove_group_and_subgroups=Gruppe_inklusive_Untergruppen_l\u00F6schen
+
 Remove_group_and_subgroups=Gruppe_und_Untergruppen_l\u00F6schen
+
 Remove_old_entry=Alten_Eintrag_entfernen
+
 Remove_selected_strings=Ausgew\u00E4hlte_Strings_entfernen
+
 remove_string=String_l\u00F6schen
+
 remove_string_=String_l\u00F6schen_
+
 Removed_entry_type.=Eintragstyp_gel\u00F6scht.
+
 Removed_group=Gruppe_gel\u00F6scht
+
 Removed_group_"%0".=Gruppe_"%0"_gel\u00F6scht.
+
 Removed_group_"%0"_and_its_subgroups.=Gruppe_"%0"_inklusive_Untergruppen_gel\u00F6scht.
+
 Removed_string=String_gel\u00F6scht
+
 Renamed_string=String_umbenannt
+
 Repeat_incremental_search=Direkte_Suche_wiederholen
+
 Replace=Ersetzen
+
+Replace_(regular_expression)=Ersetzen_(regul\u00e4rer_Ausdruck)
+
 Replace_string=String_ersetzen
+
 Replace_with=Ersetzen_mit
+
 Replaced=Ersetzt:
+
 Required_fields=Ben\u00F6tigte_Felder
+
 Reset_all=Alle_zur\u00FCcksetzen
+
 resolved=davon_aufgel\u00F6st
+
 Results=Ergebnisse
+
 Revert_to_original_source=Original_wiederherstellen
+
 Review=\u00dcberpr\u00fcfung
+
 Review_changes=\u00c4nderungen_\u00fcberpr\u00fcfen
+
 Right=Rechts
+
 RIS=RIS
+
 Save=Speichern
+
 Save_before_closing=Speichern_vor_dem_Beenden
+
 Save_database=Datei_speichern
+
 Save_database_as_...=Datei_speichern_unter_...
+
+Save_entries_in_their_original_order=Eintr\u00e4ge_in_urspr\u00fcnglicher_Reihenfolge_abspeichern
+
 Save_failed=Fehler_beim_Speichern
+
 Save_failed_during_backup_creation=W\u00e4hrend_der_Erstellung_des_Backups_ist_das_Speichern_fehlgeschlagen
+
 Save_failed_while_committing_changes=W\u00e4hrend_die_\u00c4nderungen_\u00fcbermittelt_wurden,_ist_das_Speichern_fehlgeschlagen
+
+Save_in_default_table_sort_order=In_der_Reihenfolge_der_Tabellensortierung_speichern
+
+Save_ordered_by_author/editor/year=Speichern_sortiert_nach_author/editor/year
+
 Save_selected_as_...=Auswahl_speichern_unter_...
+
 Save_session=Sitzung_speichern
+
 Saved_database=Datei_gespeichert
+
 Saved_selected_to=Auswahl_gespeichert_unter
+
 Saved_session=Sitzung_gespeichert
+
 Saving=Speichere
+
 Saving_database=Speichere_Datei
+
 Scan=\u00DCberpr\u00FCfen
+
 SciFinder=SciFinder
+
 Search=Suchen
+
 Search_All_Fields=Durchsuche_alle_Felder
+
 Search_all_fields=Alle_Felder_durchsuchen
+
 Search_error=Suchfehler
+
 Search_expression=Suchausdruck
+
 Search_for=Suchen_nach
+
 Search_General_Fields=Allgemeine_Felder_durchsuchen
+
 Search_general_fields=Allgemeine_Felder_durchsuchen
+
+Search_IEEEXplore=IEEEXplore_durchsuchen
+
 Search_Optional_Fields=Optionale_Felder_durchsuchen
+
 Search_optional_fields=Optionale_Felder_durchsuchen
+
 Search_Required_Fields=Ben\u00f6tigte_Felder_durchsuchen
+
 Search_required_fields=Ben\u00f6tigte_Felder_durchsuchen
+
 Search_Specified_Field(s)=Durchsuche_diese(s)_Feld(er)
+
 Search_term=Suchbegriff
+
+Searched_database._Global_number_of_hits=Datenbank_durchsucht._Anzahl_Treffer
+
 Searched_database._Number_of_hits=Datei_durchsucht._Anzahl_der_Treffer
+
 Searching_for_%0_file=Suche_nach_%0-Datei
+
 Searching_for_duplicates...=Suche_nach_doppelten_Eintr\u00E4gen...
+
 Secondary_sort_criterion=Zweites_Sortierkriterium
+
 Select=Ausw\u00E4hlen
+
 Select_a_Zip-archive=ZIP-Archiv_ausw\u00E4hlen
+
 Select_action=Aktion_w\u00e4hlen
+
 Select_all=Alle_ausw\u00E4hlen
+
 Select_Classpath_of_New_Importer=Klassenpfad_ausw\u00E4hlen
+
 Select_encoding=Kodierung_w\u00e4hlen
+
 Select_entries_in_group_selection=W\u00E4hle_Eintr\u00E4ge_in_Gruppenauswahl
+
 Select_entry_type=Eintragstyp_ausw\u00E4hlen
+
 Select_file_from_ZIP-archive=Eintrag_aus_der_ZIP-Archiv_ausw\u00E4hlen
+
 Select_format=Format_w\u00E4hlen
+
 Select_matches=Treffer_ausw\u00E4hlen
+
 Select_matching_entries=Treffer_ausw\u00E4hlen
+
 Select_new_ImportFormat_Subclass=Klasse_ausw\u00E4hlen
+
 Select_the_tree_nodes_to_view_and_accept_or_reject_changes=W\u00E4hlen_Sie_die_drei_Knoten_aus,_um_die_\u00C4nderungen_zu_sehen_und_anzunehmen_oder_zu_verwerfen
+
 Selector_enabled_fields=Felder_mit_Wortliste
+
 Set_general_fields=Allgemeine_Felder_festlegen
+
 Set_table_font=Tabellenschriftart_ausw\u00E4hlen
+
 Set_up_general_fields=Allgemeine_Felder_festlegen
+
 Settings=Einstellungen
+
 Setup_selectors=Wortlisten_verwalten
+
 Short_form=Kurzform
+
 Shortcut=Tastenk\u00FCrzel
+
 Show/edit_BibTeX_source=BibTeX_Quelltext_anzeigen
+
 Show_'Firstname_Lastname'='Vorname_Nachname'_anzeigen
+
 Show_'Lastname,_Firstname'='Nachname,_Vorname'_anzeigen
+
 Show_abstract=Zeige_abstract
+
 Show_BibTeX_source_by_default=Quelltext_standardm\u00E4\u00DFig_anzeigen
+
 Show_BibTeX_source_panel=BibTeX_Quelltextpanel_anzeigen
+
 Show_CiteSeer_column=CiteSeer-Spalte_anzeigen
+
 Show_confirmation_dialog_when_deleting_entries=Dialog_zum_L\u00F6schen_von_Eintr\u00E4gen_anzeigen
+
 Show_description=Beschreibung_anzeigen
+
 Show_dynamic_groups_in_<i>italics</i>=Dynamische_Gruppen_<i>kursiv</i>_anzeigen
+
 Show_entries_*not*_in_group_selection=Zeige_Eintr\u00E4ge,_die_*nicht*_in_der_Gruppenauswahl_sind
+
 Show_general_fields=Allgemeine_Felder_anzeigen
+
 Show_groups_matching_all=Gruppen_anzeigen,_die_alle_enthalten
+
 Show_groups_matching_any=Gruppen_anzeigen,_die_mindestens_einen_enthalten
+
 Show_icons_for_groups=Gruppen-Icon_anzeigen
+
 Show_names_unchanged=Namen_unver\u00E4ndert_anzeigen
+
 Show_one_less_rows=Zeige_eine_Zeile_weniger
+
 Show_one_more_row=Zeige_eine_Zeile_mehr
+
 Show_optional_fields=Optionale_Felder_anzeigen
+
 Show_overlapping_groups=Sich_\u00fcberschneidende_Gruppen_anzeigen
+
 Show_PDF/PS_column=PDF/PS-Spalte_anzeigen
+
 Show_required_fields=Ben\u00F6tigte_Felder_anzeigen
+
 Show_URL/DOI_column=URL/DOI-Spalte_anzeigen
+
 Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Warnmeldung_anzeigen,_wenn_ein_doppelter_BibTeX-Key_eingegeben_wird.
+
 Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Warnung_anzeigen_wenn_ein_leerer_BibTeX-Key_angegeben_wird
+
 Simple_HTML=Einfaches_HTML
+
 Sixpack=Sixpack
+
 Size=Gr\u00F6\u00DFe
+
 Size_of_groups_interface_(rows)=Gr\u00F6\u00DFe_der_Gruppenansicht_(Reihen)
+
 Skip=\u00dcberspringen
+
 Sort_alphabetically=Alphabetisch_sortieren
+
 Sort_Automatically=Automatisch_sortieren
+
 Sort_options=Sortieroptionen
+
 sort_subgroups=Untergruppen_sortieren
+
 Sorted_all_subgroups_recursively=Alle_Untergruppen_rekursiv_sortiert
+
 Sorted_all_subgroups_recursively.=Alle_Untergruppen_rekursiv_sortiert.
+
 Sorted_immediate_subgroups=Direkte_Untergruppen_sortiert
+
 Sorted_immediate_subgroups.=Alle_direkten_Untergruppen_sortiert.
+
 source_edit=Quelltextbearbeitung
+
 Special_table_columns=Spezielle_Spalten
+
 Start=Starten
+
 Start_incremental_search=Weitersuchen_(bei_direkter_Suche)
+
 Start_search=Suche_starten
+
 Statically_group_entries_by_manual_assignment=Statisches_Gruppieren_der_Eintr\u00E4ge_durch_manuelle_Zuweisung
+
 Status=Status
+
 Stop=Stop
+
 Store=Speichern
+
 Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Felder_mit_geschweiften_Klammern_speichern_und_\u00fcberz\u00e4hlige_Klammern_beim_Laden_entfernen.<BR>Geschweifte_Klammern_zeigen_an,_dass_BibTeX_die_Gro\u00df-/Kleinschreibung_beibehalten_soll.
+
 Store_journal_abbreviations=Abk\u00fcrzungen_der_Zeitschriften_speichern
+
 Store_string=String_speichern
+
 Store_the_following_fields_with_braces_around_capital_letters=Die_folgenden_Felder_mit_geschweiften_Klammern_um_die_Gro\u00dfbuchstaben_speichern
+
 Stored_definition_for_type=Typ-Definition_gespeichert
+
 Stored_entry=Eintrag_gespeichert
+
 Stored_entry.=Eintrag_gespeichert.
+
 Strings=Ersetzen
+
 Strings_for_database=Strings_f\u00FCr_die_Datei
+
 subdatabase_from_aux=Datenbank_aus_LaTeX_aux
+
 Subdatabase_from_aux=Teildatenbank_aus_aux-Datei
+
 Suggest=Vorschlag
+
 Switch_preview_layout=Layout_der_Vorschau_wechseln
+
+#### These lines were changed:
+Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Wechselt_zwischen_vollem_und_abgek\u00fcrztem_Zeitschriftennamen_falls_bekannt.
+
 Synchronize_%0_links=%0-Links_synchronisieren
+
 Synchronizing_%0_links...=Synchronisiere_%0-Links...
+
 Table=Tabelle
+
 Table_appearance=Erscheinungsbild_der_Tabelle
+
 Table_background_color=Hintergrundfarbe_der_Tabelle
+
 Table_grid_color=Farbe_des_Tabellenrasters
+
 Table_text_color=Textfarbe_der_Tabelle
+
 Tabname=Tab-Name
+
 Tertiary_sort_criterion=Drittes_Sortierkriterium
+
 Test=Test
+
 Text_Input_Area=Text_einf\u00FCgen
+
 The_#_character_is_not_allowed_in_BibTeX_fields=Das_Zeichen_#_ist_in_BibTeX-Feldern_nicht_erlaubt
+
 The_chosen_date_format_for_new_entries_is_not_valid=Das_Datumsformat_f\u00fcr_neue_Eintr\u00e4ge_ist_nicht_g\u00fcltig
+
 The_CiteSeer_fetch_operation_returned_zero_results.=Das_Importieren_von_CiteSeer_ergab_keine_Ergebnisse.
+
 the_field_<b>%0</b>=das_Feld_<b>%0</b>
+
 The_file<BR>'%0'<BR>has_been_modified<BR>externally!=Die_Datei<BR>_'%0'_<BR>wurde_von_einem_externen_Programm_ver\u00e4ndert!
+
 The_group_"%0"_already_contains_the_selection.=Die_Gruppe_"%0"_enth\u00e4lt_bereits_diese_Auswahl.
+
 The_group_"%0"_does_not_support_the_adding_of_entries.=Die_Gruppe_"%0"_unterst\u00FCtzt_das_manuelle_Hinzuf\u00FCgen_von_Eintr\u00E4gen_nicht.
+
 The_group_"%0"_does_not_support_the_removal_of_entries.=Die_Gruppe_"%0"_unterst\u00FCtzt_das_manuelle_Entfernen_von_Eintr\u00E4gen_nicht.
+
 The_label_of_the_string_can_not_be_a_number.=Der_Name_des_Strings_darf_keine_Zahl_sein.
+
 The_label_of_the_string_can_not_contain_spaces.=Der_Name_des_Strings_darf_keine_Leerzeichen_enthalten.
+
 The_label_of_the_string_can_not_contain_the_'#'_character.=Der_Name_des_Strings_darf_nicht_das_Zeichen_'#'_enthalten.
+
 The_output_option_depends_on_a_valid_import_option.=Die_Ausgabe-Option_beruht_auf_einer_g\u00fcltigen_Import-Option.
+
 The_regular_expression_<b>%0</b>_is_invalid%c=Der_Regul\u00E4re_Ausdruck_<b>%0</b>_ist_ung\u00FCltig%c
+
 The_search_is_case_insensitive.=Gro\u00DF-/Kleinschreibung_wird_nicht_unterschieden.
+
 The_search_is_case_sensitive.=Gro\u00DF-/Kleinschreibung_wird_unterschieden.
+
 The_string_has_been_removed_locally=Der_String_wurde_lokal_entfernt
+
 The_type_name_can_not_contain_spaces.=Der_Name_des_Typs_darf_keine_Leerzeichen_enthalten.
+
 The_URL_field_appears_to_be_empty_on_entry_number_=Das_URL-Feld_scheint_leer_zu_sein_bei_Eintrag_Nummer_
+
 There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?=Es_gibt_m\u00f6gliche_Duplikate_(markiert_mit_'D'),_die_nicht_gekl\u00e4rt_werden_konnten._Fortfahren?
+
 There_is_no_entry_type=Es_exisitiert_kein_Eintragstyp
+
 This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=Dies_ver\u00E4ndert_das_Feld_"%0"_Ihrer_Eintr\u00E4ge.nDas_k\u00F6nnte_zu_ungewollten_\u00C4nderungen_Ihrer_Eintr\u00E4ge_f\u00FChren.nDeshalb_ist_es_erforderlich,_dass_Sie_in_Ihrer_Gruppendefinition_das_Feld_"keywords"nangeben_oder_einen_Nam [...]
+
 this_button_will_update=Dieser_Button_\u00E4ndert_die_verwendete<BR>Spaltenbreite_in_der_Tabelle_der_Eintr\u00E4ge
+
 this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table=diese_Schaltfl\u00E4che_setzt_die_Einstellungen_der_Spaltenbreite<BR>auf_die_aktuellen_Spaltenbreiten_Ihrer_Tabelle
+
 This_entry_is_incomplete=Dieser_Eintrag_ist_unvollst\u00E4ndig
+
 This_entry_type_cannot_be_removed.=Dieser_Eintragstyp_kann_nicht_entfernt_werden.
+
 This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._Entries_can_be_removed_from_this_group_by_selecting_them_then_using_the_context_menu._Every_entry_assigned_to_this_group_must_have_a_unique_key._The_key_may_be_changed_at_any_time_as_long_as_it_remains_unique.=Diese_Gruppe_enth\u00E4lt_manuell_zugewiesene_Eintr\u00E4ge._Eintr\u00E4ge_k\u00F6nnen_dieser_Gruppe_zugewiesen_werde [...]
+
 This_group_contains_entries_in_which=Diese_Gruppe_enth\u00E4lt_Eintr\u00E4ge,_bei_denen
+
 This_group_contains_entries_in_which_any_field_contains_the_regular_expression_<b>%0</b>=Diese_Gruppe_enth\u00E4lt_Eintr\u00E4ge,_in_denen_ein_beliebiges_Feld_den_Regul\u00E4ren_Ausdruck_<b>%0</b>_enth\u00E4lt.
+
 This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>=Diese_Gruppe_enth\u00E4lt_Eintr\u00E4ge,_in_denen_ein_beliebiges_Feld_den_Ausdruck_<b>%0</b>_enth\u00E4lt.
+
 This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>=Diese_Gruppe_enth\u00e4lt_Eintrage,_deren_Feld_<b>%0</b>_das_Stichwort_<b>%1</b>_enth\u00e4lt
+
 This_group_contains_entries_whose_<b>%0</b>_field_contains_the_regular_expression_<b>%1</b>=Diese_Gruppe_enth\u00E4lt_Eintrage,_deren_Feld_<b>%0</b>_den_Regul\u00E4ren_Ausdruck_<b>%1</b>_enth\u00E4lt
+
 This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=Dies_ist_ein_einfacher_Copy_&_Paste-Dialog._F\u00FCgen_sie_zun\u00E4chst_Text_in_das_Eingabefeld_ein._Anschlie\u00DFend_k\u00F6nen_Sie_Textstellen_markieren_und_einem_BibTeX-Feld_zuordnen.
+
 This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=Dies_ist_ein_einfacher_Copy_&_Paste_Dialog_zum_Einf\u00fcgen_von_Feldern_aus_normalem_Text.
+
 This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=Veranlasst_JabRef_dazu,_jedem_%0-Link_zu_folgen_und_zu_\u00fcberpr\u00fcfen,_ob_die_entsprechende_Datei_existiert._Wenn_nicht,_werden_M\u00f6glichkeiten_angegeben,_das_Problem_zu_l\u00f6sen.
+
 This_operation_cannot_work_on_multiple_rows.=Diese_Aktion_kann_nicht_mit_mehreren_Zeilen_durchgef\u00FChrt_werden.
+
+This_operation_requires_all_selected_entries_to_have_BibTex_keys_defined.=F\u00fcr_diesen_Vorgang_m\u00fcssen_alle_ausgew\u00e4hlen_Eintr\u00e4ge_einen_BibTeX-Key_haben.
+
+This_operation_requires_one_or_more_entries_to_be_selected.=F\u00fcr_diesen_Vorgang_muss_mindestens_ein_Eintrag_ausgew\u00e4hlt_sein.
+
+To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=Einstellungen_unter_<B>Optionen_->_Einstellungen_der_Zeitschriften_verwalten</B>
+
 Toggle_abbreviation=Abk\u00fcrzung_an-/abschalten
+
 Toggle_entry_preview=Eintragsvorschau_ein-/ausblenden
+
 Toggle_groups_interface=Gruppenansicht_ein-/ausblenden
+
 Toggle_search_panel=Suchdialog_ein-/ausblenden
+
 Tools=Extras
+
 Try_different_encoding=Versuchen_Sie_es_mit_einer_anderen_Kodierung
+
 Type=Typ
+
 Type_set_to_'other'=Typ_als_'other'_deklariert
+
 Unabbreviate_journal_names_of_the_selected_entries=Abk\u00fcrzung_der_Zeitschriftennamen_der_ausgew\u00e4hlten_Eintr\u00e4ge_aufheben
+
 unable_to_access_LyX-pipe=LyX-pipe_nicht_gefunden
+
 Unable_to_create_graphical_interface=Grafische_Benutzeroberfl\u00E4che_konnte_nicht_erzeugt_werden
+
 Unable_to_parse_clipboard_text_as_Bibtex_entries.=Der_Text_der_Zwischenablage_konnte_nicht_als_BibTeX-Format_analysiert_werden.
+
 Unable_to_parse_the_following_URL=Folgende_URL_konnte_nicht_analysiert_werden
+
 unable_to_write_to=konnte_nicht_speichern_auf
+
 Undo=R\u00FCckg\u00E4ngig
+
 Union=Vereinigung
+
 unknown_bibtex_entries=unbekannte_BibTeX-Eintr\u00E4ge
+
 Unknown_bibtex_entries=Fehlende_BibTeX_Eintr\u00E4ge
+
 unknown_edit=unbekannter_Bearbeitungsschritt
+
 unknown_entry_type=unbekannter_Eintragstyp
+
 Unknown_export_format=Unbekanntes_Export-Format
+
 Unmark_all=S\u00E4mtliche_Markierungen_aufheben
+
 Unmark_entries=Markierung_aufheben
+
 Unmark_entry=Markierung_aufheben
+
 Unmarked_selected=Markierung_f\u00fcr_ausgew\u00e4hlte_Eintr\u00e4ge_aufgehoben
+
 Unpack_EndNote_filter_set=Entpacke_EndNote_Filter-Set
+
 Unpacked_file=Entpackte_Datei
+
 Unpacked_file.=Datei_entpackt.
+
 Unsupported_version_of_class_%0:_%1=Nicht_unterst\u00FCtzte_Version_der_Klasse_%0:_%1
+
 untitled=ohne_Titel
+
 Up=Hoch
+
 Update_to_current_column_widths=Aktuelle_Spaltenbreiten_verwenden
+
 Updated_group_selection=Gruppenauswahl_aktualisiert
+
 Updating_entries...=Eintr\u00E4ge_werden_aktualisiert...
+
 UPPER=GROSS
+
 Upper_Each_First=Jeden_Ersten_Gro\u00DF
+
 Upper_first=Ersten_gro\u00DF
+
 usage=Benutzung
+
 Use_antialiasing_font=Antialias-Schrift_benutzen
+
 Use_antialiasing_font_in_table=Gegl\u00E4ttete_Schriftart_verwenden_(in_der_Tabelle)
+
 Use_inspection_window_also_when_a_single_entry_is_imported.=Kontrollfenster_benutzen,_auch_wenn_nur_ein_Eintrag_importiert_wird.
+
 Use_other_look_and_feel=anderes_"look_and_feel"_benutzen
+
 Use_regular_expressions=Regul\u00E4re_Ausdr\u00FCcke_benutzen
+
 Use_the_following_delimiter=Benutzen_Sie_das_folgende_Trennzeichen
+
 Use_the_following_delimiter_character(s)=Folgende(s)_Trennzeichen_benutzen
+
 Uses_default_application=Benutze_Standardprogramm
+
 Value_cleared_externally=Wert_extern_gel\u00F6scht
+
 Value_set_externally=Wert_extern_gesetzt
+
 verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid=\u00FCberpr\u00FCfen_Sie,_ob_LyX_l\u00E4uft_und_ob_die_Angaben_zur_lyxpipe_stimmen
+
 View=Ansicht
+
 Visible_fields=Angezeigte_Felder
+
 Warn_about_unresolved_duplicates_when_closing_inspection_window=Warnung_zu_ungekl\u00e4rten_Duplikaten_ausgeben,_wenn_das_Kontrollfenster_geschlossen_wird
+
 Warn_before_overwriting_existing_keys=Vor_dem_\u00dcberschreiben_von_existierenden_Keys_warnen
+
 Warning=Warnung
+
 Warning_there_is_a_duplicate_key=Achtung!_Es_ist_ein_doppelter_Key_vorhanden
+
 Warnings=Warnungen
+
 web_link=Web-Link
+
+What_do_you_want_to_do?=Was_m\u00f6chten_Sie_tun?
+
 When_adding/removing_keywords,_separate_them_by=Beim_Hinzuf\u00fcgen_oder_L\u00f6schen_von_Stichw\u00f6rtern_folgendes_Trennzeichen_benutzen
+
 with=mit
+
 Word=Wort
+
 Wrong_file_format=Falsches_Dateiformat
+
 You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=Sie_haben_die_Spracheinstellung_ge\u00E4ndert._Sie_m\u00FCssen_JabRef_neu_starten,_damit_die_\u00C4nderungen_in_Kraft_treten.
+
 You_have_cleared_this_field._Original_value=Sie_haben_dieses_Feld_gel\u00F6scht._Urspr\u00FCnglicher_Wert
+
 You_must_choose_a_file_name_to_store_journal_abbreviations=Sie_m\u00fcssen_einen_Dateinamen_w\u00e4hlen,_um_die_Abk\u00fcrzungen_der_Zeitschriften_zu_speichern
+
 You_must_enter_an_integer_value_in_the_text_field_for=Sie_m\u00fcssen_eine_Ganzzahl_verwenden_im_Textfeld_f\u00fcr
+
 You_must_fill_in_a_name_for_the_entry_type.=Sie_m\u00FCssen_einen_Namen_f\u00FCr_den_Eintragstyp_eingeben.
+
 You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=Sie_m\u00FCssen_einen_Namen,_einen_Suchbegriff_und_einen_Feldnamen_f\u00FCr_die_Gruppe_angeben.
+
 You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.=Sie_m\u00FCssen_JabRef_neu_starten,_damit_die_Tastenk\u00FCrzel_funktionieren.
+
 You_must_select_a_row_to_perform_this_operation.=Sie_m\u00FCssen_eine_Zeile_ausw\u00E4hlen,_um_diese_Aktion_durchf\u00FChren_zu_k\u00F6nnen.
+
 You_must_select_at_least_one_row_to_perform_this_operation.=Sie_m\u00FCssen_mindestens_eine_Zeile_ausw\u00E4hlen,_um_diesen_Vorgang_durchzuf\u00FChren.
+
 You_must_set_both_BibTeX_key_and_%0_directory=Sie_m\u00FCssen_sowohl_den_BibTeX-Key_als_auch_den_%0-Ordner_angeben
-You_must_set_both_bibtex_key_and_PDF_directory=Sie_m\u00fcssen_sowohl_den_BibTeX-Key,_als_auch_das_PDF-Verzeichnis_angeben
-Your_new_key_bindings_have_been_stored.=Ihre_neuen_Tastenk\u00FCrzel_wurden_gespeichert.
-Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Argumente_wurden_der_laufenden_JabRef-Instanz_\u00fcbergeben._Schlie\u00dfen_l\u00e4uft.
-Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Konnte_zu_keinem_aktiven_gnuserv-Prozess_verbinden._Vergewissern_Sie_sich,_dass_(X)Emacs_l\u00e4uft,<BR>und_dass_der_Server_gestartet_wurde_(mit_dem_Befehl_'gnuserv-start').
-Push_selection_to_Emacs=Auswahl_in_Emacs_einf\u00fcgen
-Pushed_citations_to_Emacs=Literaturangaben_in_Emacs_eingef\u00fcgt
-Filter=Filter
-Hide_non-matching_entries=Nicht-Treffer_ausblenden
-Replace_(regular_expression)=Ersetzen_(Regul\u00e4rer_Ausdruck)
-Cite_command_(for_Emacs/WinEdt)=Cite-Kommando_(f\u00fcr_Emacs/WinEdt)
-Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Konnte_%0_%1_nicht_realisieren._Haben_Sie_den_richtigen_Paket-Pfad_angegeben?
-No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Keine_Eintr\u00e4ge_gefunden._Bitte_vergewissern_Sie_sich,_dass_Sie_den_richtigen_Importfilter_benutzen.
 
-#### These lines were changed:
-Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=
-To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=
-#####Switches_between_full_and_abbreviated_journal_name=Wechselt_zwischen_kompletten_und_abgek\u00fcrzten_Zeitschriftennamen
-#####if_the_journal_name_is_known._Go_to_(...............)=falls_der_Zeitschriftenname_bekannt_ist._Gehe_zu_(...............)
+You_must_set_both_bibtex_key_and_PDF_directory=Sie_m\u00fcssen_sowohl_den_BibTeX-Key,_als_auch_das_PDF-Verzeichnis_angeben
 
-Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=
+Your_new_key_bindings_have_been_stored.=Ihre_neuen_Tastenk\u00FCrzel_wurden_gespeichert.
 
-Hierarchical_context=
-Add_entry_selection_to_this_group=
-Assign_entry_selection_exclusively_to_this_group=
-Remove_entry_selection_from_this_group=
diff --git a/src/resource/JabRef_de.properties.orig b/src/resource/JabRef_de.properties.orig
deleted file mode 100644
index ebbe365..0000000
--- a/src/resource/JabRef_de.properties.orig
+++ /dev/null
@@ -1,1029 +0,0 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
-
-!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=Dies_ist_ein_einfacher_Copy_&_Paste-Dialog._Nachdem_Text_in_das_Texteingabefeld_geladen_oder_kopiert_wurde,_k\u00f6nnen_Sie_Textteile_markieren_und_ihnen_ein_BibTeX-Feld_zuordnen.
-%0_contains_the_Regular_Expression_<b>%1</b>=%0_den_Regul\u00E4ren_Ausdruck_<b>%1</b>_enth\u00E4lt
-%0_contains_the_term_<b>%1</b>=%0_den_Ausdruck_<b>%1</b>_enth\u00E4lt
-%0_doesn't_contain_the_Regular_Expression_<b>%1</b>=%0_nicht_den_Regul\u00E4ren_Ausdruck_<b>%1</b>_enth\u00E4lt
-%0_doesn't_contain_the_term_<b>%1</b>=%0_nicht_den_Ausdruck_<b>%1</b>_enth\u00E4lt
-%0_doesn't_match_the_Regular_Expression_<b>%1</b>=%0_nicht_exakt_dem_Regul\u00E4ren_Ausdruck_<b>%1</b>_entspricht
-%0_doesn't_match_the_term_<b>%1</b>=%0_nicht_exakt_dem_Ausdruck_<b>%1</b>_entspricht
-%0_field_set=%0-Feld_erstellt
-%0_import_cancelled.=%0_Importierung_abgebrochen
-%0_matches_the_Regular_Expression_<b>%1</b>=%0_exakt_dem_Regul\u00E4ren_Ausdruck_<b>%1</b>_entspricht
-%0_matches_the_term_<b>%1</b>=%0_exakt_dem_Ausdruck_<b>%1</b>_entspricht
-<field_name>=<Feldname>
-<HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>=<HTML>Entpacke_die_zip-Datei_mit_den_Import/Export-Filtern_f\u00FCr_EndNote,<BR>um_die_bestm\u00F6gliche_Kompatibilit\u00E4t_mit_JabRef_zu_gew\u00E4hrleisten</HTML>
-<no_field>=<kein_Feld>
-<select>=<ausw\u00E4hlen>
-<select_word>=<Wort_ausw\u00E4hlen>
-_on_entry_number_=_bei_Eintrag_Nummer_
-A_CiteSeer_fetch_operation_is_currently_in_progress.=CiteSeer-Abruf_ist_in_Bearbeitung.
-A_CiteSeer_import_operation_is_currently_in_progress.=Ein_CiteSeer-Import_ist_gerade_in_Bearbeitung.
-A_string_with_that_label_already_exists=Ein_String_mit_diesem_Namen_exisitiert_bereits
-Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Zeitschriftennamen_der_ausgew\u00e4hlten_Eintr\u00e4ge_abk\u00fcrzen_(ISO-Abk\u00fcrzung)
-Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Zeitschriftennamen_der_ausgew\u00e4hlten_Eintr\u00e4ge_abk\u00fcrzen_(MEDLINE-Abk\u00fcrzung)
-Abbreviate_names=Namen_abk\u00fcrzen
-Abbreviation=Abk\u00fcrzung
-About_JabRef=\u00DCber_JabRef
-Abstract=Zusammenfassung
-Accept=\u00DCbernehmen
-Accept_change=\u00C4nderung_akzeptieren
-Action=Aktion
-Add=Hinzuf\u00FCgen
-Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=F\u00FCge_(kompilierten)_externe_ImportFormat_Klasse_aus_Verzeichnis_hinzu._\nDas_Verzeichnis_mu\u00DF_nicht_im_Klassenpfad_von_JabRef_enthalten_sein.
-Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=F\u00FCge_(kompilierten)_externe_ImportFormat_Klasse_aus_Verzeichnis_hinzu._\nDas_Verzeichnis_mu\u00DF_nicht_im_Klassenpfad_von_JabRef_enthalten_sein.
-add_entries_to_group=Eintr\u00E4ge_zu_Gruppe_hinzuf\u00FCgen
-Add_from_folder=Aus_Klassenpfad_hinzuf\u00FCgen
-Add_from_jar=Aus_Archiv-Datei_hinzuf\u00FCgen
-add_group=Gruppe_hinzuf\u00FCgen
-Add_Group=Gruppe_hinzuf\u00FCgen
-Add_new=Neu
-Add_Subgroup=Untergruppe_hinzuf\u00FCgen
-Add_to_group=Zu_Gruppe_hinzuf\u00FCgen
-Added_entry=Eintrag_hinzugef\u00FCgt
-Added_group=Gruppe_hinzugef\u00FCgt
-Added_group_"%0".=Gruppe_"%0"_hinzugef\u00FCgt.
-Added_new=Neu_hinzugef\u00FCgt
-Added_string=String_hinzugef\u00FCgt
-Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_can_be_assigned_manually_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._This_process_adds_the_term_<b>%1</b>_to_each_entry's_<b>%0</b>_field._Entries_can_be_removed_manually_from_this_group_by_selecting_them_then_using_the_context_menu._This_process_removes_the_term_<b>%1</b>_from_each_entry's_<b>%0</b>_field.=Zus\u00E4tzlich_k\u00F6nnen_Eintr\u00E4ge,_deren_Feld_<b>%0</b>_nicht_< [...]
-Advanced=Erweitert
-Advanced_options_for_setting...=Erweiterte_Optionen_f\u00fcr_Einstellung...
-All_Entries=Alle_Eintr\u00E4ge
-All_entries=Alle_Eintr\u00E4ge
-All_entries_of_this_type_will_be_declared_typeless._Continue?=Alle_Eintr\u00E4ge_dieses_Typs_werden_als_typlos_eingestuft._Fortfahren?
-All_fields=Alle_Felder
-All_subgroups_(recursively)=Alle_Untergruppen_(rekursiv)
-Allow_editing_in_table_cells=Bearbeiten_in_der_Tabelle_zulassen
-Always_save_database_ordered_by_author_name=Datei_immer_nach_Autorennamen_sortiert_abspeichern
-and=und
-and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.=Au\u00DFerdem_muss_die_Klasse_beim_n\u00E4chsten_Start_von_JabRef_durch_den_"Classpath"_erreichbar_sein.
-any_field_that_matches_the_regular_expression_<b>%0</b>=ein_beliebiges_Feld,_auf_das_der_Regul\u00E4re_Ausdruck_<b>%0</b>_passt,
-Appearance=Erscheinungsbild
-Append=anf\u00FCgen
-Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Inhalt_einer_BibTeX-Datei_an_die_aktuelle_Datei_anh\u00E4ngen
-Append_database=Datei_anh\u00E4ngen
-append_the_selected_text_to_bibtex_key=ausgew\u00e4hlten_Text_an_BibTeX-Key_anh\u00e4ngen
-Apply=\u00DCbernehmen
-Assign_entries_based_on:=Eintr\u00e4ge_zuweisen_basierend_auf:
-Assign_new_file=Neue_Datei_zuordnen
-Assign_the_original_group's_entries_to_this_group?=Eintr\u00E4ge_der_urspr\u00FCnglichen_Gruppe_zu_dieser_Gruppe_hinzuf\u00FCgen?
-Assigned_%0_entries_to_group_"%1".=%0_Eintr\u00E4ge_zu_Gruppe_"%1"_hinzugef\u00FCgt.
-Assigned_1_entry_to_group_"%0".=1_Eintrag_zu_Gruppe_"%0"_hinzugef\u00FCgt.
-Attach_%0_file=Datei_%0_anf\u00fcgen
-Attach_URL=URL_anf\u00fcgen
-Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.=Versucht,_%0-Links_f\u00fcr_die_Eintr\u00e4ge_automatisch_zuzuordnen._Dies_funktioniert,_wenn_der_Name_einer_%0-Datei_im_%0-Verzeichnis_oder_einem_Unterverzeichnis<BR>identisch_ist_mit_dem_BibTeX-Key_eines_Eintrags_(erweitert_um_die_jeweilige_Dateiendung).
-Auto=Auto
-Autodetect_format=Format_automatisch_erkennen
-Autogenerate_BibTeX_key=BibTeX-Key_automatisch_generieren
-Autogenerate_BibTeX_keys=BibTeX-Keys_automatisch_generieren
-Autogenerate_groups=Gruppen_automatisch_erstellen
-autogenerate_keys=BibTeX-Keys_automatisch_generieren
-Automatically_create_groups=Gruppen_automatisch_erstellen
-Automatically_create_groups_for_database.=Automatisch_Gruppen_f\u00FCr_die_Datei_anlegen.
-Automatically_created_groups=Automatisch_erzeugte_Gruppen
-Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups=Gruppenansicht_automatisch_ausblenden,_wenn_zu_einer_Datei_ohne_Gruppen_gewechselt_wird
-Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups=Gruppenansicht_automatisch_einblenden,_wenn_zu_einer_Datei_mit_Gruppen_gewechselt_wird
-Autoset=Automatisch_zuordnen
-Autoset_%0_field=Feld_%0_automatisch_setzen
-Autoset_%0_links._Allow_overwriting_existing_links.=%0_Links_automatisch_zuordnen._Vorhandene_Links_\u00fcberschreiben.
-Autoset_%0_links._Do_not_overwrite_existing_links.=%0_Links_automatisch_zuordnen._Vorhandene_Links_nicht_\u00fcberschreiben.
-Autosetting_%0_field...=Automatisches_Setzen_von_Feld_%0...
-AUX_File_import=Teildatenbank_aus_AUX_Datei_erstellen
-AUX_file_import=AUX_Datei_Import
-Available_export_formats=Verf\u00FCgbare_Exportformate
-Available_fields=verf\u00FCgbare_BibTeX_Felder
-Available_import_formats=Verf\u00FCgbare_Importformate
-Background_color_for_marked_entries=Hintergrundfarbe_f\u00fcr_markierte_Eintr\u00e4ge
-Background_color_for_optional_fields=Hintergrundfarbe_f\u00fcr_optionale_Felder
-Background_color_for_required_fields=Hintergrundfarbe_f\u00fcr_ben\u00f6tigte_Felder
-Backup_old_file_when_saving=Beim_Speichern_ein_Backup_der_alten_Datei_anlegen
-Bibkey_to_filename_conversion=Konvertierung_von_BibTeX-Key_zu_Dateiname
-Biblioscape_Tag_file=Biblioscape_Tag-Datei
-BibTeX=BibTeX
-BibTeX_key=BibTeX-Key
-BibTeX_key_is_unique.=Der_BibTeX-Key_ist_eindeutig.
-BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file=Kein_BibTeX-Key_vorhanden._Bitte_Dateinamen_zum_Download_angeben
-BibTeX_source=BibTeX_Quelltext
-BibTeXML=BibTeXML
-BibTeXML_File=BibTeXML_Datei
-Binding=Tastenk\u00FCrzel
-Broken_link=Fehlerhafter_Link
-Browse=Durchsuchen
-by=von
-Calling_external_viewer...=Externes_Anzeigeprogramm_wird_aufgerufen
-Cancel=Abbrechen
-Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?=Eintr\u00e4ge_k\u00f6nnen_einer_Gruppe_nicht_hinzugef\u00fcgt_werden,_ohne_Keys_zu_generieren._Sollen_die_Keys_jetzt_generiert_werden?
-Cannot_merge_this_change=Kann_diese_\u00C4nderung_nicht_einf\u00FCgen
-Cannot_move_group=Gruppe_kann_nicht_verschoben_werden
-Cannot_move_group_"%0"_down.=Gruppe_"%0"_kann_nicht_nach_unten_bewegt_werden.
-Cannot_move_group_"%0"_left.=Gruppe_"%0"_kann_nicht_nach_links_bewegt_werden.
-Cannot_move_group_"%0"_right.=Gruppe_"%0"_kann_nicht_nach_rechts_bewegt_werden.
-Cannot_move_group_"%0"_up.=Gruppe_"%0"_kann_nicht_nach_oben_bewegt_werden.
-case_insensitive=Gro\u00DF-/Kleinschreibung_wird_nicht_unterschieden
-case_sensitive=Gro\u00DF-/Kleinschreibung_wird_unterschieden
-Case_sensitive=Gro\u00DF-/Kleinschreibung_unterscheiden
-change_assignment_of_entries=\u00C4nderung_der_zugewiesenen_Eintr\u00E4ge
-# The following are for case change in right-click menu in entry editor. The last four
-# illustrate the four variations of capitalization
-Change_case=Gro\u00DF-_und_Kleinschreibung
-Change_entry_type=Eintragstyp_\u00E4ndern
-change_key=BibTeX-Key_\u00E4ndern
-Change_of_Grouping_Method=\u00C4ndern_der_Gruppierungsmethode
-change_preamble=Pr\u00E4ambel_\u00E4ndern
-change_string_content=Inhalt_des_Strings_\u00E4ndern
-change_string_name=Namen_des_Strings_\u00E4ndern
-change_type=Typ_\u00E4ndern
-changed_=ge\u00E4ndert_
-Changed_font_settings=Schrifteinstellungen_ge\u00E4ndert
-Changed_language_settings=Spracheinstellungen_ge\u00E4ndert.
-Changed_look_and_feel_settings="Look_and_Feel"-Einstellungen_ge\u00E4ndert
-Changed_preamble=Pr\u00E4ambel_ge\u00E4ndert
-Changed_type_to=Typ_ge\u00E4ndert_zu
-Characters_to_ignore=Folgende_Buchstaben_ignorieren
-Check_existing_%0_links=Existierende_%0-Links_\u00fcberpr\u00fcfen
-Check_links=Links_\u00fcberpr\u00fcfen
-Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=URL_zum_Herunterladen_ausw\u00e4hlen._Der_Standardwert_f\u00fchrt_zu_einer_Liste,_die_von_den_JabRef-Entwicklern_zur_Verf\u00fcgung_gestellt_wird.
-Citation_import_from_CiteSeer_failed.=Fehler_beim_Import_von_CiteSeer.
-CiteSeer_Error=CiteSeer-Fehler
-CiteSeer_Fetch_Error=Fehler_beim_Abrufen_von_CiteSeer
-CiteSeer_import_entries=CiteSeer_Eintr\u00E4ge_importieren
-CiteSeer_Import_Error=Fehler_beim_Import_von_CiteSeer
-CiteSeer_Import_Fields=CiteSeer_Import-Felder
-CiteSeer_Transfer=CiteSeer-Transfer
-CiteSeer_Warning=CiteSeer_Warnung
-Class_name=Klassenname
-Clear=Zur\u00FCcksetzen
-clear_all_groups=Alle_Gruppen_l\u00F6schen
-Clear_field=Feld_l\u00f6schen
-Clear_highlight=Markierten_l\u00f6schen
-Clear_highlighted=Markierte_l\u00f6schen
-Clear_highlighted_groups=Markierte_Gruppen_l\u00f6schen
-Clear_inputarea=gesamten_Text_entfernen
-Clear_search=Suche_l\u00f6schen
-Close=Schlie\u00DFen
-Close_database=Datei_schlie\u00DFen
-Close_dialog=Dialog_schlie\u00DFen
-# The following lines correspond to names of key bindings:
-Close_entry_editor=Eintragseditor_schlie\u00DFen
-Close_preamble_editor=Pr\u00E4ambel-Editor_schlie\u00DFen
-Close_the_current_database=Aktuelle_Datei_schlie\u00DFen
-Close_the_help_window=Hilfefenster_schlie\u00DFen
-Close_window=Fenster_schlie\u00DFen
-Closed_database=Datei_geschlossen
-Collapse_subtree=Unterbaum_zuklappen
-Color_codes_for_required_and_optional_fields=Farbanzeige_f\u00FCr_ben\u00F6tigte_und_optionale_Felder
-Color_for_marking_incomplete_entries=Farbe_zum_Markieren_unvollst\u00e4ndiger_Eintr\u00e4ge
-Column_width=Spaltenbreite
-Command_line_id=Kommandozeilen_ID
-Complete_record=Kompletter_Eintrag
-Completed_citation_import_from_CiteSeer.=Import_von_CiteSeer_abgeschlossen.
-Completed_Import_Fields_from_CiteSeer.=Die_Felder_wurden_aus_CiteSeer_importiert.
-Completed_import_from_CiteSeer.=Import_von_CiteSeer_abgeschlossen
-Contained_in=Enthalten_in
-Content=Inhalt
-Copied=Kopiert
-Copied_cell_contents=Zelleninhalt_kopiert
-Copied_key=BibTeX-Key_kopiert
-Copied_keys=BibTeX-Keys_kopiert
-Copy=Kopieren
-Copy_BibTeX_key=BibTeX-Key_kopieren
-Copy_\\cite{BibTeX_key}=Kopiere_\\cite{BibTeX-Key}
-Copy_to_clipboard=Text_in_Zwischenablage_kopieren
-Could_not_call_executable=Konnte_das_Programm_nicht_aufrufen
-Could_not_connect_to_host=Verbindung_zum_Host_fehlgeschlagen
-# I have reformulated the following lines, because the 1st person form is not suitable:
-Could_not_connect_to_host_=Verbindung_zum_Host_fehlgeschlagen
-Could_not_export_entry_types=Eintragstypen_konnten_nicht_exportiert_werden
-Could_not_export_file=Konnte_Datei_nicht_exportieren
-Could_not_export_preferences=Einstellungen_konnten_nicht_exportiert_werden
-Could_not_find_a_suitable_import_format.=Kein_passendes_Importformat_gefunden.
-Could_not_find_layout_file=Keine_Layoutdatei_gefunden
-Could_not_import_entry_types=Eintragstypen_konnten_nicht_importiert_werden
-Could_not_import_preferences=Einstellungen_konnten_nicht_importiert_werden
-Could_not_instantiate_%0_%1=Konnte_Importer_nicht_erzeugen_%0_%1
-Could_not_resolve_import_format=Das_Importformat_konnte_nicht_bestimmt_werden.
-Could_not_save_file=Datei_konnte_nicht_gespeichert_werden
-Couldn't_find_an_entry_associated_with_this_URL=Es_konnte_kein_Eintrag_gefunden_werden,_der_mit_dieser_URL_verkn\u00FCpft_ist
-Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Die_'citeseerurl'_der_folgenden_Eintr\u00E4ge_konnte_nicht_analysiert_werden
-Create_group=Gruppe_anlegen
-Created_group=Gruppe_erstellen
-Created_group_"%0".=Gruppe_"%0"_erstellt.
-Created_groups.=Gruppen_erstellt.
-Curly_braces_{_and_}_must_be_balanced.=Geschweifte_Klammern_{_und_}_m\u00FCssen_sich_ausgleichen.
-Current_content=Aktueller_Inhalt
-Current_value=Aktueller_Wert
-Custom_entry_types=Benutzerdefinierte_Eintragstypen
-Custom_entry_types_found_in_file=Benutzerdefinierte_Eintragstypen_gefunden
-Custom_export=Externe_Exportfilter
-Custom_importers=Externe_Importfilter
-Customize_entry_types=Eintragstypen_anpassen
-Customize_key_bindings=Tastenk\u00FCrzel_anpassen
-Cut=Ausschneiden
-cut_entries=Eintr\u00E4ge_ausschneiden
-cut_entry=Eintrag_ausschneiden
-Cut_pr=Ausschneiden
-Database_encoding=Zeichenkodierung_der_Datei
-Database_has_changed._Do_you_want_to_save_before_closing?=Die_Datei_wurde_ge\u00E4ndert._Wollen_Sie_vor_dem_Beenden_speichern?
-Database_properties=Eigenschaften_der_Datei
-Date_format=Datumsformat
-Default=Standard
-Default_encoding=Standard_Zeichenkodierung
-Default_grouping_field=Standard_Gruppierungs-Feld
-Default_look_and_feel=Standard_"look_and_feel"
-Default_owner=Standard-Besitzer
-Default_pattern=Standardmuster
-Default_sort_criteria=Standard-Sortierkriterium
-defined.=definiert.
-Delete=L\u00F6schen
-Delete_custom=Eintragstyp_l\u00F6schen
-Delete_custom_format=Format_des_Eintragstyps_l\u00F6schen
-# I have reformulated the following lines, because the 1st person form is not suitable:
-# (Folgende_URL_konnte_nicht_analysiert_werden)
-delete_entries=Eintr\u00E4ge_l\u00F6schen
-Delete_entry=Eintrag_l\u00F6schen
-delete_entry=Eintrag_l\u00F6schen
-Delete_multiple_entries=Mehrere_Eintr\u00E4ge_l\u00F6schen
-Delete_rows=Zeilen_l\u00F6schen
-Delete_strings=Strings_l\u00F6schen
-Deleted=Gel\u00F6scht
-Deleted_entry=Eintrag_gel\u00F6scht
-Delimit_fields_with_semicolon,_ex.=Felder_mit_Semikolon_abgrenzen,_z.B.
-Descending=Absteigend
-Description=Beschreibung
-Deselect_all=Auswahl_aufheben
-Details=Details
-Disable_entry_editor_when_multiple_entries_are_selected=Eintragseditor_sperren,_wenn_mehrere_Eintr\u00E4ge_ausgew\u00E4hlt_sind
-Disable_this_confirmation_dialog=Diesen_Best\u00E4tigungsdialog_deaktivieren
-Disable_this_warning_dialog=Diese_Warnmeldung_deaktivieren
-Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Alle_Eintr\u00E4ge_anzeigen,_die_zu_einer_oder_mehreren_der_ausgew\u00E4hlten_Gruppen_geh\u00F6ren.
-Display_help_on_command_line_options=Zeige_Kommandozeilenhilfe
-Display_imported_entries_in_an_inspection_window_before_they_are_added.=Importierte_Eintr\u00e4ge_im_Kontrollfenster_anzeigen_bevor_sie_hinzugef\u00fcgt_werden.
-Display_only_entries_belonging_to_all_selected_groups.=Nur_Eintr\u00E4ge_anzeigen,_die_zu_allen_ausgew\u00E4hlten_Gruppen_geh\u00F6ren.
-Displaying_no_groups=Keine_Gruppen_anzeigen
-Do_not_abbreviate_names=Namen_nicht_abk\u00fcrzen
-Do_not_autoset=Nicht_automatisch_zuordnen
-Do_not_import_entry=Eintrag_nicht_importieren
-Do_not_open_any_files_at_startup=Keine_Dateien_beim_Start_\u00f6ffnen
-Do_not_overwrite_existing_keys=Existierende_Keys_nicht_\u00fcberschreiben
-Do_not_wrap_the_following_fields_when_saving=Beim_Speichern_keinen_Zeilenumbruch_in_den_folgenden_Feldern_einf\u00fcgen
-Docbook=Docbook
-Done=Fertig
-Down=Abw\u00e4rts
-Download=Herunterladen
-Download_completed=Download_beendet
-Download_file=Datei_herunterladen
-Downloading...=Download_l\u00E4uft
-Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.=Aufgrund_des_doppelten_BibTeX-Keys_kann_die_Gruppenzuordnung_dieses_Eintrags_beim_n\u00E4chstenn\u00D6ffnen_nicht_wiederhergestellt_werden._Es_wird_empfohlen,_von_JabRef_jetzt_einen_eindeutigennKey_automatisch_generieren_zu_lassen,_um_dieses_Problem_zu_verhindern.
-dummy=dummy
-Duplicate_BibTeX_key=Doppelter_BibTeX-Key
-duplicate_BibTeX_key=doppelter_BibTeX-Key
-Duplicate_BibTeX_key.=Doppelter_BibTeX-Key.
-duplicate_BibTeX_key.=doppelter_BibTeX-Key
-Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.=Doppelter_BibTeX-Key._Es_kann_sein,_dass_die_Gruppierung_f\u00fcr_diesen_Eintrag_nicht_funktioniert.
-Duplicate_Key_Warning=Warnung:_Key_bereits_vorhanden
-Duplicate_pairs_found=Doppelte_Eintr\u00E4ge_gefunden
-duplicate_removal=Duplikate_entfernen
-Duplicate_string_name=Doppelter_String-Name
-Duplicates_found=Doppelte_Eintr\u00E4ge_gefunden
-Duplicates_removed=Doppelte_Eintr\u00E4ge_gel\u00F6scht
-Dynamic_groups=Dynamische_Gruppen
-Dynamically_group_entries_by_a_free-form_search_expression=Dynamisches_Gruppieren_der_Eintr\u00E4ge_anhand_eines_beliebigen_Suchausdrucks
-Dynamically_group_entries_by_searching_a_field_for_a_keyword=Dynamisches_Gruppieren_der_Eintr\u00e4ge_anhand_eines_Stichworts_in_einem_Feld
-Each_line_must_be_on_the_following_form=Jede_Zeile_muss_das_folgende_Format_aufweisen
-Edit=Bearbeiten
-Edit_custom_export=Bearbeite_externen_Exportfilter
-Edit_entry=Eintrag_bearbeiten
-Edit_group=Gruppe_bearbeiten
-Edit_journal=Zeitschrift_bearbeiten
-Edit_preamble=Pr\u00E4ambel_bearbeiten
-Edit_strings=Strings_bearbeiten
-empty_BibTeX_key=leerer_BibTeX-Key
-Empty_BibTeX_key.=Leerer_BibTeX-Key.
-Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Leerer_BibTeX-Key._Es_kann_sein,_dass_die_Gruppierung_f\u00fcr_diesen_Eintrag_nicht_funktioniert.
-Empty_database=Leere_Datei
-empty_database=leere_Datenbank
-Enable source_editing=Bearbeiten_von_Sourcecode_zulassen
-Enable_source_editing=Quelltextbearbeitung_aktivieren
-Endnote=Endnote
-Enter_URL=URL_eingeben
-Enter_URL_to_download=URL_f\u00FCr_den_Download_eingeben
-entries=Eintr\u00E4ge
-Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.=Ein_manuelles_Hinzuf\u00FCgen_oder_Entfernen_von_Eintr\u00E4gen_ist_f\u00FCr_diese_Gruppe_nicht_m\u00F6glich.
-Entries_exported_to_clipboard=Eintr\u00E4ge_in_die_Zwischenablage_kopiert
-entries_have_undefined_BibTeX_key=Eintr\u00E4ge_haben_einen_unbestimmten_BibTeX-Key
-entries_into_new_database=Eintr\u00E4ge_in_neue_Datei
-entry=Eintrag
-Entry_editor=Editor
-# The following lines correspond to names of key bindings:
-Entry_editor,_next_entry=Eintragseditor,_n\u00E4chster_Eintrag
-Entry_editor,_next_panel=Eintragseditor,_n\u00E4chstes_Panel
-Entry_editor,_previous_entry=Eintragseditor,_voriger_Eintrag
-Entry_editor,_previous_panel=Eintragseditor,_voriges_Panel
-Entry_editor,_store_field=Eintragseditor,_Feld_speichern
-Entry_in_current_database=Eintrag_in_aktueller_Datenbank
-Entry_in_import=Eintrag_in_Importierung
-Entry_is_incomplete=Eintrag_ist_nicht_vollst\u00E4ndig
-Entry_preview=Eintragsvorschau
-Entry_table=Tabellenansicht
-Entry_table_columns=Spaltenanordnung
-Entry_type=Eintragstyp
-Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Namen_von_Eintragstypen_d\u00FCrfen_weder_Leerzeichen_noch_die_folgenden_Zeichen_enthalten
-Entry_types=Eintragstypen
-EOF_in_mid-string=EOF_in_mid-string
-Error=Fehler
-##Error:_check_your_External_viewer_settings_in_Preferences=Fehler:_\u00FCberpr\u00FCfen_Sie_Ihre_Einstellungen_zu_Externen_Programmen
-Error_in_field=Fehler_in_Feld
-Error_in_line=Fehler_in_Zeile
-Error_opening_file=Fehler_beim_\u00D6ffnen_der_Datei
-Error_setting_field=Fehler_beim_Erstellen_des_Feldes
-Existing_file=Bestehende_Datei
-exists._Overwrite?=Existiert._\u00DCberschreiben?
-exists._Overwrite_file?=existiert._Ersetzen?
-Exit=Beenden
-Expand_subtree=Unterbaum_aufklappen
-Explicit=Explizit
-Export=Exportieren
-Export_entry_types=Eintragstypen_exportieren
-Export_name=Filtername
-Export_preferences=Einstellungen_exportieren
-Export_preferences_to_file=Exportiere_Einstellungen_in_Datei
-Export_properties=Eigenschaften_f\u00FCr_Exportfilter
-Export_selected_to_clipboard=Ausgew\u00E4hlte_in_die_Zwischenablage_kopieren
-Export_to_clipboard=In_die_Zwischenablage_kopieren
-Exported_database_to_file=Datei_exportiert_nach
-Exporting=Exportiere
-External_changes=Externe_\u00C4nderungen
-External_files=Externe_Dateien
-External_programs=Externe_Programme
-External_viewer_called=Externer_Betrachter_aufgerufen
-Failed_to_read_groups_data_(unsupported_version:_%0)=Gruppen_konnten_nicht_eingelesen_werden_(nicht_unterst\u00FCtzte_Version:_%0)
-Fetch=Abrufen
-Fetch_Articles_Citing_your_Database=Literaturangaben_abrufen,_die_mit_Datens\u00E4tzen_ihrer_Datei_\u00FCbereinstimmen
-Fetch_Citations_from_CiteSeer=Literaturangaben_von_CiteSeer_abrufen
-Fetch_citations_from_CiteSeer=Eintr\u00E4ge_von_CiteSeer_holen
-Fetch_CiteSeer=CiteSeer_abrufen
-Fetch_Medline=Medline_abrufen
-fetch_Medline=Medline_abrufen
-Fetch_Medline_by_author=Medline_mittels_Autor_abrufen
-Fetch_Medline_by_ID=Medline_mittels_ID_abrufen
-Fetched_all_citations_from_target_database.=Alle_Literaturangaben_von_der_Zieldatenbank_abgerufen.
-Fetching_Citations=Literaturangaben_werden_abgerufen
-Fetching_Identifiers=Bezeichner_werden_abgerufen
-Fetching_Medline...=Rufe_Medline_ab...
-Fetching_Medline_by_ID...=Rufe_Medline_mittels_ID_ab...
-Fetching_Medline_by_id_...=Rufe_Medline_mittels_ID_ab...
-Fetching_Medline_by_term_...=Rufe_Medline_mittels_Suchbegriff_ab...
-Field=Feld
-field=Feld
-# Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
-Field_content=Feldinhalt
-Field_name=Feldname
-Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Der_Feldname_darf_weder_Leerzeichen_noch_eines_der_folgenden_Zeichen_enthalten
-Field_sizes=Feldgr\u00f6\u00dfen
-Field_to_group_by=Sortierfeld
-Field_to_search=Zu_durchsuchendes_Feld
-Fields=Felder
-File=Datei
-file=Datei
-File_'%0'_not_found=Datei_'%0'_nicht_gefunden
-File_changed=Datei_ge\u00E4ndert
-File_extension=Dateiendung
-File_has_been_updated_externally._Are_you_sure_you_want_to_save?=Die_Datei_wurde_extern_ver\u00E4ndert._Sind_Sie_sicher,_dass_Sie_abspeichern_m\u00F6chten?
-File_not_found=Datei_nicht_gefunden
-File_updated_externally=Datei_extern_ge\u00E4ndert
-filename=Dateiname
-Files_opened=Dateien_ge\u00F6ffnet
-Find_duplicates=Nach_doppelten_Eintr\u00E4gen_suchen
-Finished_autosetting_%0_field._Entries_changed:_%1.=Automatisches_Setzen_von_Feld_%0_abgeschlossen._Ge\u00e4nderte_Eintr\u00e4ge:_%1.
-Finished_synchronizing_%0_links._Entries_changed%c_%1.=Synchronisierung_von_%0_Links_abgeschlossen._Ge\u00e4nderte_Eintr\u00e4ge%c_%1.
-First_select_the_entries_you_want_keys_to_be_generated_for.=W\u00E4hlen_Sie_zuerst_die_Eintr\u00E4ge_aus,_f\u00FCr_die_Keys_erstellt_werden_sollen.
-Fit_table_horizontally_on_screen=Tabelle_horizontal_dem_Bildschirm_anpassen
-Float=Oben_einsortieren
-Font_Family=Schriftart
-Font_Preview=Vorschau
-Font_Size=Schriftgr\u00F6\u00DFe
-Font_Style=Schriftstil
-FontSelector=Schriften_w\u00E4hlen
-for=f\u00FCr
-Format_of_author_and_editor_names=Format_der_Autoren-_und_Hrsg.-Namen
-Format_used=benutztes_Format
-Formatter_not_found=Formatierer_nicht_gefunden
-found=gefunden
-found_in_aux_file=gefundene_Schl\u00FCssel_in_AUX_Datei
-Full_name=Kompletter_Name
-General=Allgemein
-General_fields=Allgemeine_Felder
-Generate=Erzeugen
-Generate_BibTeX_key=BibTeX-Key_generieren
-Generate_keys=Erstelle_Key
-Generate_now=Jetzt_generieren
-Generated_BibTeX_key_for=BibTeX-Key_erzeugt_f\u00FCr
-Generating_BibTeX_key_for=Erzeuge_BibTeX-Key_f\u00FCr
-Grab=Tastenk\u00FCrzel_holen
-Gray_out_entries_not_in_group_selection=Eintr\u00E4ge_ausblenden,_die_nicht_in_der_Gruppenauswahl_sind
-Gray_out_non-hits=Nicht-Treffer_grau_einf\u00E4rben
-Gray_out_non-matching_entries=Nicht_\u00FCbereinstimmende_Eintr\u00E4ge_ausblenden
-Group_definitions_have_been_converted_to_JabRef_1.7_format.=Die_Gruppendefinitionen_wurden_zum_JabRef_1.7-Format_konvertiert.
-Group_name=Name_der_Gruppe
-Group_properties=Gruppeneigenschaften
-Groups=Gruppen
-Harvard_RTF=Harvard_RTF
-Help=Hilfe
-Help_contents=Hilfe_-_Inhalt
-Help_on_groups=Hilfe_zu_Gruppen
-Help_on_key_patterns=Hilfe_zu_BibTeX-Key-Mustern
-Hide_non-hits=Nicht-Treffer_ausblenden
-Highlight=Markieren
-Highlight_groups_matching_all_selected_entries=Gruppen_markieren,_die_alle_selektierten_Eintr\u00e4ge_enthalten
-Highlight_groups_matching_any_selected_entry=Gruppen_markieren,_die_mindestens_einen_der_selektierten_Eintr\u00e4ge_enthalten
-Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group=Gruppen_markieren,_die_Eintr\u00e4ge_enthalten,_die_in_einer_der_gerade_markierten_Gruppen_enthalten_sind
-Highlight_overlapping_groups=Sich_\u00fcberschneidende_Gruppen_markieren
-Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>=Hinweis%c_Um_ausschlie\u00DFlich_bestimmte_Felder_zu_durchsuchen,_geben_Sie_z.B._ein%c<p><tt>author%esmith_and_title%eelectrical</tt>
-HTML=HTML
-Ignore=Ignorieren
-Illegal_type_name=Ung\u00FCltiger_Typ
-Immediate_subgroups=Direkte_Untergruppen
-Import=Importieren
-Import_and_append=Importieren_und_anh\u00E4ngen
-Import_and_keep_old_entry=Importieren_und_alten_Eintrag_behalten
-Import_and_remove_old_entry=Importieren_und_alten_Eintrag_l\u00F6schen
-Import_cancelled.=Importierung_abgebrochen.
-Import_Data_from_CiteSeer=Daten_von_CiteSeer_importieren
-Import_Data_from_CiteSeer_Database=Daten_aus_CiteSeer-Datenbank_importieren
-Import_database=Datei_importieren
-Import_entries=Eintr\u00E4ge_importieren
-Import_entry_types=Eintragstypen_importieren
-Import_failed=Import_fehlgeschlagen
-Import_Fields_from_CiteSeer=Felder_von_CiteSeer_importieren
-Import_fields_from_CiteSeer=Felder_von_CiteSeer_importieren
-Import_fields_from_CiteSeer_Database=Import_fields_from_CiteSeer_Database
-Import_Fields_from_CiteSeer_Database=Felder_aus_CiteSeer-Datenbank_importieren
-Import_file=Importiere_Datei
-Import_group_definitions=Gruppendefinitionen_importieren
-Import_name=Importer_Name
-Import_plain_text=Klartext_importieren
-Import_preferences=Einstellungen_importieren
-Import_preferences_from_file=Importiere_Einstellungen_aus_Datei
-Import_strings=Strings_importieren
-Import_to_open_tab=In_ge\u00f6ffnetes_Tab_importieren
-Import_word_selector_definitions=Wortauswahldefinitionen_importieren
-Imported_database=Datei_importiert
-Imported_entries=Eintr\u00E4ge_importiert
-Imported_entry_types=Eintragstypen_importiert
-Imported_file=Importierte_Datei
-Imported_from_database=Importiert_aus_Datei
-ImportFormat_class=ImportFormat_Klasse
-Importing=Importiere
-Importing_file=importiere_Datei
-Importing_in_unknown_format=Importiere_ein_unbekanntes_Format
-In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=Benutzen_Sie_in_JabRef_das_Zeichen_#_paarweise,_um_einen_String_(Abk\u00FCrzung)_anzugeben.
-Include_subgroups=Untergruppen_ber\u00fccksichtigen
-Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Untergruppen_ber\u00fccksichtigen:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_dieser_Gruppe_und_ihrer_Untergruppen_angezeigt
-Incremental=Direkt
-Incremental_search=Weitersuchen
-Incremental_search_failed._Repeat_to_search_from_top.=Direkte_Suche_fehlgeschlagen._Wiederhole_die_Suche_vom_Anfang_der_Datenbank.
-Independent=Unabh\u00E4ngig
-Independent_group:_When_selected,_view_only_this_group's_entries=Unabh\u00e4ngige_Gruppen:_Wenn_ausgew\u00e4hlt,_werden_nur_die_Eintr\u00e4ge_dieser_Gruppe_angezeigt
-Initially_show_groups_tree_expanded=Baumansicht_der_Gruppen_standardm\u00e4\u00dfig_aufklappen
-Input=Bearbeitungsoptionen
-Input_error=Eingabefehler
-Insert=einf\u00FCgen
-Insert_rows=Zeilen_einf\u00FCgen
-Insert_selected_citations_into_LyX=Ausgew\u00E4hlte_Literaturangaben_in_LyX_einf\u00FCgen
-Insert_selected_citations_into_WinEdt=Ausgew\u00E4hlte_Literaturangaben_in_WinEdt_einf\u00FCgen
-insert_string_=String_einf\u00FCgen_
-Insert_URL=URL_einf\u00fcgen
-INSPEC=INSPEC
-integrity=Integrit\u00E4t
-# Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
-Integrity_check=Integrit\u00E4ts\u00FCberpr\u00FCfung
-Intersection=Schnittmenge
-Intersection_with_supergroups=Schnittmenge_mit_Obergruppen
-Invalid_BibTeX_key=Ung\u00fcltiger_BibTeX-Key
-Invalid_date_format=Ung\u00fcltiges_Datumsformat
-Invalid_URL=Ung\u00FCltige_URL
-Inverted=Invertiert
-is_a_standard_type.=ist_ein_Standardtyp
-ISI=ISI
-ISO_abbreviation=ISO-Abk\u00fcrzung
-Item_list_for_field=Wortliste_f\u00FCr_Feld
-JabRef_help=JabRef_Hilfe
-JabRef_preferences=JabRef_Einstellungen
-Journal_abbreviations=Abk\u00fcrzung_der_Zeitschriftennamen
-Journal_list_preview=Vorschau_der_Zeitschriftenliste
-Journal_name=Zeitschriftenname
-Journal_names=Zeitschriftennamen
-JStor_file=JStor_Datei
-Keep=Behalten
-Keep_both=Beide_behalten
-Keep_lower=Unteren_behalten
-Keep_upper=Oberen_behalten
-Key_bindings=Tastenk\u00FCrzel
-Key_bindings_changed=Tastenk\u00FCrzel_ge\u00E4ndert
-Key_generator_settings=Einstellungen_des_Key-Generators
-Key_pattern=BibTeX-Key-Muster
-keys_in_database=Keys_in_der_Datenbank
-Keyword=Stichwort
-Label=Name
-Language=Sprache
-Last_modified=zuletzt_ge\u00E4ndert
-Latex_AUX_file=LaTeX_AUX_Datei
-LaTeX_AUX_file=LaTeX_AUX-Datei
-Left=Links
-License=Lizenz
-Limit_to_fields=Auf_folgende_Felder_begrenzen
-Limit_to_selected_entries=Auf_ausgew\u00E4hlte_Eintr\u00E4ge_begrenzen
-Listen_for_remote_operation_on_port=Port_nach_externem_Zugriff_abh\u00f6ren
-Load_session=Sitzung_laden
-Loading_session...=Lade_Sitzung...
-Look_and_feel=Aussehen
-lower=klein
-Main_layout_file=Haupt-Layoutdatei
-Main_PDF_directory=Standard-Ordner_f\u00FCr_PDF-Dateien
-Main_PS_directory=Standard-Ordner_f\u00fcr_PS-Dateien
-Manage=Verwalten
-Manage_content_selectors=Wortauswahl_verwalten
-Manage_custom_exports=Verwalte_externe_Exportfilter
-Manage_custom_imports=Verwalte_externe_Importfilter
-Manage_journal_abbreviations=Abk\u00fcrzungen_der_Zeitschriften_verwalten
-Mark_entries=Eintr\u00E4ge_markieren
-Mark_entry=Eintrag_markieren
-Mark_new_entries_with_addition_date=Neue_Eintr\u00e4ge_mit_Datum_versehen
-Mark_new_entries_with_owner_name=Neue_Eintr\u00E4ge_mit_Namen_des_Besitzers_versehen
-# These are status line messages when marking/unmarking entries:
-Marked_selected=Ausgew\u00E4hlte_markiert
-Medline_entries_fetched=Medline-Eintr\u00E4ge_abgerufen
-Medline_XML=Medline_XML
-Medline_XML_File=Medline_XML_Datei
-Menu_and_label_font_size=Schriftgr\u00F6\u00DFe_in_Men\u00FCs
-Merged_external_changes=Externe_\u00C4nderungen_eingef\u00FCgt
-messages=Meldungen
-Messages=Mitteilungen
-Messages_and_Hints=Hinweise_und_Warnungen
-Miscellaneous=Verschiedenes
-Modification_of_field=\u00C4nderung_des_Felds
-Modified_group_"%0".=Gruppe_"%0"_ge\u00E4ndert.
-Modified_groups=Ge\u00e4nderte_Gruppen
-Modified_groups_tree=Baum_mit__modifizierten_Gruppen
-Modified_string=Ver\u00E4nderter_String
-Modify=Bearbeiten
-modify_group=Gruppe_bearbeiten
-MODS=MODS
-Move=Verschieben
-Move_down=Nach_unten
-Move_entries_in_group_selection_to_the_top=Sortiere_Eintr\u00E4ge_der_Gruppenauswahl_nach_oben
-move_group=Gruppe_verschieben
-Move_matching_entries_to_the_top=Treffer_nach_oben_sortieren
-Move_string_down=String_nach_unten
-Move_string_up=String_nach_oben
-Move_up=Nach_oben
-Moved_Group=Gruppe_verschoben
-Moved_group_"%0".=Gruppe_"%0"_verschoben.
-Name=Name
-Natbib_style=Natbib-Stil
-Ne_entries_imported.=Keine_Eintr\u00e4ge_importiert.
-nested_aux_files=referenzierte_AUX_Dateien
-New=Neu
-new=neu
-New_article=Neuer_Eintrag_'article'
-New_BibTeX_database=Neue_BibTeX_Datei
-New_BibTeX_entry=Neuer_BibTeX_Eintrag
-New_BibTeX_subdatabase=Neue_BibTeX_Teildatei
-New_book=Neuer_Eintrag_'book'
-New_content=Neuer_Inhalt
-New_database=Neue_Datei
-New_database_created.=Neue_Datei_angelegt.
-New_entry=Neuer_Eintrag
-New_entry...=Neuer_Eintrag...
-New_entry_from_plain_text=Neuer_Eintrag_aus_Klartext
-New_file=Neue_Datei
-New_group=Neue_Gruppe
-New_inbook=Neuer_Eintrag_'inbook'
-New_mastersthesis=Neuer_Eintrag_'masterthesis'
-New_phdthesis=Neuer_Eintrag_'phdthesis'
-New_proceedings=Neuer_Eintrag_'proceedings'
-New_string=Neuer_String
-New_subdatabase=Neue_Teildatei
-New_subdatabase_based_on_AUX_file=Neue_Teildatei_aus_AUX-Datei
-New_unpublished=Neuer_Eintrag_'unpublished'
-Next_entry=N\u00E4chster_Eintrag
-Next_tab=N\u00E4chster_Tab
-No_%0_found=Kein_%0_gefunden
-No_actual_changes_found.=Keine_aktuellen_\u00c4nderungen_gefunden.
-no_base-bibtex-file_specified=keine_Bibtex_Datenbank_angegeben!
-No_custom_imports_registered_yet.=Noch_keine_externen_Importfilter_registriert.
-no_database_generated=keine_Datenbank_erstellt_und_geschrieben
-No_duplicates_found=Keine_doppelten_Eintr\u00E4ge_gefunden
-No_entries_imported.=Keine_Eintr\u00E4ge_importiert.
-No_entries_or_multiple_entries_selected.=Keine_oder_mehrere_Eintr\u00e4ge_ausgew\u00e4hlt.
-No_entries_selected=Keine_Eintr\u00E4ge_ausgew\u00E4hlt.
-No_GUI._Only_process_command_line_options.=Kein_GUI._Nur_Kommandozeilenbefehle_ausf\u00FChren.
-No_journal_names_could_be_abbreviated.=Es_konnten_keine_Zeitschriftennamen_abgek\u00fcrzt_werden.
-No_journal_names_could_be_unabbreviated.=Das_Aufheben_der_Abk\u00fcrzung_konnte_bei_keiner_Zeitschrift_durchgef\u00fchrt_werden.
-No_Medline_entries_found.=Keine_Medline-Eintr\u00E4ge_gefunden.
-No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=Sie_haben_keine_PDF-_oder_PS-Datei_angegeben_und_es_wurde_keine_Datei_gefunden,_die_mit_dem_BibTeX-Key_\u00FCbereinstimmt.
-No_references_found=Keine_Literaturangaben_gefunden
-No_saved_session_found.=Keine_gespeicherte_Sitzung_gefunden.
-No_url_defined=Keine_URL_angegeben
-non-Mac_only=nicht_f\u00FCr_Mac
-Normal=Normal
-not=nicht
-not_found=davon_nicht_gefunden
-Not_saved_(empty_session)=Nicht_gespeichert_(leere_Sitzung)
-Note_that_the_entry_causing_the_problem_has_been_selected.=Der_Eintrag,_der_das_Problem_verursacht,_wurde_ausgew\u00E4hlt.
-Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.=Beachten_Sie,_da\u00DF_die_neuen_Definitionen_nicht_mit_fr\u00DCheren_Versionen_von_JabRef_kompatibel_sind.
-Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,=Es_muss_der_volle_Klassenname_f\u00FCr_das_zu_verwendende_"look_and_feel"_angegeben_werden.
-Nothing_to_redo=Wiederholen_nicht_m\u00F6glich
-Nothing_to_undo=R\u00FCckg\u00E4ngig_nicht_m\u00F6glich
-# The next is used like in "References found: 1  Number of references to fetch?"
-Number_of_references_to_fetch?=Anzahl_der_abzurufenden_Literaturangaben?
-occurences=Ausdr\u00FCcke
-OK=OK
-Ok=OK
-One_or_more_keys_will_be_overwritten._Continue?=Einer_oder_mehrere_Keys_werden_\u00FCberschrieben._Fortsetzen?
-Open=\u00D6ffnen
-open=\u00F6ffnen
-Open_BibTeX_database=BibTeX_Datei_\u00F6ffnen
-Open_database=Datei_\u00F6ffnen
-Open_editor_when_a_new_entry_is_created=Editor_\u00F6ffnen,_wenn_ein_neuer_Eintrag_angelegt_wird
-Open_file=Datei_\u00F6ffnen
-Open_last_edited_databases_at_startup=Beim_Starten_von_JabRef_die_letzten_bearbeiteten_Dateien_\u00F6ffnen
-Open_PDF_or_PS=PDF_oder_PS_\u00F6ffnen
-Open_right-click_menu_with_Ctrl+left_button=Kontextmen\u00FC_mit_Strg_+_linker_Maustaste_\u00F6ffnen
-Open_URL_or_DOI=URL_oder_DOI_\u00F6ffnen
-Opened_database=Datei_ge\u00F6ffnet
-Opening=\u00D6ffne
-Opening_preferences...=\u00D6ffne_Voreinstellungen...
-Optional_fields=Optionale_Felder
-Options=Optionen
-or=oder
-out_of=von
-Output_or_export_file=Speichere_oder_exportiere_Datei
-Overlapping_groups=Sich_\u00fcberschneidende_Gruppen
-Override=\u00FCberschreiben
-override_the_bibtex_key_by_the_selected_text=BibTeX-Key_mit_ausgew\u00e4hltem_Text_\u00fcberschreiben
-Overwrite_keys=Keys_\u00FCberschreiben
-Ovid=Ovid
-pairs_processed=Paare_\u00FCberarbeitet
-Paste=Einf\u00FCgen
-paste_entries=Eintr\u00E4ge_einf\u00FCgen
-paste_entry=Eintrag_einf\u00FCgen
-Paste_from_clipboard=Text_aus_Zwischenablage_einf\u00FCgen
-Pasted=Eingef\u00FCgt
-Path_to_HTML_viewer=Pfad_zum_HTML-Browser
-Path_to_LyX_pipe=Pfad_zur_LyX_pipe
-Path_to_PDF_viewer=Pfad_zum_PDF-Anzeigeprogramm
-Path_to_PS_viewer=Pfad_zum_PS-Anzeigeprogramm
-Path_to_WinEdt.exe=Pfad_zu_WinEdt.exe
-Paths_to_external_programs=Pfad_zu_externen_Programmen
-PDF_links=PDF-Link
-Personal_journal_list=Pers\u00f6nliche_Zeitschriftenliste
-Pick_titles=Titel_w\u00e4hlen
-Plain_right_menu=Men\u00FC
-Plain_text=Einfacher_Text
-Plain_text_import=Klartext_importieren
-Please_check_your_network_connection_to_this_machine.=Bitte_\u00FCberpr\u00FCfen_Sie_die_Netzwerkverbindung_ihres_Computers.
-Please_define_BibTeX_key_first=Bitte_geben_Sie_zuerst_einen_BibTeX-Key_an
-Please_enter_a_name_for_the_group.=Bitte_geben_Sie_einen_Namen_f\u00FCr_die_Gruppe_ein.
-Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author%esmith_and_title%eelectrical</tt>=Bitte_geben_Sie_einen_Suchausdruck_ein._Um_zum_Beispiel_alle_Felder_nach_<b>Smith</b>_zu_durchsuchen,_geben_Sie_ein%c<p><tt>smith</tt><p>Um_das_Feld_<b>Author</b>_nach_<b>Smith</b>_und_das_Feld_<b>Title</b>_nach_<b>electrical</b> [...]
-Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=Geben_Sie_bitte_eine_mit_Semikolon_oder_Komma_getrennte_Liste_der_Medline_IDs_(Nummern)_ein.
-Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=Bitte_geben_Sie_das_zu_durchsuchende_Feld_(z.B._<b>keywords</b>)_und_das_darin_zu_suchende_Stichwort_(z.B._<b>elektrisch</b>)_ein.
-Please_enter_the_string's_label=Geben_Sie_bitte_den_Namen_des_Strings_ein.
-Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=Bitte_lesen_Sie_die_JabRef-Hilfe_f\u00FCr_Informationen,_wie_man_die_CiteSeer-Werkzeuge_benutzt.
-Please_select_an_importer=Bitte_Importer_ausw\u00E4hlen
-Please_select_an_importer.=Bitte_Importer_ausw\u00E4hlen.
-Please_select_exactly_one_group_to_move.=Bitte_genau_eine_zu_bewegende_Gruppe_ausw\u00E4hlen.
-Please_wait_until_it_has_finished.=Bitte_warten_Sie,_bis_die_Aktion_beendet_ist.
-Possible_duplicate_entries=M\u00F6gliche_doppelte_Eintr\u00E4ge
-Possible_duplicate_of_existing_entry._Click_to_resolve.=M\u00f6glicherweise_doppelter_Eintrag._Klicken_um_Konflikt_zu_l\u00f6sen
-Preamble=Pr\u00E4ambel
-Preamble_editor,_store_changes=Pr\u00E4ambel-Editor,_\u00C4nderungen_\u00FCbernehmen
-Preferences=Einstellungen
-Preferences_recorded=Einstellungen_ge\u00E4ndert
-Preferences_recorded.=Einstellungen_gespeichert.
-Preserve_formatting_of_non-BibTeX_fields=Formatierung_von_nicht-BibTeX-Feldern_beibehalten
-Preview=Vorschau
-Previous_entry=Vorheriger_Eintrag
-Previous_tab=Vorheriger_Tab
-Primary_sort_criterion=Prim\u00e4res_Sortierkriterium
-Problem_with_parsing_entry=Problem_beim_Analysieren_des_Eintrags
-PS_links=PS_Links
-push_selection_to_lyx=Auswahl_in_LyX_einf\u00FCgen
-Push_selection_to_WinEdt=Auswahl_in_WinEdt_einf\u00FCgen
-Push_to_LyX=In_LyX_einf\u00FCgen
-Push_to_WinEdt=In_WinEdt_einf\u00FCgen
-Pushed_citations_to_WinEdt=Literaturangaben_in_WinEdt_eingef\u00fcgt
-Pushed_the_citations_for_the_following_rows_to=Literaturangaben_der_folgenden_Zeilen_eingef\u00FCgt_in
-Query_author(s)=Autor(en)_abfragen
-Quit=Beenden
-Quit_JabRef=JabRef_beenden
-Quit_synchronization=Synchronisation_beenden
-Raw_source=Importtext
-Really_delete_the_selected=Wirklich_l\u00F6schen:
-Recent_files=Zuletzt_ge\u00F6ffnete_Dateien
-Redo=Wiederholen
-Refer/Endnote=Refer/Endnote
-Reference_database=Referenz-Datenbank
-# The next two lines are used like in "References found: 1  Number of references to fetch?"
-References_found=Literaturangaben_gefunden
-Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Obergruppe_verfeinern:_Wenn_ausgew\u00e4hlt,_werden_Eintr\u00e4ge_aus_dieser_Gruppe_und_ihrer_\u00fcbergeordneten_Gruppe_angezeigt
-Refresh_view=Ansicht_aktualisieren
-Regexp=Regexp
-Regular_Expression=Regul\u00E4rer_Ausdruck
-Remember_these_entry_types?=Diese_Eintragstypen_behalten?
-Remote_operation=Externer_Zugriff
-Remote_server_port=Externer_Server-Port
-Remove=L\u00F6schen
-Remove_all?=Alle_l\u00f6schen?
-Remove_all_subgroups=Untergruppen_entfernen
-Remove_all_subgroups_of_"%0"?=Alle_Untergruppen_von_"%0"_entfernen?
-Remove_double_braces_around_BibTeX_fields_when_loading.=Beim_Laden_doppelte_geschweifte_Klammern_um_BibTeX-Felder_entfernen
-Remove_duplicates=Doppelte_Eintr\u00E4ge_l\u00F6schen
-Remove_entry_from_import=Eintrag_von_Importierung_entfernen
-Remove_entry_type=Eintragstyp_l\u00F6schen
-remove_from_group=aus_der_Gruppe_entfernen
-Remove_from_group=Aus_Gruppe_entfernen
-Remove_group=Gruppe_l\u00F6schen
-Remove_group,_keep_subgroups=Gruppe_l\u00F6schen,_Untergruppen_behalten
-Remove_group_"%0"?=Gruppe_"%0"_l\u00F6schen?
-Remove_group_"%0"_and_its_subgroups?=Gruppe_"%0"_inklusive_Untergruppen_l\u00F6schen?
-remove_group_(keep_subgroups)=Gruppe_l\u00F6schen_(Untergruppen_behalten)
-remove_group_and_subgroups=Gruppe_inklusive_Untergruppen_l\u00F6schen
-Remove_group_and_subgroups=Gruppe_und_Untergruppen_l\u00F6schen
-Remove_old_entry=Alten_Eintrag_entfernen
-Remove_selected_strings=Ausgew\u00E4hlte_Strings_entfernen
-remove_string=String_l\u00F6schen
-remove_string_=String_l\u00F6schen_
-Removed_entry_type.=Eintragstyp_gel\u00F6scht.
-Removed_group=Gruppe_gel\u00F6scht
-Removed_group_"%0".=Gruppe_"%0"_gel\u00F6scht.
-Removed_group_"%0"_and_its_subgroups.=Gruppe_"%0"_inklusive_Untergruppen_gel\u00F6scht.
-Removed_string=String_gel\u00F6scht
-Renamed_string=String_umbenannt
-Repeat_incremental_search=Direkte_Suche_wiederholen
-Replace=Ersetzen
-Replace_string=String_ersetzen
-Replace_with=Ersetzen_mit
-Replaced=Ersetzt:
-Required_fields=Ben\u00F6tigte_Felder
-Reset_all=Alle_zur\u00FCcksetzen
-resolved=davon_aufgel\u00F6st
-Results=Ergebnisse
-Revert_to_original_source=Original_wiederherstellen
-Review=\u00dcberpr\u00fcfung
-Review_changes=\u00c4nderungen_\u00fcberpr\u00fcfen
-Right=Rechts
-RIS=RIS
-Save=Speichern
-Save_before_closing=Speichern_vor_dem_Beenden
-Save_database=Datei_speichern
-Save_database_as_...=Datei_speichern_unter_...
-Save_failed=Fehler_beim_Speichern
-Save_failed_during_backup_creation=W\u00e4hrend_der_Erstellung_des_Backups_ist_das_Speichern_fehlgeschlagen
-Save_failed_while_committing_changes=W\u00e4hrend_die_\u00c4nderungen_\u00fcbermittelt_wurden,_ist_das_Speichern_fehlgeschlagen
-Save_selected_as_...=Auswahl_speichern_unter_...
-Save_session=Sitzung_speichern
-Saved_database=Datei_gespeichert
-Saved_selected_to=Auswahl_gespeichert_unter
-Saved_session=Sitzung_gespeichert
-Saving=Speichere
-Saving_database=Speichere_Datei
-Scan=\u00DCberpr\u00FCfen
-SciFinder=SciFinder
-Search=Suchen
-Search_All_Fields=Durchsuche_alle_Felder
-Search_all_fields=Alle_Felder_durchsuchen
-Search_error=Suchfehler
-Search_expression=Suchausdruck
-Search_for=Suchen_nach
-Search_General_Fields=Allgemeine_Felder_durchsuchen
-Search_general_fields=Allgemeine_Felder_durchsuchen
-Search_Optional_Fields=Optionale_Felder_durchsuchen
-Search_optional_fields=Optionale_Felder_durchsuchen
-Search_Required_Fields=Ben\u00f6tigte_Felder_durchsuchen
-Search_required_fields=Ben\u00f6tigte_Felder_durchsuchen
-Search_Specified_Field(s)=Durchsuche_diese(s)_Feld(er)
-Search_term=Suchbegriff
-Searched_database._Number_of_hits=Datei_durchsucht._Anzahl_der_Treffer
-Searching_for_%0_file=Suche_nach_%0-Datei
-Searching_for_duplicates...=Suche_nach_doppelten_Eintr\u00E4gen...
-Secondary_sort_criterion=Zweites_Sortierkriterium
-Select=Ausw\u00E4hlen
-Select_a_Zip-archive=ZIP-Archiv_ausw\u00E4hlen
-Select_action=Aktion_w\u00e4hlen
-Select_all=Alle_ausw\u00E4hlen
-Select_Classpath_of_New_Importer=Klassenpfad_ausw\u00E4hlen
-Select_encoding=Kodierung_w\u00e4hlen
-Select_entries_in_group_selection=W\u00E4hle_Eintr\u00E4ge_in_Gruppenauswahl
-Select_entry_type=Eintragstyp_ausw\u00E4hlen
-Select_file_from_ZIP-archive=Eintrag_aus_der_ZIP-Archiv_ausw\u00E4hlen
-Select_format=Format_w\u00E4hlen
-Select_matches=Treffer_ausw\u00E4hlen
-Select_matching_entries=Treffer_ausw\u00E4hlen
-Select_new_ImportFormat_Subclass=Klasse_ausw\u00E4hlen
-Select_the_tree_nodes_to_view_and_accept_or_reject_changes=W\u00E4hlen_Sie_die_drei_Knoten_aus,_um_die_\u00C4nderungen_zu_sehen_und_anzunehmen_oder_zu_verwerfen
-Selector_enabled_fields=Felder_mit_Wortliste
-Set_general_fields=Allgemeine_Felder_festlegen
-Set_table_font=Tabellenschriftart_ausw\u00E4hlen
-Set_up_general_fields=Allgemeine_Felder_festlegen
-Settings=Einstellungen
-Setup_selectors=Wortlisten_verwalten
-Short_form=Kurzform
-Shortcut=Tastenk\u00FCrzel
-Show/edit_BibTeX_source=BibTeX_Quelltext_anzeigen
-Show_'Firstname_Lastname'='Vorname_Nachname'_anzeigen
-Show_'Lastname,_Firstname'='Nachname,_Vorname'_anzeigen
-Show_abstract=Zeige_abstract
-Show_BibTeX_source_by_default=Quelltext_standardm\u00E4\u00DFig_anzeigen
-Show_BibTeX_source_panel=BibTeX_Quelltextpanel_anzeigen
-Show_CiteSeer_column=CiteSeer-Spalte_anzeigen
-Show_confirmation_dialog_when_deleting_entries=Dialog_zum_L\u00F6schen_von_Eintr\u00E4gen_anzeigen
-Show_description=Beschreibung_anzeigen
-Show_dynamic_groups_in_<i>italics</i>=Dynamische_Gruppen_<i>kursiv</i>_anzeigen
-Show_entries_*not*_in_group_selection=Zeige_Eintr\u00E4ge,_die_*nicht*_in_der_Gruppenauswahl_sind
-Show_general_fields=Allgemeine_Felder_anzeigen
-Show_groups_matching_all=Gruppen_anzeigen,_die_alle_enthalten
-Show_groups_matching_any=Gruppen_anzeigen,_die_mindestens_einen_enthalten
-Show_icons_for_groups=Gruppen-Icon_anzeigen
-Show_names_unchanged=Namen_unver\u00E4ndert_anzeigen
-Show_one_less_rows=Zeige_eine_Zeile_weniger
-Show_one_more_row=Zeige_eine_Zeile_mehr
-Show_optional_fields=Optionale_Felder_anzeigen
-Show_overlapping_groups=Sich_\u00fcberschneidende_Gruppen_anzeigen
-Show_PDF/PS_column=PDF/PS-Spalte_anzeigen
-Show_required_fields=Ben\u00F6tigte_Felder_anzeigen
-Show_URL/DOI_column=URL/DOI-Spalte_anzeigen
-Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Warnmeldung_anzeigen,_wenn_ein_doppelter_BibTeX-Key_eingegeben_wird.
-Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Warnung_anzeigen_wenn_ein_leerer_BibTeX-Key_angegeben_wird
-Simple_HTML=Einfaches_HTML
-Sixpack=Sixpack
-Size=Gr\u00F6\u00DFe
-Size_of_groups_interface_(rows)=Gr\u00F6\u00DFe_der_Gruppenansicht_(Reihen)
-Skip=\u00dcberspringen
-Sort_alphabetically=Alphabetisch_sortieren
-Sort_Automatically=Automatisch_sortieren
-Sort_options=Sortieroptionen
-sort_subgroups=Untergruppen_sortieren
-Sorted_all_subgroups_recursively=Alle_Untergruppen_rekursiv_sortiert
-Sorted_all_subgroups_recursively.=Alle_Untergruppen_rekursiv_sortiert.
-Sorted_immediate_subgroups=Direkte_Untergruppen_sortiert
-Sorted_immediate_subgroups.=Alle_direkten_Untergruppen_sortiert.
-source_edit=Quelltextbearbeitung
-Special_table_columns=Spezielle_Spalten
-Start=Starten
-Start_incremental_search=Weitersuchen_(bei_direkter_Suche)
-Start_search=Suche_starten
-Statically_group_entries_by_manual_assignment=Statisches_Gruppieren_der_Eintr\u00E4ge_durch_manuelle_Zuweisung
-Status=Status
-Stop=Stop
-Store=Speichern
-Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Felder_mit_geschweiften_Klammern_speichern_und_\u00fcberz\u00e4hlige_Klammern_beim_Laden_entfernen.<BR>Geschweifte_Klammern_zeigen_an,_dass_BibTeX_die_Gro\u00df-/Kleinschreibung_beibehalten_soll.
-Store_journal_abbreviations=Abk\u00fcrzungen_der_Zeitschriften_speichern
-Store_string=String_speichern
-Store_the_following_fields_with_braces_around_capital_letters=Die_folgenden_Felder_mit_geschweiften_Klammern_um_die_Gro\u00dfbuchstaben_speichern
-Stored_definition_for_type=Typ-Definition_gespeichert
-Stored_entry=Eintrag_gespeichert
-Stored_entry.=Eintrag_gespeichert.
-Strings=Ersetzen
-Strings_for_database=Strings_f\u00FCr_die_Datei
-subdatabase_from_aux=Datenbank_aus_LaTeX_aux
-Subdatabase_from_aux=Teildatenbank_aus_aux-Datei
-Suggest=Vorschlag
-Switch_preview_layout=Layout_der_Vorschau_wechseln
-Synchronize_%0_links=%0-Links_synchronisieren
-Synchronizing_%0_links...=Synchronisiere_%0-Links...
-Table=Tabelle
-Table_appearance=Erscheinungsbild_der_Tabelle
-Table_background_color=Hintergrundfarbe_der_Tabelle
-Table_grid_color=Farbe_des_Tabellenrasters
-Table_text_color=Textfarbe_der_Tabelle
-Tabname=Tab-Name
-Tertiary_sort_criterion=Drittes_Sortierkriterium
-Test=Test
-Text_Input_Area=Text_einf\u00FCgen
-The_#_character_is_not_allowed_in_BibTeX_fields=Das_Zeichen_#_ist_in_BibTeX-Feldern_nicht_erlaubt
-The_chosen_date_format_for_new_entries_is_not_valid=Das_Datumsformat_f\u00fcr_neue_Eintr\u00e4ge_ist_nicht_g\u00fcltig
-The_CiteSeer_fetch_operation_returned_zero_results.=Das_Importieren_von_CiteSeer_ergab_keine_Ergebnisse.
-the_field_<b>%0</b>=das_Feld_<b>%0</b>
-The_file<BR>'%0'<BR>has_been_modified<BR>externally!=Die_Datei<BR>_'%0'_<BR>wurde_von_einem_externen_Programm_ver\u00e4ndert!
-The_group_"%0"_already_contains_the_selection.=Die_Gruppe_"%0"_enth\u00e4lt_bereits_diese_Auswahl.
-The_group_"%0"_does_not_support_the_adding_of_entries.=Die_Gruppe_"%0"_unterst\u00FCtzt_das_manuelle_Hinzuf\u00FCgen_von_Eintr\u00E4gen_nicht.
-The_group_"%0"_does_not_support_the_removal_of_entries.=Die_Gruppe_"%0"_unterst\u00FCtzt_das_manuelle_Entfernen_von_Eintr\u00E4gen_nicht.
-The_label_of_the_string_can_not_be_a_number.=Der_Name_des_Strings_darf_keine_Zahl_sein.
-The_label_of_the_string_can_not_contain_spaces.=Der_Name_des_Strings_darf_keine_Leerzeichen_enthalten.
-The_label_of_the_string_can_not_contain_the_'#'_character.=Der_Name_des_Strings_darf_nicht_das_Zeichen_'#'_enthalten.
-The_output_option_depends_on_a_valid_import_option.=Die_Ausgabe-Option_beruht_auf_einer_g\u00fcltigen_Import-Option.
-The_regular_expression_<b>%0</b>_is_invalid%c=Der_Regul\u00E4re_Ausdruck_<b>%0</b>_ist_ung\u00FCltig%c
-The_search_is_case_insensitive.=Gro\u00DF-/Kleinschreibung_wird_nicht_unterschieden.
-The_search_is_case_sensitive.=Gro\u00DF-/Kleinschreibung_wird_unterschieden.
-The_string_has_been_removed_locally=Der_String_wurde_lokal_entfernt
-The_type_name_can_not_contain_spaces.=Der_Name_des_Typs_darf_keine_Leerzeichen_enthalten.
-The_URL_field_appears_to_be_empty_on_entry_number_=Das_URL-Feld_scheint_leer_zu_sein_bei_Eintrag_Nummer_
-There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?=Es_gibt_m\u00f6gliche_Duplikate_(markiert_mit_'D'),_die_nicht_gekl\u00e4rt_werden_konnten._Fortfahren?
-There_is_no_entry_type=Es_exisitiert_kein_Eintragstyp
-This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=Dies_ver\u00E4ndert_das_Feld_"%0"_Ihrer_Eintr\u00E4ge.nDas_k\u00F6nnte_zu_ungewollten_\u00C4nderungen_Ihrer_Eintr\u00E4ge_f\u00FChren.nDeshalb_ist_es_erforderlich,_dass_Sie_in_Ihrer_Gruppendefinition_das_Feld_"keywords"nangeben_oder_einen_Nam [...]
-this_button_will_update=Dieser_Button_\u00E4ndert_die_verwendete<BR>Spaltenbreite_in_der_Tabelle_der_Eintr\u00E4ge
-this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table=diese_Schaltfl\u00E4che_setzt_die_Einstellungen_der_Spaltenbreite<BR>auf_die_aktuellen_Spaltenbreiten_Ihrer_Tabelle
-This_entry_is_incomplete=Dieser_Eintrag_ist_unvollst\u00E4ndig
-This_entry_type_cannot_be_removed.=Dieser_Eintragstyp_kann_nicht_entfernt_werden.
-This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._Entries_can_be_removed_from_this_group_by_selecting_them_then_using_the_context_menu._Every_entry_assigned_to_this_group_must_have_a_unique_key._The_key_may_be_changed_at_any_time_as_long_as_it_remains_unique.=Diese_Gruppe_enth\u00E4lt_manuell_zugewiesene_Eintr\u00E4ge._Eintr\u00E4ge_k\u00F6nnen_dieser_Gruppe_zugewiesen_werde [...]
-This_group_contains_entries_in_which=Diese_Gruppe_enth\u00E4lt_Eintr\u00E4ge,_bei_denen
-This_group_contains_entries_in_which_any_field_contains_the_regular_expression_<b>%0</b>=Diese_Gruppe_enth\u00E4lt_Eintr\u00E4ge,_in_denen_ein_beliebiges_Feld_den_Regul\u00E4ren_Ausdruck_<b>%0</b>_enth\u00E4lt.
-This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>=Diese_Gruppe_enth\u00E4lt_Eintr\u00E4ge,_in_denen_ein_beliebiges_Feld_den_Ausdruck_<b>%0</b>_enth\u00E4lt.
-This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>=Diese_Gruppe_enth\u00e4lt_Eintrage,_deren_Feld_<b>%0</b>_das_Stichwort_<b>%1</b>_enth\u00e4lt
-This_group_contains_entries_whose_<b>%0</b>_field_contains_the_regular_expression_<b>%1</b>=Diese_Gruppe_enth\u00E4lt_Eintrage,_deren_Feld_<b>%0</b>_den_Regul\u00E4ren_Ausdruck_<b>%1</b>_enth\u00E4lt
-This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=Dies_ist_ein_einfacher_Copy_&_Paste-Dialog._F\u00FCgen_sie_zun\u00E4chst_Text_in_das_Eingabefeld_ein._Anschlie\u00DFend_k\u00F6nen_Sie_Textstellen_markieren_und_einem_BibTeX-Feld_zuordnen.
-This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=Dies_ist_ein_einfacher_Copy_&_Paste_Dialog_zum_Einf\u00fcgen_von_Feldern_aus_normalem_Text.
-This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=Veranlasst_JabRef_dazu,_jedem_%0-Link_zu_folgen_und_zu_\u00fcberpr\u00fcfen,_ob_die_entsprechende_Datei_existiert._Wenn_nicht,_werden_M\u00f6glichkeiten_angegeben,_das_Problem_zu_l\u00f6sen.
-This_operation_cannot_work_on_multiple_rows.=Diese_Aktion_kann_nicht_mit_mehreren_Zeilen_durchgef\u00FChrt_werden.
-Toggle_abbreviation=Abk\u00fcrzung_an-/abschalten
-Toggle_entry_preview=Eintragsvorschau_ein-/ausblenden
-Toggle_groups_interface=Gruppenansicht_ein-/ausblenden
-Toggle_search_panel=Suchdialog_ein-/ausblenden
-Tools=Extras
-Try_different_encoding=Versuchen_Sie_es_mit_einer_anderen_Kodierung
-Type=Typ
-Type_set_to_'other'=Typ_als_'other'_deklariert
-Unabbreviate_journal_names_of_the_selected_entries=Abk\u00fcrzung_der_Zeitschriftennamen_der_ausgew\u00e4hlten_Eintr\u00e4ge_aufheben
-unable_to_access_LyX-pipe=LyX-pipe_nicht_gefunden
-Unable_to_create_graphical_interface=Grafische_Benutzeroberfl\u00E4che_konnte_nicht_erzeugt_werden
-Unable_to_parse_clipboard_text_as_Bibtex_entries.=Der_Text_der_Zwischenablage_konnte_nicht_als_BibTeX-Format_analysiert_werden.
-Unable_to_parse_the_following_URL=Folgende_URL_konnte_nicht_analysiert_werden
-unable_to_write_to=konnte_nicht_speichern_auf
-Undo=R\u00FCckg\u00E4ngig
-Union=Vereinigung
-unknown_bibtex_entries=unbekannte_BibTeX-Eintr\u00E4ge
-Unknown_bibtex_entries=Fehlende_BibTeX_Eintr\u00E4ge
-unknown_edit=unbekannter_Bearbeitungsschritt
-unknown_entry_type=unbekannter_Eintragstyp
-Unknown_export_format=Unbekanntes_Export-Format
-Unmark_all=S\u00E4mtliche_Markierungen_aufheben
-Unmark_entries=Markierung_aufheben
-Unmark_entry=Markierung_aufheben
-Unmarked_selected=Markierung_f\u00fcr_ausgew\u00e4hlte_Eintr\u00e4ge_aufgehoben
-Unpack_EndNote_filter_set=Entpacke_EndNote_Filter-Set
-Unpacked_file=Entpackte_Datei
-Unpacked_file.=Datei_entpackt.
-Unsupported_version_of_class_%0:_%1=Nicht_unterst\u00FCtzte_Version_der_Klasse_%0:_%1
-untitled=ohne_Titel
-Up=Hoch
-Update_to_current_column_widths=Aktuelle_Spaltenbreiten_verwenden
-Updated_group_selection=Gruppenauswahl_aktualisiert
-Updating_entries...=Eintr\u00E4ge_werden_aktualisiert...
-UPPER=GROSS
-Upper_Each_First=Jeden_Ersten_Gro\u00DF
-Upper_first=Ersten_gro\u00DF
-usage=Benutzung
-Use_antialiasing_font=Antialias-Schrift_benutzen
-Use_antialiasing_font_in_table=Gegl\u00E4ttete_Schriftart_verwenden_(in_der_Tabelle)
-Use_inspection_window_also_when_a_single_entry_is_imported.=Kontrollfenster_benutzen,_auch_wenn_nur_ein_Eintrag_importiert_wird.
-Use_other_look_and_feel=anderes_"look_and_feel"_benutzen
-Use_regular_expressions=Regul\u00E4re_Ausdr\u00FCcke_benutzen
-Use_the_following_delimiter=Benutzen_Sie_das_folgende_Trennzeichen
-Use_the_following_delimiter_character(s)=Folgende(s)_Trennzeichen_benutzen
-Uses_default_application=Benutze_Standardprogramm
-Value_cleared_externally=Wert_extern_gel\u00F6scht
-Value_set_externally=Wert_extern_gesetzt
-verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid=\u00FCberpr\u00FCfen_Sie,_ob_LyX_l\u00E4uft_und_ob_die_Angaben_zur_lyxpipe_stimmen
-View=Ansicht
-Visible_fields=Angezeigte_Felder
-Warn_about_unresolved_duplicates_when_closing_inspection_window=Warnung_zu_ungekl\u00e4rten_Duplikaten_ausgeben,_wenn_das_Kontrollfenster_geschlossen_wird
-Warn_before_overwriting_existing_keys=Vor_dem_\u00dcberschreiben_von_existierenden_Keys_warnen
-Warning=Warnung
-Warning_there_is_a_duplicate_key=Achtung!_Es_ist_ein_doppelter_Key_vorhanden
-Warnings=Warnungen
-web_link=Web-Link
-When_adding/removing_keywords,_separate_them_by=Beim_Hinzuf\u00fcgen_oder_L\u00f6schen_von_Stichw\u00f6rtern_folgendes_Trennzeichen_benutzen
-with=mit
-Word=Wort
-Wrong_file_format=Falsches_Dateiformat
-You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=Sie_haben_die_Spracheinstellung_ge\u00E4ndert._Sie_m\u00FCssen_JabRef_neu_starten,_damit_die_\u00C4nderungen_in_Kraft_treten.
-You_have_cleared_this_field._Original_value=Sie_haben_dieses_Feld_gel\u00F6scht._Urspr\u00FCnglicher_Wert
-You_must_choose_a_file_name_to_store_journal_abbreviations=Sie_m\u00fcssen_einen_Dateinamen_w\u00e4hlen,_um_die_Abk\u00fcrzungen_der_Zeitschriften_zu_speichern
-You_must_enter_an_integer_value_in_the_text_field_for=Sie_m\u00fcssen_eine_Ganzzahl_verwenden_im_Textfeld_f\u00fcr
-You_must_fill_in_a_name_for_the_entry_type.=Sie_m\u00FCssen_einen_Namen_f\u00FCr_den_Eintragstyp_eingeben.
-You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=Sie_m\u00FCssen_einen_Namen,_einen_Suchbegriff_und_einen_Feldnamen_f\u00FCr_die_Gruppe_angeben.
-You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.=Sie_m\u00FCssen_JabRef_neu_starten,_damit_die_Tastenk\u00FCrzel_funktionieren.
-You_must_select_a_row_to_perform_this_operation.=Sie_m\u00FCssen_eine_Zeile_ausw\u00E4hlen,_um_diese_Aktion_durchf\u00FChren_zu_k\u00F6nnen.
-You_must_select_at_least_one_row_to_perform_this_operation.=Sie_m\u00FCssen_mindestens_eine_Zeile_ausw\u00E4hlen,_um_diesen_Vorgang_durchzuf\u00FChren.
-You_must_set_both_BibTeX_key_and_%0_directory=Sie_m\u00FCssen_sowohl_den_BibTeX-Key_als_auch_den_%0-Ordner_angeben
-You_must_set_both_bibtex_key_and_PDF_directory=Sie_m\u00fcssen_sowohl_den_BibTeX-Key,_als_auch_das_PDF-Verzeichnis_angeben
-Your_new_key_bindings_have_been_stored.=Ihre_neuen_Tastenk\u00FCrzel_wurden_gespeichert.
-Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Argumente_wurden_der_laufenden_JabRef-Instanz_\u00fcbergeben._Schlie\u00dfen_l\u00e4uft.
-Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Konnte_zu_keinem_aktiven_gnuserv-Prozess_verbinden._Vergewissern_Sie_sich,_dass_(X)Emacs_l\u00e4uft,<BR>und_dass_der_Server_gestartet_wurde_(mit_dem_Befehl_'gnuserv-start').
-Push_selection_to_Emacs=Auswahl_in_Emacs_einf\u00fcgen
-Pushed_citations_to_Emacs=Literaturangaben_in_Emacs_eingef\u00fcgt
-Filter=Filter
-Hide_non-matching_entries=Nicht-Treffer_ausblenden
-Replace_(regular_expression)=Ersetzen_(Regul\u00e4rer_Ausdruck)
-Cite_command_(for_Emacs/WinEdt)=Cite-Kommando_(f\u00fcr_Emacs/WinEdt)
-Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Konnte_%0_%1_nicht_realisieren._Haben_Sie_den_richtigen_Paket-Pfad_angegeben?
-No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Keine_Eintr\u00e4ge_gefunden._Bitte_vergewissern_Sie_sich,_dass_Sie_den_richtigen_Importfilter_benutzen.
-
-#### These lines were changed:
-Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=
-To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=
-#####Switches_between_full_and_abbreviated_journal_name=Wechselt_zwischen_kompletten_und_abgek\u00fcrzten_Zeitschriftennamen
-#####if_the_journal_name_is_known._Go_to_(...............)=falls_der_Zeitschriftenname_bekannt_ist._Gehe_zu_(...............)
-
-Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=
diff --git a/src/resource/JabRef_en.properties b/src/resource/JabRef_en.properties
index efc8f66..9c693e8 100644
--- a/src/resource/JabRef_en.properties
+++ b/src/resource/JabRef_en.properties
@@ -1,1036 +1,2094 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
+#! created/edited by Popeye version 0.5 sunshine (popeye.sourceforge.net)
 
 !This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.
+
 %0_contains_the_Regular_Expression_<b>%1</b>=%0_contains_the_Regular_Expression_<b>%1</b>
+
 %0_contains_the_term_<b>%1</b>=%0_contains_the_term_<b>%1</b>
+
 %0_doesn't_contain_the_Regular_Expression_<b>%1</b>=%0_doesn't_contain_the_Regular_Expression_<b>%1</b>
+
 %0_doesn't_contain_the_term_<b>%1</b>=%0_doesn't_contain_the_term_<b>%1</b>
+
 %0_doesn't_match_the_Regular_Expression_<b>%1</b>=%0_doesn't_match_the_Regular_Expression_<b>%1</b>
+
 %0_doesn't_match_the_term_<b>%1</b>=%0_doesn't_match_the_term_<b>%1</b>
+
 %0_field_set=%0_field_set
+
 %0_import_cancelled.=%0_import_cancelled.
+
 %0_matches_the_Regular_Expression_<b>%1</b>=%0_matches_the_Regular_Expression_<b>%1</b>
+
 %0_matches_the_term_<b>%1</b>=%0_matches_the_term_<b>%1</b>
+
 <field_name>=<field_name>
+
 <HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>=<HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>
+
 <no_field>=<no_field>
+
 <select>=<select>
+
 <select_word>=<select_word>
+
 _on_entry_number_=_on_entry_number_
+
 A_CiteSeer_fetch_operation_is_currently_in_progress.=A_CiteSeer_fetch_operation_is_currently_in_progress.
+
 A_CiteSeer_import_operation_is_currently_in_progress.=A_CiteSeer_import_operation_is_currently_in_progress.
+
 A_string_with_that_label_already_exists=A_string_with_that_label_already_exists
+
+Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)
+
+Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)
+
+Abbreviate_names=Abbreviate_names
+
+Abbreviation=Abbreviation
+
 About_JabRef=About_JabRef
+
 Abstract=Abstract
+
 Accept=Accept
+
 Accept_change=Accept_change
+
 Action=Action
+
 Add=Add
+
+Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.
+
+Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.
+
 add_entries_to_group=add_entries_to_group
+
+Add_entry_selection_to_this_group=Add_entry_selection_to_this_group
+
+Add_from_folder=Add_from_folder
+
+Add_from_jar=Add_from_jar
+
 add_group=add_group
+
 Add_Group=Add_group
+
 Add_new=Add_new
+
 Add_Subgroup=Add_subgroup
+
 Add_to_group=Add_to_group
+
 Added_entry=Added_entry
+
 Added_group=Added_group
+
 Added_group_"%0".=Added_group_"%0".
+
 Added_new=Added_new
+
 Added_string=Added_string
+
 Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_can_be_assigned_manually_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._This_process_adds_the_term_<b>%1</b>_to_each_entry's_<b>%0</b>_field._Entries_can_be_removed_manually_from_this_group_by_selecting_them_then_using_the_context_menu._This_process_removes_the_term_<b>%1</b>_from_each_entry's_<b>%0</b>_field.=Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_ [...]
+
 Advanced=Advanced
+
 Advanced_options_for_setting...=Advanced_options_for_setting...
+
 All_Entries=All_Entries
+
 All_entries=All_entries
+
 All_entries_of_this_type_will_be_declared_typeless._Continue?=All_entries_of_this_type_will_be_declared_typeless._Continue?
+
 All_fields=All_fields
+
 All_subgroups_(recursively)=All_subgroups_(recursively)
+
 Allow_editing_in_table_cells=Allow_editing_in_table_cells
+
 Always_save_database_ordered_by_author_name=Always_save_database_ordered_by_author_name
+
 and=and
+
 and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.=and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.
+
 any_field_that_matches_the_regular_expression_<b>%0</b>=any_field_that_matches_the_Regular_Expression_<b>%0</b>
+
 Appearance=Appearance
+
 Append=Append
+
 Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database
+
 Append_database=Append_database
+
 append_the_selected_text_to_bibtex_key=append_the_selected_text_to_bibtex_key
+
 Apply=Apply
+
+Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Arguments_passed_on_to_running_JabRef_instance._Shutting_down.
+
 Assign_entries_based_on:=Assign_entries_based_on:
+
+Assign_entry_selection_exclusively_to_this_group=Assign_entry_selection_exclusively_to_this_group
+
 Assign_new_file=Assign_new_file
+
 Assign_the_original_group's_entries_to_this_group?=Assign_the_original_group's_entries_to_this_group?
+
 Assigned_%0_entries_to_group_"%1".=Assigned_%0_entries_to_group_"%1".
+
 Assigned_1_entry_to_group_"%0".=Assigned_1_entry_to_group_"%0".
+
 Attach_%0_file=Attach_%0_file
+
 Attach_URL=Attach_URL
+
 Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.=Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.
+
 Auto=Auto
+
 Autodetect_format=Autodetect_format
+
 Autogenerate_BibTeX_key=Autogenerate_BibTeX_key
+
 Autogenerate_BibTeX_keys=Autogenerate_BibTeX_keys
+
 Autogenerate_groups=Autogenerate_groups
+
 autogenerate_keys=autogenerate_keys
+
 Automatically_create_groups=Automatically_create_groups
+
 Automatically_create_groups_for_database.=Automatically_create_groups_for_database.
+
 Automatically_created_groups=Automatically_created_groups
+
 Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups=Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups
+
 Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups=Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups
+
 Autoset=Autoset
+
 Autoset_%0_field=Autoset_%0_field
+
 Autoset_%0_links._Allow_overwriting_existing_links.=Autoset_%0_links._Allow_overwriting_existing_links.
+
 Autoset_%0_links._Do_not_overwrite_existing_links.=Autoset_%0_links._Do_not_overwrite_existing_links.
+
 Autosetting_%0_field...=Autosetting_%0_field...
+
 AUX_File_import=generate_subdatabase_from_aux
+
 AUX_file_import=AUX_file_import
+
 Available_export_formats=Available_export_formats
+
 Available_fields=Allowed_BibTeX_fields
+
 Available_import_formats=Available_import_formats
+
+Background_color_for_marked_entries=Background_color_for_marked_entries
+
+Background_color_for_optional_fields=Background_color_for_optional_fields
+
+Background_color_for_required_fields=Background_color_for_required_fields
+
 Backup_old_file_when_saving=Backup_old_file_when_saving
+
 Bibkey_to_filename_conversion=Bibkey_to_filename_conversion
+
 Biblioscape_Tag_file=Biblioscape_Tag_file
+
 BibTeX=BibTeX
+
 BibTeX_key=BibTeX_key
+
 BibTeX_key_is_unique.=BibTeX_key_is_unique.
+
 BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file=BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file
+
 BibTeX_source=BibTeX_source
+
 BibTeXML=BibTeXML
+
 BibTeXML_File=BibTeXML_File
+
 Binding=Binding
+
 Broken_link=Broken_link
+
 Browse=Browse
+
 by=by
+
 Calling_external_viewer...=Calling_external_viewer...
+
 Cancel=Cancel
+
 Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?=Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?
+
 Cannot_merge_this_change=Cannot_merge_this_change
+
 Cannot_move_group=Cannot_move_group
+
 Cannot_move_group_"%0"_down.=Cannot_move_group_"%0"_down.
+
 Cannot_move_group_"%0"_left.=Cannot_move_group_"%0"_left.
+
 Cannot_move_group_"%0"_right.=Cannot_move_group_"%0"_right.
+
 Cannot_move_group_"%0"_up.=Cannot_move_group_"%0"_up.
+
 case_insensitive=case_insensitive
+
 case_sensitive=case_sensitive
+
 Case_sensitive=Case_sensitive
+
 change_assignment_of_entries=change_assignment_of_entries
+
 Change_case=Change_case
+
 Change_entry_type=Change_entry_type
+
 change_key=change_key
+
 Change_of_Grouping_Method=Change_of_Grouping_Method
+
 change_preamble=change_preamble
+
 change_string_content=change_string_content
+
 change_string_name=change_string_name
+
 change_type=change_type
+
 changed_=changed_
+
 Changed_font_settings=Changed_font_settings
+
 Changed_language_settings=Changed_language_settings
+
 Changed_look_and_feel_settings=Changed_look_and_feel_settings
+
 Changed_preamble=Changed_preamble
+
 Changed_type_to=Changed_type_to
+
 Characters_to_ignore=Characters_to_ignore
+
 Check_existing_%0_links=Check_existing_%0_links
+
 Check_links=Check_links
+
+Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.
+
 Citation_import_from_CiteSeer_failed.=Citation_import_from_CiteSeer_failed.
+
+Cite_command_(for_Emacs/WinEdt)=Cite_command_(for_Emacs/WinEdt)
+
 CiteSeer_Error=CiteSeer_Error
+
 CiteSeer_Fetch_Error=CiteSeer_Fetch_Error
+
 CiteSeer_import_entries=CiteSeer_import_entries
+
 CiteSeer_Import_Error=CiteSeer_Import_Error
+
 CiteSeer_Import_Fields=CiteSeer_Import_Fields
+
 CiteSeer_Transfer=CiteSeer_Transfer
+
 CiteSeer_Warning=CiteSeer_Warning
+
 Class_name=Class_name
+
 Clear=Clear
+
 clear_all_groups=clear_all_groups
+
 Clear_field=Clear_field
+
 Clear_highlight=Clear_highlight
+
 Clear_highlighted=Clear_highlighted
+
 Clear_highlighted_groups=Clear_highlighted_groups
+
 Clear_inputarea=Clear_text_input_area
+
 Clear_search=Clear_search
+
 Close=Close
+
 Close_database=Close_database
+
 Close_dialog=Close_dialog
+
 # The following lines correspond to names of key bindings:
 Close_entry_editor=Close_entry_editor
+
 Close_preamble_editor=Close_preamble_editor
+
 Close_the_current_database=Close_the_current_database
+
 Close_the_help_window=Close_the_help_window
+
 Close_window=Close_window
+
 Closed_database=Closed_database
+
 Collapse_subtree=Collapse_subtree
+
 Color_codes_for_required_and_optional_fields=Color_codes_for_required_and_optional_fields
+
+Color_for_marking_incomplete_entries=Color_for_marking_incomplete_entries
+
 Column_width=Column_width
+
+Command_line_id=Command_line_id
+
 Complete_record=Complete_record
+
 Completed_citation_import_from_CiteSeer.=Completed_citation_import_from_CiteSeer.
+
 Completed_Import_Fields_from_CiteSeer.=Completed_Import_Fields_from_CiteSeer.
+
 Completed_import_from_CiteSeer.=Completed_import_from_CiteSeer.
+
+Contained_in=Contained_in
+
 Content=Content
+
 Copied=Copied
+
 Copied_cell_contents=Copied_cell_contents
+
 Copied_key=Copied_key
+
 Copied_keys=Copied_keys
+
 Copy=Copy
+
+Copy_\cite{BibTeX_key}=Copy_cite\{BibTeX_key}
+
 Copy_BibTeX_key=Copy_BibTeX_key
-Copy_\\cite{BibTeX_key}=Copy_cite\\{BibTeX_key}
+
+Copy_cite{BibTeX_key}=Copy_cite{BibTeX_key}
+
 Copy_to_clipboard=Copy_to_clipboard
+
 Could_not_call_executable=Could_not_call_executable
+
+Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').
+
 Could_not_connect_to_host=Could_not_connect_to_host
+
 Could_not_connect_to_host_=Could_not_connect_to_host_
+
 Could_not_export_entry_types=Could_not_export_entry_types
+
 Could_not_export_file=Could_not_export_file
+
 Could_not_export_preferences=Could_not_export_preferences
+
 Could_not_find_a_suitable_import_format.=Could_not_find_a_suitable_import_format.
+
 Could_not_find_layout_file=Could_not_find_layout_file
+
 Could_not_import_entry_types=Could_not_import_entry_types
+
 Could_not_import_preferences=Could_not_import_preferences
+
+Could_not_instantiate_%0_%1=Could_not_instantiate_%0_%1
+
+Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?
+
+Could_not_parse_number_of_hits=Could_not_parse_number_of_hits
+
 Could_not_resolve_import_format=Could_not_resolve_import_format
+
+Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.
+
 Could_not_save_file=Could_not_save_file
+
 Couldn't_find_an_entry_associated_with_this_URL=Couldn't_find_an_entry_associated_with_this_URL
+
 Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries
+
 Create_group=Create_group
+
 Created_group=Created_group
+
 Created_group_"%0".=Created_group_"%0".
+
 Created_groups.=Created_groups.
+
 Curly_braces_{_and_}_must_be_balanced.=Curly_braces_{_and_}_must_be_balanced.
+
 Current_content=Current_content
+
 Current_value=Current_value
+
 Custom_entry_types=Custom_entry_types
+
 Custom_entry_types_found_in_file=Custom_entry_types_found_in_file
+
 Custom_export=Custom_export
+
+Custom_importers=Custom_importers
+
 Customize_entry_types=Customize_entry_types
+
 Customize_key_bindings=Customize_key_bindings
+
 Cut=Cut
+
 cut_entries=cut_entries
+
 cut_entry=cut_entry
+
 Cut_pr=Cut
+
+Database_encoding=Database_encoding
+
 Database_has_changed._Do_you_want_to_save_before_closing?=Database_has_changed._Do_you_want_to_save_before_closing?
+
+Database_properties=Database_properties
+
 Date_format=Date_format
+
 Default=Default
+
 Default_encoding=Default_encoding
+
 Default_grouping_field=Default_grouping_field
+
 Default_look_and_feel=Default_look_and_feel
+
 Default_owner=Default_owner
+
 Default_pattern=Default_pattern
+
+Default_sort_criteria=Default_sort_criteria
+
 defined.=defined.
+
 Delete=Delete
+
 Delete_custom=Delete_custom
+
 Delete_custom_format=Delete_custom_format
+
 delete_entries=delete_entries
+
 Delete_entry=Delete_entry
+
 delete_entry=delete_entry
+
 Delete_multiple_entries=Delete_multiple_entries
+
 Delete_rows=Delete_rows
+
 Delete_strings=Delete_strings
+
 Deleted=Deleted
+
 Deleted_entry=Deleted_entry
+
 Delimit_fields_with_semicolon,_ex.=Delimit_fields_with_semicolon,_ex.
+
 Descending=Descending
+
 Description=Description
+
 Deselect_all=Deselect_all
+
 Details=Details
+
 Disable_entry_editor_when_multiple_entries_are_selected=Disable_entry_editor_when_multiple_entries_are_selected
+
 Disable_this_confirmation_dialog=Disable_this_confirmation_dialog
+
 Disable_this_warning_dialog=Disable_this_warning_dialog
+
 Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.
+
+Display_all_error_messages=Display_all_error_messages
+
 Display_help_on_command_line_options=Display_help_on_command_line_options
+
 Display_imported_entries_in_an_inspection_window_before_they_are_added.=Display_imported_entries_in_an_inspection_window_before_they_are_added.
+
 Display_only_entries_belonging_to_all_selected_groups.=Display_only_entries_belonging_to_all_selected_groups.
+
 Displaying_no_groups=Displaying_no_groups
+
+Do_not_abbreviate_names=Do_not_abbreviate_names
+
 Do_not_autoset=Do_not_autoset
+
 Do_not_import_entry=Do_not_import_entry
+
 Do_not_open_any_files_at_startup=Do_not_open_any_files_at_startup
+
 Do_not_overwrite_existing_keys=Do_not_overwrite_existing_keys
+
+Do_not_wrap_the_following_fields_when_saving=Do_not_wrap_the_following_fields_when_saving
+
 Docbook=Docbook
+
 Done=Done
+
 Down=Down
+
 Download=Download
+
 Download_completed=Download_completed
+
 Download_file=Download_file
+
 Downloading...=Downloading...
+
 Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.=Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.
+
 dummy=dummy
+
 Duplicate_BibTeX_key=duplicate_BibTeX_key
+
 duplicate_BibTeX_key=duplicate_BibTeX_key
+
 Duplicate_BibTeX_key.=Duplicate_BibTeX_key.
+
 duplicate_BibTeX_key.=duplicate_BibTeX_key.
+
 Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.=Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.
+
 Duplicate_Key_Warning=Duplicate_Key_Warning
+
 Duplicate_pairs_found=Duplicate_pairs_found
+
 duplicate_removal=duplicate_removal
+
 Duplicate_string_name=Duplicate_string_name
+
 Duplicates_found=Duplicates_found
+
 Duplicates_removed=Duplicates_removed
+
 Dynamic_groups=Dynamic_groups
+
 Dynamically_group_entries_by_a_free-form_search_expression=Dynamically_group_entries_by_a_free-form_search_expression
+
 Dynamically_group_entries_by_searching_a_field_for_a_keyword=Dynamically_group_entries_by_searching_a_field_for_a_keyword
+
 Each_line_must_be_on_the_following_form=Each_line_must_be_on_the_following_form
+
 Edit=Edit
+
 Edit_custom_export=Edit_custom_export
+
 Edit_entry=Edit_entry
+
 Edit_group=Edit_Group
+
+Edit_journal=Edit_journal
+
 Edit_preamble=Edit_preamble
+
 Edit_strings=Edit_strings
+
 empty_BibTeX_key=empty_BibTeX_key
+
 Empty_BibTeX_key.=Empty_BibTeX_key.
+
 Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.
+
 Empty_database=Empty_database
+
 empty_database=empty_database
+
 Enable source_editing=Enable source_editing
+
 Enable_source_editing=Enable_source_editing
+
 Endnote=Endnote
+
 Enter_URL=Enter_URL
+
 Enter_URL_to_download=Enter_URL_to_download
+
 entries=entries
+
 Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.=Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.
+
 Entries_exported_to_clipboard=Entries_exported_to_clipboard
+
 entries_have_undefined_BibTeX_key=entries_have_undefined_BibTeX_key
+
 entries_into_new_database=entries_into_new_database
+
 entry=entry
+
 Entry_editor=Entry_editor
+
 # The following lines correspond to names of key bindings:
 Entry_editor,_next_entry=Entry_editor,_next_entry
+
 Entry_editor,_next_panel=Entry_editor,_next_panel
+
 Entry_editor,_previous_entry=Entry_editor,_previous_entry
+
 Entry_editor,_previous_panel=Entry_editor,_previous_panel
+
 Entry_editor,_store_field=Entry_editor,_store_field
+
 Entry_in_current_database=Entry_in_current_database
+
 Entry_in_import=Entry_in_import
+
 Entry_is_incomplete=Entry_is_incomplete
+
 Entry_preview=Entry_preview
+
 Entry_table=Entry_table
+
 Entry_table_columns=Entry_table_columns
+
 Entry_type=Entry_type
+
 Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters
+
 Entry_types=Entry_types
+
 EOF_in_mid-string=EOF_in_mid-string
+
 Error=Error
+
 ##Error:_check_your_External_viewer_settings_in_Preferences=Error:_check_your_External_viewer_settings_in_Preferences
 Error_in_field=Error_in_field
+
 Error_in_line=Error_in_line
+
+Error_messages=Error_messages
+
 Error_opening_file=Error_opening_file
+
 Error_setting_field=Error_setting_field
+
+Existing_file=Existing_file
+
 exists._Overwrite?=exists._Overwrite?
+
 exists._Overwrite_file?=exists._Overwrite_file?
+
 Exit=Exit
+
 Expand_subtree=Expand_subtree
+
 Explicit=Explicit
+
 #previous entry not translated. To view it, open Group interface and click on the "new group" button
 Export=Export
+
 Export_entry_types=Export_entry_types
+
 Export_name=Export_name
+
 Export_preferences=Export_preferences
+
 Export_preferences_to_file=Export_preferences_to_file
+
 Export_properties=Export_properties
+
 Export_selected_to_clipboard=Export_selected_to_clipboard
+
 Export_to_clipboard=Export_to_clipboard
+
 Exported_database_to_file=Exported_database_to_file
+
 Exporting=Exporting
+
 External_changes=External_changes
+
+External_files=External_files
+
 External_programs=External_programs
+
 External_viewer_called=External_viewer_called
+
 Failed_to_read_groups_data_(unsupported_version:_%0)=Failed_to_read_groups_data_(unsupported_version:_%0)
+
 Fetch=Fetch
+
 Fetch_Articles_Citing_your_Database=Fetch_Articles_Citing_your_Database
+
 Fetch_Citations_from_CiteSeer=Fetch_Citations_from_CiteSeer
+
 Fetch_citations_from_CiteSeer=Fetch_citations_from_CiteSeer
+
 Fetch_CiteSeer=Fetch_CiteSeer
+
 Fetch_Medline=Fetch_Medline
+
 fetch_Medline=fetch_Medline
+
 Fetch_Medline_by_author=Fetch_Medline_by_author
+
 Fetch_Medline_by_ID=Fetch_Medline_by_ID
+
 Fetched_all_citations_from_target_database.=Fetched_all_citations_from_target_database.
+
 Fetching_Citations=Fetching_Citations
+
 Fetching_Identifiers=Fetching_Identifiers
+
 Fetching_Medline...=Fetching_Medline...
+
 Fetching_Medline_by_ID...=Fetching_Medline_by_ID...
+
 Fetching_Medline_by_id_...=Fetching_Medline_by_id_...
+
 Fetching_Medline_by_term_...=Fetching_Medline_by_term_...
+
 Field=Field
+
 field=field
+
 # Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
 Field_content=Field_content
+
 Field_name=Field_name
+
 Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters
+
 Field_sizes=Field_sizes
+
 Field_to_group_by=Field_to_group_by
+
 Field_to_search=Field_to_search
+
 Fields=Fields
+
 File=File
+
 file=file
+
+File_'%0'_not_found=File_'%0'_not_found
+
 File_changed=File_changed
+
 File_extension=File_extension
+
 File_has_been_updated_externally._Are_you_sure_you_want_to_save?=File_has_been_updated_externally._Are_you_sure_you_want_to_save?
+
 File_not_found=File_not_found
+
 File_updated_externally=File_updated_externally
+
 filename=filename
+
 Files_opened=Files_opened
+
+Filter=Filter
+
 Find_duplicates=Find_duplicates
+
 Finished_autosetting_%0_field._Entries_changed:_%1.=Finished_autosetting_%0_field._Entries_changed:_%1.
+
 Finished_synchronizing_%0_links._Entries_changed%c_%1.=Finished_synchronizing_%0_links._Entries_changed%c_%1.
+
 First_select_the_entries_you_want_keys_to_be_generated_for.=First_select_the_entries_you_want_keys_to_be_generated_for.
+
 Fit_table_horizontally_on_screen=Fit_table_horizontally_on_screen
+
 Float=Float
+
 Font_Family=Font_Family
+
 Font_Preview=Font_Preview
+
 Font_Size=Font_Size
+
 Font_Style=Font_Style
+
 FontSelector=FontSelector
+
 for=for
+
 Format_of_author_and_editor_names=Format_of_author_and_editor_names
+
 Format_used=Format_used
+
 Formatter_not_found=Formatter_not_found
+
 found=found
+
 found_in_aux_file=found_in_aux_file
+
+Full_name=Full_name
+
 General=General
+
 General_fields=General_fields
+
 Generate=Generate
+
 Generate_BibTeX_key=Generate_BibTeX_key
+
 Generate_keys=Generate_keys
+
+Generate_keys_before_saving_(for_entries_without_a_key)=Generate_keys_before_saving_(for_entries_without_a_key)
+
 Generate_now=Generate_now
+
 Generated_BibTeX_key_for=Generated_BibTeX_key_for
+
 Generating_BibTeX_key_for=Generating_BibTeX_key_for
+
 Grab=Grab
+
 Gray_out_entries_not_in_group_selection=Gray_out_entries_not_in_group_selection
+
 Gray_out_non-hits=Gray_out_non-hits
+
 Gray_out_non-matching_entries=Gray_out_non-matching_entries
+
 Group_definitions_have_been_converted_to_JabRef_1.7_format.=Group_definitions_have_been_converted_to_JabRef_1.7_format.
+
 Group_name=Group_name
+
 Group_properties=Group_properties
+
 Groups=Groups
+
 Harvard_RTF=Harvard_RTF
+
+Have_you_chosen_the_correct_package_path?=Have_you_chosen_the_correct_package_path?
+
 Help=Help
+
 Help_contents=Help_contents
+
 Help_on_groups=Help_on_groups
+
 Help_on_key_patterns=Help_on_key_patterns
+
 Hide_non-hits=Hide_non-hits
+
+Hide_non-matching_entries=Hide_non-matching_entries
+
+Hierarchical_context=Hierarchical_context
+
 Highlight=Highlight
+
 Highlight_groups_matching_all_selected_entries=Highlight_groups_matching_all_selected_entries
+
 Highlight_groups_matching_any_selected_entry=Highlight_groups_matching_any_selected_entry
+
 Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group=Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group
+
 Highlight_overlapping_groups=Highlight_overlapping_groups
+
 Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>=Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>
+
 HTML=HTML
+
 Ignore=Ignore
+
 Illegal_type_name=Illegal_type_name
+
 Immediate_subgroups=Immediate_subgroups
+
 Import=Import
+
 Import_and_append=Import_and_append
+
 Import_and_keep_old_entry=Import_and_keep_old_entry
+
 Import_and_remove_old_entry=Import_and_remove_old_entry
+
 Import_cancelled.=Import_cancelled.
+
 Import_Data_from_CiteSeer=Import_Data_from_CiteSeer
+
 Import_Data_from_CiteSeer_Database=Import_Data_from_CiteSeer_Database
+
 Import_database=Import_database
+
 Import_entries=Import_entries
+
 Import_entry_types=Import_entry_types
+
 Import_failed=Import_failed
+
 Import_Fields_from_CiteSeer=Import_Fields_from_CiteSeer
+
 # I have reformulated the following lines, because the 1st person form is not suitable:
 # (Folgende_URL_konnte_nicht_analysiert_werden)
 Import_fields_from_CiteSeer=Import_fields_from_CiteSeer
+
 Import_fields_from_CiteSeer_Database=Import_fields_from_CiteSeer_Database
+
 Import_Fields_from_CiteSeer_Database=Import_Fields_from_CiteSeer_Database
+
 Import_file=Import_file
+
 Import_group_definitions=Import_group_definitions
+
+Import_name=Import_name
+
 Import_plain_text=Import_fields_from_plain_text
+
 Import_preferences=Import_preferences
+
 Import_preferences_from_file=Import_preferences_from_file
+
 Import_strings=Import_strings
+
 Import_to_open_tab=Import_to_open_tab
+
 Import_word_selector_definitions=Import_word_selector_definitions
+
 Imported_database=Imported_database
+
 Imported_entries=Imported_entries
+
 Imported_entry_types=Imported_entry_types
+
 Imported_file=Imported_file
+
 Imported_from_database=Imported_from_database
+
+ImportFormat_class=ImportFormat_class
+
 Importing=Importing
+
 Importing_file=Importing_file
+
 Importing_in_unknown_format=Importing_in_unknown_format
+
 In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.
+
+Include_abstracts=Include_abstracts
+
 Include_subgroups=Include_subgroups
+
+Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups
+
 Include_subgroups\:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups
+
 Incremental=Incremental
+
 Incremental_search=Incremental_search
+
 Incremental_search_failed._Repeat_to_search_from_top.=Incremental_search_failed._Repeat_to_search_from_top.
+
 Independent=Independent
+
+Independent_group:_When_selected,_view_only_this_group's_entries=Independent_group:_When_selected,_view_only_this_group's_entries
+
 Independent_group\:_When_selected,_view_only_this_group's_entries=Independent_group:_When_selected,_view_only_this_group's_entries
+
 Initially_show_groups_tree_expanded=Initially_show_groups_tree_expanded
+
 Input=Work_options
+
 Input_error=Input_error
+
 Insert=Insert
+
 Insert_rows=Insert_rows
+
+Insert_selected_citations_into_LyX=Insert_selected_citations_into_LyX
+
 Insert_selected_citations_into_LyX/Kile=Insert_selected_citations_into_LyX/Kile
+
 Insert_selected_citations_into_WinEdt=Insert_selected_citations_into_WinEdt
+
 insert_string_=insert_string_
+
 Insert_URL=Insert_URL
+
 INSPEC=INSPEC
+
 integrity=integrity
+
 # Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
 Integrity_check=Integrity_check
+
 Intersection=Intersection
+
 Intersection_with_supergroups=Intersection_with_supergroups
+
 Invalid_BibTeX_key=Invalid_BibTeX_key
+
+Invalid_date_format=Invalid_date_format
+
 Invalid_URL=Invalid_URL
+
 Inverted=Inverted
+
 is_a_standard_type.=is_a_standard_type.
+
 ISI=ISI
+
+ISO_abbreviation=ISO_abbreviation
+
 Item_list_for_field=Item_list_for_field
+
 JabRef_help=JabRef_help
+
 JabRef_preferences=JabRef_preferences
+
+Journal_abbreviations=Journal_abbreviations
+
+Journal_list_preview=Journal_list_preview
+
+Journal_name=Journal_name
+
+Journal_names=Journal_names
+
 JStor_file=JStor_file
+
 Keep=Keep
+
 Keep_both=Keep_both
+
 Keep_lower=Keep_lower
+
 Keep_upper=Keep_upper
+
 Key_bindings=Key_bindings
+
 Key_bindings_changed=Key_bindings_changed
+
 Key_generator_settings=Key_generator_settings
+
 Key_pattern=Key_pattern
+
 keys_in_database=keys_in_database
+
 #not translated. To view it, use menu "Tools|New BibTeX file from AUx file", and launch the action on a non-existant aux file.
 Keyword=Keyword
+
 Label=Label
+
 Language=Language
+
+Last_modified=Last_modified
+
 Latex_AUX_file=LaTeX_AUX_file
+
 LaTeX_AUX_file=LaTeX_AUX_file
+
 Left=Left
+
 License=License
+
 Limit_to_fields=Limit_to_fields
+
 Limit_to_selected_entries=Limit_to_selected_entries
+
 Listen_for_remote_operation_on_port=Listen_for_remote_operation_on_port
+
 Load_session=Load_session
+
 Loading_session...=Loading_session...
+
 Look_and_feel=Look_and_feel
+
 lower=lower
+
 Main_layout_file=Main_layout_file
+
 Main_PDF_directory=Main_PDF_directory
+
 Main_PS_directory=Main_PS_directory
+
 Manage=Manage
+
 Manage_content_selectors=Manage_content_selectors
+
 Manage_custom_exports=Manage_custom_exports
+
+Manage_custom_imports=Manage_custom_imports
+
+Manage_journal_abbreviations=Manage_journal_abbreviations
+
 Mark_entries=Mark_entries
+
 Mark_entry=Mark_entry
+
 Mark_new_entries_with_addition_date=Mark_new_entries_with_addition_date
+
 Mark_new_entries_with_owner_name=Mark_new_entries_with_owner_name
+
 Marked_selected=Marked_selected
+
 Medline_entries_fetched=Medline_entries_fetched
+
 Medline_XML=Medline_XML
+
 Medline_XML_File=Medline_XML_File
+
 Menu_and_label_font_size=Menu_and_label_font_size
+
 Merged_external_changes=Merged_external_changes
+
 messages=messages
+
 Messages=Messages
+
 Messages_and_Hints=Hints_and_Warnings
+
 Miscellaneous=Miscellaneous
+
 Modification_of_field=Modification_of_field
+
 Modified_group_"%0".=Modified_group_"%0".
+
 Modified_groups=Modified_groups
+
 Modified_groups_tree=Modified_groups_tree
+
 Modified_string=Modified_string
+
 Modify=Modify
+
 modify_group=modify_group
+
 MODS=MODS
+
 Move=Move
+
 Move_down=Move_down
+
 Move_entries_in_group_selection_to_the_top=Move_entries_in_group_selection_to_the_top
+
 move_group=move_group
+
 Move_matching_entries_to_the_top=Move_matching_entries_to_the_top
+
 Move_string_down=Move_string_down
+
 Move_string_up=Move_string_up
+
 Move_up=Move_up
+
 Moved_Group=Moved_Group
+
 Moved_group_"%0".=Moved_group_"%0".
+
 Name=Name
-Ne_entries_imported.=Ne_entries_imported.
+
+Natbib_style=Natbib_style
+
+Ne_entries_imported.=No_entries_imported.
+
 nested_aux_files=nested_aux_files
+
 New=New
+
 new=new
+
 New_article=New_article
+
 New_BibTeX_database=New_BibTeX_database
+
 New_BibTeX_entry=New_BibTeX_entry
+
 New_BibTeX_subdatabase=New_BibTeX_subdatabase
+
 New_book=New_book
+
 New_content=New_content
+
 New_database=New_database
+
 New_database_created.=New_database_created.
+
 New_entry=New_entry
+
 New_entry...=New_entry...
+
 New_entry_from_plain_text=New_entry_from_plain_text
+
+New_file=New_file
+
 New_group=New_group
+
 New_inbook=New_inbook
+
 New_mastersthesis=New_mastersthesis
+
 New_phdthesis=New_phdthesis
+
 New_proceedings=New_proceedings
+
 New_string=New_string
+
 New_subdatabase=New_subdatabase
+
 New_subdatabase_based_on_AUX_file=New_subdatabase_based_on_AUX_file
+
 New_unpublished=New_unpublished
+
 Next_entry=Next_entry
+
 Next_tab=Next_tab
+
 No_%0_found=No_%0_found
+
 No_actual_changes_found.=No_actual_changes_found.
+
 no_base-bibtex-file_specified=no_base-bibtex-file_specified!
+
+No_custom_imports_registered_yet.=No_custom_imports_registered_yet.
+
 no_database_generated=no_database_generated
+
 No_duplicates_found=No_duplicates_found
+
+No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.
+
 No_entries_imported.=No_entries_imported.
+
 No_entries_or_multiple_entries_selected.=No_entries_or_multiple_entries_selected.
+
 No_entries_selected=No_entries_selected
+
+No_exceptions_have_ocurred.=No_exceptions_have_ocurred.
+
+No_file_extension._Could_not_find_viewer_for_file.=No_file_extension._Could_not_find_viewer_for_file.
+
 No_GUI._Only_process_command_line_options.=No_GUI._Only_process_command_line_options.
+
+No_journal_names_could_be_abbreviated.=No_journal_names_could_be_abbreviated.
+
+No_journal_names_could_be_unabbreviated.=No_journal_names_could_be_unabbreviated.
+
 No_Medline_entries_found.=No_Medline_entries_found.
+
 No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found
+
 No_references_found=No_references_found
+
 No_saved_session_found.=No_saved_session_found.
+
 No_url_defined=No_url_defined
+
 non-Mac_only=non-Mac_only
+
+Normal=Normal
+
 not=not
+
 not_found=not_found
+
 Not_saved_(empty_session)=Not_saved_(empty_session)
+
 Note_that_the_entry_causing_the_problem_has_been_selected.=Note_that_the_entry_causing_the_problem_has_been_selected.
+
 Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.=Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.
+
 Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,=Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,
+
 Nothing_to_redo=Nothing_to_redo
+
 Nothing_to_undo=Nothing_to_undo
+
 # The next is used like in "References found: 1  Number of references to fetch?"
 Number_of_references_to_fetch?=Number_of_references_to_fetch?
+
 occurences=occurences
+
 OK=OK
+
 Ok=OK
+
 One_or_more_keys_will_be_overwritten._Continue?=One_or_more_keys_will_be_overwritten._Continue?
+
 Open=Open
+
 open=open
+
 Open_BibTeX_database=Open_BibTeX_database
+
 Open_database=Open_database
+
 Open_editor_when_a_new_entry_is_created=Open_editor_when_a_new_entry_is_created
+
 Open_file=Open_file
+
 Open_last_edited_databases_at_startup=Open_last_edited_databases_at_startup
+
 Open_PDF_or_PS=Open_PDF_or_PS
+
 Open_right-click_menu_with_Ctrl+left_button=Open_right-click_menu_with_Ctrl+left_button
+
 Open_URL_or_DOI=Open_URL_or_DOI
+
 Opened_database=Opened_database
+
 Opening=Opening
+
 Opening_preferences...=Opening_preferences...
+
 Optional_fields=Optional_fields
+
 Options=Options
+
 or=or
+
 out_of=out_of
+
 Output_or_export_file=Output_or_export_file
+
 Overlapping_groups=Overlapping_groups
+
 Override=Override
+
+Override_default_file_directories=Override_default_file_directories
+
 override_the_bibtex_key_by_the_selected_text=override_the_bibtex_key_by_the_selected_text
+
 Overwrite_keys=Overwrite_keys
+
 Ovid=Ovid
+
 pairs_processed=pairs_processed
+
 Paste=Paste
+
 paste_entries=paste_entries
+
 paste_entry=paste_entry
+
 Paste_from_clipboard=Paste_from_clipboard
+
 Pasted=Pasted
+
 Path_to_HTML_viewer=Path_to_HTML_viewer
+
 Path_to_LyX_pipe=Path_to_LyX_pipe
+
 Path_to_PDF_viewer=Path_to_PDF_viewer
+
 Path_to_PS_viewer=Path_to_PS_viewer
+
 Path_to_WinEdt.exe=Path_to_WinEdt.exe
+
 Paths_to_external_programs=Paths_to_external_programs
+
+PDF_directory=PDF_directory
+
 PDF_links=PDF_links
+
+Personal_journal_list=Personal_journal_list
+
 Pick_titles=Pick_titles
+
 Plain_right_menu=Plain_right_menu
+
 Plain_text=Plain_text
+
 Plain_text_import=Plain_text_import
+
 Please_check_your_network_connection_to_this_machine.=Please_check_your_network_connection_to_this_machine.
+
 Please_define_BibTeX_key_first=Please_define_BibTeX_key_first
+
 Please_enter_a_name_for_the_group.=Please_enter_a_name_for_the_group.
+
 Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author%esmith_and_title%eelectrical</tt>=Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author% [...]
+
 Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).
+
 Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).
+
 Please_enter_the_string's_label=Please_enter_the_string's_label
+
 Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.
+
+Please_select_an_importer=Please_select_an_importer
+
+Please_select_an_importer.=Please_select_an_importer.
+
 Please_select_exactly_one_group_to_move.=Please_select_exactly_one_group_to_move.
+
 Please_wait_until_it_has_finished.=Please_wait_until_it_has_finished.
+
 Possible_duplicate_entries=Possible_duplicate_entries
+
 Possible_duplicate_of_existing_entry._Click_to_resolve.=Possible_duplicate_of_existing_entry._Click_to_resolve.
+
 Preamble=Preamble
+
 Preamble_editor,_store_changes=Preamble_editor,_store_changes
+
 Preferences=Preferences
+
 Preferences_recorded=Preferences_recorded
+
 Preferences_recorded.=Preferences_recorded.
+
 Preserve_formatting_of_non-BibTeX_fields=Preserve_formatting_of_non-BibTeX_fields
+
 Preview=Preview
+
 Previous_entry=Previous_entry
+
 Previous_tab=Previous_tab
+
+Primary_sort_criterion=Primary_sort_criterion
+
 Problem_with_parsing_entry=Problem_with_parsing_entry
+
+PS_directory=PS_directory
+
 PS_links=PS_links
+
+Push_selection_to_Emacs=Push_selection_to_Emacs
+
+push_selection_to_lyx=push_selection_to_LyX
+
 Push_selection_to_LyX/Kile=Push_selection_to_LyX/Kile
+
 Push_selection_to_WinEdt=Push_selection_to_WinEdt
+
+Push_to_LatexEditor=Push_to_LatexEditor
+
 Push_to_LyX=Push_to_LyX
+
 Push_to_WinEdt=Push_to_WinEdt
+
+Pushed_citations_to_Emacs=Pushed_citations_to_Emacs
+
+Pushed_citations_to_WinEdt=Pushed_citations_to_WinEdt
+
 Pushed_the_citations_for_the_following_rows_to=Pushed_the_citations_for_the_following_rows_to
+
 Query_author(s)=Query_author(s)
+
 Quit=Quit
+
 Quit_JabRef=Quit_JabRef
+
 Quit_synchronization=Quit_synchronization
+
 Raw_source=Raw_source
+
 Really_delete_the_selected=Really_delete_the_selected
+
+Rearrange_tabs_alphabetically_by_title=Rearrange_tabs_alphabetically_by_title
+
 Recent_files=Recent_files
+
 Redo=Redo
+
 Refer/Endnote=Refer/Endnote
+
 Reference_database=Reference_database
+
 # The next two lines are used like in "References found: 1  Number of references to fetch?"
 References_found=References_found
+
+Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup
+
 Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup
+
 Refresh_view=Refresh_view
+
 Regexp=Regexp
+
 Regular_Expression=Regular_Expression
+
 Remember_these_entry_types?=Remember_these_entry_types?
+
 Remote_operation=Remote_operation
+
 Remote_server_port=Remote_server_port
+
 Remove=Remove
+
 Remove_all?=Remove_all?
+
 Remove_all_subgroups=Remove_subgroups
+
 Remove_all_subgroups_of_"%0"?=Remove_all_subgroups_of_"%0"?
+
+Remove_double_braces_around_BibTeX_fields_when_loading.=Remove_double_braces_around_BibTeX_fields_when_loading.
+
 Remove_duplicates=Remove_duplicates
+
 Remove_entry_from_import=Remove_entry_from_import
+
+Remove_entry_selection_from_this_group=Remove_entry_selection_from_this_group
+
 Remove_entry_type=Remove_entry_type
+
 remove_from_group=remove_from_group
+
 Remove_from_group=Remove_from_group
+
 Remove_group=Remove_group
+
 Remove_group,_keep_subgroups=Remove_group,_keep_subgroups
+
 Remove_group_"%0"?=Remove_group_"%0"?
+
 Remove_group_"%0"_and_its_subgroups?=Remove_group_"%0"_and_its_subgroups?
+
 remove_group_(keep_subgroups)=remove_group_(keep_subgroups)
+
 remove_group_and_subgroups=remove_group_and_subgroups
+
 Remove_group_and_subgroups=Remove_group_and_subgroups
+
 Remove_old_entry=Remove_old_entry
+
 Remove_selected_strings=Remove_selected_strings
+
 remove_string=remove_string
+
 remove_string_=remove_string_
+
 Removed_entry_type.=Removed_entry_type.
+
 Removed_group=Removed_group
+
 Removed_group_"%0".=Removed_group_"%0".
+
 Removed_group_"%0"_and_its_subgroups.=Removed_group_"%0"_and_its_subgroups.
+
 Removed_string=Removed_string
+
 Renamed_string=Renamed_string
+
 Repeat_incremental_search=Repeat_incremental_search
+
 Replace=Replace
+
+Replace_(regular_expression)=Replace_(regular_expression)
+
 Replace_string=Replace_string
+
 Replace_with=Replace_with
+
 Replaced=Replaced
+
 Required_fields=Required_fields
+
 Reset_all=Reset_all
+
 resolved=resolved
+
 Results=Results
+
 Revert_to_original_source=Revert_to_original_source
+
+Review=Review
+
 Review_changes=Review_changes
+
 Right=Right
+
 RIS=RIS
+
 Save=Save
+
 Save_before_closing=Save_before_closing
+
 Save_database=Save_database
+
 Save_database_as_...=Save_database_as_...
+
+Save_entries_in_their_original_order=Save_entries_in_their_original_order
+
+Save_failed=Save_failed
+
+Save_failed_during_backup_creation=Save_failed_during_backup_creation
+
+Save_failed_while_committing_changes=Save_failed_while_committing_changes
+
+Save_in_default_table_sort_order=Save_in_default_table_sort_order
+
+Save_ordered_by_author/editor/year=Save_ordered_by_author/editor/year
+
 Save_selected_as_...=Save_selected_as_...
+
 Save_session=Save_session
+
 Saved_database=Saved_database
+
 Saved_selected_to=Saved_selected_to
+
 Saved_session=Saved_session
+
 Saving=Saving
+
+Saving_database=Saving_database
+
 Scan=Scan
+
 SciFinder=SciFinder
+
 Search=Search
+
 Search_All_Fields=Search_All_Fields
+
 Search_all_fields=Search_all_fields
+
 Search_error=Search_error
+
 Search_expression=Search_expression
+
 Search_for=Search_for
+
 Search_General_Fields=Search_General_Fields
+
 Search_general_fields=Search_general_fields
+
+Search_IEEEXplore=Search_IEEEXplore
+
 Search_Optional_Fields=Search_Optional_Fields
+
 Search_optional_fields=Search_optional_fields
+
 Search_Required_Fields=Search_Required_Fields
+
 Search_required_fields=Search_required_fields
+
 Search_Specified_Field(s)=Search_Specified_Field(s)
+
 Search_term=Search_term
+
+Searched_database._Global_number_of_hits=Searched_database._Global_number_of_hits
+
 Searched_database._Number_of_hits=Searched_database._Number_of_hits
+
 Searching_for_%0_file=Searching_for_%0_file
+
 Searching_for_duplicates...=Searching_for_duplicates...
+
 Secondary_sort_criterion=Secondary_sort_criterion
+
 Select=Select
+
+Select_a_Zip-archive=Select_a_Zip-archive
+
 Select_action=Select_action
+
 Select_all=Select_all
+
+Select_Classpath_of_New_Importer=Select_Classpath_of_New_Importer
+
+Select_encoding=Select_encoding
+
 Select_entries_in_group_selection=Select_entries_in_group_selection
+
 Select_entry_type=Select_entry_type
+
+Select_file_from_ZIP-archive=Select_file_from_ZIP-archive
+
 Select_format=Select_format
+
 Select_matches=Select_matches
+
 Select_matching_entries=Select_matching_entries
+
+Select_new_ImportFormat_Subclass=Select_new_ImportFormat_Subclass
+
 Select_the_tree_nodes_to_view_and_accept_or_reject_changes=Select_the_tree_nodes_to_view_and_accept_or_reject_changes
+
 Selector_enabled_fields=Selector_enabled_fields
+
 Set_general_fields=Set_general_fields
+
 Set_table_font=Set_table_font
+
 Set_up_general_fields=Set_up_general_fields
+
 Settings=Settings
+
 Setup_selectors=Setup_selectors
+
 Short_form=Short_form
+
 Shortcut=Shortcut
+
 Show/edit_BibTeX_source=Show/edit_BibTeX_source
+
 Show_'Firstname_Lastname'=Show_'Firstname_Lastname'
+
 Show_'Lastname,_Firstname'=Show_'Lastname,_Firstname'
+
 Show_abstract=Show_abstract
+
 Show_BibTeX_source_by_default=Show_BibTeX_source_by_default
+
 Show_BibTeX_source_panel=Show_BibTeX_source_panel
+
 Show_CiteSeer_column=Show_CiteSeer_column
+
 Show_confirmation_dialog_when_deleting_entries=Show_confirmation_dialog_when_deleting_entries
+
+Show_description=Show_description
+
 Show_dynamic_groups_in_<i>italics</i>=Show_dynamic_groups_in_<i>italics</i>
+
 Show_entries_*not*_in_group_selection=Show_entries_*not*_in_group_selection
+
 Show_general_fields=Show_general_field
+
 Show_groups_matching_all=Show_groups_matching_all
+
 Show_groups_matching_any=Show_groups_matching_any
+
 Show_icons_for_groups=Show_icons_for_groups
+
 Show_names_unchanged=Show_names_unchanged
+
 Show_one_less_rows=Show_one_less_rows
+
 Show_one_more_row=Show_one_more_row
+
 Show_optional_fields=Show_optional_field
+
 Show_overlapping_groups=Show_overlapping_groups
+
 Show_PDF/PS_column=Show_PDF/PS_column
+
 Show_required_fields=Show_required_fields
+
 Show_URL/DOI_column=Show_URL/DOI_column
+
 Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered
+
 Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Show_warning_dialog_when_an_empty_BibTeX_key_is_entered
+
 Simple_HTML=Simple_HTML
+
 Sixpack=Sixpack
+
+Size=Size
+
 Size_of_groups_interface_(rows)=Size_of_groups_interface_(rows)
+
 Skip=Skip
+
 Sort_alphabetically=Sort_alphabetically
+
 Sort_Automatically=Sort_automatically
+
 Sort_options=Sort_options
+
 sort_subgroups=sort_subgroups
+
 Sorted_all_subgroups_recursively=Sorted_all_subgroups_recursively
+
 Sorted_all_subgroups_recursively.=Sorted_all_subgroups_recursively.
+
 Sorted_immediate_subgroups=Sorted_immediate_subgroups
+
 Sorted_immediate_subgroups.=Sorted_immediate_subgroups.
+
 source_edit=source_edit
+
 Special_table_columns=Special_table_columns
+
 Start=Start
+
 Start_incremental_search=Start_incremental_search
+
 Start_search=Start_search
+
 Statically_group_entries_by_manual_assignment=Statically_group_entries_by_manual_assignment
+
 Status=Status
+
 Stop=Stop
+
 Store=Store
+
 Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.
+
+Store_journal_abbreviations=Store_journal_abbreviations
+
 Store_string=Store_string
+
+Store_the_following_fields_with_braces_around_capital_letters=Store_the_following_fields_with_braces_around_capital_letters
+
 Stored_definition_for_type=Stored_definition_for_type
+
 Stored_entry=Stored_entry
+
 Stored_entry.=Stored_entry.
+
 Strings=Strings
+
 Strings_for_database=Strings_for_database
+
 subdatabase_from_aux=bibtex_from_LaTex_aux
+
 Subdatabase_from_aux=Subdatabase_from_aux
+
 Suggest=Suggest
+
 Switch_preview_layout=Switch_preview_layout
+
+Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.
+
 Synchronize_%0_links=Synchronize_%0_links
+
 Synchronizing_%0_links...=Synchronizing_%0_links...
+
 Table=Table
+
 Table_appearance=Table_appearance
+
+Table_background_color=Table_background_color
+
+Table_grid_color=Table_grid_color
+
+Table_text_color=Table_text_color
+
 Tabname=Tabname
+
 Tertiary_sort_criterion=Tertiary_sort_criterion
+
 Test=Test
+
 Text_Input_Area=paste_text_here
+
 The_#_character_is_not_allowed_in_BibTeX_fields=The_#_character_is_not_allowed_in_BibTeX_fields
+
+The_chosen_date_format_for_new_entries_is_not_valid=The_chosen_date_format_for_new_entries_is_not_valid
+
 The_CiteSeer_fetch_operation_returned_zero_results.=The_CiteSeer_fetch_operation_returned_zero_results.
+
 the_field_<b>%0</b>=the_field_<b>%0</b>
+
 The_file<BR>'%0'<BR>has_been_modified<BR>externally!=The_file<BR>'%0'<BR>has_been_modified<BR>externally!
+
 The_group_"%0"_already_contains_the_selection.=The_group_"%0"_already_contains_the_selection.
+
 The_group_"%0"_does_not_support_the_adding_of_entries.=The_group_"%0"_does_not_support_the_adding_of_entries.
+
 The_group_"%0"_does_not_support_the_removal_of_entries.=The_group_"%0"_does_not_support_the_removal_of_entries.
+
 The_label_of_the_string_can_not_be_a_number.=The_label_of_the_string_can_not_be_a_number.
+
 The_label_of_the_string_can_not_contain_spaces.=The_label_of_the_string_can_not_contain_spaces.
+
 The_label_of_the_string_can_not_contain_the_'#'_character.=The_label_of_the_string_can_not_contain_the_'#'_character.
+
 The_output_option_depends_on_a_valid_import_option.=The_output_option_depends_on_a_valid_import_option.
+
 The_regular_expression_<b>%0</b>_is_invalid%c=The_Regular_Expression_<b>%0</b>_is_invalid%c
+
 The_search_is_case_insensitive.=The_search_is_case_insensitive.
+
 The_search_is_case_sensitive.=The_search_is_case_sensitive.
+
 The_string_has_been_removed_locally=The_string_has_been_removed_locally
+
 The_type_name_can_not_contain_spaces.=The_type_name_can_not_contain_spaces.
+
 The_URL_field_appears_to_be_empty_on_entry_number_=The_URL_field_appears_to_be_empty_on_entry_number_
+
 There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?=There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?
+
 There_is_no_entry_type=There_is_no_entry_type
+
 This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?
+
 this_button_will_update=this_button_will_update
+
 this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table=this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table
+
 This_entry_is_incomplete=This_entry_is_incomplete
+
 This_entry_type_cannot_be_removed.=This_entry_type_cannot_be_removed.
+
 This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._Entries_can_be_removed_from_this_group_by_selecting_them_then_using_the_context_menu._Every_entry_assigned_to_this_group_must_have_a_unique_key._The_key_may_be_changed_at_any_time_as_long_as_it_remains_unique.=This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_ [...]
+
 This_group_contains_entries_in_which=This_group_contains_entries_in_which
+
 This_group_contains_entries_in_which_any_field_contains_the_regular_expression_<b>%0</b>=This_group_contains_entries_in_which_any_field_contains_the_Regular_Expression_<b>%0</b>
+
 This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>=This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>
+
 This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>=This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>
+
 This_group_contains_entries_whose_<b>%0</b>_field_contains_the_regular_expression_<b>%1</b>=This_group_contains_entries_whose_<b>%0</b>_field_contains_the_Regular_Expression_<b>%1</b>
+
 This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.
+
 This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.
+
 This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.
+
 This_operation_cannot_work_on_multiple_rows.=This_operation_cannot_work_on_multiple_rows.
+
+This_operation_requires_all_selected_entries_to_have_BibTex_keys_defined.=This_operation_requires_all_selected_entries_to_have_BibTex_keys_defined.
+
+This_operation_requires_one_or_more_entries_to_be_selected.=This_operation_requires_one_or_more_entries_to_be_selected.
+
+To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>
+
+Toggle_abbreviation=Toggle_abbreviation
+
 Toggle_entry_preview=Toggle_entry_preview
+
 Toggle_groups_interface=Toggle_groups_interface
+
 Toggle_search_panel=Toggle_search_panel
+
 Tools=Tools
+
+Try_different_encoding=Try_different_encoding
+
 Type=Type
+
 Type_set_to_'other'=Type_set_to_'other'
+
+Unabbreviate_journal_names_of_the_selected_entries=Unabbreviate_journal_names_of_the_selected_entries
+
 unable_to_access_LyX-pipe=unable_to_access_LyX-pipe
+
 Unable_to_create_graphical_interface=Unable_to_create_graphical_interface
+
 Unable_to_parse_clipboard_text_as_Bibtex_entries.=Unable_to_parse_clipboard_text_as_Bibtex_entries.
+
 Unable_to_parse_the_following_URL=Unable_to_parse_the_following_URL
+
 unable_to_write_to=unable_to_write_to
+
 Undo=Undo
+
 Union=Union
+
 unknown_bibtex_entries=unknown_bibtex_entries
+
 Unknown_bibtex_entries=Unknown_bibtex_entries
+
 unknown_edit=unknown_edit
+
 unknown_entry_type=unknown_entry_type
+
 Unknown_export_format=Unknown_export_format
+
 Unmark_all=Unmark_all
+
 Unmark_entries=Unmark_entries
+
 Unmark_entry=Unmark_entry
+
 Unmarked_selected=Unmarked_selected
+
 Unpack_EndNote_filter_set=Unpack_EndNote_filter_set
+
 Unpacked_file=Unpacked_file
+
 Unpacked_file.=Unpacked_file.
+
 Unsupported_version_of_class_%0:_%1=Unsupported_version_of_class_%0:_%1
+
 untitled=untitled
+
 Up=Up
+
 Update_to_current_column_widths=Update_to_current_column_widths
+
 Updated_group_selection=Updated_group_selection
+
 Updating_entries...=Updating_entries...
+
 UPPER=UPPER
+
 Upper_Each_First=Upper_Each_First
+
 Upper_first=Upper_first
+
 usage=usage
+
+Use_antialiasing_font=Use_antialiasing_font
+
 Use_antialiasing_font_in_table=Use_antialiasing_font_in_table
+
 Use_inspection_window_also_when_a_single_entry_is_imported.=Use_inspection_window_also_when_a_single_entry_is_imported.
+
 Use_other_look_and_feel=Use_other_look_and_feel
+
 Use_regular_expressions=Use_Regular_Expressions
+
 #the previous entry is translated in the menu "Tools" but is not in the file Menu_fr.properties!!!
 Use_the_following_delimiter=Use_the_following_delimiter
+
 Use_the_following_delimiter_character(s)=Use_the_following_delimiter_character(s)
+
 Uses_default_application=Uses_default_application
+
 Value_cleared_externally=Value_cleared_externally
+
 Value_set_externally=Value_set_externally
+
 verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid=verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid
+
 View=View
+
 Visible_fields=Visible_fields
+
 Warn_about_unresolved_duplicates_when_closing_inspection_window=Warn_about_unresolved_duplicates_when_closing_inspection_window
+
 Warn_before_overwriting_existing_keys=Warn_before_overwriting_existing_keys
+
 Warning=Warning
+
 Warning_there_is_a_duplicate_key=Warning_there_is_a_duplicate_key
+
 Warnings=Warnings
+
 web_link=web_link
+
+What_do_you_want_to_do?=What_do_you_want_to_do?
+
 When_adding/removing_keywords,_separate_them_by=When_adding/removing_keywords,_separate_them_by
+
 with=with
+
 Word=Word
+
 Wrong_file_format=Wrong_file_format
+
 You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.
+
 You_have_cleared_this_field._Original_value=You_have_cleared_this_field._Original_value
-You_must_enter_an_integer_value_in_the_text_field_for=You_must_enter_an_integer_value_in_the_text_field_for
-You_must_fill_in_a_name_for_the_entry_type.=You_must_fill_in_a_name_for_the_entry_type.
-You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.
-You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.=You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.
-You_must_select_a_row_to_perform_this_operation.=You_must_select_a_row_to_perform_this_operation.
-You_must_select_at_least_one_row_to_perform_this_operation.=You_must_select_at_least_one_row_to_perform_this_operation.
-You_must_set_both_BibTeX_key_and_%0_directory=You_must_set_both_BibTeX_key_and_%0_directory
-You_must_set_both_bibtex_key_and_PDF_directory=You_must_set_both_bibtex_key_and_PDF_directory
-Your_new_key_bindings_have_been_stored.=Your_new_key_bindings_have_been_stored.
-Manage_custom_imports=Manage_custom_imports
-Select_Classpath_of_New_Importer=Select_Classpath_of_New_Importer
-Select_new_ImportFormat_Subclass=Select_new_ImportFormat_Subclass
-Could_not_instantiate_%0_%1=Could_not_instantiate_%0_%1
-Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.
-Please_select_an_importer=Please_select_an_importer
-Import_name=Import_name
-Command_line_id=Command_line_id
-ImportFormat_class=ImportFormat_class
-Contained_in=Contained_in
-Show_description=Show_description
-Add_from_folder=Add_from_folder
-Custom_importers=Custom_importers
-No_custom_imports_registered_yet.=No_custom_imports_registered_yet.
-Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)
-Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)
-Background_color_for_marked_entries=Background_color_for_marked_entries
-Background_color_for_optional_fields=Background_color_for_optional_fields
-Background_color_for_required_fields=Background_color_for_required_fields
-Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.
-Color_for_marking_incomplete_entries=Color_for_marking_incomplete_entries
-Do_not_abbreviate_names=Do_not_abbreviate_names
-Do_not_wrap_the_following_fields_when_saving=Do_not_wrap_the_following_fields_when_saving
-External_files=External_files
-File_'%0'_not_found=File_'%0'_not_found
-Journal_abbreviations=Journal_abbreviations
-Journal_name=Journal_name
-Manage_journal_abbreviations=Manage_journal_abbreviations
-Natbib_style=Natbib_style
-New_file=New_file
-Personal_journal_list=Personal_journal_list
-Remove_double_braces_around_BibTeX_fields_when_loading.=Remove_double_braces_around_BibTeX_fields_when_loading.
-Store_the_following_fields_with_braces_around_capital_letters=Store_the_following_fields_with_braces_around_capital_letters
-Table_background_color=Table_background_color
-Table_grid_color=Table_grid_color
-Table_text_color=Table_text_color
-Toggle_abbreviation=Toggle_abbreviation
-Unabbreviate_journal_names_of_the_selected_entries=Unabbreviate_journal_names_of_the_selected_entries
-Use_antialiasing_font=Use_antialiasing_font
-Abbreviate_names=Abbreviate_names
-Abbreviation=Abbreviation
-ISO_abbreviation=ISO_abbreviation
-Edit_journal=Edit_journal
-Existing_file=Existing_file
-Saving_database=Saving_database
-Normal=Normal
-Default_sort_criteria=Default_sort_criteria
-Primary_sort_criterion=Primary_sort_criterion
-Database_properties=Database_properties
-Database_encoding=Database_encoding
 
-No_journal_names_could_be_abbreviated.=No_journal_names_could_be_abbreviated.
-No_journal_names_could_be_unabbreviated.=No_journal_names_could_be_unabbreviated.
-Save_failed=Save_failed
-Pushed_citations_to_WinEdt=Pushed_citations_to_WinEdt
-Try_different_encoding=Try_different_encoding
-Select_encoding=Select_encoding
-The_chosen_date_format_for_new_entries_is_not_valid=The_chosen_date_format_for_new_entries_is_not_valid
-Invalid_date_format=Invalid_date_format
-Review=Review
-Journal_names=Journal_names
-Save_failed_during_backup_creation=Save_failed_during_backup_creation
-Save_failed_while_committing_changes=Save_failed_while_committing_changes
-Full_name=Full_name
-Store_journal_abbreviations=Store_journal_abbreviations
 You_must_choose_a_file_name_to_store_journal_abbreviations=You_must_choose_a_file_name_to_store_journal_abbreviations
-Journal_list_preview=Journal_list_preview
 
-Add_from_jar=Add_from_jar
-Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.
-Select_a_Zip-archive=Select_a_Zip-archive
-Select_file_from_ZIP-archive=Select_file_from_ZIP-archive
-Last_modified=Last_modified
-Size=Size
-Please_select_an_importer.=Please_select_an_importer.
+You_must_enter_an_integer_value_in_the_text_field_for=You_must_enter_an_integer_value_in_the_text_field_for
 
-Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Arguments_passed_on_to_running_JabRef_instance._Shutting_down.
-Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').
-Pushed_citations_to_Emacs=Pushed_citations_to_Emacs
-Push_selection_to_Emacs=Push_selection_to_Emacs
+You_must_fill_in_a_name_for_the_entry_type.=You_must_fill_in_a_name_for_the_entry_type.
 
-Filter=Filter
-Hide_non-matching_entries=Hide_non-matching_entries
-Replace_(regular_expression)=Replace_(regular_expression)
-Cite_command_(for_Emacs/WinEdt)=Cite_command_(for_Emacs/WinEdt)
-No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.
+You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.
 
-Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?
+You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.=You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.
 
-Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.
-To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>
+You_must_select_a_row_to_perform_this_operation.=You_must_select_a_row_to_perform_this_operation.
 
-Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.
+You_must_select_at_least_one_row_to_perform_this_operation.=You_must_select_at_least_one_row_to_perform_this_operation.
 
-Hierarchical_context=Hierarchical_context
+You_must_set_both_BibTeX_key_and_%0_directory=You_must_set_both_BibTeX_key_and_%0_directory
+
+You_must_set_both_bibtex_key_and_PDF_directory=You_must_set_both_bibtex_key_and_PDF_directory
+
+Your_new_key_bindings_have_been_stored.=Your_new_key_bindings_have_been_stored.
 
-Remove_entry_selection_from_this_group=Remove_entry_selection_from_this_group
-Assign_entry_selection_exclusively_to_this_group=Assign_entry_selection_exclusively_to_this_group
-Add_entry_selection_to_this_group=Add_entry_selection_to_this_group
\ No newline at end of file
diff --git a/src/resource/JabRef_en.properties.orig b/src/resource/JabRef_en.properties.orig
deleted file mode 100644
index 82f8146..0000000
--- a/src/resource/JabRef_en.properties.orig
+++ /dev/null
@@ -1,1030 +0,0 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
-
-!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.
-%0_contains_the_Regular_Expression_<b>%1</b>=%0_contains_the_Regular_Expression_<b>%1</b>
-%0_contains_the_term_<b>%1</b>=%0_contains_the_term_<b>%1</b>
-%0_doesn't_contain_the_Regular_Expression_<b>%1</b>=%0_doesn't_contain_the_Regular_Expression_<b>%1</b>
-%0_doesn't_contain_the_term_<b>%1</b>=%0_doesn't_contain_the_term_<b>%1</b>
-%0_doesn't_match_the_Regular_Expression_<b>%1</b>=%0_doesn't_match_the_Regular_Expression_<b>%1</b>
-%0_doesn't_match_the_term_<b>%1</b>=%0_doesn't_match_the_term_<b>%1</b>
-%0_field_set=%0_field_set
-%0_import_cancelled.=%0_import_cancelled.
-%0_matches_the_Regular_Expression_<b>%1</b>=%0_matches_the_Regular_Expression_<b>%1</b>
-%0_matches_the_term_<b>%1</b>=%0_matches_the_term_<b>%1</b>
-<field_name>=<field_name>
-<HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>=<HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>
-<no_field>=<no_field>
-<select>=<select>
-<select_word>=<select_word>
-_on_entry_number_=_on_entry_number_
-A_CiteSeer_fetch_operation_is_currently_in_progress.=A_CiteSeer_fetch_operation_is_currently_in_progress.
-A_CiteSeer_import_operation_is_currently_in_progress.=A_CiteSeer_import_operation_is_currently_in_progress.
-A_string_with_that_label_already_exists=A_string_with_that_label_already_exists
-About_JabRef=About_JabRef
-Abstract=Abstract
-Accept=Accept
-Accept_change=Accept_change
-Action=Action
-Add=Add
-add_entries_to_group=add_entries_to_group
-add_group=add_group
-Add_Group=Add_group
-Add_new=Add_new
-Add_Subgroup=Add_subgroup
-Add_to_group=Add_to_group
-Added_entry=Added_entry
-Added_group=Added_group
-Added_group_"%0".=Added_group_"%0".
-Added_new=Added_new
-Added_string=Added_string
-Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_can_be_assigned_manually_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._This_process_adds_the_term_<b>%1</b>_to_each_entry's_<b>%0</b>_field._Entries_can_be_removed_manually_from_this_group_by_selecting_them_then_using_the_context_menu._This_process_removes_the_term_<b>%1</b>_from_each_entry's_<b>%0</b>_field.=Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_ [...]
-Advanced=Advanced
-Advanced_options_for_setting...=Advanced_options_for_setting...
-All_Entries=All_Entries
-All_entries=All_entries
-All_entries_of_this_type_will_be_declared_typeless._Continue?=All_entries_of_this_type_will_be_declared_typeless._Continue?
-All_fields=All_fields
-All_subgroups_(recursively)=All_subgroups_(recursively)
-Allow_editing_in_table_cells=Allow_editing_in_table_cells
-Always_save_database_ordered_by_author_name=Always_save_database_ordered_by_author_name
-and=and
-and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.=and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.
-any_field_that_matches_the_regular_expression_<b>%0</b>=any_field_that_matches_the_Regular_Expression_<b>%0</b>
-Appearance=Appearance
-Append=Append
-Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database
-Append_database=Append_database
-append_the_selected_text_to_bibtex_key=append_the_selected_text_to_bibtex_key
-Apply=Apply
-Assign_entries_based_on:=Assign_entries_based_on:
-Assign_new_file=Assign_new_file
-Assign_the_original_group's_entries_to_this_group?=Assign_the_original_group's_entries_to_this_group?
-Assigned_%0_entries_to_group_"%1".=Assigned_%0_entries_to_group_"%1".
-Assigned_1_entry_to_group_"%0".=Assigned_1_entry_to_group_"%0".
-Attach_%0_file=Attach_%0_file
-Attach_URL=Attach_URL
-Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.=Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.
-Auto=Auto
-Autodetect_format=Autodetect_format
-Autogenerate_BibTeX_key=Autogenerate_BibTeX_key
-Autogenerate_BibTeX_keys=Autogenerate_BibTeX_keys
-Autogenerate_groups=Autogenerate_groups
-autogenerate_keys=autogenerate_keys
-Automatically_create_groups=Automatically_create_groups
-Automatically_create_groups_for_database.=Automatically_create_groups_for_database.
-Automatically_created_groups=Automatically_created_groups
-Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups=Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups
-Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups=Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups
-Autoset=Autoset
-Autoset_%0_field=Autoset_%0_field
-Autoset_%0_links._Allow_overwriting_existing_links.=Autoset_%0_links._Allow_overwriting_existing_links.
-Autoset_%0_links._Do_not_overwrite_existing_links.=Autoset_%0_links._Do_not_overwrite_existing_links.
-Autosetting_%0_field...=Autosetting_%0_field...
-AUX_File_import=generate_subdatabase_from_aux
-AUX_file_import=AUX_file_import
-Available_export_formats=Available_export_formats
-Available_fields=Allowed_BibTeX_fields
-Available_import_formats=Available_import_formats
-Backup_old_file_when_saving=Backup_old_file_when_saving
-Bibkey_to_filename_conversion=Bibkey_to_filename_conversion
-Biblioscape_Tag_file=Biblioscape_Tag_file
-BibTeX=BibTeX
-BibTeX_key=BibTeX_key
-BibTeX_key_is_unique.=BibTeX_key_is_unique.
-BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file=BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file
-BibTeX_source=BibTeX_source
-BibTeXML=BibTeXML
-BibTeXML_File=BibTeXML_File
-Binding=Binding
-Broken_link=Broken_link
-Browse=Browse
-by=by
-Calling_external_viewer...=Calling_external_viewer...
-Cancel=Cancel
-Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?=Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?
-Cannot_merge_this_change=Cannot_merge_this_change
-Cannot_move_group=Cannot_move_group
-Cannot_move_group_"%0"_down.=Cannot_move_group_"%0"_down.
-Cannot_move_group_"%0"_left.=Cannot_move_group_"%0"_left.
-Cannot_move_group_"%0"_right.=Cannot_move_group_"%0"_right.
-Cannot_move_group_"%0"_up.=Cannot_move_group_"%0"_up.
-case_insensitive=case_insensitive
-case_sensitive=case_sensitive
-Case_sensitive=Case_sensitive
-change_assignment_of_entries=change_assignment_of_entries
-Change_case=Change_case
-Change_entry_type=Change_entry_type
-change_key=change_key
-Change_of_Grouping_Method=Change_of_Grouping_Method
-change_preamble=change_preamble
-change_string_content=change_string_content
-change_string_name=change_string_name
-change_type=change_type
-changed_=changed_
-Changed_font_settings=Changed_font_settings
-Changed_language_settings=Changed_language_settings
-Changed_look_and_feel_settings=Changed_look_and_feel_settings
-Changed_preamble=Changed_preamble
-Changed_type_to=Changed_type_to
-Characters_to_ignore=Characters_to_ignore
-Check_existing_%0_links=Check_existing_%0_links
-Check_links=Check_links
-Citation_import_from_CiteSeer_failed.=Citation_import_from_CiteSeer_failed.
-CiteSeer_Error=CiteSeer_Error
-CiteSeer_Fetch_Error=CiteSeer_Fetch_Error
-CiteSeer_import_entries=CiteSeer_import_entries
-CiteSeer_Import_Error=CiteSeer_Import_Error
-CiteSeer_Import_Fields=CiteSeer_Import_Fields
-CiteSeer_Transfer=CiteSeer_Transfer
-CiteSeer_Warning=CiteSeer_Warning
-Class_name=Class_name
-Clear=Clear
-clear_all_groups=clear_all_groups
-Clear_field=Clear_field
-Clear_highlight=Clear_highlight
-Clear_highlighted=Clear_highlighted
-Clear_highlighted_groups=Clear_highlighted_groups
-Clear_inputarea=Clear_text_input_area
-Clear_search=Clear_search
-Close=Close
-Close_database=Close_database
-Close_dialog=Close_dialog
-# The following lines correspond to names of key bindings:
-Close_entry_editor=Close_entry_editor
-Close_preamble_editor=Close_preamble_editor
-Close_the_current_database=Close_the_current_database
-Close_the_help_window=Close_the_help_window
-Close_window=Close_window
-Closed_database=Closed_database
-Collapse_subtree=Collapse_subtree
-Color_codes_for_required_and_optional_fields=Color_codes_for_required_and_optional_fields
-Column_width=Column_width
-Complete_record=Complete_record
-Completed_citation_import_from_CiteSeer.=Completed_citation_import_from_CiteSeer.
-Completed_Import_Fields_from_CiteSeer.=Completed_Import_Fields_from_CiteSeer.
-Completed_import_from_CiteSeer.=Completed_import_from_CiteSeer.
-Content=Content
-Copied=Copied
-Copied_cell_contents=Copied_cell_contents
-Copied_key=Copied_key
-Copied_keys=Copied_keys
-Copy=Copy
-Copy_BibTeX_key=Copy_BibTeX_key
-Copy_\\cite{BibTeX_key}=Copy_cite\\{BibTeX_key}
-Copy_to_clipboard=Copy_to_clipboard
-Could_not_call_executable=Could_not_call_executable
-Could_not_connect_to_host=Could_not_connect_to_host
-Could_not_connect_to_host_=Could_not_connect_to_host_
-Could_not_export_entry_types=Could_not_export_entry_types
-Could_not_export_file=Could_not_export_file
-Could_not_export_preferences=Could_not_export_preferences
-Could_not_find_a_suitable_import_format.=Could_not_find_a_suitable_import_format.
-Could_not_find_layout_file=Could_not_find_layout_file
-Could_not_import_entry_types=Could_not_import_entry_types
-Could_not_import_preferences=Could_not_import_preferences
-Could_not_resolve_import_format=Could_not_resolve_import_format
-Could_not_save_file=Could_not_save_file
-Couldn't_find_an_entry_associated_with_this_URL=Couldn't_find_an_entry_associated_with_this_URL
-Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries
-Create_group=Create_group
-Created_group=Created_group
-Created_group_"%0".=Created_group_"%0".
-Created_groups.=Created_groups.
-Curly_braces_{_and_}_must_be_balanced.=Curly_braces_{_and_}_must_be_balanced.
-Current_content=Current_content
-Current_value=Current_value
-Custom_entry_types=Custom_entry_types
-Custom_entry_types_found_in_file=Custom_entry_types_found_in_file
-Custom_export=Custom_export
-Customize_entry_types=Customize_entry_types
-Customize_key_bindings=Customize_key_bindings
-Cut=Cut
-cut_entries=cut_entries
-cut_entry=cut_entry
-Cut_pr=Cut
-Database_has_changed._Do_you_want_to_save_before_closing?=Database_has_changed._Do_you_want_to_save_before_closing?
-Date_format=Date_format
-Default=Default
-Default_encoding=Default_encoding
-Default_grouping_field=Default_grouping_field
-Default_look_and_feel=Default_look_and_feel
-Default_owner=Default_owner
-Default_pattern=Default_pattern
-defined.=defined.
-Delete=Delete
-Delete_custom=Delete_custom
-Delete_custom_format=Delete_custom_format
-delete_entries=delete_entries
-Delete_entry=Delete_entry
-delete_entry=delete_entry
-Delete_multiple_entries=Delete_multiple_entries
-Delete_rows=Delete_rows
-Delete_strings=Delete_strings
-Deleted=Deleted
-Deleted_entry=Deleted_entry
-Delimit_fields_with_semicolon,_ex.=Delimit_fields_with_semicolon,_ex.
-Descending=Descending
-Description=Description
-Deselect_all=Deselect_all
-Details=Details
-Disable_entry_editor_when_multiple_entries_are_selected=Disable_entry_editor_when_multiple_entries_are_selected
-Disable_this_confirmation_dialog=Disable_this_confirmation_dialog
-Disable_this_warning_dialog=Disable_this_warning_dialog
-Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.
-Display_help_on_command_line_options=Display_help_on_command_line_options
-Display_imported_entries_in_an_inspection_window_before_they_are_added.=Display_imported_entries_in_an_inspection_window_before_they_are_added.
-Display_only_entries_belonging_to_all_selected_groups.=Display_only_entries_belonging_to_all_selected_groups.
-Displaying_no_groups=Displaying_no_groups
-Do_not_autoset=Do_not_autoset
-Do_not_import_entry=Do_not_import_entry
-Do_not_open_any_files_at_startup=Do_not_open_any_files_at_startup
-Do_not_overwrite_existing_keys=Do_not_overwrite_existing_keys
-Docbook=Docbook
-Done=Done
-Down=Down
-Download=Download
-Download_completed=Download_completed
-Download_file=Download_file
-Downloading...=Downloading...
-Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.=Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.
-dummy=dummy
-Duplicate_BibTeX_key=duplicate_BibTeX_key
-duplicate_BibTeX_key=duplicate_BibTeX_key
-Duplicate_BibTeX_key.=Duplicate_BibTeX_key.
-duplicate_BibTeX_key.=duplicate_BibTeX_key.
-Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.=Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.
-Duplicate_Key_Warning=Duplicate_Key_Warning
-Duplicate_pairs_found=Duplicate_pairs_found
-duplicate_removal=duplicate_removal
-Duplicate_string_name=Duplicate_string_name
-Duplicates_found=Duplicates_found
-Duplicates_removed=Duplicates_removed
-Dynamic_groups=Dynamic_groups
-Dynamically_group_entries_by_a_free-form_search_expression=Dynamically_group_entries_by_a_free-form_search_expression
-Dynamically_group_entries_by_searching_a_field_for_a_keyword=Dynamically_group_entries_by_searching_a_field_for_a_keyword
-Each_line_must_be_on_the_following_form=Each_line_must_be_on_the_following_form
-Edit=Edit
-Edit_custom_export=Edit_custom_export
-Edit_entry=Edit_entry
-Edit_group=Edit_Group
-Edit_preamble=Edit_preamble
-Edit_strings=Edit_strings
-empty_BibTeX_key=empty_BibTeX_key
-Empty_BibTeX_key.=Empty_BibTeX_key.
-Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.
-Empty_database=Empty_database
-empty_database=empty_database
-Enable source_editing=Enable source_editing
-Enable_source_editing=Enable_source_editing
-Endnote=Endnote
-Enter_URL=Enter_URL
-Enter_URL_to_download=Enter_URL_to_download
-entries=entries
-Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.=Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.
-Entries_exported_to_clipboard=Entries_exported_to_clipboard
-entries_have_undefined_BibTeX_key=entries_have_undefined_BibTeX_key
-entries_into_new_database=entries_into_new_database
-entry=entry
-Entry_editor=Entry_editor
-# The following lines correspond to names of key bindings:
-Entry_editor,_next_entry=Entry_editor,_next_entry
-Entry_editor,_next_panel=Entry_editor,_next_panel
-Entry_editor,_previous_entry=Entry_editor,_previous_entry
-Entry_editor,_previous_panel=Entry_editor,_previous_panel
-Entry_editor,_store_field=Entry_editor,_store_field
-Entry_in_current_database=Entry_in_current_database
-Entry_in_import=Entry_in_import
-Entry_is_incomplete=Entry_is_incomplete
-Entry_preview=Entry_preview
-Entry_table=Entry_table
-Entry_table_columns=Entry_table_columns
-Entry_type=Entry_type
-Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters
-Entry_types=Entry_types
-EOF_in_mid-string=EOF_in_mid-string
-Error=Error
-##Error:_check_your_External_viewer_settings_in_Preferences=Error:_check_your_External_viewer_settings_in_Preferences
-Error_in_field=Error_in_field
-Error_in_line=Error_in_line
-Error_opening_file=Error_opening_file
-Error_setting_field=Error_setting_field
-exists._Overwrite?=exists._Overwrite?
-exists._Overwrite_file?=exists._Overwrite_file?
-Exit=Exit
-Expand_subtree=Expand_subtree
-Explicit=Explicit
-#previous entry not translated. To view it, open Group interface and click on the "new group" button
-Export=Export
-Export_entry_types=Export_entry_types
-Export_name=Export_name
-Export_preferences=Export_preferences
-Export_preferences_to_file=Export_preferences_to_file
-Export_properties=Export_properties
-Export_selected_to_clipboard=Export_selected_to_clipboard
-Export_to_clipboard=Export_to_clipboard
-Exported_database_to_file=Exported_database_to_file
-Exporting=Exporting
-External_changes=External_changes
-External_programs=External_programs
-External_viewer_called=External_viewer_called
-Failed_to_read_groups_data_(unsupported_version:_%0)=Failed_to_read_groups_data_(unsupported_version:_%0)
-Fetch=Fetch
-Fetch_Articles_Citing_your_Database=Fetch_Articles_Citing_your_Database
-Fetch_Citations_from_CiteSeer=Fetch_Citations_from_CiteSeer
-Fetch_citations_from_CiteSeer=Fetch_citations_from_CiteSeer
-Fetch_CiteSeer=Fetch_CiteSeer
-Fetch_Medline=Fetch_Medline
-fetch_Medline=fetch_Medline
-Fetch_Medline_by_author=Fetch_Medline_by_author
-Fetch_Medline_by_ID=Fetch_Medline_by_ID
-Fetched_all_citations_from_target_database.=Fetched_all_citations_from_target_database.
-Fetching_Citations=Fetching_Citations
-Fetching_Identifiers=Fetching_Identifiers
-Fetching_Medline...=Fetching_Medline...
-Fetching_Medline_by_ID...=Fetching_Medline_by_ID...
-Fetching_Medline_by_id_...=Fetching_Medline_by_id_...
-Fetching_Medline_by_term_...=Fetching_Medline_by_term_...
-Field=Field
-field=field
-# Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
-Field_content=Field_content
-Field_name=Field_name
-Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters
-Field_sizes=Field_sizes
-Field_to_group_by=Field_to_group_by
-Field_to_search=Field_to_search
-Fields=Fields
-File=File
-file=file
-File_changed=File_changed
-File_extension=File_extension
-File_has_been_updated_externally._Are_you_sure_you_want_to_save?=File_has_been_updated_externally._Are_you_sure_you_want_to_save?
-File_not_found=File_not_found
-File_updated_externally=File_updated_externally
-filename=filename
-Files_opened=Files_opened
-Find_duplicates=Find_duplicates
-Finished_autosetting_%0_field._Entries_changed:_%1.=Finished_autosetting_%0_field._Entries_changed:_%1.
-Finished_synchronizing_%0_links._Entries_changed%c_%1.=Finished_synchronizing_%0_links._Entries_changed%c_%1.
-First_select_the_entries_you_want_keys_to_be_generated_for.=First_select_the_entries_you_want_keys_to_be_generated_for.
-Fit_table_horizontally_on_screen=Fit_table_horizontally_on_screen
-Float=Float
-Font_Family=Font_Family
-Font_Preview=Font_Preview
-Font_Size=Font_Size
-Font_Style=Font_Style
-FontSelector=FontSelector
-for=for
-Format_of_author_and_editor_names=Format_of_author_and_editor_names
-Format_used=Format_used
-Formatter_not_found=Formatter_not_found
-found=found
-found_in_aux_file=found_in_aux_file
-General=General
-General_fields=General_fields
-Generate=Generate
-Generate_BibTeX_key=Generate_BibTeX_key
-Generate_keys=Generate_keys
-Generate_now=Generate_now
-Generated_BibTeX_key_for=Generated_BibTeX_key_for
-Generating_BibTeX_key_for=Generating_BibTeX_key_for
-Grab=Grab
-Gray_out_entries_not_in_group_selection=Gray_out_entries_not_in_group_selection
-Gray_out_non-hits=Gray_out_non-hits
-Gray_out_non-matching_entries=Gray_out_non-matching_entries
-Group_definitions_have_been_converted_to_JabRef_1.7_format.=Group_definitions_have_been_converted_to_JabRef_1.7_format.
-Group_name=Group_name
-Group_properties=Group_properties
-Groups=Groups
-Harvard_RTF=Harvard_RTF
-Help=Help
-Help_contents=Help_contents
-Help_on_groups=Help_on_groups
-Help_on_key_patterns=Help_on_key_patterns
-Hide_non-hits=Hide_non-hits
-Highlight=Highlight
-Highlight_groups_matching_all_selected_entries=Highlight_groups_matching_all_selected_entries
-Highlight_groups_matching_any_selected_entry=Highlight_groups_matching_any_selected_entry
-Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group=Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group
-Highlight_overlapping_groups=Highlight_overlapping_groups
-Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>=Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>
-HTML=HTML
-Ignore=Ignore
-Illegal_type_name=Illegal_type_name
-Immediate_subgroups=Immediate_subgroups
-Import=Import
-Import_and_append=Import_and_append
-Import_and_keep_old_entry=Import_and_keep_old_entry
-Import_and_remove_old_entry=Import_and_remove_old_entry
-Import_cancelled.=Import_cancelled.
-Import_Data_from_CiteSeer=Import_Data_from_CiteSeer
-Import_Data_from_CiteSeer_Database=Import_Data_from_CiteSeer_Database
-Import_database=Import_database
-Import_entries=Import_entries
-Import_entry_types=Import_entry_types
-Import_failed=Import_failed
-Import_Fields_from_CiteSeer=Import_Fields_from_CiteSeer
-# I have reformulated the following lines, because the 1st person form is not suitable:
-# (Folgende_URL_konnte_nicht_analysiert_werden)
-Import_fields_from_CiteSeer=Import_fields_from_CiteSeer
-Import_fields_from_CiteSeer_Database=Import_fields_from_CiteSeer_Database
-Import_Fields_from_CiteSeer_Database=Import_Fields_from_CiteSeer_Database
-Import_file=Import_file
-Import_group_definitions=Import_group_definitions
-Import_plain_text=Import_fields_from_plain_text
-Import_preferences=Import_preferences
-Import_preferences_from_file=Import_preferences_from_file
-Import_strings=Import_strings
-Import_to_open_tab=Import_to_open_tab
-Import_word_selector_definitions=Import_word_selector_definitions
-Imported_database=Imported_database
-Imported_entries=Imported_entries
-Imported_entry_types=Imported_entry_types
-Imported_file=Imported_file
-Imported_from_database=Imported_from_database
-Importing=Importing
-Importing_file=Importing_file
-Importing_in_unknown_format=Importing_in_unknown_format
-In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.
-Include_subgroups=Include_subgroups
-Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups
-Incremental=Incremental
-Incremental_search=Incremental_search
-Incremental_search_failed._Repeat_to_search_from_top.=Incremental_search_failed._Repeat_to_search_from_top.
-Independent=Independent
-Independent_group:_When_selected,_view_only_this_group's_entries=Independent_group:_When_selected,_view_only_this_group's_entries
-Initially_show_groups_tree_expanded=Initially_show_groups_tree_expanded
-Input=Work_options
-Input_error=Input_error
-Insert=Insert
-Insert_rows=Insert_rows
-Insert_selected_citations_into_LyX=Insert_selected_citations_into_LyX
-Insert_selected_citations_into_WinEdt=Insert_selected_citations_into_WinEdt
-insert_string_=insert_string_
-Insert_URL=Insert_URL
-INSPEC=INSPEC
-integrity=integrity
-# Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
-Integrity_check=Integrity_check
-Intersection=Intersection
-Intersection_with_supergroups=Intersection_with_supergroups
-Invalid_BibTeX_key=Invalid_BibTeX_key
-Invalid_URL=Invalid_URL
-Inverted=Inverted
-is_a_standard_type.=is_a_standard_type.
-ISI=ISI
-Item_list_for_field=Item_list_for_field
-JabRef_help=JabRef_help
-JabRef_preferences=JabRef_preferences
-JStor_file=JStor_file
-Keep=Keep
-Keep_both=Keep_both
-Keep_lower=Keep_lower
-Keep_upper=Keep_upper
-Key_bindings=Key_bindings
-Key_bindings_changed=Key_bindings_changed
-Key_generator_settings=Key_generator_settings
-Key_pattern=Key_pattern
-keys_in_database=keys_in_database
-#not translated. To view it, use menu "Tools|New BibTeX file from AUx file", and launch the action on a non-existant aux file.
-Keyword=Keyword
-Label=Label
-Language=Language
-Latex_AUX_file=LaTeX_AUX_file
-LaTeX_AUX_file=LaTeX_AUX_file
-Left=Left
-License=License
-Limit_to_fields=Limit_to_fields
-Limit_to_selected_entries=Limit_to_selected_entries
-Listen_for_remote_operation_on_port=Listen_for_remote_operation_on_port
-Load_session=Load_session
-Loading_session...=Loading_session...
-Look_and_feel=Look_and_feel
-lower=lower
-Main_layout_file=Main_layout_file
-Main_PDF_directory=Main_PDF_directory
-Main_PS_directory=Main_PS_directory
-Manage=Manage
-Manage_content_selectors=Manage_content_selectors
-Manage_custom_exports=Manage_custom_exports
-Mark_entries=Mark_entries
-Mark_entry=Mark_entry
-Mark_new_entries_with_addition_date=Mark_new_entries_with_addition_date
-Mark_new_entries_with_owner_name=Mark_new_entries_with_owner_name
-Marked_selected=Marked_selected
-Medline_entries_fetched=Medline_entries_fetched
-Medline_XML=Medline_XML
-Medline_XML_File=Medline_XML_File
-Menu_and_label_font_size=Menu_and_label_font_size
-Merged_external_changes=Merged_external_changes
-messages=messages
-Messages=Messages
-Messages_and_Hints=Hints_and_Warnings
-Miscellaneous=Miscellaneous
-Modification_of_field=Modification_of_field
-Modified_group_"%0".=Modified_group_"%0".
-Modified_groups=Modified_groups
-Modified_groups_tree=Modified_groups_tree
-Modified_string=Modified_string
-Modify=Modify
-modify_group=modify_group
-MODS=MODS
-Move=Move
-Move_down=Move_down
-Move_entries_in_group_selection_to_the_top=Move_entries_in_group_selection_to_the_top
-move_group=move_group
-Move_matching_entries_to_the_top=Move_matching_entries_to_the_top
-Move_string_down=Move_string_down
-Move_string_up=Move_string_up
-Move_up=Move_up
-Moved_Group=Moved_Group
-Moved_group_"%0".=Moved_group_"%0".
-Name=Name
-Ne_entries_imported.=Ne_entries_imported.
-nested_aux_files=nested_aux_files
-New=New
-new=new
-New_article=New_article
-New_BibTeX_database=New_BibTeX_database
-New_BibTeX_entry=New_BibTeX_entry
-New_BibTeX_subdatabase=New_BibTeX_subdatabase
-New_book=New_book
-New_content=New_content
-New_database=New_database
-New_database_created.=New_database_created.
-New_entry=New_entry
-New_entry...=New_entry...
-New_entry_from_plain_text=New_entry_from_plain_text
-New_group=New_group
-New_inbook=New_inbook
-New_mastersthesis=New_mastersthesis
-New_phdthesis=New_phdthesis
-New_proceedings=New_proceedings
-New_string=New_string
-New_subdatabase=New_subdatabase
-New_subdatabase_based_on_AUX_file=New_subdatabase_based_on_AUX_file
-New_unpublished=New_unpublished
-Next_entry=Next_entry
-Next_tab=Next_tab
-No_%0_found=No_%0_found
-No_actual_changes_found.=No_actual_changes_found.
-no_base-bibtex-file_specified=no_base-bibtex-file_specified!
-no_database_generated=no_database_generated
-No_duplicates_found=No_duplicates_found
-No_entries_imported.=No_entries_imported.
-No_entries_or_multiple_entries_selected.=No_entries_or_multiple_entries_selected.
-No_entries_selected=No_entries_selected
-No_GUI._Only_process_command_line_options.=No_GUI._Only_process_command_line_options.
-No_Medline_entries_found.=No_Medline_entries_found.
-No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found
-No_references_found=No_references_found
-No_saved_session_found.=No_saved_session_found.
-No_url_defined=No_url_defined
-non-Mac_only=non-Mac_only
-not=not
-not_found=not_found
-Not_saved_(empty_session)=Not_saved_(empty_session)
-Note_that_the_entry_causing_the_problem_has_been_selected.=Note_that_the_entry_causing_the_problem_has_been_selected.
-Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.=Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.
-Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,=Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,
-Nothing_to_redo=Nothing_to_redo
-Nothing_to_undo=Nothing_to_undo
-# The next is used like in "References found: 1  Number of references to fetch?"
-Number_of_references_to_fetch?=Number_of_references_to_fetch?
-occurences=occurences
-OK=OK
-Ok=OK
-One_or_more_keys_will_be_overwritten._Continue?=One_or_more_keys_will_be_overwritten._Continue?
-Open=Open
-open=open
-Open_BibTeX_database=Open_BibTeX_database
-Open_database=Open_database
-Open_editor_when_a_new_entry_is_created=Open_editor_when_a_new_entry_is_created
-Open_file=Open_file
-Open_last_edited_databases_at_startup=Open_last_edited_databases_at_startup
-Open_PDF_or_PS=Open_PDF_or_PS
-Open_right-click_menu_with_Ctrl+left_button=Open_right-click_menu_with_Ctrl+left_button
-Open_URL_or_DOI=Open_URL_or_DOI
-Opened_database=Opened_database
-Opening=Opening
-Opening_preferences...=Opening_preferences...
-Optional_fields=Optional_fields
-Options=Options
-or=or
-out_of=out_of
-Output_or_export_file=Output_or_export_file
-Overlapping_groups=Overlapping_groups
-Override=Override
-override_the_bibtex_key_by_the_selected_text=override_the_bibtex_key_by_the_selected_text
-Overwrite_keys=Overwrite_keys
-Ovid=Ovid
-pairs_processed=pairs_processed
-Paste=Paste
-paste_entries=paste_entries
-paste_entry=paste_entry
-Paste_from_clipboard=Paste_from_clipboard
-Pasted=Pasted
-Path_to_HTML_viewer=Path_to_HTML_viewer
-Path_to_LyX_pipe=Path_to_LyX_pipe
-Path_to_PDF_viewer=Path_to_PDF_viewer
-Path_to_PS_viewer=Path_to_PS_viewer
-Path_to_WinEdt.exe=Path_to_WinEdt.exe
-Paths_to_external_programs=Paths_to_external_programs
-PDF_links=PDF_links
-Pick_titles=Pick_titles
-Plain_right_menu=Plain_right_menu
-Plain_text=Plain_text
-Plain_text_import=Plain_text_import
-Please_check_your_network_connection_to_this_machine.=Please_check_your_network_connection_to_this_machine.
-Please_define_BibTeX_key_first=Please_define_BibTeX_key_first
-Please_enter_a_name_for_the_group.=Please_enter_a_name_for_the_group.
-Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author%esmith_and_title%eelectrical</tt>=Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author% [...]
-Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).
-Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).
-Please_enter_the_string's_label=Please_enter_the_string's_label
-Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.
-Please_select_exactly_one_group_to_move.=Please_select_exactly_one_group_to_move.
-Please_wait_until_it_has_finished.=Please_wait_until_it_has_finished.
-Possible_duplicate_entries=Possible_duplicate_entries
-Possible_duplicate_of_existing_entry._Click_to_resolve.=Possible_duplicate_of_existing_entry._Click_to_resolve.
-Preamble=Preamble
-Preamble_editor,_store_changes=Preamble_editor,_store_changes
-Preferences=Preferences
-Preferences_recorded=Preferences_recorded
-Preferences_recorded.=Preferences_recorded.
-Preserve_formatting_of_non-BibTeX_fields=Preserve_formatting_of_non-BibTeX_fields
-Preview=Preview
-Previous_entry=Previous_entry
-Previous_tab=Previous_tab
-Problem_with_parsing_entry=Problem_with_parsing_entry
-PS_links=PS_links
-push_selection_to_lyx=Push_selection_to_LyX
-Push_selection_to_WinEdt=Push_selection_to_WinEdt
-Push_to_LyX=Push_to_LyX
-Push_to_WinEdt=Push_to_WinEdt
-Pushed_the_citations_for_the_following_rows_to=Pushed_the_citations_for_the_following_rows_to
-Query_author(s)=Query_author(s)
-Quit=Quit
-Quit_JabRef=Quit_JabRef
-Quit_synchronization=Quit_synchronization
-Raw_source=Raw_source
-Really_delete_the_selected=Really_delete_the_selected
-Recent_files=Recent_files
-Redo=Redo
-Refer/Endnote=Refer/Endnote
-Reference_database=Reference_database
-# The next two lines are used like in "References found: 1  Number of references to fetch?"
-References_found=References_found
-Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup
-Refresh_view=Refresh_view
-Regexp=Regexp
-Regular_Expression=Regular_Expression
-Remember_these_entry_types?=Remember_these_entry_types?
-Remote_operation=Remote_operation
-Remote_server_port=Remote_server_port
-Remove=Remove
-Remove_all?=Remove_all?
-Remove_all_subgroups=Remove_subgroups
-Remove_all_subgroups_of_"%0"?=Remove_all_subgroups_of_"%0"?
-Remove_duplicates=Remove_duplicates
-Remove_entry_from_import=Remove_entry_from_import
-Remove_entry_type=Remove_entry_type
-remove_from_group=remove_from_group
-Remove_from_group=Remove_from_group
-Remove_group=Remove_group
-Remove_group,_keep_subgroups=Remove_group,_keep_subgroups
-Remove_group_"%0"?=Remove_group_"%0"?
-Remove_group_"%0"_and_its_subgroups?=Remove_group_"%0"_and_its_subgroups?
-remove_group_(keep_subgroups)=remove_group_(keep_subgroups)
-remove_group_and_subgroups=remove_group_and_subgroups
-Remove_group_and_subgroups=Remove_group_and_subgroups
-Remove_old_entry=Remove_old_entry
-Remove_selected_strings=Remove_selected_strings
-remove_string=remove_string
-remove_string_=remove_string_
-Removed_entry_type.=Removed_entry_type.
-Removed_group=Removed_group
-Removed_group_"%0".=Removed_group_"%0".
-Removed_group_"%0"_and_its_subgroups.=Removed_group_"%0"_and_its_subgroups.
-Removed_string=Removed_string
-Renamed_string=Renamed_string
-Repeat_incremental_search=Repeat_incremental_search
-Replace=Replace
-Replace_string=Replace_string
-Replace_with=Replace_with
-Replaced=Replaced
-Required_fields=Required_fields
-Reset_all=Reset_all
-resolved=resolved
-Results=Results
-Revert_to_original_source=Revert_to_original_source
-Review_changes=Review_changes
-Right=Right
-RIS=RIS
-Save=Save
-Save_before_closing=Save_before_closing
-Save_database=Save_database
-Save_database_as_...=Save_database_as_...
-Save_selected_as_...=Save_selected_as_...
-Save_session=Save_session
-Saved_database=Saved_database
-Saved_selected_to=Saved_selected_to
-Saved_session=Saved_session
-Saving=Saving
-Scan=Scan
-SciFinder=SciFinder
-Search=Search
-Search_All_Fields=Search_All_Fields
-Search_all_fields=Search_all_fields
-Search_error=Search_error
-Search_expression=Search_expression
-Search_for=Search_for
-Search_General_Fields=Search_General_Fields
-Search_general_fields=Search_general_fields
-Search_Optional_Fields=Search_Optional_Fields
-Search_optional_fields=Search_optional_fields
-Search_Required_Fields=Search_Required_Fields
-Search_required_fields=Search_required_fields
-Search_Specified_Field(s)=Search_Specified_Field(s)
-Search_term=Search_term
-Searched_database._Number_of_hits=Searched_database._Number_of_hits
-Searching_for_%0_file=Searching_for_%0_file
-Searching_for_duplicates...=Searching_for_duplicates...
-Secondary_sort_criterion=Secondary_sort_criterion
-Select=Select
-Select_action=Select_action
-Select_all=Select_all
-Select_entries_in_group_selection=Select_entries_in_group_selection
-Select_entry_type=Select_entry_type
-Select_format=Select_format
-Select_matches=Select_matches
-Select_matching_entries=Select_matching_entries
-Select_the_tree_nodes_to_view_and_accept_or_reject_changes=Select_the_tree_nodes_to_view_and_accept_or_reject_changes
-Selector_enabled_fields=Selector_enabled_fields
-Set_general_fields=Set_general_fields
-Set_table_font=Set_table_font
-Set_up_general_fields=Set_up_general_fields
-Settings=Settings
-Setup_selectors=Setup_selectors
-Short_form=Short_form
-Shortcut=Shortcut
-Show/edit_BibTeX_source=Show/edit_BibTeX_source
-Show_'Firstname_Lastname'=Show_'Firstname_Lastname'
-Show_'Lastname,_Firstname'=Show_'Lastname,_Firstname'
-Show_abstract=Show_abstract
-Show_BibTeX_source_by_default=Show_BibTeX_source_by_default
-Show_BibTeX_source_panel=Show_BibTeX_source_panel
-Show_CiteSeer_column=Show_CiteSeer_column
-Show_confirmation_dialog_when_deleting_entries=Show_confirmation_dialog_when_deleting_entries
-Show_dynamic_groups_in_<i>italics</i>=Show_dynamic_groups_in_<i>italics</i>
-Show_entries_*not*_in_group_selection=Show_entries_*not*_in_group_selection
-Show_general_fields=Show_general_field
-Show_groups_matching_all=Show_groups_matching_all
-Show_groups_matching_any=Show_groups_matching_any
-Show_icons_for_groups=Show_icons_for_groups
-Show_names_unchanged=Show_names_unchanged
-Show_one_less_rows=Show_one_less_rows
-Show_one_more_row=Show_one_more_row
-Show_optional_fields=Show_optional_field
-Show_overlapping_groups=Show_overlapping_groups
-Show_PDF/PS_column=Show_PDF/PS_column
-Show_required_fields=Show_required_fields
-Show_URL/DOI_column=Show_URL/DOI_column
-Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered
-Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Show_warning_dialog_when_an_empty_BibTeX_key_is_entered
-Simple_HTML=Simple_HTML
-Sixpack=Sixpack
-Size_of_groups_interface_(rows)=Size_of_groups_interface_(rows)
-Skip=Skip
-Sort_alphabetically=Sort_alphabetically
-Sort_Automatically=Sort_automatically
-Sort_options=Sort_options
-sort_subgroups=sort_subgroups
-Sorted_all_subgroups_recursively=Sorted_all_subgroups_recursively
-Sorted_all_subgroups_recursively.=Sorted_all_subgroups_recursively.
-Sorted_immediate_subgroups=Sorted_immediate_subgroups
-Sorted_immediate_subgroups.=Sorted_immediate_subgroups.
-source_edit=source_edit
-Special_table_columns=Special_table_columns
-Start=Start
-Start_incremental_search=Start_incremental_search
-Start_search=Start_search
-Statically_group_entries_by_manual_assignment=Statically_group_entries_by_manual_assignment
-Status=Status
-Stop=Stop
-Store=Store
-Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.
-Store_string=Store_string
-Stored_definition_for_type=Stored_definition_for_type
-Stored_entry=Stored_entry
-Stored_entry.=Stored_entry.
-Strings=Strings
-Strings_for_database=Strings_for_database
-subdatabase_from_aux=bibtex_from_LaTex_aux
-Subdatabase_from_aux=Subdatabase_from_aux
-Suggest=Suggest
-Switch_preview_layout=Switch_preview_layout
-Synchronize_%0_links=Synchronize_%0_links
-Synchronizing_%0_links...=Synchronizing_%0_links...
-Table=Table
-Table_appearance=Table_appearance
-Tabname=Tabname
-Tertiary_sort_criterion=Tertiary_sort_criterion
-Test=Test
-Text_Input_Area=paste_text_here
-The_#_character_is_not_allowed_in_BibTeX_fields=The_#_character_is_not_allowed_in_BibTeX_fields
-The_CiteSeer_fetch_operation_returned_zero_results.=The_CiteSeer_fetch_operation_returned_zero_results.
-the_field_<b>%0</b>=the_field_<b>%0</b>
-The_file<BR>'%0'<BR>has_been_modified<BR>externally!=The_file<BR>'%0'<BR>has_been_modified<BR>externally!
-The_group_"%0"_already_contains_the_selection.=The_group_"%0"_already_contains_the_selection.
-The_group_"%0"_does_not_support_the_adding_of_entries.=The_group_"%0"_does_not_support_the_adding_of_entries.
-The_group_"%0"_does_not_support_the_removal_of_entries.=The_group_"%0"_does_not_support_the_removal_of_entries.
-The_label_of_the_string_can_not_be_a_number.=The_label_of_the_string_can_not_be_a_number.
-The_label_of_the_string_can_not_contain_spaces.=The_label_of_the_string_can_not_contain_spaces.
-The_label_of_the_string_can_not_contain_the_'#'_character.=The_label_of_the_string_can_not_contain_the_'#'_character.
-The_output_option_depends_on_a_valid_import_option.=The_output_option_depends_on_a_valid_import_option.
-The_regular_expression_<b>%0</b>_is_invalid%c=The_Regular_Expression_<b>%0</b>_is_invalid%c
-The_search_is_case_insensitive.=The_search_is_case_insensitive.
-The_search_is_case_sensitive.=The_search_is_case_sensitive.
-The_string_has_been_removed_locally=The_string_has_been_removed_locally
-The_type_name_can_not_contain_spaces.=The_type_name_can_not_contain_spaces.
-The_URL_field_appears_to_be_empty_on_entry_number_=The_URL_field_appears_to_be_empty_on_entry_number_
-There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?=There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?
-There_is_no_entry_type=There_is_no_entry_type
-This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?
-this_button_will_update=this_button_will_update
-this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table=this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table
-This_entry_is_incomplete=This_entry_is_incomplete
-This_entry_type_cannot_be_removed.=This_entry_type_cannot_be_removed.
-This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._Entries_can_be_removed_from_this_group_by_selecting_them_then_using_the_context_menu._Every_entry_assigned_to_this_group_must_have_a_unique_key._The_key_may_be_changed_at_any_time_as_long_as_it_remains_unique.=This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_ [...]
-This_group_contains_entries_in_which=This_group_contains_entries_in_which
-This_group_contains_entries_in_which_any_field_contains_the_regular_expression_<b>%0</b>=This_group_contains_entries_in_which_any_field_contains_the_Regular_Expression_<b>%0</b>
-This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>=This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>
-This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>=This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>
-This_group_contains_entries_whose_<b>%0</b>_field_contains_the_regular_expression_<b>%1</b>=This_group_contains_entries_whose_<b>%0</b>_field_contains_the_Regular_Expression_<b>%1</b>
-This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.
-This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.
-This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.
-This_operation_cannot_work_on_multiple_rows.=This_operation_cannot_work_on_multiple_rows.
-Toggle_entry_preview=Toggle_entry_preview
-Toggle_groups_interface=Toggle_groups_interface
-Toggle_search_panel=Toggle_search_panel
-Tools=Tools
-Type=Type
-Type_set_to_'other'=Type_set_to_'other'
-unable_to_access_LyX-pipe=unable_to_access_LyX-pipe
-Unable_to_create_graphical_interface=Unable_to_create_graphical_interface
-Unable_to_parse_clipboard_text_as_Bibtex_entries.=Unable_to_parse_clipboard_text_as_Bibtex_entries.
-Unable_to_parse_the_following_URL=Unable_to_parse_the_following_URL
-unable_to_write_to=unable_to_write_to
-Undo=Undo
-Union=Union
-unknown_bibtex_entries=unknown_bibtex_entries
-Unknown_bibtex_entries=Unknown_bibtex_entries
-unknown_edit=unknown_edit
-unknown_entry_type=unknown_entry_type
-Unknown_export_format=Unknown_export_format
-Unmark_all=Unmark_all
-Unmark_entries=Unmark_entries
-Unmark_entry=Unmark_entry
-Unmarked_selected=Unmarked_selected
-Unpack_EndNote_filter_set=Unpack_EndNote_filter_set
-Unpacked_file=Unpacked_file
-Unpacked_file.=Unpacked_file.
-Unsupported_version_of_class_%0:_%1=Unsupported_version_of_class_%0:_%1
-untitled=untitled
-Up=Up
-Update_to_current_column_widths=Update_to_current_column_widths
-Updated_group_selection=Updated_group_selection
-Updating_entries...=Updating_entries...
-UPPER=UPPER
-Upper_Each_First=Upper_Each_First
-Upper_first=Upper_first
-usage=usage
-Use_antialiasing_font_in_table=Use_antialiasing_font_in_table
-Use_inspection_window_also_when_a_single_entry_is_imported.=Use_inspection_window_also_when_a_single_entry_is_imported.
-Use_other_look_and_feel=Use_other_look_and_feel
-Use_regular_expressions=Use_Regular_Expressions
-#the previous entry is translated in the menu "Tools" but is not in the file Menu_fr.properties!!!
-Use_the_following_delimiter=Use_the_following_delimiter
-Use_the_following_delimiter_character(s)=Use_the_following_delimiter_character(s)
-Uses_default_application=Uses_default_application
-Value_cleared_externally=Value_cleared_externally
-Value_set_externally=Value_set_externally
-verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid=verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid
-View=View
-Visible_fields=Visible_fields
-Warn_about_unresolved_duplicates_when_closing_inspection_window=Warn_about_unresolved_duplicates_when_closing_inspection_window
-Warn_before_overwriting_existing_keys=Warn_before_overwriting_existing_keys
-Warning=Warning
-Warning_there_is_a_duplicate_key=Warning_there_is_a_duplicate_key
-Warnings=Warnings
-web_link=web_link
-When_adding/removing_keywords,_separate_them_by=When_adding/removing_keywords,_separate_them_by
-with=with
-Word=Word
-Wrong_file_format=Wrong_file_format
-You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.
-You_have_cleared_this_field._Original_value=You_have_cleared_this_field._Original_value
-You_must_enter_an_integer_value_in_the_text_field_for=You_must_enter_an_integer_value_in_the_text_field_for
-You_must_fill_in_a_name_for_the_entry_type.=You_must_fill_in_a_name_for_the_entry_type.
-You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.
-You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.=You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.
-You_must_select_a_row_to_perform_this_operation.=You_must_select_a_row_to_perform_this_operation.
-You_must_select_at_least_one_row_to_perform_this_operation.=You_must_select_at_least_one_row_to_perform_this_operation.
-You_must_set_both_BibTeX_key_and_%0_directory=You_must_set_both_BibTeX_key_and_%0_directory
-You_must_set_both_bibtex_key_and_PDF_directory=You_must_set_both_bibtex_key_and_PDF_directory
-Your_new_key_bindings_have_been_stored.=Your_new_key_bindings_have_been_stored.
-Manage_custom_imports=Manage_custom_imports
-Select_Classpath_of_New_Importer=Select_Classpath_of_New_Importer
-Select_new_ImportFormat_Subclass=Select_new_ImportFormat_Subclass
-Could_not_instantiate_%0_%1=Could_not_instantiate_%0_%1
-Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.
-Please_select_an_importer=Please_select_an_importer
-Import_name=Import_name
-Command_line_id=Command_line_id
-ImportFormat_class=ImportFormat_class
-Contained_in=Contained_in
-Show_description=Show_description
-Add_from_folder=Add_from_folder
-Custom_importers=Custom_importers
-No_custom_imports_registered_yet.=No_custom_imports_registered_yet.
-Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)
-Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)
-Background_color_for_marked_entries=Background_color_for_marked_entries
-Background_color_for_optional_fields=Background_color_for_optional_fields
-Background_color_for_required_fields=Background_color_for_required_fields
-Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.
-Color_for_marking_incomplete_entries=Color_for_marking_incomplete_entries
-Do_not_abbreviate_names=Do_not_abbreviate_names
-Do_not_wrap_the_following_fields_when_saving=Do_not_wrap_the_following_fields_when_saving
-External_files=External_files
-File_'%0'_not_found=File_'%0'_not_found
-Journal_abbreviations=Journal_abbreviations
-Journal_name=Journal_name
-Manage_journal_abbreviations=Manage_journal_abbreviations
-Natbib_style=Natbib_style
-New_file=New_file
-Personal_journal_list=Personal_journal_list
-Remove_double_braces_around_BibTeX_fields_when_loading.=Remove_double_braces_around_BibTeX_fields_when_loading.
-Store_the_following_fields_with_braces_around_capital_letters=Store_the_following_fields_with_braces_around_capital_letters
-Table_background_color=Table_background_color
-Table_grid_color=Table_grid_color
-Table_text_color=Table_text_color
-Toggle_abbreviation=Toggle_abbreviation
-Unabbreviate_journal_names_of_the_selected_entries=Unabbreviate_journal_names_of_the_selected_entries
-Use_antialiasing_font=Use_antialiasing_font
-Abbreviate_names=Abbreviate_names
-Abbreviation=Abbreviation
-ISO_abbreviation=ISO_abbreviation
-Edit_journal=Edit_journal
-Existing_file=Existing_file
-Saving_database=Saving_database
-Normal=Normal
-Default_sort_criteria=Default_sort_criteria
-Primary_sort_criterion=Primary_sort_criterion
-Database_properties=Database_properties
-Database_encoding=Database_properties
-
-No_journal_names_could_be_abbreviated.=No_journal_names_could_be_abbreviated.
-No_journal_names_could_be_unabbreviated.=No_journal_names_could_be_unabbreviated.
-Save_failed=Save_failed
-Pushed_citations_to_WinEdt=Pushed_citations_to_WinEdt
-Try_different_encoding=Try_different_encoding
-Select_encoding=Select_encoding
-The_chosen_date_format_for_new_entries_is_not_valid=The_chosen_date_format_for_new_entries_is_not_valid
-Invalid_date_format=Invalid_date_format
-Review=Review
-Journal_names=Journal_names
-Save_failed_during_backup_creation=Save_failed_during_backup_creation
-Save_failed_while_committing_changes=Save_failed_while_committing_changes
-Full_name=Full_name
-Store_journal_abbreviations=Store_journal_abbreviations
-You_must_choose_a_file_name_to_store_journal_abbreviations=You_must_choose_a_file_name_to_store_journal_abbreviations
-Journal_list_preview=Journal_list_preview
-
-Add_from_jar=Add_from_jar
-Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.
-Select_a_Zip-archive=Select_a_Zip-archive
-Select_file_from_ZIP-archive=Select_file_from_ZIP-archive
-Last_modified=Last_modified
-Size=Size
-Please_select_an_importer.=Please_select_an_importer.
-
-Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Arguments_passed_on_to_running_JabRef_instance._Shutting_down.
-Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').
-Pushed_citations_to_Emacs=Pushed_citations_to_Emacs
-Push_selection_to_Emacs=Push_selection_to_Emacs
-
-Filter=Filter
-Hide_non-matching_entries=Hide_non-matching_entries
-Replace_(regular_expression)=Replace_(regular_expression)
-Cite_command_(for_Emacs/WinEdt)=Cite_command_(for_Emacs/WinEdt)
-No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.
-
-Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?
-
-Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.
-To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>
-
-Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.
diff --git a/src/resource/JabRef_fr.properties b/src/resource/JabRef_fr.properties
index 046a0f1..d7a2405 100644
--- a/src/resource/JabRef_fr.properties
+++ b/src/resource/JabRef_fr.properties
@@ -1,6 +1,8 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
+#!
+#! created/edited by Popeye version 0.53a (popeye.sourceforge.net)
+#! encoding:ISO-8859-1
 
-!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.
+!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=!Ceci_est_simplement_une_fen\u00eatre_de_copier-coller._Commencez_par_charger_ou_coller_du_texte_dans_la_zone_de_saisie_de_texte._Ensuite,_vous_pouvez_s\u00e9lectionner_des_portions_de_texte_et_les_attribuer_\u00e0_des_champs_BibTeX.
 %0_contains_the_Regular_Expression_<b>%1</b>=%0_contient_l'expression_r\u00e9guli\u00e8re_<b>%1</b>
 %0_contains_the_term_<b>%1</b>=%0_contient_le_terme_<b>%1</b>
 %0_doesn't_contain_the_Regular_Expression_<b>%1</b>=%0_ne_contient_pas_l'expression_r\u00e9guli\u00e8re_<b>%1</b>
@@ -20,13 +22,23 @@ _on_entry_number_=_pour_le_num\u00e9ro_d'entr\u00e9e_
 A_CiteSeer_fetch_operation_is_currently_in_progress.=Une_op\u00E9ration_de_recherche_sur_CiteSeer_est_en_cours.
 A_CiteSeer_import_operation_is_currently_in_progress.=Une_op\u00E9ration_d'importation_depuis_CiteSeer_est_en_cours.
 A_string_with_that_label_already_exists=Une_cha\u00EEne_avec_ce_nom_existe_d\u00E9j\u00E0
+Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Abr\u00e9ger_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es_(abr\u00e9viations_ISO)
+Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Abr\u00e9ger_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es_(abr\u00e9viations_MEDLINE)
+Abbreviate_names=Abr\u00e9ger_les_noms
+Abbreviation=Abr\u00e9viation
 About_JabRef=A_propos_de_JabRef
 Abstract=R\u00e9sum\u00e9
 Accept=Valider
 Accept_change=Accepter_la_modification
 Action=Action
 Add=Ajouter
+Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=Ajouter_une_classe_ImportFormat_personnalis\u00e9e_(compil\u00e9e)_\u00e0_partir_d'un_chemin_de_classe._\nLe_chemin_n'a_pas_besoin_d'\u00eatre_dans_le_chemin_de_classe_de_JabRef.
+Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Ajouter_une_classe_ImportFormat_personnalis\u00e9e_(compil\u00e9e)_\u00e0_partir_d'une_archive_ZIP._\nL'archive_ZIP_n'a_pas_besoin_d'\u00eatre_dans_le_chemin_de_classe_de_JabRef.
 add_entries_to_group=ajouter_des_entr\u00e9es_au_groupe
+Add_entry_selection_to_this_group=Ajouter_les_entr\u00e9es_s\u00e9lectionn\u00e9es_\u00e0_ce_groupe
+Add_from_folder=Ajouter_\u00e0_partir_du_r\u00e9pertoire
+
+Add_from_jar=Ajouter_\u00e0_partir_de_jar
 add_group=ajouter_un_groupe
 Add_Group=Ajouter_un_groupe
 Add_new=Ajouter_nouvelle
@@ -56,9 +68,12 @@ Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Ajoute
 Append_database=Joindre_\u00E0_la_base
 append_the_selected_text_to_bibtex_key=ajouter_le_texte_s\u00e9lectionn\u00e9_\u00e0_la_clef_BibTeX
 Apply=Appliquer
+
+Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Arguments_transmis_\u00e0_l'instance_JabRef_active.
 Assign_entries_based_on:=Attribuer_les_entr\u00E9es_selon_:
+Assign_entry_selection_exclusively_to_this_group=Assigner_les_entr\u00e9es_s\u00e9lectionn\u00e9es_uniquement_\u00e0_ce_groupe
 Assign_new_file=Assigner_un_nouveau_fichier
-Assign_the_original_group's_entries_to_this_group?=Assigner_les_entr\u00e9es_originales_du_groupe_\u00e0_ce_groupe ?
+Assign_the_original_group's_entries_to_this_group?=Assigner_les_entr\u00e9es_originales_du_groupe_\u00e0_ce_groupe_?
 Assigned_%0_entries_to_group_"%1".=%0_entr\u00e9es_ajout\u00e9es_au_groupe_"%1".
 Assigned_1_entry_to_group_"%0".=Une_entr\u00e9e_ajout\u00e9e_au_groupe_"%0".
 Attach_%0_file=Attacher_le_fichier_%0
@@ -85,6 +100,9 @@ AUX_file_import=Importation_de_fichier_AUX
 Available_export_formats=Formats_d'exportation_disponibles
 Available_fields=Champs_BibTeX_disponibles
 Available_import_formats=Formats_d'importation_disponibles
+Background_color_for_marked_entries=Couleur_d'arri\u00e8re-plan_pour_les_entr\u00e9es_marqu\u00e9es
+Background_color_for_optional_fields=Couleur_d'arri\u00e8re-plan_pour_les_champs_optionnels
+Background_color_for_required_fields=Couleur_d'arri\u00e8re-plan_pour_les_champs_requis
 Backup_old_file_when_saving=Cr\u00E9er_une_copie_de_sauvegarde_lors_de_l'enregistrement
 Bibkey_to_filename_conversion=Conversion_de_la_clef_BibTeX_en_nom_de_fichier
 Biblioscape_Tag_file=Biblioscape_Tag
@@ -129,7 +147,10 @@ Changed_type_to=Type_modifi\u00E9_en
 Characters_to_ignore=Caract\u00E8res_\u00E0_ignorer_
 Check_existing_%0_links=V\u00e9rifier_les_liens_%0_existants
 Check_links=V\u00e9rifier_les_liens
+Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Choisir_l'URL_de_t\u00e9l\u00e9chargement._La_valeur_par_d\u00e9faut_pointe_vers_une_liste_fournie_par_les_d\u00e9veloppeurs_de_JabRef
 Citation_import_from_CiteSeer_failed.=L'importation_des_citations_depuis_CiteSeer_a_\u00E9chou\u00E9e.
+
+Cite_command_(for_Emacs/WinEdt)=Commande_de_citation_(pour_Emacs/WinEdt)
 CiteSeer_Error=Erreur_CiteSeer
 CiteSeer_Fetch_Error=Erreur_de_recherche_sur_CiteSeer
 CiteSeer_import_entries=Entr\u00E9es_d'importation_depuis_CiteSeer
@@ -157,21 +178,25 @@ Close_window=Fermer_la_fen\u00EAtre
 Closed_database=Base_ferm\u00E9e
 Collapse_subtree=Masquer_le_sous-arbre
 Color_codes_for_required_and_optional_fields=Codes_de_couleurs_pour_les_champs_requis_et_optionnels
+Color_for_marking_incomplete_entries=Couleur_pour_marque_les_entr\u00e9es_incompl\u00e8tes
 Column_width=Largeur_de_colonne
+Command_line_id=Identifiant_de_la_ligne_de_commande
 Complete_record=Compl\u00E9ter_l'enregistrement
 Completed_citation_import_from_CiteSeer.=Importation_des_citations_depuis_CiteSeer_termin\u00E9e.
 Completed_Import_Fields_from_CiteSeer.=Importation_des_champs_depuis_CiteSeer_termin\u00E9e.
 Completed_import_from_CiteSeer.=Importation_depuis_CiteSeer_termin\u00e9e.
+Contained_in=Contenu_dans
 Content=Contenu
 Copied=Copi\u00E9
 Copied_cell_contents=Contenu_des_cellules_copi\u00e9
 Copied_key=Clef_copi\u00E9e
 Copied_keys=Clefs_copi\u00E9es
 Copy=Copier
+Copy_\cite{BibTeX_key}=Copier_\cite{clef_BibTeX}
 Copy_BibTeX_key=Copier_la_clef_BibTeX
-Copy_\\cite{BibTeX_key}=Copier_\\cite{clef_BibTeX}
 Copy_to_clipboard=Copier_le_texte_vers_le_presse-papiers
 Could_not_call_executable=L'ex\u00E9cutable_n'a_pas_pu_\u00EAtre_lanc\u00E9
+Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=La_connexion_\u00e0_un_processus_gnuserv_actif_a_\u00e9chou\u00e9._Assurez-vous_qu'Emacs_ou_XEmacs_soit_actif,<BR>et_que_le_serveur_a_\u00e9t\u00e9_d\u00e9marr\u00e9_(avec_la_commande_'gnuserv-start').
 Could_not_connect_to_host=La_connexion_\u00e0_l'ordinateur_h\u00f4te_a_\u00e9chou\u00e9
 Could_not_connect_to_host_=La_connexion_\u00e0_l'ordinateur_h\u00f4te_a_\u00e9chou\u00e9_
 Could_not_export_entry_types=L'exportation_des_types_d'entr\u00e9es_a_\u00e9chou\u00e9
@@ -181,7 +206,13 @@ Could_not_find_a_suitable_import_format.=Un_format_d'importation_convenable_n'a_
 Could_not_find_layout_file=Fichier_de_mise_en_page_non_trouv\u00E9
 Could_not_import_entry_types=L'importation_des_types_d'entr\u00e9es_a_\u00e9chou\u00e9_
 Could_not_import_preferences=L'importation_des_pr\u00e9f\u00e9rences_a_\u00e9chou\u00e9_
+Could_not_instantiate_%0_%1=N'a_pas_pu_initialiser_%0_%1
+
+Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=%0_%1_a_\u00e9chou\u00e9._Avez-vous_choisi_le_chemin_de_paquetage_correct_?
+Could_not_parse_number_of_hits=Le_nombre_de_r\u00e9sultats_n'a_pas_pu_\u00eatre_trait\u00e9
 Could_not_resolve_import_format=Le_format_d'importation_n'a_pas_\u00e9t\u00e9_d\u00e9cod\u00e9_
+
+Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Le_programme_'gnuclient'_n'a_pas_pu_\u00eatre_lanc\u00e9._Assurez-vous_que_les_programmes_gnuserv/gnuclient_sont_install\u00e9s.
 Could_not_save_file=Le_fichier_n'a_pas_pu_\u00EAtre_sauvegard\u00E9_
 Couldn't_find_an_entry_associated_with_this_URL=Aucune_entr\u00E9e_associ\u00E9e_\u00E0_cette_URL_n'a_\u00E9t\u00E9_trouv\u00E9e_
 Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Le_champ_'citeseerurl'_n'a_pas_pu_\u00EAtre_trait\u00E9_dans_les_entr\u00E9es_suivantes_
@@ -195,13 +226,16 @@ Current_value=Valeur_actuelle_
 Custom_entry_types=Types_d'entr\u00E9es_personnalis\u00E9es
 Custom_entry_types_found_in_file=Types_d'entr\u00E9es_personnalis\u00E9es_trouv\u00E9es_dans_le_fichier
 Custom_export=Exportation_personnalis\u00E9e
+Custom_importers=Filtres_d'importation_personnalis\u00e9s
 Customize_entry_types=Personnaliser_les_types_d'entr\u00E9es
 Customize_key_bindings=Personnaliser_les_affectations_de_touches
 Cut=Couper
 cut_entries=Couper_les_entr\u00E9es
 cut_entry=supprimer_l'entr\u00E9e
 Cut_pr=Couper
+Database_encoding=Encodage_de_la_base_de_donn\u00e9es
 Database_has_changed._Do_you_want_to_save_before_closing?=Base_modifi\u00E9e._Voulez-vous_la_sauvegarder_avant_de_fermer_?
+Database_properties=Propri\u00E9t\u00E9s_de_la_base_de_donn\u00e9es
 Date_format=Format_de_date
 Default=D\u00E9faut
 Default_encoding=Encodage_par_d\u00E9faut_
@@ -209,6 +243,7 @@ Default_grouping_field=Champ_par_d\u00E9faut_pour_les_groupes_
 Default_look_and_feel=Apparence_par_d\u00E9faut
 Default_owner=Propri\u00E9taire_par_d\u00E9faut
 Default_pattern=Mod\u00E8le_par_d\u00E9faut
+Default_sort_criteria=Crit\u00e8re_de_tri_par_d\u00e9faut
 defined.=d\u00E9fini(e).
 Delete=Supprimer
 Delete_custom=Supprimer_les_d\u00E9finitions_personnalis\u00E9es
@@ -230,14 +265,17 @@ Disable_entry_editor_when_multiple_entries_are_selected=D\u00E9sactiver_l'\u00E9
 Disable_this_confirmation_dialog=D\u00E9sactiver_cette_demande_de_confirmation
 Disable_this_warning_dialog=D\u00E9sactiver_ce_message_d'avertissement
 Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Afficher_toutes_les_entr\u00E9es_appartenant_\u00E0_au_moins_un_des_groupes_s\u00E9lectionn\u00E9s.
+Display_all_error_messages=Afficher_tous_les_messages_d'erreur
 Display_help_on_command_line_options=Afficher_l'aide_sur_les_options_de_la_ligne_de_commande
 Display_imported_entries_in_an_inspection_window_before_they_are_added.=Afficher_les_entr\u00e9es_import\u00e9es_dans_une_fen\u00eatre_d'inspection_avant_de_les_ajouter.
 Display_only_entries_belonging_to_all_selected_groups.=Afficher_uniquement_les_entr\u00E9es_appartenant_\u00E0_tous_les_groupes_s\u00E9lectionn\u00E9s.
 Displaying_no_groups=Pas_de_groupes_\u00E0_afficher
+Do_not_abbreviate_names=Ne_pas_abr\u00e9ger_les_noms
 Do_not_autoset=Ne_pas_d\u00e9finir_automatiquement.
 Do_not_import_entry=Ne_pas_importer_l'entr\u00e9e
 Do_not_open_any_files_at_startup=N'ouvrir_aucun_fichier_au_d\u00E9marrage
 Do_not_overwrite_existing_keys=Ne_pas_\u00e9craser_de_clefs_existantes
+Do_not_wrap_the_following_fields_when_saving=Ne_pas_renvoyer_\u00e0_la_ligne_les_champs_suivants_lors_de_la_sauvegarde
 Docbook=Docbook
 Done=Termin\u00E9
 Down=Bas
@@ -252,7 +290,7 @@ duplicate_BibTeX_key=dupliquer_la_clef_BibTeX
 Duplicate_BibTeX_key.=Dupliquer_la_clef_BibTeX.
 duplicate_BibTeX_key.=dupliquer_la_clef_BibTeX.
 Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.=Clef_BibTeX_dupliqu\u00e9e._Les_groupes_pourraient_ne_pas_fonctionner_pour_cette_entr\u00e9e.
-Duplicate_Key_Warning=Avertissement :_Clef_dupliqu\u00e9e
+Duplicate_Key_Warning=Avertissement_:_Clef_dupliqu\u00e9e
 Duplicate_pairs_found=Doublons_trouv\u00E9s
 duplicate_removal=Suppression_des_doublons
 Duplicate_string_name=Dupliquer_le_nom_de_cha\u00EEne
@@ -266,6 +304,7 @@ Edit=Editer
 Edit_custom_export=Editer_l'exportation_personnalis\u00E9e
 Edit_entry=Editer_l'entr\u00E9e
 Edit_group=Editer_le_groupe
+Edit_journal=Editer_le_journal
 Edit_preamble=Editer_le_pr\u00E9ambule
 Edit_strings=Editer_les_cha\u00EEnes
 empty_BibTeX_key=Clef_BibTeX_vide
@@ -273,7 +312,6 @@ Empty_BibTeX_key.=Clef_BibTeX_vide.
 Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Vider_la_clef_BibTeX._La_gestion_des_groupes_pourrait_ne_plus_fonctionner_pour_cette_entr\u00e9e.
 Empty_database=Base_vide
 empty_database=base_vide
-Enable source_editing=Autoriser_l'\u00e9dition_du_source
 Enable_source_editing=Autoriser_l'\u00e9dition_du_source
 Endnote=Endnote
 Enter_URL=Entrer_l'URL
@@ -301,11 +339,13 @@ Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_charact
 Entry_types=Types_d'entr\u00E9es
 EOF_in_mid-string=Fin_de_fichier_au_milieu_d'une_cha\u00EEne
 Error=Erreur
-##Error:_check_your_External_viewer_settings_in_Preferences=Erreur :_v\u00e9rifier_les_param\u00e9trage_de_votre_visionneur_externe_dans_les_Options
+##Error:_check_your_External_viewer_settings_in_Preferences=Erreur_:_v\u00e9rifier_les_param\u00e9trage_de_votre_visionneur_externe_dans_les_Options
 Error_in_field=Erreur_dans_le_champ
 Error_in_line=Erreur_\u00E0_la_ligne
+Error_messages=Messages_d'erreur
 Error_opening_file=Erreur_lors_de_l'ouverture_du_fichier
 Error_setting_field=Erreur_de_configuration_du_champ
+Existing_file=Fermeture_du_fichier_en_cours
 exists._Overwrite?=existe._Ecraser_le_fichier ?
 exists._Overwrite_file?=existe._Ecraser_le_fichier ?
 Exit=Quitter
@@ -322,9 +362,10 @@ Export_to_clipboard=Exporter_vers_le_presse-papiers
 Exported_database_to_file=Base_export\u00E9e_dans_le_fichier
 Exporting=Exportation_en_cours
 External_changes=Modifications_externes
+External_files=Fichiers_externes
 External_programs=Programmes_externes
 External_viewer_called=Editeur_externe_lanc\u00E9
-Failed_to_read_groups_data_(unsupported_version:_%0)=La_lecture_des_donn\u00e9es_des_groupes_a_\u00e9chou\u00e9_(version_non_support\u00e9e :_%0)
+Failed_to_read_groups_data_(unsupported_version:_%0)=La_lecture_des_donn\u00e9es_des_groupes_a_\u00e9chou\u00e9_(version_non_support\u00e9e_:_%0)
 Fetch=Rechercher
 Fetch_Articles_Citing_your_Database=Rechercher_les_articles_citant_votre_base
 Fetch_Citations_from_CiteSeer=Rechercher_des_citations_depuis_CiteSeer
@@ -352,15 +393,18 @@ Field_to_search=Champ_pour_la_recherche
 Fields=Champs
 File=Fichier
 file=fichier
+File_'%0'_not_found=Fichier_'%0'_non_trouv\u00e9
 File_changed=Fichier_chang\u00e9
 File_extension=Extension_de_fichier
-File_has_been_updated_externally._Are_you_sure_you_want_to_save?=Le_fichier_a_\u00E9t\u00E9_mis_\u00E0_jour_externalement._Etes-vous_certain_de_vouloir_l'enregistrer ?
+File_has_been_updated_externally._Are_you_sure_you_want_to_save?=Le_fichier_a_\u00E9t\u00E9_mis_\u00E0_jour_externalement._Etes-vous_certain_de_vouloir_l'enregistrer_?
 File_not_found=Fichier_non_trouv\u00E9
 File_updated_externally=Fichier_mis_\u00E0_jour_externalement
 filename=nom_de_fichier
 Files_opened=Fichiers_ouverts
+
+Filter=Filtre
 Find_duplicates=Chercher_les_doublons
-Finished_autosetting_%0_field._Entries_changed:_%1.=Auto-param\u00e9trage_du_champ_%0_termin\u00e9._Entr\u00e9es_chang\u00e9es :_%1.
+Finished_autosetting_%0_field._Entries_changed:_%1.=Auto-param\u00e9trage_du_champ_%0_termin\u00e9._Entr\u00e9es_chang\u00e9es_:_%1.
 Finished_synchronizing_%0_links._Entries_changed%c_%1.=Synchronisation_des_liens_%0_termin\u00e9e._Entr\u00e9es_modifi\u00e9es%c_%1.
 First_select_the_entries_you_want_keys_to_be_generated_for.=Commencez_par_s\u00E9lectionner_les_entr\u00E9es_pour_lesquelles_vous_voulez_que_des_clefs_soient_g\u00E9n\u00E9r\u00E9es.
 Fit_table_horizontally_on_screen=Ajuster_la_table_horizontalement_\u00E0_l'\u00E9cran
@@ -376,11 +420,13 @@ Format_used=Format_utilis\u00E9
 Formatter_not_found=Formateur_non_trouv\u00E9
 found=trouv\u00E9
 found_in_aux_file=trouv\u00E9es_dans_le_fichier_aux
+Full_name=Nom_complet
 General=G\u00e9n\u00e9ral
 General_fields=Champs_g\u00E9n\u00E9raux
 Generate=Cr\u00E9er
 Generate_BibTeX_key=Cr\u00E9er_la_clef_BibTeX
 Generate_keys=G\u00e9n\u00e9rer_les_clefs
+Generate_keys_before_saving_(for_entries_without_a_key)=G\u00e9n\u00e9rer_les_clefs_avant_de_sauver_(pour_les_entr\u00e9es_sans_clef)
 Generate_now=G\u00e9n\u00e9rer_maintenant
 Generated_BibTeX_key_for=Cr\u00E9ation_termin\u00E9e_de_la_clef_BibTeX_pour
 Generating_BibTeX_key_for=Cr\u00E9ation_en_cours_d'une_clef_BibTeX_pour
@@ -393,11 +439,15 @@ Group_name=Nom_du_groupe_
 Group_properties=Propri\u00E9t\u00E9s_du_groupe
 Groups=Groupes
 Harvard_RTF=Harvard_RTF
+Have_you_chosen_the_correct_package_path?=Avez-vous_choisi_le_bon_chemin_pour_le_paquetage_?
 Help=Aide
 Help_contents=Contenu_de_l'aide
 Help_on_groups=Aide_sur_les_groupes
 Help_on_key_patterns=Aide_sur_le_param\u00E9trage_des_clefs
 Hide_non-hits=Masquer_les_entr\u00E9es_non_correspondantes
+Hide_non-matching_entries=Masquer_les_entr\u00E9es_non_correspondantes
+
+Hierarchical_context=Type_de_hi\u00e9rarchie
 Highlight=Surlign\u00E9e
 Highlight_groups_matching_all_selected_entries=Surligner_les_groupes_correspondant_\u00e0_toutes_les_entr\u00e9es_s\u00e9lectionn\u00e9es
 Highlight_groups_matching_any_selected_entry=Surligner_les_groupes_correspondant_\u00e0_au_moins_une_des_entr\u00e9es_s\u00e9lectionn\u00e9es
@@ -425,6 +475,7 @@ Import_fields_from_CiteSeer_Database=Importation_des_champs_\u00E0_partir_de_la_
 Import_Fields_from_CiteSeer_Database=Importer_les_champs_depuis_la_base_CiteSeer
 Import_file=Fichier_\u00E0_importer
 Import_group_definitions=Importer_les_d\u00E9finitions_de_groupe
+Import_name=nom_Import
 Import_plain_text=Importer_des_champs_\u00E0_partir_de_texte_brut
 Import_preferences=Importer_les_pr\u00E9f\u00E9rences
 Import_preferences_from_file=Importer_les_pr\u00E9f\u00E9rences_depuis_un_fichier
@@ -436,10 +487,12 @@ Imported_entries=Entr\u00E9es_import\u00E9es
 Imported_entry_types=Types_d'entr\u00e9es_import\u00e9s
 Imported_file=Fichier_import\u00E9
 Imported_from_database=Import\u00e9_\u00e0_partir_de_la_base_de_donn\u00e9es
+ImportFormat_class=Classe_ImportFormat
 Importing=Importation_en_cours
 Importing_file=Importation_de_fichier_en_cours
 Importing_in_unknown_format=Importation_dans_un_format_inconnu
 In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=Dans_JabRef,_utiliser_une_paire_de_#_pour_d\u00E9limiter_une_cha\u00EEne.
+Include_abstracts=Inclure_les_r\u00e9sum\u00e9s
 Include_subgroups=Inclure_les_sous-groupes
 Include_subgroups\:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Inclut_les_sous-groupes_\:_Quand_s\u00e9lectionn\u00e9,_afficher_les_entr\u00e9es_contenues_dans_ce_groupe_ou_ses_sous-groupes
 Incremental=Incr\u00E9mentale
@@ -452,7 +505,7 @@ Input=Attribution_des_champs
 Input_error=Entr\u00E9e_erron\u00E9e
 Insert=Ins\u00E9rer
 Insert_rows=Ins\u00E9rer_des_lignes
-Insert_selected_citations_into_LyX/Kile=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_LyX/Kile
+Insert_selected_citations_into_LyX/Kile=Envoyer_les_citations_s\u00e9lectionn\u00e9es_dans_LyX/Kile
 Insert_selected_citations_into_WinEdt=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_&WinEdt
 insert_string_=ins\u00e9rer_la_cha\u00eene
 Insert_URL=Ins\u00E9rer_l'URL
@@ -462,13 +515,19 @@ Integrity_check=V\u00e9rification_d'int\u00e9grit\u00e9
 Intersection=Intersection
 Intersection_with_supergroups=_Intersection_avec_super-groupes
 Invalid_BibTeX_key=Clef_BibTeX_invalide
+Invalid_date_format=Format_de_date_invalide
 Invalid_URL=URL_invalide
 Inverted=Compl\u00E9mentaire
 is_a_standard_type.=est_un_type_standard.
 ISI=ISI
+ISO_abbreviation=Abr\u00e9viation_ISO
 Item_list_for_field=Liste_des_choix_pour_le_champ
 JabRef_help=Aide_de_JabRef
 JabRef_preferences=Pr\u00E9f\u00E9rences_pour_JabRef
+Journal_abbreviations=Abr\u00e9viations_de_journaux
+Journal_list_preview=Pr\u00e9visualisation_de_la_liste_des_journaux
+Journal_name=Nom_du_journal
+Journal_names=Noms_de_journaux
 JStor_file=JStor
 Keep=Garder
 Keep_both=Garder_les_deux
@@ -482,6 +541,7 @@ keys_in_database=clefs_dans_la_base_de_donn\u00e9es
 Keyword=Mot-clef
 Label=Nom_du_champ
 Language=Langue_
+Last_modified=Dernier_modifi\u00e9
 Latex_AUX_file=Fichier_LaTeX_AUX
 LaTeX_AUX_file=Fichier_LaTeX_AUX
 Left=Gauche
@@ -499,6 +559,8 @@ Main_PS_directory=R\u00e9pertoire_PS_principal_
 Manage=G\u00E9rer
 Manage_content_selectors=G\u00E9rer_les_s\u00E9lecteurs_de_contenu
 Manage_custom_exports=G\u00E9rer_les_exportations_personnalis\u00E9es
+Manage_custom_imports=G\u00e9rer_les_importations_personnalis\u00e9es
+Manage_journal_abbreviations=G\u00e9rer_les_abr\u00e9viations_de_journaux
 Mark_entries=Etiqueter_des_entr\u00E9es
 Mark_entry=Etiqueter_l'entr\u00E9e
 Mark_new_entries_with_addition_date=Enregistrer_la_date_d'ajout_pour_les_nouvelles_entr\u00e9es
@@ -532,9 +594,10 @@ Move_up=D\u00E9placer_vers_le_haut
 Moved_Group=Groupe_d\u00e9plac\u00e9
 Moved_group_"%0".=Groupe_"%0"_d\u00e9plac\u00e9.
 Name=Nom
+Natbib_style=Style_Natbib
 nested_aux_files=fichiers_AUX_imbriqu\u00E9s
 New=Nouveau
-new=Nouveau
+new=nouveau
 New_article=Nouveau_'article'
 New_BibTeX_database=Nouvelle_base_BibTeX
 New_BibTeX_entry=Nouvelle_entr\u00E9e_BibTeX
@@ -546,6 +609,7 @@ New_database_created.=Nouvelle_base_cr\u00E9\u00E9e.
 New_entry=Nouvelle_entr\u00E9e
 New_entry...=Nouvelle_entr\u00E9e...
 New_entry_from_plain_text=Nouvelle_entr\u00E9e_depuis_texte_brut
+New_file=Nouveau_fichier
 New_group=Nouveau_groupe
 New_inbook=Nouveau_'inbook'
 New_mastersthesis=Nouveau_'mastersthesis'
@@ -559,19 +623,26 @@ Next_entry=Entr\u00E9e_suivante
 Next_tab=Onglet_suivant
 No_%0_found=Pas_de_%0_trouv\u00e9
 No_actual_changes_found.=Pas_de_changements_trouv\u00e9s.
-no_base-bibtex-file_specified=fichier_BibTeX_non_sp\u00e9cifi\u00e9 !
+no_base-bibtex-file_specified=fichier_BibTeX_non_sp\u00e9cifi\u00e9_!
+No_custom_imports_registered_yet.=Pas_encore_d'importation_personnalis\u00e9e_enregistr\u00e9e
 no_database_generated=pas_de_base_cr\u00E9\u00E9e
 No_duplicates_found=Pas_de_doublons_trouv\u00e9s
+No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Pas_d'entr\u00e9es_trouv\u00e9es._Assurez-vous,_SVP,_que_vous_utilisez_le_filtre_d'importation_appropri\u00e9.
 No_entries_imported.=Pas_d'entr\u00e9es_import\u00e9es.
 No_entries_or_multiple_entries_selected.=Pas_d'entr\u00E9e_s\u00E9lectionn\u00E9e_ou_s\u00E9lection_de_plusieurs_entr\u00E9es.
 No_entries_selected=Pas_d'entr\u00e9es_s\u00e9lectionn\u00e9es
+No_exceptions_have_ocurred.=Aucune_exception_n'est_survenue.
+No_file_extension._Could_not_find_viewer_for_file.=Pas_d'extension_de_fichier._L'afficheur_de_ce_fichier_n'a_pas_pu_\u00eatre_trouv\u00e9.
 No_GUI._Only_process_command_line_options.=Pas_d'interface_utilisateur._Traitement_limit\u00E9_aux_options_de_la_ligne_de_commande.
+No_journal_names_could_be_abbreviated.=Aucun_nom_de_journal_n'a_pu_\u00eatre_abr\u00e9g\u00e9.
+No_journal_names_could_be_unabbreviated.=Aucun_nom_de_journal_n'a_pu_\u00eatre_d\u00e9velopp\u00e9.
 No_Medline_entries_found.=Pas_d'entr\u00e9es_Medline_trouv\u00e9es
 No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=PDF_ou_PS_non_d\u00E9fini_et_fichier_correspondant_\u00E0_la_clef_BibTeX_non_trouv\u00E9.
 No_references_found=Aucune_r\u00E9f\u00E9rence_trouv\u00E9e
 No_saved_session_found.=Pas_trouv\u00E9_de_session_sauvegard\u00E9e.
 No_url_defined=Pas_d'URL_d\u00E9finie
 non-Mac_only=Uniquement_pour_les_non-Mac
+Normal=Normale
 not=non
 not_found=non_trouv\u00E9
 Not_saved_(empty_session)=Pas_de_sauvegarde_(session_vide)
@@ -605,6 +676,7 @@ out_of=sur
 Output_or_export_file=Fichier_de_sortie_ou_d'exportation
 Overlapping_groups=Groupes_se_chevauchant
 Override=Remplacer
+Override_default_file_directories=Remplacer_les_r\u00e9pertoires_de_fichier_par_d\u00e9faut
 override_the_bibtex_key_by_the_selected_text=remplacer_la_clef_BibTeX_par_le_texte_s\u00e9lectionn\u00e9
 Overwrite_keys=Ecraser_les_clefs
 Ovid=Ovid
@@ -620,7 +692,9 @@ Path_to_PDF_viewer=Chemin_du_visionneur_PDF_
 Path_to_PS_viewer=Chemin_du_visionneur_PS_
 Path_to_WinEdt.exe=Chemin_de_WinEdt.exe_
 Paths_to_external_programs=Chemins_vers_les_programmes_externes.
+PDF_directory=R\u00e9pertoire_PDF
 PDF_links=Liens_PDF
+Personal_journal_list=Liste_personnelle_de_journaux
 Pick_titles=S\u00e9lectionnez_des_titres[?]
 Plain_right_menu=Menu_droit_brut_[?]
 Plain_text=Texte_brut
@@ -633,6 +707,8 @@ Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=SVP,_
 Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=SVP,_entrez_le_champ_de_recherche_(par_ex._<b>keywords</b>)_et_le_mot-clef_\u00e0_rechercher_(par_ex._<b>\u00e9lectrique</b>).
 Please_enter_the_string's_label=SVP,_entrez_le_nom_de_la_cha\u00EEne
 Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=SVP,_reportez-vous_au_manuel_d'aide_de_JabRef_\u00E0_propos_de_l'utilisation_des_outils_CiteSeer.
+Please_select_an_importer=S\u00e9lectionner_un_filtre_d'importation,_SVP
+Please_select_an_importer.=S\u00e9lectionner_un_filtre_d'importation,_SVP.
 Please_select_exactly_one_group_to_move.=SVP,_s\u00e9lectionnez_uniquement_un_groupe_\u00e0_d\u00e9placer.
 Please_wait_until_it_has_finished.=SVP,_attendez_la_fin_de_l'op\u00E9ration.
 Possible_duplicate_entries=Entr\u00E9es_potentiellement_dupliqu\u00E9es
@@ -646,12 +722,20 @@ Preserve_formatting_of_non-BibTeX_fields=Pr\u00E9server_le_format_des_champs_non
 Preview=Aper\u00E7u
 Previous_entry=Entr\u00E9e_pr\u00E9c\u00E9dente
 Previous_tab=Onglet_pr\u00E9c\u00E9dent
+Primary_sort_criterion=Crit\u00e8re_de_tri_principal
 Problem_with_parsing_entry=Probl\u00E8me_de_traitement_d'une_entr\u00E9e
+PS_directory=R\u00e9pertoire_PS
 PS_links=Liens_PS
+
+Push_selection_to_Emacs=Envoyer_la_s\u00E9lection_dans_Emacs
+push_selection_to_lyx=Envoyer_la_s\u00e9lection_dans_LyX
 Push_selection_to_LyX/Kile=Envoyer_la_s\u00E9lection_dans_LyX/Kile
 Push_selection_to_WinEdt=Envoyer_la_s\u00E9lection_dans_WinEdt
+Push_to_LatexEditor=Envoyer_vers_l'\u00e9diteur_LaTeX
 Push_to_LyX=Envoyer_vers_LyX
 Push_to_WinEdt=Envoyer_vers_WinEdt
+Pushed_citations_to_Emacs=Envoyer_les_citations_dans_Emacs
+Pushed_citations_to_WinEdt=Citations_envoy\u00e9es_vers_WinEdt
 Pushed_the_citations_for_the_following_rows_to=Envoyer_les_citations_pour_les_lignes_suivantes_vers
 Query_author(s)=Requ\u00EAte_sur_les_auteurs
 Quit=Quitter
@@ -659,12 +743,15 @@ Quit_JabRef=Quitter_JabRef
 Quit_synchronization=Quitter_la_synchronisation
 Raw_source=Texte_brut
 Really_delete_the_selected=Voulez-vous_vraiment_supprimer_cette
+
+
+Rearrange_tabs_alphabetically_by_title=Classer_les_onglets_par_ordre_alphab\u00e9tique
 Recent_files=Fichiers_r\u00E9cents
 Redo=R\u00E9p\u00E9ter
 Refer/Endnote=Refer/Endnote
 Reference_database=Base_de_r\u00E9f\u00E9rence
 References_found=R\u00E9f\u00E9rences_trouv\u00E9es
-Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Raffine_le_super-groupe \:_Quand_s\u00e9lectionn\u00e9,_afficher_les_entr\u00e9es_contenues_\u00e0_la_fois_dans_ce_groupe_et_son_super-groupe
+Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Raffine_le_super-groupe_\:_Quand_s\u00e9lectionn\u00e9,_afficher_les_entr\u00e9es_contenues_\u00e0_la_fois_dans_ce_groupe_et_son_super-groupe
 Refresh_view=Rafra\u00EEchir_la_vue
 Regexp=Exp._R\u00E9g.
 Regular_Expression=Expression_r\u00E9guli\u00E8re
@@ -675,8 +762,10 @@ Remove=Supprimer
 Remove_all?=Tout_supprimer_?
 Remove_all_subgroups=Supprimer_les_sous-groupes
 Remove_all_subgroups_of_"%0"?=Supprimer_tous_les_sous-groupes_de_"%0"_?
+Remove_double_braces_around_BibTeX_fields_when_loading.=Supprimer_les_doubles_accolades_autour_des_champs_BibTeX_\u00e0_l'ouverture
 Remove_duplicates=Supprimer_les_doublons
 Remove_entry_from_import=Supprimer_l'entr\u00e9e_de_l'importation
+Remove_entry_selection_from_this_group=Supprimer_les_entr\u00e9es_s\u00e9lectionn\u00e9es_de_ce_groupe
 Remove_entry_type=Supprimer_le_type_d'entr\u00E9e
 remove_from_group=supprimer_du_groupe
 Remove_from_group=Supprimer_du_groupe
@@ -699,6 +788,7 @@ Removed_string=Cha\u00EEne_supprim\u00E9e
 Renamed_string=Cha\u00eene_renomm\u00e9e
 Repeat_incremental_search=R\u00E9p\u00E9ter_la_recherche_incr\u00E9mentale
 Replace=Remplacer
+Replace_(regular_expression)=Remplacer_(expression_r\u00e9guli\u00e8re)
 Replace_string=Remplacer_la_cha\u00EEne
 Replace_with=Remplacer_par
 Replaced=Remplac\u00E9
@@ -707,6 +797,7 @@ Reset_all=R\u00E9tablir_les_options_pr\u00E9c\u00E9dentes
 resolved=r\u00E9solu
 Results=R\u00E9sultats
 Revert_to_original_source=R\u00E9tablir_le_contenu_initial
+Review=V\u00e9rification
 Review_changes=Revoir_les_changements
 Right=Droite
 RIS=RIS
@@ -714,12 +805,19 @@ Save=Sauver
 Save_before_closing=Sauvegarde_avant_fermeture
 Save_database=Sauvegarder_la_base
 Save_database_as_...=Sauvegarder_la_base_sous_...
+Save_entries_in_their_original_order=Sauvegarder_les_entr\u00e9es_dans_leur_ordre_original
+Save_failed=Echec_de_la_sauvegarde
+Save_failed_during_backup_creation=La_sauvegarde_a_\u00e9chou\u00e9e_durant_la_cr\u00e9ation_de_la_copie_de_secours
+Save_failed_while_committing_changes=La_sauvegarde_a_\u00e9chou\u00e9e_lors_de_la_soumission_des_changements
+Save_in_default_table_sort_order=Sauver_dans_l'ordre_par_d\u00e9faut_de_la_table
+Save_ordered_by_author/editor/year=Sauver_selon_author/editor/year
 Save_selected_as_...=Sauvegarder_la_s\u00E9lection_sous_...
 Save_session=Sauvegarder_la_session
 Saved_database=Base_sauvegard\u00E9e
 Saved_selected_to=Sauvegarder_la_s\u00E9lection_de
 Saved_session=Session_sauvegard\u00E9e
 Saving=Enregistrement_en_cours
+Saving_database=Sauvegarde_de_la_base_en_cours
 Scan=D\u00E9marrer
 SciFinder=SciFinder
 Search=Recherche
@@ -730,24 +828,31 @@ Search_expression=Expression_\u00E0_rechercher_
 Search_for=Rechercher
 Search_General_Fields=Recherche_dans_les_champs_g\u00E9n\u00E9raux
 Search_general_fields=Recherche_dans_les_champs_g\u00E9n\u00E9raux
+Search_IEEEXplore=Recherche_IEEEXplore
 Search_Optional_Fields=Recherche_dans_les_champs_optionnels
 Search_optional_fields=Recherche_dans_les_champs_optionnels
 Search_Required_Fields=Recherche_dans_les_champs_requis
 Search_required_fields=Recherche_dans_les_champs_requis
 Search_Specified_Field(s)=Recherche_dans_les_champs_sp\u00E9cifi\u00E9s
 Search_term=Rechercher_le_terme
+Searched_database._Global_number_of_hits=Recherche_effectu\u00e9e._Nombre_total_de_r\u00e9sultats
 Searched_database._Number_of_hits=Recherche_effectu\u00E9e._Nombre_de_r\u00E9sultats_trouv\u00E9s
 Searching_for_%0_file=Recherche_du_fichier_%0
 Searching_for_duplicates...=Recherche_des_doublons_en_cours...
 Secondary_sort_criterion=Crit\u00E8re_secondaire_de_tri
 Select=S\u00E9lectionner
+Select_a_Zip-archive=S\u00e9lectionner_une_archive_ZIP
 Select_action=S\u00E9lectionner_l'op\u00E9ration
 Select_all=Tout_s\u00E9lectionner
+Select_Classpath_of_New_Importer=S\u00e9lectionner_le_chemin_de_classe_du_nouveau_filtre_d'importation
+Select_encoding=S\u00e9lectionner_l'encodage
 Select_entries_in_group_selection=S\u00E9lectionner_les_entr\u00E9es_dans_la_s\u00E9lection
 Select_entry_type=S\u00E9lectionner_un_type_d'entr\u00E9e
+Select_file_from_ZIP-archive=S\u00e9lectionner_un_fichier_depuis_une_archive_ZIP
 Select_format=S\u00E9lectionner_le_format
 Select_matches=S\u00E9lectionner_les_correspondances
 Select_matching_entries=S\u00E9lection_des_entr\u00E9es_correspondant_aux_crit\u00E8res_de_recherche
+Select_new_ImportFormat_Subclass=S\u00e9lectionner_une_nouvelle_sous-classe_ImportFormat
 Select_the_tree_nodes_to_view_and_accept_or_reject_changes=S\u00E9lectionner_les_noeuds_de_l'arborescence_pour_voir,_et_accepter_ou_rejeter,_les_modifications
 Selector_enabled_fields=Champs_de_s\u00E9lecteur_actifs
 Set_general_fields=D\u00E9finir_les_champs_g\u00E9n\u00E9raux
@@ -765,6 +870,7 @@ Show_BibTeX_source_by_default=Par_d\u00E9faut,_afficher_l'onglet_Source_BibTeX
 Show_BibTeX_source_panel=Afficher_l'onglet_"Source_BibTeX"
 Show_CiteSeer_column=Afficher_la_colonne_CiteSeer
 Show_confirmation_dialog_when_deleting_entries=Demander_une_confirmation_lors_de_la_suppression_d'entr\u00E9es
+Show_description=Montrer_la_description
 Show_dynamic_groups_in_<i>italics</i>=Afficher_les_groupes_dynamiques_en_<i>italique</i>
 Show_entries_*not*_in_group_selection=Montrer_les_entr\u00E9es_*non*_s\u00E9lectionn\u00E9es
 Show_general_fields=Montrer_les_champs_g\u00E9n\u00E9raux
@@ -783,6 +889,7 @@ Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Afficher_un_message_d
 Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Afficher_une_fen\u00eatre_d'avertissement_quand_une_clef_BibTeX_vide_est_entr\u00e9e
 Simple_HTML=HTML_(simple)
 Sixpack=Sixpack
+Size=Taille
 Size_of_groups_interface_(rows)=Taille_de_l'interface_des_groupes_(lignes)
 Skip=Passer
 Sort_alphabetically=Classer_alphab\u00e9tiquement
@@ -803,7 +910,9 @@ Status=Etat
 Stop=Arr\u00eat
 Store=Enregistrer
 Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Enregistrer_les_champs_avec_des_doubles_accolades_et_supprimer_les_accolades_suppl\u00e9mentaires_au_chargement._<BR>Les_doubles_accolades_signalent_que_BibTeX_doit_pr\u00e9server_la_casse_des_caract\u00e8res.
+Store_journal_abbreviations=Stocker_les_abr\u00e9viations_de_journaux
 Store_string=Enregistrer_la_cha\u00EEne
+Store_the_following_fields_with_braces_around_capital_letters=Stocker_les_champs_suivants_avec_des_accolades_autour_des_lettres_capitales
 Stored_definition_for_type=D\u00E9finition_pour_le_type_enregistr\u00E9
 Stored_entry=Entr\u00E9e_enregistr\u00E9e
 Stored_entry.=Entr\u00E9e_stock\u00E9e.
@@ -813,15 +922,21 @@ subdatabase_from_aux=BibTeX_\u00E0_partir_de_LaTex_aux
 Subdatabase_from_aux=BibTeX_\u00E0_partir_de_LaTex_aux
 Suggest=Sugg\u00E9rer
 Switch_preview_layout=Pr\u00E9visualiser_la_mise_en_page
+
+Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Basculer_entre_les_noms_de_journaux_d\u00e9velopp\u00e9s_et_abr\u00e9g\u00e9s_si_le_nom_de_journal_est_connu.
 Synchronize_%0_links=Synchroniser_les_liens_%0
 Synchronizing_%0_links...=Synchronisation_des_liens_%0...
 Table=Table
 Table_appearance=Apparence_de_la_table
+Table_background_color=Couleur_d'arri\u00e8re-plan_de_la_table
+Table_grid_color=Couleur_de_la_grille_de_la_table
+Table_text_color=Couleur_du_texte_de_la_table
 Tabname=Nom_d'onglet
 Tertiary_sort_criterion=Crit\u00E8re_tertiaire_de_tri
 Test=Test
 Text_Input_Area=Zone_de_saisie_du_texte
 The_#_character_is_not_allowed_in_BibTeX_fields=Le_caract\u00E8re_#_est_interdit_dans_un_champ_BibTeX
+The_chosen_date_format_for_new_entries_is_not_valid=Le_format_de_date_choisi_pour_les_nouvelles_entr\u00e9es_n'est_pas_valide
 The_CiteSeer_fetch_operation_returned_zero_results.=La_recherche_CiteSeer_n'a_retourn\u00E9_aucun_r\u00E9sultat.
 the_field_<b>%0</b>=le_champ_<b>%0</b>
 The_file<BR>'%0'<BR>has_been_modified<BR>externally!=Le_fichier<BR>'%0'<BR>a_\u00e9t\u00e9_modifi\u00e9_<BR>externalement !
@@ -840,7 +955,7 @@ The_type_name_can_not_contain_spaces.=Le_nom_d'un_type_ne_peut_pas_contenir_d'es
 The_URL_field_appears_to_be_empty_on_entry_number_=Le_champ_URL_semble_\u00eatre_vide_pour_l'entr\u00e9e_num\u00e9ro_
 There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?=Il_y_a_des_doublons_potentiels_(marqu\u00e9_avec_un_ic\u00f4ne_'D')_qui_n'ont_pas_\u00e9t\u00e9_r\u00e9solus._Continuer_?
 There_is_no_entry_type=Il_n'y_a_pas_de_type_d'entr\u00E9e
-This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=Cette_action_modifiera_le_champ_"%0"_de_vos_entr\u00e9es._Cela_pourrait_causer_des_changements_involontaires_dans_vos_entr\u00e9es,_aussi_il_n'est_pas_recommand\u00e9_que_vous_changiez_ce_champ_dans_votre_d\u00e9finition_de_groupe_par_"keywor [...]
+This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=Cette_action_modifiera_le_champ_"%0"_de_vos_entr\u00e9es._Cela_pourrait_causer_des_changements_involontaires_dans_vos_entr\u00e9es,_aussi_il_n'est_pas_recommand\u00e9_que_vous_changiez_ce_champ_dans_votre_d\u00e9finition_de_groupe_par_"keywor [...]
 this_button_will_update=Ce_bouton_sera_mis_\u00e0_jour
 this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table=ce_bouton_mettra_\u00E0_jour_les_param\u00E8tres_des_largeurs_des_colonnes<BR>pour_retenir_les_largeurs_actuelles_de_votre_table
 This_entry_is_incomplete=Cette_entr\u00E9e_est_incompl\u00E8te
@@ -855,12 +970,18 @@ This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_t
 This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=Ceci_est_simplement_une_fen\u00eatre_de_copier-coller_pour_importer_certains_champs_\u00e0_partir_d'un_texte_normal
 This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=Cela_conduit_JabRef_\u00e0_tester_chaque_lien_%0_et_\u00e0_v\u00e9rifier_si_le_fichier_existe._Dans_la_n\u00e9gative,_des_options_vous_seront_propos\u00e9es<BR>pour_r\u00e9soudre_le_probl\u00e8me.
 This_operation_cannot_work_on_multiple_rows.=Cette_op\u00E9ration_ne_peut_pas_\u00EAtre_effectu\u00E9e_sur_plusieurs_lignes.
+This_operation_requires_all_selected_entries_to_have_BibTex_keys_defined.=Cette_op\u00e9ration_n\u00e9cessite_que_toutes_les_entr\u00e9es_s\u00e9lectionn\u00e9es_aient_des_clefs_BibTeX_d\u00e9finies
+This_operation_requires_one_or_more_entries_to_be_selected.=Cette_op\u00e9ration_n\u00e9cessite_qu'une_ou_plusieurs_entr\u00e9es_soient_s\u00e9lectionn\u00e9es.
+To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=Pour_configurer,_voir_<B>Outils_->_G\u00e9rer_les_abr\u00e9viations_de_journaux</B>
+Toggle_abbreviation=Afficher/Masquer_l'abr\u00e9viation
 Toggle_entry_preview=Afficher/Masquer_l'aper\u00E7u
 Toggle_groups_interface=Afficher/Masquer_l'interface_des_groupes
 Toggle_search_panel=Afficher/Masquer_la_fen\u00EAtre_de_recherche
 Tools=Outils
+Try_different_encoding=Essayer_un_encodage_diff\u00e9rent
 Type=Type
 Type_set_to_'other'=Type_configur\u00E9_comme_'other'_(autre)
+Unabbreviate_journal_names_of_the_selected_entries=D\u00e9velopper_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es
 unable_to_access_LyX-pipe=Incapable_d'acc\u00E9der_au_canal_de_transmission_LyX
 Unable_to_create_graphical_interface=Incapable_de_cr\u00e9er_l'interface_graphique
 Unable_to_parse_clipboard_text_as_Bibtex_entries.=Incapable_de_traiter_le_texte_du_presse-papiers_comme_des_entr\u00e9es_BibTeX.
@@ -890,6 +1011,7 @@ UPPER=MAJUSCULE
 Upper_Each_First=Chaque_Premi\u00E8re_Lettre_En_Majuscule
 Upper_first=Premi\u00E8re_lettre_en_majuscule
 usage=usage
+Use_antialiasing_font=Utiliser_une_police_liss\u00e9e
 Use_antialiasing_font_in_table=Utiliser_une_police_liss\u00E9e_dans_la_table
 Use_inspection_window_also_when_a_single_entry_is_imported.=Utiliser_la_fen\u00eatre_d'inspection_m\u00eame_quand_une_seule_entr\u00e9e_est_import\u00e9e.
 Use_other_look_and_feel=Utiliser_une_autre_apparence
@@ -908,12 +1030,15 @@ Warning=Avertissement
 Warning_there_is_a_duplicate_key=Avertissement_%c_il_y_a_une_clef_dupliqu\u00e9e
 Warnings=Messages_d'avertissement
 web_link=Lien_internet
+
+What_do_you_want_to_do?=Que_voulez-vous_faire_?
 When_adding/removing_keywords,_separate_them_by=Lors_de_l'ajout/suppression_de_mots-clef,_les_s\u00e9parer_avec
 with=avec
 Word=Mot
 Wrong_file_format=Format_de_fichier_incorrect
 You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=Vous_avez_modifi\u00E9_la_langue._Vous_devez_red\u00E9marrer_JabRef_pour_que_ce_changement_prenne_effet.
 You_have_cleared_this_field._Original_value=Vous_avez_vid\u00e9_ce_champ._Valeur_originale
+You_must_choose_a_file_name_to_store_journal_abbreviations=Vous_devez_choisir_un_nom_de_fichier_pour_stocker_les_abr\u00e9viations_de_journaux
 You_must_enter_an_integer_value_in_the_text_field_for=Vous_devez_entrer_une_valeur_enti\u00e8re_dans_le_champ_texte_pour
 You_must_fill_in_a_name_for_the_entry_type.=Vous_devez_fournir_un_nom_pour_le_type_d'entr\u00E9e.
 You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=Vous_devez_fournir_un_nom,_une_cha\u00EEne_\u00E0_rechercher_et_un_nom_de_champ_pour_ce_groupe.
@@ -923,103 +1048,3 @@ You_must_select_at_least_one_row_to_perform_this_operation.=Vous_devez_s\u00E9le
 You_must_set_both_BibTeX_key_and_%0_directory=Vous_devez_d\u00E9finir_\u00E0_la_fois_la_clef_BibTeX_et_le_r\u00E9pertoire_%0
 You_must_set_both_bibtex_key_and_PDF_directory=You_must_set_both_bibtex_key_and_PDF_directory
 Your_new_key_bindings_have_been_stored.=Votre_nouvelle_affectation_de_touche_a_\u00E9t\u00E9_sauvegard\u00E9e
-Manage_custom_imports=G\u00e9rer_les_importations_personnalis\u00e9es
-Select_Classpath_of_New_Importer=S\u00e9lectionner_le_chemin_de_classe_du_nouveau_filtre_d'importation
-Select_new_ImportFormat_Subclass=S\u00e9lectionner_une_nouvelle_sous-classe_ImportFormat
-Could_not_instantiate_%0_%1=N'a_pas_pu_initialiser_%0_%1
-Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=Ajouter_une_classe_ImportFormat_personnalis\u00e9e_(compil\u00e9e)_\u00e0_partir_d'un_chemin_de_classe._\nLe_chemin_n'a_pas_besoin_d'\u00eatre_dans_le_chemin_de_classe_de_JabRef.
-Please_select_an_importer=S\u00e9lectionner_un_filtre_d'importation,_SVP
-Import_name=nom_Import
-Command_line_id=Identifiant_de_la_ligne_de_commande
-ImportFormat_class=Classe_ImportFormat
-Contained_in=Contenu_dans
-Show_description=Montrer_la_description
-Add_from_folder=Ajouter_\u00e0_partir_du_r\u00e9pertoire
-Custom_importers=Filtres_d'importation_personnalis\u00e9s
-No_custom_imports_registered_yet.=Pas_encore_d'importation_personnalis\u00e9e_enregistr\u00e9e
-Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Abr\u00e9ger_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es_(abr\u00e9viations_ISO)
-Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Abr\u00e9ger_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es_(abr\u00e9viations_MEDLINE)
-Background_color_for_marked_entries=Couleur_d'arri\u00e8re-plan_pour_les_entr\u00e9es_marqu\u00e9es
-Background_color_for_optional_fields=Couleur_d'arri\u00e8re-plan_pour_les_champs_optionnels
-Background_color_for_required_fields=Couleur_d'arri\u00e8re-plan_pour_les_champs_requis
-Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Choisir_l'URL_de_t\u00e9l\u00e9chargement._La_valeur_par_d\u00e9faut_pointe_vers_une_liste_fournie_par_les_d\u00e9veloppeurs_de_JabRef
-Color_for_marking_incomplete_entries=Couleur_pour_marque_les_entr\u00e9es_incompl\u00e8tes
-Do_not_abbreviate_names=Ne_pas_abr\u00e9ger_les_noms
-Do_not_wrap_the_following_fields_when_saving=Ne_pas_renvoyer_\u00e0_la_ligne_les_champs_suivants_lors_de_la_sauvegarde
-External_files=Fichiers_externes
-File_'%0'_not_found=Fichier_'%0'_non_trouv\u00e9
-Journal_abbreviations=Abr\u00e9viations_de_journaux
-Journal_name=Nom_du_journal
-Manage_journal_abbreviations=G\u00e9rer_les_abr\u00e9viations_de_journaux
-Natbib_style=Style_Natbib
-New_file=Nouveau_fichier
-Personal_journal_list=Liste_personnelle_de_journaux
-Remove_double_braces_around_BibTeX_fields_when_loading.=Supprimer_les_doubles_accolades_autour_des_champs_BibTeX_\u00e0_l'ouverture
-Store_the_following_fields_with_braces_around_capital_letters=Stocker_les_champs_suivants_avec_des_accolades_autour_des_lettres_capitales
-Table_background_color=Couleur_d'arri\u00e8re-plan_de_la_table
-Table_grid_color=Couleur_de_la_grille_de_la_table
-Table_text_color=Couleur_du_texte_de_la_table
-Toggle_abbreviation=Afficher/Masquer_l'abr\u00e9viation
-Unabbreviate_journal_names_of_the_selected_entries=D\u00e9velopper_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es
-Use_antialiasing_font=Utiliser_une_police_liss\u00e9e
-Abbreviate_names=Abr\u00e9ger_les_noms
-Abbreviation=Abr\u00e9viation
-ISO_abbreviation=Abr\u00e9viation_ISO
-Edit_journal=Editer_le_journal
-Existing_file=Fermeture_du_fichier_en_cours
-Saving_database=Sauvegarde_de_la_base_en_cours
-Normal=Normale
-Default_sort_criteria=Crit\u00e8re_de_tri_par_d\u00e9faut
-Primary_sort_criterion=Crit\u00e8re_de_tri_principal
-Database_properties=Propri\u00E9t\u00E9s_de la base de donn\u00e9es
-Database_encoding=Encodage_de_la_base_de_donn\u00e9es
-No_journal_names_could_be_abbreviated.=Aucun_nom_de_journal_n'a_pu_\u00eatre_abr\u00e9g\u00e9.
-No_journal_names_could_be_unabbreviated.=Aucun_nom_de_journal_n'a_pu_\u00eatre_d\u00e9velopp\u00e9.
-Save_failed=Echec_de_la_sauvegarde
-Pushed_citations_to_WinEdt=Citations_envoy\u00e9es_vers_WinEdt
-Try_different_encoding=Essayer_un_encodage_diff\u00e9rent
-Select_encoding=S\u00e9lectionner_l'encodage
-The_chosen_date_format_for_new_entries_is_not_valid=Le_format_de_date_choisi_pour_les_nouvelles_entr\u00e9es_n'est_pas_valide
-Invalid_date_format=Format_de_date_invalide
-Review=V\u00e9rification
-Journal_names=Noms_de_journaux
-Save_failed_during_backup_creation=La_sauvegarde_a_\u00e9chou\u00e9e_durant_la_cr\u00e9ation_de_la_copie_de_secours
-Save_failed_while_committing_changes=La_sauvegarde_a_\u00e9chou\u00e9e_lors_de_la_soumission_des_changements
-Full_name=Nom_complet
-Store_journal_abbreviations=Stocker_les_abr\u00e9viations_de_journaux
-You_must_choose_a_file_name_to_store_journal_abbreviations=Vous_devez_choisir_un_nom_de_fichier_pour_stocker_les_abr\u00e9viations_de_journaux
-Journal_list_preview=Pr\u00e9visualisation_de_la_liste_des_journaux
-
-Add_from_jar=Ajouter_\u00e0_partir_de_jar
-Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Ajouter_une_classe_ImportFormat_personnalis\u00e9e_(compil\u00e9e)_\u00e0_partir_d'une_archive_ZIP._\nL'archive_ZIP_n'a_pas_besoin_d'\u00eatre_dans_le_chemin_de_classe_de_JabRef.
-Select_a_Zip-archive=S\u00e9lectionner_une_archive_ZIP
-Select_file_from_ZIP-archive=S\u00e9lectionner_un_fichier_depuis_une_archive_ZIP
-Last_modified=Dernier_modifi\u00e9
-Size=Taille
-Please_select_an_importer.=S\u00e9lectionner_un_filtre_d'importation,_SVP.
-
-Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Arguments_transmis_\u00e0_l'instance_JabRef active.
-Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=La_connexion_\u00e0_un_processus gnuserv_actif_a_\u00e9chou\u00e9._Assurez-vous_qu'Emacs_ou_XEmacs_soit_actif,<BR>et_que_le_serveur_a_\u00e9t\u00e9_d\u00e9marr\u00e9_(avec_la_commande_'gnuserv-start').
-
-Push_selection_to_Emacs=Envoyer_la_s\u00E9lection_dans_Emacs
-Pushed_citations_to_Emacs=Envoyer_les_citations_dans_Emacs
-
-Filter=Filtre
-Hide_non-matching_entries=Masquer_les_entr\u00E9es_non_correspondantes
-Replace_(regular_expression)=Remplacer_(expression_r\u00e9guli\u00e8re)
-
-Cite_command_(for_Emacs/WinEdt)=Commande_de_citation_(pour_Emacs/WinEdt)
-
-Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=%0_%1_a_\u00e9chou\u00e9._Avez-vous_choisi_le_chemin_de_paquetage_correct_?
-No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Pas_d'entr\u00e9es_trouv\u00e9es._Assurez-vous,_SVP,_que_vous_utilisez_le_filtre_d'importation_appropri\u00e9.
-
-Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Basculer_entre_les_noms_de_journaux_d\u00e9velopp\u00e9s_et_abr\u00e9g\u00e9s_si_le_nom_de_journal_est_connu. 
-To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=Pour_configurer,_voir_<B>Outils_->_G\u00e9rer_les_abr\u00e9viations_de_journaux</B>
-
-Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Le_programme_'gnuclient'_n'a_pas_pu_\u00eatre_lanc\u00e9._Assurez-vous_que_les_programmes_gnuserv/gnuclient_sont_install\u00e9s.
-
-Hierarchical_context=Type de hi�rarchie
-Add_entry_selection_to_this_group=Ajouter_les_entr\u00e9es_s\u00e9lectionn\u00e9es_\u00e0_ce_groupe
-Assign_entry_selection_exclusively_to_this_group=Assigner_les_entr\u00e9es_s\u00e9lectionn\u00e9es_uniquement_\u00e0_ce_groupe
-Ne_entries_imported.=
-Remove_entry_selection_from_this_group=Supprimer_les_entr\u00e9es_s\u00e9lectionn\u00e9es_de_ce_groupe
diff --git a/src/resource/JabRef_fr.properties.orig b/src/resource/JabRef_fr.properties.orig
deleted file mode 100644
index 87f0242..0000000
--- a/src/resource/JabRef_fr.properties.orig
+++ /dev/null
@@ -1,1019 +0,0 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
-
-!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.
-%0_contains_the_Regular_Expression_<b>%1</b>=%0_contient_l'expression_r\u00e9guli\u00e8re_<b>%1</b>
-%0_contains_the_term_<b>%1</b>=%0_contient_le_terme_<b>%1</b>
-%0_doesn't_contain_the_Regular_Expression_<b>%1</b>=%0_ne_contient_pas_l'expression_r\u00e9guli\u00e8re_<b>%1</b>
-%0_doesn't_contain_the_term_<b>%1</b>=%0_ne_contient_pas_le_terme_<b>%1</b>
-%0_doesn't_match_the_Regular_Expression_<b>%1</b>=%0_ne_correspond_pas_\u00e0_l'expression_r\u00e9guli\u00e8re_<b>%1</b>
-%0_doesn't_match_the_term_<b>%1</b>=%0_ne_correspond_pas_au_terme_<b>%1</b>
-%0_field_set=D\u00E9finition_du_champ_%0
-%0_import_cancelled.=%0_importation_interrompue.
-%0_matches_the_Regular_Expression_<b>%1</b>=%0_correspond_\u00e0_l'expression_r\u00e9guli\u00e8re_<b>%1</b>
-%0_matches_the_term_<b>%1</b>=%0_correspond_au_terme_<b>%1</b>
-<field_name>=<nom_de_champ>
-<HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>=<HTML>D\u00E9compacter_le_fichier_zip_contenant_les_filtres_import/export_pour_Endnote,<BR>pour_une_interop\u00E9rabilit\u00E9_optimale_avec_JabRef</HTML>
-<no_field>=<pas_de_champ>
-<select>=<s\u00E9lectionner>
-<select_word>=<entrer_le_mot-clef>
-_on_entry_number_=_pour_le_num\u00e9ro_d'entr\u00e9e_
-A_CiteSeer_fetch_operation_is_currently_in_progress.=Une_op\u00E9ration_de_recherche_sur_CiteSeer_est_en_cours.
-A_CiteSeer_import_operation_is_currently_in_progress.=Une_op\u00E9ration_d'importation_depuis_CiteSeer_est_en_cours.
-A_string_with_that_label_already_exists=Une_cha\u00EEne_avec_ce_nom_existe_d\u00E9j\u00E0
-About_JabRef=A_propos_de_JabRef
-Abstract=R\u00e9sum\u00e9
-Accept=Valider
-Accept_change=Accepter_la_modification
-Action=Action
-Add=Ajouter
-add_entries_to_group=ajouter_des_entr\u00e9es_au_groupe
-add_group=ajouter_un_groupe
-Add_Group=Ajouter_un_groupe
-Add_new=Ajouter_nouvelle
-Add_Subgroup=Ajouter_un_sous-groupe
-Add_to_group=Ajouter_au_groupe
-Added_entry=Entr\u00E9e_ajout\u00E9e
-Added_group=Groupe_ajout\u00e9
-Added_group_"%0".=Groupe_"%0"_ajout\u00e9.
-Added_new=Nouvel_ajout
-Added_string=Cha\u00EEne_ajout\u00E9e
-Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_can_be_assigned_manually_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._This_process_adds_the_term_<b>%1</b>_to_each_entry's_<b>%0</b>_field._Entries_can_be_removed_manually_from_this_group_by_selecting_them_then_using_the_context_menu._This_process_removes_the_term_<b>%1</b>_from_each_entry's_<b>%0</b>_field.=De_plus,_des_entr\u00e9es_dont_le_champ_<b>%0</b>_ne_contient_pas_<b>%1 [...]
-Advanced=Avanc\u00E9
-Advanced_options_for_setting...=Options_avanc\u00e9es_pour_la_configuration...
-All_Entries=Toutes_les_entr\u00e9es
-All_entries=Toutes_les_entr\u00E9es
-All_entries_of_this_type_will_be_declared_typeless._Continue?=Toutes_les_entr\u00E9es_similaires_seront_consid\u00E9r\u00E9es_sans_type._Continuer_?
-All_fields=Tous_les_champs
-All_subgroups_(recursively)=Tous_les_sous-groupes_(r\u00e9cursivement)
-Allow_editing_in_table_cells=Autoriser_l'\u00E9dition_dans_les_cellules_de_la_table
-Always_save_database_ordered_by_author_name=Toujours_enregistrer_la_base_avec_l'ordre_auteur_nom
-and=et
-and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.=et_la_classe_doit_\u00EAtre_disponible_dans_votre_chemin_de_classe_la_prochaine_fois_que_vous_d\u00E9marrez_JabRef.
-any_field_that_matches_the_regular_expression_<b>%0</b>=tout_champ_qui_correspond_\u00e0_l'expression_r\u00e9guli\u00e8re_<b>%0</b>
-Appearance=Aspect
-Append=Ajouter
-Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Ajouter_le_contenu_d'une_base_BibTeX_\u00E0_la_base_actuelle
-Append_database=Joindre_\u00E0_la_base
-append_the_selected_text_to_bibtex_key=ajouter_le_texte_s\u00e9lectionn\u00e9_\u00e0_la_clef_BibTeX
-Apply=Appliquer
-Assign_entries_based_on:=Attribuer_les_entr\u00E9es_selon_:
-Assign_new_file=Assigner_un_nouveau_fichier
-Assign_the_original_group's_entries_to_this_group?=Assigner_les_entr\u00e9es_originales_du_groupe_\u00e0_ce_groupe ?
-Assigned_%0_entries_to_group_"%1".=%0_entr\u00e9es_ajout\u00e9es_au_groupe_"%1".
-Assigned_1_entry_to_group_"%0".=Une_entr\u00e9e_ajout\u00e9e_au_groupe_"%0".
-Attach_%0_file=Attacher_le_fichier_%0
-Attach_URL=Attacher_l'URL
-Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.=Cela_tente_de_d\u00e9finir_automatiquement_les_liens_%0_de_vos_entr\u00e9es._La_d\u00e9finition_automatique_fonctionne_si_un_fichier_%0_dans_votre_r\u00e9pertoire_%0_ou_dans_un_sous-r\u00e9pertoire<BR>porte_le_m\u00eame_nom_que_la_clef_d'une_entr\u00e9e_BibTeX,_l'extension_en_plus.
-Auto=Auto
-Autodetect_format=D\u00E9tection_automatique_du_format
-Autogenerate_BibTeX_key=Cr\u00E9ation_automatique_des_clefs_BibTeX
-Autogenerate_BibTeX_keys=Cr\u00E9ation_automatique_des_clefs_BibTeX
-Autogenerate_groups=Cr\u00E9ation_automatique_des_groupes
-autogenerate_keys=cr\u00E9ation_automatique_des_clefs
-Automatically_create_groups=Cr\u00E9er_automatiquement_des_groupes
-Automatically_create_groups_for_database.=Cr\u00E9er_automatiquement_des_groupes_pour_la_base.
-Automatically_created_groups=Groupes_cr\u00e9\u00e9s_automatiquement
-Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups=Masquer_automatiquement_l'interface_des_groupes_lors_de_l'affichage_d'une_base_de_donn\u00e9es_qui_ne_contient_pas_de_groupes
-Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups=Afficher_automatiquement_l'interface_des_groupes_lors_de_l'affichage_d'une_base_de_donn\u00e9es_qui_contient_des_groupes
-Autoset=D\u00e9finir_automatiquement
-Autoset_%0_field=Auto-d\u00e9finition_du_champ_%0
-Autoset_%0_links._Allow_overwriting_existing_links.=D\u00e9finir_automatiquement_les_liens_%0._Ecraser_les_liens_existants.
-Autoset_%0_links._Do_not_overwrite_existing_links.=D\u00e9finir_automatiquement_les_liens_%0._Ne_pas_\u00e9craser_les_liens_existants.
-Autosetting_%0_field...=Auto-param\u00e9trage_du_champ_%0...
-AUX_File_import=G\u00E9n\u00E9rer_un_fichier_BibTeX_\u00E0_partir_de_fichier_AUX
-AUX_file_import=Importation_de_fichier_AUX
-Available_export_formats=Formats_d'exportation_disponibles
-Available_fields=Champs_BibTeX_disponibles
-Available_import_formats=Formats_d'importation_disponibles
-Backup_old_file_when_saving=Cr\u00E9er_une_copie_de_sauvegarde_lors_de_l'enregistrement
-Bibkey_to_filename_conversion=Conversion_de_la_clef_BibTeX_en_nom_de_fichier
-Biblioscape_Tag_file=Biblioscape_Tag
-BibTeX=BibTeX
-BibTeX_key=Clef_BibTeX
-BibTeX_key_is_unique.=La_clef_BibTeX_est_unique.
-BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file=Clef_BibTeX_ind\u00E9finie._Entrer_un_nom_pour_le_fichier_t\u00E9l\u00E9charg\u00E9
-BibTeX_source=Source_BibTeX
-BibTeXML=BibTeXML
-BibTeXML_File=BibTeXML
-Binding=Affectation
-Broken_link=Lien_rompu
-Browse=Explorer
-by=par
-Calling_external_viewer...=Lancement_de_l'afficheur_externe...
-Cancel=Annuler
-Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?=Les_entr\u00e9es_ne_peuvent_pas_\u00eatre_ajout\u00e9es_au_groupe_sans_g\u00e9n\u00e9rer_des_clefs._Voulez-vous_g\u00e9n\u00e9rer_des_clefs_maintenant_?
-Cannot_merge_this_change=Cette_modification_ne_peut_pas_\u00EAtre_fusionn\u00E9e
-Cannot_move_group=Le_groupe_"%0"_ne_peut_pas_\u00eatre_d\u00e9plac\u00e9
-Cannot_move_group_"%0"_down.=Le_groupe_"%0"_ne_peut_pas_\u00eatre_d\u00e9plac\u00e9_vers_le_bas.
-Cannot_move_group_"%0"_left.=Le_groupe_"%0"_ne_peut_pas_\u00eatre_d\u00e9plac\u00e9_vers_la_gauche.
-Cannot_move_group_"%0"_right.=Le_groupe_"%0"_ne_peut_pas_\u00eatre_d\u00e9plac\u00e9_vers_la_droite.
-Cannot_move_group_"%0"_up.=Le_groupe_"%0"_ne_peut_pas_\u00eatre_d\u00e9plac\u00e9_vers_le_haut
-case_insensitive=insensible_\u00e0_la_casse
-case_sensitive=sensible_\u00e0_la_casse
-Case_sensitive=Sensible_\u00e0_la_casse
-change_assignment_of_entries=changer_l'assignation_des_entr\u00e9es
-Change_case=Changer_la_casse
-Change_entry_type=Changer_le_type_d'entr\u00E9e
-change_key=changer_la_clef
-Change_of_Grouping_Method=Changement_de_la_M\u00e9thode_de_Groupement
-change_preamble=changer_le_pr\u00E9ambule
-change_string_content=changer_le_contenu_de_la_cha\u00EEne
-change_string_name=changer_le_nom_de_la_cha\u00EEne
-change_type=changer_le_type
-changed_=chang\u00e9_
-Changed_font_settings=Param\u00E8tres_de_police_modifi\u00E9s
-Changed_language_settings=Param\u00E8tres_linguistiques_modifi\u00E9s
-Changed_look_and_feel_settings=Changer_les_param\u00e8tres_d'apparence
-Changed_preamble=Pr\u00E9ambule_modifi\u00E9
-Changed_type_to=Type_modifi\u00E9_en
-Characters_to_ignore=Caract\u00E8res_\u00E0_ignorer_
-Check_existing_%0_links=V\u00e9rifier_les_liens_%0_existants
-Check_links=V\u00e9rifier_les_liens
-Citation_import_from_CiteSeer_failed.=L'importation_des_citations_depuis_CiteSeer_a_\u00E9chou\u00E9e.
-CiteSeer_Error=Erreur_CiteSeer
-CiteSeer_Fetch_Error=Erreur_de_recherche_sur_CiteSeer
-CiteSeer_import_entries=Entr\u00E9es_d'importation_depuis_CiteSeer
-CiteSeer_Import_Error=Erreur_d'importation_depuis_CiteSeer
-CiteSeer_Import_Fields=Champs_d'importation_de_CiteSeer
-CiteSeer_Transfer=Transfert_de_CiteSeer
-CiteSeer_Warning=Avertissement_CiteSeer
-Class_name=Nom_de_classe
-Clear=Vider
-clear_all_groups=Vider_tous_les_groupes
-Clear_field=Vider_le_champ
-Clear_highlight=Vider_surlignements
-Clear_highlighted=Vider_surlign\u00e9s
-Clear_highlighted_groups=Vider_les_groupes_surlign\u00e9s
-Clear_inputarea=Vider_la_zone_de_saisie
-Clear_search=Effacer_la_recherche
-Close=Fermer
-Close_database=Fermer_la_base
-Close_dialog=Fermer_la_fen\u00EAtre
-Close_entry_editor=Fermer_l'\u00E9diteur_d'entr\u00E9e
-Close_preamble_editor=Fermer_l'\u00E9diteur_de_pr\u00E9ambule
-Close_the_current_database=Fermer_la_base_courante
-Close_the_help_window=Fermer_la_fen\u00EAtre_d'aide
-Close_window=Fermer_la_fen\u00EAtre
-Closed_database=Base_ferm\u00E9e
-Collapse_subtree=Masquer_le_sous-arbre
-Color_codes_for_required_and_optional_fields=Codes_de_couleurs_pour_les_champs_requis_et_optionnels
-Column_width=Largeur_de_colonne
-Complete_record=Compl\u00E9ter_l'enregistrement
-Completed_citation_import_from_CiteSeer.=Importation_des_citations_depuis_CiteSeer_termin\u00E9e.
-Completed_Import_Fields_from_CiteSeer.=Importation_des_champs_depuis_CiteSeer_termin\u00E9e.
-Completed_import_from_CiteSeer.=Importation_depuis_CiteSeer_termin\u00e9e.
-Content=Contenu
-Copied=Copi\u00E9
-Copied_cell_contents=Contenu_des_cellules_copi\u00e9
-Copied_key=Clef_copi\u00E9e
-Copied_keys=Clefs_copi\u00E9es
-Copy=Copier
-Copy_BibTeX_key=Copier_la_clef_BibTeX
-Copy_\\cite{BibTeX_key}=Copier_\\cite{clef_BibTeX}
-Copy_to_clipboard=Copier_le_texte_vers_le_presse-papiers
-Could_not_call_executable=L'ex\u00E9cutable_n'a_pas_pu_\u00EAtre_lanc\u00E9
-Could_not_connect_to_host=La_connexion_\u00e0_l'ordinateur_h\u00f4te_a_\u00e9chou\u00e9
-Could_not_connect_to_host_=La_connexion_\u00e0_l'ordinateur_h\u00f4te_a_\u00e9chou\u00e9_
-Could_not_export_entry_types=L'exportation_des_types_d'entr\u00e9es_a_\u00e9chou\u00e9
-Could_not_export_file=Le_fichier_n'a_pas_pu_\u00EAtre_export\u00E9
-Could_not_export_preferences=L'exportation_des_pr\u00e9f\u00e9rences_a_\u00e9chou\u00e9
-Could_not_find_a_suitable_import_format.=Un_format_d'importation_convenable_n'a_pas_pu_\u00EAtre_trouv\u00E9
-Could_not_find_layout_file=Fichier_de_mise_en_page_non_trouv\u00E9
-Could_not_import_entry_types=L'importation_des_types_d'entr\u00e9es_a_\u00e9chou\u00e9_
-Could_not_import_preferences=L'importation_des_pr\u00e9f\u00e9rences_a_\u00e9chou\u00e9_
-Could_not_resolve_import_format=Le_format_d'importation_n'a_pas_\u00e9t\u00e9_d\u00e9cod\u00e9_
-Could_not_save_file=Le_fichier_n'a_pas_pu_\u00EAtre_sauvegard\u00E9_
-Couldn't_find_an_entry_associated_with_this_URL=Aucune_entr\u00E9e_associ\u00E9e_\u00E0_cette_URL_n'a_\u00E9t\u00E9_trouv\u00E9e_
-Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Le_champ_'citeseerurl'_n'a_pas_pu_\u00EAtre_trait\u00E9_dans_les_entr\u00E9es_suivantes_
-Create_group=Cr\u00E9er_le_groupe
-Created_group=Groupe_cr\u00E9\u00E9
-Created_group_"%0".=Groupe_"%0"_cr\u00e9\u00e9.
-Created_groups.=Groupes_cr\u00E9\u00E9s.
-Curly_braces_{_and_}_must_be_balanced.=Les_accolades_{_et_}_doivent_\u00EAtre_\u00E9quilibr\u00E9es.
-Current_content=Contenu_actuel
-Current_value=Valeur_actuelle_
-Custom_entry_types=Types_d'entr\u00E9es_personnalis\u00E9es
-Custom_entry_types_found_in_file=Types_d'entr\u00E9es_personnalis\u00E9es_trouv\u00E9es_dans_le_fichier
-Custom_export=Exportation_personnalis\u00E9e
-Customize_entry_types=Personnaliser_les_types_d'entr\u00E9es
-Customize_key_bindings=Personnaliser_les_affectations_de_touches
-Cut=Couper
-cut_entries=Couper_les_entr\u00E9es
-cut_entry=supprimer_l'entr\u00E9e
-Cut_pr=Couper
-Database_has_changed._Do_you_want_to_save_before_closing?=Base_modifi\u00E9e._Voulez-vous_la_sauvegarder_avant_de_fermer_?
-Date_format=Format_de_date
-Default=D\u00E9faut
-Default_encoding=Encodage_par_d\u00E9faut_
-Default_grouping_field=Champ_par_d\u00E9faut_pour_les_groupes_
-Default_look_and_feel=Apparence_par_d\u00E9faut
-Default_owner=Propri\u00E9taire_par_d\u00E9faut
-Default_pattern=Mod\u00E8le_par_d\u00E9faut
-defined.=d\u00E9fini(e).
-Delete=Supprimer
-Delete_custom=Supprimer_les_d\u00E9finitions_personnalis\u00E9es
-Delete_custom_format=Supprimer_le_format_personnalis\u00E9
-delete_entries=effacer_les_entr\u00E9es
-Delete_entry=Supprimer_l'entr\u00E9e
-delete_entry=effacer_l'entr\u00E9e
-Delete_multiple_entries=Effacer_plusieurs_entr\u00E9es
-Delete_rows=Supprimer_des_lignes
-Delete_strings=Supprimer_les_cha\u00EEnes
-Deleted=Supprim\u00E9
-Deleted_entry=Supprimer_l'entr\u00E9e
-Delimit_fields_with_semicolon,_ex.=D\u00E9limiter_les_champs_par_des_points-virgules,_ex.
-Descending=Descendant
-Description=Description
-Deselect_all=Tout_d\u00e9s\u00e9lectionner
-Details=D\u00E9tails
-Disable_entry_editor_when_multiple_entries_are_selected=D\u00E9sactiver_l'\u00E9diteur_en_cas_de_s\u00E9lections_multiples
-Disable_this_confirmation_dialog=D\u00E9sactiver_cette_demande_de_confirmation
-Disable_this_warning_dialog=D\u00E9sactiver_ce_message_d'avertissement
-Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Afficher_toutes_les_entr\u00E9es_appartenant_\u00E0_au_moins_un_des_groupes_s\u00E9lectionn\u00E9s.
-Display_help_on_command_line_options=Afficher_l'aide_sur_les_options_de_la_ligne_de_commande
-Display_imported_entries_in_an_inspection_window_before_they_are_added.=Afficher_les_entr\u00e9es_import\u00e9es_dans_une_fen\u00eatre_d'inspection_avant_de_les_ajouter.
-Display_only_entries_belonging_to_all_selected_groups.=Afficher_uniquement_les_entr\u00E9es_appartenant_\u00E0_tous_les_groupes_s\u00E9lectionn\u00E9s.
-Displaying_no_groups=Pas_de_groupes_\u00E0_afficher
-Do_not_autoset=Ne_pas_d\u00e9finir_automatiquement.
-Do_not_import_entry=Ne_pas_importer_l'entr\u00e9e
-Do_not_open_any_files_at_startup=N'ouvrir_aucun_fichier_au_d\u00E9marrage
-Do_not_overwrite_existing_keys=Ne_pas_\u00e9craser_de_clefs_existantes
-Docbook=Docbook
-Done=Termin\u00E9
-Down=Bas
-Download=T\u00E9l\u00E9chargement
-Download_completed=T\u00E9l\u00E9chargement_termin\u00E9
-Download_file=T\u00E9l\u00E9charger_le_fichier
-Downloading...=T\u00E9l\u00E9chargement...
-Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.=A_cause_de_la_clef_BibTeX_dupliqu\u00e9e,_les_assignations_de_groupes_de_cette_entr\u00e9e_ne_pourront_pas_\u00eatre_restaur\u00e9e_correctement_\u00e0_la_r\u00e9ouverture_de_cette_base_de_donn\u00e9es._Il_est_recommand\u00e9_de_demand\u00e9_\u00e0_JabRef_de_g\u00e9n\u0 [...]
-dummy=nul
-Duplicate_BibTeX_key=Dupliquer_la_clef_BibTeX
-duplicate_BibTeX_key=dupliquer_la_clef_BibTeX
-Duplicate_BibTeX_key.=Dupliquer_la_clef_BibTeX.
-duplicate_BibTeX_key.=dupliquer_la_clef_BibTeX.
-Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.=Clef_BibTeX_dupliqu\u00e9e._Les_groupes_pourraient_ne_pas_fonctionner_pour_cette_entr\u00e9e.
-Duplicate_Key_Warning=Avertissement :_Clef_dupliqu\u00e9e
-Duplicate_pairs_found=Doublons_trouv\u00E9s
-duplicate_removal=Suppression_des_doublons
-Duplicate_string_name=Dupliquer_le_nom_de_cha\u00EEne
-Duplicates_found=Doublons_trouv\u00e9s
-Duplicates_removed=Doublons_supprim\u00e9s
-Dynamic_groups=Groupes_dynamiques
-Dynamically_group_entries_by_a_free-form_search_expression=Grouper_dynamiquement_les_entr\u00e9es_en_utilisant_une_expression_de_recherche_de_forme_libre
-Dynamically_group_entries_by_searching_a_field_for_a_keyword=Grouper_dynamiquement_les_entr\u00e9es_en_cherchant_un_mot-clef_dans_un_champ
-Each_line_must_be_on_the_following_form=Chaque_ligne_doit_\u00EA_de_la_forme_suivante
-Edit=Editer
-Edit_custom_export=Editer_l'exportation_personnalis\u00E9e
-Edit_entry=Editer_l'entr\u00E9e
-Edit_group=Editer_le_groupe
-Edit_preamble=Editer_le_pr\u00E9ambule
-Edit_strings=Editer_les_cha\u00EEnes
-empty_BibTeX_key=Clef_BibTeX_vide
-Empty_BibTeX_key.=Clef_BibTeX_vide.
-Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Vider_la_clef_BibTeX._La_gestion_des_groupes_pourrait_ne_plus_fonctionner_pour_cette_entr\u00e9e.
-Empty_database=Base_vide
-empty_database=base_vide
-Enable source_editing=Autoriser_l'\u00e9dition_du_source
-Enable_source_editing=Autoriser_l'\u00e9dition_du_source
-Endnote=Endnote
-Enter_URL=Entrer_l'URL
-Enter_URL_to_download=Entrer_l'URL_de_t\u00E9l\u00E9chargement
-entries=entr\u00E9es
-Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.=Des_entr\u00e9es_ne_peuvent_pas_ajout\u00e9es_ou_supprim\u00e9es_manuellement_de_ce_groupe.
-Entries_exported_to_clipboard=Entr\u00E9es_export\u00E9es_vers_le_presse-papiers
-entries_have_undefined_BibTeX_key=Des_entr\u00e9es_ont_des_clef_BibTeX_non_d\u00e9finies
-entries_into_new_database=entr\u00E9es_dans_la_nouvelle_base
-entry=entr\u00E9e
-Entry_editor=Editeur_d'entr\u00E9e
-Entry_editor,_next_entry=Editeur_d'entr\u00E9e,_entr\u00E9e_suivante
-Entry_editor,_next_panel=Editeur_d'entr\u00E9e,_fen\u00EAtre_suivante
-Entry_editor,_previous_entry=Editeur_d'entr\u00E9e,_entr\u00E9e_pr\u00E9c\u00E9dente
-Entry_editor,_previous_panel=Editeur_d'entr\u00E9e,_fen\u00EAtre_pr\u00E9c\u00E9dente
-Entry_editor,_store_field=Editeur_d'entr\u00E9e,_sauver_le_champ
-Entry_in_current_database=Entr\u00e9e_dans_la_base_de_donn\u00e9es_actuelle
-Entry_in_import=Entr\u00e9e_dans_l'importation
-Entry_is_incomplete=L'entr\u00E9e_est_incompl\u00E8te
-Entry_preview=Aper\u00E7u_de_l'entr\u00E9e
-Entry_table=Table_des_entr\u00E9es
-Entry_table_columns=Colonnes_de_la_table_des_entr\u00E9es
-Entry_type=Type_d'entr\u00E9e
-Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Les_noms_de_type_d'entr\u00E9e_ne_peuvent_pas_contenir_d'espace_et_les_caract\u00E8res_suivants
-Entry_types=Types_d'entr\u00E9es
-EOF_in_mid-string=Fin_de_fichier_au_milieu_d'une_cha\u00EEne
-Error=Erreur
-##Error:_check_your_External_viewer_settings_in_Preferences=Erreur :_v\u00e9rifier_les_param\u00e9trage_de_votre_visionneur_externe_dans_les_Options
-Error_in_field=Erreur_dans_le_champ
-Error_in_line=Erreur_\u00E0_la_ligne
-Error_opening_file=Erreur_lors_de_l'ouverture_du_fichier
-Error_setting_field=Erreur_de_configuration_du_champ
-exists._Overwrite?=existe._Ecraser_le_fichier ?
-exists._Overwrite_file?=existe._Ecraser_le_fichier ?
-Exit=Quitter
-Expand_subtree=D\u00e9velopper_le_sous-arbre
-Explicit=Explicite
-Export=Exporter
-Export_entry_types=Exporter_les_types_d'entr\u00e9es
-Export_name=Nom_de_l'exportation
-Export_preferences=Exporter_les_pr\u00E9f\u00E9rences
-Export_preferences_to_file=Exporter_les_pr\u00E9f\u00E9rences_vers_un_fichier
-Export_properties=Propri\u00E9t\u00E9s_de_l'exportation
-Export_selected_to_clipboard=Exporter_la_s\u00E9lection_vers_le_presse-papiers
-Export_to_clipboard=Exporter_vers_le_presse-papiers
-Exported_database_to_file=Base_export\u00E9e_dans_le_fichier
-Exporting=Exportation_en_cours
-External_changes=Modifications_externes
-External_programs=Programmes_externes
-External_viewer_called=Editeur_externe_lanc\u00E9
-Failed_to_read_groups_data_(unsupported_version:_%0)=La_lecture_des_donn\u00e9es_des_groupes_a_\u00e9chou\u00e9_(version_non_support\u00e9e :_%0)
-Fetch=Rechercher
-Fetch_Articles_Citing_your_Database=Rechercher_les_articles_citant_votre_base
-Fetch_Citations_from_CiteSeer=Rechercher_des_citations_depuis_CiteSeer
-Fetch_citations_from_CiteSeer=Rechercher_des_citations_depuis_CiteSeer
-Fetch_CiteSeer=Recherche_CiteSeer
-Fetch_Medline=Recherche_Medline
-fetch_Medline=recherche_Medline
-Fetch_Medline_by_author=Rechercher_sur_Medline_par_auteur
-Fetch_Medline_by_ID=Recherche_Medline_par_ID
-Fetched_all_citations_from_target_database.=Toutes_les_citations_ont_\u00E9t\u00E9_r\u00E9cup\u00E9r\u00E9es_depuis_la_base_cible.
-Fetching_Citations=Recherche_des_citations_en_cours
-Fetching_Identifiers=Recherche_des_identifiants
-Fetching_Medline...=Recherche_Medline_en_cours...
-Fetching_Medline_by_ID...=Recherche_sur_Medline_par_ID...
-Fetching_Medline_by_id_...=Recherche_sur_Medline_par_id...
-Fetching_Medline_by_term_...=Recherche_sur_Medline_par_terme...
-Field=Champ
-field=Champ
-Field_content=Contenu_du_champ
-Field_name=Nom_de_champ
-Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters=Les_noms_de_champ_ne_peuvent_pas_contenir_d'espace_et_les_caract\u00E8res_suivants
-Field_sizes=Tailles_des_champs
-Field_to_group_by=Champ_\u00E0_grouper_par
-Field_to_search=Champ_pour_la_recherche
-Fields=Champs
-File=Fichier
-file=fichier
-File_changed=Fichier_chang\u00e9
-File_extension=Extension_de_fichier
-File_has_been_updated_externally._Are_you_sure_you_want_to_save?=Le_fichier_a_\u00E9t\u00E9_mis_\u00E0_jour_externalement._Etes-vous_certain_de_vouloir_l'enregistrer ?
-File_not_found=Fichier_non_trouv\u00E9
-File_updated_externally=Fichier_mis_\u00E0_jour_externalement
-filename=nom_de_fichier
-Files_opened=Fichiers_ouverts
-Find_duplicates=Chercher_les_doublons
-Finished_autosetting_%0_field._Entries_changed:_%1.=Auto-param\u00e9trage_du_champ_%0_termin\u00e9._Entr\u00e9es_chang\u00e9es :_%1.
-Finished_synchronizing_%0_links._Entries_changed%c_%1.=Synchronisation_des_liens_%0_termin\u00e9e._Entr\u00e9es_modifi\u00e9es%c_%1.
-First_select_the_entries_you_want_keys_to_be_generated_for.=Commencez_par_s\u00E9lectionner_les_entr\u00E9es_pour_lesquelles_vous_voulez_que_des_clefs_soient_g\u00E9n\u00E9r\u00E9es.
-Fit_table_horizontally_on_screen=Ajuster_la_table_horizontalement_\u00E0_l'\u00E9cran
-Float=Flottante
-Font_Family=Famille_de_police
-Font_Preview=Pr\u00E9visualisation_de_la_police
-Font_Size=Taille_de_police
-Font_Style=Style_de_police
-FontSelector=S\u00E9lecteur_de_police
-for=pour
-Format_of_author_and_editor_names=Format_des_noms_d'auteurs_et_d'\u00E9diteurs
-Format_used=Format_utilis\u00E9
-Formatter_not_found=Formateur_non_trouv\u00E9
-found=trouv\u00E9
-found_in_aux_file=trouv\u00E9es_dans_le_fichier_aux
-General=G\u00e9n\u00e9ral
-General_fields=Champs_g\u00E9n\u00E9raux
-Generate=Cr\u00E9er
-Generate_BibTeX_key=Cr\u00E9er_la_clef_BibTeX
-Generate_keys=G\u00e9n\u00e9rer_les_clefs
-Generate_now=G\u00e9n\u00e9rer_maintenant
-Generated_BibTeX_key_for=Cr\u00E9ation_termin\u00E9e_de_la_clef_BibTeX_pour
-Generating_BibTeX_key_for=Cr\u00E9ation_en_cours_d'une_clef_BibTeX_pour
-Grab=Rechercher
-Gray_out_entries_not_in_group_selection=Griser_les_entr\u00E9es_hors_de_la_s\u00E9lection
-Gray_out_non-hits=Griser_les_entr\u00E9es_non_correspondantes
-Gray_out_non-matching_entries=Griser_les_entr\u00E9es_non_correspondantes
-Group_definitions_have_been_converted_to_JabRef_1.7_format.=Les_d\u00E9finitions_des_groupes_ont_\u00E9t\u00E9_converties_au_format_JabRef_1.7
-Group_name=Nom_du_groupe_
-Group_properties=Propri\u00E9t\u00E9s_du_groupe
-Groups=Groupes
-Harvard_RTF=Harvard_RTF
-Help=Aide
-Help_contents=Contenu_de_l'aide
-Help_on_groups=Aide_sur_les_groupes
-Help_on_key_patterns=Aide_sur_le_param\u00E9trage_des_clefs
-Hide_non-hits=Masquer_les_entr\u00E9es_non_correspondantes
-Highlight=Surlign\u00E9e
-Highlight_groups_matching_all_selected_entries=Surligner_les_groupes_correspondant_\u00e0_toutes_les_entr\u00e9es_s\u00e9lectionn\u00e9es
-Highlight_groups_matching_any_selected_entry=Surligner_les_groupes_correspondant_\u00e0_au_moins_une_des_entr\u00e9es_s\u00e9lectionn\u00e9es
-Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group=Surligner_les_groupes_qui_contiennent_des_entr\u00e9es_contenues_dans_n'importe_quel_groupe_s\u00e9lectionn\u00e9
-Highlight_overlapping_groups=Surligner_les_groupes_se_chevauchant
-Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>=Astuce%c_Pour_chercher_uniquement_dans_des_champs_sp\u00e9cifiques,_entrez_par_exemple%c<p><tt>author%esmith_and_title%e\u00e9lectrique</tt>
-HTML=HTML
-Ignore=Ignorer
-Illegal_type_name=Nom_de_type_ill\u00e9gal
-Immediate_subgroups=Sous-groupes_directs
-Import=Importer
-Import_and_append=Importer_et_joindre
-Import_and_keep_old_entry=Importer_et_conserver_l'ancienne_entr\u00e9e
-Import_and_remove_old_entry=Importer_et_supprimer_l'ancienne_entr\u00e9e
-Import_cancelled.=Importation_interrompue.
-Import_Data_from_CiteSeer=Importer_les_donn\u00E9es_depuis_CiteSeer
-Import_Data_from_CiteSeer_Database=Importer_les_donn\u00E9es_depuis_la_base_CiteSeer
-Import_database=Importer_une_base
-Import_entries=Importer_les_entr\u00E9es
-Import_entry_types=Types_d'entr\u00e9es_import\u00e9s
-Import_failed=L'importation_a_\u00e9chou\u00e9e
-Import_Fields_from_CiteSeer=Importer_les_champs_depuis_CiteSeer
-Import_fields_from_CiteSeer=Importation_des_champs_\u00E0_partir_de_CiteSeer
-Import_fields_from_CiteSeer_Database=Importation_des_champs_\u00E0_partir_de_la_base_CiteSeer
-Import_Fields_from_CiteSeer_Database=Importer_les_champs_depuis_la_base_CiteSeer
-Import_file=Fichier_\u00E0_importer
-Import_group_definitions=Importer_les_d\u00E9finitions_de_groupe
-Import_plain_text=Importer_des_champs_\u00E0_partir_de_texte_brut
-Import_preferences=Importer_les_pr\u00E9f\u00E9rences
-Import_preferences_from_file=Importer_les_pr\u00E9f\u00E9rences_depuis_un_fichier
-Import_strings=Importer_les_cha\u00EEnes
-Import_to_open_tab=Importer_dans_l'onglet_ouvert
-Import_word_selector_definitions=Importer_les_d\u00E9finitions_des_s\u00E9lecteurs_de_mots
-Imported_database=Base_import\u00E9e
-Imported_entries=Entr\u00E9es_import\u00E9es
-Imported_entry_types=Types_d'entr\u00e9es_import\u00e9s
-Imported_file=Fichier_import\u00E9
-Imported_from_database=Import\u00e9_\u00e0_partir_de_la_base_de_donn\u00e9es
-Importing=Importation_en_cours
-Importing_file=Importation_de_fichier_en_cours
-Importing_in_unknown_format=Importation_dans_un_format_inconnu
-In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=Dans_JabRef,_utiliser_une_paire_de_#_pour_d\u00E9limiter_une_cha\u00EEne.
-Include_subgroups=Inclure_les_sous-groupes
-Include_subgroups:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Inclure_les_sous-groupes :_Quand_s\u00e9lectionn\u00e9,_afficher_les_entr\u00e9es_contenu_dans_ce_groupe_et_ses_sous-groupes
-Incremental=Incr\u00E9mentale
-Incremental_search=Recherche_incr\u00E9mentale
-Incremental_search_failed._Repeat_to_search_from_top.=La_recherche_incr\u00E9mentale_n'a_pas_abouti._R\u00E9p\u00E9ter_depuis_le_d\u00E9but.
-Independent=Ind\u00E9pendant
-Independent_group:_When_selected,_view_only_this_group's_entries=Groupe_ind\u00e9pendant :_Quand_s\u00e9lectionn\u00e9,_affiche_uniquement_les_entr\u00e9es_de_ce_groupe
-Initially_show_groups_tree_expanded=Afficher_au_d\u00e9part_l'arbre_des_groupes_d\u00e9velopp\u00e9
-Input=Attribution_des_champs
-Input_error=Entr\u00E9e_erron\u00E9e
-Insert=Ins\u00E9rer
-Insert_rows=Ins\u00E9rer_des_lignes
-Insert_selected_citations_into_LyX=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_LyX
-Insert_selected_citations_into_WinEdt=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_&WinEdt
-insert_string_=ins\u00e9rer_la_cha\u00eene
-Insert_URL=Ins\u00E9rer_l'URL
-INSPEC=INSPEC
-integrity=int\u00e9grit\u00e9
-Integrity_check=V\u00e9rification_d'int\u00e9grit\u00e9
-Intersection=Intersection
-Intersection_with_supergroups=_Intersection_avec_super-groupes
-Invalid_BibTeX_key=Clef_BibTeX_invalide
-Invalid_URL=URL_invalide
-Inverted=Compl\u00E9mentaire
-is_a_standard_type.=est_un_type_standard.
-ISI=ISI
-Item_list_for_field=Liste_des_choix_pour_le_champ
-JabRef_help=Aide_de_JabRef
-JabRef_preferences=Pr\u00E9f\u00E9rences_pour_JabRef
-JStor_file=JStor
-Keep=Garder
-Keep_both=Garder_les_deux
-Keep_lower=Garder_celui_du_bas
-Keep_upper=Garder_celui_du_haut
-Key_bindings=Affectations_des_touches
-Key_bindings_changed=Affectations_des_touches_modifi\u00E9es
-Key_generator_settings=Param\u00e9trage_du_g\u00e9n\u00e9rateur_de_clef
-Key_pattern=Param\u00E9trage_des_clefs
-keys_in_database=clefs_dans_la_base_de_donn\u00e9es
-Keyword=Mot-clef
-Label=Nom_du_champ
-Language=Langue_
-Latex_AUX_file=Fichier_LaTeX_AUX
-LaTeX_AUX_file=Fichier_LaTeX_AUX
-Left=Gauche
-License=Licence
-Limit_to_fields=Restreindre_aux_champs
-Limit_to_selected_entries=Restreindre_aux_seules_entr\u00E9es_s\u00E9lectionn\u00E9es
-Listen_for_remote_operation_on_port=Ecouter_le_port_pour_des_op\u00e9rations_\u00e0_distance
-Load_session=Charger_la_session
-Loading_session...=Chargement_de_la_session...
-Look_and_feel=Apparence
-lower=minuscule
-Main_layout_file=Principal_fichier_de_mise_en_page
-Main_PDF_directory=R\u00E9pertoire_PDF_principal_
-Main_PS_directory=R\u00e9pertoire_PS_principal_
-Manage=G\u00E9rer
-Manage_content_selectors=G\u00E9rer_les_s\u00E9lecteurs_de_contenu
-Manage_custom_exports=G\u00E9rer_les_exportations_personnalis\u00E9es
-Mark_entries=Etiqueter_des_entr\u00E9es
-Mark_entry=Etiqueter_l'entr\u00E9e
-Mark_new_entries_with_addition_date=Enregistrer_la_date_d'ajout_pour_les_nouvelles_entr\u00e9es
-Mark_new_entries_with_owner_name=Nouvelles_entr\u00E9es_attribu\u00E9es_au_propri\u00E9taire_
-Marked_selected=Etiquetage_de_la_s\u00E9lection
-Medline_entries_fetched=Entr\u00E9es_Medline_r\u00E9cup\u00E9r\u00E9es
-Medline_XML=Medline_XML
-Medline_XML_File=Medline_XML
-Menu_and_label_font_size=Taille_de_police_pour_les_menus_et_les_champs_
-Merged_external_changes=Fusionner_les_modifications_externes
-messages=messages
-Messages=Messages
-Messages_and_Hints=Avertissements_et_Suggestions
-Miscellaneous=Divers
-Modification_of_field=Modification_du_champ
-Modified_group_"%0".=Groupe_"%0"_modifi\u00e9.
-Modified_groups=Groupes_modifi\u00e9s
-Modified_groups_tree=Arborescence_des_groupes_modifi\u00e9e
-Modified_string=Cha\u00EEne_modifi\u00E9e
-Modify=Modifier
-modify_group=Modifier_le_groupe
-MODS=MODS
-Move=D\u00e9placer
-Move_down=D\u00E9placer_vers_le_bas
-Move_entries_in_group_selection_to_the_top=D\u00E9placer_les_entr\u00E9es_s\u00E9lectionn\u00E9es_en_haut
-move_group=d\u00e9placer_le_groupe
-Move_matching_entries_to_the_top=D\u00E9placer_en_haut_les_entr\u00E9es_correspondant_aux_crit\u00E8res_de_recherche
-Move_string_down=D\u00E9placer_la_cha\u00EEne_vers_le_bas
-Move_string_up=D\u00E9placer_la_cha\u00EEne_vers_le_haut
-Move_up=D\u00E9placer_vers_le_haut
-Moved_Group=Groupe_d\u00e9plac\u00e9
-Moved_group_"%0".=Groupe_"%0"_d\u00e9plac\u00e9.
-Name=Nom
-nested_aux_files=fichiers_AUX_imbriqu\u00E9s
-New=Nouveau
-new=Nouveau
-New_article=Nouveau_'article'
-New_BibTeX_database=Nouvelle_base_BibTeX
-New_BibTeX_entry=Nouvelle_entr\u00E9e_BibTeX
-New_BibTeX_subdatabase=Nouveau_fichier_BibTeX
-New_book=Nouveau_'book'
-New_content=Nouveau_contenu
-New_database=Nouvelle_base
-New_database_created.=Nouvelle_base_cr\u00E9\u00E9e.
-New_entry=Nouvelle_entr\u00E9e
-New_entry...=Nouvelle_entr\u00E9e...
-New_entry_from_plain_text=Nouvelle_entr\u00E9e_depuis_texte_brut
-New_group=Nouveau_groupe
-New_inbook=Nouveau_'inbook'
-New_mastersthesis=Nouveau_'mastersthesis'
-New_phdthesis=Nouveau_'phdthesis'
-New_proceedings=Nouveau_'proceedings'
-New_string=Nouvelle_cha\u00EEne
-New_subdatabase=Nouveau_fichier
-New_subdatabase_based_on_AUX_file=Nouveau_fichier_BibTeX_depuis_fichier_AUX
-New_unpublished=Nouveau_'unpublished'
-Next_entry=Entr\u00E9e_suivante
-Next_tab=Onglet_suivant
-No_%0_found=Pas_de_%0_trouv\u00e9
-No_actual_changes_found.=Pas_de_changements_trouv\u00e9s.
-no_base-bibtex-file_specified=fichier_BibTeX_non_sp\u00e9cifi\u00e9 !
-no_database_generated=pas_de_base_cr\u00E9\u00E9e
-No_duplicates_found=Pas_de_doublons_trouv\u00e9s
-No_entries_imported.=Pas_d'entr\u00e9es_import\u00e9es.
-No_entries_or_multiple_entries_selected.=Pas_d'entr\u00E9e_s\u00E9lectionn\u00E9e_ou_s\u00E9lection_de_plusieurs_entr\u00E9es.
-No_entries_selected=Pas_d'entr\u00e9es_s\u00e9lectionn\u00e9es
-No_GUI._Only_process_command_line_options.=Pas_d'interface_utilisateur._Traitement_limit\u00E9_aux_options_de_la_ligne_de_commande.
-No_Medline_entries_found.=Pas_d'entr\u00e9es_Medline_trouv\u00e9es
-No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=PDF_ou_PS_non_d\u00E9fini_et_fichier_correspondant_\u00E0_la_clef_BibTeX_non_trouv\u00E9.
-No_references_found=Aucune_r\u00E9f\u00E9rence_trouv\u00E9e
-No_saved_session_found.=Pas_trouv\u00E9_de_session_sauvegard\u00E9e.
-No_url_defined=Pas_d'URL_d\u00E9finie
-non-Mac_only=Uniquement_pour_les_non-Mac
-not=non
-not_found=non_trouv\u00E9
-Not_saved_(empty_session)=Pas_de_sauvegarde_(session_vide)
-Note_that_the_entry_causing_the_problem_has_been_selected.=Noter_que_l'entr\u00E9e_responsable_du_probl\u00E8me_a_\u00E9t\u00E9_s\u00E9lectionn\u00E9e.
-Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.=Notez_que_les_nouvelles_d\u00E9finitions_ne_seront_pas_compatibles_avec_les_pr\u00E9c\u00E9dentes_versions_de_JabRef.
-Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,=Notez_que_vous_devez_sp\u00E9cifier_le_nom_de_classe_complet_pour_l'apparence,
-Nothing_to_redo=Rien_\u00E0_r\u00E9p\u00E9ter
-Nothing_to_undo=Rien_\u00E0_annuler
-Number_of_references_to_fetch?=Nombre_de_r\u00E9f\u00E9rences_\u00E0_r\u00E9cup\u00E9rer_?
-occurences=occurrences
-OK=OK
-Ok=Ok
-One_or_more_keys_will_be_overwritten._Continue?=Une_ou_plusieurs_clefs_seront_\u00e9cras\u00e9es._Continuer_?
-Open=Ouvre
-open=ouvre
-Open_BibTeX_database=Ouvrir_une_base_BibTeX
-Open_database=Ouvrir_une_base
-Open_editor_when_a_new_entry_is_created=Ouvrir_l'\u00E9diteur_quand_une_nouvelle_entr\u00E9e_est_cr\u00E9\u00E9e
-Open_file=Ouvrir_le_fichier
-Open_last_edited_databases_at_startup=Ouvrir_les_fichiers_de_la_derni\u00E8re_session_au_d\u00E9marrage
-Open_PDF_or_PS=Ouvrir_PDF_ou_PS
-Open_right-click_menu_with_Ctrl+left_button=D\u00E9rouler_le_menu_contextuel_avec_Ctrl+clic_gauche
-Open_URL_or_DOI=Ouvrir_URL_ou_DOI
-Opened_database=Base_ouverte
-Opening=Ouverture_en_cours
-Opening_preferences...=Ouverture_des_pr\u00E9f\u00E9rences_en_cours...
-Optional_fields=Champs_optionnels
-Options=Options
-or=ou
-out_of=sur
-Output_or_export_file=Fichier_de_sortie_ou_d'exportation
-Overlapping_groups=Groupes_se_chevauchant
-Override=Remplacer
-override_the_bibtex_key_by_the_selected_text=remplacer_la_clef_BibTeX_par_le_texte_s\u00e9lectionn\u00e9
-Overwrite_keys=Ecraser_les_clefs
-Ovid=Ovid
-pairs_processed=paires_trait\u00E9es
-Paste=Coller
-paste_entries=Coller_les_entr\u00E9es
-paste_entry=Coller_l'entr\u00E9e
-Paste_from_clipboard=Coller_le_texte_depuis_le_presse-papiers
-Pasted=Coll\u00E9
-Path_to_HTML_viewer=Chemin_du_visionneur_HTML_
-Path_to_LyX_pipe=Chemin_du_canal_de_transmission_Lyx_
-Path_to_PDF_viewer=Chemin_du_visionneur_PDF_
-Path_to_PS_viewer=Chemin_du_visionneur_PS_
-Path_to_WinEdt.exe=Chemin_de_WinEdt.exe_
-Paths_to_external_programs=Chemins_vers_les_programmes_externes.
-PDF_links=Liens_PDF
-Pick_titles=S\u00e9lectionnez_des_titres[?]
-Plain_right_menu=Menu_droit_brut_[?]
-Plain_text=Texte_brut
-Plain_text_import=Importation_de_texte_brut
-Please_check_your_network_connection_to_this_machine.=SVP,_v\u00E9rifiez_votre_connexion_r\u00E9seau_\u00E0_cette_machine.
-Please_define_BibTeX_key_first=SVP,_commencez_par_d\u00E9finir_la_clef_BibTeX
-Please_enter_a_name_for_the_group.=SVP,_entrez_un_nom_pour_le_groupe.
-Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author%esmith_and_title%eelectrical</tt>=SVP,_entrez_un_terme_\u00e0_recherche._Par_exemple,_pour_rechercher_<b>Smith</b>_dans_tout_les_champs,_entrez %c<p><tt>smith</tt><p>Pour_rechercher_<b>Smith</b>_dans_le_champ_<b>Author</b>_et_<b>\u00e9lectrique</b>_dans_le_c [...]
-Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=SVP,_entrez_une_liste_d'IDs_Medline_(num\u00E9riques)_s\u00E9par\u00E9s_par_un_point-virgule_ou_par_une_virgule
-Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=SVP,_entrez_le_champ_de_recherche_(par_ex._<b>keywords</b>)_et_le_mot-clef_\u00e0_rechercher_(par_ex._<b>\u00e9lectrique</b>).
-Please_enter_the_string's_label=SVP,_entrez_le_nom_de_la_cha\u00EEne
-Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=SVP,_reportez-vous_au_manuel_d'aide_de_JabRef_\u00E0_propos_de_l'utilisation_des_outils_CiteSeer.
-Please_select_exactly_one_group_to_move.=SVP,_s\u00e9lectionnez_uniquement_un_groupe_\u00e0_d\u00e9placer.
-Please_wait_until_it_has_finished.=SVP,_attendez_la_fin_de_l'op\u00E9ration.
-Possible_duplicate_entries=Entr\u00E9es_potentiellement_dupliqu\u00E9es
-Possible_duplicate_of_existing_entry._Click_to_resolve.=Duplication_possible_d'une_entr\u00e9e_existante._Cliquer_pour_v\u00e9rification_pour_trancher.
-Preamble=Pr\u00E9ambule
-Preamble_editor,_store_changes=Editeur_de_pr\u00E9ambule,_sauver_les_changements
-Preferences=Pr\u00E9f\u00E9rences
-Preferences_recorded=Pr\u00E9f\u00E9rences_enregistr\u00E9es
-Preferences_recorded.=Pr\u00E9f\u00E9rences_enregistr\u00E9es.
-Preserve_formatting_of_non-BibTeX_fields=Pr\u00E9server_le_format_des_champs_non-BibTeX
-Preview=Aper\u00E7u
-Previous_entry=Entr\u00E9e_pr\u00E9c\u00E9dente
-Previous_tab=Onglet_pr\u00E9c\u00E9dent
-Problem_with_parsing_entry=Probl\u00E8me_de_traitement_d'une_entr\u00E9e
-PS_links=Liens_PS
-push_selection_to_lyx=Envoyer_la_s\u00E9lection_dans_LyX
-Push_selection_to_WinEdt=Envoyer_la_s\u00E9lection_dans_WinEdt
-Push_to_LyX=Envoyer_vers_LyX
-Push_to_WinEdt=Envoyer_vers_WinEdt
-Pushed_the_citations_for_the_following_rows_to=Envoyer_les_citations_pour_les_lignes_suivantes_vers
-Query_author(s)=Requ\u00EAte_sur_les_auteurs
-Quit=Quitter
-Quit_JabRef=Quitter_JabRef
-Quit_synchronization=Quitter_la_synchronisation
-Raw_source=Texte_brut
-Really_delete_the_selected=Voulez-vous_vraiment_supprimer_cette
-Recent_files=Fichiers_r\u00E9cents
-Redo=R\u00E9p\u00E9ter
-Refer/Endnote=Refer/Endnote
-Reference_database=Base_de_r\u00E9f\u00E9rence
-References_found=R\u00E9f\u00E9rences_trouv\u00E9es
-Refine_supergroup:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Raffine_le_super-groupe :_Quand_s\u00e9lectionn\u00e9,_affiche_les_entr\u00e9es_contenues_\u00e0_la_fois_dans_ce_groupe_et_son_super-groupe
-Refresh_view=Rafra\u00EEchir_la_vue
-Regexp=Exp._R\u00E9g.
-Regular_Expression=Expression_r\u00E9guli\u00E8re
-Remember_these_entry_types?=Se_souvenir_de_ces_types_d'entr\u00E9es_?
-Remote_operation=Acc\u00e8s_\u00e0_distance
-Remote_server_port=Port_du_serveur_d'acc\u00e8s_\u00e0_distance
-Remove=Supprimer
-Remove_all?=Tout_supprimer_?
-Remove_all_subgroups=Supprimer_les_sous-groupes
-Remove_all_subgroups_of_"%0"?=Supprimer_tous_les_sous-groupes_de_"%0"_?
-Remove_duplicates=Supprimer_les_doublons
-Remove_entry_from_import=Supprimer_l'entr\u00e9e_de_l'importation
-Remove_entry_type=Supprimer_le_type_d'entr\u00E9e
-remove_from_group=supprimer_du_groupe
-Remove_from_group=Supprimer_du_groupe
-Remove_group=Supprimer_le_groupe
-Remove_group,_keep_subgroups=Supprimer_le_groupe,_garder_les_sous-groupes
-Remove_group_"%0"?=Supprimer_le_groupe_"%0"_?
-Remove_group_"%0"_and_its_subgroups?=Supprimer_le_groupe_"%0"_et_ses_sous-groupes_?
-remove_group_(keep_subgroups)=supprimer_le_groupe_(garder_les_sous-groupes)
-remove_group_and_subgroups=supprimer_le_groupe_et_les_sous-groupes
-Remove_group_and_subgroups=Supprimer_le_groupe_et_les_sous-groupes
-Remove_old_entry=Supprimer_l'ancienne_entr\u00e9e
-Remove_selected_strings=Supprimer_les_cha\u00EEnes_s\u00E9lectionn\u00E9es
-remove_string=enlever_la_cha\u00EEne
-remove_string_=enlever_la_cha\u00eene_
-Removed_entry_type.=Type_d'entr\u00E9e_supprim\u00E9.
-Removed_group=Groupe_supprim\u00E9
-Removed_group_"%0".=Groupe_"%0"_supprim\u00e9.
-Removed_group_"%0"_and_its_subgroups.=Groupe_"%0"_et_ses_sous-groupes_supprim\u00e9s.
-Removed_string=Cha\u00EEne_supprim\u00E9e
-Renamed_string=Cha\u00eene_renomm\u00e9e
-Repeat_incremental_search=R\u00E9p\u00E9ter_la_recherche_incr\u00E9mentale
-Replace=Remplacer
-Replace_string=Remplacer_la_cha\u00EEne
-Replace_with=Remplacer_par
-Replaced=Remplac\u00E9
-Required_fields=Champs_requis
-Reset_all=R\u00E9tablir_les_options_pr\u00E9c\u00E9dentes
-resolved=r\u00E9solu
-Results=R\u00E9sultats
-Revert_to_original_source=R\u00E9tablir_le_contenu_initial
-Review_changes=Revoir_les_changements
-Right=Droite
-RIS=RIS
-Save=Sauver
-Save_before_closing=Sauvegarde_avant_fermeture
-Save_database=Sauvegarder_la_base
-Save_database_as_...=Sauvegarder_la_base_sous_...
-Save_selected_as_...=Sauvegarder_la_s\u00E9lection_sous_...
-Save_session=Sauvegarder_la_session
-Saved_database=Base_sauvegard\u00E9e
-Saved_selected_to=Sauvegarder_la_s\u00E9lection_de
-Saved_session=Session_sauvegard\u00E9e
-Saving=Enregistrement_en_cours
-Scan=D\u00E9marrer
-SciFinder=SciFinder
-Search=Recherche
-Search_All_Fields=Recherche_dans_tous_les_champs
-Search_all_fields=Recherche_dans_tous_les_champs
-Search_error=Erreur_de_recherche
-Search_expression=Expression_\u00E0_rechercher_
-Search_for=Rechercher
-Search_General_Fields=Recherche_dans_les_champs_g\u00E9n\u00E9raux
-Search_general_fields=Recherche_dans_les_champs_g\u00E9n\u00E9raux
-Search_Optional_Fields=Recherche_dans_les_champs_optionnels
-Search_optional_fields=Recherche_dans_les_champs_optionnels
-Search_Required_Fields=Recherche_dans_les_champs_requis
-Search_required_fields=Recherche_dans_les_champs_requis
-Search_Specified_Field(s)=Recherche_dans_les_champs_sp\u00E9cifi\u00E9s
-Search_term=Rechercher_le_terme
-Searched_database._Number_of_hits=Recherche_effectu\u00E9e._Nombre_de_r\u00E9sultats_trouv\u00E9s
-Searching_for_%0_file=Recherche_du_fichier_%0
-Searching_for_duplicates...=Recherche_des_doublons_en_cours...
-Secondary_sort_criterion=Crit\u00E8re_secondaire_de_tri
-Select=S\u00E9lectionner
-Select_action=S\u00E9lectionner_l'op\u00E9ration
-Select_all=Tout_s\u00E9lectionner
-Select_entries_in_group_selection=S\u00E9lectionner_les_entr\u00E9es_dans_la_s\u00E9lection
-Select_entry_type=S\u00E9lectionner_un_type_d'entr\u00E9e
-Select_format=S\u00E9lectionner_le_format
-Select_matches=S\u00E9lectionner_les_correspondances
-Select_matching_entries=S\u00E9lection_des_entr\u00E9es_correspondant_aux_crit\u00E8res_de_recherche
-Select_the_tree_nodes_to_view_and_accept_or_reject_changes=S\u00E9lectionner_les_noeuds_de_l'arborescence_pour_voir,_et_accepter_ou_rejeter,_les_modifications
-Selector_enabled_fields=Champs_de_s\u00E9lecteur_actifs
-Set_general_fields=D\u00E9finir_les_champs_g\u00E9n\u00E9raux
-Set_table_font=D\u00E9finir_la_police_de_la_table
-Set_up_general_fields=Configurer_les_champs_g\u00E9n\u00E9raux
-Settings=Param\u00E8tres
-Setup_selectors=G\u00E9rer_les_s\u00E9lecteurs
-Short_form=Forme_courte
-Shortcut=Raccourci
-Show/edit_BibTeX_source=Montrer/\u00E9diter_le_source_BibTeX
-Show_'Firstname_Lastname'=Ordre_d'affichage_'Pr\u00E9nom_Nom'
-Show_'Lastname,_Firstname'=Ordre_d'affichage_'Nom,_Pr\u00E9nom'
-Show_abstract=Montrer_le_r\u00E9sum\u00E9
-Show_BibTeX_source_by_default=Par_d\u00E9faut,_afficher_l'onglet_Source_BibTeX
-Show_BibTeX_source_panel=Afficher_l'onglet_"Source_BibTeX"
-Show_CiteSeer_column=Afficher_la_colonne_CiteSeer
-Show_confirmation_dialog_when_deleting_entries=Demander_une_confirmation_lors_de_la_suppression_d'entr\u00E9es
-Show_dynamic_groups_in_<i>italics</i>=Afficher_les_groupes_dynamiques_en_<i>italique</i>
-Show_entries_*not*_in_group_selection=Montrer_les_entr\u00E9es_*non*_s\u00E9lectionn\u00E9es
-Show_general_fields=Montrer_les_champs_g\u00E9n\u00E9raux
-Show_groups_matching_all=Montrer_les_groupes_correspondants_\u00e0_tous
-Show_groups_matching_any=Montrer_les_groupes_correspondants_\u00e0_n'importe_quel
-Show_icons_for_groups=Afficher_les_ic\u00f4nes_pour_les_groupes
-Show_names_unchanged=Ordre_des_noms_inchang\u00E9
-Show_one_less_rows=Afficher_une_ligne_de_moins
-Show_one_more_row=Afficher_une_ligne_de_plus
-Show_optional_fields=Montrer_les_champs_optionnels
-Show_overlapping_groups=Montrer_les_groupes_se_chevauchant
-Show_PDF/PS_column=Afficher_la_colonne_PDF/PS
-Show_required_fields=Montrer_les_champs_requis
-Show_URL/DOI_column=Afficher_la_colonne_URL/DOI
-Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Afficher_un_message_d'avertissement_quand_une_clef_BibTeX_d\u00E9j\u00E0_existante_est_entr\u00E9e
-Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Afficher_une_fen\u00eatre_d'avertissement_quand_une_clef_BibTeX_vide_est_entr\u00e9e
-Simple_HTML=HTML_(simple)
-Sixpack=Sixpack
-Size_of_groups_interface_(rows)=Taille_de_l'interface_des_groupes_(lignes)
-Skip=Passer
-Sort_alphabetically=Classer_alphab\u00e9tiquement
-Sort_Automatically=Trier_automatiquement
-Sort_options=Options_du_tri
-sort_subgroups=trier_les_sous-groupes
-Sorted_all_subgroups_recursively=Tous_les_sous-groupes_r\u00e9cursivement_tri\u00e9s
-Sorted_all_subgroups_recursively.=Tous_les_sous-groupes_r\u00e9cursivement_tri\u00e9s.
-Sorted_immediate_subgroups=Sous-groupes_directs_tri\u00e9s
-Sorted_immediate_subgroups.=Sous-groupes_directs_tri\u00e9s.
-source_edit=\u00E9dition_du_source
-Special_table_columns=Colonnes_de_tableau_particuli\u00E8res
-Start=D\u00E9marrer
-Start_incremental_search=D\u00E9marrer_la_recherche_incr\u00E9mentale
-Start_search=D\u00e9buter_la_recherche
-Statically_group_entries_by_manual_assignment=Grouper_manuellement_les_entr\u00E9es
-Status=Etat
-Stop=Arr\u00eat
-Store=Enregistrer
-Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Enregistrer_les_champs_avec_des_doubles_accolades_et_supprimer_les_accolades_suppl\u00e9mentaires_au_chargement._<BR>Les_doubles_accolades_signalent_que_BibTeX_doit_pr\u00e9server_la_casse_des_caract\u00e8res.
-Store_string=Enregistrer_la_cha\u00EEne
-Stored_definition_for_type=D\u00E9finition_pour_le_type_enregistr\u00E9
-Stored_entry=Entr\u00E9e_enregistr\u00E9e
-Stored_entry.=Entr\u00E9e_stock\u00E9e.
-Strings=Cha\u00EEne
-Strings_for_database=Cha\u00EEnes_pour_la_base :
-subdatabase_from_aux=BibTeX_\u00E0_partir_de_LaTex_aux
-Subdatabase_from_aux=BibTeX_\u00E0_partir_de_LaTex_aux
-Suggest=Sugg\u00E9rer
-Switch_preview_layout=Pr\u00E9visualiser_la_mise_en_page
-Synchronize_%0_links=Synchroniser_les_liens_%0
-Synchronizing_%0_links...=Synchronisation_des_liens_%0...
-Table=Table
-Table_appearance=Apparence_de_la_table
-Tabname=Nom_d'onglet
-Tertiary_sort_criterion=Crit\u00E8re_tertiaire_de_tri
-Test=Test
-Text_Input_Area=Zone_de_saisie_du_texte
-The_#_character_is_not_allowed_in_BibTeX_fields=Le_caract\u00E8re_#_est_interdit_dans_un_champ_BibTeX
-The_CiteSeer_fetch_operation_returned_zero_results.=La_recherche_CiteSeer_n'a_retourn\u00E9_aucun_r\u00E9sultat.
-the_field_<b>%0</b>=le_champ_<b>%0</b>
-The_file<BR>'%0'<BR>has_been_modified<BR>externally!=Le_fichier<BR>'%0'<BR>a_\u00e9t\u00e9_modifi\u00e9_<BR>externalement !
-The_group_"%0"_already_contains_the_selection.=Le_groupe_"%0"_contient_d\u00e9j\u00e0_la_s\u00e9lection.
-The_group_"%0"_does_not_support_the_adding_of_entries.=Le_groupe_"%0"_ne_supporte_pas_l'ajout_des_entr\u00e9es.
-The_group_"%0"_does_not_support_the_removal_of_entries.=Le_groupe_"%0"_ne_supporte_pas_la_suppression_des_entr\u00e9es.
-The_label_of_the_string_can_not_be_a_number.=L'intitul\u00E9_de_la_cha\u00EEne_ne_peut_\u00EAtre_un_nombre.
-The_label_of_the_string_can_not_contain_spaces.=Un_nom_de_cha\u00eene_ne_peut_pas_contenir_d'espaces.
-The_label_of_the_string_can_not_contain_the_'#'_character.=Le_nom_de_la_cha\u00eene_ne_peut_pas_contenir_le_caract\u00e8re_'#'.
-The_output_option_depends_on_a_valid_import_option.=L'option_de_sortie_d\u00e9pend_d'une_option_d'importation_valide.
-The_regular_expression_<b>%0</b>_is_invalid%c=L'expression_r\u00e9guli\u00e8re_<b>%0</b>_est_invalide%c
-The_search_is_case_insensitive.=La_recherche_n'est_pas_sensible_\u00e0_la_casse.
-The_search_is_case_sensitive.=La_recherche_est_sensible_\u00e0_la_casse.
-The_string_has_been_removed_locally=La_cha\u00EEne_a_\u00E9t\u00E9_supprim\u00E9e_localement
-The_type_name_can_not_contain_spaces.=Le_nom_d'un_type_ne_peut_pas_contenir_d'espaces.
-The_URL_field_appears_to_be_empty_on_entry_number_=Le_champ_URL_semble_\u00eatre_vide_pour_l'entr\u00e9e_num\u00e9ro_
-There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?=Il_y_a_des_doublons_potentiels_(marqu\u00e9_avec_un_ic\u00f4ne_'D')_qui_n'ont_pas_\u00e9t\u00e9_r\u00e9solus._Continuer_?
-There_is_no_entry_type=Il_n'y_a_pas_de_type_d'entr\u00E9e
-This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=Cette_action_modifiera_le_champ_"%0"_de_vos_entr\u00e9es._Cela_pourrait_causer_des_changements_involontaires_dans_vos_entr\u00e9es,_aussi_il_n'est_pas_recommand\u00e9_que_vous_changiez_ce_champ_dans_votre_d\u00e9finition_de_groupe_par_"keywor [...]
-this_button_will_update=Ce_bouton_sera_mis_\u00e0_jour
-this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table=ce_bouton_mettra_\u00E0_jour_les_param\u00E8tres_des_largeurs_des_colonnes<BR>pour_retenir_les_largeurs_actuelles_de_votre_table
-This_entry_is_incomplete=Cette_entr\u00E9e_est_incompl\u00E8te
-This_entry_type_cannot_be_removed.=Ce_type_d'entr\u00E9e_ne_peut_pas_\u00EAtre_supprim\u00E9.
-This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._Entries_can_be_removed_from_this_group_by_selecting_them_then_using_the_context_menu._Every_entry_assigned_to_this_group_must_have_a_unique_key._The_key_may_be_changed_at_any_time_as_long_as_it_remains_unique.=Ce_groupe_contient_des_entr\u00e9es_bas\u00e9es_sur_un_ajout_manuel._Des_entr\u00e9es_peuvent_\u00eatre_ajout\u00e9es [...]
-This_group_contains_entries_in_which=Ce_groupe_contient_des_entr\u00e9es_pour_lesquelles
-This_group_contains_entries_in_which_any_field_contains_the_regular_expression_<b>%0</b>=Ce_groupe_contient_des_entr\u00e9es_dans_lesquelles_un_champ_contient_l'expression_r\u00e9guli\u00e8re_<b>%0</b>
-This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>=Ce_groupe_contient_des_entr\u00e9es_dans_lesquelles_un_champ_contient_le_terme_<b>%0</b>
-This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>=Ce_groupe_contient_des_entr\u00e9es_dont_le_champ_<b>%0</b>_contient_le_mot-clef_<b>%1</b>
-This_group_contains_entries_whose_<b>%0</b>_field_contains_the_regular_expression_<b>%1</b>=Ce_groupe_contient_des_entr\u00e9es_dont_le_champ_<b>%0</b>_contient_l'expression_r\u00e9guli\u00e8re_<b>%1</b>
-This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=Cette_fen\u00EAtre_fonctionne_par_copier-coller._Commencer_par_charger_ou_coller_du_texte_dans_la_zone_de_saisie_du_texte._Ensuite,_vous_pouvez_s\u00E9lectionner_le_texte_et_attribuer_\u00E0_un_champ_BibTeX.
-This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=Ceci_est_simplement_une_fen\u00eatre_de_copier-coller_pour_importer_certains_champs_\u00e0_partir_d'un_texte_normal
-This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=Cela_conduit_JabRef_\u00e0_tester_chaque_lien_%0_et_\u00e0_v\u00e9rifier_si_le_fichier_existe._Dans_la_n\u00e9gative,_des_options_vous_seront_propos\u00e9es<BR>pour_r\u00e9soudre_le_probl\u00e8me.
-This_operation_cannot_work_on_multiple_rows.=Cette_op\u00E9ration_ne_peut_pas_\u00EAtre_effectu\u00E9e_sur_plusieurs_lignes.
-Toggle_entry_preview=Afficher/Masquer_l'aper\u00E7u
-Toggle_groups_interface=Afficher/Masquer_l'interface_des_groupes
-Toggle_search_panel=Afficher/Masquer_la_fen\u00EAtre_de_recherche
-Tools=Outils
-Type=Type
-Type_set_to_'other'=Type_configur\u00E9_comme_'other'_(autre)
-unable_to_access_LyX-pipe=Incapable_d'acc\u00E9der_au_canal_de_transmission_LyX
-Unable_to_create_graphical_interface=Incapable_de_cr\u00e9er_l'interface_graphique
-Unable_to_parse_clipboard_text_as_Bibtex_entries.=Incapable_de_traiter_le_texte_du_presse-papiers_comme_des_entr\u00e9es_BibTeX.
-Unable_to_parse_the_following_URL=Incapable_de_traiter_l'ULR_suivante
-unable_to_write_to=Incapable_d'\u00e9crire_sur
-Undo=Annuler
-Union=Union
-unknown_bibtex_entries=entr\u00e9es_BibTeX_inconnues
-Unknown_bibtex_entries=Entr\u00E9es_BibTeX_inconnues
-unknown_edit=\u00e9dition_inconnue
-unknown_entry_type=type_d'entr\u00E9e_inconnue
-Unknown_export_format=Format_d'exportation_inconnu
-Unmark_all=Tout_d\u00E9s\u00E9tiqueter
-Unmark_entries=D\u00E9s\u00E9tiqueter_des_entr\u00E9es
-Unmark_entry=D\u00E9s\u00E9tiqueter_l'entr\u00E9e
-Unmarked_selected=D\u00E9s\u00E9tiquetage_de_la_s\u00E9lection
-Unpack_EndNote_filter_set=D\u00E9compacter_la_s\u00E9rie_de_filtres_EndNote
-Unpacked_file=Fichier_d\u00e9compact\u00e9
-Unpacked_file.=Fichier_d\u00e9compact\u00e9.
-Unsupported_version_of_class_%0:_%1=Version_non_support\u00e9e_de_la_classe_%0 :_%1
-untitled=sans_titre
-Up=Haut
-Update_to_current_column_widths=Figer_les_largeurs_des_colonnes_actuelles
-Updated_group_selection=S\u00E9lection_de_groupe_mise_\u00E0_jour
-Updating_entries...=Mise_\u00E0_jour_des_entr\u00E9es...
-UPPER=MAJUSCULE
-Upper_Each_First=Chaque_Premi\u00E8re_Lettre_En_Majuscule
-Upper_first=Premi\u00E8re_lettre_en_majuscule
-usage=usage
-Use_antialiasing_font_in_table=Utiliser_une_police_liss\u00E9e_dans_la_table
-Use_inspection_window_also_when_a_single_entry_is_imported.=Utiliser_la_fen\u00eatre_d'inspection_m\u00eame_quand_une_seule_entr\u00e9e_est_import\u00e9e.
-Use_other_look_and_feel=Utiliser_une_autre_apparence
-Use_regular_expressions=Utiliser_les_expressions_r\u00E9guli\u00E8res
-Use_the_following_delimiter=Utiliser_le_d\u00E9limiteur_suivant
-Use_the_following_delimiter_character(s)=Utiliser_le(s)_caract\u00e8re(s)_de_s\u00E9paration_suivant(s)
-Uses_default_application=Utilise_l'application_par_d\u00e9faut
-Value_cleared_externally=Valeur_supprim\u00E9e_externalement
-Value_set_externally=Valeur_param\u00E9tr\u00E9e_externalement_
-verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid=v\u00E9rifier_que_LyX_tourne_et_que_le_canal_de_transmission_LyX_est_valide
-View=Aper\u00E7u
-Visible_fields=Champs_visibles
-Warn_about_unresolved_duplicates_when_closing_inspection_window=Avertir_des_doublons_non_r\u00e9solus_lors_de_la_fermeture_de_la_fen\u00eatre_d'inspection
-Warn_before_overwriting_existing_keys=Avertir_avant_d'\u00E9craser_des_clefs_existantes
-Warning=Avertissement
-Warning_there_is_a_duplicate_key=Avertissement_%c_il_y_a_une_clef_dupliqu\u00e9e
-Warnings=Messages_d'avertissement
-web_link=Lien_internet
-When_adding/removing_keywords,_separate_them_by=Lors_de_l'ajout/suppression_de_mots-clef,_les_s\u00e9parer_avec
-with=avec
-Word=Mot
-Wrong_file_format=Format_de_fichier_incorrect
-You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=Vous_avez_modifi\u00E9_la_langue._Vous_devez_red\u00E9marrer_JabRef_pour_que_ce_changement_prenne_effet.
-You_have_cleared_this_field._Original_value=Vous_avez_vid\u00e9_ce_champ._Valeur_originale
-You_must_enter_an_integer_value_in_the_text_field_for=Vous_devez_entrer_une_valeur_enti\u00e8re_dans_le_champ_texte_pour
-You_must_fill_in_a_name_for_the_entry_type.=Vous_devez_fournir_un_nom_pour_le_type_d'entr\u00E9e.
-You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=Vous_devez_fournir_un_nom,_une_cha\u00EEne_\u00E0_rechercher_et_un_nom_de_champ_pour_ce_groupe.
-You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.=Vous_devez_relancer_JabRef_pour_que_les_nouvelles_affectations_des_touches_soient_activ\u00E9es
-You_must_select_a_row_to_perform_this_operation.=Vous_devez_s\u00E9lectionner_une_ligne_pour_effectuer_cette_op\u00E9ration.
-You_must_select_at_least_one_row_to_perform_this_operation.=Vous_devez_s\u00E9lectionner_au_moins_une_colonne_pour_effectuer_cette_op\u00E9ration.
-You_must_set_both_BibTeX_key_and_%0_directory=Vous_devez_d\u00E9finir_\u00E0_la_fois_la_clef_BibTeX_et_le_r\u00E9pertoire_%0
-You_must_set_both_bibtex_key_and_PDF_directory=You_must_set_both_bibtex_key_and_PDF_directory
-Your_new_key_bindings_have_been_stored.=Votre_nouvelle_affectation_de_touche_a_\u00E9t\u00E9_sauvegard\u00E9e
-Manage_custom_imports=G\u00e9rer_les_importations_personnalis\u00e9es
-Select_Classpath_of_New_Importer=S\u00e9lectionner_le_chemin_de_classe_du_nouveau_filtre_d'importation
-Select_new_ImportFormat_Subclass=S\u00e9lectionner_une_nouvelle_sous-classe_ImportFormat
-Could_not_instantiate_%0_%1=N'a_pas_pu_initialiser_%0_%1
-Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=Ajouter_une_classe_ImportFormat_personnalis\u00e9e_(compil\u00e9e)_\u00e0_partir_d'un_chemin_de_classe._\nLe_chemin_n'a_pas_besoin_d'\u00eatre_dans_le_chemin_de_classe_de_JabRef.
-Please_select_an_importer=S\u00e9lectionner_un_filtre_d'importation,_SVP
-Import_name=nom_Import
-Command_line_id=Identifiant_de_la_ligne_de_commande
-ImportFormat_class=Classe_ImportFormat
-Contained_in=Contenu_dans
-Show_description=Montrer_la_description
-Add_from_folder=Ajouter_\u00e0_partir_du_r\u00e9pertoire
-Custom_importers=Filtres_d'importation_personnalis\u00e9s
-No_custom_imports_registered_yet.=Pas_encore_d'importation_personnalis\u00e9e_enregistr\u00e9e
-Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Abr\u00e9ger_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es_(abr\u00e9viations_ISO)
-Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Abr\u00e9ger_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es_(abr\u00e9viations_MEDLINE)
-Background_color_for_marked_entries=Couleur_d'arri\u00e8re-plan_pour_les_entr\u00e9es_marqu\u00e9es
-Background_color_for_optional_fields=Couleur_d'arri\u00e8re-plan_pour_les_champs_optionnels
-Background_color_for_required_fields=Couleur_d'arri\u00e8re-plan_pour_les_champs_requis
-Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Choisir_l'URL_de_t\u00e9l\u00e9chargement._La_valeur_par_d\u00e9faut_pointe_vers_une_liste_fournie_par_les_d\u00e9veloppeurs_de_JabRef
-Color_for_marking_incomplete_entries=Couleur_pour_marque_les_entr\u00e9es_incompl\u00e8tes
-Do_not_abbreviate_names=Ne_pas_abr\u00e9ger_les_noms
-Do_not_wrap_the_following_fields_when_saving=Ne_pas_renvoyer_\u00e0_la_ligne_les_champs_suivants_lors_de_la_sauvegarde
-External_files=Fichiers_externes
-File_'%0'_not_found=Fichier_'%0'_non_trouv\u00e9
-Journal_abbreviations=Abr\u00e9viations_de_journaux
-Journal_name=Nom_du_journal
-Manage_journal_abbreviations=G\u00e9rer_les_abr\u00e9viations_de_journaux
-Natbib_style=Style_Natbib
-New_file=Nouveau_fichier
-Personal_journal_list=Liste_personnelle_de_journaux
-Remove_double_braces_around_BibTeX_fields_when_loading.=Supprimer_les_doubles_accolades_autour_des_champs_BibTeX_\u00e0_l'ouverture
-Store_the_following_fields_with_braces_around_capital_letters=Stocker_les_champs_suivants_avec_des_accolades_autour_des_lettres_capitales
-Table_background_color=Couleur_d'arri\u00e8re-plan_de_la_table
-Table_grid_color=Couleur_de_la_grille_de_la_table
-Table_text_color=Couleur_du_texte_de_la_table
-Toggle_abbreviation=Afficher/Masquer_l'abr\u00e9viation
-Unabbreviate_journal_names_of_the_selected_entries=D\u00e9velopper_les_noms_de_journaux_des_entr\u00e9es_s\u00e9lectionn\u00e9es
-Use_antialiasing_font=Utiliser_une_police_liss\u00e9e
-Abbreviate_names=Abr\u00e9ger_les_noms
-Abbreviation=Abr\u00e9viation
-ISO_abbreviation=Abr\u00e9viation_ISO
-Edit_journal=Editer_le_journal
-Existing_file=Fermeture_du_fichier_en_cours
-Saving_database=Sauvegarde_de_la_base_en_cours
-Normal=Normale
-Default_sort_criteria=Crit\u00e8re_de_tri_par_d\u00e9faut
-Primary_sort_criterion=Crit\u00e8re_de_tri_principal
-Database_properties=Propri\u00E9t\u00E9s_de la base de donn\u00e9es
-Database_encoding=Encodage_de_la_base_de_donn\u00e9es
-No_journal_names_could_be_abbreviated.=Aucun_nom_de_journal_n'a_pu_\u00eatre_abr\u00e9g\u00e9.
-No_journal_names_could_be_unabbreviated.=Aucun_nom_de_journal_n'a_pu_\u00eatre_d\u00e9velopp\u00e9.
-Save_failed=Echec_de_la_sauvegarde
-Pushed_citations_to_WinEdt=Citations_envoy\u00e9es_vers_WinEdt
-Try_different_encoding=Essayer_un_encodage_diff\u00e9rent
-Select_encoding=S\u00e9lectionner_l'encodage
-The_chosen_date_format_for_new_entries_is_not_valid=Le_format_de_date_choisi_pour_les_nouvelles_entr\u00e9es_n'est_pas_valide
-Invalid_date_format=Format_de_date_invalide
-Review=V\u00e9rification
-Journal_names=Noms_de_journaux
-Save_failed_during_backup_creation=La_sauvegarde_a_\u00e9chou\u00e9e_durant_la_cr\u00e9ation_de_la_copie_de_secours
-Save_failed_while_committing_changes=La_sauvegarde_a_\u00e9chou\u00e9e_lors_de_la_soumission_des_changements
-Full_name=Nom_complet
-Store_journal_abbreviations=Stocker_les_abr\u00e9viations_de_journaux
-You_must_choose_a_file_name_to_store_journal_abbreviations=Vous_devez_choisir_un_nom_de_fichier_pour_stocker_les_abr\u00e9viations_de_journaux
-Journal_list_preview=Pr\u00e9visualisation_de_la_liste_des_journaux
-
-Add_from_jar=Ajouter_\u00e0_partir_de_jar
-Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Ajouter_une_classe_ImportFormat_personnalis\u00e9e_(compil\u00e9e)_\u00e0_partir_d'une_archive_ZIP._\nL'archive_ZIP_n'a_pas_besoin_d'\u00eatre_dans_le_chemin_de_classe_de_JabRef.
-Select_a_Zip-archive=S\u00e9lectionner_une_archive_ZIP
-Select_file_from_ZIP-archive=S\u00e9lectionner_un_fichier_depuis_une_archive_ZIP
-Last_modified=Dernier_modifi\u00e9
-Size=Taille
-Please_select_an_importer.=S\u00e9lectionner_un_filtre_d'importation,_SVP.
-
-Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Arguments_transmis_\u00e0_l'instance_JabRef active.
-Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=La_connexion_\u00e0_un_processus gnuserv_actif_a_\u00e9chou\u00e9._Assurez-vous_qu'Emacs_ou_XEmacs_soit_actif,<BR>et_que_le_serveur_a_\u00e9t\u00e9_d\u00e9marr\u00e9_(avec_la_commande_'gnuserv-start').
-
-Push_selection_to_Emacs=Envoyer_la_s\u00E9lection_dans_Emacs
-Pushed_citations_to_Emacs=Envoyer_les_citations_dans_Emacs
-
-Filter=Filtre
-Hide_non-matching_entries=Masquer_les_entr\u00E9es_non_correspondantes
-Replace_(regular_expression)=Remplacer_(expression_r\u00e9guli\u00e8re)
-
-Cite_command_(for_Emacs/WinEdt)=Commande_de_citation_(pour_Emacs/WinEdt)
-
-Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=%0_%1_a_\u00e9chou\u00e9._Avez-vous_choisi_le_chemin_de_paquetage_correct_?
-No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Pas_d'entr\u00e9es_trouv\u00e9es._Assurez-vous,_SVP,_que_vous_utilisez_le_filtre_d'importation_appropri\u00e9.
-
-Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Basculer_entre_les_noms_de_journaux_d\u00e9velopp\u00e9s_et_abr\u00e9g\u00e9s_si_le_nom_de_journal_est_connu. 
-To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=Pour_configurer,_voir_<B>Outils_->_G\u00e9rer_les_abr\u00e9viations_de_journaux</B>
-
-Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Le_programme_'gnuclient'_n'a_pas_pu_\u00eatre_lanc\u00e9._Assurez-vous_que_les_programmes_gnuserv/gnuclient_sont_install\u00e9s.
diff --git a/src/resource/JabRef_it.properties b/src/resource/JabRef_it.properties
new file mode 100644
index 0000000..4c3acd5
--- /dev/null
+++ b/src/resource/JabRef_it.properties
@@ -0,0 +1,1075 @@
+#!
+#! created/edited by Popeye version 0.53a (popeye.sourceforge.net)
+#! encoding:ISO-8859-1
+
+!This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=!Questo_\u00e8_un_semplice_dialogo_taglia_e_copia._Prima_inserisci_o_incolla_del_testo_nell'area_di_input._Quindi_puoi_evidenziare_il_testo_ed_assegnarlo_ad_un_campo_BibTeX.
+%0_contains_the_Regular_Expression_<b>%1</b>=%0_contiene_l'Espressione_Regolare_<b>%1</b>
+%0_contains_the_term_<b>%1</b>=%0_contiene_il_termine_<b>%1</b>
+%0_doesn't_contain_the_Regular_Expression_<b>%1</b>=%0_non_contiene_l'Espressione_Regolare_<b>%1</b>
+%0_doesn't_contain_the_term_<b>%1</b>=%0_non_contiene_il_termine_<b>%1</b>
+%0_doesn't_match_the_Regular_Expression_<b>%1</b>=%0_non_corrisponde_all'Espressione_Regolare_<b>%1</b>
+%0_doesn't_match_the_term_<b>%1</b>=%0_non_corrisponde_al_termine_<b>%1</b>
+%0_field_set=Definizione_del_campo_%0
+%0_import_cancelled.=Importazione_di_%0_interrotta
+%0_matches_the_Regular_Expression_<b>%1</b>=%0_corrisponde_all'Espressione_Regolare_<b>%1</b>
+%0_matches_the_term_<b>%1</b>=%0_corrisponde_al_termine_<b>%1</b>
+<field_name>=<nome_del_campo>
+<HTML>Unpack_the_zip_file_containing_import/export_filters_for_Endnote,<BR>for_optimal_interoperability_with_JabRef</HTML>=<HTML>Decompattare_il_file_zip_contenente_i_filtri_import/export_per_EndNote,<BR>per_una_interoperabilit\u00E0_ottimale_con_JabRef</HTML>
+<no_field>=<nessun_campo>
+<select>=<seleziona>
+<select_word>=<select_word>
+_on_entry_number_=_per_la_voce_numero_
+A_CiteSeer_fetch_operation_is_currently_in_progress.=Una_operazione_di_ricerca_su_CiteSeer_\u00E8_in_corso
+A_CiteSeer_import_operation_is_currently_in_progress.=Una_operazione_di_importazione_da_CiteSeer_\u00E8_in_corso
+A_string_with_that_label_already_exists=Una_stringa_con_questo_nome_esiste_gi\u00E0
+Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Abbrevia_i_nomi_dei_giornali_delle_voci_selezionate_(abbreviazioni_ISO)
+Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Abbrevia_i_nomi_dei_giornali_delle_voci_selezionate_(abbreviazioni_MEDLINE)
+Abbreviate_names=Abbrevia_i_nomi
+Abbreviation=Abbreviazione
+About_JabRef=Informazioni_su_JabRef
+Abstract=Riassunto
+Accept=Accetta
+Accept_change=Accetta_la_modifica
+Action=Azione
+Add=Aggiungi
+Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=Aggiungi_una_classe_ImportFormat_personalizzata_(compilata)_da_un_percorso._\nIl_percorso_non_deve_necessariamente_essere_nel_classpath_di_JabRef.
+Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Aggiungi_una_classe_ImportFormat_personalizzata_(compilata)_da_un_archivio_ZIP._\nL'archivio_ZIP_non_deve_necessariamente_essere_nel_classpath_di_JabRef.
+add_entries_to_group=aggiungi_voci_ad_un_gruppo
+Add_entry_selection_to_this_group=Aggiungi_le_voci_selezionate_a_questo_gruppo
+Add_from_folder=Aggiungi_da_una_cartella
+Add_from_jar=Aggiungi_da_un_file_jar
+add_group=aggiungi_un_gruppo
+Add_Group=Aggiungi_un_gruppo
+Add_new=Aggiungi_nuovo
+Add_Subgroup=Aggiungi_un_sottogruppo
+Add_to_group=Aggiungi_al_gruppo
+Added_entry=Aggiunta_voce
+Added_group=Aggiunto_gruppo
+Added_group_"%0".=Aggiunto_gruppo_"%0".
+Added_new=Aggiunto_nuovo
+Added_string=Aggiunta_stringa
+Additionally,_entries_whose_<b>%0</b>_field_does_not_contain_<b>%1</b>_can_be_assigned_manually_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._This_process_adds_the_term_<b>%1</b>_to_each_entry's_<b>%0</b>_field._Entries_can_be_removed_manually_from_this_group_by_selecting_them_then_using_the_context_menu._This_process_removes_the_term_<b>%1</b>_from_each_entry's_<b>%0</b>_field.=Inoltre,_le_voci_il_cui_campo_<b>%0</b>_non_contiene_<b>%1</b>_possono_ [...]
+Advanced=Avanzato
+Advanced_options_for_setting...=Opzioni_di_configurazione_avanzate...
+All_Entries=Tutte_le_voci
+All_entries=Tutte_le_voci
+All_entries_of_this_type_will_be_declared_typeless._Continue?=Tutte_le_voci_simili_saranno_coonsiderate_"senza_tipo"._Continuare?
+All_fields=Tutti_i_campi
+All_subgroups_(recursively)=Tutti_i_sottogruppi_(ricorsivamente)
+Allow_editing_in_table_cells=Consenti_la_modifica_nelle_celle_della_tabella
+Always_save_database_ordered_by_author_name=Salva_sempre_il_database_ordinato_per_nome_dell'autore
+and=e
+and_the_class_must_be_available_in_your_classpath_next_time_you_start_JabRef.=e_la_classe_deve_essere_nel_tuo_"classpath"_al_successivo_avvio_di_JabRef.
+any_field_that_matches_the_regular_expression_<b>%0</b>=qualsiasi_campo_che_corrisponda_all'espressione_regolare_<b>%0</b>
+Appearance=Aspetto
+Append=Accoda
+Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Accoda_il_contenuto_di_un_database_BibTeX_al_database_corrente
+Append_database=Accoda_database
+append_the_selected_text_to_bibtex_key=accoda_il_testo_selezionato_alla_chiave_BibTeX
+Apply=Applica
+Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Argomenti_passati_all'istanza_attiva_di_JabRef._Chiusura_in_corso.
+Assign_entries_based_on:=Assegna_le_voci_in_base_a:
+Assign_entry_selection_exclusively_to_this_group=Assegna_le_voci_selezionate_esclusivamente_a_questo_gruppo
+Assign_new_file=Assegna_un_nuovo_file
+Assign_the_original_group's_entries_to_this_group?=Assegnare_le_voci_originali_del_gruppo_a_questo_gruppo?_
+Assigned_%0_entries_to_group_"%1".=Assegnate_%0_voci_al_gruppo_"%1".
+Assigned_1_entry_to_group_"%0".=Una_voce_assegnata_al_gruppo_"%0".
+Attach_%0_file=Allega_%0_file
+Attach_URL=Allega_URL
+Attempt_to_autoset_%0_links_for_your_entries._Autoset_works_if_a_%0_file_in_your_%0_directory_or_a_subdirectory<BR>is_named_identically_to_an_entry's_BibTeX_key,_plus_extension.=Tentativo_di_definire_automaticamente_%0_collegamenti_per_le_tue_voci._La_definizione_avviene_automaticamente_se_un_file_%0_nella_cartella_%0_o_sottocartella<BR>ha_lo_stesso_nome_della_chiave_di_una_voce_BibTeX,_a_meno_dell'estensione.
+Auto=Auto
+Autodetect_format=Rivelamento_automatico_del_formato
+Autogenerate_BibTeX_key=Generazione_automatica_della_chiave_BibTeX
+Autogenerate_BibTeX_keys=Generazione_automatica_delle_chiavi_BibTeX
+Autogenerate_groups=Generazione_automatica_dei_gruppi
+autogenerate_keys=generazione_automatica_delle_chiavi
+Automatically_create_groups=Crea_automaticamente_i_gruppi
+Automatically_create_groups_for_database.=Crea_automaticamente_i_gruppi_per_il_database
+Automatically_created_groups=Gruppi_creati_automaticamente
+Automatically_hide_groups_interface_when_switching_to_a_database_that_contains_no_groups=Nascondi_automaticamente_l'interfaccia_dei_gruppi_nel_passare_ad_un_database_che_non_contiene_gruppi
+Automatically_show_groups_interface_when_switching_to_a_database_that_contains_groups=Mostra_automaticamente_l'interfaccia_dei_gruppi_nel_passare_ad_un_database_che_contiene_gruppi
+Autoset=Definisci_automaticamente
+Autoset_%0_field=Definisci_automaticamente_il_campo_%0
+Autoset_%0_links._Allow_overwriting_existing_links.=Definisci_automaticamente_%0_collegamenti._Consenti_la_sovrascrittura_dei_collegamenti_esistenti.
+Autoset_%0_links._Do_not_overwrite_existing_links.=Definisci_automaticamente_%0_collegamenti._Non_consentire_la_sovrascrittura_dei_collegamenti_esistenti.
+Autosetting_%0_field...=Definizione_automatica_del_campo_%0...
+AUX_File_import=importa_file_AUX
+AUX_file_import=Importa_file_AUX
+Available_export_formats=Formati_di_esportazione_disponibili
+Available_fields=Campi_BibTeX_disponibili
+Available_import_formats=Formati_di_importazione_disponibili
+Background_color_for_marked_entries=Colore_di_sfondo_per_le_voci_contrassegnate
+Background_color_for_optional_fields=Colore_di_sfondo_per_i_campi_facoltativi
+Background_color_for_required_fields=Colore_di_sfondo_per_i_campi_obbligatori
+Backup_old_file_when_saving=Fare_una_copia_di_backup_del_vecchio_file_quando_viene_salvato
+Bibkey_to_filename_conversion=Conversione_della_chiave_BibTeX_in_nome_del_file
+Biblioscape_Tag_file=File_di_tag_Biblioscape
+BibTeX=BibTeX
+BibTeX_key=Chiave_BibTeX
+BibTeX_key_is_unique.=La_chiave_BibTeX_\u00e8_unica.
+BibTeX_key_not_set._Enter_a_name_for_the_downloaded_file=Chiave_BibTeX_non_definita._Inserire_un_nome_per_il_file_scaricato
+BibTeX_source=Sorgente_BibTeX
+BibTeXML=BibTeXML
+BibTeXML_File=File_BibTeXML
+# Usually used the english word.
+Binding=Binding
+Broken_link=Collegamento_interrotto
+Browse=Sfoglia
+# Unsure how to translate out of context
+by=da
+Calling_external_viewer...=Chiamata_a_visualizzatore_esterno...
+Cancel=Annulla
+Cannot_add_entries_to_group_without_generating_keys._Generate_keys_now?=Le_voci_non_possono_essere_inserite_in_un_gruppo_se_prive_di_chiave._Generare_le_chiavi_ora?
+Cannot_merge_this_change=Questa_modifica_non__pu\u00f2_essere_incorporata
+# discrepancy with the french. According to that tanslation should read:
+# Cannot_move_group=Impossibile_spostare_il_gruppo_"%0"
+Cannot_move_group=Impossibile_spostare_il_gruppo
+Cannot_move_group_"%0"_down.=Impossibile_spostare_il_gruppo_"%0"_in_gi\u00f9
+Cannot_move_group_"%0"_left.=Impossibile_spostare_il_gruppo_"%0"_a_sinistra
+Cannot_move_group_"%0"_right.=Impossibile_spostare_il_gruppo_"%0"_a_destra
+Cannot_move_group_"%0"_up.=Impossibile_spostare_il_gruppo_"%0"_in_su
+case_insensitive=non_distingue__maiuscole_e_minuscole
+case_sensitive=distingue__maiuscole_e_minuscole
+Case_sensitive=Distingue__maiuscole_e_minuscole
+change_assignment_of_entries=modifica_l'assegnazione_delle_voci
+Change_case=Inverti_maiuscola/minuscola
+Change_entry_type=Cambia_tipo_di_voce
+change_key=modifica_la_chiave_BibTeX
+Change_of_Grouping_Method=Cambia_Metodo_di_Raggruppamento
+change_preamble=modifica_il_preambolo
+change_string_content=modifica_il_contenuto_della_stringa
+change_string_name=modifica_il_nome_della_stringa
+change_type=cambia_tipo
+changed_=cambiato_
+Changed_font_settings=Parametri_dei_font_modificati
+Changed_language_settings=Parametri_della_lingua_modificati
+Changed_look_and_feel_settings=Parametri_del_"Look-and-Feel"_modificati
+Changed_preamble=Preambolo_modificato
+Changed_type_to=Tipo_cambiato_in_
+Characters_to_ignore=Caratteri_da_ignorare
+# Unsure. Is %0 the number of links?
+Check_existing_%0_links=Verificare_i_%0_collegamenti_esistenti
+Check_links=Verificare_i_collegamenti
+Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Scegliere_l'URL_da_scaricare._Il_valore_predefinito_punta_ad_una_lista_fornita_dagli_sviluppatori_di_JabRef
+Citation_import_from_CiteSeer_failed.=L'importazione_delle_citazioni_da_CiteSeer_\u00e8_fallita
+Cite_command_(for_Emacs/WinEdt)=Comando_di_citazione_(per_Emacs/WinEdt)
+CiteSeer_Error=Errore_CiteSeer
+CiteSeer_Fetch_Error=Errore_nel_recupero_da_CiteSeer
+CiteSeer_import_entries=Voci_da_importare_da_CiteSeer
+CiteSeer_Import_Error=Errore_di_importazione_da_CiteSeer
+CiteSeer_Import_Fields=Campi_di_importazione_da_CiteSeer
+CiteSeer_Transfer=Trasferimento_da_CoteSeer
+CiteSeer_Warning=Avvertimento_CiteSeer
+Class_name=Nome_della_classe
+Clear=Svuota
+clear_all_groups=svuota_tutti_i_gruppi
+Clear_field=Svuota_il_campo
+# Unsure the translation below
+Clear_highlight=Rimuovi_l'evidenziazione
+Clear_highlighted=Svuota_evidenziati
+Clear_highlighted_groups=Svuota_i_gruppi_evidenziati
+Clear_inputarea=Svuota_l'area_di_input
+Clear_search=Cancella_la_ricerca
+Close=Chiudi
+Close_database=Chiudi_il_database
+Close_dialog=Chiudi_la_finestra_di_dialogo
+Close_entry_editor=Chiudi_la_modifica_della_voce
+Close_preamble_editor=Chiudi_la_modifica_del_preambolo
+Close_the_current_database=Chiudi_il_database_corrente
+Close_the_help_window=Chiudi_la_finestra_di_aiuto
+Close_window=Chiudi_la_finestra
+Closed_database=Database_chiuso
+Collapse_subtree=Collassa_il_sotto-albero
+Color_codes_for_required_and_optional_fields=Codifica_a_colori_per_campi_obbligatori_e_opzionali
+Color_for_marking_incomplete_entries=Colore_per_contrassegnare_voci_incomplete
+Column_width=Larghezza_della_colonna
+Command_line_id=Identificativo_della_riga_di_comando
+# Not sure: "Registrazione completa" ?
+Complete_record=Completa_la_registrazione
+Completed_citation_import_from_CiteSeer.=Importazione_delle_citazioni_da_CiteSeer_completa.
+Completed_Import_Fields_from_CiteSeer.=Importazione_dei_campi_da_CiteSeer_completa.
+Completed_import_from_CiteSeer.=Importazione_da_CiteSeer_completa
+Contained_in=Contenuto_in
+Content=Contenuto
+Copied=Copiato
+Copied_cell_contents=Contenuto_delle_celle_copiato
+Copied_key=Chiave_BibTeX_copiata
+Copied_keys=Chiavi_BibTeX_copiate
+Copy=Copia
+Copy_\cite{BibTeX_key}=Copia_\cite{chiave_BibTeX}
+Copy_BibTeX_key=Copia_chiave_BibTeX
+Copy_to_clipboard=Copia_negli_appunti
+Could_not_call_executable=Non_\u00e8_possibile_effetuare_la_chiamata_dell'eseguibile
+Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Impossibile_la_connessione_a_un_processo_gnuserv_in_esecuzione._Accertarsi_che_Emacs_o_XEmacs_siano_in_esecuzione,<BR>e_che_il_server_sia_stato_avviato_(con_il_comando_'gnuserv-start').
+Could_not_connect_to_host=Impossibile_connettersi_all'host
+Could_not_connect_to_host_=Impossibile_connettersi_all'host_
+Could_not_export_entry_types=Non_\u00e8_possibile_l'esportazione_dei_tipi_di_voce
+Could_not_export_file=Impossibile_esportare_il_file
+Could_not_export_preferences=Impossibile_esportare_le_preferenze
+Could_not_find_a_suitable_import_format.=Impossibile_trovare_un_formato_di_importazione_adeguato
+Could_not_find_layout_file=Impossibile_trovare_il_file_di_layout
+Could_not_import_entry_types=Non_\u00e8_possibile_l'importazione_dei_tipi_di_voce
+Could_not_import_preferences=Impossibile_importare_le_preferenze
+Could_not_instantiate_%0_%1=Impossibile_inizializzare_%0_%1
+Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Impossibile_inizializzare_%0_%1._Verificare_il_"package_path".
+Could_not_parse_number_of_hits=
+Could_not_resolve_import_format=Impossibile_decodificare_il_formato_di_importazione
+Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Impossibile_eseguire_il_programma_'gnuclient'._Assicurarsi_che_i_programmi_gnuserv/gnuclient_siano_installati.
+Could_not_save_file=Impossibile_salvare_il_file
+Couldn't_find_an_entry_associated_with_this_URL=Impossibile_trovare_voci_associate_a_questo_URL
+Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Non_\u00e8_stato_possibile_interpretare_il_campo_'citeseerurl'_delle_voci_seguenti
+Create_group=Crea_gruppo
+Created_group=Gruppo_creato
+Created_group_"%0".=Creato_gruppo_"%0".
+Created_groups.=Gruppi_creati
+Curly_braces_{_and_}_must_be_balanced.=Le_parentesi_graffe_{_e_}_devono_essere_bilanciate
+Current_content=Contenuto_corrente
+Current_value=Valore_corrente
+Custom_entry_types=Tipi_di_voce_personalizzati
+Custom_entry_types_found_in_file=Tipi_di_voce_personalizzati_trovati_nel_file
+Custom_export=Esportazione_personalizzata
+Custom_importers=Importazioni_personalizzate
+Customize_entry_types=Personalizza_tipi_di_voce
+Customize_key_bindings=Personalizza_combinazioni_di_tasti
+Cut=Taglia
+cut_entries=Taglia_voci
+cut_entry=taglia_voce
+Cut_pr=Taglia
+Database_encoding=Codifica_database
+Database_has_changed._Do_you_want_to_save_before_closing?=Il_database_\u00e8_stato_modificato._Vuoi_salvare_prima_di_chiudere?
+Database_properties=Propriet\u00e0_del_database
+Date_format=Formato_data
+Default=Predefinito
+Default_encoding=Codifica_predefinita
+Default_grouping_field=Campo_di_raggruppamento_predefinito
+Default_look_and_feel="Look-and-Feel"_predefinito
+Default_owner=Proprietario_predefinito
+Default_pattern=Modello_predefinito
+Default_sort_criteria=Criterio_di_ordinamento_predefinito
+# or "definita"?. In Italian the gender of the adjective must match that of the name
+defined.=definito.
+Delete=Cancella
+Delete_custom=Cancella_personalizzazioni
+Delete_custom_format=Cancella_i_formati_personalizzati
+delete_entries=Cancella_le_voci
+Delete_entry=Cancella_la_voce
+delete_entry=cancella_la_voce
+Delete_multiple_entries=Cancella_pi\u00f9_voci
+Delete_rows=Cancella_voci
+Delete_strings=Cancella_stringhe
+Deleted=Cancellato
+Deleted_entry=Voce_cancellata
+Delimit_fields_with_semicolon,_ex.=Campi_delimitati_da_punto_e_virgola,_ex.
+Descending=Discendente
+Description=Descrizione
+Deselect_all=Deseleziona_tutto
+Details=Dettagli
+Disable_entry_editor_when_multiple_entries_are_selected=Disabilita_la_modifica_in_caso_di_selezioni_multiple
+Disable_this_confirmation_dialog=Disabilita_la_richiesta_di_conferma
+Disable_this_warning_dialog=Disabilita_questo_messaggio_di_avvertimento
+Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Mostra_tutte_le_voci_appartenenti_a_uno_o_pi\u00f9_gruppi_tra_quelli_selezionati.
+Display_all_error_messages=
+Display_help_on_command_line_options=Mostra_l'aiuto_sulle_opzioni_della_riga_di_comando
+Display_imported_entries_in_an_inspection_window_before_they_are_added.=Mostra_le_voci_importate_in_una_finestra_d'anteprima_prima_di_aggiungerle.
+Display_only_entries_belonging_to_all_selected_groups.=Mostra_solo_le_voci_appartenenti_a_tutti_i_gruppi_selezionati.
+Displaying_no_groups=Nessun_gruppo_da_visualizzare
+Do_not_abbreviate_names=Non_abbreviare_i_nomi
+Do_not_autoset=Non_effettuare_definizioni_automatiche
+Do_not_import_entry=Non_importare_la_voce
+Do_not_open_any_files_at_startup=Non_aprire_nessun_file_all'avvio
+Do_not_overwrite_existing_keys=Non_sovrascrivere_chiavi_esistenti
+Do_not_wrap_the_following_fields_when_saving=Non_mandare_a_capo_i_campi_seguenti_salvando_il_file
+Docbook=Docbook
+Done=Fatto
+Down=Gi\u00f9
+Download=Download
+Download_completed=Download_terminato
+Download_file=Scarica_il_file
+Downloading...=Download_in_corso...
+Due_to_the_duplicate_BibTeX_key,_the_groups_assignment(s)_for_this_entryncannot_be_restored_correctly_when_reopening_this_database._It_is_recommendednthat_you_have_JabRef_generate_a_unique_key_now_to_prevent_this_problem.=A_causa_della_chiave_BibTeX_duplicata,_le_assegnazioni_dei_gruppi_di_questa_voce_non_possono_essere_ripristinate_correttamente_alla_riapertura_del_database._Si_raccomanda_di_far_generare_a_JabRef_una_chiave_univoca_per_prevenire_questo_problema.
+dummy=dummy
+Duplicate_BibTeX_key=Chiave_BibTeX_duplicata
+duplicate_BibTeX_key=chiave_BibTeX_duplicata
+Duplicate_BibTeX_key.=Chiave_BibTeX_duplicata.
+duplicate_BibTeX_key.=chiave_BibTeX_duplicata.
+Duplicate_BibTeX_key._Grouping_may_not_work_for_this_entry.=Chiave_BibTeX_duplicata._I_raggruppamenti_potrebbero_non_essere_corretti_per_questa_voce.
+Duplicate_Key_Warning=Attenzione:_chiave_duplicata
+Duplicate_pairs_found=Trovati_doppioni
+duplicate_removal=rimozione_di_doppioni
+Duplicate_string_name=Nome_di_stringa_duplicato
+Duplicates_found=Trovati_doppioni
+Duplicates_removed=Doppioni_rimossi
+Dynamic_groups=Gruppi_dinamici
+# not sure of the translation below
+Dynamically_group_entries_by_a_free-form_search_expression=Raggruppa_dinamicamente_le_voci_utilizzando_una_espressione_di_ricerca_in_formato_libero
+Dynamically_group_entries_by_searching_a_field_for_a_keyword=Raggruppa_dinamicamente_le_voci_ricercando_una_parola_chiave_in_un_campo
+Each_line_must_be_on_the_following_form=Ciascuna_linea_deve_essere_nel_formato_seguente
+Edit=Modifica
+Edit_custom_export=Modifica_l'esportazione_personalizzata
+Edit_entry=Modifica_voce
+Edit_group=Modifica_il_gruppo
+Edit_journal=Modifica_la_rivista
+Edit_preamble=Modifica_il_preambolo
+Edit_strings=Modifica_le_stringhe
+empty_BibTeX_key=chiave_BibTeX_vuota
+Empty_BibTeX_key.=Chiave_BibTeX_vuota
+Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Chiave_BibTeX_vuota._La_gestione_dei_gruppi_potrebbe_non_funzionare_per_questa_voce.
+Empty_database=Database_vuoto
+empty_database=database_vuoto
+# missing underscore?
+Enable_source_editing=Abilita_la_modifica_del_codice_sorgente
+Endnote=Endnote
+Enter_URL=Immettere_l'URL
+Enter_URL_to_download=Immettere_l'URL_da_scaricare
+entries=voci
+Entries_cannot_be_manually_assigned_to_or_removed_from_this_group.=Le_voci_non_possono_essere_inserite_o_rimosse_manualmente_da_questo_gruppo.
+Entries_exported_to_clipboard=Voci_esportate_negli_appunti
+entries_have_undefined_BibTeX_key=Delle_voci_hanno_chiavi_BibTeX_non_definite
+entries_into_new_database=voci_in_un_nuovo_database
+entry=voce
+Entry_editor=Modifica_voci
+Entry_editor,_next_entry=Modifica_voci,_voce_successiva
+Entry_editor,_next_panel=Modifica_voci,_pannello_successivo
+Entry_editor,_previous_entry=Modifica_voci,_voce_precedente
+Entry_editor,_previous_panel=Modifica_voci,_pannello_precedente
+Entry_editor,_store_field=Modifica_voci,_salva_campo
+Entry_in_current_database=Voce_nel_database_corrente
+Entry_in_import=Voce_nell'importazione
+Entry_is_incomplete=Voce_incompleta
+Entry_preview=Anteprima_della_voce
+Entry_table=Tabella_delle_voci
+Entry_table_columns=Colonne_della_tabella_delle_voci
+Entry_type=Tipo_di_voce
+Entry_type_names_are_not_allowed_to_contain_white_space_or_the_following_characters=I_nomi_dei_tipi_di_voce_non_possono_contenere_spazi_o_i_caratteri_seguenti
+Entry_types=Tipi_di_voce
+EOF_in_mid-string=EOF_nella_stringa
+Error=Errore
+Error_in_field=Errore_nel_campo
+Error_in_line=Errore_nella_linea
+Error_messages=
+Error_opening_file=Errore_all'apertura_del_file
+Error_setting_field=Errore_nell'impostazione_del_campo
+Existing_file=File_esistente
+exists._Overwrite?=esiste._Sovrascrivere?
+exists._Overwrite_file?=esiste._Sovrascrivere_il_file?
+Exit=Uscita
+Expand_subtree=Espandere_il_sotto-albero
+# Esplicita?
+Explicit=Esplicito
+Export=Esporta
+Export_entry_types=Esporta_tipo_di_voce
+Export_name=Esporta_nome
+Export_preferences=Esporta_preferenze
+Export_preferences_to_file=Esporta_preferenze_in_un_file
+Export_properties=Esporta_propriet\u00e0
+Export_selected_to_clipboard=Esporta_la_selezione_negli_appunti
+Export_to_clipboard=Esporta_negli_appunti
+Exported_database_to_file=Database_esportato_in_un_file
+Exporting=Esportazione_in_corso
+External_changes=Modifiche_esterne
+External_files=File_esterni
+External_programs=Programmi_esterni
+External_viewer_called=Chiamata_a_visualizzatore_esterno
+Failed_to_read_groups_data_(unsupported_version:_%0)=La_lettura_dei_dati_dei_gruppi_\u00e8_fallita_(versione_non_supportata:_%0)
+Fetch=Recupera
+# what does it means?
+Fetch_Articles_Citing_your_Database=Recupera_gli_articoli_che_citano_il_tuo_database
+Fetch_Citations_from_CiteSeer=Recupera_Citazioni_da_CiteSeer
+Fetch_citations_from_CiteSeer=Recupera_citazioni_da_CiteSeer
+Fetch_CiteSeer=Recupers_CiteSeer
+Fetch_Medline=Recupera_Medline
+fetch_Medline=recupera_Medline
+Fetch_Medline_by_author=Recupera_Medline_per_autore
+Fetch_Medline_by_ID=Recupera_Medline_per_ID
+Fetched_all_citations_from_target_database.=Tutte_le_citazioni_sono_state_recuperate_dal_database.
+Fetching_Citations=Recupero_delle_citazioni_in_corso
+Fetching_Identifiers=Recupero_degli_identificatori_in_corso
+Fetching_Medline...=Recupero_da_Medline_in_corso...
+Fetching_Medline_by_ID...=Recupero_da_Medline_per_ID...
+Fetching_Medline_by_id_...=Recupero_da_Medline_per_id...
+Fetching_Medline_by_term_...=Recupero_da_Medline_per_termine...
+Field=Campo
+field=campo
+Field_content=Contenuto_del_campo
+Field_name=Nome_del_campo
+Field_names_are_not_allowed_to_contain_white_space_or_the_following_characters=I_nomi_dei_campi_non_possono_contenere_spazi_o_iseguenti_caratteri
+Field_sizes=Dimensioni_dei_campi
+Field_to_group_by=Campo_di_raggruppamento
+Field_to_search=Campo_da_ricercare
+Fields=Campi
+File=File
+file=file
+File_'%0'_not_found=File_'%0'_non_trovato
+File_changed=File_modificato
+File_extension=Estensione_del_file
+File_has_been_updated_externally._Are_you_sure_you_want_to_save?=Il_file_\u00e8_stato_aggiornato_esternamente._Salvare_ugualmente?
+File_not_found=File_non_trovato
+File_updated_externally=File_aggiornato_esternamente
+filename=nome_del_file
+Files_opened=File_aperti
+Filter=Filtro
+Find_duplicates=Cerca_duplicati
+Finished_autosetting_%0_field._Entries_changed:_%1.=Assegnazione_automatica_del_campo_%0_terminata._Voce_cambiata:_%1.
+## check below: is %0 a number?
+Finished_synchronizing_%0_links._Entries_changed%c_%1.=Sincronizzazione_di_%0_collegamenti:_Voci_cambiate%c_%1.
+First_select_the_entries_you_want_keys_to_be_generated_for.=Selezionare_dapprima_le_voci_per_le_quali_si_vogliono_generare_le_chiavi.
+Fit_table_horizontally_on_screen=Adatta_la_tabella_allo_schermo_orizontalmente
+Float=Galleggiante
+Font_Family=Famiglia_di_font
+Font_Preview=Anteprima_font
+Font_Size=Dimensione_font
+Font_Style=Stile_font
+FontSelector=Selettore_dei_font
+for=per
+Format_of_author_and_editor_names=Formato_dei_nomi_di_autori_e_editori
+Format_used=Formato_utilizzato
+Formatter_not_found=Formattazione_non_trovata
+found=trovato
+found_in_aux_file=trovate_nel_file_AUX
+Full_name=Nome_completo
+General=Generale
+General_fields=Campi_generali
+Generate=Genera
+Generate_BibTeX_key=Genera_la_chiave_BibTeX
+Generate_keys=Genera_le_chiavi
+Generate_keys_before_saving_(for_entries_without_a_key)=
+Generate_now=Genera_ora
+Generated_BibTeX_key_for=Generata_la_chiave_BibTeX_per
+Generating_BibTeX_key_for=Generazione_in_corso_della_chiave_BibTeX_per
+## Check below
+Grab=Assegna
+Gray_out_entries_not_in_group_selection=Evidenzia_in_grigio_le_voci_fuori_dai_gruppi_selezionati
+Gray_out_non-hits=Disattiva_le_voci_non_corrispondenti
+Gray_out_non-matching_entries=Disattiva_le_voci_non_corrispondenti
+Group_definitions_have_been_converted_to_JabRef_1.7_format.=Le_definizioni_dei_gruppi_sono_state_convertite_nel_formato_JabRef_1.7.
+Group_name=Nome_del_gruppo
+Group_properties=Propriet\u00e0_del_gruppo
+Groups=Gruppi
+Harvard_RTF=Harvard_RTF
+Have_you_chosen_the_correct_package_path?=Il_classpath_\u00e8_corretto?
+Help=Aiuto
+Help_contents=Contenuti_dell'aiuto
+Help_on_groups=Aiuto_sui_gruppi
+Help_on_key_patterns=Aiuto_sulla_composizione_delle_chiavi
+Hide_non-hits=Nascondi_le_voci_non_corrispondenti
+Hide_non-matching_entries=Nascondi_le_voci_non_corrispondenti
+## check below
+Hierarchical_context=Contesto_gerarchico
+Highlight=Evidenzia
+Highlight_groups_matching_all_selected_entries=Evidenzia_i_gruppi_corrispondenti_a_tutte_le_voci_selezionate
+Highlight_groups_matching_any_selected_entry=Evidenzia_i_gruppi_corrispondenti_almeno_ad_una_delle_voci_selezionate
+Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group=Evidenzia_i_gruppi_contenenti_voci_contenute_in_uno_qualsiasi_dei_gruppi_selezionati
+Highlight_overlapping_groups=Evidenzia_gruppi_con_voci_in__comune
+Hint%c_To_search_specific_fields_only,_enter_for_example%c<p><tt>author%esmith_and_title%eelectrical</tt>=Suggerimento%c_Per_ricercare_in_un_campo_specifico_digitare,_per_esempio%c<p><tt>author%esmith_and_title%eelectrical</tt>
+HTML=HTML
+Ignore=Ignora
+Illegal_type_name=Nome_di_tipo_illegale
+Immediate_subgroups=Sottogruppi_diretti
+Import=Importa
+Import_and_append=Importa_e_aggiungi
+Import_and_keep_old_entry=Importa_e_mantieni_le_vecchie_voci
+Import_and_remove_old_entry=Importa_e_rimuovi_le_vecchie_voci
+Import_cancelled.=Importazione_interrotta.
+Import_Data_from_CiteSeer=Importa_dati_da_CiteSeer
+Import_Data_from_CiteSeer_Database=Importa_dati_dal_database_CiteSeer
+Import_database=Importa_un_database
+Import_entries=Importa_voci
+Import_entry_types=Importa_tipi_di_voci
+Import_failed=Importazione_fallita
+Import_Fields_from_CiteSeer=Importa_Campi_da_CiteSeer
+Import_fields_from_CiteSeer=Importa_campi_da_CiteSeer
+Import_fields_from_CiteSeer_Database=Importa_campi_dal_Database_CiteSeer
+Import_Fields_from_CiteSeer_Database=Importa_Campi_dal_Database_CiteSeer
+Import_file=Importa_file
+Import_group_definitions=Importa_definizioni_di_gruppo
+Import_name=Importa_nome
+Import_plain_text=Importa_campi_da_testo
+Import_preferences=Importa_preferenze
+Import_preferences_from_file=Importa_preferenze_da_un_file
+Import_strings=Importa_stringhe
+Import_to_open_tab=Importa_nella_scheda_aperta
+Import_word_selector_definitions=Importa_le_definizioni_per_la_selezione_di_parole
+Imported_database=Database_importato
+Imported_entries=Voci_importate
+Imported_entry_types=Tipi_di_voce_impotati
+Imported_file=File_importato
+Imported_from_database=Importato_dal_database
+ImportFormat_class=Classe_ImportFormat
+Importing=Importazione_in_corso
+Importing_file=Importazione_del_file_in_corso
+Importing_in_unknown_format=Importazione_in_formato_sconosciuto
+In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=In_JabRef,_utilizzare_una_coppia_di_caratteri_#_per_delimitare_una_stringa.
+Include_abstracts=
+Include_subgroups=Includi_i_sottogruppi
+Include_subgroups\:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Includi_i_sottogruppi:_Quando_selezionato,_mostra_le_voci_contenute_in_questo_gruppo_e_nei_suoi_sottogruppi
+Incremental=Incrementale
+Incremental_search=Ricerca_incrementale
+Incremental_search_failed._Repeat_to_search_from_top.=Ricerca_incrementale_fallita._Ripetere_la_ricerca_dall'inizio.
+Independent=Indipendente
+Independent_group\:_When_selected,_view_only_this_group's_entries=Gruppo_indipendente:_Quando_selezionato,_mostra_solo_le_voci_di_questo_gruppo
+Initially_show_groups_tree_expanded=Inizialmente_mostra_l'albero_dei_gruppi_espanso
+Input=Attribuzione_dei_campi
+Input_error=Voce_errata
+Insert=Inserisci
+Insert_rows=Inserisci_righe
+Insert_selected_citations_into_LyX/Kile=Inserisci_le_citazioni_selezionate_in_LyX/Kile
+Insert_selected_citations_into_WinEdt=Inserisci_le_citazioni_selezionate_in_WinEdt
+insert_string_=Inserisci_stringa_
+Insert_URL=Inserisci_URL
+INSPEC=INSPEC
+integrity=Integrit\u00e0
+Integrity_check=Verifica_di_integrit\u00e0
+Intersection=Intersezione
+Intersection_with_supergroups=Intersezione_con_sottogruppi
+Invalid_BibTeX_key=Chiave_BibTeX_non_valida
+Invalid_date_format=Formato_data_non_valido
+Invalid_URL=URL_non_valido
+Inverted=Complemantare
+is_a_standard_type.=\u00e8_un_tipo_standard
+ISI=ISI
+ISO_abbreviation=Abbreviazione_ISO
+Item_list_for_field=Lista_di_campi
+JabRef_help=Aiuto_di_JabRef
+JabRef_preferences=Preferenze_JabRef
+Journal_abbreviations=Abbreviazioni_riviste
+Journal_list_preview=Anteprima_della_lista_delle_riviste
+Journal_name=Nome_della_rivista
+Journal_names=Nomi_delle_riviste
+JStor_file=File_JStor
+Keep=Mantieni
+Keep_both=Mantieni_entrambi
+Keep_lower=Mantieni_quello_sotto
+Keep_upper=Mantieni_quello_sopra
+Key_bindings=Combinazioni_di_tasti
+Key_bindings_changed=Combinazioni_di_tasti_modificate
+Key_generator_settings=Impostazioni_per_la_generazione_delle_chiavi
+Key_pattern=Modello_delle_chiavi
+keys_in_database=Chiavi_in_database
+Keyword=Parola_Chiave
+##_check:_Nome_del_campo_(fr)?
+Label=Etichetta
+Language=Lingua
+Last_modified=Ultimo_modificato
+Latex_AUX_file=File_AUX_LaTeX
+LaTeX_AUX_file=File_AUX_LaTeX
+Left=Sinistra
+License=Licenza
+Limit_to_fields=Restrizioni_ai_campi
+Limit_to_selected_entries=Restrizioni_alle_voci_selezionate
+Listen_for_remote_operation_on_port=Porta_in_ascolto_per_operazioni_remote
+Load_session=Carica_sessione
+Loading_session...=Caricamento_sessione...
+Look_and_feel=Aspetto
+lower=minuscolo
+Main_layout_file=File_di_layout_principale
+Main_PDF_directory=Cartella_file_PDF_principale
+Main_PS_directory=Cartella_file_PS_principale
+Manage=Gestione
+Manage_content_selectors=Gestione_dei_selettore_dei_contenuti
+Manage_custom_exports=Gestione_delle_esportazioni_personalizzate
+Manage_custom_imports=Gestione_delle_importazioni_personalizzate
+Manage_journal_abbreviations=Gestione_abbreviazioni_riviste
+Mark_entries=Contrassegna_voci
+Mark_entry=Contrassegna_voce
+Mark_new_entries_with_addition_date=Contrassegna_le_nuove_voci_con_la_data_di_aggiunta
+Mark_new_entries_with_owner_name=Contrassegna_le_nuove_voci_con_il_nome_del_proprietario
+Marked_selected=Contrassegna_la_selezione
+Medline_entries_fetched=Voci_Medline_recuperate
+Medline_XML=Medline_XML
+Medline_XML_File=File_Medline_XML
+Menu_and_label_font_size=Dimensione_del_font_di_menu_ed_etichette
+Merged_external_changes=Incorpora_modifiche_esterne
+messages=messaggi
+Messages=Messaggi
+Messages_and_Hints=Avvertimenti_e_Suggerimenti
+Miscellaneous=Varie
+Modification_of_field=Modifica_del_campo
+Modified_group_"%0".=Gruppo_"%0"_modificato.
+Modified_groups=Gruppi_modificati
+Modified_groups_tree=Albero_dei_gruppi_modificati
+Modified_string=Stringa_modificata
+Modify=Modifica
+modify_group=Modifica_gruppo
+MODS=MODS
+Move=Sposta
+Move_down=Sposta_in_gi\u00f9
+Move_entries_in_group_selection_to_the_top=Sposta_le_voci_selezionate_in_su
+move_group=sposta_gruppo
+Move_matching_entries_to_the_top=Sposta_in_alto_le_voci_corrispondenti
+Move_string_down=Sposta_la_stringa_in_gi\u00f9
+Move_string_up=Sposta_la_stringa_in_su
+Move_up=Sposta_in_su
+Moved_Group=Gruppo_spostato
+Moved_group_"%0".=Spostato_gruppo_"%0".
+Name=Nome
+Natbib_style=Stile_Natbib
+nested_aux_files=File_AUX_nidificati
+New=Nuovo
+new=nuovo
+New_article=Nuova_voce_'article'
+New_BibTeX_database=Nuovo_database_BibTeX
+New_BibTeX_entry=Nuova_voce_BibTeX
+New_BibTeX_subdatabase=Nuovo_subdatabase_BibTeX
+New_book=Nuova_voce_'book'
+New_content=Nuovo_contenuto
+New_database=Nuovo_database
+New_database_created.=Nuovo_database_creato
+New_entry=Nuova_voce
+New_entry...=Nuova_voce...
+New_entry_from_plain_text=Nuova_voce_da_testo
+New_file=Nuovo_file
+New_group=Nuovo_gruppo
+New_inbook=Nuova_voce_'inbook'
+New_mastersthesis=Nuova_voce_'masterthesis'
+New_phdthesis=Nuova_voce_'phdthesis'
+New_proceedings=Nuova_voce_'proceedings'
+New_string=Nuova_stringa
+New_subdatabase=Nuovo_subdatabase
+New_subdatabase_based_on_AUX_file=Nuovo_subdatabase_da_file_AUX
+New_unpublished=Nuova_voce_'unpublished'
+Next_entry=Voce_successiva
+Next_tab=Scheda_successiva
+No_%0_found=Nessun_%0_trovato
+No_actual_changes_found.=Nessun_cambiamento_trovato.
+no_base-bibtex-file_specified=nessun_database_BibTeX_specificato!
+No_custom_imports_registered_yet.=Non_ancora_registrata_alcuna_importazione_personalizzata.
+no_database_generated=nessun_database_creato
+No_duplicates_found=Nessun_duplicato_trovato
+No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Nessuna_voce_trovata._Verificare_che_si_stia_utilizzando_il_filtro_di_importazione_appropriato.
+No_entries_imported.=Nessuna_voce_importata
+No_entries_or_multiple_entries_selected.=Nessuna_voce_selezionata_o_voci_multiple_selezionate.
+No_entries_selected=Nessuna_voce_selezionata
+No_exceptions_have_ocurred.=
+No_file_extension._Could_not_find_viewer_for_file.=
+No_GUI._Only_process_command_line_options.=Senza_interfaccia_grafica._Elaborate_solo_le_opzioni_della_riga_di_comando.
+No_journal_names_could_be_abbreviated.=Nessun_nome_di_rivista_pu\u00f2_essere_abbreviato.
+No_journal_names_could_be_unabbreviated.=Nessuna_abbreviazione_di_rivista_pu\u00f2_essere_estesa.
+No_Medline_entries_found.=Nessuna_voce_Medline_trovata.
+No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=Nessun_PDF_o_PS_definito,_e_nessun_file_corrispondente_alla_chiave_BibTeX_trovato.
+No_references_found=Nessun_riferimento_trovato
+No_saved_session_found.=Nessuna_sessione_salvata_trovata.
+No_url_defined=Nessun_URL_trovato
+non-Mac_only=Solo_sistemi_non-Mac
+Normal=Normale
+not=no
+not_found=non_trovato
+Not_saved_(empty_session)=Non_salvato_(sessione_vuota)
+Note_that_the_entry_causing_the_problem_has_been_selected.=Nota:_la_voce_responsabile_del_problema_\u00e8_stata_selezionata.
+Note_that_the_new_definitions_will_not_be_compatible_with_previous_JabRef_versions.=Nota:_le_nuove_definizioni_non_saranno_compatibili_con_precedenti_versioni_di_JabRef.
+Note_that_you_must_specify_the_fully_qualified_class_name_for_the_look_and_feel,=Nota:_\u00e8_necessario_specificare_il_nome_di_classe_completo_per_il_"look_and_feel",
+Nothing_to_redo=Niente_da_ripetere
+Nothing_to_undo=Niente_da_annullare
+Number_of_references_to_fetch?=Numero_di_riferimenti_da_recuperare?
+occurences=ricorrenze
+OK=OK
+Ok=Ok
+One_or_more_keys_will_be_overwritten._Continue?=Una_o_pi\u00f9_chiavi_saranno_sovrascritte._Continuare?
+Open=Apri
+open=apri
+Open_BibTeX_database=Apri_database_BibTeX
+Open_database=Apri_database
+Open_editor_when_a_new_entry_is_created=Apri_per_modifiche_quando_una_nuova_voce_viene_creata
+Open_file=Apri_file
+Open_last_edited_databases_at_startup=All'avvio_apri_i_database_aperti_nella_sessione_precedente
+Open_PDF_or_PS=Apri__PDF_o_PS
+Open_right-click_menu_with_Ctrl+left_button=Mostra_il_menu_contestuale_con_Ctrl_+_pulsante_sinistro
+Open_URL_or_DOI=Apri_URL_o_DOI
+Opened_database=Database_aperto
+Opening=Apertura_in_corso
+Opening_preferences...=Apertura_delle_preferenze_in_corso...
+Optional_fields=Campi_opzionali
+Options=Opzioni
+or=o
+out_of=di
+Output_or_export_file=File_di_salvataggio_o_esportazione
+Overlapping_groups=Gruppi_con_voci_in_comune
+##_check
+Override=Sovrascrivi
+Override_default_file_directories=
+##_check
+override_the_bibtex_key_by_the_selected_text=Sovrascrivi_la_chiave_BibTeX_con_il_testo_selezionato
+##_check
+Overwrite_keys=Sovrascrivi_chiavi
+Ovid=Ovid
+pairs_processed=coppie_elaborate
+Paste=Incolla
+paste_entries=incolla_voci
+paste_entry=incolla_voce
+Paste_from_clipboard=Incolla_dagli_appunti
+Pasted=Incollato
+Path_to_HTML_viewer=Percorso_per_il_visualizzatore_HTML
+Path_to_LyX_pipe=Percorso_per_la_pipe_LyX
+Path_to_PDF_viewer=Percorso_per_il_visualizzatore_PDF
+Path_to_PS_viewer=Percorso_per_il_visualizzatore_PS
+Path_to_WinEdt.exe=Percorso_per_WinEdt.exe
+Paths_to_external_programs=Percorsi_per_programmi_esterni
+PDF_directory=
+PDF_links=Collegamenti_PDF
+Personal_journal_list=Lista_di_riviste_personale
+Pick_titles=Scegli_titoli
+##_check
+Plain_right_menu=Menu
+Plain_text=Solo_testo
+Plain_text_import=Importazione_da_solo_testo
+Please_check_your_network_connection_to_this_machine.=Verificare_la_connessione_di_rete_di_questa_macchina.
+Please_define_BibTeX_key_first=Definire_in_primo_luogo_la_chiave_BibTeX
+Please_enter_a_name_for_the_group.=Immettere_un_nome_per_il_gruppo
+Please_enter_a_search_term._For_example,_to_search_all_fields_for_<b>Smith</b>,_enter%c<p><tt>smith</tt><p>To_search_the_field_<b>Author</b>_for_<b>Smith</b>_and_the_field_<b>Title</b>_for_<b>electrical</b>,_enter%c<p><tt>author%esmith_and_title%eelectrical</tt>=Immettere_un_termine_di_ricerca._Per_esempio,_per_ricercare_in_tutti_i_campi_<b>Smith</b>,_imettere%c<p><tt>smith</tt><p>_Per_ricercare_nel_campo_<b>Author</b>_il_termine_<b>Smith</b>_e_nel_campo_<b>Title</b>_il_termine_<b>electr [...]
+Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=Immettere_una_lista_di_ID_Medline_(numerici)_separati_da_virgola_o_punto_e_virgola
+Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=Immettere_il_cmpo_di_ricerca_(es._<b>keywords</b>)_e_la_parola_chiave_da_ricercare_(es._<b>electrical</b>).
+Please_enter_the_string's_label=Immettere_l'etichetta_della_stringa
+Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=Fare_riferimento_al_manuale_in_linea_per_l'utilizzo_degli_strumenti_CiteSeer.
+Please_select_an_importer=Selezionare_un_filtro_di_importazione
+Please_select_an_importer.=Selezionare_un_filtro_di_importazione.
+Please_select_exactly_one_group_to_move.=Selezionare_un_solo_gruppo_da_spostare.
+Please_wait_until_it_has_finished.=Attendere_la_fine_dell'operazione.
+Possible_duplicate_entries=Voci_potenzialmente_duplicate
+Possible_duplicate_of_existing_entry._Click_to_resolve.=Possibile_duplicazione_di_una_voce_esistente._Cliccare_per_effettuare_la_verifica.
+Preamble=Preambolo
+##_check
+Preamble_editor,_store_changes=Modifica_del_preambolo,_salvare_i_cambiamenti
+Preferences=Preferenze
+Preferences_recorded=Preferenze_registrate
+Preferences_recorded.=Preferenze_registrate.
+Preserve_formatting_of_non-BibTeX_fields=Preserva_il_formato_dei_campi_non-BibTeX
+Preview=Anteprima
+Previous_entry=Voce_precedente
+Previous_tab=Scheda_precedente
+Primary_sort_criterion=Criterio_di_ordinamento_principale
+Problem_with_parsing_entry=Problema_di_analisi_di_una_voce
+PS_directory=
+PS_links=Collegamenti_PS
+Push_selection_to_Emacs=Invia_la_selezione_a_Emacs
+push_selection_to_lyx=
+Push_selection_to_LyX/Kile=Invia_la_selezione_a_LyX/Kile
+Push_selection_to_WinEdt=Invia_la_selezione_a_WinEdt
+Push_to_LatexEditor=
+Push_to_LyX=Invia_a_LyX
+Push_to_WinEdt=Invia_a_WinEdt
+Pushed_citations_to_Emacs=Citazioni_inviate_a_Emacs
+Pushed_citations_to_WinEdt=Citazioni_inviate_a_WinEdt
+Pushed_the_citations_for_the_following_rows_to=Inviate_le_citazioni_delle_righe_seguenti_a
+Query_author(s)=Interrogazione_per_autori
+Quit=Esci
+Quit_JabRef=Chiudi_JabRef
+Quit_synchronization=Chiudi_sincronizzazione
+##check
+Raw_source=Solo_testo
+Really_delete_the_selected=Sicuri_di_voler_cancellare:_
+Rearrange_tabs_alphabetically_by_title=
+Recent_files=File_recenti
+Redo=Ripeti
+Refer/Endnote=Refer/Endnote
+Reference_database=Database_di_riferimenti
+References_found=Riferimenti_trovati
+Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Perfeziona_il_super-gruppo:_Quando_selezionato,_mostra_le_voci_contenute_sia_in_questo_gruppo_sia_nel_suo_super-gruppo
+Refresh_view=Aggiorna_la_vista
+Regexp=Regexp
+Regular_Expression=Espressione_regolare
+Remember_these_entry_types?=Ricordare_questo_tipo_di_voce?
+Remote_operation=Accesso_remoto
+Remote_server_port=Porta_del_server_remoto
+Remove=Rimuovi
+##_check_(tutte?)
+Remove_all?=Rimuovi_tutti
+Remove_all_subgroups=Rimuovi_tutti_i_sottogruppi
+Remove_all_subgroups_of_"%0"?=Rimuovere_tutti_i_sottogruppi_di_"%0"?
+Remove_double_braces_around_BibTeX_fields_when_loading.=Rimuovi_le_doppie_parentesi_graffe_che_racchiudono_i_campi_BibTex_all'apertura
+Remove_duplicates=Rimuovi_i_duplicati
+Remove_entry_from_import=Rimuovi_la_voce_dall'importazione
+Remove_entry_selection_from_this_group=Rimuovi_le_voci_selezionate_da_questo_gruppo
+Remove_entry_type=Rimuovi_il_tipo_di_voce
+remove_from_group=rimuovi_dal_gruppo
+Remove_from_group=Rimuovi_dal_gruppo
+Remove_group=Rimuovi_gruppo
+Remove_group,_keep_subgroups=Rimuovi_gruppo,_mantieni_i_sottogruppi
+Remove_group_"%0"?=Rimuovere_il_gruppo_"%0"?
+Remove_group_"%0"_and_its_subgroups?=Rimuovere_il_gruppo_"%0"_ed_i_suoi_sottogruppi?
+remove_group_(keep_subgroups)=rimuovi_gruppo_(mantieni_i_sottogruppi)
+remove_group_and_subgroups=rimuovi_gruppo_e_sottogruppi
+Remove_group_and_subgroups=Rimuovi_gruppo_e_sottogruppi
+Remove_old_entry=Rimuovi_vecchia_voce
+Remove_selected_strings=Rimuovi_le_stringhe_selezionate
+remove_string=rimuovi_stringa
+remove_string_=rimuovi_stringa_
+Removed_entry_type.=Tipo_di_voce_rimosso.
+##Check:_"Rimosso_gruppo"?
+Removed_group=Gruppo_rimosso
+Removed_group_"%0".=Rimosso_gruppo_"%0".
+Removed_group_"%0"_and_its_subgroups.=Rimosso_gruppo_"%0"_e_suoi_sottogruppi.
+Removed_string=Stringa_rimossa
+Renamed_string=Stringa_rinominata
+Repeat_incremental_search=Ripeti_la_ricerca_incrementale
+Replace=Sostituisci
+Replace_(regular_expression)=Sostituisci_(espressione_regolare)
+Replace_string=Sostituisci_stringa
+Replace_with=Sostituisci_con
+Replaced=Sostituito
+Required_fields=Campo_obbligatorio
+Reset_all=Reimposta_tutto
+resolved=risolto
+Results=Risultati
+Revert_to_original_source=Ripristina_il_contenuto_iniziale
+##_check_Rivista?_Verifica?
+Review=Rivedi
+Review_changes=Rivedi_le_modifiche
+Right=Destra
+RIS=RIS
+Save=Salva
+Save_before_closing=Salva_prima_di_chiudere
+Save_database=Salva_il_database
+Save_database_as_...=Salva_il_database_come...
+Save_entries_in_their_original_order=
+Save_failed=Salvataggio_fallito
+Save_failed_during_backup_creation=Salvataggio_fallito_durante_la_creazione_della_copia_di_backup
+Save_failed_while_committing_changes=Salvataggio_fallito_nel_rendere_definitivi_i_cambiamenti
+Save_in_default_table_sort_order=
+Save_ordered_by_author/editor/year=
+Save_selected_as_...=Salva_la_selezione_come...
+Save_session=Salva_sessione
+Saved_database=Database_salvato
+Saved_selected_to=Salvata_la_selezione_in
+Saved_session=Sessione_salvata
+Saving=Salvataggio_in_corso
+Saving_database=Salvataggio_del_database_in_corso
+##_check
+Scan=Scansione
+SciFinder=SciFinder
+Search=Ricerca
+Search_All_Fields=Ricerca_in_tutti_i_campi
+Search_all_fields=Ricerca_in_tutti_i_campi
+Search_error=Errore_di_ricerca
+Search_expression=Espressione_di_ricerca
+Search_for=Ricerca
+Search_General_Fields=Ricerca_nei_campi_generali
+Search_general_fields=Ricerca_nei_campi_generali
+Search_IEEEXplore=
+Search_Optional_Fields=Ricerca_nei_campi_opzionali
+Search_optional_fields=Ricerca_nei_campi_opzionali
+Search_Required_Fields=Ricerca_nei_campi_obbligatori
+Search_required_fields=Ricerca_nei_campi_obbligatori
+Search_Specified_Field(s)=Ricerca_nei_campi_specificati
+Search_term=Ricerca_il_termine
+Searched_database._Global_number_of_hits=
+Searched_database._Number_of_hits=Ricerca_effettuata._Numero_di_risultati_trovati
+Searching_for_%0_file=Ricerca_file_%0
+Searching_for_duplicates...=Ricerca_di_duplicati_in_corso...
+Secondary_sort_criterion=Criterio_di_ordinamento_secondario
+Select=Seleziona
+Select_a_Zip-archive=Seleziona_un_archivio_Zip
+Select_action=Seleziona_l'operazione
+Select_all=Seleziona_tutto
+Select_Classpath_of_New_Importer=Seleziona_il_classpath_del_nuovo_filtro_di_importazione
+Select_encoding=Seleziona_la_codifica
+Select_entries_in_group_selection=Seleziona_le_voci_nella_selezione_dei_gruppi
+Select_entry_type=Seleziona_un_tipo_di_voce
+Select_file_from_ZIP-archive=Seleziona_un_file_da_un_archivio_Zip
+Select_format=Seleziona_il_formato
+Select_matches=Seleziona_le_corrispondenze
+Select_matching_entries=Seleziona_voci_corrispondenti_ai_criteri_di_ricerca
+Select_new_ImportFormat_Subclass=Seleziona_una_nuova_sottoclasse_ImportFormat
+Select_the_tree_nodes_to_view_and_accept_or_reject_changes=Selezionare_i_nodi_dell'albero_per_vedere_ed_accettare_o_rifiutare_le_modifiche
+##_check
+Selector_enabled_fields=Campi_con_selezione_attivata
+Set_general_fields=Definisci_i_campi_generali
+Set_table_font=Definisci_i_font_della_tabella
+Set_up_general_fields=Definizione_dei_campi_generali
+Settings=Parametri
+##_check
+Setup_selectors=Definisci_i_selettori
+Short_form=Forma_breve
+Shortcut=Scorciatoia
+Show/edit_BibTeX_source=Mostra/Modifica_codice_sorgente_BibTeX
+Show_'Firstname_Lastname'=Mostra_'Nome_Cognome'
+Show_'Lastname,_Firstname'=Mostra_'Cognome,_Nome'
+Show_abstract=Mostra_riassunto
+Show_BibTeX_source_by_default=Mostra_il_codice_sorgente_BibTeX_per_impostazione_predefinita
+Show_BibTeX_source_panel=Mostra_la_scheda_"Sorgente_BibTeX"
+Show_CiteSeer_column=Mostra_Colonna_CiteSeer
+Show_confirmation_dialog_when_deleting_entries=Chiedere_conferma_della_cancellazione_di_una_voce
+Show_description=Mostra_descrizione
+Show_dynamic_groups_in_<i>italics</i>=Mostra_gruppi_dinamici_in_<i>italico</i>
+Show_entries_*not*_in_group_selection=Mostra_le_voci_*non*_comprese_nei_gruppi_selezionati
+Show_general_fields=Mostra_i_campi_generali
+##check
+Show_groups_matching_all=Mostra_i_gruppi_corrispondenti_a_tutte
+##check
+Show_groups_matching_any=Mostra_i_gruppi_corrispondenti
+Show_icons_for_groups=Mostra_le_icone_per_i_gruppi
+Show_names_unchanged=Mostra_i_nomi_immodificati
+Show_one_less_rows=Mostra_una_riga_in_meno
+Show_one_more_row=Mostra_una_riga_in_pi\u00f9
+Show_optional_fields=Mostra_i_campi_opzionali
+Show_overlapping_groups=Mostra_i_gruppi_con_righe_in_comune
+Show_PDF/PS_column=Mostra_colonna_PDF/PS
+Show_required_fields=Mostra_i_campi_obbligatori
+Show_URL/DOI_column=Mostra_colonna_URL/DOI
+Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Mostra_un_messaggio_di_avverimento_quando_viene_immessa_una_chiave_BibTeX_gi\u00e0_esistente
+Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Mostra_un_messaggio_di_avverimento_quando_viene_immessa_una_chiave_BibTeX_vuota
+Simple_HTML=HTML_semplice
+Sixpack=Sixpack
+Size=Dimensione
+Size_of_groups_interface_(rows)=Dimensione_dell'interfaccia_dei_gruppi_(righe)
+Skip=Salta
+Sort_alphabetically=Ordina_alfabeticamente
+Sort_Automatically=Ordina_automaticamente
+Sort_options=Opzioni_di_ordinamento
+sort_subgroups=ordina_i_sottogruppi
+Sorted_all_subgroups_recursively=Ordina_tutti_i_sottogruppi_ricorsivamente
+Sorted_all_subgroups_recursively.=Ordina_tutti_i_sottogruppi_ricorsivamente.
+Sorted_immediate_subgroups=Ordinati_i_sottogruppi_immediati
+Sorted_immediate_subgroups.=Ordinati_i_sottogruppi_immediati.
+source_edit=modifica_sorgente
+Special_table_columns=Colonne_di_tabella_speciali
+Start=Inizia
+Start_incremental_search=Inizia_la_ricerca_incrementale
+Start_search=Inizia_la_ricerca
+Statically_group_entries_by_manual_assignment=Raggruppa_manualmente_le_voci
+Status=Stato
+Stop=Arresta
+Store=Registra
+Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Registra_i_campi_con_parentesi_graffe_addizionali_e_rimuovi_al_caricamento.<BR>Le_parentisi_graffe_addizionali_indicano_che_BibTeX_deve_preservare_maiuscole_e_minuscole.
+Store_journal_abbreviations=Registra_le_abbreviazioni_delle_riviste
+Store_string=Registra_la_stringa
+Store_the_following_fields_with_braces_around_capital_letters=Registra_i_seguenti_campi_con_lettere_maiuscole_tra_parentesi_graffe_addizionali
+Stored_definition_for_type=Definizione_di_tipo_registrata
+Stored_entry=Voce_registrata
+Stored_entry.=Voce_registrata.
+Strings=Stringa
+Strings_for_database=Stringhe_per_il_database
+subdatabase_from_aux=subdatabase_da_file_LaTeX_AUX
+Subdatabase_from_aux=Subdatabase_da_file_LaTeX_AUX
+Suggest=Suggerisci
+##_Check
+Switch_preview_layout=Alterna_schema_di_anteprima
+Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Alterna_nomi_completi_e_nomi_abbreviati_per_le_riviste_delle_quali_\u00e8_noto_il_nome.
+## Removed? Switches_between_full_and_abbreviated_journal_name=Alterna_tra_nomi_delle_riviste_completi_e_abbreviati
+Synchronize_%0_links=Sincronizza_%0_collegamenti
+Synchronizing_%0_links...=Sincronizzazione_di_%0_collegamenti_in_corso...
+Table=Tabella
+Table_appearance=Aspetto_della_tabella
+Table_background_color=Colore_di_sfondo_della_tabella
+Table_grid_color=Colore_della_griglia_della_tabella
+Table_text_color=Colore_del_testo_della_tabella
+Tabname=Nome_della_scheda
+Tertiary_sort_criterion=Criterio_di_ordinamento_terziario
+Test=Test
+Text_Input_Area=Area_di_inserimento_testo
+The_#_character_is_not_allowed_in_BibTeX_fields=Il_carattere_'#'_non_\u00e8_permesso_nei_campi_BibTeX
+The_chosen_date_format_for_new_entries_is_not_valid=Il_formato_di_data_scelto_per_le_nuove_voci_non_\u00e8_valido
+The_CiteSeer_fetch_operation_returned_zero_results.=La_ricerca_CiteSeer_non_ha_fornito_risultati.
+the_field_<b>%0</b>=il_campo_<b>%0</b>
+The_file<BR>'%0'<BR>has_been_modified<BR>externally!=Il_file_<BR>'%0'<BR>_\u00e8_stato_modificato_da_un'applicazione_esterna
+The_group_"%0"_already_contains_the_selection.=Il_gruppo_"%0"_contiene_gi\u00e0_la_selezione.
+The_group_"%0"_does_not_support_the_adding_of_entries.=Il_gruppo_"%0"_non_consente_aggiunte_di_voci.
+The_group_"%0"_does_not_support_the_removal_of_entries.=Il_gruppo_"%0"_non_consente_rimozione_di_voci.
+The_label_of_the_string_can_not_be_a_number.=L'etichetta_della_stringa_non_pu\u00f2_essere_un_numero.
+The_label_of_the_string_can_not_contain_spaces.=L'etichetta_della_stringa_non_pu\u00f2_contenere_spazi.
+The_label_of_the_string_can_not_contain_the_'#'_character.=L'etichetta_della_stringa_non_pu\u00f2_contenere_il_carattere_'#'
+The_output_option_depends_on_a_valid_import_option.=L'opzione_di_output_dipende_da_una_opzione_di_importazione_valida.
+The_regular_expression_<b>%0</b>_is_invalid%c=L'espressione_regolare_<b>%0</b>_non_\u00e8_valida%c
+The_search_is_case_insensitive.=La_ricerca_non_distingue_maiuscole_e_minuscole.
+The_search_is_case_sensitive.=La_ricerca_distingue_maiuscole_e_minuscole.
+The_string_has_been_removed_locally=La_stringa_\u00e8_stata_rimossa_localmente
+The_type_name_can_not_contain_spaces.=Il_nome_di_un_tipo_di_voce_non_pu\u00f2_contenere_spazi
+The_URL_field_appears_to_be_empty_on_entry_number_=Il_campo_URL_sembra_essere_vuoto_per_la_voce_numero_
+There_are_possible_duplicates_(marked_with_a_'D'_icon)_that_haven't_been_resolved._Continue?=Ci_sono_dei_potenziali_duplicati_(contrassegnati_con_una_icona_'D')_che_non_possono_essere_risolti._Continuare?
+There_is_no_entry_type=Nessun_tipo_di_voce
+##Check
+This_action_will_modify_the_"%0"_field_of_your_entries.nThis_could_cause_undesired_changes_to_your_entries,_so_itnis_recommended_that_you_change_the_field_in_your_groupndefinition_to_"keywords"_or_a_non-standard_name.nnDo_you_still_want_to_continue?=Questa_azione_modificher\u00e0_il_campo_"%0"_delle_voci_del_database._Questo_potrebbe_causare_cambiamenti_indesiderati_alle_voci,_non_\u00e8_perci\u00f2_raccommandato_cambiare_il_campo_nella_definizione_dei_gruppi_in_"keywords"_o_in_un_nome_n [...]
+this_button_will_update=questo_bottone_aggiorner\u00e0
+this_button_will_update_the_column_width_settings<BR>to_match_the_current_widths_in_your_table=questo_bottone_aggiorner\u00e0_le_impostazioni_della_larghezza_delle_colonne<BR>con_i_valori_correnti_di_larghezza_delle_colonne
+This_entry_is_incomplete=La_voce_\u00e8_incompleta
+This_entry_type_cannot_be_removed.=Questo_tipo_di_voce_non_pu\u00f2_essere_eliminato.
+This_group_contains_entries_based_on_manual_assignment._Entries_can_be_assigned_to_this_group_by_selecting_them_then_using_either_drag_and_drop_or_the_context_menu._Entries_can_be_removed_from_this_group_by_selecting_them_then_using_the_context_menu._Every_entry_assigned_to_this_group_must_have_a_unique_key._The_key_may_be_changed_at_any_time_as_long_as_it_remains_unique.=Questo_gruppo_contiene_voci_assegnate_manualmente._Altre_voci_possono_essere_assegnate_a_questo_gruppo_selezionandole [...]
+This_group_contains_entries_in_which=Questo_gruppo_contiene_voci_in_cui
+This_group_contains_entries_in_which_any_field_contains_the_regular_expression_<b>%0</b>=Questo_gruppo_contiene_voci_in_cui_uno_dei_campi_contiene_l'espressione_regolare_<b>%0</b>
+This_group_contains_entries_in_which_any_field_contains_the_term_<b>%0</b>=Questo_gruppo_contiene_voci_in_cui_uno_dei_campi_contiene_il_termine_<b>%0</b>
+This_group_contains_entries_whose_<b>%0</b>_field_contains_the_keyword_<b>%1</b>=Questo_gruppo_contiene_voci_in_cui_il_campo_<b>%0</b>__contiene_la_keyword_<b>%1</b>
+This_group_contains_entries_whose_<b>%0</b>_field_contains_the_regular_expression_<b>%1</b>=Questo_gruppo_contiene_voci_in_cui_il_campo_<b>%0</b>__contiene_l'espressione_regolare_<b>%1</b>
+This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=Questo_\u00e8_un_semplice_dialogo_taglia_e_copia._Prima_inserisci_o_incolla_del_testo_nell'area_di_input._Quindi_puoi_evidenziare_il_testo_ed_assegnarlo_ad_un_campo_BibTeX.
+This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=Questo_\u00e8_un_semplice_dialogo_taglia_e_copia_per_importare_dei_campi_da_testo_normale
+This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=Questo_fa_in_modo_che_JabRef_verifichi_ciascuno_dei_%0_collegamenti_per_l'esistenza_del_file._In_caso_negativo_verranno_proposte_delle_opzioni_<BR>per_risolvere_il_problema.
+This_operation_cannot_work_on_multiple_rows.=Questa_operazione_non_pu\u00f2_essere_effettuata_su_righe_multiple
+This_operation_requires_all_selected_entries_to_have_BibTex_keys_defined.=
+This_operation_requires_one_or_more_entries_to_be_selected.=
+To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=Per_configurare_vedi_<B>Strumenti_->_Gestisci_le_abbreviazioni_delle_riviste</B>
+Toggle_abbreviation=Mostra/Nascondi_l'abbreviazione
+Toggle_entry_preview=Mostra/Nascondi_l'anteprima
+Toggle_groups_interface=Mostra/Nascondi_l'interfaccia_dei_gruppi
+Toggle_search_panel=Mostra/Nascondi_il_pannello_di_ricerca
+Tools=Strumenti
+Try_different_encoding=Prova_codifiche_differenti
+Type=Tipo
+Type_set_to_'other'=Tipo_configurato_come_'other'
+Unabbreviate_journal_names_of_the_selected_entries=Mostra_il_nome_completo_delle_riviste_per_le_voci_selezionate
+unable_to_access_LyX-pipe=impossibile_accedere_alla_'pipe'_LyX
+Unable_to_create_graphical_interface=Impossibile_creare_l'interfaccia_grafica
+Unable_to_parse_clipboard_text_as_Bibtex_entries.=Impossibile_interpretare_il_testo_negli_appunti_come_voci_BibTeX
+Unable_to_parse_the_following_URL=Impossibile_interpretare_il_seguente_URL
+unable_to_write_to=Impossibile_scrivere_su
+Undo=Annulla
+Union=Unione
+unknown_bibtex_entries=voci_BibTeX_sconosciute
+Unknown_bibtex_entries=Voci_BibTeX_sconosciute
+##_check
+unknown_edit=modifica_sconosciuta
+unknown_entry_type=tipo_di_voce_sconosciuto
+Unknown_export_format=Formato_di_esportazione_sconosciuto
+Unmark_all=Rimuovi_tutti_i_contrassegni
+Unmark_entries=Rimuovi_i_contrassegni_dalle_voci
+Unmark_entry=Rimuovi_il_contrassegno_dalla_voce
+Unmarked_selected=Rimuovi_i_contrassegni_dalla_selezione
+Unpack_EndNote_filter_set=Scompattare_i_filtri_EndNote
+Unpacked_file=File_scompattato
+Unpacked_file.=File_scompattato.
+Unsupported_version_of_class_%0:_%1=Versione_non_supportata_della_classe_%0:_%1
+untitled=senza_titolo
+##check:_Alto?
+Up=Su
+Update_to_current_column_widths=Aggiorna_la_larghezza_delle_colonne_ai_valori_correnti
+Updated_group_selection=Selezione_di_gruppo_aggiornata
+Updating_entries...=Aggiornamento_delle_voci_in_corso...
+##check_MAIUSCOLA?
+UPPER=MAIUSCOLO
+Upper_Each_First=Prime_Lettere_In_Maiuscolo
+Upper_first=Prima_lettera_in_maiuscolo
+usage=uso
+Use_antialiasing_font=Usa_font_con_antialising
+Use_antialiasing_font_in_table=Usa_font_con_antialising_nella_tabella
+Use_inspection_window_also_when_a_single_entry_is_imported.=Usa_la_finestra_di_ispezione_anche_per_l'importazione_di_una_singola_voce.
+Use_other_look_and_feel=Usa_un_altro_"look_and_feel"
+Use_regular_expressions=Utilizza_espressioni_regolari
+Use_the_following_delimiter=Utilizza_il_delimitatore_seguente
+Use_the_following_delimiter_character(s)=Utilizza_i_caratteri_di_delimitazione_seguenti
+Uses_default_application=Usa_l'applicazione_predefinita
+Value_cleared_externally=Valore_cancellato_esternamente
+Value_set_externally=Valore_impostato_esternamente
+verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid=verifica_che_LyX_sia_in_esecuzione_e_che_la_lyxpipe_sia_valida
+View=Visualizza
+Visible_fields=Campi_visibili
+Warn_about_unresolved_duplicates_when_closing_inspection_window=Avverti_della_presenza_di_doppioni_non_risolti_alla_chiusura_della_finestra_di_ispezione
+Warn_before_overwriting_existing_keys=Avverti_prima_di_sovrascrivere_chiavi_esistenti
+Warning=Avvertimento
+Warning_there_is_a_duplicate_key=Avvertimento!_Una_delle_chiavi_\u00e8_duplicata
+Warnings=Avvertimenti
+web_link=Collegamenti_Internet
+
+
+What_do_you_want_to_do?=
+When_adding/removing_keywords,_separate_them_by=All'aggiunta/rimozione_di_keyword_separarle_con
+with=con
+Word=Parola
+Wrong_file_format=Formato_di_file_errato
+You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=La_lingua_\u00e8_stata_modificata._Riavviare_Jabref_per_rendere_effettiva_la_modifica.
+You_have_cleared_this_field._Original_value=Il_campo_\u00e8_stato_annullato._Valore_originale
+You_must_choose_a_file_name_to_store_journal_abbreviations=Scegliere_un_nome_per_il_file_in_cui_registrare_le_abbreviazioni_delle_riviste
+You_must_enter_an_integer_value_in_the_text_field_for=Immettere_un_numero_intero_nel_campo_di_testo_per
+You_must_fill_in_a_name_for_the_entry_type.=Fornire_un_nome_per_il_tipo_di_voce.
+You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=fornire_un_nome,_una_stringa_di_ricerca_e_un_nome_di_campo_per_questo_gruppo.
+You_must_restart_JabRef_for_the_new_key_bindings_to_work_properly.=Riavviare_Jabref_per_rendere_operative_le_nuove_assegnazioni_di_tasti.
+You_must_select_a_row_to_perform_this_operation.=Selezionare_una_riga_per_effettuare_questa_operazione
+You_must_select_at_least_one_row_to_perform_this_operation.=Selezionare_almeno_una_riga_per_effettuare_questa_operazione
+You_must_set_both_BibTeX_key_and_%0_directory=Definire_sia_la_chiave_BibTex,_sia_la_cartella_%0
+You_must_set_both_bibtex_key_and_PDF_directory=Definire_sia_la_chiave_BibTex,_sia_la_cartella_PDF
+Your_new_key_bindings_have_been_stored.=La_nuova_assegnazione_di_tasti_\u00e8_stata_salvata.
diff --git a/src/resource/JabRef_no.properties b/src/resource/JabRef_no.properties
index 3cec8ef..5067e33 100644
--- a/src/resource/JabRef_no.properties
+++ b/src/resource/JabRef_no.properties
@@ -1,4 +1,6 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
+#!
+#! created/edited by Popeye version 0.53a (popeye.sourceforge.net)
+#! encoding:ISO-8859-1
 
 !This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_text_input_area._After_that,_you_can_mark_text_and_assign_it_to_a_bibtex_field.=Dette_er_et_enkelt_klipp-og-lim-vindu._F\u00F8rst_last_inn_eller_kopier_tekst_til_inndatafeltet._Deretter_kan_du_merke_tekst_og_tildele_den_til_et_BibTeX-felt.
 %0_contains_the_Regular_Expression_<b>%1</b>=%0_inneholder_regul\u00e6ruttrykket_<b>%1</b>
@@ -20,13 +22,23 @@ _on_entry_number_=_ved_enhet_nummer_
 A_CiteSeer_fetch_operation_is_currently_in_progress.=En_henteoperasjon_fra_CiteSeer_p\u00E5g\u00E5r_allerede.
 A_CiteSeer_import_operation_is_currently_in_progress.=En_importoperasjon_fra_CiteSeer_p\u00E5g\u00E5r_allerede.
 A_string_with_that_label_already_exists=En_streng_med_det_navnet_finnes_allerede
+Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Forkort_journalnavn_for_de_valgte_enhetene_(ISO-forkortelse)
+Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Forkort_journalnavn_for_de_valgte_enhetene_(MEDLINE-forkortelse)
+Abbreviate_names=Forkort_navn
+Abbreviation=Forkortelse
 About_JabRef=Om_JabRef
 Abstract=Sammendrag
 Accept=Aksepter
 Accept_change=Aksepter_endring
 Action=Aksjon
 Add=Legg_til
+Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=
+
+Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Legg_til_en_kompilert_ImportFormat-klasse_fra_en_ZIP-fil._ZIP-filen_trenger_ikke_\u00e5_v\u00e6re_i_din_classpath.
 add_entries_to_group=legg_til_enheter_i_gruppe
+Add_entry_selection_to_this_group=Legg_valgte_enheter_til_denne_gruppen
+Add_from_folder=Legg_til_fra_mappe
+Add_from_jar=Legg_til_fra_jar-fil
 add_group=legg_til_gruppe
 Add_Group=Legg_til_gruppe
 Add_new=Legg_til_ny
@@ -56,7 +68,9 @@ Append_contents_from_a_BibTeX_database_into_the_currently_viewed_database=Legg_t
 Append_database=Append_database
 append_the_selected_text_to_bibtex_key=
 Apply=Utf\u00F8r
+Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Argumentene_sendt_til_allerede_aktiv_JabRef-instans._Avslutter.
 Assign_entries_based_on:=Assign_entries_based_on:
+Assign_entry_selection_exclusively_to_this_group=Legg_valgte_enheter_eksklusivt_til_denne_gruppen
 Assign_new_file=Tilordne_ny_fil
 Assign_the_original_group's_entries_to_this_group?=Legg_den_opprinnelige_gruppens_enheter_til_denne_gruppen?
 Assigned_%0_entries_to_group_"%1".=La_til_%0_enheter_til_gruppen_"%1".
@@ -85,6 +99,9 @@ AUX_file_import=AUX-fil_import
 Available_export_formats=Tilgjengelige_eksportformater
 Available_fields=Tilgjengelige_felter
 Available_import_formats=Tilgjengelige_importformater
+Background_color_for_marked_entries=Bakgrunnsfarge_for_merkede_enheter
+Background_color_for_optional_fields=Bakgrunnsfarge_for_valgfrie_felter
+Background_color_for_required_fields=Bakgrunnsfarge_for_n\u00F8dvendige_felter
 Backup_old_file_when_saving=Lag_sikkerhetskopi_ved_lagring
 Bibkey_to_filename_conversion=
 Biblioscape_Tag_file=Biblioscape_tag-fil
@@ -129,7 +146,10 @@ Changed_type_to=Endret_type_til
 Characters_to_ignore=Ignorer_f\u00F8lgende_tegn
 Check_existing_%0_links=Sjekk_eksisterende_%0-linker
 Check_links=Sjekk_eksterne_linker
+Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Velg_URL_for_nedlasting._Den_forh\u00e5ndsvalgte_adressen_peker_til_en_liste_gjort_tilgjengelig_av_JabRef-utviklerne.
 Citation_import_from_CiteSeer_failed.=Import_av_referanser_fra_CiteSeer_mislyktes.
+
+Cite_command_(for_Emacs/WinEdt)=Kommando_for_referanser_(for_Emacs/WinEdt)
 CiteSeer_Error=CiteSeer-feil
 CiteSeer_Fetch_Error=Feil_ved_henting_fra_CiteSeer
 CiteSeer_import_entries=CiteSeer_importer_enheter
@@ -158,21 +178,25 @@ Close_window=Lukk_vindu
 Closed_database=Lukket_database
 Collapse_subtree=Lukk_forgrening
 Color_codes_for_required_and_optional_fields=Fargekoder_for_n\u00F8dvendige_og_valgfrie_felter
+Color_for_marking_incomplete_entries=Farge_for_markering_av_ufullstendige_enheter
 Column_width=Kolonnebredde
+Command_line_id=Kommandolinje-id
 Complete_record=Komplett_form
 Completed_citation_import_from_CiteSeer.=Import_av_referanser_fra_CiteSeer_fullf\u00F8rt.
 Completed_Import_Fields_from_CiteSeer.=Fullf\u00F8rte_import_av_felter_fra_CiteSeer
 Completed_import_from_CiteSeer.=Fullf\u00F8rte_import_fra_CiteSeer
+Contained_in=Inneholdt_i
 Content=Innhold
 Copied=Kopierte
 Copied_cell_contents=Kopierte_innhold_av_cellen
 Copied_key=Kopierte_n\u00F8kkel
 Copied_keys=Kopierte_n\u00F8kler
 Copy=Kopier
+Copy_\cite{BibTeX_key}=
 Copy_BibTeX_key=Kopier_BibTeX-n\u00F8kkel
-Copy_\\cite{BibTeX_key}=
 Copy_to_clipboard=Kopier
 Could_not_call_executable=Kunne_ikke_kalle_programfilen
+Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Kunne_ikke_opprette_kontakt_med_en_gnuserv-prosess._Kontroller_at_Emacs_eller_XEmacs_er_i_gang<BR>og_at_serveren_har_blitt_startet_(med_kommandoen_'gnuserv-start').
 Could_not_connect_to_host=Kunne_ikke_koble_til_vert
 Could_not_connect_to_host_=Kunne_ikke_koble_opp_mot_vert
 Could_not_export_entry_types=Kunne_ikke_eksportere_enhetstyper
@@ -183,7 +207,12 @@ Could_not_find_a_suitable_import_format.=Fant_ikke_noe_passende_importformat.
 Could_not_find_layout_file=Fant_ikke_layoutfil
 Could_not_import_entry_types=Kunne_ikke_importere_enhetstyper
 Could_not_import_preferences=Kunne_ikke_importere_innstillinger
+Could_not_instantiate_%0_%1=
+
+Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Kunne_ikke_instansiere_%0_%1._Har_du_valgt_riktig_katalog?
+Could_not_parse_number_of_hits=
 Could_not_resolve_import_format=Kunne_ikke_bestemme_importformat
+Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Kunne_ikke_kalle_'gnuclient'-programmet._Kontroller_at_du_har_installert_gnuserv/gnuclient-programmene.
 Could_not_save_file=Kunne_ikke_lagre
 Couldn't_find_an_entry_associated_with_this_URL=Fant_ingen_enhet_for_f\u00F8lgende_URL
 Couldn't_parse_the_'citeseerurl'_field_of_the_following_entries=Kunne_ikke_tolke_'citeseerurl'-feltet_for_f\u00F8lgende_enheter
@@ -197,13 +226,16 @@ Current_value=N\u00E5v\u00E6rende_verdi
 Custom_entry_types=Egendefinerte_enhetstyper
 Custom_entry_types_found_in_file=Fant_egendefinerte_enhetstyper_i_filen
 Custom_export=Eksterne_eksportfiltre
+Custom_importers=Egendefinerte_importformat
 Customize_entry_types=Tilpass_enhetstyper
 Customize_key_bindings=Sett_opp_hurtigtaster
 Cut=Klipp_ut
 cut_entries=klippet_ut
 cut_entry=klipp_ut_enhet
 Cut_pr=Klippet_ut
+Database_encoding=Tegnkoding_for_database
 Database_has_changed._Do_you_want_to_save_before_closing?=Databasen_er_endret._Vil_du_lagre_f\u00F8r_du_lukker_den?
+Database_properties=Databaseegenskaper
 Date_format=
 Default=Tilbakestill
 Default_encoding=Standard_koding
@@ -211,6 +243,7 @@ Default_grouping_field=Standardfelt_for_gruppering
 Default_look_and_feel=Standard_utseende
 Default_owner=Eier_av_nye_enheter
 Default_pattern=Default_pattern
+Default_sort_criteria=Standard_sorteringskriteria
 defined.=er_definert.
 Delete=Slett
 Delete_custom=Slett_tilpasset
@@ -232,14 +265,17 @@ Disable_entry_editor_when_multiple_entries_are_selected=Sperr_enhetsskjema_n\u00
 Disable_this_confirmation_dialog=Deaktiver_denne_kontrolldialogen
 Disable_this_warning_dialog=Deaktiver_denne_advarselen
 Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Vis_alle_enheter_inneholdt_i_minst_en_av_de_valgte_gruppene.
+Display_all_error_messages=
 Display_help_on_command_line_options=Vis_kommandolinjehjelp
 Display_imported_entries_in_an_inspection_window_before_they_are_added.=Vis_importerte_enheter_i_et_inspeksjonsvindu_f\u00F8r_de_legges_til.
 Display_only_entries_belonging_to_all_selected_groups.=Vis_kun_enheter_inneholdt_i_alle_valgte_grupper.
 Displaying_no_groups=Viser_ingen_grupper
+Do_not_abbreviate_names=Ikke_forkort_navn
 Do_not_autoset=Ikke_sett_linker_automatisk
 Do_not_import_entry=Ikke_importer_enhet
 Do_not_open_any_files_at_startup=\u00c5pne_ingen_filer_ved_oppstart
-Do_not_overwrite_existing_keys=Ikke_skriv_over_eksisterende_n�kler
+Do_not_overwrite_existing_keys=Ikke_skriv_over_eksisterende_n\u00f8kler
+Do_not_wrap_the_following_fields_when_saving=Ikke_introduser_linjeskift_i_f\u00f8lgende_felter_ved_lagring
 Docbook=Docbook
 Done=Ferdig
 Down=Ned
@@ -268,6 +304,7 @@ Edit=Rediger
 Edit_custom_export=Rediger_eksternt_eksportfilter
 Edit_entry=Rediger_enhet
 Edit_group=Rediger_gruppe
+Edit_journal=Rediger_journal
 Edit_preamble=Rediger_'preamble'
 Edit_strings=Rediger_strenger
 empty_BibTeX_key=tom_BibTeX-n\u00F8kkeldfasdfdsafads
@@ -275,7 +312,6 @@ Empty_BibTeX_key.=Tom_BibTeX-n\u00F8kkel
 Empty_BibTeX_key._Grouping_may_not_work_for_this_entry.=Tom_BibTeX-n\u00F8kkel._Gruppering_kan_feile_for_denne_enheten.
 Empty_database=Empty_database
 empty_database=tom_database
-Enable source_editing=Tillat_redigering_av_BibTeX-kildekode
 Enable_source_editing=Tillat_redigering_av_kildekode
 Endnote=Endnote
 Enter_URL=Skriv_inn_URL
@@ -307,8 +343,10 @@ Error=Feil
 ##Error:_check_your_External_viewer_settings_in_Preferences=Feil:_unders\u00F8k_innstillingene_for_Eksterne_programmer_i_Innstillinger
 Error_in_field=Feil_i_felt
 Error_in_line=Error_in_line
+Error_messages=
 Error_opening_file=Feil_ved_\u00E5pning_av_fil
 Error_setting_field=Problem_med_\u00E5_sette_felt
+Existing_file=Eksisterende_fil
 exists._Overwrite?=eksisterer._Skriv_over?
 exists._Overwrite_file?=eksisterer._Erstatt_filen?
 Exit=Avslutt
@@ -325,6 +363,7 @@ Export_to_clipboard=Eksporter_til_utklippstavle
 Exported_database_to_file=Eksporterte_databasen_til_fil
 Exporting=Eksporterer
 External_changes=Eksterne_endringer
+External_files=Eksterne_filer
 External_programs=Eksterne_programmer
 External_viewer_called=Eksternt_program_kalt_opp
 Failed_to_read_groups_data_(unsupported_version:_%0)=Kunne_ikke_lese_gruppedata_(ikke_st\u00f8ttet_versjon:_%0)
@@ -356,6 +395,7 @@ Field_to_search=S\u00F8kefelt
 Fields=Felter
 File=Fil
 file=fil
+File_'%0'_not_found=Fant_ikke_filen_'%0'
 File_changed=Endret_fil
 File_extension=Etternavn_p\u00E5_filer
 File_has_been_updated_externally._Are_you_sure_you_want_to_save?=Filen_har_blitt_endret_eksternt._Er_du_sikker_p\u00E5_at_du_vil_lagre?
@@ -363,6 +403,8 @@ File_not_found=Fant_ikke_filen
 File_updated_externally=Filen_har_blitt_endret_eksternt
 filename=filnavn
 Files_opened=Filer_\u00E5pnet
+
+Filter=Filter
 Find_duplicates=S\u00F8k_etter_duplikater
 Finished_autosetting_%0_field._Entries_changed:_%1.=Fullf\ufffdrte_automatisk_setting_av_%0-felt._Enheter_endret:_%1
 Finished_synchronizing_%0_links._Entries_changed%c_%1.=Fullf\u00f8rte_synkronisering_av_%0-linker._Enheter_endret%c_%1.
@@ -380,11 +422,13 @@ Format_used=Format_brukt
 Formatter_not_found=Ukjent_formaterer
 found=funnet
 found_in_aux_file=funnet_i_aux-fil
+Full_name=Fullt_navn
 General=Generelt
 General_fields=Generelle_felter
 Generate=Generer
 Generate_BibTeX_key=Generere_BibTeX-n\u00F8kkel
 Generate_keys=Generer_n\u00F8kler
+Generate_keys_before_saving_(for_entries_without_a_key)=
 Generate_now=Generer_n\u00e5
 Generated_BibTeX_key_for=Genererte_BibTeX-n\u00F8kkel_for
 Generating_BibTeX_key_for=Genererer_BibTeX-n\u00F8kkel_for
@@ -397,11 +441,15 @@ Group_name=Gruppenavn
 Group_properties=Gruppeegenskaper
 Groups=Gruppering
 Harvard_RTF=Harvard_RTF
+Have_you_chosen_the_correct_package_path?=
 Help=Hjelp
 Help_contents=Oversikt_over_hjelpefiler
 Help_on_groups=Hjelp_om_grupper
 Help_on_key_patterns=Hjelp_om_n\u00F8kkeloppskrifter
 Hide_non-hits=Skjul_ikke-treff
+Hide_non-matching_entries=Gjem_ikke-treff
+
+Hierarchical_context=Gruppehierarki
 Highlight=Uthev
 Highlight_groups_matching_all_selected_entries=Uthev_grupper_som_inneholder_alle_valgte_enheter
 Highlight_groups_matching_any_selected_entry=Uthev_grupper_som_inneholder_minst_en_av_de_valgte_enhetene
@@ -429,6 +477,7 @@ Import_fields_from_CiteSeer_Database=Importer_felter_fra_CiteSeer-database
 Import_Fields_from_CiteSeer_Database=Importer_felter_fra_CiteSeer-database
 Import_file=Importer_fil
 Import_group_definitions=Importer_gruppedefinisjoner
+Import_name=Navn_p\u00e5_import
 Import_plain_text=Importer_fra_ren_tekst
 Import_preferences=Importer_innstillinger
 Import_preferences_from_file=Importer_innstillinger_fra_fil
@@ -440,10 +489,12 @@ Imported_entries=Importerte_enheter
 Imported_entry_types=Importerte_enhetstyper
 Imported_file=Importerte_fil
 Imported_from_database=Importerte_fra_databasen
+ImportFormat_class=ImportFormat-klasse
 Importing=Importerer
 Importing_file=Importerer_fil
 Importing_in_unknown_format=Importerer_ukjent_format
 In_JabRef,_use_pairs_of_#_characters_to_indicate_a_string.=I_JabRef_brukes_#-tegn_parvis_for_\u00E5_indikere_strenger.
+Include_abstracts=
 Include_subgroups=Inkluder_undergrupper
 Include_subgroups\:_When_selected,_view_entries_contained_in_this_group_or_its_subgroups=Inkluder_undergrupper:_Vis_enheter_inneholdt_i_denne_gruppen_eller_en_undergruppe
 Incremental=Inkrementell
@@ -466,13 +517,19 @@ Integrity_check=Integritetssjekk
 Intersection=Snitt
 Intersection_with_supergroups=Snitt_med_supergrupper
 Invalid_BibTeX_key=Ugyldig_BibTeX-n\u00F8kkel
+Invalid_date_format=Ugyldig_datoformat
 Invalid_URL=Ugyldig_URL
 Inverted=Invertert
 is_a_standard_type.=er_en_standardtype.
 ISI=ISI
+ISO_abbreviation=ISO-forkortelse
 Item_list_for_field=Ordliste_for_felt
 JabRef_help=JabRef-hjelp
 JabRef_preferences=JabRef-oppsett
+Journal_abbreviations=Journalforkortelser
+Journal_list_preview=Forh\u00e5ndsvisning_av_journalliste
+Journal_name=Journalnavn
+Journal_names=Journalnavn
 JStor_file=JStor-fil
 Keep=Behold
 Keep_both=Behold_begge
@@ -486,6 +543,7 @@ keys_in_database=n\u00F8kler_i_databasen
 Keyword=N\u00F8kkelord
 Label=Navn
 Language=Spr\u00E5k
+Last_modified=Sist_endret
 Latex_AUX_file=LaTeX_AUX-fil
 LaTeX_AUX_file=LaTeX_AUX-fil
 Left=Venstre
@@ -503,6 +561,8 @@ Main_PS_directory=Hovedkatalog_for_PS-filer
 Manage=Sett_opp
 Manage_content_selectors=Sett_opp_ordvelgere
 Manage_custom_exports=Sett_opp_eksterne_eksportfiltre
+Manage_custom_imports=
+Manage_journal_abbreviations=Sett_opp_journalforkortelser
 Mark_entries=Merk_enheter
 Mark_entry=Merk_enhet
 Mark_new_entries_with_addition_date=
@@ -536,7 +596,7 @@ Move_up=Flytt_opp
 Moved_Group=Flyttet_gruppe
 Moved_group_"%0".=Flyttet_gruppen_"%0".
 Name=Navn
-Ne_entries_imported.=Ingen_enheter_importert.
+Natbib_style=Natbib-stil
 nested_aux_files=n\u00F8stede_aux-filer
 New=Ny
 new=ny
@@ -551,6 +611,7 @@ New_database_created.=Opprettet_ny_database.
 New_entry=Ny_enhet
 New_entry...=Ny_enhet...
 New_entry_from_plain_text=Ny_enhet_fra_ren_tekst
+New_file=Ny_fil
 New_group=Ny_gruppe
 New_inbook=Ny_'inbook'
 New_mastersthesis=Ny_'mastersthesis'
@@ -565,18 +626,25 @@ Next_tab=Neste_tab
 No_%0_found=Fant_ingen_%0
 No_actual_changes_found.=Ingen_reelle_endringer_funnet.
 no_base-bibtex-file_specified=ingen_basis-bibtexfil_spesifisert
+No_custom_imports_registered_yet.=Ingen_egne_importformater_er_definert.
 no_database_generated=ingen_database_generert
 No_duplicates_found=Ingen_duplikater_funnet
+No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Ingen_enheter_funnet._Kontroller_at_du_bruker_riktig_importfilter.
 No_entries_imported.=Ingen_enheter_importert.
 No_entries_or_multiple_entries_selected.=Ingen_eller_flere_enheter_valgt.
 No_entries_selected=Ingen_enheter_valgt
+No_exceptions_have_ocurred.=
+No_file_extension._Could_not_find_viewer_for_file.=
 No_GUI._Only_process_command_line_options.=Ingen_GUI._Bare_behandle_kommandolinjevalg.
+No_journal_names_could_be_abbreviated.=Ingen_journalnavn_kunne_forkortes.
+No_journal_names_could_be_unabbreviated.=Ingen_journalnavn_kunne_ekspanderes.
 No_Medline_entries_found.=Ingen_Medline-enheter_funnet
 No_pdf_or_ps_defined,_and_no_file_matching_Bibtex_key_found=Ingen_pdf_eller_ps_definert_og_fant_ingen_filer_med_navn_tilsvarende_BibTeX-n\u00f8kkelen
 No_references_found=Ingen_referanser_funnet
 No_saved_session_found.=Fant_ingen_lagret_tilstand.
 No_url_defined=Ingen_url_er_definert
 non-Mac_only=ikke_for_Mac
+Normal=Normal
 not=ikke
 not_found=ikke_funnet
 Not_saved_(empty_session)=Tilstand_ikke_lagret_(ingen_filer_\u00E5pne)
@@ -611,6 +679,7 @@ out_of=ut_av
 Output_or_export_file=Lagre_eller_eksporter_fil
 Overlapping_groups=Overlappende_grupper
 Override=Skriv_over
+Override_default_file_directories=
 override_the_bibtex_key_by_the_selected_text=
 Overwrite_keys=Skriv_over_n\u00F8kler
 Ovid=Ovid
@@ -626,7 +695,9 @@ Path_to_PDF_viewer=Sti_til_PDF-leser
 Path_to_PS_viewer=Sti_til_PS-leser
 Path_to_WinEdt.exe=Sti_til_WinEdt.exe
 Paths_to_external_programs=Stier_til_eksterne_programmer
+PDF_directory=
 PDF_links=PDF-koblinger
+Personal_journal_list=Personlig_journalliste
 Pick_titles=Velg_titler
 Plain_right_menu=Plain_right_menu
 Plain_text=Ren_tekst
@@ -639,6 +710,8 @@ Please_enter_a_semicolon_or_comma_separated_list_of_Medline_IDs_(numbers).=Du_m\
 Please_enter_the_field_to_search_(e.g._<b>keywords</b>)_and_the_keyword_to_search_it_for_(e.g._<b>electrical</b>).=Vennligst_skriv_inn_feltet_som_skal_s\u00F8kes_i_(f.eks._<b>keywords</b>)_og_n\u00f8kkelordet_\u00e5_s\u00F8ke_etter_(f._eks._<b>electrical</b>).
 Please_enter_the_string's_label=Skriv_inn_et_navn_for_strengen
 Please_refer_to_the_JabRef_help_manual_on_using_the_CiteSeer_tools.=Vennligst_se_JabRef-dokumentasjonen_for_informasjon_om_bruk_av_CiteSeer-verkt\u00F8yene.
+Please_select_an_importer=Vennligst_velg_et_importformat
+Please_select_an_importer.=Velg_et_importfilter.
 Please_select_exactly_one_group_to_move.=Velg_eksakt_en_gruppe_for_flytting.
 Please_wait_until_it_has_finished.=Vennligst_vent_til_den_er_fullf\u00F8rt.
 Possible_duplicate_entries=Mulige_duplikater
@@ -652,12 +725,19 @@ Preserve_formatting_of_non-BibTeX_fields=Bevar_formatering_av_ikke-standard_BibT
 Preview=Forh\u00E5ndsvisning
 Previous_entry=Forrige_enhet
 Previous_tab=Forrige_tab
+Primary_sort_criterion=Prim\u00e6rt_sorteringskriterium
 Problem_with_parsing_entry=Problem_med_\u00E5_lese_enhet
+PS_directory=
 PS_links=PS-koblinger
+Push_selection_to_Emacs=Send_valgte_enheter_til_Emacs
+push_selection_to_lyx=
 Push_selection_to_LyX/Kile=Send_valgte_enheter_til_LyX/Kile
 Push_selection_to_WinEdt=Send_valgte_til_WinEdt
+Push_to_LatexEditor=
 Push_to_LyX=Send_til_LyX
 Push_to_WinEdt=Send_til_WinEdt
+Pushed_citations_to_Emacs=Sendte_enheter_til_Emacs
+Pushed_citations_to_WinEdt=Sendte_referanser_til_WinEdt
 Pushed_the_citations_for_the_following_rows_to=Sendte_referanser_til_de_f\u00F8lgende_radene_til
 Query_author(s)=S\u00f8k_etter_forfatter(e)
 Quit=Avslutt
@@ -665,13 +745,14 @@ Quit_JabRef=Avslutt_JabRef
 Quit_synchronization=Avslutt_synkronisering
 Raw_source=Kilde
 Really_delete_the_selected=Vil_du_slette_de_valgte
+Rearrange_tabs_alphabetically_by_title=
 Recent_files=Siste_filer
 Redo=Gjenta
 Refer/Endnote=Refer/Endnote
 Reference_database=Referansedatabase
 # The next two lines are used like in "References found: 1  Number of references to fetch?"
 References_found=Referanser_funnet
-Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Undergruppe:_Vis_enheter_inneholdt_b�de_i_denne_gruppen_og_gruppen_over
+Refine_supergroup\:_When_selected,_view_entries_contained_in_both_this_group_and_its_supergroup=Undergruppe:_Vis_enheter_inneholdt_b\u00e5de_i_denne_gruppen_og_gruppen_over
 Refresh_view=Oppdater
 Regexp=Regexp
 Regular_Expression=Regul\u00e6ruttrykk
@@ -682,8 +763,10 @@ Remove=Fjern
 Remove_all?=Fjern_alle?
 Remove_all_subgroups=Fjern_undergrupper
 Remove_all_subgroups_of_"%0"?=Remove_all_subgroups_of_"%0"?
+Remove_double_braces_around_BibTeX_fields_when_loading.=Fjern_doble_kr\u00f8llparenteser_rundt_BibTeX-felter_ved_innlasting.
 Remove_duplicates=Fjern_duplikater
 Remove_entry_from_import=Fjern_enhet_fra_import
+Remove_entry_selection_from_this_group=Fjern_valgte_enheter_fra_denne_gruppen
 Remove_entry_type=Slett_enhetstype
 remove_from_group=fjern_fra_gruppe
 Remove_from_group=Fjern_fra_gruppe
@@ -706,6 +789,7 @@ Removed_string=Fjernet_streng
 Renamed_string=Endret_navn_p\u00e5_streng
 Repeat_incremental_search=Gjenta_inkrementelt_s\u00F8k
 Replace=
+Replace_(regular_expression)=Erstatt_(regul\u00e6ruttrykk)
 Replace_string=Erstatt_streng
 Replace_with=Erstatt_med
 Replaced=Erstattet
@@ -714,6 +798,7 @@ Reset_all=Tilbakestill_alle
 resolved=tatt_h\u00E5nd_om
 Results=Resultater
 Revert_to_original_source=Resett_til_opprinnelig_kildekode
+Review=Kommentarer
 Review_changes=Se_over_endringer
 Right=H\u00f8yre
 RIS=RIS
@@ -721,12 +806,19 @@ Save=Lagre
 Save_before_closing=Lagre_f\u00F8r_databasen_lukkes
 Save_database=Lagre_database
 Save_database_as_...=Lagre_database_som_...
+Save_entries_in_their_original_order=
+Save_failed=Lagring_mislyktes
+Save_failed_during_backup_creation=Lagring_mislyktes_ved_opprettelse_av_sikkerhetskopi
+Save_failed_while_committing_changes=Lagring_mislyktes_ved_sluttf\u00f8ring_av_endringer
+Save_in_default_table_sort_order=
+Save_ordered_by_author/editor/year=
 Save_selected_as_...=Lagre_valgte_som_...
 Save_session=Lagre_tilstand
 Saved_database=Lagret_database
 Saved_selected_to=Lagret_valgte_i
 Saved_session=Lagret_tilstand
 Saving=Lagrer
+Saving_database=Lagrer_database
 # Integrity check is a process that checks for indications of wrongly filled out bibtex fields. "Scan" is the button that starts the check.
 Scan=S\u00F8k
 SciFinder=SciFinder
@@ -738,24 +830,31 @@ Search_expression=S\u00F8keuttrykk
 Search_for=S\u00F8k_etter
 Search_General_Fields=S\u00f8k_i_generelle_felter
 Search_general_fields=S\u00f8k_i_generelle_felter
+Search_IEEEXplore=
 Search_Optional_Fields=S\u00f8k_i_valgfrie_felter
 Search_optional_fields=S\u00f8k_i_valgfrie_felter
 Search_Required_Fields=S\u00f8k_i_n\u00f8dvendige_felter
 Search_required_fields=S\u00f8k_i_n\u00f8dvendige_felter
 Search_Specified_Field(s)=S\u00F8k_spesifiserte_felt(er)
 Search_term=S\u00F8kestreng
+Searched_database._Global_number_of_hits=
 Searched_database._Number_of_hits=S\u00F8kte_gjennom_basen._Antall_treff
 Searching_for_%0_file=S\u00F8ker_etter_%0-fil
 Searching_for_duplicates...=S\u00F8ker_etter_duplikater...
 Secondary_sort_criterion=Andre_sorteringskriterium
 Select=Velg
+Select_a_Zip-archive=Velg_ZIP-fil
 Select_action=Select_action
 Select_all=Velg_alle
+Select_Classpath_of_New_Importer=Velg_classpath_for_nytt_importformat
+Select_encoding=Velg_koding
 Select_entries_in_group_selection=Velg_enheter_i_valgte_grupper
 Select_entry_type=Velg_enhetstype
+Select_file_from_ZIP-archive=Velg_fil_fra_ZIP-fil
 Select_format=Velg_format
 Select_matches=Velg_treff
 Select_matching_entries=Velg_treff
+Select_new_ImportFormat_Subclass=Velg_klasse_for_nytt_importformat
 Select_the_tree_nodes_to_view_and_accept_or_reject_changes=Velg_trenodene_for_\u00E5_inspisere_og_akseptere_eller_avsl\u00E5_endringer
 Selector_enabled_fields=Felter_med_ordliste
 Set_general_fields=Tilpass_generelle_felter
@@ -773,6 +872,7 @@ Show_BibTeX_source_by_default=Vis_BibTeX-kode_som_standard
 Show_BibTeX_source_panel=Vis_BibTeX-kilde-panel
 Show_CiteSeer_column=Vis_CiteSeer-kolonne
 Show_confirmation_dialog_when_deleting_entries=Vis_dialog_for_\u00E5_bekrefte_sletting_av_enheter
+Show_description=Vis_beskrivelse
 Show_dynamic_groups_in_<i>italics</i>=Vis_dynamiske_grupper_i_<i>kursiv</i>
 Show_entries_*not*_in_group_selection=Vis_enheter_*utenfor*_valgte_grupper
 Show_general_fields=Vis_generelle_felter
@@ -791,6 +891,7 @@ Show_warning_dialog_when_a_duplicate_BibTeX_key_is_entered=Vis_advarsel_n\u00E5r
 Show_warning_dialog_when_an_empty_BibTeX_key_is_entered=Vis_dialogboks_med_advarsel_n\u00E5r_en_tom_BibTeX-n\u00F8kkel_skrives_inn
 Simple_HTML=Enkel_HTML
 Sixpack=Sixpack
+Size=St\u00f8rrelse
 Size_of_groups_interface_(rows)=
 Skip=
 Sort_alphabetically=Sorter_alfabetisk
@@ -811,7 +912,9 @@ Status=Status
 Stop=Stopp
 Store=Lagre
 Store_fields_with_double_braces,_and_remove_extra_braces_when_loading.<BR>Double_braces_signal_that_BibTeX_should_preserve_character_case.=Lagre_felter_med_doble_kr\u00F8llparenteser,_og_fjern_ekstra_kr\u00F8llparenteser_ved_innlasting.<BR>Doble_kr\u00F8llparenteser_signaliserer_at_BibTeX_ikke_skal_bytte_store_og_sm\u00E5_bokstaver.
+Store_journal_abbreviations=Lagre_journalforkortelser
 Store_string=Lagre_streng
+Store_the_following_fields_with_braces_around_capital_letters=Lagre_de_f\u00f8lgende_feltene_med_kr\u00f8llparenteser_rundt_store_bokstaver
 Stored_definition_for_type=Lagret_typedefinisjon
 Stored_entry=Lagret_enhet
 Stored_entry.=Lagret_enhet.
@@ -821,15 +924,20 @@ subdatabase_from_aux=underdatabase_fra_aux
 Subdatabase_from_aux=Deldatabase_fra_aux-fil
 Suggest=Foresl\u00E5
 Switch_preview_layout=Skift_layout_p\u00E5_forh\u00E5ndsvisning
+Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Bytter_mellom_fullt_og_forkortet_journalnavn_dersom_navnet_er_kjent.
 Synchronize_%0_links=Synkroniser_%0-linker
 Synchronizing_%0_links...=Synkroniserer_%0-linker...
 Table=Tabell
 Table_appearance=Tabelloppsett
+Table_background_color=Bakgrunnsfarge_for_tabell
+Table_grid_color=Farge_p\u00e5_linjer_i_tabell
+Table_text_color=Tekstfarge_i_tabell
 Tabname=Tabnavn
 Tertiary_sort_criterion=Tredje_sorteringskriterium
 Test=Test
 Text_Input_Area=Inndatafelt
 The_#_character_is_not_allowed_in_BibTeX_fields=#-tegnet_er_ikke_tillatt_i_BibTeX-felter
+The_chosen_date_format_for_new_entries_is_not_valid=Det_valgte_datoformatet_er_ugyldig
 The_CiteSeer_fetch_operation_returned_zero_results.=Nedlastingen_fra_CiteSeer_ga_ingen_resultater.
 the_field_<b>%0</b>=feltet_<b>%0</b>
 The_file<BR>'%0'<BR>has_been_modified<BR>externally!=Filen<BR>'%0'<BR>har_blitt_endret<BR>eksternt!
@@ -863,12 +971,18 @@ This_is_a_simple_copy_and_paste_dialog._First_load_or_paste_some_text_into_the_t
 This_is_a_simple_copy_and_paste_dialog_for_import_some_fields_from_normal_text.=Dette_er_et_enkelt_klipp-og-lim-vindu._F\u00F8rst_last_inn_eller_kopier_tekst_til_inndatafeltet._Deretter_kan_du_merke_tekst_og_tildele_den_til_et_BibTeX-felt.
 This_makes_JabRef_look_up_each_%0_link_and_check_if_the_file_exists._If_not,_you_will_be_given_options<BR>to_resolve_the_problem.=Dette_f\u00E5r_JabRef_til_\u00E5_unders\u00F8ke_hver_av_%0-linkene,_og_sjekke_om_filen_eksisterer._Hvis_ikke_vil_du_bli_gitt_valg<BR>for_\u00E5_l\u00F8se_problemet.
 This_operation_cannot_work_on_multiple_rows.=Denne_operasjonen_kan_ikke_brukes_p\u00E5_flere_rader_samtidig.
+This_operation_requires_all_selected_entries_to_have_BibTex_keys_defined.=
+This_operation_requires_one_or_more_entries_to_be_selected.=
+To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=For_\u00e5_sette_opp,_g\u00e5_til_<B>Verkt\u00f8y_->_Sett_opp_journalforkortelser</b>
+Toggle_abbreviation=Forkort/ekspander
 Toggle_entry_preview=Vis/skjul_forh\u00E5ndsvisning
 Toggle_groups_interface=Vis/skjul_grupperingskontroll
 Toggle_search_panel=Vis/skjul_s\u00F8kepanel
 Tools=Verkt\u00F8y
+Try_different_encoding=Pr\u00f8v_en_annen_tegnkoding
 Type=Type
 Type_set_to_'other'=Type_satt_til_'other'
+Unabbreviate_journal_names_of_the_selected_entries=Ekspander_journalnavn_for_de_valgte_enhetene
 unable_to_access_LyX-pipe=ingen_tilgang_til_LyX-pipe
 Unable_to_create_graphical_interface=Kunne_ikke_opprette_grafisk_grensesnitt
 Unable_to_parse_clipboard_text_as_Bibtex_entries.=Kunne_ikke_lese_tekst_p\ufffd_utklippstavlen_som_BibTeX-enheter.
@@ -898,6 +1012,7 @@ UPPER=STORE
 Upper_Each_First=Store_Forbokstaver_I_Alle_Ord
 Upper_first=Stor_forbokstav_i_f\u00F8rste_ord
 usage=bruk
+Use_antialiasing_font=Bruk_glattet_font
 Use_antialiasing_font_in_table=Bruk_glattet_font_i_tabell
 Use_inspection_window_also_when_a_single_entry_is_imported.=Bruk_inspeksjonsvindu_ogs\u00E5_n\u00E5r_bare_\u00e9n_enhet_importeres.
 Use_other_look_and_feel=Bruk_annet_utseende
@@ -911,17 +1026,20 @@ verify_that_LyX_is_running_and_that_the_lyxpipe_is_valid=kontroller_at_LyX_kj\u0
 View=Vis
 Visible_fields=Synlige_felter
 Warn_about_unresolved_duplicates_when_closing_inspection_window=Advar_om_duplikater_som_ikke_er_blitt_h\u00e5ndtert_n\u00e5r_inspeksjonsvinduet_lukkes
-Warn_before_overwriting_existing_keys=Gi_advarsel_f�r_eksisterende_n�kler_skrives_over
+Warn_before_overwriting_existing_keys=Gi_advarsel_f\u00f8r_eksisterende_n\u00f8kler_skrives_over
 Warning=Advarsel
 Warning_there_is_a_duplicate_key=
 Warnings=Advarsler
 web_link=link
+
+What_do_you_want_to_do?=
 When_adding/removing_keywords,_separate_them_by=N\u00e5r_n\u00f8kkelord_legges_til_eller_fjernes_skill_dem_med
 with=med
 Word=Ord
 Wrong_file_format=Feil_filformat
 You_have_changed_the_language_setting._You_must_restart_JabRef_for_this_to_come_into_effect.=Du_har_valgt_et_nytt_spr\u00E5k._Du_m\u00E5_starte_JabRef_p\u00E5_nytt_for_at_dette_skal_tre_i_kraft.
 You_have_cleared_this_field._Original_value=Du_har_slettet_dette_feltet._Original_verdi
+You_must_choose_a_file_name_to_store_journal_abbreviations=Du_m\u00e5_velge_et_filnavn_for_\u00e5_lagre_journalforkortelser
 You_must_enter_an_integer_value_in_the_text_field_for=Du_m\ufffd_skrive_et_heltall_i_tekstfeltet_for
 You_must_fill_in_a_name_for_the_entry_type.=Du_m\u00E5_velge_et_navn_for_enhetstypen.
 You_must_provide_a_name,_a_search_string_and_a_field_name_for_this_group.=Du_m\u00E5_oppgi_et_navn,_en_s\u00F8kestreng_og_et_feltnavn_for_denne_gruppen.
@@ -931,98 +1049,3 @@ You_must_select_at_least_one_row_to_perform_this_operation.=Du_m\u00E5_velge_min
 You_must_set_both_BibTeX_key_and_%0_directory=Du_m\u00E5_sette_b\u00E5de_BibTeX-n\u00F8kkel_og_%0-katalog
 You_must_set_both_bibtex_key_and_PDF_directory=You_must_set_both_bibtex_key_and_PDF_directory
 Your_new_key_bindings_have_been_stored.=Dine_nye_hurtigtaster_har_blitt_lagret.
-Manage_custom_imports=
-Select_Classpath_of_New_Importer=Velg_classpath_for_nytt_importformat
-Select_new_ImportFormat_Subclass=Velg_klasse_for_nytt_importformat
-Could_not_instantiate_%0_%1=
-Add_a_(compiled)_custom_ImportFormat_class_from_a_class_path._\nThe_path_need_not_be_on_the_classpath_of_JabRef.=
-Please_select_an_importer=Vennligst_velg_et_importformat
-Import_name=Navn_p\u00e5_import
-Command_line_id=Kommandolinje-id
-ImportFormat_class=ImportFormat-klasse
-Contained_in=Inneholdt_i
-Show_description=Vis_beskrivelse
-Add_from_folder=Legg_til_fra_mappe
-Custom_importers=Egendefinerte_importformat
-No_custom_imports_registered_yet.=Ingen_egne_importformater_er_definert.
-Abbreviate_journal_names_of_the_selected_entries_(ISO_abbreviation)=Forkort_journalnavn_for_de_valgte_enhetene_(ISO-forkortelse)
-Abbreviate_journal_names_of_the_selected_entries_(MEDLINE_abbreviation)=Forkort_journalnavn_for_de_valgte_enhetene_(MEDLINE-forkortelse)
-Background_color_for_marked_entries=Bakgrunnsfarge_for_merkede_enheter
-Background_color_for_optional_fields=Bakgrunnsfarge_for_valgfrie_felter
-Background_color_for_required_fields=Bakgrunnsfarge_for_n\u00F8dvendige_felter
-Choose_the_URL_to_download._The_default_value_points_to_a_list_provided_by_the_JabRef_developers.=Velg_URL_for_nedlasting._Den_forh\u00e5ndsvalgte_adressen_peker_til_en_liste_gjort_tilgjengelig_av_JabRef-utviklerne.
-Color_for_marking_incomplete_entries=Farge_for_markering_av_ufullstendige_enheter
-Do_not_abbreviate_names=Ikke_forkort_navn
-Do_not_wrap_the_following_fields_when_saving=Ikke_introduser_linjeskift_i_f\u00f8lgende_felter_ved_lagring
-External_files=Eksterne_filer
-File_'%0'_not_found=Fant_ikke_filen_'%0'
-Journal_abbreviations=Journalforkortelser
-Journal_name=Journalnavn
-Manage_journal_abbreviations=Sett_opp_journalforkortelser
-Natbib_style=Natbib-stil
-New_file=Ny_fil
-Personal_journal_list=Personlig_journalliste
-Remove_double_braces_around_BibTeX_fields_when_loading.=Fjern_doble_kr\u00f8llparenteser_rundt_BibTeX-felter_ved_innlasting.
-Store_the_following_fields_with_braces_around_capital_letters=Lagre_de_f\u00f8lgende_feltene_med_kr\u00f8llparenteser_rundt_store_bokstaver
-Table_background_color=Bakgrunnsfarge_for_tabell
-Table_grid_color=Farge_p\u00e5_linjer_i_tabell
-Table_text_color=Tekstfarge_i_tabell
-Toggle_abbreviation=Forkort/ekspander
-Unabbreviate_journal_names_of_the_selected_entries=Ekspander_journalnavn_for_de_valgte_enhetene
-Use_antialiasing_font=Bruk_glattet_font
-Abbreviate_names=Forkort_navn
-Abbreviation=Forkortelse
-ISO_abbreviation=ISO-forkortelse
-Edit_journal=Rediger_journal
-Existing_file=Eksisterende_fil
-Saving_database=Lagrer_database
-Normal=Normal
-Default_sort_criteria=Standard_sorteringskriteria
-Primary_sort_criterion=Prim\u00e6rt_sorteringskriterium
-Database_properties=Databaseegenskaper
-Database_encoding=Tegnkoding_for_database
-No_journal_names_could_be_abbreviated.=Ingen_journalnavn_kunne_forkortes.
-No_journal_names_could_be_unabbreviated.=Ingen_journalnavn_kunne_ekspanderes.
-Save_failed=Lagring_mislyktes
-Pushed_citations_to_WinEdt=Sendte_referanser_til_WinEdt
-Try_different_encoding=Pr�v_en_annen_tegnkoding
-Select_encoding=Velg_koding
-The_chosen_date_format_for_new_entries_is_not_valid=Det_valgte_datoformatet_er_ugyldig
-Invalid_date_format=Ugyldig_datoformat
-Review=Kommentarer
-Journal_names=Journalnavn
-Save_failed_during_backup_creation=Lagring_mislyktes_ved_opprettelse_av_sikkerhetskopi
-Save_failed_while_committing_changes=Lagring_mislyktes_ved_sluttf�ring_av_endringer
-Add_from_jar=Legg_til_fra_jar-fil
-Please_select_an_importer.=Velg_et_importfilter.
-Switches_between_full_and_abbreviated_journal_name_if_the_journal_name_is_known.=Bytter_mellom_fullt_og_forkortet_journalnavn_dersom_navnet_er_kjent.
-To_set_up,_go_to_<B>Tools_->_Manage_journal_abbreviations</B>=For_�_sette_opp,_g�_til_<B>Verkt�y_->_Sett_opp_journalforkortelser</b>
-Full_name=Fullt_navn
-Store_journal_abbreviations=Lagre_journalforkortelser
-You_must_choose_a_file_name_to_store_journal_abbreviations=Du_m�_velge_et_filnavn_for_�_lagre_journalforkortelser
-Journal_list_preview=Forh�ndsvisning_av_journalliste
-
-Add_a_(compiled)_custom_ImportFormat_class_from_a_Zip-archive.\nThe_Zip-archive_need_not_be_on_the_classpath_of_JabRef.=Legg_til_en_kompilert_ImportFormat-klasse_fra_en_ZIP-fil._ZIP-filen_trenger_ikke_�_v�re_i_din_classpath.
-Select_a_Zip-archive=Velg_ZIP-fil
-Arguments_passed_on_to_running_JabRef_instance._Shutting_down.=Argumentene_sendt_til_allerede_aktiv_JabRef-instans._Avslutter.
-Could_not_connect_to_a_running_gnuserv_process._Make_sure_that_Emacs_or_XEmacs_is_running,<BR>and_that_the_server_has_been_started_(by_running_the_command_'gnuserv-start').=Kunne_ikke_opprette_kontakt_med_en_gnuserv-prosess._Kontroller_at_Emacs_eller_XEmacs_er_i_gang<BR>og_at_serveren_har_blitt_startet_(med_kommandoen_'gnuserv-start').
-Last_modified=Sist_endret
-Push_selection_to_Emacs=Send_valgte_enheter_til_Emacs
-Pushed_citations_to_Emacs=Sendte_enheter_til_Emacs
-Select_file_from_ZIP-archive=Velg_fil_fra_ZIP-fil
-Size=St�rrelse
-
-Filter=Filter
-Hide_non-matching_entries=Gjem_ikke-treff
-Replace_(regular_expression)=Erstatt_(regul�ruttrykk)
-
-Cite_command_(for_Emacs/WinEdt)=Kommando_for_referanser_(for_Emacs/WinEdt)
-
-Could_not_instantiate_%0_%1._Have_you_chosen_the_correct_package_path?=Kunne_ikke_instansiere_%0_%1._Har_du_valgt_riktig_katalog?
-No_entries_found._Please_make_sure_you_are_using_the_correct_import_filter.=Ingen_enheter_funnet._Kontroller_at_du_bruker_riktig_importfilter.
-Could_not_run_the_'gnuclient'_program._Make_sure_you_have_the_gnuserv/gnuclient_programs_installed.=Kunne_ikke_kalle_'gnuclient'-programmet._Kontroller_at_du_har_installert_gnuserv/gnuclient-programmene.
-
-Hierarchical_context=Gruppehierarki
-Add_entry_selection_to_this_group=Legg_valgte_enheter_til_denne_gruppen
-Assign_entry_selection_exclusively_to_this_group=Legg_valgte_enheter_eksklusivt_til_denne_gruppen
-Remove_entry_selection_from_this_group=Fjern_valgte_enheter_fra_denne_gruppen
diff --git a/src/resource/Menu_de.properties b/src/resource/Menu_de.properties
index c81a8db..976119d 100644
--- a/src/resource/Menu_de.properties
+++ b/src/resource/Menu_de.properties
@@ -1,95 +1,188 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
+#! created/edited by Popeye version 0.5 sunshine (popeye.sourceforge.net)
+
+Abbreviate_journal_names_(ISO)=Zeitschriftennamen_abk\u00fcrzen_(&ISO)
+
+Abbreviate_journal_names_(MEDLINE)=&Zeitschriftennamen_abk\u00fcrzen_(MEDLINE)
+
+About_JabRef=\u00DCber_&JabRef
 
-# Menu names
-File=&Datei
-Edit=&Bearbeiten
-View=&Ansicht
-BibTeX=Bib&TeX
-Tools=&Extras
-Options=&Optionen
-Help=&Hilfe
-# File menu
-New_database=&Neue_Datei
-Open_database=Datei_\u00F6&ffnen
 Append_database=Datei_&anh\u00E4ngen
-Import_and_append=&Importieren_und_anh\u00E4ngen
-Import=I&mportieren
-Custom_importers=Externe_&Importfilter
-Save_database=Datei_&speichern
-Save_database_as_...=Datei_speichern_&unter_...
-Save_selected_as_...=Aus&wahl_speichern_unter_...
-Export=&Exportieren
-Custom_export=E&xterne_Exportfilter
-Database_properties=Ei&genschaften_der_Datei
-Recent_files=&Zuletzt_ge\u00F6ffnete_Dateien
-Load_session=Sitzung_&laden
-Save_session=Sitzung_s&peichern
+
+Autogenerate_BibTeX_keys=&BibTeX_keys_automatisch_generieren
+
+BibTeX=Bib&TeX
+
 Close_database=Datei_s&chlie\u00DFen
-Quit=&Beenden
-# Export menu
-Tab-separated_file=Mit_&Tabulatoren_unterteilte_Datei
-# Edit
-Undo=&R\u00FCckg\u00E4ngig
-Redo=&Wiederholen
-Cut=Aus&schneiden
+
 Copy=&Kopieren
-Paste=&Einf\u00FCgen
-Delete=&L\u00F6schen
+
+Copy_\cite{BibTeX_key}=\c&ite{BibTeX_key}_kopieren
+
 Copy_BibTeX_key=&BibTeX_key_kopieren
-Copy_\\cite{BibTeX_key}=\\c&ite{BibTeX_key}_kopieren
-Mark_entries=Eintr\u00E4ge_&markieren
-Unmark_entries=Markierung_a&ufheben
-Unmark_all=S\u00E4mtliche_Markierungen_au&fheben
-Select_all=&Alle_ausw\u00E4hlen
-# View
-Next_tab=&N\u00E4chster_Tab
-Previous_tab=&Vorheriger_Tab
-Toggle_entry_preview=&Eintragsvorschau_ein-/ausblenden
-Switch_preview_layout=&Layout_der_Vorschau_wechseln
-Toggle_groups_interface=&Gruppenansicht_ein-/ausblenden
-Highlight_groups_matching_all_selected_entries=Gruppen_mit_&allen_ausgew\u00e4hlten_Eintr\u00e4gen_markieren
-Highlight_groups_matching_any_selected_entry=G&ruppen_mit_einem_der_ausgew\u00e4hlten_Eintr\u00e4ge_markieren
+
+Custom_export=E&xterne_Exportfilter
+
+Custom_importers=Externe_&Importfilter
+
+Customize_entry_types=Eintragstypen_&anpassen
+
+Cut=Aus&schneiden
+
+Database_properties=Ei&genschaften_der_Datei
+
+Delete=&L\u00F6schen
+
+Edit=&Bearbeiten
+
 # Bibtex
 Edit_entry=Eintrag_&bearbeiten
-# Menu BibTeX (BibTeX)
-New_entry=&Neuer_Eintrag
-New_entry...=Neuer_&Eintrag...
-New_entry_from_plain_text=Neuer_Eintrag_aus_&Klartext
-Import_Fields_from_CiteSeer=Felder_von_&CiteSeer_importieren
+
 Edit_preamble=&Pr\u00E4ambel_bearbeiten
+
 Edit_strings=&Strings_bearbeiten
-# Tools
-Search=&Suchen
-Incremental_search=&Weitersuchen
-Replace_string=&Ersetzen
-Find_duplicates=Nach_&doppelten_Eintr\u00E4gen_suchen
+
+Export=&Exportieren
+
+Export_selected_entries_to_clipboard=&Ausgw\u00E4hlte_Eintr\u00E4ge_in_die_Zwischenablage_kopieren
+
+Fetch_citations_from_CiteSeer=Literaturangaben_von_&CiteSeer_abrufen
+
+Fetch_CiteSeer=&CiteSeer_abrufen
+
+Fetch_Medline=&Medline_abrufen
+
+# Menu names
+File=&Datei
+
+Find_And_Fix=Finden_und_reparieren
+
 Find_and_remove_exact_duplicates=E&xakte_Duplikate_Finden_und_Entfernen
-Manage_content_selectors=W&ortauswahl_verwalten
-Autogenerate_BibTeX_keys=&BibTeX_keys_automatisch_generieren
+
+Find_duplicates=Nach_&doppelten_Eintr\u00E4gen_suchen
+
+Help=&Hilfe
+
+Help_contents=Hilfe_-_&Inhalt
+
+Highlight_groups_matching_all_selected_entries=Gruppen_mit_&allen_ausgew\u00e4hlten_Eintr\u00e4gen_markieren
+
+Highlight_groups_matching_any_selected_entry=G&ruppen_mit_einem_der_ausgew\u00e4hlten_Eintr\u00e4ge_markieren
+
+Import=I&mportieren
+
+Import_and_append=&Importieren_und_anh\u00E4ngen
+
+Import_Fields_from_CiteSeer=Felder_von_&CiteSeer_importieren
+
+Incremental_search=&Weitersuchen
+
+Insert_selected_citations_into_Emacs=Ausgew\u00e4hlte_Literaturangaben_in_Emacs_ein&f\u00fcgen
+
+Insert_selected_citations_into_LatexEditor=Ausgew\u00e4hlte_Literaturangaben_in_den_LatexEditor_kopieren
+
 Insert_selected_citations_into_LyX/Kile=Ausgew\u00E4hlte_Literaturangaben_in_&LyX/Kile_einf\u00FCgen
+
 Insert_selected_citations_into_WinEdt=&Ausgew\u00E4hlte_Literaturangaben_in_WinEdt_einf\u00FCgen
-Fetch_Medline=&Medline_abrufen
-Fetch_citations_from_CiteSeer=Literaturangaben_von_&CiteSeer_abrufen
+
+Integrity_check=\u00DCberpr\u00FCfung_der_Integrit\u00E4t
+
+# Help
+JabRef_help=JabRef-&Hilfe
+
+Load_session=Sitzung_&laden
+
+Manage_content_selectors=W&ortauswahl_verwalten
+
+Manage_custom_exports=&Verwalte_externe_Exportfilter
+
+Manage_custom_imports=Verwalte_externe_&Importfilter
+
+Mark_entries=Eintr\u00E4ge_&markieren
+
+# File menu
+New_database=&Neue_Datei
+
+# Menu BibTeX (BibTeX)
+New_entry=&Neuer_Eintrag
+
+New_entry...=Neuer_&Eintrag...
+
+New_entry_from_plain_text=Neuer_Eintrag_aus_&Klartext
+
+New_subdatabase_based_on_AUX_file=&Neue_Teildatei_aus_AUX-Datei
+
+# View
+Next_tab=&N\u00E4chster_Tab
+
+Open_database=Datei_\u00F6&ffnen
+
 Open_PDF_or_PS=&PDF_oder_PS_\u00F6ffnen
+
 Open_URL_or_DOI=&URL_oder_DOI_\u00F6ffnen
-New_subdatabase_based_on_AUX_file=&Neue_Teildatei_aus_AUX-Datei
-Abbreviate_journal_names_(MEDLINE)=&Zeitschriftennamen_abk\u00fcrzen_(MEDLINE)
-Abbreviate_journal_names_(ISO)=Zeitschriftennamen_abk\u00fcrzen_(&ISO)
-Unabbreviate_journal_names=Ab&k\u00fcrzung_der_Zeitschriften_aufheben
+
+Options=&Optionen
+
+Paste=&Einf\u00FCgen
+
 # Options
 Preferences=&Einstellungen
-Customize_entry_types=Eintragstypen_&anpassen
-Manage_custom_exports=&Verwalte_externe_Exportfilter
-Manage_custom_imports=Verwalte_externe_&Importfilter
-# Help
-JabRef_help=JabRef_&Hilfe
-Help_contents=Hilfe_-_&Inhalt
-About_JabRef=\u00DCber_&JabRef
-Export_selected_entries_to_clipboard=&Ausgw\u00E4hlte_Eintr\u00E4ge_in_die_Zwischenablage_kopieren
-Unpack_EndNote_filter_set=&EndNote_Filter-Set_entpacken
-Fetch_CiteSeer=&CiteSeer_abrufen
+
+Previous_tab=&Vorheriger_Tab
+
+Quit=&Beenden
+
+Recent_files=&Zuletzt_ge\u00F6ffnete_Dateien
+
+Redo=&Wiederholen
+
+Replace_string=&Ersetzen
+
+Save_database=Datei_&speichern
+
+Save_database_as_...=Datei_speichern_&unter_...
+
+Save_selected_as_...=Aus&wahl_speichern_unter_...
+
+Save_session=Sitzung_s&peichern
+
+# Tools
+Search=&Suchen
+
+Search_IEEEXplore=IEEEXplore_abfragen
+
+Select_all=&Alle_ausw\u00E4hlen
+
 Set_up_general_fields=All&gemeine_Felder_festlegen
-Integrity_check=\u00DCberpr\u00FCfung_der_Integrit\u00E4t
+
+Show_error_console=Fehlerkonsole_anzeigen
+
+Sort_tabs=Tabs_&sortieren
+
+Switch_preview_layout=&Layout_der_Vorschau_wechseln
+
 Synchronize_PDF_links=PDF_Links_synchronisieren
+
 Synchronize_PS_links=PS_Links_synchronisieren
-Insert_selected_citations_into_Emacs=Ausgew\u00e4hlte_Literaturangaben_in_Emacs_ein&f\u00fcgen
+
+# Export menu
+Tab-separated_file=Mit_&Tabulatoren_unterteilte_Datei
+
+Toggle_entry_preview=&Eintragsvorschau_ein-/ausblenden
+
+Toggle_groups_interface=&Gruppenansicht_ein-/ausblenden
+
+Tools=&Extras
+
+Unabbreviate_journal_names=Ab&k\u00fcrzung_der_Zeitschriften_aufheben
+
+# Edit
+Undo=&R\u00FCckg\u00E4ngig
+
+Unmark_all=S\u00E4mtliche_Markierungen_au&fheben
+
+Unmark_entries=Markierung_a&ufheben
+
+Unpack_EndNote_filter_set=&EndNote_Filter-Set_entpacken
+
+View=&Ansicht
+
diff --git a/src/resource/Menu_en.properties b/src/resource/Menu_en.properties
index 9d156dd..e997828 100644
--- a/src/resource/Menu_en.properties
+++ b/src/resource/Menu_en.properties
@@ -1,96 +1,104 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
-
-# Menu names
-File=&File
-Edit=&Edit
-View=&View
-BibTeX=&BibTeX
-Tools=&Tools
-Options=&Options
-Help=&Help
-# File menu
-New_database=&New_database
-Open_database=&Open_database
+#!
+#! created/edited by Popeye version 0.53a (popeye.sourceforge.net)
+#! encoding:ISO-8859-1
+Abbreviate_journal_names_(ISO)=Abbreviate_journal_names_(ISO)
+Abbreviate_journal_names_(MEDLINE)=Abbreviate_journal_names_(MEDLINE)
+About_JabRef=&About_JabRef
 Append_database=&Append_database
-Import_and_append=I&mport_and_append
-Import=&Import
-Custom_importers=Custom_importers
-Save_database=&Save_database
-Save_database_as_...=S&ave_database_as_...
-Save_selected_as_...=Save_se&lected_as_...
-Export=&Export
-Custom_export=Custom_e&xport
-Database_properties=Database_&properties
-Recent_files=&Recent_files
-Load_session=Loa&d_session
-Save_session=Save_session
+Autogenerate_BibTeX_keys=&Autogenerate_BibTeX_keys
+BibTeX=&BibTeX
 Close_database=&Close_database
-Quit=&Quit
-# Export menu
-Tab-separated_file=&Tab-separated_file
-# Edit
-Undo=&Undo
-Redo=&Redo
-Cut=&Cut
 Copy=C&opy
-Paste=&Paste
-Delete=&Delete
+Copy_\cite{BibTeX_key}=Copy_\c&ite{BibTeX_key}
 Copy_BibTeX_key=Copy_&BibTeX_key
-Copy_\\cite{BibTeX_key}=Copy_\\c&ite{BibTeX_key}
-Mark_entries=&Mark_entries
-Unmark_entries=U&nmark_entries
-Unmark_all=Unmark_a&ll
-Select_all=Select_&all
-# View
-Next_tab=&Next_tab
-Previous_tab=&Previous_tab
-Toggle_entry_preview=&Toggle_entry_preview
-Switch_preview_layout=&Switch_preview_layout
-Toggle_groups_interface=Toggle_&groups_interface
-Highlight_groups_matching_all_selected_entries=Highlight_groups_matching_all_selected_entries
-Highlight_groups_matching_any_selected_entry=Highlight_groups_matching_any_selected_entry
+Custom_export=Custom_e&xport
+Custom_importers=Custom_importers
+Customize_entry_types=&Customize_entry_types
+Cut=&Cut
+Database_properties=Database_&properties
+Delete=&Delete
+Edit=&Edit
 # Bibtex
 Edit_entry=&Edit_entry
-# Menu BibTeX (BibTeX)
-New_entry=N&ew_entry
-New_entry...=&New_entry_...
-New_entry_from_plain_text=Ne&w_entry_from_plain_text
-Import_Fields_from_CiteSeer=Import_fields_from_&CiteSeer
 Edit_preamble=Edit_&preamble
 Edit_strings=Edit_&strings
-# Tools
-Search=&Search
-Incremental_search=&Incremental_search
-Replace_string=&Replace_string
-Find_duplicates=&Find_duplicates
+Export=&Export
+Export_selected_entries_to_clipboard=&Export selected entries to clipboard
+Fetch_citations_from_CiteSeer=Fetch_citations_from_&CiteSeer
+Fetch_CiteSeer=Fetch_CiteSeer
+Fetch_Medline=Fetch_&Medline
+
+# Menu names
+File=&File
+Find_And_Fix=Find_and_Fix
 Find_and_remove_exact_duplicates=Find_and_remove_exact_&duplicates
-Manage_content_selectors=Manage_&content_selectors
-Autogenerate_BibTeX_keys=&Autogenerate_BibTeX_keys
+Find_duplicates=&Find_duplicates
+Help=&Help
+Help_contents=Help_&contents
+Highlight_groups_matching_all_selected_entries=Highlight_groups_matching_all_selected_entries
+Highlight_groups_matching_any_selected_entry=Highlight_groups_matching_any_selected_entry
+Import=&Import
+Import_and_append=I&mport_and_append
+Import_Fields_from_CiteSeer=Import_fields_from_&CiteSeer
+Incremental_search=&Incremental_search
+
+Insert_selected_citations_into_Emacs=Insert_selected_citations_into_&Emacs
+Insert_selected_citations_into_LatexEditor=Insert_selected_citations_into_LatexEditor
 Insert_selected_citations_into_LyX/Kile=Insert_selected_citations_into_&LyX/Kile
 Insert_selected_citations_into_WinEdt=Insert_selected_citations_into_&WinEdt
-Fetch_Medline=Fetch_&Medline
-Fetch_citations_from_CiteSeer=Fetch_citations_from_&CiteSeer
+Integrity_check=Integrity_check
+# Help
+JabRef_help=JabRef_&help
+Load_session=Loa&d_session
+Manage_content_selectors=Manage_&content_selectors
+Manage_custom_exports=&Manage_custom_exports
+Manage_custom_imports=Manage_custom_&imports
+Mark_entries=&Mark_entries
+# File menu
+New_database=&New_database
+# Menu BibTeX (BibTeX)
+New_entry=N&ew_entry
+New_entry...=&New_entry_...
+New_entry_from_plain_text=Ne&w_entry_from_plain_text
+New_subdatabase_based_on_AUX_file=New_subdatabase_based_on_AU&X_file
+# View
+Next_tab=&Next_tab
+Open_database=&Open_database
 Open_PDF_or_PS=Open_&PDF_or_PS
 Open_URL_or_DOI=Open_&URL_or_DOI
-New_subdatabase_based_on_AUX_file=New_subdatabase_based_on_AU&X_file
-Abbreviate_journal_names_(MEDLINE)=Abbreviate_journal_names_(MEDLINE)
-Abbreviate_journal_names_(ISO)=Abbreviate_journal_names_(ISO)
-Unabbreviate_journal_names=Unabbreviate_journal_names
+Options=&Options
+Paste=&Paste
 # Options
 Preferences=&Preferences
-Customize_entry_types=&Customize_entry_types
-Manage_custom_exports=&Manage_custom_exports
-Manage_custom_imports=Manage_custom_&imports
-# Help
-JabRef_help=JabRef_&help
-Help_contents=Help_&contents
-About_JabRef=&About_JabRef
-Export_selected_entries_to_clipboard=&Export selected entries to clipboard
-Unpack_EndNote_filter_set=Unpack_&EndNote_filter_set
-Fetch_CiteSeer=Fetch_CiteSeer
+Previous_tab=&Previous_tab
+Quit=&Quit
+Recent_files=&Recent_files
+Redo=&Redo
+Replace_string=&Replace_string
+Save_database=&Save_database
+Save_database_as_...=S&ave_database_as_...
+Save_selected_as_...=Save_se&lected_as_...
+Save_session=Save_session
+# Tools
+Search=&Search
+Search_IEEEXplore=Search_IEEEXplore
+Select_all=Select_&all
 Set_up_general_fields=Set_up_&general_fields
-Integrity_check=Integrity_check
+Show_error_console=Show_error_console
+
+Sort_tabs=&Sort_tabs
+Switch_preview_layout=&Switch_preview_layout
 Synchronize_PDF_links=Synchronize_PDF_links
 Synchronize_PS_links=Synchronize_PS_links
-
-Insert_selected_citations_into_Emacs=Insert selected_citations_into_&Emacs
+# Export menu
+Tab-separated_file=&Tab-separated_file
+Toggle_entry_preview=&Toggle_entry_preview
+Toggle_groups_interface=Toggle_&groups_interface
+Tools=&Tools
+Unabbreviate_journal_names=Unabbreviate_journal_names
+# Edit
+Undo=&Undo
+Unmark_all=Unmark_a&ll
+Unmark_entries=U&nmark_entries
+Unpack_EndNote_filter_set=Unpack_&EndNote_filter_set
+View=&View
diff --git a/src/resource/Menu_fr.properties b/src/resource/Menu_fr.properties
index 2f51e8f..21e1ad0 100644
--- a/src/resource/Menu_fr.properties
+++ b/src/resource/Menu_fr.properties
@@ -1,95 +1,103 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
+#!
+#! created/edited by Popeye version 0.53a (popeye.sourceforge.net)
+#! encoding:ISO-8859-1
+Abbreviate_journal_names_(ISO)=Abr\u00e9ger_les_noms_de_journaux_(IS&O)
+Abbreviate_journal_names_(MEDLINE)=Abr\u00e9ger_les_noms_de_journaux_(MEDLI&NE)
+About_JabRef=A_&propos_de_JabRef
+Append_database=&Joindre_\u00E0_la_base
+Autogenerate_BibTeX_keys=Cr\u00E9ation_&automatique_des_cl\u00E9s_BibTeX
+BibTeX=&BibTeX
+Close_database=&Fermer_la_base
+Copy=Co&pier
+Copy_\cite{BibTeX_key}=Copier_\c&ite{cl\u00e9_BibTeX}
+Copy_BibTeX_key=Copier_la_cl\u00E9_&BibTeX
+Custom_export=E&xportation_personnalis\u00E9e
+Custom_importers=Custom_importers
+Customize_entry_types=Personnaliser_les_&types_d'entr\u00E9es
+Cut=&Couper
+Database_properties=&Propri\u00E9t\u00E9s_de_la_base_de_donn\u00e9es
+Delete=&Supprimer
+Edit=&Edition
+Edit_entry=&Editer_l'entr\u00E9e
+Edit_preamble=Editer_le_&pr\u00E9ambule
+Edit_strings=Editer_les_c&ha\u00EEnes
+Export=&Exporter
+
+Export_selected_entries_to_clipboard=Exporter_les_entr\u00E9es_s\u00E9lectionn\u00E9es_vers_le_presse-papiers
+Fetch_citations_from_CiteSeer=Recherche_de_citations_dans_&CiteSeer
+Fetch_CiteSeer=Recherche_Cit&eSeer
+Fetch_Medline=Recherche_&Medline
 
 # Menu names
 File=&Fichier
-Edit=&Edition
-View=&Affichage
-BibTeX=&BibTeX
-Tools=&Outils
-Options=Opt&ions
+Find_And_Fix=Cherche_et_r\u00e9pare
+Find_and_remove_exact_duplicates=Chercher_et_&supprimer_les_doublons_identiques
+Find_duplicates=Chercher_les_&doublons
 Help=Ai&de
+Help_contents=&Contenu_de_l'aide
+Highlight_groups_matching_all_selected_entries=Surligner_les_groupes_correspondant_\u00e0_&toutes_les_entr\u00e9es_s\u00e9lectionn\u00e9es
+Highlight_groups_matching_any_selected_entry=Surligner_les_groupes_correspondant_\u00e0_au_moins_&une_des_entr\u00e9es_s\u00e9lectionn\u00e9es
+Import=&Importer
+Import_and_append=I&mporter_et_joindre
+Import_Fields_from_CiteSeer=Importer_les_champs_depuis_&CiteSeer
+Incremental_search=Recherche_&incr\u00E9mentale
+
+Insert_selected_citations_into_Emacs=Ins\u00E9rer_les_citations_s\u00E9lectionn\u00E9es_dans_Emacs
+Insert_selected_citations_into_LatexEditor=Ins\u00e9rer_les_citations_s\u00e9lectionn\u00e9es_dans_LatexEditor
+Insert_selected_citations_into_LyX/Kile=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_&LyX/Kile
+Insert_selected_citations_into_WinEdt=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_&WinEdt
+Integrity_check=&V\u00E9rification_d'int\u00E9grit\u00E9
+# Help
+JabRef_help=&Aide_de_JabRef
+Load_session=&Charger_session
+Manage_content_selectors=&G\u00E9rer_les_s\u00E9lecteurs_de_contenu
+Manage_custom_exports=&G\u00E9rer_les_exportations_personnalis\u00E9es
+Manage_custom_imports=G\u00E9rer_les_&importations_personnalis\u00E9es
+Mark_entries=Etiqueter_des_&entr\u00E9es
 # File menu
 New_database=&Nouvelle_base
+# Bibtex
+New_entry=N&ouvelle_entr\u00E9e
+New_entry...=&Nouvelle_entr\u00E9e...
+New_entry_from_plain_text=Nouvelle_entr\u00E9e_depuis_&texte_brut
+New_subdatabase_based_on_AUX_file=Nouveau_Fichier_BibTeX_depuis_fichier_AU&X
+# View
+Next_tab=Onglet_&suivant
 Open_database=&Ouvrir_base
-Append_database=&Joindre_\u00E0_la_base
-Import_and_append=I&mporter_et_joindre
-Import=&Importer
-Custom_importers=Custom_importers
+Open_PDF_or_PS=Ouvrir_&PDF_ou_PS
+Open_URL_or_DOI=Ouvrir_&URL_ou_DOI
+Options=Opt&ions
+Paste=C&oller
+# Options
+Preferences=&Pr\u00E9f\u00E9rences
+Previous_tab=Onglet_&pr\u00E9c\u00E9dent
+Quit=&Quitter
+Recent_files=Fichiers_&r\u00E9cents
+Redo=&R\u00E9p\u00E9ter
+Replace_string=Remplacer_la_c&ha\u00EEne
 Save_database=&Sauvegarder_la_base
 Save_database_as_...=S&auvegarder_la_base_sous_...
 Save_selected_as_...=Sauvegarder_la_s\u00E9&lection_sous_...
-Export=&Exporter
-Custom_export=E&xportation personnalis\u00E9e
-Database_properties=&Propri\u00E9t\u00E9s_de la base de donn\u00e9es
-Recent_files=Fichiers_&r\u00E9cents
-Load_session=&Charger_session
 Save_session=Sau&ver_session
-Close_database=&Fermer_la_base
-Quit=&Quitter
+# Tools
+Search=&Recherche
+Search_IEEEXplore=Recherche_IEEEXplore
+Select_all=&Tout_s\u00E9lectionner
+Set_up_general_fields=Configurer_les_champs_&g\u00E9n\u00E9raux
+Show_error_console=Afficher_la_console_d'erreur
+Sort_tabs=Trier_les_onglets
+Switch_preview_layout=Pr\u00E9&visualiser_la_mise_en_page
+Synchronize_PDF_links=Synchroniser_les_liens_PD&F
+Synchronize_PS_links=Synchroniser_les_liens_P&S
 # Export menu
 Tab-separated_file=Fichier_-_s\u00E9paration_par_&tabulation
+Toggle_entry_preview=&Afficher/masquer_l'aper\u00E7u
+Toggle_groups_interface=Afficher/masquer_l'interface_des_&groupes
+Tools=&Outils
+Unabbreviate_journal_names=D\u00e9&velopper_les_noms_de_journaux
 # Edit
 Undo=&Annuler
-Redo=&R\u00E9p\u00E9ter
-Cut=&Couper
-Copy=Co&pier
-Paste=C&oller
-Delete=&Supprimer
-Copy_BibTeX_key=Copier_la_cl\u00E9_&BibTeX
-Copy_\\cite{BibTeX_key}=Copier_\\c&ite{cl\u00E9_BibTeX}
-Mark_entries=Etiqueter_des_&entr\u00E9es
-Unmark_entries=&D\u00E9s\u00E9tiqueter_des_entr\u00E9es
 Unmark_all=To&ut_d\u00E9s\u00E9tiqueter
-Select_all=&Tout_s\u00E9lectionner
-# View
-Next_tab=Onglet_&suivant
-Previous_tab=Onglet_&pr\u00E9c\u00E9dent
-Toggle_groups_interface=Afficher/masquer_l'interface_des_&groupes
-Toggle_entry_preview=&Afficher/masquer_l'aper\u00E7u
-Switch_preview_layout=Pr\u00E9&visualiser_la_mise_en_page
-Highlight_groups_matching_any_selected_entry=Surligner_les_groupes_correspondant_\u00e0_au_moins_&une_des_entr\u00e9es_s\u00e9lectionn\u00e9es
-Highlight_groups_matching_all_selected_entries=Surligner_les_groupes_correspondant_\u00e0_&toutes_les_entr\u00e9es_s\u00e9lectionn\u00e9es
-# Bibtex
-New_entry=N&ouvelle_entr\u00E9e
-New_entry...=&Nouvelle_entr\u00E9e...
-New_entry_from_plain_text=Nouvelle_entr\u00E9e_depuis_&texte brut
-Edit_entry=&Editer_l'entr\u00E9e
-Import_Fields_from_CiteSeer=Importer_les_champs_depuis_&CiteSeer
-Edit_preamble=Editer_le_&pr\u00E9ambule
-Edit_strings=Editer_les_c&ha\u00EEnes
-# Tools
-Search=&Recherche
-Incremental_search=Recherche_&incr\u00E9mentale
-Replace_string=Remplacer_la_c&ha\u00EEne
-Find_duplicates=Chercher_les_&doublons
-Find_and_remove_exact_duplicates=Chercher_et_&supprimer_les_doublons_identiques
-Manage_content_selectors=&G\u00E9rer_les_s\u00E9lecteurs_de_contenu
-Autogenerate_BibTeX_keys=Cr\u00E9ation_&automatique_des_cl\u00E9s_BibTeX
-Insert_selected_citations_into_Emacs=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_&Emacs
-Insert_selected_citations_into_LyX/Kile=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_&LyX/Kile
-Insert_selected_citations_into_WinEdt=Envoyer_les_citations_s\u00E9lectionn\u00E9es_dans_&WinEdt
-Fetch_Medline=Recherche_&Medline
-Fetch_CiteSeer=Recherche_Ci&teSeer
-Fetch_citations_from_CiteSeer=Recherche_de_citations_dans_&CiteSeer
-Open_PDF_or_PS=Ouvrir_&PDF_ou_PS
-Open_URL_or_DOI=Ouvrir_&URL_ou_DOI
-New_subdatabase_based_on_AUX_file=Nouveau_Fichier_BibTeX_depuis_fichier_AU&X
-Integrity_check=&V\u00E9rification_d'int\u00E9grit\u00E9
-Synchronize_PDF_links=Synchroniser_les_liens_PD&F
-Synchronize_PS_links=S&ynchroniser_les_liens_PS
-Abbreviate_journal_names_(ISO)=Abr\u00e9ger_les_noms_de_journaux_(IS&O)
-Abbreviate_journal_names_(MEDLINE)=Abr\u00e9ger_les_noms_de_journaux_(MEDLI&NE)
-Unabbreviate_journal_names=D\u00e9&velopper_les_noms_de_journaux
-# Options
-Preferences=&Pr\u00E9f\u00E9rences
-Customize_entry_types=Personnaliser_les_&types_d'entr\u00E9es
-Set_up_general_fields=Configurer_les_champs_&g\u00E9n\u00E9raux
-Manage_custom_exports=&G\u00E9rer_les_exportations_personnalis\u00E9es
-Manage_custom_imports=G\u00E9rer_les_&importations_personnalis\u00E9es
-# Help
-JabRef_help=&Aide_de_JabRef
-Help_contents=&Contenu_de_l'aide
-About_JabRef=A_&propos_de_JabRef
-
-Export_selected_entries_to_clipboard=Exporter_les_entr\u00E9es_s\u00E9lectionn\u00E9es_vers_le_presse-papiers
-Unpack_EndNote_filter_set=D\u00E9compacter_la_s\u00E9rie_de filtres_&EndNote
+Unmark_entries=&D\u00E9s\u00E9tiqueter_des_entr\u00E9es
+Unpack_EndNote_filter_set=D\u00E9compacter_la_s\u00E9rie_de_filtres_&EndNote
+View=&Affichage
diff --git a/src/resource/Menu_it.properties b/src/resource/Menu_it.properties
new file mode 100644
index 0000000..d396438
--- /dev/null
+++ b/src/resource/Menu_it.properties
@@ -0,0 +1,103 @@
+#!
+#! created/edited by Popeye version 0.53a (popeye.sourceforge.net)
+#! encoding:ISO-8859-1
+Abbreviate_journal_names_(ISO)=Abbrevia_nomi_delle_riviste_(ISO)
+Abbreviate_journal_names_(MEDLINE)=Abbrevia_nomi_delle_riviste_(MEDLINE)
+About_JabRef=&Informazioni_su_JabRef
+Append_database=A&ggiungi_al_database
+Autogenerate_BibTeX_keys=Genera_&automaticamente_le_chiavi_BibTeX
+BibTeX=&BibTeX
+Close_database=C&hiudi_il_database
+Copy=&Copia
+Copy_\cite{BibTeX_key}=Co&pia_\cite{chiave_BibTeX}
+Copy_BibTeX_key=C&opia_chiave
+Custom_export=Es&portazione_personalizzata
+Custom_importers=&Filtri_di_importazione_personalizzati
+Customize_entry_types=Personalizza_i_&tipi_di_righe
+Cut=&Taglia
+Database_properties=P&ropriet\u00e0_del_database
+Delete=&Elimina
+Edit=&Modifica
+# Bibtex
+Edit_entry=&Modifica_voce
+Edit_preamble=Modifica_&preambolo
+Edit_strings=Modifica_&stringhe
+Export=&Esporta
+Export_selected_entries_to_clipboard=Esporta_le_righe_selezionate_negli_appunti
+Fetch_citations_from_CiteSeer=Recupera_citazioni_da_&CiteSeer
+Fetch_CiteSeer=R&ecupera_da_CiteSeer
+Fetch_Medline=Recupera_da_&Medline
+
+# Menu names
+File=&File
+Find_And_Fix=
+Find_and_remove_exact_duplicates=Ricerca_e_rimuovi_d&uplicati_identici
+Find_duplicates=Ricerca_&duplicati
+Help=&Aiuto
+Help_contents=&Contenuto_dell'aiuto
+Highlight_groups_matching_all_selected_entries=&Evidenzia_i_gruppi_corrispondenti_a_tutte_le_righe_selezionate
+Highlight_groups_matching_any_selected_entry=Evi&denzia_i_gruppi_corrispondenti_alle_righe_selezionate
+Import=&Importa
+Import_and_append=I&mporta_e_aggiungi
+Import_Fields_from_CiteSeer=&Importa_campi_da_CiteSeer
+Incremental_search=Ricerca_&incrementale
+
+Insert_selected_citations_into_Emacs=Inserisci_le_citazioni_selezionate_in_Emacs
+Insert_selected_citations_into_LatexEditor=Inserisci_le_citazioni_selezionate_in_LatexEditor
+Insert_selected_citations_into_LyX/Kile=Inserisci_le_citazioni_selezionate_in_&LyX/Kile
+Insert_selected_citations_into_WinEdt=Inserisci_le_citazioni_selezionate_in_&WinEdt
+Integrity_check=&Verifica_di_integrit\u00e0
+# Help
+JabRef_help=&Aiuto_di_JabRef
+Load_session=&Carica_sessione
+Manage_content_selectors=&Gestisci_i_selettori_di_contenuti
+Manage_custom_exports=&Gestisci_le_esportazioni_personalizzate
+Manage_custom_imports=Gestisci_le_&importazioni_personalizzate
+Mark_entries=E&videnzia
+# File menu
+New_database=&Nuovo_database
+# Menu BibTeX (BibTeX)
+New_entry=&Nuova_voce
+New_entry...=N&uova_voce_...
+New_entry_from_plain_text=Nuova_voce_da_&testo
+New_subdatabase_based_on_AUX_file=Nuovo_sub-database_da_file_AU&X
+# View
+Next_tab=&Scheda_successiva
+Open_database=&Apri_database
+Open_PDF_or_PS=Apri_&PDF_o_PS
+Open_URL_or_DOI=Apri_&URL_o_DOI
+Options=&Opzioni
+Paste=&Incolla
+# Options
+Preferences=&Preferenze
+Previous_tab=Scheda_&precedente
+Quit=&Uscita
+Recent_files=File_recen&ti
+Redo=&Ripeti
+Replace_string=&Sostituisci_stringa
+Save_database=&Salva_database
+Save_database_as_...=Sa&lva_database_come_...
+Save_selected_as_...=Sal&va_la_selezione_come_...
+Save_session=Salva_sessi&one
+# Tools
+Search=&Ricerca
+Search_IEEEXplore=
+Select_all=Sele&ziona_tutto
+Set_up_general_fields=Configura_i_campi_generali
+Show_error_console=
+Sort_tabs=
+Switch_preview_layout=S&cambia_layout_anteprima
+Synchronize_PDF_links=Sincronizza_i_link_PD&F
+Synchronize_PS_links=Sincronizza_i_link_P&S
+# Export menu
+Tab-separated_file=File_separati_da_&tabulazioni
+Toggle_entry_preview=&Visualizza/nascondi_anteprima
+Toggle_groups_interface=V&isualizza/nascondi_l'interfaccia_dei_gruppi
+Tools=&Strumenti
+Unabbreviate_journal_names=Espandi_nomi_delle_riviste_(MEDLINE)
+# Edit
+Undo=&Annulla
+Unmark_all=Rim&uovi_tutte_le_evidenziazioni
+Unmark_entries=&Rimuovi_evidenziazione
+Unpack_EndNote_filter_set=Decompattare_l'insieme_di_filtri_&EndNote
+View=&Visualizza
diff --git a/src/resource/Menu_no.properties b/src/resource/Menu_no.properties
index 1b67566..5e4ea48 100644
--- a/src/resource/Menu_no.properties
+++ b/src/resource/Menu_no.properties
@@ -1,95 +1,102 @@
-#! created/edited by Popeye version 0.51 sunshine (popeye.sourceforge.net)
-
-# Menu names
-File=&Fil
-Edit=&Rediger
-View=&Vis
-BibTeX=&BibTeX
-Tools=V&erkt\u00F8y
-Options=V&alg
-Help=&Hjelp
-# File menu
-New_database=&Ny_database
-Open_database=&\u00C5pne_database
+#!
+#! created/edited by Popeye version 0.53a (popeye.sourceforge.net)
+#! encoding:ISO-8859-1
+Abbreviate_journal_names_(ISO)=Forkort_journalnavn_(ISO)
+Abbreviate_journal_names_(MEDLINE)=Forkort_journalnavn_(MEDLINE)
+About_JabRef=Om_&JabRef
 Append_database=Legg_til_inn&hold_fra_database
-Import_and_append=I&mporter_til_\u00E5pen_database
-Import=&Importer
-Custom_importers=Custom_importers
-Save_database=&Lagre_database
-Save_database_as_...=L&agre_database_som_...
-Save_selected_as_...=Lagre_&valgte_enheter_som_...
-Export=&Eksporter
-Custom_export=E&ksterne_eksportfiltre
-Database_properties=
-Recent_files=&Siste_filer
-Load_session=&Gjenopprett_tilstand
-Save_session=Lag&re_tilstand
+Autogenerate_BibTeX_keys=&Autogenerer_BibTeX-n\u00F8kler
+BibTeX=&BibTeX
 Close_database=L&ukk_database
-Quit=&Avslutt
-# Export menu
-Tab-separated_file=&Tab_separert_fil
-# Edit
-Undo=&Angre
-Redo=&Gjenta
-Cut=&Klipp_up
 Copy=K&opier
-Paste=&Lim_inn
-Delete=&Slett
+Copy_\cite{BibTeX_key}=Kopier_\c&ite{BibTeX-n\u00f8kkel}
 Copy_BibTeX_key=Kopier_&BibTeX-n\u00F8kkel
-Copy_\\cite{BibTeX_key}=Kopier_\\c&ite{BibTeX-n\u00F8kkel}
-Mark_entries=&Merk_enheter
-Unmark_entries=&Fjern_merking
-Unmark_all=F&jern_merking_fra_alle
-Select_all=&Velg_alle
-# View
-Next_tab=&Neste_tab
-Previous_tab=&Forrige_tab
-Toggle_entry_preview=&Vis/skjul_forh\u00E5ndsvisning
-Switch_preview_layout=&Skift_layout_p\u00E5_forh\u00E5ndsvisning
-Toggle_groups_interface=Vis/skjul_&grupperingskontroll
-Highlight_groups_matching_all_selected_entries=Uthev_grupper_som_inneholder_alle_valgte_enheter
-Highlight_groups_matching_any_selected_entry=Uthev_grupper_som_inneholder_minst_en_av_de_valgte_enhetene
+Custom_export=E&ksterne_eksportfiltre
+Custom_importers=Custom_importers
+Customize_entry_types=&Tilpass_enhetstyper
+Cut=&Klipp_up
+Database_properties=
+Delete=&Slett
+Edit=&Rediger
 # Bibtex
 Edit_entry=&Rediger_enhet
-# Menu BibTeX (BibTeX)
-New_entry=N&y_enhet
-New_entry...=&Ny_enhet_...
-New_entry_from_plain_text=Ny_&enhet_fra_ren_tekst
-Import_Fields_from_CiteSeer=Importer_felter_fra_&CiteSeer
 Edit_preamble=Rediger_'&preamble'
 Edit_strings=Rediger_&strenger
-# Tools
-Search=&S\u00F8k
-Incremental_search=&Inkrementelt_s\u00F8k
-Replace_string=&Erstatt_streng
-Find_duplicates=S\u00F8k_etter_&duplikater
+Export=&Eksporter
+Export_selected_entries_to_clipboard=Eksporter_valgte_enheter_til_utklippstavlen
+Fetch_citations_from_CiteSeer=Hent_refererende_publikasjoner_fra_&CiteSeer
+Fetch_CiteSeer=Hent_CiteSeer
+Fetch_Medline=Hent_&Medline
+
+# Menu names
+File=&Fil
+Find_And_Fix=
 Find_and_remove_exact_duplicates=&Finn_og_fjern_eksakte_duplikater
-Manage_content_selectors=Sett_opp_&ordvelgere
-Autogenerate_BibTeX_keys=&Autogenerer_BibTeX-n\u00F8kler
+Find_duplicates=S\u00F8k_etter_&duplikater
+Help=&Hjelp
+Help_contents=&Oversikt_over_hjelpefiler
+Highlight_groups_matching_all_selected_entries=Uthev_grupper_som_inneholder_alle_valgte_enheter
+Highlight_groups_matching_any_selected_entry=Uthev_grupper_som_inneholder_minst_en_av_de_valgte_enhetene
+Import=&Importer
+Import_and_append=I&mporter_til_\u00E5pen_database
+Import_Fields_from_CiteSeer=Importer_felter_fra_&CiteSeer
+Incremental_search=&Inkrementelt_s\u00F8k
+Insert_selected_citations_into_Emacs=Send_valgte_enheter_til_Emacs
+Insert_selected_citations_into_LatexEditor=Send_valgte_enheter_til_LatexEditor
 Insert_selected_citations_into_LyX/Kile=Send_valgte_enheter_til_&LyX/Kile
 Insert_selected_citations_into_WinEdt=Send_valgte_enheter_til_&WinEdt
-Fetch_Medline=Hent_&Medline
-Fetch_citations_from_CiteSeer=Hent_refererende_publikasjoner_fra_&CiteSeer
+Integrity_check=Sjekk_integritet
+# Help
+JabRef_help=JabRef-&hjelp
+Load_session=&Gjenopprett_tilstand
+Manage_content_selectors=Sett_opp_&ordvelgere
+Manage_custom_exports=&Sett_opp_eksterne_eksportfiltre
+Manage_custom_imports=Sett_opp_eksterne_importfiltre
+Mark_entries=&Merk_enheter
+# File menu
+New_database=&Ny_database
+# Menu BibTeX (BibTeX)
+New_entry=N&y_enhet
+New_entry...=&Ny_enhet_...
+New_entry_from_plain_text=Ny_&enhet_fra_ren_tekst
+New_subdatabase_based_on_AUX_file=Ny_deldatabase_basert_p\u00E5_AU&X-fil
+# View
+Next_tab=&Neste_tab
+Open_database=&\u00C5pne_database
 Open_PDF_or_PS=\u00C5pne_&PDF_eller_PS
 Open_URL_or_DOI=\u00C5pne_&URL_eller_DOI
-New_subdatabase_based_on_AUX_file=Ny_deldatabase_basert_p\u00E5_AU&X-fil
-Abbreviate_journal_names_(MEDLINE)=Forkort_journalnavn_(MEDLINE)
-Abbreviate_journal_names_(ISO)=Forkort_journalnavn_(ISO)
-Unabbreviate_journal_names=Ekspander_journalnavn
+Options=V&alg
+Paste=&Lim_inn
 # Options
 Preferences=&Oppsett
-Customize_entry_types=&Tilpass_enhetstyper
-Manage_custom_exports=&Sett_opp_eksterne_eksportfiltre
-Manage_custom_imports=Sett_opp_eksterne_importfiltre
-# Help
-JabRef_help=JabRef-&hjelp
-Help_contents=&Oversikt_over_hjelpefiler
-About_JabRef=Om_&JabRef
-Export_selected_entries_to_clipboard=Eksporter_valgte_enheter_til_utklippstavlen
-Unpack_EndNote_filter_set=Pakk_ut_&EndNote-filtersett
-Fetch_CiteSeer=Hent_CiteSeer
+Previous_tab=&Forrige_tab
+Quit=&Avslutt
+Recent_files=&Siste_filer
+Redo=&Gjenta
+Replace_string=&Erstatt_streng
+Save_database=&Lagre_database
+Save_database_as_...=L&agre_database_som_...
+Save_selected_as_...=Lagre_&valgte_enheter_som_...
+Save_session=Lag&re_tilstand
+# Tools
+Search=&S\u00F8k
+Search_IEEEXplore=
+Select_all=&Velg_alle
 Set_up_general_fields=Sett_opp_&generelle_felter
-Integrity_check=Sjekk_integritet
+Show_error_console=
+Sort_tabs=
+Switch_preview_layout=&Skift_layout_p\u00E5_forh\u00E5ndsvisning
 Synchronize_PDF_links=Synkroniser_PDF-lenker
 Synchronize_PS_links=Synkroniser_PS-lenker
-Insert_selected_citations_into_Emacs=Send_valgte_enheter_til_Emacs
+# Export menu
+Tab-separated_file=&Tab_separert_fil
+Toggle_entry_preview=&Vis/skjul_forh\u00E5ndsvisning
+Toggle_groups_interface=Vis/skjul_&grupperingskontroll
+Tools=V&erkt\u00F8y
+Unabbreviate_journal_names=Ekspander_journalnavn
+# Edit
+Undo=&Angre
+Unmark_all=F&jern_merking_fra_alle
+Unmark_entries=&Fjern_merking
+Unpack_EndNote_filter_set=Pakk_ut_&EndNote-filtersett
+View=&Vis
diff --git a/src/resource/build.properties b/src/resource/build.properties
index 026db04..fecc300 100644
--- a/src/resource/build.properties
+++ b/src/resource/build.properties
@@ -1,3 +1,3 @@
-builddate=February 2 2006
-build=185
-version=2.0.1
\ No newline at end of file
+builddate=May 9 2006
+build=107
+version=2.1 beta
\ No newline at end of file
diff --git a/src/resource/layout/bibtexml.begin.layout b/src/resource/layout/bibtexml.begin.layout
index 296d1b0..140a9b8 100644
--- a/src/resource/layout/bibtexml.begin.layout
+++ b/src/resource/layout/bibtexml.begin.layout
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <bibtex:file xmlns:bibtex="http://bibtexml.sf.net/">
-<!-- This file was exported from JabRef -->
+<!-- This file was exported from JabRef jabref.sf.net -->
+<!-- 2006-01-17 added DOI XML character formatting, because DOI can contain < and > -->
 
diff --git a/src/resource/layout/bibtexml.layout b/src/resource/layout/bibtexml.layout
index a59bd97..57090a4 100755
--- a/src/resource/layout/bibtexml.layout
+++ b/src/resource/layout/bibtexml.layout
@@ -20,8 +20,8 @@
 \begin{address}    <bibtex:address>\format[XMLChars]{\address}</bibtex:address>\end{address}
 \begin{howpublished}    <bibtex:howpublished>\format[XMLChars]{\howpublished}</bibtex:howpublished>\end{howpublished}
 \begin{abstract}    <bibtex:abstract>\format[XMLChars]{\abstract}</bibtex:abstract>\end{abstract}
-\begin{url}    <bibtex:url>\url</bibtex:url>\end{url}
-\begin{doi}    <bibtex:doi>\doi</bibtex:doi>\end{doi}
+\begin{url}    <bibtex:url>\format[XMLChars]{\url}</bibtex:url>\end{url}
+\begin{doi}    <bibtex:doi>\format[XMLChars]{\doi}</bibtex:doi>\end{doi}
 \begin{eid}    <bibtex:eid>\format[XMLChars]{\eid}</bibtex:eid>\end{eid}
 \begin{pdf}    <bibtex:pdf>\format[ResolvePDF,XMLChars]{\pdf}</bibtex:pdf>\end{pdf}
 \begin{type}    <bibtex:type>\format[XMLChars]{\type}</bibtex:type>\end{type}
diff --git a/src/resource/layout/harvard/harvard.proceedings.layout b/src/resource/layout/harvard/harvard.proceedings.layout
index 41633c0..9f74a7d 100644
--- a/src/resource/layout/harvard/harvard.proceedings.layout
+++ b/src/resource/layout/harvard/harvard.proceedings.layout
@@ -1,5 +1,5 @@
 \begin{author}
-\format[RTFChars,uthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}
+\format[RTFChars,AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}
 \end{author}
 \begin{editor}
 \format[RTFChars,AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\editor}, ed.
diff --git a/src/resource/layout/html.begin.layout b/src/resource/layout/html.begin.layout
index 0288b2c..9f396e7 100644
--- a/src/resource/layout/html.begin.layout
+++ b/src/resource/layout/html.begin.layout
@@ -1,3 +1,5 @@
+<!-- jabref.sf.net generated HTML layout  -->
+<!-- 2006-01-17 wegner added PMID linkout -->
 <html>
 <header>
 	<title>JabRef Output</title>
@@ -35,20 +37,20 @@ body {
     font-weight:bold;
     padding-bottom:1em;
 }
-
-.bibtex_url, .bibtex_pdf, .bibtex_doi, .bibtex_citeseer {
-    display:inline;
-	font-size:small;
-	float:right;
-	padding-left:1em;
-	padding-right:1em;
-}
-
-.bibtex_url a, .bibtex_pdf a, .bibtex_doi a, .bibtex_citeseer a , .bibtex_url a:visited, .bibtex_pdf a:visited, .bibtex_doi a:visited, .bibtex_citeseer a:visited {
-	text-decoration:none;
-	font-weight:bold;
-	color:darkblue;
-
+
+.bibtex_url, .bibtex_pmid, .bibtex_doi, .bibtex_citeseer {
+    display:inline;
+	font-size:small;
+	float:right;
+	padding-left:1em;
+	padding-right:1em;
+}
+
+.bibtex_url a, .bibtex_pdf a, .bibtex_pmid a,.bibtex_pmid a:visited, .bibtex_doi a, .bibtex_pdf a:visited, .bibtex_citeseer a , .bibtex_url a:visited, .bibtex_doi a:visited, .bibtex_citeseer a:visited {
+	text-decoration:none;
+	font-weight:bold;
+	color:darkblue;
+
 }
 
 .bibtex_journal, .bibtex_year, .bibtex_volume, .bibtex_pages, .bibtex_publisher {
diff --git a/src/resource/layout/html.inbook.layout b/src/resource/layout/html.inbook.layout
index 3c84bdc..89a6f12 100644
--- a/src/resource/layout/html.inbook.layout
+++ b/src/resource/layout/html.inbook.layout
@@ -11,6 +11,12 @@
 		</div>
 		\end{doi}
 
+		\begin{pmid}
+		<div class="bibtex_pmid">
+			<a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&query_hl=1&itool=pubmed_docsum&list_uids=\pmid">pmid</a>
+		</div>
+		\end{pmid}
+
 		\begin{pdf}
 		<div class="bibtex_pdf">
 			<a href="\format[ResolvePDF]{\pdf}">pdf</a>
diff --git a/src/resource/layout/html.inproceedings.layout b/src/resource/layout/html.inproceedings.layout
index 449ba12..282982b 100644
--- a/src/resource/layout/html.inproceedings.layout
+++ b/src/resource/layout/html.inproceedings.layout
@@ -11,6 +11,12 @@
 		</div>
 		\end{doi}
 
+		\begin{pmid}
+		<div class="bibtex_pmid">
+			<a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&query_hl=1&itool=pubmed_docsum&list_uids=\pmid">pmid</a>
+		</div>
+		\end{pmid}
+
 		\begin{pdf}
 		<div class="bibtex_pdf">
 			<a href="\format[ResolvePDF]{\pdf}">pdf</a>
diff --git a/src/resource/layout/html.layout b/src/resource/layout/html.layout
index 170d7b5..9eec8d1 100755
--- a/src/resource/layout/html.layout
+++ b/src/resource/layout/html.layout
@@ -10,6 +10,12 @@
 			<a href="http://dx.doi.org/\doi">doi</a>
 		</div>
 		\end{doi}
+
+		\begin{pmid}
+		<div class="bibtex_pmid">
+			<a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&query_hl=1&itool=pubmed_docsum&list_uids=\pmid">pmid</a>
+		</div>
+		\end{pmid}
 
 		\begin{citeseerurl}
 		<div class="bibtex_citeseer">
diff --git a/src/txt/README b/src/txt/README
index 38febc8..cf52910 100644
--- a/src/txt/README
+++ b/src/txt/README
@@ -1,6 +1,6 @@
 
-JabRef 2.0.1
-------------
+JabRef 2.1 beta
+---------------
 
 
 Introduction:
@@ -80,10 +80,36 @@ If you choose languages other than English, some or all help pages may
 appear in your chosen languages.
 
 Change log:
+2.1b    - Known issue: font sizes cannot be changed, but should follow OS settings on
+          Windows and Mac.
+        - Known issue: some HTML may be handled inappropriately when downloading from
+          IEEEXplore.
+        - Changed Paste function so timestamp and owner fields are updated.
+        - Added "Other" item to the "New entry ..." menu.
+        - Changed sorting order so marked entries are displayed at the top of the table.
+        - Added IEEEXplore search and download feature.
+        - Added option to store entries in their original order. Unsorted table view now
+          shows entries in their original order.
+        - Added option to autogenerate keys for entries with missing keys before each save.
+        - Improved handling of external URLs to prevent problems with special characters.
+        - Medline and Endnote imports no longer automatically add curly braces around capital
+          letters in title.
+        - Float search now scrolls table to the top.
+        - Fixed lockup problem in preview with uneven number of # characters in fields.
+        - Fixed problem with default content selector fields reappearing after removal.
+        - Fixed problem with unsupported character encodings being selectable and causing
+          unreported save errors.
+        - Fixed bug that blocked last line in table columns setup from being removed.
+        - Fixed missing export formats from command line.
+        - Fixed bug that made Review tab impossible to remove from entry editor.
+        - Fixed bug in Medline XML import that assigned wrong PMID for some entries.
+        - Fixed bug in custom export that collapsed sequences of two or more backslashes
+          into a single backslash in output.
+        - Fixed bug (misspelled formatter name) in Harvard RTF export.
 2.0.1:	- Fixed bug that made a hidden entry editor under some circumstances store a
-	  field value to the wrong entry.
-	- Fixed synchronization bug that made the opening of a new database sometimes fail.
-	- Fixed bug in setting external journal lists when no personal list is set.
+	      field value to the wrong entry.
+	    - Fixed synchronization bug that made the opening of a new database sometimes fail.
+	    - Fixed bug in setting external journal lists when no personal list is set.
 2.0:    - Changed sorting selection interface for main table for more intuitive
           operation.
         - Made import operation update "working directory".
diff --git a/src/windows/jabref.wxs b/src/windows/jabref.wxs
index ba4ea14..b4490a4 100644
--- a/src/windows/jabref.wxs
+++ b/src/windows/jabref.wxs
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
-    <Product Name="JabRef 1.8.1" Id="118b0801-c924-4071-a0ab-6ec9844cc55a"
-            Version="1.8.1" Manufacturer="http://jabref.sf.net/"
+    <Product Name="JabRef 2.0.1" Id="118b0801-c924-4071-a0ab-6ec9844cc55a"
+            Version="2.0.1" Manufacturer="http://jabref.sf.net/"
             Language="1033">
         <Package Id="????????-????-????-????-????????????"
                 Comments="This MSI file installs JabRef."
@@ -10,7 +10,7 @@
         <Media Id="1" EmbedCab="yes" Cabinet="JabRef.cab"/>
         <Directory Id="TARGETDIR" Name="SourceDir">
             <Directory Id="ProgramFilesFolder" Name="PFiles">
-                <Directory Id="JabRefDir" Name="JabRef" LongName="JabRef 1.8.1">
+                <Directory Id="JabRefDir" Name="JabRef" LongName="JabRef 2.0.1">
                         <Component Id="Libraries"
                                 Guid="6922b877-d0ea-4c52-a2b4-1e1339c398f5">
                             <File Id="jabrefjar" Name="JabRef.jar" LongName="jabref.jar" DiskId="1" src="jabref.jar" />
@@ -21,7 +21,7 @@
                                     src="jabref.exe">
                                 <Shortcut Id="shortcut"
                                         Directory="ProgramMenuFolder" Name="JabRef"
-                                        LongName="JabRef 1.8.1"
+                                        LongName="JabRef 2.0.1"
                                         Show="normal"
                                         WorkingDirectory="TARGETDIR"/>
                             </File>
@@ -34,5 +34,6 @@
             <ComponentRef Id="Libraries"/>
             <ComponentRef Id="Executables"/>
         </Feature>
+    <UIRef Id="WixUI" />
     </Product>
 </Wix>
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jabref.git



More information about the pkg-java-commits mailing list