[jabref] 255/459: [svn-upgrade] Integrating new upstream version, jabref (2.6~beta3+dfsg)

gregor herrmann gregoa at debian.org
Thu Sep 15 20:40:36 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 1d0823f081361a2a4595ce3a773a2c172975fd80
Author: gregor herrmann <gregoa at debian.org>
Date:   Mon Mar 8 16:30:45 2010 +0000

    [svn-upgrade] Integrating new upstream version, jabref (2.6~beta3+dfsg)
---
 build.number                                       |    4 +-
 build.xml                                          |    6 +-
 src/{Jabref_trunk.iml => Jabref.iml}               |   73 +-
 src/help/About.html                                |    1 +
 src/help/CustomExports.html                        |    5 +
 src/help/JSTOR.html                                |    5 +-
 src/help/RevisionHistory.html                      |  136 +-
 src/help/ScienceDirect.html                        |   15 +
 src/help/da/About.html                             |    1 +
 src/help/de/About.html                             |    1 +
 src/help/de/JabRef-UserManual_de.tex               | 3201 ++++++++++++++++++++
 src/help/fr/About.html                             |    1 +
 src/help/fr/CustomExports.html                     |    6 +
 src/help/fr/JSTOR.html                             |    3 +
 src/images/absIcon.png                             |  Bin 180 -> 0 bytes
 src/images/add.png                                 |  Bin 455 -> 0 bytes
 src/images/autumn.png                              |  Bin 307468 -> 0 bytes
 src/images/completeItem.png                        |  Bin 458 -> 0 bytes
 src/images/contents.png                            |  Bin 1073 -> 0 bytes
 src/images/database_connect.png                    |  Bin 763 -> 0 bytes
 src/images/database_save.png                       |  Bin 755 -> 0 bytes
 src/images/document-save-as.png                    |  Bin 1337 -> 0 bytes
 src/images/document-save.png                       |  Bin 1255 -> 0 bytes
 src/images/doismall.png                            |  Bin 738 -> 0 bytes
 src/images/duplicate.png                           |  Bin 359 -> 0 bytes
 src/images/edit-copy.png                           |  Bin 979 -> 0 bytes
 src/images/edit-cut.png                            |  Bin 985 -> 0 bytes
 src/images/edit-delete.png                         |  Bin 1339 -> 0 bytes
 src/images/edit-find.png                           |  Bin 1347 -> 0 bytes
 src/images/edit-paste.png                          |  Bin 956 -> 0 bytes
 src/images/edit-redo.png                           |  Bin 909 -> 0 bytes
 src/images/edit-undo.png                           |  Bin 957 -> 0 bytes
 src/images/editor.png                              |  Bin 1196 -> 0 bytes
 src/images/emacs.png                               |  Bin 267 -> 0 bytes
 src/images/emblem-web-small.png                    |  Bin 960 -> 0 bytes
 src/images/emblem-web.png                          |  Bin 1419 -> 0 bytes
 src/images/fileclose.png                           |  Bin 238 -> 0 bytes
 src/images/fileclose2.png                          |  Bin 250 -> 0 bytes
 src/images/filenew.png                             |  Bin 968 -> 0 bytes
 src/images/fileopen.png                            |  Bin 1123 -> 0 bytes
 src/images/genIcon.png                             |  Bin 180 -> 0 bytes
 src/images/go-down.png                             |  Bin 1216 -> 0 bytes
 src/images/go-next.png                             |  Bin 1203 -> 0 bytes
 src/images/go-previous.png                         |  Bin 1157 -> 0 bytes
 src/images/go-up.png                               |  Bin 1092 -> 0 bytes
 src/images/groupIncluding.png                      |  Bin 105 -> 0 bytes
 src/images/groupRefining.png                       |  Bin 160 -> 0 bytes
 src/images/grouping_morten.png                     |  Bin 875 -> 0 bytes
 src/images/groupsHighlightAll.png                  |  Bin 280 -> 0 bytes
 src/images/groupsHighlightAny.png                  |  Bin 276 -> 0 bytes
 src/images/help-about.png                          |  Bin 986 -> 0 bytes
 src/images/help-browser.png                        |  Bin 1541 -> 0 bytes
 src/images/integrity.png                           |  Bin 748 -> 0 bytes
 src/images/lyx2.png                                |  Bin 927 -> 0 bytes
 src/images/mark.png                                |  Bin 928 -> 0 bytes
 src/images/messageFail.png                         |  Bin 937 -> 0 bytes
 src/images/messageInfo.png                         |  Bin 978 -> 0 bytes
 src/images/messageWarn.png                         |  Bin 1014 -> 0 bytes
 src/images/optIcon.png                             |  Bin 200 -> 0 bytes
 src/images/pdf-new.png                             |  Bin 936 -> 0 bytes
 src/images/pdf.png                                 |  Bin 349 -> 0 bytes
 src/images/postscript.png                          |  Bin 233 -> 0 bytes
 src/images/preamble.png                            |  Bin 266 -> 0 bytes
 src/images/preferences.png                         |  Bin 1381 -> 0 bytes
 src/images/remove.png                              |  Bin 288 -> 0 bytes
 src/images/reqIcon.png                             |  Bin 182 -> 0 bytes
 src/images/search.png                              |  Bin 1433 -> 0 bytes
 src/images/splash-2.1.svg                          |  229 --
 src/images/splash-2.1beta.png                      |  Bin 179073 -> 0 bytes
 src/images/splash-2.3.svg                          |  276 --
 src/images/splash-2.4.svg                          |  284 --
 src/images/splash-2.5.svg                          |    6 +-
 src/images/splashBackground.png                    |  Bin 157549 -> 0 bytes
 src/images/strings.png                             |  Bin 233 -> 0 bytes
 src/images/unmark.png                              |  Bin 1025 -> 0 bytes
 src/images/user-home.png                           |  Bin 1290 -> 0 bytes
 src/images/view-refresh.png                        |  Bin 1591 -> 0 bytes
 src/images/viewsource.gif                          |  Bin 119 -> 0 bytes
 src/images/winedt.png                              |  Bin 1495 -> 0 bytes
 src/images/wizard.png                              |  Bin 238 -> 0 bytes
 src/images/wrongItem.png                           |  Bin 776 -> 0 bytes
 src/images/wwwciteseer.png                         |  Bin 526 -> 0 bytes
 src/java/net/sf/jabref/AdvancedTab.java            |   11 +-
 src/java/net/sf/jabref/AuthorList.java             |   32 +-
 src/java/net/sf/jabref/BasePanel.java              |  133 +-
 src/java/net/sf/jabref/BibtexEntry.java            |    2 +-
 src/java/net/sf/jabref/EntryEditor.java            |  104 +-
 src/java/net/sf/jabref/EntryEditorTab.java         |   21 +-
 src/java/net/sf/jabref/FieldEditor.java            |    8 +-
 src/java/net/sf/jabref/FieldTextArea.java          |   17 +-
 src/java/net/sf/jabref/FieldTextField.java         |   13 +
 src/java/net/sf/jabref/Globals.java                |    1 +
 src/java/net/sf/jabref/JabRef.java                 |   24 +-
 src/java/net/sf/jabref/JabRefFrame.java            |   15 +-
 src/java/net/sf/jabref/JabRefPreferences.java      |   29 +-
 src/java/net/sf/jabref/MetaData.java               |    5 +-
 src/java/net/sf/jabref/PreviewPanel.java           |   15 +-
 src/java/net/sf/jabref/SearchManager2.java         |    2 +
 src/java/net/sf/jabref/Util.java                   |   35 +-
 src/java/net/sf/jabref/about/AboutPanel.java       |   10 -
 .../autocompleter/AbstractAutoCompleter.java       |   74 +
 .../jabref/autocompleter/AutoCompleterFactory.java |   24 +
 .../autocompleter/CrossrefAutoCompleter.java       |   40 +
 .../jabref/autocompleter/DefaultAutoCompleter.java |   48 +
 .../autocompleter/EntireFieldAutoCompleter.java    |   39 +
 .../autocompleter/NameFieldAutoCompleter.java      |   55 +
 src/java/net/sf/jabref/collab/Change.java          |    3 +-
 .../net/sf/jabref/collab/ChangeDisplayDialog.java  |   14 +-
 src/java/net/sf/jabref/collab/EntryAddChange.java  |    3 +-
 src/java/net/sf/jabref/collab/EntryChange.java     |   18 +-
 .../net/sf/jabref/collab/EntryDeleteChange.java    |    3 +-
 .../net/sf/jabref/collab/FileUpdateMonitor.java    |    9 +-
 src/java/net/sf/jabref/collab/GroupChange.java     |    3 +-
 src/java/net/sf/jabref/collab/MetaDataChange.java  |    3 +-
 src/java/net/sf/jabref/collab/PreambleChange.java  |    7 +-
 src/java/net/sf/jabref/collab/StringAddChange.java |    3 +-
 src/java/net/sf/jabref/collab/StringChange.java    |    4 +-
 .../net/sf/jabref/collab/StringNameChange.java     |    4 +-
 .../net/sf/jabref/collab/StringRemoveChange.java   |    4 +-
 .../export/OpenDocumentSpreadsheetCreator.java     |    2 +-
 .../net/sf/jabref/export/SaveDatabaseAction.java   |   10 +
 src/java/net/sf/jabref/export/SaveException.java   |    4 +-
 src/java/net/sf/jabref/export/SaveSession.java     |    8 +-
 .../export/layout/format/CreateDocBookAuthors.java |   55 +-
 .../export/layout/format/CreateDocBookEditors.java |   40 +-
 .../sf/jabref/export/layout/format/IfPlural.java   |   47 +
 .../net/sf/jabref/external/DroppedFileHandler.java |   95 +-
 .../external/ExternalFileTypeEntryEditor.java      |    8 +-
 .../net/sf/jabref/external/MoveFileAction.java     |   12 +-
 src/java/net/sf/jabref/groups/AllEntriesGroup.java |    2 +-
 src/java/net/sf/jabref/groups/ExplicitGroup.java   |    6 +-
 src/java/net/sf/jabref/groups/KeywordGroup.java    |    8 +-
 src/java/net/sf/jabref/groups/SearchGroup.java     |    8 +-
 .../net/sf/jabref/gui/AutoCompleteListener.java    |   40 +-
 src/java/net/sf/jabref/gui/AutoCompleter.java      |  130 -
 src/java/net/sf/jabref/gui/FileListEditor.java     |    8 +-
 .../sf/jabref/gui/MainTableSelectionListener.java  |   24 +-
 .../net/sf/jabref/gui/SearchResultsDialog.java     |    8 +
 .../net/sf/jabref/imports/BibsonomyScraper.java    |   47 +
 src/java/net/sf/jabref/imports/GeneralFetcher.java |   30 +-
 src/java/net/sf/jabref/imports/JSTORFetcher2.java  |  168 +
 src/java/net/sf/jabref/imports/OAI2Fetcher.java    |    4 +-
 .../sf/jabref/imports/ScienceDirectFetcher.java    |  151 +
 .../sf/jabref/labelPattern/LabelPatternUtil.java   |    3 +-
 src/java/net/sf/jabref/msbib/MSBibEntry.java       |    4 +-
 src/java/net/sf/jabref/net/CookieHandlerImpl.java  |   11 +-
 src/java/net/sf/jabref/net/URLDownload.java        |   88 +-
 src/java/tests/net/sf/jabref/TestUtils.java        |   40 +
 .../tests/net/sf/jabref/gui/AutoCompleterTest.java |  164 +
 src/java/tests/net/sf/jabref/imports/AllTests.java |    1 +
 .../net/sf/jabref/imports/GeneralFetcherTest.java  |   63 +
 .../net/sf/jabref/imports/RISImporterTest.java     |  107 +
 .../tests/net/sf/jabref/testutils/TestUtils.java   |   66 +
 src/plugins/net.sf.jabref.core/plugin.xml          |   11 +-
 src/resource/JabRef_da.properties                  |   39 +-
 src/resource/JabRef_de.properties                  |   42 +-
 src/resource/JabRef_en.properties                  |   33 +-
 src/resource/JabRef_fr.properties                  |   89 +-
 src/resource/JabRef_it.properties                  |   55 +-
 src/resource/JabRef_nl.properties                  |   33 +-
 src/resource/JabRef_no.properties                  |   29 +-
 src/resource/JabRef_tr.properties                  |   54 +-
 src/resource/JabRef_zh.properties                  |   32 +-
 src/resource/JabRef_zh.properties.UTF8             |   33 +-
 src/resource/Menu_da.properties                    |    2 +
 src/resource/Menu_de.properties                    |   20 +-
 src/resource/Menu_en.properties                    |    2 +
 src/resource/Menu_es.properties                    |    4 +-
 src/resource/Menu_fr.properties                    |   12 +-
 src/resource/Menu_it.properties                    |    4 +-
 src/resource/Menu_nl.properties                    |    4 +-
 src/resource/Menu_no.properties                    |    4 +-
 src/resource/Menu_tr.properties                    |    5 +-
 src/resource/Menu_zh.properties                    |  230 +-
 src/resource/Menu_zh.properties.UTF8               |    4 +-
 src/resource/build.properties                      |    6 +-
 src/resource/layout/bibtexml.layout                |    1 +
 src/resource/layout/docbook.begin.layout           |    5 +-
 src/resource/layout/docbook.layout                 |    5 +-
 src/resource/ods/mimetype                          |    1 +
 src/tests/net/sf/jabref/bibtexFiles/test.bib       |  279 ++
 .../net/sf/jabref/imports/RisImporterTest1.ris     |   13 +
 src/txt/CHANGELOG                                  |   54 +
 src/txt/README                                     |    2 +-
 184 files changed, 6070 insertions(+), 1587 deletions(-)

diff --git a/build.number b/build.number
index 9f34c41..c46966c 100644
--- a/build.number
+++ b/build.number
@@ -1,3 +1,3 @@
 #Build Number for ANT. Do not edit!
-#Sun Nov 01 16:45:05 CET 2009
-build.number=40
+#Sun Mar 07 13:57:35 CET 2010
+build.number=173
diff --git a/build.xml b/build.xml
index 5a7bd0a..6692d7b 100644
--- a/build.xml
+++ b/build.xml
@@ -22,8 +22,8 @@
    Compiler: Ant
    Authors:  Joerg K. Wegner, wegnerj at informatik.uni-tuebingen.de
              Morten O. Alver
-   Version:  $Revision: 3131 $
-             $Date: 2009-11-01 15:46:02 +0100 (Sun, 01 Nov 2009) $
+   Version:  $Revision: 3196 $
+             $Date: 2010-03-02 16:55:38 +0100 (Tue, 02 Mar 2010) $
              $Author: mortenalver $
 
    modified:
@@ -47,7 +47,7 @@
      +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
 
 	<!-- some version information -->
-	<property name="jabref.version" value="2.6b2" />
+	<property name="jabref.version" value="2.6b3" />
 	<property name="jabref.placeholder.version" value="@version@" />
 	<!-- used by replace task -->
 
diff --git a/src/Jabref_trunk.iml b/src/Jabref.iml
similarity index 66%
rename from src/Jabref_trunk.iml
rename to src/Jabref.iml
index 5049fe7..a58b96e 100644
--- a/src/Jabref_trunk.iml
+++ b/src/Jabref.iml
@@ -7,55 +7,11 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="plugin" level="project" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/plugin/velocity-dep-1.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/plugin/jpf.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/plugin/JPFCodeGenerator-rt.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/plugin/commons-logging.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/plugin/jpf-boot.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/plugin/JPFCodeGenerator.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/glazedlists-1.7.0_java15.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -64,7 +20,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/substance-4.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/microba.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -73,7 +29,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/microba.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/spin.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -100,16 +56,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/spin.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/antlr.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/antlr-3.0b5.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -118,7 +65,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/glazedlists-1.7.0_java15.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/PDFBox-0.7.3-dev-reduced.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -127,7 +74,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/PDFBox-0.7.3-dev-reduced.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/antlr.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -136,7 +83,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/antlr-3.0b5.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/looks-2.2.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -145,7 +92,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/looks-2.2.0.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/mysql-connector-java-5.0.7-bin.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -154,7 +101,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../lib/mysql-connector-java-5.0.7-bin.jar!/" />
+          <root url="jar://$MODULE_DIR$/../lib/junit.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
diff --git a/src/help/About.html b/src/help/About.html
index 92d8cc8..cbe66ef 100755
--- a/src/help/About.html
+++ b/src/help/About.html
@@ -48,6 +48,7 @@
         Aaron Chen,
         Fabrice Dessaint,
         Nathan Dunn,
+        E. Hakan Duran,
         Brian Van Essen,
         Alexis Gallagher,
         David Gleich,
diff --git a/src/help/CustomExports.html b/src/help/CustomExports.html
index c8d8694..781dbbb 100644
--- a/src/help/CustomExports.html
+++ b/src/help/CustomExports.html
@@ -340,6 +340,11 @@
         consecutive newlines (e.g. \n \n) as the beginning of a new
         paragraph and creates paragraph-html-tags accordingly.</li>
 
+        <li><code>IfPlural</code> : outputs its first argument if the input field looks
+        like an author list with two or more names, or its second argument otherwise.
+        E.g. <code>\format[IfPlural(Eds.,Ed.)]{\editor}</code> will output "Eds." if there
+        is more than one editor, and "Ed." if there is only one.</li>
+
         <li><code>LastPage</code> : returns the last page from the "pages" field, if set.
             For instance, if the pages field is set to "345-360" or "345--360",
             this formatter will return "360".</li>
diff --git a/src/help/JSTOR.html b/src/help/JSTOR.html
index 8ec3ed8..e21ab70 100644
--- a/src/help/JSTOR.html
+++ b/src/help/JSTOR.html
@@ -5,6 +5,9 @@
 
   <h1>JStor search</h1>
 
+    <p>The JStor search relies on the BibSonomy scraper project (http://scraper.bibsonomy.org/) to
+    extract information from the JStor web page.</p>
+
     <p>The following help was taken from the JStor website and may change if JStor does:</p>
     <ul>
       <li>You will be searching the author, title, and full-text of all types of journal content (articles, book reviews, etc.) by default</li>
@@ -13,7 +16,7 @@
       <li>Use AND, OR, NOT to combine terms (e.g., ti:"two-person cooperative games" AND au:"john nash")</li>
     </ul>
 
-    <p>JSTOR is a not-for-profit organization with a dual mission to create and maintain a trusted archive of important scholarly journals, and to provide access to these journals as widely as possible. JSTOR offers researchers the ability to retrieve high-resolution, scanned images of journal issues and pages as they were originally designed, printed, and illustrated. The journals archived in JSTOR span many disciplines.</p>
+    <p>JStor is a not-for-profit organization with a dual mission to create and maintain a trusted archive of important scholarly journals, and to provide access to these journals as widely as possible. JSTOR offers researchers the ability to retrieve high-resolution, scanned images of journal issues and pages as they were originally designed, printed, and illustrated. The journals archived in JSTOR span many disciplines.</p>
 
     <p>JStor offers access to the following topics:</p>
     <ul>
diff --git a/src/help/RevisionHistory.html b/src/help/RevisionHistory.html
index ced61f5..13c9a24 100644
--- a/src/help/RevisionHistory.html
+++ b/src/help/RevisionHistory.html
@@ -5,47 +5,101 @@
 
   <h1>Revision history</h1>
 
-    <h3>Version 2.6beta 2</h3>
-    <ul>
-    <li>Added export formatter "Default" which takes a single argument. Outputs the string to format
-      unchanged if it is non-empty, otherwise outputs the argument.</li>
-    <li>Added option under Options -> Preferences -> General for disabling the strict enforcing of
-      correct BibTeX keys. Disabling this makes it possible to use e.g. umlaut characters in keys.</li>
-    <li>Modified launcher script for Windows installer to give higher heap size limit.</li>
-    <li>Improved autocompletion. All fields with autocompletion which have content selectors will now
-      autocomplete on content selector values. For the "journal" field, the autocompleter will now
-      additionally use entries from the current journal abbreviations list, and will also complete
-      on the entire field up to the cursor rather than just looking at the last word only.</li>
-    <li>Added support for postformatter in Layout. The postformatter will be run after
-      the formatters called from a layout.</li>
-    <li>Improved group autogeneration. Added option to generate groups based on author or editor
-      last names. Autogenerated groups are now alphabetized.</li>
-    <li>Modified Endnote export filter so "--" gets converted to "-" in the "pages" field.</li>
-    <li>Changed keyword groups so they will match on whole words only. E.g. a keyword group for the
-      keyword "can" will no longer match the keyword "scanner".</li>
-    <li>Improved entry type determination and author parsing for some varieties of CSA files.</li>
-    <li>Minor change to Harvard RTF export. Added space after "ed.", and added editor to output for
-      inbook entries.</li>
-    <li>Set limit to the number of displayed characters in group names in groups tree in order to
-      avoid group panel width problems.</li>
-    <li>Changed file link handling so all remote links classified as URL can be opened through
-      the browser. Setting a different file type manually makes JabRef call a remote link using
-      the handler application instead.</li>
-    <li>Modified Endnote/refer import filter to strip "doi:" from the %R field.</li>
-    <li>Modified HTML conversion so single newline is displayed in the preview (and HTML exports) as
-      <br>, while multiple newlines are displayed as <p>.
-    <li>Fixed bug: switching entry editor between entries of different type may result in switching
-      of entry editor tabs.</li>
-    <li>Fixed bug: adding external file link leads to relative path from root directory if file
-      directory is set to an empty string.</li>
-    <li>Fixed error message when a # in a BibTeX string prevents saving. No longer states that the
-      problem is in an entry, but specifies that it is in a string.</li>
-    <li>Fixed bug: ODS export doesn't resolve BibTeX strings.</li>
-    <li>Fixed bug: content selector for "editor" field uses "," instead of " and " as delimiter.</li>
-    <li>Fixed bug: editing source doesn't allow change of entry type.</li>
-    <li>RTFChars formatter now converts --- to \emdash and -- to \endash.</li>
-    </ul>
-    
+    <h3>Version 2.6beta3</h3>
+
+        <li>Added ScienceDirect entry fetcher that utilizes the BibSonomy scraper.</li>
+        <li>Changed non-native file dialog setting so files cannot be renamed. This prevents
+          accidentally entering rename mode when trying to enter directory. Can be enabled
+          again in Options -> Preferences -> Advanced.</li>
+        <li>Added new JStor fetcher that utilizes the BibSonomy scraper to obtain BibTeX data.</li>
+        <li>Fixed bug in CookieHandlerImpl.</li>
+        <li>Fixed bug; when dragging a file into JabRef and asking to move it to the file
+          directory, warning will now be given if the destination file already exists. Patch
+          by Alastair Mailer.</li>
+        <li>When dragging a file into JabRef and asking to copy or move it to the file directory,
+          it is now possible to rename to an arbitrary name. Patch by Alastair Mailer.</li>
+        <li>Added "review" field to BibTeXML export.</li>
+        <li>Added Reset button to entry fetchers. Patch by Dennis Hartrampf and Ines Moosdorf.</li>
+        <li>Changed Microsoft Office XML export so "number" rather than "issue" is exported
+          as <b:Issue>, which conforms with import format.</li>
+        <li>Added confirmation dialog that allows saving without backup in cases when
+          backup creation fails.</li>
+        <li>Fixed bug 2938562: using the move/rename feature on a file link could give an
+          absolute link even if the file was put below the main file directory.</li>
+        <li>Fixed bug 2931293: error generating key with [authorsAlpha] for short names.</li>
+        <li>When checking for external modifications, file size is now checked in addition
+          to the time stamp.</li>
+        <li>Fixed handling of maximised state when shutting down and starting up JabRef.
+          Patch by Igor L. Chernyavsky.</li>
+        <li>Fixed bug that prevented correct handling of DOS short file names. Patch
+          by Igor L. Chernyavsky.</li>
+        <li>Added support for KOI8_R character set.</li>
+        <li>Removed DocumentPrinter class, using standard API functions instead. Patch by
+          Tony Mancill.</li>
+        <li>Removed HightlightFilter class, using standard API functions instead. Patch by
+          Tony Mancill.</li>
+        <li>Changed keyboard shortcut for IEEXplorer search to Alt-F8.</li>
+        <li>Disabled JStor search, which doesn't work due to API changes.</li>
+        <li>External file type manager now removes "." prefix in file type extension if the user
+          has typed it that way.</li>
+        <li>Preview panel now defaults to preview layout 1 instead of 2. Switched default layouts.</li>
+        <li>Added IfPlural formatter by Russell Almond. The formatter outputs its first argument
+          if the input field contains " and " and the second one otherwise.</li>
+        <li>Applied patch by Philipp Cordes and Björn Kahlert for improved handling of names by
+          autocompleter. The patch also reorganizes the autocompleter classes.</li>
+        <li>Table will now scroll to keep the currently edited entry visible if an edit leads to
+          the entry getting sorted to a different position.</li>
+        <li>Reworked author and editor handling in Docbook export. Added Docbook XML header.</li>
+        <li>Database will no longer be marked as changed after accepting external changes, unless one or
+          more changes were not accepted before merging, and unless database was already marked as
+          changed.</li>
+        <li>Fixed bug: undesired autocompletion when saving file.</li>
+        <li>Fixed bug: entry editor doesn't appear when new entry is added while a filtering search or
+          group selection is active.</li>
+        <li>Fixed bug in writing of metadata on Windows. For certain metadata lengths newlines would be
+          messed up after the metadata comment in a bib file.</li>
+        <li>Search dialog now automatically previews first hit, and hides preview if there are no hits.</li>
+
+    <h3>Version 2.6beta2</h3>
+
+        <li>Added export formatter "Default" which takes a single argument. Outputs the string to format
+          unchanged if it is non-empty, otherwise outputs the argument.</li>
+        <li>Added option under Options -> Preferences -> General for disabling the strict enforcing of
+          correct BibTeX keys. Disabling this makes it possible to use e.g. umlaut characters in keys.</li>
+        <li>Modified launcher script for Windows installer to give higher heap size limit.</li>
+        <li>Improved autocompletion. All fields with autocompletion which have content selectors will now
+          autocomplete on content selector values. For the "journal" field, the autocompleter will now
+          additionally use entries from the current journal abbreviations list, and will also complete
+          on the entire field up to the cursor rather than just looking at the last word only.</li>
+        <li>Added support for postformatter in Layout. The postformatter will be run after
+          the formatters called from a layout.</li>
+        <li>Improved group autogeneration. Added option to generate groups based on author or editor
+          last names. Autogenerated groups are now alphabetized.</li>
+        <li>Modified Endnote export filter so "--" gets converted to "-" in the "pages" field.</li>
+        <li>Changed keyword groups so they will match on whole words only. E.g. a keyword group for the
+          keyword "can" will no longer match the keyword "scanner".</li>
+        <li>Improved entry type determination and author parsing for some varieties of CSA files.</li>
+        <li>Minor change to Harvard RTF export. Added space after "ed.", and added editor to output for
+          inbook entries.</li>
+        <li>Set limit to the number of displayed characters in group names in groups tree in order to
+          avoid group panel width problems.</li>
+        <li>Changed file link handling so all remote links classified as URL can be opened through
+          the browser. Setting a different file type manually makes JabRef call a remote link using
+          the handler application instead.</li>
+        <li>Modified Endnote/refer import filter to strip "doi:" from the %R field.</li>
+        <li>Modified HTML conversion so single newline is displayed in the preview (and HTML exports) as
+          <br>, while multiple newlines are displayed as <p>.</li>
+        <li>Fixed bug: switching entry editor between entries of different type may result in switching
+          of entry editor tabs.</li>
+        <li>Fixed bug: adding external file link leads to relative path from root directory if file
+          directory is set to an empty string.</li>
+        <li>Fixed error message when a # in a BibTeX string prevents saving. No longer states that the
+          problem is in an entry, but specifies that it is in a string.</li>
+        <li>Fixed bug: ODS export doesn't resolve BibTeX strings.</li>
+        <li>Fixed bug: content selector for "editor" field uses "," instead of " and " as delimiter.</li>
+        <li>Fixed bug: editing source doesn't allow change of entry type.</li>
+        <li>RTFChars formatter now converts --- to \emdash and -- to \endash.</li>
+
     <h3>Version 2.6beta</h3>
 
     <ul>
diff --git a/src/help/ScienceDirect.html b/src/help/ScienceDirect.html
new file mode 100644
index 0000000..792f5f8
--- /dev/null
+++ b/src/help/ScienceDirect.html
@@ -0,0 +1,15 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<body text="#275856">
+    <basefont size="4" color="#2F4958" face="arial" />
+
+  <h1>ScienceDirect search</h1>
+
+    <p>The ScienceDirecy search relies on the BibSonomy scraper project (http://scraper.bibsonomy.org/) to
+    extract information from the ScienceDirect web page.</p>
+
+    <p>This fetcher attempts to run a quick search in the ScienceDirect web site, resulting in
+        up to 100 hits. All hits are then imported.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/src/help/da/About.html b/src/help/da/About.html
index fbf40c4..7475d6a 100755
--- a/src/help/da/About.html
+++ b/src/help/da/About.html
@@ -49,6 +49,7 @@
         Aaron Chen,
         Fabrice Dessaint,
         Nathan Dunn,
+        E. Hakan Duran,
         Brian Van Essen,
         Alexis Gallagher,
         David Gleich,
diff --git a/src/help/de/About.html b/src/help/de/About.html
index 5bf8769..bd0ddd3 100644
--- a/src/help/de/About.html
+++ b/src/help/de/About.html
@@ -47,6 +47,7 @@
         Aaron Chen,
         Fabrice Dessaint,
         Nathan Dunn,
+        E. Hakan Duran,
         Brian Van Essen,
         Alexis Gallagher,
         David Gleich,
diff --git a/src/help/de/JabRef-UserManual_de.tex b/src/help/de/JabRef-UserManual_de.tex
new file mode 100644
index 0000000..b08216d
--- /dev/null
+++ b/src/help/de/JabRef-UserManual_de.tex
@@ -0,0 +1,3201 @@
+%%%%% To do %%%%%
+% DW 2007-12-03
+% - Wiki-Seite 'Translating JabRef' �bersetzen und einbinden
+% - [2.4 beta] Plugin.html erg�nzen 
+% - [2.4 beta?] SQLExport.html erg�nzen
+
+\documentclass[
+  fontsize=10pt,
+	headings=normal,
+	paper=a5,
+	pagesize,
+	ngerman
+]{scrartcl}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage{textcomp}
+\setcounter{secnumdepth}{2}
+\setcounter{tocdepth}{4}
+\usepackage{xspace}
+
+%%%%% author, version of file %%%%%
+\newcommand{\versiondate}{26.\,1.\,2010}%
+\def\FileAuthor{Dominik Wa�enhoven}
+\def\FileTitle{\jabrefversion{} Benutzerhandbuch}
+
+%%%%% Packages %%%%%
+\usepackage{array}
+\usepackage{longtable}
+\usepackage{amsmath}
+\usepackage{graphicx}
+\usepackage{setspace}
+\usepackage{amssymb}
+\usepackage{hanging}
+
+\makeatletter
+%%%%% LyX command %%%%%
+\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@\xspace}
+
+%%%%% Listings %%%%%
+\usepackage{listings}
+\lstset{%
+  frame=none,
+  %backgroundcolor=\color{pyellow},
+  language=[LaTeX]TeX,
+  basicstyle=\ttfamily,%\small,
+  commentstyle=\color{red},
+  keywordstyle=, % LaTeX-Befehle werden nicht fett dargestellt
+  numbers=none,%left/right
+  %numberstyle=\tiny\lnstyle,
+  %numbersep=5pt,
+  %numberblanklines=false,
+  breaklines=true,
+  %caption=\lstname,
+  xleftmargin=25pt,
+  xrightmargin=20pt,
+  escapeinside={(*}{*)},
+  belowskip=\medskipamount,
+  prebreak=\mbox{$\hookleftarrow$}% "geklaut" vom scrguide (KOMA-Script)
+}
+
+%%%%% Environment "revhist" (for revision history) %%%%%
+\newenvironment{revhist}[1]
+    {\subsection*{#1}
+     \list{--}{\setlength\itemsep{0pt}\setlength{\parsep}{0pt}}}
+    {\endlist}
+
+%%%%% PDF 1.2 for Acrobat 3 onwards %%%%%
+\pdfoptionpdfminorversion 2
+
+%%%%% Colors %%%%%
+\usepackage[dvipsnames]{xcolor}
+\definecolor{dkblue}{rgb}{0,0.1,0.5} % dark blue
+\definecolor{dkred}{rgb}{0.66,0.04,0.04} % dark red
+\definecolor{pyellow}{rgb}{1,0.97,0.75} % pale yellow
+
+%%%%% New commands %%%%%
+%%% JabRef "logo"
+\DeclareRobustCommand{\jabref}{%
+  \texorpdfstring{% TeX string
+	  \raisebox{-.32ex}{\color{dkred}J}\kern-.06em%
+	    \hbox{$\m at th$% %% force math size calculations
+	          \csname S@\f at size\endcsname
+	          \fontsize\sf at size\z@
+	          \math at fontsfalse\selectfont
+	          \color{orange}A\kern-.025emB}\-%
+	  \hbox{\kern-.06em\-R\hspace{-.08em}%
+	    \raisebox{.16ex}{$\m at th$% %% force math size calculations
+	          \csname S@\f at size\endcsname
+	          \fontsize\sf at size\z@
+	          \math at fontsfalse\selectfont
+	          E\kern-.025emF}}\xspace}%
+	  {JabRef\xspace}% PDF string
+}
+
+%%% version number
+\newcommand{\versionnr}{\texorpdfstring{2.4}{2.4}} %
+%%% JabRef logo with version nr
+\newcommand{\jabrefversion}{\jabref~\versionnr}
+%%% BibTeX logo
+\newcommand{\bibtex}{\texorpdfstring{Bib\kern-.125em\TeX\xspace}{BibTeX}}
+%%% for Menu references
+\newcommand{\menu}[1]{\texorpdfstring{{\color{dkred}\textit{#1}}}{#1}}
+%%% Menu separator
+\newcommand{\msep}{{\color{dkred}\textit{\guilsinglright}}\xspace}
+%%% yellow box with dark blue text
+\newcommand{\tip}[2][Tipp: ]{%
+  \begin{center}%
+  \colorbox{pyellow}{\parbox{0.85\textwidth}{%
+    \color{dkblue}\textit{#1}#2}}%
+  \end{center}%
+}%
+
+\newcommand{\verfasser}[1]{%
+  \begin{flushright}%
+  \colorbox{pyellow}{\parbox{0.7\textwidth}{%
+    \color{dkblue}\textit{Dieser Abschnitt stammt von #1}}}%
+  \end{flushright}%
+}%
+
+%%% for the FAQ 
+\newcounter{faq}
+\newcommand{\faq}[2]{\refstepcounter{faq}%
+  \medskip\noindent\colorbox{pyellow}{\parbox{0.9\textwidth}{%
+    \hangpara{0.11\textwidth}{1}%
+    \color{dkblue}Frage \thefaq: \textit{#1}}}\par\smallskip%
+  \begin{hangparas}{0.11\textwidth}{0}%
+    #2\par%
+  \end{hangparas}
+}%
+
+%%% for CTAN references
+\newcommand{\ctan}[1]{%
+  {\textsc{ctan}: \color{dkred}#1}%
+}
+
+%%%%% Headings %%%%%
+\usepackage{scrpage2}
+\pagestyle{scrheadings}
+\ihead{\FileTitle{} (\versiondate{})}
+\chead{}
+\ohead{\headmark}
+\ifoot{}
+\cfoot{\pagemark}
+\ofoot{}
+\automark[section]{section}
+
+%%%%% Fonts %%%%%
+\usepackage{charter}
+\addtokomafont{sectioning}{\rmfamily} % Headings with serifs
+\renewcommand{\headfont}{\normalfont\itshape} % Headlines italic, not slanted ***
+\usepackage[scaled=.83]{beramono}
+
+%%%%% Page Dimensions %%%%%
+\usepackage{typearea}
+\typearea{calc}
+
+%%%%% Other stuff %%%%%
+\deffootnote{1.5em}{1em}{\makebox[1.5em][l]{\thefootnotemark}}
+\usepackage{microtype} % micro typography
+
+%%%%% Mini TOCs %%%%%
+\usepackage{minitoc}
+\mtcsetrules{secttoc}{off}
+%\mtcsetdepth{secttoc}{3}
+\mtcsetfont{secttoc}{subsection}{}
+%\mtcsettitle{secttoc}{In diesem Abschnitt}
+%\mtcsettitlefont{secttoc}{\itshape}
+
+%%%%% Language %%%%%
+\usepackage{babel}
+
+%%%%% Bibliography %%%%%
+\usepackage{jurabib}
+\jurabibsetup{%
+  annote=true,
+  authorformat=year,
+  dotafter=bibentry
+}
+\renewcommand{\biblnfont}{}			% Autoren-Nachnamen (Standard: fett)
+\renewcommand{\bibfnfont}{}			% Autoren-Vornamen (Standard: fett)
+\renewcommand{\bibelnfont}{}			% Hrsg-Nachnamen (Standard: fett)
+\renewcommand{\bibefnfont}{}			% Hrsg-Vornamen (Standard: fett)
+\renewcommand{\bibtfont}{\textit}	% Titel (B�cher)
+\renewcommand{\bibbtfont}{\textit}	% Titel (Sammelwerke)
+\renewcommand{\bibjtfont}{\textit}	% Titel (Zeitschriften)
+\renewcommand{\bibpldelim}{(}			% runde Klammern bei...
+\renewcommand{\bibprdelim}{)}			% ...Zeitschriften (Jahr)
+\renewcommand{\ajtsep}{}				% kein Komma nach Zs-Titeln
+\renewcommand{\biburlprefix}{\jblangle\textsc{url: }}	% Klammer und Text vor einer URL (Standard: "URL: ")
+
+\renewcommand{\bib at heading}{\addsec[Literaturverzeichnis]{Kommentiertes Literaturverzeichnis}}
+
+%%%%% Hyperref %%%%%
+\usepackage{hyperref}
+\hypersetup{%
+breaklinks=true,%
+colorlinks=true,%
+linkcolor=dkblue,%
+urlcolor=dkblue,%
+citecolor=dkblue,%
+pdftitle={JabRef \versionnr{} Benutzerhandbuch},%
+pdfsubject={Einf�hrung in die Benutzung von JabRef},%
+pdfkeywords = {BibTeX, Bibliographie, Literaturverwaltung},%
+pdfauthor={\FileAuthor},%
+pdfstartview=FitH,%
+bookmarksopen=true,%
+bookmarksopenlevel=1,%
+}
+\urlstyle{rm}
+
+\hyphenation{
+LaTeX
+BibTeX
+Da-tei-na-men
+Me-n�-be-feh-le
+For-mat-erken-nung% verhindert Trennung "Formater-kennung"
+Werk-zeug-leis-te
+}
+
+\makeatother
+
+%%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%%
+\begin{document}
+
+\subject{\includegraphics[scale=.5]{../../images/JabRef-icon-48}}
+
+
+\title{\jabrefversion{}\\
+Benutzerhandbuch}
+
+
+\author{Dominik Wa�enhoven\\
+{\normalsize (\href{mailto:domwass at users.sourceforge.net}{domwass at users.sourceforge.net})}}
+
+
+\date{\small \versiondate}
+
+\maketitle
+
+\begin{abstract}
+\jabref ist eine grafische Java-Anwendung zur Bearbeitung von \bibtex{}-Dateien
+(.bib). Mit \jabref k�nnen Literaturangaben in Gruppen organisiert
+und mit einem einfachen Klick die Ansicht auf eine einzelne Gruppe,
+eine Schnittmenge von Gruppen oder die Gesamtmenge mehrerer Gruppen
+eingegrenzt werden. \jabref kann Literaturangaben sortieren (f�r
+alle Standard-\bibtex{}-Felder) und automatisch \bibtex{}-Keys erzeugen.
+Auch Links zu PDF-Dateien oder Webseiten k�nnen mit \jabref einfach
+erstellt werden.
+
+\jabref kann verschiedene Dateiformate importieren und exportieren,
+au�erdem k�nnen die Exportfilter angepasst werden. \jabref kann
+auch von der Kommandozeile gestartet werden, um von einem Importformat
+in ein Exportformat zu konvertieren, ohne die grafische Benutzeroberfl�che
+zu starten.
+\end{abstract}
+\begin{quote}
+\begin{spacing}{0.7}
+\begin{center}{\scriptsize Copyright \textcopyright{} 2005--2010, Dominik
+Wa�enhoven}
+\end{center}
+{\scriptsize Dieses Handbuch steht unter einer Creative Commons Namensnennung"=Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz (CC-by-sa). Die Lizenzbedingungen k�nnen unter
+\href{http://creativecommons.org/licenses/by-sa/3.0/de/}{http://creativecommons.org/licenses/by-sa/3.0/de}
+eingesehen werden.\par}\end{spacing}
+
+\end{quote}
+\thispagestyle{empty}
+
+\newpage
+\dosecttoc[e]
+\faketableofcontents{}
+
+\newpage
+
+\section{Einleitung}
+\secttoc
+
+\subsection{�ber dieses Handbuch}\label{subsec:about}
+
+Dieses Handbuch will eine kurze Einf�hrung zu den n�tzlichsten Funktionen
+von \jabref bieten, ohne dabei eine ersch�pfende Beschreibung aller
+Funktionalit�ten dieser Software zu liefern. \emph{}\jabref ist
+das Ergebnis der Verschmelzung von \emph{BibKeeper} und \emph{JBibtexManager}.
+Weitere Informationen gibt es im Programm selbst unter \menu{Hilfe} \msep{} \menu{Inhalt}
+sowie im Internet unter \url{http://jabref.sourceforge.net}. Wer dann immer noch keine Antwort auf seine Frage oder keine L�sung zu seinem Problem hat, kann �ber die Foren oder die Mailingliste auf der Projektseite bei Sourceforge weitere Hilfe bekommen (siehe dazu den Abschnitt \nameref{sec:faq}).
+
+Die Anleitungen basieren auf den Hilfeseiten des Programms. Da dieses
+Handbuch und die Hilfeseiten unabh�ngig voneinander gepflegt und aktualisiert
+werden, m�ssen die Beschreibungen jedoch nicht immer �bereinstimmen.
+Im Zweifel sind die Hilfeseiten des Programms aktueller als die hier
+vorgelegte Beschreibung.
+
+Am Anfang jedes Abschnitts sollte~(!) zun�chst stehen, wie man zur
+entsprechenden Funktion gelangt (d.\,h. �ber welches Men� und mit
+welchem Tastenk�rzel). Men�-Eintr�ge werden in einer kursiven, dunkelroten
+Schrift dargestellt (Beispiel: \menu{Men�} \msep{} \menu{Untermen�}).
+Besondere Hinweise und Tipps werden in einem gelb hinterlegten Kasten
+mit dunkelblauer Schrift dargestellt. Hyperlinks sind ebenfalls dunkelblau
+und anklickbar~-- das gilt sowohl f�r die Navigation innerhalb des
+Dokuments als auch f�r Links ins Internet.
+
+Wenn Ihnen in diesem Handbuch Fehler auf"|fallen oder wenn Sie Anregungen zum Handbuch haben, w�rde ich mich �ber eine kurze Nachricht per \href{mailto:domwass at users.sourceforge.net}{E-Mail} freuen. �ber den Stand und die einzelnen Versionen dieses Handbuchs gibt der Abschnitt ">\nameref{RevisionHistory}"< Auskunft.
+
+\subsection{Einf�hrung in \bibtex{}}
+
+\label{BibtexHelp}\tip[]{\jabref hilft Ihnen bei der Arbeit mit
+Ihren \bibtex{}-Dateien, aber es m�ssen dennoch Regeln beachtet werden,
+wenn Sie Ihre Eintr�ge bearbeiten. Nur so kann sichergestellt werden,
+dass \bibtex{} Ihre Datei richtig verarbeiten kann.}
+
+\noindent Im Folgenden k�nnen nur einige allgemeine Hinweise gegeben werden. Ausf�hrlichere Einf�hrungen und weitere Erl�uterungen zu \bibtex{} finden Sie bei den im \hyperlink{bibliography}{kommentierten Literaturverzeichnis} aufgef�hrten Beitr�gen.
+
+\subsubsection{\bibtex{}-Eintragstypen}
+\label{Eintragstypen}
+Je nachdem, ob sie ein Buch, einen Zeitschriftenartikel, einen Sammelband oder ein anderes Dokument referenzieren m�chten, h�lt \bibtex{} unterschiedliche Eintragstypen bereit. Hier folgt eine kurze Aufstellung der meist gebrauchten Eintragstypen.\footnote{Vgl. \cite[12--17]{Markey2005}; \cite[7--9]{btxdoc}.} Manche Paktete (wie ">jurabib"<) stellen weitere Eintragstypen zur Verf�gung, die Sie nat�rlich auch in \jabref verwenden k�nnen (mehr dazu im Abschnitt \nameref{CustomEntriesHelp}) [...]
+
+\begin{itemize}
+\item \emph{@article}\\
+Ein Artikel in einer Zeitschrift.
+\item \emph{@book}\\
+Ein Buch, von einem Verlag ver�ffentlicht.
+\item \emph{@booklet}\\
+Ein gedrucktes und gebundenes Buch ohne Verlag.
+\item \emph{@conference}\\
+Siehe \emph{@inproceedings}
+\item \emph{@inbook}\\
+Ein Teil eines Buches, z.\,B. ein Kapitel oder Abschnitt.
+\item \emph{@incollection}\\
+Ein Beitrag aus einem Buch, z.\,B. einem Sammelband.
+\item \emph{@inproceedings}\\
+Ein Artikel aus einem Tagungsbericht, der nicht zwangsl�ufig in einem Verlag erschienen ist.
+\item \emph{@manual}\\
+Eine Dokumentation oder ein Handbuch.
+\item \emph{@mastersthesis}\\
+Eine Diplom-/Magisterarbeit.
+\item \emph{@misc}\\
+Dieser Typ kann benutzt werden, wenn nichts anderes passt.
+\item \emph{@phdthesis}\\
+Eine (unver�ffentlichte) Dissertation.
+\item \emph{@proceedings}\\
+Ein Tagungsbericht.
+\item \emph{@techreport}\\
+Von einer Universit�t oder Institution (normalerweise in einer Reihe) ver�ffentlichter Bericht.
+\item \emph{@unpublished}\\
+Ein Dokument mit Autor und Titel, unver�ffentlicht.
+\end{itemize}
+
+\subsubsection{\bibtex{}-Felder}
+
+Es gibt viele unterschiedliche Felder in \bibtex{} und einige zus�tzliche Felder, die Sie in \jabref einsetzen k�nnen.
+Grunds�tzlich k�nnen Sie \LaTeX{}-Befehle in Feldern, die Text beinhalten, einsetzen. \bibtex{} wird Ihr Literaturverzeichnis automatisch formatieren und je nach \bibtex{} style (Stildatei .bst) Gro�buchstaben verkleinern. Um sicherzustellen, dass Anfangsbuchstaben gro� bleiben, m�ssen Sie die W�rter in geschweifte Klammern einschlie�en, wie im Wort \{Belgien\}.\footnote{Die meisten deutschen \bibtex{}-Stile behalten die Gro�buchstaben ohnehin bei.}
+
+Hinweise zu einigen Feldtypen:
+\begin{itemize}
+\item \emph{Bibtexkey}\\
+Eine eindeutige Bezeichnung, um sich in \LaTeX{}-Dokumenten auf den Eintrag beziehen zu k�nnen. Beachten Sie, dass der Bibtexkey genau mit dem Verweis im \LaTeX{}-Dokument �bereinstimmen muss (auch die Gro�-/Kleinschreibung).
+  \item \emph{address}\\
+    Der Ort des \emph{Verlags} oder einer anderen Institution.
+  \item \emph{annote}\\
+    Eine Anmerkung.
+Dieses Feld wird von den Standard-Bibliographiestilen nicht verwendet, kann aber bei einigen Stilen benutzt werden, um eine kommentierte Literaturliste zu erstellen.
+  \item \emph{author}\\
+    Dieses Feld sollte alle Autoren Ihres Eintrags enthalten. Die Namen werden durch das Wort \texttt{and} getrennt, auch wenn es mehr als zwei Autoren gibt. Jeder Name kann in zwei gleichwertigen Formen notiert werden:
+\begin{itemize}
+\item Donald E. Knuth \emph{oder} Knuth, Donald E.
+\item Eddie van Halen \emph{oder} van Halen, Eddie
+\end{itemize}
+Die zweite Form sollte f�r Autoren mit zwei oder mehr Nachnamen benutzt werden, um zwischen dem mittleren und dem Nachnamen zu unterscheiden.
+  \item \emph{booktitle}\\
+    Der Titel eines Buches, aus dem ein Teil zitiert wird. Falls Sie ein Buch zitieren wollen, nehmen Sie f�r den Titel stattdessen das \texttt{title}-Feld.
+  \item \emph{chapter}\\
+    Eine Kapitelnummer (oder Abschnittsnummer oder sonstige Nummer).
+  \item \emph{crossref}\\
+    Der \texttt{key} eines Eintrags, auf den ein Querverweis gesetzt wird. Damit lassen sich beispielsweise die Daten eines Sammelbandes in einem Eintrag f�r einen Aufsatztitel wiederverwenden, ohne sie bei jedem Aufsatztitel explizit einzutragen. Die Funktionalit�t von \texttt{crossref} ist jedoch nicht in jedem Fall praktikabel.
+  \item \emph{edition}\\
+    Die Auflage eines Buchs, z.\,B. \texttt{Zweite}. Die Ordnungszahl sollte mit einem Gro�buchstaben beginnen; sie wird von den Standardstilen gegebenenfalls in Kleinbuchstaben umgewandelt. Manche Stile verlangen hier eine Ziffer.
+  \item \emph{editor}\\
+    Dieses Feld ist analog zu dem \emph{author}-Feld.
+Falls zus�tzlich ein \texttt{author}-Feld angegeben wird, bezeichnet das \texttt{editor}-Feld den Herausgeber des Buches oder des Sammelbandes, in dem die referenzierte Literatur erschienen ist.
+  \item \emph{howpublished}\\
+    Die Art, wie ein Werk ver�ffentlicht wurde (meist au�erhalb eines Verlags). Das erste Wort sollte mit einem Gro�buchstaben beginnen.
+  \item \emph{institution}\\
+    Die f�rdernde Institutions eines technischen Reports.
+  \item \emph{journal}\\
+    Der Name einer Zeitschrift.
+Mit Hilfe von ">Strings"< k�nnen Zeitschriftentitel abgek�rzt werden. Zum Erstellen eines solchen Strings k�nnen Sie den \nameref{StringEditorHelp} benutzen oder die Funktionalit�t zur \nameref{JournalAbbreviations} %Abk�rzung von Zeitschriftentiteln 
+verwenden.
+  \item \emph{key}\\
+    Dieses Feld wird zur Sortierung, zur Erstellung von Labels (falls kein \texttt{author} vorhanden ist) und f�r Querverweise (\texttt{crossref}) verwendet. Verwechseln Sie dieses Feld nicht mit dem \texttt{Bibtexkey}, der f�r die \texttt{\textbackslash cite}-Kommandos gebraucht wird und am Anfang jedes Eintrags erscheint (im \bibtex{}"=Quelltext).
+  \item \emph{month}\\
+    Der Monat, in dem ein Werk ver�ffentlicht oder geschrieben wurde. Benutzen Sie am besten die englischen Abk�rzungen (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec).
+  \item \emph{note}\\
+    Zus�tzliche Informationen. Das erste Wort sollte mit einem Gro�buchstaben beginnen.
+  \item \emph{number}\\
+Die Nummer einer Zeitschrift, eines technischen Reports oder eines Bandes innerhalb einer Reihe (\texttt{series}). Zeitschriften haben oft eine Band- und Heftz�hlung, der Band entspricht dem \texttt{volume}-, das Heft dem \texttt{number}-Eintrag.
+  \item \emph{organization}\\
+    Die Organisation, die einen Konferenzband f�rdert.
+  \item \emph{pages}\\
+    Die Seitenzahl(en) oder der Seitenzahlbereich, z.\,B. \texttt{42-111} oder \texttt{7,41, 73-97} or \texttt{43+} (das \texttt{+} deutet auf folgende Seiten, die nicht einen einfachen Bereich umfassen).
+Ein einfacher Bindestrich (wie in \texttt{7-33}) wird in einen doppelten Bindestrich (\texttt{-{-}}) verwandelt, der in der Ausgabe als bis-Strich erscheint (also 7--33).
+  \item \emph{publisher}\\
+    Der Name des Verlags.
+  \item \emph{school}\\
+    Der Name einer Universit�t, an der eine Abschlussarbeit~-- z.\,B. eine Dissertation (\texttt{phdthesis}) oder Magisterarbeit (\texttt{mastersthesis})~-- geschrieben wurde.
+  \item \emph{series}\\
+    Der Name einer Reihe, in der ein Buch erschienen ist.
+Falls die B�cher einer Reihe nummeriert sind, wird die entsprechende Nummer im Feld \texttt{number} angegeben.
+  \item \emph{title}\\
+    Der Titel des Werkes. Die Gro�- und Kleinschreibung kann von den Bibliographiestilen und der benutzten Sprache abh�ngig sein (wobei sie mit deutschen Bibliographiestilen beibehalten wird). Worte, die auch bei Verwendung englischer Bibliographiestile gro� geschrieben werden sollen, m�ssen in geschweifte Klammern eingefasst werden (z.\,B. \texttt{A \{German\} title}).
+  \item \emph{type}\\
+    Der Typ eines technischen Reports, z.\,B. ">Research Note"<. Bei \emph{jurabib} wird dieses Feld auch f�r den Typ einer Abschlussarbeit verwendet.
+  \item \emph{volume}\\
+    Der Band (Jahrgang) einer Zeitschrift oder der Band eines Buches in einem mehrb�ndigen Werk.
+  \item \emph{year}\\
+    Das Jahr der Ver�ffentlichung (oder bei einem unver�ffentlichten Werk das Jahr, in dem es geschrieben wurde). Normalerweise sollte im \texttt{year}-Feld nur eine vierstellige Zahl stehen, z.\,B. \texttt{1984}. Die Standardstile k�nnen aber auch mit \texttt{year}-Eintr�gen umgehen, deren letzte vier Zeichen (ausgenommen Satzzeichen) Ziffern sind, beispielsweise \texttt{(um 1984)}.
+    Dieses Feld wird f�r die meisten Eintragstypen ben�tigt.
+\end{itemize}
+
+\subsubsection{Weitere Felder}
+
+Bibliographie-Stile f�r \bibtex{} wurden von vielen Leuten entwickelt,
+und einige haben weitere Felder erstellt. Es folgt eine kleine Auswahl.
+
+Feldnamen, die mit einem Stern* versehen sind, werden nicht direkt von \jabref unterst�tzt, k�nnen aber eingebunden werden (mehr dazu im Abschnitt \nameref{CustomEntriesHelp}).
+
+\begin{itemize}
+  \item \emph{affiliation*}\\
+    Die Zugeh�rigkeit eines Autors.
+  \item \emph{abstract}\\
+    Die Zusammenfassung eines Werks.
+  \item \emph{contents*}\\
+    Ein Inhaltsverzeichnis.
+  \item \emph{copyright*}\\
+    Copyright-Informationen.
+  \item \emph{doi}\\
+    Der \emph{Digital Object Identifier} ist eine permanente Kennung von Dokumenten.
+  \item \emph{eid}\\
+    Der EID \emph{(Electronic identifier)} wird f�r elektronische Zeitschriften benutzt, die auch im Druck erscheinen. Mit dieser Nummer, die die Seitenzahlen ersetzt, l�sst sich der Artikel in der gedruckten Ausgabe finden. Der EID wird manchmal auch \emph{citation number} genannt.
+  \item \emph{ISBN*}\\
+    Die Internationale Standardbuchnummer.
+  \item \emph{ISSN*}\\
+    Die Internationale Standardseriennummer (f�r Zeitschriften).
+  \item \emph{keywords}\\
+    Stichworte~-- sie k�nnen in \jabref gut zum Gruppieren verwendet werden.
+  \item \emph{language*}\\
+    Die Sprache des Werks.
+  \item \emph{location*}\\
+    Der Ort, der mit einem Werk in Verbindung steht, z.\,B. die Stadt, in der eine Konferenz stattgefunden hat.
+  \item \emph{LCCN*}\\
+    Die \emph{Library of Congress Call Number}.  Das Feld kann auch \texttt{lib-congress} hei�en.
+  \item \emph{mrnumber*}\\
+    Die \emph{Mathematical Reviews}-Nummer.
+  \item \emph{price*}\\
+    Der Preis.
+  \item \emph{size*}\\
+    Die physische Gr��e eines Dokuments.
+  \item \emph{url}\\
+    Der \emph{Uniform Resource Locator} (URL, ">einheitlicher Quellenanzeiger"<), der auf eine Webseite im Internet verweist.
+  \item \emph{urldate}\\
+    Das Datum, an dem eine Webseite zuletzt besucht wurde.
+\end{itemize}
+
+
+\clearpage 
+\section{Installation}
+\secttoc
+
+\subsection{System-Voraussetzungen}
+\label{subsec:System-Voraussetzungen}
+\jabref ist in Java programmiert und somit betriebssystemunabh�ngig,
+kann prinzipiell also unter Windows, Mac OS X, Linux und anderen UNIX-Systemen
+betrieben werden. Voraussetzung ist allerdings, dass die \emph{Java
+Virtual Machine} mindestens in der Version~1.5 installiert ist.\footnote{Bis zur Version 2.2 von \jabref reichte Java~1.4.2 aus.}
+Sie ist kostenlos und kann unter \url{http://java.sun.com/} heruntergeladen
+werden. Im Normalfall sollte das \emph{Java Runtime Environment} (JRE) ausreichen;
+nur wenn Sie \jabref kompilieren m�chten, ben�tigen Sie das \emph{Java
+Development Kit} (JDK).
+
+
+\subsection{Windows}
+
+
+\subsubsection{Installer (msi)}
+
+\jabref gibt es im Windows Installer-Format (\texttt{.msi}). Ein
+Doppelklick auf die MSI-Datei installiert \jabref und f�gt dem
+Startmen� eine Verkn�pfung hinzu. Falls Java nicht installiert ist,
+wird eine Warnmeldung ausgegeben.%
+\footnote{Die Windows-Installation wurde von Dale Visser erstellt, der dazu
+die folgenden \emph{Open-Source-Tools} benutzt hat: JSmooth, ein \texttt{.exe}
+wrapper f�r Java-Anwendungen (\url{http://jsmooth.sf.net/}); Wix,
+ein Tool zum Kompilieren von MSI-Dateien aus einer XML-Spezifikation
+(\url{http://wix.sf.net/}).%
+}
+
+
+\subsubsection{Batch-Datei (jar)}
+\label{subsub:jar}
+Wenn Sie die ausf�hrbare jar-Datei (\texttt{.jar}) heruntergeladen
+haben, probieren Sie zun�chst, ob ein Doppelklick darauf das Programm
+startet~-- dies funktioniert zumindest auf einigen Systemen. Falls
+\jabref nicht direkt startet (Windows also nicht wei�, was es mit
+einer jar-Datei anfangen soll), fahren Sie folgenderma�en fort:
+
+Erstellen Sie in dem Ordner, in dem Sie die Datei \emph{JabRef.jar}
+abgelegt haben, eine Batch-Datei mit dem Namen \emph{jabref-start.bat}.
+Diese Datei soll nur eine Zeile enthalten:
+
+\begin{lstlisting}
+start javaw -jar JabRef.jar
+\end{lstlisting}
+Mit einem Doppelklick auf die Batch-Datei starten Sie \jabref.
+
+
+\subsection{Starten von der Kommandozeile}\label{subsec:Starten-Kommandozeile}
+
+\begin{enumerate}
+\item mit dem \emph{Java Runtime Environment}:
+\begin{lstlisting}
+jre -new -jar <Pfad zur jar-Datei>
+\end{lstlisting}
+oder
+\begin{lstlisting}
+jrew -new -jar <Pfad zur jar-Datei>
+\end{lstlisting}
+\item mit dem \emph{Java Development Kit}:
+\begin{lstlisting}
+java -jar <Pfad zur jar-Datei>
+\end{lstlisting}
+\end{enumerate}
+Es wird empfohlen, \jabref mit Java 1.5 zu benutzen und die Option \lstinline{-Dswing.aatext=true}
+vor der Option \lstinline{-jar} einf�gen, um das Benutzen von Anti-Alias-Schriften
+im Programm zu erm�glichen.
+
+Die jar-Datei, die \jabref enth�lt, kann entpackt werden mit den
+Kommandos 
+\begin{lstlisting}
+jar xf <Pfad zur jar-Datei>
+\end{lstlisting}
+bzw. 
+\begin{lstlisting}
+jar xf <Pfad zur jar-Datei> <Liste der Dateien, die entpackt werden sollen>
+\end{lstlisting}
+Das Entpacken der jar-Datei ist nicht notwendig, um das Programm zu
+starten!
+
+Weitere Hinweise zur Installation finden Sie in der Datei INSTALL
+(zum Kompilieren aus den \emph{sourcen}) und auf der \href{http://jabref.sourceforge.net}{\jabref-Homepage}.
+
+
+\clearpage 
+\section{Funktionen}
+\secttoc
+\bigskip
+
+\noindent \label{JabRefHelp}\jabref ist ein Programm zur Verwaltung von
+\bibtex{}-Dateien. Es benutzt kein eigenes Dateiformat, d.\,h. dass
+Sie Ihre Dateien direkt im \bibtex{}-Format (Dateiendung \texttt{.bib})
+laden und speichern. Sie k�nnen aber auch bibliographische Datenbanken
+anderer Formate in \jabref importieren.
+
+\jabref unterst�tzt Sortier- und Suchfunktionen, um einen �berblick
+�ber den Inhalt Ihrer Datei zu bekommen. Sie k�nnen der Datei ganz
+einfach neue Eintr�ge hinzuf�gen, ohne sich daran erinnern zu m�ssen,
+welche Informationen ben�tigt werden. Au�erdem kann \jabref \bibtex{}-Keys
+automatisch generieren. \jabref ist sehr n�tzlich, wenn Sie \bibtex{}
+oder CiteMaker verwenden, kann aber auch f�r diejenigen sinnvoll sein,
+die andere Bibliographie-Systeme benutzen oder schlicht und einfach
+ihre Literaturquellen organisieren wollen.
+
+\subsection{Das Hauptfenster}
+
+\tip[]{Die meisten Men�funktionen, auf die im Folgenden hingewiesen
+wird, haben Tastenk�rzel, und viele Funktionen k�nnen �ber die Werk\-zeug\-leiste
+aufgerufen werden.}
+\label{BaseFrameHelp}Im Hauptfenster, in dem Sie mit Ihrer Datei
+arbeiten, befindet sich unter der Men�leiste und der Werkzeugleiste
+die Tableiste mit Tabs (Reitern) f�r jede Ihrer ge�ffneten Dateien.
+Wenn Sie einen dieser Tabs anklicken, erscheint eine Tabelle, die
+alle Datens�tze und einige der Datenfelder auf"|listet.
+
+Mit einem Doppelklick auf eine Tabellenzeile k�nnen Sie den Inhalt bearbeiten (der \nameref{EntryEditorHelp} wird ge�ffnet). Sie k�nnen mit den Pfeiltasten innerhalb der Tabelle navigieren. Wenn Sie einen Buchstaben dr�cken, springen Sie zu dem ersten Eintrag, der mit diesem Buchstaben beginnt (abh�ngig von der Spalte, nach der Sie die Tabelle sortiert haben).
+
+Die Sortierung der Tabelle erfolgt nach einem Feld Ihrer Wahl. Sie k�nnen das Standardverhalten unter \menu{Optionen \msep{} Einstellungen \msep{} Tabellenansicht} angeben. Um die Sortierreihenfolge schnell zu �ndern, klicken Sie einfach auf die Kopfzeile einer Spalte; damit haben Sie das prim�re Sortierkriterium definiert. Klicken Sie erneut auf den Spaltenkopf, um die Sortierrichtung umzukehren. Ein weiterer Klick sorgt daf�r, dass die Spalte nicht mehr zur Sortierung herangezogen wird [...]
+
+Welche Felder (Spalten) in der Tabelle angezeigt werden sollen, k�nnen
+Sie im \menu{Einstellungs}-Dialog ausw�hlen. Auch die Breite der
+Tabellenspalten kann eingestellt werden, indem man die Trennlinie
+zwischen den Spaltenk�pfen anklickt und nach links oder rechts verschiebt.
+Im \menu{Einstellungs}-Dialog k�nnen Sie festlegen, ob die Tabelle
+an die Bildschirmgr��e angepasst werden soll oder nicht. Aktivieren
+Sie diese Funktion, um sicherzustellen, dass Sie die gesamte Tabelle
+sehen k�nnen. Deaktivieren Sie diese Funktion, wenn mehr Informationen
+dargestellt werden sollen.
+
+Die Farbanzeige kann ebenfalls im \menu{Einstellungs}-Dialog ein-
+und ausgeschaltet werden. Die Farbanzeige illustriert, ob Ihre Daten
+vollst�ndig sind, indem sie die Zellen wie folgt darstellt:
+
+\begin{itemize}
+\item Eine \colorbox{red}{\textcolor{white}{rote}} Zelle in der linken Spalte kennzeichnet
+einen unvollst�ndigen Eintrag.
+\item Eine \colorbox{yellow}{gelbe} Zelle in der linken Spalte kennzeichnet
+einen Eintrag, der nicht alle ben�tigten Felder selbst enth�lt, der
+aber einen Querverweis enth�lt.
+\item Eine \colorbox{blue}{\textcolor{white}{blaue}} Zelle kennzeichnet ein ben�tigtes Feld.
+\item Eine \colorbox{green}{gr�ne} Zelle kennzeichnet ein optionales Feld.
+\item Eine farblose (wei�e) Zelle kennzeichnet ein Feld, das von \bibtex{}
+f�r diesen Eintragstyp nicht benutzt wird. Das Feld kann selbstverst�ndlich
+in \jabref bearbeitet werden.
+\end{itemize}
+
+\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
+einem Dialog, in dem Sie den Eintragstyp aus einer Liste w�hlen k�nnen.
+Um diesen Dialog zu umgehen, gibt es auch eigene Men�punkte f�r jeden
+Eintragstyp und au�erdem Tastenk�rzel f�r die g�ngigsten Typen.
+
+Wenn ein Eintrag hinzugef�gt wird, wird standardm��ig ein Editor f�r
+den Eintrag ge�ffnet. Sie k�nnen dieses Verhalten im \menu{Einstellungs}-Dialog
+abstellen.
+
+\tip[]{Wir empfehlen, sich die Tastenk�rzel f�r die Eintragstypen
+einzupr�gen, die Sie am h�ufigsten benutzen, z.\,B. STRG-SHIFT-A
+f�r einen Zeitschriftenaufsatz \emph{(article)}.}
+
+
+\subsubsection{Einen Eintrag bearbeiten}
+
+Um den \nameref{EntryEditorHelp} zur Bearbeitung
+eines existierenden Eintrags zu �ffnen, klicken Sie einfach doppelt
+auf die entsprechende Zeile oder markieren den Eintrag
+und dr�cken auf ENTER.
+
+
+\subsubsection{Einen \bibtex{}-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
+(eine Art Abk�rzung) zu verwenden, umschlie�en Sie den Namen des Strings
+mit je einem \#, z.\,B.
+
+\begin{lstlisting}
+#jan# 1997
+\end{lstlisting}
+was interpretiert wird als String mit dem Namen \texttt{jan} gefolgt
+von \texttt{1997}. Vergleichen Sie dazu auch die Hinweise zum \nameref{StringEditorHelp}.
+
+
+\subsection{\texorpdfstring{Eintrags"=Editor}{Eintrags-Editor}}
+
+\label{EntryEditorHelp}
+
+\begin{quote}
+\emph{Ge�ffnet wird der Eintrags"=Editor im Hauptfenster durch einen
+Doppelklick auf die linke Spalte eines Eintrags oder durch
+Dr�cken auf ENTER. Der Eintrags-Editor wird geschlossen, indem man
+auf ESC dr�ckt.}
+\end{quote}
+Im Eintrags-Editor k�nnen Sie alle relevanten Informationen eines
+Eintrags festlegen. Der Editor �berpr�ft den Eintragstyp und zeigt
+alle ben�tigten und optionalen Felder f�r den Gebrauch mit \bibtex{}
+an. Dar�ber hinaus gibt es einige Felder, die \emph{Allgemeine Felder}
+genannt werden und f�r alle Eintragstypen gelten.
+
+Sie k�nnen die Felder, die f�r die einzelnen Eintragstypen als ben�tigt
+und optional angesehen werden, und auch die Allgemeinen Felder anpassen.
+N�heres dazu erfahren Sie im Abschnitt \nameref{CustomEntriesHelp}.
+
+\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},
+\emph{Abstract} und \emph{\bibtex{}"=Quelltext}, wobei \emph{General}
+und \emph{Abstract} vom Benutzer angepasst werden k�nnen (siehe dazu
+Abschnitt~\ref{GeneralFields}). In den ersten drei Panels k�nnen
+Sie mit TAB und SHIFT-TAB zwischen den einzelnen Feldern hin- und
+herwechseln. Zu einem anderen Panel gelangen Sie, indem Sie auf die
+Tabs klicken. Mit den folgenden Tastaturk�rzeln k�nnen Sie ebenfalls
+zwischen den Panels navigieren:
+
+\begin{itemize}
+\item STRG-TAB oder STRG-+ wechselt zum Panel rechts vom aktuellen Panel,
+\item STRG-SHIFT-TAB oder STRG-{-} (MINUS) wechselt dementsprechend zum
+Panel links vom aktuellen Panel.
+\end{itemize}
+Au�erdem k�nnen Sie zum n�chsten oder vorherigen Eintrag wechseln,
+indem Sie >>STRG-SHIFT-$\downarrow$<< bzw. >>STRG-SHIFT-$\uparrow$<<
+oder die Pfeil-Buttons in der linken Toolbar dr�cken.
+
+Das Panel \emph{\bibtex{}"=Quelltext} zeigt, wie der Eintrag aussehen
+wird, wenn die Datei im \texttt{bib}-Format gespeichert wird. Wenn
+Sie wollen, k�nnen Sie den \bibtex{}"=Quelltext direkt bearbeiten.
+Sobald Sie zu einem anderen Panel wechseln, STRG-S dr�cken oder den
+Eintrags-Editor schlie�en, wird \jabref versuchen, den Inhalt des
+Quelltext"=Panels zu analysieren. Falls dabei Probleme auftreten, werden
+Sie benachrichtigt und erhalten die M�glichkeit, den Eintrag noch
+einmal zu �berarbeiten oder den vorherigen Inhalt wiederherzustellen. (N�here
+Einzelheiten dazu finden Sie im Abschnitt \nameref{subsub:feldkonsistenz}.)
+Wenn in den \menu{Einstellungen} (unter \menu{Allgemein}) die Option
+\menu{Quelltext standardm��ig anzeigen} gew�hlt wurde, wird das Quelltext"=Panel
+beim �ffnen des Eintrags-Editors als erstes angezeigt. Wenn Sie lieber
+den Quelltext bearbeiten als die anderen Panels zu benutzen, sollten
+Sie diese Option w�hlen.
+
+\tip{Wenn Ihre Datei Felder enth�lt, die \jabref nicht kennt,
+erscheinen diese im Quelltext"=Panel.}
+
+\tip[Und noch ein Tipp: ]{Die \emph{PDF-} und \emph{URL}-Felder unterst�tzen
+Drag \& Drop. Sie k�nnen z.\,B. ein URL aus Ihrem Browser dort einf�gen.}
+
+
+\subsubsection{�berpr�fung der Feldkonsistenz}
+\label{subsub:feldkonsistenz}
+Wenn der Inhalt eines Feldes ge�ndert wird, �berpr�ft \jabref,
+ob der neue Inhalt akzeptiert werden kann. Bei Feldern, die von \bibtex{}
+genutzt werden, wird der Inhalt zum einen auf die richtige Klammerung
+mit geschweiften Klammern, aber auch auf die Benutzung des Zeichens
+\texttt{\#} hin �berpr�ft. Das >>hash<<-Symbol (im Deutschen oft
+>>Doppelkreuz<< oder >>Raute<< genannt) darf \emph{nur} paarweise
+benutzt werden, um damit den Namen eines \bibtex{}-Strings einzuschlie�en.
+Beachten Sie, dass \jabref nicht �berpr�ft, ob der angef�hrte String
+tats�chlich vorhanden ist, da der \bibtex{}-Stil, den Sie benutzen, 
+eine beliebige Anzahl von Strings definieren kann, die \jabref nicht
+kennt.
+
+Falls die Inhalte nicht akzeptabel sind, wird das Feld mit roter Farbe
+hinterlegt, was auf einen Fehler hindeutet. In diesem Fall werden
+die �nderungen nicht gespeichert.
+
+
+\subsection{Integrit�tspr�fung}
+
+\begin{quote}
+\emph{Erreichbar �ber das Men� \menu{Extras \msep{} Datenbank durchsuchen
+\msep{} �berpr�fung der Integrit�t}.}
+\end{quote}
+Mit dieser Funktion �berpr�ft \jabref alle Eintr�ge auf deren G�ltigkeit
+und versucht Fehler aufzudecken. Mit dem \menu{�berpr�fen}-Button
+kann der Vorgang gestartet werden. Es wird eine Liste mit Hinweisen
+(Info-Icon) und m�glichen Fehlern (Ausrufezeichen-Icon) sowie dem
+entsprechenden \bibtex{}-Key erstellt. Wenn Sie einen Hinweis ausw�hlen,
+erscheint der Inhalt des Feldes, das beanstandet wird. Sie k�nnen
+nun den Feldinhalt ver�ndern und die Ver�nderungen mit Klick auf die
+Schaltfl�che \menu{�bernehmen} speichern.
+
+
+\subsection{\bibtex{}-Keys}
+
+Damit man sich in einem \LaTeX{}-Dokument auf einen Literaturverweis
+beziehen kann, braucht man einen eindeutigen \bibtex{}-Key. Eindeutig
+hei�t, dass er nur einmal vergeben sein darf. Es wird nach Gro�"~
+und Kleinschreibung unterschieden, \texttt{Yared1998} ist also nicht
+identisch mit \texttt{yared1998}. \jabref bietet einige M�glichkeiten,
+um auch bei gr��eren Datenbanken den �berblick �ber die \bibtex{}-Keys
+nicht zu verlieren.
+
+\tip{Falls Sie in einem \LaTeX{}-Dokument mehrere \bibtex{}-Dateien
+einbinden, m�ssen Sie selbst darauf achten, dass in den unterschiedlichen
+Dateien nicht mehrmals derselbe \bibtex{}-Key vergeben ist. Nutzen
+Sie deshalb am besten die Funktion \menu{Extras} \msep{} \menu{Neue Teildatei aus AUX-Datei}.}
+Der einfachste Weg, einen eindeutigen \bibtex{}-Key zu bekommen, ist
+das automatische Erzeugen, das Sie mit der Tastenkombination STRG-G
+oder mit dem Zauberstab-Button im Eintrags-Editor veranlassen k�nnen.
+Falls Sie sich nicht im Eintrags-Editor befinden, werden mit Hilfe
+von STRG-G oder dem Zauberstab-Button aus der Men�leiste f�r alle
+Eintr�ge der Datei \bibtex{}-Keys erzeugt. Falls dabei Keys �berschrieben
+werden, gibt \jabref eine Warnmeldung aus.
+
+Wie die \bibtex{}-Keys aussehen, die \jabref automatisch generiert,
+und wie Sie dieses Aussehen ver�ndern k�nnen, erfahren Sie im Abschnitt~\ref{LabelPatterns} \nameref{LabelPatterns}.
+
+
+\subsection{Suchfunktionen}
+
+\label{SearchHelp}
+\begin{quote}
+\emph{STRG-F �ffnet oder aktiviert den Suchdialog.
+Dr�ckt man mehrmals auf STRG-F, so werden die verschiedenen Suchmodi
+ausgew�hlt. STRG-SHIFT-F �ffnet oder aktiviert den Suchdialog
+und w�hlt gleichzeitig die direkte Suche aus. Bei der direkten Suche
+springt man mit STRG-F oder STRG-SHIFT-F zum n�chsten Treffer.}
+\end{quote}
+
+\subsubsection{Direkte Suche}
+
+Bei der direkten Suche sucht \jabref unmittelbar, wenn Sie einen
+Buchstaben eingeben. Die Statuszeile informiert Sie �ber den Sucherfolg.
+Mit STRG-F oder STRG-SHIFT-F wird zum n�chsten Vorkommen des aktuellen
+Suchbegriffs gesprungen. Falls es keine weiteren Vorkommen gibt, informiert
+die Statuszeile dar�ber. Bei erneuter Wiederholung startet die Suche
+vom Anfang der Datei. Die Suchreihenfolge richtet sich nach der aktuellen
+Sortierung Ihrer Datei. Um die direkte Suche zu verlassen, dr�cken
+Sie ESC oder klicken Sie auf \menu{Zur�cksetzen}.
+
+
+\subsubsection{Normale Suche}
+
+Hierbei sucht das Programm nach allen Vorkommen der W�rter ihres Suchausdrucks, sobald Sie ENTER dr�cken. Nur Eintr�ge, die alle W�rter enthalten, gelten als Treffer. Um nach festen Ausdr�cken zu suchen, m�ssen Sie die W�rter in doppelte Anf�hrungszeichen einfassen. Zum Beispiel findet die Suchanfrage \texttt{progress \textquotedbl marine acquaculture\textquotedbl} Eintr�ge, die sowohl das wort ">progress"< als auch den Ausdruck ">marine acquaculture"< aufweisen. Alle Eintr�ge, die keine [...]
+
+\subsubsection{Suchoptionen}
+
+Der \menu{Einstellungen}-Button im Suchdialog �ffnet ein Men�, in
+dem man mehrere Optionen (de)aktivieren kann: das Beachten von Gro�-
+und Kleinschreibung, das Nutzen regul�rer Ausdr�cke (siehe dazu den Abschnitt ">\nameref{search-regular-expressions}"<) sowie das Ausw�hlen
+der Suchergebnisse.
+
+\tip{Suchen Sie mit der Option \menu{Treffer ausw�hlen} und dr�cken
+anschlie�end STRG-M, so haben Sie alle Treffer markiert (vgl. Abschnitt ">\nameref{MarkingHelp}"<) und k�nnen z.\,B. eine weitere Suche durchf�hren,
+ohne die bisherigen Ergebnisse zu >>verlieren<<.}
+
+\subsubsection{Feldbezeichner und logische Operatoren}
+\label{SearchHelp_advanced}
+
+\tip[Achtung! ]{Die folgenden Hinweise gelten nicht f�r die direkte Suche.}
+Um nur einige bestimmte Felder zu durchsuchen
+und\slash{}oder logische Operatoren im Suchbegriff zu benutzen, wird
+eine spezielle Syntax zur Verf�gung gestellt. Um beispielsweise nach
+Eintr�gen mit dem Autor >>Miller<< zu suchen, geben Sie
+
+\begin{lstlisting}
+author = miller
+\end{lstlisting}
+in das Suchfeld ein. Falls der Suchbegriff Leerzeichen enth�lt, schlie�en
+Sie ihn in Anf�hrungszeichen ein. Benutzen Sie \emph{nie} Leerzeichen
+in dem Feldbezeichner. Mehrere Feldbezeichner werden durch >>|<<
+voneinander getrennt. Um beispielsweise nach Eintr�gen �ber Karl den
+Gro�en zu suchen, geben Sie Folgendes ein:
+
+\begin{lstlisting}
+title|keywords = "Karl der Gro�e"
+\end{lstlisting}
+Sie k�nnen die logischen Operatoren AND, OR und NOT sowie Klammern
+verwenden:
+
+\begin{lstlisting}
+(author = miller OR title|keywords = "Karl der Gro�e") AND NOT author = brown
+\end{lstlisting}
+\ldots{} sucht beispielsweise nach Eintr�gen, in denen entweder der
+Autor >>Miller<< hei�t oder im \emph{title}- oder \emph{keywords}-Feld
+der Begriff >>Karl der Gro�e<< steht; gleichzeitig werden die Eintr�ge
+mit dem Autor >>Brown<< nicht angezeigt.
+
+Das \texttt{=}-Zeichen ist eigentlich eine Abk�rzung f�r >>enth�lt<<
+\emph{(contains)}. Wenn man nach genauen Treffern suchen m�chte, muss
+man \texttt{==} oder \texttt{matches} (>>�bereinstimmen<<) eingeben.
+\texttt{!=} sucht nach Eintr�gen, bei denen der Suchbegriff \emph{nicht}
+enthalten ist. Um nach Eintr�gen eines bestimmten Typs zu suchen,
+gibt es ein Pseudofeld namens \emph{entrytype}:
+
+\begin{lstlisting}
+entrytype = thesis
+\end{lstlisting}
+\ldots{} findet Eintr�ge, deren Typ (wie in der Spalte \emph{Entrytype}
+dargestellt) das Wort >>thesis<< enth�lt (z.\,B. >>phdthesis<<
+und >>mastersthesis<<). Ebenso erlaubt das Pseudofeld \emph{bibtexkey}
+die Suche nach \bibtex{}-Keys, z.\,B.:
+
+\begin{lstlisting}
+bibtexkey = miller2005
+\end{lstlisting}
+
+\subsubsection{Suche mit regul�ren Ausdr�cken}
+\label{search-regular-expressions}
+\verfasser{Pedro J. Aphalo, zuerst ver�ffentlicht im \jabref{}-Wiki in englischer Sprache}
+
+\paragraph{Hintergrund}
+Regul�re Ausdr�cke (kurz ">regex"< f�r engl. ">regular expressions"<) definieren eine Sprache zum Spezifizieren von passendem Text, zum Beispiel bei Suchanfragen. \jabref{} nutzt regul�re Ausdr�cke, wie sie in Java definiert sind. Eine Dokumentation dazu findet sich unter \href{http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html}{http://java.sun.com\slash{}j2se\slash{}1.4.2\slash{}docs\slash{}api\slash{}java\slash{}util\slash{}regex\slash{}Pattern.html}.
+
+\tip[]{Die folgenden Beispiele sind alle in Kleinbuchstaben, damit werden aber auch Gro�buchstaben oder gemischte Varianten gefunden.}
+
+\paragraph{Suche nach Eintr�gen mit leerem oder fehlendem Feld}
+\tip[]{\texttt{.} bezeichnet irgendein Zeichen
+
+\texttt{+} hei�t ein- oder mehrmals}
+\begin{lstlisting}
+author != .+
+\end{lstlisting}
+
+\paragraph{Wortgrenzen beachten}
+\tip[]{\texttt{\textbackslash b} bezeichnet eine Wortgrenze
+
+\texttt{\textbackslash B} hei�t: keine Wortgrenze}
+\begin{lstlisting}
+keywords = \buv\b
+\end{lstlisting}
+findet ">uv"<, aber nicht ">lluvia"< (es findet allerdings ">uv-b"<)
+\begin{lstlisting}
+author = \bblack\b
+\end{lstlisting}
+findet ">black"<, aber weder ">blackwell"< noch ">blacker"<
+
+\begin{lstlisting}
+author == black
+\end{lstlisting} findet ">john black"< nicht, 
+\begin{lstlisting}
+author = \bblack\b
+\end{lstlisting} hingegen schon
+
+\begin{lstlisting}
+author = \bblack\B
+\end{lstlisting}
+findet ">blackwell"< und ">blacker"<, aber nicht ">black"<
+
+\paragraph{Suche mit optionaler Schreibweise}
+
+\tip[]{\texttt{?} bezeichnet keine oder eine Kopie des vorhergehenden Buchstaben
+
+\texttt{{n,m}} hei�t mindestens n, aber nicht mehr als m Kopien des vorhergehenden Buchstaben
+
+\texttt{[ ]} definiert eine Buchstabengruppe}
+
+\begin{lstlisting}
+title =neighbou?r
+\end{lstlisting}
+findet ">neighbour"< und ">neighbor"<, aber auch ">neighbours"< und ">neighbors"<, ">neighbouring"< und ">neighboring"< etc.
+
+\begin{lstlisting}
+title = neighbou?rs?\b
+\end{lstlisting}
+findet ">neighbour"< und ">neighbor"<, auch ">neighbours"< und ">neighbors"< , aber weder ">neighbouring"< noch ">neighboring"<.
+
+\begin{lstlisting}
+author = s[a�]nchez
+\end{lstlisting}
+findet ">sanchez"< und ">s�nchez"<
+
+\begin{lstlisting}
+abstract = model{1,2}ing
+\end{lstlisting}
+findet ">modeling"< und ">modelling"<
+
+\begin{lstlisting}
+abstract = modell?ing
+\end{lstlisting}
+findet ebenfalls ">modeling"< und ">modelling"<
+
+\paragraph{Das Problem von Anf�hrungszeichen (\texorpdfstring{\texttt{"}}{"}) in Suchausdr�cken}
+Sind regul�re Ausdr�cke ausgeschaltet, findet 
+\begin{lstlisting}
+author = {\"O}quist
+\end{lstlisting} nichts, auch wenn der Name in der Datenbank vorkommt. Ebensowenig wird bei aktivierten regul�ren Ausdr�cken 
+\begin{lstlisting}
+author = \{\\\"O\}quist
+\end{lstlisting} irgendetwas finden.
+
+\begin{lstlisting}
+author = \{\\\x22O\}quist
+\end{lstlisting}
+funktioniert bei aktivierten regul�ren Ausdr�cken f�r ">\texttt{\{\textbackslash "{}O\}quist}"<, weil \lstinline{\"} nicht als Aufhebung von \lstinline{"} wirkt, \lstinline{\x22} aber schon (also das Zeichen hexadezimal 22 in der ASCII-Tabelle).
+
+\begin{lstlisting}
+author = Bolh{\`a}r 
+\end{lstlisting}
+funktioniert mit ausgeschalteten regul�ren Ausdr�cken und
+
+\begin{lstlisting}
+author = Bolh\{\\`a\}r 
+\end{lstlisting}
+funktioniert mit aktivierten regul�ren Ausdr�cken.
+
+Einfache Anf�hrungszeichen (\texttt{'}) funktionieren ebenfalls.
+
+Es gibt also anscheinend eine Einschr�nkung, wie \lstinline{"} in der Eingabe behandelt wird, aber Sie k�nnen stattdessen \lstinline{\x22} nutzen, um dieses Problem zu umgehen. (Das Zeichen \lstinline{"} hat eine spezielle Bedeutung: es wird benutzt, um mehrere W�rter zu einer Phrase zu gruppieren, die exakt gefunden werden soll.)
+
+\subsection{Gruppen}
+
+Mit Gruppen k�nnen Sie Ihre \bibtex{}-Datei in einer Baumstruktur
+anordnen, vergleichbar mit einer Dateistruktur in Ordnern und Unterordnern.
+Die beiden Hauptunterschiede sind:
+
+\begin{enumerate}
+\item W�hrend eine Datei auf einer Festplatte immer in genau einem Ordner
+abgelegt ist, kann ein Literatureintrag in \jabref mehreren Gruppen
+angeh�ren.
+\item Gruppen benutzen bestimmte Kriterien, um ihren Inhalt dynamisch zu
+bestimmen. Neue Eintr�ge, die den Kriterien einer Gruppe entsprechen,
+geh�ren automatisch zu dieser Gruppe. Diese Funktionalit�t gibt es
+nicht in �blichen Dateisystemen, wohl aber in einigen E-Mail-Programmen
+(z.\,B. Thunderbird und Opera).
+\end{enumerate}
+Wenn Sie eine Gruppe ausw�hlen, werden die Eintr�ge dieser Gruppe
+angezeigt. Wenn Sie mehrere Gruppen ausw�hlen, werden entweder die
+Eintr�ge angezeigt, die in einer der Gruppen sind (Vereinigung), oder
+solche, die in allen Gruppen vorhanden sind (Schnittmenge)~-- das
+h�ngt von Ihren Einstellungen ab. All dies wird im Folgenden detailliert
+erl�utert.
+
+Gruppendefinitionen sind dateispezifisch; sie werden als \texttt{@COMMENT}-Block
+in der \texttt{bib}-Datei gespeichert und von allen Benutzern gemeinsam
+benutzt. (K�nftige Versionen von \jabref werden m�glicherweise
+benutzerabh�ngige Gruppen unterst�tzen.)
+
+
+\subsubsection{Die Gruppenansicht}
+\begin{quote}
+\emph{Die Gruppenansicht wird im linken Bereich des Bildschirms angezeigt.
+Sie kann mit der Tastenkombination STRG-SHIFT-G oder dem Gruppen-Button
+in der Toolbar ein- und ausgeblendet werden. Die Gruppenansicht verf�gt
+�ber mehrere Schaltfl�chen, aber die meisten Funktionen werden �ber
+das Kontextmen� angesteuert (also mit der rechten Maustaste). Drag\,\&\,Drop
+wird ebenfalls unterst�tzt.}
+\end{quote}
+
+
+\subsubsection{Einige kurze Beispiele}
+
+Sie m�chten vielleicht~\ldots{}
+
+\begin{itemize}
+\item [\ldots]\textbf{einfach nur eine Gruppe anlegen und ihr einige Eintr�ge
+zuordnen}
+
+
+Vergewissern Sie sich, dass die Gruppenansicht eingeschaltet ist.
+Dr�cken Sie auf den Button \menu{Neue Gruppe}, geben einen Namen
+f�r die Gruppe ein und dr�cken \menu{OK}. Sie k�nnen alle Einstellungen
+auf ihren Standardwerten belassen. Jetzt w�hlen Sie die Eintr�ge aus,
+die der Gruppe zugeordnet werden sollen, und ziehen diese mit der
+Maus auf die Gruppe oder w�hlen \menu{Zu Gruppe hinzuf�gen} aus dem
+Kontextmen�. Jetzt k�nnen Sie die Gruppe anklicken, um sich ihren
+Inhalt anzeigen zu lassen (das sollten die Eintr�ge sein, die Sie
+gerade hinzugef�gt haben).
+
+\item [\ldots]\textbf{das Feld} \textbf{\emph{keywords}} \textbf{benutzen,
+um die Eintr�ge zu gruppieren}
+
+
+Stellen Sie sicher, dass die Gruppenansicht aktiviert ist. Dr�cken
+Sie auf den Button \menu{Neue Gruppe}, geben einen Namen f�r die
+Gruppe ein und w�hlen die Option \menu{Dynamisches Gruppieren der Eintr�ge anhand eines Stichworts in einem Feld}.
+Geben Sie das Stichwort, nach dem gesucht werden soll, ein und dr�cken
+\menu{OK}. Jetzt k�nnen Sie die Gruppe anklicken, um sich ihren Inhalt
+anzeigen zu lassen (das sollten alle Eintr�ge sein, deren \emph{keywords}-Feld
+das Stichwort enth�lt, das Sie angegeben haben).
+
+\item [\ldots]\textbf{einen frei w�hlbaren Suchausdruck verwenden, um eine
+Gruppe zu definieren}
+
+
+Stellen Sie sicher, dass die Gruppenansicht aktiviert ist. Dr�cken
+Sie auf den Button \menu{Neue Gruppe}, geben einen Namen f�r die
+Gruppe ein und w�hlen die Option \menu{Dynamisches Gruppieren der Eintr�ge anhand eines beliebigen Suchausdrucks}.
+Geben Sie \texttt{author=smith} als Suchausdruck ein (ersetzen Sie
+\texttt{smith} mit einem Namen, der wirklich in Ihrer Datei vorkommt)
+und klicken \menu{OK}. Jetzt k�nnen Sie die Gruppe anklicken, um
+sich ihren Inhalt anzeigen zu lassen (das sollten alle Eintr�ge sein,
+deren \emph{author}-Feld den Namen beinhaltet, den Sie angegeben haben).
+
+\item [\ldots]\textbf{mehrere Gruppen kombinieren }
+
+
+Erstellen sie zwei unterschiedliche Gruppen (z.\,B. so wie oben beschrieben).
+Klicken Sie auf den Button \menu{Einstellungen} in der Gruppenansicht
+und w�hlen \menu{Vereinigung}. Jetzt w�hlen Sie beide Gruppen aus
+(dazu klicken Sie auf eine Gruppe und anschlie�end bei gedr�ckter
+STRG-Taste auf die andere Gruppe). Sie sollten jetzt alle Eintr�ge
+sehen, die in einer der beiden Gruppen aufgef�hrt sind. Klicken Sie
+noch einmal auf \menu{Einstellungen} und w�hlen \menu{Schnittmenge}
+aus. Nun sollten Sie nur die Eintr�ge sehen, die in beiden Gruppen
+enthalten sind (das k�nnen auch keine sein, oder aber genau dieselben
+Eintr�ge wie zuvor, sofern beide Gruppen dieselben Eintr�ge enthalten).
+
+\item [\ldots]\textbf{sehen, welche Gruppen sich �berschneiden}
+
+
+Mit \jabref k�nnen Sie ganz einfach herausfinden, welche Gruppen
+sich mit den aktuell ausgew�hlten Gruppen �berschneiden (d.\,h. welche
+Gruppen zumindest einen Eintrag enthalten, der auch in der aktuell
+ausgew�hlten Gruppe ist). Klicken Sie auf \menu{Einstellungen} und
+aktivieren die Option \menu{Sich �berschneidende Gruppen markieren}.
+W�hlen Sie dann eine Gruppe, die sich mit anderen �berschneidet. Diese
+anderen Gruppen sollten nun markiert sein.
+
+\end{itemize}
+
+\subsubsection{Arten von Gruppen}
+
+In \jabref gibt es vier verschiedene Arten von Gruppen:
+
+\begin{enumerate}
+\item Die Gruppe \emph{Alle Eintr�ge}, die~-- wie der Name vermuten l�sst~--
+alle Eintr�ge beinhaltet, ist immer vorhanden und kann weder ver�ndert
+noch gel�scht werden.
+\item \emph{Statische Gruppen} verhalten sich wie Ordner auf einer Festplatte
+und beinhalten nur die Eintr�ge, die Sie ihnen explizit zuweisen.
+\item \emph{Dynamische Gruppen basierend auf einem Stichwort} beinhalten
+Eintr�ge, die in einem bestimmten \bibtex{}-Feld (z.\,B. \emph{keywords})
+ein bestimmtes Stichwort (z.\,B. \emph{elektrisch}) aufweisen. Diese
+Methode ben�tigt kein manuelles Zuweisen der Eintr�ge, sondern nutzt
+die bereits in der Datei vorhandenen Informationen. Wenn alle Eintr�ge
+in Ihrer Datenbank passende Stichw�rter haben, k�nnte diese Art von
+Gruppe die beste Wahl f�r Sie sein.
+\item \emph{Dynamische Gruppen basierend auf einer freien Suche} beinhalten
+Eintr�ge, die mit einem bestimmten Suchausdruck �bereinstimmen. Dabei
+wird dieselbe Syntax verwendet wie beim Suchen (siehe Abschnitt~\ref{SearchHelp}).
+Diese Syntax (die auf S.\,\pageref{SearchHelp_advanced} genauer
+beschrieben wird) unterst�tzt logische Operatoren (AND, OR, NOT) und
+erlaubt es, in einem oder mehreren \bibtex{}-Feldern zu suchen. Dadurch
+ist eine flexiblere Definition von Gruppen m�glich als mit einer Stichwortsuche
+(z.\,B. \texttt{author=smith AND title=elektrisch}).
+\end{enumerate}
+Jede Gruppe, die Sie erstellen, ist von einer der drei letztgenannten
+Arten. Der Dialog \menu{Gruppe bearbeiten}, der mit einem Doppelklick
+auf eine Gruppe aufgerufen wird, zeigt eine kurze Beschreibung der
+ausgew�hlten Gruppe.
+
+
+\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
+ist. Mit einem Rechtsklick auf eine Gruppe k�nnen Sie dem Baum eine
+neue Gruppe hinzuf�gen, entweder auf derselben Ebene wie die ausgew�hlte
+Gruppe oder als ihre Untergruppe. Der Button \menu{Neue Gruppe} erzeugt
+eine neue Untergruppe der Gruppe \emph{Alle Eintr�ge}, egal ob Sie
+gerade Gruppen ausgew�hlt haben oder nicht. Im Kontextmen� k�nnen
+Sie auch Gruppen und\slash{}oder Untergruppen l�schen, Untergruppen
+alphabetisch sortieren oder Gruppen an eine andere Stelle des Baums
+verschieben. Letzteres k�nnen Sie auch mit Drag\,\&\,Drop machen,
+allerdings mit der Einschr�nkung, dass bei Drag\,\&\,Drop die Reihenfolge
+der Untergruppen einer Gruppe nicht ver�ndert werden kann.
+
+Die Funktionen \menu{R�ckg�ngig} und \menu{Wiederholen} werden f�r
+alle Bearbeitungsschritte unterst�tzt.
+
+
+\paragraph{Statische Gruppen}
+
+Statische Gruppen werden nur durch manuelles Zuweisen von Eintr�gen
+>>gef�ttert<<. Nachdem Sie eine statische Gruppe erstellt haben,
+w�hlen Sie die Eintr�ge aus, die Sie ihr zuweisen wollen, und nutzen
+entweder Drag\,\&\,Drop oder das Kontextmen� in der Tabelle, um
+die Zuweisung durchzuf�hren. Um Eintr�ge aus einer Gruppe zu entfernen,
+w�hlen Sie sie aus und benutzen das Kontextmen� in der Tabelle. Es
+k�nnen keine weiteren Optionen angegeben werden.
+
+Diese Methode des Gruppierens setzt voraus, dass alle Eintr�ge einen
+eindeutigen \bibtex{}-Key haben. Im Falle von fehlenden oder doppelten
+\bibtex{}-Keys kann das Zuweisen der betreffenden Eintr�ge in k�nftigen
+Sitzungen nicht korrekt wiederhergestellt werden.
+
+
+\paragraph{Dynamische Gruppen}
+
+Der Inhalt einer dynamischen Gruppe wird von einer logischen Bedingung
+bestimmt. Nur Eintr�ge, die dieser Bedingung entsprechen, geh�ren
+zu dieser Gruppe. Diese Methode nutzt die bereits in der Datei vorhandenen
+Informationen und wird aktualisiert, sobald Sie Ver�nderungen in der
+Datei vornehmen. Es gibt zwei m�gliche Arten von Bedingungen:
+
+\begin{enumerate}
+\item Ein Feld nach einem Stichwort durchsuchen
+
+
+Diese Methode gruppiert Eintr�ge, bei denen ein bestimmtes \bibtex{}-Feld
+(z.\,B. \emph{keywords}) einen bestimmten Suchausdruck (z.\,B. \emph{elektrisch})
+enth�lt. Damit dies funktioniert, muss das Feld, nach dem sortiert
+wird, nat�rlich in jedem Eintrag vorhanden und sein Inhalt fehlerfrei
+sein. Das obige Beispiel w�rde alle Eintr�ge zu einer Gruppe zusammenfassen,
+die sich auf etwas Elektrisches beziehen. Benutzt man das Feld \emph{author},
+kann man sich Eintr�ge eines bestimmten Autors gruppieren lassen,
+usw. Die Suche ist als reine Textsuche oder mit einem regul�ren Ausdruck
+m�glich. Im ersten Fall erlaubt \jabref das manuelle Zuweisen zu
+und Entfernen aus einer Gruppe; dazu f�gt \jabref den Suchausdruck
+dem entsprechenden Feld zu bzw. entfernt ihn daraus. Das macht nur
+f�r das Feld \emph{keywords} oder f�r selbstdefinierte Felder Sinn,
+aber offensichtlich nicht f�r Felder wie \emph{author} oder \emph{year}.
+
+\item Einen freien Suchausdruck verwenden
+
+
+Diese Vorgehensweise ist ganz �hnlich wie die eben beschriebene, aber
+statt nur ein Feld nach einem Suchausdruck zu durchsuchen, kann hierbei
+die Syntax der Suche (siehe S.\,\pageref{SearchHelp_advanced}) angewendet
+werden, die logische Operatoren (AND, OR, NOT) und die Suche in mehreren
+Feldern gleichzeitig unterst�tzt. So fasst z.\,B. die Suchanfrage
+\texttt{keywords=Regression AND NOT keywords=linear} Eintr�ge, die
+sich mit nicht-linearer Regression besch�ftigen, zu einer Gruppe zusammen.
+
+\end{enumerate}
+In der Gruppenansicht werden dynamische Gruppen standardm��ig \emph{kursiv}
+dargestellt. Dies kann unter \menu{Optionen} \msep{} \menu{Einstellungen}
+\msep{} \menu{Gruppen} abgestellt werden.
+
+
+\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
+Gruppe angezeigt. Es ist jedoch~-- besonders beim Verwenden dynamischer
+Gruppen~-- oft n�tzlich, eine Untergruppe zu erstellen, die \emph{ihre
+Obergruppe einbezieht}. Wenn diese Untergruppe ausgew�hlt wird, werden alle Eintr�ge dieser
+Gruppe und ihrer Obergruppe angezeigt. Erstellen Sie z.\,B. eine
+Obergrupe, die Eintr�ge mit dem Stichwort \emph{Verteilung} enth�lt,
+sowie eine einbeziehende Untergruppe mit Eintr�gen, die das Stichwort
+\emph{Gau�} enthalten. Wenn Sie nun die Untergruppe ausw�hlen, werden
+alle Eintr�ge angezeigt, die beiden Bedingungen entsprechen, also
+alle, die mit Gau�'scher Verteilung zu tun haben. Indem Sie nun eine
+weitere Untergruppe f�r \emph{Laplace} anlegen, die dieselbe Obergruppe
+einbezieht, k�nnen Sie die Gruppierung einfach erweitern. Im Gruppenbaum
+haben solche Gruppen, die ihre Obergruppen einbeziehen, ein spezielles
+Icon. (Dieses Verhalten kann in den Einstellungen abgestellt werden.)
+
+Das logische Gegenst�ck zu einer solchen einbeziehenden Untergruppe
+ist eine Gruppe, die \emph{ihre Untergruppen ber�cksichtigt}.
+Wird sie ausgew�hlt, werden nicht nur die Eintr�ge dieser Gruppe,
+sondern auch diejenigen aller Untergruppen angezeigt. Im Gruppenbaum
+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}
+
+Wenn Sie eine Gruppe ausw�hlen, werden die Eintr�ge, die dieser Gruppe
+zugeordnet sind, hervorgehoben und~-- je nach Einstellung (die mit
+einem Klick auf den \menu{Einstellungen}-Button vorgenommen werden
+kann)~-- an den Anfang der Tabelle verschoben und\slash{}oder ausgew�hlt.
+Diese Optionen entsprechen denen f�r die normale Suche (siehe Abschnitt~\ref{SearchHelp}).
+
+Wenn Sie meherere Gruppen ausw�hlen (indem Sie die STRG-Taste gedr�ckt
+halten und mehrere Gruppen anklicken), wird~-- je nach Einstellung~--
+entweder die Vereinigung oder die Schnittmenge ihrer Inhalte angezeigt.
+Damit k�nnen mehrere Bedingungen schnell miteinander kombiniert werden.
+Ein Beispiel: Wenn Sie eine statische Gruppe namens \emph{Sehr wichtig}
+haben, in der alle sehr wichtigen Eintr�ge sind, k�nnen Sie sich die
+sehr wichtigen Eintr�ge jeder anderen Gruppe anzeigen lassen, indem
+Sie beide Gruppen ausw�hlen (dazu muss \menu{Schnittmenge} in den
+Einstellungen aktiviert sein).
+
+
+\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}
+
+Der \menu{Einstellungen}-Button bietet eine Option zum Markieren
+von sich �berschneidenden Gruppen. Wenn diese Option aktiviert ist
+und Sie eine (oder mehrere) Gruppe(n) ausw�hlen, werden alle Gruppen
+markiert, die mindestens einen Eintrag enthalten, der auch der ausgew�hlten
+Gruppe zugeordnet ist. Damit k�nnen Sie schnell �berschneidungen zwischen
+den Eintr�gen verschiedener Gruppen erkennen. Sie k�nnten beispielsweise
+eine Gruppe mit dem Namen \emph{lesen} erstellen, die alle Eintr�ge
+enth�lt, die sie lesen wollen. Sobald Sie nun eine Gruppe ausw�hlen,
+wird die Gruppe \emph{lesen} markiert, sofern die ausgew�hlte Gruppe
+Eintr�ge enth�lt, die Sie noch lesen wollten.
+
+
+\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}
+
+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.
+Diese Funktion sammelt alle W�rter eines bestimmten Felds Ihrer Wahl
+und erstellt eine Gruppe f�r jedes Wort. Das ist zum Beispiel n�tzlich,
+wenn Ihre Datei geeignete Stichworte f�r alle Eintr�ge enth�lt. Mit
+dem automatischen Erstellen von Gruppen basierend auf dem Feld \emph{keywords}
+k�nnen Sie also ohne gro�en Aufwand ein Grundger�st von Gruppen anlegen.
+
+Sie k�nnen auch Zeichen angeben, die ignoriert werden sollen, z.\,B.
+Kommas, die zwischen einzelnen Stichworten stehen. Diese werden als
+Worttrenner behandelt und nicht als Teile des Wortes selbst. Dieser
+Schritt ist wichtig, damit kombinierte Stichworte wie etwa \emph{Gau�'sche
+Verteilung} als semantische Einheit interpretiert werden k�nnen. (Sie
+k�nnen diese Option allerdings nicht verwenden, um ganze W�rter zu
+ignorieren. Sie m�ssen stattdessen die Gruppen, die Sie nicht wollen,
+nach dem automatischen Erstellen von Hand l�schen.)
+
+
+\paragraph{Ansicht aktualisieren}
+
+Der \menu{Aktualisieren}-Button in der Gruppenansicht aktualisiert
+die Tabelle in Bezug auf die aktuell ausgew�hlten Gruppen. Normalerweise
+erfolgt dies automatisch, aber in seltenen F�llen (z.\,B. nach einem
+R�ckg�ngig- oder Wiederholen"=Vorgang, der mit Gruppen zusammenh�ngt)
+ist ein h�ndisches Aktualisieren n�tig.
+
+
+\paragraph{Einbeziehende Unter- und Obergruppen mischen}
+
+Ist eine einbeziehende Gruppe die Untergruppe von einer Gruppe,
+die ihre Untergruppen ber�cksichtigt~-- hat sie also sozusagen Geschwister~--, 
+dann werden diese Geschwister ignoriert,
+sobald die einbeziehende Gruppe ausgew�hlt wird.
+
+
+\subsection{Markieren von Eintr�gen}
+\label{MarkingHelp}
+
+\begin{quote}
+\emph{Mit der Tastenkombination STRG-M k�nnen
+Sie Eintr�ge markieren und diese Markierung mit STRG-SHIFT-M wieder
+aufheben. Diese Aktionen sind auch im Men� \menu{Bearbeiten} zu finden.}
+\end{quote}
+Das Markieren ist nicht dasselbe wie das Ausw�hlen eines Eintrags.
+Markierte Eintr�ge verhalten sich in zweierlei Hinsicht anders als
+die restlichen Eintr�ge:
+
+\begin{enumerate}
+\item Markierte Eintr�ge werden immer mit einem gelben Hintergrund in der
+Tabelle angezeigt.
+\item Markierte Eintr�ge werden an den Anfang der Eintragsliste verschoben,
+falls Ihre Tabelle nicht nach Gruppen oder aufgrund einer Suche sortiert
+ist.
+\end{enumerate}
+Wenn Sie Ihre Datei speichern, werden die Markierungen beibehalten.
+Das Markieren von Eintr�gen ist z.\,B. n�tzlich, wenn Sie verschiedene
+Suchvorg�nge durchf�hren wollen, ohne das erste Suchergebnis zu verlieren,
+oder wenn Sie sich merken wollen, welche Artikel oder B�cher Sie noch
+einmal genauer ansehen m�ssen.
+
+
+\subsection{\texorpdfstring{String"=Editor}{String-Editor}}
+\label{StringEditorHelp}
+
+\begin{quote}
+\emph{Zugriff �ber das Men� \menu{BibTeX}} \msep{} \emph{\menu{Strings bearbeiten}
+oder durch Klick auf die Schaltfl�che \menu{Strings bearbeiten}.}
+\end{quote}
+\emph{Strings} sind das \bibtex{}-�quivalent zu Konstanten in einer
+Programmiersprache. Jeder String wird durch einen eindeutigen \emph{Namen}
+und einen \emph{Inhalt} festgelegt. Der Name kann an anderer Stelle
+in der Datei benutzt werden, um den Inhalt wiederzugeben.
+
+Ein Beispiel: Wenn viele Eintr�ge aus einer Zeitschrift stammen, deren
+Abk�rzung schwer zu behalten ist, wie etwa >>J. Theor. Biol.<< (Journal
+of Theroretical Biology), k�nnte ein String mit dem Namen >>JTB<<
+angelegt werden, um den Namen der Zeitschrift zu repr�sentieren. Statt
+nun in jedem Eintrag den exakten Namen der Zeitschrift einzutragen,
+gen�gt die Zeichenfolge \texttt{\#JTB\#} im Feld \emph{journal}, und
+es ist sichergestellt, dass der Name jedesmal in identischer Schreibweise
+ausgegeben wird.
+
+Der Verweis auf einen String kann an jeder Stelle eines Feldes erscheinen, 
+wobei der Name des Strings immer von einem Paar \texttt{\#}-Zeichen
+eingeschlossen werden muss. Diese Syntax gilt nur f�r \jabref und
+weicht ein wenig von der \bibtex{}-Syntax ab, die erzeugt wird, wenn
+Sie Ihre Datei speichern. Strings k�nnen f�r alle Standard-\bibtex{}-Felder verwendet werden.
+Unter \menu{Optionen \msep{} Einstellungen \msep{} Allgemein} k�nnen Sie im Bereich \menu{Datei} festlegen, ob Strings auch in Nicht-Standard-Feldern benutzt werden d�rfen. In diesem Fall k�nnen Sie Felder bestimmen, die von der Aufl�sung der Strings ausgenommen werden; hierbei wird empfohlen, das Feld \texttt{url} und andere Felder anzugeben, die das Zeichen \texttt{\#} enthalten k�nnen und die von \bibtex\slash\LaTeX{} verarbeitet werden k�nnen.
+
+In derselben Weise kann man auch im Inhalt eines Strings auf einen
+anderen String verweisen, vorausgesetzt, dass der String, auf den
+verwiesen wird, bereits \emph{vorher} definiert ist.
+
+W�hrend die Reihenfolge der Strings in Ihrer \bibtex{}-Datei in einigen
+F�llen wichtig ist, brauchen Sie sich bei der Benutzung von \jabref
+dar�ber keine Gedanken zu machen. Die Strings werden in alphabetischer
+Reihenfolge im String-Editor aufgelistet und in derselben Reihenfolge
+gespeichert, au�er wenn eine andere Reihenfolge von \bibtex{} verlangt
+wird.
+
+\subsection{Abk�rzung von Zeitschriftentiteln}
+\label{JournalAbbreviations}
+\begin{quote}
+\emph{Diese Funktion kann unter \menu{Optionen \msep{} Abk�rzungen der Zeitschriften verwalten} eingestellt werden.}
+\end{quote}
+\jabref kann automatisch zwischen Zeitschriftentiteln in abgek�rzter und ausf�hrlicher Form hin- und herschalten, sofern die Titel in einer Ihrer Zeitschriftenlisten enthalten ist. Sie k�nnen mehrere dieser Listen benutzen, die Sie als externe Textdateien anlegen.
+
+\subsubsection{Benutzungshinweise}
+
+Die Abk�rzung von Zeitschriftentiteln k�nnen Sie vom Eintragseditor oder vom Men� \menu{Extras} aus ein- und ausschalten. Im Eintragseditor benutzen Sie dazu den Button \menu{Abk�rzung an-/abschalten} neben dem \emph{Journal}-Feld. Es wird zwischen drei Modi hin- und hergeschaltet:
+\begin{itemize}
+    \item Kompletter Name, z.\,B. ">Aquacultural Engineering"<
+    \item \textls{ISO}-Abk�rzung, z.\,B. ">Aquacult. Eng."<
+    \item \textls{MEDLINE}-Abk�rzung, z.\,B. ">Aquacult Eng"<
+\end{itemize}
+Falls der Zeitschriftentitel sich nicht in Ihren Zeitschriftenlisten findet, wird das Feld nicht ver�ndert.
+
+Um die Zeitschriftentitel mehrerer Eintr�ge auf einmal zu konvertieren, k�nnen Sie eine beliebige Anzahl von Eintr�gen ausw�hlen und im Men� \menu{Extras} einen der Eintr�ge \menu{Zeitschriftentitel abk�rzen (ISO)}, \menu{Zeitschriftentitel abk�rzen (MEDLINE)} und \menu{Abk�rzung der Zeitschriften aufheben} w�hlen.
+Diese drei Aktionen sorgen daf�r, dass bei allen ausgew�hlten Eintr�gen die Zeitschriftentitel, die in den Zeitschriftenlisten gefunden werden konnten, abgek�rzt oder komplett ausgeschrieben werden.
+
+\subsubsection{Zeitschriftenlisten verwalten}
+
+Sie k�nnen mehrere Zeitschriftenlisten als externe Textdateien benutzen, die mit \jabref verlinkt sind. Die prim�re Liste kann in \jabref selbst verwaltet werden.
+
+\paragraph{Ihre pers�nliche Zeitschriften-Abk�rzungsliste}
+
+Ihre pers�nliche Liste verwalten Sie im oberen Teil des Dialogs \menu{Abk�rzung der Zeitschriftentitel}.
+W�hlen Sie \menu{Neue Datei} und geben einen Dateinamen ein oder klicken auf den \menu{Durchsuchen}-Button. Wenn Sie bereits eine Datei haben, die Sie als Grundlage nehmen wollen, w�hlen Sie stattdessen \menu{Bestehende Datei} und benutzen den \menu{Durchsuchen}-Button zum Ausw�hlen dieser Datei. Die Tabelle zeigt dann den Inhalt der Liste, die Sie ausgew�hlt haben.
+
+Sie k�nnen mit Hilfe der \menu{+} und \menu{--} Buttons an der rechten Seite Eintr�ge hinzuf�gen oder entfernen. F�r jeden Eintrag m�ssen Sie den vollst�ndigen Zeitschriftentitel und die ISO-Abk�rzung angeben (z.\,B. ">Aquacultural Engineering"< und ">Aquacult. Eng."<). Mit einem Doppelklick auf die Tabellenzeile k�nnen Sie die Eintr�ge bearbeiten.
+
+Sobald Sie auf \menu{OK} klicken (oder wenn Sie eine bestehende Datei ausgew�lt haben), enth�lt die Tabelle mindestens eine Zeile. Der Tabelleninhalt wird in die ausgew�hlte Datei geschrieben und die Zeitschriftenliste von \jabref wird aktualisiert.
+
+\paragraph{Externe Zeitschriftenlisten}
+
+Zus�tzlich zu Ihrer pers�nlichen Liste k�nnen Sie mehrere externe Listen verlinken. Diese Verkn�pfungen werden im unteren Teil des Dialogs \menu{Abk�rzung der Zeitschriftentitel} verwaltet. Externe Listen sind den pers�nlichen Listen �hnlich~-- der einzige Unterschied ist, dass Sie nicht mit \jabref selbst verwaltet werden k�nnen.
+
+Um eine externe Liste hinzuzuf�gen, klicken Sie zun�chst auf den \menu{+} Knopf, falls n�tig (das f�gt eine weitere Zeile hinzu). Dann benutzen Sie entweder den \menu{Durchsuchen}- oder den \menu{Herunterladen}-Button.
+    \begin{itemize}
+    \item Mit dem \menu{Durchsuchen}-Knopf k�nnen Sie eine auf Ihrem Computer bestehende Datei ausw�hlen.
+    \item Mit dem \menu{Herunterladen}-Knopf k�nnen Sie eine Liste aus dem Internet herunterladen, indem Sie einen URL angeben. Die Datei wird auf Ihrem Computer gespeichert und mit \jabref verlinkt.
+    Der URL ist standardm��ig die Adresse einer Zeitschriftenliste auf der \jabref-Homepage. Diese Liste ist unvollst�ndig, wird in Zukunft aber ausgebaut.
+    \end{itemize}
+Jeder Eintrag in Ihrer pers�nlichen Liste �berschreibt einen Eintrag mit demselben vollst�ndigen Zeitschriftentitel in einer Ihrer externen Listen. In �hnlicher Weise werden die externen Listen in der Reihenfolge, wie sie aufgelistet werden, abgearbeitet.
+
+\subsection{Wortauswahl verwalten}
+
+\label{ContentSelectorHelp}Diese Funktion erm�glicht es, eine Auswahl
+von oft benutzten W�rtern oder Phrasen zu speichern. In der Standardeinstellung
+ist sie f�r die Felder \emph{journal}, \emph{keywords} und \emph{publisher}
+aktiviert, aber Sie k�nnen die Funktion auch in anderen Feldern verwenden,
+indem Sie diese Felder im oberen Teil des Dialogs \menu{Extras} \msep{}
+\menu{Wortauswahl verwalten} hinzuf�gen.
+
+Die Wortauswahl gilt nur f�r die jeweilige Datei und wird daher zusammen
+mit den Literaturangaben in der \bibtex{}-Datei gespeichert. Jedes
+Feld mit Wortauswahl erh�lt im Eintrags-Editor einen gesonderten Bereich
+mit einer Auswahlliste und der Schaltfl�che \menu{Verwalten}. Wenn
+Sie die Auswahlliste mit der Maus anklicken, erscheint eine Liste
+der f�r dieses Feld verf�gbaren W�rter. Sobald Sie auf das gew�nschte
+Wort klicken, wird es in das entsprechende Feld geschrieben.
+
+Um ein neues Wort hinzuzuf�gen, schreiben Sie es einfach in das Auswahlfeld
+(�ber der Schaltfl�che \menu{Verwalten}) und dr�cken ENTER. Im Dialog
+\menu{Verwalten} k�nnen Sie hinzugef�gte W�rter auch wieder l�schen.
+
+
+\subsection{Import}
+
+\subsubsection{Import-Kontrollfenster}
+
+\label{ImportInspectionDialog}Beim Importieren neuer Eintr�ge aus
+einem unterst�tzten Format oder beim Herunterladen von Eintr�gen aus
+dem Internet werden diese Eintr�ge zun�chst im Import-Kontrollfenster
+gezeigt. Zu diesem Zeitpunkt wurden noch keine Eintr�ge zu einer ge�ffneten
+Datei hinzugef�gt.
+
+Im Kontrollfenster k�nnen Sie Eintr�ge entfernen, die nicht �bernommen
+werden sollen, und einige einfache Arbeiten durchf�hren wie etwa das
+Generieren von \bibtex{}-Keys f�r die Eintr�ge oder das Zuordnen von
+Eintr�gen zu Gruppen. Wenn Sie in eine bestehende Datei importieren,
+ist es oftmals leichter, diese Arbeiten durchzuf�hren, bevor die neuen
+Eintr�ge zwischen die bereits bestehenden sortiert wurden.
+
+\subsubsection[EndNote -> \jabref]{EndNote $\to$~\jabref}\label{subsubsec:endnote-jabref}
+
+EndNote hat einen Export-Stil \bibtex{}, der allerdings nicht alle
+Eintragstypen und Felder von \bibtex{} und auch nicht die zus�tzlich
+von \jabref genutzten Allgemeinen Felder (\emph{pdf}, \emph{owner},
+\emph{key} usw.) unterst�tzt. Falls Sie diese Felder nutzen wollen,
+verwenden Sie die EndNote Extras (\menu{Extras \msep{} EndNote Filter-Set entpacken}), extrahieren die Zip-Datei,
+die dabei erstellt wird und folgen den Anweisungen in der Datei \texttt{readme.txt}.
+
+\subsection{Export}
+\subsubsection[\jabref -> EndNote]{\jabref $\to$~EndNote}
+\label{EndnoteFilters}
+
+\begin{quote}
+\emph{\jabref kann Dateien so exportieren,
+dass EndNote sie lesen kann. Um diese Funktion zu nutzen, w�hlen Sie
+\menu{Datei \msep{} Exportieren}, dann bei \emph{Dateityp} \menu{Endnote} und
+geben den Namen der Export"=Datei an.}
+\end{quote}
+Der Standard"=Importfilter von EndNote kann nicht richtig mit mehreren
+Autoren oder Editoren umgehen. Es gibt zwei M�glichkeiten, um diese
+Schwierigkeit zu umgehen:
+
+\begin{enumerate}
+\item Benutzen Sie den eingebauten Filter und bessern Sie die Datei sp�ter
+aus.
+
+Um die Datei in EndNote zu �ffnen, erstellen Sie eine neue Datei oder
+�ffnen eine bestehende Datei in EndNote. Dann w�hlen Sie \menu{Datei}
+\msep{} \menu{Importieren}, klicken mit der Maus auf \menu{Datei w�hlen},
+w�hlen die aus \jabref exportierte Datei aus und dr�cken auf \menu{Ausw�hlen}.
+Anschlie�end dr�cken Sie auf \menu{Import Optionen} und w�hlen \menu{EndNote Import}.
+Mit einem Klick auf \menu{Importieren} starten Sie den Importvorgang.
+Anschlie�end gehen Sie zum Men�punkt \menu{Bearbeiten} \msep{} \menu{Text �ndern}
+und �ndern \emph{Any Field} in \emph{Author}. Geben Sie \lstinline{_and_}
+in das Suchfeld ein (die Unterstriche stehen f�r Leerzeichen) sowie ein RETURN-Zeichen
+in das Feld \emph{�ndern} (Option-Return unter Mac OS X, STRG-Return unter
+Windows XP). Dann klicken Sie auf \menu{�ndern}. Wiederholen Sie
+das Ganze f�r das Feld \emph{Secondary Author} (Zweiter Autor).
+
+\item Installieren Sie den \emph{EndNote Import from JabRef Filter}.
+
+Folgen Sie den Anweisungen im Abschnitt \nameref{EndNote_erweitert}. Um die Datei in
+EndNote zu �ffnen, erstellen Sie eine neue Datei oder �ffnen eine
+bestehende Datei in EndNote. Dann w�hlen Sie \menu{Datei} \msep{}
+\menu{Importieren}, klicken auf \menu{Datei w�hlen}, w�hlen die
+exportierte Datei aus und dr�cken auf \menu{Ausw�hlen}. Anschlie�end
+dr�cken Sie auf \menu{Import Optionen} und w�hlen \menu{EndNote Import from JabRef}.
+(Falls dieser Eintrag nicht erscheint, w�hlen Sie \menu{Weitere Filter}.
+Wenn er dann immer noch nicht erscheint, wurde der Filter nicht korrekt
+installiert.) Klicken Sie schlie�lich auf \menu{Importieren}, um
+den Importvorgang zu starten.
+
+\end{enumerate}
+Der EndNote Exportfilter ordnet \bibtex{}-Eintragstypen folgenden
+EndNote-Re\-fe\-renz\-ty\-pen zu:
+
+\medskip{}
+\begin{center}\begin{tabular}{ll}
+\textbf{\bibtex{}-Eintragstyp}&
+\textbf{Endnote-Referenztyp}\tabularnewline
+misc, other&
+Generic\tabularnewline
+unpublished&
+Manuscript\tabularnewline
+manual&
+Computer Program\tabularnewline
+article&
+Journal Article\tabularnewline
+book&
+Book\tabularnewline
+booklet&
+Personal Communication\tabularnewline
+inbook, incollection&
+Book Section\tabularnewline
+inproceedings&
+Conference Proceedings\tabularnewline
+techreport&
+Report\tabularnewline
+mastersthesis, phdthesis~&
+Thesis\tabularnewline
+\end{tabular} \end{center}
+\medskip{}
+
+\noindent In der Standardeinstellung geht der Exportfilter davon aus,
+dass Eintr�ge in den Feldern \emph{author} oder \emph{editor}, die
+geklammert sind, mehrere Autoren enthalten und ersetzt die Klammern
+durch ein angeh�ngtes Komma. Dadurch werden Eintr�ge, die \LaTeX{}-Befehle
+mit Klammern enthalten, als Eintrag mit mehreren Autoren gewertet
+und demzufolge unpassend formatiert.
+
+\subsubsection{Erweiterte Benutzung: EndNote Extras}
+
+\label{EndNote_erweitert}Einige Felder, die von \bibtex{} genutzt
+werden, geh�ren nicht zu EndNotes vorgegebenen Referenztypen. W�hrend
+der Import in \jabref und der Export nach \jabref ohne ein �ndern
+der Referenztypen funktioniert, werden die Feldnamen in EndNote nicht
+korrekt dargestellt (z.\,B. wird das PDF-Feld \emph{Custom 1} hei�en
+statt \emph{pdf}). Dar�ber hinaus k�nnen diese Felder bei neuen Eintr�gen
+in EndNote nicht genutzt werden, weil sie nicht im Eintragsdialog
+erscheinen. Der vorgegebene Importfilter von EndNote kann dar�berhinaus
+das Feld \emph{author} nicht richtig analysieren. Der \emph{EndNote
+Import from JabRef Filter} kann dies. Au�erdem erkennt dieser Filter
+ein Feld \texttt{endnotereftype}, das die vorgegebene Zuordnung �berschreibt.
+Um den Filter zu installieren, nutzen Sie die EndNote Extras
+(\menu{Extras \msep{} EndNote Filter-Set entpacken})
+und entpacken die Zip-Datei, die dabei erstellt wird. Dann folgen
+Sie den Angaben in der Datei \texttt{readme.txt}.
+
+\subsubsection{\jabref-Bibliographien in OpenOffice.org benutzen}
+\label{Export-OOo}
+\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}).
+
+Je nach Ihrer Version von OpenOffice.org gibt es verschiedene
+    Vorgehensweisen, um JabRef zum Verwalten Ihrer bibliographischen
+    Datenbank zu benutzen:
+
+    \paragraph{Die exportierte Datei als bibliographische Datenbank in
+    OpenOffice.org 2.3 und 2.4 benutzen}
+
+    Mit folgenden Schritten k�nnen Sie eine aus \jabref exportierte
+    Tabelle als bibliographische Datenbank benutzen:
+
+  \begin{itemize}
+	  \item Exportieren Sie in \jabref Ihre Datei in das \texttt{.ods}-Format
+    \item �ffnen Sie OpenOffice.org Writer
+    \item W�hlen Sie \menu{Bearbeiten} \msep{} \menu{Datenbank austauschen}. Klicken Sie auf
+    \menu{Durchsuchen} und w�hlen die Datei, die Sie in das \texttt{.ods}-Format
+    exportiert haben.
+    \item Klicken Sie auf das \menu{+} vor dem Namen der Datenbank, anschlie�end
+    auf den angezeigten Dateinamen und schlie�lich auf den Knopf \menu{Festlegen}.
+    \item W�hlen Sie \menu{Extras} \msep{} \menu{Optionen} \msep{} \menu{OpenOffice.org Base} \msep{}
+    \menu{Datenbanken}. In diesem Fenster sollte die Datenbank, die Sie gerade
+    importiert haben, angezeigt werden. Die Standard-Datenbank f�r Bibliographien
+    von OOo sollte ebenfalls angezeigt werden (Bibliography).
+    \item Klicken Sie auf \menu{Bearbeiten} und �ndern Sie den Namen der Datenbank
+    \emph{Bibliography}, z.\,B. zu \emph{Bibliography-old} (denn OpenOffice.org
+    kann nicht mit mehreren bibliographischen Datenbanken arbeiten).
+    \item W�hlen Sie anschlie�end Ihre bibliographische Datenbank und benennen Sie sie um in
+    \emph{Bibliography} (achten Sie auf einen Gro�buchstaben am Anfang des Namens).
+  \end{itemize}
+    Nach diesen Schritten sollte Ihre bibliographische Datenbank zur Benutzung
+    mit OpenOffice.org bereit sein. Um das zu pr�fen, w�hlen Sie \menu{Einf�gen} \msep{}
+    \menu{Verzeichnisse} \msep{} \menu{Literaturverzeichniseintrag\ldots}. Im folgenden Dialog sollten
+    in der Dropdownliste (unter \menu{Kurzbezeichnung}) die \bibtex-Keys Ihrer
+    Datenbank erscheinen.
+
+\paragraph{Die exportierte Datei als Bibliographiedatenbank in OpenOffice 2.0, 2.1 oder 2.2 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 beispielsweise 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
+einen Importvorgang starten, indem Sie \menu{BibTeX}} \msep{} \emph{\menu{Neuer Eintrag aus Klartext}
+oder die Tastenkombination STRG-SHIFT-N w�hlen.}
+\end{quote}
+Dieser Dialog erm�glicht das schnelle Einf�gen von Eintr�gen aus normalem
+Text. W�hlen Sie zun�chst aus, welcher Eintragstyp erstellt werden
+soll. F�gen Sie dann einfach Text aus der Zwischenablage ein (�ber das
+Kontextmen� im Textfeld mit der Wasserzeichenschrift >>Text einf�gen<<
+oder �ber den Button \menu{Einf�gen}). Alternativ k�nnen Sie �ber den Button
+\menu{Datei �ffnen} eine Datei ausw�hlen, um sie in den Dialog zu laden.
+
+Jetzt markieren Sie z.\,B. den Textbereich, der zum Titel des neuen
+Eintrags werden soll, und f�hren im rechten Teil des Dialogfensters
+im Bereich \menu{Verf�gbare BibTeX"=Felder} einen Doppelklick auf \emph{title} aus.
+So gehen Sie f�r alle weiteren Felder des neuen Eintrags vor. Sie
+k�nnen einem Feld nat�rlich auch mehrere Textbereiche zuordnen. Achten
+Sie dazu darauf, dass die Option \menu{anf�gen} aktiviert ist, ansonsten
+wird bei jedem neuen Zuweisen von Textbereichen das Feld �berschrieben
+(Option \menu{�berschreiben}).
+
+Bereits zugewiesene Textteile werden im Tab \menu{Importtext} blau
+hervorgehoben. Um zu kontrollieren, welche Textbereiche Sie einem
+bestimmten \bibtex{}-Feld zugewiesen haben, w�hlen Sie das Feld im
+rechten Bereich aus; der zugeordnete Text wird nun rot hervorgehoben.
+
+Sie k�nnen sich das Ergebnis des Importvorgangs jederzeit im Tab \menu{BibTeX"=Quelltext}
+des Importdialogs ansehen. Hier k�nnen keine �nderungen vorgenommen
+werden; das ist erst m�glich, sobald der Text tats�chlich importiert
+und ein neuer Eintrag angelegt wurde. Auf m�gliche Fehler werden Sie
+im Tab \menu{Hinweise und Warnungen} aufmerksam gemacht.
+
+Haben Sie alle Textstellen den gew�nschten \bibtex{}-Feldern zugewiesen,
+klicken Sie auf die Schaltfl�che \menu{�bernehmen}. Nun erstellt
+\jabref den neuen Eintrag, der allerdings noch keinen \bibtex{}-Key
+hat.
+
+\subsection{Links zu PDF- und \texorpdfstring{PS"=Dateien}{PS-Dateien}, URLs und DOIs}
+\label{ExternalFiles}
+
+\tip[Anmerkung: ]{Ab \jabref 2.3 gibt es ein verbessertes System f�r Links zu externen Dateien; siehe dazu den Abschnitt ">\nameref{FileLinks}"<.}
+
+\noindent Mit \jabref k�nnen Sie Ihre Eintr�ge mit
+den entsprechenden PDF- oder PS-Dateien, die sich auf Ihrem Computer
+befinden, verlinken. Ebenso ist es m�glich, Dateien im Internet �ber
+einen URL oder DOI zu verlinken.
+
+
+\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
+werden sie auf Werte gesetzt, die wahrscheinlich zu Ihrem Betriebssystem
+passen, so dass eine gute Chance besteht, dass Sie diese Werte nicht
+zu ver�ndern brauchen.
+
+\begin{quote}
+\emph{Um die Einstellungen der externen Programme zu �ndern, �ffnen
+Sie den Unterpunkt \menu{Externe Programme} im Dialog \menu{Optionen}}
+\msep{} \emph{\menu{Einstellungen}.}
+\end{quote}
+
+\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
+auf das Textfeld, das einen DOI oder URL enth�lt, doppelklicken. In
+der Tabellenansicht k�nnen Sie einen Eintrag ausw�hlen und die Men�eintr�ge
+(unter \menu{Extras}), die Tastenkombinationen (in der Standardeinstellung
+F4 f�r PDF/PS und F3 f�r DOI/URL) oder das Kontextmen� (mit der rechten
+Maustaste) benutzen, um die Datei oder Internetseite zu �ffnen. Schlie�lich
+k�nnen Sie auch auf ein PDF-, PS-, URL- oder DOI-Icon in der Tabelle
+klicken.
+
+In der Standardeinstellung zeigt die Tabellenansicht zwei Spalten
+mit Icons f�r die Eintr�ge, die mit externen Dateien oder URLs verlinkt
+sind. Beide Spalten k�nnen im Unterpunkt \menu{Tabellenansicht} des
+Dialogs \menu{Optionen} \msep{} \menu{Einstellungen} ausgeblendet
+werden. Die zweite Spalte zeigt Icons f�r PDF- oder PS-Dateien (nur
+PDF, wenn beide vorhanden sind), die dritte Spalte zeigt Icons f�r
+URL oder DOI (nur URL, wenn beide vorhanden sind).
+
+
+\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
+zu gestalten. Um diese >>Spezialbehandlung<< nutzen zu k�nnen, m�ssen
+Sie im Unterpunkt \menu{Externe Programme} des Dialogs \menu{Optionen}
+\msep{} \menu{Einstellungen} einen Ordner als Standard-Ordner f�r
+Ihre PDF-Dateien angeben. Alle PDF-Dateien, die in diesem Ordner oder
+einem Unterordner gespeichert sind, werden mit einer relativen Pfadangabe
+referenziert, so dass Sie problemlos PDF-Verzeichnisse verschieben
+oder mit mehreren Benutzern von verschiedenen Netzwerkarbeitspl�tzen
+aus an derselben Datei arbeiten k�nnen.
+
+Wenn Sie Ihren PDF-Dateien dann noch Namen geben, die mit dem \bibtex{}-Key
+des entsprechenden Eintrags �bereinstimmen (abgesehen von der Dateiendung \texttt{.pdf}), 
+sucht \jabref in Ihrem Standard-PDF-Ordner und dessen
+Unterordnern nach der richtigen PDF-Datei. Sobald die korrekt benannte
+PDF-Datei sich dort befindet, klicken Sie auf die Schaltfl�che \menu{Auto}
+neben dem PDF-Feld im Eintrags-Editor. Wenn die PDF-Datei gefunden
+wird, wird das Feld entsprechend gesetzt.
+
+Wenn Sie eine PDF-Datei wie beschrieben benennen, k�nnen Sie sie auch
+�ffnen, ohne das PDF-Feld �berhaupt zu benutzen. Der Nachteil ist
+in diesem Fall allerdings, dass das PDF-Icon in der Tabellenansicht
+nicht angezeigt wird, solange das PDF-Feld leer bleibt.
+
+\subsubsection{Dateispezifische PDF- und PS-Verzeichnisse}
+
+Sie k�nnen f�r jede Datei eigene PDF- und PS-Verzeichnisse angeben \emph{(}\menu{Datei \msep{} Eigenschaften der Datei}\emph{)}. Diese Verzeichnisse ersetzen dann die Standardverzeichnisse.
+
+\subsubsection{Die Suche mit regul�ren Ausdr�cken f�r automatische Verkn�pfungen nutzen}
+\label{RegularExpressionSearch}
+
+Wenn Sie Dateinamen verwenden, die dem bibtexkey erg�nzt um die Dateiendung entsprechen, findet \jabref diese Dateien automatisch.
+
+Ab Version~2.2 ist mit Hilfe von regul�ren Ausdr�cken eine gr��ere Flexibilit�t beim Benennen der Dateien gew�hrleistet. In den meisten F�llen d�rfte das Standardverhalten bereits ausreichend sein.
+
+In den Einstellungen zu externen Programmen \emph{(}\menu{Optionen \msep{} Einstellungen \msep{} Externe Programme}\emph{)} findet sich eine Option ">Suche mit regul�rem Ausdruck benutzen"<. Wenn Sie diese Option aktivieren, k�nnen Sie f�r die Suche in PDF-Verzeichnissen einen eigenen regul�ren Ausdruck angeben.
+
+Die folgende Syntax wird verwendet:
+
+\begin{labeling}{MextensionM}
+  \item [\texttt{*}] Suche in allen direkten Unterverzeichnissen, NICHT im aktuellen Verzeichnis und in Unterverzeichnissen zweiter oder tieferer Ebene.
+  \item [\texttt{**}] Rekursive Suche in allen Unterverzeichnissen UND im aktuellen Verzeichnis.
+  \item [\texttt{.}] Das aktuelle Verzeichnis.
+  \item [\texttt{..}] Das Elternverzeichnis (eine Ebene h�her).
+  \item [\texttt{{[}title{]}}] Alle Ausdr�cke in eckigen Klammern werden durch den Inhalt des entsprechenden Felds ersetzt.
+  \item [\texttt{{[}extension{]}}] Wird durch die Dateiendung des Feldes, das Sie benutzen, ersetzt.
+  \item Anderer Text wird als regul�rer Ausdruck interpretiert. Aber Vorsicht: \emph{backslashes} m�ssen mit einem weiteren \emph{backslash} \emph{escaped} werden (\texttt{\textbackslash\textbackslash}), damit sie nicht mit Separatoren in Pfad-Angaben verwechselt werden.
+\end{labeling}
+Der Standard ist \lstinline{**/.*[bibtexkey].*\\.[extension]}. Damit wird in allen Unterverzeichnissen des Ordners der entsprechenden Dateiendung (z.\,B. das PDF-Verzeichnis) nach allen Dateien mit der richtigen Dateiendung gesucht, die den bibtexkey in ihrem Namen haben.
+
+\subsection{Links zu externen Dateien (ab Version 2.3)}
+\label{FileLinks}
+
+\jabref l�sst Sie Ihre Eintr�ge mit Dateien jeden Typs verlinken, die Sie auf Ihrem System gespeichert haben. Au�erdem sind Links zu Dokumenten im Internet in der Form eines URL oder eines DOI m�glich. Jedem Eintrag kann eine beliebige Anzahl von Datei-Links zugeordnet werden und jede verlinkte Datei kann schnell aus JabRef heraus ge�ffnet werden.
+
+Was \bibtex angeht, werden die Datei"=Links eines Eintrags in ein einzelnes Feld geschrieben. In \jabref erscheinen sie aber als editierbare Liste von Links, die im Eintrags"=Editor zug�nglich sind.
+
+\subsubsection{Einrichten der Dateitypen}
+
+F�r jeden Datei"=Link muss ein Dateityp gew�hlt werden, damit das richtige Programm zum �ffnen der Datei und das entsprechende Icon gefunden werden. Die Liste der Dateitypen k�nnen Sie einsehen und bearbeiten, indem Sie \menu{Optionen \msep Externe Dateitypen verwalten} w�hlen oder auf die Schaltfl�che \menu{Externe Dateitypen verwalten} im Bereich \menu{Externe Programme} des Einstellungs"=Dialogs klicken.
+
+Ein Dateityp besteht aus einem Namen, einem graphischen Icon, einer Dateierweiterung und einer Anwendung zum �ffnen der Dateien. Wenn Sie Windows benutzen, k�nnen Sie den Namen der Anwendung weglassen, wenn Sie das Standardprogramm verwenden wollen.
+
+\subsubsection{\texorpdfstring{Datei"=Links}{Datei-Links} zu einem Eintrag hinzuf�gen}
+
+Wenn bei den Allgemeinen Feldern (siehe Abschnitt~\ref{GeneralFields}) das Feld \texttt{file} eingetragen ist, k�nnen Sie die Liste der externen Links im \nameref{EntryEditorHelp} bearbeiten. Der Editor hat dann Schaltfl�chen zum Einf�gen, Bearbeiten, L�schen und Sortieren der Links.
+
+Eine Datei kann mit Hilfe der \menu{Auto}"=Schaltfl�che automatisch verlinkt werden, falls sie in Ihrem Dateiverzeichnis (\menu{Einstellungen \msep Externe Programme \msep Links zu externen Dateien \msep Hauptverzeichnis}) oder einem Unterordner liegt, eine Dateierweiterung hat, die \jabref bekannt ist, und einen Namen hat, der mit dem BibTeX"=Key des Eintrags �bereinstimmt. Die Regeln, nach denen Dateinamen mit BibTeX"=Keys automatisch verkn�pft werden, k�nnen eingestellt werden unter \ [...]
+
+Um eine Datei herunterzuladen und mit einem Eintrag zu verlinken, benutzen Sie die Schaltfl�che \menu{Download} im Eintrags"=Editor. Es erscheint ein Dialog, in dem Sie den URL eingeben m�ssen. Die Datei wird dann in Ihr Hauptverzeichnis gespeichert, anhand des BibTeX-Keys benannt und mit dem Eintrag verkn�pft.
+
+\subsubsection{Externe Dateien �ffnen}
+
+Es gibt mehrere M�glichkeiten, externe Dateien oder Internetseiten zu �ffnen. In der Tabellenansicht k�nnen Sie einen Eintrag ausw�hlen und mit dem Men�, einem Tastenk�rzel oder dem Kontextmen� den ersten externen Link �ffnen. Falls in der Tabellenansicht die Spalte \texttt{file} angezeigt wird (\menu{Einstellungen \msep Tabellenansicht \msep Spezielle Spalten \msep Datei"=Spalten anzeigen}), k�nnen Sie auch auf das Icon klicken, um den ersten Link eines Eintrags zu �ffnen. Um weitere Li [...]
+
+\subsection{XMP-Metadaten}
+\label{XMPHelp}
+
+XMP ist ein Standard, der von Adobe Systems entwickelt wurde, um Metadaten (Daten, die Informationen �ber andere Daten enthalten) in Dateien zu speichern. Ein bekanntes Beispiel f�r Metadaten sind ID3-Tags, die zur Beschreibung von K�nstlern, Albumtiteln und Liednamen einer MP3-Datei verwendet werden. Mit Hilfe von Metadaten k�nnen MP3-Dateien unabh�ngig von ihrem Dateinamen identifiziert und z.B. von MP3-Playern ausgelesen und angezeigt werden.
+
+Mit der XMP-Unterst�tzung versucht das \jabref-Team, die Vorteile von Metadaten in die Welt der Literaturmanager einzuf�hren. Sie k�nnen \menu{XMP schreiben} im \menu{Allgemein}-Tab des Eintragseditors w�hlen und damit alle \bibtex{}"=Informationen in die verlinkte PDF-Datei schreiben. Wenn Sie diese PDF-Datei mit anderen austauschen, k�nnen diese die Datei in das \jabref-Fenster ziehen und haben damit alle Informationen zur Verf�gung, die Sie eingegeben haben.
+
+\subsubsection{Benutzung}
+
+Um die XMP-Funktionen in \jabref zu nutzen, gehen Sie folgenderma�en vor:
+
+\begin{itemize}
+  \item Zum \emph{Importieren einer einzelnen PDF-Datei mit Metadaten} w�hlen Sie \menu{Datei \msep{} Importieren in {[}neue{|}aktuelle{]} Datenbank} und im anschlie�enden Dialog als Dateiformat \menu{PDF mit XMP-Anmerkungen} aus. Sie k�nnen die PDF-Datei stattdessen auch mit der Maus auf das Hauptfenster von \jabref ziehen.
+  \item Um \emph{bibliographische Informationen in eine verlinkte PDF-Datei zu schreiben}, klicken Sie auf \menu{XMP schreiben} im \menu{Allgemein}-Tab des Eintragseditors (neben dem \emph{pdf}"=Feld).
+  \item Wenn Sie \emph{alle PDFs einer Datei mit Metadaten versehen} wollen, w�hlen Sie \menu{Extras \msep{} XMP-Metadaten in PDFs schreiben}.
+  \item Um zu �berpr�fen, ob das Schreiben der Metadaten funktioniert hat, �ffnen Sie die Datei in Adobe Acrobat und w�hlen \menu{Datei \msep{} Dokumenteigenschaften} und dann unter dem Reiter \menu{Beschreibung} die Schaltfl�che \menu{Zus�tzliche Metadaten}. Wenn Sie links ">Erweitert"< ausw�hlen, sollten Sie im rechten Teil des Dialogs einen Eintrag \texttt{http://jabref.sourceforge.net\slash bibteXMP} sehen, der die entsprechenden Metadaten enth�lt. Dies geht nur mit dem Vollprogramm  [...]
+  \item Wer kein Adobe Acrobat zur Verf�gung hat, kann stattdessen das Programm ">pdfinfo"<\footnote{Dieses Programm ist Teil von \href{http://www.foolabs.com/xpdf/}{Xpdf} und \href{http://poppler.freedesktop.org/}{Poppler}.} verwenden, um die XMP-Metadaten zu �berpr�fen. Rufen Sie dazu auf der Kommandozeile einfach \lstinline{pdfinfo -meta <PDF-Datei>} auf, dann werden die entsprechenden Metadaten angezeigt.
+\end{itemize}
+
+\subsubsection{bibteXMP Dateiformat}
+
+XMP nutzt zum Speichern der Daten eine Teilmenge des \emph{Resource Description Framework} (RDF). F�r \jabref wird ein neues Metadatenformat benutzt, das \bibtex{} sehr gut abbildet. Alle Felder und Werte werden in Knoten eines XML-Dokuments verwandelt. Nur Autoren und Herausgeber werden als \texttt{rdf:Seq}-Strukturen gespeichert, so dass die trennenden ">and"< weggelassen werden k�nnen. Alle Strings und crossrefs werden in den Metadaten aufgel�st.
+ 
+Das folgende einfache Minimal-Schema wird benutzt:
+\begin{itemize}
+  \item Der \bibtex{}-Key wird als \texttt{bibtexkey} gespeichert.
+  \item Der Eintragstyp wird als \texttt{entrytype} gespeichert.
+  \item \texttt{author} und \texttt{editor} sind kodiert als \texttt{rdf:Seq}, wobei die einzelnen Autoren und Herausgeber als \texttt{rdf:li}s dargestellt werden.
+  \item Alle anderen Felder werden unter ihrem Feld-Namen gespeichert.
+\end{itemize}
+
+Es folgt ein Beispiel:
+\begin{lstlisting}
+ at INPROCEEDINGS{CroAnnHow05,
+  author = {Crowston, K. and Annabi, H. and Howison, J. and Masango, C.},
+  title = {Effective work practices for floss development: A model and propositions},
+  booktitle = {Hawaii International Conference On System Sciences (HICSS)},
+  year = {2005},
+  owner = {oezbek},
+  timestamp = {2006.05.29},
+  url = {http://james.howison.name/publications.html}
+}
+\end{lstlisting}
+
+wird umgewandelt in
+
+\begin{lstlisting}
+<rdf:Description xmlns:bibtex="http://jabref.sourceforge.net/bibteXMP/"
+    bibtex:bibtexkey="CroAnnHow05"
+    bibtex:year="2005"
+    bibtex:title="Effective work practices for floss development: A model and propositions"
+    bibtex:owner="oezbek"
+    bibtex:url="http://james.howison.name/publications.html"
+    bibtex:booktitle="Hawaii International Conference On System Sciences (HICSS)"
+    bibtex:timestamp="2006.05.29">
+        <bibtex:author>
+            <rdf:Seq>
+                <rdf:li>K. Crowston</rdf:li>
+                <rdf:li>H. Annabi</rdf:li>
+                <rdf:li>J. Howison</rdf:li>
+                <rdf:li>C. Masango</rdf:li>
+            </rdf:Seq>
+        </bibtex:author>
+    <bibtex:entrytype>Inproceedings</bibtex:entrytype>
+</rdf:Description>
+\end{lstlisting}
+
+Wenn Sie bibteXMP parsen m�chten, beachten Sie, dass in RDF Attribut-Wert-Paare auch als Knoten wiedergegeben werden k�nnen und vice versa.
+
+\subsubsection{Weiterf�hrende Links}
+
+Einige Links zu XMP und PDFs mit Anmerkungen (englisch):
+
+\begin{itemize}
+  \item James Howison's Blog \href{http://freelancepropaganda.com/themp/}{">Themp---Managing Academic Papers like MP3s"<}
+  \item \href{http://www.xml.com/pub/a/2004/09/22/xmp.html}{XML.com-Artikel} zu XMP
+  \item \href{http://jempbox.org}{JempBox} und \href{http://pdfbox.org}{PDFBox} von Ben Litchfield (Java libraries zum Zugriff auf die PDFs und die Metadaten)
+  \item Gute \href{http://episteme.arstechnica.com/eve/ubb.x/a/tpc/f/8300945231/m/377001889631}{Diskussion bei ArsTechnica} zum Management von PDFs.
+  \item \href{http://partners.adobe.com/public/developer/en/xmp/sdk/xmpspecification.pdf}{Adobe XMP Spezifikation}
+\end{itemize}
+
+\subsection{\jabref und Online-Datenbanken}
+
+\subsubsection{CiteSeer}
+
+\label{CiteSeerHelp}
+\tip[]{CiteSeer ist eine digitale Bibliothek und Suchmaschine f�r wissenschaftliche Literatur, vornehmlich zu den Bereichen Computer und Informatik.}
+Mit \jabref lassen sich Informationen zu einer bestimmten
+Literaturangabe aus der CiteSeer-Datenbank herunterladen. Um diesen
+Vorgang zu starten, f�gen Sie Ihrer Datei einen neuen Eintrag hinzu
+und belegen das Feld \emph{citeseerurl} mit einem Link zur entsprechenden
+Inhaltsseite auf CiteSeer. Das Feld \emph{citeseerurl} muss in einem
+der folgenden Formate eingegeben werden:
+
+\begin{lstlisting}
+http://citeseer.ist.psu.edu/DDDDDD[.html] % oder
+oai:CiteSeerPSU:DDDDDD                    % oder
+DDDDDD
+\end{lstlisting}
+wobei DDDDDD eine Ziffernfolge darstellt. Um diese Ziffernfolge f�r
+einen CiteSeer-Eintrag zu finden, gehen Sie auf die Dokumentseite
+der Literaturangabe des Formats \texttt{http://citeseer.ist.psu.edu/}\texttt{\emph{nameYearTitle}}\texttt{.html}
+und klicken den (Update)"=Link f�r diese Literaturangabe. Die URL
+f�r den Update-Link beinhaltet die numerische ID f�r diese Literaturangabe.
+
+Sobald Sie das Feld \emph{citeseerurl} belegt haben, k�nnen Sie die
+CiteSeer-Felder herunterladen, indem Sie \menu{BibTeX} \msep{} \menu{Felder von CiteSeer importieren}
+ausw�hlen. Achten Sie darauf, dass Sie die Zeile(n) ausgew�hlt haben,
+die Sie aktualisieren wollen.
+
+\paragraph{Eine Datei mit zitierenden Literaturangaben erzeugen}
+
+Mit einem Satz von Literaturangaben k�nnen Sie eine Liste der Dokumente
+erzeugen, die die einzelnen Literaturangaben ihrerseits zitieren. Dazu
+muss jede Literaturangabe der entsprechenden Datenbank-Datei ein
+ausgef�lltes citeseerurl-Feld besitzen, dessen Inhalt dem oben
+beschriebenen Format entspricht. Sie k�nnen diese Funktion nutzen, indem
+Sie \menu{Zitierende Literatur von CiteSeer abrufen} ausw�hlen.
+
+\subsubsection{Medline}
+\label{MedlineHelp}
+
+\tip[]{MEDLINE ist die wichtigste Datenbank der \emph{U.\,S. National Library of Medicine}. Sie enth�lt Literaturangaben von Zeitschriftenartikeln der Lebenswissenschaften, vornehmlich der Biomedizin.
+\jabref kann Literaturangaben der Medline"=Datenbank
+herunterladen. Um diese Funktion zu nutzen, w�hlen Sie \menu{Extras
+\msep{} Medline abrufen}, so dass der Medline-Dialog im linken
+Seitenfeld erscheint.}
+Es gibt zwei M�glichkeiten, die Auswahl der Eintr�ge vorzunehmen,
+die heruntergeladen werden sollen:
+
+\begin{enumerate}
+\item Geben Sie eine oder mehr Medline IDs (getrennt durch Komma/Semikolon)
+in das Textfeld ein.
+\item Geben Sie Namen oder W�rter ein, nach denen gesucht werden soll. Sie
+k�nnen dazu die Operatoren \texttt{AND} und \texttt{OR} sowie Klammern
+benutzen, um Ihren Suchbegriff zu verfeinern.
+\end{enumerate}
+In beiden F�llen dr�cken Sie dann ENTER oder die Schaltfl�che \menu{Abrufen}.
+Wenn Sie eine Textsuche durchf�hren, wird Ihnen die Anzahl der gefundenen
+Eintr�ge angezeigt, und Sie k�nnen w�hlen, wie viele Sie herunterladen
+m�chten.
+
+Die abgerufenen Eintr�ge werden Ihrer zu diesem Zeitpunkt aktivierten
+Datei zugeordnet.
+
+\subsubsection{IEEEXplore}
+\label{IEEEXploreHelp}
+
+\tip[]{IEEEXplore bietet Zugang zu Literatur in den Bereichen Elektrotechnik, Informatik und Elektronik.}
+\jabref kann Literaturangaben der IEEEXplore-Datenbank herunterladen.
+Um diese Funktion zu nutzen, w�hlen Sie \menu{Internet \msep{} IEEEXplore abfragen}
+und geben in dem Dialog, der im linken Bildschirmbereich erscheint, Ihre
+Suchausdr�cke ein. Dr�cken Sie anschlie�end die
+ENTER-Taste oder den \menu{Abrufen}-Button.
+
+Die Suche wird im G�ste-Modus durchgef�hrt, es werden also maximal 100 Ergebnisse
+angezeigt.
+
+Sie k�nnen die \emph{abstracts} zusammen mit den Literaturangaben herunterladen,
+indem Sie einen Haken bei \menu{Abstracts ber�cksichtigen} setzen. Das verursacht
+eine deutlich h�here Anzahl von Netzwerk-Anfragen; um die Webseite von IEEEXplore
+nicht �berm��ig zu belasten, l�dt \jabref \emph{abstracts} nur bei einer Suche,
+deren Ergebnis eine bestimmte Trefferanzahl nicht �bersteigt.
+
+\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
+sind dokumentiert unter
+\href{http://java.sun.com/j2se/1.4.2/docs/guide/net/properties.html}{http://java.sun.com/j2se/1.4.2/docs/guide/net/proper\allowbreak ties.html}
+
+\begin{lstlisting}
+java -Dhttp.proxyHost="hostname" -Dhttp.proxyPort="portnumber"
+\end{lstlisting}
+
+\subsection{\jabref mit mehreren Benutzern verwenden}
+
+\jabref bietet einige Funktionen, die besonders dann von Nutzen
+sind, wenn eine Datenbank von mehreren Benutzern~-- z.\,B. �ber
+ein Netzwerk~-- bearbeitet wird. Das sind vor allem die Felder \emph{owner}
+und \emph{timestamp}.
+
+
+\subsubsection{Zeitstempel \emph{(timestamp)}}
+\label{TimeStampHelp}
+
+\begin{quote}
+\emph{Die Benutzung des Zeitstempels kann unter
+\menu{Einstellungen}} \msep{} \emph{\menu{Allgemein} an- und
+abgestellt sowie ver�ndert werden.}
+\end{quote}
+\jabref kann automatisch das Feld \emph{timestamp} setzen, das
+das Datum enth�lt, an dem der Eintrag zur Datei hinzugef�gt wurde.
+Die Formatierung des Zeitstempels wird von einem Ausdruck mit Bezeichnern
+bestimmt, die die Position verschiedener Bestandteile des Datums angeben.
+Es folgen einige der verf�gbaren Bezeichner (die Beispiele in Klammern
+beziehen sich auf Mittwoch, den 14. September 2005, 17:45 Uhr):
+
+\begin{labeling}{00.00.0000}
+\item [\texttt{yy}]Jahr (05)
+\item [\texttt{yyyy}]Jahr (2005)
+\item [\texttt{MM}]Monat (09)
+\item [\texttt{dd}]Tag (14)
+\item [\texttt{HH}]Stunde (17)
+\item [\texttt{mm}]Minute (45)
+\end{labeling}
+Diese Bezeichner k�nnen mit Interpunktion und Leerzeichen kombiniert
+werden. Hier einige Beispiele:
+
+\begin{labeling}{dd.MM.yyyy-HH:m}
+\item [\texttt{yyyy.MM.dd}]$\to$ 2005.09.14
+\item [\texttt{yy-MM-dd}]$\to$ 05-09-14
+\item [\texttt{dd.MM.yyyy~HH:mm}]$\to$ 14.09.2005 17:45
+\end{labeling}
+
+\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
+beigeben. Diese Funktion k�nnen Sie im Men� \menu{Einstellungen}
+\msep{} \menu{Allgemein} ein- und ausschalten. Dort k�nnen Sie auch
+den Namen angeben, der in den Eintr�gen erscheinen soll.
+
+In der Standardeinstellung wird Ihr (System-)Benutzername verwendet.
+Der Name wird in dem Feld \emph{owner} eingetragen, das in der Standardeinstellung
+im Tab \emph{General fields} des Eintragseditors angezeigt wird.
+
+
+\subsection{\jabref von der Kommandozeile}
+
+\label{CommandLine}Obwohl \jabref in erster Linie ein Programm
+mit grafischer Benutzeroberfl�che ist, bietet es einige n�tzliche
+Optionen f�r die Kommandozeile und kann sogar Dateikonvertierungen
+durchf�hren, ohne die grafische Benutzeroberfl�che zu �ffnen.
+
+Sie k�nnen eine oder mehrere \bibtex{}-Dateien laden, indem Sie auf
+der Kommandozeile die entsprechenden Dateinamen auflisten. Achten
+Sie darauf, alle gew�nschten Optionen anzugeben, bevor Sie die Dateinamen
+anf�gen. Au�erdem m�ssen Sie sich vergewissern, dass der erste Dateiname
+nicht als Argument einer Option missverstanden werden kann~-- falls
+eine Bool'sche Option wie \texttt{-n} oder \texttt{-l} direkt vor
+einem Dateinamen steht, m�ssen Sie also \texttt{true} als Argument
+angeben. Das Beispielkommando:
+
+\begin{lstlisting}
+jabref -o filetoexport.xml,docbook -n true original.bib
+\end{lstlisting}
+l�dt die Datei \texttt{original.bib}, exportiert sie in das Docbook-Format,
+speichert sie unter dem Namen \texttt{filetoexport.xml} und unterdr�ckt
+das Laden der grafischen Oberfl�che. Das Word \emph{true} verhindert,
+dass der Dateiname als Argument der Option \texttt{-n} interpretiert
+wird.
+
+
+\subsubsection{Kommandozeilen-Optionen}
+\label{kommandozeilenoptionen}
+Im folgenden werden die wichtigsten Optionen und Befehle f�r die Kommandozeile
+vorgestellt.
+
+\begin{itemize}
+\item Hilfe: \texttt{-h}
+
+Diese Option veranlasst \jabref, eine Zusammenfassung der Kommandozeilen"=Optionen
+anzuzeigen und das Programm unmittelbar darauf zu schlie�en.
+
+\item Kein GUI-Modus: \texttt{-n}
+
+Diese Option unterdr�ckt sowohl das \jabref-Fenster als auch den
+Er�ffnungsbildschirm, der normalerweise beim Programmstart angezeigt
+wird. Das Programm wird beendet, sobald die Kommandozeilen-Optionen
+abgearbeitet wurden.
+Diese Option ist n�tzlich, um Dateikonvertierungen von der Kommandozeile
+oder mit Hilfe eines Scripts durchzuf�hren.
+
+\item Sitzung laden: \texttt{-l}
+
+Diese Option veranlasst \jabref, eine gespeicherte Sitzung zu laden,
+sofern eine vorhanden ist, bevor sich das Hauptfenster �ffnet.
+
+\item Datei importieren: \texttt{-i Dateiname{[},Importformat{]}}
+
+Bei dieser Option importiert oder l�dt \jabref eine bestimmte Datei.
+Wenn nur ein Dateiname angegeben wird oder ein Komma und ein {*}-Zeichen
+hinter dem Dateinamen stehen, versucht \jabref, das Dateiformat
+automatisch zu erkennen. Das sollte bei allen \bibtex{}-Dateien ebenso
+funktionieren wie bei Dateien, die in einem der von \jabref unterst�tzten
+Importformate vorliegen. Wenn dem Dateinamen ein Komma und ein Importformat
+folgen, wird der angegebene Importfilter benutzt. Mit der Option \texttt{-h}
+k�nnen Sie sich eine Liste der verf�gbaren Importformate anzeigen
+lassen.
+
+Wenn Sie zus�tzlich eine Export-Option angeben, wird der Import immer
+zuerst ausgef�hrt, bevor die importierte oder geladene Datei an den
+Exportfilter �bergeben wird. Falls die grafische Oberfl�che nicht
+mit der Option \texttt{-n} unterdr�ckt wird, werden alle geladenen
+oder importierten Dateien im Hauptfenster von \jabref angezeigt.
+
+Die Option \texttt{-i} kann nur einmal angegeben werden und nimmt
+als Argument maximal eine Datei.
+
+\item Datei exportieren: \texttt{-o Dateiname{[},Exportformat{]}}
+
+Diese Option veranlasst \jabref, eine Datei zu speichern oder zu
+exportieren, die von derselben Kommandozeile geladen oder importiert
+wurde. Wenn eine Datei mit der Option \texttt{-i} importiert wurde,
+wird diese Datei exportiert. Ansonsten wird die Datei exportiert,
+die \emph{zuletzt}~-- ohne die Option \texttt{-i}~-- angegeben (und
+erfolgreich geladen) wurde.
+
+Wird nur ein Dateiname angegeben, so wird diese Datei im \bibtex{}-Format
+gespeichert. Wenn dem Dateinamen ein Komma und ein Exportformat folgen,
+wird der angegebene Exportfilter benutzt. Auf diese Weise wird auch
+ein benutzerdefinierter Exportfilter angewendet; wenn der Name sowohl
+auf einen Standard-Exportfilter, als auch auf einen benutzerdefinierten
+Exportfilter zutrifft, wird der benutzerdefinierte verwendet.
+
+Mit der Option \texttt{-h} k�nnen Sie sich eine Liste der verf�gbaren
+Exportformate anzeigen lassen.
+
+Falls die Option \texttt{-n} nicht aufgerufen wurde, wird jeder Exportvorgang
+durchgef�hrt, bevor das \jabref-Fenster ge�ffnet wird. Dort werden
+dann die importierten Dateien angezeigt.
+
+Die Option \texttt{-o} kann nur einmal angegeben werden und nimmt
+als Argument maximal eine Datei.
+
+\item Einstellungen exportieren: \texttt{-x Dateiname}
+
+Mit dieser Option k�nnen Sie \jabref veranlassen, alle Benutzer"=Einstellungen
+in eine XML-Datei zu speichern. Nach dem Export startet \jabref
+normal.
+
+\item Einstellungen importieren: \texttt{-p Dateiname}
+
+Mit dieser Option importiert \jabref Benutzer-Einstellungen, die
+mit der Option \texttt{-x} exportiert wurden. Nach dem Import startet
+\jabref normal.
+
+\item Nur benutzte Eintr�ge exportieren:\\ \texttt{-a Dateiname{[}.aux{]},neueBibDatei{[}.bib{]}}
+
+Manchmal ist es n�tzlich, eine \bibtex{}-Datei zu haben, die nur die
+benutzten Eintr�ge enth�lt. Eine Liste dieser benutzten Eintr�ge findet
+sich in einer .aux-Datei (sobald Sie \LaTeX{} aufgerufen haben). \jabref
+kann diese Datei analysieren, um eine neue \bibtex{}-Datei zu erstellen,
+die nur die bekannten und benutzten Eintr�ge enth�lt. Das bedeutet,
+dass ein Eintrag, der in der Standard-\bibtex{}-Datei nicht definiert
+ist, auch nicht in die neue Datei geschrieben werden kann.
+
+\item Aus dem Internet abrufen:\\ \lstinline{--fetch==Name des Fetchers:Suchausdruck}
+
+Die \emph{Fetcher}, also die direkte Suche in Online-Datenbanken,
+die Sie im Men� \menu{Internet} finden, k�nnen auch von der Kommandozeile
+aus gestartet werden. Nutzen Sie dazu die Option \lstinline{--fetch} und geben
+sowohl den Namen des Fetchers (z.B. ">ieee"<, ">medline"< oder ">jstor"<)
+als auch den Suchausdruck oder die ID des gesuchten Mediums an. Beachten
+Sie, dass einige Fetcher eine graphische Oberfl�che (GUI) anzeigen,
+falls Sie eine R�ckmeldung von Ihnen brauchen. Um eine �bersicht der
+verf�gbaren Fetcher zu erhalten, geben Sie \texttt{-{-}fetch} ohne
+Parameter ein.
+
+\end{itemize}
+
+\subsubsection{Externer Zugriff}
+\label{RemoteHelp}
+\begin{quote}
+\emph{Diese Funktion kann unter \menu{Optionen \msep{} Einstellungen \msep{} Erweitert} verwaltet werden.}
+\end{quote}
+
+\tip[]{Beachten Sie, dass das Aktivieren dieser Funktion mit Windows XP SP2 (und m�glicherweise auch mit anderen Konfigurationen) zu einer Meldung f�hren kann, die besagt, dass bestimmte Funktionen des Programms von der Windows-Firewall geblockt wurden. Sie k�nnen die Firewall anweisen, weiterhin zu blocken, denn die Firewall beeintr�chtigt den Externen Zugriff von \jabref nicht.}
+Falls das Abh�ren von externen Zugriffen aktiviert ist, versucht \jabref beim Programmstart, den entsprechenden Port abzuh�ren. Das bedeutet, dass andere Anwendungen Informationen durch diesen Port an \jabref senden k�nnen. \jabref akzeptiert dabei nur lokale Verbindungen, um das Risiko eines Eingriffs von au�erhalb auszuschlie�en.
+
+Mit dem externen Zugriff kann eine zweite Instanz von \jabref erkennen, dass eine erste Instanz bereits l�uft. In diesem Fall leitet die zweite Instanz ihre Kommandozeilen"=Optionen an die erste Instanz weiter und beendet sich selbst direkt im Anschluss~-- sofern die zweite Instanz nicht ausdr�cklich instruiert wurde, im Stand-Alone-Modus (als selbst�ndige Instanz) zu starten.
+
+Die erste \jabref-Instanz liest die Kommandozeilenoptionen und f�hrt die erforderlichen Aktionen aus, z.\,B. das Lesen oder Importieren einer Datei oder das Anh�ngen einer Datei an die aktive Datenbank. Falls eine Datei mit der Option \texttt{-{-}importToOpen} importiert wird, werden die Eintr�ge an die aktive Datei angeh�ngt. Falls keine Datei ge�ffnet ist, wird eine neue Datei angelegt.
+
+\clearpage 
+\section{Anpassung}
+\secttoc
+
+\subsection{Eintragstypen}
+
+\label{CustomEntriesHelp}
+
+\begin{quote}
+\emph{Um Eintragstypen anzupassen, w�hlen Sie den Men�punkt \menu{Optionen}}
+\msep{} \emph{\menu{Eintragstypen anpassen}.}
+\end{quote}
+Wenn Sie einen Eintragstyp anpassen, definieren Sie sowohl sein Erscheinungsbild
+im Eintragseditor als auch die Bedingungen, nach denen \jabref
+einen Eintrag als vollst�ndig akzeptiert. Sie k�nnen die bestehenden
+Eintragstypen ver�ndern und neue hinzuf�gen.
+
+Beachten Sie, dass in diesem Dialog keine �nderungen gespeichert werden,
+solange Sie nicht auf \menu{�bernehmen} oder \menu{OK} klicken.
+Wenn Sie \menu{Abbrechen} anklicken oder einfach den Dialog schlie�en,
+gehen die bislang nicht �bernommenen �nderungen verloren.
+
+
+\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,
+den Sie bearbeiten wollen, und neue Eintragstypen hinzuf�gen. Im mittleren
+Bereich werden die Einstellungen f�r die ben�tigten Felder des ausgew�hlten
+Eintragstyps vorgenommen und im rechten Bereich diejenigen der optionalen
+Felder.
+
+
+\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,
+werden die anderen Bereiche aktualisiert und zeigen die ben�tigten
+und optionalen Felder dieses Eintragstyps.
+
+Um einen neuen Eintragstyp hinzuzuf�gen, geben Sie einfach seinen
+Namen in das Textfeld unter der Typliste ein und klicken \menu{Hinzuf�gen}.
+Der neue Eintragstyp wird zur Liste hinzugef�gt und zur Bearbeitung
+ausgew�hlt.
+
+Um einen eigenen Eintragstyp zu entfernen, w�hlen Sie ihn aus und
+klicken auf \menu{L�schen}. Dieser Vorgang ist nur f�r eigene Eintragstypen
+verf�gbar, die nicht nur Abwandlungen der Standard-Typen sind. Die
+Standard-Eintragstypen k�nnen nicht gel�scht werden.
+
+Um einem Eintragstyp seinen Standardwert zur�ckzugeben, w�hlen Sie
+ihn aus und dr�cken auf \menu{Standard}. Dieser Vorgang ist nur f�r
+Standard-Typen verf�gbar, die bearbeitet wurden.
+
+
+\subsubsection{Eintragstypen bearbeiten}
+
+Wenn ein Eintragstyp ausgew�hlt ist, werden die derzeitigen ben�tigten
+und optionalen Felder im mittleren und rechten Bereich des Dialogfensters
+aufgelistet. Das Vorgehen beim Bearbeiten dieser Listen ist f�r die
+ben�tigten und optionalen Felder identisch.
+
+Um ein neues Feld hinzuzuf�gen, bearbeiten Sie das Textfeld unterhalb
+der Liste oder w�hlen einen Feldnamen aus dem Dropdown-Men� und klicken
+auf \menu{Hinzuf�gen}. Der gew�hlte Feldname erscheint am Ende der
+Liste.
+
+Um eines oder mehrere Felder zu l�schen, w�hlen Sie sie in der Liste
+aus und klicken auf \menu{L�schen}. Die Reihenfolge der Felder k�nnen
+Sie �ndern, indem Sie einen Feldnamen ausw�hlen und die Pfeil"=Buttons
+benutzen, um das Feld nach oben oder nach unten zu verschieben.
+
+Es gibt eine Beschr�nkung beim Anpassen der Eintragstypen; bestimmte
+Typen haben eine ">und/oder"<"=Bedingung in ihren ben�tigten Feldern. Ein
+\emph{book}-Eintrag ist beispielsweise komplett, wenn entweder das
+Feld \emph{author} oder \emph{editor} oder beide gesetzt sind. Diese
+Art von Bedingung kann in einem angepassten Eintragstyp nicht realisiert
+werden.
+
+
+\subsection{Allgemeine Felder festlegen}
+
+\label{GeneralFields}Sie k�nnen dem Eintragseditor eine beliebige
+Anzahl von Tabs hinzuf�gen, die bei allen Eintragstypen sichtbar sind.
+W�hlen Sie dazu den Men�eintrag \menu{Optionen} \msep{} \menu{Allgemeine Felder festlegen}.
+
+Jede Zeile repr�sentiert einen Tab. Der Anfang der Zeile steht f�r
+den Namen des Tabs, gefolgt von einem Doppelpunkt. Anschlie�end listen
+Sie die einzelnen Felder auf, die der Tab enthalten soll, und trennen
+sie jeweils durch ein Semikolon.
+
+Das Beispiel
+
+\begin{lstlisting}
+Allgemeine Felder:url;keywords;doi;pdf
+Zusammenfassung:abstract;annote
+\end{lstlisting}
+ergibt somit einen Tab mit dem Namen >>Allgemeine Felder<<, der
+die Felder \emph{url}, \emph{keywords}, \emph{doi} und \emph{pdf}
+enth�lt, sowie einen zweiten Tab namens >>Zusammenfassung<< mit
+den Feldern \emph{abstract} und \emph{annote}.
+
+
+\subsection{Automatische Erstellung von \texorpdfstring{\bibtex{}"=Keys}{BibTeX-Keys}}
+\label{LabelPatterns}
+\begin{quote}
+\emph{Unter \menu{Optionen \msep{} Einstellungen \msep{} BibTeX"=Key"=Muster} 
+kann man die Felder bestimmen, die zur automatischen Generierung der
+\bibtex{}"=Keys herangezogen werden.}
+\end{quote}
+\jabref verwendet ein Standardmuster zur Generierung von \bibtex{}"=Keys, das Keys wie z.\,B.
+\texttt{Yared1998} erzeugt. Falls der \bibtex{}-Key in der ge�ffneten
+Datei nicht eindeutig sein sollte, wird einer der Buchstaben a-z angef�gt,
+bis ein eindeutiger Key gefunden ist. Dementsprechend k�nnten die
+Labels wie folgt aussehen:
+
+\begin{lstlisting}
+Yared1998
+Yared1998a
+Yared1998b
+(*\ldots*)
+\end{lstlisting}
+Um das Aussehen der \bibtex{}-Keys zu bestimmen, benutzt \jabref
+Feldmarken. Das Key"=Muster kann f�r jeden der vorgegebenen Eintragstypen
+bestimmt werden. Es kann beliebigen Text enthalten, unabh�ngig von
+und zus�tzlich zu den Feldmarken, die angeben, dass ein bestimmtes
+Feld des Eintrags an dieser Stelle des Keys eingef�gt werden soll.
+Eine Feldmarke besteht gew�hnlich aus dem Feldnamen in eckigen Klammern,
+z.\,B. \texttt{{[}volume{]}}. Wenn dieses Feld zum Zeitpunkt der
+Erstellung des Keys leer ist, wird kein Text eingef�gt.
+
+Es gibt au�erdem mehrere spezielle Feldmarken, die nur einen bestimmten
+Teil aus einem Feld extrahieren. Sie werden unten aufgelistet. Nat�rlich
+k�nnen Sie auch neue spezielle Feldmarken vorschlagen.
+
+
+\subsubsection{Spezielle Feldmarken}
+\label{subsub:SpezielleFeldmarken}
+
+\begin{labeling}{auth.auth.eaMM}
+\item [\texttt{{[}auth{]}}]Der Nachname des ersten Autors.
+\item [\texttt{{[}authors{]}}]Die Nachnamen aller Autoren.
+\item [\texttt{{[}authorsN{]}}]Die Nachnamen von bis zu N Autoren. Falls
+es mehr Autoren gibt, wird EtAl angeh�ngt.
+\item [\texttt{{[}authIniN{]}}]Der Anfang des Nachnamens von jedem Autoren,
+wobei nicht mehr als N Buchstaben verwendet werden.
+\item [\texttt{{[}authorIni{]}}]Die ersten 5 Buchstaben des Nachnamens
+des ersten Autors und die Initialen der Nachnamen der restlichen Autoren.
+\item [\texttt{{[}authN{]}}]Die ersten N Buchstaben des Nachnamens des
+ersten Autors.
+\item [\texttt{{[}authN\_M{]}}]Die ersten N Buchstaben des Nachnamens des
+M-ten Autors.
+\item [\texttt{{[}auth.auth.ea{]}}]Die Nachnamen der beiden ersten Autoren
+und \texttt{.ea}, falls es mehr als zwei Autoren sind.
+\item [\texttt{{[}auth.etal{]}}]Der Nachname des ersten Autors und der Nachname des zweiten Autors bei zwei Autoren bzw. \texttt{.etal} bei mehr als zwei Autoren.
+\item [\texttt{{[}authshort{]}}]Der Nachname bei einem Autor; der erste
+Buchstabe der Nachnamen von bis zu drei Autoren, falls mehr als ein
+Autor vorhanden ist. Ein Plus (+) wird angeh�ngt, falls es mehr als
+drei Autoren gibt.
+\end{labeling}
+
+\tip[Anmerkung: ]{Falls es keinen Autor gibt (etwa bei einem Buch mit Herausgeber), benutzen die genannten \texttt{{[}auth\ldots{]}}"=Feldmarken den oder die Herausgeber, die im editor"=Feld angegeben wurden. Also werden die Herausgeber eines Buches ohne Autor f�r die Label"=Erstellung wie Autoren behandelt. Falls Sie dieses Verhalten nicht w�nschen und die Feldmarke stattdessen bei einem leeren author"=Feld zu nichts expandieren soll, m�ssen Sie stattdessen >>pureauth<< verwenden, z.\,B [...]
+
+\begin{labeling}{veryshorttitleMM}
+\item [\texttt{{[}edtr{]}}]Der Nachname des ersten Herausgebers.
+\item [\texttt{{[}editors{]}}]Die Nachnamen aller Herausgeber.
+\item [\texttt{{[}edtrIniN{]}}]Der Anfang des Nachnamens von jedem Herausgeber,
+wobei nicht mehr als N Buchstaben verwendet werden.
+\item [\texttt{{[}editorIni{]}}]Die ersten 5 Buchstaben des Nachnamens
+des Herausgebers und die Initialen der Nachnamen der restlichen Herausgeber.
+\item [\texttt{{[}edtrN{]}}]Die ersten N Buchstaben des Nachnamens des
+ersten Herausgebers.
+\item [\texttt{{[}edtrN\_M{]}}]Die ersten N Buchstaben des Nachnamens des
+M-ten Herausgebers.
+\item [\texttt{{[}edtr.edtr.ea{]}}]Der Nachname der ersten beiden Herausgeber
+und \texttt{.ea}, falls es mehr als zwei Herausgeber sind.
+\item [\texttt{{[}edtrshort{]}}]Der Nachname bei einem Herausgeber; der
+erste Buchstabe der Nachnamen von bis zu drei Herausgebern, falls
+mehr als ein Herausgeber vorhanden ist. Ein Plus (+) wird angeh�ngt,
+falls es mehr als drei Herausgeber gibt.
+\item [\texttt{{[}firstpage{]}}]Die erste Seitenzahl einer Ver�ffentlichung
+(pages).
+\item [\texttt{{[}keywordN{]}}]Stichwort Nummer N aus dem Feld ">keywords"<, gesetzt den Fall, dass die Stichworte durch Komma oder Semikolon voneinander getrennt sind.
+\item [\texttt{{[}lastpage{]}}]Die letzte Seitenzahl einer Ver�ffentlichung
+(pages).
+\item [\texttt{{[}shorttitle{]}}]Die ersten 3 Worte eines Titels (title).
+\item [\texttt{{[}shortyear{]}}]Die letzten 2 Ziffern des Jahrgangs (year).
+\item [\texttt{{[}veryshorttitle{]}}]Die ersten beiden Worte des Titels
+(title), wobei >>the<<, >>a<< und >>an<< ausgelassen werden.
+\end{labeling}
+Hinter einem Feldnamen (oder einem der oben aufgef�hrten Pseudo"=Feldnamen)
+kann ein Modifikator stehen. Modifikatoren werden in der Reihenfolge
+angewendet, in der sie angegeben wurden.
+
+\begin{labeling}{00.00.0000}
+\item [\texttt{:abbr}]K�rzt den Text, der von einem Feldnamen oder speziellen
+Feldmarken gebildet wird. Nur der erste Buchstabe und weitere Buchstaben,
+die auf ein Leerzeichen folgen, werden ber�cksichtigt. So w�rde beispielsweise
+\texttt{[journal:abbr]} die Zeitschrift >>Journal of Fish Biology<< zu
+>>JoFB<< wandeln.
+\item [\texttt{:lower}]Wandelt den von der Feldmarke eingef�gten Text in
+Kleinbuchstaben. So wird beispielsweise bei \texttt{{[}auth:lower{]}}
+der Nachname des ersten Autors in Kleinbuchstaben ausgegeben.
+\end{labeling}
+Das Standardmuster, das \bibtex{}-Keys wie \texttt{Yared1998}
+erzeugt, ist \texttt{{[}auth{]}{[}year{]}}. Wenn Sie keine Key-Muster
+f�r einen bestimmten Eintragstyp angeben, wird dieses vorgegebene
+Muster verwendet. Sie k�nnen das vorgegebene Muster nat�rlich ebenfalls
+anpassen%~-- seine Einstellung befindet sich �ber der Liste der Eintragstypen
+%im Tab \menu{Key-Muster} des Dialogs \menu{Einstellungen}
+.
+
+Beachten Sie, dass \jabref Umlaute und Buchstaben mit Akzenten
+sowie das � beim Erstellen von \bibtex{}-Keys ver�ndert, um m�glichen
+Problemen vorzubeugen. Hierzu einige Beispiele:
+
+\begin{lstlisting}
+D�az Iba�ez (*$\to$*) DiazIbanez
+Str�mb�ck   (*$\to$*) Stroembaeck
+Wa�enhoven  (*$\to$*) Wassenhoven
+\end{lstlisting}
+
+\subsubsection{Ersetzen eines regul�ren Ausdrucks}
+
+Nachdem das Key"=Muster angewendet wurde, um einen \bibtex{}"=Key zu erstellen, k�nnen Sie den Key"=Generator nach einem bestimmten regul�ren Ausdruck suchen und diesen durch eine Zeichenfolge ersetzen lassen. Der regul�re Ausdruck und die Zeichenfolge, die ihn ersetzen soll, werden in den Textfeldern unter der Liste der Key"=Muster eingegeben. Falls das Feld zur Ersetzung des regul�ren Ausdrucks leer ist, werden die mit der Suche �bereinstimmenden regul�ren Ausdr�cke einfach gel�scht.
+
+\subsection{Eintragsvorschau}
+
+\label{PreviewHelp}Die Eintragsvorschau wird mit denselben Mechanismen
+erstellt, die auch bei den Exportfiltern angewendet werden. Bei der
+Vorschau durchl�uft ein Eintrag eins von zwei m�glichen Layouts (die
+sie mit F9 wechseln k�nnen) und erstellt HTML-Code, der im Vorschaudialog
+am unteren Bildschirmrand angezeigt wird.
+
+Aussehen und Inhalt der Vorschau k�nnen mit derselben Syntax ver�ndert
+werden, die f�r die Anpassung der Exportfilter verwendet wird (siehe
+Abschnitt~\ref{CustomExports}).
+
+\subsection{Exportfilter}
+
+\label{CustomExports}Mit \jabref k�nnen Sie Ihre eigenen Exportfilter
+definieren und genau so wie die Standard"=Exportfilter benutzen. Ein
+Exportfilter wird durch eine oder mehrere \emph{Layout"=Dateien} definiert,
+die mittels eingebauter Formatierprogramme das Format der exportierten
+Dateien festlegen. Ihre Layout-Datei m�ssen Sie in einem separaten
+Text\-editor erstellen.
+
+
+\subsubsection{Hinzuf�gen eines Exportfilters}\label{subsubsec:Hinzufuegen-Exportfilter}
+
+Die einzige Voraussetzung f�r einen Exportfilter ist, dass eine Datei
+mit der Endung \texttt{.layout} vorhanden ist. Um einen neuen, eigenen
+Exportfilter hinzuzuf�gen, �ffnen Sie das Dialogfenster \menu{Optionen}
+\msep{} \menu{Verwalte externe Exportfilter} und klicken auf die
+Schaltfl�che \menu{Neu}. Es �ffnet sich ein neues Fenster, in dem
+Sie einen Namen (der als Auswahl im Dateityp"=Dropdownmen� erscheint, wenn man \menu{Datei \msep{} Exportieren} im \jabref"=Hauptfenster w�hlt), eine Pfadangabe zur \texttt{.layout}-Datei und die
+gew�nschte Dateiendung f�r den Exportfilter angeben k�nnen. Wenn Sie
+den Exportfilter benutzen, wird diese Endung im Datei"=Dialog automatisch
+vorgeschlagen.
+
+
+\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
+Layout"=Dateien der Standard"=Exportfilter enth�lt.
+
+Nehmen wir einmal an, dass wir einen HTML-Exportfilter erstellen wollen.
+Der Exportfilter muss lediglich aus einer einzigen \texttt{.layout}-Datei
+bestehen, die in diesem Fall \texttt{html.layout} genannt werden k�nnte.
+Sie k�nnen dar�ber hinaus auch zwei Dateien mit den Namen \texttt{html.begin.layout}
+und \texttt{html.end.layout} anlegen. Die erste dieser beiden Dateien
+enth�lt den Kopfteil der Ausgabe, die zweite den Fu�teil. \jabref
+sucht jedesmal wenn der Exportfilter benutzt wird nach diesen Dateien
+und f�gt sie~-- falls sie gefunden werden~-- w�rtlich vor bzw. nach
+den einzelnen Eintr�gen in die Ausgabe ein.
+
+\tip[]{Beachten Sie, dass sich diese Dateien in demselben Verzeichnis
+wie \texttt{html.layout} befinden und die Namensbestandteile \texttt{.begin}
+bzw. \texttt{.end} enthalten m�ssen.}
+
+\noindent In unserem Beispiel-Exportfilter k�nnten diese Dateien folgenderma�en
+aussehen:
+
+\begin{lstlisting}[title=html.begin.layout]
+<HTML>
+<BODY text="#275856">
+<basefont size="4" color="#2F4958" face="arial">
+\end{lstlisting}
+\begin{lstlisting}[title=html.end.layout]
+</BODY>
+</HTML>
+\end{lstlisting}
+Die Datei \texttt{html.layout} stellt die \emph{Standard}"=Formatvorlage
+f�r den Export eines einzelnen Eintrags bereit. Falls Sie unterschiedliche
+Formatvorlagen f�r verschiedene Eintragstypen anwenden wollen, m�ssen
+Sie typspezifische \texttt{.layout}"=Dateien erstellen. Diese
+m�ssen sich ebenfalls in demselben Verzeichnis wie die Haupt"=Layout"=Datei
+befinden und den Namensbestandteil \texttt{.entrytype} enthalten.
+Der Name des Eintragstyps muss komplett in Kleinbuchstaben geschrieben
+werden. In unserem Beispiel wollen wir eine Formatvorlage f�r Eintr�ge
+des Typs \emph{book} haben, die in der Datei \texttt{html.book.layout}
+abgelegt wird. F�r eine Dissertation w�rden wir die Datei \texttt{html.phdthesis.layout}
+anlegen~-- und so weiter. Diese Dateien sind der Standard"=Layout"=Datei
+sehr �hnlich, nur dass sie lediglich f�r Eintr�ge des entsprechenden
+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}
+
+Layout"=Dateien werden mit einem einfachen mark\-up"=Format erstellt,
+bei dem die Kommandos mit einem >>backslash<< (\texttt{\textbackslash{}})
+eingeleitet werden. Alle Textbestandteile, die nicht als Kommando
+identifiziert werden, gelangen direkt in die Ausgabedatei.
+
+
+\paragraph{Feldkommandos}
+
+Ein beliebiges Wort, vor dem ein backslash steht, z.\,B. \texttt{\textbackslash{}author},
+\texttt{\textbackslash{}editor,} \texttt{\textbackslash{}title} oder
+\texttt{\textbackslash{}year}, wird als Verweis auf das entsprechende
+Feld ausgewertet, das dann direkt in die Ausgabe kopiert wird.
+
+
+\paragraph{Feldformatierer}
+\label{par:Feldformatierer}
+
+Oft muss der Feldinhalt vor der Ausgabe verarbeitet werden. Dies wird
+mit Hilfe eines \emph{Feldformatierers} gemacht~-- einer java class,
+die eine Methode zur Verarbeitung des Feldinhaltes enth�lt.
+
+Ein Formatierer wird angewendet, indem man das Kommando \texttt{\textbackslash{}format}
+gefolgt vom Namen des Formatierers in eckigen Klammern und dem Feldnamen
+in geschweiften Klammern einf�gt, z.\,B.:
+
+\begin{lstlisting}
+\format[ToLowerCase]{\author}
+\end{lstlisting}
+Sie k�nnen auch mehrere Formatierer angeben, getrennt durch Kommas.
+Diese werden nacheinander aufgerufen, und zwar von links nach rechts.
+Das Kommando
+
+\begin{lstlisting}
+\format[ToLowerCase,HTMLChars]{\author}
+\end{lstlisting}
+ruft z.\,B. zun�chst den Formatierer \emph{ToLowerCase} auf, \emph{HTMLChars}
+formatiert anschlie�end das Ergebnis. Auf diese Weise k�nnen Sie eine
+beliebige Anzahl an Formatierern auflisten.
+
+\jabref bietet die folgenden Formatierer, wobei einige von anderen
+abh�ngen:
+
+\begin{labeling}{MMMM}
+\item [\texttt{HTMLChars}]ersetzt \TeX{}-spezifische Sonderzeichen wie
+       \texttt{\{\textbackslash{}\textasciicircum{}a\}} oder \texttt{\{\textbackslash{}\char`\"{}\{o\}\}}
+       durch ihre HTML"=Entsprechungen und �bersetzt die \LaTeX"=Befehle \texttt{\textbackslash emph}, 
+       \lstinline{\textit}, \lstinline{\textbf} in ihre HTML"=Entsprechungen.
+\item [\texttt{HTMLParagraphs}]interpretiert zwei aufeinanderfolgende Zeilenumbr�che 
+       (z.\,B. \lstinline{\n\n}) als Beginn eines neuen Absatzes und erstellt dementsprechend
+       Absatz-HTML-Tags.
+\item [\texttt{XMLChars}]ersetzt \TeX{}-spezifische Sonderzeichen wie       
+       \texttt{\{\textbackslash{}\textasciicircum{}a\}}
+       oder \texttt{\{\textbackslash{}\char`\"{}\{o\}\}} durch ihre XML-Entsprechungen.
+\item [\texttt{CreateDocBookAuthors}]formatiert das author-Feld im DocBook-Stil.
+\item [\texttt{CreateDocBookEditors}]\emph{Dokumentation folgt.}
+\item [\texttt{CurrentDate}]gibt das aktuelle Datum aus. Ohne Argument gibt dieser Formatierer 
+       das aktuelle Datum im Format ">JJJJ.MM.TT HH:MM:SS Z"< (Datum, Zeit und Zeitzone) aus.
+       Mit einem anderen Format-String als Argument kann das Datum angepasst werden. So ergibt
+       \lstinline{\format[CurrentDate]}\texttt{\{}\lstinline{yyyy.MM.dd}\texttt{\}} nur das 
+       Datum, z.\,B. ">2005.11.30"<.
+\item [\texttt{AuthorFirstFirst}]formatiert die Felder \emph{author}/\emph{editor}
+       mit den Vornamen zuerst.
+\item [\texttt{AuthorFirstFirstCommas} oder \texttt{AuthorFirstLastCommas}]formatiert die Felder
+       \emph{author}/\emph{editor} mit den Vornamen zuerst und abgetrennt durch Kommas.
+\item [\texttt{AuthorFirstLastOxfordCommas}] ist �hnlich wie \lstinline{AuthorFirstLastCommas}, 
+       au�er dass das ">and"< zwischen den letzten beiden Namen durch ein Komma eingeleitet
+       wird.
+\item [\texttt{AuthorFirstAbbrLastCommas}]formatiert die
+       Felder \emph{author}/\emph{editor} mit abgek�rzten Vornamen, abgetrennt durch
+       Kommas, mit einem ">and"< zwischen den letzten beiden Namen.
+\item [\texttt{AuthorFirstAbbrLastOxfordCommas}]�hnlich wie \texttt{AuthorFirstAbbrLastCommas}, 
+       au�er dass das ">and"< zwischen den letzten beiden Namen durch ein Komma eingeleitet wird.
+\item [\texttt{AuthorLastFirst}]formatiert die Felder \emph{author}/\emph{editor}
+       mit den Nachnamen zuerst.
+\item [\texttt{AuthorLastFirstAbbreviator}]k�rzt die Vornamen aller Autoren.
+       Dieser Formatierer kann nur angewendet werden, wenn \texttt{AuthorLastFirst}
+       bereits benutzt wurde.
+\item [\texttt{AuthorLastFirstCommas}]formatiert die Felder
+       \emph{author}/\emph{editor} mit den Nachnamen zuerst, abgetrennt durch Kommas,
+       mit einem ">and"< zwischen den letzten beiden Namen.
+\item [\texttt{AuthorLastFirstOxfordCommas}]�hnlich wie
+        \texttt{AuthorLastFirstCommas}, nur dass das ">and"<
+        zwischen den letzten beiden Namen durch ein Komma eingeleitet wird.
+\item [\texttt{AuthorLastFirstAbbrCommas}]formatiert die Felder
+        \emph{author}/\emph{editor} mit Nachnamen zuerst und abgek�rzten Vornamen,
+        abgetrennt durch Kommas, mit einem ">and"< zwischen den letzten
+        beiden Namen.
+\item [\texttt{AuthorLastFirstAbbrOxfordCommas}]�hnlich wie
+        \texttt{AuthorLastFirstAbbrCommas}, au�er dass das ">and"<
+        zwischen den letzten beiden Namen durch ein Komma eingeleitet wird.
+\item [\texttt{AuthorAndsReplacer}]ersetzt >>and<< zwischen den Namen
+       durch >>;<<, zwischen den letzten beiden Autoren steht >>\&<<.
+\item [\texttt{AuthorAndsCommaReplacer}]ersetzt >>and<< zwischen den
+       Namen durch ein Komma (,) sowie >>\&<< zwischen den beiden letzten.
+\item [\texttt{AuthorOrgSci}]Der erste Autor erscheint als "Nachname, Vorname", 
+       alle anderen als "Vorname Nachname". Vornamen werden abgek�rzt.
+\item [\texttt{AuthorAbbreviator}]\emph{Dokumentation folgt.}
+\item [\texttt{AuthorNatBib}]formatiert Autorennamen im Natbib-Stil, also nur mit Nachnamen;
+       zwei Autoren werden durch ein ">and"< voneinander getrennt, bei mehr als zwei 
+       Autoren wird der erste angegeben, gefolgt von ">et al."<
+\item [\texttt{NoSpaceBetweenAbbreviations}]Leerzeichen zwischen mehreren abgek�rzten 
+       Vornamen werden gel�scht.
+\item [\texttt{FileLink(Dateityp)}] Wenn kein Argument angegeben
+        wird, gibt dieser Formatierer den ersten externen Dateityp aus, der
+        in dem Feld ">file"< angegeben ist. Dieser Formatierer nimmt den Namen 
+        eines Dateityps als optionales
+        Argument, das in Klammern nach dem Namen des Formatierers angegeben
+        wird. So wird etwa mit \texttt{\textbackslash format[FileLink(pdf)] \{%
+        \textbackslash file\}}
+        der Dateityp \lstinline{pdf} als Argument angegeben. Wenn ein Argument
+        mitgegeben wird, w�hlt der Formatierer den ersten Dateilink des
+        entsprechenden Typs. Im Beispiel wird der Pfad zum ersten PDF"=Link
+        ausgegeben.
+\item [\texttt{FormatPagesForHTML}]ersetzt >>\texttt{-{}-}<< durch >>\texttt{-}<<.
+\item [\texttt{FormatPagesForXML}]ersetzt >>\texttt{-{}-}<< durch einen
+       XML en-dash (>>--<<).
+\item [\texttt{Replace(regexp,ersetzedurch)}]f�hrt eine Ersetzung
+       mit einem Regul�ren Ausdruck durch. Um diesen Formatierer zu
+       benutzen, muss ein zweiteiliges Argument mitgegeben werden. Die Teile
+       werden durch ein Komma getrennt. Will man ein Komma ausgeben lassen,
+       muss man es maskieren (\lstinline{\,}).
+       Der erste Teil ist der Regul�re Ausdruck, nach dem gesucht wird.
+       Er wird normal geschrieben, ohne Backslashes (\lstinline{\}) zu maskieren.\footnote{%
+       Eine Beschreibung von Regul�ren Ausdr�cken ist hier zu finden:
+       \url{http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html}.}
+       Der zweite Teil ist der Text, der f�r alle Treffer eingesetzt werden soll.
+\item [\texttt{RemoveBrackets}]entfernt alle geschweiften Klammern (>>\{<<
+       und >>\}<<).
+\item [\texttt{RemoveBracketsAddComma}]\emph{Dokumentation folgt.}
+\item [\texttt{RemoveWhitespace}]l�scht alle Leerzeichen.
+\item [\texttt{RemoveLatexCommands}]entfernt \LaTeX-Befehle wie \lstinline{\emph},
+       \lstinline{\textbf} etc. Zusammen mit \texttt{HTMLChars}
+       oder \texttt{XMLChars} sollte dieser Formatierer zuletzt aufgerufen
+       werden.
+\item [\texttt{RemoveTilde}]ersetzt das Tilde-Zeichen (\lstinline{~}), das in \LaTeX\ als festes
+       Leerzeichen dient, durch ein normales Leerzeichen. N�tzlich in Kombination mit dem
+       Namens"=Formatierer (siehe Abschnitt \nameref{NameFormatter}).
+\item [\texttt{ToLowerCase}]macht aus allen Buchstaben Kleinbuchstaben.
+\item [\texttt{ToUpperCase}]macht aus allen Buchstaben Gro�buchstaben.
+\item [\texttt{GetOpenOfficeType}]gibt die Nummer wieder,
+        die vom bibliographischen System von OpenOffice.org (Versionen
+        1.x und 2.x) benutzt wird, um den Typ dieses Eintrags zu
+        bezeichnen.
+\item [\texttt{RTFChars}]ersetzt alle \TeX-spezifischen
+        Sonderzeichen (z.B. \texttt{\{\textbackslash\^{}a\}} oder 
+        \texttt{\{\textbackslash \textquotedbl\{o\}\}}) durch ihre
+        RTF"=Entsprechung und �bersetzt \LaTeX-Befehle wie \lstinline{\emph}, 
+        \lstinline{\textit}, \lstinline{\textbf} in ihre RTF"=Entsprechungen.
+\end{labeling}
+Falls keiner der verf�gbaren Formatierer das Ergebnis erzielt, das
+Sie erreichen m�chten, k�nnen Sie Ihren eigenen Formatierer hinzuf�gen,
+indem Sie das \lstinline{net.sf.jabref.export.layout.LayoutFormatter}-Interface
+implementieren. Wenn Sie in das Paket \lstinline{net.sf.jabref.export.layout.format} Ihre Klasse (class) einf�gen, k�nnen Sie den Formatierer mit seinem Klassennamen aufrufen,
+so wie auch die Standard"=Formatierer. Ansonsten m�ssen Sie den Formatierer
+mit seinem vollen Namen aufrufen (inklusive Paketname). In jedem Fall
+muss der Formatierer in ihrem classpath sein, wenn Sie \jabref
+starten.
+
+\paragraph{Eigene \texorpdfstring{Namens"=Formatierer}{Namens-Formatierer} verwenden}
+\label{NameFormatter}
+
+Mit \jabref~2.2 ist es jetzt m�glich, eigene Namens"=Formatierer zu definieren. Dazu wird die Syntax der Bibliographie"=Stile (bst) verwendet. Das erlaubt �u�erste Flexibilit�t, ist allerdings aufw�ndig in der Schreibweise.
+
+Sie k�nnen unter \menu{Optionen \msep Einstellungen \msep Namens"=Formatierer} Ihren eigenen Formatierer schreiben. Benutzen Sie das folgende Format:
+\begin{lstlisting}
+  <Fall1>@<Bereich11>@<Format>@<Bereich12>@<Format>@<Bereich13>(*\ldots*)@@<br>
+  <Fall2>@<Bereich21>@(*\ldots*)
+\end{lstlisting}
+Dieses Format teilt die Aufgabe, eine Liste von Autoren zu formatieren, in unterschiedliche F�lle abh�ngig von der Zahl der Autoren (das ist n�tig, weil manche Formate sich je nach der Zahl der Autoren unterscheiden). Die einzelnen F�lle werden durch \texttt{@@} voneinander getrennt und enthalten Anweisungen, wie jeder einzelne Autor in diesem Fall zu formatieren ist. Diese Anweisungen werden durch \texttt{@} getrennt.
+
+F�lle werden durch Ganzzahlen (1, 2, 3, etc.) oder das Zeichen \texttt{*} (alle Autoren) definiert. Sie geben die nachfolgenden Anweisungen an den Formatierer weiter, falls weniger oder gleich viele Autoren vorhanden sind.
+
+Bereiche sind entweder \texttt{<Ganzzahl>..<Ganzzahl>}, \texttt{<Ganzzahl>} oder das Zeichen \texttt{*}. Die Liste der Autoren f�ngt bei 1 an. Die Ganzzahlen k�nnen einen negativen Wert haben, um vom letzten Autor der Liste zu starten, wobei -1 der Wert f�r den letzten Autor ist.
+
+Als Beispiel dient die Autorenliste ">Joe Doe and Mary Jane and Bruce Bar and Arthur Kay"<:
+\begin{itemize}
+  \item 1..3 betrifft Joe, Mary und Bruce
+  \item 4..4 betrifft Arthur 
+  \item * betrifft alle
+  \item 2..-1 betrifft Mary, Bruce und Arthur
+\end{itemize}
+
+Die \texttt{<Format>}-Strings nutzen das BibTeX-Namensschema: Die vier Buchstaben v, f, l, j stehen f�r die Namensteile von, Vorname (first), Nachname (last) und Junior und werden in geschweiften Klammern gesetzt. Ein einzelner Buchstabe v, f, l, j bedeutet, dass der Name abgek�rzt werden soll. Wenn einer dieser Buchstaben oder Buchstabenpaare vorkommen, gibt \jabref alle entsprechenden Namen (eventuell abgek�rzt) aus, aber der Ausdruck in geschweiften Klammern wird nur ausgegeben, wenn  [...]
+
+Beispielsweise wird beim Format ">\texttt{\{ll\} \{vv \{von Part\}\} \{ff\}}"< die Autorenliste ">Mary Kay and John von Neumann"< von \jabref als ">Kay~~Mary"< (mit zwei Leerzeichen) und ">Neumann von von Part John"< ausgegeben.
+
+Zwei weitere Beispiele sollen das Ganze verdeutlichen; die Dokumentation von \bibtex gibt weitere Hinweise.
+
+Kurzes Beispiel: ">\texttt{\{ll\}, \{f.\}}"< formatiert ">\lstinline{Joe Doe}"< als ">\lstinline{Doe, J.}"<
+
+Ausf�hrliches Beispiel: Um 
+\begin{quote}
+">Joe Doe and Mary Jane and Bruce Bar and Arthur Kay"<
+\end{quote}
+als
+\begin{quote}
+">Doe, J., Jane, M., Bar, B. and Kay, A."<
+\end{quote}
+zu formatieren, nutzt man
+\begin{lstlisting}
+1@*@{ll}, {f}.@@2 at 1@{ll}, {f}. at 2@ and {ll}, {f}.@@*@1..-3@{ll}, {f}., @-2@{ll}, {f}. at -1@ and {ll}, {f}.
+\end{lstlisting}
+Falls jemand eine bessere Dokumentation hierzu verfassen m�chte: Wenden Sie sich einfach an die \jabref"=Maililnglisten!
+
+\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
+Text \texttt{(Hrsg.)} haben wollen, brauchen wir Folgendes:
+
+\begin{lstlisting}
+\format[HTMLChars,AuthorFirstFirst]{\editor} (Hrsg.)
+\end{lstlisting}
+Wenn nun aber das \emph{editor}-Feld leer ist~-- m�glicherweise ist
+es f�r den Eintrag, der exportiert werden soll, nicht erforderlich~--,
+dann w�rde das \texttt{(Hrsg.)} dennoch erscheinen. Das kann man mit
+den Kommandos \texttt{\textbackslash{}begin} und \texttt{\textbackslash{}end}
+verhindern:
+
+\begin{lstlisting}
+\begin{editor}
+\format[HTMLChars,AuthorFirstFirst]{\editor} (Hrsg.)
+\end{editor}
+\end{lstlisting}
+Die Kommandos \texttt{\textbackslash{}begin} und \texttt{\textbackslash{}end}
+sorgen daf�r, dass der Text, den sie einschlie�en, nur dann ausgegeben
+wird, wenn das Feld, auf das in den geschweiften Klammern verwiesen
+wird, f�r den zu exportierenden Eintrag definiert und damit nicht
+leer ist.
+
+\tip{Das Benutzen der Kommandos \texttt{\textbackslash{}begin} und
+\texttt{\textbackslash{}end} ist ein Schl�ssel zum Erstellen von Layout-Dateien,
+die mit einer Vielzahl von Eintragstypen umgehen k�nnen.}
+
+
+\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
+gruppierte Ausgabe ist der bedingten Ausgabe sehr �hnlich, au�er dass
+der Text zwischen den Kommandos nur ausgegeben wird, wenn das Feld,
+auf das in den geschweiften Klammern verwiesen wird, unterschiedliche
+Werte enth�lt.
+
+Nehmen wir zum Beispiel an, dass wir die Ausgabe nach dem \emph{keyword}
+(Stichwort) gruppieren wollen. Bevor die Datei exportiert wird, m�ssen
+die Eintr�ge nach dem \emph{keyword} sortiert worden sein. Dann benutzen
+Sie die folgenden Kommandos, um nach \emph{keyword} zu gruppieren:
+
+\begin{lstlisting}
+\begingroup{keywords}
+New Category: \format[HTMLChars]{\keywords}
+\endgroup{keywords}
+\end{lstlisting}
+
+\subsection{Importfilter}
+
+\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 \bibtex{}-Eintr�ge erzeugen. Sie k�nnen vorkompilierte Importer einbinden, die Sie vielleicht 
+von SourceForge erhalten haben (siehe Abschnitt ">\nameref{subsec:Ihre-Arbeit}"<). Sie k�nnen auch
+mit Grundkenntnissen der Java"=Programmierung eigene Importer f�r Referenzquellen, die f�r Sie wichtig sind,
+erstellen oder neue, verbesserte Versionen existierender Importer einbinden, ohne \jabref neu zu
+kompilieren.
+
+\paragraph{Vorrangsregeln}
+
+Externe Importfilter haben Vorrang vor Standard-Importern. So k�nnen Sie mit Ihren Importern
+die existierenden Importer in der automatischen Formaterkennung und an der Kommandozeile in \jabref �berschreiben. Externe Importfilter selbst sind dann nach Namen sortiert.
+
+\subsubsection{Einen externen Importfilter hinzuf�gen}
+
+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 
+\menu{Optionen \msep{} Verwalte externe Importfilter}, und klicken Sie auf
+\menu{Aus Klassenpfad hinzuf�gen}. Ein Dateiauswahl"=Fenster erscheint, 
+mit dem Sie den Klassenpfad des Importers w�hlen, das 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{} Importieren \msep{} Externe Importfilter} und 
+\menu{Datei \msep{} Importieren und Anh�ngen \msep{} Externe Importfilter}.
+
+\tip[Bitte beachten Sie: ]{Wenn Sie die Klassen in ein anderes Verzeichnis verschieben,
+m�ssen Sie den Importer entfernen und neu hinzuf�gen. Wenn Sie einen Importfilter
+mit einem bereits vorhandenen Namen registrieren, ersetzt \jabref den vorhandenen
+externen Importfilter. Auch wenn es in manchen F�llen m�glich ist, einen schon registrierten
+Importer zu aktualisieren ohne \jabref neu zu starten (n�mlich dann,
+wenn der Importer nicht im Klassenpfad von \jabref ist), empfehlen wir, grunds�tzlich
+\jabref neu zu starten, wenn Sie ein Update eines externen Importers durchgef�hrt haben.
+Sie k�nnen auch Importer aus ZIP- oder JAR-Archiven registrieren, w�hlen Sie einfach
+\emph{\menu{Aus Archiv-Datei hinzuf�gen}}, dann das ZIP- oder JAR-Archiv und dann den Eintrag
+(Klassendatei), der den neuen Importer darstellt.}
+
+\subsubsection{Einen Importfilter entwickeln}
+
+Bitte schauen Sie auf unseren Download-Seiten nach Beispielen und n�tzlichen Dateien zur 
+Entwicklung Ihres Importfilters.
+
+\paragraph{Ein einfaches Beispiel}
+
+Angenommen, wir wollen Dateien der folgenden Form importieren:
+\begin{lstlisting}
+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
+\end{lstlisting}
+
+\subparagraph{SimpleCsvImporter Erstellen}
+
+Erzeugen Sie in einem Text"=Editor eine Klasse, die von \texttt{ImportFormat} abgeleitet
+ist und die folgende Methoden implementiert:\\
+\texttt{getFormatName()}, 
+\texttt{isRecognizedFormat()}
+und \texttt{importEntries()}.\\
+Hier ein Beispiel:
+\begin{lstlisting}
+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;
+  }
+}
+\end{lstlisting}
+
+\subparagraph{SimpleCsvImporter �bersetzen}
+
+Beachten Sie, dass die Beispielklasse im Default"=Package liegt. Angenommen, sie liegt unter
+\\\lstinline{/meinpfad/SimpleCsvImporter.java}, die Datei \texttt{JabRef-2.0.jar} ist im gleichen Verzeichnis wie
+\lstinline{SimpleCsvImporter.java} und Java ist in Ihrem Kommandopfad. 
+Kompilieren Sie die Klasse mit JSDK 1.4 zum Beispiel mit folgendem Kommandozeilen"=Aufruf: 
+\begin{lstlisting}
+javac -classpath JabRef-2.0.jar SimpleCsvImporter.java
+\end{lstlisting}
+Nun sollte dort auch eine Datei \texttt{/mypath/SimpleCsvImporter.class} liegen.
+
+\subparagraph{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 
+klicken Sie \menu{Klassenpfad ausw�hlen}. W�hlen Sie anschlie�end 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} 
+des \jabref-Hauptfensters auftauchen.
+
+\subsection{Teilen Sie Ihre Arbeit mit anderen}
+\label{subsec:Ihre-Arbeit}
+Mit externen Layout-Dateien und Importfiltern ist es einfach, Ihre eigenen Export-Formate und Importfilter
+mit anderen Anwendern gemeinsam zu benutzen. Falls Sie einen Exportfilter oder einen Importfilter
+f�r ein Format erstellt haben, das noch nicht von \jabref unterst�tzt wird,
+oder falls Sie einen bestehenden Exportfilter oder Importfilter verbessern, m�chten
+wir Sie ermutigen, Ihre Arbeit auf der \href{http://sourceforge.net/projects/jabref/}{SourceForge.net"=Seite} bereitzustellen.
+Dasselbe gilt f�r Formatierklassen, die Sie schreiben. Wir w�rden
+uns freuen, eine Sammlung von bereitgestellten Layout"=Dateien verteilen
+zu k�nnen oder die Standard"=Exportfilter, -Formatierer und -Importfilter
+zu erweitern.
+
+\clearpage 
+\section{Tastenk�rzel}
+
+Die Men�s k�nnen alle �ber Tastenk�rzel angesteuert werden, die meisten
+Men�befehle ebenfalls. Das ist immer am unterstrichenen Buchstaben
+sichtbar.
+
+Es folgt ein �berblick �ber die wichtigsten Tastenk�rzel ohne Anspruch
+auf Vollst�ndigkeit~\ldots{}
+
+\begin{longtable}{p{66mm}p{33mm}}
+\textbf{Datei (Forts.)}&
+\tabularnewline
+\endhead
+\textbf{Datei}&
+\tabularnewline
+\endfirsthead
+Datei �ffnen&
+STRG-O\tabularnewline
+Datei speichern&
+STRG-S\tabularnewline
+Datei speichern unter~\ldots{}&
+STRG-SHIFT-S\tabularnewline
+Datei schlie�en&
+STRG-W\tabularnewline
+Sitzung speichern&
+F11\tabularnewline
+Sitzung laden&
+F12\tabularnewline
+\jabref beenden&
+STRG-Q\tabularnewline
+\end{longtable}
+
+\begin{longtable}{p{66mm}p{33mm}}
+\textbf{Bearbeiten (Forts.)}&
+\tabularnewline
+\endhead
+\textbf{Bearbeiten}&
+\tabularnewline
+\endfirsthead
+Neuer Eintrag&
+STRG-N\tabularnewline
+Neuer Eintrag -- Article&
+STRG-SHIFT-A\tabularnewline
+Neuer Eintrag -- Book&
+STRG-SHIFT-B\tabularnewline
+Neuer Eintrag -- Phdthesis&
+STRG-SHIFT-T\tabularnewline
+Neuer Eintrag -- Inbook&
+STRG-SHIFT-I\tabularnewline
+Neuer Eintrag -- Mastersthesis&
+STRG-SHIFT-M\tabularnewline
+Neuer Eintrag -- Proceedings&
+STRG-SHIFT-P\tabularnewline
+Neuer Eintrag -- Unpublished&
+STRG-SHIFT-U\tabularnewline
+Neuer Eintrag aus Klartext&
+STRG-SHIFT-N\tabularnewline
+Eintrag bearbeiten&
+STRG-E\tabularnewline
+\bibtex{}-Keys generieren&
+STRG-G\tabularnewline
+R�ckg�ngig&
+STRG-Y\tabularnewline
+Wiederholen&
+STRG-Z\tabularnewline
+Ausschneiden&
+STRG-X\tabularnewline
+Kopieren&
+STRG-C\tabularnewline
+Einf�gen&
+STRG-V\tabularnewline
+L�schen&
+Entf\tabularnewline
+Alles ausw�hlen&
+STRG-A\tabularnewline
+\texttt{\textbackslash{}cite\{BibTeX-Key\}} kopieren&
+STRG-K\tabularnewline
+Eintr�ge markieren&
+STRG-M\tabularnewline
+Markierung l�schen&
+STRG-SHIFT-M\tabularnewline
+Pr�ambel bearbeiten&
+STRG-P\tabularnewline
+Strings bearbeiten&
+STRG-T\tabularnewline
+\end{longtable}
+
+\begin{longtable}{p{66mm}p{33mm}}
+\textbf{Ansicht / Navigation (Forts.)}&
+\tabularnewline
+\endhead
+\textbf{Ansicht / Navigation}&
+\tabularnewline
+\endfirsthead
+Zur n�chsten ge�ffneten Datei springen&
+STRG-Bild ab\tabularnewline
+Zum vorherigen TAB springen&
+STRG-Bild auf\tabularnewline
+Gruppendialog ein-/ausblenden&
+STRG-SHIFT-G\tabularnewline
+Eintragsvorschau ein-/ausblenden&
+STRG-F9\tabularnewline
+Layout der Eintragsvorschau wechseln&
+F9\tabularnewline
+\end{longtable}
+
+\begin{longtable}{p{66mm}p{33mm}}
+\textbf{Externe Programme / Internet (Forts.)}&
+\tabularnewline
+\endhead
+\textbf{Externe Programme / Internet}&
+\tabularnewline
+\endfirsthead
+Literaturangaben in \LyX einf�gen&
+STRG-L\tabularnewline
+Literaturangaben in WinEdt einf�gen&
+STRG-SHIFT-W\tabularnewline
+URL/DOI �ffnen&
+F3\tabularnewline
+PDF/PS �ffnen&
+F4\tabularnewline
+PDF-Links synchronisieren&
+SHIFT-F4\tabularnewline
+PS-Links synchronisieren&
+STRG-F4\tabularnewline
+Medline abrufen&
+F5\tabularnewline
+CiteSeer abrufen&
+F6\tabularnewline
+Literaturangaben von CiteSeer abrufen&
+F7\tabularnewline
+\end{longtable}
+
+\begin{longtable}{p{66mm}p{33mm}}
+\textbf{Extras / Sonstiges (Forts.)}&
+\tabularnewline
+\endhead
+\textbf{Extras / Sonstiges}&
+\tabularnewline
+\endfirsthead
+Suchen&
+STRG-F\tabularnewline
+Weitersuchen&
+STRG-SHIFT-F\tabularnewline
+Suchen \& Ersetzen&
+STRG-R\tabularnewline
+Hilfe&
+F1\tabularnewline
+\end{longtable}
+
+\clearpage 
+\section[Fragen und Antworten]{H�ufige Fragen und Antworten}\label{sec:faq}
+%\secttoc
+
+Die folgenden Fragen und Antworten sind der \href{http://jabref.sourceforge.net/faq.php}{\jabref-Homepage} entnommen. Falls Sie dar�ber hinaus Fragen haben, die das Handbuch nicht beantworten konnte, haben Sie folgende M�glichkeiten, zu einer Antwort zu kommen:
+\begin{enumerate}
+	\item Durchsuchen Sie die \href{http://sourceforge.net/forum/?group_id=92314}{Foren} auf der Projektseite bei Sourceforge.
+	\item Durchsuchen Sie das \href{http://sourceforge.net/mailarchive/forum.php?forum_name=jabref-users}{Archiv} der \jabref-Mailingliste.
+	\item Stellen Sie Ihre Frage in einem der Foren oder auf der \href{http://sourceforge.net/mail/?group_id=92314}{\jabref-Mailingliste}.
+\end{enumerate}
+
+\faq{L�uft \jabref unter freiem Java (Classpath, Kaffee GCJ etc.)?}{Am 13.~November~2006 hat Sun sein Java unter die GNU General Public License (Version~2) gestellt, so dass die Antwort ">Ja"< lautet. Ansonsten ist zu sagen, dass eine unserer Abh�ngigkeiten derzeit zu einem Absturz f�hrt, wenn mit einer anderen Java API als der von Sun gearbeitet wird. Das gilt f�r Version 0.92 von Classpath.}
+
+\faq{\label{faq-linux}\jabref startet nicht unter Linux. Was kann ich tun?}{\jabref l�uft unter Linux, wenn Sie eine Java Runtime Environment (JRE) von Sun in der Version~1.4.2 oder einer neueren Version verwenden. Falls \jabref dennoch nicht starten sollte, k�nnen Sie folgende Fehlersuche durchf�hren:
+Starten Sie \texttt{java -{-}version} von der Kommandozeile. Falls dabei kein Produkt von Sun Microsystems verwendet wird (sondern beispielsweise angezeigt wird, dass Sie GCJ VM verwenden), selbst wenn Sie die JRE von Sun installiert haben, m�ssen Sie Ihr Setup anpassen. Da das Vorgehen daf�r sehr von Ihrer Linux-Distribution abh�ngt, k�nnen wir keine Hinweise f�r jede m�gliche Konstellation geben.
+Unter Debian/Ubuntu k�nnen Sie die Einstellungen anpassen, indem Sie \texttt{sudo update-alternatives -{-}config java} aufrufen (dazu brauchen Sie admin-Rechte). In dem Dialog, der daraufhin erscheint, w�hlen Sie die Sun JDK oder JRE. Alternativ k�nnen Sie auch nach der Java-Programmdatei suchen und diese direkt ausf�hren. In Ubuntu findet man Java gew�hnlich unter \texttt{/usr\slash{}lib\slash{}jvm\slash{}java-1.5.0-sun\slash{}jre\slash{}bin\slash{}java}.
+Wenn Sie keine admin-Rechte auf dem Computer haben, k�nnen Sie die Sun JRE in ihrem Home-Verzeichnis installieren. Sie m�ssen dann darauf achten, dass Sie die richtige Programmdatei aufrufen. Wenn Sie die JRE z.\,B. in einen Ordner namens ">java"< in ihrem Home-Verzeichnis installiert haben, geben Sie \texttt{\texttildelow{}/java/jre/bin/java -jar JabRef-2.1.jar} (bzw. die entsprechende Versionsnummer) in der Kommandozeile ein.}
+
+\clearpage\faq{Ich arbeite unter Ubuntu und \jabref startet, wenn ich auf das Icon klicke, aber nicht von der Kommandozeile. Wo liegt das Problem?}{Sie haben mehrere Java Virtual Machines installiert und von der Kommandozeile wird die falsche gew�hlt. Schauen Sie unter Frage \ref{faq-linux} nach, wie Sie die Einstellungen �ndern k�nnen.}
+
+\faq{Wie kann ich verhindern, dass \jabref beim Speichern der .bib"=Datei in bestimmten Feldern (wie \texttt{title}) Zeilenumbr�che einf�gt?}{�fnnen Sie \menu{Optionen \msep{} Einstellungen}. Im Bereich \menu{Allgemein} gibt es die Option \menu{Beim Speichern keinen Zeilenumbruch in den folgenden Feldern einf�gen}. Diese Option enth�lt eine Liste von Feldnamen. In Feldern, die Sie dieser Liste hinzuf�gen (abgetrennt mit einem Semikolon) wird beim Speichern kein Zeilenumbruch hinzugef�gt.}
+
+\faq{Mein Virenscanner sagt mir, dass \jabref ein Virus ist. Ist der Server gef�hrdet?}{Nein, aber der Windows"=Installer benutzt das \href{http://nsis.sourceforge.net/}{Nullsoft Scriptable Install System (NSIS)} in der Version~2.18 (seit \jabref~2.1), das ungl�cklicherweise Installer produziert, die von einigen Virenscannern als Virus eingesch�tzt werden. Wenn Sie mehr dar�ber erfahren wollen, sehen Sie sich die \href{http://forums.winamp.com/showthread.php?postid=1977648}{Diskussion im [...]
+
+Als Workaround und falls Sie Bedenken haben, den Installer zu benutzen, k�nnen Sie immer die plattformunabh�ngige jar"=Datei benutzen (siehe dazu Abschnitt ">\nameref{subsub:jar}"<).}
+
+\clearpage 
+\section{Entwicklung}
+\secttoc
+\bigskip
+
+\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}}.
+Dort gibt es Foren, in denen Sie Ihre Fragen stellen k�nnen, und eine
+Mailingliste rund um \jabref. Auch Ihre W�nsche \emph{(Feature
+Requests)} und Fehlermeldungen \emph{(Bug Reports)} k�nnen Sie dort
+loswerden. Um sich direkt als Entwickler einzubringen, wenden Sie
+sich an einen der beiden Maintainer (Morten O. Alver und Nizar N.
+Batada)~-- die E-Mail-Adressen finden Sie auf der Projektseite bei
+\emph{Sourceforge}. Sie brauchen lediglich einen Sourceforge-Login,
+der dann f�r das Projekt freigeschaltet werden kann.
+
+
+\subsection{Beschr�nkungen und bekannte Probleme (Bugs)}
+
+\begin{quote}
+\emph{Da sich die Software schneller entwickelt als dieses Handbuch, muss an dieser Stelle auf die \href{http://sourceforge.net/projects/jabref/}{Projektseite bei Sourceforge} verwiesen werden.}
+\end{quote}
+
+\subsection{Danksagung}
+
+Neben den Entwicklern, die die Hilfe"=Seiten des Programms geschrieben haben, danke ich Robert Bitsche, Daniel F�rderer, Thomas Fritz, Tim Hoffmann, Axel Junge, Jan Suhr und Tobias Wolf f�r ihre hilfreichen Tipps und Anmerkungen zum Handbuch.
+
+Seit den Anf�ngen als \emph{BibKeeper} (von Morten O.~Alver) und \emph{JBibtexManager} (von Nizar N.~Batada) haben
+zahlreiche Personen dazu beigetragen, dass \jabrefversion{} zu dem
+geworden ist, was es ist. Wer zum Entwicklerteam geh�rt und wer alles zum Programm beigetragen hat, k�nnen Sie im Programm unter \menu{Hilfe \msep{} �ber JabRef} nachsehen.
+
+\subsection{Lizenz}
+
+\jabref ist frei verf�gbar unter den Bedingungen der \href{http://www.gnu.org/copyleft/gpl.html}{GNU General Public License}. Es gibt unterschiedliche Softwarepakete, die von \jabref genutzt werden. Wenn Sie sich �ber die Lizenzbestimmungen dieser Fremdsoftware informieren wollen, schauen Sie bitte unter \menu{Hilfe \msep{} �ber JabRef} nach.
+
+\appendix
+\newpage
+\nocite{*}
+\hypertarget{bibliography}{}
+\bibliographystyle{jurabib}
+\bibliography{JabRef-UserManual_de}
+
+
+\newpage
+\addsec[Versionsgeschichte]{Versionsgeschichte dieses Handbuchs}
+
+\label{RevisionHistory}
+
+%\begin{revhist}{\versiondate}%endg�ltiges Datum}
+%\item �nderung
+%\end{revhist}
+
+\begin{revhist}{\versiondate}%26.\,1.\,2010}
+\item Lizenz ge�ndert
+\item Format von A4 auf A5 ge�ndert (bessere Bildschirmlesbarkeit)
+\item Abschnitte ">\nameref{Export-OOo}"< und ">\nameref{CustomExports}"< aktualisiert
+\item Abschnitte ">\nameref{search-regular-expressions}"< und ">\nameref{kommandozeilenoptionen}"< erg�nzt
+\item Versionsnummer (2.4) angepasst
+\item Kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{1.\,12.\,2007}
+\item Abschnitt ">\nameref{NameFormatter}"< hinzugef�gt
+\item Abschnitte ">\nameref{par:Feldformatierer}"< und ">\nameref{subsub:SpezielleFeldmarken}"< erg�nzt
+\end{revhist}
+
+\begin{revhist}{4.\,7.\,2007}
+\item Abschnitt ">\nameref{FileLinks}"< hinzugef�gt
+\item Abschnitt ">Links zu externen Dateien"< in \nameref{ExternalFiles} umbenannt
+\item Kleine �nderungen
+\end{revhist}
+
+\begin{revhist}{8.\,6.\,2007}
+\item Abschnitt ">Import und Export"< in zwei Abschnitte unterteilt
+\item Abschnitt ">\nameref{sec:faq}"< erg�nzt
+\item Abschnitte ">\nameref{EntryEditorHelp}"< und ">\nameref{subsec:System-Voraussetzungen}"< angepasst
+\item Fehler im Abschnitt ">\nameref{PreviewHelp}"< korrigiert
+\item Versionsnummer angepasst
+\item Beschreibung der Felder ">doi"< und ">eid"< hinzugef�gt
+\item Fehler im Link zum Mail-Archiv beseitigt
+\item Einleitung leicht erg�nzt
+\item Generelle �berarbeitung des Dokuments
+\end{revhist}
+
+\begin{revhist}{18.\,4.\,2007}
+\item Abschnitte ">\nameref{LabelPatterns}"<, ">\nameref{StringEditorHelp}"< und ">\nameref{par:Feldformatierer}"< aktualisiert
+\item Fehler in Abschnitt ">\nameref{subsec:Starten-Kommandozeile}"< entfernt
+\item \jabref-Logo ge�ndert
+\item Ein paar Kleinigkeiten
+\end{revhist}
+
+\begin{revhist}{20.\,3.\,2007}
+\item Abschnitt ">\nameref{subsubsec:Hinzufuegen-Exportfilter}"< angepasst
+\item Kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{1.\,2.\,2007}
+\item Abschnitte ">\nameref{EndnoteFilters}"<, ">\nameref{subsubsec:endnote-jabref}"<, ">\nameref{subsec:about}"< und ">\nameref{sec:faq}"< �berarbeitet
+\item Literaturverzeichnis um Eintrag von \cite{btxfaq} erg�nzt
+\item Und noch ein paar kleine �nderungen
+\end{revhist}
+
+\begin{revhist}{19.\,1.\,2007}
+\item Abschnitt ">\nameref{Eintragstypen}"< hinzugef�gt
+\item Grafik auf Titelseite ausgetauscht
+\item Ein paar kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{10.\,12.\,2006}
+\item Abschnitt ">XMP-Metadaten"< leicht verbessert
+\item FAQ zu freien Java-APIs aktualisiert (Suns Java ist jetzt selbst frei)
+\item Wie immer: kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{9.\,12.\,2006}
+\item Abschnitte ">Weitere Hilfen"< in ">H�ufige Fragen und Antworten (FAQ)"< umbenannt
+\item FAQs von der Homepage �bersetzt und integriert
+\item Literaturverzeichnis um Eintrag von \cite{Fenn2006} erg�nzt
+\item Ein paar kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{30.\,11.\,2006}
+\item Abschnitte ">Weitere Hilfen"< hinzugef�gt
+\end{revhist}
+
+\begin{revhist}{28.\,11.\,2006}
+\item Abschnitte ">Abk�rzung von Zeitschriftentiteln"<, ">XMP-Metadaten"<, ">IEEExplore"< und ">Externer Zugriff"< hinzugef�gt
+\item Abschnitte ">Einf�hrung in \bibtex{}"<, ">Das Hauptfenster"<, ">Links zu externen Dateien"< und ">Jabref und Online-Datenbanken"< erweitert
+\item Abschnitt ">Suchfunktionen"< aktualisiert
+\item Abschnitt ">Entwicklung"< gek�rzt
+\item Paket ">listings"< eingebunden (ersetzt Umgebung ">lyxcode"<)
+\item Typewriter-Schrift \texttt{beramono} eingesetzt
+\item Einige kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{30.\,1.\,2006}
+\item Abschnitt >>\jabref-Bibliographien in OpenOffice.org benutzen<< aktualisiert
+\item Abschnitt zur Erzeugung der \bibtex{}-Keys aktualisiert
+\item Neues Kapitel (>>Externe Importfilter<<), geschrieben von Andreas Rudert
+\item Einige kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{6.\,12.\,2005}
+\item Lizenzbedingungen f�r das Handbuch hinzugef�gt
+\item von PDF~1.4 auf PDF~1.2 umgestellt
+\item mehrere kleinere �nderungen
+\end{revhist}
+
+\begin{revhist}{16.\,11.\,2005}
+\item Erstentwurf von Dominik Wa�enhoven, basierend
+auf dem unver�ffentlichten englischen \emph{Initial Draft} von Nizar Batada (20.\,2.\,2004)
+und den Hilfeseiten des Programms
+\end{revhist}
+
+\end{document}
diff --git a/src/help/fr/About.html b/src/help/fr/About.html
index 2a3ab4c..9f18059 100644
--- a/src/help/fr/About.html
+++ b/src/help/fr/About.html
@@ -48,6 +48,7 @@
         Aaron Chen,
         Fabrice Dessaint,
         Nathan Dunn,
+        E. Hakan Duran,
         Brian Van Essen,
         Alexis Gallagher,
         David Gleich,
diff --git a/src/help/fr/CustomExports.html b/src/help/fr/CustomExports.html
index 39e0685..6b9f322 100644
--- a/src/help/fr/CustomExports.html
+++ b/src/help/fr/CustomExports.html
@@ -400,6 +400,12 @@
         le début d'un nouveau paragraphe et crée les
         balises html de paragraphes appropriées.</li>
 
+        <li><code>IfPlural</code> : renvoie son premier argument si le
+        champ d'entrée ressemble à une liste d'auteurs avec deux
+        noms ou plus, sinon renvoie son second argument. Par exemple,
+        <code>\format[IfPlural(Eds.,Ed.)]{\editor}</code> renverra "Eds." s'il y
+        a plus d'un éditeur et "Ed." s'il n'y en a qu'un seul.</li>
+
         <li><code>LastPage</code> : renvoie la dernière page du champ "pages", si initialisé.
         Par exemple, si le champ "pages" est initialisé avec "345-360" ou "345--360",
         ce formatteur renverra "360".</li>
diff --git a/src/help/fr/JSTOR.html b/src/help/fr/JSTOR.html
index 0a1fac2..307a58b 100644
--- a/src/help/fr/JSTOR.html
+++ b/src/help/fr/JSTOR.html
@@ -4,6 +4,9 @@
 <basefont size="4" color="#2F4958" face="arial" />
 
   <h1>Recherche JStor</h1>
+  
+    <p>La recherche JStor s'effectue gràce au projet d'extraction de données de BibSonomy (http://scraper.bibsonomy.org/)
+    pour extraire des informations des page web de JStor.</p>
 
     <p>L'aide ci-dessous a été copiée depuis le site web de JStor et pourrait changer avec JSTor :</p>
     <ul>
diff --git a/src/images/absIcon.png b/src/images/absIcon.png
deleted file mode 100644
index f249fda..0000000
Binary files a/src/images/absIcon.png and /dev/null differ
diff --git a/src/images/add.png b/src/images/add.png
deleted file mode 100644
index 6b636fe..0000000
Binary files a/src/images/add.png and /dev/null differ
diff --git a/src/images/autumn.png b/src/images/autumn.png
deleted file mode 100644
index 77b7590..0000000
Binary files a/src/images/autumn.png and /dev/null differ
diff --git a/src/images/completeItem.png b/src/images/completeItem.png
deleted file mode 100644
index 5eeadc7..0000000
Binary files a/src/images/completeItem.png and /dev/null differ
diff --git a/src/images/contents.png b/src/images/contents.png
deleted file mode 100644
index 6e44fa7..0000000
Binary files a/src/images/contents.png and /dev/null differ
diff --git a/src/images/database_connect.png b/src/images/database_connect.png
deleted file mode 100644
index 3a11197..0000000
Binary files a/src/images/database_connect.png and /dev/null differ
diff --git a/src/images/database_save.png b/src/images/database_save.png
deleted file mode 100644
index 44c06dd..0000000
Binary files a/src/images/database_save.png and /dev/null differ
diff --git a/src/images/document-save-as.png b/src/images/document-save-as.png
deleted file mode 100644
index 7a1591f..0000000
Binary files a/src/images/document-save-as.png and /dev/null differ
diff --git a/src/images/document-save.png b/src/images/document-save.png
deleted file mode 100644
index 0311e47..0000000
Binary files a/src/images/document-save.png and /dev/null differ
diff --git a/src/images/doismall.png b/src/images/doismall.png
deleted file mode 100644
index 3c9595b..0000000
Binary files a/src/images/doismall.png and /dev/null differ
diff --git a/src/images/duplicate.png b/src/images/duplicate.png
deleted file mode 100644
index 5599a18..0000000
Binary files a/src/images/duplicate.png and /dev/null differ
diff --git a/src/images/edit-copy.png b/src/images/edit-copy.png
deleted file mode 100644
index efec317..0000000
Binary files a/src/images/edit-copy.png and /dev/null differ
diff --git a/src/images/edit-cut.png b/src/images/edit-cut.png
deleted file mode 100644
index 7e750c9..0000000
Binary files a/src/images/edit-cut.png and /dev/null differ
diff --git a/src/images/edit-delete.png b/src/images/edit-delete.png
deleted file mode 100644
index 0ac3589..0000000
Binary files a/src/images/edit-delete.png and /dev/null differ
diff --git a/src/images/edit-find.png b/src/images/edit-find.png
deleted file mode 100644
index b98e348..0000000
Binary files a/src/images/edit-find.png and /dev/null differ
diff --git a/src/images/edit-paste.png b/src/images/edit-paste.png
deleted file mode 100644
index 577e9c2..0000000
Binary files a/src/images/edit-paste.png and /dev/null differ
diff --git a/src/images/edit-redo.png b/src/images/edit-redo.png
deleted file mode 100644
index 712a8ee..0000000
Binary files a/src/images/edit-redo.png and /dev/null differ
diff --git a/src/images/edit-undo.png b/src/images/edit-undo.png
deleted file mode 100644
index 4652df0..0000000
Binary files a/src/images/edit-undo.png and /dev/null differ
diff --git a/src/images/editor.png b/src/images/editor.png
deleted file mode 100644
index a653bfe..0000000
Binary files a/src/images/editor.png and /dev/null differ
diff --git a/src/images/emacs.png b/src/images/emacs.png
deleted file mode 100644
index 6b76f52..0000000
Binary files a/src/images/emacs.png and /dev/null differ
diff --git a/src/images/emblem-web-small.png b/src/images/emblem-web-small.png
deleted file mode 100644
index 3d81a37..0000000
Binary files a/src/images/emblem-web-small.png and /dev/null differ
diff --git a/src/images/emblem-web.png b/src/images/emblem-web.png
deleted file mode 100644
index 49f7290..0000000
Binary files a/src/images/emblem-web.png and /dev/null differ
diff --git a/src/images/fileclose.png b/src/images/fileclose.png
deleted file mode 100644
index 033326f..0000000
Binary files a/src/images/fileclose.png and /dev/null differ
diff --git a/src/images/fileclose2.png b/src/images/fileclose2.png
deleted file mode 100644
index c1e5f4d..0000000
Binary files a/src/images/fileclose2.png and /dev/null differ
diff --git a/src/images/filenew.png b/src/images/filenew.png
deleted file mode 100644
index 7274a21..0000000
Binary files a/src/images/filenew.png and /dev/null differ
diff --git a/src/images/fileopen.png b/src/images/fileopen.png
deleted file mode 100644
index 7c9f7a6..0000000
Binary files a/src/images/fileopen.png and /dev/null differ
diff --git a/src/images/genIcon.png b/src/images/genIcon.png
deleted file mode 100644
index 5bedaa2..0000000
Binary files a/src/images/genIcon.png and /dev/null differ
diff --git a/src/images/go-down.png b/src/images/go-down.png
deleted file mode 100644
index 970d43a..0000000
Binary files a/src/images/go-down.png and /dev/null differ
diff --git a/src/images/go-next.png b/src/images/go-next.png
deleted file mode 100644
index cfee8f4..0000000
Binary files a/src/images/go-next.png and /dev/null differ
diff --git a/src/images/go-previous.png b/src/images/go-previous.png
deleted file mode 100644
index 3311c05..0000000
Binary files a/src/images/go-previous.png and /dev/null differ
diff --git a/src/images/go-up.png b/src/images/go-up.png
deleted file mode 100644
index 4ee50ef..0000000
Binary files a/src/images/go-up.png and /dev/null differ
diff --git a/src/images/groupIncluding.png b/src/images/groupIncluding.png
deleted file mode 100644
index 6f2bd08..0000000
Binary files a/src/images/groupIncluding.png and /dev/null differ
diff --git a/src/images/groupRefining.png b/src/images/groupRefining.png
deleted file mode 100644
index 2ba0a26..0000000
Binary files a/src/images/groupRefining.png and /dev/null differ
diff --git a/src/images/grouping_morten.png b/src/images/grouping_morten.png
deleted file mode 100644
index 9b29f68..0000000
Binary files a/src/images/grouping_morten.png and /dev/null differ
diff --git a/src/images/groupsHighlightAll.png b/src/images/groupsHighlightAll.png
deleted file mode 100644
index c6e1a97..0000000
Binary files a/src/images/groupsHighlightAll.png and /dev/null differ
diff --git a/src/images/groupsHighlightAny.png b/src/images/groupsHighlightAny.png
deleted file mode 100644
index 1bc2e28..0000000
Binary files a/src/images/groupsHighlightAny.png and /dev/null differ
diff --git a/src/images/help-about.png b/src/images/help-about.png
deleted file mode 100644
index 90ce540..0000000
Binary files a/src/images/help-about.png and /dev/null differ
diff --git a/src/images/help-browser.png b/src/images/help-browser.png
deleted file mode 100644
index 6de563b..0000000
Binary files a/src/images/help-browser.png and /dev/null differ
diff --git a/src/images/integrity.png b/src/images/integrity.png
deleted file mode 100644
index 4343947..0000000
Binary files a/src/images/integrity.png and /dev/null differ
diff --git a/src/images/lyx2.png b/src/images/lyx2.png
deleted file mode 100644
index 84a742f..0000000
Binary files a/src/images/lyx2.png and /dev/null differ
diff --git a/src/images/mark.png b/src/images/mark.png
deleted file mode 100644
index 6f8ab3a..0000000
Binary files a/src/images/mark.png and /dev/null differ
diff --git a/src/images/messageFail.png b/src/images/messageFail.png
deleted file mode 100644
index 474f63f..0000000
Binary files a/src/images/messageFail.png and /dev/null differ
diff --git a/src/images/messageInfo.png b/src/images/messageInfo.png
deleted file mode 100644
index ecdc991..0000000
Binary files a/src/images/messageInfo.png and /dev/null differ
diff --git a/src/images/messageWarn.png b/src/images/messageWarn.png
deleted file mode 100755
index 55a6f01..0000000
Binary files a/src/images/messageWarn.png and /dev/null differ
diff --git a/src/images/optIcon.png b/src/images/optIcon.png
deleted file mode 100644
index 64562b3..0000000
Binary files a/src/images/optIcon.png and /dev/null differ
diff --git a/src/images/pdf-new.png b/src/images/pdf-new.png
deleted file mode 100644
index cda12b9..0000000
Binary files a/src/images/pdf-new.png and /dev/null differ
diff --git a/src/images/pdf.png b/src/images/pdf.png
deleted file mode 100644
index d5eab07..0000000
Binary files a/src/images/pdf.png and /dev/null differ
diff --git a/src/images/postscript.png b/src/images/postscript.png
deleted file mode 100644
index 5065c98..0000000
Binary files a/src/images/postscript.png and /dev/null differ
diff --git a/src/images/preamble.png b/src/images/preamble.png
deleted file mode 100644
index cf9d89d..0000000
Binary files a/src/images/preamble.png and /dev/null differ
diff --git a/src/images/preferences.png b/src/images/preferences.png
deleted file mode 100644
index 426460b..0000000
Binary files a/src/images/preferences.png and /dev/null differ
diff --git a/src/images/remove.png b/src/images/remove.png
deleted file mode 100644
index 0815d3f..0000000
Binary files a/src/images/remove.png and /dev/null differ
diff --git a/src/images/reqIcon.png b/src/images/reqIcon.png
deleted file mode 100644
index 5d2439c..0000000
Binary files a/src/images/reqIcon.png and /dev/null differ
diff --git a/src/images/search.png b/src/images/search.png
deleted file mode 100644
index a555de8..0000000
Binary files a/src/images/search.png and /dev/null differ
diff --git a/src/images/splash-2.1.svg b/src/images/splash-2.1.svg
deleted file mode 100644
index 1f931f6..0000000
--- a/src/images/splash-2.1.svg
+++ /dev/null
@@ -1,229 +0,0 @@
-<?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://sodipodi.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/jabref-2.1b/src/images/splash-2.1beta.png"
-   sodipodi:docname="splash-2.1.svg"
-   sodipodi:docbase="/home/alver/jabref_newcvs/jabref/src/images"
-   inkscape:version="0.44"
-   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="53"
-     inkscape:window-x="15"
-     inkscape:window-height="856"
-     inkscape:window-width="853"
-     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-2.1rc/src/images/splash-2.1.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
-       id="image1821"
-       height="428"
-       width="572"
-       sodipodi:absref="/home/alver/jabref/src/images/splashBackground.png"
-       xlink:href="/home/alver/jabref/src/images/splashBackground.png"
-       x="79"
-       y="172.36218"
-       inkscape:export-filename="/home/alver/jabref-2.1rc/src/images/splash-2.1.png"
-       inkscape:export-xdpi="75"
-       inkscape:export-ydpi="75" />
-    <flowRoot
-       inkscape:export-ydpi="75.000000"
-       inkscape:export-xdpi="75.000000"
-       inkscape:export-filename="/home/alver/jabref-2.1rc/src/images/splash-2.1.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-2.1b/src/images/splash-2.1beta.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.1</flowPara>
-    </flowRoot>    <flowRoot
-       inkscape:export-ydpi="75.000000"
-       inkscape:export-xdpi="75.000000"
-       inkscape:export-filename="/home/alver/jabref-2.1rc/src/images/splash-2.1.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-2.1rc/src/images/splash-2.1.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-2.1rc/src/images/splash-2.1.png"
-       transform="scale(0.853347,1.171856)"
-       sodipodi:linespacing="100%"
-       id="text2179"
-       y="397.84811"
-       x="149.99753"
-       style="font-size:44.00000436;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:Nimbus Roman No9 L;text-anchor:start;writing-mode:lr;text-align:start;line-height:100%"
-       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/images/splash-2.1beta.png b/src/images/splash-2.1beta.png
deleted file mode 100644
index 4304131..0000000
Binary files a/src/images/splash-2.1beta.png and /dev/null differ
diff --git a/src/images/splash-2.3.svg b/src/images/splash-2.3.svg
deleted file mode 100644
index d519da8..0000000
--- a/src/images/splash-2.3.svg
+++ /dev/null
@@ -1,276 +0,0 @@
-<?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://sodipodi.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/jabref_head/jabref/src/images/jabref_splash-2.2.png"
-   sodipodi:docname="splash-2.3.svg"
-   sodipodi:docbase="/home/alver/jabref/src/images"
-   inkscape:version="0.45.1"
-   sodipodi:version="0.32"
-   id="svg2138"
-   height="1052.3622047"
-   width="744.09448819"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs2140">
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#505b77;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#596a97;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2883">
-      <stop
-         style="stop-color:#c5c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2885" />
-      <stop
-         style="stop-color:white;stop-opacity:1;"
-         offset="1"
-         id="stop2887" />
-    </linearGradient>
-    <pattern
-       patternTransform="translate(316.0000,1046.362)"
-       id="pattern9054"
-       xlink:href="#pattern9048"
-       inkscape:collect="always" />
-    <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>
-    <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>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="radialGradient2889"
-       cx="255.5"
-       cy="330.36218"
-       fx="255.5"
-       fy="330.36218"
-       r="135.88549"
-       gradientTransform="matrix(-0.799579,-5.606082e-2,6.979161e-2,-1.00875,436.7358,677.9388)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="linearGradient2909"
-       x1="443.79153"
-       y1="351.89935"
-       x2="602.17139"
-       y2="351.89935"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="radialGradient2796"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.799579,-5.606082e-2,6.979161e-2,-1.00875,436.7358,677.9388)"
-       cx="255.5"
-       cy="330.36218"
-       fx="255.5"
-       fy="330.36218"
-       r="135.88549" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="radialGradient2798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.799579,-5.606082e-2,6.979161e-2,-1.00875,436.7358,677.9388)"
-       cx="255.5"
-       cy="330.36218"
-       fx="255.5"
-       fy="330.36218"
-       r="135.88549" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="25"
-     inkscape:window-x="0"
-     inkscape:window-height="949"
-     inkscape:window-width="1280"
-     inkscape:current-layer="layer1"
-     inkscape:document-units="px"
-     inkscape:cy="677.8697"
-     inkscape:cx="414.10531"
-     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/src/images/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
-       id="image1821"
-       height="428"
-       width="572"
-       sodipodi:absref="/home/alver/jabref/src/images/splashBackground.png"
-       xlink:href="splashBackground.png"
-       x="79"
-       y="172.36218"
-       inkscape:export-filename="/home/alver/jabref/src/images/splash.png"
-       inkscape:export-xdpi="75"
-       inkscape:export-ydpi="75" />
-    <flowRoot
-       inkscape:export-ydpi="75.000000"
-       inkscape:export-xdpi="75.000000"
-       inkscape:export-filename="/home/alver/jabref/src/images/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/src/images/splash.png"
-       transform="matrix(0.972246,0,0,1.325301,6.054966,-126.1181)"
-       style="font-size:12px;font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#797580;fill-opacity:1;font-family:Bitstream Vera Sans"
-       id="flowRoot3076"
-       xml:space="preserve"><flowRegion
-         id="flowRegion3078">
-        <rect
-   style="font-size:12px;font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#797580;fill-opacity:1;font-family:Bitstream Vera Sans"
-   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-2007) 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/src/images/splash.png"
-       transform="scale(0.853347,1.171856)"
-       sodipodi:linespacing="100%"
-       id="text2179"
-       y="450.75409"
-       x="187.49605"
-       style="font-size:43.99980927px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#805b41;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Palladio L"
-       xml:space="preserve"><tspan
-         y="450.75409"
-         x="187.49605"
-         id="tspan2181"
-         sodipodi:role="line">JabRef reference manager</tspan></text>
-    <g
-       id="g2867"
-       transform="matrix(1.14435,0,0,1.103688,-34.88143,-26.75429)"
-       style="fill:#3d3d5f;fill-opacity:1;stroke:url(#radialGradient2889);stroke-width:1.99301183;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       inkscape:export-filename="/home/alver/jabref/src/images/splash.png"
-       inkscape:export-xdpi="75"
-       inkscape:export-ydpi="75">
-      <path
-         inkscape:export-ydpi="57.68"
-         inkscape:export-xdpi="57.68"
-         inkscape:export-filename="/home/alver/Documents/jabrefIkon.png"
-         sodipodi:nodetypes="cccscssc"
-         id="path3874"
-         d="M 157.96931,200.83693 C 195.68133,200.83693 226.84892,201.74266 226.84892,201.74266 C 226.84892,201.74266 264.67261,230.02095 245.09466,392.86816 C 239.45611,424.41127 211.69305,452.41514 177.77033,452.41514 C 143.84738,452.41514 124.35978,432.41027 124.35978,409.07782 C 159.37053,424.87768 185.33022,416.88114 194.38104,413.14131 C 198.72239,411.3483 214.85378,403.80956 214.58004,365.73926 C 213.94457,277.38853 222.57808,258.1971 157.96931,200.83693 z "
-         style="fill:#3d3d5f;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient2796);stroke-width:1.99301183;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         inkscape:export-ydpi="57.68"
-         inkscape:export-xdpi="57.68"
-         inkscape:export-filename="/home/alver/Documents/jabrefIkon.png"
-         sodipodi:nodetypes="ccccsc"
-         id="path3876"
-         d="M 255.00983,201.1495 C 346.39949,205.65848 415.05774,279.60734 324.95506,328.62763 C 299.6693,344.58746 362.3433,423.95718 386.64022,459.88743 C 324.57976,439.24633 270.32186,376.11089 274.24748,333.19936 C 276.87135,302.14849 327.63081,304.24915 329.72814,285.1414 C 331.82536,266.03489 296.3799,268.06417 255.00983,201.1495 z "
-         style="fill:#3d3d5f;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient2798);stroke-width:1.99301183;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-size:57.1212616px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#727888;stroke-width:1.80000031;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Nimbus Sans L"
-       x="462.20135"
-       y="426.2529"
-       id="text2911"
-       sodipodi:linespacing="100%"
-       transform="scale(0.917932,1.089405)"
-       inkscape:export-filename="/home/alver/jabref/src/images/splash.png"
-       inkscape:export-xdpi="75"
-       inkscape:export-ydpi="75"><tspan
-         sodipodi:role="line"
-         id="tspan2913"
-         x="462.20135"
-         y="426.2529"
-         style="font-size:119.00263214px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#727888;stroke-width:1.80000031;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Bitstream Vera Sans">2.3</tspan></text>
-  </g>
-</svg>
diff --git a/src/images/splash-2.4.svg b/src/images/splash-2.4.svg
deleted file mode 100644
index 8eaf7e1..0000000
--- a/src/images/splash-2.4.svg
+++ /dev/null
@@ -1,284 +0,0 @@
-<?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://creativecommons.org/ns#"
-   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://sodipodi.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/jabref_head/jabref/src/images/jabref_splash-2.2.png"
-   sodipodi:docname="splash-2.4.svg"
-   sodipodi:docbase="/home/alver/jabref_trunk/src/images"
-   inkscape:version="0.46"
-   sodipodi:version="0.32"
-   id="svg2138"
-   height="1052.3622047"
-   width="744.09448819"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs2140">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective2595" />
-    <linearGradient
-       id="linearGradient2974">
-      <stop
-         style="stop-color:#505b77;stop-opacity:1;"
-         offset="0"
-         id="stop2976" />
-      <stop
-         style="stop-color:#596a97;stop-opacity:1;"
-         offset="1"
-         id="stop2978" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2883">
-      <stop
-         style="stop-color:#c5c1c1;stop-opacity:1;"
-         offset="0"
-         id="stop2885" />
-      <stop
-         style="stop-color:white;stop-opacity:1;"
-         offset="1"
-         id="stop2887" />
-    </linearGradient>
-    <pattern
-       patternTransform="translate(316.0000,1046.362)"
-       id="pattern9054"
-       xlink:href="#pattern9048"
-       inkscape:collect="always" />
-    <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>
-    <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>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="radialGradient2889"
-       cx="255.5"
-       cy="330.36218"
-       fx="255.5"
-       fy="330.36218"
-       r="135.88549"
-       gradientTransform="matrix(-0.799579,-5.606082e-2,6.979161e-2,-1.00875,436.7358,677.9388)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="linearGradient2909"
-       x1="443.79153"
-       y1="351.89935"
-       x2="602.17139"
-       y2="351.89935"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="radialGradient2796"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.799579,-5.606082e-2,6.979161e-2,-1.00875,436.7358,677.9388)"
-       cx="255.5"
-       cy="330.36218"
-       fx="255.5"
-       fy="330.36218"
-       r="135.88549" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2883"
-       id="radialGradient2798"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-0.799579,-5.606082e-2,6.979161e-2,-1.00875,436.7358,677.9388)"
-       cx="255.5"
-       cy="330.36218"
-       fx="255.5"
-       fy="330.36218"
-       r="135.88549" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:window-y="25"
-     inkscape:window-x="0"
-     inkscape:window-height="949"
-     inkscape:window-width="1279"
-     inkscape:current-layer="layer1"
-     inkscape:document-units="px"
-     inkscape:cy="677.8697"
-     inkscape:cx="414.10531"
-     inkscape:zoom="1"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     showgrid="false" />
-  <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/src/images/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
-       id="image1821"
-       height="428"
-       width="572"
-       sodipodi:absref="/home/alver/jabref/src/images/splashBackground.png"
-       xlink:href="splashBackground.png"
-       x="79"
-       y="172.36218"
-       inkscape:export-filename="/home/alver/jabref_beta/src/images/splash.png"
-       inkscape:export-xdpi="75"
-       inkscape:export-ydpi="75" />
-    <flowRoot
-       inkscape:export-ydpi="75.000000"
-       inkscape:export-xdpi="75.000000"
-       inkscape:export-filename="/home/alver/jabref_beta/src/images/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/src/images/splash.png"
-       transform="matrix(0.972246,0,0,1.325301,6.054966,-126.1181)"
-       style="font-size:12px;font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#797580;fill-opacity:1;font-family:Bitstream Vera Sans"
-       id="flowRoot3076"
-       xml:space="preserve"><flowRegion
-         id="flowRegion3078">
-        <rect
-   style="font-size:12px;font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#797580;fill-opacity:1;font-family:Bitstream Vera Sans"
-   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-2008) 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/src/images/splash.png"
-       transform="scale(0.853347,1.171856)"
-       sodipodi:linespacing="100%"
-       id="text2179"
-       y="450.75409"
-       x="187.49605"
-       style="font-size:43.99980927px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#805b41;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:URW Palladio L"
-       xml:space="preserve"><tspan
-         y="450.75409"
-         x="187.49605"
-         id="tspan2181"
-         sodipodi:role="line">JabRef reference manager</tspan></text>
-    <g
-       id="g2867"
-       transform="matrix(1.14435,0,0,1.103688,-34.88143,-26.75429)"
-       style="fill:#3d3d5f;fill-opacity:1;stroke:url(#radialGradient2889);stroke-width:1.99301183;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       inkscape:export-filename="/home/alver/jabref_beta/src/images/splash.png"
-       inkscape:export-xdpi="75"
-       inkscape:export-ydpi="75">
-      <path
-         inkscape:export-ydpi="57.68"
-         inkscape:export-xdpi="57.68"
-         inkscape:export-filename="/home/alver/Documents/jabrefIkon.png"
-         sodipodi:nodetypes="cccscssc"
-         id="path3874"
-         d="M 157.96931,200.83693 C 195.68133,200.83693 226.84892,201.74266 226.84892,201.74266 C 226.84892,201.74266 264.67261,230.02095 245.09466,392.86816 C 239.45611,424.41127 211.69305,452.41514 177.77033,452.41514 C 143.84738,452.41514 124.35978,432.41027 124.35978,409.07782 C 159.37053,424.87768 185.33022,416.88114 194.38104,413.14131 C 198.72239,411.3483 214.85378,403.80956 214.58004,365.73926 C 213.94457,277.38853 222.57808,258.1971 157.96931,200.83693 z "
-         style="fill:#3d3d5f;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient2796);stroke-width:1.99301183;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <path
-         inkscape:export-ydpi="57.68"
-         inkscape:export-xdpi="57.68"
-         inkscape:export-filename="/home/alver/Documents/jabrefIkon.png"
-         sodipodi:nodetypes="ccccsc"
-         id="path3876"
-         d="M 255.00983,201.1495 C 346.39949,205.65848 415.05774,279.60734 324.95506,328.62763 C 299.6693,344.58746 362.3433,423.95718 386.64022,459.88743 C 324.57976,439.24633 270.32186,376.11089 274.24748,333.19936 C 276.87135,302.14849 327.63081,304.24915 329.72814,285.1414 C 331.82536,266.03489 296.3799,268.06417 255.00983,201.1495 z "
-         style="fill:#3d3d5f;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient2798);stroke-width:1.99301183;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    </g>
-    <text
-       xml:space="preserve"
-       style="font-size:57.1212616px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#727888;stroke-width:1.80000031;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Nimbus Sans L"
-       x="462.20135"
-       y="426.2529"
-       id="text2911"
-       sodipodi:linespacing="100%"
-       transform="scale(0.917932,1.089405)"
-       inkscape:export-filename="/home/alver/jabref_beta/src/images/splash.png"
-       inkscape:export-xdpi="75"
-       inkscape:export-ydpi="75"><tspan
-         sodipodi:role="line"
-         id="tspan2913"
-         x="462.20135"
-         y="426.2529"
-         style="font-size:119.00263214px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#727888;stroke-width:1.80000031;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;font-family:Bitstream Vera Sans">2.4</tspan></text>
-  </g>
-</svg>
diff --git a/src/images/splash-2.5.svg b/src/images/splash-2.5.svg
index f571b08..55e8e0e 100644
--- a/src/images/splash-2.5.svg
+++ b/src/images/splash-2.5.svg
@@ -135,8 +135,8 @@
   </defs>
   <sodipodi:namedview
      inkscape:window-y="25"
-     inkscape:window-x="50"
-     inkscape:window-height="768"
+     inkscape:window-x="0"
+     inkscape:window-height="949"
      inkscape:window-width="1280"
      inkscape:current-layer="layer1"
      inkscape:document-units="px"
@@ -225,7 +225,7 @@
    id="rect3080" />
       </flowRegion><flowPara
          id="flowPara1339">This program is distributed under the terms of the General Public License.</flowPara><flowPara
-         id="flowPara1341">Copyright (2003-2009) Morten O. Alver, Nizar Batada and all contributors.</flowPara></flowRoot>    <text
+         id="flowPara1341">Copyright (2003-2008) 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/src/images/splash.png"
diff --git a/src/images/splashBackground.png b/src/images/splashBackground.png
deleted file mode 100644
index d5a048e..0000000
Binary files a/src/images/splashBackground.png and /dev/null differ
diff --git a/src/images/strings.png b/src/images/strings.png
deleted file mode 100644
index 649899f..0000000
Binary files a/src/images/strings.png and /dev/null differ
diff --git a/src/images/unmark.png b/src/images/unmark.png
deleted file mode 100644
index 92ac338..0000000
Binary files a/src/images/unmark.png and /dev/null differ
diff --git a/src/images/user-home.png b/src/images/user-home.png
deleted file mode 100644
index a3c4765..0000000
Binary files a/src/images/user-home.png and /dev/null differ
diff --git a/src/images/view-refresh.png b/src/images/view-refresh.png
deleted file mode 100644
index 952b5f7..0000000
Binary files a/src/images/view-refresh.png and /dev/null differ
diff --git a/src/images/viewsource.gif b/src/images/viewsource.gif
deleted file mode 100644
index 3ef9a2e..0000000
Binary files a/src/images/viewsource.gif and /dev/null differ
diff --git a/src/images/winedt.png b/src/images/winedt.png
deleted file mode 100644
index cded1a7..0000000
Binary files a/src/images/winedt.png and /dev/null differ
diff --git a/src/images/wizard.png b/src/images/wizard.png
deleted file mode 100644
index b5d81d3..0000000
Binary files a/src/images/wizard.png and /dev/null differ
diff --git a/src/images/wrongItem.png b/src/images/wrongItem.png
deleted file mode 100644
index 8b2f1eb..0000000
Binary files a/src/images/wrongItem.png and /dev/null differ
diff --git a/src/images/wwwciteseer.png b/src/images/wwwciteseer.png
deleted file mode 100644
index 1885445..0000000
Binary files a/src/images/wwwciteseer.png and /dev/null differ
diff --git a/src/java/net/sf/jabref/AdvancedTab.java b/src/java/net/sf/jabref/AdvancedTab.java
index 6cfb2c1..2c30eea 100644
--- a/src/java/net/sf/jabref/AdvancedTab.java
+++ b/src/java/net/sf/jabref/AdvancedTab.java
@@ -21,7 +21,7 @@ public class AdvancedTab extends JPanel implements PrefsTab {
     JPanel pan = new JPanel(),
         lnf = new JPanel();
     JLabel lab;
-    JCheckBox useDefault, useRemoteServer, useNativeFileDialogOnMac, useIEEEAbrv;
+    JCheckBox useDefault, useRemoteServer, useNativeFileDialogOnMac, filechooserDisableRename, useIEEEAbrv;
     JTextField className, remoteServerPort;
     JButton def1 = new JButton(Globals.lang("Default")),
         def2 = new JButton(Globals.lang("Default"));
@@ -40,6 +40,7 @@ public class AdvancedTab extends JPanel implements PrefsTab {
     useDefault = new JCheckBox(Globals.lang("Use other look and feel"));
     useRemoteServer = new JCheckBox(Globals.lang("Listen for remote operation on port")+":");
     useNativeFileDialogOnMac = new JCheckBox(Globals.lang("Use native file dialog"));
+    filechooserDisableRename = new JCheckBox(Globals.lang("Disable file renaming in non-native file dialog"));
     useIEEEAbrv = new JCheckBox(Globals.lang("Use IEEE LaTeX abbreviations"));
     remoteServerPort = new JTextField();
     className = new JTextField(50);
@@ -102,10 +103,13 @@ public class AdvancedTab extends JPanel implements PrefsTab {
 
     //if (Globals.ON_MAC) {
     builder.nextLine();
-    builder.appendSeparator(Globals.lang("Native file dialog"));
+    builder.appendSeparator(Globals.lang("File dialog"));
     builder.nextLine();
     builder.append(new JPanel());
     builder.append(useNativeFileDialogOnMac);
+    builder.nextLine();
+    builder.append(new JPanel());
+    builder.append(filechooserDisableRename);
     //}
 	// IEEE
     builder.nextLine();
@@ -131,6 +135,7 @@ public class AdvancedTab extends JPanel implements PrefsTab {
     oldPort = _prefs.getInt("remoteServerPort");
     remoteServerPort.setText(String.valueOf(oldPort));
     useNativeFileDialogOnMac.setSelected(Globals.prefs.getBoolean("useNativeFileDialogOnMac"));
+    filechooserDisableRename.setSelected(Globals.prefs.getBoolean("filechooserDisableRename"));
     useIEEEAbrv.setSelected(Globals.prefs.getBoolean("useIEEEAbrv"));
     }
 
@@ -138,6 +143,8 @@ public class AdvancedTab extends JPanel implements PrefsTab {
         _prefs.putBoolean("useDefaultLookAndFeel", !useDefault.isSelected());
         _prefs.put("lookAndFeel", className.getText());
         _prefs.putBoolean("useNativeFileDialogOnMac", useNativeFileDialogOnMac.isSelected());
+        _prefs.putBoolean("filechooserDisableRename", filechooserDisableRename.isSelected());
+        UIManager.put("FileChooser.readOnly", filechooserDisableRename.isSelected());
         _prefs.putBoolean("useIEEEAbrv", useIEEEAbrv.isSelected());
         if (useIEEEAbrv.isSelected())
         	Globals.journalAbbrev = new JournalAbbreviations("/resource/IEEEJournalList.txt");
diff --git a/src/java/net/sf/jabref/AuthorList.java b/src/java/net/sf/jabref/AuthorList.java
index d0465ed..4d7cdd5 100644
--- a/src/java/net/sf/jabref/AuthorList.java
+++ b/src/java/net/sf/jabref/AuthorList.java
@@ -1,5 +1,7 @@
 package net.sf.jabref;
 
+import net.sf.jabref.export.layout.format.CreateDocBookAuthors;
+
 import java.util.Vector;
 import java.util.WeakHashMap;
 
@@ -380,9 +382,11 @@ public class AuthorList {
 		if (tokens.size() == 0)
 			return null; // no author information
 
+
 		// the following negatives indicate absence of the corresponding part
 		int first_part_start = -1, von_part_start = -1, last_part_start = -1, jr_part_start = -1;
 		int first_part_end = 0, von_part_end = 0, last_part_end = 0, jr_part_end = 0;
+        boolean jrAsFirstname = false;
 		if (comma_first < 0) { // no commas
 			if (von_start < 0) { // no 'von part'
 				last_part_end = tokens.size();
@@ -414,8 +418,11 @@ public class AuthorList {
 			// 'junior part'
 			first_part_end = tokens.size();
 			if (comma_second < 0) { // one comma
-				if (comma_first < first_part_end)
-					first_part_start = comma_first;
+				if (comma_first < first_part_end) {
+                    first_part_start = comma_first;
+                    //if (((String)tokens.get(first_part_start)).toLowerCase().startsWith("jr."))
+                    //    jrAsFirstname = true;
+                }
 			} else { // two or more commas
 				if (comma_second < first_part_end)
 					first_part_start = comma_second;
@@ -449,6 +456,11 @@ public class AuthorList {
             von_part_start = -1;
             von_part_end = -1;
         }
+        if (jrAsFirstname) {
+            // This variable, if set, indicates that the first name starts with "jr.", which
+            // is an indication that we may have a name formatted as "Firstname Lastname, Jr."
+            // which is an acceptable format for BibTeX.
+        }
 
 		// Third step: do actual splitting, construct Author object
 		return new Author((first_part_start < 0 ? null : concatTokens(first_part_start,
@@ -1138,4 +1150,20 @@ public class AuthorList {
 			return res.toString();
 		}
 	}// end Author
+
+
+    public static void main(String[] args) {
+        //String s = "Ford, Jr., Henry and Guy L. {Steele Jr.} and Olaf Nilsen, Jr.";
+        String s = "Olaf von Nilsen, Jr.";
+        AuthorList al = AuthorList.getAuthorList(s);
+        for (int i=0; i<al.size(); i++) {
+            Author a = al.getAuthor(i);
+            System.out.println((i+1)+": first = '"+a.getFirst()+"'");
+            System.out.println((i+1)+": last = '"+a.getLast()+"'");
+            System.out.println((i+1)+": jr = '"+a.getJr()+"'");
+            System.out.println((i+1)+": von = '"+a.getVon()+"'");
+        }
+
+        System.out.println((new CreateDocBookAuthors()).format(s));
+    }
 }// end AuthorList
diff --git a/src/java/net/sf/jabref/BasePanel.java b/src/java/net/sf/jabref/BasePanel.java
index 054b44e..30c4a1e 100644
--- a/src/java/net/sf/jabref/BasePanel.java
+++ b/src/java/net/sf/jabref/BasePanel.java
@@ -28,22 +28,72 @@ http://www.gnu.org/copyleft/gpl.ja.html
 
 package net.sf.jabref;
 
-import ca.odell.glazedlists.FilterList;
-import ca.odell.glazedlists.event.ListEvent;
-import ca.odell.glazedlists.event.ListEventListener;
-import ca.odell.glazedlists.matchers.Matcher;
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-import com.jgoodies.forms.layout.FormLayout;
-import com.jgoodies.uif_lite.component.UIFSplitPane;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.ClipboardOwner;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.UnsupportedCharsetException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+
+import javax.swing.AbstractAction;
+import javax.swing.JComponent;
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSplitPane;
+import javax.swing.JTextArea;
+import javax.swing.SwingUtilities;
+import javax.swing.tree.TreePath;
+import javax.swing.undo.CannotRedoException;
+import javax.swing.undo.CannotUndoException;
+
+import net.sf.jabref.autocompleter.AbstractAutoCompleter;
+import net.sf.jabref.autocompleter.AutoCompleterFactory;
 import net.sf.jabref.collab.ChangeScanner;
 import net.sf.jabref.collab.FileUpdateListener;
 import net.sf.jabref.collab.FileUpdatePanel;
-import net.sf.jabref.export.*;
-import net.sf.jabref.external.*;
+import net.sf.jabref.export.ExportToClipboardAction;
+import net.sf.jabref.export.FileActions;
+import net.sf.jabref.export.SaveDatabaseAction;
+import net.sf.jabref.export.SaveException;
+import net.sf.jabref.export.SaveSession;
+import net.sf.jabref.external.AutoSetExternalFileForEntries;
+import net.sf.jabref.external.ExternalFileMenuItem;
+import net.sf.jabref.external.ExternalFileType;
+import net.sf.jabref.external.FindFullTextAction;
+import net.sf.jabref.external.RegExpFileSearch;
+import net.sf.jabref.external.SynchronizeFileField;
+import net.sf.jabref.external.UpgradeExternalLinks;
+import net.sf.jabref.external.WriteXMPAction;
 import net.sf.jabref.groups.GroupSelector;
 import net.sf.jabref.groups.GroupTreeNode;
-import net.sf.jabref.gui.*;
 import net.sf.jabref.gui.FileDialogs;
+import net.sf.jabref.gui.FileListEntry;
+import net.sf.jabref.gui.FileListTableModel;
+import net.sf.jabref.gui.GlazedEntrySorter;
+import net.sf.jabref.gui.MainTable;
+import net.sf.jabref.gui.MainTableFormat;
+import net.sf.jabref.gui.MainTableSelectionListener;
 import net.sf.jabref.imports.AppendDatabaseAction;
 import net.sf.jabref.imports.BibtexParser;
 import net.sf.jabref.imports.SPIRESFetcher;
@@ -52,24 +102,25 @@ import net.sf.jabref.journals.UnabbreviateAction;
 import net.sf.jabref.labelPattern.LabelPatternUtil;
 import net.sf.jabref.search.NoSearchMatcher;
 import net.sf.jabref.search.SearchMatcher;
-import net.sf.jabref.sql.*;
-import net.sf.jabref.undo.*;
+import net.sf.jabref.sql.DBConnectDialog;
+import net.sf.jabref.sql.DBStrings;
+import net.sf.jabref.sql.DbConnectAction;
+import net.sf.jabref.sql.SQLutil;
+import net.sf.jabref.undo.CountingUndoManager;
+import net.sf.jabref.undo.NamedCompound;
+import net.sf.jabref.undo.UndoableChangeType;
+import net.sf.jabref.undo.UndoableInsertEntry;
+import net.sf.jabref.undo.UndoableKeyChange;
+import net.sf.jabref.undo.UndoableRemoveEntry;
 import net.sf.jabref.wizard.text.gui.TextInputDialog;
+import ca.odell.glazedlists.FilterList;
+import ca.odell.glazedlists.event.ListEvent;
+import ca.odell.glazedlists.event.ListEventListener;
+import ca.odell.glazedlists.matchers.Matcher;
 
-import javax.swing.*;
-import javax.swing.tree.TreePath;
-import javax.swing.undo.CannotRedoException;
-import javax.swing.undo.CannotUndoException;
-import java.awt.*;
-import java.awt.datatransfer.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.UnsupportedCharsetException;
-import java.util.*;
-import java.util.List;
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.uif_lite.component.UIFSplitPane;
 
 public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListener {
 
@@ -101,7 +152,7 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
     GridBagLayout gbl = new GridBagLayout();
     GridBagConstraints con = new GridBagConstraints();
 
-    HashMap<String, AutoCompleter> autoCompleters = new HashMap<String, AutoCompleter>();
+    HashMap<String, AbstractAutoCompleter> autoCompleters = new HashMap<String, AbstractAutoCompleter>();
     // Hashtable that holds as keys the names of the fields where
     // autocomplete is active, and references to the autocompleter objects.
 
@@ -1538,7 +1589,6 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                 undoManager.addEdit(new UndoableInsertEntry(database, be, BasePanel.this));
                 output(Globals.lang("Added new")+" '"+type.getName().toLowerCase()+"' "
                        +Globals.lang("entry")+".");
-                mainTable.findEntry(be);
 
                 // We are going to select the new entry. Before that, make sure that we are in
                 // show-entry mode. If we aren't already in that mode, enter the WILL_SHOW_EDITOR
@@ -1548,7 +1598,14 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
                     mode = WILL_SHOW_EDITOR;
                 }
 
-                highlightEntry(be);  // Selects the entry. The selection listener will open the editor.
+                int row = mainTable.findEntry(be);
+                if (row >= 0)
+                    highlightEntry(be);  // Selects the entry. The selection listener will open the editor.
+                else {
+                    // The entry is not visible in the table, perhaps due to a filtering search
+                    // or group selection. Show the entry editor anyway:
+                    showEntry(be);
+                }
 
                 markBaseChanged(); // The database just changed.
                 new FocusRequester(getEntryEditor(be));
@@ -1771,11 +1828,11 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
         repaint();
     }
 
-    public HashMap<String, AutoCompleter> getAutoCompleters() {
+    public HashMap<String, AbstractAutoCompleter> getAutoCompleters() {
         return autoCompleters;
     }
     
-    public AutoCompleter getAutoCompleter(String fieldName) {
+    public AbstractAutoCompleter getAutoCompleter(String fieldName) {
         return autoCompleters.get(fieldName);
     }
 
@@ -1784,7 +1841,8 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
         String[] completeFields = Globals.prefs.getStringArray("autoCompleteFields");
         for (int i = 0; i < completeFields.length; i++) {
             String field = completeFields[i];
-            autoCompleters.put(field, new AutoCompleter(field));
+            AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(field);
+			autoCompleters.put(field, autoCompleter );
         }
         for (BibtexEntry entry : database.getEntries()){
             Util.updateCompletersForEntry(autoCompleters, entry);
@@ -1800,13 +1858,13 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
      */
     public void addContentSelectorValuesToAutoCompleters() {
         for (String field : autoCompleters.keySet()) {
-            AutoCompleter ac = autoCompleters.get(field);
+            AbstractAutoCompleter ac = autoCompleters.get(field);
             if (metaData.getData(Globals.SELECTOR_META_PREFIX + field) != null) {
                 Vector<String> items = metaData.getData(Globals.SELECTOR_META_PREFIX + field);
                 if (items != null) {
                     Iterator<String> i = items.iterator();
                     while (i.hasNext())
-                        ac.addWord(i.next());
+                        ac.addWordToIndex(i.next());
                 }
             }
         }
@@ -1818,10 +1876,10 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
      */
     public void addJournalListToAutoCompleter() {
         if (autoCompleters.containsKey("journal")) {
-            AutoCompleter ac = autoCompleters.get("journal");
+            AbstractAutoCompleter ac = autoCompleters.get("journal");
             Set<String> journals = Globals.journalAbbrev.getJournals().keySet();
             for (String journal : journals)
-                ac.addWord(journal);
+                ac.addWordToIndex(journal);
         }
 
 
@@ -2414,6 +2472,9 @@ public class BasePanel extends JPanel implements ClipboardOwner, FileUpdateListe
         selectionListener.setPreviewActive(enabled);
     }
 
+    public void setSelectionListenerEnabled(boolean enabled) {
+        selectionListener.setEnabled(enabled);
+    }
 
     class UndoAction extends BaseAction {
         public void action() {
diff --git a/src/java/net/sf/jabref/BibtexEntry.java b/src/java/net/sf/jabref/BibtexEntry.java
index f2e5193..ee79f8d 100644
--- a/src/java/net/sf/jabref/BibtexEntry.java
+++ b/src/java/net/sf/jabref/BibtexEntry.java
@@ -106,7 +106,7 @@ public class BibtexEntry
     /**
      * Returns a string describing the required fields for this entry.
      */
-    public String describeRequiredFields()
+     public String describeRequiredFields()
     {
         return _type.describeRequiredFields();
     }
diff --git a/src/java/net/sf/jabref/EntryEditor.java b/src/java/net/sf/jabref/EntryEditor.java
index 8de6827..6b4788e 100644
--- a/src/java/net/sf/jabref/EntryEditor.java
+++ b/src/java/net/sf/jabref/EntryEditor.java
@@ -24,11 +24,25 @@
  */
 package net.sf.jabref;
 
-import java.awt.*;
+import java.awt.AWTKeyStroke;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Insets;
+import java.awt.KeyboardFocusManager;
+import java.awt.RenderingHints;
+import java.awt.Toolkit;
 import java.awt.datatransfer.StringSelection;
 import java.awt.dnd.DnDConstants;
 import java.awt.dnd.DropTarget;
-import java.awt.event.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
 import java.beans.PropertyChangeEvent;
 import java.beans.VetoableChangeListener;
 import java.io.File;
@@ -40,22 +54,45 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.logging.Logger;
 
-import javax.swing.*;
+import javax.swing.AbstractAction;
+import javax.swing.ActionMap;
+import javax.swing.InputMap;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.JToolBar;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.text.JTextComponent;
 
+import net.sf.jabref.autocompleter.AbstractAutoCompleter;
 import net.sf.jabref.export.LatexFieldFormatter;
 import net.sf.jabref.external.ExternalFilePanel;
 import net.sf.jabref.external.WriteXMPEntryEditorAction;
-import net.sf.jabref.journals.JournalAbbreviations;
-import net.sf.jabref.gui.*;
+import net.sf.jabref.gui.FileDialogs;
+import net.sf.jabref.gui.FileListEditor;
+import net.sf.jabref.gui.FileListTableModel;
+import net.sf.jabref.gui.VerticalLabelUI;
 import net.sf.jabref.gui.date.DatePickerButton;
 import net.sf.jabref.imports.BibtexParser;
+import net.sf.jabref.journals.JournalAbbreviations;
 import net.sf.jabref.labelPattern.LabelPatternUtil;
-import net.sf.jabref.undo.*;
-import com.jgoodies.looks.Options;
-import com.jgoodies.looks.HeaderStyle;
+import net.sf.jabref.undo.NamedCompound;
+import net.sf.jabref.undo.UndoableChangeType;
+import net.sf.jabref.undo.UndoableFieldChange;
+import net.sf.jabref.undo.UndoableKeyChange;
+import net.sf.jabref.undo.UndoableRemoveEntry;
 
 /**
  * GUI component that allows editing of the fields of a BibtexEntry (i.e. the
@@ -136,8 +173,8 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
 
     Logger logger = Logger.getLogger(EntryEditor.class.getName());
 
-    boolean updateSource = true; // This can be set to false to stop the
-                                    // source
+    boolean updateSource = true; // This can be set to false to stop the source
+    boolean movingToDifferentEntry = false; // Indicates that we are about to go to the next or previous entry
 
     List<Object> tabs = new ArrayList<Object>();
 
@@ -517,8 +554,7 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
                 source.setText(srcString);
                 lastSourceStringAccepted = srcString;
             } catch (IOException ex) {
-                System.out.println("Her");
-                source.setText(ex.getMessage() + "\n\n" + 
+                source.setText(ex.getMessage() + "\n\n" +
                                         Globals.lang("Correct the entry, and "
                     + "reopen editor to display/edit source."));
                 source.setEditable(false);
@@ -622,6 +658,7 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
      *            an <code>int</code> value
      */
     private void scrollTo(int row) {
+        movingToDifferentEntry = true;
         panel.mainTable.setRowSelectionInterval(row, row);
         panel.mainTable.ensureVisible(row);
     }
@@ -632,6 +669,8 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
     public void storeCurrentEdit() {
         Component comp = Globals.focusListener.getFocused();
         if ((comp == source) || ((comp instanceof FieldEditor) && this.isAncestorOf(comp))) {
+            if (comp instanceof FieldEditor)
+                ((FieldEditor)comp).clearAutoCompleteSuggestion();
             storeFieldAction.actionPerformed(new ActionEvent(comp, 0, ""));
         }
     }
@@ -813,6 +852,17 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
             // panel.refreshTable();
             panel.markBaseChanged();
 
+            SwingUtilities.invokeLater(new Runnable() {
+                public void run() {
+                    final int row = panel.mainTable.findEntry(entry);
+                    if (row >= 0) {
+                        if (panel.mainTable.getSelectedRowCount() == 0)
+                            panel.mainTable.setRowSelectionInterval(row, row);
+                        panel.mainTable.ensureVisible(row);
+                    }
+                }
+            });
+            
             return true;
         } catch (Throwable ex) {
             // ex.printStackTrace();
@@ -900,6 +950,10 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
     }
 
 
+    public void setMovingToDifferentEntry() {
+        movingToDifferentEntry = true;
+    }
+
     private class TypeLabel extends JLabel {
         public TypeLabel(String type) {
             super(type+" ");
@@ -1038,6 +1092,8 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
         }
 
         public void actionPerformed(ActionEvent e) {
+            boolean movingAway = movingToDifferentEntry;
+            movingToDifferentEntry = false;
 
             if (e.getSource() instanceof FieldTextField) {
                 // Storage from bibtex key field.
@@ -1145,9 +1201,9 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
                             fe.setBackground(GUIGlobals.validFieldBackground);
 
                         // See if we need to update an AutoCompleter instance:
-                        AutoCompleter aComp = panel.getAutoCompleter(fe.getFieldName());
+                        AbstractAutoCompleter aComp = panel.getAutoCompleter(fe.getFieldName());
                         if (aComp != null)
-                            aComp.addAll(toSet, entry);
+                            aComp.addBibtexEntry(entry);
 
                         // Add an UndoableFieldChange to the baseframe's
                         // undoManager.
@@ -1175,6 +1231,22 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
                 if (accepted) {
                 }
             }
+
+            // Make sure we scroll to the entry if it moved in the table.
+            // Should only be done if this editor is currently showing:
+            //System.out.println(getType().getName()+": movingAway="+movingAway+", isShowing="+isShowing());
+            if (!movingAway && isShowing()) {
+                SwingUtilities.invokeLater(new Runnable() {
+                    public void run() {
+                        final int row = panel.mainTable.findEntry(entry);
+                        if (row >= 0) {
+                            if (panel.mainTable.getSelectedRowCount() == 0)
+                                panel.mainTable.setRowSelectionInterval(row, row);
+                            panel.mainTable.ensureVisible(row);
+                        }
+                    }
+                });
+            }
         }
     }
 
@@ -1344,7 +1416,9 @@ public class EntryEditor extends JPanel implements VetoableChangeListener {
             if (activeTab instanceof EntryEditorTab) {
                 // Normal panel.
                 EntryEditorTab fp = (EntryEditorTab) activeTab;
-                updateField(fp.getActive());
+                FieldEditor fe = fp.getActive();
+                fe.clearAutoCompleteSuggestion();
+                updateField(fe);
             } else
                 // Source panel.
                 updateField(activeTab);
diff --git a/src/java/net/sf/jabref/EntryEditorTab.java b/src/java/net/sf/jabref/EntryEditorTab.java
index 2028928..0a2bcd3 100644
--- a/src/java/net/sf/jabref/EntryEditorTab.java
+++ b/src/java/net/sf/jabref/EntryEditorTab.java
@@ -24,7 +24,11 @@
  */
 package net.sf.jabref;
 
-import java.awt.*;
+import java.awt.AWTKeyStroke;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.KeyboardFocusManager;
 import java.awt.event.FocusEvent;
 import java.awt.event.FocusListener;
 import java.util.HashMap;
@@ -32,13 +36,17 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 
-import javax.swing.*;
+import javax.swing.ActionMap;
+import javax.swing.InputMap;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.KeyStroke;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 import javax.swing.text.JTextComponent;
 
+import net.sf.jabref.autocompleter.AbstractAutoCompleter;
 import net.sf.jabref.gui.AutoCompleteListener;
-import net.sf.jabref.gui.AutoCompleter;
 import net.sf.jabref.gui.FileListEditor;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
@@ -48,7 +56,7 @@ import com.jgoodies.forms.layout.FormLayout;
  * A single tab displayed in the EntryEditor holding several FieldEditors.
  * 
  * @author $Author: mortenalver $
- * @version $Revision: 3072 $ ($Date: 2009-09-03 21:07:51 +0200 (Thu, 03 Sep 2009) $)
+ * @version $Revision: 3140 $ ($Date: 2009-11-26 20:09:21 +0100 (Thu, 26 Nov 2009) $)
  * 
  */
 public class EntryEditorTab {
@@ -140,12 +148,13 @@ public class EntryEditorTab {
             JComponent ex = parent.getExtra(fields[i], ta);
 
             // Add autocompleter listener, if required for this field:
-            AutoCompleter autoComp = bPanel.getAutoCompleter(fields[i]);
+            AbstractAutoCompleter autoComp = bPanel.getAutoCompleter(fields[i]);
             AutoCompleteListener acl = null;
             if (autoComp != null) {
                 acl = new AutoCompleteListener(autoComp);
             }
             setupJTextComponent(ta.getTextComponent(), acl);
+            ta.setAutoCompleteListener(acl);
 
             // Store the editor for later reference:
             editors.put(fields[i], ta);
@@ -173,7 +182,7 @@ public class EntryEditorTab {
 				.getEntry().getField(BibtexFields.KEY_FIELD), true);
             //tf.addUndoableEditListener(bPanel.undoListener);
 			setupJTextComponent(tf, null);
-
+            
 			editors.put("bibtexkey", tf);
 			/*
 			 * If the key field is the only field, we should have only one
diff --git a/src/java/net/sf/jabref/FieldEditor.java b/src/java/net/sf/jabref/FieldEditor.java
index cf26d75..f98cb77 100644
--- a/src/java/net/sf/jabref/FieldEditor.java
+++ b/src/java/net/sf/jabref/FieldEditor.java
@@ -27,6 +27,8 @@
 
 package net.sf.jabref;
 
+import net.sf.jabref.gui.AutoCompleteListener;
+
 import java.awt.Color;
 import java.awt.Container;
 
@@ -39,7 +41,7 @@ import javax.swing.event.UndoableEditListener;
  * FieldEditors is a common interface between the FieldTextField and FieldTextArea.
  * 
  * @author $Author: mortenalver $
- * @version $Revision: 2864 $ ($Date: 2008-11-25 21:22:56 +0100 (Tue, 25 Nov 2008) $)
+ * @version $Revision: 3140 $ ($Date: 2009-11-26 20:09:21 +0100 (Thu, 26 Nov 2009) $)
  *
  */
 public interface FieldEditor {
@@ -105,4 +107,8 @@ public interface FieldEditor {
     public void redo();
 
     public void addUndoableEditListener(UndoableEditListener listener);
+
+    public void setAutoCompleteListener(AutoCompleteListener listener);
+
+    public void clearAutoCompleteSuggestion();
 }
diff --git a/src/java/net/sf/jabref/FieldTextArea.java b/src/java/net/sf/jabref/FieldTextArea.java
index 5b86bd7..d87c897 100644
--- a/src/java/net/sf/jabref/FieldTextArea.java
+++ b/src/java/net/sf/jabref/FieldTextArea.java
@@ -26,6 +26,8 @@
  */
 package net.sf.jabref;
 
+import net.sf.jabref.gui.AutoCompleteListener;
+
 import java.awt.*;
 import java.util.regex.Pattern;
 
@@ -43,7 +45,7 @@ import javax.swing.undo.CannotUndoException;
  * multi-line input.
  * 
  * @author $Author: mortenalver $
- * @version $Revision: 2955 $ ($Date: 2009-04-21 18:47:52 +0200 (Tue, 21 Apr 2009) $)
+ * @version $Revision: 3140 $ ($Date: 2009-11-26 20:09:21 +0100 (Thu, 26 Nov 2009) $)
  * 
  */
 public class FieldTextArea extends JTextArea implements FieldEditor {
@@ -60,6 +62,8 @@ public class FieldTextArea extends JTextArea implements FieldEditor {
 
 	final static Pattern indent = Pattern.compile("\\s+.*");
 
+    private AutoCompleteListener autoCompleteListener = null;
+
     //protected UndoManager undo = new UndoManager();
 
 	public FieldTextArea(String fieldName_, String content) {
@@ -178,4 +182,15 @@ public class FieldTextArea extends JTextArea implements FieldEditor {
     public void addUndoableEditListener(UndoableEditListener listener) {
         getDocument().addUndoableEditListener(listener);
     }
+
+    public void setAutoCompleteListener(AutoCompleteListener listener) {
+        autoCompleteListener = listener;
+    }
+
+    public void clearAutoCompleteSuggestion() {
+        if (autoCompleteListener != null) {
+            autoCompleteListener.clearCurrentSuggestion(this);
+        }
+    }
 }
+
diff --git a/src/java/net/sf/jabref/FieldTextField.java b/src/java/net/sf/jabref/FieldTextField.java
index 2f77b64..d389fc1 100644
--- a/src/java/net/sf/jabref/FieldTextField.java
+++ b/src/java/net/sf/jabref/FieldTextField.java
@@ -26,6 +26,8 @@
  */
 package net.sf.jabref;
 
+import net.sf.jabref.gui.AutoCompleteListener;
+
 import java.awt.Color;
 
 import javax.swing.JComponent;
@@ -41,6 +43,8 @@ public class FieldTextField extends JTextField implements FieldEditor {
 	protected String fieldName;
 	protected JLabel label;
 
+    private AutoCompleteListener autoCompleteListener = null;
+
     //protected UndoManager undo = new UndoManager();
 
 
@@ -155,4 +159,13 @@ public class FieldTextField extends JTextField implements FieldEditor {
     public void addUndoableEditListener(UndoableEditListener listener) {
         getDocument().addUndoableEditListener(listener);
     }
+
+    public void setAutoCompleteListener(AutoCompleteListener listener) {
+        autoCompleteListener = listener;
+    }
+
+    public void clearAutoCompleteSuggestion() {
+        if (autoCompleteListener != null)
+            autoCompleteListener.clearCurrentSuggestion(this);
+    }
 }
diff --git a/src/java/net/sf/jabref/Globals.java b/src/java/net/sf/jabref/Globals.java
index d6625ff..a286521 100644
--- a/src/java/net/sf/jabref/Globals.java
+++ b/src/java/net/sf/jabref/Globals.java
@@ -112,6 +112,7 @@ public class Globals {
 		// String[]{});
 		new String[] { "ISO8859_1", "UTF8", "UTF-16", "ASCII", "Cp1250", "Cp1251", "Cp1252",
 			"Cp1253", "Cp1254", "Cp1257", "SJIS",
+            "KOI8_R", // Cyrillic
 			"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" };
diff --git a/src/java/net/sf/jabref/JabRef.java b/src/java/net/sf/jabref/JabRef.java
index 125fd41..f6fba9f 100644
--- a/src/java/net/sf/jabref/JabRef.java
+++ b/src/java/net/sf/jabref/JabRef.java
@@ -894,18 +894,28 @@ public class JabRef {
         try {
             if ((data.length > 1) && !"*".equals(data[1])) {
                 System.out.println(Globals.lang("Importing") + ": " + data[0]);
-                List<BibtexEntry> entries =
-                        Globals.importFormatReader.importFromFile(data[1],
-                                data[0].replaceAll("~", System.getProperty("user.home")));
+                List<BibtexEntry> entries;
+                if (Globals.ON_WIN) {
+                  entries = Globals.importFormatReader.importFromFile(data[1], data[0]);
+                }
+                else {
+                  entries = Globals.importFormatReader.importFromFile( data[1],
+                            data[0].replaceAll("~", System.getProperty("user.home")) );
+                }
                 return new ParserResult(entries);
             } else {
                 // * means "guess the format":
                 System.out.println(Globals.lang("Importing in unknown format")
                         + ": " + data[0]);
-                
-            	Pair<String, ParserResult> importResult = 
-                    Globals.importFormatReader.importUnknownFormat(data[0]
-                            .replaceAll("~", System.getProperty("user.home")));
+
+                Pair<String, ParserResult>  importResult;
+                if (Globals.ON_WIN) {
+            	  importResult = Globals.importFormatReader.importUnknownFormat(data[0]);
+                }
+                else {
+                  importResult = Globals.importFormatReader.importUnknownFormat(
+                                 data[0].replaceAll("~", System.getProperty("user.home")) );
+                }
             	
             	if (importResult != null){
             		System.out.println(Globals.lang("Format used") + ": "
diff --git a/src/java/net/sf/jabref/JabRefFrame.java b/src/java/net/sf/jabref/JabRefFrame.java
index 59304e7..c5e3b80 100644
--- a/src/java/net/sf/jabref/JabRefFrame.java
+++ b/src/java/net/sf/jabref/JabRefFrame.java
@@ -393,6 +393,9 @@ public class JabRefFrame extends JFrame implements OutputPrinter {
   private void init() {
 
         macOSXRegistration();
+
+        UIManager.put("FileChooser.readOnly", Globals.prefs.getBoolean("filechooserDisableRename"));
+      
         MyGlassPane glassPane = new MyGlassPane();
         setGlassPane(glassPane);
         // glassPane.setVisible(true);
@@ -413,7 +416,12 @@ public class JabRefFrame extends JFrame implements OutputPrinter {
         initLayout();
         
         initActions();
-        
+
+        // Fixes occasional Window malbehaviour in Linux
+        setBounds(0, 0, (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(),
+            (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight() );
+        setExtendedState(JFrame.MAXIMIZED_BOTH);
+
         if (Globals.prefs.getBoolean("rememberWindowLocation")) {
             
             int sizeX = prefs.getInt("sizeX");
@@ -662,7 +670,10 @@ public JabRefPreferences prefs() {
       prefs.putInt("posY", JabRefFrame.this.getLocation().y);
       prefs.putInt("sizeX", JabRefFrame.this.getSize().width);
       prefs.putInt("sizeY", JabRefFrame.this.getSize().height);
-      prefs.putBoolean("windowMaximised", (getExtendedState()&MAXIMIZED_BOTH)>0);
+//      prefs.putBoolean("windowMaximised", (getExtendedState()&MAXIMIZED_BOTH)>0);
+      prefs.putBoolean("windowMaximised", (getExtendedState() == Frame.MAXIMIZED_BOTH));
+      prefs.putBoolean("rememberWindowLocation", !Globals.prefs.getBoolean("windowMaximised"));
+
       prefs.putBoolean("searchPanelVisible", sidePaneManager.isComponentVisible("search"));
       // Store divider location for side pane:
       int width = contentPane.getDividerLocation();
diff --git a/src/java/net/sf/jabref/JabRefPreferences.java b/src/java/net/sf/jabref/JabRefPreferences.java
index fe02fde..79550bf 100644
--- a/src/java/net/sf/jabref/JabRefPreferences.java
+++ b/src/java/net/sf/jabref/JabRefPreferences.java
@@ -135,6 +135,8 @@ public class JabRefPreferences {
 			defaults.put("pdfviewer", "/Applications/Preview.app");
 			defaults.put("psviewer", "/Applications/Preview.app");
 			defaults.put("htmlviewer", "/Applications/Safari.app");
+            defaults.put("fontFamily", "SansSerif");
+
 		} else if (Globals.osName.toLowerCase().startsWith("windows")) {
 			defaults.put("pdfviewer", "cmd.exe /c start /b");
 			defaults.put("psviewer", "cmd.exe /c start /b");
@@ -142,11 +144,15 @@ public class JabRefPreferences {
 			defaults.put("lookAndFeel", "com.jgoodies.looks.windows.WindowsLookAndFeel");
             defaults.put("winEdtPath", "C:\\Program Files\\WinEdt Team\\WinEdt\\WinEdt.exe");
             defaults.put("latexEditorPath", "C:\\Program Files\\LEd\\LEd.exe");
+            defaults.put("fontFamily", "Arial");
+
         } else {
 			defaults.put("pdfviewer", "evince");
 			defaults.put("psviewer", "gv");
 			defaults.put("htmlviewer", "firefox");
 			defaults.put("lookAndFeel", "com.jgoodies.plaf.plastic.Plastic3DLookAndFeel");
+            defaults.put("fontFamily", "SansSerif");
+
 		}
         defaults.put("useDefaultLookAndFeel", Boolean.TRUE);
         defaults.put("lyxpipe", System.getProperty("user.home")+File.separator+".lyx/lyxpipe");
@@ -261,7 +267,6 @@ public class JabRefPreferences {
 
         //defaults.put("recentFiles", "/home/alver/Documents/bibk_dok/hovedbase.bib");
         defaults.put("historySize", new Integer(8));
-        defaults.put("fontFamily", "SansSerif");
         defaults.put("fontStyle", new Integer(java.awt.Font.PLAIN));
         defaults.put("fontSize", new Integer(12));
         defaults.put("overrideDefaultFonts", Boolean.FALSE);
@@ -307,7 +312,8 @@ public class JabRefPreferences {
                      +"<b><i>\\bibtextype</i><a name=\"\\bibtexkey\">\\begin{bibtexkey} (\\bibtexkey)</a>"
                      +"\\end{bibtexkey}</b><br>__NEWLINE__"
                      +"\\begin{author} \\format[HTMLChars,AuthorAbbreviator,AuthorAndsReplacer]{\\author}<BR>\\end{author}__NEWLINE__"
-                     +"\\begin{editor} \\format[HTMLChars,AuthorAbbreviator,AuthorAndsReplacer]{\\editor} <i>(ed.)</i><BR>\\end{editor}__NEWLINE__"
+                     +"\\begin{editor} \\format[HTMLChars,AuthorAbbreviator,AuthorAndsReplacer]{\\editor} "
+                     +"<i>(\\format[IfPlural(Eds.,Ed.)]{\\editor})</i><BR>\\end{editor}__NEWLINE__"
                      +"\\begin{title} \\format[HTMLChars]{\\title} \\end{title}<BR>__NEWLINE__"
                      +"\\begin{chapter} \\format[HTMLChars]{\\chapter}<BR>\\end{chapter}__NEWLINE__"
                      +"\\begin{journal} <em>\\format[HTMLChars]{\\journal}, </em>\\end{journal}__NEWLINE__"
@@ -317,14 +323,16 @@ public class JabRefPreferences {
                      +"\\begin{institution} <em>\\format[HTMLChars]{\\institution}, </em>\\end{institution}__NEWLINE__"
                      +"\\begin{publisher} <em>\\format[HTMLChars]{\\publisher}, </em>\\end{publisher}__NEWLINE__"
                      +"\\begin{year}<b>\\year</b>\\end{year}\\begin{volume}<i>, \\volume</i>\\end{volume}"
-                     +"\\begin{pages}, \\format[FormatPagesForHTML]{\\pages} \\end{pages}"
+                     +"\\begin{pages}, \\format[FormatPagesForHTML]{\\pages} \\end{pages}__NEWLINE__"
+                     +"\\begin{abstract}<BR><BR><b>Abstract: </b> \\format[HTMLChars]{\\abstract} \\end{abstract}__NEWLINE__"
+                     +"\\begin{review}<BR><BR><b>Review: </b> \\format[HTMLChars]{\\review} \\end{review}"
                      +"</dd>__NEWLINE__<p></p></font>");
-
         defaults.put("preview1", "<font face=\"arial\">"
                      +"<b><i>\\bibtextype</i><a name=\"\\bibtexkey\">\\begin{bibtexkey} (\\bibtexkey)</a>"
                      +"\\end{bibtexkey}</b><br>__NEWLINE__"
                      +"\\begin{author} \\format[HTMLChars,AuthorAbbreviator,AuthorAndsReplacer]{\\author}<BR>\\end{author}__NEWLINE__"
-                     +"\\begin{editor} \\format[HTMLChars,AuthorAbbreviator,AuthorAndsReplacer]{\\editor} <i>(ed.)</i><BR>\\end{editor}__NEWLINE__"
+                     +"\\begin{editor} \\format[HTMLChars,AuthorAbbreviator,AuthorAndsReplacer]{\\editor} "
+                     +"<i>(\\format[IfPlural(Eds.,Ed.)]{\\editor})</i><BR>\\end{editor}__NEWLINE__"
                      +"\\begin{title} \\format[HTMLChars]{\\title} \\end{title}<BR>__NEWLINE__"
                      +"\\begin{chapter} \\format[HTMLChars]{\\chapter}<BR>\\end{chapter}__NEWLINE__"
                      +"\\begin{journal} <em>\\format[HTMLChars]{\\journal}, </em>\\end{journal}__NEWLINE__"
@@ -334,10 +342,10 @@ public class JabRefPreferences {
                      +"\\begin{institution} <em>\\format[HTMLChars]{\\institution}, </em>\\end{institution}__NEWLINE__"
                      +"\\begin{publisher} <em>\\format[HTMLChars]{\\publisher}, </em>\\end{publisher}__NEWLINE__"
                      +"\\begin{year}<b>\\year</b>\\end{year}\\begin{volume}<i>, \\volume</i>\\end{volume}"
-                     +"\\begin{pages}, \\format[FormatPagesForHTML]{\\pages} \\end{pages}__NEWLINE__"
-                     +"\\begin{abstract}<BR><BR><b>Abstract: </b> \\format[HTMLChars]{\\abstract} \\end{abstract}__NEWLINE__"
-                     +"\\begin{review}<BR><BR><b>Review: </b> \\format[HTMLChars]{\\review} \\end{review}"
+                     +"\\begin{pages}, \\format[FormatPagesForHTML]{\\pages} \\end{pages}"
                      +"</dd>__NEWLINE__<p></p></font>");
+
+
         // TODO: Currently not possible to edit this setting:
         defaults.put("previewPrintButton", Boolean.FALSE);
         defaults.put("autoDoubleBraces", Boolean.FALSE);
@@ -371,6 +379,7 @@ public class JabRefPreferences {
         defaults.put("floatMarkedEntries", Boolean.TRUE);
 
         defaults.put("useNativeFileDialogOnMac", Boolean.FALSE);
+        defaults.put("filechooserDisableRename", Boolean.TRUE);
 
         defaults.put("lastUsedExport", null);
         defaults.put("sidePaneWidth", new Integer(-1));
@@ -859,6 +868,7 @@ public class JabRefPreferences {
         defKeyBinds.put("Unmark entries", "ctrl shift M");
         defKeyBinds.put("Fetch Medline", "F5");
         defKeyBinds.put("Fetch CiteSeer", "F6");
+        defKeyBinds.put("Search ScienceDirect", "ctrl F5");
         defKeyBinds.put("New from plain text", "ctrl shift N");
         defKeyBinds.put("Import Fields from CiteSeer", "ctrl shift C");
         defKeyBinds.put("Fetch citations from CiteSeer", "F7");
@@ -869,11 +879,10 @@ public class JabRefPreferences {
 
         defKeyBinds.put("Abbreviate", "ctrl alt A");
         defKeyBinds.put("Unabbreviate", "ctrl alt shift A");
-        defKeyBinds.put("Search IEEEXplore", "F8");
+        defKeyBinds.put("Search IEEEXplore", "alt F8");
         defKeyBinds.put("Search ACM Portal", "ctrl shift F8");
         defKeyBinds.put("Fetch ArXiv.org", "shift F8");
         defKeyBinds.put("Search JSTOR", "shift F9");
-        defKeyBinds.put("Fetch SPIRES", "ctrl F8");
         defKeyBinds.put("Write XMP", "ctrl F4");
         defKeyBinds.put("New file link", "ctrl N");
         defKeyBinds.put("Fetch SPIRES", "ctrl F8");
diff --git a/src/java/net/sf/jabref/MetaData.java b/src/java/net/sf/jabref/MetaData.java
index 25b9285..e758890 100644
--- a/src/java/net/sf/jabref/MetaData.java
+++ b/src/java/net/sf/jabref/MetaData.java
@@ -206,10 +206,11 @@ public class MetaData implements Iterable<String> {
                     sb.append(Util.quote(orderedData.elementAt(j), ";", '\\')).append(";");
                 }
                 sb.append("}");
-                sb.append(Globals.NEWLINE);
-                sb.append(Globals.NEWLINE);
             }
             wrapStringBuffer(sb, Globals.METADATA_LINE_LENGTH);
+            sb.append(Globals.NEWLINE);
+            sb.append(Globals.NEWLINE);
+            
             out.write(sb.toString());
         }
         // write groups if present. skip this if only the root node exists 
diff --git a/src/java/net/sf/jabref/PreviewPanel.java b/src/java/net/sf/jabref/PreviewPanel.java
index 1b5148c..297fba3 100644
--- a/src/java/net/sf/jabref/PreviewPanel.java
+++ b/src/java/net/sf/jabref/PreviewPanel.java
@@ -9,6 +9,9 @@ import java.beans.VetoableChangeListener;
 import java.io.IOException;
 import java.io.StringReader;
 
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.PrintRequestAttributeSet;
+import javax.print.attribute.standard.JobName;
 import javax.swing.*;
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
@@ -16,13 +19,12 @@ import javax.swing.event.HyperlinkListener;
 import net.sf.jabref.export.layout.Layout;
 import net.sf.jabref.export.layout.LayoutHelper;
 import net.sf.jabref.export.ExportFormats;
-import net.sf.jabref.util.DocumentPrinter;
 
 /**
  * Displays an BibtexEntry using the given layout format.
  * 
  * @author $Author: mortenalver $
- * @version $Revision: 3047 $ ($Date: 2007-08-01 20:23:38 +0200 (Mi, 01 Aug
+ * @version $Revision: 3152 $ ($Date: 2007-08-01 20:23:38 +0200 (Mi, 01 Aug
  *          2007) $)
  * 
  */
@@ -116,17 +118,18 @@ public class PreviewPanel extends JPanel implements VetoableChangeListener {
 			putValue(SHORT_DESCRIPTION, Globals.lang("Print Preview"));
 		}
 
-		DocumentPrinter printerService;
+		//DocumentPrinter printerService;
 
 		public void actionPerformed(ActionEvent arg0) {
-			if (printerService == null)
-				printerService = new DocumentPrinter();
 
 			// Background this, as it takes a while.
 			new Thread() {
 				public void run() {
 					try {
-						printerService.print(entry.getCiteKey(), previewPane);
+						PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
+						pras.add(new JobName(entry.getCiteKey(), null));
+						previewPane.print(null, null, true, null, pras, false);
+
 					} catch (PrinterException e) {
 
 						// Inform the user... we don't know what to do.
diff --git a/src/java/net/sf/jabref/SearchManager2.java b/src/java/net/sf/jabref/SearchManager2.java
index 4a9b1c9..55139cc 100644
--- a/src/java/net/sf/jabref/SearchManager2.java
+++ b/src/java/net/sf/jabref/SearchManager2.java
@@ -472,6 +472,7 @@ class SearchManager2 extends SidePaneComponent
                             searchDialog.addEntry(entry, p);
                     }
                 }
+                searchDialog.selectFirstEntry();
                 searchDialog.setVisible(true);
             }
 
@@ -492,6 +493,7 @@ class SearchManager2 extends SidePaneComponent
                     if (entry.isSearchHit())
                         searchDialog.addEntry(entry, panel);
                 }
+                searchDialog.selectFirstEntry();
                 searchDialog.setVisible(true);
             }
             else if (hideSearch.isSelected()) {
diff --git a/src/java/net/sf/jabref/Util.java b/src/java/net/sf/jabref/Util.java
index 8e44f07..cc647fe 100644
--- a/src/java/net/sf/jabref/Util.java
+++ b/src/java/net/sf/jabref/Util.java
@@ -51,7 +51,11 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
-import java.net.*;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLDecoder;
 import java.nio.charset.Charset;
 import java.nio.charset.CharsetEncoder;
 import java.text.NumberFormat;
@@ -76,26 +80,32 @@ import java.util.Vector;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import javax.swing.*;
+import javax.swing.Box;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.SwingUtilities;
 import javax.swing.undo.UndoableEdit;
 
-import net.sf.jabref.export.layout.LayoutEntry;
-import net.sf.jabref.export.layout.LayoutFormatter;
+import net.sf.jabref.autocompleter.AbstractAutoCompleter;
 import net.sf.jabref.export.SaveSession;
 import net.sf.jabref.external.ExternalFileType;
 import net.sf.jabref.external.ExternalFileTypeEntryEditor;
 import net.sf.jabref.external.UnknownExternalFileType;
 import net.sf.jabref.groups.AbstractGroup;
 import net.sf.jabref.groups.KeywordGroup;
-import net.sf.jabref.gui.AutoCompleter;
 import net.sf.jabref.gui.FileListEntry;
 import net.sf.jabref.gui.FileListEntryEditor;
 import net.sf.jabref.gui.FileListTableModel;
 import net.sf.jabref.imports.CiteSeerFetcher;
-import net.sf.jabref.undo.NamedCompound;
-import net.sf.jabref.undo.UndoableFieldChange;
 import net.sf.jabref.labelPattern.LabelPatternUtil;
 import net.sf.jabref.net.URLDownload;
+import net.sf.jabref.undo.NamedCompound;
+import net.sf.jabref.undo.UndoableFieldChange;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
 import com.jgoodies.forms.layout.FormLayout;
@@ -1702,13 +1712,10 @@ public static boolean openExternalFileUnknown(JabRefFrame frame, BibtexEntry ent
      * This methods assures all words in the given entry are recorded in their
      * respective Completers, if any.
      */
-    public static void updateCompletersForEntry(HashMap<String, AutoCompleter> autoCompleters,
-                                                BibtexEntry be) {
-
-    	for (Map.Entry<String, AutoCompleter> entry : autoCompleters.entrySet()){
-    		String field = entry.getKey();
-            AutoCompleter comp = entry.getValue();
-            comp.addAll(be.getField(field), be);
+    public static void updateCompletersForEntry(HashMap<String, AbstractAutoCompleter> autoCompleters, BibtexEntry bibtexEntry) {
+    	for (Map.Entry<String, AbstractAutoCompleter> entry : autoCompleters.entrySet()){    		
+            AbstractAutoCompleter comp = entry.getValue();
+            comp.addBibtexEntry(bibtexEntry);
         }
     }
 
diff --git a/src/java/net/sf/jabref/about/AboutPanel.java b/src/java/net/sf/jabref/about/AboutPanel.java
index 2fb5ea1..c4489e6 100644
--- a/src/java/net/sf/jabref/about/AboutPanel.java
+++ b/src/java/net/sf/jabref/about/AboutPanel.java
@@ -83,7 +83,6 @@ public class AboutPanel extends JComponent
 
   private AnimationListener aniListener ;
   private ImageProducer iProducer ;
-  private HighlightFilter filter ;
 
   AboutPanel()
   {
@@ -99,10 +98,6 @@ public class AboutPanel extends JComponent
 
     image = new ImageIcon(getClass().getResource("/images/autumn.png"));
 
-    filter = new HighlightFilter(false, 5) ;
-    filter.setMiddle(image.getIconWidth(), image.getIconHeight());
-    iProducer = new FilteredImageSource( image.getImage().getSource(), filter) ;
-
     HEIGHT = image.getIconHeight() ;
     WIDTH = image.getIconWidth() ;
 
@@ -297,10 +292,6 @@ public class AboutPanel extends JComponent
     else
     {
       image.paintIcon(this, g, 0, 0);
-      if (filter.isReady())
-      {
-        skipAnimation() ;
-      }
     }
   }
 // ----------------------------------------------------------------------------
@@ -417,7 +408,6 @@ public class AboutPanel extends JComponent
             sleepTime -= sleepTime / 3 ;
 
           image.setImage( createImage( iProducer) );
-          filter.nextStep();
           repaint(0, 0, WIDTH, HEIGHT) ;
         }
       }
diff --git a/src/java/net/sf/jabref/autocompleter/AbstractAutoCompleter.java b/src/java/net/sf/jabref/autocompleter/AbstractAutoCompleter.java
new file mode 100644
index 0000000..bf45c1e
--- /dev/null
+++ b/src/java/net/sf/jabref/autocompleter/AbstractAutoCompleter.java
@@ -0,0 +1,74 @@
+package net.sf.jabref.autocompleter;
+
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import net.sf.jabref.BibtexEntry;
+
+/**
+ * An autocompleter delivers possible completions for a given String. There are
+ * different types of autocompleters for different use cases.
+ * 
+ * Example: {@link NameFieldAutoCompleter}, {@link EntireFieldAutoCompleter}
+ * 
+ * @author kahlert, cordes
+ * @see AutoCompleterFactory
+ */
+public abstract class AbstractAutoCompleter {
+
+	public static final int SHORTEST_TO_COMPLETE = 2;
+	public static final int SHORTEST_WORD = 4;
+
+	private TreeSet<String> _index = new TreeSet<String>();
+
+	/**
+	 * Add a BibtexEntry to this autocompleter. The autocompleter (respectively
+	 * to the concrete implementations of {@link AbstractAutoCompleter}) itself
+	 * decides which information should be stored for later completion.
+	 * 
+	 */
+	abstract public void addBibtexEntry(BibtexEntry entry);
+
+	abstract public boolean isSingleUnitField();
+
+	/**
+	 * Returns one or more possible completions for a given String. The returned
+	 * completion depends on which informations were stored while adding
+	 * BibtexEntries by the used implementation of {@link AbstractAutoCompleter}
+	 * .
+	 * 
+	 * @see AbstractAutoCompleter#addBibtexEntry(BibtexEntry)
+	 */
+	public String[] complete(String str) {
+		if (stringMinLength(str))
+			return null;
+		String ender = incrementLastCharacter(str);
+		SortedSet<String> subset = _index.subSet(str, ender);
+		return subset.toArray(new String[0]);
+	}
+
+	/*
+	 * Increments the last character of a string.
+	 * 
+	 * Example: incrementLastCharacter("abc") returns "abd".
+	 */
+	private static String incrementLastCharacter(String str) {
+		char lastChar = str.charAt(str.length() - 1);
+		String ender = str.substring(0, str.length() - 1) + Character.toString((char) (lastChar + 1));
+		return ender;
+	}
+
+	private static boolean stringMinLength(String str) {
+		return str.length() < AbstractAutoCompleter.SHORTEST_TO_COMPLETE;
+	}
+
+	public void addWordToIndex(String word) {
+		if (word.length() >= SHORTEST_WORD)
+			_index.add(word);
+	}
+
+	public boolean indexContainsWord(String word) {
+		return _index.contains(word);
+	}
+
+}
\ No newline at end of file
diff --git a/src/java/net/sf/jabref/autocompleter/AutoCompleterFactory.java b/src/java/net/sf/jabref/autocompleter/AutoCompleterFactory.java
new file mode 100644
index 0000000..6fc3b62
--- /dev/null
+++ b/src/java/net/sf/jabref/autocompleter/AutoCompleterFactory.java
@@ -0,0 +1,24 @@
+package net.sf.jabref.autocompleter;
+
+/**
+ * Returns an autocompleter to a given fieldname.
+ * 
+ * @author kahlert, cordes
+ */
+public class AutoCompleterFactory {
+
+	public static AbstractAutoCompleter getFor(String fieldName) {
+		AbstractAutoCompleter result;
+		if (fieldName.equals("author") || fieldName.equals("editor")) {
+			result = new NameFieldAutoCompleter(fieldName);
+		} else if (fieldName.equals("crossref")) {
+			result = new CrossrefAutoCompleter(fieldName);
+		} else if (fieldName.equals("journal") || fieldName.equals("publisher")) {
+			result = new EntireFieldAutoCompleter(fieldName);
+		} else {
+			result = new DefaultAutoCompleter(fieldName);
+		}
+		return result;
+	}
+
+}
diff --git a/src/java/net/sf/jabref/autocompleter/CrossrefAutoCompleter.java b/src/java/net/sf/jabref/autocompleter/CrossrefAutoCompleter.java
new file mode 100644
index 0000000..c54681f
--- /dev/null
+++ b/src/java/net/sf/jabref/autocompleter/CrossrefAutoCompleter.java
@@ -0,0 +1,40 @@
+package net.sf.jabref.autocompleter;
+
+import net.sf.jabref.BibtexEntry;
+
+/**
+ * Crossref autocompleter stores info from the key field.
+ * 
+ * @author kahlert, cordes
+ * 
+ */
+public class CrossrefAutoCompleter extends AbstractAutoCompleter {
+
+	public String _fieldName;
+
+	/**
+	 * @see AutoCompleterFactory
+	 */
+	protected CrossrefAutoCompleter(String fieldName) {
+		_fieldName = fieldName;
+	}
+
+	public boolean isSingleUnitField() {
+		return false;
+	}
+
+	public String[] complete(String s) {
+		return super.complete(s);
+	}
+
+	@Override
+	public void addBibtexEntry(BibtexEntry entry) {
+		if (entry != null) {
+			if (entry != null) {
+				String key = entry.getCiteKey();
+				if (key != null)
+					addWordToIndex(key.trim());
+			}
+		}
+	}
+}
diff --git a/src/java/net/sf/jabref/autocompleter/DefaultAutoCompleter.java b/src/java/net/sf/jabref/autocompleter/DefaultAutoCompleter.java
new file mode 100644
index 0000000..163f117
--- /dev/null
+++ b/src/java/net/sf/jabref/autocompleter/DefaultAutoCompleter.java
@@ -0,0 +1,48 @@
+package net.sf.jabref.autocompleter;
+
+import java.util.StringTokenizer;
+
+import net.sf.jabref.BibtexEntry;
+
+/**
+ * Stores all words which are separated by ' ','.',',' and '\n'. This
+ * autocompleter only processes the field which is given by the fieldname.
+ * 
+ * @author kahlert, cordes
+ * 
+ */
+public class DefaultAutoCompleter extends AbstractAutoCompleter {
+
+	public String _fieldName;
+
+	/**
+	 * @see AutoCompleterFactory
+	 */
+	protected DefaultAutoCompleter(String fieldName) {
+		_fieldName = fieldName;
+	}
+
+	public boolean isSingleUnitField() {
+		return false;
+	}
+
+	public String[] complete(String s) {
+		return super.complete(s);
+	}
+
+	@Override
+	public void addBibtexEntry(BibtexEntry entry) {
+		if (entry != null) {
+			String fieldValue = entry.getField(_fieldName);
+			if (fieldValue == null) {
+				return;
+			} else {
+				StringTokenizer tok = new StringTokenizer(fieldValue.toString(), " .,\n");
+				while (tok.hasMoreTokens()) {
+					String word = tok.nextToken();
+					addWordToIndex(word);
+				}
+			}
+		}
+	}
+}
diff --git a/src/java/net/sf/jabref/autocompleter/EntireFieldAutoCompleter.java b/src/java/net/sf/jabref/autocompleter/EntireFieldAutoCompleter.java
new file mode 100644
index 0000000..f341e10
--- /dev/null
+++ b/src/java/net/sf/jabref/autocompleter/EntireFieldAutoCompleter.java
@@ -0,0 +1,39 @@
+package net.sf.jabref.autocompleter;
+
+import net.sf.jabref.BibtexEntry;
+
+/**
+ * Stores the full original value of one field of the given BibtexEntries.
+ * 
+ * @author kahlert, cordes
+ * 
+ */
+public class EntireFieldAutoCompleter extends AbstractAutoCompleter {
+
+	public String _fieldName;
+
+	/**
+	 * @see AutoCompleterFactory
+	 */
+	protected EntireFieldAutoCompleter(String fieldName) {
+		_fieldName = fieldName;
+	}
+
+	public boolean isSingleUnitField() {
+		return true;
+	}
+
+	public String[] complete(String s) {
+		return super.complete(s);
+	}
+
+	@Override
+	public void addBibtexEntry(BibtexEntry entry) {
+		if (entry != null) {
+			String fieldValue = entry.getField(_fieldName);
+			if (fieldValue != null) {
+				addWordToIndex(fieldValue.toString().trim());
+			}
+		}
+	}
+}
diff --git a/src/java/net/sf/jabref/autocompleter/NameFieldAutoCompleter.java b/src/java/net/sf/jabref/autocompleter/NameFieldAutoCompleter.java
new file mode 100644
index 0000000..03d509c
--- /dev/null
+++ b/src/java/net/sf/jabref/autocompleter/NameFieldAutoCompleter.java
@@ -0,0 +1,55 @@
+package net.sf.jabref.autocompleter;
+
+import net.sf.jabref.AuthorList;
+import net.sf.jabref.BibtexEntry;
+
+/**
+ * Interpretes the given values as names and stores them in different
+ * permutations so we can complete by beginning with last name or first name.
+ * 
+ * @author kahlert, cordes
+ * 
+ */
+public class NameFieldAutoCompleter extends AbstractAutoCompleter {
+
+	private String _fieldName;
+
+	/**
+	 * @see AutoCompleterFactory
+	 */
+	protected NameFieldAutoCompleter(String fieldName) {
+		_fieldName = fieldName;
+	}
+
+	public boolean isSingleUnitField() {
+		return false;
+	}
+
+	public void addBibtexEntry(String fieldValue, BibtexEntry entry) {
+		addBibtexEntry(entry);
+	}
+
+	public void addBibtexEntry(BibtexEntry entry) {
+		if (entry != null) {
+			String fieldValue = entry.getField(_fieldName);
+			if (fieldValue != null) {
+				AuthorList authorList = AuthorList.getAuthorList(fieldValue);
+				for (int i = 0; i < authorList.size(); i++) {
+					AuthorList.Author author = authorList.getAuthor(i);
+					addWordToIndex(author.getLastFirst(true));
+					addWordToIndex(author.getLastFirst(false));
+					addWordToIndex(author.getFirstLast(true));
+					addWordToIndex(author.getFirstLast(false));
+				}
+			}
+		}
+	}
+
+	public String[] complete(String str) {
+		return super.complete(str);
+	}
+
+	public String getFieldName() {
+		return _fieldName;
+	}
+}
diff --git a/src/java/net/sf/jabref/collab/Change.java b/src/java/net/sf/jabref/collab/Change.java
index 754e392..7d42870 100644
--- a/src/java/net/sf/jabref/collab/Change.java
+++ b/src/java/net/sf/jabref/collab/Change.java
@@ -62,7 +62,8 @@ public abstract class Change extends DefaultMutableTreeNode {
   * @param secondary BibtexDatabase The "tmp" database for which the change
   *   should also be made.
   * @param undoEdit NamedCompound The compound to hold the undo edits.
+  * @return true if all changes were made, false if not all were accepted.
   */
-  abstract void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit);
+  abstract boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit);
 
 }
diff --git a/src/java/net/sf/jabref/collab/ChangeDisplayDialog.java b/src/java/net/sf/jabref/collab/ChangeDisplayDialog.java
index 3ddaf27..4c8521d 100644
--- a/src/java/net/sf/jabref/collab/ChangeDisplayDialog.java
+++ b/src/java/net/sf/jabref/collab/ChangeDisplayDialog.java
@@ -83,14 +83,20 @@ public class ChangeDisplayDialog extends JDialog implements TreeSelectionListene
         NamedCompound ce = new NamedCompound(Globals.lang("Merged external changes"));
         @SuppressWarnings("unchecked")
         Enumeration enumer = root.children();
+        boolean anyDisabled = false;
         for (; enumer.hasMoreElements();) {
-          Change c = (Change)enumer.nextElement();
-          if (c.isAcceptable() && c.isAccepted())
-            c.makeChange(panel, ChangeDisplayDialog.this.secondary, ce);
+            Change c = (Change)enumer.nextElement();
+            boolean allAccepted = false;
+            if (c.isAcceptable() && c.isAccepted())
+                allAccepted = c.makeChange(panel, ChangeDisplayDialog.this.secondary, ce);
+
+            if (!allAccepted)
+                anyDisabled = true;
         }
         ce.end();
         panel.undoManager.addEdit(ce);
-        panel.markBaseChanged();
+        if (anyDisabled)
+            panel.markBaseChanged();
         panel.setUpdatedExternally(false);
         dispose();
         okPressed = true;
diff --git a/src/java/net/sf/jabref/collab/EntryAddChange.java b/src/java/net/sf/jabref/collab/EntryAddChange.java
index 275e8cf..7dc0649 100644
--- a/src/java/net/sf/jabref/collab/EntryAddChange.java
+++ b/src/java/net/sf/jabref/collab/EntryAddChange.java
@@ -22,11 +22,12 @@ public class EntryAddChange extends Change {
     sp = new JScrollPane(pp);
   }
 
-  public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+  public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
       diskEntry.setId(Util.createNeutralId());
       panel.database().insertEntry(diskEntry);
       secondary.insertEntry(diskEntry);
       undoEdit.addEdit(new UndoableInsertEntry(panel.database(), diskEntry, panel));
+      return true;
   }
 
   JComponent description() {
diff --git a/src/java/net/sf/jabref/collab/EntryChange.java b/src/java/net/sf/jabref/collab/EntryChange.java
index 01a44f5..862d943 100644
--- a/src/java/net/sf/jabref/collab/EntryChange.java
+++ b/src/java/net/sf/jabref/collab/EntryChange.java
@@ -67,14 +67,15 @@ public class EntryChange extends Change {
   }
 
   
-public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
-
-	@SuppressWarnings("unchecked")
+public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+    @SuppressWarnings("unchecked")
+    boolean allAccepted = true;
     Enumeration<Change> e = children();
     for (; e.hasMoreElements();) {
-      Change c = e.nextElement();
-      if (c.isAcceptable() && c.isAccepted())
-        c.makeChange(panel, secondary, undoEdit);
+        Change c = e.nextElement();
+        if (c.isAcceptable() && c.isAccepted())
+            c.makeChange(panel, secondary, undoEdit);
+        else allAccepted = false;
     }
 
     /*panel.database().removeEntry(memEntry.getId());
@@ -82,6 +83,8 @@ public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound
       diskEntry.setId(Util.createNeutralId());
     } catch (KeyCollisionException ex) {}
     panel.database().removeEntry(memEntry.getId());*/
+
+    return allAccepted;
   }
 
   JComponent description() {
@@ -130,11 +133,12 @@ public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound
       tp.setText(text.toString());
     }
 
-    public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+    public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
       //System.out.println(field+" "+onDisk);
       entry.setField(field, onDisk);
       undoEdit.addEdit(new UndoableFieldChange(entry, field, inMem, onDisk));
       tmpEntry.setField(field, onDisk);
+      return true;
     }
 
     JComponent description() {
diff --git a/src/java/net/sf/jabref/collab/EntryDeleteChange.java b/src/java/net/sf/jabref/collab/EntryDeleteChange.java
index d3997bb..c59bf13 100644
--- a/src/java/net/sf/jabref/collab/EntryDeleteChange.java
+++ b/src/java/net/sf/jabref/collab/EntryDeleteChange.java
@@ -34,10 +34,11 @@ public class EntryDeleteChange extends Change {
     sp = new JScrollPane(pp);
   }
 
-  public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+  public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
     panel.database().removeEntry(memEntry.getId());
     undoEdit.addEdit(new UndoableRemoveEntry(panel.database(), memEntry, panel));
     secondary.removeEntry(tmpEntry.getId());
+    return true;
   }
 
   JComponent description() {
diff --git a/src/java/net/sf/jabref/collab/FileUpdateMonitor.java b/src/java/net/sf/jabref/collab/FileUpdateMonitor.java
index 0f7b433..1a56cd5 100644
--- a/src/java/net/sf/jabref/collab/FileUpdateMonitor.java
+++ b/src/java/net/sf/jabref/collab/FileUpdateMonitor.java
@@ -152,32 +152,35 @@ public class FileUpdateMonitor extends Thread {
     FileUpdateListener listener;
     File file;
     File tmpFile;
-    long timeStamp;
+    long timeStamp, fileSize;
 
     public Entry(FileUpdateListener ul, File f) {
       listener = ul;
       file = f;
       timeStamp = file.lastModified();
+      fileSize = file.length();
       tmpFile = getTempFile();
       copy();
     }
 
     /**
-     * Check if time stamp has changed.
+     * Check if time stamp or the file size has changed.
      * @throws IOException if the file does no longer exist.
      * @return boolean true if the file has changed.
      */
     public boolean hasBeenUpdated() throws IOException {
       long modified = file.lastModified();
+      long fileSizeNow = file.length();
       if (modified == 0L)
         throw new IOException("File deleted");
-      return timeStamp != modified;
+      return timeStamp != modified || fileSize != fileSizeNow;
     }
 
     public void updateTimeStamp() {
       timeStamp = file.lastModified();
       if (timeStamp == 0L)
         notifyFileRemoved();
+      fileSize = file.length();
 
       copy();
     }
diff --git a/src/java/net/sf/jabref/collab/GroupChange.java b/src/java/net/sf/jabref/collab/GroupChange.java
index ed438ba..ef8f9d1 100644
--- a/src/java/net/sf/jabref/collab/GroupChange.java
+++ b/src/java/net/sf/jabref/collab/GroupChange.java
@@ -23,7 +23,7 @@ public class GroupChange extends Change {
         this.tmpGroupRoot = tmpGroupRoot;
     }
 
-    public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+    public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
         final GroupTreeNode root = panel.getGroupSelector().getGroupTreeRoot();
         final UndoableModifySubtree undo = new UndoableModifySubtree(
                 panel.getGroupSelector(), root, Globals.lang("Modified groups")); // JZTODO lyrics
@@ -51,6 +51,7 @@ public class GroupChange extends Change {
         for (int i = 0; i < copied.getChildCount(); ++i)
             tmpGroupRoot.add(((GroupTreeNode) copied.getChildAt(i)).deepCopy());
         tmpGroupRoot.refreshGroupsForNewDatabase(secondary);
+        return true;
     }
 
     JComponent description() {
diff --git a/src/java/net/sf/jabref/collab/MetaDataChange.java b/src/java/net/sf/jabref/collab/MetaDataChange.java
index 34f4f17..b32ffff 100644
--- a/src/java/net/sf/jabref/collab/MetaDataChange.java
+++ b/src/java/net/sf/jabref/collab/MetaDataChange.java
@@ -74,7 +74,7 @@ public class MetaDataChange extends Change {
         return sp;
     }
 
-    void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+    public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
         for (Iterator<MetaDataChangeUnit> iterator = changes.iterator(); iterator.hasNext();) {
             MetaDataChangeUnit unit = iterator.next();
             switch (unit.type) {
@@ -92,6 +92,7 @@ public class MetaDataChange extends Change {
                     break;
             }
         }
+        return true;
     }
 
     class MetaDataChangeUnit {
diff --git a/src/java/net/sf/jabref/collab/PreambleChange.java b/src/java/net/sf/jabref/collab/PreambleChange.java
index d82388d..2aaa214 100644
--- a/src/java/net/sf/jabref/collab/PreambleChange.java
+++ b/src/java/net/sf/jabref/collab/PreambleChange.java
@@ -37,10 +37,11 @@ public class PreambleChange extends Change {
       tp.setText(text.toString());
   }
 
-  public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
-    panel.database().setPreamble(disk);
-    undoEdit.addEdit(new UndoablePreambleChange(panel.database(), panel, mem, disk));
+  public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+      panel.database().setPreamble(disk);
+      undoEdit.addEdit(new UndoablePreambleChange(panel.database(), panel, mem, disk));
       secondary.setPreamble(disk);
+      return true;
   }
 
   JComponent description() {
diff --git a/src/java/net/sf/jabref/collab/StringAddChange.java b/src/java/net/sf/jabref/collab/StringAddChange.java
index e109371..2d8121f 100644
--- a/src/java/net/sf/jabref/collab/StringAddChange.java
+++ b/src/java/net/sf/jabref/collab/StringAddChange.java
@@ -32,7 +32,7 @@ public class StringAddChange extends Change {
 
   }
 
-  public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+  public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
 
     if (panel.database().hasStringLabel(string.getName())) {
       // The name to change to is already in the database, so we can't comply.
@@ -52,6 +52,7 @@ public class StringAddChange extends Change {
     } catch (KeyCollisionException ex) {
         Globals.logger("Error: could not add string '"+string.getName()+"' to tmp database: "+ex.getMessage());
     }
+    return true;
   }
 
 
diff --git a/src/java/net/sf/jabref/collab/StringChange.java b/src/java/net/sf/jabref/collab/StringChange.java
index ddc320a..fc902a8 100644
--- a/src/java/net/sf/jabref/collab/StringChange.java
+++ b/src/java/net/sf/jabref/collab/StringChange.java
@@ -49,7 +49,7 @@ public class StringChange extends Change {
     tp.setText(sb.toString());
   }
 
-  public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+  public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
     if (string != null) {
       string.setContent(disk);
       undoEdit.addEdit(new UndoableStringChange(panel, string, false, mem, disk));
@@ -75,6 +75,8 @@ public class StringChange extends Change {
           BibtexString bs = new BibtexString(Util.createNeutralId(), label, disk);
           secondary.addString(bs);
       }
+
+      return true;
   }
 
 
diff --git a/src/java/net/sf/jabref/collab/StringNameChange.java b/src/java/net/sf/jabref/collab/StringNameChange.java
index a2ef52d..58b8d22 100644
--- a/src/java/net/sf/jabref/collab/StringNameChange.java
+++ b/src/java/net/sf/jabref/collab/StringNameChange.java
@@ -26,7 +26,7 @@ public class StringNameChange extends Change {
 
   }
 
-  public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+  public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
 
     if (panel.database().hasStringLabel(disk)) {
       // The name to change to is already in the database, so we can't comply.
@@ -59,6 +59,8 @@ public class StringNameChange extends Change {
 	      BibtexString bs = new BibtexString(newId, disk, content);
           secondary.addString(bs);
       }
+
+      return true;
   }
 
 
diff --git a/src/java/net/sf/jabref/collab/StringRemoveChange.java b/src/java/net/sf/jabref/collab/StringRemoveChange.java
index c45d00f..f1a90cb 100644
--- a/src/java/net/sf/jabref/collab/StringRemoveChange.java
+++ b/src/java/net/sf/jabref/collab/StringRemoveChange.java
@@ -39,7 +39,7 @@ public class StringRemoveChange extends Change {
 
   }
 
-  public void makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
+  public boolean makeChange(BasePanel panel, BibtexDatabase secondary, NamedCompound undoEdit) {
 
     try {
       panel.database().removeString(inMem.getId());
@@ -50,6 +50,8 @@ public class StringRemoveChange extends Change {
 
       // Update tmp database:
       secondary.removeString(tmpString.getId());
+
+      return true;
   }
 
 
diff --git a/src/java/net/sf/jabref/export/OpenDocumentSpreadsheetCreator.java b/src/java/net/sf/jabref/export/OpenDocumentSpreadsheetCreator.java
index 42ccab8..f14d22a 100644
--- a/src/java/net/sf/jabref/export/OpenDocumentSpreadsheetCreator.java
+++ b/src/java/net/sf/jabref/export/OpenDocumentSpreadsheetCreator.java
@@ -53,7 +53,7 @@ public class OpenDocumentSpreadsheetCreator extends ExportFormat {
             // Add manifest (required for OOo 2.0) and "meta.xml": These are in the
             // resource/ods directory, and are copied verbatim into the zip file.
             addResourceFile("meta.xml", "/resource/ods/meta.xml", out);
-            //addResourceFile("mimetype", "/resource/openoffice/mimetype", out);
+            addResourceFile("mimetype", "/resource/ods/mimetype", out);
             addResourceFile("META-INF/manifest.xml", "/resource/ods/manifest.xml", out);
 
             //zipEntry = new ZipEntry()
diff --git a/src/java/net/sf/jabref/export/SaveDatabaseAction.java b/src/java/net/sf/jabref/export/SaveDatabaseAction.java
index 7876d4d..7c99ad5 100644
--- a/src/java/net/sf/jabref/export/SaveDatabaseAction.java
+++ b/src/java/net/sf/jabref/export/SaveDatabaseAction.java
@@ -269,6 +269,16 @@ public class SaveDatabaseAction extends AbstractWorker {
                 panel.setEncoding(encoding); // Make sure to remember which encoding we used.
             } else
                 session.cancel();
+        } catch (SaveException e) {
+            int ans = JOptionPane.showConfirmDialog(null, Globals.lang("Save failed during backup creation")+". "
+                +Globals.lang("Save without backup?"), Globals.lang("Unable to create backup"),
+                    JOptionPane.YES_NO_OPTION);
+            if (ans == JOptionPane.YES_OPTION) {
+                session.setUseBackup(false);
+                session.commit();
+                panel.setEncoding(encoding);
+            }
+            else commit = false;
         } catch (IOException e) {
             e.printStackTrace();
         }
diff --git a/src/java/net/sf/jabref/export/SaveException.java b/src/java/net/sf/jabref/export/SaveException.java
index a6e0990..96bbf8d 100644
--- a/src/java/net/sf/jabref/export/SaveException.java
+++ b/src/java/net/sf/jabref/export/SaveException.java
@@ -40,9 +40,11 @@ public class SaveException extends Exception
 
     public static final SaveException FILE_LOCKED = new SaveException
             (Globals.lang("Could not save, file locked by another JabRef instance."));
+    public static final SaveException BACKUP_CREATION = new SaveException
+            (Globals.lang("Unable to create backup"));
 
     private BibtexEntry entry;
-    private int status;
+    private int status = 0;
     //~ Constructors ///////////////////////////////////////////////////////////
 
     public SaveException(String message)
diff --git a/src/java/net/sf/jabref/export/SaveSession.java b/src/java/net/sf/jabref/export/SaveSession.java
index 09b885f..8e60fcf 100644
--- a/src/java/net/sf/jabref/export/SaveSession.java
+++ b/src/java/net/sf/jabref/export/SaveSession.java
@@ -56,6 +56,10 @@ public class SaveSession {
         return encoding;
     }
 
+    public void setUseBackup(boolean useBackup) {
+        this.backup = useBackup;
+    }
+
     public void commit() throws SaveException {
         if (file == null)
             return;
@@ -66,7 +70,9 @@ public class SaveSession {
             try {
                 Util.copyFile(file, backupFile, true);
             } catch (IOException ex) {
-                throw new SaveException(Globals.lang("Save failed during backup creation")+": "+ex.getMessage());
+                ex.printStackTrace();
+                throw SaveException.BACKUP_CREATION;
+                //throw new SaveException(Globals.lang("Save failed during backup creation")+": "+ex.getMessage());
             }
         }
         try {
diff --git a/src/java/net/sf/jabref/export/layout/format/CreateDocBookAuthors.java b/src/java/net/sf/jabref/export/layout/format/CreateDocBookAuthors.java
index fdbb77c..00a6c58 100755
--- a/src/java/net/sf/jabref/export/layout/format/CreateDocBookAuthors.java
+++ b/src/java/net/sf/jabref/export/layout/format/CreateDocBookAuthors.java
@@ -4,9 +4,9 @@
 //  Language: Java
 //  Compiler: JDK 1.4
 //  Authors:  Joerg K. Wegner
-//  Version:  $Revision: 2268 $
-//            $Date: 2007-08-20 01:37:05 +0200 (Mon, 20 Aug 2007) $
-//            $Author: coezbek $
+//  Version:  $Revision: 3134 $
+//            $Date: 2009-11-06 19:32:07 +0100 (Fri, 06 Nov 2009) $
+//            $Author: mortenalver $
 //
 //  Copyright (c) Dept. Computer Architecture, University of Tuebingen, Germany
 //
@@ -33,21 +33,31 @@ import net.sf.jabref.AuthorList;
  * Create DocBook authors formatter.
  *
  * @author $author$
- * @version $Revision: 2268 $
+ * @version $Revision: 3134 $
  */
 public class CreateDocBookAuthors implements LayoutFormatter
 {
     //~ Methods ////////////////////////////////////////////////////////////////
 
+    static XMLChars xc = new XMLChars();
+
     public String format(String fieldText)
     {
+
+        StringBuilder sb = new StringBuilder(100);
+
+        AuthorList al = AuthorList.getAuthorList(fieldText);
+
+        addBody(sb, al, "author");
+        return sb.toString();
+        
         //		<author><firstname>L.</firstname><surname>Xue</surname></author>
         //     <author><firstname>F.</firstname><othername role="mi">L.</othername><surname>Stahura</surname></author>
         //     <author><firstname>J.</firstname><othername role="mi">W.</othername><surname>Godden</surname></author>
         //     <author><firstname>J.</firstname><surname>Bajorath</surname></author>
 
-        StringBuffer sb = new StringBuffer(100);
 
+        /*
         if (fieldText.indexOf(" and ") == -1)
         {
           sb.append("<author>");
@@ -71,17 +81,48 @@ public class CreateDocBookAuthors implements LayoutFormatter
 
         fieldText = sb.toString();
 
-        return fieldText;
+        return fieldText;*/
+    }
+
+    public void addBody(StringBuilder sb, AuthorList al, String tagName) {
+        for (int i=0; i<al.size(); i++) {
+            sb.append("<"+tagName+">");
+            AuthorList.Author a = al.getAuthor(i);
+            if ((a.getFirst() != null) && (a.getFirst().length() > 0)) {
+                sb.append("<firstname>");
+                sb.append(xc.format(a.getFirst()));
+                sb.append("</firstname>");
+            }
+            if ((a.getVon() != null) && (a.getVon().length() > 0)) {
+                sb.append("<othername>");
+                sb.append(xc.format(a.getVon()));
+                sb.append("</othername>");
+            }
+            if ((a.getLast() != null) && (a.getLast().length() > 0)) {
+                sb.append("<lastname>");
+                sb.append(xc.format(a.getLast()));
+                if ((a.getJr() != null) && (a.getJr().length() > 0)) {
+                    sb.append(" "+xc.format(a.getJr()));
+                }
+                sb.append("</lastname>");
+            }
+
+            if (i < al.size()-1)
+                sb.append("</"+tagName+">\n       ");
+            else
+                sb.append("</"+tagName+">");
+        }
     }
 
     /**
      * @param sb
-     * @param fieldText
+     * @param author
      */
     protected void singleAuthor(StringBuffer sb, String author)
     {
         // TODO: replace special characters
         Vector<String> v = new Vector<String>();
+
         String authorMod = AuthorList.fixAuthor_firstNameFirst(author);
 
         WSITools.tokenize(v, authorMod, " \n\r");
diff --git a/src/java/net/sf/jabref/export/layout/format/CreateDocBookEditors.java b/src/java/net/sf/jabref/export/layout/format/CreateDocBookEditors.java
index b9156bd..cd3938b 100755
--- a/src/java/net/sf/jabref/export/layout/format/CreateDocBookEditors.java
+++ b/src/java/net/sf/jabref/export/layout/format/CreateDocBookEditors.java
@@ -4,9 +4,9 @@
 //  Language: Java
 //  Compiler: JDK 1.4
 //  Authors:  Joerg K. Wegner
-//  Version:  $Revision: 2268 $
-//            $Date: 2007-08-20 01:37:05 +0200 (Mon, 20 Aug 2007) $
-//            $Author: coezbek $
+//  Version:  $Revision: 3134 $
+//            $Date: 2009-11-06 19:32:07 +0100 (Fri, 06 Nov 2009) $
+//            $Author: mortenalver $
 //
 //  Copyright (c) Dept. Computer Architecture, University of Tuebingen, Germany
 //
@@ -21,13 +21,14 @@
 ///////////////////////////////////////////////////////////////////////////////
 package net.sf.jabref.export.layout.format;
 
+import net.sf.jabref.AuthorList;
 
 
 /**
  * Create DocBook editors formatter.
  *
  * @author $author$
- * @version $Revision: 2268 $
+ * @version $Revision: 3134 $
  */
 public class CreateDocBookEditors extends CreateDocBookAuthors
 {
@@ -36,32 +37,11 @@ public class CreateDocBookEditors extends CreateDocBookAuthors
     public String format(String fieldText)
     {
         //		<editor><firstname>L.</firstname><surname>Xue</surname></editor>
-
-        StringBuffer sb = new StringBuffer(100);
-        //fieldText = (new ConvertSpecialCharactersForXML()).format(fieldText);
-
-        if (fieldText.indexOf(" and ") == -1)
-        {
-          sb.append("<editor>");
-          singleAuthor(sb, fieldText);
-          sb.append("</editor>");
-        }
-        else
-        {
-            String[] names = fieldText.split(" and ");
-            for (int i=0; i<names.length; i++)
-            {
-              sb.append("<editor>");
-              singleAuthor(sb, names[i]);
-              sb.append("</editor>");
-              if (i < names.length -1)
-                sb.append("\n       ");
-            }
-        }
-
-        fieldText = sb.toString();
-
-        return fieldText;
+        StringBuilder sb = new StringBuilder(100);
+        AuthorList al = AuthorList.getAuthorList(fieldText);
+        addBody(sb, al, "editor");
+        return sb.toString();
+        
     }
 
 }
diff --git a/src/java/net/sf/jabref/export/layout/format/IfPlural.java b/src/java/net/sf/jabref/export/layout/format/IfPlural.java
new file mode 100644
index 0000000..629f18f
--- /dev/null
+++ b/src/java/net/sf/jabref/export/layout/format/IfPlural.java
@@ -0,0 +1,47 @@
+/**
+ * 
+ */
+package net.sf.jabref.export.layout.format;
+
+import net.sf.jabref.export.layout.AbstractParamLayoutFormatter;
+
+/**
+ * @author ralmond
+ * 
+ * This formatter takes two arguments and examines the field text.  
+ * If the field text represents multiple individuals, that is it contains the string "and"
+ * then the field text is replaced with the first argument, otherwise it is replaced with the second.
+ * For example:
+ * 
+ * \format[IfPlural(Eds.,Ed.)]{\editor}
+ * 
+ * Should expand to 'Eds.' if the document has more than one editor and 'Ed.' if it only has one.
+ * 
+ *
+ */
+public class IfPlural extends AbstractParamLayoutFormatter {
+  
+  protected String pluralText, singularText;
+  
+  public void setArgument(String arg) {
+    String[] parts = parseArgument(arg);
+
+    if (parts.length < 2)
+        return; // TODO: too few arguments. Print an error message here?
+    pluralText = parts[0];
+    singularText = parts[1];
+
+}
+
+public String format(String fieldText) {
+    if (pluralText == null)
+        return fieldText; // TODO: argument missing or invalid. Print an error message here?
+    if (fieldText.matches(".*\\sand\\s.*"))
+      return pluralText;
+    else 
+      return singularText;
+
+}
+
+
+}
diff --git a/src/java/net/sf/jabref/external/DroppedFileHandler.java b/src/java/net/sf/jabref/external/DroppedFileHandler.java
index 3bfea29..22f017c 100644
--- a/src/java/net/sf/jabref/external/DroppedFileHandler.java
+++ b/src/java/net/sf/jabref/external/DroppedFileHandler.java
@@ -19,6 +19,8 @@ import net.sf.jabref.undo.UndoableInsertEntry;
 import net.sf.jabref.util.XMPUtil;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.debug.FormDebugPanel;
+import com.jgoodies.forms.layout.CellConstraints;
 import com.jgoodies.forms.layout.FormLayout;
 
 /**
@@ -45,6 +47,8 @@ public class DroppedFileHandler {
 
     private JCheckBox renameCheckBox = new JCheckBox();
 
+    private JTextField renameToTextBox = new JTextField(25);
+    
     private JPanel optionsPanel = new JPanel();
 
     public DroppedFileHandler(JabRefFrame frame, BasePanel panel) {
@@ -58,13 +62,19 @@ public class DroppedFileHandler {
         grp.add(moveRadioButton);
         copyRadioButton.setSelected(true);
 
-        DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("left:pref", ""),
-			optionsPanel);
-        builder.append(linkInPlace);
-        builder.append(destDirLabel);
-        builder.append(copyRadioButton);
-        builder.append(moveRadioButton);
-        builder.append(renameCheckBox);
+        FormLayout layout = new FormLayout("left:15dlu,pref,pref,pref","bottom:14pt,pref,pref,pref,pref");
+        layout.setRowGroups(new int[][]{{1, 2, 3, 4, 5}});
+        DefaultFormBuilder builder = new DefaultFormBuilder(layout,	optionsPanel);
+        builder.setDefaultDialogBorder();
+        CellConstraints cc = new CellConstraints();
+        
+        builder.add(linkInPlace, cc.xyw(1, 1, 4));
+        builder.add(destDirLabel, cc.xyw(1, 2, 4));
+        builder.add(copyRadioButton, cc.xyw(2, 3, 3));        
+        builder.add(moveRadioButton, cc.xyw(2, 4, 3));
+        builder.add(renameCheckBox, cc.xyw(2, 5, 1));
+        builder.add(renameToTextBox, cc.xyw(4, 5, 1));
+        
     }
 
     /**
@@ -114,10 +124,8 @@ public class DroppedFileHandler {
 
         // Show dialog
         boolean newEntry = false;
-        boolean rename = entry.getCiteKey() != null && entry.getCiteKey().length() > 0;
-        String citeKeyOrReason = (rename ? entry.getCiteKey() : Globals.lang("Entry has no citekey"));
-        int reply = showLinkMoveCopyRenameDialog(Globals.lang("Link to file %0", fileName),
-            fileType, rename, citeKeyOrReason, newEntry, false);
+        String citeKey = entry.getCiteKey();
+        int reply = showLinkMoveCopyRenameDialog(fileName, fileType, citeKey, newEntry, false);
 
         if (reply != JOptionPane.OK_OPTION)
             return;
@@ -126,18 +134,18 @@ public class DroppedFileHandler {
          * Ok, we're ready to go. See first if we need to do a file copy before
          * linking:
          */
+        
         boolean success = true;
         String destFilename;
 
         if (linkInPlace.isSelected()) {
             destFilename = fileName;
         } else {
-            destFilename = (renameCheckBox.isSelected() ? entry.getCiteKey() + "." + fileType.extension
-                    : new File(fileName).getName());
+            destFilename = (renameCheckBox.isSelected() ? renameToTextBox.getText() : new File(fileName).getName());
             if (copyRadioButton.isSelected()) {
                 success = doCopy(fileName, fileType, destFilename, edits);
             } else if (moveRadioButton.isSelected()) {
-                success = doRename(fileName, fileType, destFilename, edits);
+                success = doMove(fileName, fileType, destFilename, edits);
             }
         }
 
@@ -215,7 +223,7 @@ public class DroppedFileHandler {
             if (copyRadioButton.isSelected()) {
                 success = doCopy(fileName, fileType, destFilename, edits);
             } else if (moveRadioButton.isSelected()) {
-                success = doRename(fileName, fileType, destFilename, edits);
+                success = doMove(fileName, fileType, destFilename, edits);
             }
         }
         if (success) {
@@ -239,27 +247,34 @@ public class DroppedFileHandler {
         return true;
     }
 
-    public int showLinkMoveCopyRenameDialog(String dialogTitle, ExternalFileType fileType,
-        final boolean allowRename, String citekeyOrReason, boolean newEntry,
-        final boolean multipleEntries) {
-        
+    public int showLinkMoveCopyRenameDialog(String linkFileName, ExternalFileType fileType,
+        String citeKey, boolean newEntry, final boolean multipleEntries) {
+    	
+    	String dialogTitle = Globals.lang("Link to file %0", linkFileName);
         //String dir = panel.metaData().getFileDirectory(fileType.getFieldName());
         String dir = panel.metaData().getFileDirectory(GUIGlobals.FILE_FIELD);
         if ((dir == null) || !(new File(dir)).exists()) {
-            destDirLabel.setText(Globals.lang("File directory is not set or does not exist!"));
+            destDirLabel.setText(Globals.lang("File directory is not set or does not exist."));
             copyRadioButton.setEnabled(false);
             moveRadioButton.setEnabled(false);
+            renameToTextBox.setEnabled(false);
+            renameCheckBox.setEnabled(false);
             linkInPlace.setSelected(true);
         } else {
             destDirLabel.setText(Globals.lang("File directory is '%0':", dir));
             copyRadioButton.setEnabled(true);
             moveRadioButton.setEnabled(true);
+            renameToTextBox.setEnabled(true);
+            renameCheckBox.setEnabled(true);
         }
         
         ChangeListener cl = new ChangeListener() {
 			public void stateChanged(ChangeEvent arg0) {
 				renameCheckBox.setEnabled(!linkInPlace.isSelected()
-						&& allowRename && (!multipleEntries));
+						&&  (!multipleEntries));
+				renameToTextBox.setEnabled(!linkInPlace.isSelected()
+						&&  (!multipleEntries));
+				if (multipleEntries) { renameToTextBox.setText("Multiple entries"); }
 			}
 		};
 
@@ -273,15 +288,17 @@ public class DroppedFileHandler {
 			linkInPlace.setText(Globals
 					.lang("Leave file in its current directory."));
 			copyRadioButton.setText(Globals.lang("Copy file to file directory."));
-			moveRadioButton.setText(Globals.lang("Move file to file directory"));
+			moveRadioButton.setText(Globals.lang("Move file to file directory."));
 		}
 		
-        renameCheckBox.setText(Globals.lang("Rename to match citekey") + ": " + citekeyOrReason);
+        renameCheckBox.setText(Globals.lang("Rename file to") + ": ");
+        renameToTextBox.setText(citeKey == null ? "default" : citeKey + "." + fileType.extension);
         linkInPlace.addChangeListener(cl);
         cl.stateChanged(new ChangeEvent(linkInPlace));
 
         try {
-            return JOptionPane.showConfirmDialog(frame, optionsPanel, dialogTitle,
+        	Object[] messages = {"How would you like to link to " + linkFileName + "?", optionsPanel}; 
+            return JOptionPane.showConfirmDialog(frame, messages, dialogTitle,
                 JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
         } finally {
             linkInPlace.removeChangeListener(cl);
@@ -357,7 +374,7 @@ public class DroppedFileHandler {
      *            TODO we should be able to undo this action
      * @return true if the operation succeeded.
      */
-    private boolean doRename(String fileName, ExternalFileType fileType, String destFilename,
+    private boolean doMove(String fileName, ExternalFileType fileType, String destFilename,
         NamedCompound edits) {
         String dir = panel.metaData().getFileDirectory(GUIGlobals.FILE_FIELD);
         if ((dir == null) || !(new File(dir)).exists()) {
@@ -366,12 +383,26 @@ public class DroppedFileHandler {
             // This should not happen!!
             return false;
         }
-        destFilename = new File(destFilename).getName();
-        File f = new File(fileName);
-        File destFile = new File(new StringBuffer(dir).append(System.getProperty("file.separator"))
-            .append(destFilename).toString());
-        f.renameTo(destFile);
-        return true;
+        File fromFile = new File(fileName);
+        File toFile = new File(dir + System.getProperty("file.separator") + destFilename);
+        if (toFile.exists()) {
+        	int answer = JOptionPane.showConfirmDialog(frame,
+        			toFile.getAbsolutePath() + " exists. Overwrite?", "Overwrite file?", 
+        			JOptionPane.YES_NO_OPTION);
+        	if (answer == JOptionPane.NO_OPTION) {
+        		return false;
+        	}
+        }
+ 
+        if (!fromFile.renameTo(toFile)) {
+        	JOptionPane.showMessageDialog(frame,
+        			"There was an error moving the file. Please move the file manually and link in place.",
+        			"Error moving file", JOptionPane.ERROR_MESSAGE);
+        	return false;
+        } else {
+        	return true;
+        }
+
     }
 
     /**
@@ -409,7 +440,7 @@ public class DroppedFileHandler {
         
         if (destFile.exists()) {
             int answer = JOptionPane.showConfirmDialog(frame, "'" + destFile.getPath() + "' "
-                + Globals.lang("exists.Overwrite?"), Globals.lang("File exists"),
+                + Globals.lang("exists. Overwrite?"), Globals.lang("File exists"),
                 JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
             if (answer == JOptionPane.NO_OPTION)
                 return false;
diff --git a/src/java/net/sf/jabref/external/ExternalFileTypeEntryEditor.java b/src/java/net/sf/jabref/external/ExternalFileTypeEntryEditor.java
index 8e93dcd..83858d4 100644
--- a/src/java/net/sf/jabref/external/ExternalFileTypeEntryEditor.java
+++ b/src/java/net/sf/jabref/external/ExternalFileTypeEntryEditor.java
@@ -199,8 +199,14 @@ public class ExternalFileTypeEntryEditor {
 
     public void storeSettings(ExternalFileType entry) {
         entry.setName(name.getText().trim());
-        entry.setExtension(extension.getText().trim());
         entry.setMimeType(mimeType.getText().trim());
+        // Set extension, but remove initial dot if user has added that:
+        String ext = extension.getText().trim();
+        if ((ext.length() > 0) && (ext.charAt(0) == '.'))
+            entry.setExtension(ext.substring(1));
+        else
+            entry.setExtension(ext);
+        
         if (selectedIcon != null)
             entry.setIconName(selectedIcon);
         if (!Globals.ON_WIN) {
diff --git a/src/java/net/sf/jabref/external/MoveFileAction.java b/src/java/net/sf/jabref/external/MoveFileAction.java
index fa5dba4..b590db8 100644
--- a/src/java/net/sf/jabref/external/MoveFileAction.java
+++ b/src/java/net/sf/jabref/external/MoveFileAction.java
@@ -90,7 +90,6 @@ public class MoveFileAction extends AbstractAction {
                         sb.append(file.getName());
                     }
                     chosenFile = sb.toString();
-                    System.out.println(chosenFile);
                 } else {
                     chosenFile = FileDialogs.getNewFile(frame, file, extension, JFileChooser.SAVE_DIALOG, false);
                 }
@@ -120,12 +119,13 @@ public class MoveFileAction extends AbstractAction {
                         // Remove the original file:
                         file.delete();
                         // Relativise path, if possible.
-                        if (newFile.getPath().startsWith(dir)) {
-                            if ((newFile.getPath().length() > dir.length()) &&
-                                    (newFile.getPath().charAt(dir.length()) == File.separatorChar))
-                                flEntry.setLink(newFile.getPath().substring(1+dir.length()));
+                        String canPath = (new File(dir)).getCanonicalPath();
+                        if (newFile.getCanonicalPath().startsWith(canPath)) {
+                            if ((newFile.getPath().length() > canPath.length()) &&
+                                    (newFile.getPath().charAt(canPath.length()) == File.separatorChar))
+                                flEntry.setLink(newFile.getPath().substring(1+canPath.length()));
                             else
-                                flEntry.setLink(newFile.getPath().substring(dir.length()));
+                                flEntry.setLink(newFile.getPath().substring(canPath.length()));
 
 
                         }
diff --git a/src/java/net/sf/jabref/groups/AllEntriesGroup.java b/src/java/net/sf/jabref/groups/AllEntriesGroup.java
index eb08015..00ce31a 100644
--- a/src/java/net/sf/jabref/groups/AllEntriesGroup.java
+++ b/src/java/net/sf/jabref/groups/AllEntriesGroup.java
@@ -115,7 +115,7 @@ public class AllEntriesGroup extends AbstractGroup implements SearchRule {
 	}
 	
 	public String getShortDescription() {
-		return "<b>All Entries</b> (this group cannot be edited or removed)";
+		return Globals.lang("<b>All Entries</b> (this group cannot be edited or removed)");
 	}
 
     public String getTypeId() {
diff --git a/src/java/net/sf/jabref/groups/ExplicitGroup.java b/src/java/net/sf/jabref/groups/ExplicitGroup.java
index aed62e9..4aa0608 100644
--- a/src/java/net/sf/jabref/groups/ExplicitGroup.java
+++ b/src/java/net/sf/jabref/groups/ExplicitGroup.java
@@ -224,13 +224,13 @@ public class ExplicitGroup extends AbstractGroup implements SearchRule {
 
     public String getShortDescription() {
         StringBuffer sb = new StringBuffer();
-        sb.append("<b>").append(getName()).append("</b> - static group");
+        sb.append("<b>").append(getName()).append(Globals.lang("</b> - static group"));
         switch (getHierarchicalContext()) {
         case AbstractGroup.INCLUDING:
-            sb.append(", includes subgroups");
+            sb.append(Globals.lang(", includes subgroups"));
             break;
         case AbstractGroup.REFINING:
-            sb.append(", refines supergroup");
+            sb.append(Globals.lang(", refines supergroup"));
             break;
         default:
             break;
diff --git a/src/java/net/sf/jabref/groups/KeywordGroup.java b/src/java/net/sf/jabref/groups/KeywordGroup.java
index 68402a8..844de74 100644
--- a/src/java/net/sf/jabref/groups/KeywordGroup.java
+++ b/src/java/net/sf/jabref/groups/KeywordGroup.java
@@ -376,15 +376,15 @@ public class KeywordGroup extends AbstractGroup implements SearchRule {
             sb.append("<i>").append(Util.quoteForHTML(getName())).append("</i>");
 		else
 			sb.append(Util.quoteForHTML(getName()));
-        sb.append("</b> - dynamic group (<b>").append(m_searchField).
-            append("</b> contains <b>").
+        sb.append(Globals.lang("</b> - dynamic group (<b>")).append(m_searchField).
+            append(Globals.lang("</b> contains <b>")).
             append(Util.quoteForHTML(m_searchExpression)).append("</b>)");
 		switch (getHierarchicalContext()) {
 		case AbstractGroup.INCLUDING:
-			sb.append(", includes subgroups");
+			sb.append(Globals.lang(", includes subgroups"));
 			break;
 		case AbstractGroup.REFINING:
-			sb.append(", refines supergroup");
+			sb.append(Globals.lang(", refines supergroup"));
 			break;
 		default:
 			break;
diff --git a/src/java/net/sf/jabref/groups/SearchGroup.java b/src/java/net/sf/jabref/groups/SearchGroup.java
index a33cf7a..b05ed3e 100644
--- a/src/java/net/sf/jabref/groups/SearchGroup.java
+++ b/src/java/net/sf/jabref/groups/SearchGroup.java
@@ -391,14 +391,16 @@ public class SearchGroup extends AbstractGroup implements SearchRule {
             sb.append("<i>").append(Util.quoteForHTML(getName())).append("</i>");
 		else
 			sb.append(Util.quoteForHTML(getName()));
-        sb.append("</b> - dynamic group (" + "search expression: <b>").
+            /*sb.append(Globals.lang("</b> - dynamic group (search expression: <b>")).*/
+            sb.append(Globals.lang("</b> - dynamic group (")+ Globals.lang("search expression: <b>")).
+                    
             append(Util.quoteForHTML(m_searchExpression)).append("</b>)");
 		switch (getHierarchicalContext()) {
 		case AbstractGroup.INCLUDING:
-			sb.append(", includes subgroups");
+			sb.append(Globals.lang(", includes subgroups"));
 			break;
 		case AbstractGroup.REFINING:
-			sb.append(", refines supergroup");
+			sb.append(Globals.lang(", refines supergroup"));
 			break;
 		default:
 			break;
diff --git a/src/java/net/sf/jabref/gui/AutoCompleteListener.java b/src/java/net/sf/jabref/gui/AutoCompleteListener.java
index f23e851..1a9e1b2 100644
--- a/src/java/net/sf/jabref/gui/AutoCompleteListener.java
+++ b/src/java/net/sf/jabref/gui/AutoCompleteListener.java
@@ -2,6 +2,9 @@ package net.sf.jabref.gui;
 
 import javax.swing.text.JTextComponent;
 import javax.swing.text.BadLocationException;
+
+import net.sf.jabref.autocompleter.AbstractAutoCompleter;
+
 import java.awt.event.KeyAdapter;
 import java.awt.event.KeyEvent;
 import java.awt.event.FocusListener;
@@ -13,7 +16,7 @@ import java.awt.event.FocusEvent;
 public class AutoCompleteListener extends KeyAdapter implements FocusListener {
 
 
-    AutoCompleter completer;
+    AbstractAutoCompleter completer;
     protected String toSetIn = null,
             lastBeginning = null;
     protected int lastCaretPosition = -1;
@@ -27,7 +30,7 @@ public class AutoCompleteListener extends KeyAdapter implements FocusListener {
 
     // These variables keep track of the situation from time to time.
 
-    public AutoCompleteListener(AutoCompleter completer) {
+    public AutoCompleteListener(AbstractAutoCompleter completer) {
         this.completer = completer;
     }
 
@@ -43,7 +46,7 @@ public class AutoCompleteListener extends KeyAdapter implements FocusListener {
     }
 
     public void keyPressed(KeyEvent e) {
-        if ((toSetIn != null) && (e.getKeyCode() == KeyEvent.VK_ENTER)) {
+    	if ((toSetIn != null) && (e.getKeyCode() == KeyEvent.VK_ENTER)) {
             JTextComponent comp = (JTextComponent) e.getSource();
             int end = comp.getSelectionEnd();
             comp.select(end, end);
@@ -82,11 +85,11 @@ public class AutoCompleteListener extends KeyAdapter implements FocusListener {
         //System.out.println("ToSetIn: '"+toSetIn+"'");
     }
 
-    public void keyTyped(KeyEvent e) {
-        
+    public void keyTyped(KeyEvent e) {        
         char ch = e.getKeyChar();
         if (Character.isLetter(ch)) {
             JTextComponent comp = (JTextComponent) e.getSource();
+            
             if ((toSetIn != null) && (toSetIn.length() > 1) &&
                     (ch == toSetIn.charAt(1))) {
                 // User continues on the word that was suggested.
@@ -184,21 +187,8 @@ public class AutoCompleteListener extends KeyAdapter implements FocusListener {
 
     }
 
-
-    protected Object[] findCompletions(String beginning, JTextComponent comp) {
-        Object[] completed;
-        if (completer.isNameField()) {
-            int nameStatus = findNamePositionStatus(comp);
-            if (nameStatus == ANY_NAME)
-                completed = completer.complete(beginning);
-            else if (nameStatus == FIRST_NAME)
-                completed = completer.completeName(beginning, false);
-            else
-                completed = completer.completeName(beginning, true);
-        }
-        else
-            completed = completer.complete(beginning);
-        return completed;
+    protected Object[] findCompletions(String beginning, JTextComponent comp) {        
+        return completer.complete(beginning);
     }
 
     protected StringBuffer getCurrentWord(JTextComponent comp) {
@@ -262,6 +252,14 @@ public class AutoCompleteListener extends KeyAdapter implements FocusListener {
     public void focusLost(FocusEvent event) {
         if (lastCompletions != null) {
             JTextComponent comp = (JTextComponent)event.getSource();
+            clearCurrentSuggestion(comp);
+        }
+        if (nextFocusListener != null)
+            nextFocusListener.focusLost(event);
+    }
+
+    public void clearCurrentSuggestion(JTextComponent comp) {
+         if (lastCompletions != null) {
             int selStart = comp.getSelectionStart();
             String text = comp.getText();
             comp.setText(text.substring(0, selStart) + text.substring(comp.getSelectionEnd()));
@@ -271,7 +269,5 @@ public class AutoCompleteListener extends KeyAdapter implements FocusListener {
             lastCaretPosition = -1;
             toSetIn = null;
         }
-        if (nextFocusListener != null)
-            nextFocusListener.focusLost(event);
     }
 }
diff --git a/src/java/net/sf/jabref/gui/AutoCompleter.java b/src/java/net/sf/jabref/gui/AutoCompleter.java
index 0d98442..e69de29 100644
--- a/src/java/net/sf/jabref/gui/AutoCompleter.java
+++ b/src/java/net/sf/jabref/gui/AutoCompleter.java
@@ -1,130 +0,0 @@
-package net.sf.jabref.gui;
-
-import net.sf.jabref.AuthorList;
-import net.sf.jabref.BibtexEntry;
-
-import java.util.StringTokenizer;
-import java.util.TreeSet;
-
-/**
- * Created by Morten O. Alver, 16 Feb. 2007
- */
-public class AutoCompleter {
-    final int SHORTEST_WORD = 4,
-            SHORTEST_TO_COMPLETE = 2;
-
-    private TreeSet<String> words = new TreeSet<String>();
-    private TreeSet<String> lastNames = null, firstNames = null;
-    private boolean nameField = false, // Attempt to store entire names?
-    // Crossref autocompleter should store info from the key field:
-        crossRefField = false,
-        entireField = false; // Set to true if the entire field should be stored
-		             // suitable e.g. for journal or publisher fields.
-    public String fieldName;
-
-    public AutoCompleter(String fieldName) {
-        crossRefField = fieldName.equals("crossref");
-        if (fieldName.equals("author") || fieldName.equals("editor")) {
-            nameField = true;
-            // Name fields separate first names and last names. First names are
-            // put in the firstNames set, and last names in the lastNames set.
-            // All names are stored in the words set:
-            lastNames = new TreeSet<String>();
-            firstNames = new TreeSet<String>();
-        }
-        else if (fieldName.equals("journal") || fieldName.equals("publisher"))
-            entireField = true;
-    }
-
-
-    public boolean isNameField() {
-        return nameField;
-    }
-
-    public boolean isSingleUnitField() {
-        return entireField;
-    }
-
-    public void addWord(String word) {
-        if (word.length() >= SHORTEST_WORD)
-            words.add(word);
-    }
-
-    /**
-     * Add the information from the given object to this autocompleter.
-     * @param s The text string to add words from.
-     * @param entry The entry containing the text, if any. If the autocompleter
-     *  requires information from a different field, this can be looked up
-     *  from the given entry. The entry can be null.
-     */
-    public void addAll(Object s, BibtexEntry entry) {
-        if (crossRefField) {
-            // Crossrefs reference bibtex keys, so we should add the words from
-            // the key field instead of the crossref field:
-            if (entry != null) {
-                String key = entry.getCiteKey();
-                if (key != null)
-                    addWord(key.trim());
-            }
-        } else if (s == null) {
-            return;
-        } else if (nameField) {
-            AuthorList list = AuthorList.getAuthorList(s.toString());
-            for (int i=0; i<list.size(); i++) {
-                AuthorList.Author a = list.getAuthor(i);
-                addName(a.getFirst(), false);
-                addName(a.getLast(), true);
-            }
-        } else if (entireField) {
-            addWord(s.toString().trim());
-        } else {
-            StringTokenizer tok = new StringTokenizer(s.toString(), " .,\n");
-            while (tok.hasMoreTokens()) {
-                String word = tok.nextToken();
-                //Util.pr(word);
-                addWord(word);
-            }
-        }
-    }
-
-    public void addName(String s, boolean lastName) {
-        if (s == null)
-            return;
-        String[] parts = s.replace("\\.", "").split(" ");
-        for (int i = 0; i < parts.length; i++) {
-            String part = parts[i];
-            if (part.length() >= SHORTEST_WORD) {
-                words.add(part);
-                if (lastName)
-                    lastNames.add(part);
-                else
-                    firstNames.add(part);
-            }
-        }
-    }
-
-    public Object[] complete(String s) {
-        return complete(s, words);
-    }
-
-    public Object[] completeName(String s, boolean lastName) {
-        if (nameField) {
-            if (lastName)
-                return complete(s, lastNames);
-            else
-                return complete(s, firstNames);
-        }
-        else return null;
-    }
-
-    public Object[] complete(String s, TreeSet<String> set) {
-        if (s.length() < SHORTEST_TO_COMPLETE)
-            return null;
-
-        char lastChar = s.charAt(s.length() - 1);
-        String ender = s.substring(0, s.length() - 1)
-                + Character.toString((char) (lastChar + 1));
-        return set.subSet(s, ender).toArray();
-    }
-
-}
diff --git a/src/java/net/sf/jabref/gui/FileListEditor.java b/src/java/net/sf/jabref/gui/FileListEditor.java
index de7aa19..cc52dfd 100644
--- a/src/java/net/sf/jabref/gui/FileListEditor.java
+++ b/src/java/net/sf/jabref/gui/FileListEditor.java
@@ -743,5 +743,11 @@ public class FileListEditor extends JTable implements FieldEditor,
     }
 
     public void addUndoableEditListener(UndoableEditListener listener) {
-    }    
+    }
+
+    public void setAutoCompleteListener(AutoCompleteListener listener) {
+    }
+
+    public void clearAutoCompleteSuggestion() {
+    }
 }
diff --git a/src/java/net/sf/jabref/gui/MainTableSelectionListener.java b/src/java/net/sf/jabref/gui/MainTableSelectionListener.java
index 2cc1044..89c78e5 100644
--- a/src/java/net/sf/jabref/gui/MainTableSelectionListener.java
+++ b/src/java/net/sf/jabref/gui/MainTableSelectionListener.java
@@ -36,7 +36,7 @@ public class MainTableSelectionListener implements ListEventListener<BibtexEntry
         KeyListener, FocusListener {
 
     PreviewPanel[] previewPanel = null;
-    int activePreview = 1;
+    int activePreview = 0;
     PreviewPanel preview;
     MainTable table;
     BasePanel panel;
@@ -44,6 +44,8 @@ public class MainTableSelectionListener implements ListEventListener<BibtexEntry
     private boolean previewActive = Globals.prefs.getBoolean("previewEnabled");
     private boolean workingOnPreview = false;
 
+    private boolean enabled = true;
+
     // Register the last character pressed to quick jump in the table. Together
     // with storing the last row number jumped to, this is used to let multiple
     // key strokes cycle between all entries starting with the same letter:
@@ -62,6 +64,10 @@ public class MainTableSelectionListener implements ListEventListener<BibtexEntry
         this.preview = previewPanel[activePreview];
     }
 
+    public void setEnabled(boolean enabled) {
+        this.enabled = enabled;
+    }
+
     private void instantiatePreviews() {
 		previewPanel = new PreviewPanel[] {
 			new PreviewPanel(panel.database(), null, panel, panel.metaData(), Globals.prefs
@@ -83,6 +89,9 @@ public class MainTableSelectionListener implements ListEventListener<BibtexEntry
     }
 
     public void listChanged(ListEvent<BibtexEntry> e) {
+        if (!enabled) {
+            return;
+        }
         EventList<BibtexEntry> selected = e.getSourceList();
         Object newSelected = null;
         while (e.next()) {
@@ -97,7 +106,6 @@ public class MainTableSelectionListener implements ListEventListener<BibtexEntry
             }
         }
 
-
         if (newSelected != null) {
 
             // Ok, we have a single new entry that has been selected. Now decide what to do with it:
@@ -107,14 +115,18 @@ public class MainTableSelectionListener implements ListEventListener<BibtexEntry
                 // An entry is currently being edited.
                 EntryEditor oldEditor = panel.getCurrentEditor();
                 String visName = null;
-                if (oldEditor != null)
+                if (oldEditor != null) {
                     visName = oldEditor.getVisiblePanelName();
-        
+                }
                 // Get an old or new editor for the entry to edit:
                 EntryEditor newEditor = panel.getEntryEditor(toShow);
+
+                if ((oldEditor != null))// && (oldEditor != newEditor))
+                    oldEditor.setMovingToDifferentEntry();
+
                 // Show the new editor unless it was already visible:
                 if ((newEditor != oldEditor) || (mode != BasePanel.SHOWING_EDITOR)) {
-
+                    
                     if (visName != null)
                         newEditor.setVisiblePanel(visName);
                     panel.showEntryEditor(newEditor);
@@ -123,8 +135,8 @@ public class MainTableSelectionListener implements ListEventListener<BibtexEntry
                             table.ensureVisible(table.getSelectedRow());
                         }
                     });
-
                 }
+
             } else {
                 // Either nothing or a preview was shown. Update the preview.
                 if (previewActive) {
diff --git a/src/java/net/sf/jabref/gui/SearchResultsDialog.java b/src/java/net/sf/jabref/gui/SearchResultsDialog.java
index a9de634..cd274b6 100644
--- a/src/java/net/sf/jabref/gui/SearchResultsDialog.java
+++ b/src/java/net/sf/jabref/gui/SearchResultsDialog.java
@@ -150,6 +150,14 @@ public class SearchResultsDialog {
         diag.setVisible(visible);
     }
 
+    public void selectFirstEntry() {
+        if (entryTable.getRowCount() > 0)
+            entryTable.setRowSelectionInterval(0,0);
+        else {
+            contentPane.setDividerLocation(1.0f);
+        }
+    }
+
     /**
      * Remove all entries from the table.
      */
diff --git a/src/java/net/sf/jabref/imports/BibsonomyScraper.java b/src/java/net/sf/jabref/imports/BibsonomyScraper.java
new file mode 100644
index 0000000..d95560f
--- /dev/null
+++ b/src/java/net/sf/jabref/imports/BibsonomyScraper.java
@@ -0,0 +1,47 @@
+package net.sf.jabref.imports;
+
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.Util;
+import net.sf.jabref.net.URLDownload;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.net.URL;
+
+/**
+ * Convenience class for getting BibTeX entries from the BibSonomy scraper,
+ * from an URL pointing to an entry.
+ */
+public class BibsonomyScraper {
+
+    protected static final String BIBSONOMY_SCRAPER = "http://scraper.bibsonomy.org/service?url=";
+    protected static final String BIBSONOMY_SCRAPER_POST = "&format=bibtex";
+
+    /**
+     * Return a BibtexEntry by looking up the given url from the BibSonomy scraper.
+     * @param entryUrl
+     * @return
+     */
+    public static BibtexEntry getEntry(String entryUrl) {
+        try {
+            // Replace special characters by corresponding sequences:
+            entryUrl = entryUrl.replaceAll("%", "%25").replaceAll(":", "%3A").replaceAll("/", "%2F")
+                    .replaceAll("\\?", "%3F").replaceAll("&", "%26").replaceAll("=", "%3D");
+                    
+            URL url = new URL(BIBSONOMY_SCRAPER+entryUrl+BIBSONOMY_SCRAPER_POST);
+            URLDownload ud = new URLDownload(url);
+            ud.download();
+            String bibtex = ud.getStringContent();
+            BibtexParser bp = new BibtexParser(new StringReader(bibtex));
+            ParserResult pr = bp.parse();
+            if ((pr != null) && (pr.getDatabase().getEntryCount() > 0)) {
+                return pr.getDatabase().getEntries().iterator().next();
+            }
+            else return null;
+
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            return null;
+        }
+    }
+}
diff --git a/src/java/net/sf/jabref/imports/GeneralFetcher.java b/src/java/net/sf/jabref/imports/GeneralFetcher.java
index eccbdca..6d7320b 100644
--- a/src/java/net/sf/jabref/imports/GeneralFetcher.java
+++ b/src/java/net/sf/jabref/imports/GeneralFetcher.java
@@ -43,8 +43,9 @@ public class GeneralFetcher extends SidePaneComponent implements ActionListener
     JPanel pan = new JPanel();
     GridBagLayout gbl = new GridBagLayout();
     GridBagConstraints con = new GridBagConstraints();
-    JButton go = new JButton(Globals.lang("Fetch")),
-    helpBut = new JButton(GUIGlobals.getImage("helpSmall"));
+    JButton go = new JButton(Globals.lang("Fetch")), helpBut = new JButton(
+			GUIGlobals.getImage("helpSmall")), reset = new JButton(Globals
+			.lang("Reset"));
     HelpAction help;
     EntryFetcher fetcher;
     SidePaneManager sidePaneManager;
@@ -63,6 +64,15 @@ public class GeneralFetcher extends SidePaneComponent implements ActionListener
         helpBut.addActionListener(help);
         helpBut.setMargin(new Insets(0, 0, 0, 0));
         tf.setPreferredSize(new Dimension(1,tf.getPreferredSize().height));
+        
+        tf.setName("tf");
+		// add action to reset-button. resets tf and requests focus
+		reset.addActionListener(new AbstractAction() {
+			public void actionPerformed(ActionEvent event) {
+				tf.setText("");
+				new FocusRequester(tf);
+			}
+		});
 
         JPanel main = new JPanel();
         main.setLayout(gbl);
@@ -79,14 +89,20 @@ public class GeneralFetcher extends SidePaneComponent implements ActionListener
         
         // Go Button
         con.weighty = 0;
-        if (fetcher.getHelpPage() != null){
-        	con.gridwidth = 1;
-        } else {
-        	con.gridwidth = GridBagConstraints.REMAINDER;
-        }
+        con.gridwidth = 1;
         gbl.setConstraints(go, con);
         main.add(go);
         
+        // Reset Button
+		if (fetcher.getHelpPage() != null) {
+			con.gridwidth = 1;
+		} else {
+			con.gridwidth = GridBagConstraints.REMAINDER;
+		}
+		reset.setName("reset");
+		gbl.setConstraints(reset, con);
+		main.add(reset);
+        
         // Help Button
 		if (fetcher.getHelpPage() != null) {
 			con.gridwidth = GridBagConstraints.REMAINDER;
diff --git a/src/java/net/sf/jabref/imports/JSTORFetcher2.java b/src/java/net/sf/jabref/imports/JSTORFetcher2.java
new file mode 100644
index 0000000..ff6ec34
--- /dev/null
+++ b/src/java/net/sf/jabref/imports/JSTORFetcher2.java
@@ -0,0 +1,168 @@
+package net.sf.jabref.imports;
+
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.GUIGlobals;
+import net.sf.jabref.Globals;
+import net.sf.jabref.OutputPrinter;
+import net.sf.jabref.net.URLDownload;
+
+import javax.swing.*;
+import java.io.*;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+public class JSTORFetcher2 implements EntryFetcher {
+
+    protected static int MAX_PAGES_TO_LOAD = 8;
+    protected static final String JSTOR_URL = "http://www.jstor.org";
+    protected static final String SEARCH_URL = JSTOR_URL+"/action/doBasicSearch?Query=";
+    protected static final String SEARCH_URL_END = "&x=0&y=0&wc=on";
+    protected static final String SINGLE_CIT_ENC =
+            "http://www.jstor.org/action/exportSingleCitation?singleCitation=true&suffix=";
+            //"http%3A%2F%2Fwww.jstor.org%2Faction%2FexportSingleCitation%3FsingleCitation"
+            //+"%3Dtrue%26suffix%3D";
+    
+    protected static final Pattern idPattern = Pattern.compile(
+            "<a class=\"title\" href=\"/stable/(\\d+)\\?");
+
+    protected static final Pattern nextPagePattern = Pattern.compile(
+            "<a href=\"(.*)\">Next >");
+
+    protected static final String noAccessIndicator = "We do not recognize you as having access to JSTOR";
+
+    protected boolean stopFetching = false;
+    protected boolean noAccessFound = false;
+
+    public String getHelpPage() {
+        return "JSTOR.html";
+    }
+
+    public URL getIcon() {
+        return GUIGlobals.getIconUrl("www");
+    }
+
+    public String getKeyName() {
+        return "Search JSTOR";
+    }
+
+    public JPanel getOptionsPanel() {
+        // No Options panel
+        return null;
+    }
+
+    public String getTitle() {
+        return Globals.menuTitle("Search JSTOR");
+    }
+
+    public void stopFetching() {
+        stopFetching = true;
+        noAccessFound = false;
+    }
+
+    public boolean processQuery(String query, ImportInspector dialog, OutputPrinter status) {
+        stopFetching = false;
+        try {
+            List<String> citations = getCitations(query);
+            if (citations == null)
+                return false;
+            if (citations.size() == 0){
+                if (!noAccessFound)
+                    status.showMessage(Globals.lang("No entries found for the search string '%0'",
+                        query),
+                        Globals.lang("Search JSTOR"), JOptionPane.INFORMATION_MESSAGE);
+                else {
+                    status.showMessage(Globals.lang("No entries found. It looks like you do not have access to search JStor.",
+                        query),
+                        Globals.lang("Search JSTOR"), JOptionPane.INFORMATION_MESSAGE);
+                }
+                return false;
+            }
+
+            int i=0;
+            for (String cit : citations) {
+                if (stopFetching)
+                    break;
+                BibtexEntry entry = getSingleCitation(cit);
+                if (entry != null)
+                    dialog.addEntry(entry);
+                dialog.setProgress(++i, citations.size());
+            }
+
+            return true;
+            
+        } catch (IOException e) {
+            e.printStackTrace();
+            status.showMessage(Globals.lang("Error while fetching from JSTOR") + ": " + e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *
+     * @param query
+     *            The search term to query JStor for.
+     * @return a list of IDs
+     * @throws java.io.IOException
+     */
+    protected List<String> getCitations(String query) throws IOException {
+        String urlQuery;
+        ArrayList<String> ids = new ArrayList<String>();
+        try {
+            urlQuery = SEARCH_URL + URLEncoder.encode(query, "UTF-8") + SEARCH_URL_END;
+            int count = 1;
+            String nextPage = null;
+            while (((nextPage = getCitationsFromUrl(urlQuery, ids)) != null)
+                    && (count < MAX_PAGES_TO_LOAD)) {
+                urlQuery = nextPage;
+                count++;
+            }
+            return ids;
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    protected String getCitationsFromUrl(String urlQuery, List<String> ids) throws IOException {
+        URL url = new URL(urlQuery);
+        URLDownload ud = new URLDownload(url);
+        ud.download();
+
+        String cont = ud.getStringContent();
+        String entirePage = cont;
+
+        Matcher m = idPattern.matcher(cont);
+        if (m.find()) {
+            while (m.find()) {
+                ids.add(m.group(1));
+                cont = cont.substring(m.end());
+                m = idPattern.matcher(cont);
+            }
+        }
+        else if (entirePage.indexOf(noAccessIndicator) >= 0) {
+            noAccessFound = true;
+            return null;
+        }
+        else {
+            return null;
+        }
+        m = nextPagePattern.matcher(entirePage);
+        if (m.find()) {
+            String newQuery = JSTOR_URL+m.group(1);
+            return newQuery;
+        }
+        else
+            return null;
+    }
+
+    protected BibtexEntry getSingleCitation(String cit) {
+        return BibsonomyScraper.getEntry(SINGLE_CIT_ENC+cit);
+    }
+
+}
\ No newline at end of file
diff --git a/src/java/net/sf/jabref/imports/OAI2Fetcher.java b/src/java/net/sf/jabref/imports/OAI2Fetcher.java
index 0f27a87..3fa0e49 100644
--- a/src/java/net/sf/jabref/imports/OAI2Fetcher.java
+++ b/src/java/net/sf/jabref/imports/OAI2Fetcher.java
@@ -124,7 +124,7 @@ public class OAI2Fetcher implements EntryFetcher {
      * Construct the query URL
      * 
      * @param key
-     *            The key of the OAI2 entry that the url should poitn to.
+     *            The key of the OAI2 entry that the url should point to.
      *            
      * @return a String denoting the query URL
      */
@@ -146,7 +146,7 @@ public class OAI2Fetcher implements EntryFetcher {
     }
     
     /**
-     * Strip subccategories from ArXiv key.
+     * Strip subcategories from ArXiv key.
      * 
      * @param key The key to fix.
      * @return Fixed key.
diff --git a/src/java/net/sf/jabref/imports/ScienceDirectFetcher.java b/src/java/net/sf/jabref/imports/ScienceDirectFetcher.java
new file mode 100644
index 0000000..cc7e276
--- /dev/null
+++ b/src/java/net/sf/jabref/imports/ScienceDirectFetcher.java
@@ -0,0 +1,151 @@
+package net.sf.jabref.imports;
+
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.GUIGlobals;
+import net.sf.jabref.Globals;
+import net.sf.jabref.OutputPrinter;
+import net.sf.jabref.net.URLDownload;
+
+import javax.swing.*;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+public class ScienceDirectFetcher implements EntryFetcher {
+
+    protected static int MAX_PAGES_TO_LOAD = 8;
+    protected static final String WEBSITE_URL = "http://www.sciencedirect.com";
+    protected static final String SEARCH_URL = WEBSITE_URL +"/science/quicksearch?query=";
+
+    protected static final String linkPrefix = "http://www.sciencedirect.com/science?_ob=ArticleURL&" ;
+    protected static final Pattern linkPattern = Pattern.compile(
+            "<a href=\""+
+            linkPrefix.replaceAll("\\?", "\\\\?")+
+            "([^\"]+)\"\"");
+
+    protected static final Pattern nextPagePattern = Pattern.compile(
+            "<a href=\"(.*)\">Next >");
+
+
+    protected boolean stopFetching = false;
+    protected boolean noAccessFound = false;
+
+    public String getHelpPage() {
+        return "ScienceDirect.html";
+    }
+
+    public URL getIcon() {
+        return GUIGlobals.getIconUrl("www");
+    }
+
+    public String getKeyName() {
+        return "Search ScienceDirect";
+    }
+
+    public JPanel getOptionsPanel() {
+        // No Options panel
+        return null;
+    }
+
+    public String getTitle() {
+        return Globals.menuTitle("Search ScienceDirect");
+    }
+
+    public void stopFetching() {
+        stopFetching = true;
+        noAccessFound = false;
+    }
+
+    public boolean processQuery(String query, ImportInspector dialog, OutputPrinter status) {
+        stopFetching = false;
+        try {
+            List<String> citations = getCitations(query);
+            if (citations == null)
+                return false;
+            if (citations.size() == 0){
+                status.showMessage(Globals.lang("No entries found for the search string '%0'",
+                    query),
+                    Globals.lang("Search ScienceDirect"), JOptionPane.INFORMATION_MESSAGE);
+                return false;
+            }
+
+            int i=0;
+            for (String cit : citations) {
+                if (stopFetching)
+                    break;
+                BibtexEntry entry = BibsonomyScraper.getEntry(cit);
+                if (entry != null)
+                    dialog.addEntry(entry);
+                dialog.setProgress(++i, citations.size());
+            }
+
+            return true;
+
+        } catch (IOException e) {
+            e.printStackTrace();
+            status.showMessage(Globals.lang("Error while fetching from ScienceDirect") + ": " + e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *
+     * @param query
+     *            The search term to query JStor for.
+     * @return a list of IDs
+     * @throws java.io.IOException
+     */
+    protected List<String> getCitations(String query) throws IOException {
+        String urlQuery;
+        ArrayList<String> ids = new ArrayList<String>();
+        try {
+            urlQuery = SEARCH_URL + URLEncoder.encode(query, "UTF-8");
+            int count = 1;
+            String nextPage = null;
+            while (((nextPage = getCitationsFromUrl(urlQuery, ids)) != null)
+                    && (count < MAX_PAGES_TO_LOAD)) {
+                urlQuery = nextPage;
+                count++;
+            }
+            return ids;
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    protected String getCitationsFromUrl(String urlQuery, List<String> ids) throws IOException {
+        URL url = new URL(urlQuery);
+        URLDownload ud = new URLDownload(url);
+        ud.download();
+
+        String cont = ud.getStringContent();
+        //String entirePage = cont;
+        Matcher m = linkPattern.matcher(cont);
+        if (m.find()) {
+            while (m.find()) {
+                ids.add(linkPrefix+m.group(1));
+                cont = cont.substring(m.end());
+                m = linkPattern.matcher(cont);
+            }
+        }
+
+        else {
+            return null;
+        }
+        /*m = nextPagePattern.matcher(entirePage);
+        if (m.find()) {
+            String newQuery = WEBSITE_URL +m.group(1);
+            return newQuery;
+        }
+        else*/
+            return null;
+    }
+
+
+}
\ No newline at end of file
diff --git a/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java b/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java
index f2d165a..f7ef809 100644
--- a/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java
+++ b/src/java/net/sf/jabref/labelPattern/LabelPatternUtil.java
@@ -619,7 +619,8 @@ public class LabelPatternUtil {
 				authors = authors.concat(firstAuthor[j].substring(0,1));
 			}
 			// append last part of last name completely
-			authors = authors.concat(firstAuthor[firstAuthor.length-1].substring(0,3));
+			authors = authors.concat(firstAuthor[firstAuthor.length-1].substring(0,
+                    Math.min(3, firstAuthor[firstAuthor.length-1].length())));
     	} else {
     		for (int i = 0; i < max; i++) {
     			// replace all whitespaces by " "
diff --git a/src/java/net/sf/jabref/msbib/MSBibEntry.java b/src/java/net/sf/jabref/msbib/MSBibEntry.java
index 75e4d96..6e5b1b0 100644
--- a/src/java/net/sf/jabref/msbib/MSBibEntry.java
+++ b/src/java/net/sf/jabref/msbib/MSBibEntry.java
@@ -338,8 +338,8 @@ public class MSBibEntry {
 		if (bibtex.getField("journal") != null)
 			journalName = bibtex.getField("journal").toString();
 
-		if (bibtex.getField("issue") != null)
-			issue = bibtex.getField("issue").toString();
+		if (bibtex.getField("number") != null)
+			issue = bibtex.getField("number").toString();
 
 		if (bibtex.getField(MSBIB+"periodical") != null)
 			periodicalTitle = bibtex.getField(MSBIB+"periodical").toString();
diff --git a/src/java/net/sf/jabref/net/CookieHandlerImpl.java b/src/java/net/sf/jabref/net/CookieHandlerImpl.java
index 63e4c9d..894ef5a 100644
--- a/src/java/net/sf/jabref/net/CookieHandlerImpl.java
+++ b/src/java/net/sf/jabref/net/CookieHandlerImpl.java
@@ -36,12 +36,13 @@ public class CookieHandlerImpl extends CookieHandler {
                 Cookie cookie = new Cookie(uri, item);
                 // Remove cookie if it already exists
                 // New one will replace
-                for (Cookie existingCookie : cache) {
+                for (Iterator<Cookie> i = cache.iterator(); i.hasNext();) {
+                    Cookie existingCookie = i.next();
                     if ((cookie.getURI().equals(
                             existingCookie.getURI())) &&
                             (cookie.getName().equals(
                                     existingCookie.getName()))) {
-                        cache.remove(existingCookie);
+                        i.remove();
                         break;
                     }
                 }
@@ -70,10 +71,12 @@ public class CookieHandlerImpl extends CookieHandler {
         // Retrieve all the cookies for matching URI
         // Put in comma-separated list
         StringBuilder cookies = new StringBuilder();
-        for (Cookie cookie : cache) {
+        for (Iterator<Cookie> i = cache.iterator(); i.hasNext();) {
+        //for (Cookie cookie : cache) {
+            Cookie cookie = i.next();
             // Remove cookies that have expired
             if (cookie.hasExpired()) {
-                cache.remove(cookie);
+                i.remove();
             } else if (cookie.matches(uri)) {
                 if (cookies.length() > 0) {
                     cookies.append(", ");
diff --git a/src/java/net/sf/jabref/net/URLDownload.java b/src/java/net/sf/jabref/net/URLDownload.java
index 1d780b9..1be4996 100644
--- a/src/java/net/sf/jabref/net/URLDownload.java
+++ b/src/java/net/sf/jabref/net/URLDownload.java
@@ -23,14 +23,37 @@ public class URLDownload {
     private File dest;
     private Component parent;
     private String mimeType = null;
+    private String content = null;
 
     private CookieHandler cm;
 
+    /**
+     * URL download to a string. After construction, call download() and then getStringContent().
+     * @param _source The URL to download.
+     */
+    public URLDownload(URL _source) {
+        this.source = _source;
+        this.dest = null;
+        this.parent = null;
+
+        setCookieHandler();
+    }
+
+    /**
+     * URL download to a file. After construction, call download().
+     * @param _parent Parent component.
+     * @param _source The URL to download.
+     * @param _dest The file to download into.
+     */
     public URLDownload(Component _parent, URL _source, File _dest) {
         source = _source;
         dest = _dest;
         parent = _parent;
 
+        setCookieHandler();
+    }
+
+    private void setCookieHandler() {
         try {
             // This should set up JabRef to receive cookies properly
             if ((cm = CookieHandler.getDefault()) == null) {
@@ -47,6 +70,19 @@ public class URLDownload {
         return mimeType;
     }
 
+    public URLConnection getURLConnection() {
+        return con;
+    }
+
+    /**
+     * This method can be used after download() has been called, to get the contents
+     * of the download, provided this URLDownload was created with the constructor
+     * that takes no File argument.
+     */
+    public String getStringContent() {
+        return content;
+    }
+
     public void openConnectionOnly() throws IOException {
         con = source.openConnection();
         con.setRequestProperty("User-Agent", "Jabref");
@@ -60,10 +96,46 @@ public class URLDownload {
             con.setRequestProperty("User-Agent", "Jabref");
             mimeType = con.getContentType();
         }
+        if (dest != null)
+            downloadToFile();
+        else
+            downloadToString();
+    }
+
+    protected void downloadToString() throws IOException {
+
+    	InputStream input = new BufferedInputStream(con.getInputStream());
+        Writer output = new StringWriter();
+
+        try
+          {
+            copy(input, output);
+          }
+        catch (IOException e)
+          {
+            e.printStackTrace();
+          }
+        finally
+          {
+            try
+              {
+                input.close();
+                output.close();
+              }
+            catch (Exception e)
+              {
+              }
+          }
+
+        content = output.toString();
+    }
+
+
+    protected void downloadToFile() throws IOException {
 
     	InputStream input = new BufferedInputStream(con.getInputStream());
         OutputStream output =  new BufferedOutputStream(new FileOutputStream(dest));
-     
+
         try
           {
             copy(input, output);
@@ -95,5 +167,17 @@ public class URLDownload {
             if(bytesRead == -1) break;
             out.write(buffer, 0, bytesRead);
         }        
-      }   
+      }
+
+    public void copy(InputStream in, Writer out) throws IOException
+      {
+        InputStream _in = new ProgressMonitorInputStream(parent, "Downloading " + source.toString(), in);
+        BufferedReader read = new BufferedReader(new InputStreamReader(_in));
+        byte[] buffer = new byte[512];
+        String line;
+        while ((line = read.readLine()) != null) {
+            out.write(line);
+            out.write("\n");
+        }
+      }
 }
diff --git a/src/java/tests/net/sf/jabref/TestUtils.java b/src/java/tests/net/sf/jabref/TestUtils.java
new file mode 100644
index 0000000..7b1f6fd
--- /dev/null
+++ b/src/java/tests/net/sf/jabref/TestUtils.java
@@ -0,0 +1,40 @@
+package tests.net.sf.jabref;
+
+import java.awt.Component;
+import java.awt.Container;
+
+/**
+ * Provides helper methods for unit testing such as methods for making testing
+ * of GUIs easier.
+ * 
+ * @author Dennis Hartrampf, Ines Moosdorf
+ */
+public class TestUtils {
+	/**
+	 * Get a Component by name.
+	 * 
+	 * @param parent
+	 *            The parent Component, where to search in.
+	 * @param name
+	 *            The name of the Component to find.
+	 * @return The Component with the given name or null if no
+	 *         such Component.
+	 */
+	public static Component getChildNamed(Component parent, String name) {
+		if (name.equals(parent.getName())) {
+			return parent;
+		}
+
+		if (parent instanceof Container) {
+			Component[] children = ((Container) parent).getComponents();
+
+			for (int i = 0; i < children.length; ++i) {
+				Component child = getChildNamed(children[i], name);
+				if (child != null) {
+					return child;
+				}
+			}
+		}
+		return null;
+	}
+}
diff --git a/src/java/tests/net/sf/jabref/gui/AutoCompleterTest.java b/src/java/tests/net/sf/jabref/gui/AutoCompleterTest.java
new file mode 100644
index 0000000..56cdb97
--- /dev/null
+++ b/src/java/tests/net/sf/jabref/gui/AutoCompleterTest.java
@@ -0,0 +1,164 @@
+package tests.net.sf.jabref.gui;
+
+import java.awt.event.ActionEvent;
+import java.io.File;
+
+import junit.framework.TestCase;
+import net.sf.jabref.BibtexDatabase;
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.EntryEditor;
+import net.sf.jabref.FieldEditor;
+import net.sf.jabref.FieldTextArea;
+import net.sf.jabref.Globals;
+import net.sf.jabref.JabRef;
+import net.sf.jabref.JabRefPreferences;
+import net.sf.jabref.autocompleter.AbstractAutoCompleter;
+import net.sf.jabref.autocompleter.AutoCompleterFactory;
+import net.sf.jabref.autocompleter.DefaultAutoCompleter;
+import net.sf.jabref.autocompleter.NameFieldAutoCompleter;
+import net.sf.jabref.imports.ParserResult;
+import tests.net.sf.jabref.testutils.TestUtils;
+
+/**
+ * 
+ * @author kahlert, cordes
+ * 
+ */
+public class AutoCompleterTest extends TestCase {
+
+	private static final String OTHER_FIELD = "title";
+	private static final String AUTHOR_FIELD = "author";
+	private static final String CROSSREF_FIELD = "crossref";
+	private static final String ENTIRE_FIELD = "journal";
+
+	public static final String PATH_TO_TEST_BIBTEX = "src/tests/net/sf/jabref/bibtexFiles/test.bib";
+
+	public void testAutoCompleterFactory() {
+		AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(AUTHOR_FIELD);
+		assertTrue(autoCompleter instanceof NameFieldAutoCompleter);
+
+		autoCompleter = AutoCompleterFactory.getFor(OTHER_FIELD);
+		assertTrue(autoCompleter instanceof DefaultAutoCompleter);
+	}
+
+	public void testDefaultAutoCompleter() {
+		AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(OTHER_FIELD);
+		for (BibtexEntry entry : getDatabse().getEntries()) {
+			autoCompleter.addBibtexEntry(entry);
+		}
+		assertEquals("authentication", autoCompleter.complete("authentication")[0]);
+		assertEquals(1, autoCompleter.complete("authentication").length);
+		assertEquals("authentication", autoCompleter.complete("aut")[0]);
+		assertEquals(1, autoCompleter.complete("aut").length);
+		assertEquals("context", autoCompleter.complete("con")[0]);
+		assertEquals(1, autoCompleter.complete("con").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+	}
+
+	public void testCrossRefCompleter() {
+		AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(CROSSREF_FIELD);
+		for (BibtexEntry entry : getDatabse().getEntries()) {
+			autoCompleter.addBibtexEntry(entry);
+		}
+		assertEquals("1102917", autoCompleter.complete("1102917")[0]);
+		assertEquals(1, autoCompleter.complete("1102917").length);
+		assertEquals("1102917", autoCompleter.complete("11029")[0]);
+		assertEquals(1, autoCompleter.complete("11029").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+	}
+
+	public void testEntireFieldCompleter() {
+		AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(ENTIRE_FIELD);
+		for (BibtexEntry entry : getDatabse().getEntries()) {
+			autoCompleter.addBibtexEntry(entry);
+		}
+		assertEquals("Personal Ubiquitous Comput.", autoCompleter.complete("Personal Ubiquitous Comput.")[0]);
+		assertEquals(1, autoCompleter.complete("Personal Ubiquitous Comput.").length);
+		assertEquals("Personal Ubiquitous Comput.", autoCompleter.complete("Pers")[0]);
+		assertEquals(1, autoCompleter.complete("Pers").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+	}
+
+	public void testNameFieldCompleter() {
+		AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(AUTHOR_FIELD);
+		for (BibtexEntry entry : getDatabse().getEntries()) {
+			autoCompleter.addBibtexEntry(entry);
+		}
+		assertEquals("Kostakos, V.", autoCompleter.complete("Kostakos")[0]);
+		assertEquals(2, autoCompleter.complete("Kostakos").length);
+		assertEquals("Kostakos, V.", autoCompleter.complete("Kosta")[0]);
+		assertEquals(2, autoCompleter.complete("Kosta").length);
+		assertEquals("Kostakos, Vassilis", autoCompleter.complete("Kostakos, Va")[0]);
+		assertEquals(1, autoCompleter.complete("Kostakos, Va").length);
+		assertEquals("Vassilis Kostakos", autoCompleter.complete("Va")[0]);
+		assertEquals(1, autoCompleter.complete("Va").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+		assertEquals(0, autoCompleter.complete("osta").length);
+
+		assertEquals("Eric von Hippel", autoCompleter.complete("Eric")[0]);
+		assertEquals(1, autoCompleter.complete("Eric").length);
+		assertEquals("von Hippel, E.", autoCompleter.complete("von")[0]);
+		assertEquals(2, autoCompleter.complete("von").length);
+
+		assertEquals("Reagle, Jr., J. M.", autoCompleter.complete("Reagle")[0]);
+		assertEquals(2, autoCompleter.complete("Reagle").length);
+		assertEquals("Reagle, Jr., Joseph M.", autoCompleter.complete("Reagle, Jr., Jo")[0]);
+		assertEquals(1, autoCompleter.complete("Reagle, Jr., Jo").length);
+		assertEquals("Joseph M. Reagle, Jr.", autoCompleter.complete("Joseph")[0]);
+		assertEquals(1, autoCompleter.complete("Joseph").length);
+
+		assertEquals("van den Huevel, Jr., J. A.", autoCompleter.complete("van den")[0]);
+		assertEquals(2, autoCompleter.complete("van den").length);
+		assertEquals("Johan A van den Huevel, Jr.", autoCompleter.complete("Joh")[0]);
+		assertEquals(1, autoCompleter.complete("Joh").length);
+
+		assertEquals("Jr. Sherry, John F.", autoCompleter.complete("Jr. S")[0]);
+		assertEquals(1, autoCompleter.complete("Jr.").length);
+		assertEquals("Sherry, John F., J.", autoCompleter.complete("Sherry")[0]);
+		assertEquals(2, autoCompleter.complete("Sherry").length);
+	}
+
+	public void testEntryEditorForNameFieldAutoCompleter() {
+		// construct an EntryEditor ...
+		JabRef jabref = TestUtils.getInitializedJabRef();
+		BibtexEntry bibtexEntry = new BibtexEntry();
+		bibtexEntry.setField("author", "Brigitte Laurant");
+		FieldEditor authorTextField = new FieldTextArea("author", "Hans Meiser");
+		EntryEditor editor = new EntryEditor(jabref.jrf, jabref.jrf.basePanel(), bibtexEntry);
+		// perform action ...
+		editor.storeFieldAction.actionPerformed(new ActionEvent(authorTextField, 0, ""));
+		// test content of stored words in autocompleter ...
+		AbstractAutoCompleter autoCompleter = jabref.jrf.basePanel().getAutoCompleter("author");
+		assertTrue(autoCompleter.indexContainsWord("Hans Meiser"));
+		assertTrue(autoCompleter.indexContainsWord("Meiser, Hans"));
+
+		TestUtils.closeJabRef();
+	}
+
+	public void testEntryEditorForFieldAnotherAutoCompleter() {
+		// construct an EntryEditor ...
+		JabRef jabref = TestUtils.getInitializedJabRef();
+		BibtexEntry bibtexEntry = new BibtexEntry();
+		bibtexEntry.setField("journal", "Testtext");
+		FieldEditor authorTextField = new FieldTextArea("journal", "New Testtext");
+		EntryEditor editor = new EntryEditor(jabref.jrf, jabref.jrf.basePanel(), bibtexEntry);
+		// perform action ...
+		editor.storeFieldAction.actionPerformed(new ActionEvent(authorTextField, 0, ""));
+		// test content of stored words in autocompleter ...
+		AbstractAutoCompleter autoCompleter = jabref.jrf.basePanel().getAutoCompleter("journal");
+		assertTrue(autoCompleter.indexContainsWord("New Testtext"));
+
+		TestUtils.closeJabRef();
+	}
+
+	private BibtexDatabase getDatabse() {
+		Globals.prefs = JabRefPreferences.getInstance();
+		File fileToLoad = new File(PATH_TO_TEST_BIBTEX);
+		ParserResult pr = JabRef.openBibFile(fileToLoad.getPath(), true);
+		BibtexDatabase filledDatabase = pr.getDatabase();
+		return filledDatabase;
+	}
+}
diff --git a/src/java/tests/net/sf/jabref/imports/AllTests.java b/src/java/tests/net/sf/jabref/imports/AllTests.java
index fde72a0..821a1d5 100644
--- a/src/java/tests/net/sf/jabref/imports/AllTests.java
+++ b/src/java/tests/net/sf/jabref/imports/AllTests.java
@@ -12,6 +12,7 @@ public class AllTests {
 		suite.addTestSuite(IsiImporterTest.class);
 		suite.addTestSuite(CopacImporterTest.class);
 		suite.addTestSuite(BibtexParserTest.class);
+		suite.addTestSuite(GeneralFetcherTest.class);
 		//$JUnit-END$
 		return suite;
 	}
diff --git a/src/java/tests/net/sf/jabref/imports/GeneralFetcherTest.java b/src/java/tests/net/sf/jabref/imports/GeneralFetcherTest.java
new file mode 100644
index 0000000..fc803f3
--- /dev/null
+++ b/src/java/tests/net/sf/jabref/imports/GeneralFetcherTest.java
@@ -0,0 +1,63 @@
+package tests.net.sf.jabref.imports;
+
+import javax.swing.JButton;
+import javax.swing.JTextField;
+
+import tests.net.sf.jabref.TestUtils;
+
+import net.sf.jabref.JabRef;
+import net.sf.jabref.JabRefFrame;
+import net.sf.jabref.SidePaneManager;
+import net.sf.jabref.imports.ACMPortalFetcher;
+import net.sf.jabref.imports.GeneralFetcher;
+import junit.framework.TestCase;
+
+/**
+ * Tests GeneralFetcher
+ * 
+ * @author Dennis Hartrampf, Ines Moosdorf
+ */
+public class GeneralFetcherTest extends TestCase {
+	static JabRefFrame jrf;
+	static SidePaneManager spm;
+	static GeneralFetcher gf;
+	static ACMPortalFetcher acmpf;
+
+	/**
+	 * Tests the reset-button. Types a text into tf, pushs reset and check tf's
+	 * text
+	 * 
+	 * @throws Exception
+	 */
+	public void testResetButton() throws Exception {
+		String testString = "test string";
+		JTextField tf = (JTextField) TestUtils.getChildNamed(gf, "tf");
+		assertNotNull(tf); // tf found?
+		tf.setText(testString);
+		tf.postActionEvent(); // send message
+		assertEquals(testString, tf.getText());
+		JButton reset = (JButton) TestUtils.getChildNamed(gf, "reset");
+		assertNotNull(reset); // reset found?
+		reset.doClick(); // "click" reset
+		assertEquals("", tf.getText());
+	}
+
+	/**
+	 * Get an instance of JabRef via its singleton and get a GeneralFetcher and an ACMPortalFetcher
+	 */
+	public void setUp() {
+		JabRef.main(new String[0]);
+		jrf = JabRef.singleton.jrf;
+		spm = jrf.sidePaneManager;
+		acmpf = new ACMPortalFetcher();
+		gf = new GeneralFetcher(spm, jrf, acmpf);
+	}
+
+	public void tearDown() {
+		gf = null;
+		acmpf = null;
+		spm = null;
+		jrf = null;
+	}
+
+}
diff --git a/src/java/tests/net/sf/jabref/imports/RISImporterTest.java b/src/java/tests/net/sf/jabref/imports/RISImporterTest.java
new file mode 100644
index 0000000..6d4ab4f
--- /dev/null
+++ b/src/java/tests/net/sf/jabref/imports/RISImporterTest.java
@@ -0,0 +1,107 @@
+package tests.net.sf.jabref.imports;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+
+import junit.framework.TestCase;
+import net.sf.jabref.BibtexEntry;
+import net.sf.jabref.BibtexEntryType;
+import net.sf.jabref.Globals;
+import net.sf.jabref.JabRefPreferences;
+import net.sf.jabref.imports.IsiImporter;
+import net.sf.jabref.imports.RisImporter;
+
+/**
+ * Test cases for the RISImporter
+ * 
+ * @author $Author: coezbek $
+ * 
+ */
+public class RISImporterTest extends TestCase {
+
+	protected void setUp() throws Exception {
+		super.setUp();
+
+		if (Globals.prefs == null) {
+			Globals.prefs = JabRefPreferences.getInstance();
+		}
+	}
+
+	protected void tearDown() throws Exception {
+		super.tearDown();
+	}
+
+	public void testIsRecognizedFormat() throws IOException {
+
+        RisImporter importer = new RisImporter();
+		assertTrue(importer.isRecognizedFormat(RISImporterTest.class
+			.getResourceAsStream("RisImporterTest1.ris")));
+	}
+
+	public void testProcessSubSup() {
+
+		HashMap<String, String> hm = new HashMap<String, String>();
+		hm.put("title", "/sub 3/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$_3$", hm.get("title"));
+
+		hm.put("title", "/sub   3   /");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$_3$", hm.get("title"));
+
+		hm.put("title", "/sub 31/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$_{31}$", hm.get("title"));
+
+		hm.put("abstract", "/sub 3/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$_3$", hm.get("abstract"));
+
+		hm.put("review", "/sub 31/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$_{31}$", hm.get("review"));
+
+		hm.put("title", "/sup 3/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$^3$", hm.get("title"));
+
+		hm.put("title", "/sup 31/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$^{31}$", hm.get("title"));
+
+		hm.put("abstract", "/sup 3/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$^3$", hm.get("abstract"));
+
+		hm.put("review", "/sup 31/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$^{31}$", hm.get("review"));
+
+		hm.put("title", "/sub $Hello/");
+		IsiImporter.processSubSup(hm);
+		assertEquals("$_{\\$Hello}$", hm.get("title"));
+	}
+
+	public void testImportEntries() throws IOException {
+		RisImporter importer = new RisImporter();
+
+		List<BibtexEntry> entries = importer.importEntries(RISImporterTest.class
+			.getResourceAsStream("RisImporterTest1.ris"));
+		assertEquals(1, entries.size());
+		BibtexEntry entry = entries.get(0);
+		assertEquals("Editorial: Open Source and Empirical Software Engineering", entry
+			.getField("title"));
+		assertEquals(
+			"Harrison, Warren",
+			entry.getField("author"));
+
+		assertEquals(BibtexEntryType.ARTICLE, entry.getType());
+		assertEquals("Empirical Software Engineering", entry.getField("journal"));
+		assertEquals("2001", entry.getField("year"));
+		assertEquals("6", entry.getField("volume"));
+		assertEquals("3", entry.getField("number"));
+		assertEquals("193--194", entry.getField("pages"));
+		assertEquals("#sep#", entry.getField("month"));
+	}
+}
diff --git a/src/java/tests/net/sf/jabref/testutils/TestUtils.java b/src/java/tests/net/sf/jabref/testutils/TestUtils.java
new file mode 100644
index 0000000..ab599ae
--- /dev/null
+++ b/src/java/tests/net/sf/jabref/testutils/TestUtils.java
@@ -0,0 +1,66 @@
+package tests.net.sf.jabref.testutils;
+
+import java.security.Permission;
+
+import net.sf.jabref.JabRef;
+
+/**
+ * UtilsClass for UnitTests.
+ * 
+ * @author kahlert, cordes
+ * 
+ */
+public class TestUtils {
+
+	public static final String PATH_TO_TEST_BIBTEX = "src/tests/net/sf/jabref/bibtexFiles/test.bib";	
+
+	/**
+	 * Returns a full configured and initialized instance of JabRef. As long as
+	 * {@link TestUtils#closeJabRef()} wasn't called this method returns the
+	 * same instance.
+	 * 
+	 * @see TestUtils#closeJabRef()
+	 */
+	public static JabRef getInitializedJabRef() {
+		disableSystemExit();
+		try {
+			String[] args = { "-p", " ", PATH_TO_TEST_BIBTEX };
+			JabRef.main(args);
+		} catch (ExitException e) {
+		} finally {
+			enableSystemExit();
+		}
+		JabRef jabref = JabRef.singleton;
+		return jabref;
+	}
+
+	/**
+	 * Closes the current instance of JabRef.
+	 */
+	public static void closeJabRef() {
+		JabRef jabref = JabRef.singleton;
+		if (jabref != null) {
+			jabref.jrf.dispose();
+		}
+	}
+
+	@SuppressWarnings("serial")
+	private static class ExitException extends SecurityException {
+	}
+
+	private static void disableSystemExit() {
+		final SecurityManager securityManager = new SecurityManager() {
+			public void checkPermission(Permission permission) {
+				if (permission.getName().contains("exitVM")) {
+					throw new ExitException();
+				}
+			}
+		};
+		System.setSecurityManager(securityManager);
+	}
+
+	private static void enableSystemExit() {
+		System.setSecurityManager(null);
+	}
+
+}
diff --git a/src/plugins/net.sf.jabref.core/plugin.xml b/src/plugins/net.sf.jabref.core/plugin.xml
index f2b0a2f..d968204 100644
--- a/src/plugins/net.sf.jabref.core/plugin.xml
+++ b/src/plugins/net.sf.jabref.core/plugin.xml
@@ -99,12 +99,21 @@
 	<extension id="JSTORFetcher" plugin-id="net.sf.jabref.core"
 		point-id="EntryFetcher">
 		<parameter id="entryFetcher"
-			value="net.sf.jabref.imports.JSTORFetcher" />
+			value="net.sf.jabref.imports.JSTORFetcher2" />
 		<parameter id="name" value="JSTOR Entry Fetcher" />
 		<parameter id="description"
 			value="Fetch Entries from JSTOR." />
 	</extension>
 
+    <extension id="ScienceDirectFetcher" plugin-id="net.sf.jabref.core"
+        point-id="EntryFetcher">
+        <parameter id="entryFetcher"
+            value="net.sf.jabref.imports.ScienceDirectFetcher" />
+        <parameter id="name" value="ScienceDirect Entry Fetcher" />
+        <parameter id="description"
+            value="Fetch Entries from ScienceDirect." />
+    </extension>
+
     <!-- To extend JabRef with an Layout Formatters use the following extension point -->
 	<extension-point id="LayoutFormatter">
 		<parameter-def type="string" id="layoutFormatter"
diff --git a/src/resource/JabRef_da.properties b/src/resource/JabRef_da.properties
index 9e900da..1eb0638 100644
--- a/src/resource/JabRef_da.properties
+++ b/src/resource/JabRef_da.properties
@@ -277,7 +277,7 @@ Deselect_all=V\u00E6lg_ingen
 Deselect_all_duplicates=Frav\u00E6lg_alle_dubletter
 Details=Detaljer
 Disable_entry_editor_when_multiple_entries_are_selected=Deaktiver_postredigering_n\u00E5r_flere_poster_er_valgt
-Disable_this_confirmation_dialog=Deaktiver_denne_kontroldialogen
+Disable_this_confirmation_dialog=Deaktiver_denne_kontroldialog
 Disable_this_warning_dialog=Deaktiver_denne_advarselsdialog
 Display_all_entries_belonging_to_one_or_more_of_the_selected_groups.=Vis_alle_poster_indeholdt_i_mindst_en_af_de_valgte_grupper.
 Display_all_error_messages=Vis_alle_fejlmeddelelser
@@ -348,7 +348,6 @@ entries_into_new_database=poster_i_ny_database
 entry=post
 Entry_editor=Postredigering
 
-Entry_has_no_citekey=Posten_har_ingen_BibTeX-n\u00F8gle
 Entry_in_current_database=Post_i_aktuelle_database
 Entry_in_import=Post_i_import
 Entry_preview=Forh\u00E5ndsvisning
@@ -381,7 +380,7 @@ Establishing_SQL_connection...=Etablerer_SQL-forbindelse...
 Exceptions=Fejlinformation
 Existing_file=Eksisterende_fil
 exists._Overwrite_file?=eksisterer._Erstat_filen?
-exists.Overwrite?=eksisterer._Overskriv?
+exists._Overwrite?=eksisterer._Overskriv?
 Expand_subtree=\u00C5bn_forgrening
 Export=Eksporter
 Export_entry_types=Eksporter_posttyper
@@ -631,7 +630,6 @@ Move=Flyt
 Move_down=Flyt_ned
 Move_entries_in_group_selection_to_the_top=Flyt_poster_i_valgte_grupper_til_toppen
 Move_external_links_to_'file'_field=Flyt_eksterne_links_til_'file'-feltet
-Move_file_to_file_directory=Flyt_fil_til_bibliotek.
 Move_files_to_file_directory.=Flyt_filer_til_bibliotek.
 move_group=flyt_gruppe
 Move_string_down=Flyt_streng_ned
@@ -645,7 +643,6 @@ Name=Navn
 Name_formatter=Navneformatering
 Natbib_style=Natbib-stil
 
-Native_file_dialog=System-fildialog
 nested_aux_files='nestede'_aux-filer
 New=Ny
 new=ny
@@ -830,7 +827,6 @@ Removed_group_"%0".=Fjernede_gruppen_"%0"
 Removed_group_"%0"_and_its_subgroups.=Fjernede_gruppen_"%0"_og_dens_undergrupper
 Removed_string=Streng_fjernet
 
-Rename_to_match_citekey=\u00E6ndre_navn_for_at_svare_til_BibTeX-n\u00F8gle
 Renamed_string=\u00E6ndrede_navn_p\u00E5_streng
 Replace=Erstat
 Replace_(regular_expression)=Erstat_(regul\u00E6rudtryk)
@@ -1311,8 +1307,31 @@ Metadata_change=Metadata-\u00E6ndring
 Changes_have_been_made_to_the_following_metadata_elements=Der_er_\u00E6ndringer_i_f\u00F8lgende_metadata-elementer
 
 Generate_groups_for_author_last_names=Generer_grupper_for_forfatteres_efternavne
-Generate_groups_for_editor_last_names=Generer_grupper_for_redakt\u00f8rers_efternavne
-Generate_groups_from_keywords_in_a_BibTeX_field=Generer_grupper_ud_fra_n\u00f8gleord_i_et_BibTeX-felt
-Enforce_legal_characters_in_BibTeX_keys=H\u00e5ndh\u00e6v_tilladte_tegn_i_BibTex-n\u00f8gler
+Generate_groups_for_editor_last_names=Generer_grupper_for_redakt\u00F8rers_efternavne
+Generate_groups_from_keywords_in_a_BibTeX_field=Generer_grupper_ud_fra_n\u00F8gleord_i_et_BibTeX-felt
+Enforce_legal_characters_in_BibTeX_keys=H\u00E5ndh\u00E6v_tilladte_tegn_i_BibTex-n\u00F8gler
 The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=Tegnet_#_er_ikke_tilladt_i_BibTeX-tekststrenge,_medmindre_det_skrives_som_'\\#'.
-Before_saving,_please_edit_any_strings_containing_the_#_character.=Ret_venligst_tekststrenge_indeholdende_#-tegnet,_f\u00f8r_du_gemmer.
+Before_saving,_please_edit_any_strings_containing_the_#_character.=Ret_venligst_tekststrenge_indeholdende_#-tegnet,_f\u00F8r_du_gemmer.
+
+Save_without_backup?=Gem_uden_sikkerhedskopi?
+Unable_to_create_backup=Kan_ikke_oprette_sikkerhedskopi
+
+File_directory_is_not_set_or_does_not_exist.=Fil-bibliotek_er_ikke_specificeret_eller_eksisterer_ikke.
+Move_file_to_file_directory.=Flyt_fil_til_fil-bibliotek.
+Rename_file_to=Omd\u00F8b_fil_til
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=<b>Alle_poster</b>_(denne_gruppe_kan_ikke_redigeres_eller_flyttes)
+</b>_-_static_group=</b>_-_statisk_gruppe
+,_refines_supergroup=,_afgr\u00E6nser_overgruppen
+,_includes_subgroups=,_inkluderer_undergrupper
+</b>_-_dynamic_group_(<b>=</b>_-_dynamisk_gruppe_(<b>
+</b>_contains_<b>=</b>_indeholder_<b>
+</b>_-_dynamic_group_(=</b>_-_dynamisk_gruppe_(
+search_expression\:_<b>=s\u00F8ge-udtryk:_<b>
+
+Disable_file_renaming_in_non-native_file_dialog=Deaktiver_omd\u00F8bning_af_filer_i_fil-dialogboks
+File_dialog=Fil-dialogboks
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=Ingen_poster_fundet._Det_ser_ud_til,_at_du_ikke_har_adgang_til_at_s\u00F8ge_i_JStor.
+
+Reset=
+Search_ScienceDirect=
+Error_while_fetching_from_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/JabRef_de.properties b/src/resource/JabRef_de.properties
index 7e8f727..9193b20 100644
--- a/src/resource/JabRef_de.properties
+++ b/src/resource/JabRef_de.properties
@@ -621,8 +621,6 @@ entry=Eintrag
 
 Entry_editor=Eintragseditor
 
-Entry_has_no_citekey=Der_Eintrag_hat_keinen_citekey
-
 Entry_in_current_database=Eintrag_in_aktueller_Datenbank
 
 Entry_in_import=Eintrag_in_Importierung
@@ -669,7 +667,7 @@ Exceptions=Ausnahmen
 Existing_file=Bestehende_Datei
 
 exists._Overwrite_file?=existiert._Ersetzen?
-exists.Overwrite?=ist_vorhanden._\u00DCberschreiben?
+exists._Overwrite?=ist_vorhanden._\u00DCberschreiben?
 
 Expand_subtree=Unterbaum_aufklappen
 
@@ -1102,7 +1100,6 @@ Move_down=Nach_unten
 
 Move_entries_in_group_selection_to_the_top=Sortiere_Eintr\u00E4ge_der_Gruppenauswahl_nach_oben
 Move_external_links_to_'file'_field=Externe_Links_in_das_Feld_'file'_verschieben
-Move_file_to_file_directory=Datei_in_das_Dateiverzeichnis_verschieben.
 Move_files_to_file_directory.=Dateien_in_das_Dateiverzeichnis_verschieben.
 
 move_group=Gruppe_verschieben
@@ -1123,8 +1120,6 @@ Name_formatter=Namens-Formatierer
 
 Natbib_style=Natbib-Stil
 
-Native_file_dialog=Nativer_Dateidialog
-
 nested_aux_files=referenzierte_AUX_Dateien
 
 New=Neu
@@ -1452,7 +1447,6 @@ Removed_group_"%0".=Gruppe_"%0"_gel\u00F6scht.
 Removed_group_"%0"_and_its_subgroups.=Gruppe_"%0"_inklusive_Untergruppen_gel\u00F6scht.
 
 Removed_string=String_gel\u00F6scht
-Rename_to_match_citekey=Dem_citekey_entsprechend_umbenennen
 
 Renamed_string=String_umbenannt
 
@@ -2041,7 +2035,7 @@ Run_Fetcher,_e.g._"--fetch=Medline\:cancer"=Recherche_starten,_z.B._"--fetch=Med
 Override_legacy_file_fields=Setze_obsolete_Datei-Felder_au\u00DFer_Kraft
 
 The_ACM_Digital_Library=ACM_Digital_Library
-
+Reset=Zur\u00FCcksetzen
 
 Use_IEEE_LaTeX_abbreviations=Benutze_IEEE-LaTeX-Abk\u00FCrzungen
 The_Guide_to_Computing_Literature=The_Guide_to_Computing_Literature
@@ -2147,9 +2141,31 @@ Current_tmp_value=Derzeitiger_tmp-Wert
 Metadata_change=Metadaten-\u00C4nderung
 Changes_have_been_made_to_the_following_metadata_elements=An_den_folgenden_Metadaten_wurden_\u00C4nderungen_vorgenommen
 
-Generate_groups_for_author_last_names=Erstelle_Gruppen_f\u00fcr_Nachnamen_der_Autoren
-Generate_groups_for_editor_last_names=Erstelle_Gruppen_f\u00fcr_Nachnamen_der_Herausgeber
-Generate_groups_from_keywords_in_a_BibTeX_field=Erstelle_Gruppen_aus_den_Stichw\u00f6rtern_eines_BibTeX-Feldes
+Generate_groups_for_author_last_names=Erstelle_Gruppen_f\u00FCr_Nachnamen_der_Autoren
+Generate_groups_for_editor_last_names=Erstelle_Gruppen_f\u00FCr_Nachnamen_der_Herausgeber
+Generate_groups_from_keywords_in_a_BibTeX_field=Erstelle_Gruppen_aus_den_Stichw\u00F6rtern_eines_BibTeX-Feldes
 Enforce_legal_characters_in_BibTeX_keys=Erzwinge_erlaubte_Zeichen_in_BibTeX-Keys
-The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=Das_Zeichen_#_ist_in_BibTeX-Keys_nicht_erlaubt,_au\u00dfer_es_ist_mit_einem_Escape-Zeichen_versehen_wie_in_'\\#'.
-Before_saving,_please_edit_any_strings_containing_the_#_character.=Entfernen_Sie_vor_dem_Speichern_alle_Ausdr\u00fccke,_in_denen_das_Zeichen_#_vorkommt.
+The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=Das_Zeichen_#_ist_in_BibTeX-Keys_nicht_erlaubt,_au\u00DFer_es_ist_mit_einem_Escape-Zeichen_versehen_wie_in_'\\#'.
+Before_saving,_please_edit_any_strings_containing_the_#_character.=Entfernen_Sie_vor_dem_Speichern_alle_Ausdr\u00FCcke,_in_denen_das_Zeichen_#_vorkommt.
+
+Save_without_backup?=Ohne_Backup_Speichern?
+Unable_to_create_backup=Erstellen_des_Backups_fehlgeschlagen
+
+File_directory_is_not_set_or_does_not_exist.=Dateiverzeichnis_wurde_nicht_angegeben_oder_existiert_nicht
+Move_file_to_file_directory.=Datei_ins_Dateiverzeichnis_verschieben
+Rename_file_to=Datei_umbenennen_in
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=<b>Alle_Eintr\u00E4ge</b>_(diese_Gruppe_kann_nicht_ver\u00E4ndert_oder_gel\u00F6scht_werden)
+</b>_-_static_group=</b>_-_statische_Gruppe
+,_refines_supergroup=,_bezieht_die_Obergruppe_mit_ein
+,_includes_subgroups=,_ber\u00FCcksichtigt_Untergruppen
+</b>_-_dynamic_group_(<b>=</b>_-_dynamische_Gruppe_(<b>
+</b>_contains_<b>=</b>_enth\u00E4lt_<b>
+</b>_-_dynamic_group_(=</b>_-_dynamische_Gruppe_(
+search_expression\:_<b>=Suchausdruck\:_<b>
+
+Disable_file_renaming_in_non-native_file_dialog=Umbenennen_von_Dateien_im_plattformunabh\u00E4ngigen_Dateidialog_deaktivieren
+File_dialog=Dateidialog
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=Keine_Eintr\u00E4ge_gefunden._Anscheinend_haben_Sie_keine_Erlaubnis,_in_JStor_zu_suchen.
+
+Search_ScienceDirect=ScienceDirect_durchsuchen
+Error_while_fetching_from_ScienceDirect=Fehler_beim_Abrufen_von_ScienceDirect
diff --git a/src/resource/JabRef_en.properties b/src/resource/JabRef_en.properties
index ce6c795..d395f0a 100644
--- a/src/resource/JabRef_en.properties
+++ b/src/resource/JabRef_en.properties
@@ -608,8 +608,6 @@ entry=entry
 
 Entry_editor=Entry_editor
 
-Entry_has_no_citekey=Entry_has_no_citekey
-
 Entry_in_current_database=Entry_in_current_database
 
 Entry_in_import=Entry_in_import
@@ -655,7 +653,7 @@ Exceptions=Exceptions
 Existing_file=Existing_file
 
 exists._Overwrite_file?=exists._Overwrite_file?
-exists.Overwrite?=exists._Overwrite?
+exists._Overwrite?=exists._Overwrite?
 
 Expand_subtree=Expand_subtree
 
@@ -1082,7 +1080,6 @@ Move_down=Move_down
 
 Move_entries_in_group_selection_to_the_top=Move_entries_in_group_selection_to_the_top
 Move_external_links_to_'file'_field=Move_external_links_to_'file'_field
-Move_file_to_file_directory=Move_file_to_file_directory
 Move_files_to_file_directory.=Move_files_to_file_directory
 
 move_group=move_group
@@ -1103,8 +1100,6 @@ Name_formatter=Name_formatter
 
 Natbib_style=Natbib_style
 
-Native_file_dialog=Native_file_dialog
-
 nested_aux_files=nested_aux_files
 
 New=New
@@ -1431,7 +1426,6 @@ Removed_group_"%0".=Removed_group_"%0".
 Removed_group_"%0"_and_its_subgroups.=Removed_group_"%0"_and_its_subgroups.
 
 Removed_string=Removed_string
-Rename_to_match_citekey=Rename_to_match_citekey
 
 Renamed_string=Renamed_string
 
@@ -2019,6 +2013,7 @@ Run_Fetcher,_e.g._"--fetch=Medline\:cancer"=Run_Fetcher,_e.g._"--fetch=Medline\:
 Override_legacy_file_fields=Override_legacy_file_fields
 
 The_ACM_Digital_Library=The_ACM_Digital_Library
+Reset=Reset
 
 Use_IEEE_LaTeX_abbreviations=Use_IEEE_LaTeX_abbreviations
 The_Guide_to_Computing_Literature=The_Guide_to_Computing_Literature
@@ -2135,4 +2130,26 @@ Generate_groups_for_editor_last_names=Generate_groups_for_editor_last_names
 Generate_groups_from_keywords_in_a_BibTeX_field=Generate_groups_from_keywords_in_a_BibTeX_field
 Enforce_legal_characters_in_BibTeX_keys=Enforce_legal_characters_in_BibTeX_keys
 The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.
-Before_saving,_please_edit_any_strings_containing_the_#_character.=Before_saving,_please_edit_any_strings_containing_the_#_character.
\ No newline at end of file
+Before_saving,_please_edit_any_strings_containing_the_#_character.=Before_saving,_please_edit_any_strings_containing_the_#_character.
+
+Save_without_backup?=Save_without_backup?
+Unable_to_create_backup=Unable_to_create_backup
+
+File_directory_is_not_set_or_does_not_exist.=File_directory_is_not_set_or_does_not_exist.
+Move_file_to_file_directory.=Move_file_to_file_directory.
+Rename_file_to=Rename_file_to
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)
+</b>_-_static_group=</b>_-_static_group
+,_refines_supergroup=,_refines_supergroup
+,_includes_subgroups=,_includes_subgroups
+</b>_-_dynamic_group_(<b>=</b>_-_dynamic_group_(<b>
+</b>_contains_<b>=</b>_contains_<b>
+</b>_-_dynamic_group_(=</b>_-_dynamic_group_(
+search_expression\:_<b>=search_expression:_<b>
+
+Disable_file_renaming_in_non-native_file_dialog=Disable_file_renaming_in_non-native_file_dialog
+File_dialog=File_dialog
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.
+
+Search_ScienceDirect=Search_ScienceDirect
+Error_while_fetching_from_ScienceDirect=Error_while_fetching_from_ScienceDirect
\ No newline at end of file
diff --git a/src/resource/JabRef_fr.properties b/src/resource/JabRef_fr.properties
index d6b6811..75d5682 100644
--- a/src/resource/JabRef_fr.properties
+++ b/src/resource/JabRef_fr.properties
@@ -227,8 +227,8 @@ Could_not_print_preview=Echec_de_l'impression_de_l'aper\u00E7u
 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_run_the_'vim'_program.=Le_programme_'vim'_n'a_pas_pu_\u00EAtre_lanc\u00E9.
-Could_not_save_file._Character_encoding_'%0'_is_not_supported.=Le_fichier_n'a_pas_pu_\u00EAtre_sauvegard\u00E9._L'encodage_de_caract\u00E8res_'%0'_n'est_pas_support\u00E9.
-Could_not_save_file=Le_fichier_n'a_pas_pu_\u00EAtre_sauvegard\u00E9_
+Could_not_save_file._Character_encoding_'%0'_is_not_supported.=Le_fichier_n'a_pas_pu_\u00EAtre_enregistr\u00E9._L'encodage_de_caract\u00E8res_'%0'_n'est_pas_support\u00E9.
+Could_not_save_file=Le_fichier_n'a_pas_pu_\u00EAtre_enregistr\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
@@ -249,7 +249,7 @@ Cut_pr=Couper
 Cut=Couper
 Database_\:=Base_de_donn\u00E9es_:
 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_has_changed._Do_you_want_to_save_before_closing?=Base_modifi\u00E9e._Voulez-vous_l'enregistr\u00E9_avant_de_fermer_?
 Database_is_protected._Cannot_save_until_external_changes_have_been_reviewed.=La_base_est_prot\u00E9g\u00E9e._L'enregistrement_ne_peut_\u00EAtre_effectu\u00E9_tant_que_les_changements_externes_n'auront_pas_\u00E9t\u00E9_v\u00E9rifi\u00E9s.
 Database_properties=Propri\u00E9t\u00E9s_de_la_base_de_donn\u00E9es
 Database_protection=Protection_de_la_base
@@ -296,7 +296,7 @@ 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_show_splash_window_at_startup=Ne_pas_montrer_l'\u00E9cran_de_garde_lors_du_lancement
 Do_not_show_these_options_in_the_future=Ne_pas_afficher_ces_options_\u00E0_l'avenir
-Do_not_wrap_the_following_fields_when_saving=Ne_pas_renvoyer_\u00E0_la_ligne_les_champs_suivants_lors_de_la_sauvegarde_
+Do_not_wrap_the_following_fields_when_saving=Ne_pas_renvoyer_\u00E0_la_ligne_les_champs_suivants_lors_de_l'enregistrement_
 Do_not_write_the_following_fields_to_XMP_Metadata\:=Ne_pas_\u00E9crire_les_champs_suivants_dans_les_m\u00E9tadonn\u00E9es_XMP_:
 Do_you_want_JabRef_to_do_the_following_operations?=Voulez-vous_que_JabRef_fasse_les_op\u00E9rations_suivantes_?
 Docbook=Docbook
@@ -346,7 +346,6 @@ entries_have_undefined_BibTeX_key=Des_entr\u00E9es_ont_des_clefs_BibTeX_non_d\u0
 entries_into_new_database=entr\u00E9es_dans_la_nouvelle_base
 entries=entr\u00E9es
 Entry_editor=Editeur_d'entr\u00E9e
-Entry_has_no_citekey=L'entr\u00E9e_n'a_pas_de_clef_BibTeX
 Entry_in_current_database=Entr\u00E9e_dans_la_base_de_donn\u00E9es_actuelle
 Entry_in_import=Entr\u00E9e_dans_l'importation
 Entry_preview=Aper\u00E7u_de_l'entr\u00E9e
@@ -380,7 +379,7 @@ Establishing_SQL_connection...=Etablissement_de_la_connexion_SQL...
 Exceptions=Exceptions
 Existing_file=Fichier_existant
 exists._Overwrite_file?=existe._Ecraser_le_fichier_?
-exists.Overwrite?=existe._Ecraser_?
+exists._Overwrite?=existe._Ecraser_?
 Expand_subtree=D\u00E9velopper_le_sous-arbre
 Export_entry_types=Exporter_les_types_d'entr\u00E9es
 Export_name=Nom_de_l'exportation
@@ -462,7 +461,7 @@ Full_name=Nom_complet
 General_fields=Champs_g\u00E9n\u00E9raux
 General=G\u00E9n\u00E9ral
 Generate_BibTeX_key=Cr\u00E9er_la_clef_BibTeX
-Generate_keys_before_saving_(for_entries_without_a_key)=G\u00E9n\u00E9rer_les_clefs_avant_de_sauver_(pour_les_entr\u00E9es_sans_clef)
+Generate_keys_before_saving_(for_entries_without_a_key)=G\u00E9n\u00E9rer_les_clefs_avant_d'enregistrer_(pour_les_entr\u00E9es_sans_clef)
 Generate_keys_for_imported_entries=G\u00E9n\u00E9rer_les_clefs_pour_les_entr\u00E9es_import\u00E9es
 Generate_keys=G\u00E9n\u00E9rer_les_clefs
 Generate_now=G\u00E9n\u00E9rer_maintenant
@@ -500,7 +499,7 @@ HTML=HTML
 Icon=Ic\u00F4ne
 Ignore=Ignorer
 Illegal_type_name=Nom_de_type_ill\u00E9gal
-Immediate_subgroups=Sous-groupes_directs
+Immediate_subgroups=Uniquement_les_sous-groupes_directs
 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_canceled_by_user=Importation_interrompue_par_l'utilisateur
@@ -584,7 +583,7 @@ Link_local_file=Lier_le_fichier_local
 Link_to_file_%0=Lien_vers_le_fichier_%0
 Link=Lien
 Listen_for_remote_operation_on_port=Ecouter_le_port_pour_des_op\u00E9rations_\u00E0_distance_
-Load_and_Save_preferences_from/to_jabref.xml_on_start-up_(memory_stick_mode)=Charger_et_sauver_les_pr\u00E9f\u00E9rences_de/vers_jabref.xml_au_d\u00E9marrage_(mode_clef_m\u00E9moire)
+Load_and_Save_preferences_from/to_jabref.xml_on_start-up_(memory_stick_mode)=Charger_et_enregistrer_les_pr\u00E9f\u00E9rences_de/vers_jabref.xml_au_d\u00E9marrage_(mode_clef_m\u00E9moire)
 Load_session=Charger_la_session
 Loading_session...=Chargement_de_la_session...
 localhost=localhost
@@ -624,7 +623,6 @@ Move_entries_in_group_selection_to_the_top=D\u00E9placer_les_entr\u00E9es_s\u00E
 Move_external_links_to_'file'_field=D\u00E9placer_les_liens_externes_vers_le_champ_'fichier'
 Move_file_failed=Echec_du_d\u00E9placement_du_fichier
 Move_file_to_file_directory?=D\u00E9placer_le_fichier_vers_le_r\u00E9pertoire_de_fichiers_?
-Move_file_to_file_directory=D\u00E9placer_le_fichier_vers_le_r\u00E9pertoire_de_fichiers.
 Move_files_to_file_directory.=D\u00E9placer_les_fichiers_vers_le_r\u00E9pertoire_de_fichiers.
 move_group=d\u00E9placer_le_groupe
 Move_string_down=D\u00E9placer_la_cha\u00EEne_vers_le_bas
@@ -642,7 +640,6 @@ MySQL=MySQL
 Name_formatter=Formateur_de_nom
 Name=Nom
 Natbib_style=Style_Natbib
-Native_file_dialog=Dialogue_de_fichier_natif
 nested_aux_files=fichiers_AUX_imbriqu\u00E9s
 New_BibTeX_database=Nouvelle_base_BibTeX
 New_BibTeX_entry=Nouvelle_entr\u00E9e_BibTeX
@@ -677,11 +674,11 @@ No_PDF_linked=Pas_de_PDF_li\u00E9
 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_plugins_were_found_in_the_following_folders\:=Aucun_greffon_n'a_\u00E9t\u00E9_trouv\u00E9_dans_les_r\u00E9pertoires_suivants_:
 No_references_found=Aucune_r\u00E9f\u00E9rence_trouv\u00E9e
-No_saved_session_found.=Pas_trouv\u00E9_de_session_sauvegard\u00E9e.
+No_saved_session_found.=Pas_trouv\u00E9_de_session_enregistr\u00E9e.
 No_url_defined=Pas_d'URL_d\u00E9finie
 No_XMP_metadata_found_in_=Pas_de_m\u00E9tadonn\u00E9es_XMP_trouv\u00E9es_dans_
 not_found=non_trouv\u00E9
-Not_saved_(empty_session)=Pas_de_sauvegarde_(session_vide)
+Not_saved_(empty_session)=Pas_d'enregistrement_(session_vide)
 not=non
 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_these_settings_are_used_for_the_legacy_<b>pdf</b>_and_<b>ps</b>_fields_only.<br>For_most_users,_setting_the_<b>Main_file_directory</b>_above_should_be_sufficient.=Noter_que_ces_param\u00E8tres_sont_utilis\u00E9s_uniquement_pour_les_champs_obsol\u00E8tes_<b>pdf</b>_et_<b>ps</b>.<br>Pour_la_plupart_des_utilisateurs,_param\u00E9trer_le_<b>R\u00E9pertoire_de_fichiers_principal</b>_devrait_suffire.
@@ -831,7 +828,6 @@ Removed_group_"%0"_and_its_subgroups.=Groupe_"%0"_et_ses_sous-groupes_supprim\u0
 Removed_group_"%0".=Groupe_"%0"_supprim\u00E9.
 Removed_string=Cha\u00EEne_supprim\u00E9e
 Rename_to_'%0'=Renommer_vers_'%0'
-Rename_to_match_citekey=Renommer_pour_correspondre_\u00E0_la_clef_BibTeX
 Renamed_string=Cha\u00EEne_renomm\u00E9e
 Replace_(regular_expression)=Remplacer_(expression_r\u00E9guli\u00E8re)_
 Replace_comma_by_and_where_appropriate=Remplacer_les_virgules_quand_appropri\u00E9
@@ -855,23 +851,23 @@ RIS=RIS
 root=root
 Run_Fetcher,_e.g._"--fetch\=Medline\:cancer"=Lance_une_recherche,_par._ex._"--fetch=Medline\:cancer"
 Running_Query_'%0'_with_fetcher_'%1'.=Execution_de_la_requ\u00EAte_'%0'_avec_l'outil_de_recherche_'%1'.
-Save_all_finished.=Sauvegarde_de_tout_termin\u00E9e.
-Save_all_open_databases=Sauvegarder_toutes_les_bases_ouvertes
-Save_before_closing=Sauvegarde_avant_fermeture
-Save_database_as_...=Sauvegarder_la_base_sous...
-Save_database=Sauvegarder_la_base
-Save_entries_in_their_original_order=Sauver_les_entr\u00E9es_dans_leur_ordre_original
-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_failed=Echec_de_la_sauvegarde
-Save_ordered_by_author/editor/year=Sauver_les_entr\u00E9es_selon_author/editor/year
-Save_selected_as_...=Sauvegarder_la_s\u00E9lection_sous...
-Save=Sauver
-Saved_database=Base_sauvegard\u00E9e
-Saved_selected_to=Sauvegarder_la_s\u00E9lection_de
-Saved_session=Session_sauvegard\u00E9e
-Saving_all_databases...=Sauvegarde_de_toutes_les_bases...
-Saving_database=Sauvegarde_de_la_base_en_cours
+Save_all_finished.=Enregistrement_de_tout_termin\u00E9e.
+Save_all_open_databases=Enregistrement_toutes_les_bases_ouvertes
+Save_before_closing=Enregistrement_avant_fermeture
+Save_database_as_...=Enregistrement_la_base_sous...
+Save_database=Enregistrement_la_base
+Save_entries_in_their_original_order=Enregistrement_les_entr\u00E9es_dans_leur_ordre_original
+Save_failed_during_backup_creation=L'enregistrement_a_\u00E9chou\u00E9_durant_la_cr\u00E9ation_de_la_copie_de_secours
+Save_failed_while_committing_changes=L'enregistrement_a_\u00E9chou\u00E9_lors_de_la_soumission_des_changements
+Save_failed=Echec_de_l'enregistrement
+Save_ordered_by_author/editor/year=Enregistrer_les_entr\u00E9es_selon_author/editor/year
+Save_selected_as_...=Enregistrer_la_s\u00E9lection_sous...
+Save=Enregistrer
+Saved_database=Base_enregistr\u00E9e
+Saved_selected_to=S\u00E9lection_enregistr\u00E9e_dans
+Saved_session=Session_enregistr\u00E9e
+Saving_all_databases...=Enregistrement_de_toutes_les_bases...
+Saving_database=Enregistrement_de_la_base_en_cours
 Saving=Enregistrement_en_cours
 Scan=D\u00E9marrer
 Search_ACM_Portal=Recherche_dans_le_portail_ACM
@@ -1055,7 +1051,7 @@ Unable_to_open_link.=Impossible_d'ouvrir_un_lien.
 Unable_to_parse_the_following_URL=Impossible_de_traiter_l'ULR_suivante
 Unable_to_read_default_icon_theme.=Impossible_de_lire_le_th\u00E8me_d'ic\u00F4nes_par_d\u00E9faut
 Unable_to_read_icon_theme_file=Impossible_de_lire_le_fichier_de_th\u00E8me_d'ic\u00F4nes
-Unable_to_save_database=Impossible_de_sauver_la_base
+Unable_to_save_database=Impossible_d'enregistrer_la_base
 unable_to_write_to=Impossible_d'\u00E9crire_sur
 Undefined_file_type=Type_de_fichier_ind\u00E9fini
 Undo=Annuler
@@ -1144,7 +1140,7 @@ You_must_fill_in_a_name_for_the_entry_type.=Vous_devez_fournir_un_nom_pour_le_ty
 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_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
-Your_new_key_bindings_have_been_stored.=Votre_nouvelle_affectation_de_touche_a_\u00E9t\u00E9_sauvegard\u00E9e
+Your_new_key_bindings_have_been_stored.=Votre_nouvelle_affectation_de_touche_a_\u00E9t\u00E9_enregistr\u00E9e
 
 Mark_entries_imported_into_an_existing_database=Etiqueter_les_entr\u00E9es_import\u00E9es_dans_une_base_existante
 Unmark_all_entries_before_importing_new_entries_into_an_existing_database=D\u00E9s\u00E9tiqueter_toutes_les_entr\u00E9es_avant_d'importer_de_nouvelles_entr\u00E9es_dans_une_base_existante
@@ -1212,7 +1208,7 @@ Do_you_want_to_recover_the_database_from_the_autosave_file?=Voulez-vous_r\u00E9c
 Recover_from_autosave=R\u00E9cup\u00E9ration_\u00E0_partir_d'une_sauvegarde_automatique
 %0_warnings=%0_messages_d'avertissement
 
-Save_in_current_table_sort_order=Sauver_dans_l'ordre_de_tri_actuel_de_la_table
+Save_in_current_table_sort_order=Enregistrer_dans_l'ordre_de_tri_actuel_de_la_table
 Export_in_current_table_sort_order=Exporter_dans_l'ordre_de_tri_actuel_de_la_table
 Export_ordered_by_author/editor/year=Exporter_selon_l'ordre_author/editor/year
 Export_entries_in_their_original_order=Exporter_les_entr\u00E9es_dans_leur_l'ordre_original
@@ -1232,7 +1228,7 @@ The_following_formatters_could_not_be_found=Les_formateurs_suivants_n'ont_pas_\u
 Clear_inputarea=Vider_la_zone_de_saisie
 
 Automatically_set_file_links_for_this_entry=D\u00E9finir_automatiquement_les_liens_de_fichier_pour_cette_entr\u00E9e
-Could_not_save,_file_locked_by_another_JabRef_instance.=Echec_de_la_sauvegarde,_le_fichier_est_verrouill\u00E9_par_une_autre_instance_de_JabRef.
+Could_not_save,_file_locked_by_another_JabRef_instance.=Echec_de_l'enregistrement,_le_fichier_est_verrouill\u00E9_par_une_autre_instance_de_JabRef.
 File_is_locked_by_another_JabRef_instance.=Le_fichier_est_verrouill\u00E9_par_une_autre_instance_de_JabRef.
 Do_you_want_to_override_the_file_lock?=Voulez-vous_outrepasser_le_verrouillage_du_fichier_?
 File_locked=Fichier_verrouill\u00E9
@@ -1246,3 +1242,26 @@ Generate_groups_from_keywords_in_a_BibTeX_field=Cr\u00E9ation_de_groupes_\u00E0_
 Enforce_legal_characters_in_BibTeX_keys=Imposer_des_caract\u00E8res_l\u00E9gaux_dans_les_clefs_BibTeX
 The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=Le_caract\u00E8re_#_n'est_pas_autoris\u00E9_dans_les_cha\u00EEnes_BibTeX_\u00E0_moins_d'\u00EAtre_\u00E9chapp\u00E9_comme_dans_'\\#'.
 Before_saving,_please_edit_any_strings_containing_the_#_character.=Avant_l'enregistrement,_SVP,_\u00E9ditez_toute_cha\u00EEne_contenant_le_caract\u00E8re_#.
+
+Save_without_backup?=Enregistrer_sans_sauvegarde_de_secours?
+Unable_to_create_backup=Impossible_de_cr\u00E9er_une_sauvegarde_de_secours
+
+File_directory_is_not_set_or_does_not_exist.=Le_r\u00E9pertoire_de_fichiers_n'est_pas_configur\u00E9_ou_n'existe_pas.
+Move_file_to_file_directory.=D\u00E9placer_le_fichier_vers_le_r\u00E9pertoire_de_fichiers.
+Rename_file_to=Renommer_le_fichier_en
+Reset=R\u00E9initialiser
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=<b>Toutes_les_entr\u00E9es</b>_(ce_groupe_ne_peut_pas_\u00EAtre_\u00E9dit\u00E9_ou_supprim\u00E9)
+</b>_-_static_group=</b>_-_groupe_statique
+,_refines_supergroup=,_raffinant_le_super-groupe
+,_includes_subgroups=,_incluant_les_sous-groupes
+</b>_-_dynamic_group_(<b>=</b>_-_groupe_dynamique_(<b>
+</b>_contains_<b>=</b>_contient_<b>
+</b>_-_dynamic_group_(=</b>_-_groupe_dynamique_(
+search_expression\:_<b>=expression_de_recherche_:_<b>
+
+Disable_file_renaming_in_non-native_file_dialog=D\u00E9sactiver_le_renommage_des_fichiers_pour_les_fen\u00EAtres_de_fichier_non-native
+File_dialog=Fen\u00EAtre_de_fichiers
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=Pas_d'entr\u00E9es_trouv\u00E9es._Il_semble_que_vous_n'avez_pas_acc\u00E8s_\u00E0_la_recherche_JStor
+
+Search_ScienceDirect=Recherche_ScienceDirect
+Error_while_fetching_from_ScienceDirect=Erreur_lors_de_la_recherche_ScienceDirect_
diff --git a/src/resource/JabRef_it.properties b/src/resource/JabRef_it.properties
index d4d8e17..3dce2e8 100644
--- a/src/resource/JabRef_it.properties
+++ b/src/resource/JabRef_it.properties
@@ -353,7 +353,6 @@ entries_into_new_database=voci_in_un_nuovo_database
 entry=voce
 Entry_editor=Modifica_voci
 
-Entry_has_no_citekey=La_voce_non_ha_chiave_BibTeX
 Entry_in_current_database=Voce_nel_database_corrente
 Entry_in_import=Voce_nell'importazione
 Entry_preview=Anteprima_della_voce
@@ -385,7 +384,7 @@ Establishing_SQL_connection...=Connessione_SQL_in_corso...
 Exceptions=Eccezioni
 Existing_file=File_esistente
 exists._Overwrite_file?=esiste._Sovrascrivere_il_file?
-exists.Overwrite?=esiste._Sovrascrivere?
+exists._Overwrite?=esiste._Sovrascrivere?
 Expand_subtree=Espandere_il_sotto-albero
 Export=Esporta
 Export_entry_types=Esporta_tipo_di_voce
@@ -636,7 +635,6 @@ Move=Sposta
 Move_down=Sposta_in_gi\u00F9
 Move_entries_in_group_selection_to_the_top=Sposta_le_voci_selezionate_in_su
 Move_external_links_to_'file'_field=Sposta_i_collegamenti_esterni_nel_campo_'file'
-Move_file_to_file_directory=Sposta_il_file_nella_cartella.
 Move_files_to_file_directory.=Sposta_i_file_nella_cartella.
 move_group=sposta_gruppo
 Move_string_down=Sposta_la_stringa_in_gi\u00F9
@@ -650,7 +648,6 @@ Name=Nome
 Name_formatter=Formattazione_dei_nomi
 Natbib_style=Stile_Natbib
 
-Native_file_dialog=Dialogo_File_nativo
 nested_aux_files=File_AUX_nidificati
 New=Nuovo
 new=nuovo
@@ -841,7 +838,6 @@ Removed_entry_type.=Tipo_di_voce_rimosso.
 Removed_group_"%0".=Rimosso_gruppo_"%0".
 Removed_group_"%0"_and_its_subgroups.=Rimosso_gruppo_"%0"_e_suoi_sottogruppi.
 Removed_string=Stringa_rimossa
-Rename_to_match_citekey=Rinomina_concordemente_alla_chiave_BibTeX
 Renamed_string=Stringa_rinominata
 Replace=Sostituisci
 Replace_(regular_expression)=Sostituisci_(espressione_regolare)
@@ -1230,7 +1226,7 @@ Use_IEEE_LaTeX_abbreviations=Usa_le_abbreviazioni_LaTeX_IEEE
 The_Guide_to_Computing_Literature=The_Guide_to_Computing_Literature
 Search_ACM_Portal=Ricerca_nel_portale_ACM
 Connection_to_ACM_Portal_failed=Connessione_al_portale_ACM_fallita
-When_opening_file_link,_search_for_matching_file_if_no_link_is_defined=All'apertura_di_un_collegamento_ad_un_file,_ricercare_un_file_corrispondente_se_non_ne_\u00e8_definito_uno.
+When_opening_file_link,_search_for_matching_file_if_no_link_is_defined=All'apertura_di_un_collegamento_ad_un_file,_ricercare_un_file_corrispondente_se_non_ne_\u00E8_definito_uno.
 Settings_for_%0=Parametri__per_%0
 Insert_selected_citations_into_Vim=Inviare_le_citazioni_selezionate_a_Vim
 RIS=RIS
@@ -1250,7 +1246,7 @@ Unable_to_find_full_text_document_in_the_linked_web_page.=Impossibile_trovare_il
 Connection_error_when_trying_to_find_full_text_document.=Errore_di_connessione_nel_corso_della_ricerca_del_documento_citato
 This_entry_provides_no_URL_or_DOI_links.=Questa_voce_non_fornisce_collegamenti_URL_o_DOI.
 Full_text_article_download_failed=Fallito_il_download_del_documento_citato
-Down_up=Sposta_in_gi\u00f9
+Down_up=Sposta_in_gi\u00F9
 Update_to_current_column_order=Salvare_l'ordine_delle_colonne_attuale
 
 Rename_field=Rinomina_il_campo
@@ -1258,20 +1254,20 @@ Set/clear/rename_fields=Imposta/svuota/rinomina_i_campi
 Rename_field_to\:=Rinomina_il_campo_in\:
 Move_contents_of_a_field_into_a_field_with_a_different_name=Sposta_il_contenuto_di_un_campo_in_un_campo_con_nome_diverso
 
-You_can_only_rename_one_field_at_a_time=\u00c8_possibile_rinominare_solo_un_campo_per_volta
+You_can_only_rename_one_field_at_a_time=\u00C8_possibile_rinominare_solo_un_campo_per_volta
 Remove_all_broken_links=Rimuovere_tutti_i_collegamenti_non_validi
 Cannot_use_port_%0_for_remote_operation;_another_application_may_be_using_it._Try_specifying_another_port.=Impossibile_utilizzare_la_porta_%0_per_operazioni_remote;_la_porta_potrebbe_essere_in_uso_da_parte_di_un'altra_applicazione._Provare_a_specificare_una_porta_diversa.
 
 Plugin_installer=Installazione_di_plugin
 Unable_to_create_plugin_directory=Impossibile_creare_una_cartella_dei_plugin
 Unable_to_copy_file=Impossibile_copiare_un_file
-Plugin_installed_successfully._You_must_restart_JabRef_to_load_the_new_plugin.=Plugin_installato_correttamente._\u00c8_necessario_riavviare_JabRef_per_caricare_il_nuovo_plugin.
+Plugin_installed_successfully._You_must_restart_JabRef_to_load_the_new_plugin.=Plugin_installato_correttamente._\u00C8_necessario_riavviare_JabRef_per_caricare_il_nuovo_plugin.
 Unable_to_create_user_plugin_directory=Impossibile_creare_una_cartella_utente_del_plugin
 Plugin_installation_failed.=Installazione_del_plugn_fallita.
-The_same_version_of_this_plugin_is_already_installed.=La_stessa_versione_del_plugin_\u00e8_gi\u00e0_installata.
-A_newer_version_of_this_plugin_is_already_installed.=Una_versione_pi\u00f9_recente_del_plugin_\u00e8_gi\u00e0_installata.
-One_or_more_older_versions_of_this_plugin_is_installed._Delete_old_versions?=Una_o_pi\u00f9_versioni_pi\u00f9_vecchie_del_plugin_sono_installate._Cancellare_le_vecchie_versioni?
-Old_versions_deleted_successfully.=La_cancellazione_delle_vecchie_versioni_\u00e8_riuscita.
+The_same_version_of_this_plugin_is_already_installed.=La_stessa_versione_del_plugin_\u00E8_gi\u00E0_installata.
+A_newer_version_of_this_plugin_is_already_installed.=Una_versione_pi\u00F9_recente_del_plugin_\u00E8_gi\u00E0_installata.
+One_or_more_older_versions_of_this_plugin_is_installed._Delete_old_versions?=Una_o_pi\u00F9_versioni_pi\u00F9_vecchie_del_plugin_sono_installate._Cancellare_le_vecchie_versioni?
+Old_versions_deleted_successfully.=La_cancellazione_delle_vecchie_versioni_\u00E8_riuscita.
 
 Install_plugin=Installa_plugin
 Download_plugin=Scarica_plugin
@@ -1292,7 +1288,7 @@ Install_anyway?=Installare_comunque?
 Looking_for_full_text_document...=Ricerca_del_documento_citato
 Follow_DOI_or_URL_link_and_try_to_locate_PDF_full_text_document=Segui_i_collegamenti_DOI_e_URL_prova_a_localizzare_il_file_PDF_del_documento_citato
 Unable_to_find_full_text_article._No_search_algorithm_defined_for_the_'%0'_web_site.=Impossibile_torvare_il_file_PDF_del_documento_citato._Nessun_algoritmo_di_ricerca_definito_per_il_sito_internet_'%0'.
-Found_pdf_link,_but_received_the_wrong_MIME_type._This_could_indicate_that_you_don't_have_access_to_the_fulltext_article.=Trovato_il_collegamento_al_file_PDF,_ma_il_tipo_MIME_ricevuto_non_\u00e8_corretto._Ci\u00f2_potrebbe_indicare_che_non_si_ha_permessi_di_accesso_al_file_PDF_del_documento_citato.
+Found_pdf_link,_but_received_the_wrong_MIME_type._This_could_indicate_that_you_don't_have_access_to_the_fulltext_article.=Trovato_il_collegamento_al_file_PDF,_ma_il_tipo_MIME_ricevuto_non_\u00E8_corretto._Ci\u00F2_potrebbe_indicare_che_non_si_ha_permessi_di_accesso_al_file_PDF_del_documento_citato.
 
 Autosave=Salvataggio_automatico
 Prompt_before_recovering_a_database_from_an_autosave_file=Richiedere_conferma_prima_del_recupero_di_un_database_da_un_salvataggio_automatico
@@ -1312,7 +1308,7 @@ Error_opening_autosave_of_'%0'._Trying_to_load_'%0'_instead.=Errore_nell'apertur
 Plugins_installed_in_your_user_plugin_directory_(%0)\:=Plugin_installati_nella_cartella_dei_plugin_dell'utente_(%0):
 Plugins_installed_in_other_locations\:=Plugin_installati_in_altre_cartelle:
 Plugins_will_be_deleted_next_time_JabRef_starts_up.=I_plugin_verranno_cancellati_al_prossimo_avvio_di_JabRef.
-Plugin_will_be_deleted_next_time_JabRef_starts_up.=Il_plugin_verr\u00e0_cancellato_al_prossimo_avvio_di_JabRef.
+Plugin_will_be_deleted_next_time_JabRef_starts_up.=Il_plugin_verr\u00E0_cancellato_al_prossimo_avvio_di_JabRef.
 Old_plugin_versions_will_be_deleted_next_time_JabRef_starts_up.=Le_vecchie_versioni_del_plugin_verranno_cancellate_al_prossimo_avvio_di_JabRef.
 
 Formatter_not_found\:_%0=Formattazione_non_trovata\:_%0
@@ -1321,8 +1317,8 @@ The_following_formatters_could_not_be_found=Le_seguenti_formattazioni_non_sono_s
 Clear_inputarea=Svuota_l'area_di_inserimento
 
 Automatically_set_file_links_for_this_entry=Definire_automaticamente_i_collegamenti_ai_file_per_questa_voce
-Could_not_save,_file_locked_by_another_JabRef_instance.=Impossibile_salvare,_il_file_\u00e8_bloccato_da_un'altra_istanza_di_JabRef.
-File_is_locked_by_another_JabRef_instance.=Il_file_\u00e8_bloccato_da_un'altra_istanza_di_JabRef.
+Could_not_save,_file_locked_by_another_JabRef_instance.=Impossibile_salvare,_il_file_\u00E8_bloccato_da_un'altra_istanza_di_JabRef.
+File_is_locked_by_another_JabRef_instance.=Il_file_\u00E8_bloccato_da_un'altra_istanza_di_JabRef.
 Do_you_want_to_override_the_file_lock?=Vuoi_ignorare_il_blocco_del_file?
 File_locked=File_bloccato
 Current_tmp_value=Variabile_"tmp"_corrente
@@ -1333,5 +1329,28 @@ Generate_groups_for_author_last_names=Genera_gruppi_in_base_al_cognome_dell'auto
 Generate_groups_for_editor_last_names=Genera_gruppi_in_base_al_cognome_del_curatore
 Generate_groups_from_keywords_in_a_BibTeX_field=Genera_gruppi_in_base_alle_parole_chiave_in_un_campo_BibTeX
 Enforce_legal_characters_in_BibTeX_keys=Imponi_l'utilizzo_dei_soli_caratteri_conformi_alla_sintassi_nelle_chiavi_BibTeX
-The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=Il_carattere_#_non_\u00e8_consentito_nelle_stringhe_BibTeX_se_non_protetto_da_un_carattere_di_"escape"_come_in_'\\#'.
+The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=Il_carattere_#_non_\u00E8_consentito_nelle_stringhe_BibTeX_se_non_protetto_da_un_carattere_di_"escape"_come_in_'\\#'.
 Before_saving,_please_edit_any_strings_containing_the_#_character.=Prima_di_salvare,_modificare_le_stringhe_contenenti_il_carattere_#.
+
+Save_without_backup?=
+Unable_to_create_backup=
+
+File_directory_is_not_set_or_does_not_exist.=
+Move_file_to_file_directory.=
+Rename_file_to=
+Reset=
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=
+</b>_-_static_group=
+,_refines_supergroup=
+,_includes_subgroups=
+</b>_-_dynamic_group_(<b>=
+</b>_contains_<b>=
+</b>_-_dynamic_group_(=
+search_expression\:_<b>=
+
+Disable_file_renaming_in_non-native_file_dialog=
+File_dialog=
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=
+
+Search_ScienceDirect=
+Error_while_fetching_from_ScienceDirect=
diff --git a/src/resource/JabRef_nl.properties b/src/resource/JabRef_nl.properties
index c7fd98e..e88b64c 100644
--- a/src/resource/JabRef_nl.properties
+++ b/src/resource/JabRef_nl.properties
@@ -620,8 +620,6 @@ entry=entry
 
 Entry_editor=Entry_editor
 
-Entry_has_no_citekey=
-
 Entry_in_current_database=Entry_in_huidige_database
 
 Entry_in_import=Entry_in_importering
@@ -669,7 +667,7 @@ Exceptions=Uitzonderingen
 Existing_file=Bestaande_bestand
 
 exists._Overwrite_file?=bestaat_reeds._Bestand_overschrijven?
-exists.Overwrite?=bestaat._Overschrijven?
+exists._Overwrite?=bestaat._Overschrijven?
 
 Expand_subtree=Subboom_uitklappen
 
@@ -1104,7 +1102,6 @@ Move_down=Verplaats_naar_beneden
 
 Move_entries_in_group_selection_to_the_top=Verplaats_entries_in_de_groep_selectie_naar_de_top
 Move_external_links_to_'file'_field=
-Move_file_to_file_directory=
 Move_files_to_file_directory.=
 
 move_group=verplaats_groep
@@ -1125,8 +1122,6 @@ Name_formatter=
 
 Natbib_style=Natbib_stijl
 
-Native_file_dialog=
-
 nested_aux_files=geneste_aux_bestanden
 
 New=Nieuw
@@ -1452,7 +1447,6 @@ Removed_group_"%0".=Groep_"%0"_verwijderd.
 Removed_group_"%0"_and_its_subgroups.=Groep_"%0"_en_zijn_subgroepen_verwijderd.
 
 Removed_string=Constante_verwijderd
-Rename_to_match_citekey=
 
 Renamed_string=Constante_hernoemd
 
@@ -2138,4 +2132,27 @@ Generate_groups_for_editor_last_names=
 Generate_groups_from_keywords_in_a_BibTeX_field=
 Enforce_legal_characters_in_BibTeX_keys=
 The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=
-Before_saving,_please_edit_any_strings_containing_the_#_character.=
\ No newline at end of file
+Before_saving,_please_edit_any_strings_containing_the_#_character.=
+
+Save_without_backup?=
+Unable_to_create_backup=
+
+File_directory_is_not_set_or_does_not_exist.=
+Move_file_to_file_directory.=
+Rename_file_to=
+Reset=
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=
+</b>_-_static_group=
+,_refines_supergroup=
+,_includes_subgroups=
+</b>_-_dynamic_group_(<b>=
+</b>_contains_<b>=
+</b>_-_dynamic_group_(=
+search_expression\:_<b>=
+
+Disable_file_renaming_in_non-native_file_dialog=
+File_dialog=
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=
+
+Search_ScienceDirect=
+Error_while_fetching_from_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/JabRef_no.properties b/src/resource/JabRef_no.properties
index 7d1b603..1e70f4e 100644
--- a/src/resource/JabRef_no.properties
+++ b/src/resource/JabRef_no.properties
@@ -349,7 +349,6 @@ entries_into_new_database=enheter_i_ny_database
 entry=enhet
 Entry_editor=Enhetsskjema
 
-Entry_has_no_citekey=Enheten_har_ingen_BibTeX-n\u00F8kkel
 Entry_in_current_database=Enhet_i_eksisterende_database
 Entry_in_import=Enhet_i_import
 Entry_preview=Forh\u00E5ndsvisning
@@ -383,7 +382,7 @@ Establishing_SQL_connection...=Etablerer_SQL-forbindelse...
 Exceptions=Feilinformasjon
 Existing_file=Eksisterende_fil
 exists._Overwrite_file?=eksisterer._Erstatt_filen?
-exists.Overwrite?=eksisterer._Skriv_over?
+exists._Overwrite?=eksisterer._Skriv_over?
 Expand_subtree=\u00C5pne_forgrening
 Export=Eksporter
 Export_entry_types=Eksporter_enhetstyper
@@ -632,7 +631,6 @@ Move=Flytt
 Move_down=Flytt_ned
 Move_entries_in_group_selection_to_the_top=Flytt_enheter_i_valgte_grupper_\u00F8verst
 Move_external_links_to_'file'_field=Flytt_eksterne_linker_til_'file'-feltet
-Move_file_to_file_directory=Flytt_fil_til_filkatalog.
 Move_files_to_file_directory.=Flytt_filer_til_filkatalog.
 move_group=flytt_gruppe
 Move_string_down=Flytt_streng_ned
@@ -646,7 +644,6 @@ Name=Navn
 Name_formatter=Navneformaterer
 Natbib_style=Natbib-stil
 
-Native_file_dialog=System-fildialog
 nested_aux_files=n\u00F8stede_aux-filer
 New=Ny
 new=ny
@@ -831,7 +828,6 @@ Removed_group_"%0".=Fjernet_gruppen_"%0"
 Removed_group_"%0"_and_its_subgroups.=Fjernet_gruppen_"%0"_og_dens_undergrupper
 Removed_string=Fjernet_streng
 
-Rename_to_match_citekey=Endre_navn_for_\u00E5_samsvare_med_BibTeX-n\u00F8kkel
 Renamed_string=Endret_navn_p\u00E5_streng
 Replace=Erstatt
 Replace_(regular_expression)=Erstatt_(regul\u00E6ruttrykk)
@@ -1312,3 +1308,26 @@ Generate_groups_from_keywords_in_a_BibTeX_field=
 Enforce_legal_characters_in_BibTeX_keys=
 The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=
 Before_saving,_please_edit_any_strings_containing_the_#_character.=
+
+Save_without_backup?=
+Unable_to_create_backup=
+
+File_directory_is_not_set_or_does_not_exist.=
+Move_file_to_file_directory.=
+Rename_file_to=
+Reset=
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=
+</b>_-_static_group=
+,_refines_supergroup=
+,_includes_subgroups=
+</b>_-_dynamic_group_(<b>=
+</b>_contains_<b>=
+</b>_-_dynamic_group_(=
+search_expression\:_<b>=
+
+Disable_file_renaming_in_non-native_file_dialog=
+File_dialog=
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=
+
+Search_ScienceDirect=
+Error_while_fetching_from_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/JabRef_tr.properties b/src/resource/JabRef_tr.properties
index c34ced3..ea73297 100644
--- a/src/resource/JabRef_tr.properties
+++ b/src/resource/JabRef_tr.properties
@@ -333,7 +333,6 @@ entries_have_undefined_BibTeX_key=girdilier_tan\u0131mlanmam\u0131\u015F_BibTeX_
 entries_into_new_database=girdiler_yeni_veritaban\u0131na
 entry=girdi
 Entry_editor=Girdi_d\u00FCzenleyici
-Entry_has_no_citekey=Girdinin_al\u0131nt\u0131_anahtar\u0131_yok
 Entry_in_current_database=Girdi_g\u00FCncel_veritaban\u0131nda
 Entry_in_import=Girdi_i\u00E7e_aktar\u0131lanlar_aras\u0131nda
 Entry_preview=Girdi_\u00F6nizlemesi
@@ -363,7 +362,7 @@ Establishing_SQL_connection...=SQL_ba\u011Flant\u0131s\u0131_kuruluyor...
 Exceptions=\u0130stisnalar
 Existing_file=Varolan_dosya
 exists._Overwrite_file?=mevcut._Dosyan\u0131n_\u00FCzerine_yaz\u0131ls\u0131n_m\u0131?
-exists.Overwrite?=mevcut.\u00DCzerine_yaz\u0131ls\u0131n_m\u0131?
+exists._Overwrite?=mevcut.\u00DCzerine_yaz\u0131ls\u0131n_m\u0131?
 Expand_subtree=Alta\u011Fac\u0131_geni\u015Flet
 Export=D\u0131\u015Fa_aktar
 Export_entry_types=Girdi_t\u00FCrlerini_d\u0131\u015Fa_aktar
@@ -594,7 +593,6 @@ Move=Ta\u015F\u0131
 Move_down=A\u015Fa\u011F\u0131_ta\u015F\u0131
 Move_entries_in_group_selection_to_the_top=Grup_se\u00E7imindeki_girdileri_en_\u00FCste_ta\u015F\u0131
 Move_external_links_to_'file'_field=Harici_linkleri_'dosya'_alan\u0131na_ta\u015F\u0131
-Move_file_to_file_directory=Dosyay\u0131_dosya_dizinine_ta\u015F\u0131
 Move_files_to_file_directory.=Dosyalar\u0131_dosya_dizinine_ta\u015F\u0131
 move_group=grubu_ta\u015F\u0131
 Move_string_down=Dizgeyi_a\u015Fa\u011F\u0131_ta\u015F\u0131
@@ -607,7 +605,6 @@ MySQL_database=MySQL_veritaban\u0131
 Name=Ad
 Name_formatter=Ad_bi\u00E7emleyici
 Natbib_style=Natbib_stili
-Native_file_dialog=Do\u011Fal_dosya_diyalo\u011Fu
 nested_aux_files=i\u00E7i\u00E7e_aux_dosyalar\u0131
 New=Yeni
 new=yeni
@@ -784,7 +781,6 @@ Removed_entry_type.=Girdi_t\u00FCr\u00FC_silindi.
 Removed_group_"%0".="%0"_grubu_silindi.
 Removed_group_"%0"_and_its_subgroups.="%0"_grubu_ve_altgruplar\u0131_silindi.
 Removed_string=Dizge_silindi
-Rename_to_match_citekey=Al\u0131nt\u0131_anahtar\u0131na_uymak_\u00FCzere_yeniden_adland\u0131r
 Renamed_string=Dizge_yeniden_adland\u0131r\u0131ld\u0131
 Replace=Yerine_koy
 Replace_(regular_expression)=Yerine_koy_(d\u00FCzenli_ifade)
@@ -1232,22 +1228,44 @@ Formatter_not_found\:_%0=Bi\u00E7imleyici_bulunamad\u0131\:_%0
 The_following_formatters_could_not_be_found=A\u015Fa\u011F\u0131daki_bi\u00E7imleyiciler_bulunamad\u0131
 
 Clear_inputarea=Girdi_alan\u0131n\u0131_temizle
-Automatically_set_file_links_for_this_entry=Bu_girdi_i\u00e7in_dosya_ba\u011flant\u0131lar\u0131n\u0131_otomatikman_kur
-Could_not_save,_file_locked_by_another_JabRef_instance.=Kaydedilemiyor,_dosya_ba\u015fka_bir_JabRef_oturumunca_kilitlenmi\u015f.
-File_is_locked_by_another_JabRef_instance.=Dosya_ba\u015fka_bir_JabRef_oturumunca_kilitlenmi\u015f.
-Do_you_want_to_override_the_file_lock?=Dosya_kilidini_ge\u00e7ersiz_k\u0131lmak_ister_misiniz?
+Automatically_set_file_links_for_this_entry=Bu_girdi_i\u00E7in_dosya_ba\u011Flant\u0131lar\u0131n\u0131_otomatikman_kur
+Could_not_save,_file_locked_by_another_JabRef_instance.=Kaydedilemiyor,_dosya_ba\u015Fka_bir_JabRef_oturumunca_kilitlenmi\u015F.
+File_is_locked_by_another_JabRef_instance.=Dosya_ba\u015Fka_bir_JabRef_oturumunca_kilitlenmi\u015F.
+Do_you_want_to_override_the_file_lock?=Dosya_kilidini_ge\u00E7ersiz_k\u0131lmak_ister_misiniz?
 File_locked=Dosya_kilitli
-Current_tmp_value=Mevcut_tmp_de\u011feri
-Metadata_change=Metadata_de\u011fi\u015fikli\u011fi
-Changes_have_been_made_to_the_following_metadata_elements=A\u015fa\u011f\u0131daki_metadata_\u00f6gelerinde_de\u011fi\u015fiklik_yap\u0131ld\u0131
+Current_tmp_value=Mevcut_tmp_de\u011Feri
+Metadata_change=Metadata_de\u011Fi\u015Fikli\u011Fi
+Changes_have_been_made_to_the_following_metadata_elements=A\u015Fa\u011F\u0131daki_metadata_\u00F6gelerinde_de\u011Fi\u015Fiklik_yap\u0131ld\u0131
 
-Generate_groups_for_author_last_names=Yazar_soyadlar\u0131_i\u00e7in_grup_olu\u015ftur
-Generate_groups_for_editor_last_names=Edit\u00f6r_soyadlar\u0131_i\u00e7in_grup_olu\u015ftur
-Generate_groups_from_keywords_in_a_BibTeX_field=Bir_BibTeX_alan\u0131ndaki_anahtar_s\u00f6zc\u00fcklerden_grup_olu\u015ftur
+Generate_groups_for_author_last_names=Yazar_soyadlar\u0131_i\u00E7in_grup_olu\u015Ftur
+Generate_groups_for_editor_last_names=Edit\u00F6r_soyadlar\u0131_i\u00E7in_grup_olu\u015Ftur
+Generate_groups_from_keywords_in_a_BibTeX_field=Bir_BibTeX_alan\u0131ndaki_anahtar_s\u00F6zc\u00FCklerden_grup_olu\u015Ftur
 Enforce_legal_characters_in_BibTeX_keys=BibTeX_anahtarlar\u0131nda_yasal_karakterleri_zorla
-The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.='\\#'_\u015feklinde_belirtilmedik\u00e7e_BibTeX_dizgelerinde_#_karakterine_izin_verilmez.
-Before_saving,_please_edit_any_strings_containing_the_#_character.=Kaydetmeden_\u00f6nce_l\u00fctfen_#_karakterini_i\u00e7eren_t\u00fcm_dizgeleri_d\u00fczeltin.
-Deletion_of_old_versions_failed.=Eski_s\u00FCr\u00FCmlerin_silinmesi_ba\u015Far\u0131s\u0131z.
+The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.='\\#'_\u015Feklinde_belirtilmedik\u00E7e_BibTeX_dizgelerinde_#_karakterine_izin_verilmez.
+Before_saving,_please_edit_any_strings_containing_the_#_character.=Kaydetmeden_\u00F6nce_l\u00FCtfen_#_karakterini_i\u00E7eren_t\u00FCm_dizgeleri_d\u00FCzeltin.
+
+Save_without_backup?=Yedeklemeden_kaydedilsin_mi?
+Unable_to_create_backup=Yedek_olu\u015Fturulamad\u0131
+
+File_directory_is_not_set_or_does_not_exist.=Dosya_dizini_atanmad\u0131_ya_da_mevcut_de\u011Fil.
+Move_file_to_file_directory.=Dosyay\u0131_dosya_dizinine_ta\u015F\u0131.
+Rename_file_to=Dosyay\u0131_\u015Funa_yeniden_adland\u0131r
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=<b>T\u00FCm_Girdiler</b>_(bu_grup_silinemez_ve_d\u00FCzenlenemez)
+</b>_-_static_group=</b>_-_dura\u011Fan_grup
+,_refines_supergroup=,_s\u00FCpergrubu_rafine_eder
+,_includes_subgroups=,_altgruplar\u0131_i\u00E7erir
+</b>_-_dynamic_group_(<b>=</b>_-_devingen_grup_(<b>
+</b>_contains_<b>=</b>_i\u00E7erir_<b>
+</b>_-_dynamic_group_(=</b>_-_devingen_grup_(
+search_expression\:_<b>=arama_ifadesi\:_<b>
+
+Disable_file_renaming_in_non-native_file_dialog=Do\u011Fal_olmayan_dosya_ileti\u015Fim_kutusunda_dosya_yeniden_adland\u0131rmay\u0131_etkisiz_k\u0131l
+File_dialog=Dosya_ileti\u015Fim_kutusu
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=Girdi_bulunamad\u0131._JStor_aramak_i\u00E7in_giri\u015F_yekiniz_yok_gibi_g\u00F6r\u00FCn\u00FCyor.
+Reset=S\u0131f\u0131rla
 
 
 Highlight_groups_that_contain_entries_contained_in_any_currently_selected_group=Se\u00E7ili_herhangi_bir_gruptaki_girdileri_i\u00E7eren_gruplar\u0131_i\u015Faretle
+
+Search_ScienceDirect=
+Error_while_fetching_from_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/JabRef_zh.properties b/src/resource/JabRef_zh.properties
index 42f73b3..05ebbe2 100644
--- a/src/resource/JabRef_zh.properties
+++ b/src/resource/JabRef_zh.properties
@@ -608,7 +608,6 @@ entry=\u8BB0\u5F55
 
 Entry_editor=\u8BB0\u5F55\u7F16\u8F91\u5668
 
-Entry_has_no_citekey=\u8BB0\u5F55\u6CA1\u6709\u5F15\u7528\u952E\u503C
 
 Entry_in_current_database=\u5F53\u524D\u6570\u636E\u5E93\u4E2D\u7684\u8BB0\u5F55
 
@@ -654,7 +653,7 @@ Exceptions=\u5F02\u5E38
 Existing_file=\u5DF2\u6709\u6587\u4EF6
 
 exists._Overwrite_file?=\u5DF2\u5B58\u5728\uFF0C\u8986\u76D6\u6587\u4EF6\uFF1F
-exists.Overwrite?=\u5DF2\u5B58\u5728\uFF0C\u8986\u76D6\uFF1F
+exists._Overwrite?=\u5DF2\u5B58\u5728\uFF0C\u8986\u76D6\uFF1F
 
 Expand_subtree=\u5C55\u5F00\u5B50\u6811
 
@@ -1078,7 +1077,6 @@ Move_down=\u4E0B\u79FB
 
 Move_entries_in_group_selection_to_the_top=\u79FB\u52A8\u9009\u4E2D\u5206\u7EC4\u7684\u8BB0\u5F55\u5230\u9876\u90E8
 Move_external_links_to_'file'_field=\u79FB\u52A8\u5916\u90E8\u94FE\u63A5\u5230_'file'_\u57DF
-Move_file_to_file_directory=\u79FB\u52A8\u6587\u4EF6\u5230\u6587\u4EF6\u76EE\u5F55
 Move_files_to_file_directory.=\u79FB\u52A8\u6587\u4EF6\u5230\u6587\u4EF6\u76EE\u5F55\u3002
 
 move_group=\u79FB\u52A8\u5206\u7EC4
@@ -1099,8 +1097,6 @@ Name_formatter=\u59D3\u540D\u683C\u5F0F\u5316\u5668
 
 Natbib_style=Natbib_\u683C\u5F0F
 
-Native_file_dialog=\u672C\u5730\u6587\u4EF6\u5BF9\u8BDD\u6846
-
 nested_aux_files=nested_aux_\u6587\u4EF6
 
 New=\u65B0\u5EFA
@@ -1427,7 +1423,6 @@ Removed_group_"%0".=\u5DF2\u79FB\u9664\u5206\u7EC4_"%0"\u3002
 Removed_group_"%0"_and_its_subgroups.=\u5DF2\u79FB\u9664\u5206\u7EC4_"%0"_\u548C\u5B83\u7684\u5B50\u5206\u7EC4\u3002
 
 Removed_string=\u5DF2\u79FB\u9664\u7B80\u5199\u5B57\u4E32
-Rename_to_match_citekey=\u91CD\u547D\u540D\u4EE5\u5339\u914D\u5F15\u7528\u952E\u503C
 
 Renamed_string=\u91CD\u547D\u540D\u5B57\u7B26\u4E32
 
@@ -2127,4 +2122,27 @@ Generate_groups_for_editor_last_names=
 Generate_groups_from_keywords_in_a_BibTeX_field=
 Enforce_legal_characters_in_BibTeX_keys=
 The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=
-Before_saving,_please_edit_any_strings_containing_the_#_character.=
\ No newline at end of file
+Before_saving,_please_edit_any_strings_containing_the_#_character.=
+
+Save_without_backup?=
+Unable_to_create_backup=
+
+File_directory_is_not_set_or_does_not_exist.=
+Move_file_to_file_directory.=
+Rename_file_to=
+Reset=
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=
+</b>_-_static_group=
+,_refines_supergroup=
+,_includes_subgroups=
+</b>_-_dynamic_group_(<b>=
+</b>_contains_<b>=
+</b>_-_dynamic_group_(=
+search_expression\:_<b>=
+
+Disable_file_renaming_in_non-native_file_dialog=
+File_dialog=
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=
+
+Search_ScienceDirect=
+Error_while_fetching_from_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/JabRef_zh.properties.UTF8 b/src/resource/JabRef_zh.properties.UTF8
index cb7c6fa..9ce7643 100644
--- a/src/resource/JabRef_zh.properties.UTF8
+++ b/src/resource/JabRef_zh.properties.UTF8
@@ -608,8 +608,6 @@ entry=记录
 
 Entry_editor=记录编辑器
 
-Entry_has_no_citekey=记录没有引用键值
-
 Entry_in_current_database=当前数据库中的记录
 
 Entry_in_import=Entry_in_import
@@ -655,7 +653,7 @@ Exceptions=异常
 Existing_file=已有文件
 
 exists._Overwrite_file?=已存在,覆盖文件?
-exists.Overwrite?=已存在,覆盖?
+exists._Overwrite?=已存在,覆盖?
 
 Expand_subtree=展开子树
 
@@ -1082,7 +1080,6 @@ Move_down=下移
 
 Move_entries_in_group_selection_to_the_top=移动选中分组的记录到顶部
 Move_external_links_to_'file'_field=移动外部链接到_'file'_域
-Move_file_to_file_directory=移动文件到文件目录
 Move_files_to_file_directory.=移动文件到文件目录。
 
 move_group=移动分组
@@ -1103,8 +1100,6 @@ Name_formatter=姓名格式化器
 
 Natbib_style=Natbib_格式
 
-Native_file_dialog=本地文件对话框
-
 nested_aux_files=nested_aux_文件
 
 New=新建
@@ -1431,7 +1426,6 @@ Removed_group_"%0".=已移除分组_"%0"。
 Removed_group_"%0"_and_its_subgroups.=已移除分组_"%0"_和它的子分组。
 
 Removed_string=已移除简写字串
-Rename_to_match_citekey=重命名以匹配引用键值
 
 Renamed_string=重命名字符串
 
@@ -2132,4 +2126,27 @@ Generate_groups_from_keywords_in_a_BibTeX_field=
 Enforce_legal_characters_in_BibTeX_keys=
 
 The_#_character_is_not_allowed_in_BibTeX_strings_unless_escaped_as_in_'\\#'.=
-Before_saving,_please_edit_any_strings_containing_the_#_character.=
\ No newline at end of file
+Before_saving,_please_edit_any_strings_containing_the_#_character.=
+
+Save_without_backup?=
+Unable_to_create_backup=
+
+File_directory_is_not_set_or_does_not_exist.=
+Move_file_to_file_directory.=
+Rename_file_to=
+Reset=
+<b>All_Entries</b>_(this_group_cannot_be_edited_or_removed)=
+</b>_-_static_group=
+,_refines_supergroup=
+,_includes_subgroups=
+</b>_-_dynamic_group_(<b>=
+</b>_contains_<b>=
+</b>_-_dynamic_group_(=
+search_expression\:_<b>=
+
+Disable_file_renaming_in_non-native_file_dialog=
+File_dialog=
+No_entries_found._It_looks_like_you_do_not_have_access_to_search_JStor.=
+
+Search_ScienceDirect=
+Error_while_fetching_from_ScienceDirect=
diff --git a/src/resource/Menu_da.properties b/src/resource/Menu_da.properties
index 070d37e..651bdcc 100644
--- a/src/resource/Menu_da.properties
+++ b/src/resource/Menu_da.properties
@@ -121,3 +121,5 @@ Back=Tilbage
 Manage_plugins=&Administrer_plugins
 Look_up_full_text_document=&Hent_tekstdokument
 Set/clear/rename_fields=Udfyld/ryd/omd\u00F8b_felter
+
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/Menu_de.properties b/src/resource/Menu_de.properties
index a3ecde7..202aa48 100644
--- a/src/resource/Menu_de.properties
+++ b/src/resource/Menu_de.properties
@@ -49,9 +49,9 @@ Export_selected_entries_to_clipboard=&Ausgw\u00E4hlte_Eintr\u00E4ge_in_die_Zwisc
 
 Fetch_citations_from_CiteSeer=&Literaturangaben_von_CiteSeer_abrufen
 
-Fetch_CiteSeer=&CiteSeer_abrufen
+Fetch_CiteSeer=&CiteSeer
 
-Fetch_Medline=&Medline_abrufen
+Fetch_Medline=&Medline
 
 # Menu names
 File=&Datei
@@ -148,7 +148,7 @@ Save_session=Sitzung_&speichern
 # Tools
 Search=&Suchen
 
-Search_IEEEXplore=IEEEXplore_durchsuchen
+Search_IEEEXplore=IEEEXplore
 
 Select_all=&Alle_ausw\u00E4hlen
 
@@ -198,7 +198,7 @@ Write_XMP-metadata_to_PDFs=&XMP-Metadaten_in_PDFs_schreiben
 
 Set/clear_fields=&Felder_setzen/l\u00F6schen
 Export_selected_entries=Ausgew\u00E4hlte_Eintr\u00E4ge_e&xportieren
-Fetch_ArXiv.org=ArXiv.org_abrufen
+Fetch_ArXiv.org=ArXiv.org
 Sessions=S&itzungen
 Save_all=A&lle_speichern
 
@@ -209,13 +209,13 @@ Open_file=Datei_\u00F6ffnen
 Plugins=&Plugins
 Connect_to_external_SQL_database=Mit_externer_SQL-Datenbank_verbinden
 Export_to_external_SQL_database=Export_in_externe_SQL-Datenbank
-Search_JSTOR=JSTOR_durchsuchen
-Fetch_SPIRES=SPIRES_abrufen
+Search_JSTOR=JSTOR
+Fetch_SPIRES=SPIRES
 Fetch_CiteSeer_by_ID=CiteSeer_mittels_ID_abrufen
-Search_Medline=Medline_durchsuchen
+Search_Medline=Medline
 Import_from_external_SQL_database=Import_aus_externer_SQL-Datenbank
 Focus_entry_table=Fokus_auf_Tabelle_setzen
-Search_ACM_Portal=ACM-Portal_durchsuchen
+Search_ACM_Portal=ACM-Portal
 
 Increase_table_font_size=Schriftgr\u00F6\u00DFe_in_der_&Tabelle_vergr\u00F6\u00DFern
 Decrease_table_font_size=Schriftgr\u00F6\u00DFe_in_der_Tabelle_ver&kleinern
@@ -224,4 +224,6 @@ Back=Zur\u00FCck
 
 Manage_plugins=Plugins_verwalten
 Look_up_full_text_document=Volltext-Dokument_suchen
-Set/clear/rename_fields=Felder_setzen/l\u00f6schen/umbenennen
+Set/clear/rename_fields=Felder_setzen/l\u00F6schen/umbenennen
+
+Search_ScienceDirect=ScienceDirect
diff --git a/src/resource/Menu_en.properties b/src/resource/Menu_en.properties
index 12fc3b2..284200b 100644
--- a/src/resource/Menu_en.properties
+++ b/src/resource/Menu_en.properties
@@ -142,3 +142,5 @@ Back=Back
 Manage_plugins=Manage_plugins
 Look_up_full_text_document=Look_up_full_text_document
 Set/clear/rename_fields=Set/clear/rename_fields
+
+Search_ScienceDirect=Search_ScienceDirect
\ No newline at end of file
diff --git a/src/resource/Menu_es.properties b/src/resource/Menu_es.properties
index e042023..5b858f5 100644
--- a/src/resource/Menu_es.properties
+++ b/src/resource/Menu_es.properties
@@ -144,4 +144,6 @@ Back=
 
 Manage_plugins=
 Look_up_full_text_document=
-Set/clear/rename_fields=
\ No newline at end of file
+Set/clear/rename_fields=
+
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/Menu_fr.properties b/src/resource/Menu_fr.properties
index 81197d8..f02e55b 100644
--- a/src/resource/Menu_fr.properties
+++ b/src/resource/Menu_fr.properties
@@ -66,10 +66,10 @@ 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_...
-Save_session=Sau&ver_session
+Save_database=Enregistrer_la_base
+Save_database_as_...=Enregistrer_la_base_sous_...
+Save_selected_as_...=Enregistrer_la_s\u00E9&lection_sous_...
+Save_session=Enregistrer_la_session
 Search=&Recherche
 Search_IEEEXplore=IEEEXplore
 Select_all=&Tout_s\u00E9lectionner
@@ -104,7 +104,7 @@ Export_selected_entries=Exporter_les_entr\u00E9es_s\u00E9lectionn\u00E9es
 
 Fetch_ArXiv.org=ArXiv.org
 Sessions=Sessions
-Save_all=Sauvegarder_tout
+Save_all=Enregistrer_tout
 
 Upgrade_external_links=Mettre_\u00E0_jour_les_liens_externes
 Manage_external_file_types=G\u00E9rer_les_types_de_fichiers_externes
@@ -130,3 +130,5 @@ Back=Pr\u00E9c\u00E9dent
 Manage_plugins=G\u00E9rer_les_greffons
 Look_up_full_text_document=T\u00E9l\u00E9charger_le_document_cit\u00E9
 Set/clear/rename_fields=Configurer/vider/renommer_des_champs
+
+Search_ScienceDirect=ScienceDirect
\ No newline at end of file
diff --git a/src/resource/Menu_it.properties b/src/resource/Menu_it.properties
index f119c1d..8218663 100644
--- a/src/resource/Menu_it.properties
+++ b/src/resource/Menu_it.properties
@@ -138,4 +138,6 @@ Back=
 
 Manage_plugins=
 Look_up_full_text_document=
-Set/clear/rename_fields=
\ No newline at end of file
+Set/clear/rename_fields=
+
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/Menu_nl.properties b/src/resource/Menu_nl.properties
index 46081e8..c47f242 100644
--- a/src/resource/Menu_nl.properties
+++ b/src/resource/Menu_nl.properties
@@ -231,4 +231,6 @@ Back=
 
 Manage_plugins=
 Look_up_full_text_document=
-Set/clear/rename_fields=
\ No newline at end of file
+Set/clear/rename_fields=
+
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/Menu_no.properties b/src/resource/Menu_no.properties
index 251caae..f1be0a9 100644
--- a/src/resource/Menu_no.properties
+++ b/src/resource/Menu_no.properties
@@ -138,4 +138,6 @@ Back=
 
 Manage_plugins=
 Look_up_full_text_document=
-Set/clear/rename_fields=
\ No newline at end of file
+Set/clear/rename_fields=
+
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/Menu_tr.properties b/src/resource/Menu_tr.properties
index 7c92971..442e73b 100644
--- a/src/resource/Menu_tr.properties
+++ b/src/resource/Menu_tr.properties
@@ -117,9 +117,8 @@ Increase_table_font_size=Tablo_yaz\u0131tipi_boyutunu_artt\u0131r
 Decrease_table_font_size=Tablo_yaz\u0131tipi_boyutunu_azalt
 Forward=\u0130leri
 Back=Geri
-Manage_plugins=Eklentileri_y\u00f6net
-Synchronize_file_links=Dosya_linklerini_e\u015fzamanla
+Manage_plugins=Eklentileri_y\u00F6net
 Set/clear/rename_fields=Alanlar\u0131_ata/sil/yeniden_adland\u0131r
 Look_up_full_text_document=Tam_metin_belge_bul
-Push_entries_to_external_application_(LyX/Kile)=Girdileri_harici_uygulamaya_(LyX/Kile)_itele
 
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/Menu_zh.properties b/src/resource/Menu_zh.properties
index 1d5e28c..7bc06e9 100644
--- a/src/resource/Menu_zh.properties
+++ b/src/resource/Menu_zh.properties
@@ -1,146 +1,146 @@
 #!
 #! created/edited by Popeye version 0.54 (popeye.sourceforge.net)
 #! encoding:ISO-8859-1
-Abbreviate_journal_names_(ISO)=\u7f29\u5199\u671f\u520a\u540d\u79f0_(ISO)
-Abbreviate_journal_names_(MEDLINE)=\u7f29\u5199\u671f\u520a\u540d\u79f0_(MEDLINE)
-About_JabRef=\u5173\u4e8e_JabRef_(&A)
-Append_database=\u8ffd\u52a0\u6570\u636e\u5e93_(&A)
-Autogenerate_BibTeX_keys=\u81ea\u52a8\u751f\u6210_BibTeX_\u952e(&A)
+Abbreviate_journal_names_(ISO)=\u7F29\u5199\u671F\u520A\u540D\u79F0_(ISO)
+Abbreviate_journal_names_(MEDLINE)=\u7F29\u5199\u671F\u520A\u540D\u79F0_(MEDLINE)
+About_JabRef=\u5173\u4E8E_JabRef_(&A)
+Append_database=\u8FFD\u52A0\u6570\u636E\u5E93_(&A)
+Autogenerate_BibTeX_keys=\u81EA\u52A8\u751F\u6210_BibTeX_\u952E(&A)
 BibTeX=&BibTeX
-Close_database=\u5173\u95ed\u5f53\u524d\u6570\u636e\u5e93_(&C)
-Copy=\u590d\u5236(&o)
-Copy_\\cite{BibTeX_key}=\u590d\u5236_\\c&ite{BibTeX_\u952e\u503c}
-Copy_BibTeX_key=\u590d\u5236_&BibTeX_\u952e\u503c
-Custom_export=\u81ea\u5b9a\u4e49\u5bfc\u51fa\u5668_(&x)
-Custom_importers=\u81ea\u5b9a\u4e49\u5bfc\u5165\u5668
-Customize_entry_types=\u81ea\u5b9a\u4e49\u8bb0\u5f55\u7c7b\u522b_(&C)
-Cut=\u526a\u5207_(&C)
-Database_properties=\u6570\u636e\u5e93\u5c5e\u6027_(&p)
+Close_database=\u5173\u95ED\u5F53\u524D\u6570\u636E\u5E93_(&C)
+Copy=\u590D\u5236(&o)
+Copy_\\cite{BibTeX_key}=\u590D\u5236_\\c&ite{BibTeX_\u952E\u503C}
+Copy_BibTeX_key=\u590D\u5236_&BibTeX_\u952E\u503C
+Custom_export=\u81EA\u5B9A\u4E49\u5BFC\u51FA\u5668_(&x)
+Custom_importers=\u81EA\u5B9A\u4E49\u5BFC\u5165\u5668
+Customize_entry_types=\u81EA\u5B9A\u4E49\u8BB0\u5F55\u7C7B\u522B_(&C)
+Cut=\u526A\u5207_(&C)
+Database_properties=\u6570\u636E\u5E93\u5C5E\u6027_(&p)
 Delete=\u5220\u9664_(&D)
-Edit=\u7f16\u8f91_(&E)
+Edit=\u7F16\u8F91_(&E)
 # Bibtex
-Edit_entry=\u7f16\u8f91\u8bb0\u5f55_(&E)
-Edit_preamble=\u7f16\u8f91\u5bfc\u8a00\u533a_(&preamble)
-Edit_strings=\u7f16\u8f91\u7b80\u5199\u5b57\u4e32_(&s)
-Export=\u5bfc\u51fa_(&E)
-Export_selected_entries_to_clipboard=\u5bfc\u51fa\u9009\u4e2d\u8bb0\u5f55\u5230\u526a\u8d34\u677f_(&E)
-Fetch_citations_from_CiteSeer=\u4ece_&CiteSeer_\u6293\u53d6_cite_\u4fe1\u606f
-Fetch_CiteSeer=\u6293\u53d6_CiteSeer
-Fetch_Medline=\u6293\u53d6_&Medline
+Edit_entry=\u7F16\u8F91\u8BB0\u5F55_(&E)
+Edit_preamble=\u7F16\u8F91\u5BFC\u8A00\u533A_(&preamble)
+Edit_strings=\u7F16\u8F91\u7B80\u5199\u5B57\u4E32_(&s)
+Export=\u5BFC\u51FA_(&E)
+Export_selected_entries_to_clipboard=\u5BFC\u51FA\u9009\u4E2D\u8BB0\u5F55\u5230\u526A\u8D34\u677F_(&E)
+Fetch_citations_from_CiteSeer=\u4ECE_&CiteSeer_\u6293\u53D6_cite_\u4FE1\u606F
+Fetch_CiteSeer=\u6293\u53D6_CiteSeer
+Fetch_Medline=\u6293\u53D6_&Medline
 
 # Menu names
-File=\u6587\u4ef6_(&F)
-Find_And_Fix=\u67e5\u627e\u5e76\u89e3\u51b3
-Find_and_remove_exact_duplicates=\u67e5\u627e\u5e76\u79fb\u9664\u5b8c\u5168\u91cd\u590d\u8bb0\u5f55_(&d)
-Find_duplicates=\u67e5\u627e\u91cd\u590d\u8bb0\u5f55_(&F)
-Help=\u5e2e\u52a9_(&H)
-Help_contents=\u5e2e\u52a9\u5185\u5bb9_(&c)
-Highlight_groups_matching_all_selected_entries=\u9ad8\u4eae\u663e\u793a\u5305\u542b\u6240\u6709\u9009\u4e2d\u8bb0\u5f55\u7684\u5206\u7ec4
-Highlight_groups_matching_any_selected_entry=\u9ad8\u4eae\u663e\u793a\u5305\u542b\u4efb\u4e00\u9009\u4e2d\u8bb0\u5f55\u7684\u5206\u7ec4
-Import_Fields_from_CiteSeer=\u4ece_&CiteSeer_\u5bfc\u5165\u5176\u5b83\u57df
-Incremental_search=\u589e\u91cf\u67e5\u627e_(&I)
+File=\u6587\u4EF6_(&F)
+Find_And_Fix=\u67E5\u627E\u5E76\u89E3\u51B3
+Find_and_remove_exact_duplicates=\u67E5\u627E\u5E76\u79FB\u9664\u5B8C\u5168\u91CD\u590D\u8BB0\u5F55_(&d)
+Find_duplicates=\u67E5\u627E\u91CD\u590D\u8BB0\u5F55_(&F)
+Help=\u5E2E\u52A9_(&H)
+Help_contents=\u5E2E\u52A9\u5185\u5BB9_(&c)
+Highlight_groups_matching_all_selected_entries=\u9AD8\u4EAE\u663E\u793A\u5305\u542B\u6240\u6709\u9009\u4E2D\u8BB0\u5F55\u7684\u5206\u7EC4
+Highlight_groups_matching_any_selected_entry=\u9AD8\u4EAE\u663E\u793A\u5305\u542B\u4EFB\u4E00\u9009\u4E2D\u8BB0\u5F55\u7684\u5206\u7EC4
+Import_Fields_from_CiteSeer=\u4ECE_&CiteSeer_\u5BFC\u5165\u5176\u5B83\u57DF
+Incremental_search=\u589E\u91CF\u67E5\u627E_(&I)
 
-Insert_selected_citations_into_Emacs=\u5c06\u9009\u4e2d_cite_\u63d2\u5165\u5230_(&E)macs
-Insert_selected_citations_into_LatexEditor=\u5c06\u9009\u4e2d_cite_\u63d2\u5165\u5230_LatexEditor
-Insert_selected_citations_into_LyX/Kile=\u5c06\u9009\u4e2d_cite_\u63d2\u5165\u5230_&LyX/Kile
-Insert_selected_citations_into_WinEdt=\u5c06\u9009\u4e2d_cite_\u63d2\u5165\u5230_&WinEdt
-Integrity_check=\u5b8c\u6574\u6027\u68c0\u67e5
+Insert_selected_citations_into_Emacs=\u5C06\u9009\u4E2D_cite_\u63D2\u5165\u5230_(&E)macs
+Insert_selected_citations_into_LatexEditor=\u5C06\u9009\u4E2D_cite_\u63D2\u5165\u5230_LatexEditor
+Insert_selected_citations_into_LyX/Kile=\u5C06\u9009\u4E2D_cite_\u63D2\u5165\u5230_&LyX/Kile
+Insert_selected_citations_into_WinEdt=\u5C06\u9009\u4E2D_cite_\u63D2\u5165\u5230_&WinEdt
+Integrity_check=\u5B8C\u6574\u6027\u68C0\u67E5
 # Help
-JabRef_help=JabRef_\u5e2e\u52a9_(&h)
-Load_session=\u52a0\u8f7d\u4f1a\u8bdd_(&D)
-Manage_content_selectors=\u7ba1\u7406\u5185\u5bb9\u4e0b\u62c9\u83dc\u5355_(&C)
-Manage_custom_exports=\u7ba1\u7406\u81ea\u5b9a\u4e49\u5bfc\u51fa\u5668_(&M)
-Manage_custom_imports=\u7ba1\u7406\u81ea\u5b9a\u4e49\u5bfc\u5165\u5668_(&I)
-Manage_journal_abbreviations=\u7ba1\u7406\u671f\u520a\u540d\u7f29\u5199\u89c4\u5219_(&J)
-Mark_entries=\u9ad8\u4eae\u6807\u8bb0\u9009\u4e2d\u8bb0\u5f55_(&M)
+JabRef_help=JabRef_\u5E2E\u52A9_(&h)
+Load_session=\u52A0\u8F7D\u4F1A\u8BDD_(&D)
+Manage_content_selectors=\u7BA1\u7406\u5185\u5BB9\u4E0B\u62C9\u83DC\u5355_(&C)
+Manage_custom_exports=\u7BA1\u7406\u81EA\u5B9A\u4E49\u5BFC\u51FA\u5668_(&M)
+Manage_custom_imports=\u7BA1\u7406\u81EA\u5B9A\u4E49\u5BFC\u5165\u5668_(&I)
+Manage_journal_abbreviations=\u7BA1\u7406\u671F\u520A\u540D\u7F29\u5199\u89C4\u5219_(&J)
+Mark_entries=\u9AD8\u4EAE\u6807\u8BB0\u9009\u4E2D\u8BB0\u5F55_(&M)
 # File menu
-New_database=\u65b0\u5efa\u6570\u636e\u5e93_(&N)
+New_database=\u65B0\u5EFA\u6570\u636E\u5E93_(&N)
 # Menu BibTeX (BibTeX)
-New_entry=\u65b0\u5efa\u8bb0\u5f55\u5411\u5bfc_(&e)
-New_entry...=\u65b0\u5efa\u8bb0\u5f55_(&N)...
-New_entry_from_plain_text=\u4ee5\u7eaf\u6587\u672c\u65b0\u5efa\u8bb0\u5f55_(&W)
-New_subdatabase_based_on_AUX_file=\u6839\u636e_AU&X_\u6587\u4ef6\u65b0\u5efa\u5b50\u6570\u636e\u5e93
+New_entry=\u65B0\u5EFA\u8BB0\u5F55\u5411\u5BFC_(&e)
+New_entry...=\u65B0\u5EFA\u8BB0\u5F55_(&N)...
+New_entry_from_plain_text=\u4EE5\u7EAF\u6587\u672C\u65B0\u5EFA\u8BB0\u5F55_(&W)
+New_subdatabase_based_on_AUX_file=\u6839\u636E_AU&X_\u6587\u4EF6\u65B0\u5EFA\u5B50\u6570\u636E\u5E93
 # View
-Next_tab=\u4e0b\u4e00\u6807\u7b7e\u9875_(&N)
-Open_database=\u6253\u5f00\u6570\u636e\u5e93_(&O)
-Open_PDF_or_PS=\u6253\u5f00_(&P)DF_\u6216_PS
-Open_URL_or_DOI=\u6253\u5f00_&URL_\u6216_DOI
+Next_tab=\u4E0B\u4E00\u6807\u7B7E\u9875_(&N)
+Open_database=\u6253\u5F00\u6570\u636E\u5E93_(&O)
+Open_PDF_or_PS=\u6253\u5F00_(&P)DF_\u6216_PS
+Open_URL_or_DOI=\u6253\u5F00_&URL_\u6216_DOI
 Options=\u9009\u9879_(&O)
-Paste=\u7c98\u8d34_(&P)
+Paste=\u7C98\u8D34_(&P)
 # Options
 Preferences=\u9996\u9009\u9879_(&P)
-Previous_tab=\u4e0a\u4e00\u6807\u7b7e\u9875_(&P)
-Quit=\u9000\u51fa_(&Q)
-Recent_files=\u6700\u8fd1\u6253\u5f00\u7684\u6587\u4ef6_(&R)
-Redo=\u91cd\u505a_(&R)
-Replace_string=\u66ff\u6362\u5b57\u7b26\u4e32_(&R)
-Save_database=\u4fdd\u5b58\u6570\u636e\u5e93_(&S)
-Save_database_as_...=\u6570\u636e\u5e93\u53e6\u5b58\u4e3a_(&A)...
-Save_selected_as_...=\u9009\u4e2d\u8bb0\u5f55\u53e6\u5b58\u4e3a_(&L)...
-Save_session=\u4fdd\u5b58\u5f53\u524d\u4f1a\u8bdd
+Previous_tab=\u4E0A\u4E00\u6807\u7B7E\u9875_(&P)
+Quit=\u9000\u51FA_(&Q)
+Recent_files=\u6700\u8FD1\u6253\u5F00\u7684\u6587\u4EF6_(&R)
+Redo=\u91CD\u505A_(&R)
+Replace_string=\u66FF\u6362\u5B57\u7B26\u4E32_(&R)
+Save_database=\u4FDD\u5B58\u6570\u636E\u5E93_(&S)
+Save_database_as_...=\u6570\u636E\u5E93\u53E6\u5B58\u4E3A_(&A)...
+Save_selected_as_...=\u9009\u4E2D\u8BB0\u5F55\u53E6\u5B58\u4E3A_(&L)...
+Save_session=\u4FDD\u5B58\u5F53\u524D\u4F1A\u8BDD
 # Tools
-Search=\u67e5\u627e_(&S)
-Search_IEEEXplore=\u641c\u7d22_IEEEXplore
+Search=\u67E5\u627E_(&S)
+Search_IEEEXplore=\u641C\u7D22_IEEEXplore
 Select_all=\u5168\u9009_(&A)
-Set_up_general_fields=\u914d\u7f6e_&general_\u57df
-Show_error_console=\u6253\u5f00\u9519\u8bef\u663e\u793a\u7ec8\u7aef
+Set_up_general_fields=\u914D\u7F6E_&general_\u57DF
+Show_error_console=\u6253\u5F00\u9519\u8BEF\u663E\u793A\u7EC8\u7AEF
 
-Sort_tabs=\u6807\u7b7e\u9875\u6392\u5e8f_(&S)
-Switch_preview_layout=\u5207\u6362\u8bb0\u5f55\u9884\u89c8\u65b9\u5f0f_(&S)
-Synchronize_PDF_links=\u81ea\u52a8\u540c\u6b65_PDF_\u94fe\u63a5
-Synchronize_PS_links=\u81ea\u52a8\u540c\u6b65_PS_\u94fe\u63a5
+Sort_tabs=\u6807\u7B7E\u9875\u6392\u5E8F_(&S)
+Switch_preview_layout=\u5207\u6362\u8BB0\u5F55\u9884\u89C8\u65B9\u5F0F_(&S)
+Synchronize_PDF_links=\u81EA\u52A8\u540C\u6B65_PDF_\u94FE\u63A5
+Synchronize_PS_links=\u81EA\u52A8\u540C\u6B65_PS_\u94FE\u63A5
 # Export menu
-Tab-separated_file=\u4f7f\u7528\u5236\u8868\u7b26\u95f4\u9694\u7684\u6587\u4ef6_(&T)
-Toggle_entry_preview=\u6253\u5f00/\u5173\u95ed\u8bb0\u5f55\u9884\u89c8_(&T)
-Toggle_groups_interface=\u6253\u5f00/\u5173\u95ed\u5206\u7ec4\u754c\u9762_(&G)
-Tools=\u5de5\u5177_(&T)
-Unabbreviate_journal_names=\u5c55\u5f00\u671f\u520a\u540d\u79f0
+Tab-separated_file=\u4F7F\u7528\u5236\u8868\u7B26\u95F4\u9694\u7684\u6587\u4EF6_(&T)
+Toggle_entry_preview=\u6253\u5F00/\u5173\u95ED\u8BB0\u5F55\u9884\u89C8_(&T)
+Toggle_groups_interface=\u6253\u5F00/\u5173\u95ED\u5206\u7EC4\u754C\u9762_(&G)
+Tools=\u5DE5\u5177_(&T)
+Unabbreviate_journal_names=\u5C55\u5F00\u671F\u520A\u540D\u79F0
 # Edit
-Undo=\u64a4\u9500_(&U)
-Unmark_all=\u64a4\u9500\u6240\u6709\u9ad8\u4eae\u6807\u8bb0_(&L)
-Unmark_entries=\u64a4\u9500\u9009\u4e2d\u9ad8\u4eae\u6807\u8bb0_(&N)
-Unpack_EndNote_filter_set=\u89e3\u5f00_&EndNote_filter_set
-View=\u89c6\u56fe_(&V)
-Web_search=Web_\u641c\u7d22
-Import_into_new_database=\u5bfc\u5165\u5230\u65b0\u6570\u636e\u5e93
-Import_into_current_database=\u5bfc\u5165\u5230\u5f53\u524d\u6570\u636e\u5e93
+Undo=\u64A4\u9500_(&U)
+Unmark_all=\u64A4\u9500\u6240\u6709\u9AD8\u4EAE\u6807\u8BB0_(&L)
+Unmark_entries=\u64A4\u9500\u9009\u4E2D\u9AD8\u4EAE\u6807\u8BB0_(&N)
+Unpack_EndNote_filter_set=\u89E3\u5F00_&EndNote_filter_set
+View=\u89C6\u56FE_(&V)
+Web_search=Web_\u641C\u7D22
+Import_into_new_database=\u5BFC\u5165\u5230\u65B0\u6570\u636E\u5E93
+Import_into_current_database=\u5BFC\u5165\u5230\u5F53\u524D\u6570\u636E\u5E93
 
-Scan_database...=\u626b\u63cf\u6570\u636e\u5e93_(&C)...
+Scan_database...=\u626B\u63CF\u6570\u636E\u5E93_(&C)...
 
-Push_entries_to_external_application_(%0)=\u63a8\u9001\u9009\u4e2d\u8bb0\u5f55\u5230\u5916\u90e8\u7a0b\u5e8f_(%0)
-Write_XMP-metadata_to_PDFs=\u5c06_XMP_\u5143\u6570\u636e\u5199\u5165\u5230_PDF_\u4e2d
-Set/clear_fields=\u8bbe\u7f6e/\u6e05\u9664_\u57df
+Push_entries_to_external_application_(%0)=\u63A8\u9001\u9009\u4E2D\u8BB0\u5F55\u5230\u5916\u90E8\u7A0B\u5E8F_(%0)
+Write_XMP-metadata_to_PDFs=\u5C06_XMP_\u5143\u6570\u636E\u5199\u5165\u5230_PDF_\u4E2D
+Set/clear_fields=\u8BBE\u7F6E/\u6E05\u9664_\u57DF
 
-Export_selected_entries=\u5bfc\u51fa\u9009\u4e2d\u8bb0\u5f55
-Fetch_ArXiv.org=\u6293\u53d6_ArXiv.org
-Sessions=\u4f1a\u8bdd
+Export_selected_entries=\u5BFC\u51FA\u9009\u4E2D\u8BB0\u5F55
+Fetch_ArXiv.org=\u6293\u53D6_ArXiv.org
+Sessions=\u4F1A\u8BDD
 
-Save_all=\u4fdd\u5b58\u5168\u90e8
+Save_all=\u4FDD\u5B58\u5168\u90E8
 
-Upgrade_external_links=\u66f4\u65b0\u5916\u90e8\u94fe\u63a5
-Manage_external_file_types=\u7ba1\u7406\u5916\u90e8\u6587\u4ef6\u7c7b\u578b\u5173\u8054
+Upgrade_external_links=\u66F4\u65B0\u5916\u90E8\u94FE\u63A5
+Manage_external_file_types=\u7BA1\u7406\u5916\u90E8\u6587\u4EF6\u7C7B\u578B\u5173\u8054
 
-Open_file=\u6253\u5f00\u6587\u4ef6
+Open_file=\u6253\u5F00\u6587\u4EF6
 
-Plugins=\u63d2\u4ef6_(&P)
-Connect_to_external_SQL_database=\u8fde\u63a5\u5230\u5916\u90e8_SQL_\u6570\u636e\u5e93
-Export_to_external_SQL_database=\u5bfc\u51fa\u5230\u5916\u90e8_SQL_\u6570\u636e\u5e93
-Search_JSTOR=\u641c\u7d22_JSTOR
-Fetch_SPIRES=\u6293\u53d6_SPIRES
-Fetch_CiteSeer_by_ID=\u6839\u636e_ID_\u4ece_CiteSeer_\u6293\u53d6
-Search_Medline=\u641c\u7d22_Medline
-Import_from_external_SQL_database=\u4ece\u5916\u90e8_SQL_\u6570\u636e\u5e93\u5bfc\u5165
-Focus_entry_table=\u6fc0\u6d3b\u8bb0\u5f55\u5217\u8868
-Search_ACM_Portal=\u641c\u7d22_ACM_Portal
+Plugins=\u63D2\u4EF6_(&P)
+Connect_to_external_SQL_database=\u8FDE\u63A5\u5230\u5916\u90E8_SQL_\u6570\u636E\u5E93
+Export_to_external_SQL_database=\u5BFC\u51FA\u5230\u5916\u90E8_SQL_\u6570\u636E\u5E93
+Search_JSTOR=\u641C\u7D22_JSTOR
+Fetch_SPIRES=\u6293\u53D6_SPIRES
+Fetch_CiteSeer_by_ID=\u6839\u636E_ID_\u4ECE_CiteSeer_\u6293\u53D6
+Search_Medline=\u641C\u7D22_Medline
+Import_from_external_SQL_database=\u4ECE\u5916\u90E8_SQL_\u6570\u636E\u5E93\u5BFC\u5165
+Focus_entry_table=\u6FC0\u6D3B\u8BB0\u5F55\u5217\u8868
+Search_ACM_Portal=\u641C\u7D22_ACM_Portal
 
-Increase_table_font_size=\u653e\u5927\u5217\u8868\u5b57\u4f53_(&I)
-Decrease_table_font_size=\u7f29\u5c0f\u5217\u8868\u5b57\u4f53_(&D)
-Forward=\u524d\u8fdb
-Back=\u540e\u9000
-Synchronize_file_links=\u81ea\u52a8\u540c\u6b65\u6240\u6709\u6587\u4ef6\u94fe\u63a5
+Increase_table_font_size=\u653E\u5927\u5217\u8868\u5B57\u4F53_(&I)
+Decrease_table_font_size=\u7F29\u5C0F\u5217\u8868\u5B57\u4F53_(&D)
+Forward=\u524D\u8FDB
+Back=\u540E\u9000
 
-Set/clear/rename_fields=\u8bbe\u7f6e/\u6e05\u9664/\u91cd\u547d\u540d_\u57df
+Set/clear/rename_fields=\u8BBE\u7F6E/\u6E05\u9664/\u91CD\u547D\u540D_\u57DF
 
-Manage_plugins=\u7ba1\u7406\u63d2\u4ef6
-Look_up_full_text_document=\u67e5\u627e\u5b8c\u6574\u6587\u6863
-Push_entries_to_external_application_(LyX/Kile)=\u63a8\u9001\u9009\u4e2d\u8bb0\u5f55\u5230\u5916\u90e8\u7a0b\u5e8f_(LyX/Kile)
+Manage_plugins=\u7BA1\u7406\u63D2\u4EF6
+Look_up_full_text_document=\u67E5\u627E\u5B8C\u6574\u6587\u6863
+
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/Menu_zh.properties.UTF8 b/src/resource/Menu_zh.properties.UTF8
index 55722d7..7ec7e68 100644
--- a/src/resource/Menu_zh.properties.UTF8
+++ b/src/resource/Menu_zh.properties.UTF8
@@ -88,7 +88,6 @@ Show_error_console=打开错误显示终端
 
 Sort_tabs=标签页排序_(&S)
 Switch_preview_layout=切换记录预览方式_(&S)
-Synchronize_file_links=自动同步所有文件链接
 Synchronize_PDF_links=自动同步_PDF_链接
 Synchronize_PS_links=自动同步_PS_链接
 # Export menu
@@ -142,5 +141,6 @@ Back=后退
 
 Manage_plugins=管理插件
 Look_up_full_text_document=查找完整文档
-Push_entries_to_external_application_(LyX/Kile)=推送选中记录到外部程序_(LyX/Kile)
+Set/clear_fields=
 
+Search_ScienceDirect=
\ No newline at end of file
diff --git a/src/resource/build.properties b/src/resource/build.properties
index c6a6462..a35780d 100644
--- a/src/resource/build.properties
+++ b/src/resource/build.properties
@@ -1,3 +1,3 @@
-builddate=November 1 2009
-build=39
-version=2.6b2
\ No newline at end of file
+builddate=March 4 2010
+build=169
+version=2.6b3
\ No newline at end of file
diff --git a/src/resource/layout/bibtexml.layout b/src/resource/layout/bibtexml.layout
index 6b59fb7..62eb681 100755
--- a/src/resource/layout/bibtexml.layout
+++ b/src/resource/layout/bibtexml.layout
@@ -31,6 +31,7 @@
 \begin{comment}    <bibtex:comment>\format[XMLChars]{\comment}</bibtex:comment>\end{comment}
 \begin{note}    <bibtex:note>\format[XMLChars]{\note}</bibtex:note>\end{note}
 \begin{key}    <bibtex:key>\format[XMLChars]{\key}</bibtex:key>\end{key}
+\begin{review}    <bibtex:nstandard name="review">\format[XMLChars]{\review}</bibtex:nstandard>\end{review}
 \begin{file}\format[WrapFileLinks(    <bibtex:nstandard name="file" type="\x" description="\d">\p</bibtex:nstandard>\n)]{\file}\end{file}
   </bibtex:\format[ToLowerCase]{\bibtextype}>
 </bibtex:entry>
diff --git a/src/resource/layout/docbook.begin.layout b/src/resource/layout/docbook.begin.layout
index 7a747c5..6f5dec5 100644
--- a/src/resource/layout/docbook.begin.layout
+++ b/src/resource/layout/docbook.begin.layout
@@ -1,5 +1,6 @@
-<?xml version="1.0" ?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
 <!-- This file was exported from JabRef -->
 
-<bibliography>
+
 
diff --git a/src/resource/layout/docbook.layout b/src/resource/layout/docbook.layout
index deadab2..c17467a 100755
--- a/src/resource/layout/docbook.layout
+++ b/src/resource/layout/docbook.layout
@@ -1,8 +1,9 @@
 <biblioentry xreflabel="\bibtexkey" id="\bibtexkey">
    <authorgroup>
-\begin{author}       \format[XMLChars,CreateDocBookAuthors]{\author} \end{author}
+\begin{author}       \format[CreateDocBookAuthors]{\author} \end{author}
+\begin{editor}       \format[CreateDocBookEditors]{\editor} \end{editor}
    </authorgroup>
-<citetitle pubwork="article">\format[XMLChars,RemoveLatexCommands]{\title}</citetitle>
+   <citetitle pubwork="article">\format[XMLChars,RemoveLatexCommands]{\title}</citetitle>
 \begin{journal}   <citetitle pubwork="journal">\format[XMLChars]{\journal}</citetitle>\end{journal}
 \begin{publisher}   <publisher>
       <publishername>\format[XMLChars]{\publisher}</publishername>
diff --git a/src/resource/ods/mimetype b/src/resource/ods/mimetype
new file mode 100644
index 0000000..78a49cc
--- /dev/null
+++ b/src/resource/ods/mimetype
@@ -0,0 +1 @@
+application/vnd.oasis.opendocument.spreadsheet
\ No newline at end of file
diff --git a/src/tests/net/sf/jabref/bibtexFiles/test.bib b/src/tests/net/sf/jabref/bibtexFiles/test.bib
new file mode 100644
index 0000000..cc5bcc1
--- /dev/null
+++ b/src/tests/net/sf/jabref/bibtexFiles/test.bib
@@ -0,0 +1,279 @@
+% This file was created with JabRef devel - 1st edition family.
+% Encoding: MacRoman
+
+ at ARTICLE{1102917,
+  author = {E. Bardram},
+  title = {The trouble with login: on usability and computer security in ubiquitous
+	computing},
+  journal = {Personal Ubiquitous Comput.},
+  year = {2005},
+  volume = {9},
+  pages = {357--367},
+  number = {6},
+  address = {London, UK},
+  bdsk-url-1 = {http://dx.doi.org/10.1007/s00779-005-0347-6},
+  doi = {http://dx.doi.org/10.1007/s00779-005-0347-6},
+  issn = {1617-4909},
+  publisher = {Springer-Verlag}
+}
+
+ at INPROCEEDINGS{1137631,
+  author = {Gustav Bostr\"{o}m and Jaana W\"{a}yrynen and Marine Bod\'{e}n and
+	Konstantin Beznosov and Philippe Kruchten},
+  title = {Extending XP practices to support security requirements engineering},
+  booktitle = {SESS '06: Proceedings of the 2006 international workshop on Software
+	engineering for secure systems},
+  year = {2006},
+  pages = {11--18},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1137627.1137631},
+  doi = {http://doi.acm.org/10.1145/1137627.1137631},
+  file = {:/Volumes/iDisk/Freie Universit�t Berlin/Semester 9/Softwareprozesse/p11-bostrom.pdf:PDF},
+  isbn = {1-59593-411-1},
+  location = {Shanghai, China}
+}
+
+ at INPROCEEDINGS{1132768,
+  author = {Christina Braz and Jean-Marc Robert},
+  title = {Security and usability: the case of the user authentication methods},
+  booktitle = {IHM '06: Proceedings of the 18th International Conferenceof the Association
+	Francophone d'Interaction Homme-Machine},
+  year = {2006},
+  pages = {199--203},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1132736.1132768},
+  doi = {http://doi.acm.org/10.1145/1132736.1132768},
+  isbn = {1-59593-350-6},
+  location = {Montreal, Canada}
+}
+
+ at INPROCEEDINGS{1137628,
+  author = {Danilo Bruschi and Bart De Win and Mattia Monga},
+  title = {Introduction to software engineering for secure systems: SESS06 --
+	secure by design},
+  booktitle = {SESS '06: Proceedings of the 2006 international workshop on Software
+	engineering for secure systems},
+  year = {2006},
+  pages = {1--2},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1137627.1137628},
+  doi = {http://doi.acm.org/10.1145/1137627.1137628},
+  isbn = {1-59593-411-1},
+  location = {Shanghai, China}
+}
+
+ at ARTICLE{1373163,
+  author = {Elizabeth Churchill and Les Nelson and Diana K. Smetters},
+  title = {Useful Computer Security},
+  journal = {IEEE Internet Computing},
+  year = {2008},
+  volume = {12},
+  pages = {10--12},
+  number = {3},
+  address = {Piscataway, NJ, USA},
+  bdsk-url-1 = {http://dx.doi.org/10.1109/MIC.2008.67},
+  doi = {http://dx.doi.org/10.1109/MIC.2008.67},
+  issn = {1089-7801},
+  publisher = {IEEE Educational Activities Department}
+}
+
+ at ARTICLE{820136,
+  author = {Tony Clear},
+  title = {Design and usability in security systems: daily life as a context
+	of use?},
+  journal = {SIGCSE Bull.},
+  year = {2002},
+  volume = {34},
+  pages = {13--14},
+  number = {4},
+  address = {New York, NY, USA},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/820127.820136},
+  doi = {http://doi.acm.org/10.1145/820127.820136},
+  issn = {0097-8418},
+  publisher = {ACM}
+}
+
+ at BOOK{1098730,
+  title = {Security and Usability},
+  publisher = {O'Reilly Media, Inc.},
+  year = {2005},
+  author = {Lorrie Cranor and Simson Garfinkel},
+  isbn = {0596008279}
+}
+
+ at INPROCEEDINGS{1143122,
+  author = {Alexander J. DeWitt and Jasna Kuljis},
+  title = {Aligning usability and security: a usability study of Polaris},
+  booktitle = {SOUPS '06: Proceedings of the second symposium on Usable privacy
+	and security},
+  year = {2006},
+  pages = {1--7},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1143120.1143122},
+  doi = {http://doi.acm.org/10.1145/1143120.1143122},
+  isbn = {1-59593-448-0},
+  location = {Pittsburgh, Pennsylvania}
+}
+
+ at INPROCEEDINGS{1233448,
+  author = {Cheryl Hinds and Chinedu Ekwueme},
+  title = {Increasing security and usability of computer systems with graphical
+	passwords},
+  booktitle = {ACM-SE 45: Proceedings of the 45th annual southeast regional conference},
+  year = {2007},
+  pages = {529--530},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1233341.1233448},
+  doi = {http://doi.acm.org/10.1145/1233341.1233448},
+  isbn = {978-1-59593-629-5},
+  location = {Winston-Salem, North Carolina}
+}
+
+ at INPROCEEDINGS{1314293,
+  author = {Mariusz H. Jakubowski and Ramarathnam Venkatesan},
+  title = {Randomized radon transforms for biometric authentication via fingerprint
+	hashing},
+  booktitle = {DRM '07: Proceedings of the 2007 ACM workshop on Digital Rights Management},
+  year = {2007},
+  pages = {90--94},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1314276.1314293},
+  doi = {http://doi.acm.org/10.1145/1314276.1314293},
+  isbn = {978-1-59593-884-8},
+  location = {Alexandria, Virginia, USA}
+}
+
+ at INPROCEEDINGS{1358810,
+  author = {Vassilis Kostakos},
+  title = {Human-in-the-loop: rethinking security in mobile and pervasive systems},
+  booktitle = {CHI '08: CHI '08 extended abstracts on Human factors in computing
+	systems},
+  year = {2008},
+  pages = {3075--3080},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1358628.1358810},
+  doi = {http://doi.acm.org/10.1145/1358628.1358810},
+  isbn = {978-1-60558-012-X},
+  location = {Florence, Italy}
+}
+
+ at INPROCEEDINGS{1137636,
+  author = {Martin Naedele and Thomas E. Koch},
+  title = {Trust and tamper-proof software delivery},
+  booktitle = {SESS '06: Proceedings of the 2006 international workshop on Software
+	engineering for secure systems},
+  year = {2006},
+  pages = {51--58},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1137627.1137636},
+  doi = {http://doi.acm.org/10.1145/1137627.1137636},
+  isbn = {1-59593-411-1},
+  location = {Shanghai, China}
+}
+
+ at INPROCEEDINGS{1182529,
+  author = {Ann Nosseir and Richard Connor and Crawford Revie and Sotirios Terzis},
+  title = {Question-based authentication using context data},
+  booktitle = {NordiCHI '06: Proceedings of the 4th Nordic conference on Human-computer
+	interaction},
+  year = {2006},
+  pages = {429--432},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1182475.1182529},
+  doi = {http://doi.acm.org/10.1145/1182475.1182529},
+  isbn = {1-59593-325-5},
+  location = {Oslo, Norway}
+}
+
+ at INPROCEEDINGS{1073004,
+  author = {Rog\'{e}rio de Paula and Xianghua Ding and Paul Dourish and Kari
+	Nies and Ben Pillet and David Redmiles and Jie Ren and Jennifer Rode
+	and Roberto Silva Filho},
+  title = {Two experiences designing for effective security},
+  booktitle = {SOUPS '05: Proceedings of the 2005 symposium on Usable privacy and
+	security},
+  year = {2005},
+  pages = {25--34},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1073001.1073004},
+  doi = {http://doi.acm.org/10.1145/1073001.1073004},
+  isbn = {1-59593-178-3},
+  location = {Pittsburgh, Pennsylvania}
+}
+
+ at INPROCEEDINGS{00000000,
+  author = {Konstantin Rozinov},
+  title = {Are Usability and Security Two Opposite Directions in Computer Systems?},
+  year = {2004},
+  bdsk-url-1 = {http://rozinov.sfs.poly.edu/papers/security_vs_usability.pdf},
+  date-added = {2009-02-23 04:41:08 +0100},
+  date-modified = {2009-02-23 04:42:54 +0100},
+  rating = {2}
+}
+
+ at INPROCEEDINGS{1251435,
+  author = {Alma Whitten and J. D. Tygar},
+  title = {Why Johnny can't encrypt: a usability evaluation of PGP 5.0},
+  booktitle = {SSYM'99: Proceedings of the 8th conference on USENIX Security Symposium},
+  year = {1999},
+  pages = {14--14},
+  address = {Berkeley, CA, USA},
+  publisher = {USENIX Association},
+  location = {Washington, D.C.}
+}
+
+ at INPROCEEDINGS{1137633,
+  author = {Bart De Win and Frank Piessens and Wouter Joosen},
+  title = {How secure is AOP and what can we do about it?},
+  booktitle = {SESS '06: Proceedings of the 2006 international workshop on Software
+	engineering for secure systems},
+  year = {2006},
+  pages = {27--34},
+  address = {New York, NY, USA},
+  publisher = {ACM},
+  bdsk-url-1 = {http://doi.acm.org/10.1145/1137627.1137633},
+  doi = {http://doi.acm.org/10.1145/1137627.1137633},
+  isbn = {1-59593-411-1},
+  location = {Shanghai, China}
+}
+
+ at ARTICLE{1025014,
+  author = {Jeff Yan and Alan Blackwell and Ross Anderson and Alasdair Grant},
+  title = {Password Memorability and Security: Empirical Results},
+  journal = {IEEE Security and Privacy},
+  year = {2004},
+  volume = {2},
+  pages = {25--31},
+  number = {5},
+  address = {Piscataway, NJ, USA},
+  bdsk-url-1 = {http://dx.doi.org/10.1109/MSP.2004.81},
+  doi = {http://dx.doi.org/10.1109/MSP.2004.81},
+  issn = {1540-7993},
+  publisher = {IEEE Educational Activities Department}
+}
+
+ at ARTICLE{10250999,
+  author = {von Hippel, Eric and Reagle, Jr., Joseph M. and Sherry, John F., Jr. and van den Huevel, Jr., Johan A},
+  title = {Article with complex Authornames},
+  journal = {IEEE Security and Privacy},
+  year = {2004},
+  volume = {2},
+  pages = {25--31},
+  number = {5},
+  address = {Piscataway, NJ, USA},
+  bdsk-url-1 = {http://dx.doi.org/10.1109/MSP.2004.81},
+  doi = {http://dx.doi.org/10.1109/MSP.2004.81},
+  issn = {1540-7993},
+  publisher = {IEEE Educational Activities Department}
+}
+
diff --git a/src/tests/net/sf/jabref/imports/RisImporterTest1.ris b/src/tests/net/sf/jabref/imports/RisImporterTest1.ris
new file mode 100644
index 0000000..92395cc
--- /dev/null
+++ b/src/tests/net/sf/jabref/imports/RisImporterTest1.ris
@@ -0,0 +1,13 @@
+
+TY  - JOUR
+JF  - Empirical Software Engineering
+T1  - Editorial: Open Source and Empirical Software Engineering
+VL  - 6
+IS  - 3
+SP  - 193
+EP  - 194
+PY  - 2001/09/01/
+AU  - Harrison, Warren
+UR  - http://dx.doi.org/10.1023/A:1017379030770
+ER  -
+  
\ No newline at end of file
diff --git a/src/txt/CHANGELOG b/src/txt/CHANGELOG
index dd1c566..9706d2c 100644
--- a/src/txt/CHANGELOG
+++ b/src/txt/CHANGELOG
@@ -1,3 +1,57 @@
+2.6b3
+    - Added ScienceDirect entry fetcher that utilizes the BibSonomy scraper.
+    - Changed non-native file dialog setting so files cannot be renamed. This prevents
+      accidentally entering rename mode when trying to enter directory. Can be enabled
+      again in Options -> Preferences -> Advanced.
+    - Added new JStor fetcher that utilizes the BibSonomy scraper to obtain BibTeX data.
+    - Fixed bug in CookieHandlerImpl.
+    - Fixed bug; when dragging a file into JabRef and asking to move it to the file
+      directory, warning will now be given if the destination file already exists. Patch
+      by Alastair Mailer.
+    - When dragging a file into JabRef and asking to copy or move it to the file directory,
+      it is now possible to rename to an arbitrary name. Patch by Alastair Mailer.
+    - Added "review" field to BibTeXML export.
+    - Added Reset button to entry fetchers. Patch by Dennis Hartrampf and Ines Moosdorf.
+    - Changed Microsoft Office XML export so "number" rather than "issue" is exported
+      as <b:Issue>, which conforms with import format. 
+    - Added confirmation dialog that allows saving without backup in cases when
+      backup creation fails.
+    - Fixed bug 2938562: using the move/rename feature on a file link could give an
+      absolute link even if the file was put below the main file directory. 
+    - Fixed bug 2931293: error generating key with [authorsAlpha] for short names.
+    - When checking for external modifications, file size is now checked in addition
+      to the time stamp.
+    - Fixed handling of maximised state when shutting down and starting up JabRef.
+      Patch by Igor L. Chernyavsky.
+    - Fixed bug that prevented correct handling of DOS short file names. Patch
+      by Igor L. Chernyavsky.
+    - Added support for KOI8_R character set.
+    - Removed DocumentPrinter class, using standard API functions instead. Patch by
+      Tony Mancill.
+    - Removed HightlightFilter class, using standard API functions instead. Patch by
+      Tony Mancill.
+    - Changed keyboard shortcut for IEEXplorer search to Alt-F8.
+    - Disabled JStor search, which doesn't work due to API changes.
+    - External file type manager now removes "." prefix in file type extension if the user
+      has typed it that way.
+    - Preview panel now defaults to preview layout 1 instead of 2. Switched default layouts.
+    - Added IfPlural formatter by Russell Almond. The formatter outputs its first argument
+      if the input field contains " and " and the second one otherwise.
+    - Applied patch by Philipp Cordes and Björn Kahlert for improved handling of names by
+      autocompleter. The patch also reorganizes the autocompleter classes.
+    - Table will now scroll to keep the currently edited entry visible if an edit leads to
+      the entry getting sorted to a different position.
+    - Reworked author and editor handling in Docbook export. Added Docbook XML header.
+    - Database will no longer be marked as changed after accepting external changes, unless one or
+      more changes were not accepted before merging, and unless database was already marked as
+      changed.
+    - Fixed bug: undesired autocompletion when saving file.
+    - Fixed bug: entry editor doesn't appear when new entry is added while a filtering search or
+      group selection is active.
+    - Fixed bug in writing of metadata on Windows. For certain metadata lengths newlines would be
+      messed up after the metadata comment in a bib file.
+    - Search dialog now automatically previews first hit, and hides preview if there are no hits. 
+2.6b2
     - Added export formatter "Default" which takes a single argument. Outputs the string to format
       unchanged if it is non-empty, otherwise outputs the argument.
     - Added option under Options -> Preferences -> General for disabling the strict enforcing of
diff --git a/src/txt/README b/src/txt/README
index fdbc2d5..f6a8ece 100644
--- a/src/txt/README
+++ b/src/txt/README
@@ -1,5 +1,5 @@
 
-JabRef 2.6 beta 2
+JabRef 2.6 beta 3
 -----------------
 
 Introduction:

-- 
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