diff --git a/CHANGELOG.md b/CHANGELOG.md index ef235e864ad..628fa963ddb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ to [sourceforge feature requests](https://sourceforge.net/p/jabref/features/) by ## [Unreleased] ### Changed +- Add options to close other/all databases in tab right-click menu - Implements #470: Show editor (as an alternative to author) and booktitle (as an alternative to journal) in the main table by default - Restore focus to last focused tab on start - Add ability to format/cleanup the date field diff --git a/src/main/java/net/sf/jabref/exporter/AutoSaveManager.java b/src/main/java/net/sf/jabref/exporter/AutoSaveManager.java index 79487123d04..eff17ec1f6f 100644 --- a/src/main/java/net/sf/jabref/exporter/AutoSaveManager.java +++ b/src/main/java/net/sf/jabref/exporter/AutoSaveManager.java @@ -70,7 +70,7 @@ public void run() { } for (BasePanel panel : panels) { - if (panel.isBaseChanged()) { + if (panel.isModified()) { if (panel.getDatabaseFile() != null) { AutoSaveManager.autoSave(panel); } diff --git a/src/main/java/net/sf/jabref/gui/BasePanel.java b/src/main/java/net/sf/jabref/gui/BasePanel.java index a015c10aaa9..4f7a6ad706f 100644 --- a/src/main/java/net/sf/jabref/gui/BasePanel.java +++ b/src/main/java/net/sf/jabref/gui/BasePanel.java @@ -261,7 +261,7 @@ public String getTabTitle() { return title; } - public boolean isBaseChanged() { + public boolean isModified() { return baseChanged; } diff --git a/src/main/java/net/sf/jabref/gui/DragDropPopupPane.java b/src/main/java/net/sf/jabref/gui/DragDropPopupPane.java index cb260665b18..1220358eade 100644 --- a/src/main/java/net/sf/jabref/gui/DragDropPopupPane.java +++ b/src/main/java/net/sf/jabref/gui/DragDropPopupPane.java @@ -17,67 +17,29 @@ import java.awt.event.MouseEvent; -import javax.swing.AbstractAction; -import javax.swing.JMenuItem; import javax.swing.JPopupMenu; -import net.sf.jabref.logic.l10n.Localization; /** * Adds popup functionality to DragDropPane - * - * Code inspired by http://forums.devx.com/showthread.php?t=151270 */ public class DragDropPopupPane extends DragDropPane { - private JPopupMenu popupMenu; - - public DragDropPopupPane(AbstractAction manageSelectorsAction, AbstractAction databasePropertiesAction, - AbstractAction bibtexKeyPatternAction, AbstractAction closeDatabaseAction) { - super(); + public DragDropPopupPane(JPopupMenu menu) { + this.popupMenu = menu; addMouseListener(new java.awt.event.MouseAdapter() { - @Override public void mouseClicked(MouseEvent e) { - tabClicked(e); + tabRightClick(e); } }); - - initPopupMenu(manageSelectorsAction, databasePropertiesAction, bibtexKeyPatternAction, closeDatabaseAction); } - private void initPopupMenu(AbstractAction manageSelectorsAction, AbstractAction databasePropertiesAction, - AbstractAction bibtexKeyPatternAction, AbstractAction closeDatabaseAction) { - popupMenu = new JPopupMenu(); - - JMenuItem databasePropertiesBtn = new JMenuItem(Localization.lang("Database properties")); - databasePropertiesBtn.addActionListener(databasePropertiesAction); - popupMenu.add(databasePropertiesBtn); - - JMenuItem bibtexKeyPatternBtn = new JMenuItem(Localization.lang("Bibtex key patterns")); - bibtexKeyPatternBtn.addActionListener(bibtexKeyPatternAction); - popupMenu.add(bibtexKeyPatternBtn); - - JMenuItem manageSelectorsBtn = new JMenuItem(Localization.lang("Manage content selectors")); - manageSelectorsBtn.addActionListener(manageSelectorsAction); - popupMenu.add(manageSelectorsBtn); - - JMenuItem closeBtn = new JMenuItem(Localization.lang("Close"), IconTheme.JabRefIcon.CLOSE.getSmallIcon()); - closeBtn.addActionListener(closeDatabaseAction); - popupMenu.add(closeBtn); - } - - private void tabClicked(MouseEvent e) { - if ((e.getButton() != MouseEvent.BUTTON1) && (e.getClickCount() == 1)) { // if is right-click - + private void tabRightClick(MouseEvent e) { + if ((e.getButton() != MouseEvent.BUTTON1) && (e.getClickCount() == 1)) { // display popup near location of mouse click popupMenu.show(e.getComponent(), e.getX(), e.getY() - 10); } } - - private void closeSelectedTab() { - // remove selected tab - remove(getSelectedIndex()); - } } diff --git a/src/main/java/net/sf/jabref/gui/JabRefFrame.java b/src/main/java/net/sf/jabref/gui/JabRefFrame.java index 18ab5489c4f..8907c2f795a 100644 --- a/src/main/java/net/sf/jabref/gui/JabRefFrame.java +++ b/src/main/java/net/sf/jabref/gui/JabRefFrame.java @@ -34,13 +34,7 @@ import java.io.File; import java.io.IOException; import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Vector; +import java.util.*; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -49,6 +43,7 @@ import net.sf.jabref.*; import net.sf.jabref.bibtex.EntryTypes; +import net.sf.jabref.exporter.*; import net.sf.jabref.gui.actions.*; import net.sf.jabref.gui.desktop.JabRefDesktop; import net.sf.jabref.gui.keyboard.KeyBinds; @@ -73,11 +68,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import net.sf.jabref.exporter.AutoSaveManager; -import net.sf.jabref.exporter.ExportCustomizationDialog; -import net.sf.jabref.exporter.ExportFormats; -import net.sf.jabref.exporter.SaveAllAction; -import net.sf.jabref.exporter.SaveDatabaseAction; import net.sf.jabref.external.ExternalFileTypeEditor; import net.sf.jabref.external.push.PushToApplicationButton; import net.sf.jabref.external.push.PushToApplications; @@ -543,18 +533,47 @@ public JabRefFrame(JabRef jabRef) { } + private JPopupMenu tabPopupMenu() { + JPopupMenu popupMenu = new JPopupMenu(); + + // Close actions + JMenuItem close = new JMenuItem(Localization.lang("Close")); + JMenuItem closeOthers = new JMenuItem(Localization.lang("Close Others")); + JMenuItem closeAll = new JMenuItem(Localization.lang("Close All")); + close.addActionListener(closeDatabaseAction); + closeOthers.addActionListener(closeOtherDatabasesAction); + closeAll.addActionListener(closeAllDatabasesAction); + popupMenu.add(close); + popupMenu.add(closeOthers); + popupMenu.add(closeAll); + + popupMenu.addSeparator(); + + JMenuItem databasePropertiesBtn = new JMenuItem(Localization.lang("Database properties")); + databasePropertiesBtn.addActionListener(databaseProperties); + popupMenu.add(databasePropertiesBtn); + + JMenuItem bibtexKeyPatternBtn = new JMenuItem(Localization.lang("Bibtex key patterns")); + bibtexKeyPatternBtn.addActionListener(bibtexKeyPattern); + popupMenu.add(bibtexKeyPatternBtn); + + JMenuItem manageSelectorsBtn = new JMenuItem(Localization.lang("Manage content selectors")); + manageSelectorsBtn.addActionListener(manageSelectors); + popupMenu.add(manageSelectorsBtn); + + return popupMenu; + } + private void init() { - tabbedPane = new DragDropPopupPane(manageSelectors, databaseProperties, bibtexKeyPattern, closeDatabaseAction); + tabbedPane = new DragDropPopupPane(tabPopupMenu()); MyGlassPane glassPane = new MyGlassPane(); setGlassPane(glassPane); - // glassPane.setVisible(true); setTitle(GUIGlobals.frameTitle); setIconImage(new ImageIcon(IconTheme.getIconUrl("jabrefIcon48")).getImage()); setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { - @Override public void windowClosing(WindowEvent e) { if (OS.OS_X) { @@ -581,7 +600,6 @@ public void windowClosing(WindowEvent e) { // Set up a ComponentListener that saves the last size and position of the dialog this.addComponentListener(new ComponentAdapter() { - @Override public void componentResized(ComponentEvent e) { // Save dialog position @@ -595,7 +613,6 @@ public void componentMoved(ComponentEvent e) { } }); - tabbedPane.setBorder(null); tabbedPane.setForeground(GUIGlobals.inActiveTabbed); @@ -605,7 +622,6 @@ public void componentMoved(ComponentEvent e) { * cut/paste/copy operations would some times occur in the wrong tab. */ tabbedPane.addChangeListener(new ChangeListener() { - @Override public void stateChanged(ChangeEvent e) { markActiveBasePanel(); @@ -674,7 +690,7 @@ public void setWindowTitle() { return; } - String changeFlag = panel.isBaseChanged() ? "*" : ""; + String changeFlag = panel.isModified() ? "*" : ""; if (panel.getDatabaseFile() != null) { String databaseFile = panel.getDatabaseFile().getPath(); @@ -830,7 +846,7 @@ public boolean quit() { Vector filenames = new Vector<>(); if (tabbedPane.getTabCount() > 0) { for (int i = 0; i < tabbedPane.getTabCount(); i++) { - if (getBasePanelAt(i).isBaseChanged()) { + if (getBasePanelAt(i).isModified()) { tabbedPane.setSelectedIndex(i); Object[] options = {Localization.lang("Save changes"), Localization.lang("Discard changes"), @@ -1022,7 +1038,7 @@ public int getBasePanelCount() { /** * handle the color of active and inactive JTabbedPane tabs */ - private void markActiveBasePanel() { + public void markActiveBasePanel() { int now = tabbedPane.getSelectedIndex(); int len = tabbedPane.getTabCount(); if ((lastTabbedPanelSelectionIndex > -1) && (lastTabbedPanelSelectionIndex < len)) { @@ -1573,7 +1589,7 @@ private static void setEnabled(List list, boolean enabled) { *

* The action that are affected are set in initActions. */ - private void updateEnabledState() { + public void updateEnabledState() { int tabCount = tabbedPane.getTabCount(); if (tabCount != previousTabCount) { previousTabCount = tabCount; @@ -1742,84 +1758,13 @@ public void actionPerformed(ActionEvent e) { // The action for closing the current database and leaving the window open. private final CloseDatabaseAction closeDatabaseAction = new CloseDatabaseAction(); - - class CloseDatabaseAction extends MnemonicAwareAction { - public CloseDatabaseAction() { - super(IconTheme.JabRefIcon.CLOSE.getSmallIcon()); - putValue(Action.NAME, Localization.menuTitle("Close database")); - putValue(Action.SHORT_DESCRIPTION, Localization.lang("Close the current database")); - putValue(Action.ACCELERATOR_KEY, prefs.getKey(KeyBinds.CLOSE_DATABASE)); - } - - @Override - public void actionPerformed(ActionEvent e) { - // Ask here if the user really wants to close, if the base - // has not been saved since last save. - boolean close = true; - if (getCurrentBasePanel() == null) { // when it is initially empty - return; // nbatada nov 7 - } - - if (getCurrentBasePanel().isBaseChanged()) { - - String filename; - - if (getCurrentBasePanel().getDatabaseFile() != null) { - filename = getCurrentBasePanel().getDatabaseFile().getAbsolutePath(); - } else { - filename = GUIGlobals.untitledTitle; - } - - int answer = showSaveDialog(filename); - if ((answer == JOptionPane.CANCEL_OPTION) || (answer == JOptionPane.CLOSED_OPTION)) { - close = false; // The user has cancelled. - } - if (answer == JOptionPane.YES_OPTION) { - // The user wants to save. - try { - SaveDatabaseAction saveAction = new SaveDatabaseAction(getCurrentBasePanel()); - saveAction.runCommand(); - if (saveAction.isCancelled() || !saveAction.isSuccess()) { - // The action either not cancelled or unsuccessful. - // Break! - close = false; - } - - } catch (Throwable ex) { - // Something prevented the file - // from being saved. Break!!! - close = false; - } - - } - } - - if (close) { - close(); - } - } - - public void close() { - BasePanel pan = getCurrentBasePanel(); - pan.cleanUp(); - AutoSaveManager.deleteAutoSaveFile(pan); // Delete autosave - tabbedPane.remove(pan); - if (tabbedPane.getTabCount() > 0) { - markActiveBasePanel(); - } - setWindowTitle(); - updateEnabledState(); // FIXME: Man, this is what I call a bug that this is not called. - output(Localization.lang("Closed database") + '.'); - // update tab titles - updateAllTabTitles(); - } - } + private final CloseAllDatabasesAction closeAllDatabasesAction = new CloseAllDatabasesAction(); + private final CloseOtherDatabasesAction closeOtherDatabasesAction = new CloseOtherDatabasesAction(); // The action for opening the preferences dialog. private final AbstractAction showPrefs = new ShowPrefsAction(); - class ShowPrefsAction - extends MnemonicAwareAction { + class ShowPrefsAction extends MnemonicAwareAction { public ShowPrefsAction() { super(IconTheme.JabRefIcon.PREFERENCES.getIcon()); @@ -2327,7 +2272,7 @@ public void showMessage(String message) { JOptionPane.showMessageDialog(this, message); } - private int showSaveDialog(String filename) { + public int showSaveDialog(String filename) { Object[] options = {Localization.lang("Save changes"), Localization.lang("Discard changes"), Localization.lang("Return to JabRef")}; @@ -2337,4 +2282,103 @@ private int showSaveDialog(String filename) { Localization.lang("Save before closing"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[2]); } + + private void closeTab(BasePanel panel) { + // empty tab without database + if (panel == null) { + return; + } + + if (panel.isModified()) { + if(confirmClose(panel)) { + removeTab(panel); + } + } else { + removeTab(panel); + } + } + + // Ask if the user really wants to close, if the base has not been saved + private boolean confirmClose(BasePanel panel) { + boolean close = false; + String filename; + + if (panel.getDatabaseFile() != null) { + filename = panel.getDatabaseFile().getAbsolutePath(); + } else { + filename = GUIGlobals.untitledTitle; + } + + int answer = showSaveDialog(filename); + if (answer == JOptionPane.YES_OPTION) { + // The user wants to save. + try { + SaveDatabaseAction saveAction = new SaveDatabaseAction(panel); + saveAction.runCommand(); + if (saveAction.isSuccess()) { + close = true; + } + } catch (Throwable ex) { + // do not close + } + + } else if(answer == JOptionPane.NO_OPTION) { + // discard changes + close = true; + } + return close; + } + + private void removeTab(BasePanel panel) { + panel.cleanUp(); + AutoSaveManager.deleteAutoSaveFile(panel); + tabbedPane.remove(panel); + if (tabbedPane.getTabCount() > 0) { + markActiveBasePanel(); + } + setWindowTitle(); + updateEnabledState(); + output(Localization.lang("Closed database") + '.'); + // update tab titles + updateAllTabTitles(); + } + + public class CloseDatabaseAction extends MnemonicAwareAction { + public CloseDatabaseAction() { + super(IconTheme.JabRefIcon.CLOSE.getSmallIcon()); + putValue(Action.NAME, Localization.menuTitle("Close database")); + putValue(Action.SHORT_DESCRIPTION, Localization.lang("Close the current database")); + putValue(Action.ACCELERATOR_KEY, prefs.getKey(KeyBinds.CLOSE_DATABASE)); + } + + @Override + public void actionPerformed(ActionEvent e) { + closeTab(getCurrentBasePanel()); + } + } + + public class CloseAllDatabasesAction extends MnemonicAwareAction { + @Override + public void actionPerformed(ActionEvent e) { + final Component[] panels = tabbedPane.getComponents(); + + for(Component p : panels) { + closeTab((BasePanel) p); + } + } + } + + public class CloseOtherDatabasesAction extends MnemonicAwareAction { + @Override + public void actionPerformed(ActionEvent e) { + final BasePanel active = (BasePanel) getCurrentBasePanel(); + final Component[] panels = tabbedPane.getComponents(); + + for(Component p : panels) { + if(p != active) { + closeTab((BasePanel) p); + } + } + } + } } diff --git a/src/main/java/net/sf/jabref/gui/entryeditor/EntryEditorTab.java b/src/main/java/net/sf/jabref/gui/entryeditor/EntryEditorTab.java index 5fa9897ff24..e597a2fdc63 100644 --- a/src/main/java/net/sf/jabref/gui/entryeditor/EntryEditorTab.java +++ b/src/main/java/net/sf/jabref/gui/entryeditor/EntryEditorTab.java @@ -236,7 +236,7 @@ private boolean isFieldModified(FieldEditor fieldEditor) { public void markIfModified(FieldEditor fieldEditor) { // Only mark as changed if not already is and the field was indeed // modified - if (!updating && !parent.panel.isBaseChanged() && isFieldModified(fieldEditor)) { + if (!updating && !parent.panel.isModified() && isFieldModified(fieldEditor)) { markBaseChanged(); } } diff --git a/src/main/resources/l10n/JabRef_da.properties b/src/main/resources/l10n/JabRef_da.properties index 82117baa2da..440ee44de4c 100644 --- a/src/main/resources/l10n/JabRef_da.properties +++ b/src/main/resources/l10n/JabRef_da.properties @@ -147,6 +147,8 @@ clear_all_groups=fjern_alle_grupper Clear_fields=Ryd_felter Clear_highlight=Ryd_fremh\u00e6vning Close=Luk +Close_Others= +Close_All= Close_dialog=Luk_dialog Close_the_current_database=Luk_denne_database Close_the_help_window=Luk_hj\u00e6lp-vinduet diff --git a/src/main/resources/l10n/JabRef_de.properties b/src/main/resources/l10n/JabRef_de.properties index 9e64b58ba6f..5346a7a6248 100644 --- a/src/main/resources/l10n/JabRef_de.properties +++ b/src/main/resources/l10n/JabRef_de.properties @@ -268,7 +268,8 @@ Clear_fields=Felder_l\u00f6schen Clear_highlight=Markierten_l\u00f6schen Close=Schlie\u00dfen - +Close_Others= +Close_All= Close_dialog=Dialog_schlie\u00dfen Close_the_current_database=Aktuelle_Datei_schlie\u00dfen diff --git a/src/main/resources/l10n/JabRef_en.properties b/src/main/resources/l10n/JabRef_en.properties index 6ada9e436e9..960b9a06a42 100644 --- a/src/main/resources/l10n/JabRef_en.properties +++ b/src/main/resources/l10n/JabRef_en.properties @@ -267,6 +267,8 @@ Clear_fields=Clear_fields Clear_highlight=Clear_highlight Close=Close +Close_Others=Close_Others +Close_All=Close_All Close_dialog=Close_dialog diff --git a/src/main/resources/l10n/JabRef_es.properties b/src/main/resources/l10n/JabRef_es.properties index 85ccb9172b6..4b381d692cd 100644 --- a/src/main/resources/l10n/JabRef_es.properties +++ b/src/main/resources/l10n/JabRef_es.properties @@ -145,6 +145,8 @@ clear_all_groups=Limpiar_todos_los_grupos Clear_fields=Limpiar_campos Clear_highlight=Limpiar_resaltado Close=Cerrar +Close_Others= +Close_All= Close_dialog=Cerrar_di\u00e1logo Close_the_current_database=Cerrar_la_base_de_datos_actual Close_the_help_window=Cerrar_la_ventana_de_ayuda diff --git a/src/main/resources/l10n/JabRef_fa.properties b/src/main/resources/l10n/JabRef_fa.properties index 82a7c1380bd..1f867bb2bda 100644 --- a/src/main/resources/l10n/JabRef_fa.properties +++ b/src/main/resources/l10n/JabRef_fa.properties @@ -263,6 +263,8 @@ Clear_fields= Clear_highlight= Close= +Close_Others= +Close_All= Close_dialog= diff --git a/src/main/resources/l10n/JabRef_fr.properties b/src/main/resources/l10n/JabRef_fr.properties index d2906f6827f..bdbab44f2e3 100644 --- a/src/main/resources/l10n/JabRef_fr.properties +++ b/src/main/resources/l10n/JabRef_fr.properties @@ -145,6 +145,8 @@ clear_all_groups=Vider_tous_les_groupes Clear_fields=Vider_les_champs Clear_highlight=Effacer_les_surlignements Close=Fermer +Close_Others= +Close_All= Close_dialog=Fermer_la_fen\u00eatre Close_the_current_database=Fermer_la_base_courante Close_the_help_window=Fermer_la_fen\u00eatre_d'aide diff --git a/src/main/resources/l10n/JabRef_in.properties b/src/main/resources/l10n/JabRef_in.properties index 40a95fb4903..69b122a1ff7 100644 --- a/src/main/resources/l10n/JabRef_in.properties +++ b/src/main/resources/l10n/JabRef_in.properties @@ -145,6 +145,8 @@ clear_all_groups=bersihkan_semua_grup Clear_fields=Bersihkan_beberapa_bidang Clear_highlight=Bersihkan_highlight Close=Tutup +Close_Others= +Close_All= Close_dialog=Tutup_dialog Close_the_current_database=Tutup_basisdata_yang_sekarang Close_the_help_window=Tutup_jendela_bantuan diff --git a/src/main/resources/l10n/JabRef_it.properties b/src/main/resources/l10n/JabRef_it.properties index 942862ea1f0..be9d0ec4136 100644 --- a/src/main/resources/l10n/JabRef_it.properties +++ b/src/main/resources/l10n/JabRef_it.properties @@ -153,6 +153,8 @@ Clear_fields=Annulla_i_campi # Unsure the translation below Clear_highlight=Rimuovi_l'evidenziazione Close=Chiudi +Close_Others= +Close_All= Close_dialog=Chiudi_la_finestra_di_dialogo Close_the_current_database=Chiudi_il_database_corrente Close_the_help_window=Chiudi_la_finestra_di_aiuto diff --git a/src/main/resources/l10n/JabRef_ja.properties b/src/main/resources/l10n/JabRef_ja.properties index 20c2e2fe20b..7446a8ec621 100644 --- a/src/main/resources/l10n/JabRef_ja.properties +++ b/src/main/resources/l10n/JabRef_ja.properties @@ -262,7 +262,8 @@ Clear_fields=\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6d88\u53bb Clear_highlight=\u7740\u8272\u3092\u89e3\u9664 Close=\u9589\u3058\u308b - +Close_Others= +Close_All= Close_dialog=\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u9589\u3058\u308b Close_the_current_database=\u73fe\u5728\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u9589\u3058\u308b diff --git a/src/main/resources/l10n/JabRef_nl.properties b/src/main/resources/l10n/JabRef_nl.properties index 2c681a34274..a5c82a3b3d3 100644 --- a/src/main/resources/l10n/JabRef_nl.properties +++ b/src/main/resources/l10n/JabRef_nl.properties @@ -269,7 +269,8 @@ Clear_fields=Velden_wissen Clear_highlight=Wis_selectie Close=Sluiten - +Close_Others= +Close_All= Close_dialog=Sluit_dialoog Close_the_current_database=Sluit_de_huidige_database diff --git a/src/main/resources/l10n/JabRef_no.properties b/src/main/resources/l10n/JabRef_no.properties index c7b91caa8e4..eadb1a7d79d 100644 --- a/src/main/resources/l10n/JabRef_no.properties +++ b/src/main/resources/l10n/JabRef_no.properties @@ -286,7 +286,8 @@ Clear_fields=Slett_felter Clear_highlight=Fjern_utheving Close=Lukk - +Close_Others= +Close_All= Close_dialog=Lukk_dialog Close_the_current_database=Lukk_denne_databasen diff --git a/src/main/resources/l10n/JabRef_pt_BR.properties b/src/main/resources/l10n/JabRef_pt_BR.properties index 60d4b891c87..b5b09768f4b 100644 --- a/src/main/resources/l10n/JabRef_pt_BR.properties +++ b/src/main/resources/l10n/JabRef_pt_BR.properties @@ -145,6 +145,8 @@ clear_all_groups=limpar_todos_os_grupos Clear_fields=Limpar_campos Clear_highlight=Limpar_realce Close=Fechar +Close_Others= +Close_All= Close_dialog=Fechar_janela_de_di\u00e1logo Close_the_current_database=Fechar_a_base_de_dados_atual Close_the_help_window=Fechar_a_janela_de_ajuda diff --git a/src/main/resources/l10n/JabRef_ru.properties b/src/main/resources/l10n/JabRef_ru.properties index 69c42239762..fe7f85a2720 100644 --- a/src/main/resources/l10n/JabRef_ru.properties +++ b/src/main/resources/l10n/JabRef_ru.properties @@ -265,7 +265,8 @@ Clear_fields=Очистить_поля Clear_highlight=Снять_выделение Close=Закрыть - +Close_Others= +Close_All= Close_dialog=Закрыть_диалоговое_окно Close_the_current_database=Закрыть_текущую_БД diff --git a/src/main/resources/l10n/JabRef_tr.properties b/src/main/resources/l10n/JabRef_tr.properties index 2c1878a43f6..99a695dad15 100644 --- a/src/main/resources/l10n/JabRef_tr.properties +++ b/src/main/resources/l10n/JabRef_tr.properties @@ -145,6 +145,8 @@ clear_all_groups=t\u00fcm_gruplar\u0131_sil Clear_fields=Alanlar\u0131_sil Clear_highlight=Vurgulamay\u0131_sil Close=Kapat +Close_Others= +Close_All= Close_dialog=Dialo\u011fu_kapat Close_the_current_database=G\u00fcncel_veritaban\u0131n\u0131_kapat Close_the_help_window=Yard\u0131m_penceresini_kapat diff --git a/src/main/resources/l10n/JabRef_vi.properties b/src/main/resources/l10n/JabRef_vi.properties index 304624117e7..e795d89b39c 100644 --- a/src/main/resources/l10n/JabRef_vi.properties +++ b/src/main/resources/l10n/JabRef_vi.properties @@ -265,7 +265,8 @@ Clear_fields=X\u00f3a_c\u00e1c_tr\u01b0\u1eddng Clear_highlight=X\u00f3a_ph\u1ea7n_l\u00e0m_n\u1ed5i Close=\u0110\u00f3ng - +Close_Others= +Close_All= Close_dialog=\u0110\u00f3ng_h\u1ed9p_tho\u1ea1i Close_the_current_database=\u0110\u00f3ng_CSDL_hi\u1ec7n_t\u1ea1i diff --git a/src/main/resources/l10n/JabRef_zh.properties b/src/main/resources/l10n/JabRef_zh.properties index 4dd5062a4d4..fbacc820cec 100644 --- a/src/main/resources/l10n/JabRef_zh.properties +++ b/src/main/resources/l10n/JabRef_zh.properties @@ -266,7 +266,8 @@ Clear_fields=\u6e05\u9664\u57df\u5185\u5bb9 Clear_highlight=\u6e05\u9664\u9ad8\u4eae Close=\u5173\u95ed - +Close_Others= +Close_All= Close_dialog=\u5173\u95ed\u5bf9\u8bdd\u6846 Close_the_current_database=\u5173\u95ed\u5f53\u524d\u6570\u636e\u5e93