getCheckBox() {
- return checkBox;
- }
- }
-
-}
diff --git a/src/main/java/org/jabref/gui/preftabs/FontSelectorDialog.java b/src/main/java/org/jabref/gui/preftabs/FontSelectorDialog.java
deleted file mode 100644
index 5d9b65a63a9..00000000000
--- a/src/main/java/org/jabref/gui/preftabs/FontSelectorDialog.java
+++ /dev/null
@@ -1,337 +0,0 @@
-package org.jabref.gui.preftabs;
-
-/*
- Taken from JpicEdt
-modified slightly by nizar batada for JabRef
-
- EepicViewFactory.java - February 11, 2002 - jPicEdt, a picture editor for LaTeX.
- copyright (C) 1999-2002 Sylvain Reynal
- Portions copyright (C) 2000, 2001 Slava Pestov
- Portions copyright (C) 1999 Jason Ginchereau
-
- D\uFFFDpartement de Physique
- Ecole Nationale Sup\uFFFDrieure de l'Electronique et de ses Applications (ENSEA)
- 6, avenue du Ponceau
- F-95014 CERGY CEDEX
-
- Tel : +33 130 736 245
- Fax : +33 130 736 667
- e-mail : reynal@ensea.fr
- jPicEdt web page : http://trashx.ensea.fr/jpicedt/
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.GraphicsEnvironment;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.RenderingHints;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextField;
-import javax.swing.border.EmptyBorder;
-import javax.swing.border.TitledBorder;
-
-import org.jabref.gui.JabRefDialog;
-import org.jabref.logic.l10n.Localization;
-
-/**
- * A font chooser widget.
- * @author Slava Pestov (jEdit), Sylvain Reynal
- * @since jpicedt 1.3.2.beta-9
- * @version $Id$
- *
- * $Log$
- * Revision 1.8 2007/07/19 01:35:35 coezbek
- * JabRef 2.4b1 Plug-In System established. Yeah!
- *
- * Revision 1.7 2006/04/26 08:46:57 kiar
- * fix dialog.show() deprecation messages, change build.xml
- *
- * Revision 1.6 2004/02/27 23:28:41 mortenalver
- * Some code tidying, no effect on behaviour (hopefully)
- *
- * Revision 1.5 2004/02/24 23:30:18 mortenalver
- * Added more translations, and started work on a Replace string feature
- *
- * Revision 1.4 2004/02/17 09:14:02 mortenalver
- * Similar update in Font selection preview.
- *
- * Revision 1.3 2004/02/17 07:35:22 mortenalver
- * Experimenting with antialiasing in table.
- *
- * Revision 1.2 2003/12/14 23:48:02 mortenalver
- * .
- *
- * Revision 1.1 2003/11/07 22:18:07 nbatada
- * modified it slightly from initial version
- *
- * Revision 1.1 2003/11/07 22:14:34 nbatada
- * modified it from initial version
- *
- * Revision 1.4 2003/11/02 01:51:06 reynal
- * Cleaned-up i18n labels
- *
- * Revision 1.3 2003/08/31 22:05:40 reynal
- *
- * Enhanced class interface for some widgets.
- *
-
- */
-
-
-///////////////////////////////////////////////////////////////////////////////
-
-public class FontSelectorDialog extends JabRefDialog {
-
- /**
- * For some reason the default Java fonts show up in the
- * list with .bold, .bolditalic, and .italic extensions.
- */
- private static final String[] HIDEFONTS = {".bold", ".italic"};
- private static final String PLAIN = "plain";
- private static final String BOLD = "bold";
- private static final String BOLD_ITALIC = "bold-italic";
-
- private static final String ITALIC = "italic";
-
- private static final String[] STYLES = {PLAIN, BOLD, ITALIC, BOLD_ITALIC};
-
- private static final String[] SIZES = {"9", "10", "12", "14", "16", "18", "24"};
- // private members
- private boolean isOK;
- private final JTextField familyField = new JTextField();
- private final JList familyList;
- private final JTextField sizeField = new JTextField();
- private final JList sizeList = new JList<>(SIZES);
- private final JTextField styleField = new JTextField();
- private final JList styleList = new JList<>(STYLES);
-
- private final JLabel preview;
-
-
- public FontSelectorDialog(Component comp, Font font) {
-
- super(JOptionPane.getFrameForComponent(comp), Localization.lang("Font selection"), true, FontSelectorDialog.class); //
- JPanel content = new JPanel(new BorderLayout());
- content.setBorder(new EmptyBorder(12, 12, 12, 12));
- setContentPane(content);
-
- JPanel listPanel = new JPanel(new GridLayout(1, 3, 6, 6));
-
- familyList = new JList<>(getFontList());
-
- JPanel familyPanel = createTextFieldAndListPanel(Localization.lang("Font family"), familyField, familyList);
- listPanel.add(familyPanel);
-
- JPanel sizePanel = createTextFieldAndListPanel(Localization.lang("Font size"), sizeField, sizeList);
- listPanel.add(sizePanel);
-
- JPanel stylePanel = createTextFieldAndListPanel(Localization.lang("Font style"), styleField, styleList);
- styleField.setEditable(false);
- listPanel.add(stylePanel);
-
- familyList.setSelectedValue(font.getFamily(), true);
- familyField.setText(font.getFamily());
- sizeList.setSelectedValue(String.valueOf(font.getSize()), true);
- sizeField.setText(String.valueOf(font.getSize()));
- styleList.setSelectedIndex(font.getStyle());
- styleField.setText(styleList.getSelectedValue());
-
- familyList.addListSelectionListener(evt -> {
- String family = familyList.getSelectedValue();
- if (family != null) {
- familyField.setText(family);
- }
- updatePreview();
- });
- sizeList.addListSelectionListener(evt -> {
- String size = sizeList.getSelectedValue();
- if (size != null) {
- sizeField.setText(size);
- }
- updatePreview();
- });
- styleList.addListSelectionListener(evt -> {
- String style = styleList.getSelectedValue();
- if (style != null) {
- styleField.setText(style);
- }
- updatePreview();
- });
-
- content.add(BorderLayout.NORTH, listPanel);
-
- /* --------------------------------------------------------
- | Experimental addition by Morten Alver. I want to |
- | enable antialiasing in the preview field, since I'm |
- | working on introducing this in the table view. |
- -------------------------------------------------------- */
- preview = new JLabel(Localization.lang("Font preview")) {
- @Override
- public void paint(Graphics g) {
- Graphics2D g2 = (Graphics2D) g;
- g2.setRenderingHint
- (RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- super.paint(g2);
- }
-
- };
-
- preview.setBorder(new TitledBorder(Localization.lang("Font preview")));
-
- updatePreview();
-
- Dimension prefSize = preview.getPreferredSize();
- prefSize.height = 50;
- preview.setPreferredSize(prefSize);
-
- content.add(BorderLayout.CENTER, preview);
-
- JPanel buttons = new JPanel();
- buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS));
- buttons.setBorder(new EmptyBorder(12, 0, 0, 0));
- buttons.add(Box.createGlue());
-
- JButton ok = new JButton(Localization.lang("OK"));
- ok.addActionListener(e -> {
- isOK = true;
- dispose();
- });
- getRootPane().setDefaultButton(ok);
- buttons.add(ok);
-
- buttons.add(Box.createHorizontalStrut(6));
-
- JButton cancel = new JButton(Localization.lang("Cancel"));
- cancel.addActionListener(e -> dispose());
- buttons.add(cancel);
-
- buttons.add(Box.createGlue());
-
- content.add(BorderLayout.SOUTH, buttons);
-
- pack();
- setLocationRelativeTo(JOptionPane.getFrameForComponent(comp));
- setVisible(true);
- }
-
- public Optional getSelectedFont() {
- if (!isOK) {
- return Optional.empty();
- }
-
- int size;
- try {
- size = Integer.parseInt(sizeField.getText());
- } catch (NumberFormatException e) {
- size = 14;
- }
-
- return Optional.of(new Font(familyField.getText(), styleList.getSelectedIndex(), size));
- }
-
- private static String[] getFontList() {
- try {
- String[] nameArray = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
- List nameList = new ArrayList<>(nameArray.length);
- for (String fontName : nameArray) {
- boolean hidden = false;
- for (String hiddenName : FontSelectorDialog.HIDEFONTS) {
- if (fontName.contains(hiddenName)) {
- hidden = true;
- break;
- }
- }
-
- if (!hidden) {
- nameList.add(fontName);
- }
- }
- String[] resultArray = new String[nameList.size()];
- return nameList.toArray(resultArray);
- } catch (SecurityException | IllegalArgumentException ex) {
- return new String[0];
- }
- }
-
- private static JPanel createTextFieldAndListPanel(String labelString, JTextField textField, JList list) {
- GridBagLayout layout = new GridBagLayout();
- JPanel panel = new JPanel(layout);
-
- GridBagConstraints cons = new GridBagConstraints();
- cons.gridx = cons.gridy = 0;
- cons.gridwidth = cons.gridheight = 1;
- cons.fill = GridBagConstraints.BOTH;
- cons.weightx = 1.0f;
-
- JLabel label = new JLabel(labelString);
- layout.setConstraints(label, cons);
- panel.add(label);
-
- cons.gridy = 1;
- Component vs = Box.createVerticalStrut(6);
- layout.setConstraints(vs, cons);
- panel.add(vs);
-
- cons.gridy = 2;
- layout.setConstraints(textField, cons);
- panel.add(textField);
-
- cons.gridy = 3;
- vs = Box.createVerticalStrut(6);
- layout.setConstraints(vs, cons);
- panel.add(vs);
-
- cons.gridy = 4;
- cons.gridheight = GridBagConstraints.REMAINDER;
- cons.weighty = 1.0f;
- JScrollPane scroller = new JScrollPane(list);
- layout.setConstraints(scroller, cons);
- panel.add(scroller);
-
- return panel;
- }
-
- private void updatePreview() {
- String family = familyField.getText();
- int size;
- try {
- size = Integer.parseInt(sizeField.getText());
- } catch (NumberFormatException e) {
- size = 14;
- }
- int style = styleList.getSelectedIndex();
- preview.setFont(new Font(family, style, size));
- }
-}
diff --git a/src/main/java/org/jabref/gui/preftabs/GeneralTab.java b/src/main/java/org/jabref/gui/preftabs/GeneralTab.java
index 0494758071d..705b35a7de5 100644
--- a/src/main/java/org/jabref/gui/preftabs/GeneralTab.java
+++ b/src/main/java/org/jabref/gui/preftabs/GeneralTab.java
@@ -19,6 +19,7 @@
import org.jabref.Globals;
import org.jabref.gui.DialogService;
import org.jabref.gui.help.HelpAction;
+import org.jabref.gui.util.DefaultTaskExecutor;
import org.jabref.logic.help.HelpFile;
import org.jabref.logic.l10n.Encodings;
import org.jabref.logic.l10n.Localization;
@@ -207,9 +208,9 @@ public void storeSettings() {
prefs.setShouldCollectTelemetry(shouldCollectTelemetry.isSelected());
if (prefs.getBoolean(JabRefPreferences.MEMORY_STICK_MODE) && !memoryStick.isSelected()) {
- dialogService.showInformationDialogAndWait(Localization.lang("Memory stick mode"),
+ DefaultTaskExecutor.runInJavaFXThread(()->dialogService.showInformationDialogAndWait(Localization.lang("Memory stick mode"),
Localization.lang("To disable the memory stick mode"
- + " rename or remove the jabref.xml file in the same folder as JabRef."));
+ + " rename or remove the jabref.xml file in the same folder as JabRef.")));
}
prefs.putBoolean(JabRefPreferences.MEMORY_STICK_MODE, memoryStick.isSelected());
prefs.putBoolean(JabRefPreferences.CONFIRM_DELETE, confirmDelete.isSelected());
@@ -230,10 +231,10 @@ public void storeSettings() {
Globals.prefs.setLanguageDependentDefaultValues();
// Warn about restart needed:
- dialogService.showWarningDialogAndWait(Localization.lang("Changed language settings"),
+ DefaultTaskExecutor.runInJavaFXThread(() -> dialogService.showWarningDialogAndWait(Localization.lang("Changed language settings"),
Localization.lang("You have changed the language setting.")
.concat(" ")
- .concat(Localization.lang("You must restart JabRef for this to come into effect.")));
+ .concat(Localization.lang("You must restart JabRef for this to come into effect."))));
}
}
@@ -244,8 +245,8 @@ public boolean validateSettings() {
DateTimeFormatter.ofPattern(timeStampFormat.getText());
} catch (IllegalArgumentException ex2) {
- dialogService.showErrorDialogAndWait(Localization.lang("Invalid date format"),
- Localization.lang("The chosen date format for new entries is not valid"));
+ DefaultTaskExecutor.runInJavaFXThread(() -> dialogService.showErrorDialogAndWait(Localization.lang("Invalid date format"),
+ Localization.lang("The chosen date format for new entries is not valid")));
return false;
}
diff --git a/src/main/java/org/jabref/gui/preftabs/NetworkTab.java b/src/main/java/org/jabref/gui/preftabs/NetworkTab.java
index 8db58a1e39e..fbff70a1b18 100644
--- a/src/main/java/org/jabref/gui/preftabs/NetworkTab.java
+++ b/src/main/java/org/jabref/gui/preftabs/NetworkTab.java
@@ -12,6 +12,7 @@
import javax.swing.JTextField;
import org.jabref.gui.DialogService;
+import org.jabref.gui.util.DefaultTaskExecutor;
import org.jabref.logic.l10n.Localization;
import org.jabref.logic.net.ProxyPreferences;
import org.jabref.logic.net.ProxyRegisterer;
@@ -161,11 +162,11 @@ public boolean validateSettings() {
if (!validSetting) {
if (validAuthenticationSetting) {
- dialogService.showErrorDialogAndWait(Localization.lang("Invalid setting"),
- Localization.lang("Please specify both hostname and port"));
+ DefaultTaskExecutor.runInJavaFXThread(() -> dialogService.showErrorDialogAndWait(Localization.lang("Invalid setting"),
+ Localization.lang("Please specify both hostname and port")));
} else {
- dialogService.showErrorDialogAndWait(Localization.lang("Invalid setting"),
- Localization.lang("Please specify both username and password"));
+ DefaultTaskExecutor.runInJavaFXThread(() -> dialogService.showErrorDialogAndWait(Localization.lang("Invalid setting"),
+ Localization.lang("Please specify both username and password")));
}
}
diff --git a/src/main/java/org/jabref/gui/preftabs/PreferencesDialog.java b/src/main/java/org/jabref/gui/preftabs/PreferencesDialog.java
index 75098d4a599..1980bf42a8b 100644
--- a/src/main/java/org/jabref/gui/preftabs/PreferencesDialog.java
+++ b/src/main/java/org/jabref/gui/preftabs/PreferencesDialog.java
@@ -27,7 +27,6 @@
import org.jabref.gui.JabRefDialog;
import org.jabref.gui.JabRefFrame;
import org.jabref.gui.keyboard.KeyBinder;
-import org.jabref.gui.maintable.MainTable;
import org.jabref.gui.util.DefaultTaskExecutor;
import org.jabref.gui.util.FileDialogConfiguration;
import org.jabref.logic.exporter.ExporterFactory;
@@ -172,13 +171,13 @@ public PreferencesDialog(JabRefFrame parent) {
prefs.importPreferences(fileName.get().toString());
updateAfterPreferenceChanges();
- frame.getDialogService().showWarningDialogAndWait(Localization.lang("Import preferences"),
- Localization.lang("You must restart JabRef for this to come into effect."));
+ DefaultTaskExecutor.runInJavaFXThread(() -> frame.getDialogService().showWarningDialogAndWait(Localization.lang("Import preferences"),
+ Localization.lang("You must restart JabRef for this to come into effect.")));
this.dispose();
} catch (JabRefException ex) {
LOGGER.warn(ex.getMessage(), ex);
- frame.getDialogService().showErrorDialogAndWait(Localization.lang("Import preferences"), ex);
+ DefaultTaskExecutor.runInJavaFXThread(() -> frame.getDialogService().showErrorDialogAndWait(Localization.lang("Import preferences"), ex));
}
}
});
@@ -187,21 +186,21 @@ public PreferencesDialog(JabRefFrame parent) {
e -> new PreferencesFilterDialog(new JabRefPreferencesFilter(prefs), null).setVisible(true));
resetPreferences.addActionListener(e -> {
- boolean resetPreferencesClicked = frame.getDialogService().showConfirmationDialogAndWait(Localization.lang("Reset preferences"),
+ boolean resetPreferencesClicked = DefaultTaskExecutor.runInJavaFXThread(() -> frame.getDialogService().showConfirmationDialogAndWait(Localization.lang("Reset preferences"),
Localization.lang("Are you sure you want to reset all settings to default values?"),
- Localization.lang("Reset preferences"), Localization.lang("Cancel"));
+ Localization.lang("Reset preferences"), Localization.lang("Cancel")));
if (resetPreferencesClicked) {
try {
prefs.clear();
new SharedDatabasePreferences().clear();
- frame.getDialogService().showWarningDialogAndWait(Localization.lang("Reset preferences"),
- Localization.lang("You must restart JabRef for this to come into effect."));
+ DefaultTaskExecutor.runInJavaFXThread(() -> frame.getDialogService().showWarningDialogAndWait(Localization.lang("Reset preferences"),
+ Localization.lang("You must restart JabRef for this to come into effect.")));
} catch (BackingStoreException ex) {
LOGGER.warn(ex.getMessage(), ex);
- frame.getDialogService().showErrorDialogAndWait(Localization.lang("Reset preferences"), ex);
+ DefaultTaskExecutor.runInJavaFXThread(() -> frame.getDialogService().showErrorDialogAndWait(Localization.lang("Reset preferences"), ex));
}
updateAfterPreferenceChanges();
}
@@ -248,7 +247,6 @@ private void storeAllSettings() {
Globals.prefs.flush();
setVisible(false);
- MainTable.updateRenderers();
GUIGlobals.updateEntryEditorColors();
frame.setupAllTables();
frame.output(Localization.lang("Preferences recorded."));
diff --git a/src/main/java/org/jabref/gui/preftabs/PreviewPrefsTab.java b/src/main/java/org/jabref/gui/preftabs/PreviewPrefsTab.java
index 5eab6420a78..51eba82eb90 100644
--- a/src/main/java/org/jabref/gui/preftabs/PreviewPrefsTab.java
+++ b/src/main/java/org/jabref/gui/preftabs/PreviewPrefsTab.java
@@ -24,7 +24,6 @@
import org.jabref.JabRefGUI;
import org.jabref.gui.BasePanel;
import org.jabref.gui.DialogService;
-import org.jabref.gui.FXDialogService;
import org.jabref.gui.PreviewPanel;
import org.jabref.gui.util.DefaultTaskExecutor;
import org.jabref.logic.citationstyle.CitationStyle;
@@ -125,7 +124,7 @@ private void setupLogic() {
try {
DefaultTaskExecutor.runInJavaFXThread(() -> {
- PreviewPanel testPane = new PreviewPanel(null, null, Globals.getKeyPrefs(), Globals.prefs.getPreviewPreferences(), new FXDialogService());
+ PreviewPanel testPane = new PreviewPanel(null, null, Globals.getKeyPrefs(), Globals.prefs.getPreviewPreferences(), dialogService);
testPane.setFixedLayout(layout.getText());
testPane.setEntry(TestEntry.getTestEntry());
@@ -139,9 +138,9 @@ private void setupLogic() {
} catch (StringIndexOutOfBoundsException exception) {
LOGGER.warn("Parsing error.", exception);
- dialogService.showErrorDialogAndWait(Localization.lang("Parsing error"),
+ DefaultTaskExecutor.runInJavaFXThread(()-> dialogService.showErrorDialogAndWait(Localization.lang("Parsing error"),
Localization.lang("Parsing error") + ": " + Localization.lang("illegal backslash expression"),
- exception);
+ exception));
}
});
diff --git a/src/main/java/org/jabref/gui/preftabs/TableColumnsTab.java b/src/main/java/org/jabref/gui/preftabs/TableColumnsTab.java
index 02aecc34061..03d493f268b 100644
--- a/src/main/java/org/jabref/gui/preftabs/TableColumnsTab.java
+++ b/src/main/java/org/jabref/gui/preftabs/TableColumnsTab.java
@@ -37,6 +37,7 @@
import org.jabref.gui.externalfiletype.ExternalFileType;
import org.jabref.gui.externalfiletype.ExternalFileTypes;
import org.jabref.gui.help.HelpAction;
+import org.jabref.gui.util.DefaultTaskExecutor;
import org.jabref.logic.help.HelpFile;
import org.jabref.logic.l10n.Localization;
import org.jabref.model.entry.BibtexSingleField;
@@ -704,10 +705,10 @@ public void storeSettings() {
(oldSyncKeyWords != newSyncKeyWords) ||
(oldWriteSpecialFields != newWriteSpecialFields);
if (restartRequired) {
- frame.getDialogService().showWarningDialogAndWait(Localization.lang("Changed special field settings"),
+ DefaultTaskExecutor.runInJavaFXThread(() -> frame.getDialogService().showWarningDialogAndWait(Localization.lang("Changed special field settings"),
Localization.lang("You have changed settings for special fields.")
.concat(" ")
- .concat(Localization.lang("You must restart JabRef for this to come into effect.")));
+ .concat(Localization.lang("You must restart JabRef for this to come into effect."))));
}
diff --git a/src/main/java/org/jabref/gui/renderer/CompleteRenderer.java b/src/main/java/org/jabref/gui/renderer/CompleteRenderer.java
deleted file mode 100644
index 8ff7fab5d16..00000000000
--- a/src/main/java/org/jabref/gui/renderer/CompleteRenderer.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.jabref.gui.renderer;
-
-import java.awt.Color;
-
-public class CompleteRenderer extends GeneralRenderer {
-
- public CompleteRenderer(Color color) {
- super(color);
- }
-
- public void setNumber(int number) {
- super.setValue(String.valueOf(number + 1));
- }
-
- @Override
- protected void setValue(Object value) {
- // do not support normal behaviour
- }
-}
diff --git a/src/main/java/org/jabref/gui/renderer/IncompleteRenderer.java b/src/main/java/org/jabref/gui/renderer/IncompleteRenderer.java
deleted file mode 100644
index d730eecff34..00000000000
--- a/src/main/java/org/jabref/gui/renderer/IncompleteRenderer.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.jabref.gui.renderer;
-
-import org.jabref.Globals;
-import org.jabref.logic.l10n.Localization;
-import org.jabref.preferences.JabRefPreferences;
-
-public class IncompleteRenderer extends GeneralRenderer {
-
- public IncompleteRenderer() {
- super(Globals.prefs.getColor(JabRefPreferences.INCOMPLETE_ENTRY_BACKGROUND));
- }
-
- public void setNumber(int number) {
- super.setValue(String.valueOf(number + 1));
- setToolTipText(Localization.lang("This entry is incomplete"));
- }
-
- @Override
- protected void setValue(Object value) {
- // do not support normal behaviour
- }
-}
diff --git a/src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java b/src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java
index d7416aba252..1f8bb920ccc 100644
--- a/src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java
+++ b/src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java
@@ -1,6 +1,5 @@
package org.jabref.gui.undo;
-import org.jabref.gui.BasePanel;
import org.jabref.logic.l10n.Localization;
import org.jabref.model.database.BibDatabase;
@@ -14,15 +13,12 @@ public class UndoablePreambleChange extends AbstractUndoableJabRefEdit {
private final BibDatabase base;
private final String oldValue;
private final String newValue;
- private final BasePanel panel;
-
- public UndoablePreambleChange(BibDatabase base, BasePanel panel,
+ public UndoablePreambleChange(BibDatabase base,
String oldValue, String newValue) {
this.base = base;
this.oldValue = oldValue;
this.newValue = newValue;
- this.panel = panel;
}
@Override
@@ -38,8 +34,6 @@ public void undo() {
// Revert the change.
base.setPreamble(oldValue);
- // If the preamble editor is open, update it.
- panel.updatePreamble();
}
@Override
@@ -49,9 +43,6 @@ public void redo() {
// Redo the change.
base.setPreamble(newValue);
- // If the preamble editor is open, update it.
- panel.updatePreamble();
-
}
}
diff --git a/src/main/java/org/jabref/gui/util/comparator/FirstColumnComparator.java b/src/main/java/org/jabref/gui/util/comparator/FirstColumnComparator.java
deleted file mode 100644
index 4de71f4c530..00000000000
--- a/src/main/java/org/jabref/gui/util/comparator/FirstColumnComparator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.jabref.gui.util.comparator;
-
-import java.util.Comparator;
-
-import org.jabref.logic.TypedBibEntry;
-import org.jabref.model.database.BibDatabaseContext;
-import org.jabref.model.entry.BibEntry;
-
-public class FirstColumnComparator implements Comparator {
-
- private final BibDatabaseContext database;
-
- public FirstColumnComparator(BibDatabaseContext database) {
- this.database = database;
- }
-
- @Override
- public int compare(BibEntry e1, BibEntry e2) {
- int score1 = 0;
- int score2 = 0;
-
- TypedBibEntry typedEntry1 = new TypedBibEntry(e1, database);
- TypedBibEntry typedEntry2 = new TypedBibEntry(e2, database);
- if (typedEntry1.hasAllRequiredFields()) {
- score1++;
- }
-
- if (typedEntry2.hasAllRequiredFields()) {
- score2++;
- }
-
- return score1 - score2;
- }
-
-}
diff --git a/src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java b/src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java
index 816544c1ff3..13790f1da4a 100644
--- a/src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java
+++ b/src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java
@@ -3,26 +3,20 @@
import java.util.Comparator;
import java.util.Optional;
-import org.jabref.model.entry.BibEntry;
-import org.jabref.model.entry.specialfields.SpecialField;
+import org.jabref.gui.specialfields.SpecialFieldValueViewModel;
/**
- * Comparator that handles the ranking icon column
+ * Comparator for rankings.
*
- * Based on IconComparator
- * Only comparing ranking field
- * inverse comparison of ranking as rank5 is higher than rank1
+ * Inverse comparison of ranking as rank5 is higher than rank1
*/
-public class RankingFieldComparator implements Comparator {
+public class RankingFieldComparator implements Comparator> {
@Override
- public int compare(BibEntry e1, BibEntry e2) {
- Optional val1 = e1.getField(SpecialField.RANKING.getFieldName());
- Optional val2 = e2.getField(SpecialField.RANKING.getFieldName());
+ public int compare(Optional val1, Optional val2) {
if (val1.isPresent()) {
if (val2.isPresent()) {
- // val1 is not null AND val2 is not null
- int compareToRes = val1.get().compareTo(val2.get());
+ int compareToRes = val1.get().getValue().compareTo(val2.get().getValue());
if (compareToRes == 0) {
return 0;
} else {
diff --git a/src/main/java/org/jabref/logic/bibtex/FieldContentParser.java b/src/main/java/org/jabref/logic/bibtex/FieldContentParser.java
index 43c05b1a2fd..e2c3b09223b 100644
--- a/src/main/java/org/jabref/logic/bibtex/FieldContentParser.java
+++ b/src/main/java/org/jabref/logic/bibtex/FieldContentParser.java
@@ -28,6 +28,7 @@ public FieldContentParser(FieldContentParserPreferences prefs) {
multiLineFields = new HashSet<>();
// the following two are also coded in org.jabref.logic.bibtex.LatexFieldFormatter.format(String, String)
multiLineFields.add(FieldName.ABSTRACT);
+ multiLineFields.add(FieldName.COMMENT);
multiLineFields.add(FieldName.REVIEW);
// the file field should not be formatted, therefore we treat it as a multi line field
multiLineFields.addAll(prefs.getNonWrappableFields());
diff --git a/src/main/java/org/jabref/logic/exporter/SaveException.java b/src/main/java/org/jabref/logic/exporter/SaveException.java
index e26ceec5973..88ef9693aed 100644
--- a/src/main/java/org/jabref/logic/exporter/SaveException.java
+++ b/src/main/java/org/jabref/logic/exporter/SaveException.java
@@ -24,6 +24,11 @@ public SaveException(String message) {
entry = null;
}
+ public SaveException(String message, Throwable exception) {
+ super(message, exception);
+ entry = null;
+ }
+
public SaveException(String message, String localizedMessage) {
super(message);
this.localizedMessage = localizedMessage;
diff --git a/src/main/java/org/jabref/logic/l10n/Languages.java b/src/main/java/org/jabref/logic/l10n/Languages.java
index 8098f4402f7..566e9216b5e 100644
--- a/src/main/java/org/jabref/logic/l10n/Languages.java
+++ b/src/main/java/org/jabref/logic/l10n/Languages.java
@@ -32,6 +32,7 @@ public class Languages {
LANGUAGES.put("Turkish", "tr");
LANGUAGES.put("Vietnamese", "vi");
LANGUAGES.put("ελληνικά", "el");
+ LANGUAGES.put("Tagalog/Filipino", "tl");
}
private Languages() {
diff --git a/src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java b/src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java
index 50964ab256f..d18e48b1176 100644
--- a/src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java
+++ b/src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java
@@ -17,7 +17,6 @@
import org.jabref.model.entry.Month;
import org.jabref.model.strings.StringUtil;
-import com.microsoft.applicationinsights.agent.internal.common.StringUtils;
import org.apache.xmpbox.DateConverter;
import org.apache.xmpbox.schema.DublinCoreSchema;
@@ -108,7 +107,7 @@ private void extractAbstract() {
*/
private void extractDOI() {
String identifier = dcSchema.getIdentifier();
- if (!StringUtils.isNullOrEmpty(identifier)) {
+ if (!StringUtil.isNullOrEmpty(identifier)) {
bibEntry.setField(FieldName.DOI, identifier);
}
}
@@ -157,7 +156,7 @@ private void extractBibTexFields() {
*/
private void extractRights() {
String rights = dcSchema.getRights();
- if (!StringUtils.isNullOrEmpty(rights)) {
+ if (!StringUtil.isNullOrEmpty(rights)) {
bibEntry.setField("rights", rights);
}
}
@@ -170,7 +169,7 @@ private void extractRights() {
*/
private void extractSource() {
String source = dcSchema.getSource();
- if (!StringUtils.isNullOrEmpty(source)) {
+ if (!StringUtil.isNullOrEmpty(source)) {
bibEntry.setField("source", source);
}
}
@@ -210,7 +209,7 @@ private void extractType() {
List types = dcSchema.getTypes();
if ((types != null) && !types.isEmpty()) {
String type = types.get(0);
- if (!StringUtils.isNullOrEmpty(type)) {
+ if (!StringUtil.isNullOrEmpty(type)) {
bibEntry.setType(type);
}
}
diff --git a/src/main/java/org/jabref/model/entry/Month.java b/src/main/java/org/jabref/model/entry/Month.java
index 5c50e1fd877..ae06cae02c3 100644
--- a/src/main/java/org/jabref/model/entry/Month.java
+++ b/src/main/java/org/jabref/model/entry/Month.java
@@ -1,9 +1,15 @@
package org.jabref.model.entry;
+import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
+import java.util.Locale;
import java.util.Optional;
import org.jabref.model.strings.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+
/**
* Represents a Month of the Year.
*/
@@ -84,11 +90,17 @@ public static Optional parse(String value) {
if (testString.length() > 3) {
testString = testString.substring(0, 3);
}
+
Optional month = Month.getMonthByShortName(testString);
if (month.isPresent()) {
return month;
}
+ month = Month.parseGermanShortMonth(testString);
+ if (month.isPresent()) {
+ return month;
+ }
+
try {
int number = Integer.parseInt(value);
return Month.getMonthByNumber(number);
@@ -97,6 +109,29 @@ public static Optional parse(String value) {
}
}
+ /**
+ * Parses a month having the string in German standard form such as
+ * "Oktober" or in German short form such as "Okt"
+ *
+ * @param value,
+ * a String that represents a month in German form
+ * @return the corresponding month instance, empty if input is not in German
+ * form
+ */
+ private static Optional parseGermanShortMonth(String value) {
+ if ("Mae".equalsIgnoreCase(value) || "Maerz".equalsIgnoreCase(value) || "Mär".equalsIgnoreCase(value)) {
+ return Month.getMonthByNumber(3);
+ }
+
+ try {
+ YearMonth yearMonth = YearMonth.parse("1969-" + StringUtils.capitalize(value),
+ DateTimeFormatter.ofPattern("yyyy-MMM", Locale.GERMAN));
+ return Month.getMonthByNumber(yearMonth.getMonthValue());
+ } catch (DateTimeParseException e) {
+ return Optional.empty();
+ }
+ }
+
/**
* Returns the name of a Month in a short (3-letter) format. (jan, feb, mar, ...)
*
diff --git a/src/main/java/org/jabref/preferences/JabRefPreferences.java b/src/main/java/org/jabref/preferences/JabRefPreferences.java
index f8f918a41e3..f4fda131aee 100644
--- a/src/main/java/org/jabref/preferences/JabRefPreferences.java
+++ b/src/main/java/org/jabref/preferences/JabRefPreferences.java
@@ -201,33 +201,12 @@ public class JabRefPreferences implements PreferencesService {
public static final String PREFER_URL_DOI = "preferUrlDoi";
public static final String URL_COLUMN = "urlColumn";
// Colors
- public static final String TABLE_COLOR_CODES_ON = "tableColorCodesOn";
- public static final String TABLE_RESOLVED_COLOR_CODES_ON = "tableResolvedColorCodesOn";
- public static final String INCOMPLETE_ENTRY_BACKGROUND = "incompleteEntryBackground";
public static final String FIELD_EDITOR_TEXT_COLOR = "fieldEditorTextColor";
public static final String ACTIVE_FIELD_EDITOR_BACKGROUND_COLOR = "activeFieldEditorBackgroundColor";
public static final String INVALID_FIELD_BACKGROUND_COLOR = "invalidFieldBackgroundColor";
public static final String VALID_FIELD_BACKGROUND_COLOR = "validFieldBackgroundColor";
- public static final String MARKED_ENTRY_BACKGROUND5 = "markedEntryBackground5";
- public static final String MARKED_ENTRY_BACKGROUND4 = "markedEntryBackground4";
- public static final String MARKED_ENTRY_BACKGROUND3 = "markedEntryBackground3";
- public static final String MARKED_ENTRY_BACKGROUND2 = "markedEntryBackground2";
- public static final String MARKED_ENTRY_BACKGROUND1 = "markedEntryBackground1";
- public static final String MARKED_ENTRY_BACKGROUND0 = "markedEntryBackground0";
- public static final String VERY_GRAYED_OUT_TEXT = "veryGrayedOutText";
- public static final String VERY_GRAYED_OUT_BACKGROUND = "veryGrayedOutBackground";
- public static final String GRAYED_OUT_TEXT = "grayedOutText";
- public static final String GRAYED_OUT_BACKGROUND = "grayedOutBackground";
- public static final String GRID_COLOR = "gridColor";
- public static final String TABLE_TEXT = "tableText";
- public static final String TABLE_OPT_FIELD_BACKGROUND = "tableOptFieldBackground";
- public static final String TABLE_REQ_FIELD_BACKGROUND = "tableReqFieldBackground";
- public static final String TABLE_RESOLVED_FIELD_BACKGROUND = "tableResolvedFieldBackground";
- public static final String TABLE_BACKGROUND = "tableBackground";
public static final String ICON_ENABLED_COLOR = "iconEnabledColor";
public static final String ICON_DISABLED_COLOR = "iconDisabledColor";
- public static final String TABLE_SHOW_GRID = "tableShowGrid";
- public static final String TABLE_ROW_PADDING = "tableRowPadding";
public static final String MENU_FONT_SIZE = "menuFontSize";
public static final String OVERRIDE_DEFAULT_FONTS = "overrideDefaultFonts";
public static final String FONT_SIZE = "fontSize";
@@ -512,8 +491,6 @@ private JabRefPreferences() {
defaults.put(WINDOW_MAXIMISED, Boolean.FALSE);
defaults.put(AUTO_RESIZE_MODE, Boolean.TRUE);
defaults.put(ENTRY_EDITOR_HEIGHT, 0.65);
- defaults.put(TABLE_COLOR_CODES_ON, Boolean.FALSE);
- defaults.put(TABLE_RESOLVED_COLOR_CODES_ON, Boolean.FALSE);
defaults.put(NAMES_AS_IS, Boolean.FALSE); // "Show names unchanged"
defaults.put(NAMES_FIRST_LAST, Boolean.FALSE); // "Show 'Firstname Lastname'"
defaults.put(NAMES_NATBIB, Boolean.TRUE); // "Natbib style"
@@ -615,25 +592,7 @@ private JabRefPreferences() {
defaults.put(MENU_FONT_SIZE, UNSET_MENU_FONT_SIZE);
defaults.put(ICON_SIZE_LARGE, 24);
defaults.put(ICON_SIZE_SMALL, 16);
- defaults.put(TABLE_ROW_PADDING, 9);
- defaults.put(TABLE_SHOW_GRID, Boolean.FALSE);
// Main table color settings:
- defaults.put(TABLE_BACKGROUND, "255:255:255");
- defaults.put(TABLE_REQ_FIELD_BACKGROUND, "230:235:255");
- defaults.put(TABLE_OPT_FIELD_BACKGROUND, "230:255:230");
- defaults.put(TABLE_RESOLVED_FIELD_BACKGROUND, "240:240:240");
- defaults.put(TABLE_TEXT, "0:0:0");
- defaults.put(GRID_COLOR, "210:210:210");
- defaults.put(GRAYED_OUT_BACKGROUND, "210:210:210");
- defaults.put(GRAYED_OUT_TEXT, "40:40:40");
- defaults.put(VERY_GRAYED_OUT_BACKGROUND, "180:180:180");
- defaults.put(VERY_GRAYED_OUT_TEXT, "40:40:40");
- defaults.put(MARKED_ENTRY_BACKGROUND0, "255:255:180");
- defaults.put(MARKED_ENTRY_BACKGROUND1, "255:220:180");
- defaults.put(MARKED_ENTRY_BACKGROUND2, "255:180:160");
- defaults.put(MARKED_ENTRY_BACKGROUND3, "255:120:120");
- defaults.put(MARKED_ENTRY_BACKGROUND4, "255:75:75");
- defaults.put(MARKED_ENTRY_BACKGROUND5, "220:255:220");
defaults.put(VALID_FIELD_BACKGROUND_COLOR, "255:255:255");
defaults.put(INVALID_FIELD_BACKGROUND_COLOR, "255:0:0");
defaults.put(ACTIVE_FIELD_EDITOR_BACKGROUND_COLOR, "220:220:255");
@@ -643,8 +602,6 @@ private JabRefPreferences() {
defaults.put(ICON_ENABLED_COLOR, "0:0:0");
defaults.put(ICON_DISABLED_COLOR, "200:200:200");
- defaults.put(INCOMPLETE_ENTRY_BACKGROUND, "250:175:175");
-
defaults.put(URL_COLUMN, Boolean.TRUE);
defaults.put(PREFER_URL_DOI, Boolean.FALSE);
defaults.put(FILE_COLUMN, Boolean.TRUE);
@@ -1782,7 +1739,6 @@ public ColumnPreferences getColumnPreferences() {
public MainTablePreferences getMainTablePreferences() {
return new MainTablePreferences(
- getBoolean(TABLE_SHOW_GRID),
getColumnPreferences(),
getBoolean(AUTO_RESIZE_MODE));
}
diff --git a/src/main/resources/l10n/JabRef_da.properties b/src/main/resources/l10n/JabRef_da.properties
index 14c572510e3..3e969a02fa7 100644
--- a/src/main/resources/l10n/JabRef_da.properties
+++ b/src/main/resources/l10n/JabRef_da.properties
@@ -1576,6 +1576,8 @@ Existing\ file=Eksisterende fil
+
+
diff --git a/src/main/resources/l10n/JabRef_de.properties b/src/main/resources/l10n/JabRef_de.properties
index d395de8298b..9f423eba2f9 100644
--- a/src/main/resources/l10n/JabRef_de.properties
+++ b/src/main/resources/l10n/JabRef_de.properties
@@ -149,6 +149,7 @@ Broken\ link=Ungültiger Link
Browse=Durchsuchen
by=durch
+The\ conflicting\ fields\ of\ these\ entries\ will\ be\ merged\ into\ the\ 'Comment'\ field.=Die in Konflikt stehenden Felder dieser Einträge werden im Feld "Comment" zusammengeführt.
Cancel=Abbrechen
@@ -211,6 +212,7 @@ Color\ for\ marking\ incomplete\ entries=Farbe zum Markieren unvollständiger Ei
Column\ width=Spaltenbreite
Command\ line\ id=Kommandozeilen ID
+Comments=Kommentare
Contained\ in=Enthalten in
@@ -386,6 +388,7 @@ Edit\ entry=Eintrag bearbeiten
Save\ file=Datei speichern
Edit\ file\ type=Dateityp bearbeiten
+Add\ group=Gruppe hinzufügen
Edit\ group=Gruppe bearbeiten
@@ -559,6 +562,7 @@ Get\ fulltext=Hole Volltext
Gray\ out\ non-hits=Nicht-Treffer grau einfärben
Groups=Gruppen
+has/have\ both\ a\ 'Comment'\ and\ a\ 'Review'\ field.=hat/haben sowohl ein 'Comment' und ein 'Review' Feld.
Have\ you\ chosen\ the\ correct\ package\ path?=Habe Sie den richtigen Klassenpfad gewählt?
@@ -716,6 +720,7 @@ Memory\ stick\ mode=Memory Stick-Modus
Menu\ and\ label\ font\ size=Schriftgröße in Menüs
Merged\ external\ changes=Externe Änderungen eingefügt
+Merge\ fields=Felder zusammenführen
Messages=Mitteilungen
@@ -993,6 +998,8 @@ Replace\ string=String ersetzen
Replace\ with=Ersetzen durch
+Replace\ Unicode\ ligatures=Unicode-Ligaturen ersetzen
+Replaces\ Unicode\ ligatures\ with\ their\ expanded\ form=Unicode-Ligaturen durch ihre erweiterte Form ersetzen
Replaced=Ersetzt\:
@@ -1006,6 +1013,7 @@ Resolve\ strings\ for\ standard\ BibTeX\ fields\ only=Strings nur für Standard-
resolved=davon aufgelöst
Review=Überprüfung
Review\ changes=Änderungen überprüfen
+Review\ Field\ Migration=Review-Feld Migration
Right=Rechts
@@ -1095,8 +1103,10 @@ Show\ required\ fields=Benötigte Felder anzeigen
Show\ URL/DOI\ column=URL/DOI-Spalte anzeigen
+Show\ validation\ messages=Validierungsnachrichten anzeigen
Simple\ HTML=Einfaches HTML
+Since\ the\ 'Review'\ field\ was\ deprecated\ in\ JabRef\ 4.2,\ these\ two\ fields\ are\ about\ to\ be\ merged\ into\ the\ 'Comment'\ field.=Da das Feld 'Review' in JabRef 4.2 als veraltet gekennzeichnet wurde, werden die Inhalte der beiden Felder im Feld 'Comment' zusammengeführt.
Size=Größe
@@ -1730,6 +1740,7 @@ Unmarked\ all\ entries=Markierung für alle Einträge aufgehoben
Unable\ to\ find\ the\ requested\ look\ and\ feel\ and\ thus\ the\ default\ one\ is\ used.=Look and feel konnte nicht gefunden werden, stattdessen wird der Standard verwendet.
Opens\ JabRef's\ GitHub\ page=Öffnet JabRefs GitHub-Seite
+Opens\ JabRef's\ Twitter\ page=Öffnet JabRefs Twitter-Seite
Opens\ JabRef's\ Facebook\ page=Öffnet JabRefs Facebookseite
Opens\ JabRef's\ blog=Öffnet JabRefs Blog
Opens\ JabRef's\ website=Öffnet JabRefs Webseite
@@ -1873,6 +1884,7 @@ value=Wert
Show\ preferences=Zeige Einstellungen
Save\ actions=Speicheraktionen
Enable\ save\ actions=Speicheraktionen aktivieren
+Convert\ to\ BibTeX\ format\ (for\ example,\ move\ the\ value\ of\ the\ 'journaltitle'\ field\ to\ 'journal')=Ins BibTeX-Format konvertieren (verschiebe beispielsweise den Wert des Felds 'journaltitle' in das Feld 'journal')
Other\ fields=Andere Felder
Show\ remaining\ fields=Zeige übrige Felder
@@ -2332,5 +2344,12 @@ Could\ not\ retrieve\ entry\ data\ from\ '%0'.=Konnte Daten von '%0' nicht abruf
Entry\ from\ %0\ could\ not\ be\ parsed.=Eintrag von %0 konnte nicht analysiert werden.
Invalid\ identifier\:\ '%0'.=Ungültige Kennung\: "%0".
This\ paper\ has\ been\ withdrawn.=Dieses Paper wurde zurückgezogen.
+Finished\ writing\ XMP-metadata.=XMP-Metadaten schreiben abgeschlossen.
empty\ BibTeX\ key=Leerer BibTeX-Key
+Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Ihre Java Laufzeitumgebung befindet sich in %0.
+Aux\ file=Aux-Datei
+Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Gruppe mit Einträgen die in einer vorhanden Tex-Datei zitiert worden sind
+
+Any\ file=Beliebige Datei
+
diff --git a/src/main/resources/l10n/JabRef_el.properties b/src/main/resources/l10n/JabRef_el.properties
index f6b6e36061d..0babcb69581 100644
--- a/src/main/resources/l10n/JabRef_el.properties
+++ b/src/main/resources/l10n/JabRef_el.properties
@@ -799,6 +799,8 @@ Connect=Σύνδεση
+
+
diff --git a/src/main/resources/l10n/JabRef_en.properties b/src/main/resources/l10n/JabRef_en.properties
index b6efc53008b..f4425058d57 100644
--- a/src/main/resources/l10n/JabRef_en.properties
+++ b/src/main/resources/l10n/JabRef_en.properties
@@ -702,6 +702,7 @@ Memory\ stick\ mode=Memory stick mode
Menu\ and\ label\ font\ size=Menu and label font size
Merged\ external\ changes=Merged external changes
+Merge\ fields=Merge fields
Messages=Messages
@@ -2325,6 +2326,11 @@ empty\ BibTeX\ key=empty BibTeX key
Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Your Java Runtime Environment is located at %0.
Aux\ file=Aux file
Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Group containing entries cited in a given TeX file
+
+Any\ file=Any file
+
+No\ linked\ files\ found\ for\ export.=No linked files found for export.
+
Delete\ Entry=Delete Entry
Import\ &\ Export=Import & Export
Look\ up\ document\ identifier=Look up document identifier
@@ -2351,3 +2357,7 @@ Error\ pushing\ entries=Error pushing entries
Undefined\ character\ format=Undefined character format
Undefined\ paragraph\ format=Undefined paragraph format
+
+Any\ file=Any file
+
+No\ linked\ files\ found\ for\ export.=No linked files found for export.
diff --git a/src/main/resources/l10n/JabRef_es.properties b/src/main/resources/l10n/JabRef_es.properties
index 213de61369b..ebb660a52a1 100644
--- a/src/main/resources/l10n/JabRef_es.properties
+++ b/src/main/resources/l10n/JabRef_es.properties
@@ -210,6 +210,7 @@ Color\ for\ marking\ incomplete\ entries=Color para marcar entradas incompletas
Column\ width=Ancho de columna
Command\ line\ id=Id de línea de comando
+Comments=Comentarios
Contained\ in=Contenido en
@@ -385,6 +386,7 @@ Edit\ entry=Editar entrada
Save\ file=Editar enlace a archivo
Edit\ file\ type=Editar tipo de archivo
+Add\ group=Añadir grupo
Edit\ group=Editar grupo
@@ -422,6 +424,7 @@ Entry\ type\ names\ are\ not\ allowed\ to\ contain\ white\ space\ or\ the\ follo
Entry\ types=Tipos de entrada
+Error=Error
Error\ exporting\ to\ clipboard=Error exportando al portapapeles
Error\ occurred\ when\ parsing\ entry=Ocurrió un error al analizar la entrada
@@ -496,6 +499,7 @@ Files\ opened=Archivos abiertos
Filter=Filtro
+Filter\ All=Filtrar todos
Finished\ automatically\ setting\ external\ links.=Se ha finalizado la configuración automática de enlaces esternos.
@@ -532,6 +536,7 @@ found\ in\ AUX\ file=encontrado en archivo AUX
Full\ name=Nombre completo
+General=General
General\ fields=Generar campos
@@ -743,6 +748,7 @@ nested\ AUX\ files=Archivos AUX anidados
New=Nuevo
+new=nuevo
New\ BibTeX\ entry=Nueva entrada BibTeX
@@ -977,6 +983,7 @@ Removed\ string=Cadena eliminada
Renamed\ string=Cadena renombrada
+Replace=Reemplazar
Replace\ (regular\ expression)=Reemplazar (Expresión regular)
@@ -1716,6 +1723,7 @@ Unmarked\ all\ entries=Desmarcar todas las entradas
Unable\ to\ find\ the\ requested\ look\ and\ feel\ and\ thus\ the\ default\ one\ is\ used.=No se puede encontrar el aspecto solicitado, por lo que se usará el aspecto por defecto
Opens\ JabRef's\ GitHub\ page=Abrir la página de JabRef en GitHub
+Opens\ JabRef's\ Twitter\ page=Abrir la página de JabRef en Twitter
Opens\ JabRef's\ Facebook\ page=Abrir Facebook de JabRef
Opens\ JabRef's\ blog=Abrir el blog de JabRef
Opens\ JabRef's\ website=Abrir el sitio web de JabRef
@@ -1966,6 +1974,7 @@ Determined\ %0\ for\ %1\ entries=Se ha determinado %0 para %1 entradas
Look\ up\ %0=Buscar %0
Looking\ up\ %0...\ -\ entry\ %1\ out\ of\ %2\ -\ found\ %3=Buscando %0 - Entrada %1 de %2 - encontrado %0
+Audio\ CD=CD de audio
British\ patent=Patente británica
British\ patent\ request=Solicitud de patente británica
Candidate\ thesis=Tesis de Candidato
@@ -2184,6 +2193,7 @@ Author=Autor
Date=Fecha
File\ annotations=Anotaciones de fichero
Show\ file\ annotations=Mostrar anotaciones de fichero
+Adobe\ Acrobat\ Reader=Adobe Acrobat Reader
shared=compartido
should\ contain\ an\ integer\ or\ a\ literal=debería contener un entero o un literal
should\ have\ the\ first\ letter\ capitalized=debería tener la primera letra mayúscula
@@ -2221,6 +2231,7 @@ Do\ you\ want\ to\ recover\ the\ library\ from\ the\ backup\ file?=¿Quiere recu
Firstname\ Lastname=Nombre Apellido
Recommended\ for\ %0=Recomendado para %0
+Show\ 'Related\ Articles'\ tab=Ver ficha de 'Artículos relacionados'
This\ might\ be\ caused\ by\ reaching\ the\ traffic\ limitation\ of\ Google\ Scholar\ (see\ 'Help'\ for\ details).=Esto puede ser debido a alcanzar el límite de tráfico de GoogleScholar (vea la 'Ayuda' para más detalles)
Could\ not\ open\ website.=No se puede abrir el sitio web
@@ -2253,6 +2264,7 @@ Size\ of\ large\ icons=Tamaño de iconos grandes
Size\ of\ small\ icons=Tamaño de iconos pequeños
Default\ table\ font\ size=Tamaño de fuente por defecto para tabla
Escape\ underscores=Escapar guiones bajos
+Color=Color
Please\ also\ add\ all\ steps\ to\ reproduce\ this\ issue,\ if\ possible.=Por favor, añada los pasos para reproducir el problema si fuera posible
Fit\ width=Ajustar ancho
Fit\ a\ single\ page=Ajustar a una página
@@ -2273,10 +2285,23 @@ Don't\ share=No compartir
Share\ anonymous\ statistics=Compartir estadísticas anónimas
Telemetry\:\ Help\ make\ JabRef\ better=Telemetría\: Ayude a mejorar JabRef
To\ improve\ the\ user\ experience,\ we\ would\ like\ to\ collect\ anonymous\ statistics\ on\ the\ features\ you\ use.\ We\ will\ only\ record\ what\ features\ you\ access\ and\ how\ often\ you\ do\ it.\ We\ will\ neither\ collect\ any\ personal\ data\ nor\ the\ content\ of\ bibliographic\ items.\ If\ you\ choose\ to\ allow\ data\ collection,\ you\ can\ later\ disable\ it\ via\ Options\ ->\ Preferences\ ->\ General.=Para mejorar la experiencia de usuario, nos gustaría recopilar estadísitcas anónimas sobre las funcionalidades de JabRef que usa. Sólo se registrará qué funcionalidades emplea y con qué frecuencia. No se recopilará ningún dato personal ni el contenido de los elementos bibliográficos. Si decide permitir la recopilación de datos, podrá deshabilitarlo posteriormente en Opciones -> Preferencias ->General
+Names\ are\ not\ in\ the\ standard\ %0\ format.=Los nombres no tienen el formato estándar
+
+Delete\ the\ selected\ file\ permanently\ from\ disk,\ or\ just\ remove\ the\ file\ from\ the\ entry?\ Pressing\ Delete\ will\ delete\ the\ file\ permanently\ from\ disk.=¿Borrar el archivo seleccionado del disco duro o solamente quitarlo de la entrada? Presionar el botón de eliminara, borrará el archivo del disco duro permanentemente.
+Delete\ '%0'=Borrar archivo '%0'
+Delete\ from\ disk=Borrar del disco duro
+Remove\ from\ entry=Quitar de la entrada
+The\ group\ name\ contains\ the\ keyword\ separator\ "%0"\ and\ thus\ probably\ does\ not\ work\ as\ expected.=El nombre del grupo contiene el separador "%0" y es posible que no funcione como esperado.
+There\ exists\ already\ a\ group\ with\ the\ same\ name.=Ya existe un grupo con el mismo nombre.
+
+Copy\ linked\ files\ to\ folder...=Copiando archivos enlazados a carpeta...
+Copied\ file\ successfully=Archivos copiados con éxito
+Copying\ files...=Copiando archivos...
+Copying\ file\ %0\ of\ entry\ %1=Copiando archivo %0 de entrada %1
+Finished\ copying=Terminó de copiar
+Could\ not\ copy\ file=No se pudo copiar el archivo
+empty\ BibTeX\ key=vaciar clave BibTeX
-
-empty\ BibTeX\ key=vaciar clave BibTeX
-
diff --git a/src/main/resources/l10n/JabRef_fa.properties b/src/main/resources/l10n/JabRef_fa.properties
index 6d621c33370..d00d259998c 100644
--- a/src/main/resources/l10n/JabRef_fa.properties
+++ b/src/main/resources/l10n/JabRef_fa.properties
@@ -722,6 +722,8 @@ Unabbreviate\ journal\ names=برداشتن مخفف نام ژورنالها
+
+
diff --git a/src/main/resources/l10n/JabRef_fr.properties b/src/main/resources/l10n/JabRef_fr.properties
index c163683b578..cf10a0ae158 100644
--- a/src/main/resources/l10n/JabRef_fr.properties
+++ b/src/main/resources/l10n/JabRef_fr.properties
@@ -720,6 +720,7 @@ Memory\ stick\ mode=Mode clef mémoire
Menu\ and\ label\ font\ size=Taille de police pour les menus et les champs
Merged\ external\ changes=Fusionner les modifications externes
+Merge\ fields=Fusionner les champs
Messages=Messages
@@ -2349,3 +2350,7 @@ Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Votre environnement d’e
Aux\ file=Fichier aux
Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Groupe contenant les entrées citées dans un fichier TeX spécifique
+Any\ file=N’importe quel fichier
+
+No\ linked\ files\ found\ for\ export.=Aucun fichier lié trouvé pour l'exportation.
+
diff --git a/src/main/resources/l10n/JabRef_in.properties b/src/main/resources/l10n/JabRef_in.properties
index 08fba6bcfa9..f41a221c28f 100644
--- a/src/main/resources/l10n/JabRef_in.properties
+++ b/src/main/resources/l10n/JabRef_in.properties
@@ -2333,3 +2333,5 @@ Invalid\ identifier\:\ '%0'.=Pengenal tidak valid\: ' % 0 '.
This\ paper\ has\ been\ withdrawn.=Makalah ini telah ditarik.
empty\ BibTeX\ key=kosongkan tombol BibTeX
+
+
diff --git a/src/main/resources/l10n/JabRef_it.properties b/src/main/resources/l10n/JabRef_it.properties
index 9ea5c66699d..67892000b1c 100644
--- a/src/main/resources/l10n/JabRef_it.properties
+++ b/src/main/resources/l10n/JabRef_it.properties
@@ -2296,3 +2296,5 @@ There\ exists\ already\ a\ group\ with\ the\ same\ name.=Esiste già almeno un g
empty\ BibTeX\ key=chiave BibTeX vuota
+
+
diff --git a/src/main/resources/l10n/JabRef_ja.properties b/src/main/resources/l10n/JabRef_ja.properties
index 66f6e627da2..e35d500c7bd 100644
--- a/src/main/resources/l10n/JabRef_ja.properties
+++ b/src/main/resources/l10n/JabRef_ja.properties
@@ -720,6 +720,7 @@ Memory\ stick\ mode=メモリースティックモード
Menu\ and\ label\ font\ size=メニューとラベルのフォント寸法
Merged\ external\ changes=外部からの変更を統合しました
+Merge\ fields=フィールドをマージ
Messages=メッセージ
@@ -2349,3 +2350,6 @@ Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=お使いのJava Runtime
Aux\ file=auxファイル
Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=特定のTeXファイルでの引用項目を集めたグループ
+Any\ file=任意のファイル
+
+
diff --git a/src/main/resources/l10n/JabRef_nl.properties b/src/main/resources/l10n/JabRef_nl.properties
index 332b676b58b..11659a4ae4e 100644
--- a/src/main/resources/l10n/JabRef_nl.properties
+++ b/src/main/resources/l10n/JabRef_nl.properties
@@ -1276,6 +1276,8 @@ Connect=Verbinden
+
+
diff --git a/src/main/resources/l10n/JabRef_no.properties b/src/main/resources/l10n/JabRef_no.properties
index 0e729abc017..849e5ccd195 100644
--- a/src/main/resources/l10n/JabRef_no.properties
+++ b/src/main/resources/l10n/JabRef_no.properties
@@ -1568,6 +1568,8 @@ Connect=Koble til
+
+
diff --git a/src/main/resources/l10n/JabRef_pt_BR.properties b/src/main/resources/l10n/JabRef_pt_BR.properties
index 1a449faa984..eab79f59392 100644
--- a/src/main/resources/l10n/JabRef_pt_BR.properties
+++ b/src/main/resources/l10n/JabRef_pt_BR.properties
@@ -1851,3 +1851,5 @@ Show\ document\ viewer=Mostrar visualizador de documentos
+
+
diff --git a/src/main/resources/l10n/JabRef_ru.properties b/src/main/resources/l10n/JabRef_ru.properties
index cec39ed82db..6849d5abb89 100644
--- a/src/main/resources/l10n/JabRef_ru.properties
+++ b/src/main/resources/l10n/JabRef_ru.properties
@@ -2124,3 +2124,5 @@ Show\ document\ viewer=Показать программу просмотра д
+
+
diff --git a/src/main/resources/l10n/JabRef_sv.properties b/src/main/resources/l10n/JabRef_sv.properties
index 4c6011b4f58..53aaf718655 100644
--- a/src/main/resources/l10n/JabRef_sv.properties
+++ b/src/main/resources/l10n/JabRef_sv.properties
@@ -2005,3 +2005,5 @@ Escape\ underscores=Maskera understreck
+
+
diff --git a/src/main/resources/l10n/JabRef_tl.properties b/src/main/resources/l10n/JabRef_tl.properties
new file mode 100644
index 00000000000..b72d1e4e59c
--- /dev/null
+++ b/src/main/resources/l10n/JabRef_tl.properties
@@ -0,0 +1,2009 @@
+#X-Generator: crowdin.com
+%0\ contains\ the\ regular\ expression\ %1=%0 ay naglalaman ng regular na ekspresyon%1
+
+%0\ contains\ the\ term\ %1=%ay naglalaman ng mga term%1
+
+%0\ doesn't\ contain\ the\ regular\ expression\ %1=%0 hindi ay nag lalaman ng regular na ekspresyon %1
+
+%0\ doesn't\ contain\ the\ term\ %1=%0 hindi naglalaman ng termeno %1
+
+%0\ export\ successful=%0 ang pag-export ay matagumpay
+
+%0\ matches\ the\ regular\ expression\ %1=%0 nag tugma sa regular na ekspresyon %1
+
+%0\ matches\ the\ term\ %1=%0 tumugma sa termino %1
+
+=
+Could\ not\ find\ file\ '%0'
linked\ from\ entry\ '%1'=Hindi makita ang file '%0'
nag-link mula sa entry '%1'
+
+